fix(rules): correct P1 PF1e conformance bugs (area saves, concentration, prone, slots, helpless, nauseated)

This commit is contained in:
2026-09-10 20:52:28 +02:00
parent 1ca5aed758
commit 5afe495c4a
15 changed files with 790 additions and 86 deletions
+7 -5
View File
@@ -205,12 +205,11 @@ DAZED = Condition(
cant_act=True,
)
# Asleep/Unconscious: helpless, can't act, -4 AC vs melee, no Dex to AC (CRB)
# Asleep/Unconscious: helpless (CRB) — can't act, no Dex to AC. The old flat
# -4 AC approximation is superseded by the engine's Dex-0 (-5) adjustment for
# helpless targets, applied in resolve_attack (CombatEngine._is_helpless).
ASLEEP = Condition(
name="asleep",
modifiers=(
StatModifier(target="ac", value=-4),
),
denies_dex_to_ac=True,
cant_act=True,
cant_move=True,
@@ -218,7 +217,10 @@ ASLEEP = Condition(
# Helpless: helpless for all intents, treated as Dex 0 (loses Dex to AC),
# can't act; melee attackers gain +4 (engine logic in resolve_attack) (CRB)
# can't act; melee attackers gain +4 (engine logic in resolve_attack). The
# engine also treats paralyzed/asleep/unconscious as helpless (CRB: "helpless"
# = paralyzed, held, bound, sleeping, unconscious; stunned is NOT helpless) —
# see CombatEngine._is_helpless (CRB)
HELPLESS = Condition(
name="helpless",
denies_dex_to_ac=True,