diff --git a/dungeonbattle/display/texturepack.py b/dungeonbattle/display/texturepack.py index fc17ead..0ae8f56 100644 --- a/dungeonbattle/display/texturepack.py +++ b/dungeonbattle/display/texturepack.py @@ -31,6 +31,10 @@ class TexturePack: def get_pack(cls, name: str) -> "TexturePack": return cls._packs[name.lower()] + @classmethod + def get_next_pack_name(cls, name: str) -> str: + return "squirrel" if name == "ascii" else "ascii" + TexturePack.ASCII_PACK = TexturePack( name="ascii", diff --git a/dungeonbattle/menus.py b/dungeonbattle/menus.py index 1f741d7..1f8d51b 100644 --- a/dungeonbattle/menus.py +++ b/dungeonbattle/menus.py @@ -2,6 +2,7 @@ import sys from enum import Enum from typing import Any, Optional +from .display.texturepack import TexturePack from .enums import GameMode, KeyValues from .settings import Settings @@ -61,10 +62,14 @@ class SettingsMenu(Menu): s = settings.get_comment(key) s += " : " if self.waiting_for_key and i == self.position: - s += "? " + s += "?" else: s += getattr(settings, key).replace("\n", "\\n") + s += 8 * " " # Write over old text self.values.append(s) + self.values.append("") + self.values.append("Changer le pack de textures n'aura effet") + self.values.append("qu'après avoir relancé le jeu.") def handle_key_pressed(self, key: Optional[KeyValues], raw_key: str, game: Any) -> None: @@ -78,9 +83,15 @@ class SettingsMenu(Menu): self.go_down() if key == KeyValues.UP: self.go_up() - if key == KeyValues.ENTER: + if key == KeyValues.ENTER and self.position < len(self.values) - 3: option = list(game.settings.settings_keys)[self.position] - if option != "TEXTURE_PACK": + if option == "TEXTURE_PACK": + game.settings.TEXTURE_PACK = \ + TexturePack.get_next_pack_name( + game.settings.TEXTURE_PACK) + game.settings.write_settings() + self.update_values(game.settings) + else: self.waiting_for_key = True self.update_values(game.settings) else: