Beispiel #1
0
        public int GetAvailableSlotsCount(string guildLevelUid)
        {
            StaticDataController staticDataController = Service.StaticDataController;
            SquadLevelVO         squadLevelVO         = staticDataController.Get <SquadLevelVO>(guildLevelUid);

            return(squadLevelVO.Slots);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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();
        }