From 23ef235a263191230031dfaa02c054197fdddd91 Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Tue, 20 Oct 2020 14:08:19 +0800 Subject: [PATCH] 完善PVE界面逻辑,使用正式的界面资源 解决bug:1.打掉小怪没有获得金币 2.摧毁塔位 塔没有消失 --- Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs | 46 +++++++++++++++++----------------------------- 1 files changed, 17 insertions(+), 29 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs b/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs index f8f85e9..0faf113 100644 --- a/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs +++ b/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 { @@ -108,11 +109,6 @@ /// Fired when all the waves are done and there are no more enemies left /// </summary> 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 @@ -283,6 +279,12 @@ } } + private void Start() + { + EndlessBuffSelect.instance.BuffSelectCompleted += OnBuffSelectCompleted; + EndlessGameUI.instance.GameOverEvent += SafelyCallLevelCompleted; + } + /// <summary> /// Updates the currency gain controller /// </summary> @@ -297,6 +299,7 @@ { isBuffSelectCompleted = true; WaveManager.StartWaves(CurrentLevel); + EndlessUIStart.instance.Restart(); } // 本关卡所有波次全部生成完成 && 敌人全部被清理了,然后就去尝试进入下一关 @@ -384,14 +387,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 +398,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 +427,7 @@ ChangeLevelState(LevelState.Win); break; case LevelState.Lose: - SafelyCallLevelFailed(); + SafelyCallLevelCompleted(); break; case LevelState.Win: SafelyCallLevelCompleted(); @@ -453,11 +450,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 +479,6 @@ { if (DecrementEnemies != null) DecrementEnemies(1); - } - - /// <summary> - /// Calls the <see cref="levelFailed"/> event - /// </summary> - protected virtual void SafelyCallLevelFailed() - { - if (LevelFailed != null) - LevelFailed(); } /// <summary> -- Gitblit v1.9.1