FighterStateDownIdle.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using UnityEngine;
  2. using System.Collections;
  3. public class FighterStateDownIdle : FighterState
  4. {
  5. const float state_end_time = 0.5f;
  6. public static FighterState Creator (Fighter fighter)
  7. {
  8. return new FighterStateDownIdle (fighter);
  9. }
  10. public FighterStateDownIdle (Fighter fighter)
  11. : base (fighter, FighterStateType.DownIdle)
  12. {
  13. }
  14. int nOverFrame = 0;
  15. public override void OnEnter (FighterStateType fromState, object param)
  16. {
  17. base.OnEnter(fromState, param);
  18. nOverFrame = ChangeFrame(state_end_time);
  19. m_nFrame = 0;
  20. }
  21. public override void Update (float deltaTime)
  22. {
  23. m_nFrame += 1;
  24. if (m_nFrame == nOverFrame)
  25. {
  26. if(mStateData.IsAlive)
  27. mStateData.ChangeState(mStateData.GetIdleNext());
  28. else
  29. mStateData.ChangeState(FighterStateType.Die);
  30. }
  31. }
  32. public override void OnDataChanged ()
  33. {
  34. if (mStateData.IsStark)
  35. mStateData.ChangeState (FighterStateType.Stark);
  36. }
  37. public override FighterStateType GetTriggerNextState (FighterStateTriggerType triggerType, int checkVal = 0)
  38. {
  39. switch (triggerType) {
  40. case FighterStateTriggerType.BeHit:
  41. if (checkVal > 0)
  42. return FighterStateType.BeHit;
  43. else
  44. return FighterStateType.None;
  45. case FighterStateTriggerType.NavRun:
  46. return FighterStateType.NavRun;
  47. case FighterStateTriggerType.Attack:
  48. return mFighter.CurrentBattleField.IsPlayingRecorder ? FighterStateType.Attack : FighterStateType.None;
  49. default:
  50. return FighterStateType.None;
  51. }
  52. }
  53. }