feat(conditions): add bleeding and confused rules
This commit is contained in:
@@ -636,7 +636,7 @@ Règles modélisées :
|
||||
- Invocation : les créatures invoquées agissent (calées sur la case d'initiative de
|
||||
leur conjurateur via `_build_round_order`) puis expirent après leur `summon_duration`
|
||||
(`_expire_summons` décrémente puis retire).
|
||||
- Conditions effectives : 26 conditions prédéfinies (`conditions.py`). Leurs drapeaux
|
||||
- Conditions effectives : 28 conditions prédéfinies (`conditions.py`). Leurs drapeaux
|
||||
comportementaux sont appliqués par le moteur : `cant_act` (étourdi, paralysé, dazed,
|
||||
endormi, inerme, fasciné) annule le tour ; `cant_attack` (nauséeux) n'autorise qu'une unique action
|
||||
simple et bloque toute attaque / manœuvre ; `staggered` restreint à une action
|
||||
@@ -650,6 +650,20 @@ Règles modélisées :
|
||||
contre lui (voir « Cible inerme »). Fasciné (`fascinated`) : ne peut pas agir.
|
||||
Invisible (`invisible`) : concealment total subi +2 attaquant / perte de Dex
|
||||
de la cible (voir « Attaquant invisible »).
|
||||
Saignement (`bleeding`, V5b) : une créature qui saigne subit `bleed_damage`
|
||||
points de dégâts au **début de son tour** (avant politique et flags) ; tout
|
||||
effet restaurant des points de vie (sort de soin, channel energy) stoppe le
|
||||
saignement (`bleed_damage = 0`) et retire la condition. Simplification
|
||||
documentée : le jet de compétence Soin DD 15 n'est pas modélisé (le moteur
|
||||
n'a pas d'action Soin).
|
||||
Confus (`confused`, V5b) : au début de chaque tour, jet d% — 01-25 agit
|
||||
normalement (le tour se poursuit) ; 26-50 bave incohéremment (tour perdu) ;
|
||||
51-75 se inflige 1d8 + modificateur de Force avec l'objet tenu ; 76-100
|
||||
attaque d'une seule attaque de mêlée la créature la plus proche (allié OU
|
||||
ennemi, une seule si en allonge ; sinon le tour est perdu, journalisé).
|
||||
Simplification documentée : la clause « si elle est blessée, riposte
|
||||
l'agresseur » est réduite à « attaque la créature la plus proche » ; le coup
|
||||
de grâce n'est pas modélisé.
|
||||
- Manœuvres de combat : trip, disarm, bull_rush, sunder, grapple, escape,
|
||||
overrun, dirty trick, steal, reposition et drag sont modélisées, chacune
|
||||
comme une tentative unique (1d20 + CMB contre CMD) :
|
||||
@@ -753,7 +767,9 @@ Règles modélisées :
|
||||
début de son tour s'il est inutilisé), aid_ac_bonus (int — bonus d'aide
|
||||
autrui (+2 par aide réussie, cumulatif) ajouté à sa CA, expiré au début de
|
||||
son tour), running (bool — course en cours jusqu'au prochain tour du
|
||||
combattant : il perd son bonus de Dextérité à la CA).
|
||||
combattant : il perd son bonus de Dextérité à la CA), bleed_damage (int —
|
||||
dégâts de saignement subis au début du tour du combattant, 0 = ne saigne
|
||||
pas ; V5b ; `bleeding`/`confused` sont visibles via `conditions`).
|
||||
- Par paire combattant actif × cible : target_index, distance_ft, weapon_for,
|
||||
range_penalty, can_charge, can_step5_to_attack, has_line_of_effect,
|
||||
flanking, movement_cost_ft, target_threatens_me, enemies_threatening_me,
|
||||
@@ -781,7 +797,7 @@ Règles modélisées :
|
||||
case de leur conjurateur),
|
||||
terrain_semantics (un dict par type de terrain : type, move_cost,
|
||||
blocks_los, cover, cover_bonus), condition_definitions (C2 : tuple trié de (nom,
|
||||
{mods, flags, speed_mult, miss_chance}) — définitions complètes des 26
|
||||
{mods, flags, speed_mult, miss_chance}) — définitions complètes des 28
|
||||
conditions de CONDITIONS_BY_NAME pour que la LLM interprète les drapeaux,
|
||||
les modificateurs et les chances de rater (concealment)).
|
||||
Les helpers publics du moteur (L5) sont désormais embarqués EN DONNÉES dans
|
||||
@@ -841,10 +857,11 @@ la lecture mais non appliquée dans la résolution.
|
||||
enhancement…) gardent la valeur la plus élevée. Les pénalités suivent les
|
||||
mêmes règles. Fondation pour sorts, conditions, dons et capacités de classe.
|
||||
- `conditions.py` — conditions PF1e : `Condition` (dataclass avec
|
||||
modificateurs + flags comportementaux + `miss_chance`) et 26 conditions prédéfinies
|
||||
modificateurs + flags comportementaux + `miss_chance`) et 28 conditions prédéfinies
|
||||
(shaken, sickened, fatigued, exhausted, entangled, dazzled, blinded,
|
||||
deafened, flat-footed, prone, stunned, paralyzed, nauseated, dazed,
|
||||
staggered, frightened, panicked, cowering, helpless, fascinated, invisible).
|
||||
staggered, frightened, panicked, cowering, helpless, fascinated, invisible,
|
||||
bleeding, confused).
|
||||
Les modificateurs sont intégrés
|
||||
à `resolve_attack` (attaque, dégâts, CA) et `resolve_save` (jets de
|
||||
sauvegarde) via `_stat_modifiers` qui collecte effets + conditions ; les
|
||||
|
||||
Reference in New Issue
Block a user