From 998ebc0dc00c103b365e36797c1a1ac4a6a2afa5 Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Thu, 19 Nov 2020 17:26:28 +0800
Subject: [PATCH] 放置区塔不进行置换 泡泡炸弹逻辑修改

---
 Assets/Scripts/TowerDefense/Level/EndlessWaveManager.cs                   |   12 +++---
 Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs                       |    3 -
 Assets/Scripts/TowerDefense/Agents/Agent.cs                               |    3 +
 Assets/Prefabs/Towers/Water/CopyCatTower_0.prefab                         |    1 
 Assets/Scripts/TowerDefense/UI/EndlessUIStart.cs                          |    3 +
 Assets/Scripts/TowerDefense/UI/EndlessBossSkill/BossSkillBubbleBomb.cs    |   33 +++++-----------
 Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs |    5 +-
 Assets/Scripts/TowerDefense/Agents/BubbleBombAgent.cs                     |    1 
 Assets/Scripts/TowerDefense/UI/EndlessScoreManager.cs                     |    6 +-
 9 files changed, 28 insertions(+), 39 deletions(-)

diff --git a/Assets/Prefabs/Towers/Water/CopyCatTower_0.prefab b/Assets/Prefabs/Towers/Water/CopyCatTower_0.prefab
index cd34085..b8ef3da 100644
--- a/Assets/Prefabs/Towers/Water/CopyCatTower_0.prefab
+++ b/Assets/Prefabs/Towers/Water/CopyCatTower_0.prefab
@@ -43608,6 +43608,7 @@
   m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  offect: {x: 0, y: 0.07, z: 0.04}
 --- !u!1 &4886038783420556509
 GameObject:
   m_ObjectHideFlags: 0
diff --git a/Assets/Scripts/TowerDefense/Agents/Agent.cs b/Assets/Scripts/TowerDefense/Agents/Agent.cs
index 9db35c3..b705e9a 100644
--- a/Assets/Scripts/TowerDefense/Agents/Agent.cs
+++ b/Assets/Scripts/TowerDefense/Agents/Agent.cs
@@ -466,7 +466,8 @@
 
             // 统一管理器内删除当前的Agent:
             AgentInsManager.instance.removeAgent(this);
-            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessAgentDead, this);
+            if (EnemyData != null)
+                EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessAgentDead, EnemyData.point);
             base.Remove();
 
             if (m_LevelManager) m_LevelManager.DecrementNumberOfEnemies();
diff --git a/Assets/Scripts/TowerDefense/Agents/BubbleBombAgent.cs b/Assets/Scripts/TowerDefense/Agents/BubbleBombAgent.cs
index a1fb6be..5e80da5 100644
--- a/Assets/Scripts/TowerDefense/Agents/BubbleBombAgent.cs
+++ b/Assets/Scripts/TowerDefense/Agents/BubbleBombAgent.cs
@@ -1,5 +1,4 @@
 using DG.Tweening;
