chenxin
2020-11-27 c49c0e39e4c11a438014a0b0732ecf0968fceb5e
Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs
@@ -14,7 +14,7 @@
    // 当前类所在的Btn.
    public Button randomBtn;
    public Button skillBtn;
    //public Button skillBtn;
    /// <summary>
    /// 购买二级宝石的按钮贴图.
@@ -38,9 +38,6 @@
    // 开始出现技能塔的时间:
    public static float SKILL_TOWER_TIME = 30.0f;
    // 购买之后直接出现2级宝石的时间.
    public static float LEVELUP_TOWER_TIME = 10.0f;
    protected System.Random mRandom;
@@ -80,37 +77,37 @@
        bSetBuyLvlUp = false;
        bCdTimeStart = false;
        randomBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.NULL); });
        skillBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.Skill_Bomb); });
        //skillBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.Skill_Bomb); });
        UpdateDescDisplay();
    }
    public void UpdateDescDisplay()
    {
        int minLevel = EndlessGameUI.instance.MinLevel;
        int minLevel = Mathf.Min(EndlessGameUI.instance.MinLevel, 1);
        NormalDesc.text = $"购买{minLevel + 1}级宝石";
        SkillDesc.text = $"购买{minLevel + 1}级技能宝石";
        //SkillDesc.text = $"购买{minLevel + 1}级技能宝石";
    }
    public void ChangeBtnClickNormal()
    {
        randomBtn.onClick.RemoveAllListeners();
        skillBtn.onClick.RemoveAllListeners();
        //skillBtn.onClick.RemoveAllListeners();
        randomBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.NULL); });
        skillBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.Skill_Bomb); });
        //skillBtn.onClick.AddListener(delegate () { onClick(EFeatureTower.Skill_Bomb); });
    }
    public void ChangeBtnClick()
    {
        randomBtn.onClick.RemoveAllListeners();
        skillBtn.onClick.RemoveAllListeners();
        //skillBtn.onClick.RemoveAllListeners();
        randomBtn.onClick.AddListener(() =>
        {
            AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
        });
        skillBtn.onClick.AddListener(() =>
        {
            AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
        });
        // skillBtn.onClick.AddListener(() =>
        // {
        //     AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
        // });
    }
    /// <summary>
@@ -119,33 +116,6 @@
    public List<Tower> towerList
    {
        get { return this.towerArray; }
    }
    /// <summary>
    /// 处理按钮升级相关.
    /// </summary>
    private void Update()
    {
        float gstime = EndlessUIStart.instance.GameStartTime;
        if (gstime <= 0) return;
        if ((!bCdTimeStart) && (LEVELUP_TOWER_TIME - gstime) <= JsonDataCenter.TOWERLVLUP_CDTIME)
        {
            bCdTimeStart = true;
            btnLvlUpCdTime = LEVELUP_TOWER_TIME - gstime;
        }
        if ((!bSetBuyLvlUp) && (gstime > LEVELUP_TOWER_TIME))
        {
            bSetBuyLvlUp = true;
            this.randomBtn.GetComponent<Image>().sprite = buyBtnLevelUp;
        }
        // 更新倒计时:
        if ((!bSetBuyLvlUp) && bCdTimeStart)
        {
            btnLvlUpCdTime -= Time.deltaTime;
            string distr = ((int)Math.Ceiling(btnLvlUpCdTime)).ToString() + "s";
        }
    }
    public void actionTest()
@@ -194,7 +164,7 @@
            if (name == this.towerArray[ti].towerName)
                return towerArray[ti];
        return GetRandomTower(EFeatureTower.NULL, true);
        return GetRandomTower(EFeatureTower.NULL);
    }
    /// <summary>
@@ -223,7 +193,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 };
@@ -251,9 +221,9 @@
    /// </summary>
    public void onClick(EFeatureTower towerType)
    {
        if (GameConfig.IsNewbie && !GameConfig.CanBuyNewTower)
        if (GameConfig.IsNewbie)
        {
            AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
            AudioSourceManager.Ins.Play(AudioEnum.UI);
            return;
        }
@@ -265,41 +235,44 @@
        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);
        // 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
            {
                //Debug.Log("购买了多次了:" + tmpTowerName);
            }
            RandomPlaceTower(newTower, -1, -1, -1, -1, isFirstBuy);
        //     if (isFirstBuy)
        //     {
        //         //Debug.Log("首次购买:" + tmpTowerName);
        }
        else
        {
            RandomPlaceTower(newTower, -1, -1, -1, -1, false);
        }
        //     }
        //     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>();//用来判断是否是首次购买宝石
@@ -315,10 +288,18 @@
        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, 3, cost, false, isFirstAppear);
        return gameUI.RandomPlaceTower(tower, posx, posy, level, cost, false, isFirstAppear);
    }
    /// <summary>