Ejemplo n.º 1
0
 public void Create()
 {
     findGridSize();
     corridorBuilder = new CorridorBuilder(levelGrid);
     connectRooms();
     addWalls();
 }
Ejemplo n.º 2
0
        public void CorridorGetBlockTest()
        {
            var corridor = new CorridorBuilder(_testChunk)
                           .Build() as Corridor;

            for (var x = corridor.BottomLeftCorner.X; x <= corridor.TopRightCorner.X; x++)
            {
                for (var y = corridor.BottomLeftCorner.Y; y <= corridor.TopRightCorner.Y; y++)
                {
                    var block = corridor.GetBlockType(new IntVector2(x, y));
                    Assert.AreEqual(BlockTypes.None, block, $"Found the wrong block at [{x},{y}].");
                }
            }
        }
Ejemplo n.º 3
0
        public void CorridorBuilderCutTest()
        {
            foreach (var alignment in (CorridorBuilder.CorridorAlignment[])System.Enum.GetValues(typeof(CorridorBuilder.CorridorAlignment)))
            {
                var cutRightCorridor = new CorridorBuilder(_testChunk)
                                       .SetStartingPoint(-Vector2.one, alignment)
                                       .AddBoundary(Directions.Right, 0)
                                       .AddBoundary(Directions.Left, 0)
                                       .Build();

                foreach (var extent in cutRightCorridor.Extents)
                {
                    Assert.AreEqual(0, extent.X, $"Failed to cut right for {alignment}, as one extent is at {extent}.");
                }

                var cutUpCorridor = new CorridorBuilder(_testChunk)
                                    .SetStartingPoint(-Vector2.one, alignment)
                                    .AddBoundary(Directions.Up, 0)
                                    .AddBoundary(Directions.Down, 0)
                                    .Build();

                foreach (var extent in cutUpCorridor.Extents)
                {
                    Assert.AreEqual(0, extent.Y, $"Failed to cut up for {alignment}, as one extent is at {extent}.");
                }

                var cutLeftCorridor = new CorridorBuilder(_testChunk)
                                      .SetStartingPoint(Vector2.one, alignment)
                                      .AddBoundary(Directions.Left, 0)
                                      .AddBoundary(Directions.Right, 0)
                                      .Build();

                foreach (var extent in cutLeftCorridor.Extents)
                {
                    Assert.AreEqual(0, extent.X, $"Failed to cut left for {alignment}, as one extent is at {extent}.");
                }

                var cutDownCorridor = new CorridorBuilder(_testChunk)
                                      .SetStartingPoint(Vector2.one, alignment)
                                      .AddBoundary(Directions.Down, 0)
                                      .AddBoundary(Directions.Up, 0)
                                      .Build();

                foreach (var extent in cutDownCorridor.Extents)
                {
                    Assert.AreEqual(0, extent.Y, $"Failed to cut down for {alignment}, as one extent is at {extent}.");
                }
            }
        }
Ejemplo n.º 4
0
        public void CorridorBuilderResizeTest()
        {
            foreach (var alignment in (CorridorBuilder.CorridorAlignment[])System.Enum.GetValues(typeof(CorridorBuilder.CorridorAlignment)))
            {
                var setHeightCorridor = new CorridorBuilder(_testChunk)
                                        .SetHeight(10)
                                        .Build() as Corridor;

                Assert.AreEqual(10, setHeightCorridor.Height, $"Corridor height was not as expected for alignment {alignment}.");

                var setLengthCorridor = new CorridorBuilder(_testChunk)
                                        .SetLength(10)
                                        .Build() as Corridor;

                Assert.AreEqual(10, setLengthCorridor.Length, $"Corridor length was not as expected for alignment {alignment}.");
            }
        }
Ejemplo n.º 5
0
        public void CorridorEnemyGenerationTest()
        {
            for (var repeat = 0; repeat < 1; repeat++)
            {
                var corridor = new CorridorBuilder(_testChunk)
                               .SetLength(5)
                               .SetHeight(5)
                               .SetExtraRiskPoints(5)
                               .SetAllowEnemies(true)
                               .Build();

                var enemySpawns = corridor.EnemySpawns;

                Assert.IsNotEmpty(enemySpawns, $"No enemies were spawned.");

                foreach (var enemy in enemySpawns)
                {
                    Assert.True(corridor.Contains(enemy.Position), $"Enemy spawned outside of monster den.");
                    Assert.AreNotEqual(EnemyTypes.None, enemy.Type, $"Enemy spawned as `none`.");
                }
            }
        }