diff --git a/dungeonbattle/display/mapdisplay.py b/dungeonbattle/display/mapdisplay.py index aa40039..36cd616 100644 --- a/dungeonbattle/display/mapdisplay.py +++ b/dungeonbattle/display/mapdisplay.py @@ -1,11 +1,9 @@ #!/usr/bin/env python -from dungeonbattle.entities.player import Player from dungeonbattle.interfaces import Map from .display import Display class MapDisplay(Display): - player: Player def __init__(self, *args): super().__init__(*args) diff --git a/dungeonbattle/game.py b/dungeonbattle/game.py index 9c3155e..dcd6a59 100644 --- a/dungeonbattle/game.py +++ b/dungeonbattle/game.py @@ -18,6 +18,7 @@ class Game: """ map: Map player: Player + # display_actions is a display interface set by the bootstrapper display_actions: Callable[[DisplayActions], None] def __init__(self) -> None: @@ -101,6 +102,10 @@ class Game: if key == KeyValues.ENTER: option = self.main_menu.validate() if option == menus.MainMenuValues.START: + self.new_game() + self.display_actions(DisplayActions.UPDATE) + self.state = GameMode.PLAY + if option == menus.MainMenuValues.RESUME: self.state = GameMode.PLAY elif option == menus.MainMenuValues.SAVE: self.save_game() diff --git a/dungeonbattle/menus.py b/dungeonbattle/menus.py index a674341..cd7604a 100644 --- a/dungeonbattle/menus.py +++ b/dungeonbattle/menus.py @@ -38,7 +38,8 @@ class MainMenuValues(Enum): """ Values of the main menu """ - START = 'Jouer' + START = 'Nouvelle partie' + RESUME = 'Continuer' SAVE = 'Sauvegarder' LOAD = 'Charger' SETTINGS = 'Paramètres' diff --git a/dungeonbattle/tests/game_test.py b/dungeonbattle/tests/game_test.py index 6784dd2..8e7970d 100644 --- a/dungeonbattle/tests/game_test.py +++ b/dungeonbattle/tests/game_test.py @@ -26,6 +26,7 @@ class TestGame(unittest.TestCase): """ old_state = self.game.save_state() + self.game.handle_key_pressed(KeyValues.DOWN) self.game.handle_key_pressed(KeyValues.DOWN) self.assertEqual(self.game.main_menu.validate(), MainMenuValues.SAVE) self.game.handle_key_pressed(KeyValues.ENTER) # Save game @@ -94,6 +95,9 @@ class TestGame(unittest.TestCase): self.assertEqual(self.game.main_menu.validate(), MainMenuValues.START) self.game.handle_key_pressed(KeyValues.DOWN) + self.assertEqual(self.game.main_menu.validate(), + MainMenuValues.RESUME) + self.game.handle_key_pressed(KeyValues.DOWN) self.assertEqual(self.game.main_menu.validate(), MainMenuValues.SAVE) self.game.handle_key_pressed(KeyValues.DOWN) @@ -124,6 +128,9 @@ class TestGame(unittest.TestCase): self.assertEqual(self.game.main_menu.validate(), MainMenuValues.SAVE) self.game.handle_key_pressed(KeyValues.UP) + self.assertEqual(self.game.main_menu.validate(), + MainMenuValues.RESUME) + self.game.handle_key_pressed(KeyValues.UP) self.assertEqual(self.game.main_menu.validate(), MainMenuValues.START) @@ -162,6 +169,29 @@ class TestGame(unittest.TestCase): self.game.handle_key_pressed(KeyValues.SPACE) self.assertEqual(self.game.state, GameMode.MAINMENU) + def test_new_game(self) -> None: + """ + Ensure that the start button starts a new game. + """ + old_map = self.game.map + old_player = self.game.player + self.game.handle_key_pressed(KeyValues.ENTER) # Start new game + new_map = self.game.map + new_player = self.game.player + # Ensure that + self.assertNotEqual(old_map, new_map) + self.assertNotEqual(old_player, new_player) + + self.game.handle_key_pressed(KeyValues.SPACE) + old_map = new_map + old_player = new_player + self.game.handle_key_pressed(KeyValues.DOWN) + self.game.handle_key_pressed(KeyValues.ENTER) # Resume game + new_map = self.game.map + new_player = self.game.player + self.assertEqual(old_map, new_map) + self.assertEqual(old_player, new_player) + def test_settings_menu(self) -> None: """ Ensure that the settings menu is working properly. @@ -172,6 +202,7 @@ class TestGame(unittest.TestCase): self.game.handle_key_pressed(KeyValues.DOWN) self.game.handle_key_pressed(KeyValues.DOWN) self.game.handle_key_pressed(KeyValues.DOWN) + self.game.handle_key_pressed(KeyValues.DOWN) self.game.handle_key_pressed(KeyValues.ENTER) self.assertEqual(self.game.state, GameMode.SETTINGS)