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