feat(observation): expose attack failure reasons

This commit is contained in:
2026-09-10 13:57:34 +02:00
parent 8f3bd0d0e0
commit 6abd29cbc5
4 changed files with 303 additions and 6 deletions
+8 -1
View File
@@ -660,7 +660,14 @@ Règles modélisées :
cover_bonus (int — bonus de couvert que la cible gagne contre une attaque
de l'acteur, calculé comme dans `resolve_attack` : terrain +2/+4/+8 via la
règle des coins, couvert mou +4 des créatures interposées pour les seules
attaques à distance ; 0 si `weapon_for` est None).
attaques à distance ; 0 si `weapon_for` est None), weapon_reason (str |
None — None si `weapon_for` a choisi une arme ; sinon la raison normalisée
de l'indisponibilité d'attaque, dans le vocabulaire `ACTION_RESULT_REASONS` :
`no_weapon` (aucune arme utilisable), `no_line_of_effect` (ligne d'effet
bloquée), `out_of_range` (arme existante mais cible hors de portée)),
charge_reason (str | None — None si `can_charge` est vrai ; sinon la
raison de `ChargeResult` verbatim (`no_line_of_effect` / `no_charge_path`)
ou `no_weapon` si aucune arme de mêlée utilisable).
- Top-level : round, acting_combatant, combatants, pairs, terrain, elevation,
threatened (grille bool des cases menacées par les ennemis),
initiative_order (U2 : tuple d'ids dans l'ordre d'initiative du round