using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace mmoRL { public class Object { public int id = 0; public string name = "Object"; public Image image = new Image("?"); public bool solid = false; public bool replaceable = false; public string link = ""; public bool indestructible = false; public string text = ""; public Object(int id = 0) { this.id = id; SetDefaults(); } public Object(byte[] serialized) { System.IO.BinaryReader br = new System.IO.BinaryReader(new System.IO.MemoryStream(serialized)); int customType = br.ReadByte(); this.id = br.ReadByte(); //Base object SetDefaults(); switch (customType) { case 1: //Entrance case 2: //Stairs case 3: //Passage { int linkLength = br.ReadByte(); link = Encoding.ASCII.GetString(br.ReadBytes(linkLength)); } break; case 4: //Sign { int textLength = br.ReadByte(); text = Encoding.ASCII.GetString(br.ReadBytes(textLength)); } break; } } public void SetDefaults() { switch (this.id) { case 0: image = new Image(""); break; case 1: //Tree image = new Image("T", ConsoleColor.DarkGreen); solid = true; name = "Tree"; break; case 2: //Wooden wall image = new Image("#", ConsoleColor.DarkYellow); solid = true; name = "Wooden Wall"; break; case 3: //Wooden Floor image = new Image(":", ConsoleColor.DarkYellow); name = "Wooden Floor"; replaceable = true; break; case 4: //Rock image = new Image("o", ConsoleColor.Gray); name = "Rock"; solid = true; break; case 5: //Stone Wall image = new Image("#", ConsoleColor.Gray); name = "Stone Wall"; solid = true; break; case 6: //Stone Floor image = new Image(":", ConsoleColor.Gray); name = "Stone Floor"; replaceable = true; break; case 10: //Red Wall image = new Image("#", ConsoleColor.Red); name = "Red Wall"; solid = true; break; case 11: //Red Floor image = new Image(":", ConsoleColor.Red); name = "Red Floor"; replaceable = true; break; case 12: //Green Wall image = new Image("#", ConsoleColor.Green); name = "Green Wall"; solid = true; break; case 13: //Green Floor image = new Image(":", ConsoleColor.Green); name = "Green Floor"; replaceable = true; break; case 14: //Blue Wall image = new Image("#", ConsoleColor.Blue); name = "Blue Wall"; solid = true; break; case 15: //Blue Floor image = new Image(":", ConsoleColor.Blue); name = "Blue Floor"; replaceable = true; break; case 16: //White Wall image = new Image("#", ConsoleColor.White); name = "White Wall"; solid = true; break; case 17: //White Floor image = new Image(":", ConsoleColor.White); name = "White Floor"; replaceable = true; break; case 18: //Lavarock image = new Image("o", ConsoleColor.DarkRed); name = "Lavarock"; solid = true; break; case 19: //Sandrock image = new Image("o", ConsoleColor.Yellow); name = "Sandrock"; solid = true; break; case 20: //Darkrock image = new Image("o", ConsoleColor.DarkMagenta); name = "Darkrock"; solid = true; break; case 21: //Lavastone Wall image = new Image("#", ConsoleColor.DarkRed); name = "Lavastone Wall"; solid = true; break; case 22: //Lavastone Floor image = new Image(":", ConsoleColor.DarkRed); name = "Lavastone Floor"; replaceable = true; break; case 23: //Sandstone Wall image = new Image("#", ConsoleColor.Yellow); name = "Sandstone Wall"; solid = true; break; case 24: //Sandstone Floor image = new Image(":", ConsoleColor.Yellow); name = "Sandstone Floor"; replaceable = true; break; case 25: //Darkstone Wall image = new Image("#", ConsoleColor.DarkMagenta); name = "Darkstone Wall"; solid = true; break; case 26: //Darkstone Floor image = new Image(":", ConsoleColor.DarkMagenta); name = "Darkstone Floor"; replaceable = true; break; case 27: //Cave entrance image = new Image("o", ConsoleColor.White); name = "Cave Entrance"; indestructible = true; break; case 28: //Stairs down image = new Image(">", ConsoleColor.White); name = "Stairs Down"; indestructible = true; break; case 29: //Stairs up image = new Image("<", ConsoleColor.White); name = "Stairs Up"; indestructible = true; break; case 30: //Fence image = new Image("H", ConsoleColor.DarkYellow); name = "Fence"; solid = true; break; case 31: //Forest entrance image = new Image("o", ConsoleColor.White); name = "Forest Entrance"; indestructible = true; break; case 32: //Passage image = new Image("?", ConsoleColor.White); name = "Passage"; indestructible = true; break; case 33: //Forest exit image = new Image("o", ConsoleColor.White); name = "Forest Exit"; indestructible = true; break; case 34: //Passage image = new Image("?", ConsoleColor.White); name = "Passage"; indestructible = true; break; case 35: //Passage image = new Image("?", ConsoleColor.White); name = "Passage"; indestructible = true; break; case 36: //Passage image = new Image("?", ConsoleColor.White); name = "Passage"; indestructible = true; break; case 37: //Passage image = new Image("?", ConsoleColor.White); name = "Passage"; indestructible = true; break; case 38: //Sign image = new Image("T", ConsoleColor.DarkYellow); name = "Sign"; break; case 39: //Beach entrance image = new Image("o", ConsoleColor.White); name = "Beach Entrance"; indestructible = true; break; case 40: //Small Town image = new Image("o", ConsoleColor.White); name = "Small Town"; indestructible = true; break; case 41: //Beach exit image = new Image("o", ConsoleColor.White); name = "Beach Exit"; indestructible = true; break; case 42: //Town Exit image = new Image("o", ConsoleColor.White); name = "Town Exit"; indestructible = true; break; case 43: //Dirt path image = new Image("=", ConsoleColor.DarkYellow); name = "Dirt Path"; break; case 44: //Cave entrance image = new Image("o", ConsoleColor.White); name = "Cave Entrance"; indestructible = true; break; } } } }