fix(rules): stop delay from double-processing the turn start
A freshly-delayed combatant is re-inserted into the round order and _take_turn runs a second time in the same round. That second pass re-ran _decrement_durations and _turn_gate, double-ticking bleed, double-decrementing buff/condition durations and re-firing the fear aura. The start-of-turn block is now skipped when delayed_this_round is already set at entry (cleared at round start, set only by a delay action); the delayed turn still gets its policy call, budget and execution. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -442,7 +442,12 @@ Règles modélisées :
|
||||
cible − 0,5 (ou au minimum des totaux − 0,5 sans cible) et **persiste aux
|
||||
rounds suivants** ; le reste du tour est perdu, un second retard dans le même
|
||||
round est rejeté (`already_delayed`), et le drapeau se réinitialise au début
|
||||
de chaque round. `default_policy` ne choisit pas le retard (disponible via
|
||||
de chaque round. Le tour réinséré plus tard dans le même round **ne rejoue
|
||||
pas le début de tour** : la décrément des durées (buffs/conditions), les
|
||||
dégâts continus (saignement), l'effet de terreur et les réinitialisations de
|
||||
drapeaux par tour ne s'appliquent qu'une fois par round (le tour retardé garde
|
||||
néanmoins son appel de politique, son budget et son exécution normaux).
|
||||
`default_policy` ne choisit pas le retard (disponible via
|
||||
une politique personnalisée).
|
||||
- Préparation (`Action(kind="ready", ready_trigger=...)`, action standard) : le
|
||||
combattant se prépare à agir quand un événement déclencheur survient. Le
|
||||
|
||||
Reference in New Issue
Block a user