Ejemplo n.º 1
0
        public bool IsEquipmentUnlockableOrUpgradeable(EquipmentVO equipment)
        {
            CurrentPlayer currentPlayer = Service.CurrentPlayer;
            bool          flag          = ArmoryUtils.CanAffordEquipment(currentPlayer, equipment);
            bool          flag2         = ArmoryUtils.IsBuildingRequirementMet(equipment);

            return(flag && flag2);
        }
Ejemplo n.º 2
0
        private void SetUpResearchLabScreenInfo(StaticDataController sdc, CurrentPlayer player)
        {
            UXLabel  element  = base.GetElement <UXLabel>("DialogBldgUpgradeTitle");
            UXButton element2 = base.GetElement <UXButton>("BtnNormal");

            element2.OnClicked = new UXButtonClickedDelegate(this.OnMainButtonClicked);
            UXButton element3 = base.GetElement <UXButton>("BtnFinish");

            element3.OnClicked = new UXButtonClickedDelegate(this.OnFinishClicked);
            UXLabel element4 = base.GetElement <UXLabel>("LabelRequirement");

            element4.Visible = true;
            element4.Text    = string.Empty;
            if (this.nextEquipmentVoUpgrade != null)
            {
                ArmoryController armoryController = Service.ArmoryController;
                this.SetTitleText(element, "BUILDING_UPGRADE", this.selectedEquipment.EquipmentName, this.nextEquipmentVoUpgrade.Lvl);
                element2.Visible = true;
                base.GetElement <UXLabel>("LabelNormalIntro").Text = this.lang.Get("LABEL_REWARD_UPGRADE", new object[0]);
                if (this.activeContract != null)
                {
                    if (this.activeContract.ProductUid == this.nextEquipmentVoUpgrade.Uid)
                    {
                        element3.Visible = true;
                        element2.Visible = false;
                        element4.Visible = false;
                        base.GetElement <UXLabel>("LabelUpgradeTimeStatic").Text    = this.lang.Get("s_TimeRemaining", new object[0]);
                        base.GetElement <UXElement>("ContainerUpgradeTime").Visible = true;
                        this.UpdateContractTimers();
                    }
                    else
                    {
                        element2.VisuallyDisableButton();
                    }
                }
                else if (armoryController.IsEquipmentUpgradeable(this.selectedEquipment, this.nextEquipmentVoUpgrade))
                {
                    element2.VisuallyEnableButton();
                    element2.Enabled = true;
                    this.SetUpUpgradeElements(true);
                }
                else
                {
                    this.SetTitleText(element, "BUILDING_INFO", this.selectedEquipment.EquipmentName, this.selectedEquipment.Lvl);
                    element2.Enabled = false;
                    BuildingTypeVO buildingTypeVO = (this.nextEquipmentVoUpgrade.BuildingRequirement != null) ? sdc.Get <BuildingTypeVO>(this.nextEquipmentVoUpgrade.BuildingRequirement) : null;
                    if (buildingTypeVO != null && !ArmoryUtils.IsBuildingRequirementMet(this.nextEquipmentVoUpgrade))
                    {
                        element4.Text = this.lang.Get("EQUIPMENT_REQUIRES_BUILDING", new object[]
                        {
                            LangUtils.GetBuildingDisplayName(buildingTypeVO),
                            buildingTypeVO.Lvl
                        });
                    }
                    else if (!ArmoryUtils.IsEquipmentOwned(player, this.selectedEquipment))
                    {
                        element4.Text = this.lang.Get("EQUIPMENT_LOCKED", new object[]
                        {
                            this.CalculateFragmentsNeededForUnlock(this.selectedEquipment.UpgradeShards, this.selectedEquipment.EquipmentID)
                        });
                    }
                    else if (!ArmoryUtils.CanAffordEquipment(player, this.nextEquipmentVoUpgrade))
                    {
                        element4.Text = this.lang.Get("EQUIPMENT_UPGRADE_LOCKED", new object[]
                        {
                            this.CalculateFragmentsNeededForUnlock(this.nextEquipmentVoUpgrade.UpgradeShards, this.selectedEquipment.EquipmentID)
                        });
                    }
                }
            }
            else
            {
                element2.Visible = false;
                EquipmentVO maxLevel = Service.EquipmentUpgradeCatalog.GetMaxLevel(this.selectedEquipment);
                if (maxLevel == this.selectedEquipment)
                {
                    this.SetTitleText(element, "BUILDING_INFO", this.selectedEquipment.EquipmentName, this.selectedEquipment.Lvl);
                    element4.Text = this.lang.Get("MAX_LEVEL", new object[0]);
                }
            }
        }
