public void AddItemToInventory(Gameitem item) { Inventory.Add(item); if (item.IsUnique) { GroupedInventory.Add(new GroupedInventory(item, 1)); } else { if (!GroupedInventory.Any(gi => gi.Item.TypeID == item.TypeID)) { GroupedInventory.Add(new GroupedInventory(item, 0)); } GroupedInventory.First(gi => gi.Item.TypeID == item.TypeID).Quantity++; } }
public void RemoveItemFromInventory(Gameitem item) { Inventory.Remove(item); GroupedInventory itemToRemove = GroupedInventory.FirstOrDefault(gi => gi.Item == item); if (itemToRemove != null) { if (itemToRemove.Quantity == 1) { GroupedInventory.Remove(itemToRemove); } else { itemToRemove.Quantity--; } } }
public static Gameitem CreateGameItem(int id) { Gameitem standardItem = _gameitems.FirstOrDefault(item => item.TypeID == id); if (standardItem != null) { if (standardItem is Weapon) { return((standardItem as Weapon).Clone()); } else if (standardItem is Armor) { return((standardItem as Armor).Clone()); } return(standardItem.Clone()); } return(null); }