fix(rules): correct P1 PF1e conformance bugs (area saves, concentration, prone, slots, helpless, nauseated)
This commit is contained in:
@@ -24,6 +24,7 @@ def _make_combatant(
|
||||
spell_resistance: int = 0,
|
||||
resistances: dict[str, int] | None = None,
|
||||
immunities: tuple[str, ...] = (),
|
||||
spell_slots: dict[int, int] | None = None,
|
||||
) -> Combatant:
|
||||
return Combatant(
|
||||
id=id_,
|
||||
@@ -43,6 +44,7 @@ def _make_combatant(
|
||||
spell_resistance=spell_resistance,
|
||||
resistances=resistances or {},
|
||||
immunities=immunities,
|
||||
spell_slots=spell_slots or {},
|
||||
)
|
||||
|
||||
|
||||
@@ -102,7 +104,7 @@ _FIREBALL = SpellSpec(
|
||||
|
||||
|
||||
def test_sr_blocks_all_effects() -> None:
|
||||
caster = _make_combatant("caster", spell_resistance=0)
|
||||
caster = _make_combatant("caster", spell_resistance=0, spell_slots={1: 9, 3: 9})
|
||||
target = _make_combatant("target", spell_resistance=15)
|
||||
eng = _engine(
|
||||
[caster, target], [(0, 0), (0, 2)], ["players", "monsters"],
|
||||
@@ -116,7 +118,7 @@ def test_sr_blocks_all_effects() -> None:
|
||||
|
||||
|
||||
def test_sr_passes_when_cl_suffices() -> None:
|
||||
caster = _make_combatant("caster", spell_resistance=0)
|
||||
caster = _make_combatant("caster", spell_resistance=0, spell_slots={1: 9, 3: 9})
|
||||
target = _make_combatant("target", spell_resistance=10)
|
||||
eng = _engine(
|
||||
[caster, target], [(0, 0), (0, 2)], ["players", "monsters"],
|
||||
@@ -130,7 +132,7 @@ def test_sr_passes_when_cl_suffices() -> None:
|
||||
|
||||
|
||||
def test_per_target_sr_in_area_spell() -> None:
|
||||
caster = _make_combatant("caster", spell_resistance=0)
|
||||
caster = _make_combatant("caster", spell_resistance=0, spell_slots={1: 9, 3: 9})
|
||||
t1 = _make_combatant("t1", spell_resistance=15)
|
||||
t2 = _make_combatant("t2", spell_resistance=0)
|
||||
eng = _engine(
|
||||
@@ -149,7 +151,7 @@ def test_per_target_sr_in_area_spell() -> None:
|
||||
|
||||
|
||||
def test_no_sr_check_when_sr_zero() -> None:
|
||||
caster = _make_combatant("caster", spell_resistance=0)
|
||||
caster = _make_combatant("caster", spell_resistance=0, spell_slots={1: 9, 3: 9})
|
||||
target = _make_combatant("target", spell_resistance=0)
|
||||
eng = _engine(
|
||||
[caster, target], [(0, 0), (0, 2)], ["players", "monsters"],
|
||||
@@ -164,7 +166,7 @@ def test_no_sr_check_when_sr_zero() -> None:
|
||||
|
||||
|
||||
def test_fire_resistance_reduces_spell_damage() -> None:
|
||||
caster = _make_combatant("caster", spell_resistance=0)
|
||||
caster = _make_combatant("caster", spell_resistance=0, spell_slots={1: 9, 3: 9})
|
||||
target = _make_combatant(
|
||||
"target",
|
||||
spell_resistance=0,
|
||||
@@ -182,7 +184,7 @@ def test_fire_resistance_reduces_spell_damage() -> None:
|
||||
|
||||
|
||||
def test_fire_immunity_negates_damage() -> None:
|
||||
caster = _make_combatant("caster", spell_resistance=0)
|
||||
caster = _make_combatant("caster", spell_resistance=0, spell_slots={1: 9, 3: 9})
|
||||
target = _make_combatant(
|
||||
"target",
|
||||
spell_resistance=0,
|
||||
|
||||
Reference in New Issue
Block a user