wangguan
2020-12-23 1e192494412a34d17548834a6aff639202cdfdda
Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs
@@ -5,6 +5,7 @@
using TowerDefense.Towers.Placement;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
/// <summary>
/// 当前类用于开启新的TowerPlacementGrid,用于无尽模式。当前类附加在对应的购买开启按钮上。
@@ -40,6 +41,41 @@
        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)
    {
        gridX = x;
@@ -70,7 +106,13 @@
        {
            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);