[
  {
    "id": "smite",
    "type": "SPELL",
    "name": "Smite",
    "description": "Evil has become pervasive throughout the world.  Let your power be the light that shines in the darkness!",
    "valid_targets": [ "hostile" ],
    "min_damage": { "math": [ "(u_spell_level('smite') * 5) + 5" ] },
    "max_damage": { "math": [ "(u_spell_level('smite') * 9) + 10" ] },
    "damage_increment": 15,
    "min_range": 1,
    "max_range": 1,
    "effect": "attack",
    "shape": "blast",
    "base_casting_time": 160,
    "final_casting_time": 40,
    "casting_time_increment": -8,
    "base_energy_cost": 400,
    "final_energy_cost": 200,
    "energy_increment": -14,
    "spell_class": "ANIMIST",
    "difficulty": 8,
    "max_level": 15,
    "damage_type": "light",
    "flags": [ "EVOCATION_SPELL", "VERBAL", "LOUD", "RANDOM_DAMAGE", "NO_HANDS", "SPLIT_DAMAGE" ],
    "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
    "magic_type": "magiclysm_generic_magic"
  },
  {
    "id": "recover_mana",
    "type": "SPELL",
    "name": "Life Conversion",
    "description": "You channel lifeforce itself into your spiritual energy.  You consume a rune to regain mana.",
    "valid_targets": [ "self" ],
    "min_damage": { "math": [ "(u_spell_level('recover_mana') * 10) + 30" ] },
    "max_damage": { "math": [ "(u_spell_level('recover_mana') * 20) + 70" ] },
    "max_level": 35,
    "effect": "recover_energy",
    "effect_str": "MANA",
    "shape": "blast",
    "spell_class": "ANIMIST",
    "magic_type": "magiclysm_generic_magic",
    "components": "spell_components_rune_animist",
    "base_casting_time": 500,
    "flags": [ "RESTORATION_SPELL", "SOMATIC", "RANDOM_DAMAGE", "VERBAL", "SILENT", "NO_LEGS", "CONSUMES_RUNES" ],
    "extra_effects": [ { "id": "eoc_restoration_setup", "hit_self": true } ],
    "difficulty": 3
  },
  {
    "id": "recover_pain",
    "type": "SPELL",
    "name": "Mind over Pain",
    "description": "With an intense ritual that resembles crossfit, you manage to put some of your pain at bay.",
    "valid_targets": [ "self" ],
    "min_damage": { "math": [ "(u_spell_level('recover_pain') * 1) + 5" ] },
    "max_damage": { "math": [ "(u_spell_level('recover_pain') * 2) + 10" ] },
    "max_level": 45,
    "spell_class": "ANIMIST",
    "magic_type": "magiclysm_generic_magic",
    "effect": "recover_energy",
    "effect_str": "PAIN",
    "shape": "blast",
    "energy_source": "STAMINA",
    "base_casting_time": 50000,
    "base_energy_cost": 5000,
    "energy_increment": 500.0,
    "flags": [ "RESTORATION_SPELL", "RANDOM_DAMAGE", "SOMATIC", "VERBAL", "PAIN_NORESIST" ],
    "extra_effects": [ { "id": "eoc_restoration_setup", "hit_self": true } ],
    "final_energy_cost": 10000
  },
  {
    "id": "summon_undead",
    "type": "SPELL",
    "name": "Summon Undead",
    "description": "An ethereal-looking undead rises from the depths of the earth to fight for you.  The type of undead you summon get deadlier with increasing spell level.",
    "valid_targets": [ "self" ],
    "min_damage": 1,
    "max_damage": 1,
    "max_level": 35,
    "difficulty": 3,
    "spell_class": "ANIMIST",
    "effect": "effect_on_condition",
    "effect_str": "EOC_SUMMON_ZOMBIE",
    "components": "spell_components_rune_animist",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "base_energy_cost": 400,
    "base_casting_time": 3000,
    "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE", "CONSUMES_RUNES" ],
    "min_duration": 36000,
    "max_duration": 1080000,
    "duration_increment": 36000,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_SUMMON_ZOMBIE",
    "effect": {
      "switch": { "math": [ "u_spell_level('summon_undead')" ] },
      "cases": [
        { "case": 0, "effect": { "u_cast_spell": { "id": "summon_zombie" } } },
        { "case": 7, "effect": { "u_cast_spell": { "id": "summon_tough_zombie" } } },
        { "case": 14, "effect": { "u_cast_spell": { "id": "summon_zombie_brute" } } },
        { "case": 21, "effect": { "u_cast_spell": { "id": "summon_skeleton" } } },
        { "case": 28, "effect": { "u_cast_spell": { "id": "summon_skeleton_brute" } } },
        { "case": 35, "effect": { "u_cast_spell": { "id": "summon_skeleton_hulk" } } }
      ]
    }
  },
  {
    "abstract": "summon_abstract_zombie",
    "type": "SPELL",
    "name": { "str": "Abstract Summon Zombie", "//~": "NO_I18N" },
    "description": { "str": "Abstract of Summon Undead spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "min_damage": 1,
    "max_damage": 1,
    "max_level": 35,
    "effect": "summon",
    "shape": "blast",
    "min_range": 3,
    "max_range": 3,
    "min_aoe": 2,
    "max_aoe": 2,
    "flags": [ "CONJURATION_SPELL", "SILENT", "NO_EXPLOSION_SFX", "NO_CORPSE_QUIET" ],
    "min_duration": 36000,
    "max_duration": 1080000,
    "duration_increment": 36000
  },
  {
    "id": "summon_zombie",
    "copy-from": "summon_abstract_zombie",
    "type": "SPELL",
    "name": { "str": "Summon Zombie", "//~": "NO_I18N" },
    "description": { "str": "Summon a zombie.  Part of Summon Undead spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_zombie",
    "max_level": 35,
    "min_duration": 216000,
    "max_duration": 216000,
    "duration_increment": 36000
  },
  {
    "id": "summon_tough_zombie",
    "copy-from": "summon_abstract_zombie",
    "type": "SPELL",
    "name": { "str": "Summon Tough Zombie", "//~": "NO_I18N" },
    "description": { "str": "Summon a tough zombie.  Part of Summon Undead spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_zombie_tough",
    "max_level": 35,
    "min_duration": 468000,
    "max_duration": 468000,
    "duration_increment": 36000
  },
  {
    "id": "summon_zombie_brute",
    "copy-from": "summon_abstract_zombie",
    "type": "SPELL",
    "name": { "str": "Summon Zombie Brute", "//~": "NO_I18N" },
    "description": { "str": "Summon a zombie brute.  Part of Summon Undead spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_zombie_brute",
    "max_level": 35,
    "min_duration": 720000,
    "max_duration": 720000,
    "duration_increment": 36000
  },
  {
    "id": "summon_skeleton",
    "copy-from": "summon_abstract_zombie",
    "type": "SPELL",
    "name": { "str": "Summon Skeleton Zombie", "//~": "NO_I18N" },
    "description": { "str": "Summon a skeleton zombie.  Part of Summon Undead spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_skeleton",
    "max_level": 35,
    "min_duration": 972000,
    "max_duration": 972000,
    "duration_increment": 36000
  },
  {
    "id": "summon_skeleton_brute",
    "copy-from": "summon_abstract_zombie",
    "type": "SPELL",
    "name": { "str": "Summon Skeletal Brute", "//~": "NO_I18N" },
    "description": { "str": "Summon a skeletal brute.  Part of Summon Undead spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_skeleton_brute",
    "max_level": 35,
    "min_duration": 1260000,
    "max_duration": 1260000,
    "duration_increment": 36000
  },
  {
    "id": "summon_skeleton_hulk",
    "copy-from": "summon_abstract_zombie",
    "type": "SPELL",
    "name": { "str": "Summon Skeletal Juggernaut", "//~": "NO_I18N" },
    "description": { "str": "Summon a skeletal juggernaut.  Part of Summon Undead spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_skeleton_hulk",
    "max_level": 35,
    "min_duration": 1260000,
    "max_duration": 1260000,
    "duration_increment": 36000
  },
  {
    "id": "summon_undead_swarm",
    "type": "SPELL",
    "name": "Summon Undead Swarm",
    "description": "A group of undead animals rises from the depths of the earth to fight for you.  The type of undead you summon get deadlier with increasing spell level.",
    "valid_targets": [ "self" ],
    "min_damage": 1,
    "max_damage": 1,
    "max_level": 35,
    "difficulty": 3,
    "spell_class": "ANIMIST",
    "effect": "effect_on_condition",
    "effect_str": "EOC_SUMMON_ZOMBIE_SWARM",
    "components": "spell_components_rune_animist_3",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "base_energy_cost": 600,
    "base_casting_time": 3000,
    "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE", "CONSUMES_RUNES" ],
    "min_duration": 36000,
    "max_duration": 1080000,
    "duration_increment": 36000,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_SUMMON_ZOMBIE_SWARM",
    "effect": {
      "switch": { "math": [ "u_spell_level('summon_undead_swarm')" ] },
      "cases": [
        { "case": 0, "effect": { "u_cast_spell": { "id": "summon_zombie_dog" } } },
        { "case": 5, "effect": { "u_cast_spell": { "id": "summon_dog_skeleton" } } },
        { "case": 10, "effect": { "u_cast_spell": { "id": "summon_zougar" } } },
        { "case": 15, "effect": { "u_cast_spell": { "id": "summon_wolf_skeleton" } } },
        { "case": 20, "effect": { "u_cast_spell": { "id": "summon_dog_zombie_brute" } } },
        { "case": 25, "effect": { "u_cast_spell": { "id": "summon_dog_skeleton_brute" } } },
        { "case": 30, "effect": { "u_cast_spell": { "id": "summon_dog_zombie_hulk" } } },
        { "case": 35, "effect": { "u_cast_spell": { "id": "summon_zougar_hunter" } } }
      ]
    }
  },
  {
    "abstract": "summon_abstract_swarm",
    "type": "SPELL",
    "name": { "str": "Abstract Summon Swarm", "//~": "NO_I18N" },
    "description": { "str": "Abstract of Summon Undead Swarm spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "min_damage": 3,
    "max_damage": 3,
    "max_level": 35,
    "effect": "summon",
    "shape": "blast",
    "min_range": 3,
    "max_range": 3,
    "min_aoe": 2,
    "max_aoe": 2,
    "flags": [ "CONJURATION_SPELL", "SILENT", "NO_EXPLOSION_SFX", "NO_CORPSE_QUIET" ],
    "min_duration": 36000,
    "max_duration": 1080000,
    "duration_increment": 36000
  },
  {
    "id": "summon_zombie_dog",
    "copy-from": "summon_abstract_swarm",
    "type": "SPELL",
    "name": { "str": "Summon Zombie Dog", "//~": "NO_I18N" },
    "description": { "str": "Summon a zombie dog.  Part of Summon Undead Swarm spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_zombie_dog",
    "max_level": 35,
    "min_duration": 144000,
    "max_duration": 144000,
    "duration_increment": 36000
  },
  {
    "id": "summon_dog_skeleton",
    "copy-from": "summon_abstract_swarm",
    "type": "SPELL",
    "name": { "str": "Summon Skeletal Dog", "//~": "NO_I18N" },
    "description": { "str": "Summon a skeletal dog.  Part of Summon Undead Swarm spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_dog_skeleton",
    "max_level": 35,
    "min_duration": 324000,
    "max_duration": 324000,
    "duration_increment": 36000
  },
  {
    "id": "summon_zougar",
    "copy-from": "summon_abstract_swarm",
    "type": "SPELL",
    "name": { "str": "Summon Decayed Pouncer", "//~": "NO_I18N" },
    "description": { "str": "Summon a decayed pouncer.  Part of Summon Undead Swarm spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_zougar",
    "max_level": 35,
    "min_duration": 504000,
    "max_duration": 504000,
    "duration_increment": 36000
  },
  {
    "id": "summon_wolf_skeleton",
    "copy-from": "summon_abstract_swarm",
    "type": "SPELL",
    "name": { "str": "Summon Skeletal Wolf", "//~": "NO_I18N" },
    "description": { "str": "Summon a skeletal wolf.  Part of Summon Undead Swarm spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_wolf_skeleton",
    "max_level": 35,
    "min_duration": 684000,
    "max_duration": 684000,
    "duration_increment": 36000
  },
  {
    "id": "summon_dog_zombie_brute",
    "copy-from": "summon_abstract_swarm",
    "type": "SPELL",
    "name": { "str": "Summon Barghest", "//~": "NO_I18N" },
    "description": { "str": "Summon a barghest.  Part of Summon Undead Swarm spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_dog_zombie_brute",
    "max_level": 35,
    "min_duration": 864000,
    "max_duration": 864000,
    "duration_increment": 36000
  },
  {
    "id": "summon_dog_skeleton_brute",
    "copy-from": "summon_abstract_swarm",
    "type": "SPELL",
    "name": { "str": "Summon Boneplate Wolf", "//~": "NO_I18N" },
    "description": { "str": "Summon a boneplate wolf.  Part of Summon Undead Swarm spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_dog_skeleton_brute",
    "max_level": 35,
    "min_duration": 1044000,
    "max_duration": 1044000,
    "duration_increment": 36000
  },
  {
    "id": "summon_dog_zombie_hulk",
    "copy-from": "summon_abstract_swarm",
    "type": "SPELL",
    "name": { "str": "Summon Hulking Horror", "//~": "NO_I18N" },
    "description": { "str": "Summon a Hulking Horror.  Part of Summon Undead Swarm spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_dog_zombie_hulk",
    "max_level": 35,
    "min_duration": 1260000,
    "max_duration": 1260000,
    "duration_increment": 36000
  },
  {
    "id": "summon_zougar_hunter",
    "copy-from": "summon_abstract_swarm",
    "type": "SPELL",
    "name": { "str": "Summon Spearcat Hunter", "//~": "NO_I18N" },
    "description": { "str": "Summon a spearcat hunter.  Part of Summon Undead Swarm spell.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_zougar_hunter",
    "max_level": 35,
    "min_duration": 1260000,
    "max_duration": 1260000,
    "duration_increment": 36000
  },
  {
    "id": "necrotic_gaze",
    "type": "SPELL",
    "name": "Necrotic Gaze",
    "description": "Using the power of blood contained within a rune, you imbue necrotic energy into your gaze, damaging the target you look at.",
    "valid_targets": [ "hostile" ],
    "effect": "attack",
    "shape": "line",
    "spell_class": "ANIMIST",
    "magic_type": "magiclysm_generic_magic",
    "flags": [
      "EVOCATION_SPELL",
      "NO_LEGS",
      "CONCENTRATE",
      "RANDOM_DAMAGE",
      "SOMATIC",
      "NO_PROJECTILE",
      "NO_HANDS",
      "CONSUMES_RUNES",
      "SPLIT_DAMAGE"
    ],
    "components": "spell_components_rune_animist",
    "min_damage": { "math": [ "(u_spell_level('necrotic_gaze') * 2) + 4" ] },
    "max_damage": { "math": [ "(u_spell_level('necrotic_gaze') * 5) + 8" ] },
    "min_range": 3,
    "max_range": 5,
    "range_increment": 0.1,
    "max_level": 25,
    "difficulty": 3,
    "base_casting_time": 100,
    "min_aoe": 1,
    "max_aoe": 3,
    "aoe_increment": 0.1,
    "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
    "damage_type": "necrotic"
  },
  {
    "id": "create_rune_animist",
    "type": "SPELL",
    "name": { "str": "Animist Rune" },
    "description": "Performing a ritual, you turn some of your blood into an animist rune.  You can use the rune to summon creatures, or as a catalyst for recipes.",
    "valid_targets": [ "self" ],
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "rune_animist",
    "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": "ANIMIST",
    "magic_type": "magiclysm_generic_magic",
    "energy_source": "HP",
    "//": "I'm not sure if this should train anything, since it's an innate ability.",
    "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ],
    "flags": [ "CHANNELING_SPELL", "PERMANENT", "NO_LEGS", "CONCENTRATE" ]
  },
  {
    "id": "dominate",
    "type": "SPELL",
    "name": "Domination",
    "description": "Force the undead creature you pick to obey your command, making it your ally for a short time.",
    "valid_targets": [ "hostile" ],
    "flags": [ "ENERVATION_SPELL", "CONCENTRATE", "SOMATIC", "SILENT", "CONSUMES_RUNES" ],
    "effect": "charm_monster",
    "targeted_monster_species": [ "ZOMBIE" ],
    "components": "spell_components_rune_animist_3",
    "shape": "blast",
    "message": "",
    "min_damage": 80,
    "max_damage": 280,
    "damage_increment": 10,
    "min_range": 4,
    "max_range": 26,
    "range_increment": 1.1,
    "base_energy_cost": 400,
    "spell_class": "ANIMIST",
    "difficulty": 6,
    "max_level": 20,
    "min_aoe": 0,
    "max_aoe": 1,
    "aoe_increment": 0.1,
    "min_duration": 36000,
    "max_duration": 1080000,
    "duration_increment": 36000,
    "base_casting_time": 300,
    "final_casting_time": 30,
    "casting_time_increment": -14,
    "extra_effects": [ { "id": "eoc_enervation_setup", "hit_self": true } ],
    "magic_type": "magiclysm_generic_magic"
  },
  {
    "id": "life_detonation",
    "type": "SPELL",
    "name": "Life Detonation",
    "description": "Force life energy into an allied undead, making them explode with tremendous force.",
    "valid_targets": [ "ally" ],
    "targeted_monster_species": [ "ZOMBIE" ],
    "effect": "attack",
    "shape": "blast",
    "spell_class": "ANIMIST",
    "flags": [ "EVOCATION_SPELL", "NO_LEGS", "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "NO_HANDS", "PERCENTAGE_DAMAGE" ],
    "min_damage": 100,
    "max_damage": 100,
    "min_range": 10,
    "max_range": 50,
    "range_increment": 1.6,
    "max_level": 25,
    "difficulty": 5,
    "base_casting_time": 150,
    "final_casting_time": 30,
    "casting_time_increment": -5,
    "base_energy_cost": 300,
    "magic_type": "magiclysm_generic_magic",
    "damage_type": "necrotic",
    "extra_effects": [ { "id": "life_detonation_explosion" }, { "id": "eoc_evocation_setup", "hit_self": true } ]
  },
  {
    "id": "life_detonation_explosion",
    "type": "SPELL",
    "name": { "str": "Life Detonation Explosion", "//~": "NO_I18N" },
    "description": { "str": "Detonation for life detonation spell.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile", "ground" ],
    "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SOMATIC", "SILENT", "SPLIT_DAMAGE" ],
    "effect": "attack",
    "shape": "blast",
    "message": "",
    "damage_type": "poison",
    "//": "would be cool to make it deal damage the same as hp of the monster, but not possible sadly",
    "//2": "actually possible using math and u_hp/u_max_hp, need to test it",
    "min_damage": 20,
    "max_damage": 180,
    "damage_increment": 6.4,
    "spell_class": "ANIMIST",
    "difficulty": 5,
    "max_level": 25,
    "min_aoe": 2,
    "max_aoe": 11,
    "aoe_increment": 0.4
  },
  {
    "id": "convert",
    "type": "SPELL",
    "name": "Convert",
    "description": "Kill an allied creature, converting its life energy into a compact rune that you can use afterwards.",
    "valid_targets": [ "ally" ],
    "flags": [ "TRANSFORMATION_SPELL", "CONCENTRATE", "SOMATIC", "SILENT", "PERCENTAGE_DAMAGE" ],
    "effect": "attack",
    "shape": "blast",
    "message": "",
    "min_damage": 100,
    "max_damage": 100,
    "min_range": 10,
    "max_range": 10,
    "base_energy_cost": 250,
    "spell_class": "ANIMIST",
    "difficulty": 4,
    "max_level": 10,
    "base_casting_time": 30000,
    "final_casting_time": 1000,
    "casting_time_increment": -200,
    "magic_type": "magiclysm_generic_magic",
    "damage_type": "pure",
    "extra_effects": [ { "id": "create_rune_animist", "hit_self": true }, { "id": "eoc_transformation_setup", "hit_self": true } ]
  },
  {
    "id": "soulrend",
    "type": "SPELL",
    "name": "Soulrend",
    "description": "Violently tears the spirit from the body and binds the resulting shade to your will.",
    "valid_targets": [ "hostile", "ally" ],
    "flags": [ "CONJURATION_SPELL", "NO_LEGS", "LOUD", "SOMATIC", "POLYMORPH_GROUP", "FRIENDLY_POLY", "NO_HANDS" ],
    "effect": "targeted_polymorph",
    "effect_str": "GROUP_POLYMORPH_SHADOW",
    "shape": "blast",
    "spell_class": "ANIMIST",
    "magic_type": "magiclysm_generic_magic",
    "difficulty": 15,
    "min_damage": 40,
    "max_damage": 140,
    "damage_increment": 2.5,
    "max_level": 40,
    "base_casting_time": 200,
    "casting_time_increment": -2.0,
    "final_casting_time": 120,
    "base_energy_cost": 200,
    "min_range": 3,
    "max_range": 6,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
    "range_increment": 0.2
  },
  {
    "id": "disruption_bolt",
    "type": "SPELL",
    "name": "Disruption Bolt",
    "description": "Release a resonant bolt of spiritual energy at a nearby target.  It will disrupt the natural link between matter and animus, causing heavy, non-lethal damage.",
    "valid_targets": [ "hostile" ],
    "flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "RANDOM_DAMAGE", "NO_LEGS", "PERCENTAGE_DAMAGE", "SILENT", "NO_PROJECTILE" ],
    "damage_type": "necrotic",
    "min_damage": { "math": [ "(u_spell_level('disruption_bolt') * 0.5) + 5" ] },
    "max_damage": { "math": [ "(u_spell_level('disruption_bolt') * 1.5) + 10" ] },
    "min_range": 2,
    "range_increment": 0.5,
    "max_range": 66,
    "base_energy_cost": 150,
    "energy_increment": -5.0,
    "final_energy_cost": 50,
    "spell_class": "ANIMIST",
    "difficulty": 3,
    "max_level": 20,
    "base_casting_time": 100,
    "magic_type": "magiclysm_generic_magic",
    "shape": "blast",
    "effect": "attack",
    "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
    "learn_spells": { "soulrend": 20 }
  },
  {
    "id": "wrathful_spirits",
    "type": "SPELL",
    "name": "Wrathful Spirits",
    "description": "Grant brief corporality to orphaned spirits and allow them to fight under your command.",
    "valid_targets": [ "self", "ground" ],
    "min_damage": 2,
    "max_damage": 6,
    "damage_increment": 0.2,
    "max_level": 30,
    "difficulty": 1,
    "spell_class": "ANIMIST",
    "effect": "summon",
    "effect_str": "mon_magi_shadow",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "base_energy_cost": 200,
    "base_casting_time": 500,
    "min_aoe": 3,
    "max_aoe": 3,
    "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL" ],
    "min_duration": 3600,
    "max_duration": 12000,
    "duration_increment": 280,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
  },
  {
    "id": "spirit_walk",
    "type": "SPELL",
    "name": "Spirit Walk",
    "description": "Momentarily plunge into the underworld and swap positions with any spirit you command.",
    "valid_targets": [ "ally" ],
    "targeted_monster_ids": [ "mon_wisp", "mon_shadow", "mon_magi_shadow", "mon_darkman", "mon_shadow_snake" ],
    "flags": [ "CONVEYANCE_SPELL", "NO_LEGS", "LOUD", "SOMATIC", "SWAP_POS", "NO_PROJECTILE" ],
    "effect": "attack",
    "shape": "blast",
    "spell_class": "ANIMIST",
    "magic_type": "magiclysm_generic_magic",
    "difficulty": 5,
    "max_level": 20,
    "base_casting_time": 100,
    "casting_time_increment": -2.5,
    "final_casting_time": 50,
    "base_energy_cost": 300,
    "energy_increment": -5.0,
    "final_energy_cost": 200,
    "min_range": 5,
    "max_range": 15,
    "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ],
    "range_increment": 1.0
  },
  {
    "id": "banishment_lesser",
    "type": "SPELL",
    "name": "Lesser Banishment",
    "description": "Banish a monster to a lesser-known nether dimension.  If a monster is more powerful than you can handle, the spell drains your life force to make up the difference.",
    "valid_targets": [ "hostile" ],
    "flags": [ "CONVEYANCE_SPELL", "SOMATIC", "VERBAL", "NO_HANDS" ],
    "effect": "banishment",
    "shape": "blast",
    "min_damage": 40,
    "damage_increment": 10,
    "max_damage": 290,
    "min_range": 6,
    "max_range": 6,
    "base_energy_cost": 600,
    "spell_class": "ANIMIST",
    "difficulty": 9,
    "max_level": 25,
    "base_casting_time": 100,
    "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ],
    "magic_type": "magiclysm_generic_magic"
  },
  {
    "id": "summon_wisps",
    "type": "SPELL",
    "name": "Ignus Fatuus",
    "description": "Summons ghostly foxfire worked from living marsh vapor to lead your enemies astray.  With more experience, this spell can conjure multiple ghost lights.",
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_wisp",
    "shape": "blast",
    "flags": [ "CONJURATION_SPELL", "LOUD", "SOMATIC" ],
    "magic_type": "magiclysm_generic_magic",
    "spell_class": "ANIMIST",
    "difficulty": 2,
    "base_casting_time": 250,
    "base_energy_cost": 300,
    "max_level": 25,
    "min_damage": 1,
    "max_damage": 8,
    "damage_increment": 0.28,
    "min_aoe": 3,
    "max_aoe": 3,
    "min_range": 3,
    "max_range": 7,
    "range_increment": 0.16,
    "min_duration": 6000,
    "max_duration": 60000,
    "duration_increment": 2160,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
  },
  {
    "id": "bleed",
    "type": "SPELL",
    "name": "Bleed",
    "description": "Agitate old wounds on a creature, causing blood to ooze out of them.",
    "valid_targets": [ "hostile" ],
    "effect": "attack",
    "shape": "blast",
    "flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE", "NO_HANDS" ],
    "magic_type": "magiclysm_generic_magic",
    "spell_class": "ANIMIST",
    "difficulty": 2,
    "base_casting_time": 100,
    "base_energy_cost": 150,
    "damage_type": "necrotic",
    "max_level": 25,
    "min_range": 3,
    "max_range": 5,
    "range_increment": 0.1,
    "min_duration": 500,
    "max_duration": 1000,
    "duration_increment": 20,
    "min_dot": { "math": [ "(u_spell_level('bleed') * 0.3) + 0.2" ] },
    "max_dot": { "math": [ "(u_spell_level('bleed') * 0.3) + 0.2" ] },
    "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
    "ignored_monster_species": [ "ROBOT", "NETHER_EMANATION", "ROBOT_FLYING", "GOLEM" ]
  },
  {
    "id": "animist_summon_decaying_boneclub",
    "type": "SPELL",
    "name": { "str": "Decaying Boneclub" },
    "description": "You link your living blood to dead bones, creating a club hungry for the flesh of the living.",
    "effect": "spawn_item",
    "effect_str": "decaying_boneclub",
    "shape": "blast",
    "valid_targets": [ "self" ],
    "flags": [ "CONJURATION_SPELL", "SOMATIC", "CONCENTRATE", "VERBAL" ],
    "components": "spell_components_decayingboneclub",
    "max_level": 15,
    "min_damage": 1,
    "max_damage": 1,
    "min_duration": 24000,
    "max_duration": 360000,
    "duration_increment": 24000,
    "spell_class": "ANIMIST",
    "magic_type": "magiclysm_generic_magic",
    "base_casting_time": 400,
    "base_energy_cost": 6,
    "energy_source": "HP",
    "learn_spells": { "animist_summon_decaying_boneclub_plus": 20 },
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
    "difficulty": 6
  },
  {
    "id": "animist_summon_decaying_boneclub_plus",
    "type": "SPELL",
    "name": { "str": "Improved Decaying Boneclub" },
    "description": "You link your living blood to dead bones, creating a club hungry for the flesh of the living.  Now you know this spell like the back of your hand, and have started to design your own version.",
    "effect": "spawn_item",
    "effect_str": "decaying_boneclub",
    "shape": "blast",
    "valid_targets": [ "self" ],
    "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "NO_FAIL" ],
    "components": "spell_components_decayingboneclub",
    "max_level": 25,
    "min_damage": 1,
    "max_damage": 1,
    "min_duration": 360000,
    "max_duration": 2160000,
    "duration_increment": 72000,
    "spell_class": "ANIMIST",
    "magic_type": "magiclysm_generic_magic",
    "base_casting_time": 400,
    "final_casting_time": 100,
    "casting_time_increment": -12,
    "base_energy_cost": 6,
    "final_energy_cost": 3,
    "energy_increment": -0.2,
    "energy_source": "HP",
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
    "difficulty": 7
  },
  {
    "id": "rupture",
    "type": "SPELL",
    "name": "Rupture",
    "description": "You pour mana into an unwilling and unprepared vessel, causing cellular break-down, internal hemorrhaging, muddling ley lines, and overcharging electronics.  The more powerful the spell, the faster the damage happens.  Immensely gruesome and crude, it was once illegal world-wide, not that it matters now.",
    "effect": "attack",
    "shape": "blast",
    "valid_targets": [ "hostile" ],
    "flags": [ "EVOCATION_SPELL", "SOMATIC", "RANDOM_DAMAGE", "NO_PROJECTILE", "LOUD", "NO_HANDS" ],
    "max_level": 25,
    "min_range": 1,
    "range_increment": 0.1,
    "max_range": 3,
    "min_damage": { "math": [ "(u_spell_level('rupture') * 0.5) + 0" ] },
    "max_damage": { "math": [ "(u_spell_level('rupture') * 2) + 10" ] },
    "base_casting_time": 50,
    "base_energy_cost": 500,
    "final_energy_cost": 250,
    "energy_increment": -10,
    "spell_class": "ANIMIST",
    "min_duration": 1500,
    "max_duration": 0,
    "duration_increment": -60,
    "min_dot": 5,
    "max_dot": 5,
    "magic_type": "magiclysm_generic_magic",
    "difficulty": 3,
    "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
    "damage_type": "necrotic",
    "ignored_monster_species": [ "ROBOT", "NETHER_EMANATION", "ROBOT_FLYING", "GOLEM" ]
  },
  {
    "id": "devour",
    "type": "SPELL",
    "name": "Devour",
    "description": "Kill an allied creature, consuming its life energy to regain some health.",
    "valid_targets": [ "ally" ],
    "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SOMATIC" ],
    "//": "added this min/max damage for player, so it will be visible how much hp would be healed.  ",
    "effect": "attack",
    "shape": "blast",
    "message": "",
    "min_damage": -1,
    "max_damage": -10,
    "damage_increment": -0.4,
    "min_range": 10,
    "max_range": 10,
    "base_energy_cost": 250,
    "spell_class": "ANIMIST",
    "difficulty": 10,
    "max_level": 25,
    "base_casting_time": 100,
    "magic_type": "magiclysm_generic_magic",
    "extra_effects": [
      { "id": "devour_damage" },
      { "id": "devour_healing", "hit_self": true },
      { "id": "eoc_evocation_setup", "hit_self": true }
    ]
  },
  {
    "id": "devour_damage",
    "type": "SPELL",
    "name": { "str": "Devour Damage", "//~": "NO_I18N" },
    "description": { "str": "Deal deadly damage to ally.  You can see it only in debug mode.", "//~": "NO_I18N" },
    "valid_targets": [ "ally" ],
    "flags": [ "EVOCATION_SPELL", "SILENT", "PERCENTAGE_DAMAGE" ],
    "effect": "attack",
    "shape": "blast",
    "damage_type": "pure",
    "min_damage": 100,
    "max_damage": 100
  },
  {
    "id": "devour_healing",
    "type": "SPELL",
    "name": { "str": "Devour Healing", "//~": "NO_I18N" },
    "description": { "str": "Heal the player.  You can see it only in debug mode.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SOMATIC", "SILENT", "NO_PROJECTILE" ],
    "effect": "attack",
    "shape": "blast",
    "min_damage": -1,
    "max_damage": -10,
    "damage_increment": -0.4,
    "max_level": 25
  },
  {
    "id": "animist_sense_outsiders",
    "type": "SPELL",
    "name": "Sense Outsiders",
    "description": "You can sense the presence of nearby beings from the Nether.",
    "valid_targets": [ "self" ],
    "spell_class": "ANIMIST",
    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ],
    "effect": "attack",
    "effect_str": "effect_sense_outsiders",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "difficulty": 5,
    "max_level": 15,
    "base_energy_cost": 500,
    "min_duration": 90000,
    "max_duration": 900000,
    "duration_increment": 60000,
    "base_casting_time": 1500,
    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ]
  },
  {
    "id": "animist_summon_watcher",
    "type": "SPELL",
    "name": { "str": "Summon Watcher Spirit" },
    "description": "Summon a watcher spirit, whose senses overlap with your own and through whose eyes you can see.  Although they are spirits, they are fragile and dissipate easily in the face of any assault.",
    "flags": [ "CONJURATION_SPELL", "SOMATIC", "CONCENTRATE", "VERBAL", "NO_PROJECTILE" ],
    "spell_class": "ANIMIST",
    "effect": "summon",
    "effect_str": "mon_watcher_spirit",
    "shape": "blast",
    "valid_targets": [ "ground" ],
    "difficulty": 3,
    "max_level": 15,
    "min_damage": 1,
    "max_damage": 1,
    "min_range": 3,
    "max_range": 20,
    "range_increment": 1.1,
    "min_duration": 24000,
    "max_duration": 360000,
    "duration_increment": 24000,
    "magic_type": "magiclysm_generic_magic",
    "base_casting_time": 500,
    "base_energy_cost": 150,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
  },
  {
    "id": "animist_mass_hiding_aoe",
    "type": "SPELL",
    "name": "A Shadow in the Crowd",
    "description": "Sever the connections between your spirit and the spirits of everyone around you, rendering them incapable of perceiving you; the light might hit their eyes and the sounds their ears, but they cannot recognize what those impressions mean.  Anything outside the spell's area of effect will have no trouble spotting you.\n\nThis spell does not affect any target without a spirit, such as a robot.",
    "valid_targets": [ "hostile", "ally" ],
    "spell_class": "ANIMIST",
    "flags": [ "ENERVATION_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_HANDS", "IGNORE_WALLS" ],
    "difficulty": 9,
    "max_level": 20,
    "effect": "attack",
    "effect_str": "telepathic_ignorance",
    "extra_effects": [ { "id": "animist_mass_hiding_self", "hit_self": true }, { "id": "eoc_enervation_setup", "hit_self": true } ],
    "shape": "blast",
    "min_duration": 3000,
    "max_duration": 63000,
    "duration_increment": 3000,
    "min_aoe": 5,
    "max_aoe": 25,
    "aoe_increment": 1,
    "magic_type": "magiclysm_generic_magic",
    "base_energy_cost": 1000,
    "base_casting_time": 250,
    "ignored_monster_species": [ "ROBOT", "NETHER_EMANATION" ]
  },
  {
    "id": "animist_mass_hiding_self",
    "type": "SPELL",
    "name": { "str": "A Shadow in the Crowd Self", "//~": "NO_I18N" },
    "description": {
      "str": "Puts an effect on you so anyone affected by A Shadow in the Crowd knows to ignore you.  It's a bug if you have this directly.",
      "//~": "NO_I18N"
    },
    "message": "",
    "teachable": false,
    "valid_targets": [ "self" ],
    "flags": [ "ENERVATION_SPELL", "SILENT", "NO_HANDS", "NO_LEGS" ],
    "effect": "attack",
    "effect_str": "telepathic_ignorance_self",
    "shape": "blast",
    "min_duration": { "math": [ "(u_spell_level('animist_mass_hiding_aoe') * 3000) + 3000" ] },
    "max_duration": { "math": [ "(u_spell_level('animist_mass_hiding_aoe') * 3000) + 3000" ] }
  },
  {
    "id": "animist_luck_bone",
    "type": "SPELL",
    "name": { "str": "Osseous Luck" },
    "description": "Attract spirits of good fortune to a bone, granting minor bonuses as long as it is carried.  Though benevolent, the spirits are capricious, and exactly what benefits they will provide cannot be determined ahead of time.  The bone crumbles to dust when the spell duration expires and the spirits leave.",
    "flags": [ "CONJURATION_SPELL", "SOMATIC", "CONCENTRATE", "VERBAL" ],
    "spell_class": "ANIMIST",
    "effect": "spawn_item",
    "effect_str": "item_animist_luck_bone",
    "components": "spell_components_luck_bone",
    "shape": "blast",
    "valid_targets": [ "self" ],
    "difficulty": 5,
    "max_level": 20,
    "min_damage": 1,
    "max_damage": 1,
    "min_duration": 72000,
    "max_duration": 1512000,
    "duration_increment": 72000,
    "magic_type": "magiclysm_generic_magic",
    "base_casting_time": 30000,
    "base_energy_cost": 600,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
  },
  {
    "id": "animist_spirit_walking",
    "type": "SPELL",
    "name": { "str": "Spirit-Walking" },
    "description": "Transform your body to pure spirit, making you invisible and intangible.  You can move incredibly quickly while the spell is in effect and can pass by enemies unseen, but you will be unable to affect the physical world or cast spells.",
    "flags": [ "TRANSFORMATION_SPELL", "SOMATIC", "CONCENTRATE", "VERBAL" ],
    "spell_class": "ANIMIST",
    "effect": "effect_on_condition",
    "effect_str": "EOC_ANIMIST_SPIRIT_WALKING",
    "shape": "blast",
    "valid_targets": [ "self" ],
    "components": "spell_components_spirit_walking",
    "max_level": 20,
    "difficulty": 8,
    "min_duration": 3000,
    "max_duration": 9000,
    "duration_increment": 300,
    "magic_type": "magiclysm_generic_magic",
    "base_casting_time": 300,
    "base_energy_cost": 1200,
    "final_energy_cost": 850,
    "energy_increment": -17.5,
    "extra_effects": [ { "id": "eoc_transformation_setup", "hit_self": true } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_ANIMIST_SPIRIT_WALKING",
    "effect": [
      {
        "u_add_effect": "effect_spirit_walking",
        "duration": { "math": [ "( 30 + (u_spell_level('animist_spirit_walking') * 3) ) * ( enhancement_proficiency_modifier() )" ] }
      },
      {
        "u_add_effect": "incorporeal",
        "duration": { "math": [ "( 30 + (u_spell_level('animist_spirit_walking') * 3) ) * (enhancement_proficiency_modifier() )" ] }
      },
      { "u_add_trait": "ANIMIST_BODY_OF_SPIRIT_APPEARANCE" }
    ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_ANIMIST_SPIRIT_WALKING_LOSE_APPEARANCE",
    "eoc_type": "EVENT",
    "required_event": "character_loses_effect",
    "condition": { "and": [ { "compare_string": [ "effect_spirit_walking", { "context_val": "effect" } ] } ] },
    "effect": [ { "u_lose_trait": "ANIMIST_BODY_OF_SPIRIT_APPEARANCE" } ]
  },
  {
    "id": "animist_add_evasion_spell",
    "type": "SPELL",
    "name": "Guardian Spirit",
    "description": "Summon a benevolent spirit to keep watch over you and warn you of imminent attacks, allowing you to dodge some of them.",
    "valid_targets": [ "self" ],
    "spell_class": "ANIMIST",
    "//": "Despite providing a buff, this is a Conjuration spell because the buff is provided by the summoned spirit.",
    "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_LEGS" ],
    "effect": "attack",
    "effect_str": "effect_animist_add_evasion",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "difficulty": 4,
    "max_level": 15,
    "base_energy_cost": 350,
    "min_duration": 30000,
    "max_duration": 480000,
    "duration_increment": 30000,
    "base_casting_time": 250,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
  },
  {
    "id": "animist_slow_food_rotting_spell",
    "type": "SPELL",
    "name": "Abjure Spirits of Rot",
    "description": "Placing a warding on food or drink, preventing the spirits of decay from nesting within it.  The mage may affect as much food or drink as they can carry.  The principles by which this spell functions were not discovered until the 20th century, but some animists maintain that radiation is frightening to decay spirits.",
    "valid_targets": [ "self" ],
    "spell_class": "ANIMIST",
    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_ANIMIST_SLOW_FOOD_ROTTING_SPELL",
    "components": "spell_components_slow_food_rotting",
    "shape": "blast",
    "difficulty": 5,
    "max_level": 15,
    "magic_type": "magiclysm_generic_magic",
    "base_energy_cost": 550,
    "base_casting_time": 90000,
    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_ANIMIST_SLOW_FOOD_ROTTING_SPELL",
    "effect": [
      {
        "u_run_inv_eocs": "manual_mult",
        "search_data": [ { "category": "food" }, { "category": "drink" } ],
        "true_eocs": [
          {
            "id": "EOC_ANIMIST_SLOW_FOOD_ROTTING_SPELL_ITEM",
            "effect": [ { "npc_set_flag": "IRRADIATED" }, { "npc_set_flag": "NO_PARASITES" } ]
          }
        ]
      }
    ]
  },
  {
    "id": "animist_magic_fissile",
    "type": "SPELL",
    "name": "Magic Fissile",
    "description": "I cast Magic… Fissile?  At the darkness?",
    "valid_targets": [ "hostile" ],
    "flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "RANDOM_DAMAGE", "NO_LEGS", "SILENT", "NO_PROJECTILE" ],
    "extra_effects": [ { "id": "animist_radiation_bolt", "hit_self": false }, { "id": "eoc_evocation_setup", "hit_self": true } ],
    "min_damage": { "math": [ "(u_spell_level('animist_magic_fissile') * 0.75) + 0" ] },
    "max_damage": { "math": [ "(u_spell_level('animist_magic_fissile') * 1) + 3" ] },
    "damage_type": "necrotic",
    "min_range": 8,
    "range_increment": 0.8,
    "max_range": 20,
    "base_energy_cost": 50,
    "spell_class": "ANIMIST",
    "difficulty": 1,
    "max_level": 15,
    "base_casting_time": 100,
    "magic_type": "magiclysm_generic_magic",
    "shape": "blast",
    "effect": "attack"
  },
  {
    "id": "animist_radiation_bolt",
    "type": "SPELL",
    "name": { "str": "Magic Fissile Radiation", "//~": "NO_I18N" },
    "description": { "str": "Spawns a radiation field near the target.  It's a bug if you have it directly.", "//~": "NO_I18N" },
    "flags": [ "EVOCATION_SPELL", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "self" ],
    "effect": "emit",
    "effect_str": "emit_rad_leak",
    "shape": "blast"
  },
  {
    "id": "animist_cast_spells_when_silent",
    "type": "SPELL",
    "name": "The Inner Voice",
    "description": "Channel magic through your soul instead of your voice, allowing you to cast spells that require speech even when mute.",
    "valid_targets": [ "self" ],
    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "SOMATIC", "NO_LEGS" ],
    "max_level": 10,
    "spell_class": "ANIMIST",
    "effect": "attack",
    "effect_str": "effect_animist_vocalize",
    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
    "shape": "blast",
    "difficulty": 4,
    "min_duration": 30000,
    "max_duration": 300000,
    "duration_increment": 30000,
    "magic_type": "magiclysm_generic_magic",
    "base_casting_time": 250,
    "base_energy_cost": 250
  },
  {
    "id": "animist_do_psionic_damage_to_head",
    "type": "SPELL",
    "name": "Mind Crush",
    "description": "Directly assault the target's spirit, bypassing any physical protections they have.",
    "valid_targets": [ "hostile" ],
    "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SILENT", "RANDOM_DAMAGE", "RANDOM_DURATION", "NO_LEGS" ],
    "max_level": 15,
    "spell_class": "ANIMIST",
    "effect": "attack",
    "effect_str": "stunned",
    "damage_type": "psionic",
    "affected_body_parts": [ "head" ],
    "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
    "shape": "blast",
    "difficulty": 5,
    "min_damage": { "math": [ "10 + (u_spell_level('animist_do_psionic_damage_to_head') * 2.5)" ] },
    "max_damage": { "math": [ "25 + (u_spell_level('animist_do_psionic_damage_to_head') * 6)" ] },
    "min_duration": { "math": [ "150 + (u_spell_level('animist_do_psionic_damage_to_head') * 10)" ] },
    "max_duration": { "math": [ "250 + (u_spell_level('animist_do_psionic_damage_to_head') * 25)" ] },
    "min_range": 3,
    "max_range": 15,
    "range_increment": 0.9,
    "magic_type": "magiclysm_generic_magic",
    "base_casting_time": 75,
    "base_energy_cost": 350
  },
  {
    "id": "animist_detect_wizards",
    "type": "SPELL",
    "name": "Witchsight",
    "description": "Open your senses up to look for the bright corporeal ley lines of those who spent their lives frequently expending their mana.  This also applies to creatures or alien beings that frequently use spells.",
    "valid_targets": [ "self" ],
    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_LEGS" ],
    "max_level": 20,
    "spell_class": "ANIMIST",
    "effect": "attack",
    "effect_str": "effect_animist_detect_wizards",
    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
    "shape": "blast",
    "difficulty": 3,
    "min_duration": 90000,
    "max_duration": 690000,
    "duration_increment": 30000,
    "magic_type": "magiclysm_generic_magic",
    "base_casting_time": 150,
    "base_energy_cost": 275
  }
]
