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 AddSpacerElement(int sortOrder, UXGrid grid) { UXElement item = grid.CloneTemplateItem("spacer"); grid.GetSubElement <UXButton>("spacer", "ButtonTroopItemCard").Visible = false; grid.GetSubElement <UXLabel>("spacer", "LabelTroopLevel").Visible = false; grid.GetSubElement <UXLabel>("spacer", "LabelRequirement").Visible = false; grid.GetSubElement <UXSprite>("spacer", "SpriteIconLockedTroop").Visible = false; grid.GetSubElement <UXSprite>("spacer", "SpriteFragmentTroop").Visible = false; grid.AddItem(item, sortOrder); }
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(); }
protected void PopulateGrid(string[] rawSplit, string gridName, string itemName, string itemTextureName, string itemTitleName, string itemBodyName) { UXGrid element = this.parent.GetElement <UXGrid>(gridName); element.SetTemplateItem(itemName); int i = 1; int num = rawSplit.Length; while (i < num) { string itemUid = i.ToString(); UXElement item = element.CloneTemplateItem(itemUid); element.AddItem(item, i - 1); string[] array = rawSplit[i].Split(new char[] { ',' }); UXTexture subElement = element.GetSubElement <UXTexture>(itemUid, itemTextureName); TextureVO optional = Service.Get <IDataController>().GetOptional <TextureVO>(array[0]); if (optional == null) { Service.Get <StaRTSLogger>().WarnFormat("Cannot find texture with uid {0}", new object[] { array[0] }); } else { subElement.LoadTexture(optional.AssetName); } Lang lang = Service.Get <Lang>(); element.GetSubElement <UXLabel>(itemUid, itemTitleName).Text = lang.Get(array[1], new object[0]); element.GetSubElement <UXLabel>(itemUid, itemBodyName).Text = lang.Get(array[2], new object[0]); i++; } element.RepositionItems(); }
private void AddExpendedItem(UXGrid expendedGrid, string entryItemUid, string troopUid, IUpgradeableVO troop, int count, int unitQuality, BattleEntry battleEntry) { if (expendedGrid.Count == 8) { return; } if (count <= 0) { return; } UXElement uXElement = expendedGrid.CloneTemplateItem(troopUid); uXElement.Root.name = UXUtils.FormatAppendedName(uXElement.Root.name, entryItemUid); UXLabel subElement = expendedGrid.GetSubElement <UXLabel>(troopUid, UXUtils.FormatAppendedName("LabelTroopsExpended", entryItemUid)); subElement.Text = ((count <= 0) ? string.Empty : this.lang.Get("TROOP_MULTIPLIER", new object[] { count })); UXLabel subElement2 = expendedGrid.GetSubElement <UXLabel>(troopUid, UXUtils.FormatAppendedName("LabelTroopLevel", entryItemUid)); subElement2.Text = LangUtils.GetLevelText(troop.Lvl); UXSprite subElement3 = expendedGrid.GetSubElement <UXSprite>(troopUid, UXUtils.FormatAppendedName("SpriteTroopsImage", entryItemUid)); ProjectorConfig projectorConfig = ProjectorUtils.GenerateGeometryConfig(troop, subElement3); Service.EventManager.SendEvent(EventId.ButtonCreated, new GeometryTag(troop, projectorConfig, battleEntry)); UXUtils.SetupGeometryForIcon(subElement3, projectorConfig); string defaultCardName = UXUtils.FormatAppendedName("TroopsExpendBgDefault", entryItemUid); string cardName = UXUtils.FormatAppendedName("TroopsExpendBgQ{0}", entryItemUid); UXUtils.SetCardQuality(this, expendedGrid, troopUid, unitQuality, cardName, defaultCardName); FactionDecal.UpdateDeployableDecal(troopUid, entryItemUid, expendedGrid, (IDeployableVO)troop); UXButton subElement4 = expendedGrid.GetSubElement <UXButton>(troopUid, UXUtils.FormatAppendedName("TroopsExpendedCard", entryItemUid)); this.troopTooltipHelper.RegisterButtonTooltip(subElement4, troop, battleEntry); expendedGrid.AddItem(uXElement, troop.Order); }
private void AddTier(TournamentTierVO tierVO, bool isCurrent, int order, Dictionary <string, TournamentRewardsVO> tierRewardMap) { if (!tierRewardMap.ContainsKey(tierVO.Uid)) { Service.Get <StaRTSLogger>().ErrorFormat("There is no reward found for tier {0}", new object[] { tierVO.Uid }); return; } string uid = tierVO.Uid; UXElement item = this.tierGrid.CloneTemplateItem(uid); UXElement subElement = this.tierGrid.GetSubElement <UXElement>(uid, "CurrentLeague"); subElement.Visible = isCurrent; if (isCurrent && this.currentPlayerRank != null) { string id = (TimedEventUtils.GetState(this.currentTournamentVO) == TimedEventState.Live) ? "CONFLICT_CURRENT_PERCENTILE" : "CONFLICT_FINAL_PERCENTILE"; UXLabel subElement2 = this.tierGrid.GetSubElement <UXLabel>(uid, "LabelCurrentLeague"); subElement2.Text = this.lang.Get(id, new object[] { Math.Round(this.currentPlayerRank.Percentile, 2) }); } float percentage = tierVO.Percentage; UXLabel subElement3 = this.tierGrid.GetSubElement <UXLabel>(uid, "LabelRequirements"); if (percentage < 100f) { subElement3.Text = this.lang.Get("CONFLICT_TIER_REQ_PERCENTAGE", new object[] { percentage }); } else { subElement3.Text = this.lang.Get("CONFLICT_TIER_REQ_ANY", new object[0]); } UXLabel subElement4 = this.tierGrid.GetSubElement <UXLabel>(uid, "LabelLeagueLevel"); subElement4.Text = this.lang.Get(tierVO.RankName, new object[0]); if (tierVO.Division != null) { string text = this.lang.Get(tierVO.Division, new object[0]); if (!string.IsNullOrEmpty(text) && text.Trim().get_Length() != 0) { UXLabel expr_1A0 = subElement4; expr_1A0.Text = expr_1A0.Text + " - " + text; } } UXSprite subElement5 = this.tierGrid.GetSubElement <UXSprite>(uid, "SpriteLeagueIcon"); subElement5.SpriteName = Service.Get <TournamentController>().GetTierIconName(tierVO); TournamentRewardsVO tournamentRewardsVO = tierRewardMap[tierVO.Uid]; UXGrid subElement6 = this.tierGrid.GetSubElement <UXGrid>(uid, "GridRewardCards"); StringBuilder stringBuilder = new StringBuilder(" ("); stringBuilder.Append(uid); stringBuilder.Append(")"); string text2 = stringBuilder.ToString(); subElement6.SetTemplateItem("EquipmentItemCard" + text2); CrateVO optional = Service.Get <IDataController>().GetOptional <CrateVO>(tournamentRewardsVO.CrateRewardIds[0]); if (optional != null) { IDataController dataController = Service.Get <IDataController>(); List <CrateFlyoutItemVO> list = new List <CrateFlyoutItemVO>(); CurrentPlayer currentPlayer = Service.Get <CurrentPlayer>(); string[] array = (currentPlayer.Faction == FactionType.Empire) ? optional.FlyoutEmpireItems : optional.FlyoutRebelItems; if (array != null) { int i = 0; int num = array.Length; while (i < num) { string text3 = array[i]; CrateFlyoutItemVO optional2 = dataController.GetOptional <CrateFlyoutItemVO>(text3); if (optional2 == null) { Service.Get <StaRTSLogger>().ErrorFormat("CrateInfoModalScreen: FlyoutItemVO Uid {0} not found", new object[] { text3 }); } else { bool flag = UXUtils.ShouldDisplayCrateFlyoutItem(optional2, CrateFlyoutDisplayType.TournamentTier); if (flag) { PlanetVO optional3 = dataController.GetOptional <PlanetVO>(this.currentTournamentVO.PlanetId); int currentHqLevel = currentPlayer.Map.FindHighestHqLevel(); bool flag2 = UXUtils.IsValidRewardItem(optional2, optional3, currentHqLevel); if (flag2 && (!optional2.ReqArmory || ArmoryUtils.PlayerHasArmory()) && list.Count <= 5) { list.Add(optional2); string uid2 = optional2.Uid; UXElement uXElement = subElement6.CloneTemplateItem(uid2); this.SetupCrateReward(uid2, tournamentRewardsVO, subElement6, uXElement, text2, optional2); subElement6.AddItem(uXElement, i); } } } i++; } } else { Service.Get <StaRTSLogger>().ErrorFormat("There is no crate data for {0}", new object[] { tournamentRewardsVO.CrateRewardIds[0] }); } UXSprite subElement7 = subElement6.GetSubElement <UXSprite>(uid, "SpriteSupplyPrize"); RewardUtils.SetCrateIcon(subElement7, optional, AnimState.Closed); UXButton subElement8 = subElement6.GetSubElement <UXButton>(uid, "BtnConflictPrize"); subElement8.OnClicked = new UXButtonClickedDelegate(this.OnCrateClicked); subElement8.Tag = optional.Uid; UXLabel subElement9 = subElement6.GetSubElement <UXLabel>(uid, "LabelPrize"); subElement9.Text = this.lang.Get("CONFLICT_PRIZE_CRATE", new object[] { LangUtils.GetCrateDisplayName(optional) }); UXLabel subElement10 = subElement6.GetSubElement <UXLabel>(uid, "LabelPrizeNumber"); if (tournamentRewardsVO.CrateRewardIds.Length > 1) { subElement10.Text = this.lang.Get("CONFLICT_PRIZE_CRATE_MULTIPLIER", new object[] { tournamentRewardsVO.CrateRewardIds.Length }); } else { subElement10.Visible = false; subElement6.GetSubElement <UXElement>(uid, "SpritePrizeNumberShadow").Visible = false; } } this.tierGrid.AddItem(item, order); }