Exemplo n.º 1
0
        // Token: 0x06001B2F RID: 6959 RVA: 0x00073EB0 File Offset: 0x000720B0
        private static int GuessUnlockableSortScore(UnlockableDef unlockableDef)
        {
            int num    = 0;
            int num2   = num + 200;
            int num3   = num2 + 200;
            int num4   = num3 + 200;
            int result = num4 + 200;

            if (unlockableDef == null)
            {
                return(10000);
            }
            string name = unlockableDef.name;
            int    i    = 0;

            while (i < SurvivorCatalog.idealSurvivorOrder.Length)
            {
                SurvivorIndex survivorIndex = SurvivorCatalog.idealSurvivorOrder[i];
                if (name.Contains(survivorIndex.ToString()))
                {
                    if (SurvivorCatalog.GetSurvivorDef(survivorIndex).unlockableName == name)
                    {
                        return(num3 + i * 10);
                    }
                    int num5 = num4 + i * 10;
                    if (name.Contains("Skin"))
                    {
                        num5++;
                    }
                    return(num5);
                }
                else
                {
                    i++;
                }
            }
            ItemDef itemDef = ItemCatalog.allItems.Select(new Func <ItemIndex, ItemDef>(ItemCatalog.GetItemDef)).FirstOrDefault((ItemDef v) => v.unlockableName == unlockableDef.name);

            if (itemDef != null)
            {
                return((int)(num + itemDef.tier));
            }
            EquipmentDef equipmentDef = EquipmentCatalog.allEquipment.Select(new Func <EquipmentIndex, EquipmentDef>(EquipmentCatalog.GetEquipmentDef)).FirstOrDefault((EquipmentDef v) => v.unlockableName == unlockableDef.name);

            if (equipmentDef == null)
            {
                return(result);
            }
            if (equipmentDef.isBoss)
            {
                return(num2 + 1);
            }
            if (equipmentDef.isLunar)
            {
                return(num2 - 1);
            }
            return(num2);
        }
Exemplo n.º 2
0
        // Token: 0x06000585 RID: 1413 RVA: 0x00017050 File Offset: 0x00015250
        private static void RegisterEquipment(EquipmentIndex equipmentIndex, EquipmentDef equipmentDef)
        {
            equipmentDef.equipmentIndex = equipmentIndex;
            EquipmentCatalog.equipmentDefs[(int)equipmentIndex] = equipmentDef;
            if (equipmentDef.canDrop)
            {
                EquipmentCatalog.equipmentList.Add(equipmentIndex);
            }
            if (equipmentDef.enigmaCompatible)
            {
                EquipmentCatalog.enigmaEquipmentList.Add(equipmentIndex);
            }
            if (equipmentDef.name == null)
            {
                equipmentDef.name = equipmentIndex.ToString();
            }
            string name = equipmentDef.name;
            string arg  = name.ToUpper(CultureInfo.InvariantCulture);

            if (equipmentDef.nameToken == null)
            {
                equipmentDef.nameToken = string.Format(CultureInfo.InvariantCulture, "EQUIPMENT_{0}_NAME", arg);
            }
            if (equipmentDef.descriptionToken == null)
            {
                equipmentDef.descriptionToken = string.Format(CultureInfo.InvariantCulture, "EQUIPMENT_{0}_DESC", arg);
            }
            if (equipmentDef.pickupToken == null)
            {
                equipmentDef.pickupToken = string.Format(CultureInfo.InvariantCulture, "EQUIPMENT_{0}_PICKUP", arg);
            }
            if (equipmentDef.loreToken == null)
            {
                equipmentDef.loreToken = string.Format(CultureInfo.InvariantCulture, "EQUIPMENT_{0}_LORE", arg);
            }
            if (equipmentDef.pickupModelPath == null)
            {
                equipmentDef.pickupModelPath = "Prefabs/NullModel";
            }
            if (equipmentDef.pickupIconPath == null)
            {
                equipmentDef.pickupIconPath = "Textures/ItemIcons/texNullIcon";
            }
            EquipmentCatalog.equipmentNameToIndex[name] = equipmentIndex;
        }
