gameActorStatePlayerAssassinUnknown.lua 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. local gameActorState = require( "actor/gameActorState")
  2. local gameActorStatePlayerAssassinUnknown = class('gameActorStatePlayerAssassinUnknown', gameActorState)
  3. function gameActorStatePlayerAssassinUnknown:ctor()
  4. gameActorStatePlayerAssassinUnknown.super.ctor(self)
  5. end
  6. function gameActorStatePlayerAssassinUnknown:GetStateID()
  7. return global.MMO.ACTION_ASSASSIN_UNKNOWN
  8. end
  9. -----------------------------------------------------------------------------
  10. function gameActorStatePlayerAssassinUnknown:Tick(dt, player)
  11. player.mCurrentActT = player.mCurrentActT - dt
  12. if 0 >= player.mCurrentActT and player.mIsConfirmed then
  13. if player.mActionHandler then
  14. player.mActionHandler:handleActionCompleted( player, global.MMO.ACTION_ASSASSIN_UNKNOWN )
  15. end
  16. end
  17. -- confirmed timeout
  18. if player.mCurrentActT <= -5.0 then
  19. player:SetConfirmed(true)
  20. end
  21. end
  22. -----------------------------------------------------------------------------
  23. function gameActorStatePlayerAssassinUnknown:OnEnter(player)
  24. if player.mActionHandler then
  25. player.mActionHandler:handleActionBegin( player, global.MMO.ACTION_ASSASSIN_UNKNOWN, player.mOrient, 0 )
  26. end
  27. local clothID = player:GetAnimationID()
  28. local SkillPoxy = global.Facade:retrieveProxy(global.ProxyTable.Skill)
  29. local sex = player:GetValueByKey( global.MMO.BUFF_PLAYER_AVATAR_SEX ) or player:GetSexID()
  30. local defaultTime = SkillPoxy:GetSkillActionTime(global.MMO.ACTION_ASSASSIN_UNKNOWN, clothID, sex) or global.MMO.DEFAULT_ASSASSIN_UNKNOWN_TIME
  31. local attackSpeed = player:GetAttackSpeed()
  32. if SkillPoxy:GetSkillActionSpeed(global.MMO.ANIM_ASSASSIN_UNKNOWN) == 1 then
  33. attackSpeed = player:GetMagicSpeed()
  34. end
  35. local animTime = defaultTime / attackSpeed
  36. player.mAnimTime = animTime
  37. player.mCurrentActT = animTime
  38. player:SetConfirmed(true)
  39. -- reset some data
  40. player:SetAnimPrepare( 0.0 )
  41. player:dirtyAnimFlag()
  42. end
  43. -----------------------------------------------------------------------------
  44. function gameActorStatePlayerAssassinUnknown:OnExit(player)
  45. -- reset prepare time
  46. player:SetAnimPrepare(3)
  47. --
  48. player:SetAnimAct(global.MMO.ANIM_READY)
  49. player:dirtyAnimFlag()
  50. end
  51. -----------------------------------------------------------------------------
  52. function gameActorStatePlayerAssassinUnknown:ChangeState(newState, player, isTerminate)
  53. player.mCurrentState = newState
  54. return true
  55. end
  56. return gameActorStatePlayerAssassinUnknown
  57. -----------------------------------------------------------------------------