FighterStateBreak.cs 1.8 KB

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