private UXElement CreateTileWithPrizeInfo(string id, int count, PrizeType prizeType) { string title = null; string description = null; DeployableShardUnlockController deployableShardUnlockController = Service.DeployableShardUnlockController; IGeometryVO geometryVO = TimedEventPrizeUtils.GetFinalUnitFromPrize(prizeType, id); int quality = 0; switch (prizeType) { case PrizeType.Currency: title = this.lang.Get(id.ToUpper(), new object[0]); geometryVO = UXUtils.GetDefaultCurrencyIconVO(id); break; case PrizeType.Infantry: case PrizeType.Hero: case PrizeType.Vehicle: case PrizeType.Mercenary: { TroopTypeVO troopTypeVO = (TroopTypeVO)geometryVO; quality = deployableShardUnlockController.GetUpgradeQualityForDeployable(troopTypeVO); title = LangUtils.GetTroopDisplayName(troopTypeVO); description = LangUtils.GetTroopDescription(troopTypeVO); break; } case PrizeType.SpecialAttack: { SpecialAttackTypeVO specialAttackTypeVO = (SpecialAttackTypeVO)geometryVO; quality = deployableShardUnlockController.GetUpgradeQualityForDeployable(specialAttackTypeVO); title = LangUtils.GetStarshipDisplayName(specialAttackTypeVO); description = LangUtils.GetStarshipDescription(specialAttackTypeVO); break; } case PrizeType.Crate: { CrateData crateData = this.cp.Prizes.Crates.Available[id]; string crateDisplayName = LangUtils.GetCrateDisplayName(crateData.CrateId); title = this.lang.Get("CRATE_INVENTORY_CRATE_TITLE", new object[] { LangUtils.GetPlanetDisplayName(crateData.PlanetId), crateDisplayName }); geometryVO = Service.StaticDataController.Get <CrateVO>(crateData.CrateId); break; } } return(this.CreateInventoryGridItem(id, prizeType, title, description, count, geometryVO, quality)); }
private void OnInfoButtonClicked(UXButton button) { PrizeInventoryItemTag prizeInventoryItemTag = button.Tag as PrizeInventoryItemTag; IUpgradeableVO finalUnitFromPrize = TimedEventPrizeUtils.GetFinalUnitFromPrize(prizeInventoryItemTag.PrizeType, prizeInventoryItemTag.PrizeID); if (finalUnitFromPrize != null) { SmartEntity availableTroopResearchLab = Service.BuildingLookupController.GetAvailableTroopResearchLab(); TroopUpgradeTag troopUpgradeTag = new TroopUpgradeTag(finalUnitFromPrize as IDeployableVO, true); bool showUpgradeControls = !string.IsNullOrEmpty(troopUpgradeTag.Troop.UpgradeShardUid); Service.ScreenController.AddScreen(new DeployableInfoScreen(troopUpgradeTag, null, showUpgradeControls, availableTroopResearchLab)); } else { prizeInventoryItemTag.MainElement.Visible = false; prizeInventoryItemTag.InfoLabel.Visible = true; } Service.EventManager.SendEvent(EventId.InfoButtonClicked, null); }