public void GivenMovingBotCollidesWithDeadBot_WhenTick_ThenDeadBotIsRemovedFromWorld() { var deadBot = FakeGameObjectProvider.GetBotAtDefault(); var aliveBot = FakeGameObjectProvider.GetBigBotAt(new Position(19, 0)); var handler = collisionHandlerResolver.ResolveHandler(deadBot, aliveBot); var result = handler.ResolveCollision(deadBot, aliveBot); Assert.False(WorldStateService.GameObjectIsInWorldState(deadBot.Id)); Assert.True(WorldStateService.GameObjectIsInWorldState(aliveBot.Id)); }
public void GivenTwoBotsCollided_WhenTick_ThenSmallerBotIsRemovedFromWorld() { var bot1 = FakeGameObjectProvider.GetBotAt(new Position(0, 0)); var bot2 = FakeGameObjectProvider.GetBigBotAt(new Position(19, 0)); var handler = collisionHandlerResolver.ResolveHandler(bot2, bot1); var result = handler.ResolveCollision(bot2, bot1); Assert.False(WorldStateService.GameObjectIsInWorldState(bot1.Id)); Assert.True(WorldStateService.GameObjectIsInWorldState(bot2.Id)); Assert.AreEqual(EngineConfigFake.Value.ScoreRates[GameObjectType.Player], bot2.Score); }
public void GivenTwoBotsCollided_WhenTick_ThenProcessingStepsStopEarly() { var bot1 = FakeGameObjectProvider.GetBotWithActions(); var bot2 = FakeGameObjectProvider.GetBigBotAt(new Position(0, 15)); bot1.IsMoving = true; bot2.IsMoving = true; Assert.DoesNotThrow(() => tickProcessingService.SimulateTick()); Assert.False(WorldStateService.GameObjectIsInWorldState(bot1.Id)); Assert.True(WorldStateService.GameObjectIsInWorldState(bot2.Id)); }
public void GivenBotCollidedWithFood_WhenTick_ThenFoodRemovedFromWorld() { var food = FakeGameObjectProvider.GetFoodAt(new Position(0, 0)); var bot = FakeGameObjectProvider.GetBotAt(new Position(8, 0)); var originalSpeed = bot.Speed; var handler = collisionHandlerResolver.ResolveHandler(food, bot); var result = handler.ResolveCollision(food, bot); Assert.False(WorldStateService.GameObjectIsInWorldState(food.Id)); Assert.True(WorldStateService.GameObjectIsInWorldState(bot.Id)); Assert.AreEqual(EngineConfigFake.Value.ScoreRates[GameObjectType.Food], bot.Score); }
public void GivenDeadBot_WithAfterburnerStarted_ThenRemoveFromWorldWhenSizeLessThan5() { SetupFakeWorld(); var bot = FakeGameObjectProvider.GetBotAtDefault(); var firstAction = FakeGameObjectProvider.GetStartAfterburnerPlayerAction(bot.Id); bot.PendingActions = new List <PlayerAction> { firstAction }; for (var j = 0; j < 6; j++) { Assert.DoesNotThrow(() => actionService.ApplyActionToBot(bot)); Assert.DoesNotThrow(() => WorldStateService.ApplyAfterTickStateChanges()); } Assert.AreEqual(4, bot.Size); Assert.False(WorldStateService.GameObjectIsInWorldState(bot.Id)); }