private void On_InvRemoveItemByIndex(On.RoR2.Inventory.orig_RemoveItem_ItemIndex_int orig, Inventory self, ItemIndex itemIndex, int count) { orig(self, itemIndex, count); if (count <= 0 || !self || !NetworkServer.active) { return; } var minv = self.gameObject.GetComponent <MimicInventory>(); if (!minv) { minv = self.gameObject.AddComponent <MimicInventory>(); if (!minv) { return; //happens if object is being destroyed this frame } minv.LocateOrCreateComponentsServer(); } if (itemIndex != catalogIndex) { if (minv.fakeInv.GetRealItemCount(itemIndex) == 0) { minv.Redistribute(itemIndex); } } else { minv.totalMimics = minv.fakeInv.GetRealItemCount(catalogIndex); } }
private void Inventory_RemoveItem_ItemIndex_int(On.RoR2.Inventory.orig_RemoveItem_ItemIndex_int orig, Inventory self, ItemIndex itemIndex, int count) { var newCount = AdjustItemCount(itemIndex); if (count > 0 && count < newCount) { count = newCount; } orig(self, itemIndex, count); ModifyDropList(itemIndex, true); }
public void Inventory_RemoveItem_ItemIndex_int(On.RoR2.Inventory.orig_RemoveItem_ItemIndex_int orig, Inventory self, ItemIndex itemIndex, int count) { MysticsItemsManuscript component = self.GetComponent <MysticsItemsManuscript>(); if (!component) { component = self.gameObject.AddComponent <MysticsItemsManuscript>(); } orig(self, itemIndex, count); if (NetworkServer.active && itemIndex == itemDef.itemIndex) { for (var i = 0; i < count; i++) { component.RemoveBuff(); } } }