예제 #1
0
        private UXElement CreateActiveCard(UXGrid grid, EquipmentVO equipment, CurrentPlayer player)
        {
            UXElement         uXElement         = this.CreateCommonEquipmentCard(this.activeGrid, equipment, "LabelEquipmentActiveName", "LabelEquipmentActiveLevel", "SpriteEquipmentActiveItemImage", "EquipmentActiveItemCardQ{0}", true, false);
            SortableEquipment sortableEquipment = uXElement.Tag as SortableEquipment;

            sortableEquipment.IncrementingIndex = this.activeCardID++;
            UXLabel subElement = this.activeGrid.GetSubElement <UXLabel>(equipment.Uid, "LabelEquipmentActiveInstructions");

            subElement.Visible = false;
            UXButton subElement2 = this.activeGrid.GetSubElement <UXButton>(equipment.Uid, "BtnEquipmentActiveCancel");

            subElement2.OnClicked = new UXButtonClickedDelegate(this.OnCancelButtonClicked);
            subElement2.Tag       = uXElement;
            UXButton subElement3 = this.activeGrid.GetSubElement <UXButton>(equipment.Uid, "BtnEquipmentActiveItemCard");

            subElement3.Tag       = equipment;
            subElement3.OnClicked = new UXButtonClickedDelegate(this.OnActiveCardButtonClicked);
            UXSprite subElement4 = grid.GetSubElement <UXSprite>(equipment.Uid, "SpriteEquipmentActiveImageBkgStroke");
            UXSprite subElement5 = grid.GetSubElement <UXSprite>(equipment.Uid, "SpriteEquipmentActiveImageBkgGlow");

            subElement4.Color = ArmoryScreen.qualityColor[equipment.Quality];
            subElement5.Color = ArmoryScreen.qualityColor[equipment.Quality];
            subElement5.Alpha = 0.4f;
            this.activeGrid.GetSubElement <UXSprite>(equipment.Uid, "SpriteEquipmentActiveImageEmptySlot").Visible = false;
            return(uXElement);
        }
예제 #2
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();
        }
예제 #3
0
        private UXElement CreateEmptyCardInternal(UXGrid grid, string index)
        {
            UXElement uXElement = grid.CloneTemplateItem(index);

            uXElement.Tag = new SortableEquipment(null);
            UXButton subElement = grid.GetSubElement <UXButton>(index, "BtnEquipmentActiveItemCard");

            subElement.Enabled = false;
            UXLabel subElement2 = grid.GetSubElement <UXLabel>(index, "LabelEquipmentActiveName");

            subElement2.Visible = false;
            UXLabel subElement3 = this.activeGrid.GetSubElement <UXLabel>(index, "LabelEquipmentActiveInstructions");

            subElement3.Visible = false;
            UXLabel subElement4 = grid.GetSubElement <UXLabel>(index, "LabelEquipmentActiveLevel");

            subElement4.Visible = false;
            UXSprite subElement5 = grid.GetSubElement <UXSprite>(index, "SpriteEquipmentActiveItemImage");

            subElement5.Visible = false;
            UXButton subElement6 = grid.GetSubElement <UXButton>(index, "BtnEquipmentActiveCancel");

            subElement6.Visible = false;
            UXUtils.HideGridQualityCards(grid, index, "EquipmentActiveItemCardQ{0}");
            grid.GetSubElement <UXSprite>(index, "SpriteEquipmentActiveImageBkg").Visible       = false;
            grid.GetSubElement <UXSprite>(index, "SpriteEquipmentActiveGradientBottom").Visible = false;
            grid.GetSubElement <UXSprite>(index, "SpriteEquipmentActiveImageBkgGlow").Visible   = false;
            grid.GetSubElement <UXSprite>(index, "SpriteEquipmentActiveImageBkgStroke").Visible = false;
            return(uXElement);
        }
예제 #4
0
        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);
        }
예제 #5
0
        public static void UpdateDeployableDecal(string itemUid, string name, UXGrid grid, IDeployableVO deployableVO)
        {
            string deployableDecalSpriteName = FactionDecal.GetDeployableDecalSpriteName(deployableVO);
            string name2 = UXUtils.FormatAppendedName("SpriteHeroDecal", name);

            FactionDecal.SetSpriteAndVisibility(grid.GetSubElement <UXSprite>(itemUid, name2), deployableDecalSpriteName);
        }
