FighterStateVertigo.cs 1.5 KB

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