public CrateInfoModalScreen(string crateUid, string planetID, int hqLevel) { this.selectedRowIndex = -1; base..ctor("gui_modal_crateinfo"); IDataController dataController = Service.Get <IDataController>(); this.targetCrateVO = dataController.Get <CrateVO>(crateUid); string text = null; FactionType faction = Service.Get <CurrentPlayer>().Faction; if (faction != FactionType.Empire) { if (faction == FactionType.Rebel) { text = this.targetCrateVO.RebelLEIUid; } } else { text = this.targetCrateVO.EmpireLEIUid; } if (!string.IsNullOrEmpty(text)) { this.targetLEIVO = dataController.Get <LimitedEditionItemVO>(text); } this.planetVO = dataController.GetOptional <PlanetVO>(planetID); this.hqLevel = hqLevel; this.filteredFlyoutItems = new List <CrateFlyoutItemVO>(); CurrentPlayer currentPlayer = Service.Get <CurrentPlayer>(); string[] array = (currentPlayer.Faction == FactionType.Empire) ? this.targetCrateVO.FlyoutEmpireItems : this.targetCrateVO.FlyoutRebelItems; if (array != null) { int i = 0; int num = array.Length; while (i < num) { string text2 = array[i]; CrateFlyoutItemVO optional = dataController.GetOptional <CrateFlyoutItemVO>(text2); if (optional == null) { Service.Get <StaRTSLogger>().ErrorFormat("CrateInfoModalScreen: FlyoutItemVO Uid {0} not found", new object[] { text2 }); } else { bool flag = UXUtils.IsValidRewardItem(optional, this.planetVO, hqLevel); bool flag2 = UXUtils.ShouldDisplayCrateFlyoutItem(optional, CrateFlyoutDisplayType.Flyout); if ((flag & flag2) && this.filteredFlyoutItems.Count < 4) { this.filteredFlyoutItems.Add(optional); } } i++; } } }
public static void SetLeiExpirationTimerLabel(LimitedEditionItemVO leiVO, UXLabel expirationLabel, Lang lang) { expirationLabel.TextColor = UXUtils.COLOR_CRATE_EXPIRE_LABEL_NORMAL; int thresholdSeconds = GameConstants.CRATE_INVENTORY_LEI_EXPIRATION_TIMER_WARNING * 60; CountdownControl countdownControl = new CountdownControl(expirationLabel, lang.Get("CRATE_FLYOUT_LEI_EXPIRATION_TIMER", new object[0]), leiVO.EndTime); countdownControl.SetThreshold(thresholdSeconds, UXUtils.COLOR_CRATE_EXPIRE_LABEL_WARNING); }
public static AlertScreen ShowModal(LimitedEditionItemVO leiVO, OnScreenModalResult onModalResult, object modalResultCookie) { LimitedEditionItemPurchaseConfirmationScreen limitedEditionItemPurchaseConfirmationScreen = new LimitedEditionItemPurchaseConfirmationScreen(); limitedEditionItemPurchaseConfirmationScreen.LeiVO = leiVO; limitedEditionItemPurchaseConfirmationScreen.geometry = leiVO; limitedEditionItemPurchaseConfirmationScreen.title = LangUtils.GetLEIDisplayName(leiVO.Uid); limitedEditionItemPurchaseConfirmationScreen.message = limitedEditionItemPurchaseConfirmationScreen.lang.Get("PURCHASE_LEI", new object[] { limitedEditionItemPurchaseConfirmationScreen.title }); limitedEditionItemPurchaseConfirmationScreen.OnModalResult = onModalResult; limitedEditionItemPurchaseConfirmationScreen.ModalResultCookie = modalResultCookie; limitedEditionItemPurchaseConfirmationScreen.IsAlwaysOnTop = true; Service.Get <ScreenController>().AddScreen(limitedEditionItemPurchaseConfirmationScreen); return(limitedEditionItemPurchaseConfirmationScreen); }
private static bool IsValidForPlayer(LimitedEditionItemVO vo, CurrentPlayer player) { return(vo.Faction == player.Faction && CrateUtils.AllConditionsMet(vo.AudienceConditions)); }