public void Load(string name) { if (isLoad) { return; } isLoad = true; byte[] bin = DynamicFileControl.QueryFileContent(name); string content = StringHelper.ReadFromBytes(bin); LitJson.JSONNode json = LitJson.JSON.Parse(content); dataUnitParts = new Dictionary <int, Dictionary <int, DataUnitPart> > (); foreach (LitJson.JSONNode subNode in json.Childs) { DataUnitPart data = new DataUnitPart(); data.Load(subNode); Dictionary <int, DataUnitPart> parts; dataUnitParts.TryGetValue(data.id, out parts); if (parts == null) { parts = new Dictionary <int, DataUnitPart>(); dataUnitParts.Add(data.id, parts); } parts.Add(data.level, data); } }
public int GetPartLevelMax(int index) { DataUnitPart dataPart = GetDataParts()[index]; int maxLevel = DataManager.instance.dataUnitPartGroup.GetPartMaxLevel(dataPart.id); return(maxLevel); }
void InitData() { _strengthenTankItemDic.Clear(); List <int> unlockUnits = InstancePlayer.instance.model_User.unlockUnitsId; List <DataUnit> dataUnitList = new List <DataUnit>(); dataUnitList.Clear(); foreach (int id in unlockUnits) { DataUnit dataunit = DataManager.instance.dataUnitsGroup.GetUnit(id); dataUnitList.Add(dataunit); } TankDataManager tankManagetr = new TankDataManager(); _unitDataList = tankManagetr.StrengthenSort(dataUnitList); if (_unitDataList.Count > 0) { _currentUnitData = _unitDataList[0]; UpdataTankInfo(_currentUnitData); _units = InstancePlayer.instance.model_User.unlockUnits; _units.TryGetValue(_currentUnitData.id, out _modelUnit); _unitPart = _modelUnit.GetDataParts(); _currentUnitPart = _unitPart[0]; _partType = SystemType.HP; UpdataUnitPart(_currentUnitPart, _partType); } }
void OnDR() { _currentUnitData = _currentUnitData; _units = InstancePlayer.instance.model_User.unlockUnits; _units.TryGetValue(_currentUnitData.id, out _modelUnit); _unitPart = _modelUnit.GetDataParts(); _currentUnitPart = _unitPart[3]; _partType = SystemType.DR; UpdataUnitPart(_currentUnitPart, _partType); }
void TenOrOne(int times) { _partType = _partType; _currentUnitPart = _currentUnitPart; _units.TryGetValue(_currentUnitData.id, out _modelUnit); PBConnect_upgradeUnitPart.RESULT result = PBConnect_upgradeUnitPart.CheckUpgrade(_modelUnit.unitId, (int)_partType); if (result == PBConnect_upgradeUnitPart.RESULT.OK) { if (times == 1) { UpgradeOneUnitPart(); } else { UpgradeTenUnitPart(); } } else if (result == PBConnect_upgradeUnitPart.RESULT.LACK_ITEM1) { string str = "材料不足"; UIHelper.ShowTextPromptPanel(this.gameObject, str); } else if (result == PBConnect_upgradeUnitPart.RESULT.LACK_ITEM2) { string str = "材料不足"; UIHelper.ShowTextPromptPanel(this.gameObject, str); } else if (result == PBConnect_upgradeUnitPart.RESULT.LACK_MAIN_LEVEL) { string str = "车体系统等级不足,请升级!"; UIHelper.ShowTextPromptPanel(this.gameObject, str); } else if (result == PBConnect_upgradeUnitPart.RESULT.LACK_PLAYER_LEVEL) { string str = "部件等级超过玩家等级!"; UIHelper.ShowTextPromptPanel(this.gameObject, str); } else if (result == PBConnect_upgradeUnitPart.RESULT.MAX_LEVEL) { string str = "部件达到最大级别!"; UIHelper.ShowTextPromptPanel(this.gameObject, str); } else if (result == PBConnect_upgradeUnitPart.RESULT.LACK_RESOURCE) { int[] resArr = Model_Helper.GetPlayerNeedBuyRes(_currentUnitPart.cost.costFood, _currentUnitPart.cost.costOil, _currentUnitPart.cost.costMetal, _currentUnitPart.cost.costRare); UIHelper.BuyResourcesUI(resArr, ResourcesBuyType.StrengThenPartType, times); } else if (result == PBConnect_upgradeUnitPart.RESULT.UNIT_LOCK) { string str = "UNIT_LOCK!"; UIHelper.ShowTextPromptPanel(this.gameObject, str); } }
public DataUnitPart[] GetDataParts() { DataUnitPart[] parts = new DataUnitPart[4]; DataUnit dataUnit = DataManager.instance.dataUnitsGroup.GetUnit(unitId); DataUnitPartGroup partGroup = DataManager.instance.dataUnitPartGroup; for (int i = 0; i < parts.Length; ++i) { int partId = dataUnit.partsId[i]; int partLevel = partLevels[i]; parts[i] = partGroup.GetPart(partId, partLevel); } return(parts); }
public DataUnitPart[] GetAllLevelParts(int id) { Dictionary <int, DataUnitPart> parts; dataUnitParts.TryGetValue(id, out parts); if (parts != null) { DataUnitPart[] allParts = new DataUnitPart[parts.Count]; int i = 0; foreach (KeyValuePair <int, DataUnitPart> pair in parts) { allParts[i++] = pair.Value; } return(allParts); } return(null); }
public UPGRADE_PART_RESULT CanUpgradePart(int index) { DataUnitPart mainDataPart = GetDataParts()[0]; DataUnitPart dataPart = GetDataParts()[index]; Trace.trace("GetPartLevelMax(index) " + GetPartLevelMax(index), Trace.CHANNEL.UI); if (dataPart.level + 1 > GetPartLevelMax(index)) { return(UPGRADE_PART_RESULT.MAX_LEVEL); } if (dataPart.mainLevel > mainDataPart.level) { return(UPGRADE_PART_RESULT.NEED_MAIN_LEVEL); } if (index != 0) { if (mainDataPart.level < dataPart.level + 1) { return(UPGRADE_PART_RESULT.NEED_MAIN_LEVEL); } } else { int userLevel = InstancePlayer.instance.model_User.honorLevel; if (mainDataPart.level + 1 > userLevel) { return(UPGRADE_PART_RESULT.NEED_USER_LEVEL); } } ConnectionValidateHelper.CostCheck r = ConnectionValidateHelper.IsEnoughCost(dataPart.cost); if (r != ConnectionValidateHelper.CostCheck.OK) { return(UPGRADE_PART_RESULT.NEED_RESOURCE); } return(UPGRADE_PART_RESULT.OK); }
void Update() { _currentUnitData = _currentUnitData; _partType = _partType; if (_unitDataList != null) { SetWrapContent(_grid, _unitDataList, _strengthenTankItemDic, OnUpdateItem); } if (_currentUnitData != null) { UpdataTankInfo(_currentUnitData); _units = InstancePlayer.instance.model_User.unlockUnits; _units.TryGetValue(_currentUnitData.id, out _modelUnit); _unitPart = _modelUnit.GetDataParts(); _currentUnitPart = _unitPart[(int)_partType]; UpdataPromptPoint(_currentUnitData); } if (_currentUnitPart != null) { UpdataUnitPart(_currentUnitPart, _partType); } }
public static RESULT CheckUpgrade(int unitId, int partIndex) { if (!InstancePlayer.instance.model_User.unlockUnits.ContainsKey(unitId)) { return(RESULT.UNIT_LOCK); } Model_Unit modelUnit = InstancePlayer.instance.model_User.unlockUnits [unitId]; DataUnit dataUnit = DataManager.instance.dataUnitsGroup.GetUnit(unitId); int partId = dataUnit.partsId [partIndex]; int partLevel = modelUnit.partLevels[partIndex]; int mainPartLevel = modelUnit.partLevels[0]; DataUnitPart dataUnitPart = DataManager.instance.dataUnitPartGroup.GetPart(partId, partLevel); int maxLevel = DataManager.instance.dataUnitPartGroup.GetPartMaxLevel(partId); if (partLevel >= maxLevel) { return(RESULT.MAX_LEVEL); } if (partIndex == 0) { int playerLevel = InstancePlayer.instance.model_User.honorLevel; if (playerLevel < dataUnitPart.mainLevel) { return(RESULT.LACK_PLAYER_LEVEL); } } else { if (mainPartLevel < dataUnitPart.mainLevel) { return(RESULT.LACK_MAIN_LEVEL); } } int itemCount1 = InstancePlayer.instance.model_User.model_itemGroup.GetItemCount(dataUnitPart.itemCost1.id); if (itemCount1 < dataUnitPart.itemCost1.count) { return(RESULT.LACK_ITEM1); } int itemCount2 = InstancePlayer.instance.model_User.model_itemGroup.GetItemCount(dataUnitPart.itemCost2.id); if (itemCount2 < dataUnitPart.itemCost2.count) { return(RESULT.LACK_ITEM2); } bool hasEnoughResource = Model_Helper.HasEnoughResource(dataUnitPart.cost); if (!hasEnoughResource) { return(RESULT.LACK_RESOURCE); } return(RESULT.OK); }
public int GetPartLevel(int index) { DataUnitPart dataPart = GetDataParts()[index]; return(dataPart.level); }
private string GetDescription(string descript) { switch (command) { case "CommanderLv": //指挥官提升到N级 { descript = StringHelper.GenerateCompleteDescription(descript, source); } break; case "PassMission": //完成系统指定的关卡 { int magicId = (int)source; DataMission dataMission = DataManager.instance.dataMissionGroup.GetMission(magicId); descript = StringHelper.GenerateCompleteDescription(descript, dataMission.name, destination); } break; case "SpecifiedUnitPartLv": //指定unitpart强化到N级 { int unitId = (int)source; DataUnit dataUnit = DataManager.instance.dataUnitsGroup.GetUnit(unitId); int partId = (int)destination; DataUnitPart dataUnitPart = DataManager.instance.dataUnitPartGroup.GetPart(partId, 1); descript = StringHelper.GenerateCompleteDescription(descript, dataUnit.name, dataUnitPart.name, additional); } break; case "SpecifiedHeroLv": //指定hero升级到N级 { int heroId = (int)source; DataHero dataHero = DataManager.instance.dataHeroGroup.GetHeroPrimitive(heroId); descript = StringHelper.GenerateCompleteDescription(descript, dataHero.name, destination); } break; case "SpecifiedHeroStage": //指定hero升衔到N阶 { int heroId = (int)source; DataHero dataHero = DataManager.instance.dataHeroGroup.GetHeroPrimitive(heroId); descript = StringHelper.GenerateCompleteDescription(descript, dataHero.name, destination); } break; case "ConsumeStar": //获得N颗星星 { descript = StringHelper.GenerateCompleteDescription(descript, source); } break; case "GainUnit": //获得指定unit { int unitId = (int)source; DataUnit dataUnit = DataManager.instance.dataUnitsGroup.GetUnit(unitId); descript = StringHelper.GenerateCompleteDescription(descript, dataUnit.name, destination); } break; case "GainHero": //获得指定hero { int heroId = (int)source; DataHero dataHero = DataManager.instance.dataHeroGroup.GetHeroPrimitive(heroId); descript = StringHelper.GenerateCompleteDescription(descript, dataHero.name); } break; case "ArenaRankings": //在竞技场达到指定排名 { descript = StringHelper.GenerateCompleteDescription(descript, source); } break; case "BuildingLv": //相应建筑提升到N级 { int buildingId = (int)source; DataBuilding dataBuilding = DataManager.instance.dataBuildingGroup.GetBuilding(buildingId, 1); descript = StringHelper.GenerateCompleteDescription(descript, dataBuilding.name, destination); } break; } return(descript); }
void UpdataUnitPart(DataUnitPart unitPart, SystemType type) { List <float> batterdata = new List <float>(); List <float> willbatterdata = new List <float>(); List <string> attrstr = new List <string>(); batterdata.Clear(); attrstr.Clear(); willbatterdata.Clear(); bool isMaxLevel = false; int maxLevelPart = DataManager.instance.dataUnitPartGroup.GetPartMaxLevel(unitPart.id); int partLevel = 1; if (unitPart.level < maxLevelPart) { isMaxLevel = false; partLevel = unitPart.level + 1; _1_Curruent_Label.text = unitPart.level.ToString(); _1_willBe_Label.gameObject.SetActive(true); _1_willBe_Label.text = (unitPart.level + 1).ToString(); } else { isMaxLevel = true; partLevel = unitPart.level; _1_Curruent_Label.text = "已满级"; _1_willBe_Label.gameObject.SetActive(false); } DataUnitPart nextLevelPart = DataManager.instance.dataUnitPartGroup.GetPart(unitPart.id, partLevel); string systemName = ""; switch (type) { case SystemType.HP: systemName = "车体系统"; batterdata.Add(unitPart.battleParam.hp); willbatterdata.Add(nextLevelPart.battleParam.hp); attrstr.Add("血量"); break; case SystemType.AP: systemName = "武器系统"; batterdata.Add(unitPart.battleParam.damage); willbatterdata.Add(nextLevelPart.battleParam.damage); attrstr.Add("攻击"); break; case SystemType.DR: systemName = "动力系统"; batterdata.Add(unitPart.battleParam.hitRate); willbatterdata.Add(nextLevelPart.battleParam.hitRate); attrstr.Add("命中率"); break; case SystemType.DP: systemName = "护甲系统"; batterdata.Add(unitPart.battleParam.ammo); willbatterdata.Add(nextLevelPart.battleParam.ammo); attrstr.Add("防御"); break; } if (unitPart.battleParam.dodgeRate != 0.0f) { batterdata.Add(unitPart.battleParam.dodgeRate); willbatterdata.Add(nextLevelPart.battleParam.dodgeRate); attrstr.Add("闪避率"); } if (unitPart.battleParam.doubleDamageRate != 0.0f) { batterdata.Add(unitPart.battleParam.doubleDamageRate); willbatterdata.Add(nextLevelPart.battleParam.doubleDamageRate); attrstr.Add("暴击率"); } int count = attrstr.Count; for (int i = 0; i < count; i++) { _attributeList[i].gameObject.SetActive(true); _attributeList[i].text = attrstr[i]; _curruentList[i].text = batterdata[i].ToString(); if (isMaxLevel) { _willBeList[i].gameObject.SetActive(false); } else { _willBeList[i].gameObject.SetActive(true); } _willBeList[i].text = willbatterdata[i].ToString(); } _systemName_Label.text = systemName + "(LV." + unitPart.level.ToString() + ")"; _1_Label.text = unitPart.cost.costFood.ToString(); _2_Label.text = unitPart.cost.costOil.ToString(); _3_Label.text = unitPart.cost.costMetal.ToString(); _4_Label.text = unitPart.cost.costRare.ToString(); _iconBgList[2].gameObject.SetActive(false); if (unitPart.itemCost1 != null && unitPart.itemCost2 != null) { // _iconBgList.Clear(); // _iconItemList.Clear(); // _iconLabelList.Clear(); _iconItemList[0].SetItemTexture(unitPart.itemCost1.id); _iconLabelList[0].text = GetItemCount(unitPart.itemCost1); _iconItemList[1].SetItemTexture(unitPart.itemCost2.id); _iconLabelList[1].text = GetItemCount(unitPart.itemCost2); } else if (unitPart.itemCost1 != null && unitPart.itemCost2 == null) { _iconItemList[0].SetItemTexture(unitPart.itemCost1.id); _iconLabelList[0].text = GetItemCount(unitPart.itemCost1); _iconBgList[1].gameObject.SetActive(false); } else if (unitPart.itemCost2 != null && unitPart.itemCost1 == null) { _iconItemList[0].SetItemTexture(unitPart.itemCost2.id); _iconLabelList[0].text = GetItemCount(unitPart.itemCost2); _iconBgList[1].gameObject.SetActive(false); } else { _iconBgList[0].gameObject.SetActive(false); _iconBgList[1].gameObject.SetActive(false); _iconBgList[2].gameObject.SetActive(false); } }
public static UIDropItem GetUIDropItemByPrizeItem(SlgPB.PrizeItem prizeItem) { UIDropItem drop = new UIDropItem(prizeItem); switch (drop.type) { case (int)DataConfig.DATA_TYPE.Unit: { DataUnit dataUnit = DataManager.instance.dataUnitsGroup.GetUnit(drop.id); drop.name = dataUnit.name; drop.icon = UICommon.UNIT_SMALL_PATH_PREFIX + drop.id; } break; case (int)DataConfig.DATA_TYPE.UnitPart: { DataUnitPart dataUnitPart = DataManager.instance.dataUnitPartGroup.GetPart(drop.id, 1); drop.name = dataUnitPart.name; } break; case (int)DataConfig.DATA_TYPE.Item: { DataItem dataItem = DataManager.instance.dataItemGroup.GetItem(drop.id); drop.name = dataItem.name; drop.icon = UICommon.ITEM_PATH_PREFIX + drop.id; } break; case (int)DataConfig.DATA_TYPE.Hero: { DataHero dataHero = DataManager.instance.dataHeroGroup.GetHeroPrimitive(drop.id); drop.name = dataHero.name; drop.icon = UICommon.HERO_SMALL_PATH_PREFIX + drop.id; } break; case (int)DataConfig.DATA_TYPE.Combat: { drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Combat); drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type; } break; case (int)DataConfig.DATA_TYPE.Honor: { drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Honor); drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type; } break; case (int)DataConfig.DATA_TYPE.Food: { drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Food); drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type; } break; case (int)DataConfig.DATA_TYPE.Oil: { drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Oil); drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type; } break; case (int)DataConfig.DATA_TYPE.Metal: { drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Metal); drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type; } break; case (int)DataConfig.DATA_TYPE.Rare: { drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Rare); drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type; } break; case (int)DataConfig.DATA_TYPE.Cash: { drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Cash); drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type; } break; case (int)DataConfig.DATA_TYPE.Exp: { drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Exp); drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type; } break; case (int)DataConfig.DATA_TYPE.Energy: { drop.name = DataConfig.GetDataTypeName(DataConfig.DATA_TYPE.Energy); drop.icon = UICommon.DROP_ITEM_PATH_PREFIX + (int)drop.type; } break; case (int)DataConfig.DATA_TYPE.Building: break; case (int)DataConfig.DATA_TYPE.Mission: break; case (int)DataConfig.DATA_TYPE.Battle: break; case (int)DataConfig.DATA_TYPE.DropGroup: break; case (int)DataConfig.DATA_TYPE.Equipment: break; } return(drop); }