fix(rules): forbid a diagonal 5-foot step past a corner

PF1e (SRD Measuring Distance): "You can't move diagonally past a corner (even by taking a 5-foot step)." _step5_to now rejects a diagonal destination whose two flanking squares are not both passable, reusing Grid.diagonal_allowed - the same corner rule the regular movement already applies. README updated.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-09-12 08:54:36 +02:00
parent 98b61c6cf8
commit c96579a485
3 changed files with 48 additions and 2 deletions
+5 -1
View File
@@ -724,7 +724,11 @@ Règles modélisées :
- Pas de placement (5-foot step) : action libre qui déplace le combattant d'une
case vers l'ennemi le plus proche sans provoquer d'AoO. Exclusivité mutuelle
avec tout autre mouvement (move, charge, retraite) dans le même tour —
tracked via `moved_this_turn`, réinitialisé au début du tour. `default_policy`
tracked via `moved_this_turn`, réinitialisé au début du tour. Conformance
L3 (SRD « Measuring Distance ») : « You can't move diagonally past a corner
(even by taking a 5-foot step) » — un pas diagonal dont les deux cases
adjacentes (flancs) ne sont pas toutes deux praticables est rejeté
(`unreachable_destination`), comme pour tout autre déplacement. `default_policy`
choisit `(5foot_step, full_attack)` quand un seul pas suffit à entrer en
portée.
- Distance : pénalité cumulative de −2 par incrément de portée complet au-delà