chenxin
2020-12-12 7d40c0103dd36587180a8326415cb2fe1b4912d1
Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs
@@ -86,11 +86,7 @@
    public void UpdateDescDisplay()
    {
        int minLevel = 0;
        if (EndlessUIStart.instance.GameStartTime >= JsonDataCenter.DOUBLE_GEM_TIME)
            minLevel = Mathf.Min(EndlessGameUI.instance.MinLevel, 1);
        int minLevel = Mathf.Min(EndlessGameUI.instance.MinLevel, 1);
        NormalDesc.text = $"购买{minLevel + 1}级宝石";
    }
@@ -229,7 +225,7 @@
        if (EndlessGameUI.instance.tdBuyDisable)
        {
            cashText.color = new Color(1f, 0f, 0f);
            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;
@@ -245,44 +241,79 @@
        RandomPlaceTower(newTower, -1, -1, -1, -1, true);
        btnPS?.Play();
        //重置倒计时
        // if (newTower.towerFeature == EFeatureTower.NULL)
        // {
        //     string tmpTowerName = newTower.towerName;
        //     towerNameLis.Add(tmpTowerName);
        //     int count = 0;
        //     bool isFirstBuy = true;
        //     for (int i = 0; i < towerNameLis.Count; i++)
        //     {
        //         if (towerNameLis[i] == tmpTowerName)
        //         {
        //             count++;
        //             if (count == 2)
        //             {
        //                 isFirstBuy = false;
        //                 break;
        //             }
        //         }
        //     }
        if (!isCountStartDown)
        {
            needClickPS.Stop();
            isCountStartDown = true;
        }
        //     if (isFirstBuy)
        //     {
        //         //Debug.Log("首次购买:" + tmpTowerName);
        countDownTime = 0f;
    }
        //     }
        //     else
        //     {
        //         //Debug.Log("购买了多次了:" + tmpTowerName);
        //     }
        //     RandomPlaceTower(newTower, -1, -1, -1, -1, isFirstBuy);
        // }
        // else
        // {
        //     RandomPlaceTower(newTower, -1, -1, -1, -1, false);
        // }
    private bool isCountStartDown = false;//是否开始倒计时
    public void SetCountDown(bool isOn, bool isReset = false)
    {
        isCountStartDown = isOn;
        if (isReset)
        {
            countDownTime = 0;
            if (needClickPS.isPlaying)
                needClickPS.Stop();
        }
    }
    public void SetPS(bool isOn)
    {
        if (needClickPS.gameObject.activeSelf != isOn)
        {
            needClickPS.gameObject.SetActive(isOn);
        }
    }
    float countDownTime = 0f;
    float countDownLimit = 5f;
    public ParticleSystem needClickPS;//提示点击按钮
    /// <summary>
    /// This function is called every fixed framerate frame, if the MonoBehaviour is enabled.
    /// </summary>
    void FixedUpdate()
    {
        if (isCountStartDown)
        {
            countDownTime += Time.deltaTime;
            if (countDownTime > countDownLimit)
            {
                CheckTower();
                countDownTime = 0;
            }
        }
    }
    /// <summary>
    /// 查看是否满足播放按钮提示
    /// </summary>
    private void CheckTower()
    {
        Debug.Log("判断是否提示");
        //条件 金币是否满足,合成区是否有位置
        int result;
        int.TryParse(cashText.text.ToString(), out result);
        int current = EndlessLevelManager.instance.Currency.currentCurrency;
        int num = EndlessGameUI.instance.GetTowerNum();
        if (current >= result && num < 10)//自己的钱多
        {
            isCountStartDown = false;
            needClickPS.Play();
        }
    }
    private void CheckCurrencyEnough()
    {
@@ -309,16 +340,8 @@
        if (gameUI.isBuilding)
            gameUI.CancelGhostPlacement();
        if (EndlessUIStart.instance.GameStartTime >= JsonDataCenter.DOUBLE_GEM_TIME)
        {
            if (level == -1)
                level = Mathf.Min(EndlessGameUI.instance.MinLevel, 1);
        }
        else
        {
            if (level == -1)
                level = 0;
        }
        if (level == -1)
            level = Mathf.Min(EndlessGameUI.instance.MinLevel, 1);
        return gameUI.RandomPlaceTower(tower, posx, posy, level, cost, false, isFirstAppear);
    }