Example #1
0
        public void InventoryInteractorPutOffTest()
        {
            var playView            = new VoidView();
            var inventoryInteractor = new InventoryInteractor(level, playView);

            Assert.AreEqual(3, confusedLevel.CurrentPlayer.GetInventory().Count);
            Assert.AreEqual(1, confusedLevel.CurrentPlayer.GetAppliedInventory().Count);
            Assert.IsInstanceOf(typeof(IncreaseHealthItem), confusedLevel.CurrentPlayer.GetAppliedInventory()[0]);

            var beforeStatistics  = confusedLevel.CurrentPlayer.GetStatistics().Clone() as CharacterStatistics;
            var inventoryPosition = confusedLevel.CurrentPlayer.GetAppliedInventory()[0].Position;

            confusedLevel.Board.IsEmpty(inventoryPosition);

            inventoryInteractor.PutOff(confusedLevel.CurrentPlayer, confusedLevel.CurrentPlayer.GetAppliedInventory()[0].GetStringType());
            Assert.AreEqual(3, confusedLevel.CurrentPlayer.GetInventory().Count);
            Assert.AreEqual(0, confusedLevel.CurrentPlayer.GetAppliedInventory().Count);

            var afterStatistics = confusedLevel.CurrentPlayer.GetStatistics();

            confusedLevel.Board.IsInventory(inventoryPosition);

            Assert.AreEqual(beforeStatistics.Experience, afterStatistics.Experience);
            Assert.AreEqual(beforeStatistics.Force, afterStatistics.Force);
            Assert.AreEqual(beforeStatistics.Health - 3, afterStatistics.Health);
        }
Example #2
0
        public void SpawnPlayerInteractorTest()
        {
            var playerView            = new VoidView();
            var spawnPlayerInteractor = new SpawnPlayerInteractor(level, playerView);

            spawnPlayerInteractor.Spawn(new Position(1, 1), "newplayer");
            Assert.IsTrue(level.ContainsPlayer("newplayer"));
            spawnPlayerInteractor.DeletePlayer("newplayer");
            Assert.IsFalse(level.ContainsPlayer("newplayer"));
        }
Example #3
0
        public void ConfusedNetworkPlayerMoveInteractorTest()
        {
            var playView             = new VoidView();
            var playerMoveInteractor = new NetworkPlayerMoveInteractor(confusedLevel, playView);

            var oldPosition = confusedLevel.CurrentPlayer.Position;

            playerMoveInteractor.IntentMove(confusedLevel.CurrentPlayer, 0, 1);
            var newPosition = confusedLevel.CurrentPlayer.Position;

            Assert.IsTrue(Math.Abs(oldPosition.X - newPosition.X) <= 1);
            Assert.IsTrue(Math.Abs(oldPosition.Y - newPosition.Y) <= 1);
        }
Example #4
0
        public void PlayerMoveInteractorTest()
        {
            var playView             = new VoidView();
            var playerMoveInteractor = new PlayerMoveInteractor(level, playView);

            var oldPosition = level.CurrentPlayer.Position;

            playerMoveInteractor.IntentMove(level.CurrentPlayer, 0, 1);
            var newPosition = level.CurrentPlayer.Position;

            Assert.AreEqual(oldPosition.X + 1, newPosition.X);
            Assert.AreEqual(oldPosition.Y, newPosition.Y);
        }
Example #5
0
        public void InvokeState()
        {
            var level     = levelFactory.CreateLevel();
            var inputLoop = new InputLoop();
            var playView  = new VoidView();

            var inputController = new ServerInputController(level, newSessionId, inputService);

            var exitGameInteractor   = new ExitGameInteractor(level, inputController);
            var playerMoveInteractor = new PlayerMoveInteractor(level, playView, inputController);
            var mobMoveInteractor    = new MobMoveInteractor(level, playView, inputController);
            var inventoryInteractor  = new InventoryInteractor(level, playView);

            levelFactory.SetPlayerFactory(new NetworkPlayerFactory(exitGameInteractor));

            var moveProcessor      = new MoveProcessor(playerMoveInteractor);
            var exitGameProcessor  = new ExitGameProcessor(exitGameInteractor);
            var inventoryProcessor = new InventoryProcessor(inventoryInteractor, inputController);

            var tickController = new TickController();

            inputController.AddInputProcessor(moveProcessor);
            inputController.AddInputProcessor(inventoryProcessor);
            inputController.AddInputProcessor(exitGameProcessor);

            inputLoop.AddFixedUpdatable(tickController);
            inputLoop.AddUpdatable(inputController);

            level.CurrentPlayer = new Player(DummyLogin, level, new Position(-1, -1));

            var mobs = level.Mobs;

            foreach (var mob in mobs)
            {
                var mobMoveProcessor = new MobMoveProcessor(mob, mobMoveInteractor);
                tickController.AddTickProcessor(mobMoveProcessor);
                mob.OnDie += (sender, args) =>
                {
                    level.Mobs.Remove(mob);
                    tickController.RemoveTickProcessor(mobMoveProcessor);
                };
            }

            inputLoop.Start();
        }
Example #6
0
        public void InventoryInteractorPutOnTest()
        {
            var playView            = new VoidView();
            var inventoryInteractor = new InventoryInteractor(level, playView);

            Assert.AreEqual(3, level.CurrentPlayer.GetInventory().Count);
            Assert.AreEqual(1, level.CurrentPlayer.GetAppliedInventory().Count);
            Assert.IsInstanceOf(typeof(IncreaseForceItem), level.CurrentPlayer.GetInventory()[2]);

            var beforeStatistics = level.CurrentPlayer.GetStatistics().Clone() as CharacterStatistics;

            inventoryInteractor.PutOn(level.CurrentPlayer, level.CurrentPlayer.GetInventory()[2].GetStringType());

            Assert.AreEqual(2, level.CurrentPlayer.GetInventory().Count);
            Assert.AreEqual(2, level.CurrentPlayer.GetAppliedInventory().Count);

            var afterStatistics = level.CurrentPlayer.GetStatistics();

            Assert.AreEqual(beforeStatistics.Health, afterStatistics.Health);
            Assert.AreEqual(beforeStatistics.Experience, afterStatistics.Experience);
            Assert.AreEqual(beforeStatistics.Force + 3, afterStatistics.Force);
        }
        public void NetworkMobMoveInteractorTest()
        {
            var playView          = new VoidView();
            var mobMoveInteractor = new NetworkMobMoveInteractor(level, playView);
            var cowardMob         = level.Mobs[0];

            var oldPosition = cowardMob.Position;

            mobMoveInteractor.IntentMove(cowardMob, 1, 0);
            var newPosition = cowardMob.Position;

            Assert.AreEqual(oldPosition.X, newPosition.X);
            Assert.AreEqual(oldPosition.Y, newPosition.Y);

            var aggressiveMob = level.Mobs[5];

            oldPosition = aggressiveMob.Position;
            mobMoveInteractor.IntentMove(aggressiveMob, 0, 1);
            newPosition = aggressiveMob.Position;

            Assert.AreEqual(oldPosition.X, newPosition.X);
            Assert.AreEqual(oldPosition.Y, newPosition.Y);
        }