static void Main(string[] args) { Console.WriteLine("----TEXTOR----"); var roomService = new RoomService(RoomId.EndarSpire_Quarters, _inventoryService); while (true) { Console.WriteLine("\n"); Console.Write(" >> "); var inputString = Console.ReadLine(); if (_moveToVerbs.Any(v => inputString.ToLower().Contains(v.ToLower()))) { roomService.MoveToRoom(inputString); } if (_openVerbs.Any(v => inputString.ToLower().Contains(v.ToLower()))) { roomService.Open(inputString); } //TODO: THIS IS NOT PRODUCTION CODE if (inputString.Contains("equipment")) { Console.WriteLine($"BODY: {_revan.Body.Name}"); Console.WriteLine($"LEFT HAND: {_revan.LeftHand.Name}"); Console.WriteLine($"RIGHT HAND: {_revan.RightHand.Name}"); } if (_inventoryVerbs.Any(v => inputString.ToLower().Contains(v.ToLower()))) { Console.WriteLine("Inventory:"); for (int i = 0; i < _inventoryService.Inventory.Count(); i++) { Console.WriteLine($"{i}:{_inventoryService.Inventory[i].Name}"); } Console.WriteLine("c: cancel"); var inventoryInput = Console.ReadLine(); if (inventoryInput.ToLower().Contains("c")) { return; } if (Int32.TryParse(inventoryInput, out int selection)) { if (_inventoryService.Inventory[selection] is EquipableItem) { EquipableItem item = _inventoryService.Inventory[selection] as EquipableItem; Console.WriteLine("which party member do you want to give this item to?"); //TODO: select the party member Console.WriteLine("which slot do you want to equip it in?"); Console.WriteLine(">>"); for (int i = 0; i < item.EquipableOn.Count(); i++) { Console.WriteLine($"{i}: {item.EquipableOn[i]}"); } Console.WriteLine("c: cancel"); var slotInput = Console.ReadLine(); if (inventoryInput.ToLower().Contains("c")) { return; } if (Int32.TryParse(slotInput, out int slotSelection)) { _revan.Equip((BodyPart)slotSelection, item); _inventoryService.Inventory = _inventoryService.Inventory.Where(i => i.Id != item.Id).ToList(); } } } } } }