| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- local gameActorState = require( "actor/gameActorState")
- local gameActorStatePlayerStuck = class('gameActorStatePlayerStuck', gameActorState)
- local MIN_PLAYER_STUCK_STATE_TIME =0.1
- function gameActorStatePlayerStuck:ctor()
- gameActorStatePlayerStuck.super.ctor(self)
- end
- function gameActorStatePlayerStuck:Tick(dt, player)
- player.mCurrentActT = player.mCurrentActT - dt
- if player.mCurrentActT <= 0.00001 then
- if player.mActionHandler then
- player.mActionHandler:handleActionCompleted( player, global.MMO.ACTION_STUCK )
- end
- end
- end
- function gameActorStatePlayerStuck:OnEnter(player)
- if player.mActionHandler then
- player.mActionHandler:handleActionBegin( player, global.MMO.ACTION_STUCK, player.mOrient, 0 )
- end
- local mapProxy = global.Facade:retrieveProxy(global.ProxyTable.Map)
- local stuckTimeMS = (mapProxy:GetStuckActionTime() or 200) / 1000
- local currentActT = stuckTimeMS
- if player:GetIsFullSpeedup() then
- currentActT = stuckTimeMS / global.MMO.DEFAULT_MUCH_FAST_TIME
- elseif player:GetIsSpeedup() then
- currentActT = stuckTimeMS / global.MMO.DEFAULT_FAST_TIME_RATE
- end
- player.mCurrentActT = currentActT
- --
- player:SetAnimPrepare( 0.0 )
- player:dirtyAnimFlag()
- end
- function gameActorStatePlayerStuck:OnExit(player)
- player:dirtyAnimFlag()
- end
- function gameActorStatePlayerStuck:ChangeState(newState, player, isTerminate)
- player.mCurrentState = newState
- return true
- end
- function gameActorStatePlayerStuck:GetStateID()
- return global.MMO.ACTION_STUCK
- end
- return gameActorStatePlayerStuck
|