Basically I want the items in my list to show in the console... but instead i get this:
SimpleTextAdventure.Item
SimpleTextAdventure.Item
SimpleTextAdventure.Item
There are 3 items in the list, so i know the items have been added. But instead of writing them out like
Sword
Shield
Torch
Is has done the above instead. Why is this happening? If your wondering what it means
SimpleTextAdventure is the name of the project, and .Item is the name of one of the classes.
Please help, ive been stuck on this all day long thanks...
public class Inventory
{
private static List<Item> _inventory = new List<Item>();
public static void AddItem(string item)
{
_inventory.Add(new Item(item));
}
public static void PrintItems()
{
foreach (Item itemName in _inventory)
{
Console.WriteLine(itemName);
}
}
public static void RemoveItem(string itemName)
{
for (int i = 0; i < _inventory.Count; i++)
{
if (_inventory[i].ItemName == itemName)
{
_inventory.Remove(_inventory[i]);
break;
}
}
}
public static bool HasItem(string itemName)
{
foreach (Item item in _inventory)
{
if (item.ItemName == itemName)
{
return true;
}
}
return false;
}
public static int CountItemsFromInventory(string inventory)
{
int count = 0;
foreach (Item item in _inventory)
{
if (item.ItemName == inventory)
{
count++;
}
}
return count;
}
}
}
class Item
{
string _itemName;
public Item(string itemName)
{
_itemName = ItemName;
}
public string ItemName { get { return _itemName; } }
public void PrintOut(Inventory _inventory)
{
Console.WriteLine(_inventory);
}
}
}
public class RoomThree:Room
{
public static string[] _availableItems = new string[] { "torch", "shield", "sword" };
public static ChatLine[] _lines = new ChatLine[]
{
new ChatLine("START", "Welcome to Room 3. There is a table with weapons and a phone ringing on it. " +
"I would suggest you answer it", "answer, answer phone", AnswerPhone),
new ChatLine("TABLE", "There are items on the table", "look, look table", LookTable),
new ChatLine("FOUND_ITEMS", "You looked at the table and there #AVAILABLE_ITEMS#.", "", PlayerSelectsItem),
new ChatLine("MOVE_OR_PICK", "Move towards the North door, or pick another item, there #AVAILABLE_ITEMS#", "pick+?", PlayerSelectsItem),
new ChatLine("MOVE_OR_PICK", "Move towards the North doorm or pick another item, there #AVAILABLE_ITEMS#", "move+?", GameEngine.Instance.PlayerMove),
new ChatLine("", "", "pick+?, select+?, choose+?", PlayerSelectsItem),
new ChatLine("", "", "drop+?", PlayerDropsItem),
new ChatLine("", "", "move+?", GameEngine.Instance.PlayerMove)
};
public RoomThree()
: base("ROOM_THREE", _lines, "START", _availableItems)
{
}
private static string AnswerPhone(string word, object[] args)
{
Console.WriteLine();
Console.WriteLine("Hello human. My name is Sauron. I am the leader of this race. You have became a problem for me," +
" and for my race. But I see potential in you. I see a great warrior in you.. So I will offer you this deal...." +
"If you can get to me, I will offer you a commander role leading my army against the demons. But it will be tough, you" +
" will have to face very experienced fighting orcs and you will have to find your way to me.. But IF you SURVIVE." +
" I will make you my second in command. Now there are weapons on the table in front of you, and an orc in the other room." +
" Good luck. You will need it.");
Console.WriteLine();
return "TABLE";
}
private static string LookTable(string word, object[] args)
{
Console.WriteLine();
return "FOUND_ITEMS";
}
public static string PlayerSelectsItem(string word, object[] args)
{
GameEngine.Instance.RemoveItemFromRoom(word);
Inventory.AddItem(word);
Inventory.PrintItems();
Console.WriteLine();
return "MOVE_OR_PICK";
}
public static string PlayerDropsItem(string word, object[] args)
{
if (Inventory.HasItem(word))
{
Inventory.RemoveItem(word);
GameEngine.Instance.DropItemInRoom(word);
Console.WriteLine("Item has been dropped");
}
else
{
Console.WriteLine("You don't have that item");
}
return "";
}
}