예제 #6
0
        private void ShowInstructionalTextOnFirstEmptyCard(UXGrid grid)
        {
            if (!this.ListHasEmptyFirstCard(grid))
            {
                return;
            }
            List <UXElement> elementList = grid.GetElementList();
            int num   = 500000;
            int i     = 0;
            int count = elementList.Count;

            while (i < count)
            {
                SortableEquipment sortableEquipment = elementList[i].Tag as SortableEquipment;
                if (sortableEquipment.EmptyIndex < num)
                {
                    num = sortableEquipment.EmptyIndex;
                }
                i++;
            }
            StringBuilder stringBuilder = new StringBuilder("EMPTY");
            string        itemUid       = stringBuilder.Append(num).ToString();
            UXLabel       subElement    = grid.GetSubElement <UXLabel>(itemUid, "LabelEquipmentActiveInstructions");

            subElement.Visible = true;
        }
예제 #7
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();
        }
예제 #8
0
        private UXElement CreateDeployableUXElement(UXGrid grid, string uid, string assetName, int amount, IDeployableVO troop, BattleEntry battle)
        {
            UXElement       result          = grid.CloneTemplateItem(uid);
            UXSprite        subElement      = grid.GetSubElement <UXSprite>(uid, this.TroopCardIconName);
            ProjectorConfig projectorConfig = ProjectorUtils.GenerateGeometryConfig(troop, subElement);

            Service.EventManager.SendEvent(EventId.ButtonCreated, new GeometryTag(troop, projectorConfig, battle));
            projectorConfig.AnimPreference = AnimationPreference.NoAnimation;
            ProjectorUtils.GenerateProjector(projectorConfig);
            UXLabel subElement2 = grid.GetSubElement <UXLabel>(uid, this.TroopCardAmountName);

            subElement2.Text = LangUtils.GetMultiplierText(amount);
            UXLabel subElement3 = grid.GetSubElement <UXLabel>(uid, this.TroopCardLevelName);

            subElement3.Text = LangUtils.GetLevelText(troop.Lvl);
            FactionDecal.UpdateDeployableDecal(uid, grid, troop, this.TroopHeroDecalName);
            string text = null;

            if (troop is TroopTypeVO)
            {
                TroopTypeVO troop2 = troop as TroopTypeVO;
                Service.SkinController.GetApplicableSkin(troop2, battle.AttackerEquipment, out text);
            }
            int qualityInt;

            if (!string.IsNullOrEmpty(text))
            {
                StaticDataController staticDataController = Service.StaticDataController;
                EquipmentVO          equipmentVO          = staticDataController.Get <EquipmentVO>(text);
                qualityInt = (int)equipmentVO.Quality;
            }
            else
            {
                qualityInt = Service.DeployableShardUnlockController.GetUpgradeQualityForDeployable(troop);
            }
            UXUtils.SetCardQuality(this, this.troopGrid, uid, qualityInt, this.TroopCardQualityName, this.TroopCardDefaultName);
            UXButton subElement4 = grid.GetSubElement <UXButton>(uid, this.TroopCardName);

            this.troopTooltipHelper.RegisterButtonTooltip(subElement4, troop, battle);
            return(result);
        }
예제 #9
0
        public static UXElement SetCardQuality(UXFactory uxFactory, UXGrid grid, string itemUid, int qualityInt, string cardName, string defaultCardName)
        {
            UXElement subElement = grid.GetSubElement <UXElement>(itemUid, defaultCardName);

            if (qualityInt == 0)
            {
                subElement.Visible = true;
                UXUtils.HideGridQualityCards(grid, itemUid, cardName);
                return(null);
            }
            subElement.Visible = false;
            return(UXUtils.SetCardQuality(uxFactory, grid, itemUid, qualityInt, cardName));
        }
예제 #10
0
        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);
        }
        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();
        }
