wangguan
2020-11-12 a7956acb794f93fc01e16963efe1f38743b110f9
Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs
@@ -42,8 +42,6 @@
    protected int maxTower = 0;
    private bool firstDeploy = false;
    public static readonly int MAX_TOWERDIS = 5;
    // 开始出现技能塔的时间:
@@ -90,7 +88,25 @@
        bCdTimeStart = false;
        cdTimeBg.gameObject.SetActive(false);
        cdTimeText.text = "";
        randomBtn.onClick.AddListener(onClick);
    }
    public void ChangeBtnClickNormal()
    {
        randomBtn.onClick.RemoveAllListeners();
        randomBtn.onClick.AddListener(onClick);
    }
    public void ChangeBtnClick()
    {
        randomBtn.onClick.RemoveAllListeners();
        randomBtn.onClick.AddListener(() =>
        {
            AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
        });
    }
    /// <summary>
@@ -282,20 +298,68 @@
    /// </summary>
    public void onClick()
    {
        if (GameConfig.IsNewbie && !GameConfig.CanBuyNewTower)
        {
            AudioSourceManager.Ins.Play(AudioEnum.UIDisable);
            return;
        }
        AudioSourceManager.Ins.Play(AudioEnum.UI);
        // 还没到技能时间,忽略掉技能宝石
        Tower newTower = GetRandomTower(EndlessUIStart.instance.GameStartTime <= SKILL_TOWER_TIME);
        //Tower newTower = GetRandomTower(false);
        if (!newTower)
            throw new Exception("未能成功产生Tower");
        RandomPlaceTower(newTower);
        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 (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>();//用来判断是否是首次购买宝石
    /// <summary>
    /// 随机找一个空白位置放置塔防
    /// </summary>
    /// <param name="tower"></param>
    public bool RandomPlaceTower(Tower tower, int level = -1, int cost = -1)
    public bool RandomPlaceTower(Tower tower, int level = -1, int cost = -1, int posx = -1, int posy = -1, bool isFirstAppear = false)
    {
        EndlessGameUI gameUI = EndlessGameUI.instance;
@@ -303,9 +367,17 @@
            gameUI.CancelGhostPlacement();
        if (EndlessUIStart.instance.GameStartTime >= LEVELUP_TOWER_TIME)
            return gameUI.RandomPlaceTower(tower, -1, -1, level == -1 ? 1 : level, cost);
        {
            if (level == -1)
                level = Mathf.Min(EndlessGameUI.instance.MinLevel, 1);
        }
        else
            return gameUI.RandomPlaceTower(tower, -1, -1, level == -1 ? 0 : level, cost);
        {
            if (level == -1)
                level = 0;
        }
        return gameUI.RandomPlaceTower(tower, posx, posy, level, cost, false, isFirstAppear);
    }
    /// <summary>
@@ -344,6 +416,6 @@
            targetTower = getTowerByName(tname);
        // River: 随机找一个空白位置放置塔防。
        EndlessGameUI.instance.RandomPlaceTower(targetTower, x, y, lvl);
        EndlessGameUI.instance.RandomPlaceTower(targetTower, x, y, lvl, -1, true);
    }
}