TimeBattleFieldStateWin.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. public class TimeBattleFieldStateWin : TimeBattleFieldState
  5. {
  6. public static TimeBattleFieldStateWin Creator(TimeBattleField field)
  7. {
  8. return new TimeBattleFieldStateWin(field);
  9. }
  10. public TimeBattleFieldStateWin(TimeBattleField field) :
  11. base(field, TimeBattleFieldStateType.Win)
  12. {
  13. }
  14. float delayTime = 0;
  15. public override void OnEnter()
  16. {
  17. for (int idx = 0; idx < mField.TeamFighters.Count; idx++)
  18. {
  19. if (mField.TeamFighters[idx].IsAlive)
  20. {
  21. mField.TeamFighters[idx].ForceIdle();
  22. }
  23. }
  24. if (mField.Battle.Recorder != null)
  25. {
  26. if (!mField.Battle.IsPlayRecord)
  27. {
  28. mField.Battle.Recorder.RecordBattleEnd(mField.IsWin);
  29. mField.Battle.RecorderStr = mField.Battle.Recorder != null ? mField.Battle.Recorder.RecordStr : null;
  30. delayTime = 0;
  31. }
  32. else
  33. {
  34. delayTime = 2;
  35. mField.Battle.Recorder.CalculateReplayResult();
  36. }
  37. }
  38. }
  39. public override void Update(float deltaTime)
  40. {
  41. mField.Battle.FighterMgr.FixedUpdate(deltaTime);
  42. delayTime -= deltaTime;
  43. if (delayTime <= 0)
  44. {
  45. ChangeState(TimeBattleFieldStateType.End);
  46. }
  47. }
  48. public override void OnLeave()
  49. {
  50. }
  51. public override void OnDataChanged()
  52. {
  53. }
  54. }