예제 #12
0
        private UXElement CreateCommonEquipmentCard(UXGrid grid, EquipmentVO equipment, string labelName, string labelLevel, string icon, string cardName, bool shouldAnimate, bool closeup)
        {
            CurrentPlayer currentPlayer = Service.CurrentPlayer;
            string        uid           = equipment.Uid;
            UXElement     uXElement     = grid.CloneTemplateItem(uid);

            uXElement.Tag = new SortableEquipment(equipment);
            UXLabel subElement = grid.GetSubElement <UXLabel>(uid, labelName);

            subElement.Text = LangUtils.GetEquipmentDisplayName(equipment);
            UXLabel subElement2 = grid.GetSubElement <UXLabel>(uid, labelLevel);

            if (ArmoryUtils.IsEquipmentOwned(currentPlayer, equipment))
            {
                subElement2.Text = LangUtils.GetLevelText(equipment.Lvl);
            }
            else
            {
                subElement2.Visible = false;
            }
            UXSprite        subElement3     = grid.GetSubElement <UXSprite>(uid, icon);
            ProjectorConfig projectorConfig = ProjectorUtils.GenerateEquipmentConfig(equipment, subElement3, closeup);

            if (shouldAnimate)
            {
                projectorConfig.AnimPreference = AnimationPreference.AnimationPreferred;
            }
            ProjectorUtils.GenerateProjector(projectorConfig);
            UXElement uXElement2 = UXUtils.SetCardQuality(this, grid, uid, (int)equipment.Quality, cardName);

            if (uXElement2 != null)
            {
                uXElement2.SkipBoundsCalculations(true);
            }
            return(uXElement);
        }
예제 #13
0
        private UXElement CreateDeployableUXElement(UXGrid grid, string uid, string assetName, int amount, IDeployableVO troop, BattleEntry battle)
        {
            UXElement       result          = grid.CloneTemplateItem(uid);
            UXSprite        subElement      = grid.GetSubElement <UXSprite>(uid, this.TroopCardIconName);
            ProjectorConfig projectorConfig = ProjectorUtils.GenerateGeometryConfig(troop, subElement);

            Service.Get <EventManager>().SendEvent(EventId.ButtonCreated, new GeometryTag(troop, projectorConfig, battle));
            projectorConfig.AnimPreference = AnimationPreference.NoAnimation;
            ProjectorUtils.GenerateProjector(projectorConfig);
            UXLabel subElement2 = grid.GetSubElement <UXLabel>(uid, this.TroopCardAmountName);

            subElement2.Text = LangUtils.GetMultiplierText(amount);
            UXLabel subElement3 = grid.GetSubElement <UXLabel>(uid, this.TroopCardLevelName);

            subElement3.Text = LangUtils.GetLevelText(troop.Lvl);
            FactionDecal.UpdateDeployableDecal(uid, grid, troop, this.TroopHeroDecalName);
            int upgradeQualityForDeployable = Service.Get <DeployableShardUnlockController>().GetUpgradeQualityForDeployable(troop);

            UXUtils.SetCardQuality(this, this.troopGrid, uid, upgradeQualityForDeployable, this.TroopCardQualityName, this.TroopCardDefaultName);
            UXButton subElement4 = grid.GetSubElement <UXButton>(uid, this.TroopCardName);

            this.troopTooltipHelper.RegisterButtonTooltip(subElement4, troop, battle);
            return(result);
        }
