From c1d12cdfd23933a0db431a70ff5e145924864782 Mon Sep 17 00:00:00 2001
From: River Jiang <546213258@qq.com>
Date: Wed, 21 Oct 2020 15:08:29 +0800
Subject: [PATCH] Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master

---
 Assets/Scripts/TowerDefense/Economy/LootDrop.cs |  178 +++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 99 insertions(+), 79 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/Economy/LootDrop.cs b/Assets/Scripts/TowerDefense/Economy/LootDrop.cs
index 237707e..ac54058 100644
--- a/Assets/Scripts/TowerDefense/Economy/LootDrop.cs
+++ b/Assets/Scripts/TowerDefense/Economy/LootDrop.cs
@@ -2,90 +2,110 @@
 using TowerDefense.Agents;
 using TowerDefense.Level;
 using UnityEngine;
+using KTGMGemClient;
+using System.Collections.Generic;
 
 namespace TowerDefense.Economy
 {
-	/// <summary>
-	/// A class that adds money to the currency when the attached DamagableBehaviour dies
-	/// 每一个Agent都会有一个LootDrop类,对应的DamageableBehaviour分别派生自:
-	/// Agent--Targetable--DamageableBehaviour
-	/// </summary>
-	[RequireComponent(typeof(DamageableBehaviour))]
-	public class LootDrop : MonoBehaviour
-	{
-		/// <summary>
-		/// The amount of loot/currency dropped when object "dies"
-		/// </summary>
-		public int lootDropped = 1;
+    /// <summary>
+    /// A class that adds money to the currency when the attached DamagableBehaviour dies
+    /// 每一个Agent都会有一个LootDrop类,对应的DamageableBehaviour分别派生自:
+    /// Agent--Targetable--DamageableBehaviour
+    /// </summary>
+    [RequireComponent(typeof(DamageableBehaviour))]
+    public class LootDrop : MonoBehaviour
+    {
+        /// <summary>
+        /// The amount of loot/currency dropped when object "dies"
+        /// </summary>
+        public int lootDropped = 1;
 
-		/// <summary>
-		/// The attached DamagableBehaviour
-		/// </summary>
-		protected DamageableBehaviour m_DamageableBehaviour;
+        /// <summary>
+        /// The attached DamagableBehaviour
+        /// </summary>
+        protected DamageableBehaviour m_DamageableBehaviour;
 
-		/// <summary>
-		/// Caches attached DamageableBehaviour
-		/// </summary>
-		protected virtual void OnEnable()
-		{
-			if (m_DamageableBehaviour == null)
-			{
-				m_DamageableBehaviour = GetComponent<DamageableBehaviour>();
-			}
-			m_DamageableBehaviour.configuration.died += OnDeath;
-		}
-
-		/// <summary>
-		/// Unsubscribed from the <see cref="m_DamageableBehaviour"/> died event
-		/// </summary>
-		protected virtual void OnDisable()
-		{
-			m_DamageableBehaviour.configuration.died -= OnDeath;
-		}
-
-		/// <summary>
-		/// The callback for when the attached object "dies".
-		/// Add <see cref="lootDropped"/> to current currency
-		/// </summary>
-		protected virtual void OnDeath(HealthChangeInfo info)
-		{
-			m_DamageableBehaviour.configuration.died -= OnDeath;
-
-			// 
-			// 当前LootDrop所在的Agent死亡后,给全局的CurrencyManager增加金币.
-			// 当前Agent死亡之后,需要在对手盘加入新的Agent
-			LevelManager levelManager = LevelManager.instance;
-			OpponentMgr opmgr = OpponentMgr.instance;
-			if (levelManager == null)
-				return;
-			Agent agent = gameObject.GetComponent<Agent>();
-			if( (agent!=null) && agent.opponentAgent)
-            {				
-				if (opmgr == null)
-				{
-					return;
-				}
-				opmgr.currency.AddCurrency(lootDropped);
-				/* 修改为不再死亡后发布怪物到对方视野.
-				if( agent.bRespawn)
-                {
-					AgentSetData sd = agent.mAgentData;
-					int attid = OpponentMgr.instance.GetTowerAttID(agent.waveLineID);
-					levelManager.waveManager.SpawnAgent(agent.waveLineID,sd.hp,sd.speed, attid );
-				}*/
-            }
-            else
+        /// <summary>
+        /// Caches attached DamageableBehaviour
+        /// </summary>
+        protected virtual void OnEnable()
+        {
+            if (m_DamageableBehaviour == null)
             {
-				levelManager.currency.AddCurrency(lootDropped);
-				/*
-				if (agent.bRespawn)
-                {
-					AgentSetData sd = agent.mAgentData;
-					int attid = levelManager.GetTowerAttID(agent.waveLineID);
-					opmgr.m_WaveManager.SpawnAgent(agent.waveLineID, sd.hp,sd.speed, attid );
-				}*/
-			}
+                m_DamageableBehaviour = GetComponent<DamageableBehaviour>();
+            }
+            m_DamageableBehaviour.configuration.died += OnDeath;
+        }
 
-		}
-	}
+        /// <summary>
+        /// Unsubscribed from the <see cref="m_DamageableBehaviour"/> died event
+        /// </summary>
+        protected virtual void OnDisable()
+        {
+            m_DamageableBehaviour.configuration.died -= OnDeath;
+        }
+
+        /// <summary>
+        /// The callback for when the attached object "dies".
+        /// Add <see cref="lootDropped"/> to current currency
+        /// </summary>
+        protected virtual void OnDeath(HealthChangeInfo info)
+        {
+            m_DamageableBehaviour.configuration.died -= OnDeath;
+
+            if (LevelManager.instanceExists)
+            {
+                // 当前LootDrop所在的Agent死亡后,给全局的CurrencyManager增加金币.
+                // 当前Agent死亡之后,需要在对手盘加入新的Agent
+                LevelManager levelManager = LevelManager.instance;
+                OpponentMgr opmgr = OpponentMgr.instance;
+                if (levelManager == null)
+                    return;
+                Agent agent = gameObject.GetComponent<Agent>();
+                if ((agent != null) && agent.opponentAgent)
+                {
+                    if (opmgr == null)
+                    {
+                        return;
+                    }
+                    opmgr.currency.AddCurrency(lootDropped);
+                    /* 修改为不再死亡后发布怪物到对方视野.
+                    if( agent.bRespawn)
+                    {
+                        AgentSetData sd = agent.mAgentData;
+                        int attid = OpponentMgr.instance.GetTowerAttID(agent.waveLineID);
+                        levelManager.waveManager.SpawnAgent(agent.waveLineID,sd.hp,sd.speed, attid );
+                    }*/
+                }
+                else
+                {
+                    levelManager.currency.AddCurrency(lootDropped);
+                    /*
+                    if (agent.bRespawn)
+                    {
+                        AgentSetData sd = agent.mAgentData;
+                        int attid = levelManager.GetTowerAttID(agent.waveLineID);
+                        opmgr.m_WaveManager.SpawnAgent(agent.waveLineID, sd.hp,sd.speed, attid );
+                    }*/
+                }
+            }
+            else if (EndlessLevelManager.instanceExists)
+            {
+                Agent agent = gameObject.GetComponent<Agent>();
+
+                if (agent != null)
+                {
+                    EndlessLevelManager.instance.Currency.AddCurrency(lootDropped);
+                    // 处理掉落
+                    int tunel = agent.waveLineID + 1;
+
+                    List<reward> rewardList = EndlessPortData.GetDropRewardList(EndlessLevelManager.instance.CurrentLevel,
+                        EndlessLevelManager.instance.WaveManager.CurrentWaveIndex + 1, tunel);
+
+                    if (rewardList.Count > 0)
+                        EndlessDropManager.instance.AddDrop(rewardList, gameObject.transform.position);
+                }
+            }
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1