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]; }
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)); } }
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); } } }