예제 #14
0
        private void SetupCrateReward(string itemUid, TournamentRewardsVO rewardGroup, UXGrid rewardGrid, UXElement rewardItem, string rewardSuffix, CrateFlyoutItemVO crateFlyoutItemVO)
        {
            IDataController dataController = Service.Get <IDataController>();
            CurrentPlayer   currentPlayer  = Service.Get <CurrentPlayer>();
            UXButton        uXButton       = rewardItem as UXButton;
            UXSprite        subElement     = rewardGrid.GetSubElement <UXSprite>(itemUid, "SpriteFragmentIcon" + rewardSuffix);

            UXUtils.HideAllQualityCards(rewardGrid, itemUid, "EquipmentItemCardQ{0}" + rewardSuffix);
            UXElement subElement2 = rewardGrid.GetSubElement <UXElement>(itemUid, "ParticlesTopPrize" + rewardSuffix);

            subElement2.Visible = false;
            uXButton.Enabled    = false;
            subElement.Visible  = false;
            CrateSupplyVO optional = dataController.GetOptional <CrateSupplyVO>(crateFlyoutItemVO.CrateSupplyUid);

            if (optional == null)
            {
                Service.Get <StaRTSLogger>().ErrorFormat("Could not find crate supply {0} for faction {1}", new object[]
                {
                    crateFlyoutItemVO.CrateSupplyUid,
                    currentPlayer.Faction
                });
                return;
            }
            bool     flag        = crateFlyoutItemVO.TournamentTierDisplay3D && optional.Type != SupplyType.Currency && optional.Type != SupplyType.Invalid;
            int      num         = currentPlayer.Map.FindHighestHqLevel();
            UXSprite subElement3 = rewardGrid.GetSubElement <UXSprite>(itemUid, "SpriteReward2D" + rewardSuffix);

            subElement3.Visible = false;
            if (flag)
            {
                IGeometryVO iconVOFromCrateSupply = GameUtils.GetIconVOFromCrateSupply(optional, num);
                if (iconVOFromCrateSupply != null)
                {
                    UXSprite        subElement4     = rewardGrid.GetSubElement <UXSprite>(itemUid, "SpriteEquipmentItemImage" + rewardSuffix);
                    ProjectorConfig projectorConfig = ProjectorUtils.GenerateGeometryConfig(iconVOFromCrateSupply, subElement4, true);
                    projectorConfig.AnimPreference = AnimationPreference.AnimationPreferred;
                    ProjectorUtils.GenerateProjector(projectorConfig);
                    if (rewardGroup.TournamentTier == this.tiers[0].Uid)
                    {
                        this.particleElements.Add(subElement2.Root.name);
                    }
                }
                else
                {
                    Service.Get <StaRTSLogger>().ErrorFormat("Could not generate geometry for crate supply {0}", new object[]
                    {
                        optional.Uid
                    });
                }
                uXButton.Tag       = optional;
                uXButton.OnClicked = new UXButtonClickedDelegate(this.OnGuaranteedRewardClicked);
                uXButton.Enabled   = true;
            }
            else
            {
                subElement3.Visible = true;
                int num2 = crateFlyoutItemVO.ListIcons.Length - 1;
                subElement3.SpriteName = crateFlyoutItemVO.ListIcons[num2];
                rewardGrid.GetSubElement <UXElement>(itemUid, "SpriteEquipmentGradient" + rewardSuffix).Visible       = false;
                rewardGrid.GetSubElement <UXElement>(itemUid, "SpriteEquipmentGradientBottom" + rewardSuffix).Visible = false;
                rewardGrid.GetSubElement <UXElement>(itemUid, "SpriteEquipmentImageBkg" + rewardSuffix).Visible       = false;
                rewardGrid.GetSubElement <UXElement>(itemUid, "SpriteFrameHover" + rewardSuffix).Visible = false;
            }
            UXLabel subElement5    = rewardGrid.GetSubElement <UXLabel>(itemUid, "LabelPrizeCount" + rewardSuffix);
            int     rewardAmount   = Service.Get <InventoryCrateRewardController>().GetRewardAmount(optional, num);
            int     num3           = rewardGroup.CrateRewardIds.Length;
            string  text           = this.lang.ThousandsSeparated(rewardAmount * num3);
            string  quantityString = crateFlyoutItemVO.QuantityString;

            if (!string.IsNullOrEmpty(quantityString))
            {
                subElement5.Text = this.lang.Get(quantityString, new object[]
                {
                    text
                });
            }
            else if (rewardAmount > 0)
            {
                subElement5.Text = this.lang.Get("CONFLICT_PRIZE_CRATE_MULTIPLIER", new object[]
                {
                    text
                });
            }
            else
            {
                subElement5.Visible = false;
            }
            int  num4    = -1;
            bool visible = false;

            if (optional.Type == SupplyType.ShardSpecialAttack || optional.Type == SupplyType.ShardTroop)
            {
                ShardVO optional2 = dataController.GetOptional <ShardVO>(optional.RewardUid);
                if (optional2 != null)
                {
                    num4 = (int)optional2.Quality;
                }
            }
            else if (optional.Type == SupplyType.Shard)
            {
                EquipmentVO currentEquipmentDataByID = ArmoryUtils.GetCurrentEquipmentDataByID(optional.RewardUid);
                if (currentEquipmentDataByID != null)
                {
                    num4    = (int)currentEquipmentDataByID.Quality;
                    visible = true;
                }
            }
            else if (optional.Type == SupplyType.Troop || optional.Type == SupplyType.Hero || optional.Type == SupplyType.SpecialAttack)
            {
                num4 = Service.Get <DeployableShardUnlockController>().GetUpgradeQualityForDeployableUID(optional.RewardUid);
            }
            if (num4 > 0 & flag)
            {
                subElement.Visible    = true;
                subElement.SpriteName = string.Format("icoDataFragQ{0}", new object[]
                {
                    num4
                });
                string text2 = string.Format("SpriteEquipmentImageBkgGridQ{0}", new object[]
                {
                    num4
                });
                rewardGrid.GetSubElement <UXElement>(itemUid, text2 + rewardSuffix).Visible = visible;
                UXUtils.SetCardQuality(this, rewardGrid, itemUid, num4, "EquipmentItemCardQ{0}" + rewardSuffix);
            }
        }
예제 #15
0
        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);
        }
