public int GetAvailableSlotsCount(string guildLevelUid) { StaticDataController staticDataController = Service.StaticDataController; SquadLevelVO squadLevelVO = staticDataController.Get <SquadLevelVO>(guildLevelUid); return(squadLevelVO.Slots); }
public static int GetReputationReqForSquadLevel(int currLevel) { int result = -1; IDataController dataController = Service.Get <IDataController>(); string squadLevelUIDFromLevel = GameUtils.GetSquadLevelUIDFromLevel(currLevel); SquadLevelVO optional = dataController.GetOptional <SquadLevelVO>(squadLevelUIDFromLevel); if (optional != null) { result = optional.RepThreshold; } return(result); }
private bool IsPerkValidForInvestment(PerkVO perk, Dictionary <string, string> availablePerks, string guildLevelUid) { bool flag = false; StaticDataController staticDataController = Service.StaticDataController; SquadLevelVO squadLevelVO = staticDataController.Get <SquadLevelVO>(guildLevelUid); if (squadLevelVO != null) { flag = (perk.SquadLevelUnlock <= squadLevelVO.Level && !availablePerks.ContainsValue(perk.Uid)); } if (flag) { flag = this.HasPrerequistesUnlocked(perk, availablePerks); } return(flag); }
private void RefreshActivePerksGrid() { if (this.activePerksGrid == null) { this.activePerksGrid = this.screen.GetElement <UXGrid>("GridActSlotsPerks"); this.activePerksGrid.SetTemplateItem("TemplateActSlotPerks"); } this.activePerkTimerLabels.Clear(); IDataController dataController = Service.Get <IDataController>(); Lang lang = Service.Get <Lang>(); PerkManager perkManager = Service.Get <PerkManager>(); List <ActivatedPerkData> playerActivePerks = perkManager.GetPlayerActivePerks(); Squad currentSquad = Service.Get <SquadController>().StateManager.GetCurrentSquad(); if (currentSquad == null) { return; } string squadLevelUIDFromSquad = GameUtils.GetSquadLevelUIDFromSquad(currentSquad); int availableSlotsCount = perkManager.GetAvailableSlotsCount(squadLevelUIDFromSquad); int squadLevelMax = perkManager.SquadLevelMax; List <UXElement> list = new List <UXElement>(); int num = -1; int i = 1; int num2 = 0; while (i <= squadLevelMax) { string squadLevelUIDFromLevel = GameUtils.GetSquadLevelUIDFromLevel(i); SquadLevelVO squadLevelVO = dataController.Get <SquadLevelVO>(squadLevelUIDFromLevel); int slots = squadLevelVO.Slots; if (num != slots) { bool flag = slots > availableSlotsCount; bool flag2 = num2 < playerActivePerks.Count && !flag; int level = squadLevelVO.Level; string itemUid = "PerkSlot_" + slots.ToString(); UXElement uXElement = base.FetchPerkGridItem(this.activePerksGrid, itemUid); UXElement subElement = this.activePerksGrid.GetSubElement <UXElement>(itemUid, "AvailableSlotGroupPerks"); UXLabel subElement2 = this.activePerksGrid.GetSubElement <UXLabel>(itemUid, "LabelAvActSlotPerks"); UXElement subElement3 = this.activePerksGrid.GetSubElement <UXElement>(itemUid, "ActivatedSlotGroupPerks"); UXElement subElement4 = this.activePerksGrid.GetSubElement <UXElement>(itemUid, "LockedSlotGroupPerks"); UXLabel subElement5 = this.activePerksGrid.GetSubElement <UXLabel>(itemUid, "LabelPerkTitleActSlotPerks"); UXLabel subElement6 = this.activePerksGrid.GetSubElement <UXLabel>(itemUid, "LabelPerkLvlActSlotPerks"); UXLabel subElement7 = this.activePerksGrid.GetSubElement <UXLabel>(itemUid, "LabelPerkMessageTimerActSlotPerks"); UXLabel subElement8 = this.activePerksGrid.GetSubElement <UXLabel>(itemUid, "LabelPerkTimerActSlotPerks"); UXButton subElement9 = this.activePerksGrid.GetSubElement <UXButton>(itemUid, "BtnRemoveActSlotPerks"); UXTexture subElement10 = this.activePerksGrid.GetSubElement <UXTexture>(itemUid, "TexturePerkArtActSlotPerks"); UXButton uXButton = uXElement as UXButton; if (flag) { uXButton.Enabled = false; subElement.Visible = false; subElement4.Visible = true; subElement3.Visible = false; subElement9.Visible = false; UXLabel subElement11 = this.activePerksGrid.GetSubElement <UXLabel>(itemUid, "LabelSquadLvlLockedSlotPerks"); subElement11.Text = level.ToString(); UXLabel subElement12 = this.activePerksGrid.GetSubElement <UXLabel>(itemUid, "LabelSquadLvlLockedSlotPerks"); subElement12.Text = lang.Get("PERK_ACTIVATE_UPGRADE_CARD_LVL_REQ", new object[] { level }); } else if (flag2) { subElement.Visible = false; subElement4.Visible = false; subElement3.Visible = true; subElement9.Visible = true; ActivatedPerkData activatedPerkData = playerActivePerks[num2++]; string perkId = activatedPerkData.PerkId; PerkViewController perkViewController = Service.Get <PerkViewController>(); PerkVO perkVO = dataController.Get <PerkVO>(perkId); subElement5.Text = perkViewController.GetPerkNameForGroup(perkVO.PerkGroup); subElement6.Text = StringUtils.GetRomanNumeral(perkVO.PerkTier); perkViewController.SetPerkImage(subElement10, perkVO); subElement7.Text = lang.Get("PERK_ACTIVE_SLOT_ACTIVE_TIMER_DESC", new object[0]); this.UpdateLabelTimeRemaining(subElement8, lang, "PERK_ACTIVE_SLOT_ACTIVE_TIMER", activatedPerkData.EndTime); subElement8.Tag = activatedPerkData; this.activePerkTimerLabels.Add(subElement8); uXButton.Enabled = true; uXButton.Tag = perkVO; uXButton.OnClicked = new UXButtonClickedDelegate(this.OnPerkSlotButtonClicked); subElement9.Tag = perkId; subElement9.Visible = true; subElement9.OnClicked = new UXButtonClickedDelegate(this.OnRemoveButtonClicked); } else { uXButton.Enabled = false; subElement4.Visible = false; subElement3.Visible = false; subElement9.Visible = false; subElement.Visible = true; subElement2.Text = lang.Get("PERK_ACTIVE_SLOT_TITLE", new object[0]); } list.Add(uXElement); num = slots; } i++; } this.activePerksGrid.ClearWithoutDestroy(); int j = 0; int count = list.Count; while (j < count) { this.activePerksGrid.AddItem(list[j], j); j++; } this.activePerksGrid.RepositionItems(); list.Clear(); }