Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }