fix(rules): allow one movement opportunity per opponent per round

PF1e (CRB Attacks of Opportunity): moving out of more than one square
threatened by the same opponent in the same round counts as one
opportunity for that opponent. Track per-round movement provocation in
_move_aoo_provoked (cleared with _aoo_used at round start); the stand-up
trigger passes movement=False and still provokes. Ranged, casting and
maneuver triggers are untouched.

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-11 23:08:11 +02:00
parent 5568e0f8af
commit 74bfeb5414
3 changed files with 113 additions and 8 deletions
+6 -1
View File
@@ -665,7 +665,12 @@ Règles modélisées :
naturelle — les 8 cases adjacentes pour un Small/Medium sans allonge — ou
l'anneau d'une arme à allonge, dont la dead zone n'est pas menacée). Deux déclencheurs sont modélisés : (1) quitter une
case menacée — le mouvement est résolu pas à pas, et chaque ennemi qui menace
la case actuelle porte une AoO avant que le mouvant ne la quitte ; (2) tirer
la case actuelle porte une AoO avant que le mouvant ne la quitte ; sortir
de plusieurs cases menacées par le **même** adversaire dans le même round ne
compte qu'**une seule opportunity** pour lui (piste `_move_aoo_provoked`,
réinitialisée au début du round — conformance A1, CRB « Attacks of
Opportunity ») ; le relèvement (stand_up) est un déclencheur distinct et
provoque toujours ; (2) tirer
avec une arme à distance depuis une case menacée — chaque ennemi menaçant
porte une AoO avant chaque tir. Une AoO par combattant par round (piste
`_aoo_used`, réinitialisée au début du round) ; le budget restant est exposé