Ejemplo n.º 1
0
        public void ProcessMap_DoubleMap_MapIsDoubled()
        {
            var map = GenerateMap();

            var doubler = new MapDoubler<Cell,BinaryCell>();
            var newMap = doubler.ConvertMap(map, mConfiguration, mRandomizer);

            Assert.AreEqual(SOME_EVEN_HEIGHT * 2 + 1, newMap.Height);
            Assert.AreEqual(SOME_EVEN_WIDTH * 2 + 1, newMap.Width);
        }
Ejemplo n.º 2
0
        public void ProcessMap_DoubleMap_MapIsDoubled()
        {
            var map = GenerateMap();

            var doubler = new MapDoubler <Cell, BinaryCell>();
            var newMap  = doubler.ConvertMap(map, mConfiguration, mRandomizer);

            Assert.AreEqual(SOME_EVEN_HEIGHT * 2 + 1, newMap.Height);
            Assert.AreEqual(SOME_EVEN_WIDTH * 2 + 1, newMap.Width);
        }
Ejemplo n.º 3
0
        private Map <Cell> Map()
        {
            var map = new Map <BinaryCell>(SOME_WIDTH, SOME_HEIGHT);

            new MazeGenerator <BinaryCell>().ProcessMap(map, mConfiguration, mRandomizer);
            new SparsenessReducer <BinaryCell>().ProcessMap(map, mConfiguration, mRandomizer);
            var newMap = new MapDoubler <Cell, BinaryCell>().ConvertMap(map, mConfiguration, mRandomizer);

            var roomGenerator = new RoomGenerator <Cell>();

            roomGenerator.ProcessMap(newMap, mConfiguration, mRandomizer);
            return(newMap);
        }
Ejemplo n.º 4
0
        public void ProcessMap_DoubleMap_TerrainAndSidesSetProperly()
        {
            var map = GenerateMap();
            var oldCells = map.AllCells.ToList();

            var doubler = new MapDoubler<Cell, BinaryCell>();
            var newMap = doubler.ConvertMap(map, mConfiguration, mRandomizer);

            foreach (var oldCell in oldCells.Where(cell => cell.IsOpen))
            {
                //assert the cell in the new location
                var newCell = newMap.GetCell(oldCell.Row * 2 + 1, oldCell.Column * 2 + 1);
                Assert.AreEqual(TerrainType.Floor, newCell.Terrain);

                //Where the side is open there should be floor, where the side is closed there should be rock
                foreach (var kvp in oldCell.Sides)
                {
                    Assert.AreEqual(kvp.Value ? TerrainType.Floor : TerrainType.Rock, newMap.GetAdjacentCell(newCell, kvp.Key).Terrain);
                }
            }
        }
Ejemplo n.º 5
0
        public void ProcessMap_DoubleMap_TerrainAndSidesSetProperly()
        {
            var map      = GenerateMap();
            var oldCells = map.AllCells.ToList();

            var doubler = new MapDoubler <Cell, BinaryCell>();
            var newMap  = doubler.ConvertMap(map, mConfiguration, mRandomizer);

            foreach (var oldCell in oldCells.Where(cell => cell.IsOpen))
            {
                //assert the cell in the new location
                var newCell = newMap.GetCell(oldCell.Row * 2 + 1, oldCell.Column * 2 + 1);
                Assert.AreEqual(TerrainType.Floor, newCell.Terrain);

                //Where the side is open there should be floor, where the side is closed there should be rock
                foreach (var kvp in oldCell.Sides)
                {
                    Assert.AreEqual(kvp.Value ? TerrainType.Floor : TerrainType.Rock, newMap.GetAdjacentCell(newCell, kvp.Key).Terrain);
                }
            }
        }
Ejemplo n.º 6
0
        private Map<Cell> GenerateMap()
        {
            var map = new Map<BinaryCell>(SOME_WIDTH, SOME_HEIGHT);

            new MazeGenerator<BinaryCell>().ProcessMap(map, mConfiguration, mRandomizer);
            new SparsenessReducer<BinaryCell>().ProcessMap(map, mConfiguration, mRandomizer);
            new DeadendsRemover<BinaryCell>().ProcessMap(map, mConfiguration, mRandomizer);
            var newMap = new MapDoubler<Cell, BinaryCell>().ConvertMap(map, mConfiguration, mRandomizer);
            new RoomGenerator<Cell>().ProcessMap(newMap, mConfiguration, mRandomizer);
            new DoorGenerator<Cell>().ProcessMap(newMap, mConfiguration, mRandomizer);

            return newMap;
        }