feat(abilities): add passive feats system (Weapon Focus, Iron Will, Dodge, Point-Blank Shot)
This commit is contained in:
@@ -340,9 +340,9 @@ Non modélisé (couches `elevation`/`markers` présentes mais non appliquées
|
||||
dans la résolution) :
|
||||
|
||||
- Sorts (le système d'effets `effects.py`, les règles d'empilement des
|
||||
bonus, les jets de sauvegarde `resolve_save` et le système de conditions
|
||||
`conditions.py` sont en place — l'intégration des sorts au moteur est en
|
||||
cours).
|
||||
bonus, les jets de sauvegarde `resolve_save`, le système de conditions
|
||||
`conditions.py` et les dons passifs `abilities.py` sont en place —
|
||||
l'intégration des sorts au moteur est en cours).
|
||||
- Manœuvres de combat.
|
||||
- Effets mécaniques de hauteur/élévation.
|
||||
- Tailles Large+ (2×2), allonge > 5 ft
|
||||
@@ -378,6 +378,12 @@ dans la résolution) :
|
||||
staggered, frightened, panicked, cowering). 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.
|
||||
- `abilities.py` — dons et capacités : `AbilitySpec` (dataclass avec
|
||||
catégorie feat/class/racial/trait) et dons passifs prédéfinis (Weapon Focus,
|
||||
Toughness, Iron Will, Great Fortitude, Lightning Reflexes, Alertness,
|
||||
Point-Blank Shot, Dodge). Les modificateurs sont collectés par
|
||||
`_stat_modifiers` avec filtrage par arme (`weapon_filter`). Le champ
|
||||
`features` de `Combatant` contient les aptitudes permanentes.
|
||||
- `metrics.py` — statistiques en forme fermée : `win_rate`, `win_rate_sigma`,
|
||||
`win_rate_band` (bande 3σ bornée à [0, 1]).
|
||||
- `runner.py` — `EncounterSpec`/`Side`, `build_states` (placement en zone +
|
||||
@@ -393,7 +399,7 @@ dans la résolution) :
|
||||
La gate de validation complète (tests + lint + types) :
|
||||
|
||||
```bash
|
||||
uv run pytest -q # 276 tests
|
||||
uv run pytest -q # 293 tests
|
||||
uv run ruff check src tests
|
||||
uv run basedpyright src # mode strict
|
||||
```
|
||||
@@ -410,7 +416,8 @@ uv run basedpyright src # mode strict
|
||||
conditions, manœuvres de combat, dons et capacités de classe. Flanquement,
|
||||
attaques à outrance, attaques d'opportunité, charge, retraite et pas de
|
||||
placement sont déjà modélisés. Le système d'effets (`effects.py`), les
|
||||
règles d'empilement des bonus et les jets de sauvegarde (`resolve_save`)
|
||||
règles d'empilement des bonus, les jets de sauvegarde (`resolve_save`), le
|
||||
système de conditions (`conditions.py`) et les dons passifs (`abilities.py`)
|
||||
sont en place.
|
||||
- **Phase 2** — couche tactique LLM : stratégies en langage naturel traduites
|
||||
en politiques, balayage de matrices de positionnement.
|
||||
|
||||
Reference in New Issue
Block a user