private void SetPickupOptionsHook(
            On.RoR2.UI.PickupPickerPanel.orig_SetPickupOptions orig,
            PickupPickerPanel self,
            PickupPickerController.Option[] options
            )
        {
            orig.Invoke(self, options);

            if (options.Length < 1)
            {
                return;
            }

            ReadOnlyCollection <MPButton> elements =
                self.GetFieldValue <UIElementAllocator <MPButton> >("buttonAllocator").elements;

            Inventory inventory = LocalUserManager.GetFirstLocalUser().cachedMasterController.master.inventory;

            for (int i = 0; i < options.Length; i++)
            {
                Transform parent           = elements[i].transform;
                PickupDef pickupDefinition = PickupCatalog.GetPickupDef(options[i].pickupIndex);
                ItemIndex itemIndex        = pickupDefinition.itemIndex;
                int       itemCount        = !itemIndex.Equals(ItemIndex.None) ? inventory.GetItemCount(itemIndex) : 0;

                if (pickupDefinition.equipmentIndex.Equals(EquipmentIndex.None))
                {
                    CreateNumberLabel(parent, itemIndex, itemCount);
                }

                if (EnableTooltip.Value)
                {
                    CreateTooltip(parent, pickupDefinition, itemCount);
                }
            }
        }
Ejemplo n.º 2
0
        public void Start()
        {
            WhiteRandomItemChance = Config.Bind(
                "Balance",
                "WhiteRandomItemChance",
                0.05f,
                GetChanceDescription("white", "white")
                );

            GreenRandomItemChance = Config.Bind(
                "Balance",
                "GreenRandomItemChance",
                0.05f,
                GetChanceDescription("green", "green")
                );

            RedRandomItemChance = Config.Bind(
                "Balance",
                "RedRandomItemChance",
                0.05f,
                GetChanceDescription("red", "red")
                );

            LunarRandomItemChance = Config.Bind(
                "Balance",
                "LunarRandomItemChance",
                0.05f,
                GetChanceDescription("lunar", "GREEN")
                );

            BossRandomItemChance = Config.Bind(
                "Balance",
                "BossRandomItemChance",
                0.05f,
                GetChanceDescription("boss", "boss")
                );

            for (int i = 0; i < (int)ItemIndex.Count; i++)
            {
                ItemIndex itemIndex  = (ItemIndex)i;
                ItemDef   definition = ItemCatalog.GetItemDef(itemIndex);

                if (
                    itemIndex.Equals(ItemIndex.ArtifactKey) ||
                    itemIndex.Equals(ItemIndex.CaptainDefenseMatrix) ||
                    itemIndex.Equals(ItemIndex.ScrapWhite) ||
                    itemIndex.Equals(ItemIndex.ScrapGreen) ||
                    itemIndex.Equals(ItemIndex.ScrapRed) ||
                    itemIndex.Equals(ItemIndex.ScrapYellow) ||
                    definition.tier.Equals(ItemTier.NoTier)
                    )
                {
                    continue;
                }

                string displayName = Language.GetString(definition.nameToken);

                PreventPickupConfigEntries[itemIndex] = Config.Bind(
                    "PreventPickup",
                    itemIndex.ToString(),
                    false,
                    $"Item index: {(int)itemIndex} | Name: {displayName} | Tier: {definition.tier}"
                    );
            }
        }