49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
import random
|
|
from 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):
|
|
"""
|
|
Génère une liste aléatoire de mobs à partir de la liste des instances disponibles.
|
|
|
|
: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)]
|
|
return selected_mobs
|
|
|
|
|
|
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.
|
|
"""
|
|
rooms = []
|
|
|
|
for _ in range(num_rooms):
|
|
if len(mobs_in_level) > 0:
|
|
# Si des mobs sont disponibles, ajouter le premier mob à la pièce
|
|
new_room = []
|
|
for x in range(random.randint(1, len(mobs_in_level))):
|
|
new_room.append(mobs_in_level.pop(0))
|
|
rooms.append(new_room)
|
|
else:
|
|
# Ajouter une pièce vide si aucun mob n'est disponible
|
|
rooms.append(None)
|
|
|
|
return rooms |