public override object Clone() { Chest chest = new Chest(Name,IsLocked,MinGold,MaxGold); foreach (BaseItem item in ItemCollection) chest.ItemCollection.Add(item); foreach (String key in keysRequired) chest.keysRequired.Add(key); return chest; }
protected void createWorld() { Texture2D tilesetTexture = Game.Content.Load<Texture2D>(@"Tilesets\planktileset"); Tileset tileset1 = new Tileset(tilesetTexture, 7, 1, 40, 40); tilesetTexture = Game.Content.Load<Texture2D>(@"Tilesets\walls2"); Tileset tileset2 = new Tileset(tilesetTexture, 6, 7, 40, 40); List<Tileset> tilesets = new List<Tileset>(); tilesets.Add(tileset1); tilesets.Add(tileset2); int mapWidth = 20; int mapHeight = 20; CollisionLayer collision = new CollisionLayer(mapWidth, mapHeight); MapLayer wall = new MapLayer(mapWidth, mapHeight); Random random = new Random(); //first row wall.SetTile(0, 0, new Tile(0, 1)); wall.SetTile(1, 0, new Tile(1, 1)); collision.SetTile(0, 0, CollisionType.Unwalkable); collision.SetTile(1, 0, CollisionType.Unwalkable); for (int i = 2; i < wall.Width - 2; i++) { int index = random.Next(2, 4); Tile tile = new Tile(index, 1); wall.SetTile(i, 0, tile); } wall.SetTile(wall.Width - 2, 0, new Tile(4, 1)); wall.SetTile(wall.Width-1, 0, new Tile(5, 1)); collision.SetTile(wall.Width - 2, 0, CollisionType.Unwalkable); collision.SetTile(wall.Width - 1, 0, CollisionType.Unwalkable); //second row random = new Random(); wall.SetTile(0, 1, new Tile(6, 1)); wall.SetTile(1, 1, new Tile(7, 1)); for (int i = 2; i < wall.Width - 2; i++) { int index = random.Next(8, 10); Tile tile = new Tile(index, 1); wall.SetTile(i, 1, tile); } wall.SetTile(wall.Width - 2, 1, new Tile(10, 1)); wall.SetTile(wall.Width - 1, 1, new Tile(11, 1)); //third row random = new Random(); wall.SetTile(0, 2, new Tile(12, 1)); wall.SetTile(1, 2, new Tile(13, 1)); for (int i = 2; i < wall.Width - 2; i++) { int index = random.Next(14, 16); Tile tile = new Tile(index, 1); wall.SetTile(i, 2, tile); } wall.SetTile(wall.Width - 2, 2, new Tile(16, 1)); wall.SetTile(wall.Width - 1, 2, new Tile(17, 1)); //left column random = new Random(); for (int i = 3; i < wall.Height - 2; i++) { int index = random.Next(0, 2); if (index == 0) index = 18; else if (index == 1) index = 24; Tile tile = new Tile(index, 1); wall.SetTile(0, i, tile); } wall.SetTile(0, wall.Height - 2, new Tile(30, 1)); wall.SetTile(0, wall.Height - 1, new Tile(36, 1)); //right column random = new Random(); for (int i = 3; i < wall.Width - 2; i++) { int index = random.Next(0, 2); if (index == 0) index = 23; else if (index == 1) index = 29; Tile tile = new Tile(index, 1); wall.SetTile(wall.Width-1, i, tile); } wall.SetTile(wall.Width-1, wall.Height - 2, new Tile(35, 1)); wall.SetTile(wall.Width-1, wall.Height - 1, new Tile(41, 1)); //last row wall.SetTile(1, wall.Height - 1, new Tile(37, 1)); wall.SetTile(wall.Width - 1, wall.Height - 1, new Tile(41, 1)); wall.SetTile(wall.Width - 2, wall.Height - 1, new Tile(40, 1)); wall.SetTile(1, wall.Height - 2, new Tile(31, 1)); wall.SetTile(wall.Width - 2, wall.Height - 2, new Tile(34, 1)); random = new Random(); for (int i = 2; i < wall.Width - 2; i++) { int index = random.Next(38, 40); Tile tile = new Tile(index, 1); wall.SetTile(i, wall.Height-1, tile); } // wall.SetTile(wall.Width - 2, wall.Height - 1, new Tile(40, 1)); //wall.SetTile(wall.Width - 1, wall.Height - 1, new Tile(41, 1)); MapLayer layer = new MapLayer(mapWidth, mapHeight); for (int y = 0; y < layer.Height; y++) { for (int x = 0; x < layer.Width; x++) { Tile tile = new Tile(0, 0); layer.SetTile(x, y, tile); } } MapLayer splatter = new MapLayer(mapWidth, mapHeight); random = new Random(); for (int i = 0; i < 40; i++) { int x = random.Next(0, 19); int y = random.Next(4, 20); int index = random.Next(2, 6); Tile tile = new Tile(index, 0); splatter.SetTile(x, y, tile); } // splatter.SetTile(1, 0, new Tile(1, 1)); // splatter.SetTile(2, 0, new Tile(2, 1)); // splatter.SetTile(3, 0, new Tile(3, 1)); //map.Collision = new CollisionLayer(mapWidth, mapHeight); List<MapLayer> mapLayers = new List<MapLayer>(); /* System.IO.StreamReader file = new System.IO.StreamReader(@"test.txt"); string line; while ((line = file.ReadLine()) != null) { Game.Window.Title = line; //System.Console.WriteLine(line); }*/ mapLayers.Add(layer); mapLayers.Add(splatter); mapLayers.Add(wall); collision.ProcessWallLayer(wall); map = new TileMap(tilesets, mapLayers,collision); Level level = new Level(map); //THIS IS HOW TO MAKE A TILE UNWALKABLE // map.BlockTile(1, 3); // world.Levels.Add(level); Level level2 = new Level(map); Chest chest = new Chest("Some Chest",true,10,20); chest.addKey("Some Key"); BaseSprite chestSprite = new BaseSprite( containers, new Rectangle(0, 0, 38, 38), new Point(6, 6)); ItemSprite itemSprite = new ItemSprite( chest, chestSprite); level2.Chests.Add(itemSprite); world.Levels.Add(level2); world.CurrentLevel = 0; }