diff --git a/src/elironwars/app.py b/src/elironwars/app.py index cd22f2a..863dbe8 100644 --- a/src/elironwars/app.py +++ b/src/elironwars/app.py @@ -2,14 +2,17 @@ import argparse import logging import os import sys +from typing import Any -from .console import UI +from .entrypoints import Entrypoints from .level import Level from .menu import Action from .mob import BaseMob, load_character logger = logging.getLogger(__name__) +# FIXME replace this global declaration +UI: Any = None def play_room(room: list[BaseMob], level: Level) -> int: if room is None: @@ -55,12 +58,14 @@ def play_donjon(level: Level) -> None: def app() -> None: + entrypoints = Entrypoints() + parser = argparse.ArgumentParser( prog='elironwars', description='elironwars CLI', ) parser.add_argument('--player', default='Jamin') - parser.add_argument('--ui', default='cli') + parser.add_argument('--ui', default='console', choices=entrypoints.ui.names) parser.add_argument('--log-level', default='ERROR') args = parser.parse_args() @@ -72,6 +77,7 @@ def app() -> None: if not loaded_character: sys.exit(-1) + UI = entrypoints.load_ui(args.ui) UI.select_player(loaded_character) # Créer des instances de BaseMob