From 0690876fea4792f47b18a8e9d3133b8be0cfba7e Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Wed, 09 Dec 2020 17:41:57 +0800
Subject: [PATCH] 修改背景图设置 修改音效

---
 Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs |   81 ++++++++++++++++++++++++++++++++++++++--
 1 files changed, 76 insertions(+), 5 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
index 2f240a5..1ab09c4 100644
--- a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
+++ b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -133,6 +133,13 @@
         public Image CritWord;
 
         /// <summary>
+        /// 冰冻飘字
+        /// </summary>
+        public Image FrostWord;
+
+        public Image RestrainWord;
+
+        /// <summary>
         /// 购买塔防按钮上的Text.
         /// </summary>
         protected TextMeshProUGUI towerPriceText;
@@ -194,6 +201,7 @@
                 return m_CurrentTower != null;
             }
         }
+
 
         // TowerList用于简单记录相关的数据
         protected List<Tower> m_listTower = new List<Tower>();
@@ -575,7 +583,7 @@
                 if (tower.towerName != towerOld.towerName)
                     continue;
 
-                newT = Instantiate(tower, transform);
+                newT = tower;
                 break;
             }
 
@@ -685,7 +693,7 @@
                 Tower sTower = PickTowerInGrid(pointer);
 
                 // 泡泡禁锢状态不允许合并
-                if (sTower.IsBondage) return false;
+                if (sTower && sTower.IsStartBondage) return false;
 
                 if (sTower && sTower != towerToMove)
                 {
@@ -712,7 +720,7 @@
                 Tower sTower = PickTowerInGrid(pointer);
 
                 // 泡泡禁锢状态不允许置换
-                if (sTower.IsBondage) return false;
+                if (sTower && sTower.IsStartBondage) return false;
 
                 if (sTower && sTower != towerToMove)
                 {
@@ -765,6 +773,27 @@
                 }
             }
             return "";
+        }
+
+        /// <summary>
+        /// 提升所有塔的等级,如果现在塔的等级 < level,设置等级为 level,如果 > level 不做改变
+        /// </summary>
+        /// <param name="level">从0开始</param>
+        public void UpgradeAllTowerMinLevel(int level)
+        {
+            if (level < 0 || level > ElfUpgradeData.MaxTowerLevel - 1) return;
+
+            for (int i = 0; i < m_listTower.Count; ++i)
+            {
+                if (m_listTower[i].currentLevel < level)
+                {
+                    m_listTower[i].currentLevel = level;
+                    m_listTower[i].CurrentTowerLevel.SetShowLevel(level + 1);
+                    m_listTower[i].CurrentTowerLevel.SetScale(level + 1);
+                    PlayUpgradeEffect(m_listTower[i]);
+                }
+            }
+            UpdateMinLevelArr();
         }
 
         /// <summary>
@@ -874,6 +903,7 @@
             EndlessBossSkillManager.instance.ClearSkillList();
             EndlessBossHPManager.instance.SwitchHP(true);
             EndlessBossHPManager.instance.SetCurrentHP(0);
+            EndlessLevelManager.instance.WaveManager.HideTunel();
 
             // 停止所有兵线的出兵
             for (int i = 0; i < TotalWaveLines; ++i)
@@ -1075,7 +1105,7 @@
             }
         }
 
-        void CloseCanPlace()
+        public void CloseCanPlace()
         {
             dragTowerPlacement.CloseCanPlace();
             if (bInAttackModeTower != null)
@@ -1134,6 +1164,15 @@
         }
 
         #endregion
+
+        /// <summary>
+        /// 推拽结束,如果判断HasTower==true 就强行释放
+        /// </summary>
+        public void EndDragCancelPlaceTower()
+        {
+            Debug.Log("强行释放了m_CurrentTower");
+            CancelPlaceTower(null);
+        }
 
         /// <summary>
         /// 拖动一个Tower之后,松开鼠标或者EndDrag.
@@ -1204,10 +1243,14 @@
                     towerToMove.Sell();
                     towerToMove = null;
                 }
+                if (m_CurrentTower != null && m_CurrentTower.controller != null)
+                    Destroy(m_CurrentTower.controller.gameObject);
             }
             else if (EndlessLevelManager.instanceExists && IsSubstitute(pointerInfo))
             {
                 CheckCanChangePos(pointerInfo);
+                if (EndlessUIStart.instance.GameStartTime >= JsonDataCenter.DOUBLE_GEM_TIME)
+                    UpgradeAllTowerMinLevel(1);
             }
             // 当前是Skill塔位的状态.
             else if (bSkill)
@@ -1279,6 +1322,9 @@
                     //强制交换塔的时候检查自身充能条
                     newTower1.CheckCtrl();
                     newTower2.CheckCtrl();
+                    //Debug.Log($"newTower1:{newTower1.towerName}  newTower2:{newTower2.towerName}");
+
+                    TowerPlacementGridEndless.instance.PlayPutPs(newTower2.gridPosition.x, newTower2.gridPosition.y);
                     return true;
                 }
             }
@@ -1689,6 +1735,7 @@
         public void PlayUpgradeEffect(Tower newTower)
         {
             newTower.CurrentTowerLevel.PlayUpGradeEffect();
+            AudioSourceManager.Ins.Play(AudioEnum.Upgrade);
         }
 
         /// <summary>
@@ -2049,6 +2096,30 @@
             obj.GetComponent<TextMoveDoTween>().FloatCritWord(screenPos.x, screenPos.y);
         }
 
+        /// <summary>
+        /// 冰冻飘字
+        /// </summary>
+        /// <param name="worldPos"></param>
+        public void FloatFrostWord(Vector3 worldPos)
+        {
+            Vector3 screenPos = m_Camera.WorldToScreenPoint(worldPos);
+            GameObject obj = Instantiate(FrostWord.gameObject);
+            obj.GetComponent<Transform>().SetParent(GameObject.Find("MainUI/TextPanel").GetComponent<Transform>(), false);
+            obj.GetComponent<TextMoveDoTween>().FloatFrostWord(screenPos.x, screenPos.y);
+        }
+
+        /// <summary>
+        /// 克制飘字
+        /// </summary>
+        /// <param name="worldPos"></param>
+        public void FloatRestrainWord(Vector3 worldPos)
+        {
+            Vector3 screenPos = m_Camera.WorldToScreenPoint(worldPos);
+            GameObject obj = Instantiate(RestrainWord.gameObject);
+            obj.GetComponent<Transform>().SetParent(GameObject.Find("MainUI/TextPanel").GetComponent<Transform>(), false);
+            obj.GetComponent<TextMoveDoTween>().FloatRestrainWord(screenPos.x, screenPos.y);
+        }
+
         private void Start()
         {
             // 获取相应的放置区域。
@@ -2222,7 +2293,7 @@
             if (controller != null)
             {
                 // 泡泡禁锢状态不允许拖动
-                if (controller.IsBondage) return;
+                if (controller.IsStartBondage) return;
 
                 SelectTower(controller);
             }

--
Gitblit v1.9.1