TimeBattleFieldStateFailed.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. public class TimeBattleFieldStateFailed : TimeBattleFieldState
  5. {
  6. public static TimeBattleFieldStateFailed Creator(TimeBattleField field)
  7. {
  8. return new TimeBattleFieldStateFailed(field);
  9. }
  10. public TimeBattleFieldStateFailed(TimeBattleField field) :
  11. base(field, TimeBattleFieldStateType.Win)
  12. {
  13. }
  14. float delayTime = 3;
  15. public override void OnEnter()
  16. {
  17. delayTime = 0;
  18. }
  19. public override void Update(float deltaTime)
  20. {
  21. delayTime -= deltaTime;
  22. mField.Battle.FighterMgr.FixedUpdate(deltaTime);
  23. if (delayTime <= 0)
  24. {
  25. ChangeState(TimeBattleFieldStateType.End);
  26. }
  27. }
  28. public override void OnLeave()
  29. {
  30. Dispose();
  31. }
  32. public override void OnDataChanged()
  33. {
  34. }
  35. void Dispose()
  36. {
  37. List<Fighter> fighters = mField.EnemyFighters;
  38. for (int i = fighters.Count-1; i >= 0; i--)
  39. {
  40. Fighter fighter = fighters[i];
  41. if (fighter.IsAlive)
  42. {
  43. if(fighter.IsBoss)
  44. {
  45. mField.BossLife = (int)fighter.Life;
  46. mField.BossSp = (int)fighter.Sp;
  47. }
  48. fighter.Dispose();
  49. }
  50. }
  51. }
  52. }