Example #1
0
 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);
 }
Example #2
0
 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);
 }     
Example #3
0
        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);
        }