91666d84b9
- Every data/spells/*.json now carries a "components" field with the V/S/M/F/DF tokens from its KB Components line (material/focus descriptions dropped; M/DF and F/DF alternatives kept verbatim). - 107/108 encoded. Create Alcool (data/spells/create_alcool.json) is left without the field: it is a homebrew cantrip (level 0) with no KB entry - the closest real spell, Enhance Water (Inner Sea Gods, V, S), is already a separate registry entry. - summon_monster_i/ii map to the KB's numeric files (summon-monster-1/2); hidden_diplomacy maps to its KB name Egorian Diplomacy (same spell, Spymaster's Handbook rename): V, S, M. - tests/test_spell_failure.py: the placeholder asserting the registry was not yet encoded is replaced by an encoded-state smoke test (all spells but Create Alcool declare components; five spot-checks against the SRD stat blocks). Golden transcripts unchanged: the component gates still need deafened/ASF conditions no golden combat has.
22 lines
972 B
JSON
22 lines
972 B
JSON
{
|
|
"name": "Ray of Enfeeblement",
|
|
"level": 1,
|
|
"school": "necromancy",
|
|
"components": "V, S",
|
|
"range": "close",
|
|
"save": "fort",
|
|
"base_dc": 10,
|
|
"requires_ranged_touch": true,
|
|
"cast_time": "standard",
|
|
"effects": [
|
|
{
|
|
"type": "penalty",
|
|
"formula": "1d6",
|
|
"scaling_flat": { "amount": 1, "per_levels": 2, "max": 5 },
|
|
"targets": ["attack", "damage"],
|
|
"duration_rounds_per_level": 1,
|
|
"half_on_save": true
|
|
}
|
|
],
|
|
"description": "A coruscating ray strikes the target (ranged touch attack), dealing 1d6 points of Strength damage +1 per two caster levels (maximum 1d6+5); a successful Fortitude save halves the damage. Simplification: the engine has no ability-score track, so the Strength penalty is modeled as negative untyped modifiers on the attack and damage rolls (the two combat rolls Strength feeds) for 1 round per caster level; the SRD 'cannot drop below 1' floor and the non-stacking clause are not modeled."
|
|
} |