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.
26 lines
1.5 KiB
JSON
26 lines
1.5 KiB
JSON
{
|
|
"name": "Protection from Law, Communal",
|
|
"level": 2,
|
|
"school": "abjuration",
|
|
"components": "V, S, M/DF",
|
|
"range": "touch",
|
|
"save": "will",
|
|
"harmless": true,
|
|
"base_dc": 10,
|
|
"cast_time": "standard",
|
|
"spell_resistance": false,
|
|
"effects": [
|
|
{
|
|
"type": "buff",
|
|
"modifiers": [
|
|
{ "target": "ac", "value": 2, "bonus_type": "deflection", "condition": "attacker_is_lawful" },
|
|
{ "target": "fort", "value": 2, "bonus_type": "resistance", "condition": "attacker_is_lawful" },
|
|
{ "target": "ref", "value": 2, "bonus_type": "resistance", "condition": "attacker_is_lawful" },
|
|
{ "target": "will", "value": 2, "bonus_type": "resistance", "condition": "attacker_is_lawful" }
|
|
],
|
|
"duration_rounds": 10
|
|
}
|
|
],
|
|
"description": "SRD spells/protection-from-law-communal.md: functions like protection from law - each touched creature gains the +2 deflection bonus to AC and +2 resistance bonus on saves against attacks or effects created by lawful creatures (gated on the attacker/caster alignment via condition attacker_is_lawful, never applying against a non-lawful source). Will negates (harmless), spell resistance no. Not modeled: the SRD duration split - \"you divide the duration in 1-minute intervals among the creatures touched\" - the engine gives every touched creature the same fixed duration as protection from law (1 min/level approximated as 10 rounds each) instead of draining one shared pool; and the mental-control suppression clause of the base spell (see protection_from_law.json)."
|
|
}
|