Exemplo n.º 3
0
        // Token: 0x060015BF RID: 5567 RVA: 0x0005CB68 File Offset: 0x0005AD68
        public override void OverrideRuleChoices(RuleChoiceMask mustInclude, RuleChoiceMask mustExclude)
        {
            base.OverrideRuleChoices(mustInclude, mustExclude);
            base.ForceChoice(mustInclude, mustExclude, "Difficulty.Normal");
            base.ForceChoice(mustInclude, mustExclude, "Misc.StartingMoney.50");
            base.ForceChoice(mustInclude, mustExclude, "Misc.StageOrder.Random");
            base.ForceChoice(mustInclude, mustExclude, "Misc.KeepMoneyBetweenStages.Off");
            for (ArtifactIndex artifactIndex = ArtifactIndex.Command; artifactIndex < ArtifactIndex.Count; artifactIndex++)
            {
                RuleDef       ruleDef       = RuleCatalog.FindRuleDef(artifactIndex.ToString());
                RuleChoiceDef ruleChoiceDef = (ruleDef != null) ? ruleDef.FindChoice("Off") : null;
                if (ruleChoiceDef != null)
                {
                    base.ForceChoice(mustInclude, mustExclude, ruleChoiceDef);
                }
            }
            ItemIndex itemIndex = ItemIndex.Syringe;
            ItemIndex itemCount = (ItemIndex)ItemCatalog.itemCount;

            while (itemIndex < itemCount)
            {
                ItemDef       itemDef        = ItemCatalog.GetItemDef(itemIndex);
                RuleDef       ruleDef2       = RuleCatalog.FindRuleDef("Items." + itemDef.name);
                RuleChoiceDef ruleChoiceDef2 = (ruleDef2 != null) ? ruleDef2.FindChoice("On") : null;
                if (ruleChoiceDef2 != null)
                {
                    base.ForceChoice(mustInclude, mustExclude, ruleChoiceDef2);
                }
                itemIndex++;
            }
            EquipmentIndex equipmentIndex = EquipmentIndex.CommandMissile;
            EquipmentIndex equipmentCount = (EquipmentIndex)EquipmentCatalog.equipmentCount;

            while (equipmentIndex < equipmentCount)
            {
                EquipmentDef  equipmentDef   = EquipmentCatalog.GetEquipmentDef(equipmentIndex);
                RuleDef       ruleDef3       = RuleCatalog.FindRuleDef("Equipment." + equipmentDef.name);
                RuleChoiceDef ruleChoiceDef3 = (ruleDef3 != null) ? ruleDef3.FindChoice("On") : null;
                if (ruleChoiceDef3 != null)
                {
                    base.ForceChoice(mustInclude, mustExclude, ruleChoiceDef3);
                }
                equipmentIndex++;
            }
        }
Exemplo n.º 4
0
        // Token: 0x06000E12 RID: 3602 RVA: 0x0003ED4C File Offset: 0x0003CF4C
        private MageElement CalcElementToAward()
        {
            for (int i = 0; i < MageCalibrationController.elementCounter.Length; i++)
            {
                MageCalibrationController.elementCounter[i] = 0;
            }
            Inventory inventory = this.characterBody.inventory;

            if (!inventory)
            {
                return(MageElement.None);
            }
            List <ItemIndex> itemAcquisitionOrder = inventory.itemAcquisitionOrder;

            for (int j = 0; j < itemAcquisitionOrder.Count; j++)
            {
                ItemCatalog.GetItemDef(itemAcquisitionOrder[j]);
            }
            EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(inventory.currentEquipmentIndex);

            if (equipmentDef != null && equipmentDef.mageElement != MageElement.None)
            {
                MageCalibrationController.elementCounter[(int)equipmentDef.mageElement] += 2;
            }
            MageElement result = MageElement.None;
            int         num    = 0;

            for (MageElement mageElement = MageElement.Fire; mageElement < MageElement.Count; mageElement += 1)
            {
                int num2 = MageCalibrationController.elementCounter[(int)mageElement];
                if (num2 > num)
                {
                    result = mageElement;
                    num    = num2;
                }
            }
            if (num >= 5)
            {
                return(result);
            }
            return(MageElement.None);
        }
        // Token: 0x060018D8 RID: 6360 RVA: 0x0006AFB8 File Offset: 0x000691B8
        public static RuleDef FromEquipment(EquipmentIndex equipmentIndex)
        {
            EquipmentDef  equipmentDef  = EquipmentCatalog.GetEquipmentDef(equipmentIndex);
            RuleDef       ruleDef       = new RuleDef("Equipment." + equipmentIndex.ToString(), equipmentDef.nameToken);
            RuleChoiceDef ruleChoiceDef = ruleDef.AddChoice("On", null, false);

            ruleChoiceDef.spritePath              = equipmentDef.pickupIconPath;
            ruleChoiceDef.tooltipBodyToken        = equipmentDef.nameToken;
            ruleChoiceDef.unlockableName          = equipmentDef.unlockableName;
            ruleChoiceDef.equipmentIndex          = equipmentIndex;
            ruleChoiceDef.availableInMultiPlayer  = equipmentDef.appearsInMultiPlayer;
            ruleChoiceDef.availableInSinglePlayer = equipmentDef.appearsInSinglePlayer;
            ruleDef.MakeNewestChoiceDefault();
            RuleChoiceDef ruleChoiceDef2 = ruleDef.AddChoice("Off", null, false);

            ruleChoiceDef2.spritePath       = equipmentDef.pickupIconPath;
            ruleChoiceDef2.materialPath     = "Materials/UI/matRuleChoiceOff";
            ruleChoiceDef2.tooltipBodyToken = null;
            return(ruleDef);
        }
