wangguan
2020-11-24 a27b3510185c04eb385f5ab3ad24fd4e87a27626
Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs
@@ -142,6 +142,8 @@
        /// </summary>
        public List<Node> StartingNodeList;
        public List<Node> EndNodeList;
        /// <summary>
        /// 已经完成的关卡数量
        /// </summary>
@@ -164,13 +166,14 @@
        /// 新手第一关是否完成
        /// </summary>
        private bool isFirstLevelCompleted = false;
        private bool isSecondLevelCompleted = false;
        private bool isStopSecondWaveCompleted = false;
        /// <summary>
        /// 赛道长度
        /// </summary>
        private float tunelLength = 31.94f;
        private float tunelLength;
        private List<Vector3> homeBasePositionList;
@@ -337,6 +340,7 @@
            EndlessGameUI.instance.GameOverEvent += SafelyCallLevelCompleted;
            homeBasePositionList = new List<Vector3>();
            tunelLength = Mathf.Abs(StartingNodeList[0].transform.position.z - EndNodeList[0].transform.position.z);
            for (int i = 0; i < StartingNodeList.Count; ++i)
            {
@@ -380,13 +384,19 @@
                    if (!UpdateLevel())
                        ChangeLevelState(LevelState.AllEnemiesSpawned);
                }
                else if (!isFirstLevelCompleted)
                {
                    isFirstLevelCompleted = true;
                    EndlessUIStart.instance.Pause();
                    // 第一关的怪全部被杀光
                    EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.KillDone);
                }
                // else if (!isFirstLevelCompleted)
                // {
                //     isFirstLevelCompleted = true;
                //     EndlessUIStart.instance.Pause();
                //     // 第一关的怪全部被杀光
                //     EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.KillDone);
                // }
                // else if (!isSecondLevelCompleted)
                // {
                //     Debug.Log("开始第三关???");
                //     isSecondLevelCompleted = true;
                //     //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateThirdWave);
                // }
            }
        }
@@ -413,6 +423,23 @@
            EndlessScoreManager.instance.AddScore(score);
            EndlessBossSkillManager.instance.ClearSkillList();
            EndlessBossCtrl.instance.ChangeState(EndlessBossActionState.Death);
            if (GameConfig.IsNewbie)
            {
                if (!isFirstLevelCompleted)
                {
                    isFirstLevelCompleted = true;
                    EndlessUIStart.instance.Pause();
                    // 第一关的怪全部被杀光
                    EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.KillDone);
                }
                else if (!isSecondLevelCompleted)
                {
                    Debug.Log("开始第三关???");
                    isSecondLevelCompleted = true;
                    EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateThirdWave);
                }
            }
        }
        /// <summary>
@@ -438,6 +465,7 @@
        public void NewbieUpdateLevel()
        {
            ++CurrentLevel;
            EndlessBuffData.InitEndlessBuffPool(CurrentLevel);
            WaveManager.InitPort(CurrentLevel);
            IsAllWaveCompleted = false;
            EndlessUIStart.instance.Restart();
@@ -461,7 +489,10 @@
        {
            if (EndlessGameUI.instance.state == EndlessGameUI.State.GameOver) return;
            EndlessBuffData.InitEndlessBuffPool(CurrentLevel);
            if (CurrentLevel == startLevel)
                WaveManager.InitPort(CurrentLevel);
            if (!GameConfig.IsNewbie)
@@ -493,7 +524,7 @@
        }
        /// <summary>
        /// buff选择完成
        /// buff选择完成p
        /// </summary>
        /// <param name="index"></param>
        public void OnBuffSelectCompleted(int index)
@@ -624,13 +655,15 @@
        /// </summary>
        public void StopSecondWave()
        {
            Debug.LogError("--------------------- 停止第二关出怪 ---------------------");
            if (!isStopSecondWaveCompleted)
            {
                isStopSecondWaveCompleted = true;
                PauseWave();
            }
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.SkillStep);
            //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.SkillStep);
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.DragStep);
        }
    }
}