From 65a6f11553bcb46d6244dbafe63b6225dfa4d56e Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Tue, 10 Nov 2020 20:29:12 +0800
Subject: [PATCH] 可以升级的塔播放动画

---
 Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs |   59 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 40 insertions(+), 19 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
index 71ae8ab..9de2db0 100644
--- a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
+++ b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -851,21 +851,37 @@
         /// </summary>
         public void CheckAllCanPlace()
         {
-            List<IntVector2> allTowerP = new List<IntVector2>();
-            for (int i = 0; i < m_listTower.Count; i++)
+            if (m_CurrentTower != null)
             {
-                if (m_listTower[i].bInAttackMode && towerToMove && m_listTower[i].currentLevel == dragTowerLevel && m_listTower[i].towerName == towerToMove.towerName)
+                if (m_CurrentTower.controller.towerFeature == EFeatureTower.NULL)
                 {
-                    //说明可以合成
+                    List<IntVector2> allTowerP = new List<IntVector2>();
+                    List<IntVector2> allPSTowerP = new List<IntVector2>();//需要播放升级动画的
+
+                    for (int i = 0; i < m_listTower.Count; i++)
+                    {
+                        if (m_listTower[i].bInAttackMode && towerToMove && m_listTower[i].currentLevel == dragTowerLevel && m_listTower[i].towerName == towerToMove.towerName)
+                        {
+                            if (towerToMove.gridPosition != m_listTower[i].gridPosition)
+                                //说明可以合成
+                                allPSTowerP.Add(m_listTower[i].gridPosition);
+                        }
+                        else
+                        {
+                            //把不符合条件的传进去
+                            allTowerP.Add(m_listTower[i].gridPosition);
+                        }
+                    }
+
+                (m_CurrentArea as TowerPlacementGridEndless).CheckAllCanPlace(allTowerP);
+                    (m_CurrentArea as TowerPlacementGridEndless).PlayPS(allPSTowerP);
                 }
-                else
+                else if (m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Fire || m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb)
                 {
-                    //把不符合条件的传进去
-                    allTowerP.Add(m_listTower[i].gridPosition);
+                    //Debug.Log("需要激活兵线下方绿色标识");
+
                 }
             }
-
-            (m_CurrentArea as TowerPlacementGridEndless).CheckAllCanPlace(allTowerP);
         }
 
         /// <summary>
@@ -873,7 +889,8 @@
         /// </summary>
         public void CloseCanPlaceRenderer()
         {
-            (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlaceRenderer();
+            if (m_CurrentArea != null)
+                (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlaceRenderer();
         }
 
         /// <summary>
@@ -883,18 +900,22 @@
         public void CheckTowerPlace(PointerInfo pointerInfo)
         {
             //return;
-            //下面是为了设置一个虚拟的塔
-            if (isFreeAttackGridOnDrag(pointerInfo) && m_CurrentTower.controller.towerFeature == EFeatureTower.NULL)
+            if (m_CurrentArea != null && m_CurrentArea is TowerPlacementGridEndless)
             {
-                //Debug.Log("得到了一个空的塔位");
+                //下面是为了设置一个虚拟的塔
+                if (isFreeAttackGridOnDrag(pointerInfo) && m_CurrentTower.controller.towerFeature == EFeatureTower.NULL)
+                {
+                    //Debug.Log("得到了一个空的塔位");
 
-                (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y);
-                //if(temporaryMat)
+                    (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y);
+                    //if(temporaryMat)
+                }
+                else
+                {
+                    (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlace();
+                }
             }
-            else
-            {
-                (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlace();
-            }
+
         }
 
         /// <summary>

--
Gitblit v1.9.1