예제 #16
0
 public static void SetDeployableDecalVisibiliy(string itemUid, UXGrid grid, bool visible)
 {
     grid.GetSubElement <UXSprite>(itemUid, "SpriteHeroDecal").Visible = visible;
 }
예제 #17
0
        private UXElement CreateInactiveCard(UXGrid grid, EquipmentVO equipment, CurrentPlayer currentPlayer)
        {
            UXElement uXElement = this.CreateCommonEquipmentCard(grid, equipment, "LabelEquipmentName", "LabelEquipmentLevel", "SpriteEquipmentItemImage", "EquipmentItemCardQ{0}", false, true);

            (uXElement.Tag as SortableEquipment).Player = currentPlayer;
            UXButton subElement = this.inactiveGrid.GetSubElement <UXButton>(equipment.Uid, "BtnEquipmentInfo");

            subElement.OnClicked = new UXButtonClickedDelegate(this.OnInfoButtonClicked);
            subElement.Tag       = equipment;
            UXButton subElement2 = this.inactiveGrid.GetSubElement <UXButton>(equipment.Uid, "BtnEquipmentItemCard");

            subElement2.OnClicked = new UXButtonClickedDelegate(this.OnCardButtonClicked);
            subElement2.Tag       = uXElement;
            EquipmentUpgradeCatalog equipmentUpgradeCatalog = Service.EquipmentUpgradeCatalog;
            UXSlider  subElement3 = this.inactiveGrid.GetSubElement <UXSlider>(equipment.Uid, "pBarEquipmentItemFrag");
            UXSprite  subElement4 = this.inactiveGrid.GetSubElement <UXSprite>(equipment.Uid, "SpriteEquipmentItempBarFrag");
            UXLabel   subElement5 = grid.GetSubElement <UXLabel>(equipment.Uid, "LabelFragProgress");
            UXElement subElement6 = this.inactiveGrid.GetSubElement <UXElement>(equipment.Uid, "IconUpgrade");
            UXSprite  subElement7 = grid.GetSubElement <UXSprite>(equipment.Uid, "SpriteEquipmentImageBkgStroke");
            UXSprite  subElement8 = grid.GetSubElement <UXSprite>(equipment.Uid, "SpriteEquipmentItemBarOutline");
            UXSprite  subElement9 = grid.GetSubElement <UXSprite>(equipment.Uid, "SpriteEquipmentImageBkgGlow");

            subElement7.Color = ArmoryScreen.qualityColor[equipment.Quality];
            subElement8.Color = ArmoryScreen.qualityColor[equipment.Quality];
            subElement9.Color = ArmoryScreen.qualityColor[equipment.Quality];
            subElement9.Alpha = 0.4f;
            float    sliderProgressValue = this.GetSliderProgressValue(equipment, currentPlayer.GetShards(equipment.EquipmentID));
            UXSprite subElement10        = this.inactiveGrid.GetSubElement <UXSprite>(equipment.Uid, "SpriteIconFragment");

            UXUtils.SetupFragmentIconSprite(subElement10, (int)equipment.Quality);
            UXUtils.SetShardProgressBarValue(subElement3, subElement4, sliderProgressValue);
            subElement6.Visible = false;
            if (ArmoryUtils.IsAtMaxLevel(equipmentUpgradeCatalog, equipment))
            {
                subElement5.Text = this.lang.Get("MAX_LEVEL", new object[0]);
            }
            else
            {
                int shards = currentPlayer.GetShards(equipment.EquipmentID);
                int shardsRequiredForNextUpgrade = ArmoryUtils.GetShardsRequiredForNextUpgrade(currentPlayer, equipmentUpgradeCatalog, equipment);
                if (shards >= shardsRequiredForNextUpgrade)
                {
                    subElement5.Text = this.lang.Get("ARMORY_UPGRADE_NOW", new object[0]);
                }
                else
                {
                    subElement5.Text = this.lang.Get("OBJECTIVE_PROGRESS", new object[]
                    {
                        shards,
                        shardsRequiredForNextUpgrade
                    });
                }
            }
            if (ArmoryUtils.IsEquipmentOwned(currentPlayer, equipment))
            {
                EquipmentVO nextLevel = equipmentUpgradeCatalog.GetNextLevel(equipment);
                if (nextLevel != null)
                {
                    if (Service.ISupportController.FindFirstContractWithProductUid(nextLevel.Uid) != null)
                    {
                        subElement5.Visible = false;
                        subElement3.Visible = false;
                    }
                    else if (currentPlayer.GetShards(equipment.EquipmentID) >= nextLevel.UpgradeShards)
                    {
                        subElement6.Visible = true;
                    }
                }
            }
            this.SetDimmerBasedOnRequirements(currentPlayer, equipment);
            return(uXElement);
        }
