예제 #1
0
        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();
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #6
0
        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);
        }