From 45faee0adf3b5bc2ac051c2a0e08bb4ecf738aac Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Thu, 17 Dec 2020 14:31:17 +0800
Subject: [PATCH] Merge commit 'fe59d1a97e80284315bcdfa18a49059b38dfd137'

---
 Assets/Scripts/TowerDefense/Level/EndlessWave.cs |   42 ++++++++++++++++++++++++++++--------------
 1 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/Level/EndlessWave.cs b/Assets/Scripts/TowerDefense/Level/EndlessWave.cs
index 7f1add6..098d330 100644
--- a/Assets/Scripts/TowerDefense/Level/EndlessWave.cs
+++ b/Assets/Scripts/TowerDefense/Level/EndlessWave.cs
@@ -6,6 +6,7 @@
 using TowerDefense.Agents;
 using TowerDefense.Agents.Data;
 using TowerDefense.Nodes;
+using TowerDefense.UI.HUD;
 
 namespace TowerDefense.Level
 {
@@ -113,6 +114,22 @@
 
         protected virtual void SpawnCurrent()
         {
+            if (EndlessGameUI.instance.state == EndlessGameUI.State.GameOver)
+            {
+                StopWave();
+                // 让所有兵线上已经生成的所有agent播放一个死亡动画然后销毁
+                WaveLineAgentInsMgr[] waveLineAgentIns = AgentInsManager.instance.GetWaveLineList();
+
+                for (int i = 0; i < waveLineAgentIns.Length; ++i)
+                {
+                    while (waveLineAgentIns[i].listAgent.Count > 0)
+                    {
+                        waveLineAgentIns[i].listAgent[0].PlayDeath();
+                    }
+                }
+                return;
+            }
+
             if (isWaveStoped) return;
 
             if (!TrySetupNextSpawn())
@@ -148,9 +165,9 @@
 
             // 木属性小怪需要同时生成两个,先这么写吧(WTF)
             bool isDouble = enemyData.resource == 103;
-
-            Poolable agentPoolable = Poolable.TryGetPoolable<Poolable>(AgentConfigurationList[index].agentPrefab.gameObject);
-            Agent newAgent = agentPoolable.GetComponent<Agent>();
+            GameObject prefab = Resources.Load<GameObject>($"Prefabs/Enemies/{enemyData.resource}");
+            GameObject obj = Instantiate(prefab);
+            Agent newAgent = obj.GetComponent<Agent>();
             newAgent.EnemyData = enemyData;
             newAgent.transform.position = StartingNode.transform.position;
 
@@ -172,15 +189,13 @@
             int gold = waveData.Config.b_coin * enemyData.coin_rate;
 
             newAgent.SetAgentData(hp, speed, gold);
-            // todo 这里先填1级后面需要修改
-            newAgent.healthBar.SetHealthLevel(1);
             // 加入Manager统一管理.
             AgentInsManager.instance.addAgent(newAgent);
 
             if (isDouble)
             {
-                Poolable agentPoolable2 = Poolable.TryGetPoolable<Poolable>(AgentConfigurationList[index].agentPrefab.gameObject);
-                Agent doubleAgent = agentPoolable2.GetComponent<Agent>();
+                obj = Instantiate(prefab);
+                Agent doubleAgent = obj.GetComponent<Agent>();
                 doubleAgent.EnemyData = enemyData;
                 doubleAgent.transform.position = StartingNode.transform.position;
 
@@ -194,17 +209,16 @@
                 doubleAgent.Initialize();
 
                 doubleAgent.SetAgentData(hp, speed, gold);
-                doubleAgent.healthBar.SetHealthLevel(1);
                 AgentInsManager.instance.addAgent(doubleAgent);
             }
         }
 
         /// <summary>
-		/// 从Tower的AttributeId获取到怪物的数据
-		/// </summary>
-		/// <param name="id"></param>
-		/// <returns></returns>
-		protected List<int> GetMonsterDataFromAttributeId(int id)
+        /// 从Tower的AttributeId获取到怪物的数据
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        protected List<int> GetMonsterDataFromAttributeId(int id)
         {
             geminfo tgem = new geminfo();
             if (JsonDataCenter.gemInfoDic.TryGetValue(id, out tgem))
@@ -230,7 +244,7 @@
         }
 
         /// <summary>
-        /// 暂时先这么处理 cx test
+        /// 暂时先这么处理
         /// </summary>
         /// <param name="resId">endless_enemy表的资源id</param>
         /// <returns>所有可选的agent列表的索引</returns>

--
Gitblit v1.9.1