BossBattleFieldStateStart.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. public class BossBattleFieldStateStart : BossBattleFieldState
  5. {
  6. public static BossBattleFieldState Creator(BossBattleField field)
  7. {
  8. return new BossBattleFieldStateStart(field);
  9. }
  10. public BossBattleFieldStateStart(BossBattleField field)
  11. : base(field, BossBattleFieldStateType.Start)
  12. {
  13. }
  14. public override void OnEnter()
  15. {
  16. if(mField.Battle.HasBossComingAnim)
  17. {
  18. BattleMgr.Instance.DisableBattleCamera();
  19. }
  20. mField.Battle.MoveToNextBattleField(false);
  21. }
  22. public override void OnLeave()
  23. {
  24. }
  25. public override void Update(float deltaTime)
  26. {
  27. if (IsFieldFightersReady())
  28. {
  29. if(mField.Battle.HasBossComingAnim)
  30. {
  31. ChangeState(BossBattleFieldStateType.AnimationBeforeInterlude);
  32. }
  33. else
  34. {
  35. ChangeState(BossBattleFieldStateType.Fighting);
  36. }
  37. }
  38. else
  39. {
  40. mField.Battle.FighterMgr.FixedUpdate(deltaTime);
  41. }
  42. }
  43. private bool IsFieldFightersReady()
  44. {
  45. List<Fighter> fighters = mField.Fighters;
  46. for (int idx = 0; idx < fighters.Count; idx++)
  47. {
  48. bool idleState = fighters[idx].IsIdle || fighters[idx].IsComing;
  49. if(!idleState)
  50. return false;
  51. }
  52. return true;
  53. }
  54. public override void OnDataChanged()
  55. {
  56. }
  57. }