[
  {
    "id": "magiclysm_generic_magic",
    "type": "magic_type",
    "energy_source": "MANA",
    "cannot_cast_flags": "NO_SPELLCASTING",
    "cannot_cast_message": "You can't cast any of the spells you know!"
  },
  {
    "id": "crystallize_mana",
    "type": "SPELL",
    "name": "Crystallize Mana",
    "description": "Crystallizes mana into solid form.",
    "valid_targets": [ "self" ],
    "spell_class": "NONE",
    "magic_type": "magiclysm_generic_magic",
    "flags": [ "CHANNELING_SPELL", "NO_LEGS", "CONCENTRATE" ],
    "difficulty": 3,
    "min_damage": 1,
    "max_damage": 1,
    "duration_increment": 1,
    "effect": "effect_on_condition",
    "effect_str": "eoc_crystal_spawn",
    "shape": "blast",
    "base_energy_cost": 1000,
    "final_energy_cost": 1000,
    "base_casting_time": 600000,
    "final_casting_time": 600000,
    "extra_effects": [ { "id": "mana_fatigue" }, { "id": "eoc_channeling_setup", "hit_self": true } ]
  },
  {
    "type": "effect_on_condition",
    "id": "eoc_crystal_spawn",
    "effect": { "u_cast_spell": { "id": "crystallize_mana_crystal_5" } },
    "false_effect": { "u_cast_spell": { "id": "crystallize_mana_1" } },
    "condition": { "u_has_trait": "MANA_CRYST_MANA" }
  },
  {
    "id": "crystallize_mana_1",
    "type": "SPELL",
    "name": { "str": "Crystallize Mana (1)", "//~": "NO_I18N" },
    "description": { "str": "Mana Crystal Spawner.  If you can see this you probably debugged it in.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "spell_class": "NONE",
    "flags": [ "CHANNELING_SPELL", "PERMANENT", "NO_LEGS", "CONCENTRATE" ],
    "difficulty": 1,
    "min_damage": 1,
    "max_damage": 1,
    "duration_increment": 1,
    "effect": "spawn_item",
    "effect_str": "crystallized_mana",
    "shape": "blast",
    "base_energy_cost": 0,
    "final_energy_cost": 0,
    "base_casting_time": 0,
    "final_casting_time": 0
  },
  {
    "id": "crystallize_mana_crystal_5",
    "type": "SPELL",
    "name": { "str": "Crystallize Mana (5)", "//~": "NO_I18N" },
    "description": { "str": "Mana Crystal Spawner.  If you can see this you probably debugged it in.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "spell_class": "NONE",
    "flags": [ "CHANNELING_SPELL", "PERMANENT", "NO_LEGS", "CONCENTRATE" ],
    "effect": "spawn_item",
    "effect_str": "crystallized_mana",
    "difficulty": 1,
    "min_damage": 5,
    "max_damage": 5,
    "duration_increment": 1,
    "shape": "blast",
    "base_energy_cost": 0,
    "final_energy_cost": 0,
    "base_casting_time": 0,
    "final_casting_time": 0
  },
  {
    "id": "mana_fatigue",
    "type": "SPELL",
    "name": { "str": "Mana Fatigue", "//~": "NO_I18N" },
    "description": { "str": "Secondary effect of Crystallize Mana.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "mana_fatigue",
    "shape": "blast",
    "max_level": 1,
    "min_duration": 6000,
    "max_duration": 6000,
    "//": "actual sleepiness gained is 1/100th duration, at 6000 you get 60 fatigue."
  },
  {
    "id": "dark_sight",
    "type": "SPELL",
    "name": "Dark Sight",
    "description": "Gives you the power to see in the dark.",
    "message": "Your eyes glow green for a moment.  Now your sight can pierce the darkest shadows.",
    "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "NO_LEGS", "CONCENTRATE" ],
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "dark_sight",
    "shape": "blast",
    "base_casting_time": 100,
    "base_energy_cost": 175,
    "magic_type": "magiclysm_generic_magic",
    "difficulty": 2,
    "max_level": 20,
    "min_duration": 100000,
    "max_duration": 1000000,
    "duration_increment": 45000,
    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ]
  },
  {
    "id": "megablast",
    "type": "SPELL",
    "name": "Megablast",
    "description": "You always wanted to fire energy beams like in the animes you watched as a kid.  Now you can!",
    "valid_targets": [ "ally", "hostile", "ground" ],
    "effect": "attack",
    "shape": "line",
    "damage_type": "heat",
    "base_casting_time": 200,
    "base_energy_cost": 8000,
    "magic_type": "magiclysm_generic_magic",
    "energy_source": "STAMINA",
    "spell_class": "NONE",
    "flags": [ "EVOCATION_SPELL", "RANDOM_DAMAGE", "LOUD", "SOMATIC", "VERBAL", "SPLIT_DAMAGE" ],
    "difficulty": 10,
    "max_level": 20,
    "min_damage": { "math": [ "(u_spell_level('megablast') * 1.2) + 3" ] },
    "max_damage": { "math": [ "(u_spell_level('megablast') * 3) + 10" ] },
    "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
    "damage_increment": 3.5,
    "min_range": 3,
    "max_range": 12,
    "range_increment": 0.45,
    "min_aoe": 1,
    "max_aoe": 5,
    "aoe_increment": 0.2
  },
  {
    "id": "create_atomic_light",
    "type": "SPELL",
    "name": "Magical Light",
    "description": "Creates a magical light.",
    "valid_targets": [ "none" ],
    "min_range": 0,
    "max_range": 0,
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "magic_light",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "flags": [ "CONJURATION_SPELL", "VERBAL", "NO_LEGS" ],
    "difficulty": 1,
    "max_level": 20,
    "base_casting_time": 1000,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
    "base_energy_cost": 200,
    "min_duration": 100000,
    "max_duration": 1000000,
    "duration_increment": 45000
  },
  {
    "id": "blinding_flash",
    "type": "SPELL",
    "name": { "str": "Blinding Flash" },
    "description": "Blind enemies for a short time with a sudden, dazzling light.  Higher levels deal slightly higher damage.",
    "effect": "attack",
    "effect_str": "blind",
    "shape": "blast",
    "affected_body_parts": [ "eyes" ],
    "valid_targets": [ "hostile", "ground" ],
    "max_level": 20,
    "min_damage": { "math": [ "(u_spell_level('blinding_flash') * 0.1) + 1" ] },
    "max_damage": { "math": [ "(u_spell_level('blinding_flash') * 0.4) + 2" ] },
    "min_aoe": 0,
    "max_aoe": 3,
    "aoe_increment": 0.15,
    "min_range": 4,
    "max_range": 16,
    "range_increment": 0.6,
    "min_duration": 1000,
    "max_duration": 3000,
    "duration_increment": 100,
    "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
    "spell_class": "NONE",
    "flags": [ "EVOCATION_SPELL", "RANDOM_DAMAGE", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ],
    "base_casting_time": 200,
    "base_energy_cost": 150,
    "magic_type": "magiclysm_generic_magic",
    "difficulty": 3,
    "damage_type": "light"
  },
  {
    "id": "ethereal_grasp",
    "type": "SPELL",
    "name": "Ethereal Grasp",
    "description": "A mass of spectral hands emerge from the ground, grabbing and slowing everything in range.  Higher levels allow a bigger AoE, and longer effect\n\nLarger targets will be <color_yellow>less affected</color> by the spell.",
    "effect": "effect_on_condition",
    "effect_str": "EOC_CLASSLESS_ETHEREAL_GRASP",
    "shape": "blast",
    "affected_body_parts": [ "foot_l", "foot_r" ],
    "valid_targets": [ "hostile", "ground" ],
    "max_level": 20,
    "min_aoe": 2,
    "max_aoe": 8,
    "aoe_increment": 0.33,
    "min_range": 5,
    "max_range": 20,
    "range_increment": 2.0,
    "min_duration": 1000,
    "max_duration": 5000,
    "duration_increment": 200,
    "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
    "spell_class": "NONE",
    "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_PROJECTILE" ],
    "base_casting_time": 200,
    "base_energy_cost": 400,
    "magic_type": "magiclysm_generic_magic",
    "difficulty": 3,
    "damage_type": "bash"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_CLASSLESS_ETHEREAL_GRASP",
    "condition": "has_alpha",
    "effect": [
      { "math": [ "u_ethereal_grasp_affected_level = n_spell_level('ethereal_grasp')" ] },
      {
        "math": [
          "u_evocation_spell_affected_proficiency = (1 + (n_has_proficiency('prof_magic_evocation_beginner') * 0.1 ) + (n_has_proficiency('prof_magic_evocation_apprentice') * 0.1 ) + (n_has_proficiency('prof_magic_evocation_master') * 0.1 ) )"
        ]
      },
      {
        "u_add_effect": "effect_ethereal_grasp",
        "duration": { "math": [ "10 + (u_ethereal_grasp_affected_level * 2)" ] }
      }
    ]
  },
  {
    "id": "obfuscated_body",
    "type": "SPELL",
    "name": "Obfuscated Body",
    "description": "A magical aura distorts light around your body, increasing the amount of attacks you might dodge in a given turn.",
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "effect_obfuscating_aura",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "NO_LEGS" ],
    "difficulty": 5,
    "max_level": 15,
    "base_casting_time": 500,
    "base_energy_cost": 600,
    "min_duration": 24000,
    "max_duration": 360000,
    "duration_increment": 24000,
    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
    "learn_spells": { "obfuscated_body_plus": 15 }
  },
  {
    "id": "obfuscated_body_plus",
    "type": "SPELL",
    "name": "Improved Obfuscated Body",
    "description": "A magical aura distorts light around your body, increasing the amount of attacks you might dodge in a given turn.",
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "effect_obfuscating_aura",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS", "NO_FAIL" ],
    "difficulty": 7,
    "max_level": 25,
    "base_casting_time": 500,
    "final_casting_time": 150,
    "casting_time_increment": -14,
    "base_energy_cost": 600,
    "final_energy_cost": 200,
    "energy_increment": -16,
    "min_duration": 360000,
    "max_duration": 2160000,
    "duration_increment": 72000,
    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ]
  },
  {
    "id": "protection_aura",
    "type": "SPELL",
    "name": { "str": "Aura of Protection" },
    "description": "Encases your whole body in a magical aura that protects you from the environment.",
    "valid_targets": [ "self" ],
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "protect_env",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "difficulty": 2,
    "max_level": 15,
    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "NO_LEGS" ],
    "base_casting_time": 350,
    "base_energy_cost": 375,
    "min_duration": 24000,
    "max_duration": 360000,
    "duration_increment": 24000,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
    "learn_spells": { "protection_aura_plus": 15 }
  },
  {
    "id": "protection_aura_plus",
    "type": "SPELL",
    "name": { "str": "Improved Aura of Protection" },
    "description": "Encases your whole body in a magical aura that protects you from the environment.  Now you know this spell like the back of your hand, and have started to design your own version.",
    "valid_targets": [ "self" ],
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "protect_env",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "difficulty": 5,
    "max_level": 25,
    "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "NO_LEGS", "NO_FAIL" ],
    "base_casting_time": 350,
    "final_casting_time": 100,
    "casting_time_increment": -10,
    "base_energy_cost": 375,
    "final_energy_cost": 150,
    "energy_increment": -9,
    "min_duration": 360000,
    "max_duration": 2160000,
    "duration_increment": 72000,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
  },
  {
    "id": "translocate_self",
    "type": "SPELL",
    "name": "Translocate Self",
    "description": "Translocates the user to an attuned gate.",
    "valid_targets": [ "self" ],
    "flags": [ "CONVEYANCE_SPELL", "VERBAL", "NO_LEGS" ],
    "effect": "translocate",
    "shape": "blast",
    "difficulty": 15,
    "max_level": 25,
    "base_casting_time": 6000,
    "base_energy_cost": 675,
    "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ],
    "magic_type": "magiclysm_generic_magic",
    "spell_class": "NONE"
  },
  {
    "id": "acid_resistance",
    "type": "SPELL",
    "name": { "str": "Acid Resistance" },
    "description": "Protects the user from acid.",
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "effect_acid_res_aura",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "spell_class": "NONE",
    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "NO_LEGS" ],
    "difficulty": 4,
    "max_level": 15,
    "base_casting_time": 200,
    "base_energy_cost": 150,
    "min_duration": 24000,
    "max_duration": 360000,
    "duration_increment": 24000,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
    "learn_spells": { "acid_resistance_greater": 15 }
  },
  {
    "id": "acid_resistance_greater",
    "type": "SPELL",
    "name": "Greater Acid Resistance",
    "description": "Protects the user from acid.  Now you know this spell like the back of your hand, and start to design your own version, no longer requiring you to hold concentration.",
    "valid_targets": [ "none" ],
    "effect": "attack",
    "effect_str": "effect_acid_res_aura_greater",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "spell_class": "NONE",
    "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS" ],
    "difficulty": 7,
    "max_level": 1,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
    "base_casting_time": 200,
    "base_energy_cost": 250,
    "min_duration": 180000
  },
  {
    "id": "thought_shield",
    "type": "SPELL",
    "name": "Thought Shield",
    "description": "Two small shimmering spots appear on your temples, protecting your mind from outside influences.",
    "valid_targets": [ "self" ],
    "effect": "spawn_item",
    "effect_str": "thought_shield_item",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "NO_LEGS" ],
    "difficulty": 6,
    "min_damage": 1,
    "max_damage": 1,
    "max_level": 15,
    "base_casting_time": 1500,
    "base_energy_cost": 800,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
    "min_duration": 24000,
    "max_duration": 360000,
    "duration_increment": 24000,
    "learn_spells": { "thought_shield_plus": 15 }
  },
  {
    "id": "thought_shield_plus",
    "type": "SPELL",
    "name": "Thought Suit",
    "description": "Why protect just your mind from outside influences?  More shields all over your body should also prevent you from being teleported forcefully",
    "valid_targets": [ "self" ],
    "effect": "spawn_item",
    "effect_str": "thought_shield_plus_item",
    "shape": "blast",
    "magic_type": "magiclysm_generic_magic",
    "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS", "NO_FAIL" ],
    "min_damage": 1,
    "max_damage": 1,
    "difficulty": 7,
    "max_level": 25,
    "base_casting_time": 1500,
    "final_casting_time": 100,
    "casting_time_increment": -56,
    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
    "base_energy_cost": 800,
    "final_energy_cost": 200,
    "energy_increment": -24,
    "min_duration": 360000,
    "max_duration": 2160000,
    "duration_increment": 72000
  },
  {
    "id": "sound_bomb",
    "type": "SPELL",
    "name": "Sound Bomb",
    "description": "Behind the cool name hides a common joke spell to spook your friends and restrain dogs.  It can be useful in some special cases.",
    "valid_targets": [ "self", "ally", "hostile", "ground" ],
    "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SOMATIC", "LOUD", "NO_PROJECTILE" ],
    "effect": "noise",
    "shape": "blast",
    "sound_description": "a loud, high pitched sound",
    "damage_type": "sonic",
    "min_damage": 12,
    "max_damage": 120,
    "damage_increment": 5,
    "min_range": 5,
    "max_range": 55,
    "range_increment": 2,
    "base_energy_cost": 125,
    "spell_class": "NONE",
    "difficulty": 3,
    "max_level": 25,
    "base_casting_time": 300,
    "final_casting_time": 100,
    "casting_time_increment": -8,
    "field_id": "fd_direction",
    "min_field_intensity": 1,
    "max_field_intensity": 1,
    "field_chance": 1,
    "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
    "magic_type": "magiclysm_generic_magic"
  },
  {
    "id": "classless_watch_spell",
    "type": "SPELL",
    "name": "Knowing the Day and the Hour",
    "description": "Probably the single greatest example of technology rendering magic obsolete, this spell allows you know exactly what time it is.",
    "valid_targets": [ "self" ],
    "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "SOMATIC" ],
    "effect": "attack",
    "effect_str": "effect_classless_watch",
    "shape": "blast",
    "difficulty": 1,
    "max_level": 12,
    "min_duration": 720000,
    "max_duration": 8640000,
    "duration_increment": 720000,
    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
    "magic_type": "magiclysm_generic_magic",
    "base_energy_cost": 50,
    "base_casting_time": 6000
  },
  {
    "id": "classless_clean_clothing_and_self",
    "type": "SPELL",
    "name": "Freshen Up",
    "description": "Undoubtedly the single most common spell in the world before the Cataclysm, Freshen Up cleans your teeth, sweetens your breath, removes stains and sweat from your clothes, exfoliates you, and gives volume back to your hair.",
    "valid_targets": [ "self" ],
    "flags": [ "CHANNELING_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_CLASSLESS_CLEAN_CLOTHING_AND_SELF",
    "components": "spell_components_freshen_up",
    "shape": "blast",
    "difficulty": 2,
    "max_level": 15,
    "magic_type": "magiclysm_generic_magic",
    "base_energy_cost": 75,
    "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ],
    "base_casting_time": 3000
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_CLASSLESS_CLEAN_CLOTHING_AND_SELF",
    "effect": [
      { "u_lose_effect": [ "bile_irritant", "bile_stink", "boomered", "skunk_spray", "wet" ], "target_part": "ALL" },
      { "u_lose_morale": "morale_bile" },
      {
        "u_run_inv_eocs": "all",
        "search_data": [ { "worn_only": true }, { "flags": [ "FILTHY" ] } ],
        "true_eocs": [ { "id": "EOC_CLASSLESS_CLEAN_CLOTHING_AND_SELF_ITEMS", "effect": [ { "npc_unset_flag": "FILTHY" } ] } ]
      }
    ]
  },
  {
    "id": "classless_easy_sleep_spell",
    "type": "SPELL",
    "name": "Peaceful Rest",
    "description": "A favorite of overworked mages and dilettantes who, this spell makes it much easier to fall asleep regardless of how tired you are.",
    "valid_targets": [ "self" ],
    "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "SOMATIC" ],
    "effect": "attack",
    "effect_str": "effect_classless_easy_sleep",
    "components": "spell_components_easy_sleep",
    "shape": "blast",
    "difficulty": 1,
    "max_level": 15,
    "min_duration": 360000,
    "max_duration": 360000,
    "magic_type": "magiclysm_generic_magic",
    "base_energy_cost": 250,
    "final_energy_cost": 75,
    "energy_increment": -11.67,
    "base_casting_time": 90000,
    "final_casting_time": 6000,
    "casting_time_increment": -5600,
    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ]
  },
  {
    "id": "classless_dispel_magic",
    "type": "SPELL",
    "name": "Dispel Magic",
    "description": "Remove magical effects from your target.  It fails when faced with powerful enchantments or the unique bonuses provided by attunements.",
    "//": "Should only target spells of Difficulty 6 and that aren't granted by an attunement",
    "valid_targets": [ "self", "ally", "hostile" ],
    "flags": [ "ENERVATION_SPELL", "CONCENTRATE", "SOMATIC", "VERBAL" ],
    "effect": "attack",
    "effect_str": "effect_dispel_magic",
    "shape": "blast",
    "difficulty": 6,
    "max_level": 15,
    "min_duration": 200,
    "max_duration": 200,
    "extra_effects": [ { "id": "eoc_enervation_setup", "hit_self": true } ],
    "min_range": 3,
    "max_range": 20,
    "range_increment": 1.2,
    "magic_type": "magiclysm_generic_magic",
    "base_energy_cost": 350,
    "base_casting_time": 100
  },
  {
    "id": "classless_disjunction",
    "type": "SPELL",
    "name": "Disjunction",
    "description": "The ultimate anti-magic spell, Disjunction will strip even attunement-related or powerful enchantments from the target.",
    "valid_targets": [ "self", "ally", "hostile" ],
    "flags": [ "ENERVATION_SPELL", "CONCENTRATE", "SOMATIC", "VERBAL" ],
    "effect": "attack",
    "effect_str": "effect_disjunction",
    "shape": "blast",
    "difficulty": 10,
    "max_level": 15,
    "min_duration": 200,
    "max_duration": 200,
    "min_range": 3,
    "max_range": 20,
    "range_increment": 1.2,
    "magic_type": "magiclysm_generic_magic",
    "extra_effects": [ { "id": "eoc_enervation_setup", "hit_self": true } ],
    "base_energy_cost": 1250,
    "final_energy_cost": 750,
    "energy_increment": 33.33,
    "base_casting_time": 100
  },
  {
    "id": "classless_restore_crystal_mana",
    "//": "This spell does not have a corresponding Dabbler hobby because it's literally useless on its own.",
    "type": "SPELL",
    "name": "Mana Extraction",
    "description": "Return crystallized mana into raw mana and absorb it, restoring some of your mana.  The process is slow and not very efficient, but it's easier to transport than mana potions.",
    "message": "You slowly crush the crystallized mana and as it flares into a burst of light, absorb the now-free mana.",
    "valid_targets": [ "self" ],
    "flags": [ "RESTORATION_SPELL", "CONCENTRATE", "SOMATIC", "NO_LEGS", "RANDOM_DAMAGE" ],
    "effect": "recover_energy",
    "effect_str": "MANA",
    "shape": "blast",
    "components": "spell_components_restore_crystal_mana",
    "difficulty": 3,
    "max_level": 10,
    "min_damage": { "math": [ "(u_spell_level('classless_restore_crystal_mana') * 10) + 50" ] },
    "max_damage": { "math": [ "(u_spell_level('classless_restore_crystal_mana') * 30) + 150" ] },
    "magic_type": "magiclysm_generic_magic",
    "extra_effects": [ { "id": "eoc_restoration_setup", "hit_self": true } ],
    "base_energy_cost": 0,
    "base_casting_time": 12000
  },
  {
    "id": "eoc_evocation_setup",
    "type": "SPELL",
    "name": { "str": "Set Up Proficiency: Evocation", "//~": "NO_I18N" },
    "description": { "str": "Sets up proficiency gain.  This is a bug if you have it.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "spell_class": "NONE",
    "flags": [ "NO_LEGS" ],
    "difficulty": 0,
    "min_damage": 1,
    "max_damage": 1,
    "duration_increment": 1,
    "effect": "effect_on_condition",
    "effect_str": "EOC_SPELLCASTING_EVOCATION_PROFICIENCY_ADD",
    "shape": "blast",
    "energy_source": "NONE",
    "base_energy_cost": 0,
    "final_energy_cost": 0,
    "base_casting_time": 0,
    "final_casting_time": 0
  },
  {
    "id": "eoc_channeling_setup",
    "type": "SPELL",
    "name": { "str": "Set Up Proficiency: Channeling", "//~": "NO_I18N" },
    "description": { "str": "Sets up proficiency gain.  This is a bug if you have it.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "spell_class": "NONE",
    "flags": [ "NO_LEGS" ],
    "difficulty": 0,
    "min_damage": 1,
    "max_damage": 1,
    "duration_increment": 1,
    "effect": "effect_on_condition",
    "effect_str": "EOC_SPELLCASTING_CHANNELING_PROFICIENCY_ADD",
    "shape": "blast",
    "energy_source": "NONE",
    "base_energy_cost": 0,
    "final_energy_cost": 0,
    "base_casting_time": 0,
    "final_casting_time": 0
  },
  {
    "id": "eoc_summon_setup",
    "type": "SPELL",
    "name": { "str": "Set Up Proficiency: Conjuration", "//~": "NO_I18N" },
    "description": { "str": "Sets up proficiency gain.  This is a bug if you have it.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "spell_class": "NONE",
    "flags": [ "NO_LEGS" ],
    "difficulty": 0,
    "min_damage": 1,
    "max_damage": 1,
    "duration_increment": 1,
    "effect": "effect_on_condition",
    "effect_str": "EOC_SPELLCASTING_SUMMONING_PROFICIENCY_ADD",
    "shape": "blast",
    "energy_source": "NONE",
    "base_energy_cost": 0,
    "final_energy_cost": 0,
    "base_casting_time": 0,
    "final_casting_time": 0
  },
  {
    "id": "eoc_enhancement_setup",
    "type": "SPELL",
    "name": { "str": "Set Up Proficiency: Enhancement", "//~": "NO_I18N" },
    "description": { "str": "Sets up proficiency gain.  This is a bug if you have it.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "spell_class": "NONE",
    "flags": [ "NO_LEGS" ],
    "difficulty": 0,
    "min_damage": 1,
    "max_damage": 1,
    "duration_increment": 1,
    "effect": "effect_on_condition",
    "effect_str": "EOC_SPELLCASTING_ENHANCEMENT_PROFICIENCY_ADD",
    "shape": "blast",
    "energy_source": "NONE",
    "base_energy_cost": 0,
    "final_energy_cost": 0,
    "base_casting_time": 0,
    "final_casting_time": 0
  },
  {
    "id": "eoc_enervation_setup",
    "type": "SPELL",
    "name": { "str": "Set Up Proficiency: Enervation", "//~": "NO_I18N" },
    "description": { "str": "Sets up proficiency gain.  This is a bug if you have it.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "spell_class": "NONE",
    "flags": [ "NO_LEGS" ],
    "difficulty": 0,
    "min_damage": 1,
    "max_damage": 1,
    "duration_increment": 1,
    "effect": "effect_on_condition",
    "effect_str": "EOC_SPELLCASTING_ENERVATION_PROFICIENCY_ADD",
    "shape": "blast",
    "energy_source": "NONE",
    "base_energy_cost": 0,
    "final_energy_cost": 0,
    "base_casting_time": 0,
    "final_casting_time": 0
  },
  {
    "id": "eoc_conveyance_setup",
    "type": "SPELL",
    "name": { "str": "Set Up Proficiency: Conveyance", "//~": "NO_I18N" },
    "description": { "str": "Sets up proficiency gain.  This is a bug if you have it.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "spell_class": "NONE",
    "flags": [ "NO_LEGS" ],
    "difficulty": 0,
    "min_damage": 1,
    "max_damage": 1,
    "duration_increment": 1,
    "effect": "effect_on_condition",
    "effect_str": "EOC_SPELLCASTING_CONVEYANCE_PROFICIENCY_ADD",
    "shape": "blast",
    "energy_source": "NONE",
    "base_energy_cost": 0,
    "final_energy_cost": 0,
    "base_casting_time": 0,
    "final_casting_time": 0
  },
  {
    "id": "eoc_restoration_setup",
    "type": "SPELL",
    "name": { "str": "Set Up Proficiency: Restoration", "//~": "NO_I18N" },
    "description": { "str": "Sets up proficiency gain.  This is a bug if you have it.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "spell_class": "NONE",
    "flags": [ "NO_LEGS" ],
    "difficulty": 0,
    "min_damage": 1,
    "max_damage": 1,
    "duration_increment": 1,
    "effect": "effect_on_condition",
    "effect_str": "EOC_SPELLCASTING_RESTORATION_PROFICIENCY_ADD",
    "shape": "blast",
    "energy_source": "NONE",
    "base_energy_cost": 0,
    "final_energy_cost": 0,
    "base_casting_time": 0,
    "final_casting_time": 0
  },
  {
    "id": "eoc_transformation_setup",
    "type": "SPELL",
    "name": { "str": "Set Up Proficiency: Transformation", "//~": "NO_I18N" },
    "description": { "str": "Sets up proficiency gain.  This is a bug if you have it.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "spell_class": "NONE",
    "flags": [ "NO_LEGS" ],
    "difficulty": 0,
    "min_damage": 1,
    "max_damage": 1,
    "duration_increment": 1,
    "effect": "effect_on_condition",
    "effect_str": "EOC_SPELLCASTING_TRANSFORMATION_PROFICIENCY_ADD",
    "shape": "blast",
    "energy_source": "NONE",
    "base_energy_cost": 0,
    "final_energy_cost": 0,
    "base_casting_time": 0,
    "final_casting_time": 0
  }
]
