| | |
| | | // 当前类所在的Btn. |
| | | public Button randomBtn; |
| | | |
| | | public Button skillBtn; |
| | | //public Button skillBtn; |
| | | |
| | | /// <summary> |
| | | /// 购买二级宝石的按钮贴图. |
| | |
| | | // 开始出现技能塔的时间: |
| | | 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; |
| | |
| | | // 所有宝石位置权重列表 |
| | | private List<int> weightList; |
| | | |
| | | // 是否初始化过出战数据 |
| | | private bool isInitFightData = false; |
| | | public Text NormalDesc; |
| | | |
| | | public Text SkillDesc; |
| | | |
| | | // Start is called before the first frame update |
| | | void Start() |
| | |
| | | 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 = Mathf.Min(EndlessGameUI.instance.MinLevel, 1); |
| | | |
| | | NormalDesc.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> |
| | |
| | | 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() |
| | |
| | | if (name == this.towerArray[ti].towerName) |
| | | return towerArray[ti]; |
| | | |
| | | return GetRandomTower(EFeatureTower.NULL, true); |
| | | return GetRandomTower(EFeatureTower.NULL); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// 根据规则生成一个随机的塔 |
| | | /// </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 }; |
| | | |
| | |
| | | /// </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; |
| | | } |
| | |
| | | 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>();//用来判断是否是首次购买宝石 |
| | |
| | | if (gameUI.isBuilding) |
| | | gameUI.CancelGhostPlacement(); |
| | | |
| | | if (EndlessUIStart.instance.GameStartTime >= LEVELUP_TOWER_TIME) |
| | | if (EndlessUIStart.instance.GameStartTime >= JsonDataCenter.DOUBLE_GEM_TIME) |
| | | { |
| | | if (level == -1) |
| | | level = Mathf.Min(EndlessGameUI.instance.MinLevel, 1); |