From 99aeeba01056d2d035274dbed58318edcd68a2bc Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Wed, 09 Dec 2020 15:49:11 +0800
Subject: [PATCH] 简单解决泡泡禁锢bug

---
 Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs |  112 +++++++++++++++++++++++++++++---------------------------
 1 files changed, 58 insertions(+), 54 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs b/Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs
index 554cd95..992292d 100644
--- a/Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs
+++ b/Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs
@@ -14,8 +14,6 @@
     // 当前类所在的Btn.
     public Button randomBtn;
 
-    public Button skillBtn;
-
     /// <summary>
     /// 购买二级宝石的按钮贴图.
     /// </summary>
@@ -39,9 +37,6 @@
     // 开始出现技能塔的时间:
     public static float SKILL_TOWER_TIME = 30.0f;
 
-    // 购买之后直接出现2级宝石的时间.
-    public static float LEVELUP_TOWER_TIME = 10.0f;
-
     protected System.Random mRandom;
 
     protected int rTowerIdx = 2;
@@ -55,6 +50,8 @@
     public Text NormalDesc;
 
     public Text SkillDesc;
+
+    public ParticleSystem btnPS;
 
     // Start is called before the first frame update
     void Start()
@@ -80,34 +77,28 @@
         bSetBuyLvlUp = false;
         bCdTimeStart = false;
         randomBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.NULL); });
-        skillBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.Skill_Bomb); });
         UpdateDescDisplay();
     }
 
     public void UpdateDescDisplay()
     {
-        int minLevel = EndlessGameUI.instance.MinLevel;
+        int minLevel = 0;
+
+        if (EndlessUIStart.instance.GameStartTime >= JsonDataCenter.DOUBLE_GEM_TIME)
+            minLevel = Mathf.Min(EndlessGameUI.instance.MinLevel, 1);
 
         NormalDesc.text = $"购买{minLevel + 1}级宝石";
-        //SkillDesc.text = $"购买{minLevel + 1}级技能宝石";
     }
 
     public void ChangeBtnClickNormal()
     {
         randomBtn.onClick.RemoveAllListeners();
-        skillBtn.onClick.RemoveAllListeners();
         randomBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.NULL); });
-        skillBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.Skill_Bomb); });
     }
     public void ChangeBtnClick()
     {
         randomBtn.onClick.RemoveAllListeners();
-        skillBtn.onClick.RemoveAllListeners();
         randomBtn.onClick.AddListener(() =>
-        {
-            AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
-        });
-        skillBtn.onClick.AddListener(() =>
         {
             AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
         });
@@ -167,7 +158,7 @@
             if (name == this.towerArray[ti].towerName)
                 return towerArray[ti];
 
-        return GetRandomTower(EFeatureTower.NULL, true);
+        return GetRandomTower(EFeatureTower.NULL);
     }
 
     /// <summary>
@@ -196,7 +187,7 @@
     /// 根据规则生成一个随机的塔
     /// </summary>
     /// <returns></returns>
-    public Tower GetRandomTower(EFeatureTower towerType, bool isRandom)
+    public Tower GetRandomTower(EFeatureTower towerType, bool isRandom = false)
     {
         int[] indexArr = { 0, 1, 2, 3, 4 };
 
@@ -224,10 +215,10 @@
     /// </summary>
     public void onClick(EFeatureTower towerType)
     {
-        if (GameConfig.IsNewbie && !GameConfig.CanBuyNewTower)
+        if (GameConfig.IsNewbie)
         {
-            AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
-
+            AudioSourceManager.Ins.Play(AudioEnum.UI);
+            btnPS?.Play();
             return;
         }
 
@@ -238,41 +229,46 @@
         if (!newTower)
             throw new Exception("未能成功产生Tower");
 
-        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;
-                    }
-                }
-            }
+        RandomPlaceTower(newTower, -1, -1, -1, -1, true);
 
-            if (isFirstBuy)
-            {
-                //Debug.Log("首次购买:" + tmpTowerName);
+        btnPS?.Play();
 
-            }
-            else
-            {
-                //Debug.Log("购买了多次了:" + tmpTowerName);
-            }
-            RandomPlaceTower(newTower, -1, -1, -1, -1, isFirstBuy);
+        // 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;
+        //             }
+        //         }
+        //     }
 
-        }
-        else
-        {
-            RandomPlaceTower(newTower, -1, -1, -1, -1, false);
-        }
+        //     if (isFirstBuy)
+        //     {
+        //         //Debug.Log("首次购买:" + tmpTowerName);
+
+        //     }
+        //     else
+        //     {
+        //         //Debug.Log("购买了多次了:" + tmpTowerName);
+        //     }
+        //     RandomPlaceTower(newTower, -1, -1, -1, -1, isFirstBuy);
+
+        // }
+        // else
+        // {
+        //     RandomPlaceTower(newTower, -1, -1, -1, -1, false);
+        // }
+
     }
 
     private List<string> towerNameLis = new List<string>();//用来判断是否是首次购买宝石
@@ -288,8 +284,16 @@
         if (gameUI.isBuilding)
             gameUI.CancelGhostPlacement();
 
-        if (level == -1)
-            level = Mathf.Min(EndlessGameUI.instance.MinLevel, 1);
+        if (EndlessUIStart.instance.GameStartTime >= JsonDataCenter.DOUBLE_GEM_TIME)
+        {
+            if (level == -1)
+                level = Mathf.Min(EndlessGameUI.instance.MinLevel, 1);
+        }
+        else
+        {
+            if (level == -1)
+                level = 0;
+        }
 
         return gameUI.RandomPlaceTower(tower, posx, posy, level, cost, false, isFirstAppear);
     }

--
Gitblit v1.9.1