using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace mmoRL { public enum ItemType { None, Material, Placeable, Discovery, Equipment, Magic } public class Item { public int id = 0; public int amount = 1; public string name = "Item"; public Image image = new Image("%"); public ItemType type = ItemType.None; public int parameter1 = 0; public int x = 0; public int y = 0; //If on map public bool equipped = false; public string equipmentType = ""; public static int MAX_STACK = 250; public Item(int id, int x = 0, int y = 0) { this.id = id; this.x = x; this.y = y; switch (id) { case 1: //Wood image = new Image("=", ConsoleColor.DarkYellow); name = "Wood"; type = ItemType.Material; break; case 2: //Wooden Wall image = new Image("#", ConsoleColor.DarkYellow); name = "Wooden Wall"; type = ItemType.Placeable; parameter1 = 2; break; case 3: //Wooden Floor image = new Image(":", ConsoleColor.DarkYellow); name = "Wooden Floor"; type = ItemType.Placeable; parameter1 = 3; break; case 4: //Red ink image = new Image("!", ConsoleColor.Red); name = "Red Ink"; type = ItemType.Material; break; case 5: //Green ink image = new Image("!", ConsoleColor.Green); name = "Green Ink"; type = ItemType.Material; break; case 6: //Blue ink image = new Image("!", ConsoleColor.Blue); name = "Blue Ink"; type = ItemType.Material; break; case 7: //Red plant image = new Image("&", ConsoleColor.Red); name = "Red Plant"; type = ItemType.Material; break; case 8: //Green plant image = new Image("&", ConsoleColor.Green); name = "Green Plant"; type = ItemType.Material; break; case 9: //Blue plant image = new Image("&", ConsoleColor.Blue); name = "Blue Plant"; type = ItemType.Material; break; case 10: //White ink image = new Image("!", ConsoleColor.White); name = "White Ink"; type = ItemType.Material; break; case 11: //Red Wall image = new Image("#", ConsoleColor.Red); name = "Red Wall"; type = ItemType.Placeable; parameter1 = 10; break; case 12: //Red Floor image = new Image(":", ConsoleColor.Red); name = "Red Floor"; type = ItemType.Placeable; parameter1 = 11; break; case 13: //Green Wall image = new Image("#", ConsoleColor.Green); name = "Green Wall"; type = ItemType.Placeable; parameter1 = 12; break; case 14: //Green Floor image = new Image(":", ConsoleColor.Green); name = "Green Floor"; type = ItemType.Placeable; parameter1 = 13; break; case 15: //Blue Wall image = new Image("#", ConsoleColor.Blue); name = "Blue Wall"; type = ItemType.Placeable; parameter1 = 14; break; case 16: //Blue Floor image = new Image(":", ConsoleColor.Blue); name = "Blue Floor"; type = ItemType.Placeable; parameter1 = 15; break; case 17: //White Wall image = new Image("#", ConsoleColor.White); name = "White Wall"; type = ItemType.Placeable; parameter1 = 16; break; case 18: //White Floor image = new Image(":", ConsoleColor.White); name = "White Floor"; type = ItemType.Placeable; parameter1 = 17; break; case 19: //Stone image = new Image("*", ConsoleColor.Gray); name = "Stone"; type = ItemType.Material; break; case 20: //Stone Wall image = new Image("#", ConsoleColor.Gray); name = "Stone Wall"; parameter1 = 5; type = ItemType.Placeable; break; case 21: //Stone Floor image = new Image(":", ConsoleColor.Gray); name = "Stone Floor"; parameter1 = 6; type = ItemType.Placeable; break; case 22: //Lavastone image = new Image("*", ConsoleColor.DarkRed); name = "Lavastone"; type = ItemType.Material; break; case 23: //Sandstone image = new Image("*", ConsoleColor.Yellow); name = "Sandstone"; type = ItemType.Material; break; case 24: //Darkstone image = new Image("*", ConsoleColor.DarkMagenta); name = "Darkstone"; type = ItemType.Material; break; case 25: //Lavastone Wall image = new Image("#", ConsoleColor.DarkRed); name = "Lavastone Wall"; parameter1 = 21; type = ItemType.Placeable; break; case 26: //Lavastone Floor image = new Image(":", ConsoleColor.DarkRed); name = "Lavastone Floor"; parameter1 = 22; type = ItemType.Placeable; break; case 27: //Sandstone Wall image = new Image("#", ConsoleColor.Yellow); name = "Sandstone Wall"; parameter1 = 23; type = ItemType.Placeable; break; case 28: //Sandstone Floor image = new Image(":", ConsoleColor.Yellow); name = "Sandstone Floor"; parameter1 = 24; type = ItemType.Placeable; break; case 29: //Darkstone Wall image = new Image("#", ConsoleColor.DarkMagenta); name = "Darkstone Wall"; parameter1 = 25; type = ItemType.Placeable; break; case 30: //Darkstone Floor image = new Image(":", ConsoleColor.DarkMagenta); name = "Darkstone Floor"; parameter1 = 26; type = ItemType.Placeable; break; case 31: //Tree image = new Image("T", ConsoleColor.DarkGreen); name = "Plantable Tree"; parameter1 = 1; type = ItemType.Placeable; break; case 32: //Kobold scale image = new Image("~", ConsoleColor.DarkRed); name = "Kobold Scale"; type = ItemType.Material; break; case 33: //Symbol of Toughness image = new Image("Y", ConsoleColor.DarkRed); name = "Symbol of Toughness"; type = ItemType.Discovery; parameter1 = 4; break; case 34: //Orc skin image = new Image("~", ConsoleColor.Green); name = "Orc Skin"; type = ItemType.Material; break; case 35: //Symbol of Rage image = new Image("Y", ConsoleColor.Green); name = "Symbol of Rage"; type = ItemType.Discovery; parameter1 = 5; break; case 36: //Symbol of Creation image = new Image("Y", ConsoleColor.Gray); name = "Symbol of Creation"; type = ItemType.Discovery; parameter1 = 6; break; case 37: //Symbol of Creativity image = new Image("Y", ConsoleColor.White); name = "Symbol of Creativity"; type = ItemType.Discovery; parameter1 = 7; break; case 38: //Symbol of the Warrior image = new Image("Y", ConsoleColor.DarkYellow); name = "Symbol of the Warrior"; type = ItemType.Discovery; parameter1 = 8; break; case 39: //Stick image = new Image("/", ConsoleColor.DarkYellow); name = "Stick"; type = ItemType.Equipment; equipmentType = "weapon"; break; case 40: //Stick2 image = new Image("/", ConsoleColor.Yellow); name = "Stick2"; type = ItemType.Equipment; equipmentType = "weapon"; break; case 41: //Magic image = new Image("*", ConsoleColor.Magenta); name = "Magic"; type = ItemType.Magic; break; case 42: //Symbol of Genesis image = new Image("Y", ConsoleColor.Magenta); name = "Symbol of Genesis"; type = ItemType.Discovery; parameter1 = 9; break; case 43: //Kobold Armor image = new Image("[", ConsoleColor.DarkRed); name = "Kobold Armor"; type = ItemType.Equipment; equipmentType = "armor"; break; case 44: //Kobold Leggings image = new Image("]", ConsoleColor.DarkRed); name = "Kobold Leggings"; type = ItemType.Equipment; equipmentType = "legs"; break; case 45: //Kobold Helmet image = new Image("n", ConsoleColor.DarkRed); name = "Kobold Helmet"; type = ItemType.Equipment; equipmentType = "head"; break; case 46: //Orc-skin Armor image = new Image("[", ConsoleColor.Green); name = "Orc-Skin Armor"; type = ItemType.Equipment; equipmentType = "armor"; break; case 47: //Orc-skin Leggings image = new Image("]", ConsoleColor.Green); name = "Orc-Skin Leggings"; type = ItemType.Equipment; equipmentType = "legs"; break; case 48: //Orc-skin Helm image = new Image("n", ConsoleColor.Green); name = "Orc-Skin Helm"; type = ItemType.Equipment; equipmentType = "head"; break; case 49: //Leather Armor image = new Image("[", ConsoleColor.Yellow); name = "Leather Armor"; type = ItemType.Equipment; equipmentType = "armor"; break; case 50: //Leather Leggings image = new Image("]", ConsoleColor.Yellow); name = "Leather Leggings"; type = ItemType.Equipment; equipmentType = "legs"; break; case 51: //Leather Cap image = new Image("n", ConsoleColor.Yellow); name = "Leather Cap"; type = ItemType.Equipment; equipmentType = "head"; break; case 52: //Leather Rope image = new Image("-", ConsoleColor.Yellow); name = "Leather Rope"; type = ItemType.Material; break; case 53: //Leather Boots image = new Image("?", ConsoleColor.Yellow); name = "Leather Boots"; type = ItemType.Equipment; equipmentType = "feet"; break; case 54: //Primitive Spear image = new Image("/", ConsoleColor.DarkGray); name = "Primitive Spear"; type = ItemType.Equipment; equipmentType = "weapon"; break; case 55: //Leather image = new Image("~", ConsoleColor.Yellow); name = "Leather"; type = ItemType.Material; break; case 56: //Symbol of the Hunt image = new Image("Y", ConsoleColor.Yellow); name = "Symbol of the Hunt"; type = ItemType.Discovery; parameter1 = 10; break; case 57: //Orcish Spear image = new Image("/", ConsoleColor.Green); name = "Orcish Spear"; type = ItemType.Equipment; equipmentType = "weapon"; break; case 58: //Enchanted Leather Boots image = new Image("?", ConsoleColor.Magenta); name = "Enchanted Leather Boots"; type = ItemType.Equipment; equipmentType = "feet"; break; case 59: //Giant's Toe image = new Image("%", ConsoleColor.Yellow); name = "Giant's Toe"; type = ItemType.Material; break; case 60: //Giant's Arm image = new Image("7", ConsoleColor.Yellow); name = "Giant's Arm"; type = ItemType.Material; break; case 61: //Orc's Thumb image = new Image("%", ConsoleColor.Green); name = "Orc's Thumb"; type = ItemType.Material; break; case 62: //Kobold's Arm image = new Image("7", ConsoleColor.DarkRed); name = "Kobold's Arm"; type = ItemType.Material; break; case 63: //Symbol of the Kobold image = new Image("Y", ConsoleColor.DarkRed); name = "Symbol of the Kobold"; type = ItemType.Discovery; parameter1 = 11; break; case 64: //Symbol of the Orc image = new Image("Y", ConsoleColor.Green); name = "Symbol of the Orc"; type = ItemType.Discovery; parameter1 = 12; break; case 65: //Symbol of the Giant image = new Image("Y", ConsoleColor.Yellow); name = "Symbol of the Giant"; type = ItemType.Discovery; parameter1 = 13; break; case 66: //Symbol of Progress image = new Image("Y", ConsoleColor.Magenta); name = "Symbol of Progress"; type = ItemType.Discovery; parameter1 = 14; break; case 67: //Symbol of Return image = new Image("Y", ConsoleColor.Magenta); name = "Symbol of Return"; type = ItemType.Discovery; parameter1 = 15; break; case 68: //Chela image = new Image("{", ConsoleColor.Red); name = "Chela"; type = ItemType.Material; break; case 69: //Boots of Water Walking image = new Image("?", ConsoleColor.Blue); name = "Boots of Water Walking"; type = ItemType.Equipment; equipmentType = "feet"; break; case 70: //Symbol of Alchemy image = new Image("Y", ConsoleColor.Magenta); name = "Symbol of Alchemy"; type = ItemType.Discovery; parameter1 = 16; break; case 71: //Symbol of Greater Toughness image = new Image("Y", ConsoleColor.DarkRed); name = "Symbol of Greater Toughness"; type = ItemType.Discovery; parameter1 = 17; break; case 72: //Greater Symbol of the Kobold image = new Image("Y", ConsoleColor.DarkRed); name = "Greater Symbol of the Kobold"; type = ItemType.Discovery; parameter1 = 18; break; case 73: //Greater Symbol of the Orc image = new Image("Y", ConsoleColor.Green); name = "Greater Symbol of the Orc"; type = ItemType.Discovery; parameter1 = 19; break; case 74: //Greater Symbol of the Giant image = new Image("Y", ConsoleColor.Yellow); name = "Greater Symbol of the Giant"; type = ItemType.Discovery; parameter1 = 20; break; case 75: //Symbol of Extreme Toughness image = new Image("Y", ConsoleColor.DarkRed); name = "Symbol of Extreme Toughness"; type = ItemType.Discovery; parameter1 = 21; break; case 76: //Extreme Symbol of the Kobold image = new Image("Y", ConsoleColor.DarkRed); name = "Extreme Symbol of the Kobold"; type = ItemType.Discovery; parameter1 = 22; break; case 77: //Extreme Symbol of the Orc image = new Image("Y", ConsoleColor.Green); name = "Extreme Symbol of the Orc"; type = ItemType.Discovery; parameter1 = 23; break; case 78: //Extreme Symbol of the Giant image = new Image("Y", ConsoleColor.Yellow); name = "Extreme Symbol of the Giant"; type = ItemType.Discovery; parameter1 = 24; break; } } public Item(byte[] serialized) { } public string Describe() { string suffix = ""; if (this.equipped) suffix = " (equipped)"; if (amount == 1) { return name + suffix; } else { return amount + " " + name + "s" + suffix; } } public void SetAmount(int newAmount) { this.amount = newAmount; if (this.amount > MAX_STACK) this.amount = MAX_STACK; } public void AddAmount(int toAdd) { this.SetAmount(this.amount + toAdd); } } }