public static int GetShardsRequiredForNextUpgrade(CurrentPlayer currentPlayer, EquipmentUpgradeCatalog equipmentCatalog, EquipmentVO equipmentVO) { if (!ArmoryUtils.IsEquipmentOwned(currentPlayer, equipmentVO)) { EquipmentVO minLevel = equipmentCatalog.GetMinLevel(equipmentVO.EquipmentID); return(minLevel.UpgradeShards); } EquipmentVO nextLevel = equipmentCatalog.GetNextLevel(equipmentVO); if (nextLevel == null) { return(-1); } return(nextLevel.UpgradeShards); }
public EquipmentInfoScreen(EquipmentVO selectedEquipment, List <EquipmentVO> equipmentList, SmartEntity selectedBuilding, bool forResearchLab, bool forArmoryScreen) : base("gui_troop_info", selectedBuilding) { this.wantsTransition = false; this.shouldCloseParent = true; this.selectedEquipment = selectedEquipment; EquipmentUpgradeCatalog equipmentUpgradeCatalog = Service.EquipmentUpgradeCatalog; this.nextEquipmentVoUpgrade = equipmentUpgradeCatalog.GetNextLevel(selectedEquipment); this.equipmentList = equipmentList; this.forResearchLab = forResearchLab; this.forArmoryScreen = forArmoryScreen; if (forResearchLab) { this.CheckActiveContract(); } this.accumulatedUpdateDt = 0f; }
private void PopulateEquipmentGrid() { EquipmentUpgradeCatalog equipmentUpgradeCatalog = Service.EquipmentUpgradeCatalog; CurrentPlayer currentPlayer = Service.CurrentPlayer; this.FindAllUpgradableEquipment(currentPlayer, equipmentUpgradeCatalog); int maxItemsPerLine = (this.equipmentToDisplay.Count + 1) / 2; this.equipmentGrid.MaxItemsPerLine = maxItemsPerLine; EquipmentTabHelper equipmentTabHelper = this.filterHelper as EquipmentTabHelper; EquipmentTab currentTab = (EquipmentTab)equipmentTabHelper.CurrentTab; List <UXElement> list = new List <UXElement>(); int i = 0; int count = this.equipmentToDisplay.Count; while (i < count) { EquipmentVO equipmentVO = this.equipmentToDisplay[i]; if (equipmentTabHelper.IsEquipmentValidForTab(equipmentVO, currentTab)) { if (this.contractHidden) { EquipmentVO nextLevel = equipmentUpgradeCatalog.GetNextLevel(equipmentVO); if (nextLevel.Uid == this.activeContract.ProductUid) { this.contractHidden = false; } } UXElement item = this.FetchEquipmentCardGridItem(currentPlayer, equipmentVO, equipmentUpgradeCatalog); list.Add(item); } i++; } UXUtils.SortListForTwoRowGrids(list, this.equipmentGrid); int j = 0; int count2 = list.Count; while (j < count2) { this.equipmentGrid.AddItem(list[j], j); j++; } list.Clear(); this.equipmentGrid.RepositionItemsFrameDelayed(new UXDragDelegate(this.FinishEquipmentGridSetup), 1); this.CheckActiveContract(); }
private void OnPrevOrNextButtonClicked(UXButton button) { int num = (int)button.Tag; int count = this.equipmentList.Count; int index = (num >= 0) ? 0 : (count - 1); EquipmentVO equipmentVO = this.equipmentList[index]; for (int i = count - 1; i >= 0; i--) { int index2 = (num >= 0) ? i : (count - 1 - i); EquipmentVO equipmentVO2 = this.equipmentList[index2]; if (equipmentVO2 == this.selectedEquipment) { break; } equipmentVO = equipmentVO2; } this.selectedEquipment = equipmentVO; EquipmentUpgradeCatalog equipmentUpgradeCatalog = Service.EquipmentUpgradeCatalog; this.nextEquipmentVoUpgrade = equipmentUpgradeCatalog.GetNextLevel(this.selectedEquipment); this.Redraw(); }
private UXElement FetchEquipmentCardGridItem(CurrentPlayer player, EquipmentVO equipmentVO, EquipmentUpgradeCatalog catalog) { UXElement result = this.equipmentGrid.CloneTemplateItem(equipmentVO.Uid); string uid = equipmentVO.Uid; EquipmentVO nextLevel = catalog.GetNextLevel(equipmentVO); ShardQuality quality = equipmentVO.Quality; UXUtils.SetCardQuality(this, this.equipmentGrid, uid, (int)quality, "EquipmentItemCardQ{0}"); UXLabel subElement = this.equipmentGrid.GetSubElement <UXLabel>(uid, "LabelEquipmentName"); subElement.Text = this.lang.Get(equipmentVO.EquipmentName, new object[0]); UXLabel subElement2 = this.equipmentGrid.GetSubElement <UXLabel>(uid, "LabelEquipmentLevel"); subElement2.Text = LangUtils.GetLevelText(equipmentVO.Lvl); UXButton subElement3 = this.equipmentGrid.GetSubElement <UXButton>(uid, "BtnEquipmentItemCard"); subElement3.Tag = equipmentVO; subElement3.OnClicked = new UXButtonClickedDelegate(this.OnEquipmentButtonClicked); this.troopGrid.GetSubElement <UXSlider>(uid, "pBarUpgradeTimeEquipment").Visible = false; this.troopGrid.GetSubElement <UXLabel>(uid, "LabelpBarUpgradeTimeEquipment").Visible = false; UXSprite subElement4 = this.equipmentGrid.GetSubElement <UXSprite>(uid, "SpriteFragmentEquip"); UXUtils.SetupFragmentIconSprite(subElement4, (int)quality); UXSprite subElement5 = this.equipmentGrid.GetSubElement <UXSprite>(uid, "SpriteEquipmentItemImage"); ProjectorConfig config = ProjectorUtils.GenerateEquipmentConfig(equipmentVO, subElement5, true); ProjectorUtils.GenerateProjector(config); UXLabel subElement6 = this.equipmentGrid.GetSubElement <UXLabel>(uid, "LabelEquipmentNumber"); UXSlider subElement7 = this.equipmentGrid.GetSubElement <UXSlider>(uid, "pBarFrag"); UXSprite subElement8 = this.equipmentGrid.GetSubElement <UXSprite>(uid, "SpritepBarFrag"); subElement8.Color = UXUtils.COLOR_SHARD_INPROGRESS; UXLabel subElement9 = this.equipmentGrid.GetSubElement <UXLabel>(uid, "LabelEquipmentRequirement"); UXSprite subElement10 = this.equipmentGrid.GetSubElement <UXSprite>(uid, "SpriteDim"); UXSprite subElement11 = this.equipmentGrid.GetSubElement <UXSprite>(uid, "SpriteIconLockedEquip"); UXElement subElement12 = this.equipmentGrid.GetSubElement <UXElement>(uid, "IconUpgrade"); if (!player.UnlockedLevels.Equipment.Has(equipmentVO)) { subElement9.Text = LangUtils.GetShardLockedEquipmentString(equipmentVO); subElement10.Visible = true; subElement11.Visible = true; subElement2.Visible = false; int shards = player.GetShards(equipmentVO.EquipmentID); subElement6.Text = this.lang.Get("OBJECTIVE_PROGRESS", new object[] { shards, equipmentVO.UpgradeShards }); subElement7.Value = this.CalculateProgress(shards, equipmentVO); subElement12.Visible = false; } else if (nextLevel == null) { subElement6.Visible = false; subElement10.Visible = true; subElement11.Visible = false; subElement6.Visible = false; subElement9.Text = this.lang.Get("MAX_LEVEL", new object[0]); subElement7.Visible = false; subElement12.Visible = false; } else { int shards2 = player.GetShards(equipmentVO.EquipmentID); subElement6.Text = this.lang.Get("OBJECTIVE_PROGRESS", new object[] { shards2, nextLevel.UpgradeShards }); subElement7.Value = this.CalculateProgress(shards2, nextLevel); subElement12.Visible = (shards2 >= nextLevel.UpgradeShards); if (subElement12.Visible) { subElement8.Color = UXUtils.COLOR_SHARD_COMPLETE; } if (ArmoryUtils.IsBuildingRequirementMet(nextLevel)) { subElement9.Visible = false; subElement10.Visible = false; subElement11.Visible = false; } else { BuildingTypeVO buildingInfo = this.dataController.Get <BuildingTypeVO>(nextLevel.BuildingRequirement); subElement9.Text = this.lang.Get("BUILDING_REQUIREMENT", new object[] { nextLevel.Lvl, LangUtils.GetBuildingDisplayName(buildingInfo) }); subElement10.Visible = true; subElement11.Visible = true; } } return(result); }
private UXElement CreateInactiveCard(UXGrid grid, EquipmentVO equipment, CurrentPlayer currentPlayer) { UXElement uXElement = this.CreateCommonEquipmentCard(grid, equipment, "LabelEquipmentName", "LabelEquipmentLevel", "SpriteEquipmentItemImage", "EquipmentItemCardQ{0}", false, true); (uXElement.Tag as SortableEquipment).Player = currentPlayer; UXButton subElement = this.inactiveGrid.GetSubElement <UXButton>(equipment.Uid, "BtnEquipmentInfo"); subElement.OnClicked = new UXButtonClickedDelegate(this.OnInfoButtonClicked); subElement.Tag = equipment; UXButton subElement2 = this.inactiveGrid.GetSubElement <UXButton>(equipment.Uid, "BtnEquipmentItemCard"); subElement2.OnClicked = new UXButtonClickedDelegate(this.OnCardButtonClicked); subElement2.Tag = uXElement; EquipmentUpgradeCatalog equipmentUpgradeCatalog = Service.EquipmentUpgradeCatalog; UXSlider subElement3 = this.inactiveGrid.GetSubElement <UXSlider>(equipment.Uid, "pBarEquipmentItemFrag"); UXSprite subElement4 = this.inactiveGrid.GetSubElement <UXSprite>(equipment.Uid, "SpriteEquipmentItempBarFrag"); UXLabel subElement5 = grid.GetSubElement <UXLabel>(equipment.Uid, "LabelFragProgress"); UXElement subElement6 = this.inactiveGrid.GetSubElement <UXElement>(equipment.Uid, "IconUpgrade"); UXSprite subElement7 = grid.GetSubElement <UXSprite>(equipment.Uid, "SpriteEquipmentImageBkgStroke"); UXSprite subElement8 = grid.GetSubElement <UXSprite>(equipment.Uid, "SpriteEquipmentItemBarOutline"); UXSprite subElement9 = grid.GetSubElement <UXSprite>(equipment.Uid, "SpriteEquipmentImageBkgGlow"); subElement7.Color = ArmoryScreen.qualityColor[equipment.Quality]; subElement8.Color = ArmoryScreen.qualityColor[equipment.Quality]; subElement9.Color = ArmoryScreen.qualityColor[equipment.Quality]; subElement9.Alpha = 0.4f; float sliderProgressValue = this.GetSliderProgressValue(equipment, currentPlayer.GetShards(equipment.EquipmentID)); UXSprite subElement10 = this.inactiveGrid.GetSubElement <UXSprite>(equipment.Uid, "SpriteIconFragment"); UXUtils.SetupFragmentIconSprite(subElement10, (int)equipment.Quality); UXUtils.SetShardProgressBarValue(subElement3, subElement4, sliderProgressValue); subElement6.Visible = false; if (ArmoryUtils.IsAtMaxLevel(equipmentUpgradeCatalog, equipment)) { subElement5.Text = this.lang.Get("MAX_LEVEL", new object[0]); } else { int shards = currentPlayer.GetShards(equipment.EquipmentID); int shardsRequiredForNextUpgrade = ArmoryUtils.GetShardsRequiredForNextUpgrade(currentPlayer, equipmentUpgradeCatalog, equipment); if (shards >= shardsRequiredForNextUpgrade) { subElement5.Text = this.lang.Get("ARMORY_UPGRADE_NOW", new object[0]); } else { subElement5.Text = this.lang.Get("OBJECTIVE_PROGRESS", new object[] { shards, shardsRequiredForNextUpgrade }); } } if (ArmoryUtils.IsEquipmentOwned(currentPlayer, equipment)) { EquipmentVO nextLevel = equipmentUpgradeCatalog.GetNextLevel(equipment); if (nextLevel != null) { if (Service.ISupportController.FindFirstContractWithProductUid(nextLevel.Uid) != null) { subElement5.Visible = false; subElement3.Visible = false; } else if (currentPlayer.GetShards(equipment.EquipmentID) >= nextLevel.UpgradeShards) { subElement6.Visible = true; } } } this.SetDimmerBasedOnRequirements(currentPlayer, equipment); return(uXElement); }