Add wiki page: Architecture/Entities-And-Combat
@@ -0,0 +1,16 @@
|
|||||||
|
# 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]].
|
||||||
Reference in New Issue
Block a user