예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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();
                }
            }
        }