Ejemplo n.º 3
0
 private void UpdateContractTimers()
 {
     if (this.activeContract == null || this.labelUpgradeTime == null)
     {
         return;
     }
     if (this.nextEquipmentVoUpgrade != null && this.nextEquipmentVoUpgrade.Uid == this.activeContract.ProductUid)
     {
         int remainingTimeForView = this.activeContract.GetRemainingTimeForView();
         if (remainingTimeForView > 0)
         {
             this.labelUpgradeTime.Text = GameUtils.GetTimeLabelFromSeconds(remainingTimeForView);
             int crystalCostToFinishContract = ContractUtils.GetCrystalCostToFinishContract(this.activeContract);
             UXUtils.SetupCostElements(this, "FinishCost", null, 0, 0, 0, crystalCostToFinishContract, 0, !ArmoryUtils.IsBuildingRequirementMet(this.nextEquipmentVoUpgrade), null);
         }
         else
         {
             this.activeContract = null;
             this.DisableTimers();
             this.Redraw();
         }
     }
 }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 5
0
        private void SetDimmerBasedOnRequirements(CurrentPlayer player, EquipmentVO equipment)
        {
            UXSprite  subElement  = this.inactiveGrid.GetSubElement <UXSprite>(equipment.Uid, "SpriteDim");
            UXSprite  subElement2 = this.inactiveGrid.GetSubElement <UXSprite>(equipment.Uid, "SpriteDimFull");
            UXLabel   subElement3 = this.inactiveGrid.GetSubElement <UXLabel>(equipment.Uid, "LabelEquipmentRequirement");
            UXSprite  subElement4 = this.inactiveGrid.GetSubElement <UXSprite>(equipment.Uid, "SpriteLockIcon");
            UXElement subElement5 = this.inactiveGrid.GetSubElement <UXElement>(equipment.Uid, "PlanetLocked");

            subElement2.Visible = false;
            subElement4.Visible = false;
            subElement5.Visible = false;
            bool flag = ArmoryUtils.IsEquipmentOwned(player, equipment);

            if (ArmoryUtils.IsBuildingRequirementMet(equipment) && flag && ArmoryUtils.IsEquipmentValidForPlanet(equipment, player.PlanetId))
            {
                subElement3.Text = string.Empty;
                if (ArmoryUtils.HasEnoughCapacityToActivateEquipment(player.ActiveArmory, equipment))
                {
                    this.UpdateMinimumInactiveSize(equipment.Size);
                    subElement.Visible = false;
                    return;
                }
                subElement3.Text   = this.lang.Get("ARMORY_INACTIVE_CAPACITY_REACHED", new object[0]);
                subElement.Visible = true;
                return;
            }
            else
            {
                if (!ArmoryUtils.IsBuildingRequirementMet(equipment))
                {
                    StaticDataController staticDataController = Service.StaticDataController;
                    BuildingTypeVO       buildingTypeVO       = staticDataController.Get <BuildingTypeVO>(equipment.BuildingRequirement);
                    subElement3.Text = this.lang.Get("BUILDING_REQUIREMENT", new object[]
                    {
                        buildingTypeVO.Lvl,
                        LangUtils.GetBuildingDisplayName(buildingTypeVO)
                    });
                    subElement2.Visible = true;
                    subElement.Visible  = false;
                    return;
                }
                UXButton subElement6 = this.inactiveGrid.GetSubElement <UXButton>(equipment.Uid, "BtnEquipmentItemCard");
                subElement6.Enabled = false;
                if (!ArmoryUtils.IsEquipmentOnValidPlanet(player, equipment) && flag)
                {
                    subElement.Visible  = false;
                    subElement2.Visible = true;
                    string planetDisplayName = LangUtils.GetPlanetDisplayName(player.PlanetId);
                    subElement3.Text = this.lang.Get("BASE_ON_INCORRECT_PLANET", new object[]
                    {
                        planetDisplayName
                    });
                    subElement5.Visible = true;
                    return;
                }
                subElement.Visible  = false;
                subElement2.Visible = true;
                subElement4.Visible = true;
                if (player.Shards.ContainsKey(equipment.EquipmentID))
                {
                    subElement3.Text = this.lang.Get("EQUIPMENT_LOCKED", new object[]
                    {
                        equipment.UpgradeShards - player.Shards[equipment.EquipmentID]
                    });
                }
                else
                {
                    subElement3.Text = this.lang.Get("EQUIPMENT_LOCKED", new object[]
                    {
                        equipment.UpgradeShards
                    });
                }
                return;
            }
        }