Cover settings

This commit is contained in:
Yohann D'ANELLO 2020-11-11 22:45:15 +01:00
parent 0c17e74d6a
commit caef8dc9b2
3 changed files with 40 additions and 5 deletions

View File

@ -1,5 +1,5 @@
from random import randint from random import randint
from typing import Any from typing import Any, Optional
from .entities.player import Player from .entities.player import Player
from .enums import GameMode, KeyValues from .enums import GameMode, KeyValues
@ -56,7 +56,8 @@ class Game:
self.handle_key_pressed( self.handle_key_pressed(
*KeyValues.translate_key(key, self.settings)) *KeyValues.translate_key(key, self.settings))
def handle_key_pressed(self, key: KeyValues, raw_key: str = '') -> None: def handle_key_pressed(self, key: Optional[KeyValues], raw_key: str = '')\
-> None:
""" """
Indicates what should be done when the given key is pressed, Indicates what should be done when the given key is pressed,
according to the current game state. according to the current game state.

View File

@ -1,6 +1,6 @@
import sys import sys
from enum import Enum from enum import Enum
from typing import Any from typing import Any, Optional
from .enums import GameMode, KeyValues from .enums import GameMode, KeyValues
from .settings import Settings from .settings import Settings
@ -59,8 +59,8 @@ class SettingsMenu(Menu):
s = settings.dumps_to_string() s = settings.dumps_to_string()
self.values = s[6:-2].replace("\"", "").split(",\n ") self.values = s[6:-2].replace("\"", "").split(",\n ")
def handle_key_pressed(self, key: KeyValues, raw_key: str, game: Any) \ def handle_key_pressed(self, key: Optional[KeyValues], raw_key: str,
-> None: game: Any) -> None:
""" """
For now, in the settings mode, we can only go backwards. For now, in the settings mode, we can only go backwards.
""" """

View File

@ -138,6 +138,40 @@ class TestGame(unittest.TestCase):
self.game.handle_key_pressed(KeyValues.SPACE) self.game.handle_key_pressed(KeyValues.SPACE)
self.assertEqual(self.game.state, GameMode.MAINMENU) self.assertEqual(self.game.state, GameMode.MAINMENU)
def test_settings_menu(self) -> None:
"""
Ensure that the settings menu is working properly.
"""
self.game.settings = Settings()
# Open settings menu
self.game.handle_key_pressed(KeyValues.DOWN)
self.game.handle_key_pressed(KeyValues.ENTER)
self.assertEqual(self.game.state, GameMode.SETTINGS)
# Define the "move up" key to 'w'
self.assertFalse(self.game.settings_menu.waiting_for_key)
self.game.handle_key_pressed(KeyValues.ENTER)
self.assertTrue(self.game.settings_menu.waiting_for_key)
self.game.handle_key_pressed(None, 'w')
self.assertFalse(self.game.settings_menu.waiting_for_key)
self.assertEqual(self.game.settings.KEY_UP_PRIMARY, 'w')
# Navigate to "move left"
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.UP)
self.game.handle_key_pressed(KeyValues.DOWN)
self.game.handle_key_pressed(KeyValues.DOWN)
# Define the "move up" key to 'a'
self.game.handle_key_pressed(KeyValues.ENTER)
self.assertTrue(self.game.settings_menu.waiting_for_key)
self.game.handle_key_pressed(None, 'a')
self.assertFalse(self.game.settings_menu.waiting_for_key)
self.assertEqual(self.game.settings.KEY_LEFT_PRIMARY, 'a')
def test_dead_screen(self) -> None: def test_dead_screen(self) -> None:
""" """
Kill player and render dead screen. Kill player and render dead screen.