wangguan
2020-10-21 c4b8dbd94f555b599bc847b7fa8a2e1c6caf31e1
Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs
@@ -11,6 +11,7 @@
using System.Collections;
using System.Collections.Generic;
using TowerDefense.Nodes;
using TowerDefense.UI.HUD;
namespace TowerDefense.Level
{
@@ -110,11 +111,6 @@
        public event Action LevelCompleted;
        /// <summary>
        /// Fired when all of the home bases are destroyed
        /// </summary>
        public event Action LevelFailed;
        /// <summary>
        /// Fired when the level state is changed - first parameter is the old state, second parameter is the new state
        /// </summary>
        public event Action<LevelState, LevelState> LevelStateChanged;
@@ -151,6 +147,7 @@
        /// </summary>
        /// <value></value>
        public int SelectBuffNeddLevels { get; set; }
        // cx test
        // public int SelectBuffNeddLevels { get; set; } = 2;
        /// <summary>
@@ -283,6 +280,12 @@
            }
        }
        private void Start()
        {
            EndlessBuffSelect.instance.BuffSelectCompleted += OnBuffSelectCompleted;
            EndlessGameUI.instance.GameOverEvent += SafelyCallLevelCompleted;
        }
        /// <summary>
        /// Updates the currency gain controller
        /// </summary>
@@ -297,6 +300,7 @@
            {
                isBuffSelectCompleted = true;
                WaveManager.StartWaves(CurrentLevel);
                EndlessUIStart.instance.Restart();
            }
            // 本关卡所有波次全部生成完成 && 敌人全部被清理了,然后就去尝试进入下一关
@@ -384,14 +388,9 @@
                return;
            }
            EndlessUIStart.instance.SelectBuffUI.SetActive(true);
            for (int i = 0; i < 3; ++i)
            {
                GameObject descObj = GameObject.Find($"BuffDesc{i}");
                Text obj = descObj.GetComponent<Text>();
                obj.text = list[i].Config.brief;
            }
            EndlessUIStart.instance.Pause();
            EndlessBuffSelect.instance.Refresh(list);
            EndlessBuffSelect.instance.ShowBuffUI();
        }
        /// <summary>
@@ -400,7 +399,6 @@
        /// <param name="index"></param>
        public void OnBuffSelectCompleted(int index)
        {
            EndlessUIStart.instance.SelectBuffUI.SetActive(false);
            isBuffSelectCompleted = false;
            EndlessBuffManager.instance.AddBuff(EndlessBuffData.GetBuffByIndex(index));
        }
@@ -430,7 +428,7 @@
                    ChangeLevelState(LevelState.Win);
                    break;
                case LevelState.Lose:
                    SafelyCallLevelFailed();
                    SafelyCallLevelCompleted();
                    break;
                case LevelState.Win:
                    SafelyCallLevelCompleted();
@@ -453,11 +451,11 @@
                homeBaseDestroyed();
            }
            // If there are no home bases left and the level is not over then set the level to lost
            if ((NumberOfHomeBasesLeft < 3) && !isGameOver)
            {
                ChangeLevelState(LevelState.Lose);
            }
            // // If there are no home bases left and the level is not over then set the level to lost
            // if ((NumberOfHomeBasesLeft < 3) && !isGameOver)
            // {
            //     ChangeLevelState(LevelState.Lose);
            // }
        }
        /// <summary>
@@ -482,15 +480,6 @@
        {
            if (DecrementEnemies != null)
                DecrementEnemies(1);
        }
        /// <summary>
        /// Calls the <see cref="levelFailed"/> event
        /// </summary>
        protected virtual void SafelyCallLevelFailed()
        {
            if (LevelFailed != null)
                LevelFailed();
        }
        /// <summary>