BossBattleFieldStateAnimationBI.cs 1.5 KB

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