public void Add(ItemBase toAdd, int amount) { DataLogger.LogMessage("Item added: " + toAdd.name); InventoryItem myInvItem; if (toAdd is Equipment) { InventoryEquipment myEq = myEquipments.Find(x => x.item.name == toAdd.name); myInvItem = new InventoryEquipment((Equipment)toAdd, amount); if (myEq != null) { myEq.chargesLeft += amount; } else { myEquipments.Add((InventoryEquipment)myInvItem); } if (activeEquipment == null) { EquipItem((InventoryEquipment)myInvItem); } } else if (toAdd is Ingredient) { InventoryIngredient myIng = myIngredients.Find(x => x.item.name == toAdd.name); myInvItem = new InventoryIngredient((Ingredient)toAdd, amount); if (myIng != null) { myIng.chargesLeft += amount; } else { myIngredients.Add((InventoryIngredient)myInvItem); } } else { InventoryPotion myPot = myPotions.Find(x => x.item.name == toAdd.name); myInvItem = new InventoryPotion((Potion)toAdd, amount); if (myPot != null) { myPot.chargesLeft += amount; } else { myPotions.Add((InventoryPotion)myInvItem); } } if (ItemGainedScreen.s != null) { ItemGainedScreen.s.ShowGainedItem(myInvItem); } SaveMaster.s.Save(); }
public void Remove(ItemBase toRemove, int amount) { //InventoryItem myInvItem; if (toRemove is Equipment) { InventoryEquipment myEq = myEquipments.Find(x => x.item.name == toRemove.name); //myInvItem = new InventoryEquipment ((Equipment)toRemove, toRemove.durability); bool didRemove = false; if (myEq != null) { myEq.chargesLeft -= amount; if (myEq.chargesLeft <= 0) { myEquipments.Remove(myEq); didRemove = true; } } else { DataLogger.LogError("Cant remove item! " + toRemove.name + " - " + amount.ToString()); } if (didRemove) { if (toRemove.name == activeEquipment.item.name) { activeEquipment = null; } } } else if (toRemove is Ingredient) { InventoryIngredient myIng = myIngredients.Find(x => x.item.name == toRemove.name); //myInvItem = new InventoryIngredient ((Ingredient)toRemove, toRemove.durability); if (myIng != null) { myIng.chargesLeft -= amount; if (myIng.chargesLeft <= 0) { myIngredients.Remove(myIng); } } else { DataLogger.LogError("Cant remove item! " + toRemove.name + " - " + amount.ToString()); } } else { InventoryPotion myPot = myPotions.Find(x => x.item.name == toRemove.name); //myInvItem = new InventoryPotion ((Potion)toRemove, toRemove.durability); if (myPot != null) { myPot.chargesLeft -= amount; if (myPot.chargesLeft <= 0) { myPotions.Remove(myPot); } } else { DataLogger.LogError("Cant remove item! " + toRemove.name + " - " + amount.ToString()); } } }