Files
elironwars-python/level_one.py
T
Benjamin Baudouin 0b081682c5 init
2026-05-13 21:18:37 +02:00

72 lines
2.4 KiB
Python

""" 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")