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(); }
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 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); }
private void AddBattleLogItem(BattleEntry entry) { CurrentPlayer currentPlayer = Service.CurrentPlayer; bool flag = currentPlayer.PlayerId == entry.AttackerID; BattleParticipant battleParticipant; BattleParticipant battleParticipant2; if (flag) { battleParticipant = entry.Attacker; battleParticipant2 = entry.Defender; } else { battleParticipant = entry.Defender; battleParticipant2 = entry.Attacker; } string playerName = battleParticipant2.PlayerName; string guildName = battleParticipant2.GuildName; FactionType factionType = battleParticipant2.PlayerFaction; if (factionType == FactionType.Invalid) { factionType = GameUtils.GetOppositeFaction(currentPlayer.Faction); } int num = GameUtils.CalcuateMedals(battleParticipant.AttackRating, battleParticipant.DefenseRating); int num2 = GameUtils.CalcuateMedals(battleParticipant.AttackRating + battleParticipant.AttackRatingDelta, battleParticipant.DefenseRating + battleParticipant.DefenseRatingDelta); int value = num2 - num; int tournamentRatingDelta = battleParticipant.TournamentRatingDelta; bool flag2 = GameUtils.IsBattleVersionSupported(entry.CmsVersion, entry.BattleVersion); bool flag3 = Service.SquadController.StateManager.GetCurrentSquad() != null; bool visible = flag2; bool visible2 = !flag && entry.IsPvP() && !entry.Revenged && entry.PlanetId == currentPlayer.PlanetId; bool visible3 = flag2 && flag3; uint time = ServerTime.Time; int totalSeconds = (int)(time - entry.EndBattleServerTime); int count = this.itemGrid.Count; string text = string.Format("{0}{1}", "BattleLogItem", count); UXElement item = this.itemGrid.CloneTemplateItem(text); bool won = entry.Won; Color winResultColor = UXUtils.GetWinResultColor(won); UXButton subElement = this.itemGrid.GetSubElement <UXButton>(text, "BtnReplay"); subElement.Tag = entry; subElement.OnClicked = new UXButtonClickedDelegate(this.OnReplayButtonClicked); subElement.Visible = visible; UXButton subElement2 = this.itemGrid.GetSubElement <UXButton>(text, "BtnRevenge"); subElement2.Tag = entry; subElement2.OnClicked = new UXButtonClickedDelegate(this.OnRevengeButtonClicked); subElement2.Visible = visible2; if (this.revengeButtons == null) { this.revengeButtons = new List <UXButton>(); } this.revengeButtons.Add(subElement2); UXButton subElement3 = this.itemGrid.GetSubElement <UXButton>(text, "BtnShare"); subElement3.Tag = entry; subElement3.OnClicked = new UXButtonClickedDelegate(this.OnShareButtonClicked); subElement3.Visible = visible3; UXLabel subElement4 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelBtnShare"); subElement4.Text = this.lang.Get("s_Share", new object[0]); UXLabel subElement5 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelBtnReplay"); subElement5.Text = this.lang.Get("BUTTON_REPLAY", new object[0]); UXLabel subElement6 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelBtnRevenge"); subElement6.Text = this.lang.Get("s_Revenge", new object[0]); bool flag4 = this.curTab == BattleLogTab.Attack; int value2 = (!flag4) ? entry.LootCreditsDeducted : entry.LootCreditsEarned; int value3 = (!flag4) ? entry.LootMaterialsDeducted : entry.LootMaterialsEarned; int value4 = (!flag4) ? entry.LootContrabandDeducted : entry.LootContrabandEarned; UXLabel subElement7 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelCredits"); subElement7.Text = this.lang.ThousandsSeparated(value2); UXLabel subElement8 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelMaterials"); subElement8.Text = this.lang.ThousandsSeparated(value3); UXElement subElement9 = this.itemGrid.GetSubElement <UXElement>(text, "Contraband"); if (currentPlayer.IsContrabandUnlocked) { subElement9.Visible = true; UXLabel subElement10 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelContraband"); subElement10.Text = this.lang.ThousandsSeparated(value4); } else { subElement9.Visible = false; } UXLabel subElement11 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelBasePoints"); subElement11.Text = this.lang.ThousandsSeparated(value); subElement11.TextColor = winResultColor; UXLabel subElement12 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelDamage"); subElement12.Text = this.lang.Get("DAMAGE_PERCENT", new object[] { entry.DamagePercent }); UXLabel subElement13 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelResult"); subElement13.Text = this.lang.Get((!won) ? "YOU_LOST" : "YOU_WON", new object[0]); subElement13.TextColor = winResultColor; UXLabel subElement14 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelTimeStamp"); subElement14.Text = this.lang.Get("TIME_AGO", new object[] { GameUtils.GetTimeLabelFromSeconds(totalSeconds) }); UXLabel subElement15 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelPlayerName"); subElement15.Text = playerName; UXLabel subElement16 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelFactionName"); subElement16.Text = guildName; UXSprite subElement17 = this.itemGrid.GetSubElement <UXSprite>(text, "SpriteFaction"); subElement17.SpriteName = "Faction" + factionType.ToString(); if (!string.IsNullOrEmpty(entry.PlanetId)) { PlanetVO planetVO = this.sdc.Get <PlanetVO>(entry.PlanetId); UXTexture subElement18 = this.itemGrid.GetSubElement <UXTexture>(text, "TexturePlanetBg"); subElement18.LoadTexture(planetVO.LeaderboardTileTexture); } UXGrid subElement19 = this.itemGrid.GetSubElement <UXGrid>(text, "TroopsExpendedGrid"); UXElement subElement20 = this.itemGrid.GetSubElement <UXElement>(text, "TroopsExpendedTemplate"); subElement19.SetTemplateItem(subElement20.Root.name); this.AddExpendedItems(entry, text, subElement19); subElement19.RepositionItems(); bool flag5 = tournamentRatingDelta != 0; UXElement subElement21 = this.itemGrid.GetSubElement <UXElement>(text, "TournamentRating"); subElement21.Visible = flag5; if (!string.IsNullOrEmpty(entry.PlanetId)) { string tournamentPointIconName = GameUtils.GetTournamentPointIconName(entry.PlanetId); if (flag5 && !string.IsNullOrEmpty(tournamentPointIconName)) { UXSprite subElement22 = this.itemGrid.GetSubElement <UXSprite>(text, "SpriteTournamentRating"); subElement22.SpriteName = tournamentPointIconName; UXLabel subElement23 = this.itemGrid.GetSubElement <UXLabel>(text, "LabelTournamentRating"); subElement23.Text = tournamentRatingDelta.ToString(); subElement23.TextColor = winResultColor; } } this.itemGrid.AddItem(item, count); }