chenxin
2020-12-11 0ff8f9bc2818c3171305c7242adf586f0f7991b5
Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs
@@ -193,9 +193,9 @@
        public int SelectBuffNeddLevels { get; set; }
        /// <summary>
        /// buff是否选择完成
        /// 弹框完成
        /// </summary>
        private bool isBuffSelectCompleted = true;
        private bool isPopDone = true;
        /// <summary>
        /// 新手第一关是否完成
@@ -212,6 +212,8 @@
        private float tunelLength;
        private List<Vector3> homeBasePositionList;
        private ElfUpgrade elfPanelUpgrade;
        /// <summary>
        /// 根据赛道id(1~5)获得基地坐标
@@ -375,6 +377,7 @@
        {
            EndlessBuffSelect.instance.BuffSelectCompleted += OnBuffSelectCompleted;
            EndlessGameUI.instance.GameOverEvent += SafelyCallLevelCompleted;
            EventCenter.Ins.Add((int)KTGMGemClient.EventType.ElfUpgradePanelClosed, ElfUpgradePanelClosed);
            homeBasePositionList = new List<Vector3>();
            tunelLength = Mathf.Abs(StartingNodeList[0].transform.position.z - EndNodeList[0].transform.position.z);
@@ -402,10 +405,9 @@
                CurrencyGainer.Tick(Time.deltaTime);
            }
            // buff选择完成,开始波次
            if (!isBuffSelectCompleted)
            if (!isPopDone)
            {
                isBuffSelectCompleted = true;
                isPopDone = true;
                if (CurrentLevel > startLevel)
                    WaveManager.InitPort(CurrentLevel);
                EndlessUIStart.instance.Restart();
@@ -541,13 +543,27 @@
            {
                // buff池的初始化要从正式关卡算起,不算新手关
                EndlessBuffData.InitEndlessBuffPool(GameConfig.IsNewbieStart ? CurrentLevel - EndlessPortData.NewbieTotalLevel : CurrentLevel);
                ShowSelectBuffUI();
                PopUpPanel();
            }
            else
            {
                EndlessUIStart.instance.Restart();
                WaveManager.StartWaves(CurrentLevel);
            }
        }
        /// <summary>
        /// 弹出面板
        /// </summary>
        private void PopUpPanel()
        {
            EndlessUIStart.instance.Pause();
            int level = WaveManager.WaveData[0].Config.evolution_lv;
            if (level > 0)
                ShowElfUpgradePanel(level);
            else
                ShowSelectBuffUI();
        }
        /// <summary>
@@ -560,27 +576,42 @@
            if (list.Count == 0)
            {
                isBuffSelectCompleted = false;
                isPopDone = false;
                return;
            }
            EndlessUIStart.instance.Pause();
            EndlessBuffSelect.instance.Refresh(list);
            EndlessBuffSelect.instance.ShowBuffUI();
        }
        private void ShowElfUpgradePanel(int level)
        {
            GameObject elfUpgradeObj = Instantiate(Resources.Load<GameObject>("UI/ElfUpgrade/ElfUpgradePanel"), GameObject.Find("UICamera/BottomCanvas/Panel").transform);
            elfPanelUpgrade = elfUpgradeObj.GetComponent<ElfUpgrade>();
            elfPanelUpgrade.SetUpgradeLevel(level);
        }
        /// <summary>
        /// buff选择完成p
        /// buff选择完成
        /// </summary>
        /// <param name="index"></param>
        public void OnBuffSelectCompleted(int index)
        private void OnBuffSelectCompleted(int index)
        {
            isBuffSelectCompleted = false;
            isPopDone = false;
            EndlessBuffManager.instance.AddBuff(EndlessBuffData.GetBuffByIndex(index));
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessBuffRefresh);
        }
        /// <summary>
        /// 关闭了精灵升级界面
        /// </summary>
        private void ElfUpgradePanelClosed()
        {
            isPopDone = false;
            EndlessGameUI.instance.UpgradeAllTowerMinLevel(elfPanelUpgrade.GetUpgradeLevel() - 1);
        }
        /// <summary>
        /// Changes the state and broadcasts the event
        /// </summary>
        /// <param name="newState">The new state to transitioned to</param>