gameActorStatePlayerTeleport.lua 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. local gameActorState = require( "actor/gameActorState")
  2. local gameActorStatePlayerTeleport = class('gameActorStatePlayerTeleport', gameActorState)
  3. function gameActorStatePlayerTeleport:ctor()
  4. gameActorStatePlayerTeleport.super.ctor(self)
  5. end
  6. function gameActorStatePlayerTeleport:GetStateID()
  7. return global.MMO.ACTION_TELEPORT
  8. end
  9. function gameActorStatePlayerTeleport:Tick(dt, actor)
  10. actor.mCurrentActT = actor.mCurrentActT - dt
  11. if not actor.mIsArrived then
  12. -- Timing...
  13. if actor.mCurrentActT <= 0.0 then
  14. actor:SetIsArrived(true)
  15. end
  16. end
  17. if actor.mActionHandler then
  18. if actor.mIsArrived then
  19. actor.mActionHandler:handleActionCompleted( actor, self:GetStateID() )
  20. else
  21. actor.mActionHandler:handleActionProcess( actor, self:GetStateID(), dt )
  22. end
  23. end
  24. end
  25. function gameActorStatePlayerTeleport:OnEnter(actor)
  26. if actor.mActionHandler then
  27. actor.mActionHandler:handleActionBegin( actor, self:GetStateID() )
  28. end
  29. -- reset some data
  30. actor:SetIsArrived(false)
  31. actor:SetAnimPrepare(0.0)
  32. actor:dirtyAnimFlag()
  33. end
  34. function gameActorStatePlayerTeleport:OnExit(actor)
  35. end
  36. function gameActorStatePlayerTeleport:ChangeState(newState, actor, isTerminate)
  37. actor.mCurrentState = newState
  38. return true
  39. end
  40. return gameActorStatePlayerTeleport