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); }
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); }