Exemplo n.º 6
0
        // Token: 0x06001B91 RID: 7057 RVA: 0x00081100 File Offset: 0x0007F300
        private static int GuessUnlockableSortScore(string unlockableName)
        {
            int           num           = 0;
            UnlockableDef unlockableDef = UnlockableCatalog.GetUnlockableDef(unlockableName);

            if (unlockableDef == null)
            {
                return(num);
            }
            num += 200;
            ItemDef itemDef = ItemCatalog.allItems.Select(new Func <ItemIndex, ItemDef>(ItemCatalog.GetItemDef)).FirstOrDefault((ItemDef v) => v.unlockableName == unlockableDef.name);

            if (itemDef != null)
            {
                return((int)(num + itemDef.tier));
            }
            num += 200;
            EquipmentDef equipmentDef = EquipmentCatalog.allEquipment.Select(new Func <EquipmentIndex, EquipmentDef>(EquipmentCatalog.GetEquipmentDef)).FirstOrDefault((EquipmentDef v) => v.unlockableName == unlockableDef.name);

            if (equipmentDef != null)
            {
                if (equipmentDef.isBoss)
                {
                    return(num + 1);
                }
                if (equipmentDef.isLunar)
                {
                    return(num - 1);
                }
                return(num);
            }
            else
            {
                num += 200;
                if (SurvivorCatalog.allSurvivorDefs.FirstOrDefault((SurvivorDef v) => v.unlockableName == unlockableDef.name) != null)
                {
                    return(num);
                }
                return(num + 200);
            }
        }
