chenxin
2020-12-07 75bd9ddac2d94dd7b25470e8161ee389d9f6ddd2
Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs
@@ -32,6 +32,43 @@
        /// </summary>
        public int CurrentLevel { get; set; } = 1;
        private float dropRate;
        /// <summary>
        /// 当前金币掉率
        /// </summary>
        /// <value></value>
        public float DropRate
        {
            get
            {
                return dropRate;
            }
            set
            {
                dropRate = value;
                Debug.Log("设置了掉率" + dropRate);
            }
        }
        private int dropCoin;
        /// <summary>
        /// 当前金币
        /// </summary>
        /// <value></value>
        public int DropCoin
        {
            get
            {
                return dropCoin;
            }
            set
            {
                dropCoin = value;
            }
        }
        protected static readonly int MAX_TOWER = 5;
        /// <summary>
@@ -154,8 +191,6 @@
        /// </summary>
        /// <value></value>
        public int SelectBuffNeddLevels { get; set; }
        // cx test
        // public int SelectBuffNeddLevels { get; set; } = 2;
        /// <summary>
        /// buff是否选择完成
@@ -166,6 +201,8 @@
        /// 新手第一关是否完成
        /// </summary>
        private bool isFirstLevelCompleted = false;
        private bool isSecondLevelCompleted = false;
        private bool isThirdLevelCompleted = false;
        private bool isStopSecondWaveCompleted = false;
@@ -300,6 +337,7 @@
        /// </summary>
        public virtual void StartLevel()
        {
            EndlessPortData.Init();
            ChangeLevelState(LevelState.SpawningEnemies);
            SelfPlacementArea.startCoinGenMode();
        }
@@ -383,13 +421,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);
                // }
            }
        }
@@ -416,6 +460,30 @@
            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;
                    EndlessUIStart.instance.Pause();
                    EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.KillSecondDone);
                }
                else if (isFirstLevelCompleted && isSecondLevelCompleted && !isThirdLevelCompleted)
                {
                    isThirdLevelCompleted = true;
                    EndlessUIStart.instance.Pause();
                    EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.KillThirdDone);
                }
            }
        }
        /// <summary>
@@ -441,7 +509,6 @@
        public void NewbieUpdateLevel()
        {
            ++CurrentLevel;
            EndlessBuffData.InitEndlessBuffPool(CurrentLevel);
            WaveManager.InitPort(CurrentLevel);
            IsAllWaveCompleted = false;
            EndlessUIStart.instance.Restart();
@@ -464,15 +531,18 @@
        private void BeginLevel()
        {
            if (EndlessGameUI.instance.state == EndlessGameUI.State.GameOver) return;
            EndlessBuffData.InitEndlessBuffPool(CurrentLevel);
            EndlessBossCtrl.instance.ClearBoss();
            if (CurrentLevel == startLevel)
                WaveManager.InitPort(CurrentLevel);
            if (!GameConfig.IsNewbie)
            {
                // buff池的初始化要从正式关卡算起,不算新手关
                EndlessBuffData.InitEndlessBuffPool(GameConfig.IsNewbieStart ? CurrentLevel - EndlessPortData.NewbieTotalLevel : CurrentLevel);
                ShowSelectBuffUI();
            }
            else
            {
                EndlessUIStart.instance.Restart();
@@ -636,7 +706,10 @@
                isStopSecondWaveCompleted = true;
                PauseWave();
            }
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.SkillStep);
            //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.SkillStep);
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.DragStep);
        }
    }
}