fix(rules): exhausted -6 Dex now costs -3 AC and -3 Reflex
This commit is contained in:
@@ -110,12 +110,15 @@ FATIGUED = Condition(
|
||||
)
|
||||
|
||||
# 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(
|
||||
name="exhausted",
|
||||
modifiers=(
|
||||
StatModifier(target="attack", value=-3),
|
||||
StatModifier(target="damage", value=-3),
|
||||
StatModifier(target="ac", value=-3),
|
||||
StatModifier(target="ref", value=-3),
|
||||
),
|
||||
cant_charge=True,
|
||||
speed_mult=0.5,
|
||||
|
||||
@@ -7,6 +7,7 @@ from pf1e_simulator.conditions import (
|
||||
BLINDED,
|
||||
DAZZLED,
|
||||
ENTANGLED,
|
||||
EXHAUSTED,
|
||||
FATIGUED,
|
||||
FLAT_FOOTED,
|
||||
FRIGHTENED,
|
||||
@@ -123,6 +124,17 @@ class TestConditionData:
|
||||
assert ENTANGLED.cant_charge is True
|
||||
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:
|
||||
assert FATIGUED.cant_charge is True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user