Exemplo n.º 7
0
        public static List <EquipmentIndex> GetDefaultEquipmentDropList()
        {
            var list = new List <EquipmentIndex>();

            for (EquipmentIndex equipmentIndex = EquipmentIndex.CommandMissile; equipmentIndex < EquipmentIndex.Count; equipmentIndex++)
            {
                if (Run.instance.availableEquipment.HasEquipment(equipmentIndex))
                {
                    EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(equipmentIndex);
                    if (equipmentDef.canDrop)
                    {
                        if (!equipmentDef.isLunar)
                        {
                            list.Add(equipmentIndex);
                        }
                    }
                }
            }

            return(list);
        }
        protected void CreateEquipment()
        {
            EquipmentDef equipmentDef = new RoR2.EquipmentDef()
            {
                name                  = "EQUIPMENT_" + EquipmentLangTokenName,
                nameToken             = "EQUIPMENT_" + EquipmentLangTokenName + "_NAME",
                pickupToken           = "EQUIPMENT_" + EquipmentLangTokenName + "_PICKUP",
                descriptionToken      = "EQUIPMENT_" + EquipmentLangTokenName + "_DESCRIPTION",
                loreToken             = "EQUIPMENT_" + EquipmentLangTokenName + "_LORE",
                pickupModelPath       = EquipmentModelPath,
                pickupIconPath        = EquipmentIconPath,
                appearsInSinglePlayer = AppearsInSinglePlayer,
                appearsInMultiPlayer  = AppearsInMultiPlayer,
                canDrop               = CanDrop,
                cooldown              = Cooldown,
                enigmaCompatible      = EnigmaCompatible,
                isBoss                = IsBoss,
                isLunar               = IsLunar
            };
            var itemDisplayRules = CreateItemDisplayRules();

            Index = ItemAPI.Add(new CustomEquipment(equipmentDef, itemDisplayRules));
            On.RoR2.EquipmentSlot.PerformEquipmentAction += PerformEquipmentAction;
        }
        // Token: 0x0600117F RID: 4479 RVA: 0x00056D90 File Offset: 0x00054F90
        private MageElement CalcElementToAward()
        {
            for (int i = 0; i < MageCalibrationController.elementCounter.Length; i++)
            {
                MageCalibrationController.elementCounter[i] = 0;
            }
            Inventory inventory = this.characterBody.inventory;

            if (!inventory)
            {
                return(MageElement.None);
            }
            List <ItemIndex> itemAcquisitionOrder = inventory.itemAcquisitionOrder;

            for (int j = 0; j < itemAcquisitionOrder.Count; j++)
            {
                ItemIndex itemIndex = itemAcquisitionOrder[j];
                ItemDef   itemDef   = ItemCatalog.GetItemDef(itemIndex);
                if (itemDef.mageElement != MageElement.None)
                {
                    int num = 0;
                    switch (itemDef.tier)
                    {
                    case ItemTier.Tier1:
                        num = 1;
                        break;

                    case ItemTier.Tier2:
                        num = 2;
                        break;

                    case ItemTier.Tier3:
                        num = 3;
                        break;

                    case ItemTier.Lunar:
                        num = 3;
                        break;
                    }
                    MageCalibrationController.elementCounter[(int)itemDef.mageElement] += num * inventory.GetItemCount(itemIndex);
                }
            }
            EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(inventory.currentEquipmentIndex);

            if (equipmentDef != null && equipmentDef.mageElement != MageElement.None)
            {
                MageCalibrationController.elementCounter[(int)equipmentDef.mageElement] += 2;
            }
            MageElement result = MageElement.None;
            int         num2   = 0;

            for (MageElement mageElement = MageElement.Fire; mageElement < MageElement.Count; mageElement += 1)
            {
                int num3 = MageCalibrationController.elementCounter[(int)mageElement];
                if (num3 > num2)
                {
                    result = mageElement;
                    num2   = num3;
                }
            }
            if (num2 >= 5)
            {
                return(result);
            }
            return(MageElement.None);
        }
