private void GenericPickupController_GrantItem(On.RoR2.GenericPickupController.orig_GrantItem orig, RoR2.GenericPickupController self, RoR2.CharacterBody body, RoR2.Inventory inventory) { orig.Invoke(self, body, inventory); //Debug.Log(self.pickupIndex); PickupIndex trashDio = new PickupIndex(ItemIndex.Bear); if (self.pickupIndex == trashDio) { List <PickupIndex> tier1Items = Run.instance.availableTier1DropList; int rng = random.Next(0, tier1Items.Count); if (tier1Items[rng] == trashDio) { rng++; } //ItemIndex rngItem = tier3Items[rng].itemIndex; //tier3Items[rng].itemIndex.ToString(); //tier3Items[rng].GetPickupNameToken(); string rngItemName = Language.GetString(tier1Items[rng].GetPickupNameToken()); Color32 color = tier1Items[rng].GetPickupColor(); Color32 colorDark = tier1Items[rng].GetPickupColorDark(); //<color=#307FFF>Lunar Coin</color><style=cEvent> Dropped</style> Chat.AddMessage(String.Format("<style=cEvent>You were expecting </style>{0} {1}", Util.GenerateColoredString(rngItemName, color), Util.GenerateColoredString("BUT IT WAS ME TRASH DIO", colorDark))); } }
private void GenericPickupController_GrantItem(On.RoR2.GenericPickupController.orig_GrantItem orig, RoR2.GenericPickupController self, RoR2.CharacterBody body, RoR2.Inventory inventory) { orig.Invoke(self, body, inventory); //Debug.Log(self.pickupIndex); PickupIndex dio = new PickupIndex(ItemIndex.ExtraLife); if (self.pickupIndex == dio) { //List<PickupIndex> tier3Items = Run.instance.availableTier3DropList; //int rng = random.Next(0, tier3Items.Count); //if (tier3Items[rng] == dio) // rng++; //ItemIndex rngItem = tier3Items[rng].itemIndex; //tier3Items[rng].itemIndex.ToString(); //tier3Items[rng].GetPickupNameToken(); string pickupName = self.GetComponentInChildren <PickupDisplay>().transform.GetChild(1).name.Replace("(Clone)", ""); //Debug.Log(pickupName); ItemDef[] items = typeof(ItemCatalog).GetFieldValue <ItemDef[]>("itemDefs"); ItemDef fakeItem = items[0]; //Debug.Log(items.Length); //Debug.Log(items[0]); foreach (ItemDef item in items) { if (item.pickupModelPath.Contains(pickupName)) { Debug.Log("FOUND!!!!!!!!"); fakeItem = item; break; } } PickupIndex ogItem = new PickupIndex(fakeItem.itemIndex); //Debug.Log("----------"); //Debug.Log(ogItem.GetPickupNameToken()); //Debug.Log(Language.GetString(ogItem.GetPickupNameToken())); //Debug.Log(ogItem.itemIndex); //Debug.Log("----------"); //PickupIndex ogItem = new PickupIndex(ItemIndex.Behemoth); //string rngItemName = Language.GetString(tier3Items[rng].GetPickupNameToken()); //Color32 color = tier3Items[rng].GetPickupColor(); //Color32 colorDark = tier3Items[rng].GetPickupColorDark(); string rngItemName = Language.GetString(ogItem.GetPickupNameToken()); Color32 color = ogItem.GetPickupColor(); Color32 colorDark = ogItem.GetPickupColorDark(); //<color=#307FFF>Lunar Coin</color><style=cEvent> Dropped</style> Chat.AddMessage(String.Format("<style=cEvent>You were expecting </style>{0} {1}", Util.GenerateColoredString(rngItemName, color), Util.GenerateColoredString("BUT IT WAS ME DIO", colorDark))); } }
private void GenericPickupController_GrantItem(On.RoR2.GenericPickupController.orig_GrantItem orig, GenericPickupController self, CharacterBody body, Inventory inventory) { orig(self, body, inventory); PickupDef pickupDef = PickupCatalog.GetPickupDef(self.pickupIndex); body.master?.GetBodyObject().GetComponent <DropInventoryOnDeath>()?.AddItem((pickupDef != null) ? pickupDef.itemIndex : ItemIndex.None, 1); }
private static void InventoryHook(On.RoR2.GenericPickupController.orig_GrantItem orig, GenericPickupController self, CharacterBody body, Inventory inventory) { var networkIdentity = body.master.netId; var item = PickupCatalog.GetPickupDef(self.pickupIndex); var itemDef = ItemCatalog.GetItemDef(item.itemIndex); var itemCount = inventory.GetItemCount(itemDef.itemIndex); var itemCost = Application.Config.ConfigResolver.ItemCount(itemDef.tier); var canAdd = itemCount > 1 && itemCount % itemCost == 0; if (canAdd) { var augments = AugmentResolver.ListAugmentsForItem(itemDef.itemIndex); if (augments != null && augments.Any()) { AugmentResolver.TryAddOrUpgradeAugmentToPlayer(networkIdentity, itemDef.itemIndex, augments.FirstOrDefault().Value.Id); } } orig(self, body, inventory); }
private void GrantItem(On.RoR2.GenericPickupController.orig_GrantItem orig, GenericPickupController self, CharacterBody body, Inventory inventory) { orig(self, body, inventory); if (self && inventory && inventory.GetItemCount(Pillow.itemIndex) > 0) { body.AddTimedBuff(BuffIndex.Cloak, 2 * inventory.GetItemCount(Pillow.itemIndex)); } }
private void GenericPickupController_GrantItem(On.RoR2.GenericPickupController.orig_GrantItem orig, GenericPickupController self, CharacterBody body, Inventory inventory) { orig(self, body, inventory); var pickupDef = PickupCatalog.GetPickupDef(self.pickupIndex); if (pickupDef != null) { var itemDef = ItemCatalog.GetItemDef(pickupDef.itemIndex); if (itemDef != null && itemDef.tier != ItemTier.NoTier) { LastPickedUpItem[inventory] = pickupDef.pickupIndex; } } }
private static void OnGrantItem(On.RoR2.GenericPickupController.orig_GrantItem orig, GenericPickupController self, CharacterBody body, Inventory inventory) { var item = PickupCatalog.GetPickupDef(self.pickupIndex); var itemDef = ItemCatalog.GetItemDef(item.itemIndex); if ((ShareSuite.RandomizeSharedPickups.Value || !ShareSuite.GetItemBlackList().Contains((int)item.itemIndex)) && NetworkServer.active && IsValidItemPickup(self.pickupIndex) && GeneralHooks.IsMultiplayer()) { foreach (var player in PlayerCharacterMasterController.instances.Select(p => p.master)) { // Ensure character is not original player that picked up item if (player.inventory == inventory) { continue; } // Do not reward dead players if not required if (!player.alive && !ShareSuite.DeadPlayersGetItems.Value) { continue; } if (ShareSuite.RandomizeSharedPickups.Value) { var giveItem = GetRandomItemOfTier(itemDef.tier, item.itemIndex); var givePickupIndex = PickupCatalog.FindPickupIndex(giveItem); player.inventory.GiveItem(giveItem); // Alternative: Only show pickup text for yourself // var givePickupDef = PickupCatalog.GetPickupDef(givePickupIndex); // Chat.AddPickupMessage(body, givePickupDef.nameToken, givePickupDef.baseColor, 1); SendPickupMessage(player, givePickupIndex); } // Otherwise give everyone the same item else { player.inventory.GiveItem(item.itemIndex); } } } orig(self, body, inventory); }
private void OnGrantItem( On.RoR2.GenericPickupController.orig_GrantItem orig, GenericPickupController self, CharacterBody body, Inventory inventory ) { GrantItem = orig; genericPickupController = self; ItemIndex itemIndex = PickupCatalog.GetPickupDef(self.pickupIndex).itemIndex; if (PreventPickupConfigEntries.ContainsKey(itemIndex) && PreventPickupConfigEntries[itemIndex].Value) { GiveRandomItem(body, inventory, itemIndex); return; } orig.Invoke(self, body, inventory); }
private static void OnGrantItem(On.RoR2.GenericPickupController.orig_GrantItem orig, GenericPickupController self, CharacterBody body, Inventory inventory) { var item = PickupCatalog.GetPickupDef(self.pickupIndex); var itemDef = ItemCatalog.GetItemDef(item.itemIndex); var randomizedPlayerDict = new Dictionary <CharacterMaster, PickupDef>(); if ((ShareSuite.RandomizeSharedPickups.Value || !BlackList.HasItem(item.itemIndex)) && NetworkServer.active && IsValidItemPickup(self.pickupIndex) && GeneralHooks.IsMultiplayer()) { if (ShareSuite.RandomizeSharedPickups.Value) { randomizedPlayerDict.Add(body.master, item); } foreach (var player in PlayerCharacterMasterController.instances.Select(p => p.master)) { // Ensure character is not original player that picked up item if (player.inventory == inventory) { continue; } // Do not reward dead players if not required if (!ShareSuite.DeadPlayersGetItems.Value && player.IsDeadAndOutOfLivesServer()) { continue; } if (ShareSuite.RandomizeSharedPickups.Value) { var pickupIndex = GetRandomItemOfTier(itemDef.tier, item.pickupIndex); if (pickupIndex == null) { // Could not find any not blacklisted item in that tier. You get nothing! Good day, sir! continue; } var giveItem = PickupCatalog.GetPickupDef(pickupIndex.Value); player.inventory.GiveItem(giveItem.itemIndex); // Alternative: Only show pickup text for yourself // var givePickupDef = PickupCatalog.GetPickupDef(givePickupIndex); // Chat.AddPickupMessage(body, givePickupDef.nameToken, givePickupDef.baseColor, 1); // Legacy -- old normal pickup message handler //SendPickupMessage(player, giveItem); randomizedPlayerDict.Add(player, giveItem); } // Otherwise give everyone the same item else { player.inventory.GiveItem(item.itemIndex); } } ChatHandler.SendRichRandomizedPickupMessage(body.master, item, randomizedPlayerDict); orig(self, body, inventory); return; } ChatHandler.SendRichPickupMessage(body.master, item); orig(self, body, inventory); }
private void GenericPickupControllerGrantItem(On.RoR2.GenericPickupController.orig_GrantItem orig, RoR2.GenericPickupController self, CharacterBody body, Inventory inventory) { orig(self, body, inventory); _pickups[inventory] = new PickupRecord(Time.time, PickupCatalog.GetPickupDef(self.pickupIndex).itemIndex); }