public void HandleEarnedShardReward(string equipmentId, int count) { CurrentPlayer currentPlayer = Service.CurrentPlayer; Dictionary <string, int> shards = currentPlayer.Shards; EquipmentVO equipmentDataByID = ArmoryUtils.GetEquipmentDataByID(equipmentId, 1); if (equipmentDataByID == null) { return; } int num = count; if (shards.ContainsKey(equipmentId)) { num += shards[equipmentId]; } currentPlayer.ModifyShardAmount(equipmentId, num); EquipmentVO nextEquipmentVOUpgrade = this.GetNextEquipmentVOUpgrade(equipmentId); if (nextEquipmentVOUpgrade != null && shards[equipmentId] - count < nextEquipmentVOUpgrade.UpgradeShards && nextEquipmentVOUpgrade.UpgradeShards < shards[equipmentId]) { this.AllowShowEquipmentTabBadge = true; Service.EventManager.SendEvent(EventId.EquipmentNowUpgradable, equipmentId); } Service.EventManager.SendEvent(EventId.ShardsEarned, null); if (!ArmoryUtils.IsEquipmentOwned(currentPlayer, equipmentDataByID)) { this.TryToUnlockPlayerEquipment(equipmentDataByID); } }
public bool IsEquipmentUpgradeable(EquipmentVO equipmentVO, EquipmentVO nextEquipmentVO) { CurrentPlayer currentPlayer = Service.CurrentPlayer; bool flag = ArmoryUtils.IsEquipmentOwned(currentPlayer, equipmentVO); bool flag2 = this.IsEquipmentUnlockableOrUpgradeable(nextEquipmentVO); return(flag && flag2); }
private void SetUpArmoryScreenInfo(CurrentPlayer player) { this.SetTitleText(base.GetElement <UXLabel>("DialogBldgUpgradeTitle"), "BUILDING_INFO", this.selectedEquipment.EquipmentName, this.selectedEquipment.Lvl); UXLabel element = base.GetElement <UXLabel>("LabelRequirement"); element.Visible = true; UXLabel element2 = base.GetElement <UXLabel>("LabelNormalIntro"); UXButton element3 = base.GetElement <UXButton>("BtnNormal"); element3.Visible = true; element3.OnClicked = new UXButtonClickedDelegate(this.OnMainButtonClicked); if (!ArmoryUtils.IsEquipmentOwned(player, this.selectedEquipment)) { element3.Enabled = false; element2.Text = this.lang.Get("ARMORY_ACTIVATE", new object[0]); element.Text = this.lang.Get("EQUIPMENT_LOCKED", new object[] { this.CalculateFragmentsNeededForUnlock(this.selectedEquipment.UpgradeShards, this.selectedEquipment.EquipmentID) }); return; } if (ArmoryUtils.IsEquipmentActive(player, this.selectedEquipment)) { element2.Text = this.lang.Get("ARMORY_DEACTIVATE", new object[0]); element3.Enabled = true; } else { bool flag = ArmoryUtils.HasEnoughCapacityToActivateEquipment(player.ActiveArmory, this.selectedEquipment); bool flag2 = ArmoryUtils.IsEquipmentValidForPlanet(this.selectedEquipment, player.PlanetId); element3.Enabled = (flag && flag2); element2.Text = this.lang.Get("ARMORY_ACTIVATE", new object[0]); if (!flag2) { string planetDisplayName = LangUtils.GetPlanetDisplayName(player.PlanetId); element.Text = this.lang.Get("ARMORY_INVALID_EQUIPMENT_PLANET", new object[] { planetDisplayName }); return; } if (!flag) { element.Text = this.lang.Get("ARMORY_NOT_ENOUGH_CAPACITY", new object[0]); return; } } element.Text = string.Empty; }
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); }
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 DisplayBarsForEquipmentBuffs(StaticDataController sdc) { int num = 1; int num2 = this.selectedEquipment.EffectUids.Length; int i = 0; int num3 = num2; while (i < num3) { EquipmentEffectVO equipmentEffectVO = sdc.Get <EquipmentEffectVO>(this.selectedEquipment.EffectUids[i]); EquipmentEffectVO equipmentEffectVO2 = null; if (this.nextEquipmentVoUpgrade != null && this.nextEquipmentVoUpgrade.EffectUids.Length > 0 && this.nextEquipmentVoUpgrade.EffectUids.Length > i) { equipmentEffectVO2 = sdc.Get <EquipmentEffectVO>(this.nextEquipmentVoUpgrade.EffectUids[i]); } ArmorType armorType = ArmorType.Invalid; if (equipmentEffectVO.AffectedBuildingIds != null && equipmentEffectVO.AffectedBuildingIds.Length > 0) { BuildingTypeVO minLevel = Service.BuildingUpgradeCatalog.GetMinLevel(equipmentEffectVO.AffectedBuildingIds[0]); if (minLevel != null) { armorType = minLevel.ArmorType; } } else if (equipmentEffectVO.AffectedTroopIds != null && equipmentEffectVO.AffectedTroopIds.Length > 0) { TroopTypeVO minLevel2 = Service.TroopUpgradeCatalog.GetMinLevel(equipmentEffectVO.AffectedTroopIds[0]); if (minLevel2 != null) { armorType = minLevel2.ArmorType; } } int j = 0; int num4 = equipmentEffectVO.BuffUids.Length; while (j < num4) { BuffTypeVO buffTypeVO = sdc.Get <BuffTypeVO>(equipmentEffectVO.BuffUids[j]); BuffTypeVO buffTypeVO2 = null; if (equipmentEffectVO2 != null && equipmentEffectVO2.BuffUids.Length > 0 && equipmentEffectVO2.BuffUids.Length > j) { buffTypeVO2 = sdc.Get <BuffTypeVO>(equipmentEffectVO2.BuffUids[j]); } int num5 = buffTypeVO.Values[(int)armorType]; int nextValue = num5; if (ArmoryUtils.IsEquipmentOwned(Service.CurrentPlayer, this.selectedEquipment)) { nextValue = ((buffTypeVO2 != null) ? buffTypeVO2.Values[(int)armorType] : num5); } string buffString = this.GetBuffString(buffTypeVO.Modify); this.SetupBar(num, buffString, num5, nextValue, 1, false); num++; if (num >= 3) { break; } j++; } if (num >= 3) { break; } i++; } for (int k = num; k <= 3; k++) { base.GetElement <UXElement>(string.Format("pBar{0}", num)).Visible = false; num++; } }
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; } }
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); }