예제 #18
0
        public static void UpdateDeployableDecal(string itemUid, UXGrid grid, IDeployableVO deployableVO, string elementName)
        {
            string deployableDecalSpriteName = FactionDecal.GetDeployableDecalSpriteName(deployableVO);

            FactionDecal.SetSpriteAndVisibility(grid.GetSubElement <UXSprite>(itemUid, elementName), deployableDecalSpriteName);
        }
예제 #19
0
 public static void SquadMemberElementsSetup(UXGrid grid, SquadMemberElements elements, string id)
 {
     elements.ButtonContainer         = grid.GetSubElement <UXElement>(id, "ButtonContainer");
     elements.ButtonOne               = grid.GetSubElement <UXButton>(id, "Btn1");
     elements.ButtonOneLabel          = grid.GetSubElement <UXLabel>(id, "LabelBtn1");
     elements.ButtonTwo               = grid.GetSubElement <UXButton>(id, "Btn2");
     elements.ButtonTwoLabel          = grid.GetSubElement <UXLabel>(id, "LabelBtn2");
     elements.ButtonThree             = grid.GetSubElement <UXButton>(id, "Btn3");
     elements.ButtonThreeLabel        = grid.GetSubElement <UXLabel>(id, "LabelBtn3");
     elements.MemberInfoGroup         = grid.GetSubElement <UXElement>(id, "MemberInfo");
     elements.MemberNameLabel         = grid.GetSubElement <UXLabel>(id, "LabelMemberName");
     elements.MemberRankLabel         = grid.GetSubElement <UXLabel>(id, "LabelMemberRank");
     elements.MemberRoleLabel         = grid.GetSubElement <UXLabel>(id, "LabelMemberRole");
     elements.MemberScoreLabel        = grid.GetSubElement <UXLabel>(id, "LabelMemberScore");
     elements.TroopsDonatedLabel      = grid.GetSubElement <UXLabel>(id, "LabelTroopsDonated");
     elements.TroopsReceivedLabel     = grid.GetSubElement <UXLabel>(id, "LabelTroopsReceived");
     elements.RepInvestedLabel        = grid.GetSubElement <UXLabel>(id, "LabelMemberRepAmt");
     elements.VictoriesLabel          = grid.GetSubElement <UXLabel>(id, "LabelVictories");
     elements.TroopsLabel             = grid.GetSubElement <UXLabel>(id, "LabelTroops");
     elements.AttacksWonLabel         = grid.GetSubElement <UXLabel>(id, "LabelAttacksWon");
     elements.DefensesWonLabel        = grid.GetSubElement <UXLabel>(id, "LabelDefensesWon");
     elements.LastLoginTimeLabel      = grid.GetSubElement <UXLabel>(id, "LabelMemberLastLogin");
     elements.ConflictMedalsGroup     = grid.GetSubElement <UXElement>(id, "MedalInfo");
     elements.TournamentScoreLabel1   = grid.GetSubElement <UXLabel>(id, "LabelMemberTournamentScore01");
     elements.TournamentScoreSprite1  = grid.GetSubElement <UXSprite>(id, "SpriteMemberTournamentMedalIcon01");
     elements.TournamentScoreLabel2   = grid.GetSubElement <UXLabel>(id, "LabelMemberTournamentScore02");
     elements.TournamentScoreSprite2  = grid.GetSubElement <UXSprite>(id, "SpriteMemberTournamentMedalIcon02");
     elements.TournamentScoreLabel3   = grid.GetSubElement <UXLabel>(id, "LabelMemberTournamentScore03");
     elements.TournamentScoreSprite3  = grid.GetSubElement <UXSprite>(id, "SpriteMemberTournamentMedalIcon03");
     elements.PlanetBackgroundTexture = grid.GetSubElement <UXTexture>(id, "TexturePlanetBg");
     elements.GroupMemberSelect       = grid.GetSubElement <UXElement>(id, "BtnSelectMember");
     elements.SpriteMemberSelect      = grid.GetSubElement <UXSprite>(id, "SpriteCheckBtnSelectMember");
     elements.SpriteMoreOptions       = grid.GetSubElement <UXSprite>(id, "SpriteMoreOptions");
     elements.SpriteWarIcon           = grid.GetSubElement <UXSprite>(id, "SpriteWarIcon");
 }