From 452c75675679c44cc39b04bdb7d330d7c5c14d5c Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Tue, 29 Dec 2020 10:48:06 +0800
Subject: [PATCH] 增加多SDK支持。常规使用SDKChannel.KTGM 偶哈游的是空SDK

---
 Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs |   72 +++++++++++++++++++++++++++++++++++-
 1 files changed, 70 insertions(+), 2 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs b/Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs
index 38543b2..dacb0fa 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,用于无尽模式。当前类附加在对应的购买开启按钮上。
@@ -12,7 +13,7 @@
 public class EndlessTowerGridOpen : MonoBehaviour
 {
     // 当前Button对应的Cash Text数据
-    public TextMeshProUGUI cashText;
+    public TextMeshPro cashText;
 
     // 当前Button对应的image.
     public Image mImage;
@@ -32,17 +33,65 @@
     // 对应放置TowerGrid的类.
     protected TowerPlacementGridEndless towerGrid;
 
+    private bool isOpenTower = false;
+
     // Start is called before the first frame update
     void Start()
     {
         bWaitOpen = false;
     }
 
-    public void SetBuyBtnInfo(int x, int y, TowerPlacementGridEndless tpg)
+    /// <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, string cost)
     {
         gridX = x;
         gridY = y;
         towerGrid = tpg;
+
+        TowerDefense.UI.HUD.PlacementTile tile = TowerPlacementGridEndless.instance.GetOneTile(x, y);
+        if (tile != null && tile.BuyMesh != null)
+        {
+            //cashText.gameObject.SetActive(false);
+            Transform ts = tile.BuyMesh.transform.Find("CashText");
+            cashText = ts.GetComponent<TextMeshPro>();
+        }
+
+        cashText.SetText(cost);
+
     }
 
     /// <summary>
@@ -52,17 +101,36 @@
     {
         if (bWaitOpen) return;
 
+        // if (GameConfig.IsNewbie)
+        // {
+        //     if (!GameConfig.CanOpenNewTower) return;
+
+        //     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