gameActorStateMonsterCave.lua 1.7 KB

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