Files
pf1e-simulator/data/spells/acid_arrow.json
T
ctan a59ebee37a feat(rules): add ongoing spell damage
Acid Arrow (SRD spells/acid-arrow.md) deals 2d4 acid, then 2d4 again at the start of each of the target's turns for 1 round + 1 per three caster levels (max 6). DamageEffect gains a RecurringDamageSpec (JSON 'recurring'); a landed hit attaches a RecurringDamage source to CombatantState.recurring_damage, ticked in _turn_gate (after bleed), reduced by energy resistance/immunity but never DR (spell damage), cleared at expiry, and exposed in the observation snapshot. Extracted _resolve_one_projectile to keep _apply_damage_effect under the complexity ceiling. Updated acid_arrow.json, added tests/test_recurring_damage.py, and the README.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-13 12:25:38 +02:00

27 lines
783 B
JSON

{
"name": "Acid Arrow",
"level": 2,
"school": "evocation",
"range": "long",
"save": "none",
"base_dc": 10,
"requires_ranged_touch": true,
"cast_time": "standard",
"effects": [
{
"type": "damage",
"formula": "2d4",
"types": ["acid"],
"half_on_save": false,
"recurring": {
"formula": "2d4",
"types": ["acid"],
"base_rounds": 1,
"per_levels": 3,
"max": 6
}
}
],
"description": "SRD spells/acid-arrow.md: ranged touch attack dealing 2d4 acid damage, plus another 2d4 acid damage at the start of each of the target's turns for 1 round + 1 round per three caster levels (maximum 6 additional rounds). Recurring damage is reduced by energy resistance/immunity, not by DR. No save."
}