🚧 wip refactoring mob

This commit is contained in:
2026-07-17 21:13:12 +02:00
parent 1c26070798
commit 73b918f2f1
3 changed files with 22 additions and 26 deletions
+11 -3
View File
@@ -1,9 +1,9 @@
import sys
from elironwars.mob.base_mob import BaseMob
from elironwars.mob.character_builder import CharacterBuilder
from .level import Level
from .menu import Action, action_menu
from .mob.base_mob import BaseMob
from .mob.character_builder import CharacterBuilder
def play_room(room: list[BaseMob], level: Level) -> int:
@@ -50,7 +50,15 @@ def app() -> None:
print(loaded_character)
level = Level(2, loaded_character)
# Créer des instances de BaseMob
yanaar = BaseMob("Yanaar", 15, 2, 1, 3, 2)
ulnarain = BaseMob("Ulnarain", 20, 3, 3, 2, 2)
skroll = BaseMob("Skroll", 25, 5, 3, 1, 2)
# Liste d'instances de BaseMob (au lieu d'un ensemble pour autoriser des doublons)
mobs_list = [yanaar, skroll, ulnarain]
level = Level(2, loaded_character, mobs_list)
print(f"Nombre de pièce dans le donjon : {len(level.rooms)}")
play_donjon(level)
+2 -5
View File
@@ -1,16 +1,13 @@
""" Class Level """
import random
from .mobs_utils import generate_random_mob_list, generate_random_rooms
class Level:
""" Class Level """
def __init__(self, difficulty, player):
def __init__(self, difficulty, player, mob_list):
""" Chargement du niveau """
print("Loading Level")
self.mobs_in_level = generate_random_mob_list(random.randint(2, difficulty))
self.mobs_in_level = generate_random_mob_list(mob_list, difficulty)
self.exit_level = True
self.player = player
self.rooms = generate_random_rooms(self.mobs_in_level, difficulty) # Liste des pièces du niveau
+9 -18
View File
@@ -1,28 +1,19 @@
import random
from elironwars.mob.base_mob import BaseMob
# Créer des instances de BaseMob
yanaar = BaseMob("Yanaar", 15, 2, 1, 3, 2)
ulnarain = BaseMob("Ulnarain", 20, 3, 3, 2, 2)
skroll = BaseMob("Skroll", 25, 5, 3, 1, 2)
# Liste d'instances de BaseMob (au lieu d'un ensemble pour autoriser des doublons)
mobs_list = [yanaar, skroll, ulnarain]
def generate_random_mob_list(max_mobs):
def generate_random_mob_list(mob_list, max_mobs):
"""
Génère une liste aléatoire de mobs à partir de la liste des instances disponibles.
Génère une liste aléatoire de mobs à partir de la liste fournie.
:param max_mobs: Le nombre maximum de mobs dans la liste générée.
:return: Une liste de mobs sélectionnés aléatoirement.
:param mob_list: Liste de mob a choisir aleatoirement.
:param max_mobs: Le nombre maximum de mobs dans la liste générée.
:return: Une liste de mobs sélectionnés aléatoirement.
"""
if max_mobs <= 0:
return []
num_mobs = random.randint(2, max_mobs)
selected_mobs = [random.choice(mobs_list) for _ in range(num_mobs)]
selected_mobs = [random.choice(mob_list) for _ in range(num_mobs)]
return selected_mobs
@@ -30,9 +21,9 @@ def generate_random_rooms(mobs_in_level, num_rooms):
"""
Génère un nombre spécifié de pièces et y distribue les mobs disponibles.
:param mobs_in_level: Liste des mobs disponibles pour le niveau.
:param num_rooms: Nombre total de pièces à générer.
:return: Une liste de pièces, chaque pièce contenant un ou plusieurs mobs, ou étant vide si aucun mob n'est disponible.
:param mobs_in_level: Liste des mobs disponibles pour le niveau.
:param num_rooms: Nombre total de pièces à générer.
:return: Une liste de pièces, chaque pièce contenant un ou plusieurs mobs, ou étant vide si aucun mob n'est disponible.
"""
rooms = []