public void RemoveItem(Item item) { if (item.isStackable()) { Item itemInInventory = null; foreach (Item inventoryItem in itemList) { if (inventoryItem.itemType == item.itemType) { inventoryItem.amount -= item.amount; itemInInventory = inventoryItem; } } if (itemInInventory != null && itemInInventory.amount <= 0) { itemList.Remove(itemInInventory); } } else { itemList.Remove(item); } OnOtemListChanged?.Invoke(this, EventArgs.Empty); }
public void AddItem(Item item) { if (item.isStackable()) { bool itemAlreadyInInventory = false; foreach (Item inventoryItem in itemList) { if (inventoryItem.itemType == item.itemType) { inventoryItem.amount += item.amount; itemAlreadyInInventory = true; } } if (!itemAlreadyInInventory) { itemList.Add(item); } } else { itemList.Add(item); } OnOtemListChanged?.Invoke(this, EventArgs.Empty); }