feat(loaders): extend Foundry loader with feat/spell extraction
Map Foundry feat strings to AbilitySpec constants (Power Attack, Iron Will, Alertness, Point-Blank Shot, Precise Shot, Dodge, Weapon Focus (X)). Extract spell names from spellcasting.spells into Combatant.spells. Wire features and spells into load_sheet_detailed return. Add 41 tests (unit + golden on 8 real sheets). Gate: 377 tests, ruff clean, basedpyright clean.
This commit is contained in:
@@ -399,15 +399,16 @@ dans la résolution) :
|
||||
agrégation en `EncounterReport` avec attrition par combattant.
|
||||
- `cli.py` — front-end argparse `pf1e-sim`, rapport français, code de sortie 2
|
||||
en cas d'erreur.
|
||||
- `loaders/` — `foundry.py` (fiches Foundry `pf1-sheet/v1`) et `monster.py`
|
||||
(JSON de monstre).
|
||||
- `loaders/` — `foundry.py` (fiches Foundry `pf1-sheet/v1` avec extraction
|
||||
automatique des dons → `AbilitySpec` et des sorts → `Combatant.spells`) et
|
||||
`monster.py` (JSON de monstre).
|
||||
|
||||
## Développement
|
||||
|
||||
La gate de validation complète (tests + lint + types) :
|
||||
|
||||
```bash
|
||||
uv run pytest -q # 336 tests
|
||||
uv run pytest -q # 377 tests
|
||||
uv run ruff check src tests
|
||||
uv run basedpyright src # mode strict
|
||||
```
|
||||
@@ -427,8 +428,9 @@ uv run basedpyright src # mode strict
|
||||
règles d'empilement des bonus, les jets de sauvegarde (`resolve_save`), le
|
||||
système de conditions (`conditions.py`), les dons passifs et actifs
|
||||
(`abilities.py`) et les sorts (`spells.py` + base JSON `data/spells/`)
|
||||
sont en place. Extension du chargeur Foundry pour l'extraction des sorts et
|
||||
dons en cours.
|
||||
sont en place. Le chargeur Foundry extrait automatiquement les dons
|
||||
(feats, traits, racial) vers des `AbilitySpec` pré-définis et les noms
|
||||
de sorts vers `Combatant.spells`.
|
||||
- **Phase 2** — couche tactique LLM : stratégies en langage naturel traduites
|
||||
en politiques, balayage de matrices de positionnement.
|
||||
- **Phase 3** — rapporteur LLM local : agrégation des statistiques et
|
||||
|
||||
Reference in New Issue
Block a user