public void Consume(ConsumableItem item) { if (!Inventory.Any(i => i == item)) { throw new InvalidOperationException($"The Character ({Name}) has not this Item: {item.Name}"); } Inventory.Remove(item); item.Apply(this); }
public void Consume(ConsumableItem item) { if(!Inventory.Any(i => i == item)) { throw new InvalidOperationException($"The Character ({Name}) has not this Item: {item.Name}"); } Inventory.Remove(item); item.Apply(this); }
public InventoryMenuReturn InventoryNavigation() { switch (Console.ReadKey().Key) { case ConsoleKey.UpArrow: if (InventoryDraw.InventoryIndex <= 1) { InventoryDraw.InventoryIndex = SingleTon.GetPlayerController().Inventory.Inventory.Count; } else { InventoryDraw.InventoryIndex--; } return(InventoryMenuReturn.DrawInventoryContainer); case ConsoleKey.DownArrow: if (SingleTon.GetPlayerController().Inventory.Inventory.Count == InventoryDraw.InventoryIndex) { InventoryDraw.InventoryIndex = 1; } else { InventoryDraw.InventoryIndex++; } return(InventoryMenuReturn.DrawInventoryContainer); case ConsoleKey.LeftArrow: //minus if (InventoryDraw.state == InventoryDrawMenuState.All) { InventoryDraw.state = InventoryDrawMenuState.Misc; } else { InventoryDraw.state--; } return(InventoryMenuReturn.Everything); case ConsoleKey.RightArrow: //plus if (InventoryDraw.state == InventoryDrawMenuState.Misc) { InventoryDraw.state = InventoryDrawMenuState.All; } else { InventoryDraw.state++; } return(InventoryMenuReturn.Everything); case ConsoleKey.Enter: List <BaseItem> SortedItems = new List <BaseItem>(); switch (InventoryDraw.state) { case InventoryDrawMenuState.All: if (SingleTon.GetPlayerController().Inventory.Inventory[InventoryDraw.InventoryIndex - 1] is EquippableItem item) { if (SingleTon.GetPlayerController().Inventory.CheckIfItemsIsEquipped(item)) { item.UnEquip(); } else { item.Equip(); } return(InventoryMenuReturn.Everything); } break; case InventoryDrawMenuState.Armor: foreach (BaseItem element in (SingleTon.GetPlayerController().Inventory.Inventory.Where(x => x is ArmorItem).ToList())) { SortedItems.Add(element); } if (SortedItems[InventoryDraw.InventoryIndex - 1] is EquippableItem armor) { if (SingleTon.GetPlayerController().Inventory.CheckIfItemsIsEquipped(armor)) { armor.UnEquip(); } else { armor.Equip(); } return(InventoryMenuReturn.Everything); } break; case InventoryDrawMenuState.Consumeable: foreach (BaseItem element in (SingleTon.GetPlayerController().Inventory.Inventory.Where(x => x is ConsumableItem).ToList())) { SortedItems.Add(element); } if (SortedItems.Count != 0) { ConsumableItem CI = (ConsumableItem)SortedItems[InventoryDraw.InventoryIndex - 1]; CI.Apply(); } break; case InventoryDrawMenuState.Weapon: foreach (BaseItem element in (SingleTon.GetPlayerController().Inventory.Inventory.Where(x => x is WeaponItem).ToList())) { SortedItems.Add(element); } if (SortedItems[InventoryDraw.InventoryIndex - 1] is EquippableItem weapon) { if (SingleTon.GetPlayerController().Inventory.CheckIfItemsIsEquipped(weapon)) { } } break; } break; case ConsoleKey.Escape: Console.Clear(); new MapDraw().DrawMap(); PlayManager.State = PlayManager.PreviousState; return(InventoryMenuReturn.None); } return(InventoryMenuReturn.None); }