fix(rules): Exalted of the Society grants +1 channel energy/day via resource_grants; Fortified Drinker becomes documented no-op (SRD: +2 saves vs mind-affecting after drinking, alcohol state not modeled)
This commit is contained in:
@@ -13,6 +13,8 @@ from pathlib import Path
|
||||
|
||||
from pf1e_simulator.abilities import (
|
||||
COMBAT_REFLEXES,
|
||||
EXALTED_SOCIETY,
|
||||
FORTIFIED_DRINKER,
|
||||
MOUNTED_COMBAT,
|
||||
POINT_BLANK_SHOT,
|
||||
)
|
||||
@@ -227,3 +229,27 @@ def test_every_pc_feature_resolves_to_expected_spec() -> None:
|
||||
|
||||
def test_mapping_table_covers_exactly_the_8_pc_feats() -> None:
|
||||
assert set(_EXPECTED_RESOLUTION) == _pcs_features()
|
||||
|
||||
|
||||
# ── SRD conformance: corrected feat/trait effects ─────────────────────────────
|
||||
|
||||
|
||||
def test_exalted_of_the_society_grants_one_extra_channel_use() -> None:
|
||||
"""SRD (Faction Guide trait): "You may channel energy one additional time
|
||||
per day." The grant rides resource_grants and the loader merges it into
|
||||
the combatant's channel_energy pool (oni sheet base 6 -> 7)."""
|
||||
assert EXALTED_SOCIETY.resource_grants == (("channel_energy", 1),)
|
||||
assert not any(
|
||||
e.target in ("knowledge_local", "knowledge_nobility")
|
||||
for e in EXALTED_SOCIETY.effects
|
||||
)
|
||||
oni = load_combatant(Path("data/pcs/oni.json"))
|
||||
assert oni.resources["channel_energy"] == 7
|
||||
|
||||
|
||||
def test_fortified_drinker_is_inert_documented_noop() -> None:
|
||||
"""SRD: +2 saves vs mind-affecting for 1 hour after drinking alcohol. The
|
||||
alcohol trigger is not modeled -> inert no-op (the old dead "+2 Fort vs
|
||||
poison, condition='alcohol'" modifier is gone)."""
|
||||
assert FORTIFIED_DRINKER.effects == ()
|
||||
assert "not modeled" in FORTIFIED_DRINKER.source_detail
|
||||
|
||||
Reference in New Issue
Block a user