gameActorStatePlayerSBYS.lua 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. local gameActorState = require( "actor/gameActorState")
  2. local gameActorStatePlayerSBYS = class('gameActorStatePlayerSBYS', gameActorState)
  3. function gameActorStatePlayerSBYS:ctor()
  4. gameActorStatePlayerSBYS.super.ctor(self)
  5. end
  6. function gameActorStatePlayerSBYS:GetStateID()
  7. return global.MMO.ACTION_SBYS
  8. end
  9. function gameActorStatePlayerSBYS: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. local mapX = actor:GetMapX()
  16. local mapY = actor:GetMapY()
  17. local worldPos = global.sceneManager:MapPos2WorldPos(mapX, mapY, true)
  18. actor:setPosition(worldPos.x, worldPos.y)
  19. end
  20. end
  21. if actor.mActionHandler then
  22. if actor.mIsArrived then
  23. actor.mActionHandler:handleActionCompleted( actor, self:GetStateID() )
  24. else
  25. actor.mActionHandler:handleActionProcess( actor, self:GetStateID(), dt )
  26. end
  27. end
  28. end
  29. function gameActorStatePlayerSBYS:OnEnter(actor)
  30. if actor.mActionHandler then
  31. actor.mActionHandler:handleActionBegin( actor, self:GetStateID() )
  32. end
  33. local animTime = 0.1 / actor:GetAttackSpeed()
  34. actor:SetCurrActTime(animTime)
  35. actor:SetIsArrived(false)
  36. actor:SetAnimPrepare(0.5)
  37. actor:SetAnimAct(global.MMO.ANIM_READY)
  38. actor:dirtyAnimFlag()
  39. end
  40. function gameActorStatePlayerSBYS:OnExit(actor)
  41. actor:SetAnimPrepare(3)
  42. actor:SetAnimAct(global.MMO.ANIM_READY)
  43. actor:dirtyAnimFlag()
  44. end
  45. function gameActorStatePlayerSBYS:ChangeState(newState, actor, isTerminate)
  46. actor.mCurrentState = newState
  47. return true
  48. end
  49. return gameActorStatePlayerSBYS