gameActorStateMonsterSkill.lua 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. local gameActorState = require( "actor/gameActorState")
  2. local gameActorStateMonsterSkill = class('gameActorStateMonsterSkill', gameActorState)
  3. function gameActorStateMonsterSkill:ctor()
  4. gameActorStateMonsterSkill.super.ctor(self)
  5. end
  6. function gameActorStateMonsterSkill:Tick(dt, monster)
  7. if not monster.mIsArrived then
  8. monster.mCurrentActT = monster.mCurrentActT - dt
  9. if monster.mCurrentActT <= 0.00001 then
  10. monster.mIsArrived = true
  11. monster.mActionHandler:handleActionCompleted( monster, global.MMO.ACTION_SKILL )
  12. end
  13. end
  14. end
  15. function gameActorStateMonsterSkill:OnEnter(monster)
  16. monster.mCurrentActT = global.FrameAnimManager:GetAnimTotalDuration( monster:GetAnimationID(), global.MMO.SFANIM_TYPE_MONSTER, global.MMO.ANIM_SKILL )
  17. monster:SetIsArrived(false)
  18. monster.mActionHandler:handleActionBegin( monster, global.MMO.ACTION_SKILL, monster.mOrient, 0 )
  19. end
  20. function gameActorStateMonsterSkill:OnExit(actor)
  21. end
  22. function gameActorStateMonsterSkill:ChangeState(newState, monster, isTerminate)
  23. monster.mCurrentState = newState
  24. return true
  25. end
  26. function gameActorStateMonsterSkill:GetStateID()
  27. return global.MMO.ACTION_SKILL
  28. end
  29. function gameActorStateMonsterSkill:OnAnimLoadCompleted(monster, animAct, elapsed)
  30. if animAct ~= global.MMO.ANIM_SKILL then
  31. return false
  32. end
  33. monster.mCurrentActT = global.FrameAnimManager:GetAnimTotalDuration(monster:GetAnimationID(), global.MMO.SFANIM_TYPE_MONSTER, global.MMO.ANIM_SKILL) - elapsed
  34. end
  35. return gameActorStateMonsterSkill