TimeBattleFieldStatePeace.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. public class TimeBattleFieldStatePeace : TimeBattleFieldState
  5. {
  6. public static TimeBattleFieldStatePeace Creator(TimeBattleField field)
  7. {
  8. return new TimeBattleFieldStatePeace(field);
  9. }
  10. public TimeBattleFieldStatePeace(TimeBattleField field) :
  11. base(field, TimeBattleFieldStateType.Peace)
  12. {
  13. }
  14. float delayTime = 2;
  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. List<Fighter> fighters = mField.EnemyFighters;
  25. for (int i = fighters.Count - 1; i >= 0 ; i--)
  26. {
  27. Fighter fighter = fighters[i];
  28. if (fighter.IsAlive)
  29. {
  30. fighter.Dispose();
  31. }
  32. }
  33. }
  34. public override void Update(float deltaTime)
  35. {
  36. mField.Battle.FighterMgr.FixedUpdate(deltaTime);
  37. delayTime -= deltaTime;
  38. if (delayTime <= 0)
  39. {
  40. ChangeState(TimeBattleFieldStateType.End);
  41. }
  42. }
  43. public override void OnLeave()
  44. {
  45. }
  46. public override void OnDataChanged()
  47. {
  48. }
  49. }