FighterStateSleep.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using UnityEngine;
  2. using System.Collections;
  3. public class FighterStateSleep : FighterState
  4. {
  5. public static FighterState Creator(Fighter fighter)
  6. {
  7. return new FighterStateSleep(fighter);
  8. }
  9. public FighterStateSleep(Fighter fighter)
  10. :base(fighter,FighterStateType.Sleep)
  11. {
  12. mAnimName = FighterAnimatorHash.StateSleep;
  13. }
  14. public override void OnEnter(FighterStateType fromState, object param)
  15. {
  16. base.OnEnter(fromState, param);
  17. }
  18. public override void Update(float deltaTime)
  19. {
  20. base.Update(deltaTime);
  21. }
  22. public override void OnLeave()
  23. {
  24. base.OnLeave();
  25. }
  26. public override void OnDataChanged()
  27. {
  28. if (!mStateData.IsAlive)
  29. mStateData.ChangeState(mStateData.IsGround ? FighterStateType.Die : FighterStateType.BeHitDown);
  30. else if (mStateData.IsVertigo)
  31. mStateData.ChangeState(FighterStateType.Vertigo);
  32. else if(mStateData.IsStark)
  33. mStateData.ChangeState(FighterStateType.Stark);
  34. else
  35. mStateData.ChangeState(mStateData.GetIdleNext());
  36. }
  37. public override FighterStateType GetTriggerNextState(FighterStateTriggerType triggerType, int checkVal = 0)
  38. {
  39. switch (triggerType)
  40. {
  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. }