From 82cc6bd447a9eefa2bdc1e21e93938d95213755a Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Thu, 17 Dec 2020 09:41:11 +0800
Subject: [PATCH] 连杀BUG

---
 Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 54 insertions(+), 5 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs b/Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs
index 7a663da..5ff5507 100644
--- a/Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs
+++ b/Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs
@@ -5,6 +5,7 @@
 using TowerDefense.Towers.Placement;
 using UnityEngine;
 using UnityEngine.UI;
+using DG.Tweening;
 
 /// <summary>
 /// 当前类用于开启新的TowerPlacementGrid,用于无尽模式。当前类附加在对应的购买开启按钮上。
@@ -32,10 +33,47 @@
     // 对应放置TowerGrid的类.
     protected TowerPlacementGridEndless towerGrid;
 
+    private bool isOpenTower = false;
+
     // Start is called before the first frame update
     void Start()
     {
         bWaitOpen = false;
+    }
+
+    /// <summary>
+    /// Subscribe to the level manager
+    /// </summary>
+    protected virtual void OnEnable()
+    {
+        if (EndlessLevelManager.instanceExists)
+            EndlessLevelManager.instance.Currency.currencyChanged += OnCurrencyChanged;
+    }
+
+    /// <summary>
+    /// Unsubscribe from the level manager
+    /// </summary>
+    protected virtual void OnDisable()
+    {
+        if (EndlessLevelManager.instanceExists)
+            EndlessLevelManager.instance.Currency.currencyChanged -= OnCurrencyChanged;
+    }
+
+    private void OnCurrencyChanged()
+    {
+        CheckCurrencyEnough();
+    }
+
+    public void CheckCurrencyEnough()
+    {
+        int result;
+        int.TryParse(cashText.text.ToString(), out result);
+        int current = EndlessLevelManager.instance.Currency.currentCurrency;
+
+        if (current >= result)
+            cashText.color = new Color(1f, 1f, 1f);
+        else
+            cashText.color = new Color(0.5f, 0.5f, 0.5f);
     }
 
     public void SetBuyBtnInfo(int x, int y, TowerPlacementGridEndless tpg)
@@ -52,25 +90,36 @@
     {
         if (bWaitOpen) return;
 
-        if (GameConfig.IsNewbie)
-        {
-            if (!GameConfig.CanOpenNewTower) return;
+        // if (GameConfig.IsNewbie)
+        // {
+        //     if (!GameConfig.CanOpenNewTower) return;
 
-            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.GetOneTowerPos);
-        }
+        //     if (!isOpenTower)
+        //     {
+        //         isOpenTower = true;
+        //         EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.GetOneTowerPos);
+        //     }
+        // }
 
 
         if (towerGrid != null)
         {
             float cashToOpen = TowerPlacementGridEndless.GRID_OPENCASH;
             if (EndlessLevelManager.instance.Currency.currentCurrency < cashToOpen)
+            {
+                AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
+                cashText.color = new Color(218f / 255f, 32f / 255f, 32f / 255f);
+                DOTween.To(() => cashText.color, (Color v) => cashText.color = v, cashText.color, 0.2f)
+                    .OnComplete(CheckCurrencyEnough);
                 return;
+            }
 
             // 减少Cash并开启相应塔防管理器的兵线
             bool bsucc = EndlessLevelManager.instance.Currency.TryPurchase((int)cashToOpen);
 
             if (bsucc)
             {
+                ++GameConfig.EndlessOpenAttackTowerCount;
                 towerGrid.updateGridOpenCoin(gridX, gridY);
                 if (mImage)
                     mImage.color = new Color(1.0f, 1.0f, 1.0f, 0.0f);

--
Gitblit v1.9.1