feat(rules): support multi-projectile spells
SRD Magic Missile fires one missile +1 per two caster levels beyond 1st (max 5, 1d4+1 force, auto-hit); Scorching Ray fires one ray +1 per four levels beyond 3rd (max 3, 4d6 fire, ranged touch each). DamageEffect gains a ProjectileScaling spec (JSON 'projectiles'); _apply_damage_effect loops count_for(caster_level) projectiles, each rolling its own damage and (for a declared-projectile ray) its own ranged touch attack, with the target-drops-mid-sequence convention losing the rest. Updated magic_missile.json/scorching_ray.json, the golden lich transcript (CL 11 now fires 5 missiles, Tammara dies round 1: 43 damage), the scripted MM queues in test_spells/test_conformance_spellflow, added tests/test_multi_projectile.py, and the README. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -11,8 +11,9 @@
|
||||
"type": "damage",
|
||||
"formula": "1d4+1",
|
||||
"types": ["force"],
|
||||
"half_on_save": false
|
||||
"half_on_save": false,
|
||||
"projectiles": { "base": 1, "per_levels": 2, "at_level": 1, "max": 5 }
|
||||
}
|
||||
],
|
||||
"description": "A missile of magical energy darts forth from your fingertip and strikes its target, dealing 1d4+1 points of force damage."
|
||||
"description": "SRD spells/magic-missile.md: unerring force missiles, 1d4+1 points of force damage each. One missile, plus one additional missile per two caster levels beyond 1st (two at 3rd, three at 5th, four at 7th, maximum five at 9th or higher). Auto-hit (no attack roll); spell resistance applies to the target."
|
||||
}
|
||||
|
||||
@@ -12,8 +12,9 @@
|
||||
"type": "damage",
|
||||
"formula": "4d6",
|
||||
"types": ["fire"],
|
||||
"half_on_save": false
|
||||
"half_on_save": false,
|
||||
"projectiles": { "base": 1, "per_levels": 4, "at_level": 3, "max": 3 }
|
||||
}
|
||||
],
|
||||
"description": "You blast your enemy with a searing beam of fire: each ray requires a ranged touch attack and deals 4d6 points of fire damage. You fire one ray, plus one additional ray per four levels beyond 3rd (max three at 11th) — the engine models a single ray. No save."
|
||||
"description": "SRD spells/scorching-ray.md: a searing beam of fire. One ray, plus one additional ray for every four caster levels beyond 3rd (to a maximum of three rays at 11th level). Each ray requires a ranged touch attack to hit and deals 4d6 points of fire damage. No save."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user