Entities & Combat
BaseMob (base_mob.py)
Classe unique pour joueur et ennemis. mob_type : FRIEND (0) / NEUTRAL (1) / ENEMY (2).
change_pv(pv_modifier) : positif = soin (plafonné à max_pv) ; négatif = dégâts, où protection réduit le montant encaissé (damage = pv_modifier + protection).
perform_attack(target) : boucle speed fois, s'arrête si la cible tombe à 0 PV en cours de route.
Roster (mobs_utils.py)
Trois mobs codés en dur : Yanaar, Ulnarain, Skroll. Voir Known-Issues pour le chevauchement de noms avec le GDD d'eliron-world-dungeons.
generate_random_mob_list(max_mobs) — tire un sous-ensemble aléatoire du roster.
generate_random_rooms(mobs_in_level, num_rooms) — répartit les mobs en pièces. Consomme la liste passée en argument via pop(0) (effet de bord, pas une lecture pure).
Level (level_one.py)
Construit mobs_in_level/rooms à l'instanciation, expose combat(mob, player) (l'ordre des attaques dépend de speed). Possède son propre bloc if __name__ == "__main__": avec une boucle de jeu quasi-dupliquée de celle d'app.py — voir Known-Issues.