fix(spells): correct the sound burst save

PF1e (SRD spells/sound-burst.md): "Every creature in the area takes 1d8 points of sonic damage and must succeed on a Fortitude save to avoid being stunned for 1 round" — the Fortitude partial negates the stun only, never the dice. The damage component declared half_on_save: true, halving the sonic damage on a successful save. DamageEffect gains a save_negates flag (default True, existing behavior unchanged); sound_burst.json declares half_on_save: false + save_negates: false so the 1d8 is full regardless while the condition keeps save_negates. README updated.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-09-12 12:31:06 +02:00
parent e3818fa6c9
commit 8c7e7075ad
5 changed files with 21 additions and 8 deletions
+4 -1
View File
@@ -390,7 +390,10 @@ class TestAreaSavesPerSpellSaveType:
)
engine._cast_spell(c, t, "Sound Burst")
assert any(ac.condition.name == "stunned" for ac in c.active_conditions)
assert t.hp == 200 - 1 # saved: 3 // 2
# SRD spells/sound-burst.md: the save only avoids the stun — the 1d8
# sonic damage is full regardless (save_negates: false on the damage).
assert t.hp == 200 - 3 # saved: full damage, no stun
assert not any(ac.condition.name == "stunned" for ac in t.active_conditions)
class TestTargetedSpellSaveNegates: