Exemple #1
0
        public static int GetShardsRequiredForNextUpgrade(CurrentPlayer currentPlayer, EquipmentUpgradeCatalog equipmentCatalog, EquipmentVO equipmentVO)
        {
            if (!ArmoryUtils.IsEquipmentOwned(currentPlayer, equipmentVO))
            {
                EquipmentVO minLevel = equipmentCatalog.GetMinLevel(equipmentVO.EquipmentID);
                return(minLevel.UpgradeShards);
            }
            EquipmentVO nextLevel = equipmentCatalog.GetNextLevel(equipmentVO);

            if (nextLevel == null)
            {
                return(-1);
            }
            return(nextLevel.UpgradeShards);
        }
Exemple #2
0
        public EquipmentInfoScreen(EquipmentVO selectedEquipment, List <EquipmentVO> equipmentList, SmartEntity selectedBuilding, bool forResearchLab, bool forArmoryScreen) : base("gui_troop_info", selectedBuilding)
        {
            this.wantsTransition   = false;
            this.shouldCloseParent = true;
            this.selectedEquipment = selectedEquipment;
            EquipmentUpgradeCatalog equipmentUpgradeCatalog = Service.EquipmentUpgradeCatalog;

            this.nextEquipmentVoUpgrade = equipmentUpgradeCatalog.GetNextLevel(selectedEquipment);
            this.equipmentList          = equipmentList;
            this.forResearchLab         = forResearchLab;
            this.forArmoryScreen        = forArmoryScreen;
            if (forResearchLab)
            {
                this.CheckActiveContract();
            }
            this.accumulatedUpdateDt = 0f;
        }
Exemple #3
0
        private void PopulateEquipmentGrid()
        {
            EquipmentUpgradeCatalog equipmentUpgradeCatalog = Service.EquipmentUpgradeCatalog;
            CurrentPlayer           currentPlayer           = Service.CurrentPlayer;

            this.FindAllUpgradableEquipment(currentPlayer, equipmentUpgradeCatalog);
            int maxItemsPerLine = (this.equipmentToDisplay.Count + 1) / 2;

            this.equipmentGrid.MaxItemsPerLine = maxItemsPerLine;
            EquipmentTabHelper equipmentTabHelper = this.filterHelper as EquipmentTabHelper;
            EquipmentTab       currentTab         = (EquipmentTab)equipmentTabHelper.CurrentTab;
            List <UXElement>   list = new List <UXElement>();
            int i     = 0;
            int count = this.equipmentToDisplay.Count;

            while (i < count)
            {
                EquipmentVO equipmentVO = this.equipmentToDisplay[i];
                if (equipmentTabHelper.IsEquipmentValidForTab(equipmentVO, currentTab))
                {
                    if (this.contractHidden)
                    {
                        EquipmentVO nextLevel = equipmentUpgradeCatalog.GetNextLevel(equipmentVO);
                        if (nextLevel.Uid == this.activeContract.ProductUid)
                        {
                            this.contractHidden = false;
                        }
                    }
                    UXElement item = this.FetchEquipmentCardGridItem(currentPlayer, equipmentVO, equipmentUpgradeCatalog);
                    list.Add(item);
                }
                i++;
            }
            UXUtils.SortListForTwoRowGrids(list, this.equipmentGrid);
            int j      = 0;
            int count2 = list.Count;

            while (j < count2)
            {
                this.equipmentGrid.AddItem(list[j], j);
                j++;
            }
            list.Clear();
            this.equipmentGrid.RepositionItemsFrameDelayed(new UXDragDelegate(this.FinishEquipmentGridSetup), 1);
            this.CheckActiveContract();
        }
Exemple #4
0
        private void OnPrevOrNextButtonClicked(UXButton button)
        {
            int         num         = (int)button.Tag;
            int         count       = this.equipmentList.Count;
            int         index       = (num >= 0) ? 0 : (count - 1);
            EquipmentVO equipmentVO = this.equipmentList[index];

            for (int i = count - 1; i >= 0; i--)
            {
                int         index2       = (num >= 0) ? i : (count - 1 - i);
                EquipmentVO equipmentVO2 = this.equipmentList[index2];
                if (equipmentVO2 == this.selectedEquipment)
                {
                    break;
                }
                equipmentVO = equipmentVO2;
            }
            this.selectedEquipment = equipmentVO;
            EquipmentUpgradeCatalog equipmentUpgradeCatalog = Service.EquipmentUpgradeCatalog;

            this.nextEquipmentVoUpgrade = equipmentUpgradeCatalog.GetNextLevel(this.selectedEquipment);
            this.Redraw();
        }
