FighterStateStark.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using UnityEngine;
  2. using System.Collections;
  3. public class FighterStateStark : FighterState
  4. {
  5. public static FighterState Creator (Fighter fighter)
  6. {
  7. return new FighterStateStark (fighter);
  8. }
  9. public FighterStateStark (Fighter fighter)
  10. : base (fighter, FighterStateType.Stark)
  11. {
  12. }
  13. public override void OnEnter (FighterStateType fromState, object param)
  14. {
  15. base.OnEnter(fromState, param);
  16. if (mFighter.Ctrl != null)
  17. mFighter.Ctrl.PauseAnim ();
  18. }
  19. public override void Update (float deltaTime)
  20. {
  21. //mFighter.PassiveMove.Update (deltaTime);
  22. }
  23. public override void OnDataChanged ()
  24. {
  25. if (!mStateData.IsAlive)
  26. mStateData.ChangeState(mStateData.IsGround ? FighterStateType.Die : FighterStateType.BeHitDown);
  27. else if (mStateData.IsVertigo)
  28. mStateData.ChangeState(FighterStateType.Vertigo);
  29. else if (mStateData.IsSleep)
  30. mStateData.ChangeState(FighterStateType.Sleep);
  31. else if (!mStateData.IsGround)
  32. mStateData.ChangeState(FighterStateType.Down);
  33. else if (!mFighter.IsNavRun)
  34. mStateData.ChangeState(FighterStateType.Idle);
  35. }
  36. public override void OnLeave ()
  37. {
  38. base.OnLeave ();
  39. if (mFighter.Ctrl != null)
  40. mFighter.Ctrl.ResumeAnim ();
  41. }
  42. public override FighterStateType GetTriggerNextState (FighterStateTriggerType triggerType, int checkVal = 0)
  43. {
  44. switch(triggerType)
  45. {
  46. case FighterStateTriggerType.Attack:
  47. return mFighter.CurrentBattleField.IsPlayingRecorder ? FighterStateType.Attack : FighterStateType.None;
  48. default:
  49. return FighterStateType.None;
  50. }
  51. }
  52. }