""" Class Level """ import random import mobs_utils from character_builder import CharacterBuilder class Level(): """ Class Level """ def __init__(self, difficulty, player): """ Chargement du niveau """ print("Loading Level") self.mobs_in_level = mobs_utils.generate_random_mob_list( random.randint(2, difficulty)) self.exit_level = True self.player = player self.rooms = mobs_utils.generate_random_rooms( self.mobs_in_level, difficulty) # Liste des pièces du niveau self.current_room_index = 0 # Index de la pièce actuelle print("Level Loaded") def combat(self, mob, player): while (mob.current_pv > 0 and player.current_pv > 0): if mob.speed > player.speed: mob.perform_attack(player) player.perform_attack(mob) 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") def action_menu(): """ Menu Action du niveau """ print("Pièce Suivante :\t1") print("Quitter :\t\t4") return int(input("Choix : ")) # Exemple d'utilisation if __name__ == "__main__": level = Level(2, CharacterBuilder.load_character("Jamin")) player = level.player rooms = level.rooms number_room = len(rooms) print(f"Nombre de pièce dans le donjon : {number_room}") while level.exit_level: match action_menu(): case 1: if level.current_room_index >= number_room: print("fin du donjon !") break room = rooms[level.current_room_index] print(f"Pièce actuelle : {level.current_room_index}") if room: for mob in room: level.combat(mob, player) if player.current_pv <= 0: print("!!!!!!!!! Joueur mort !!!!!!!!!!") break else: print("Pièce vide") player.current_pv = player.max_pv level.current_room_index += 1 case 4: level.exit_level = False print(f"Au revoir {player.name} !") case _: print("Mauvais choix")