Exemple #5
0
        private UXElement FetchEquipmentCardGridItem(CurrentPlayer player, EquipmentVO equipmentVO, EquipmentUpgradeCatalog catalog)
        {
            UXElement    result    = this.equipmentGrid.CloneTemplateItem(equipmentVO.Uid);
            string       uid       = equipmentVO.Uid;
            EquipmentVO  nextLevel = catalog.GetNextLevel(equipmentVO);
            ShardQuality quality   = equipmentVO.Quality;

            UXUtils.SetCardQuality(this, this.equipmentGrid, uid, (int)quality, "EquipmentItemCardQ{0}");
            UXLabel subElement = this.equipmentGrid.GetSubElement <UXLabel>(uid, "LabelEquipmentName");

            subElement.Text = this.lang.Get(equipmentVO.EquipmentName, new object[0]);
            UXLabel subElement2 = this.equipmentGrid.GetSubElement <UXLabel>(uid, "LabelEquipmentLevel");

            subElement2.Text = LangUtils.GetLevelText(equipmentVO.Lvl);
            UXButton subElement3 = this.equipmentGrid.GetSubElement <UXButton>(uid, "BtnEquipmentItemCard");

            subElement3.Tag       = equipmentVO;
            subElement3.OnClicked = new UXButtonClickedDelegate(this.OnEquipmentButtonClicked);
            this.troopGrid.GetSubElement <UXSlider>(uid, "pBarUpgradeTimeEquipment").Visible     = false;
            this.troopGrid.GetSubElement <UXLabel>(uid, "LabelpBarUpgradeTimeEquipment").Visible = false;
            UXSprite subElement4 = this.equipmentGrid.GetSubElement <UXSprite>(uid, "SpriteFragmentEquip");

            UXUtils.SetupFragmentIconSprite(subElement4, (int)quality);
            UXSprite        subElement5 = this.equipmentGrid.GetSubElement <UXSprite>(uid, "SpriteEquipmentItemImage");
            ProjectorConfig config      = ProjectorUtils.GenerateEquipmentConfig(equipmentVO, subElement5, true);

            ProjectorUtils.GenerateProjector(config);
            UXLabel  subElement6 = this.equipmentGrid.GetSubElement <UXLabel>(uid, "LabelEquipmentNumber");
            UXSlider subElement7 = this.equipmentGrid.GetSubElement <UXSlider>(uid, "pBarFrag");
            UXSprite subElement8 = this.equipmentGrid.GetSubElement <UXSprite>(uid, "SpritepBarFrag");

            subElement8.Color = UXUtils.COLOR_SHARD_INPROGRESS;
            UXLabel   subElement9  = this.equipmentGrid.GetSubElement <UXLabel>(uid, "LabelEquipmentRequirement");
            UXSprite  subElement10 = this.equipmentGrid.GetSubElement <UXSprite>(uid, "SpriteDim");
            UXSprite  subElement11 = this.equipmentGrid.GetSubElement <UXSprite>(uid, "SpriteIconLockedEquip");
            UXElement subElement12 = this.equipmentGrid.GetSubElement <UXElement>(uid, "IconUpgrade");

            if (!player.UnlockedLevels.Equipment.Has(equipmentVO))
            {
                subElement9.Text     = LangUtils.GetShardLockedEquipmentString(equipmentVO);
                subElement10.Visible = true;
                subElement11.Visible = true;
                subElement2.Visible  = false;
                int shards = player.GetShards(equipmentVO.EquipmentID);
                subElement6.Text = this.lang.Get("OBJECTIVE_PROGRESS", new object[]
                {
                    shards,
                    equipmentVO.UpgradeShards
                });
                subElement7.Value    = this.CalculateProgress(shards, equipmentVO);
                subElement12.Visible = false;
            }
            else if (nextLevel == null)
            {
                subElement6.Visible  = false;
                subElement10.Visible = true;
                subElement11.Visible = false;
                subElement6.Visible  = false;
                subElement9.Text     = this.lang.Get("MAX_LEVEL", new object[0]);
                subElement7.Visible  = false;
                subElement12.Visible = false;
            }
            else
            {
                int shards2 = player.GetShards(equipmentVO.EquipmentID);
                subElement6.Text = this.lang.Get("OBJECTIVE_PROGRESS", new object[]
                {
                    shards2,
                    nextLevel.UpgradeShards
                });
                subElement7.Value    = this.CalculateProgress(shards2, nextLevel);
                subElement12.Visible = (shards2 >= nextLevel.UpgradeShards);
                if (subElement12.Visible)
                {
                    subElement8.Color = UXUtils.COLOR_SHARD_COMPLETE;
                }
                if (ArmoryUtils.IsBuildingRequirementMet(nextLevel))
                {
                    subElement9.Visible  = false;
                    subElement10.Visible = false;
                    subElement11.Visible = false;
                }
                else
                {
                    BuildingTypeVO buildingInfo = this.dataController.Get <BuildingTypeVO>(nextLevel.BuildingRequirement);
                    subElement9.Text = this.lang.Get("BUILDING_REQUIREMENT", new object[]
                    {
                        nextLevel.Lvl,
                        LangUtils.GetBuildingDisplayName(buildingInfo)
                    });
                    subElement10.Visible = true;
                    subElement11.Visible = true;
                }
            }
            return(result);
        }
Exemple #6
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);
        }