[
  {
    "id": "mirror_image_rad_mage",
    "type": "SPELL",
    "name": { "str": "Mirror Image Radiation Mage", "//~": "NO_I18N" },
    "description": { "str": "This spell summons duplicates of the radiation mage.  It's a bug if you have it.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_mirror_image_rad_mage",
    "shape": "blast",
    "max_level": 2,
    "min_damage": 3,
    "max_damage": 5,
    "damage_increment": 1,
    "min_range": 4,
    "max_range": 8,
    "range_increment": 2,
    "min_aoe": 3,
    "max_aoe": 3,
    "min_duration": 2000
  },
  {
    "id": "feral_rad_mage_rad_spell",
    "type": "SPELL",
    "name": { "str": "Create Rads Radiation Mage", "//~": "NO_I18N" },
    "description": { "str": "This spell creates radiation gas around a target.  It's a bug if you have it.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile" ],
    "effect": "emit",
    "effect_str": "emit_rad_cloud",
    "shape": "blast",
    "max_level": 10,
    "min_range": 5,
    "max_range": 15,
    "range_increment": 1
  },
  {
    "id": "feral_rad_mage_summon_spell",
    "type": "SPELL",
    "name": { "str": "Summon Zombie", "//~": "NO_I18N" },
    "description": { "str": "A spell for the feral rad mage to summon a zombie.  It's a bug if you have this.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile", "ground" ],
    "flags": [ "WONDER", "NO_PROJECTILE" ],
    "max_level": 1,
    "min_damage": 1,
    "max_damage": 1,
    "min_range": 10,
    "max_range": 10,
    "message": "",
    "shape": "blast",
    "effect": "attack",
    "extra_effects": [
      { "id": "feral_animist_summon_zombie" },
      { "id": "feral_animist_summon_zombie" },
      { "id": "feral_animist_summon_zombie" },
      { "id": "feral_animist_summon_zombie" },
      { "id": "feral_animist_summon_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_zombie_brute" },
      { "id": "feral_animist_summon_zombie_brute" },
      { "id": "feral_animist_summon_zombie_brute" },
      { "id": "feral_animist_summon_zombie_brute" },
      { "id": "feral_animist_summon_zombie_brute" },
      { "id": "feral_animist_summon_zombie_brute" },
      { "id": "feral_animist_summon_zombie_brute" },
      { "id": "feral_animist_summon_zombie_brute" },
      { "id": "feral_animist_summon_zombie_brute" },
      { "id": "feral_animist_summon_zombie_hulk" }
    ]
  },
  {
    "id": "feral_animist_summon_zombie",
    "type": "SPELL",
    "name": { "str": "Summon Zombie", "//~": "NO_I18N" },
    "description": { "str": "A spell for the feral rad mage to summon a normal zombie.  It's a bug if you have this.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "flags": [ "HOSTILE_SUMMON", "LOUD", "NO_PROJECTILE" ],
    "min_damage": 1,
    "max_damage": 1,
    "min_aoe": 3,
    "max_aoe": 5,
    "min_range": 10,
    "max_range": 10,
    "min_duration": 30000,
    "max_duration": 30000,
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_zombie",
    "sound_description": "a roar"
  },
  {
    "id": "feral_animist_summon_tough_zombie",
    "type": "SPELL",
    "name": { "str": "Summon Tough Zombie", "//~": "NO_I18N" },
    "description": {
      "str": "A spell for the feral rad mage to summon a tough zombie brute.  It's a bug if you have this.",
      "//~": "NO_I18N"
    },
    "valid_targets": [ "ground" ],
    "flags": [ "HOSTILE_SUMMON", "LOUD", "NO_PROJECTILE" ],
    "min_damage": 1,
    "max_damage": 1,
    "min_aoe": 3,
    "max_aoe": 5,
    "min_range": 10,
    "max_range": 10,
    "min_duration": 30000,
    "max_duration": 30000,
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_zombie_tough",
    "sound_description": "a roar"
  },
  {
    "id": "feral_animist_summon_zombie_brute",
    "type": "SPELL",
    "name": { "str": "Summon Zombie Brute", "//~": "NO_I18N" },
    "description": { "str": "A spell for the feral rad mage to summon a zombie brute.  It's a bug if you have this.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "flags": [ "HOSTILE_SUMMON", "LOUD", "NO_PROJECTILE" ],
    "min_damage": 1,
    "max_damage": 1,
    "min_aoe": 3,
    "max_aoe": 5,
    "min_range": 10,
    "max_range": 10,
    "min_duration": 30000,
    "max_duration": 30000,
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_zombie_brute",
    "sound_description": "a roar"
  },
  {
    "id": "feral_animist_summon_zombie_hulk",
    "type": "SPELL",
    "name": { "str": "Radiation Mage Summon Zombie", "//~": "NO_I18N" },
    "description": {
      "str": "A spell for the feral rad mage to summon a zombie hulk.  They probably won't cast this--but good luck if they do.",
      "//~": "NO_I18N"
    },
    "valid_targets": [ "ground" ],
    "flags": [ "HOSTILE_SUMMON", "LOUD", "NO_PROJECTILE" ],
    "min_damage": 1,
    "max_damage": 1,
    "min_aoe": 3,
    "max_aoe": 5,
    "min_range": 10,
    "max_range": 10,
    "min_duration": 30000,
    "max_duration": 30000,
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_zombie_hulk",
    "sound_description": "a roar"
  },
  {
    "id": "feral_rad_mage_swap_spell",
    "type": "SPELL",
    "name": { "str": "Change Places with mirror image", "//~": "NO_I18N" },
    "description": {
      "str": "The spell for the feral radiation mage swapping places with a mirror image.  It's a bug if you have it.",
      "//~": "NO_I18N"
    },
    "valid_targets": [ "ally" ],
    "targeted_monster_ids": [ "mon_mirror_image_rad_mage" ],
    "flags": [ "NO_LEGS", "LOUD", "SOMATIC", "SWAP_POS", "NO_PROJECTILE" ],
    "effect": "attack",
    "shape": "blast",
    "max_level": 20,
    "min_range": 5,
    "max_range": 15,
    "range_increment": 1.0
  },
  {
    "id": "dispel_magic_monster",
    "type": "SPELL",
    "name": { "str": "Dispel Magic Monster", "//~": "NO_I18N" },
    "description": { "str": "Dispel magic for monsters so they'll only dispel their enemies", "//~": "NO_I18N" },
    "valid_targets": [ "hostile" ],
    "effect": "attack",
    "effect_str": "effect_dispel_magic",
    "shape": "blast",
    "min_duration": 200,
    "max_duration": 200,
    "min_range": 3,
    "max_range": 20,
    "range_increment": 1.2
  },
  {
    "id": "disjunction_monster",
    "type": "SPELL",
    "name": { "str": "Disjunction Monster", "//~": "NO_I18N" },
    "description": { "str": "Disjunction for monsters so they'll only dispel their enemies", "//~": "NO_I18N" },
    "valid_targets": [ "hostile" ],
    "effect": "attack",
    "effect_str": "effect_disjunction",
    "shape": "blast",
    "min_duration": 200,
    "max_duration": 200,
    "min_range": 3,
    "max_range": 20,
    "range_increment": 1.2
  },
  {
    "id": "feral_animist_summon_spell",
    "type": "SPELL",
    "name": { "str": "Feral Animist Summon Zombie", "//~": "NO_I18N" },
    "description": { "str": "A spell for the feral animist to summon a zombie.  It's a bug if you have this.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile", "ground" ],
    "flags": [ "WONDER", "NO_PROJECTILE" ],
    "max_level": 1,
    "min_damage": 1,
    "max_damage": 1,
    "min_range": 10,
    "max_range": 10,
    "message": "",
    "shape": "blast",
    "effect": "attack",
    "extra_effects": [
      { "id": "feral_animist_summon_zombie" },
      { "id": "feral_animist_summon_zombie" },
      { "id": "feral_animist_summon_zombie" },
      { "id": "feral_animist_summon_zombie" },
      { "id": "feral_animist_summon_zombie" },
      { "id": "feral_animist_summon_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_tough_zombie" },
      { "id": "feral_animist_summon_zombie_brute" },
      { "id": "feral_animist_summon_zombie_brute" },
      { "id": "feral_animist_summon_zombie_brute" }
    ]
  },
  {
    "type": "SPELL",
    "id": "feral_animist_guardian_spirit",
    "name": { "str": "Guardian Spirit Monster enemy check", "//~": "NO_I18N" },
    "description": { "str": "Preps for using Guardian Spirit when a hostile target is detected.", "//~": "NO_I18N" },
    "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ],
    "valid_targets": [ "hostile" ],
    "max_level": 1,
    "effect": "attack",
    "extra_effects": [ { "id": "feral_animist_guardian_spirit_self", "hit_self": true } ],
    "shape": "blast",
    "min_range": 60,
    "max_range": 60
  },
  {
    "type": "SPELL",
    "id": "feral_animist_guardian_spirit_self",
    "name": { "str": "Guardian Spirit Monster give Effect", "//~": "NO_I18N" },
    "description": { "str": "Grants the Guardian Spirit effect to a monster.", "//~": "NO_I18N" },
    "flags": [ "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN", "RANDOM_DURATION" ],
    "valid_targets": [ "self" ],
    "max_level": 1,
    "effect": "attack",
    "effect_str": "effect_feral_animist_guardian_spirit",
    "shape": "blast",
    "min_duration": 12000,
    "max_duration": 42000
  },
  {
    "type": "SPELL",
    "id": "feral_animist_inner_voice",
    "name": { "str": "Inner Voice Spirit Monster enemy check", "//~": "NO_I18N" },
    "description": { "str": "Preps for using Inner Voice when a hostile target is nearby", "//~": "NO_I18N" },
    "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ],
    "valid_targets": [ "hostile" ],
    "max_level": 1,
    "effect": "attack",
    "extra_effects": [ { "id": "feral_animist_inner_voice_self", "hit_self": true } ],
    "shape": "blast",
    "min_range": 60,
    "max_range": 60
  },
  {
    "type": "SPELL",
    "id": "feral_animist_inner_voice_self",
    "name": { "str": "Inner Voice Monster give Effect", "//~": "NO_I18N" },
    "description": { "str": "Grants the Inner Voice effect to a monster.", "//~": "NO_I18N" },
    "flags": [ "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN", "RANDOM_DURATION" ],
    "valid_targets": [ "self" ],
    "max_level": 1,
    "effect": "attack",
    "effect_str": "effect_feral_animist_inner_voice",
    "shape": "blast",
    "min_duration": 30000,
    "max_duration": 60000
  },
  {
    "type": "SPELL",
    "id": "feral_high_animist_wrathful_spirits",
    "name": { "str": "Wrathful Spirits Monster enemy check", "//~": "NO_I18N" },
    "description": { "str": "Preps for using Wrathful Spirits when a hostile target is close.", "//~": "NO_I18N" },
    "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ],
    "valid_targets": [ "hostile" ],
    "max_level": 1,
    "effect": "attack",
    "extra_effects": [ { "id": "feral_high_animist_wrathful_spirits_self", "hit_self": true } ],
    "shape": "blast",
    "min_range": 4,
    "max_range": 4
  },
  {
    "id": "feral_high_animist_wrathful_spirits_self",
    "type": "SPELL",
    "name": { "str": "Wrathful Spirits Summon", "//~": "NO_I18N" },
    "description": "Grant brief corporality to orphaned spirits and allow them to fight under your command.",
    "valid_targets": [ "ground" ],
    "min_damage": 2,
    "max_damage": 6,
    "damage_increment": 0.2,
    "max_level": 30,
    "difficulty": 1,
    "effect": "summon",
    "effect_str": "mon_magi_shadow_monster",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "min_aoe": 3,
    "max_aoe": 3,
    "flags": [ "SOMATIC", "VERBAL", "HOSTILE_SUMMON" ],
    "min_duration": 3600,
    "max_duration": 12000,
    "duration_increment": 280
  },
  {
    "id": "summon_wolf_druid_monster",
    "type": "SPELL",
    "name": { "str": "Summon Wolf Monster", "//~": "NO_I18N" },
    "description": { "str": "Call to the wilds for aid from some wolves.  This is the monster version.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile", "ground" ],
    "min_damage": 1,
    "max_damage": 3,
    "damage_increment": 0.08,
    "min_range": 2,
    "max_range": 7,
    "min_aoe": 2,
    "max_aoe": 2,
    "range_increment": 0.2,
    "max_level": 30,
    "min_duration": 36000,
    "max_duration": 1080000,
    "duration_increment": 36000,
    "base_energy_cost": 400,
    "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "HOSTILE_SUMMON" ],
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_wolf_feral_druid"
  },
  {
    "type": "SPELL",
    "id": "feral_magus_push_nearby_enemies_back_target",
    "name": { "str": "Feral Magus Repulsion Wave Starter", "//~": "NO_I18N" },
    "description": {
      "str": "Someday monsters will be smart enough to cast AoE spells without workarounds but it is not this day.",
      "//~": "NO_I18N"
    },
    "valid_targets": [ "hostile" ],
    "flags": [ "VERBAL", "SOMATIC" ],
    "effect": "noise",
    "extra_effects": [ { "id": "feral_magus_push_nearby_enemies_back" } ],
    "shape": "blast",
    "spell_class": "MAGUS",
    "min_range": 1
  },
  {
    "type": "SPELL",
    "id": "feral_magus_push_nearby_enemies_back",
    "name": { "str": "Feral Magus Repulsion Wave", "//~": "NO_I18N" },
    "description": { "str": "It's like Repulsion Wave but for ferals", "//~": "NO_I18N" },
    "valid_targets": [ "ally", "hostile" ],
    "flags": [ "VERBAL", "SOMATIC" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_FERAL_MAGUS_PUSH_NEARBY_ENEMIES_BACK",
    "shape": "blast",
    "spell_class": "MAGUS",
    "min_aoe": 1
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_FERAL_MAGUS_PUSH_NEARBY_ENEMIES_BACK",
    "condition": "has_alpha",
    "effect": [
      { "npc_location_variable": { "context_val": "player_position" } },
      { "math": [ "_push_nearby_enemies_power_level = 8" ] },
      { "math": [ "_telekinesis_weight_ratio = 55" ] },
      {
        "math": [
          "_weight_ratio",
          "=",
          "( (_push_nearby_enemies_power_level * _telekinesis_weight_ratio) + (_telekinesis_weight_ratio / 2) ) / (u_weight() / 1000000)"
        ]
      },
      { "math": [ "_telekinesis_shove_spell_level = clamp( ( (_weight_ratio - 1) * 1.5), 0, 20)" ] },
      {
        "if": { "x_in_y_chance": { "x": { "math": [ "_weight_ratio * 1000" ] }, "y": 1000 } },
        "then": [ { "u_add_effect": "downed", "duration": 2 } ]
      },
      {
        "u_knockback": { "math": [ "_telekinesis_shove_spell_level" ] },
        "stun": 2,
        "dam_mult": { "math": [ "1 + (_telekinesis_shove_spell_level * 0.4)" ] },
        "direction_var": { "context_val": "player_position" }
      }
    ]
  },
  {
    "id": "feral_stormshaper_summon_stormhammer_spell",
    "type": "SPELL",
    "name": { "str": "Call Stormhammer Monster", "//~": "NO_I18N" },
    "description": { "str": "Summon a stormhammer by effect.  You should never see this.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "max_level": 20,
    "flags": [ "SOMATIC", "NO_LEGS" ],
    "shape": "blast",
    "effect": "attack",
    "effect_str": "effect_feral_stormshaper_stormhammer",
    "extra_effects": [ { "id": "feral_stormshaper_summon_stormhammer_spell_internal_cooldown", "hit_self": true } ],
    "min_duration": 36000,
    "max_duration": 1080000,
    "duration_increment": 36000
  },
  {
    "id": "feral_stormshaper_summon_stormhammer_spell_internal_cooldown",
    "type": "SPELL",
    "name": { "str": "Call Stormhammer Monster Cooldown", "//~": "NO_I18N" },
    "description": {
      "str": "Designed to make any future stormhammers have a much longer cooldown than the first one so that dispelling them is tactically advantageous.  You shouldn't see this.",
      "//~": "NO_I18N"
    },
    "valid_targets": [ "self" ],
    "flags": [ "SOMATIC", "NO_LEGS", "RANDOM_DURATION" ],
    "shape": "blast",
    "effect": "attack",
    "effect_str": "effect_feral_stormshaper_stormhammer_cooldown",
    "min_duration": 12000,
    "max_duration": 36000
  },
  {
    "id": "feral_technomancer_summon_mage_blade_spell",
    "type": "SPELL",
    "name": { "str": "Call Mage Blade Monster", "//~": "NO_I18N" },
    "description": { "str": "Summon a mage blade by effect.  You should never see this.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "max_level": 20,
    "flags": [ "SOMATIC", "NO_LEGS" ],
    "shape": "blast",
    "effect": "attack",
    "effect_str": "effect_feral_technomancer_mage_blade",
    "extra_effects": [ { "id": "feral_technomancer_mage_blade_internal_cooldown", "hit_self": true } ],
    "min_duration": 36000,
    "max_duration": 1080000,
    "duration_increment": 36000
  },
  {
    "id": "feral_technomancer_mage_blade_internal_cooldown",
    "type": "SPELL",
    "name": { "str": "Call Mage Blade Monster Cooldown", "//~": "NO_I18N" },
    "description": {
      "str": "Designed to make any future mage blades have a much longer cooldown than the first one so that dispelling them is tactically advantageous.  You shouldn't see this.",
      "//~": "NO_I18N"
    },
    "valid_targets": [ "self" ],
    "flags": [ "SOMATIC", "NO_LEGS", "RANDOM_DURATION" ],
    "shape": "blast",
    "effect": "attack",
    "effect_str": "effect_feral_technomancer_mage_blade_cooldown",
    "min_duration": 12000,
    "max_duration": 36000
  },
  {
    "id": "feral_technomancer_summon_mage_armor_spell",
    "type": "SPELL",
    "name": { "str": "Call Mage Armor Monster", "//~": "NO_I18N" },
    "description": { "str": "Summon a mage armor by effect.  You should never see this.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "max_level": 20,
    "flags": [ "SOMATIC", "NO_LEGS" ],
    "shape": "blast",
    "effect": "attack",
    "effect_str": "effect_feral_technomancer_mage_armor",
    "extra_effects": [ { "id": "feral_technomancer_mage_armor_internal_cooldown", "hit_self": true } ],
    "min_duration": 36000,
    "max_duration": 1080000,
    "duration_increment": 36000
  },
  {
    "id": "feral_high_technomancer_summon_mage_armor_spell",
    "type": "SPELL",
    "name": { "str": "Call Mage Armor Monster", "//~": "NO_I18N" },
    "description": { "str": "Summon a mage armor by effect.  You should never see this.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "max_level": 20,
    "flags": [ "SOMATIC", "NO_LEGS" ],
    "shape": "blast",
    "effect": "attack",
    "effect_str": "effect_feral_high_technomancer_mage_armor",
    "extra_effects": [ { "id": "feral_technomancer_mage_armor_internal_cooldown", "hit_self": true } ],
    "min_duration": 36000,
    "max_duration": 1080000,
    "duration_increment": 36000
  },
  {
    "id": "feral_technomancer_mage_armor_internal_cooldown",
    "type": "SPELL",
    "name": { "str": "Call Mage Armor Monster Cooldown", "//~": "NO_I18N" },
    "description": {
      "str": "Designed to make any future mage armor have a much longer cooldown than the first one so that dispelling them is tactically advantageous.  You shouldn't see this.",
      "//~": "NO_I18N"
    },
    "valid_targets": [ "self" ],
    "flags": [ "SOMATIC", "NO_LEGS", "RANDOM_DURATION" ],
    "shape": "blast",
    "effect": "attack",
    "effect_str": "effect_feral_technomancer_mage_armor_cooldown",
    "min_duration": 12000,
    "max_duration": 36000
  },
  {
    "id": "feral_technomancer_bless_spell",
    "type": "SPELL",
    "name": { "str": "Bless Self", "//~": "NO_I18N" },
    "description": { "str": "Cast bless on yourself if you're a feral.  You should never see this.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "max_level": 20,
    "flags": [ "VERBAL", "SOMATIC", "NO_LEGS" ],
    "shape": "blast",
    "effect": "attack",
    "effect_str": "effect_feral_technomancer_bless",
    "min_duration": 6000,
    "max_duration": 30000,
    "duration_increment": 1200
  },
  {
    "id": "feral_invisibility",
    "type": "SPELL",
    "name": { "str": "Feral invisibilty", "//~": "NO_I18N" },
    "description": { "str": "Cast invisibility on yourself if you're a feral.  You should never see this.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "invisibility",
    "shape": "blast",
    "flags": [ "ENHANCEMENT_SPELL", "SILENT", "SOMATIC", "RANDOM_DURATION" ],
    "min_duration": 1250,
    "max_duration": 6000,
    "duration_increment": 250
  },
  {
    "id": "feral_animated_blade",
    "type": "SPELL",
    "name": { "str": "Feral Animated Blade", "//~": "NO_I18N" },
    "description": {
      "str": "This spell conjures flying animated blades that will cut you down to size.  Into small pieces that is.",
      "//~": "NO_I18N"
    },
    "valid_targets": [ "hostile", "ground" ],
    "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "RANDOM_DAMAGE", "RANDOM_DURATION", "HOSTILE_SUMMON" ],
    "effect": "summon",
    "effect_str": "mon_animated_blade_feral",
    "shape": "blast",
    "max_level": 25,
    "min_damage": 1,
    "max_damage": 2,
    "min_range": 1,
    "max_range": 5,
    "range_increment": 0.25,
    "min_aoe": 3,
    "max_aoe": 3,
    "min_duration": 2000,
    "max_duration": 5000
  },
  {
    "id": "feral_synaptic_stimulation",
    "type": "SPELL",
    "name": { "str": "Feral Synaptic Stimulation", "//~": "NO_I18N" },
    "description": { "str": "This spell stimulates the synapses in your brain if you're a feral.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS", "VERBAL", "NO_PROJECTILE" ],
    "effect": "attack",
    "effect_str": "synaptic_stim",
    "shape": "blast",
    "spell_class": "TECHNOMANCER",
    "energy_source": "MANA",
    "max_level": 20,
    "min_duration": 6000,
    "max_duration": 180000,
    "duration_increment": 8700
  },
  {
    "id": "feral_laze",
    "type": "SPELL",
    "name": { "str": "Laze", "//~": "NO_I18N" },
    "description": {
      "str": "You concentrate and release a focused beam of photons at a target, also known as a laser.  Also you are a monster",
      "//~": "NO_I18N"
    },
    "valid_targets": [ "hostile", "ground", "ally" ],
    "flags": [ "EVOCATION_SPELL", "NO_LEGS", "LOUD", "SOMATIC", "NO_PROJECTILE" ],
    "effect": "attack",
    "shape": "line",
    "max_level": 20,
    "base_casting_time": 100,
    "casting_time_increment": -1.0,
    "final_casting_time": 80,
    "base_energy_cost": 150,
    "energy_increment": -2.0,
    "final_energy_cost": 110,
    "min_damage": 15,
    "max_damage": 60,
    "damage_increment": 2.5,
    "damage_type": "light",
    "min_range": 10,
    "max_range": 25,
    "range_increment": 1.0,
    "field_id": "fd_laser",
    "min_field_intensity": 2,
    "max_field_intensity": 2,
    "field_chance": 1
  }
]
