From e33d0e85cf5d01e953d95197488eeffc67835f3a Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Tue, 27 Oct 2020 18:16:53 +0800 Subject: [PATCH] 无尽模式关卡打点需要 --- Assets/Scripts/TowerDefense/Level/EndlessWaveManager.cs | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 52 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Level/EndlessWaveManager.cs b/Assets/Scripts/TowerDefense/Level/EndlessWaveManager.cs index 6ed6da1..9f3d26f 100644 --- a/Assets/Scripts/TowerDefense/Level/EndlessWaveManager.cs +++ b/Assets/Scripts/TowerDefense/Level/EndlessWaveManager.cs @@ -74,6 +74,12 @@ public int TotalEnemies { get; protected set; } /// <summary> + /// 所有兵线已经生成的敌人总数量 + /// </summary> + /// <value></value> + public int SpawnedTotalEnemies { get; protected set; } + + /// <summary> /// 本波次剩余敌人数量 /// </summary> public int RemainEnemies { get; protected set; } @@ -164,7 +170,7 @@ private void RefreshBoss() { - if (CurrentWaveIndex > 0) + if (CurrentWaveIndex > 0 || TotalWaves == 1) EndlessBossHPManager.instance.SwitchHP(CurrentWaveIndex == TotalWaves - 1); EndlessBossHPManager.instance.SetBossInfo($"{waveData[0].Config.boss_name} Lv.{Level}"); EndlessBossHPManager.instance.UpdateWave(TotalWaves - CurrentWaveIndex); @@ -184,7 +190,7 @@ WaveInterval = waveData[0].Config.cooldown / 1000f; TotalWaveLines = waveData.Count; CompletedWaveLine = 0; - + SpawnedTotalEnemies = 0; HideTunel(); // 刷新法阵的显示 @@ -216,13 +222,54 @@ continue; } - waves[data.Config.tunel - 1].WaveCompleted -= OneWaveCompleted; - waves[data.Config.tunel - 1].WaveCompleted += OneWaveCompleted; + int tunelIndex = data.Config.tunel - 1; + waves[tunelIndex].WaveCompleted -= OneWaveCompleted; + waves[tunelIndex].WaveCompleted += OneWaveCompleted; + waves[tunelIndex].SpawnNewAgent -= SpawnNewAgent; + waves[tunelIndex].SpawnNewAgent += SpawnNewAgent; waves[data.Config.tunel - 1].StartWave(data); } if (TotalWaveLines != 0) isWaveStarted = true; + } + + /// <summary> + /// 有新的敌人生成 + /// </summary> + private void SpawnNewAgent() + { + ++SpawnedTotalEnemies; + + if (GameConfig.IsNewbie && EndlessUIStart.instance.beginSkillStep && SpawnedTotalEnemies >= 8) + { + EndlessUIStart.instance.beginSkillStep = false; + EndlessLevelManager.instance.StopSecondWave(); + } + } + + /// <summary> + /// 暂停所有兵线出兵 + /// </summary> + public void PauseAllWave() + { + foreach (EndlessPortConfig data in waveData) + { + if (waves[data.Config.tunel - 1].LineState == EndlessWaveLineState.Spawning) + waves[data.Config.tunel - 1].PauseWave(); + } + } + + /// <summary> + /// 恢复所有兵线出兵 + /// </summary> + public void RestartAllWave() + { + foreach (EndlessPortConfig data in waveData) + { + if (waves[data.Config.tunel - 1].LineState == EndlessWaveLineState.Spawning) + waves[data.Config.tunel - 1].RestartWave(); + } } /// <summary> @@ -252,6 +299,7 @@ // 更新波索引 ++CurrentWaveIndex; EndlessBuffManager.instance.UpdateBuffList(); + EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessCompletedPort, Level, CurrentWaveIndex); if (CurrentWaveIndex >= TotalWaves) // 当前关卡的所有波次全部完成 -- Gitblit v1.9.1