public void GameState_AllCreaturesShouldMove_AfterDeactivatedDialogue() { var levels = new List <Level> { new Level("PCB \r\nTTTL\r\nS CL\r\nTTTT", 0) }; var gameState = new GameState(levels); gameState.BeginAct(); gameState.EndAct(); gameState.IsDialogueActivated.Should().BeTrue(); var dialogue = gameState.CurrentDialogue; var answers = dialogue.GetAnswers().ToList(); for (int i = 0; i < answers.Count; i++) { if (dialogue.IsCorrectAnswer(i)) { gameState.SetKeyPressed((Keys)(i + 49)); break; } } gameState.BeginAct(); gameState.EndAct(); gameState.IsDialogueActivated.Should().BeFalse(); }
public void GameState_PlayerShouldPutPythonInCell_AfterTakeBeer() { var levels = new List <Level> { new Level("PB \r\nTTT", 0) }; var gameState = new GameState(levels); gameState.SetKeyPressed(Keys.R); gameState.BeginAct(); gameState.EndAct(); gameState.CurrentLevel.GetCreatures(0, 0).Any(x => x is Python).Should().BeFalse(); gameState.SetKeyPressed(Keys.Right); gameState.BeginAct(); gameState.EndAct(); gameState.SetKeyPressed(Keys.R); gameState.BeginAct(); gameState.EndAct(); gameState.CurrentLevel.GetCreatures(1, 0).Any(x => x is Python).Should().BeTrue(); }
public void GameState_NotShouldGoNextLevel_AfterTakeLastBeer() { var levelOne = new Level("PB \r\nTTT", 0); var levelTwo = new Level("P \r\nTTT", 0); var levels = new List <Level> { levelOne, levelTwo }; var gameState = new GameState(levels); gameState.IndexCurrentLevel.Should().Be(0); gameState.SetKeyPressed(Keys.Right); gameState.BeginAct(); gameState.EndAct(); gameState.IndexCurrentLevel.Should().Be(0); }
public void GameState_ShouldFinishGame_WhenLevelsExpire() { var levelOne = new Level("PD \r\nTTT", 0); var levelTwo = new Level("PD \r\nTTT", 0); var levels = new List <Level> { levelOne, levelTwo }; var gameState = new GameState(levels); for (int i = 0; i < 2; i++) { gameState.SetKeyPressed(Keys.Right); gameState.BeginAct(); gameState.EndAct(); } gameState.IsGameOver.Should().BeTrue(); }
public void GameState_PlayerShouldMoveCorrect(Keys[] keys, int finishX, int finishY) { var levelOne = new Level("P \r\nTTL\r\nB L\r\nTTT", 0); var levelTwo = new Level("P B \r\nTTTTL\r\n L\r\nC S L\r\nTTTTT", 0); var levels = new List <Level> { levelOne, levelTwo }; var gameState = new GameState(levels); foreach (var key in keys) { gameState.SetKeyPressed(key); gameState.BeginAct(); gameState.EndAct(); } var location = gameState.Actions.Where(x => x.Creature is Player).First().TargetLogicalLocation; location.X.Should().Be(finishX); location.Y.Should().Be(finishY); }