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 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); }