fix(rules): correct P2/P3 PF1e conformance bugs (flanking, touch, blinded, disabled, death, maneuvers, DR, sneak)

This commit is contained in:
2026-09-10 21:45:50 +02:00
parent 5afe495c4a
commit 9aee4f6f6b
15 changed files with 934 additions and 134 deletions
+5 -6
View File
@@ -156,19 +156,18 @@ def test_stabilized_then_healed_resets_stabilization() -> None:
def test_dying_bleeds_to_death_threshold() -> None:
eng, s = _solo(con_score=10) # death threshold: hp < min(-10, -10) = -10
# PF1e (B12 conformance): death when negative hp reaches the CON score
# (hp <= -CON = -10 here); there is no -10 floor.
eng, s = _solo(con_score=10)
s.hp = -9
eng._rng = ScriptedRng([1, 1]) # two failed checks: -9 -> -10 -> -11
eng._rng = ScriptedRng([1]) # failed check: -9 -> -10 reaches the threshold
eng._process_dying(s)
assert s.hp == -10
assert not s.dead
eng._process_dying(s)
assert s.hp == -11
assert s.dead
# Dead creatures never roll again (empty queue would raise if they did).
eng._rng = ScriptedRng([])
eng._process_dying(s)
assert s.hp == -11
assert s.hp == -10
def test_dying_tick_runs_on_initiative_slot_during_round() -> None: