public List <NItemInfo> GetBuildingUpgradeCost(NDictionary args) { if (args == null) { return(null); } int fromConfigID = args.Value <int>("configID"); List <NItemInfo> costInfoList = new List <NItemInfo>(); var buildingConfigDataMap = ConfigDataStatic.GetConfigDataTable("BUILDING"); BUILDING buildingConfigData = buildingConfigDataMap[fromConfigID] as BUILDING; for (int i = 0; i < buildingConfigData.CostTableCount; i++) { var costData = buildingConfigData.GetCostTable(i); int configID = costData.CostId; if (configID == 0) { continue; } int number = costData.CostQty; NItemInfo info = new NItemInfo(); info.configID = configID; info.number = number; costInfoList.Add(info); } return(costInfoList); }
public void CalculateBuildingCost(int configID) { BUILDING configData = GetBuildingConfigDataByConfigID(configID); if (configData == null) { return; } buildingCostList.Clear(); //level, gold, elec NCostDef cost = new NCostDef(); cost.configID = 1; cost.value = configData.BldgLvLim; buildingCostList.Add(cost); if (configData.GoldCost > 0) { cost = new NCostDef(); cost.configID = 2; cost.value = configData.GoldCost; buildingCostList.Add(cost); } if (configData.ElecCost > 0) { cost = new NCostDef(); cost.configID = 3; cost.value = configData.ElecCost; buildingCostList.Add(cost); } //res cost for (int i = 0; i < configData.CostTableCount; i++) { cost = new NCostDef(); int itemConfigID = configData.GetCostTable(i).CostId; if (itemConfigID == 0) { continue; } int num = configData.GetCostTable(i).CostQty; cost.configID = itemConfigID; cost.value = num; buildingCostList.Add(cost); } }
public bool IsAbleToUnlockOrUpgrade(int configID) { int requireVal; double curVal; ItemPackage itemPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Item) as ItemPackage; UserPackage userPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_User) as UserPackage; BUILDING config = GetBuildingConfigDataByConfigID(configID); //level requireVal = config.BldgLvLim; curVal = userPackage.GetManorLevel(); if (curVal < requireVal) { return(false); } //gold cost requireVal = config.GoldCost; curVal = itemPackage.GetGoldNumber(); if ((double)requireVal > curVal) { return(false); } //item for (int i = 0; i < config.CostTableCount; i++) { var cost = config.GetCostTable(i); if (cost.CostId == 0) { continue; } requireVal = cost.CostQty; NItemInfo info = itemPackage.GetItemInfo(cost.CostId); // ITEM_RES itemConfig = itemPackage.GetItemDataByConfigID(cost.CostId); // if(itemConfig == null) // { // Debug.Log(string.Format("configID = {0} missing!!!", cost.CostId)); // continue; // } if (info == null || info.number < cost.CostQty) { return(false); } } return(true); }
void ShowCost(BUILDING configData) { int count = 0; //show gold & elec if (configData.GoldCost > 0) { int costNum = configData.GoldCost; double curNum = itemPackage.GetGoldNumber(); costCellList[count].title.text = "黄金消耗: "; costCellList[count].value.text = string.Format("{0} / {1}", GlobalFunction.NumberFormat(costNum), GlobalFunction.NumberFormat(curNum)); costCellList[count].go.SetActive(true); if ((double)costNum > curNum) { costCellList[count].title.color = Color.red; costCellList[count].value.color = Color.red; } else { costCellList[count].title.color = Color.white; costCellList[count].value.color = Color.white; } count++; } if (configData.ElecCost > 0) { int costNum = configData.ElecCost; double curNum = itemPackage.GetElecNumber(); costCellList[count].title.text = "电力消耗: "; costCellList[count].value.text = string.Format("{0} / {1}", GlobalFunction.NumberFormat(costNum), GlobalFunction.NumberFormat(curNum)); costCellList[count].go.SetActive(true); if ((double)costNum > curNum) { costCellList[count].title.color = Color.red; costCellList[count].value.color = Color.red; } else { costCellList[count].title.color = Color.white; costCellList[count].value.color = Color.white; } count++; } for (int i = 0; i < configData.CostTableCount; i++) { int itemConfigId = configData.GetCostTable(i).CostId; if (itemConfigId == 0) { continue; } int num = configData.GetCostTable(i).CostQty; ITEM_RES itemData = itemPackage.GetItemDataByConfigID(itemConfigId); NItemInfo itemInfo = itemPackage.GetItemInfo(itemConfigId); int curNum = itemInfo == null ? 0 : itemInfo.number; costCellList[count].title.text = itemData.MinName + ": "; costCellList[count].value.text = string.Format("{0} / {1}", num.ToString(), curNum); costCellList[count].go.SetActive(true); if (itemInfo == null || itemInfo.number < num) { costCellList[count].title.color = Color.red; costCellList[count].value.color = Color.red; } else { costCellList[count].title.color = Color.white; costCellList[count].value.color = Color.white; } count++; } for (; count < 5; count++) { costCellList[count].go.SetActive(false); } }