fix(rules): summon duration scales with caster level (SRD summon-monster: 1 round/level (D)) - SummonEffect gains duration_rounds_per_level resolved at cast time, summon_monster_i/ii JSON updated

This commit is contained in:
2026-09-19 11:47:34 +02:00
parent 418fdc826b
commit cec3c5f459
6 changed files with 112 additions and 9 deletions
+8 -1
View File
@@ -1235,7 +1235,14 @@ Règles modélisées :
coin/case selon le CRB ; les créatures 1×1 sont inchangées.
- Invocation : les créatures invoquées agissent (calées sur la case d'initiative de
leur conjurateur via `_build_round_order`) puis expirent après leur `summon_duration`
(`_expire_summons` décrémente puis retire).
(`_expire_summons` décrémente puis retire). La durée des sorts `summon monster` est
`1 round/level` (SRD spells/summon-monster-1.md : « Duration 1 round/level (D) ») :
un `SummonEffect` déclare `duration_rounds_per_level` (défaut 0 = durée fixe,
comportement pré-conformance) et la durée est résolue au moment de l'incantation
comme `max(1, niveau du lanceur × duration_rounds_per_level)`, selon la même
convention de scalage par niveau que `ConditionEffect` (voir « Formes de zone et
scalage »). Les deux sorts importés (`summon_monster_i/ii.json`) portent
`duration_rounds_per_level: 1`.
- Conditions effectives : 28 conditions prédéfinies (`conditions.py`). Leurs drapeaux
comportementaux sont appliqués par le moteur : `cant_act` (étourdi, paralysé, dazed,
endormi, inerme, fasciné) annule le tour ; `cant_attack` (nauséeux, épinglé) n'autorise qu'une unique action