Exemplo n.º 1
0
        private void ScavengerItemGranter_Start(On.RoR2.ScavengerItemGranter.orig_Start orig, ScavengerItemGranter self)
        {
            Inventory component = base.GetComponent <Inventory>();

            if (ItemTierAvailable(ItemTier.Tier1))
            {
                List <PickupIndex> list = cachedTier1DropList.Where(new Func <PickupIndex, bool>(PickupIsNonBlacklistedItem)).ToList <PickupIndex>();
                self.GrantItems(component, list, self.tier1Types, self.tier1StackSize);
            }
            if (ItemTierAvailable(ItemTier.Tier2))
            {
                List <PickupIndex> list2 = cachedTier2DropList.Where(new Func <PickupIndex, bool>(PickupIsNonBlacklistedItem)).ToList <PickupIndex>();
                self.GrantItems(component, list2, self.tier2Types, self.tier2StackSize);
            }
            if (ItemTierAvailable(ItemTier.Tier3))
            {
                List <PickupIndex> list3 = cachedTier3DropList.Where(new Func <PickupIndex, bool>(PickupIsNonBlacklistedItem)).ToList <PickupIndex>();
                self.GrantItems(component, list3, self.tier3Types, self.tier3StackSize);
            }
            List <PickupIndex> availableEquipmentDropList = Run.instance.availableEquipmentDropList;

            if (self.overwriteEquipment || component.currentEquipmentIndex == EquipmentIndex.None)
            {
                component.GiveRandomEquipment();
            }
        }
            void ScavengerItemGranterStart(On.RoR2.ScavengerItemGranter.orig_Start orig, ScavengerItemGranter scavengerItemGranter)
            {
                List <int> scavTierTypesBackup = new List <int>();

                scavTierTypesBackup.Add(scavengerItemGranter.tier1Types);
                scavTierTypesBackup.Add(scavengerItemGranter.tier2Types);
                scavTierTypesBackup.Add(scavengerItemGranter.tier3Types);

                if (!tierValidScav[ItemTier.Tier1])
                {
                    scavengerItemGranter.tier1Types = 0;
                }
                if (!tierValidScav[ItemTier.Tier2])
                {
                    scavengerItemGranter.tier2Types = 0;
                }
                if (!tierValidScav[ItemTier.Tier3])
                {
                    scavengerItemGranter.tier3Types = 0;
                }

                orig(scavengerItemGranter);

                scavengerItemGranter.tier1Types = scavTierTypesBackup[0];
                scavengerItemGranter.tier2Types = scavTierTypesBackup[1];
                scavengerItemGranter.tier3Types = scavTierTypesBackup[2];
            }
Exemplo n.º 3
0
        internal static void GiveScavsLunarsAndBossItems(On.RoR2.ScavengerItemGranter.orig_Start orig, RoR2.ScavengerItemGranter self)
        {
            orig(self);
            Inventory inventory = self.GetComponent <Inventory>();

            if (inventory.GetTotalItemCountOfTier(ItemTier.Lunar) == 0)
            {
                var list        = Run.instance.availableLunarDropList.Where(new System.Func <PickupIndex, bool>(PickupIsNonBlacklistedItem)).ToList();
                var randomIndex = Random.Range(0, list.Count);
                inventory.GiveItem(PickupCatalog.GetPickupDef(list[randomIndex]).itemIndex, 2);
            }

            if (inventory.GetTotalItemCountOfTier(ItemTier.Boss) == 0)
            {
                var list        = PickupCatalog.allPickups.Where(def => def.isBoss).ToList();
                var randomIndex = Random.Range(0, list.Count);
                inventory.GiveItem(list[randomIndex].itemIndex, 1);
            }


            bool PickupIsNonBlacklistedItem(PickupIndex pickupIndex)
            {
                PickupDef pickupDef = PickupCatalog.GetPickupDef(pickupIndex);
                ItemDef   itemDef   = ItemCatalog.GetItemDef(pickupDef != null ? pickupDef.itemIndex : ItemIndex.None);

                if (itemDef == null)
                {
                    return(false);
                }
                return(itemDef.DoesNotContainTag(ItemTag.AIBlacklist));
            }
        }
Exemplo n.º 4
0
 private void ScavengerNoResetGhost(On.RoR2.ScavengerItemGranter.orig_Start orig, ScavengerItemGranter self)
 {
     if (base.GetComponent <Inventory>())
     {
         if (base.GetComponent <Inventory>().GetItemCount(ItemIndex.Ghost) > 0)
         {
         }
         else
         {
             orig(self);
         }
     }
 }