[
  {
    "id": "jolt",
    "type": "SPELL",
    "name": "Jolt",
    "description": "A short-ranged fan of electricity shoots from your fingers.",
    "effect": "attack",
    "shape": "cone",
    "valid_targets": [ "ally", "hostile", "ground" ],
    "flags": [ "LOUD", "SOMATIC", "NO_HANDS" ],
    "max_level": 20,
    "min_damage": 8,
    "max_damage": 65,
    "damage_increment": 4,
    "min_range": 3,
    "max_range": 5,
    "range_increment": 0.25,
    "min_aoe": 25,
    "max_aoe": 60,
    "aoe_increment": 5,
    "spell_class": "STORMSHAPER",
    "base_casting_time": 100,
    "base_energy_cost": 150,
    "energy_source": "MANA",
    "difficulty": 2,
    "sound_description": "a crackle",
    "damage_type": "electric"
  },
  {
    "id": "shocking_lash_base",
    "type": "SPELL",
    "name": "Shocking Lash Base",
    "description": "Reference spell definition used for Shocking Lash and Shocking Lash Jump.",
    "effect": "attack",
    "shape": "blast",
    "valid_targets": [ "hostile" ],
    "flags": [ "SOMATIC", "NO_LEGS" ],
    "max_level": 20,
    "min_damage": 2,
    "max_damage": 24,
    "damage_increment": 2.2,
    "min_range": 3,
    "max_range": 16,
    "range_increment": 0.8,
    "spell_class": "STORMSHAPER",
    "base_casting_time": 85,
    "base_energy_cost": 135,
    "energy_source": "MANA",
    "difficulty": 1,
    "sound_description": "a crackle",
    "damage_type": "electric"
  },
  {
    "id": "shocking_lash",
    "type": "SPELL",
    "name": "Shocking Lash",
    "description": "A quick burst of electricity strikes a target and possibly one other nearby.",
    "copy-from": "shocking_lash_base",
    "field_id": "none",
    "extra_effects": [ { "id": "shocking_lash_2" } ]
  },
  {
    "id": "shocking_lash_2",
    "type": "SPELL",
    "name": "Shocking Lash Jump",
    "description": "The secondary jump from Shocking Lash.",
    "copy-from": "shocking_lash_base",
    "field_id": "none",
    "flags": [ "RANDOM_TARGET" ],
    "min_range": 1,
    "max_range": 2,
    "range_increment": 0.07
  },
  {
    "id": "lightning_bolt",
    "type": "SPELL",
    "name": "Lightning Bolt",
    "description": "The go-to spell for many Stormshapers, this iconic spell does just what you expect: you shoot lightning from your fingertips.  However, this lightning is more directed than most lightning, and travels in a line through most non-solid targets.",
    "effect": "attack",
    "shape": "line",
    "valid_targets": [ "ally", "hostile", "ground" ],
    "flags": [ "LOUD", "SOMATIC", "NO_LEGS", "NO_HANDS" ],
    "max_level": 35,
    "min_damage": 8,
    "max_damage": 200,
    "damage_increment": 6,
    "min_range": 4,
    "max_range": 8,
    "range_increment": 0.25,
    "difficulty": 6,
    "min_aoe": 1,
    "max_aoe": 1,
    "spell_class": "STORMSHAPER",
    "base_casting_time": 200,
    "final_casting_time": 100,
    "casting_time_increment": -5,
    "base_energy_cost": 140,
    "field_id": "fd_electricity",
    "min_field_intensity": 1,
    "max_field_intensity": 1,
    "field_chance": 1,
    "damage_type": "electric",
    "sound_description": "a crackle",
    "energy_source": "MANA"
  },
  {
    "id": "windstrike",
    "type": "SPELL",
    "name": "Windstrike",
    "description": "A powerful blast of wind slams into anything in front of your body.",
    "effect": "attack",
    "effect_str": "downed",
    "shape": "cone",
    "affected_body_parts": [ "leg_l", "leg_r" ],
    "valid_targets": [ "ally", "hostile", "ground" ],
    "flags": [ "SOMATIC", "NO_LEGS", "NO_HANDS" ],
    "max_level": 15,
    "min_damage": 24,
    "max_damage": 68,
    "damage_increment": 3,
    "min_aoe": 30,
    "max_aoe": 60,
    "aoe_increment": 2,
    "min_range": 6,
    "max_range": 20,
    "range_increment": 1,
    "min_duration": 200,
    "max_duration": 1000,
    "duration_increment": 100,
    "base_casting_time": 125,
    "base_energy_cost": 285,
    "spell_class": "STORMSHAPER",
    "energy_source": "MANA",
    "difficulty": 3,
    "sound_description": "a whoosh",
    "learn_spells": { "storm_shipwrecker": 15 },
    "damage_type": "bash"
  },
  {
    "id": "windrun",
    "type": "SPELL",
    "name": "Windrunning",
    "description": "A magical wind pushes you forward as you move, easing your movements and increasing speed.",
    "base_casting_time": 100,
    "casting_time_increment": -5,
    "final_casting_time": 50,
    "base_energy_cost": 100,
    "energy_increment": -5,
    "final_energy_cost": 50,
    "energy_source": "MANA",
    "spell_class": "STORMSHAPER",
    "difficulty": 1,
    "effect": "attack",
    "effect_str": "enchant_windrun",
    "shape": "blast",
    "affected_body_parts": [ "torso" ],
    "valid_targets": [ "ally", "self" ],
    "flags": [ "CONCENTRATE", "SILENT", "VERBAL", "NO_HANDS", "NO_PROJECTILE" ],
    "max_level": 10,
    "min_duration": 6000,
    "max_duration": 30000,
    "duration_increment": 2400,
    "min_range": 1,
    "max_range": 10,
    "range_increment": 1
  },
  {
    "id": "storm_hammer",
    "type": "SPELL",
    "name": "Call Stormhammer",
    "description": "Creates a crackling magical warhammer full of lightning to smite your foes with, and of course, smash things to bits!",
    "valid_targets": [ "self" ],
    "flags": [ "CONCENTRATE", "LOUD", "VERBAL", "NO_LEGS" ],
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "stormhammer",
    "shape": "blast",
    "energy_source": "MANA",
    "spell_class": "STORMSHAPER",
    "difficulty": 3,
    "max_level": 15,
    "base_casting_time": 550,
    "base_energy_cost": 300,
    "min_duration": 24000,
    "max_duration": 360000,
    "duration_increment": 24000,
    "learn_spells": { "storm_hammer_plus": 15 }
  },
  {
    "id": "storm_hammer_plus",
    "type": "SPELL",
    "name": "Enhanced Call Stormhammer",
    "description": "Creates a crackling magical warhammer full of lightning to smite your foes with, and of course, smash things to bits!  Now you know this spell like the back of your hand, and start to design your own version.",
    "valid_targets": [ "self" ],
    "flags": [ "LOUD", "VERBAL", "NO_LEGS" ],
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "stormhammer",
    "shape": "blast",
    "energy_source": "MANA",
    "spell_class": "STORMSHAPER",
    "difficulty": 5,
    "max_level": 25,
    "base_casting_time": 550,
    "final_casting_time": 150,
    "casting_time_increment": -16,
    "base_energy_cost": 300,
    "final_energy_cost": 100,
    "energy_increment": -8,
    "min_duration": 360000,
    "max_duration": 2160000,
    "duration_increment": 72000
  },
  {
    "id": "create_rune_stormshaper",
    "type": "SPELL",
    "name": "Stormshaper Rune",
    "description": "This ritual creates a small pebble attuned to Stormshapers.  You can use the rune as a catalyst for recipes.",
    "valid_targets": [ "self" ],
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "rune_stormshaper",
    "shape": "blast",
    "base_casting_time": 5000,
    "base_energy_cost": 5,
    "min_duration": 1,
    "max_duration": 2,
    "duration_increment": 1,
    "difficulty": 0,
    "max_level": 0,
    "spell_class": "STORMSHAPER",
    "energy_source": "MANA",
    "flags": [ "PERMANENT", "NO_LEGS", "CONCENTRATE" ]
  },
  {
    "id": "lightning_blast",
    "type": "SPELL",
    "name": "Lightning Blast",
    "description": "You fire a small concentrated ball of lightning at the target.  The electricity diffuses quickly, so it doesn't do much damage, but you're able to fire off several quick ones in a row.",
    "valid_targets": [ "hostile", "ground", "self", "ally" ],
    "flags": [ "LOUD", "SOMATIC", "NO_LEGS" ],
    "min_aoe": 1,
    "max_aoe": 2,
    "aoe_increment": 0.05,
    "max_level": 35,
    "min_damage": 4,
    "max_damage": 100,
    "min_range": 6,
    "max_range": 12,
    "range_increment": 0.2,
    "damage_increment": 3,
    "difficulty": 10,
    "spell_class": "STORMSHAPER",
    "energy_source": "MANA",
    "base_casting_time": 120,
    "final_casting_time": 50,
    "casting_time_increment": -5,
    "base_energy_cost": 55,
    "damage_type": "electric",
    "sound_description": "a crackle",
    "shape": "blast",
    "effect": "attack"
  },
  {
    "id": "lightning_storm",
    "type": "SPELL",
    "name": { "ctxt": "spell", "str": "Lightning Storm" },
    "description": "You call the power of the sky to strike the earth.  Several lightning blasts fire from your finger tips to strike the target.",
    "valid_targets": [ "hostile", "ground", "self", "ally" ],
    "flags": [ "CONCENTRATE", "LOUD", "VERBAL", "SOMATIC", "NO_LEGS" ],
    "min_aoe": 1,
    "max_aoe": 2,
    "aoe_increment": 0.05,
    "max_level": 35,
    "min_damage": 30,
    "max_damage": 150,
    "min_range": 6,
    "max_range": 8,
    "range_increment": 0.01,
    "damage_increment": 4,
    "difficulty": 20,
    "spell_class": "STORMSHAPER",
    "energy_source": "MANA",
    "base_energy_cost": 500,
    "base_casting_time": 300,
    "damage_type": "electric",
    "effect": "attack",
    "shape": "blast",
    "extra_effects": [ { "id": "lightning_blast" }, { "id": "lightning_blast" }, { "id": "lightning_blast" } ]
  },
  {
    "id": "stormshaper_ionization",
    "type": "SPELL",
    "name": "Ionization",
    "description": "By manipulating the charge in the air, you can conjure a sharp snap of lightning over a wide area.  While its destructive potential is a far cry from natural lightning, the light and thunderclap produced will leave your foes reeling.",
    "valid_targets": [ "hostile", "ground", "self", "ally" ],
    "effect": "attack",
    "shape": "blast",
    "extra_effects": [ { "id": "stormshaper_ionization_thunderclap" } ],
    "flags": [ "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ],
    "energy_source": "MANA",
    "spell_class": "STORMSHAPER",
    "difficulty": 8,
    "base_casting_time": 350,
    "final_casting_time": 200,
    "casting_time_increment": -5,
    "base_energy_cost": 300,
    "max_level": 30,
    "min_damage": 15,
    "max_damage": 60,
    "damage_increment": 1.5,
    "damage_type": "electric",
    "min_aoe": 7,
    "max_aoe": 7,
    "min_range": 12,
    "max_range": 24,
    "range_increment": 0.4,
    "field_id": "fd_electricity",
    "field_chance": 3,
    "min_field_intensity": 1,
    "max_field_intensity": 3,
    "field_intensity_increment": 0.1,
    "field_intensity_variance": 0.5
  },
  {
    "type": "SPELL",
    "id": "stormshaper_ionization_thunderclap",
    "name": "Ionization Thunderclap",
    "description": "Adds the actual flashbang effect.",
    "valid_targets": [ "hostile", "ground", "self", "ally" ],
    "effect": "flashbang",
    "shape": "blast",
    "flags": [ "LOUD" ],
    "max_level": 30,
    "min_range": 12,
    "max_range": 24,
    "range_increment": 0.4
  },
  {
    "id": "stormshaper_wall_of_fog",
    "type": "SPELL",
    "name": "Wall of Fog",
    "description": "Draws forth a broad wall of thick fog.  While the sudden force of air pressure will floor any enemies caught in it, the conjuration is otherwise harmless.",
    "valid_targets": [ "hostile", "ground", "ally" ],
    "effect": "attack",
    "effect_str": "downed",
    "shape": "line",
    "flags": [ "SOMATIC", "NO_LEGS", "NO_HANDS" ],
    "energy_source": "MANA",
    "spell_class": "STORMSHAPER",
    "difficulty": 2,
    "base_casting_time": 125,
    "base_energy_cost": 150,
    "max_level": 10,
    "min_aoe": 5,
    "max_aoe": 10,
    "aoe_increment": 0.5,
    "min_range": 2,
    "max_range": 4,
    "range_increment": 0.2,
    "min_duration": 200,
    "max_duration": 800,
    "duration_increment": 60,
    "field_id": "fd_fog",
    "field_chance": 1,
    "min_field_intensity": 3,
    "max_field_intensity": 3,
    "field_intensity_variance": 1
  },
  {
    "id": "thorns_zap",
    "type": "SPELL",
    "name": "Repelling Arc Aura",
    "description": "This is a sub-spell of the Repelling Arc spell.",
    "valid_targets": [ "hostile" ],
    "effect": "attack",
    "shape": "blast",
    "damage_type": "electric",
    "min_damage": 15,
    "max_damage": 15,
    "flags": [ "LOUD", "NO_PROJECTILE" ],
    "sound_type": "combat",
    "sound_description": "arcing electricity!",
    "min_range": 5,
    "max_range": 5
  },
  {
    "id": "stormshaper_repelling_arc",
    "type": "SPELL",
    "name": "Repelling Arc",
    "description": "Manifests an aura of crackling electricity around you to strike attackers with baleful lightning.",
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "effect_thorns_electric",
    "shape": "blast",
    "flags": [ "SOMATIC", "NO_LEGS", "CONCENTRATE" ],
    "energy_source": "MANA",
    "spell_class": "STORMSHAPER",
    "difficulty": 4,
    "base_casting_time": 250,
    "base_energy_cost": 550,
    "max_level": 15,
    "min_duration": 24000,
    "max_duration": 360000,
    "duration_increment": 24000,
    "learn_spells": { "stormshaper_repelling_arc_plus": 15 }
  },
  {
    "id": "stormshaper_repelling_arc_plus",
    "type": "SPELL",
    "name": "Enhanced Repelling Arc",
    "description": "Manifests an aura of crackling electricity around you to strike attackers with baleful lightning.  Now you know this spell like the back of your hand, and start to design your own version.",
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "effect_thorns_electric",
    "shape": "blast",
    "flags": [ "SOMATIC", "NO_LEGS" ],
    "energy_source": "MANA",
    "spell_class": "STORMSHAPER",
    "difficulty": 6,
    "base_casting_time": 250,
    "final_casting_time": 100,
    "casting_time_increment": -6,
    "base_energy_cost": 550,
    "final_energy_cost": 100,
    "energy_increment": -18,
    "max_level": 25,
    "min_duration": 360000,
    "max_duration": 2160000,
    "duration_increment": 72000
  },
  {
    "id": "stormfist",
    "type": "SPELL",
    "name": "Stormfist",
    "description": "Encases your arm and hand in a sheath of crackling magical lightning, you can punch and defend yourself with it in melee combat.",
    "flags": [ "LOUD", "VERBAL", "NO_LEGS" ],
    "valid_targets": [ "self" ],
    "min_damage": 1,
    "max_damage": 1,
    "spell_class": "STORMSHAPER",
    "effect": "spawn_item",
    "effect_str": "stormglove",
    "shape": "blast",
    "energy_source": "MANA",
    "difficulty": 5,
    "max_level": 15,
    "base_casting_time": 500,
    "base_energy_cost": 400,
    "min_duration": 24000,
    "max_duration": 360000,
    "duration_increment": 24000,
    "learn_spells": { "stormfist_plus": 15 }
  },
  {
    "id": "stormfist_plus",
    "type": "SPELL",
    "name": "Enhanced Stormfist",
    "description": "Encases your arm and hand in a sheath of crackling magical lightning, you can punch and defend yourself with it in melee combat.  Now you know this spell like the back of your hand, and start to design your own version.",
    "valid_targets": [ "self" ],
    "flags": [ "LOUD", "NO_LEGS" ],
    "min_damage": 1,
    "max_damage": 1,
    "spell_class": "STORMSHAPER",
    "effect": "spawn_item",
    "effect_str": "stormglove",
    "shape": "blast",
    "energy_source": "MANA",
    "difficulty": 7,
    "max_level": 25,
    "base_casting_time": 500,
    "final_casting_time": 200,
    "casting_time_increment": -12,
    "base_energy_cost": 400,
    "final_energy_cost": 150,
    "energy_increment": -10,
    "min_duration": 360000,
    "max_duration": 2160000,
    "duration_increment": 72000
  },
  {
    "id": "create_electric_lighter",
    "type": "SPELL",
    "name": "Fire Spark",
    "description": "Summons a small electric spark, that doesn't harm anything.  You can use it to ignite something flammable.",
    "valid_targets": [ "none" ],
    "flags": [ "NO_LEGS" ],
    "effect": "spawn_item",
    "effect_str": "electric_lighter",
    "shape": "blast",
    "min_damage": 1,
    "max_damage": 1,
    "min_duration": 6000,
    "max_duration": 60000,
    "duration_increment": 5400,
    "max_level": 10,
    "spell_class": "STORMSHAPER",
    "energy_source": "MANA",
    "base_casting_time": 250,
    "final_casting_time": 50,
    "casting_time_increment": -20.0,
    "base_energy_cost": 65,
    "difficulty": 0
  },
  {
    "id": "storm_shipwrecker",
    "type": "SPELL",
    "name": { "str": "Shipwrecker" },
    "description": "The spell moves out of your mouth, creating a giant shockwave that shatters everything in its path.",
    "//": "fus ro dah!",
    "valid_targets": [ "ally", "hostile", "ground" ],
    "effect": "attack",
    "effect_str": "downed",
    "shape": "cone",
    "base_casting_time": 300,
    "final_casting_time": 50,
    "casting_time_increment": -10,
    "base_energy_cost": 450,
    "final_energy_cost": 150,
    "energy_increment": -12,
    "energy_source": "MANA",
    "spell_class": "STORMSHAPER",
    "difficulty": 6,
    "max_level": 25,
    "min_damage": 30,
    "max_damage": 150,
    "damage_increment": 5,
    "damage_type": "bash",
    "min_range": 2,
    "max_range": 9,
    "range_increment": 0.3,
    "flags": [ "VERBAL", "LOUD", "NO_HANDS", "RANDOM_DURATION" ],
    "min_duration": 200,
    "max_duration": 900,
    "min_aoe": 30,
    "max_aoe": 150,
    "aoe_increment": 5,
    "extra_effects": [ { "id": "shipwrecker_push" }, { "id": "shipwrecker_push" } ]
  },
  {
    "id": "shipwrecker_push",
    "type": "SPELL",
    "name": "Shipwrecker Push",
    "description": "Push monsters around the player.  You can see it only in debug mode.",
    "effect": "area_push",
    "shape": "cone",
    "valid_targets": [ "ally", "hostile", "item", "ground" ],
    "flags": [ "SILENT", "NO_EXPLOSION_SFX" ],
    "max_level": 25,
    "min_aoe": 60,
    "max_aoe": 180,
    "aoe_increment": 5,
    "min_range": 5,
    "max_range": 12,
    "range_increment": 0.3
  },
  {
    "id": "explosive_decompression",
    "type": "SPELL",
    "name": "Explosive Decompression",
    "description": "Create a high-pressure zone originating from the selected point.  Shortly after, a massive pressure wave will crush everything inside, inflicting barotrarumatic injuries on everyone affected.",
    "effect": "attack",
    "shape": "blast",
    "valid_targets": [ "self", "ally", "hostile", "ground" ],
    "flags": [ "SOMATIC", "VERBAL", "NO_LEGS" ],
    "max_level": 15,
    "min_damage": 24,
    "max_damage": 84,
    "damage_increment": 4,
    "min_aoe": 0,
    "max_aoe": 6,
    "aoe_increment": 0.4,
    "min_range": 6,
    "max_range": 21,
    "range_increment": 1,
    "spell_class": "STORMSHAPER",
    "base_casting_time": 250,
    "final_casting_time": 50,
    "casting_time_increment": -14,
    "base_energy_cost": 400,
    "final_energy_cost": 125,
    "energy_increment": -20,
    "energy_source": "MANA",
    "difficulty": 4,
    "damage_type": "bash",
    "learn_spells": { "vacuum_decompression": 15 }
  },
  {
    "id": "vacuum_decompression",
    "type": "SPELL",
    "name": "Vacuum Decompression",
    "description": "Create a high-pressure zone originating from the selected point.  Shortly after, a massive pressure wave will crush everything inside, inflicting barotrarumatic injuries on everyone affected.  The pressure differential will also pull unprepared creatures inside the zone before collapsing.",
    "effect": "attack",
    "shape": "blast",
    "valid_targets": [ "self", "ally", "hostile", "ground" ],
    "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "EXTRA_EFFECTS_FIRST" ],
    "max_level": 25,
    "min_damage": 38,
    "max_damage": 158,
    "damage_increment": 5,
    "min_aoe": 2,
    "max_aoe": 9,
    "aoe_increment": 0.3,
    "min_range": 5,
    "max_range": 30,
    "range_increment": 1,
    "spell_class": "STORMSHAPER",
    "base_casting_time": 450,
    "final_casting_time": 100,
    "casting_time_increment": -14,
    "base_energy_cost": 400,
    "final_energy_cost": 250,
    "energy_increment": -6,
    "energy_source": "MANA",
    "difficulty": 7,
    "damage_type": "bash",
    "extra_effects": [
      { "id": "vacuum_decompression_pull" },
      { "id": "vacuum_decompression_pull" },
      { "id": "vacuum_decompression_pull" },
      { "id": "vacuum_decompression_pull" },
      { "id": "vacuum_decompression_pull" },
      { "id": "vacuum_decompression_pull" },
      { "id": "vacuum_decompression_pull" }
    ]
  },
  {
    "id": "vacuum_decompression_pull",
    "type": "SPELL",
    "name": "Vacuum Decompression Pull",
    "description": "Pull monsters around the target.  You can see it only in debug mode.",
    "effect": "area_pull",
    "shape": "blast",
    "valid_targets": [ "hostile", "item", "ground" ],
    "flags": [ "SILENT", "NO_EXPLOSION_SFX" ],
    "max_level": 25,
    "min_aoe": 5,
    "max_aoe": 16,
    "aoe_increment": 0.5
  },
  {
    "id": "air_bubble",
    "type": "SPELL",
    "name": "Air Bubble",
    "description": "Cover your head with an air bubble, allowing you to breathe underwater or prevent breathing of toxic gases.",
    "valid_targets": [ "self" ],
    "flags": [ "CONCENTRATE", "LOUD", "VERBAL", "NO_LEGS" ],
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "flask_ethereal_rebreather",
    "shape": "blast",
    "energy_source": "MANA",
    "spell_class": "STORMSHAPER",
    "difficulty": 3,
    "max_level": 10,
    "base_casting_time": 1000,
    "base_energy_cost": 200,
    "min_duration": 18000,
    "max_duration": 180000,
    "duration_increment": 18000
  },
  {
    "id": "storm_superconductor",
    "type": "SPELL",
    "name": { "str": "Superconductor" },
    "description": "Create arcs of devastating electric charge in an area around you, roasting everything within.",
    "valid_targets": [ "ally", "hostile", "ground" ],
    "effect": "attack",
    "effect_str": "zapped",
    "shape": "blast",
    "base_casting_time": 250,
    "final_casting_time": 50,
    "casting_time_increment": -8,
    "base_energy_cost": 400,
    "final_energy_cost": 150,
    "energy_increment": -10,
    "energy_source": "MANA",
    "spell_class": "STORMSHAPER",
    "difficulty": 6,
    "max_level": 25,
    "min_damage": 30,
    "max_damage": 170,
    "damage_increment": 6,
    "damage_type": "electric",
    "range_increment": 0.3,
    "flags": [ "VERBAL", "LOUD", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ],
    "min_duration": 100,
    "max_duration": 500,
    "min_aoe": 1,
    "max_aoe": 4,
    "aoe_increment": 0.1,
    "field_id": "fd_electricity",
    "field_chance": 1,
    "min_field_intensity": 1,
    "max_field_intensity": 10,
    "field_intensity_increment": 0.4,
    "field_intensity_variance": 3
  },
  {
    "type": "SPELL",
    "id": "shocking_dash",
    "name": "Shocking Dash",
    "description": "Fill your legs with energy and quickly dash to a target destination.",
    "valid_targets": [ "hostile", "ground" ],
    "flags": [ "NO_HANDS", "LOUD" ],
    "effect": "dash",
    "shape": "cone",
    "min_damage": 0,
    "max_damage": 0,
    "min_range": 2,
    "max_range": 10,
    "range_increment": 0.35,
    "field_id": "fd_electricity",
    "min_field_intensity": 2,
    "max_field_intensity": 2,
    "spell_class": "STORMSHAPER",
    "base_casting_time": 200,
    "final_casting_time": 50,
    "casting_time_increment": -6,
    "base_energy_cost": 350,
    "final_energy_cost": 200,
    "energy_increment": -6,
    "max_level": 25,
    "energy_source": "MANA",
    "learn_spells": { "shocking_teleport": 15 }
  },
  {
    "type": "SPELL",
    "id": "shocking_teleport",
    "name": "Shocking Teleport",
    "description": "Briefly become lightning to teleport to a chosen spot, ignoring all obstacles in-between.",
    "valid_targets": [ "hostile", "ground" ],
    "flags": [ "NO_HANDS", "LOUD", "TARGET_TELEPORT" ],
    "effect": "short_range_teleport",
    "shape": "blast",
    "min_range": 4,
    "max_range": 20,
    "range_increment": 0.7,
    "spell_class": "STORMSHAPER",
    "base_casting_time": 500,
    "final_casting_time": 100,
    "casting_time_increment": -16,
    "base_energy_cost": 550,
    "final_energy_cost": 300,
    "energy_increment": -10,
    "max_level": 25,
    "energy_source": "MANA"
  },
  {
    "id": "shocking_teleport_damage",
    "type": "SPELL",
    "name": { "str": "Shocking Teleport damage" },
    "description": "Deal some damage around the teleportation.  You can see it only in debug mode.",
    "//": "extra_effects for shocking_teleport, currently doesn't work, because of various issues in dash/teleport and extra_effects incompabilies.",
    "valid_targets": [ "ally", "hostile", "ground" ],
    "effect": "attack",
    "effect_str": "zapped",
    "shape": "blast",
    "max_level": 25,
    "min_damage": 10,
    "max_damage": 85,
    "damage_increment": 3,
    "damage_type": "electric",
    "flags": [ "LOUD" ],
    "min_duration": 100,
    "max_duration": 500,
    "min_aoe": 1,
    "max_aoe": 7,
    "aoe_increment": 0.25,
    "field_id": "fd_electricity",
    "field_chance": 1,
    "min_field_intensity": 1,
    "max_field_intensity": 10,
    "field_intensity_increment": 0.4,
    "field_intensity_variance": 3
  },
  {
    "id": "toxtricity",
    "type": "SPELL",
    "name": "Toxtricity",
    "description": "Inject a corrosive electric energy into targets within the affected area, weakening them and dealing huge damage over time.",
    "effect": "attack",
    "effect_str": "zapped",
    "shape": "blast",
    "valid_targets": [ "self", "ally", "hostile", "ground" ],
    "flags": [ "SOMATIC", "VERBAL", "NO_LEGS" ],
    "max_level": 25,
    "min_damage": 0,
    "max_damage": 13,
    "damage_increment": 0.5,
    "min_aoe": 1,
    "max_aoe": 11,
    "aoe_increment": 0.4,
    "min_range": 6,
    "max_range": 21,
    "range_increment": 0.6,
    "min_duration": 0,
    "max_duration": 1500,
    "duration_increment": 60,
    "base_casting_time": 350,
    "final_casting_time": 150,
    "casting_time_increment": -8,
    "base_energy_cost": 400,
    "final_energy_cost": 125,
    "energy_increment": -11,
    "energy_source": "MANA",
    "difficulty": 5,
    "spell_class": "STORMSHAPER",
    "min_dot": 0,
    "max_dot": 15,
    "dot_increment": 0.6,
    "damage_type": "electric"
  },
  {
    "id": "electric_eye",
    "type": "SPELL",
    "name": "Electric Eye",
    "description": "Enhance your sight with your powers.  It allows you to see creatures of the same energy around you.  Enhanced perception speed enables you to see attacks coming, allowing for an additional block or dodge attempt.",
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "electric_eye",
    "shape": "blast",
    "flags": [ "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ],
    "spell_class": "STORMSHAPER",
    "energy_source": "MANA",
    "difficulty": 4,
    "base_casting_time": 3000,
    "final_casting_time": 1000,
    "casting_time_increment": -80,
    "base_energy_cost": 400,
    "final_energy_cost": 200,
    "energy_increment": -8,
    "max_level": 25,
    "min_duration": 57600,
    "max_duration": 1440000,
    "duration_increment": 57600
  },
  {
    "id": "electric_waves",
    "type": "SPELL",
    "name": "Electric Waves",
    "description": "Your hands start to emit a huge amount of energy, that you release with each attack.  The damage is increased the more you master the spell.",
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "electric_waves",
    "shape": "blast",
    "flags": [ "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ],
    "spell_class": "STORMSHAPER",
    "energy_source": "MANA",
    "difficulty": 5,
    "base_casting_time": 3000,
    "final_casting_time": 1000,
    "casting_time_increment": -80,
    "base_energy_cost": 400,
    "final_energy_cost": 200,
    "energy_increment": -8,
    "max_level": 25,
    "min_duration": 14400,
    "max_duration": 360000,
    "duration_increment": 14400
  },
  {
    "id": "electric_waves_damage",
    "type": "SPELL",
    "name": { "str": "Electric Waves Damage" },
    "description": "Blasts, generated by Electric Waves.",
    "valid_targets": [ "ally", "hostile", "ground" ],
    "effect": "attack",
    "shape": "blast",
    "min_damage": 10,
    "max_damage": 35,
    "min_range": 1,
    "damage_type": "electric",
    "flags": [ "LOUD", "RANDOM_DURATION", "RANDOM_AOE", "RANDOM_DAMAGE" ],
    "min_duration": 50,
    "max_duration": 200,
    "min_aoe": 1,
    "max_aoe": 2,
    "field_id": "fd_electricity",
    "field_chance": 2,
    "min_field_intensity": 1,
    "max_field_intensity": 4,
    "field_intensity_variance": 10
  },
  {
    "id": "electric_arts",
    "type": "SPELL",
    "name": "Electric Arts",
    "description": "A spell designed for scholars having just started to learn stormshaping, allowing them to reduce the damage to themselves their often capricious new abilities may cause.",
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "electric_arts",
    "shape": "blast",
    "flags": [ "NO_EXPLOSION_SFX" ],
    "spell_class": "STORMSHAPER",
    "energy_source": "MANA",
    "difficulty": 1,
    "base_casting_time": 48000,
    "base_energy_cost": 400,
    "final_energy_cost": 200,
    "energy_increment": -8,
    "max_level": 25,
    "min_duration": 230400,
    "max_duration": 5760000,
    "duration_increment": 230400
  },
  {
    "id": "summon_teravolt",
    "type": "SPELL",
    "name": "Summon Teravolt",
    "description": "Summon a Teravolt, a small, semi-intelligent spirit that homes onto hostile creatures before exploding into a huge spark cloud.",
    "valid_targets": [ "ground" ],
    "min_damage": 1,
    "max_damage": 1,
    "max_level": 25,
    "difficulty": 6,
    "spell_class": "STORMSHAPER",
    "effect": "summon",
    "effect_str": "mon_teravolt",
    "shape": "blast",
    "energy_source": "MANA",
    "base_energy_cost": 400,
    "final_energy_cost": 200,
    "energy_increment": -4,
    "base_casting_time": 600,
    "final_casting_time": 100,
    "casting_time_increment": -20,
    "min_aoe": 4,
    "max_aoe": 4,
    "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "PERMANENT", "NO_EXPLOSION_SFX" ],
    "min_duration": 4800,
    "max_duration": 120000,
    "duration_increment": 4800
  },
  {
    "id": "stormshaper_cloak_of_fog",
    "type": "SPELL",
    "name": "Cloak of Fog",
    "description": "Call out to the sky spirits for aid and ask them to conceal you from your enemies.  The fog will hide your passage, but you do not have any special ability to see through it yourself.",
    "valid_targets": [ "self" ],
    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ],
    "effect": "attack",
    "extra_effects": [
      { "id": "stormshaper_cloak_fog_emitter", "hit_self": true, "max_level": 20 },
      { "id": "stormshaper_cloak_fog_wonder", "hit_self": true }
    ],
    "shape": "blast",
    "energy_source": "MANA",
    "spell_class": "STORMSHAPER",
    "difficulty": 4,
    "max_level": 20,
    "min_aoe": 4,
    "max_aoe": 20,
    "aoe_increment": 0.65,
    "field_id": "fd_obscuring_fog",
    "min_field_intensity": 2,
    "max_field_intensity": 3,
    "field_chance": 1,
    "base_energy_cost": 250,
    "base_casting_time": 300,
    "final_casting_time": 100,
    "casting_time_increment": -7.5
  },
  {
    "id": "stormshaper_cloak_fog_emitter",
    "type": "SPELL",
    "name": "Cloak of Fog Real",
    "description": "The spell that puts the effect of Cloak of Fog on you.  It's a bug if you can see it.",
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "effect_cloak_of_fog",
    "shape": "blast",
    "min_duration": 3000,
    "max_duration": 30000,
    "duration_increment": 575
  },
  {
    "id": "stormshaper_cloak_fog_wonder",
    "type": "SPELL",
    "name": "Cloak of Fog Wonder",
    "description": "Places other fog locations nearby.  The number depends on your cloak of fog level.",
    "flags": [ "WONDER", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "self" ],
    "effect": "attack",
    "extra_effects": [ { "id": "stormshaper_cloak_fog_random", "max_level": 20 } ],
    "shape": "blast",
    "min_damage": { "math": [ "( (u_spell_level('stormshaper_cloak_of_fog') * 0.5) + 2)" ] },
    "max_damage": { "math": [ "( (u_spell_level('stormshaper_cloak_of_fog') * 0.5) + 2)" ] }
  },
  {
    "id": "stormshaper_cloak_fog_random",
    "type": "SPELL",
    "name": "Cloak of Fog Random",
    "description": "The spell that puts the effect of Cloak of Fog on you.  It's a bug if you can see it.",
    "flags": [ "RANDOM_TARGET", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground" ],
    "message": "",
    "effect": "attack",
    "effect_str": "effect_cloak_of_fog",
    "shape": "blast",
    "min_range": 5,
    "max_range": 25,
    "range_increment": 1,
    "min_aoe": 4,
    "max_aoe": 20,
    "aoe_increment": 0.65,
    "field_id": "fd_obscuring_fog",
    "min_field_intensity": 2,
    "max_field_intensity": 3,
    "field_chance": 2
  },
  {
    "id": "stormshaper_heart_of_hurricane",
    "type": "SPELL",
    "name": "Heart of the Hurricane",
    "description": "Compress the fury of the hurricane winds into a thin shell of raging air around yourself.  It will make it harder for you to lose your footing or be knocked down and occasionally throw attackers away from you, but the whirling winds are loud.",
    "valid_targets": [ "self" ],
    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ],
    "effect": "attack",
    "effect_str": "effect_heart_of_hurricane",
    "shape": "blast",
    "spell_class": "STORMSHAPER",
    "difficulty": 7,
    "max_level": 20,
    "min_duration": 15000,
    "max_duration": 90000,
    "duration_increment": 3750,
    "energy_source": "MANA",
    "base_energy_cost": 650,
    "base_casting_time": 1500
  },
  {
    "id": "stormshaper_heart_of_hurricane_throw",
    "type": "SPELL",
    "name": "Heart of the Hurricane Throw",
    "description": "This is the spell that throws your target back.  It's a bug if you have it directly.",
    "message": "The winds lash out and hurl <npcname> away!",
    "valid_targets": [ "ally", "hostile", "item", "ground" ],
    "spell_class": "STORMSHAPER",
    "flags": [ "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ],
    "effect": "directed_push",
    "shape": "blast",
    "min_damage": 1,
    "max_damage": { "math": [ "( (u_spell_level('stormshaper_heart_of_hurricane') / 2) + 1)" ] },
    "min_range": 1
  },
  {
    "id": "stormshaper_cloak_of_frog",
    "type": "SPELL",
    "name": "Cloak of Frog",
    "description": "Someone's personal notes were added to this spell.  You're positive that they changed both the name and the function.",
    "valid_targets": [ "self" ],
    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ],
    "effect": "attack",
    "extra_effects": [
      { "id": "stormshaper_cloak_frog_transform", "hit_self": true },
      { "id": "stormshaper_cloak_frog_summon_wonder", "hit_self": false }
    ],
    "shape": "blast",
    "spell_class": "STORMSHAPER",
    "difficulty": 4,
    "max_level": 20,
    "min_duration": 15000,
    "max_duration": 90000,
    "duration_increment": 3750,
    "energy_source": "MANA",
    "base_energy_cost": 350,
    "base_casting_time": 150
  },
  {
    "id": "stormshaper_cloak_frog_transform",
    "type": "SPELL",
    "name": "Cloak of Frog Transform",
    "description": "Grants the caster some post-threshold Batrachian mutations if they aren't already a frog mutant.",
    "flags": [ "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "self" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_GAIN_CLOAK_OF_FROG_MUTATIONS",
    "shape": "blast"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_GAIN_CLOAK_OF_FROG_MUTATIONS",
    "//": "mutations chosen to have minimal conflicts with other mutations",
    "condition": { "not": { "u_has_trait": "THRESH_BATRACHIAN" } },
    "effect": [
      { "u_add_trait": "FRESHWATEROSMOSIS" },
      { "u_add_trait": "PHEROMONE_AMPHIBIAN" },
      { "u_add_trait": "AMPHIBIAN" },
      {
        "queue_eocs": "EOC_LOSE_CLOAK_OF_FROG_MUTATIONS",
        "time_in_future": [
          { "math": [ "( (u_spell_level('stormshaper_cloak_of_frog') * 3750) + 15000)" ] },
          { "math": [ "( (u_spell_level('stormshaper_cloak_of_frog') * 3750) + 15000)" ] }
        ]
      }
    ],
    "false_effect": [  ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_LOSE_CLOAK_OF_FROG_MUTATIONS",
    "effect": [
      { "u_message": "It wasn't easy being green.", "type": "mixed" },
      { "u_lose_trait": "FRESHWATEROSMOSIS" },
      { "u_lose_trait": "PHEROMONE_AMPHIBIAN" },
      { "u_lose_trait": "AMPHIBIAN" }
    ]
  },
  {
    "id": "stormshaper_cloak_frog_summon_wonder",
    "type": "SPELL",
    "name": "Cloak of Frog Wonder",
    "description": "Places other frog locations nearby.  The number depends on your cloak of frog level.",
    "flags": [ "WONDER", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "self" ],
    "effect": "attack",
    "extra_effects": [ { "id": "stormshaper_cloak_frog_summon", "max_level": 20 } ],
    "shape": "blast",
    "min_damage": { "math": [ "( (u_spell_level('stormshaper_cloak_of_frog') * 1) + 1)" ] },
    "max_damage": { "math": [ "( (u_spell_level('stormshaper_cloak_of_frog') * 1) + 1)" ] }
  },
  {
    "id": "stormshaper_cloak_frog_summon",
    "type": "SPELL",
    "name": "Cloak of Frog Summon",
    "description": "The spell that creates the frogs.  It's a bug if you have it.",
    "flags": [ "RANDOM_TARGET", "NO_EXPLOSION_SFX", "SPAWN_GROUP" ],
    "valid_targets": [ "ground", "hostile" ],
    "message": "",
    "effect": "summon",
    "effect_str": "GROUP_FROGS_CLOAK",
    "shape": "blast",
    "min_damage": 1,
    "max_damage": 1,
    "min_range": 5,
    "max_range": 25,
    "range_increment": 1,
    "min_aoe": 4,
    "max_aoe": 20,
    "aoe_increment": 0.65,
    "min_duration": { "math": [ "( (u_spell_level('stormshaper_cloak_of_frog') * 3750) + 15000)" ] }
  }
]
