fix(rules): exhausted -6 Dex now costs -3 AC and -3 Reflex

This commit is contained in:
2026-09-16 19:20:00 +02:00
parent 317f91a07f
commit bfe0b767a9
2 changed files with 16 additions and 1 deletions
+4 -1
View File
@@ -110,12 +110,15 @@ FATIGUED = Condition(
) )
# Exhausted: -6 STR, -6 DEX; half speed; can't run or charge (CRB) # Exhausted: -6 STR, -6 DEX; half speed; can't run or charge (CRB)
# Approximation: -3 attack, -3 damage # Approximation: -3 attack, -3 damage (STR/DEX), -3 AC and -3 Ref (the -6 DEX
# = -3 to each, mirroring how ENTANGLED models its -4 DEX as -2 AC/-2 Ref).
EXHAUSTED = Condition( EXHAUSTED = Condition(
name="exhausted", name="exhausted",
modifiers=( modifiers=(
StatModifier(target="attack", value=-3), StatModifier(target="attack", value=-3),
StatModifier(target="damage", value=-3), StatModifier(target="damage", value=-3),
StatModifier(target="ac", value=-3),
StatModifier(target="ref", value=-3),
), ),
cant_charge=True, cant_charge=True,
speed_mult=0.5, speed_mult=0.5,
+12
View File
@@ -7,6 +7,7 @@ from pf1e_simulator.conditions import (
BLINDED, BLINDED,
DAZZLED, DAZZLED,
ENTANGLED, ENTANGLED,
EXHAUSTED,
FATIGUED, FATIGUED,
FLAT_FOOTED, FLAT_FOOTED,
FRIGHTENED, FRIGHTENED,
@@ -123,6 +124,17 @@ class TestConditionData:
assert ENTANGLED.cant_charge is True assert ENTANGLED.cant_charge is True
assert ENTANGLED.speed_mult == 0.5 assert ENTANGLED.speed_mult == 0.5
def test_exhausted_minus6_dex_gives_minus3_ac_and_ref(self) -> None:
# SRD: exhausted takes -6 to Dexterity => -3 AC and -3 Reflex
# (each -2 Dex = -1 AC/Ref, same modelling as entangled's -4 Dex).
mods = {m.target: m.value for m in EXHAUSTED.modifiers}
assert mods["attack"] == -3
assert mods["damage"] == -3
assert mods["ac"] == -3
assert mods["ref"] == -3
assert "fort" not in mods
assert "will" not in mods
def test_fatigued_flags(self) -> None: def test_fatigued_flags(self) -> None:
assert FATIGUED.cant_charge is True assert FATIGUED.cant_charge is True