Exemplo n.º 10
0
            public void CalculateInvalidInteractables(List <PickupIndex> itemsToDrop)
            {
                List <string> tiersPresentKeys = tiersPresent.Keys.ToList();

                foreach (string tier in tiersPresentKeys)
                {
                    tiersPresent[tier] = false;
                }
                subsetTiersPresent.Clear();
                foreach (string subsetChest in subsetChests)
                {
                    subsetTiersPresent.Add(subsetChest, new Dictionary <string, bool>());
                    foreach (string tier in tiersPresentKeys)
                    {
                        subsetTiersPresent[subsetChest].Add(tier, false);
                    }
                }
                foreach (PickupIndex pickupIndex in itemsToDrop)
                {
                    PickupDef pickupDef = PickupCatalog.GetPickupDef(pickupIndex);
                    if (pickupDef.itemIndex != ItemIndex.None)
                    {
                        if (!Catalogue.scrapItems.ContainsValue(pickupDef.itemIndex))
                        {
                            if (RoR2.ItemCatalog.tier1ItemList.Contains(pickupDef.itemIndex))
                            {
                                tiersPresent["tier1"] = true;
                            }
                            else if (RoR2.ItemCatalog.tier2ItemList.Contains(pickupDef.itemIndex))
                            {
                                tiersPresent["tier2"] = true;
                            }
                            else if (RoR2.ItemCatalog.tier3ItemList.Contains(pickupDef.itemIndex))
                            {
                                tiersPresent["tier3"] = true;
                            }
                            else if (Catalogue.pearls.Contains(pickupDef.itemIndex))
                            {
                                tiersPresent["pearl"] = true;
                            }
                            else if (Catalogue.bossItems.Contains(pickupDef.itemIndex))
                            {
                                tiersPresent["boss"] = true;
                            }
                            else if (RoR2.ItemCatalog.lunarItemList.Contains(pickupDef.itemIndex))
                            {
                                tiersPresent["lunar"] = true;
                            }

                            if (!RoR2.ItemCatalog.lunarItemList.Contains(pickupDef.itemIndex) && !Catalogue.bossItems.Contains(pickupDef.itemIndex) && !Catalogue.pearls.Contains(pickupDef.itemIndex))
                            {
                                RoR2.ItemDef itemDef = RoR2.ItemCatalog.GetItemDef(pickupDef.itemIndex);
                                foreach (RoR2.ItemTag itemTag in itemDef.tags)
                                {
                                    string interactableName = "";
                                    if (itemTag == RoR2.ItemTag.Damage)
                                    {
                                        tiersPresent["damage"] = true;
                                        interactableName       = "CategoryChestDamage";
                                    }
                                    else if (itemTag == RoR2.ItemTag.Healing)
                                    {
                                        tiersPresent["healing"] = true;
                                        interactableName        = "CategoryChestHealing";
                                    }
                                    else if (itemTag == RoR2.ItemTag.Utility)
                                    {
                                        tiersPresent["utility"] = true;
                                        interactableName        = "CategoryChestUtility";
                                    }
                                    if (subsetChests.Contains(interactableName))
                                    {
                                        if (RoR2.ItemCatalog.tier1ItemList.Contains(pickupDef.itemIndex))
                                        {
                                            subsetTiersPresent[interactableName]["tier1"] = true;
                                        }
                                        else if (RoR2.ItemCatalog.tier2ItemList.Contains(pickupDef.itemIndex))
                                        {
                                            subsetTiersPresent[interactableName]["tier2"] = true;
                                        }
                                        else if (RoR2.ItemCatalog.tier3ItemList.Contains(pickupDef.itemIndex))
                                        {
                                            subsetTiersPresent[interactableName]["tier3"] = true;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else if (pickupDef.equipmentIndex != EquipmentIndex.None)
                    {
                        if (!Catalogue.eliteEquipment.Contains(pickupDef.equipmentIndex))
                        {
                            RoR2.EquipmentDef equipmentDef = RoR2.EquipmentCatalog.GetEquipmentDef(pickupDef.equipmentIndex);
                            if (equipmentDef.isLunar)
                            {
                                tiersPresent["lunar"] = true;
                            }
                            else if (equipmentDef.isBoss)
                            {
                            }
                            else
                            {
                                tiersPresent["equipment"] = true;
                            }
                        }
                    }
                }
                List <string> interactableTypeKeys = interactablesTiers.Keys.ToList();

                foreach (string interactableType in interactableTypeKeys)
                {
                    List <string> interactableTypeTierKeys = interactablesTiers[interactableType].Keys.ToList();
                    foreach (string tier in interactableTypeTierKeys)
                    {
                        interactablesTiers[interactableType][tier] = false;
                    }
                }
                foreach (string tier in tiersPresent.Keys)
                {
                    if (tiersPresent[tier])
                    {
                        foreach (string interactableType in interactableTypeKeys)
                        {
                            if (interactablesTiers[interactableType].ContainsKey(tier))
                            {
                                interactablesTiers[interactableType][tier] = true;
                            }
                        }
                    }
                }
                List <string> scrapTierKeys = interactablesTiers["Scrapper"].Keys.ToList();

                foreach (string tier in scrapTierKeys)
                {
                    if (interactablesTiers["Scrapper"][tier])
                    {
                        if (!itemsToDrop.Contains(PickupCatalog.FindPickupIndex(Catalogue.scrapItems[tierConversion[tier]])))
                        {
                            interactablesTiers["Scrapper"][tier] = false;
                        }
                    }
                }

                interactablesInvalid.Clear();
                foreach (string interactableType in interactablesTiers.Keys)
                {
                    bool interactableValid = false;
                    bool allTrue           = true;
                    foreach (string tier in interactablesTiers[interactableType].Keys)
                    {
                        if (interactablesTiers[interactableType][tier])
                        {
                            interactableValid = true;
                        }
                        else
                        {
                            allTrue = false;
                        }
                    }
                    if (!interactableValid || (allTiersMustBePresent.Contains(interactableType) && !allTrue))
                    {
                        interactablesInvalid.Add(interactableType);
                    }
                }
            }
        private static void Init()
        {
            List <PickupDef> list = new List <PickupDef>();

            for (int i = 0; i < ItemCatalog.itemCount; i++)
            {
                ItemIndex itemIndex  = (ItemIndex)i;
                ItemDef   itemDef    = ItemCatalog.GetItemDef(itemIndex);
                PickupDef pickupDef  = new PickupDef();
                PickupDef pickupDef2 = pickupDef;
                string    str        = "ItemIndex.";
                ItemIndex itemIndex2 = (ItemIndex)i;
                pickupDef2.internalName        = str + itemIndex2.ToString();
                pickupDef.itemIndex            = itemIndex;
                pickupDef.displayPrefab        = itemDef.pickupModelPrefab;
                pickupDef.dropletDisplayPrefab = PickupCatalog.< Init > g__GetPickupDropletDisplayPrefabForTier | 11_0 (itemDef.tier);
                pickupDef.nameToken            = itemDef.nameToken;
                pickupDef.baseColor            = ColorCatalog.GetColor(itemDef.colorIndex);
                pickupDef.darkColor            = ColorCatalog.GetColor(itemDef.darkColorIndex);
                pickupDef.unlockableName       = itemDef.unlockableName;
                pickupDef.interactContextToken = "ITEM_PICKUP_CONTEXT";
                pickupDef.isLunar     = (itemDef.tier == ItemTier.Lunar);
                pickupDef.isBoss      = (itemDef.tier == ItemTier.Boss);
                pickupDef.iconTexture = itemDef.pickupIconTexture;
                list.Add(pickupDef);
            }
            GameObject dropletDisplayPrefab = Resources.Load <GameObject>("Prefabs/ItemPickups/EquipmentOrb");

            for (int j = 0; j < EquipmentCatalog.equipmentCount; j++)
            {
                EquipmentIndex equipmentIndex  = (EquipmentIndex)j;
                EquipmentDef   equipmentDef    = EquipmentCatalog.GetEquipmentDef(equipmentIndex);
                PickupDef      pickupDef3      = new PickupDef();
                PickupDef      pickupDef4      = pickupDef3;
                string         str2            = "EquipmentIndex.";
                EquipmentIndex equipmentIndex2 = (EquipmentIndex)j;
                pickupDef4.internalName         = str2 + equipmentIndex2.ToString();
                pickupDef3.equipmentIndex       = equipmentIndex;
                pickupDef3.displayPrefab        = equipmentDef.pickupModelPrefab;
                pickupDef3.dropletDisplayPrefab = dropletDisplayPrefab;
                pickupDef3.nameToken            = equipmentDef.nameToken;
                pickupDef3.baseColor            = ColorCatalog.GetColor(equipmentDef.colorIndex);
                pickupDef3.darkColor            = pickupDef3.baseColor;
                pickupDef3.unlockableName       = equipmentDef.unlockableName;
                pickupDef3.interactContextToken = "EQUIPMENT_PICKUP_CONTEXT";
                pickupDef3.isLunar     = equipmentDef.isLunar;
                pickupDef3.isBoss      = equipmentDef.isBoss;
                pickupDef3.iconTexture = equipmentDef.pickupIconTexture;
                list.Add(pickupDef3);
            }
            PickupDef pickupDef5 = new PickupDef();

            pickupDef5.internalName         = "LunarCoin.Coin0";
            pickupDef5.coinValue            = 1U;
            pickupDef5.nameToken            = "PICKUP_LUNAR_COIN";
            pickupDef5.displayPrefab        = Resources.Load <GameObject>("Prefabs/PickupModels/PickupLunarCoin");
            pickupDef5.dropletDisplayPrefab = Resources.Load <GameObject>("Prefabs/ItemPickups/LunarOrb");
            pickupDef5.baseColor            = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarItem);
            pickupDef5.darkColor            = pickupDef5.baseColor;
            pickupDef5.interactContextToken = "LUNAR_COIN_PICKUP_CONTEXT";
            list.Add(pickupDef5);
            Action <List <PickupDef> > action = PickupCatalog.modifyPickups;

            if (action != null)
            {
                action(list);
            }
            PickupCatalog.SetEntries(list.ToArray());
        }