feat(combat): grant soft cover (+4 AC) to ranged attacks through creatures
This commit is contained in:
@@ -72,10 +72,10 @@ players : 3 combatants
|
||||
monsters : 2 combatants
|
||||
1000 combats simulés (seed 1, plafond 100 rounds)
|
||||
|
||||
Victoires players : 98.1% (981) — bande 3σ : [96.8%, 99.4%]
|
||||
Victoires monsters : 1.9% (19) — bande 3σ : [0.6%, 3.2%]
|
||||
Victoires players : 97.8% (978) — bande 3σ : [96.4%, 99.2%]
|
||||
Victoires monsters : 2.2% (22) — bande 3σ : [0.8%, 3.6%]
|
||||
Nuls : 0.0% (0)
|
||||
Rounds moyens : 6.6
|
||||
Rounds moyens : 6.9
|
||||
```
|
||||
|
||||
## Utilisation de la CLI
|
||||
@@ -276,8 +276,9 @@ Règles modélisées :
|
||||
peut pas être attaquée — la politique se déplace jusqu'à gagner une ligne de
|
||||
visée.
|
||||
- Couvert (règle des coins) : la cible gagne +4 CA sur la touche et la
|
||||
confirmation de critique ; le couvert octroyé par les créatures n'est pas
|
||||
modélisé.
|
||||
confirmation de critique ; couvert mou : une créature active entre
|
||||
l'attaquant et la cible octroie aussi +4 CA aux attaques à distance (les
|
||||
attaques de mêlée ignorent les créatures).
|
||||
- Distance : pénalité cumulative de −2 par incrément de portée complet au-delà
|
||||
du premier, appliquée au jet d'attaque et à la confirmation de critique ;
|
||||
l'arme ranged reste utilisable jusqu'à 10 incréments. Les armes de jet
|
||||
@@ -288,7 +289,6 @@ appliquées dans la résolution) :
|
||||
|
||||
- Sorts, jets de sauvegarde, conditions et états.
|
||||
- Attaques d'opportunité, flanquement, manœuvres de combat.
|
||||
- Couvert mou des créatures.
|
||||
- Effets mécaniques de hauteur/élévation.
|
||||
- Tailles Large+ (2×2), allonge > 5 ft, itératifs de BAB, économie d'action
|
||||
complète (charge, pas de placement…).
|
||||
@@ -305,7 +305,8 @@ appliquées dans la résolution) :
|
||||
- `grid.py` — grille 5-10-5 : `distance`, `step_cost`, règle des coins
|
||||
(`diagonal_allowed`), Dijkstra `reachable` avec ou sans budget.
|
||||
- `los.py` — ligne d'effet et couvert par la règle des coins : gate de ligne
|
||||
d'effet dans `weapon_for`, bonus de couvert +4 CA dans `resolve_attack`.
|
||||
d'effet dans `weapon_for`, bonus de couvert +4 CA (terrain et couvert mou
|
||||
des créatures) dans `resolve_attack`.
|
||||
- `combat.py` — `CombatEngine` déterministe : initiative, actions, résolution
|
||||
des attaques (couvert, ligne d'effet, pénalités de portée), états de vie,
|
||||
transcripts, politique par défaut.
|
||||
@@ -324,7 +325,7 @@ appliquées dans la résolution) :
|
||||
La gate de validation complète (tests + lint + types) :
|
||||
|
||||
```bash
|
||||
uv run pytest -q # 189 tests
|
||||
uv run pytest -q # 196 tests
|
||||
uv run ruff check src tests
|
||||
uv run basedpyright src # mode strict
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user