// 立即升级 public void OnClickLevupNow() { int level = CityManager.Instance.GetSoldierLevel(_currentSoldierCfgID); if (level <= 0) { return; } SoldierConfig cfg = SoldierConfigLoader.GetConfig(_currentSoldierCfgID); SoldierLevelConfig cfgLevel = SoldierLevelConfigLoader.GetConfig(_currentSoldierCfgID, level); // 检查金钱 if (UserManager.Instance.Money < cfgLevel.UpgradeCost) { UIUtil.ShowMsgFormat("MSG_CITY_BUILDING_MONEY_LIMIT"); return; } // 检查元宝 if (UserManager.Instance.Gold < Formula.GetLevelUpQuickCost(Utils.GetSeconds(cfgLevel.UpgradeTime))) { UIUtil.ShowMsgFormat("MSG_CITY_BUILDING_GOLD_LIMIT"); return; } CityManager.Instance.RequestQuickTrainSoldier(_currentSoldierCfgID, true); UIManager.Instance.CloseWindow <UICityTrainSelectView>(); CloseWindow(); }
// 获取升级消耗 public int GetTrainCost(int soldierCfgID) { int level = CityManager.Instance.GetSoldierLevel(soldierCfgID); SoldierLevelConfig cfgLevup = SoldierLevelConfigLoader.GetConfig(soldierCfgID, level); return(cfgLevup.UpgradeCost); }
// 获取补充士兵的消耗 public int GetAddCost(int soldierID) { int level = CityManager.Instance.GetSoldierLevel(soldierID); SoldierLevelConfig cfgLevup = SoldierLevelConfigLoader.GetConfig(soldierID, level); int count = GetTotalProduceCount(soldierID); return(cfgLevup.ProduceCost * count); }
public void SetInfo(int soldierCfgID, BuildingInfo buildingInfo) { _currentSoldierCfgID = soldierCfgID; int level = CityManager.Instance.GetSoldierLevel(soldierCfgID); _levelupCfg = SoldierLevelConfigLoader.GetConfig(soldierCfgID, level); if (_levelupCfg == null) { return; } _soldierIcon.sprite = ResourceManager.Instance.GetSoldierIcon(_currentSoldierCfgID); // 兵营界面 _currentBuildingInfo = buildingInfo as TroopBuildingInfo; if (_currentBuildingInfo == null) { return; } int maxCount = _currentBuildingInfo.CfgLevel.MaxStorage; SoldierConfig cfg = SoldierConfigLoader.GetConfig(_currentSoldierCfgID); if (cfg == null) { return; } _maxCount = maxCount / cfg.States; _count.text = "x" + (maxCount / cfg.States); int count = _currentBuildingInfo.GetMaxSoldierCount(_currentSoldierCfgID); _costValue = _currentBuildingInfo.GetSwitchCost(_currentSoldierCfgID); int timeValue = Utils.GetSeconds(cfg.Producetime * count); _cost.text = Mathf.Max(0, _costValue).ToString(); // 银两不足,显示红色 if (UserManager.Instance.Money >= _costValue) { _cost.color = Color.white; } else { _cost.color = Color.red; } _time.text = Utils.GetCountDownString(timeValue); // 士兵生产数目 _count.gameObject.SetActive(true); _soldierLevel.text = "Lv" + level; }
// 获取当前升级的最大时间 public int GetMaxTrainTime() { if (TrainSoldierCfgID == 0) { return(0); } int level = CityManager.Instance.GetSoldierLevel(TrainSoldierCfgID); SoldierLevelConfig cfg = SoldierLevelConfigLoader.GetConfig(TrainSoldierCfgID, level); return(Utils.GetSeconds(cfg.UpgradeTime)); }
private void UpdateList() { List <SoldierConfig> list = new List <SoldierConfig>(); foreach (var item in SoldierConfigLoader.Data) { list.Add(item.Value); } TrainBuildingInfo tbinfo = CityManager.Instance.GetBuildingByType(CityBuildingType.TRAIN) as TrainBuildingInfo; if (tbinfo == null) { return; // 尚未解锁校场 } // 设置数据源 _listView.MaxCount = SoldierConfigLoader.Data.Count; _listView.OnListItemAtIndex = (index) => { SoldierConfig cfg = list[index]; int level = CityManager.Instance.GetSoldierLevel(cfg.SoldierId); if (level <= 0) { // 未解锁兵种 SoldierTrainNotHaveWidget go = _listView.CreateListItemWidget <SoldierTrainNotHaveWidget>(1); go.SetInfo(cfg.SoldierId); return(go); } else { SoldierLevelConfig cfgLevel = SoldierLevelConfigLoader.GetConfig(cfg.SoldierId, level, false); if (cfgLevel == null || tbinfo.IsInBuilding() || // 校场正在升级 cfgLevel.UpgradeMilitaryLevelDemand > tbinfo.Level || // 不能升级,校场等级不足 (tbinfo.IsTrainingSoldier() && tbinfo.TrainSoldierCfgID == cfg.SoldierId)) { // 不能升级或者正在升级 SoldierTrainNotHaveWidget go = _listView.CreateListItemWidget <SoldierTrainNotHaveWidget>(1); go.SetInfo(cfg.SoldierId); return(go); } else { // 已解锁 SoldierTrainHaveWidget go = _listView.CreateListItemWidget <SoldierTrainHaveWidget>(0); go.SetInfo(cfg.SoldierId); return(go); } } }; // 进行刷新 _listView.Refresh(); }
private void SetInfo(BuildingInfo info) { _currentInfo = info as TroopBuildingInfo; if (_currentInfo == null) { return; } int cfgID = _currentInfo.SoldierConfigID; SoldierConfig cfg = SoldierConfigLoader.GetConfig(cfgID); int level = Mathf.Max(CityManager.Instance.GetSoldierLevel(cfgID), 1); SoldierLevelConfig cfgLevel = SoldierLevelConfigLoader.GetConfig(cfgID, level); _title.text = cfg.SoldierName + " Lv" + level; _soldierImage.sprite = ResourceManager.Instance.GetSoldierImage(cfgID); _textDesc.text = cfg.SoldierDescription; _soldierIcon1.sprite = ResourceManager.Instance.GetSoldierIcon(cfgID); _soldierIcon2.sprite = ResourceManager.Instance.GetSoldierIcon(cfgID); _soldierCount1.text = _currentInfo.SoldierCount.ToString(); int addCount = _currentInfo.GetMaxSoldierCount(cfgID) - _currentInfo.SoldierCount; if (addCount > 0) { _soldierCount2.text = addCount.ToString(); _textCost.text = (addCount * cfgLevel.ProduceCost).ToString(); _textTime.text = Utils.GetCountDownString(addCount * Utils.GetSeconds(_currentInfo.SoldierCfg.Producetime)); _soldierIcon2.gameObject.SetActive(true); _textCost.gameObject.SetActive(true); _textTime.gameObject.SetActive(true); _text3.gameObject.SetActive(true); _imageCostFlag.gameObject.SetActive(true); _imageTimeFlag.gameObject.SetActive(true); _btnAddSoldier.gameObject.SetActive(true); } else { // 兵营满了,不需要补充 _soldierIcon2.gameObject.SetActive(false); _textCost.gameObject.SetActive(false); _textTime.gameObject.SetActive(false); _text3.gameObject.SetActive(false); _imageCostFlag.gameObject.SetActive(false); _imageTimeFlag.gameObject.SetActive(false); _btnAddSoldier.gameObject.SetActive(false); } }
// 获取更换士兵的消耗 public int GetSwitchCost(int soldierID) { int oldMoney = 0; if (SoldierConfigID != 0) { int levelOld = CityManager.Instance.GetSoldierLevel(SoldierConfigID); SoldierLevelConfig cfgLevupOld = SoldierLevelConfigLoader.GetConfig(SoldierConfigID, levelOld); oldMoney = cfgLevupOld.ProduceCost * SoldierCount; } int level = CityManager.Instance.GetSoldierLevel(soldierID); SoldierLevelConfig cfgLevup = SoldierLevelConfigLoader.GetConfig(soldierID, level); int count = GetMaxSoldierCount(soldierID); return(cfgLevup.ProduceCost * count - oldMoney); }
// 获取战斗力 public int GetFightScore() { if (SoldierConfigID == 0) { return(0); } int maxCount = GetMaxSoldierCount(SoldierConfigID); int level = CityManager.Instance.GetSoldierLevel(SoldierConfigID); SoldierLevelConfig cfg = SoldierLevelConfigLoader.GetConfig(SoldierConfigID, level); if (cfg == null) { return(0); } return(maxCount * Mathf.FloorToInt(cfg.SoldierAttack + 0.2f * cfg.SoldierHp)); }
private void SetInfo(int soldierCfgID) { _currentSoldierCfgID = soldierCfgID; int level = CityManager.Instance.GetSoldierLevel(soldierCfgID); if (level <= 0) { return; } SoldierConfig cfg = SoldierConfigLoader.GetConfig(_currentSoldierCfgID); _title.text = string.Format(Str.Get("UI_CITY_BUILDING_LEVELUP"), cfg.SoldierName, level + 1); SoldierLevelConfig cfgLevel = SoldierLevelConfigLoader.GetConfig(_currentSoldierCfgID, level); SoldierLevelConfig cfgNextLevel = SoldierLevelConfigLoader.GetConfig(_currentSoldierCfgID, level + 1); _hpValue.text = cfgLevel.SoldierHp.ToString(); _trainCost.text = cfgLevel.ProduceCost.ToString(); _attackValue.text = cfgLevel.SoldierAttack.ToString(); _imgSoldier.sprite = ResourceManager.Instance.GetSoldierImage(soldierCfgID); if (cfgNextLevel != null) { // 增加变化的数值 _hpAddValue.gameObject.SetActive(true); _attackAddValue.gameObject.SetActive(true); _trainCostAdd.gameObject.SetActive(true); _hpAddValue.text = string.Format("(+{0})", cfgNextLevel.SoldierHp - cfgLevel.SoldierHp); _attackAddValue.text = string.Format("(+{0})", cfgNextLevel.SoldierAttack - cfgLevel.SoldierAttack); _trainCostAdd.text = string.Format("(+{0})", cfgNextLevel.ProduceCost - cfgLevel.ProduceCost); } else { _hpAddValue.gameObject.SetActive(false); _attackAddValue.gameObject.SetActive(false); _trainCostAdd.gameObject.SetActive(false); } _uplevTime.text = Utils.GetCountDownString(Utils.GetSeconds(cfgLevel.UpgradeTime)); _uplevNowCost.text = Formula.GetLevelUpQuickCost(Utils.GetSeconds(cfgLevel.UpgradeTime)).ToString(); _uplevCost.text = cfgLevel.UpgradeCost.ToString(); }
public void SetInfo(int soldierCfgID) { _currentSoldierCfgID = soldierCfgID; int level = CityManager.Instance.GetSoldierLevel(soldierCfgID); _soldierIcon.sprite = ResourceManager.Instance.GetSoldierIcon(soldierCfgID); _uplevelLimit.text = ""; if (level == 0) { // 尚未获得该兵种 SoldierConfig cfg = SoldierConfigLoader.GetConfig(soldierCfgID); if (cfg != null) { // 提示解锁 MSG_CITY_TRAIN_UNLOCK={0}级校场解锁 _textLimit = string.Format(Str.Get("MSG_CITY_TRAIN_UNLOCK"), cfg.UnlockMilitaryDemand); _uplevelLimit.text = _textLimit; } } else { TrainBuildingInfo tpinfo = CityManager.Instance.GetBuildingByType(CityBuildingType.TRAIN) as TrainBuildingInfo; SoldierLevelConfig cfg = SoldierLevelConfigLoader.GetConfig(soldierCfgID, level); if (cfg != null && tpinfo != null) { if (tpinfo.IsTrainingSoldier() && tpinfo.TrainSoldierCfgID == soldierCfgID) { // 提示正在升级 _textLimit = Str.Get("UI_CITY_BUILDING_TRAIN_NOW"); _uplevelLimit.text = _textLimit; } else { // 提示升级 MSG_CITY_TRAIN_LIMIT=需要{0}级校场 _textLimit = string.Format(Str.Get("MSG_CITY_TRAIN_LIMIT"), cfg.UpgradeMilitaryLevelDemand); _uplevelLimit.text = _textLimit; } } } }
public override void OnClick() { int level = CityManager.Instance.GetSoldierLevel(_currentSoldierCfgID); TrainBuildingInfo tbinfo = CityManager.Instance.GetBuildingByType(CityBuildingType.TRAIN) as TrainBuildingInfo; if (tbinfo != null && tbinfo.IsTrainingSoldier()) { UIUtil.ShowMsgFormat("UI_CITY_BUILDING_TRAIN_NOW"); return; } // 最大等级 if (SoldierLevelConfigLoader.GetConfig(_currentSoldierCfgID, level + 1, false) == null) { UIUtil.ShowMsgFormat("UI_CITY_BUILDING_TRAIN_MAX"); return; } UIManager.Instance.OpenWindow <UICitySoldierUplevelView>(_currentSoldierCfgID); }
public override void OnBindData(params object[] param) { int soldierCfgID = (int)param[0]; int level = (int)param[1]; if (level <= 0) { return; } SoldierConfig cfg = SoldierConfigLoader.GetConfig(soldierCfgID); SoldierLevelConfig cfgLevel = SoldierLevelConfigLoader.GetConfig(soldierCfgID, level); _title.text = cfg.SoldierName; _txtLevel.text = Str.Format("UI_LEVEL", level); _hp.text = cfgLevel.SoldierHp.ToString(); _space.text = cfg.States.ToString(); _trainCost.text = cfgLevel.ProduceCost.ToString(); _trainTime.text = Utils.GetCountDownString(Utils.GetSeconds(cfg.Producetime)); _imgSoldier.sprite = ResourceManager.Instance.GetSoldierImage(soldierCfgID); _txtAttack.text = cfg.Attack.ToString(); }
// 升级 public void OnClickLevup() { int level = CityManager.Instance.GetSoldierLevel(_currentSoldierCfgID); if (level <= 0) { return; } SoldierConfig cfg = SoldierConfigLoader.GetConfig(_currentSoldierCfgID); SoldierLevelConfig cfgLevel = SoldierLevelConfigLoader.GetConfig(_currentSoldierCfgID, level); // 检查金钱 if (UserManager.Instance.Money < cfgLevel.UpgradeCost) { UIUtil.ShowMsgFormat("MSG_CITY_BUILDING_MONEY_LIMIT"); return; } CityManager.Instance.RequestTrainSoldier(_currentSoldierCfgID, cfgLevel.UpgradeCost); UIManager.Instance.CloseWindow <UICityTrainSelectView>(); CloseWindow(); }
public void SetInfo(int soldierCfgID) { _currentSoldierCfgID = soldierCfgID; int level = CityManager.Instance.GetSoldierLevel(soldierCfgID); _levelupCfg = SoldierLevelConfigLoader.GetConfig(soldierCfgID, level); _soldierIcon.sprite = ResourceManager.Instance.GetSoldierIcon(_currentSoldierCfgID); _cost.text = _levelupCfg.UpgradeCost.ToString(); // 银两不足,显示红色 if (UserManager.Instance.Money >= _levelupCfg.UpgradeCost) { _cost.color = Color.white; } else { _cost.color = Color.red; } _time.text = Utils.GetCountDownString(Utils.GetSeconds(_levelupCfg.UpgradeTime)); _soldierLevel.text = "Lv" + level; }