From cc7ed63c3efab2640c9cc56225519ab187fd7cbc Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Wed, 02 Dec 2020 11:30:15 +0800
Subject: [PATCH] 拓展塔等级上限

---
 Assets/Scripts/TowerDefense/UI/HUD/TowerSpawnButton.cs |  251 ++++++++++++++++++++++++-------------------------
 1 files changed, 122 insertions(+), 129 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/UI/HUD/TowerSpawnButton.cs b/Assets/Scripts/TowerDefense/UI/HUD/TowerSpawnButton.cs
index 9cff42c..01915ad 100644
--- a/Assets/Scripts/TowerDefense/UI/HUD/TowerSpawnButton.cs
+++ b/Assets/Scripts/TowerDefense/UI/HUD/TowerSpawnButton.cs
@@ -8,150 +8,143 @@
 
 namespace TowerDefense.UI.HUD
 {
-	/// <summary>
-	/// A button controller for spawning towers
-	/// </summary>
-	[RequireComponent(typeof(RectTransform))]
-	public class TowerSpawnButton : MonoBehaviour, IDragHandler
-	{
-		/// <summary>
-		/// The text attached to the button
-		/// </summary>
-		public Text buttonText;
+    /// <summary>
+    /// A button controller for spawning towers
+    /// </summary>
+    [RequireComponent(typeof(RectTransform))]
+    public class TowerSpawnButton : MonoBehaviour, IDragHandler
+    {
+        /// <summary>
+        /// The text attached to the button
+        /// </summary>
+        public Text buttonText;
 
-		public Image towerIcon;
+        public Image towerIcon;
 
-		public Button buyButton;
+        public Button buyButton;
 
-		public Image energyIcon;
+        public Image energyIcon;
 
-		public Color energyDefaultColor;
-		
-		public Color energyInvalidColor;
+        public Color energyDefaultColor;
 
-		/// <summary>
-		/// Fires when the button is tapped
-		/// </summary>
-		public event Action<Tower> buttonTapped;
+        public Color energyInvalidColor;
 
-		/// <summary>
-		/// Fires when the pointer is outside of the button bounds
-		/// and still down
-		/// </summary>
-		public event Action<Tower> draggedOff;
-		
-		/// <summary>
-		/// The tower controller that defines the button
-		/// </summary>
-		Tower m_Tower;
+        /// <summary>
+        /// Fires when the button is tapped
+        /// </summary>
+        public event Action<Tower> buttonTapped;
 
-		/// <summary>
-		/// Cached reference to level currency
-		/// </summary>
-		Currency m_Currency;
+        /// <summary>
+        /// Fires when the pointer is outside of the button bounds
+        /// and still down
+        /// </summary>
+        public event Action<Tower> draggedOff;
 
-		/// <summary>
-		/// The attached rect transform
-		/// </summary>
-		RectTransform m_RectTransform;
+        /// <summary>
+        /// The tower controller that defines the button
+        /// </summary>
+        Tower m_Tower;
 
-		/// <summary>
-		/// Checks if the pointer is out of bounds
-		/// and then fires the draggedOff event
-		/// </summary>
-		public virtual void OnDrag(PointerEventData eventData)
-		{
-			if (!RectTransformUtility.RectangleContainsScreenPoint(m_RectTransform, eventData.position))
-			{
-				if (draggedOff != null)
-				{
-					draggedOff(m_Tower);
-				}
-			}
-		}
+        /// <summary>
+        /// Cached reference to level currency
+        /// </summary>
+        Currency m_Currency;
 
-		/// <summary>
-		/// Define the button information for the tower
-		/// </summary>
-		/// <param name="towerData">
-		/// The tower to initialize the button with
-		/// </param>
-		public void InitializeButton(Tower towerData)
-		{
-			m_Tower = towerData;
+        /// <summary>
+        /// The attached rect transform
+        /// </summary>
+        RectTransform m_RectTransform;
 
-			if (towerData.levels.Length > 0)
-			{
-				TowerLevel firstTower = towerData.levels[0];
-			}
-			else
-			{
-				Debug.LogWarning("[Tower Spawn Button] No level data for tower");
-			}
+        /// <summary>
+        /// Checks if the pointer is out of bounds
+        /// and then fires the draggedOff event
+        /// </summary>
+        public virtual void OnDrag(PointerEventData eventData)
+        {
+            if (!RectTransformUtility.RectangleContainsScreenPoint(m_RectTransform, eventData.position))
+            {
+                if (draggedOff != null)
+                {
+                    draggedOff(m_Tower);
+                }
+            }
+        }
 
-			if (LevelManager.instanceExists)
-			{
-				m_Currency = LevelManager.instance.currency;
-				m_Currency.currencyChanged += UpdateButton;
-			}
-			else
-			{
-				Debug.LogWarning("[Tower Spawn Button] No level manager to get currency object");
-			}
-			UpdateButton();
-		}
+        /// <summary>
+        /// Define the button information for the tower
+        /// </summary>
+        /// <param name="towerData">
+        /// The tower to initialize the button with
+        /// </param>
+        public void InitializeButton(Tower towerData)
+        {
+            m_Tower = towerData;
 
-		/// <summary>
-		/// Cache the rect transform
-		/// </summary>
-		protected virtual void Awake()
-		{
-			m_RectTransform = (RectTransform) transform;
-		}
+            TowerLevel firstTower = towerData.CurrentTowerLevel;
 
-		/// <summary>
-		/// Unsubscribe from events
-		/// </summary>
-		protected virtual void OnDestroy()
-		{
-			if (m_Currency != null)
-			{
-				m_Currency.currencyChanged -= UpdateButton;
-			}
-		}
+            if (LevelManager.instanceExists)
+            {
+                m_Currency = LevelManager.instance.currency;
+                m_Currency.currencyChanged += UpdateButton;
+            }
+            else
+            {
+                Debug.LogWarning("[Tower Spawn Button] No level manager to get currency object");
+            }
+            UpdateButton();
+        }
 
-		/// <summary>
-		/// The click for when the button is tapped
-		/// </summary>
-		public void OnClick()
-		{
-			if (buttonTapped != null)
-			{
-				buttonTapped(m_Tower);
-			}
-		}
+        /// <summary>
+        /// Cache the rect transform
+        /// </summary>
+        protected virtual void Awake()
+        {
+            m_RectTransform = (RectTransform)transform;
+        }
 
-		/// <summary>
-		/// Update the button's button state based on cost
-		/// </summary>
-		void UpdateButton()
-		{
-			if (m_Currency == null)
-			{
-				return;
-			}
+        /// <summary>
+        /// Unsubscribe from events
+        /// </summary>
+        protected virtual void OnDestroy()
+        {
+            if (m_Currency != null)
+            {
+                m_Currency.currencyChanged -= UpdateButton;
+            }
+        }
 
-			// // Enable button
-			// if (m_Currency.CanAfford(m_Tower.purchaseCost) && !buyButton.interactable)
-			// {
-			// 	buyButton.interactable = true;
-			// 	energyIcon.color = energyDefaultColor;
-			// }
-			// else if (!m_Currency.CanAfford(m_Tower.purchaseCost) && buyButton.interactable)
-			// {
-			// 	buyButton.interactable = false;
-			// 	energyIcon.color = energyInvalidColor;
-			// }
-		}
-	}
+        /// <summary>
+        /// The click for when the button is tapped
+        /// </summary>
+        public void OnClick()
+        {
+            if (buttonTapped != null)
+            {
+                buttonTapped(m_Tower);
+            }
+        }
+
+        /// <summary>
+        /// Update the button's button state based on cost
+        /// </summary>
+        void UpdateButton()
+        {
+            if (m_Currency == null)
+            {
+                return;
+            }
+
+            // // Enable button
+            // if (m_Currency.CanAfford(m_Tower.purchaseCost) && !buyButton.interactable)
+            // {
+            // 	buyButton.interactable = true;
+            // 	energyIcon.color = energyDefaultColor;
+            // }
+            // else if (!m_Currency.CanAfford(m_Tower.purchaseCost) && buyButton.interactable)
+            // {
+            // 	buyButton.interactable = false;
+            // 	energyIcon.color = energyInvalidColor;
+            // }
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1