コード例 #1
0
        public void RandomLevelPlayersTest()
        {
            var factory = new RandomLevelFactory();

            factory.SetPlayerFactory(new NetworkPlayerFactory(new ExitGameInteractor()));
            var level = factory.CreateLevel();

            level.AddPlayerAtEmpty("player1");
            Assert.IsTrue(level.ContainsPlayer("player1"));
            var player1 = level.GetPlayer("player1");

            level.CurrentPlayer = player1;

            level.AddPlayerAtEmpty("player2");
            Assert.IsTrue(level.ContainsPlayer("player2"));
            var player2 = level.GetPlayer("player2");

            Assert.IsTrue(level.ContainsPlayer("player1"));
            Assert.IsFalse(level.ContainsPlayer("player3"));

            var player2Position = player2.Position;

            level.DeletePlayer(player2);
            Assert.IsFalse(level.ContainsPlayer("player2"));

            var newPlayer1 = new Player("player1", level, player2Position);

            level.UpdatePlayer(newPlayer1);

            Assert.AreNotEqual(player1.Position, level.GetPlayer("player1").Position);
        }
コード例 #2
0
        public void RandomNetworkLevelSetFactoriesTest()
        {
            var factory = new RandomLevelFactory();

            factory.SetMobFactory(new NetworkMobFactory());
            var level = factory.CreateLevel();
            var board = level.Board;

            for (var i = 0; i < board.Height; i++)
            {
                for (var j = 0; j < board.Width; j++)
                {
                    var position = new Position(i, j);
                    switch (board.GetObject(position))
                    {
                    case Mob mob:
                        Assert.IsTrue(level.Mobs.Contains(mob));
                        Assert.IsNotInstanceOf(typeof(ConfusedMobBehaviour), mob.GetBehaviour());
                        break;

                    default:
                        Assert.True(true);
                        break;
                    }
                }
            }
        }
コード例 #3
0
        public void RandomLevelConfigurationTest()
        {
            var level = new RandomLevelFactory().CreateLevel();
            var board = level.Board;

            for (var i = 0; i < board.Height; i++)
            {
                for (var j = 0; j < board.Width; j++)
                {
                    var position = new Position(i, j);
                    switch (board.GetObject(position))
                    {
                    case Mob mob:
                        Assert.IsTrue(level.Mobs.Contains(mob));
                        break;

                    case EmptyCell _:
                        Assert.IsTrue(level.Board.IsEmpty(position));
                        break;

                    case Wall _:
                        Assert.IsTrue(level.Board.IsWall(position));
                        break;

                    case InventoryItem _:
                        Assert.IsTrue(level.Board.IsInventory(position));
                        break;
                    }
                }
            }
        }