gameActorStatePlayerSkill.lua 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. local gameActorState = require( "actor/gameActorState")
  2. local gameActorStatePlayerSkill = class('gameActorStatePlayerSkill', gameActorState)
  3. function gameActorStatePlayerSkill:ctor()
  4. gameActorStatePlayerSkill.super.ctor(self)
  5. end
  6. function gameActorStatePlayerSkill:Tick(dt, player)
  7. player.mCurrentActT = player.mCurrentActT - dt
  8. if 0 >= player.mCurrentActT and player.mIsConfirmed then
  9. if player.mActionHandler then
  10. player.mActionHandler:handleActionCompleted( player, global.MMO.ACTION_SKILL )
  11. end
  12. end
  13. -- confirmed timeout
  14. if player.mCurrentActT <= -5.0 then
  15. player:SetConfirmed(true)
  16. end
  17. end
  18. function gameActorStatePlayerSkill:OnEnter(player)
  19. if player.mActionHandler then
  20. player.mActionHandler:handleActionBegin( player, global.MMO.ACTION_SKILL, player.mOrient, 0 )
  21. end
  22. local animTime = player:GetMagicStepTime() / player:GetMagicSpeed()
  23. player.mAnimTime = animTime
  24. player.mCurrentActT = animTime
  25. player:SetConfirmed(true)
  26. -- reset some data
  27. player:SetAnimPrepare( 0.0 )
  28. player:dirtyAnimFlag()
  29. end
  30. function gameActorStatePlayerSkill:OnExit(player)
  31. -- reset prepare time
  32. player:SetAnimPrepare(3)
  33. --
  34. player:SetAnimAct(global.MMO.ANIM_READY)
  35. player:dirtyAnimFlag()
  36. end
  37. function gameActorStatePlayerSkill:ChangeState(newState, player, isTerminate)
  38. player.mCurrentState = newState
  39. return true
  40. end
  41. function gameActorStatePlayerSkill:GetStateID()
  42. return global.MMO.ACTION_SKILL
  43. end
  44. return gameActorStatePlayerSkill