public bool IsEquipmentUnlockableOrUpgradeable(EquipmentVO equipment) { CurrentPlayer currentPlayer = Service.CurrentPlayer; bool flag = ArmoryUtils.CanAffordEquipment(currentPlayer, equipment); bool flag2 = ArmoryUtils.IsBuildingRequirementMet(equipment); return(flag && flag2); }
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]); } } }
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(); } } }
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); }
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; } }