From 1f5eda1c9d22a3676298751c7282a5874f13bed0 Mon Sep 17 00:00:00 2001
From: River Jiang <546213258@qq.com>
Date: Tue, 27 Oct 2020 17:26:52 +0800
Subject: [PATCH] 加入充能、子弹进度条保持进度的功能

---
 Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs
index af04ff7..d8db3e8 100644
--- a/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs
+++ b/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs
@@ -192,6 +192,12 @@
         protected Tower towerToMove = null;
 
         /// <summary>
+        /// UI界面对应的进度
+        /// </summary>
+        protected int uiCtlProgresss = 0;
+
+
+        /// <summary>
         /// Fires when the <see cref="State"/> changes
         /// should only allow firing when TouchUI is used
         /// </summary>
@@ -342,6 +348,10 @@
 
         public void delTower(Tower t)
         {
+            // 删除Tower之前去掉充能条数据.
+            if( t.bInAttackMode)
+                t.DisableTowerUICtrl();
+
             // 删除Tower有可能对应的Timer.
             foreach (var tdata in towerTimeDic)
             {
@@ -580,12 +590,21 @@
                 break;
             }
 
+            //
+            // 重设界面数据
+            uiCtlProgresss = 0;
 
             // 从列表中删除Tower.并破坏Tower的外形。
             dragTowerLevel = towerOld.currentLevel;
             // 尝试不再删除原来的Tower,而是尝试在合成成功后再删除原来的Tower
             towerOld.showTower(false);
             towerToMove = towerOld;
+
+            if( towerOld.bInAttackMode)
+            {
+                int pro = towerOld.GetTowerUICtrlProgress();
+                uiCtlProgresss = pro;
+            }
 
             // 先删除,再设置移动相关。
             SetToDragMode(newT);
@@ -835,7 +854,17 @@
                 // 开启相应的兵线:
                 Tower tw = FindTowerWithGridIdx(m_GridPosition.x, m_GridPosition.y);
                 if (tw != null)
+                {
                     LevelManager.instance.startWaveLine(m_GridPosition.x, false, tw.attributeId);
+                    
+                    // 顺便设置界面的进展
+                    if (uiCtlProgresss > 0)
+                    {
+                        tw.SetTowerUICtlProcess(uiCtlProgresss);
+                        Debug.Log("设置当前的进度:" + uiCtlProgresss);
+                        uiCtlProgresss = 0;
+                    }
+                }
             }
             // 当前是Skill塔位的状态.
             else if (bSkill)

--
Gitblit v1.9.1