diff --git a/src/elironwars/app.py b/src/elironwars/app.py index 1dc5092..8207adf 100644 --- a/src/elironwars/app.py +++ b/src/elironwars/app.py @@ -2,8 +2,9 @@ import logging import os import sys +from .console import UI from .level import Level -from .menu import Action, action_menu +from .menu import Action from .mob import BaseMob, load_character logger = logging.getLogger(__name__) @@ -12,22 +13,23 @@ logger = logging.getLogger(__name__) def play_room(room: list[BaseMob], level: Level) -> int: if room is None: logger.info('Empty room') - print("\n ------ Pièce vide ------ \n") + UI.empty_room() return 1 for mob in room: logger.info('Meet mob %s', mob.name) - print(f"Un {mob.name} est devant toi !") - match action_menu([Action.COMBAT, Action.FUIR]): + UI.meet_mob(mob) + match UI.action_menu([Action.COMBAT, Action.FUIR]): case Action.COMBAT: - level.combat(mob, level.player) + pvs = level.combat(mob, level.player) + UI.fight_pvs(level.player, mob, pvs) if level.player.current_pv <= 0: - print("!!!!!!!!! Joueur mort !!!!!!!!!!") + UI.player_dead() sys.exit(0) if mob.current_pv == 0: - print(f"Le {mob.name} est mort !!") + UI.mob_dead(mob) case Action.FUIR: - print("Tu fuis la pièce") + UI.run_away() return 0 return 1 @@ -35,12 +37,12 @@ def play_room(room: list[BaseMob], level: Level) -> int: def play_donjon(level: Level) -> None: while level.exit_level: - print(f"Pièce actuelle : {level.current_room_index}") - match action_menu([Action.PIECE_SUIVANTE, Action.QUITTER]): + UI.entering_room(level.current_room_index) + match UI.action_menu([Action.PIECE_SUIVANTE, Action.QUITTER]): case Action.PIECE_SUIVANTE: if level.current_room_index >= len(level.rooms): logger.info('Exiting last room') - print("fin du donjon !") + UI.last_room() break logger.info('Entering next room') level.current_room_index += play_room(level.rooms[level.current_room_index], level) @@ -48,7 +50,7 @@ def play_donjon(level: Level) -> None: case Action.QUITTER: level.exit_level = False logger.info('Leaving game') - print(f"Au revoir {level.player.name} !") + UI.leave(level.player) def app() -> None: @@ -60,7 +62,7 @@ def app() -> None: if not loaded_character: sys.exit(-1) - print(loaded_character) + UI.select_player(loaded_character) # Créer des instances de BaseMob yanaar = BaseMob("Yanaar", 15, 2, 1, 3, 2) @@ -71,7 +73,7 @@ def app() -> None: mobs_list = [yanaar, skroll, ulnarain] level = Level(2, loaded_character, mobs_list) - print(f"Nombre de pièce dans le donjon : {len(level.rooms)}") + UI.entering_donjon(level) play_donjon(level) diff --git a/src/elironwars/level.py b/src/elironwars/level.py index 0557835..7fc4d68 100644 --- a/src/elironwars/level.py +++ b/src/elironwars/level.py @@ -20,6 +20,7 @@ class Level: logger.debug("Level Loaded") def combat(self, mob, player): + pvs = [] while mob.current_pv > 0 and player.current_pv > 0: if mob.speed > player.speed: mob.perform_attack(player) @@ -27,5 +28,8 @@ class Level: else: player.perform_attack(mob) mob.perform_attack(player) - print(f"{player.name} - {player.current_pv} PV") - print(f"{mob.name} - {mob.current_pv} PV") + pvs.append({ + 'player': player.current_pv, + 'mob': mob.current_pv + }) + return pvs