-using Core.Utilities;
 using UnityEngine;
 
 /**
diff --git a/Assets/Scripts/TowerDefense/Level/EndlessWaveManager.cs b/Assets/Scripts/TowerDefense/Level/EndlessWaveManager.cs
index e137274..c07baf8 100644
--- a/Assets/Scripts/TowerDefense/Level/EndlessWaveManager.cs
+++ b/Assets/Scripts/TowerDefense/Level/EndlessWaveManager.cs
@@ -170,13 +170,13 @@
             InitWaveData();
             RefreshBoss();
 
-            // if (!GameConfig.IsNewbie)
-            // {
-            //     endless_boss bossData = EndlessBossData.GetDataById(waveData[0].Config.resource);
+            if (!GameConfig.IsNewbie)
+            {
+                endless_boss bossData = EndlessBossData.GetDataById(waveData[0].Config.resource);
 
-            //     if (bossData != null)
-            //         EndlessBossSkillManager.instance.Init(bossData.skill);
-            // }
+                if (bossData != null)
+                    EndlessBossSkillManager.instance.Init(bossData.skill);
+            }
         }
 
         /// <summary>
diff --git a/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs b/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs
index 6fa8a24..57aedeb 100644
--- a/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs
+++ b/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs
@@ -890,10 +890,11 @@
 
             for (int tx = 0; tx < dimensions.x; tx++)
             {
-                m_arrGridType[tx, sy] = PlacementGridType.EGridWaitBuy;
+                // cx test
                 m_arrGridType[tx, sy - 1] = PlacementGridType.EGridWaitBuy;
+                m_arrGridType[tx, sy] = PlacementGridType.EGridOpen;
             }
-            m_arrGridType[2, 3] = PlacementGridType.EGridOpen;
+            // m_arrGridType[2, 3] = PlacementGridType.EGridOpen;
             ++GameConfig.EndlessOpenAttackTowerCount;
         }
 
diff --git a/Assets/Scripts/TowerDefense/UI/EndlessBossSkill/BossSkillBubbleBomb.cs b/Assets/Scripts/TowerDefense/UI/EndlessBossSkill/BossSkillBubbleBomb.cs
index 5eb9475..d3d58ab 100644
--- a/Assets/Scripts/TowerDefense/UI/EndlessBossSkill/BossSkillBubbleBomb.cs
+++ b/Assets/Scripts/TowerDefense/UI/EndlessBossSkill/BossSkillBubbleBomb.cs
@@ -101,8 +101,6 @@
         /// </summary>
         protected List<GameObject> bubbleBombPool;
 
-        protected int capacity = 10;
-
         private int getCount;
 
         private int recycleCount;
@@ -209,18 +207,9 @@
         public override void Init()
         {
             base.Init();
-            Debug.Log("--------------------- 泡泡炸弹技能初始化 ---------------------");
+            Debug.Log("---- 泡泡炸弹技能初始化 ----");
             bubbleBombList = new List<BubbleBombConfig>();
             bubbleBombPool = new List<GameObject>();
-
-            GameObject prefab = Resources.Load<GameObject>(prefabPath);
-
-            for (int i = 0; i < capacity; ++i)
-            {
-                GameObject obj = GameObject.Instantiate(prefab);
-                obj.SetActive(false);
-                bubbleBombPool.Add(obj);
-            }
         }
 
         /// <summary>
@@ -298,10 +287,10 @@
                 {
                     BubbleBombConfig config = bubbleBombList[i];
                     // 攻击次数够了被打死了 或者 达到基地了
-                    if (config.Agent.bInDeathState) return;
+                    if (config.IsAttackDeath || config.IsArrived) return;
 
                     ++config.AttackCount;
-                    Debug.Log($"--------------------- BubbleBombAgent Id: {id}, AttackCount:{config.AttackCount} ---------------------");
+                    Debug.Log($"---- BubbleBombAgent Id: {id}, AttackCount: {config.AttackCount} ----");
 
                     if (config.AttackCount >= config.NeedAttackCount)
                         AgentDead(config);
@@ -323,7 +312,7 @@
                 {
                     BubbleBombConfig config = bubbleBombList[i];
 
-                    if (config.Agent.bInDeathState) return;
+                    if (config.IsAttackDeath || config.IsArrived) return;
 
                     AgentDead(config);
                     break;
@@ -344,7 +333,7 @@
                 {
                     BubbleBombConfig config = bubbleBombList[i];
 
-                    if (config.Agent.bInDeathState) return;
+                    if (config.IsAttackDeath || config.IsArrived) return;
 
                     config.IsDizzinessed = true;
                     config.Agent.CanMove = false;
@@ -361,11 +350,10 @@
         /// <param name="config"></param>
         private void AgentDead(BubbleBombConfig config)
         {
+            config.IsAttackDeath = true;
+            AgentInsManager.instance.removeAgent(config.Agent);
             config.Agent.StopNormalEffect();
             config.Agent.PlayExplodeEffect();
-            AgentInsManager.instance.removeAgent(config.Agent);
-            config.Agent.bInDeathState = true;
-            config.IsAttackDeath = true;
         }
 
         /// <summary>
@@ -375,10 +363,9 @@
         private void AgentArrived(BubbleBombConfig config)
         {
             config.IsArrived = true;
+            AgentInsManager.instance.removeAgent(config.Agent);
             config.Agent.StopNormalEffect();
             config.Agent.PlayExplodeEffect();
-            AgentInsManager.instance.removeAgent(config.Agent);
-            config.Agent.bInDeathState = true;
         }
 
         public override void Update(float deltaTime)
@@ -433,7 +420,7 @@
                 }
 
                 // 更新移动
-                if (config.Agent != null && !config.Agent.bInDeathState && config.Agent.CanMove)
+                if (config.Agent.CanMove)
                 {
                     Vector3 pos = config.obj.transform.position;
                     pos.z -= deltaTime * config.MoveSpeed;
@@ -449,7 +436,7 @@
                 else
                 {
                     // cx test
-                    Debug.Log("--------------------- 泡泡炸弹不能移动 ---------------------");
+                    Debug.LogError("---- 泡泡炸弹不能移动??? ----");
                 }
             }
         }
diff --git a/Assets/Scripts/TowerDefense/UI/EndlessScoreManager.cs b/Assets/Scripts/TowerDefense/UI/EndlessScoreManager.cs
index f0f1e69..d2a300e 100644
--- a/Assets/Scripts/TowerDefense/UI/EndlessScoreManager.cs
+++ b/Assets/Scripts/TowerDefense/UI/EndlessScoreManager.cs
@@ -67,7 +67,7 @@
         private void Start()
         {
             Init();
-            EventCenter.Ins.Add<Agent>((int)KTGMGemClient.EventType.EndlessAgentDead, AgentDead);
+            EventCenter.Ins.Add<int>((int)KTGMGemClient.EventType.EndlessAgentDead, AgentDead);
             EventCenter.Ins.Add((int)KTGMGemClient.EventType.EndlessOneHit, OnHit);
             EventCenter.Ins.Add<int>((int)KTGMGemClient.EventType.EndlessOneTimeKillCount, OnTimeKill);
             canvasGroup = DoubleHit.GetComponent<CanvasGroup>();
@@ -97,10 +97,10 @@
             }
         }
 
-        private void AgentDead(Agent agent)
+        private void AgentDead(int point)
         {
             if (EndlessGameUI.instance.state == EndlessGameUI.State.GameOver) return;
-            AddScore(agent.EnemyData.point);
+            AddScore(point);
         }
 
         // Update is called once per frame
diff --git a/Assets/Scripts/TowerDefense/UI/EndlessUIStart.cs b/Assets/Scripts/TowerDefense/UI/EndlessUIStart.cs
index 5df7cac..41649f8 100644
--- a/Assets/Scripts/TowerDefense/UI/EndlessUIStart.cs
+++ b/Assets/Scripts/TowerDefense/UI/EndlessUIStart.cs
@@ -74,7 +74,8 @@
         //查询是否已经做过了新手引导
         int guide = PlayerPrefs.GetInt("GemBattleGuide");
         GameConfig.IsNewbie = guide == 0;
-        //GameConfig.IsNewbie = false;
+        // cx test
+        GameConfig.IsNewbie = false;
         if (GameConfig.IsNewbie)
         {
             Debug.Log("开始新手引导");
diff --git a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
index a2ab1bd..d435e9e 100644
--- a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
+++ b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -705,7 +705,7 @@
 
                 if (sTower && sTower != towerToMove)
                 {
-                    if (towerToMove && sTower.towerFeature == EFeatureTower.NULL && towerToMove.towerFeature == EFeatureTower.NULL && sTower.bInAttackMode == towerToMove.bInAttackMode)
+                    if (towerToMove && sTower.towerFeature == EFeatureTower.NULL && towerToMove.towerFeature == EFeatureTower.NULL && sTower.bInAttackMode && towerToMove.bInAttackMode)
                         return true;
                 }
             }
@@ -1141,7 +1141,6 @@
 
             if (playEffect)
                 PlayUpgradeEffect(createdTower);
-
             addTower(createdTower);
             Destroy(currentTower.gameObject);
 

--
Gitblit v1.9.1