public void PredictableMonster_GoThroughWalls_MonsterCantGoThroughWalls(string testMap) { Game.CreateMap(testMap); var gameState = new GameState(); var timer = Stopwatch.StartNew(); var testTime = MonsterThinkingTime * 2 + TimeGap; while (timer.Elapsed <= TimeSpan.FromSeconds(testTime)) { gameState.BeginAct(); gameState.EndAct(); } Game.Map[1, 1].Length.Should().Be(1); Game.Map[1, 1].First().Should().BeAssignableTo <PredictableRobot>(); }
public void BreakableWall_ConflictedObjectFire_BreakableWallBroke() { var testMap = @" #### #W # ####"; Game.CreateMap(testMap); Game.Map[2, 1] = new ICreature[] { new Fire(1, Direction.Left) }; var gameState = new GameState(); gameState.BeginAct(); gameState.EndAct(); Game.Map[1, 1].Should().BeEmpty(); }
public void Player_GetImageFileNameTurnedPlayer_CorrectImageName() { var testMap = @" #### # P# ####"; Game.CreateMap(testMap); var gameState = new GameState(); Game.KeyPressed = Keys.Left; gameState.BeginAct(); gameState.EndAct(); Game.Map[1, 1].First().GetImageFileName().Should().Be("running-left.png"); }
public void Fire_ConflictedObjectUnbreakableWall_FireDied() { var testMap = @" #### # # ####"; Game.CreateMap(testMap); Game.Map[2, 1] = new ICreature[] { new Fire(1, Direction.Right) }; var gameState = new GameState(); gameState.BeginAct(); gameState.EndAct(); Game.Map[2, 2].Length.Should().Be(1); Game.Map[2, 2].Should().ContainItemsAssignableTo <UnbreakableWall>(); }
public void Fire_FireFlyByDirection_FlyCorrectly(string testMap, int x, int y, Direction direction, int expX, int expY) { Game.CreateMap(testMap); Game.Map[x, y] = new ICreature[] { new Fire(1, direction) }; var gameState = new GameState(); var timer = Stopwatch.StartNew(); var testTime = TimeGap; while (timer.Elapsed <= TimeSpan.FromSeconds(testTime)) { gameState.BeginAct(); gameState.EndAct(); } Game.Map[expX, expY].Length.Should().Be(1); Game.Map[expX, expY].Should().ContainItemsAssignableTo <Fire>(); }
public void PredictableMonster_MonsterCanMove_MonsterPredictablyMoved(string testMap, int xWas, int yWas, int x, int y) { Game.CreateMap(testMap); var gameState = new GameState(); var timer = Stopwatch.StartNew(); var testTime = MonsterThinkingTime + TimeGap; while (timer.Elapsed <= TimeSpan.FromSeconds(testTime)) { gameState.BeginAct(); gameState.EndAct(); } Game.Map[xWas, yWas].Should().BeEmpty(); Game.Map[x, y].Length.Should().Be(1); Game.Map[x, y].First().Should().BeAssignableTo <PredictableRobot>(); }
public void Player_SetBomb_BombAndPlayerInTheSameCell() { var testMap = @" ###### # P # ######"; Game.CreateMap(testMap); var gameState = new GameState(); Game.KeyPressed = Keys.Space; gameState.BeginAct(); gameState.EndAct(); Game.Map[3, 1].Length.Should().Be(2); Game.Map[3, 1].Select(n => n.GetType().Name).Should().Contain("Bomb"); Game.Map[3, 1].Select(n => n.GetType().Name).Should().Contain("Player"); }
public void Fire_NowhereFly_FireDisappear() { var testMap = @" ### # # ###"; Game.CreateMap(testMap); Game.Map[1, 1] = new ICreature[] { new Fire(1, Direction.Down) }; var gameState = new GameState(); var timer = Stopwatch.StartNew(); var testTime = TimeGap; while (timer.Elapsed <= TimeSpan.FromSeconds(testTime)) { gameState.BeginAct(); gameState.EndAct(); } Game.Map[1, 1].Should().BeEmpty(); }
public void Player_TestPlayerMoves(IEnumerable <Keys> keys, int expX, int expY) { var testMap = @" ########## # # # P # # # ##########"; Game.CreateMap(testMap); var gameState = new GameState(); foreach (var key in keys) { Game.KeyPressed = key; gameState.BeginAct(); gameState.EndAct(); } Game.Map[expX, expY].Length.Should().Be(1); Game.Map[expX, expY].First().Should().BeAssignableTo <Player>(); }
public void Player_ConflictedObjectsMonster_PlayerDied() { var testMap = @" ###### #MP # ######"; Game.CreateMap(testMap); var gameState = new GameState(); var timer = Stopwatch.StartNew(); var testTime = TimeGap + MonsterThinkingTime; while (timer.Elapsed <= TimeSpan.FromSeconds(testTime)) { gameState.BeginAct(); gameState.EndAct(); } Game.Map[2, 1].Length.Should().Be(1); Game.Map[2, 1].Select(c => c.GetType().Name).Should().NotContain("Player"); Game.Map[2, 1].Should().ContainItemsAssignableTo <PredictableRobot>(); }
public void PredictableMonster_ConflictedObjectFire_MonsterDied() { var testMap = @" ##### # M # #####"; Game.CreateMap(testMap); Game.Map[1, 1] = new ICreature[] { new Fire(1, Direction.Right) }; var gameState = new GameState(); var timer = Stopwatch.StartNew(); var testTime = TimeGap; while (timer.Elapsed <= TimeSpan.FromSeconds(testTime)) { gameState.BeginAct(); gameState.EndAct(); } Game.Map[1, 1].Should().BeEmpty(); Game.Map[2, 1].Should().BeEmpty(); Game.Map[3, 1].Should().BeEmpty(); }
public void Player_CantWalkThroughWalls(IEnumerable <Keys> keys, int expX, int expY, int expWallX, int expWallY, Type wallType) { var testMap = @" ##### #P W# #####"; Game.CreateMap(testMap); var gameState = new GameState(); foreach (var key in keys) { Game.KeyPressed = key; gameState.BeginAct(); gameState.EndAct(); } Game.Map[expWallX, expWallY].Length.Should().Be(1); Game.Map[expX, expY].Length.Should().Be(1); Game.Map[expX, expY].First().Should().BeAssignableTo <Player>(); Game.Map[expWallX, expWallY].First().Should().BeAssignableTo(wallType); }
public void Player_PlayerStayOnBomb_PlayerDied() { var testMap = @" ##### # P # #####"; Game.CreateMap(testMap); var gameState = new GameState(); var timer = Stopwatch.StartNew(); var testTime = TimeGap + SecondsBeforeExplosion; Game.KeyPressed = Keys.Space; while (timer.Elapsed <= TimeSpan.FromSeconds(testTime)) { gameState.BeginAct(); gameState.EndAct(); } Game.Map[2, 1].Length.Should().Be(4); Game.Map[2, 1].Should().ContainItemsAssignableTo <Fire>(); Game.Map[2, 1].Should().NotContain(new Player()); }
public void Player_ConflictedObjectFire_PlayerDied() { var testMap = @" ##### # P # #####"; Game.CreateMap(testMap); var player = new Player(); Game.Map[3, 1] = new ICreature[] { new Fire(1, Direction.Left) }; var gameState = new GameState(); var timer = Stopwatch.StartNew(); var testTime = TimeGap; while (timer.Elapsed <= TimeSpan.FromSeconds(testTime)) { gameState.BeginAct(); gameState.EndAct(); } Game.Map[2, 1].Should().BeEmpty(); Game.Map[2, 1].Should().NotContain(player); }
public void Player_TryOverstepBombsLimit_TryFail() { var testMap = @" ###### # P # ######"; Game.CreateMap(testMap); var gameState = new GameState(); var keys = new[] { Keys.Space, Keys.Left, Keys.Space }; foreach (var key in keys) { Game.KeyPressed = key; gameState.BeginAct(); gameState.EndAct(); } Game.Map[3, 1].Length.Should().Be(1); Game.Map[3, 1].First().Should().BeAssignableTo <Bomb>(); Game.Map[2, 1].Length.Should().NotBe(2); Game.Map[2, 1].Should().ContainItemsAssignableTo <Player>(); }