public void DecrementResource(PublicEnums.ItemType type, int quantity) { /* * Item ItemToPick = Items.Last(i => i.ItemType == type); * if(ItemToPick.Quantity - quantity >= 0){ * ItemToPick.Quantity -= quantity; * if(ItemToPick.Quantity <= 0){ * RemoveItem(ItemToPick); * } * return; * } * if(ItemToPick.Quantity - quantity < 0){ * ItemToPick.Quantity -= ItemToPick.Quantity; * int newquantity = (quantity - ItemToPick.Quantity) * (-1); * DecrementResource(type, newquantity); * }*/ }
// Add ResourceItems public void AddResourceItem(int quantity, PublicEnums.ItemType resourceType) { // See if any items (That isn't full) of same type already exists => Add to this and return foreach (Item item in Items) { if (item.ItemType == resourceType && item.Quantity < item.MaxQuantity) { // Check the item quantity after adding int quantityAfterInc = item.Quantity + quantity; // if the quantity is more => use remainder method if (quantityAfterInc > item.MaxQuantity) { int quantityRemainder = item.MaxQuantity - item.Quantity; int quantityNewAdd = (quantityRemainder - quantity) * (-1); item.Quantity = item.MaxQuantity; AddResourceItem(quantityNewAdd, resourceType); return; } // If quantity is lower => just add if (quantityAfterInc < item.MaxQuantity) { item.Quantity += quantity; return; } } } // Else => Create a new resource of this type Item newResourceItem = Instantiate(ItemsList.First(i => i.ItemType == resourceType)); newResourceItem.Quantity = quantity; AddNewItem(newResourceItem); }