gameActorStateMonsterBorn.lua 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. local gameActorState = require( "actor/gameActorState")
  2. local gameActorStateMonsterBorn = class('gameActorStateMonsterBorn', gameActorState)
  3. function gameActorStateMonsterBorn:ctor()
  4. gameActorStateMonsterBorn.super.ctor(self)
  5. end
  6. function gameActorStateMonsterBorn:Tick(dt, monster)
  7. if not monster.mIsArrived and not monster:GetStoneMode() 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_BORN )
  12. end
  13. end
  14. end
  15. function gameActorStateMonsterBorn: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_BORN, monster.mOrient, 0 )
  20. end
  21. function gameActorStateMonsterBorn:OnExit( actor)
  22. end
  23. function gameActorStateMonsterBorn:ChangeState(newState, monster, isTerminate)
  24. monster.mCurrentState = newState
  25. return true
  26. end
  27. function gameActorStateMonsterBorn:GetStateID()
  28. return global.MMO.ACTION_BORN
  29. end
  30. function gameActorStateMonsterBorn:OnAnimLoadCompleted(monster, animAct, elapsed)
  31. if animAct ~= global.MMO.ANIM_BORN then
  32. return false
  33. end
  34. monster.mCurrentActT = global.FrameAnimManager:GetAnimTotalDuration(monster:GetAnimationID(), global.MMO.SFANIM_TYPE_MONSTER, global.MMO.ANIM_BORN ) - elapsed
  35. end
  36. return gameActorStateMonsterBorn