コード例 #1
0
        public void GivenBot_WithMovement_AndAfterburnerStarted_ThenStopAfterburnerAndNormalSpeedCorrect()
        {
            SetupFakeWorld(true, false);
            var bot = new BotObject
            {
                Id             = Guid.NewGuid(),
                Size           = 60,
                Position       = new Position(0, 0),
                Speed          = 4,
                GameObjectType = GameObjectType.Player
            };

            WorldStateService.AddBotObject(bot);

            var firstAction  = FakeGameObjectProvider.GetForwardPlayerAction(bot.Id);
            var secondAction = FakeGameObjectProvider.GetStartAfterburnerPlayerAction(bot.Id);
            var thirdAction  = FakeGameObjectProvider.GetForwardPlayerAction(bot.Id);

            bot.PendingActions = new List <PlayerAction>
            {
                firstAction,
                secondAction,
                thirdAction
            };

            Assert.DoesNotThrow(() => engineService.SimulateTickForBots(WorldStateService.GetPlayerBots()));;
            Assert.DoesNotThrow(() => WorldStateService.ApplyAfterTickStateChanges());
            Assert.DoesNotThrow(() => engineService.SimulateTickForBots(WorldStateService.GetPlayerBots()));;
            Assert.DoesNotThrow(() => WorldStateService.ApplyAfterTickStateChanges());

            var activeEffect = WorldStateService.GetActiveEffectByType(bot.Id, Effects.Afterburner);

            Assert.AreEqual(59, bot.Size);
            Assert.AreEqual(8, bot.Speed);
            Assert.AreEqual(0, bot.Position.Y);
            Assert.AreEqual(12, bot.Position.X);

            Assert.DoesNotThrow(() => engineService.SimulateTickForBots(WorldStateService.GetPlayerBots()));
            Assert.DoesNotThrow(() => WorldStateService.ApplyAfterTickStateChanges());

            Assert.AreEqual(58, bot.Size);
            Assert.AreEqual(8, bot.Speed);
            Assert.AreEqual(0, bot.Position.Y);
            Assert.AreEqual(20, bot.Position.X);
        }
コード例 #2
0
        public void GivenBot_WithAfterburnerStarted_ThenStopAfterburnerAndNormalSpeedCorrect()
        {
            SetupFakeWorld(true, false);
            var food = FakeGameObjectProvider.GetFoodAt(new Position(60, 0));
            var id   = Guid.NewGuid();
            var bot  = new BotObject
            {
                Id             = id,
                Size           = 60,
                Position       = new Position(0, 0),
                Speed          = 4,
                GameObjectType = GameObjectType.Player,
                PendingActions = new List <PlayerAction>(),
                CurrentAction  = new PlayerAction
                {
                    Action   = PlayerActions.Stop,
                    Heading  = 0,
                    PlayerId = id
                },
                Score = 0
            };

            WorldStateService.AddBotObject(bot);

            var firstAction  = FakeGameObjectProvider.GetStartAfterburnerPlayerAction(bot.Id);
            var secondAction = FakeGameObjectProvider.GetForwardPlayerAction(bot.Id);

            bot.PendingActions = new List <PlayerAction>
            {
                firstAction,
                secondAction
            };

            Assert.DoesNotThrow(() => engineService.SimulateTickForBots(WorldStateService.GetPlayerBots()));;
            Assert.DoesNotThrow(() => WorldStateService.ApplyAfterTickStateChanges());
            Assert.DoesNotThrow(() => engineService.SimulateTickForBots(WorldStateService.GetPlayerBots()));;
            Assert.DoesNotThrow(() => WorldStateService.ApplyAfterTickStateChanges());

            Assert.AreEqual(59, bot.Size);
            Assert.AreEqual(8, bot.Speed);
            Assert.AreEqual(0, bot.Position.Y);
            Assert.AreEqual(8, bot.Position.X);
        }