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