feat(combat): honor AttackSpec.count for multi-swing attacks
A weapon with count>1 ('2x Talons') now resolves one independent attack
roll per swing in the same attack action (label '#N'), aggregating stats
per swing. Remaining swings are lost if the target drops mid-routine.
BAB iterative attacks remain out of Phase 0 scope.
This commit is contained in:
@@ -261,6 +261,10 @@ Règles modélisées :
|
||||
- Mort quand `hp < min(-10, -CON)` ; `hp ≤ 0` = inactif.
|
||||
- Initiative : triée sur (total, modificateur, ordre de liste), sans re-jet.
|
||||
- Une action par tour : se déplacer OU attaquer.
|
||||
- Attaques multiples par action : une arme avec `count` > 1 (« 2x Talons »)
|
||||
résout `count` balayages indépendants dans la même action ; les balayages
|
||||
restants sont perdus si la cible tombe (inconsciente ou morte) en cours de
|
||||
rafale. Les itératifs de BAB (2e attaque à BAB +6…) ne sont pas modélisés.
|
||||
- Mêlée : allonge d'une case ; mouvement : un pas par action, le long du plus
|
||||
court chemin réel (champ de coût Dijkstra depuis la cible — les combattants
|
||||
contournent les murs au lieu d'osciller contre eux).
|
||||
@@ -280,8 +284,8 @@ appliquées dans la résolution) :
|
||||
- Attaques d'opportunité, flanquement, manœuvres de combat.
|
||||
- Pénalités de portée (distance) et couvert mou des créatures.
|
||||
- Effets mécaniques de hauteur/élévation.
|
||||
- Tailles Large+ (2×2), allonge > 5 ft, attaques itératives (une attaque par
|
||||
tour), économie d'action complète (charge, pas de placement…).
|
||||
- Tailles Large+ (2×2), allonge > 5 ft, itératifs de BAB, économie d'action
|
||||
complète (charge, pas de placement…).
|
||||
|
||||
## Architecture
|
||||
|
||||
@@ -314,7 +318,7 @@ appliquées dans la résolution) :
|
||||
La gate de validation complète (tests + lint + types) :
|
||||
|
||||
```bash
|
||||
uv run pytest -q # 170 tests
|
||||
uv run pytest -q # 182 tests
|
||||
uv run ruff check src tests
|
||||
uv run basedpyright src # mode strict
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user