gameActorStateMonsterTeleport.lua 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. local gameActorState = require( "actor/gameActorState")
  2. local gameActorStateMonsterTeleport = class('gameActorStateMonsterTeleport', gameActorState)
  3. function gameActorStateMonsterTeleport:ctor()
  4. gameActorStateMonsterTeleport.super.ctor(self)
  5. end
  6. function gameActorStateMonsterTeleport:GetStateID()
  7. return global.MMO.ACTION_TELEPORT
  8. end
  9. function gameActorStateMonsterTeleport: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. end
  21. end
  22. end
  23. function gameActorStateMonsterTeleport:OnEnter(actor)
  24. if actor.mActionHandler then
  25. actor.mActionHandler:handleActionBegin( actor, self:GetStateID() )
  26. end
  27. -- reset some data
  28. actor:SetIsArrived(false)
  29. actor:dirtyAnimFlag()
  30. end
  31. function gameActorStateMonsterTeleport:OnExit(actor)
  32. end
  33. function gameActorStateMonsterTeleport:ChangeState(newState, actor, isTerminate)
  34. actor.mCurrentState = newState
  35. return true
  36. end
  37. return gameActorStateMonsterTeleport