private void PopulateAvailablePlanetsPanel(StaticDataController sdc) { UXElement element = base.GetElement <UXElement>("PanelPlanetAvailability"); element.Visible = true; base.GetElement <UXLabel>("LabelPlanetAvailability").Text = this.lang.Get("RESEARCH_LAB_ACTIVE_PLANETS", new object[0]); UXGrid element2 = base.GetElement <UXGrid>("GridPlanetAvailability"); element2.SetTemplateItem("TemplatePlanet"); element2.Clear(); int i = 0; int num = this.selectedEquipment.PlanetIDs.Length; while (i < num) { string uid = this.selectedEquipment.PlanetIDs[i]; PlanetVO planetVO = sdc.Get <PlanetVO>(uid); UXElement item = element2.CloneTemplateItem(planetVO.Uid); element2.AddItem(item, planetVO.Order); element2.GetSubElement <UXLabel>(planetVO.Uid, "LabelAvailablePlanet").Text = LangUtils.GetPlanetDisplayName(uid); element2.GetSubElement <UXTexture>(planetVO.Uid, "TextureAvailablePlanet").LoadTexture(planetVO.LeaderboardButtonTexture); i++; } element2.RepositionItemsFrameDelayed(); }
private void AddPerkToGrid(ActivatedPerkData perkData) { string perkId = perkData.PerkId; PerkViewController perkViewController = Service.PerkViewController; PerkVO perkVO = Service.StaticDataController.Get <PerkVO>(perkId); UXElement uXElement = this.perksGrid.CloneTemplateItem(perkId); uXElement.Tag = perkData; UXLabel subElement = this.perksGrid.GetSubElement <UXLabel>(perkId, "LabelPerkTitleModalActivePerks"); subElement.Text = perkViewController.GetPerkNameForGroup(perkVO.PerkGroup); UXTexture subElement2 = this.perksGrid.GetSubElement <UXTexture>(perkId, "TexturePerkArtModalActivePerks"); perkViewController.SetPerkImage(subElement2, perkVO); UXLabel subElement3 = this.perksGrid.GetSubElement <UXLabel>(perkId, "LabelPerkLvlModalActivePerks"); subElement3.Text = StringUtils.GetRomanNumeral(perkVO.PerkTier); UXLabel subElement4 = this.perksGrid.GetSubElement <UXLabel>(perkId, "ItemLabelModalActivePerks"); subElement4.Visible = false; UXGrid subElement5 = this.perksGrid.GetSubElement <UXGrid>(perkId, "GridSubModalActivePerks"); subElement5.SetTemplateItem("ItemLabelModalActivePerks"); subElement5.Clear(); PerkManager perkManager = Service.PerkManager; int i = 0; int num = perkVO.PerkEffects.Length; while (i < num) { string text = perkVO.PerkEffects[i]; PerkEffectVO perkEffectVO = Service.StaticDataController.Get <PerkEffectVO>(text); UXLabel uXLabel = (UXLabel)subElement5.CloneTemplateItem(text); uXLabel.Text = this.lang.Get(perkEffectVO.StatStringId, new object[0]) + Service.PerkViewController.GetFormattedValueBasedOnEffectType(perkEffectVO, null); if (!perkManager.IsPerkEffectAppliedToBuilding(perkEffectVO, this.buildingVO)) { uXLabel.TextColor = UXUtils.COLOR_PERK_EFFECT_NOT_APPLIED; } subElement5.AddItem(uXLabel, i); i++; } this.UpdatePerkTimer(uXElement); this.perksGrid.AddItem(uXElement, 1); }
public void SetupStatGridForPerk(PerkVO targetPerkVO, UXGrid statGrid, string templateElement, string descriptionElement, string valueElement, bool useUpgrade) { Lang lang = Service.Lang; StaticDataController staticDataController = Service.StaticDataController; string[] array = null; string[] perkEffects = targetPerkVO.PerkEffects; int num = perkEffects.Length; statGrid.SetTemplateItem(templateElement); string perkGroup = targetPerkVO.PerkGroup; int perkTier = targetPerkVO.PerkTier; if (useUpgrade && perkTier > 1) { PerkVO perkByGroupAndTier = GameUtils.GetPerkByGroupAndTier(perkGroup, perkTier - 1); array = perkByGroupAndTier.PerkEffects; if (perkEffects.Length != num) { Service.Logger.Error("PerkEffects list not consistent between " + perkByGroupAndTier.Uid + " and " + targetPerkVO.Uid); } } statGrid.Clear(); for (int i = 0; i < num; i++) { PerkEffectVO perkEffectVO = staticDataController.Get <PerkEffectVO>(perkEffects[i]); PerkEffectVO prevVO = null; if (array != null) { prevVO = staticDataController.Get <PerkEffectVO>(array[i]); } string itemUid = perkEffectVO.Uid + i; UXElement item = statGrid.CloneTemplateItem(itemUid); UXLabel subElement = statGrid.GetSubElement <UXLabel>(itemUid, descriptionElement); UXLabel subElement2 = statGrid.GetSubElement <UXLabel>(itemUid, valueElement); subElement.Text = lang.Get(perkEffectVO.StatStringId, new object[0]); subElement2.Text = this.GetFormattedValueBasedOnEffectType(perkEffectVO, prevVO); statGrid.AddItem(item, i); } statGrid.RepositionItems(); }