1
Architecture/Entities-And-Combat
george-claude edited this page 2026-07-12 09:42:39 +01:00

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.