[
  {
    "id": "return_critters",
    "type": "SPELL",
    "name": "Return Critters",
    "description": "Summons your critters back to you, if they got lost.",
    "effect": "effect_on_condition",
    "effect_str": "EOC_RETURN_SUMMONS",
    "base_casting_time": 150,
    "shape": "blast",
    "valid_targets": [ "ally" ],
    "targeted_monster_ids": [ "mon_sapient_light", "mon_shifter", "mon_duplicator", "mon_ophanim" ],
    "flags": [ "NO_LEGS", "IGNORE_WALLS", "NO_FAIL" ],
    "magic_type": "xedra_dream_magic",
    "min_aoe": 120,
    "max_aoe": 120
  },
  {
    "id": "dream_blade",
    "type": "SPELL",
    "name": "Dream Blade",
    "description": "This ephemeral blade allows you to defend yourself with dreams brought out of your mind!",
    "valid_targets": [ "self" ],
    "flags": [ "VERBAL", "NO_LEGS" ],
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "rapier_dreamdross",
    "shape": "blast",
    "base_casting_time": 350,
    "base_energy_cost": 375,
    "min_duration": { "math": [ "spell_time(time(' 4 m'))" ] },
    "max_duration": { "math": [ "spell_time(time(' 6 h'))" ] },
    "duration_increment": { "math": [ "spell_time(time(' 4 m'))" ] },
    "skill": "deduction",
    "difficulty": 5,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "magic_type": "xedra_dream_magic",
    "spell_class": "DREAMER"
  },
  {
    "id": "dream_dagger",
    "type": "SPELL",
    "name": "Dream Dagger",
    "description": "This ephemeral dagger is powered with your own inner reality connections, and is deadlier the larger your mana pool.",
    "valid_targets": [ "self" ],
    "flags": [ "VERBAL", "NO_LEGS" ],
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "dagger_dreamdross",
    "shape": "blast",
    "base_casting_time": 150,
    "base_energy_cost": 175,
    "min_duration": { "math": [ "spell_time(time(' 4 m'))" ] },
    "max_duration": { "math": [ "spell_time(time(' 6 h'))" ] },
    "duration_increment": { "math": [ "spell_time(time(' 4 m'))" ] },
    "skill": "deduction",
    "difficulty": 3,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "magic_type": "xedra_dream_magic",
    "spell_class": "DREAMER"
  },
  {
    "id": "dream_armor",
    "type": "SPELL",
    "name": "Dream Armor",
    "description": "Armor that sits lightly on your body with little in the way of encumbrance and rests on top of whatever you are wearing.",
    "valid_targets": [ "self" ],
    "flags": [ "VERBAL", "NO_LEGS", "SOMATIC" ],
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "armor_dreamdross",
    "shape": "blast",
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "skill": "deduction",
    "difficulty": 7,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "base_casting_time": 350,
    "base_energy_cost": 175,
    "min_duration": { "math": [ "spell_time(time(' 4 m'))" ] },
    "max_duration": { "math": [ "spell_time(time(' 6 h'))" ] },
    "duration_increment": { "math": [ "spell_time(time(' 4 m'))" ] }
  },
  {
    "id": "create_dream_dross",
    "type": "SPELL",
    "name": "Bring Forth Dreamdross",
    "description": "This ritual pulls a small amount of dreamdross into our world and makes it permanent.  These scraps of dreaming can then be used to make permanent objects.",
    "valid_targets": [ "self" ],
    "min_damage": 1,
    "max_damage": 30,
    "damage_increment": 0.5,
    "effect": "spawn_item",
    "effect_str": "scrap_dreamdross",
    "shape": "blast",
    "base_casting_time": 5000,
    "base_energy_cost": 1000,
    "min_duration": 1,
    "max_duration": 2,
    "duration_increment": 1,
    "skill": "deduction",
    "difficulty": 0,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "flags": [ "PERMANENT_ALL_LEVELS", "NO_LEGS" ]
  },
  {
    "id": "banish_nether_monsters",
    "type": "SPELL",
    "name": { "str": "Banish Interdimensional Horrors" },
    "description": "Attempts to banish things clearly inimical to local physics back to their home dimension.",
    "teachable": false,
    "valid_targets": [ "hostile" ],
    "effect": "attack",
    "shape": "blast",
    "targeted_monster_species": [ "NETHER" ],
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "damage_type": "pure",
    "skill": "deduction",
    "difficulty": 8,
    "min_damage": 30,
    "max_damage": 407,
    "damage_increment": 13,
    "min_aoe": 1,
    "max_aoe": 10,
    "aoe_increment": 0.34,
    "base_casting_time": 400,
    "casting_time_increment": -10,
    "final_casting_time": 100,
    "base_energy_cost": 1000,
    "energy_increment": -50,
    "final_energy_cost": 100,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "flags": [ "SILENT" ]
  },
  {
    "id": "banish_dark_monsters",
    "type": "SPELL",
    "name": { "str": "Banish Darkness Made Flesh" },
    "description": "Attempts to banish monsters crafted from the darkest of nights.",
    "teachable": false,
    "valid_targets": [ "hostile", "ally" ],
    "effect": "banishment",
    "shape": "blast",
    "targeted_monster_ids": [ "mon_darkman", "mon_shadow", "mon_shadow_snake" ],
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "damage_type": "pure",
    "skill": "deduction",
    "difficulty": 7,
    "min_damage": 30,
    "max_damage": 407,
    "damage_increment": 13,
    "min_aoe": 1,
    "max_aoe": 10,
    "aoe_increment": 0.34,
    "base_casting_time": 400,
    "casting_time_increment": -10,
    "final_casting_time": 110,
    "base_energy_cost": 1000,
    "energy_increment": -50.0,
    "final_energy_cost": 100,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "flags": [ "SILENT" ]
  },
  {
    "id": "spell_summon_twin",
    "type": "SPELL",
    "name": "Twin",
    "description": "Make a fake copy of yourself to disrupt your enemies.",
    "valid_targets": [ "ground" ],
    "teachable": false,
    "effect": "summon",
    "effect_str": "mon_twin",
    "shape": "blast",
    "flags": [ "SILENT", "RANDOM_TARGET", "NO_EXPLOSION_SFX" ],
    "skill": "deduction",
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "min_range": 1,
    "max_range": 1,
    "min_damage": 1,
    "max_damage": 9,
    "damage_increment": 0.4,
    "min_aoe": 1,
    "max_aoe": 9,
    "aoe_increment": 0.4,
    "difficulty": 6,
    "base_casting_time": 800,
    "final_casting_time": 200,
    "casting_time_increment": -20,
    "base_energy_cost": 700,
    "final_energy_cost": 300,
    "energy_increment": -20,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "min_duration": { "math": [ "spell_time(time(' 15 s'))" ] },
    "max_duration": { "math": [ "spell_time(time(' 1 h'))" ] },
    "duration_increment": { "math": [ "spell_time(time(' 15 s'))" ] },
    "learn_spells": { "spell_summon_twin_flood": 15 }
  },
  {
    "id": "spell_summon_twin_flood",
    "type": "SPELL",
    "name": "Twin Flood",
    "description": "Fill the reality with your own copies.",
    "teachable": false,
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "effect_str": "mon_twin",
    "shape": "blast",
    "flags": [ "SILENT", "RANDOM_TARGET", "NO_EXPLOSION_SFX", "NO_LEGS" ],
    "skill": "deduction",
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "min_range": 1,
    "max_range": 1,
    "min_damage": 9,
    "max_damage": 100,
    "damage_increment": 2,
    "min_aoe": 9,
    "max_aoe": 34,
    "aoe_increment": 1,
    "difficulty": 8,
    "base_casting_time": 800,
    "final_casting_time": 0,
    "casting_time_increment": -20,
    "base_energy_cost": 1000,
    "final_energy_cost": 300,
    "energy_increment": -25,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "min_duration": { "math": [ "spell_time(time(' 15 s'))" ] },
    "max_duration": { "math": [ "spell_time(time(' 1 h'))" ] },
    "duration_increment": { "math": [ "spell_time(time(' 15 s'))" ] }
  },
  {
    "id": "spell_dreamer_clairvoyance",
    "type": "SPELL",
    "name": "Unfold",
    "description": "All walls are obliterated before your eyes.",
    "teachable": false,
    "valid_targets": [ "hostile", "ground" ],
    "flags": [ "IGNORE_WALLS", "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ],
    "skill": "deduction",
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "difficulty": 8,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "effect": "attack",
    "shape": "cone",
    "min_range": 2,
    "max_range": 45,
    "range_increment": 1.5,
    "min_aoe": 12,
    "max_aoe": 360,
    "aoe_increment": 12,
    "base_casting_time": { "math": [ "spell_time(time(' 30 s'))" ] },
    "final_casting_time": { "math": [ "spell_time(time(' 5 s'))" ] },
    "casting_time_increment": { "math": [ "-1 * spell_time(time(' 1 s'))" ] },
    "base_energy_cost": 600,
    "final_energy_cost": 300,
    "energy_increment": -10,
    "field_id": "fd_clairvoyant",
    "min_field_intensity": 1,
    "max_field_intensity": 1
  },
  {
    "id": "spell_dreamer_clairvoyance_eff",
    "type": "SPELL",
    "name": "Spatial Awareness",
    "description": "Feel them.  See them.  Connect to them.",
    "teachable": false,
    "valid_targets": [ "hostile", "ally" ],
    "flags": [ "IGNORE_WALLS", "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX" ],
    "skill": "deduction",
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "difficulty": 9,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "effect": "attack",
    "shape": "blast",
    "min_aoe": 10,
    "max_aoe": 60,
    "aoe_increment": 2.5,
    "base_casting_time": 500,
    "final_casting_time": 0,
    "casting_time_increment": -25,
    "base_energy_cost": 600,
    "final_energy_cost": 300,
    "energy_increment": -10,
    "field_id": "fd_clairvoyant",
    "min_field_intensity": 1,
    "max_field_intensity": 1
  },
  {
    "id": "summon_shifter",
    "type": "SPELL",
    "name": "Summon Shifter",
    "description": "Summon a portal creature to help in a dangerous situation.",
    "teachable": false,
    "valid_targets": [ "ground" ],
    "skill": "deduction",
    "min_damage": 1,
    "max_damage": 5,
    "damage_increment": 0.2,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "difficulty": 4,
    "spell_class": "DREAMER",
    "effect": "summon",
    "effect_str": "mon_shifter",
    "shape": "blast",
    "magic_type": "xedra_dream_magic",
    "base_energy_cost": 500,
    "base_casting_time": { "math": [ "spell_time(time(' 30 s'))" ] },
    "final_casting_time": 100,
    "casting_time_increment": -100,
    "min_aoe": 2,
    "max_aoe": 2,
    "flags": [ "VERBAL", "NO_EXPLOSION_SFX" ],
    "min_duration": { "math": [ "spell_time(time(' 5 m'))" ] },
    "max_duration": { "math": [ "spell_time(time(' 5 h'))" ] },
    "duration_increment": { "math": [ "spell_time(time(' 5 m'))" ] }
  },
  {
    "id": "summon_sapient_light",
    "type": "SPELL",
    "name": "Summon Light",
    "description": "Summon a disturbed sapient entity of another reality with a hatred for living creatures.  It won't attack you.  At least for now.",
    "teachable": false,
    "valid_targets": [ "ground" ],
    "skill": "deduction",
    "min_damage": 1,
    "max_damage": 1,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "difficulty": 6,
    "spell_class": "DREAMER",
    "effect": "summon",
    "effect_str": "mon_sapient_light",
    "shape": "blast",
    "magic_type": "xedra_dream_magic",
    "base_energy_cost": 600,
    "base_casting_time": { "math": [ "spell_time(time(' 30 s'))" ] },
    "min_aoe": 2,
    "max_aoe": 2,
    "flags": [ "VERBAL", "NO_EXPLOSION_SFX" ],
    "min_duration": { "math": [ "spell_time(time(' 3 m'))" ] },
    "max_duration": { "math": [ "spell_time(time(' 2 h'))" ] },
    "duration_increment": { "math": [ "spell_time(time(' 3 m'))" ] }
  },
  {
    "id": "make_constructed_hammer",
    "type": "SPELL",
    "name": "Hammering",
    "description": "Using your energy you construct an oddly shaped hammer.  You can use it to smash your enemies, or breach different obstacles.",
    "teachable": false,
    "valid_targets": [ "self" ],
    "skill": "deduction",
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "constructed_hammer",
    "shape": "blast",
    "min_duration": { "math": [ "spell_time(time(' 2 h'))" ] },
    "max_duration": { "math": [ "spell_time(time(' 3 d'))" ] },
    "duration_increment": { "math": [ "spell_time(time(' 2 h'))" ] },
    "base_casting_time": { "math": [ "spell_time(time(' 30 m'))" ] },
    "final_casting_time": { "math": [ "spell_time(time(' 5 m'))" ] },
    "casting_time_increment": { "math": [ "-1 * spell_time(time(' 1 m'))" ] },
    "base_energy_cost": 450,
    "final_energy_cost": 200,
    "energy_increment": -15,
    "difficulty": 3,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "flags": [ "SOMATIC" ],
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic"
  },
  {
    "id": "constructed_hammer_attack",
    "type": "SPELL",
    "name": { "str": "Smash A Target", "//~": "NO_I18N" },
    "description": { "str": "Deal some damage.  You can't see it except in debug mode.", "//~": "NO_I18N" },
    "effect": "attack",
    "shape": "blast",
    "valid_targets": [ "hostile", "ground" ],
    "flags": [ "SILENT", "IGNORE_WALLS", "NO_EXPLOSION_SFX", "RANDOM_DAMAGE" ],
    "min_damage": 360,
    "max_damage": 500,
    "min_bash_scaling": 1,
    "max_bash_scaling": 1,
    "min_range": 1,
    "max_range": 1,
    "message": "",
    "damage_type": "bash",
    "sound_description": "a smash",
    "extra_effects": [ { "id": "constructed_hammer_self_destruct" } ]
  },
  {
    "id": "constructed_hammer_self_destruct",
    "type": "SPELL",
    "shape": "blast",
    "name": { "str": "Constructed Hammer Self destruct", "//~": "NO_I18N" },
    "description": { "str": "Removes constructed hammer.  You can't see it except in debug mode.", "//~": "NO_I18N" },
    "valid_targets": [ "ground" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_REMOVE_CONSTRUCTED_HAMMER"
  },
  {
    "id": "EOC_REMOVE_CONSTRUCTED_HAMMER",
    "type": "effect_on_condition",
    "effect": [ { "npc_remove_item_with": "constructed_hammer" } ]
  },
  {
    "id": "summon_duplicator",
    "type": "SPELL",
    "name": "Summon Duplicator",
    "description": "Summon a portal creature to help in a dangerous situation.",
    "teachable": false,
    "skill": "deduction",
    "valid_targets": [ "ground" ],
    "min_damage": 1,
    "max_damage": 1,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "difficulty": 8,
    "spell_class": "DREAMER",
    "effect": "summon",
    "effect_str": "mon_duplicator",
    "shape": "blast",
    "magic_type": "xedra_dream_magic",
    "base_energy_cost": 800,
    "base_casting_time": 3000,
    "final_casting_time": 100,
    "casting_time_increment": -145,
    "min_aoe": 2,
    "max_aoe": 2,
    "flags": [ "VERBAL", "NO_EXPLOSION_SFX" ],
    "min_duration": { "math": [ "spell_time(time(' 6 m'))" ] },
    "max_duration": { "math": [ "spell_time(time(' 3 h'))" ] },
    "duration_increment": { "math": [ "spell_time(time(' 6 m'))" ] }
  },
  {
    "id": "xedra_dreamer_time_bubble",
    "type": "SPELL",
    "name": "Summon Time Bubble",
    "description": "Summon an impenetrable bubble of frozen time at your chosen location, freezing everything within.",
    "message": "You create a bubble of frozen time!",
    "teachable": false,
    "valid_targets": [ "self", "ally", "ground", "hostile" ],
    "skill": "deduction",
    "flags": [ "SILENT", "NO_EXPLOSION_SFX", "IGNORE_WALLS" ],
    "effect": "attack",
    "effect_str": "effect_xedra_time_freeze",
    "shape": "blast",
    "min_aoe": 0,
    "max_aoe": 3,
    "aoe_increment": 0.15,
    "field_id": "fd_frozen_time",
    "field_chance": 1,
    "min_field_intensity": 10,
    "max_field_intensity": 10,
    "min_range": 5,
    "max_range": 20,
    "range_increment": 0.75,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "difficulty": 10,
    "spell_class": "DREAMER",
    "min_duration": { "math": [ "u_spell_level('xedra_dreamer_time_bubble')*60000" ] },
    "max_duration": { "math": [ "u_spell_level('xedra_dreamer_time_bubble')*60000" ] },
    "base_casting_time": 200,
    "final_casting_time": 100,
    "casting_time_increment": -5,
    "magic_type": "xedra_dream_magic",
    "base_energy_cost": 800,
    "final_energy_cost": 200,
    "energy_increment": -30
  },
  {
    "id": "teleport_coin",
    "type": "SPELL",
    "name": "Toss a Coin",
    "description": "Toss a coin.  On which side are you?",
    "teachable": false,
    "skill": "deduction",
    "effect": "short_range_teleport",
    "shape": "blast",
    "components": "spell_components_dreamer_coin",
    "valid_targets": [ "ground" ],
    "flags": [ "SILENT", "TARGET_TELEPORT" ],
    "min_range": 2,
    "max_range": 2,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "difficulty": 10,
    "spell_class": "DREAMER",
    "base_casting_time": 400,
    "final_casting_time": 0,
    "casting_time_increment": -25,
    "magic_type": "xedra_dream_magic",
    "base_energy_cost": 700,
    "final_energy_cost": 200,
    "energy_increment": -15
  },
  {
    "id": "summon_ophanim",
    "type": "SPELL",
    "name": "Summon Angel",
    "description": "Summon a creature that looks pretty similar to how angels are described in the Bible - a giant flying mess of wings, eyes and rings.",
    "teachable": false,
    "valid_targets": [ "ground" ],
    "skill": "deduction",
    "min_damage": 1,
    "max_damage": 1,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "difficulty": 6,
    "spell_class": "DREAMER",
    "effect": "summon",
    "effect_str": "mon_ophanim",
    "shape": "blast",
    "magic_type": "xedra_dream_magic",
    "base_energy_cost": 1200,
    "final_energy_cost": 200,
    "energy_increment": -25,
    "base_casting_time": { "math": [ "spell_time(time(' 30 s'))" ] },
    "final_casting_time": { "math": [ "spell_time(time(' 1 s'))" ] },
    "casting_time_increment": -150,
    "min_aoe": 2,
    "max_aoe": 2,
    "flags": [ "VERBAL", "NO_EXPLOSION_SFX" ],
    "min_duration": { "math": [ "spell_time(time(' 3 m'))" ] },
    "max_duration": { "math": [ "spell_time(time(' 3 h'))" ] },
    "duration_increment": { "math": [ "spell_time(time(' 3 m'))" ] }
  },
  {
    "id": "summon_winch",
    "type": "SPELL",
    "name": "Construct a Winch",
    "description": "Create a small token.  When used, it'll pull you back to the place you created it.",
    "teachable": false,
    "skill": "deduction",
    "valid_targets": [ "self" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_WINCH_INITIAL",
    "shape": "blast",
    "base_casting_time": { "math": [ "spell_time(time(' 3 m'))" ] },
    "final_casting_time": { "math": [ "spell_time(time(' 6 s'))" ] },
    "casting_time_increment": { "math": [ "-1 * spell_time(time(' 3 m'))" ] },
    "base_energy_cost": 1200,
    "final_energy_cost": 200,
    "energy_increment": -25,
    "magic_type": "xedra_dream_magic",
    "flags": [ "SOMATIC", "VERBAL", "SILENT", "NO_EXPLOSION_SFX" ],
    "spell_class": "DREAMER",
    "difficulty": 7,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "extra_effects": [ { "id": "summon_winch_item" } ]
  },
  {
    "id": "summon_winch_item",
    "type": "SPELL",
    "name": { "str": "Spawn a Winch", "//~": "NO_I18N" },
    "description": { "str": "Spawns a winch item.  You can see it only in debug mode.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "min_damage": 1,
    "max_damage": 1,
    "effect": "spawn_item",
    "effect_str": "winch_stone",
    "shape": "blast",
    "min_duration": { "math": [ "spell_time(time(' 5 m'))" ] },
    "max_duration": { "math": [ "spell_time(time(' 6 h'))" ] },
    "duration_increment": { "math": [ "spell_time(time(' 5 m'))" ] },
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "flags": [ "SILENT", "NO_EXPLOSION_SFX" ],
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic"
  },
  {
    "id": "dreamer_artifact",
    "type": "SPELL",
    "name": "Pull From Beyond",
    "description": "Using your abilities, you compress the gap between your hands with pure energy, attempting to construct…  something.",
    "teachable": false,
    "valid_targets": [ "self" ],
    "skill": "deduction",
    "flags": [ "NO_LEGS", "NO_FAIL" ],
    "difficulty": 5,
    "min_damage": 1,
    "max_damage": 1,
    "effect": "effect_on_condition",
    "effect_str": "EOC_DREAMER_ARTIFACT_SPAWN",
    "shape": "blast",
    "magic_type": "xedra_dream_magic",
    "base_energy_cost": 0,
    "base_casting_time": { "math": [ "spell_time(time(' 10 m'))" ] },
    "final_casting_time": { "math": [ "spell_time(time(' 10 m'))" ] },
    "spell_class": "DREAMER"
  },
  {
    "id": "xedra_dreamer_generate_accelerated_time",
    "type": "SPELL",
    "name": "Generate Accelerated Time",
    "description": "Continuously generate short-lived bubbles of accelerated time around you, allowing you and anything else that enters to act far quicker than normal.",
    "teachable": false,
    "valid_targets": [ "self" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_GENERATE_ACCELERATED_TIME_INITIATE",
    "shape": "blast",
    "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX", "NO_FAIL" ],
    "skill": "deduction",
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "difficulty": 8,
    "base_casting_time": { "math": [ "u_effect_intensity('effect_xedra_dreamer_generate_accelerated_time') > -1 ? 0 : 1500" ] },
    "base_energy_cost": { "math": [ "u_effect_intensity('effect_xedra_dreamer_generate_accelerated_time') > -1 ? 0 : 200" ] },
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "min_duration": { "math": [ "((u_spell_level('xedra_dreamer_generate_accelerated_time')+1)*750)*100" ] },
    "max_duration": { "math": [ "((u_spell_level('xedra_dreamer_generate_accelerated_time')+1)*750)*100" ] }
  },
  {
    "id": "spell_ethereal_wings",
    "type": "SPELL",
    "name": "Ethereal Wings",
    "description": "Two ethereal wings sprout out of your back indefinitely until toggled off.  They work as phantasmal pair of wings that can somehow lift your weight even without conscious effort.",
    "teachable": false,
    "valid_targets": [ "self" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_ETHEREAL_WINGS_INITIATE",
    "shape": "blast",
    "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX", "NO_FAIL" ],
    "skill": "deduction",
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "difficulty": 9,
    "base_casting_time": { "math": [ "u_has_trait('ethereal_wings') ? 0 : 2000" ] },
    "base_energy_cost": { "math": [ "u_has_trait('ethereal_wings') ? 0 : 200" ] },
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "min_duration": { "math": [ "((u_spell_level('spell_ethereal_wings')+1)*500)*100" ] },
    "max_duration": { "math": [ "((u_spell_level('spell_ethereal_wings')+1)*500)*100" ] }
  },
  {
    "id": "spell_karma_arms",
    "type": "SPELL",
    "name": "Karma Arms",
    "description": "Four transparent arms emit out of your body indefinitely until toggled off.  They work as a desirable additional pair of arms, and who knows what power they contain?",
    "teachable": false,
    "//": "obvious reference for 'Submachine' by Mateusz Skutnik, albeit no portals; maybe should actually make it a single arm, that can draw portals.",
    "valid_targets": [ "self" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_KARMA_ARMS_INITIATE",
    "shape": "blast",
    "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX", "NO_FAIL" ],
    "skill": "deduction",
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "difficulty": 10,
    "base_casting_time": { "math": [ "u_has_trait('karma_arms') ? 0 : 2000" ] },
    "base_energy_cost": { "math": [ "u_has_trait('karma_arms') ? 0 : 200" ] },
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "min_duration": { "math": [ "((u_spell_level('spell_karma_arms')+1)*500)*100" ] },
    "max_duration": { "math": [ "((u_spell_level('spell_karma_arms')+1)*500)*100" ] }
  },
  {
    "id": "spell_stalker_eyes",
    "type": "SPELL",
    "name": "Stalker's Oculars",
    "description": "Your own eyes are replaced with the eyeballs of an unknown creature, indefinitely, until you toggle them off.  Compounded from billions of red crosses inside void-dark sclera, they can see much more clearly than any natural creature.",
    "teachable": false,
    "valid_targets": [ "self" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_STALKER_EYES_INITIATE",
    "shape": "blast",
    "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX", "NO_FAIL" ],
    "skill": "deduction",
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "difficulty": 7,
    "base_casting_time": { "math": [ "u_has_trait('stalker_eyes') ? 0 : 1000" ] },
    "base_energy_cost": { "math": [ "u_has_trait('stalker_eyes') ? 0 : 200" ] },
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "min_duration": { "math": [ "((u_spell_level('spell_stalker_eyes')+1)*1300)*100" ] },
    "max_duration": { "math": [ "((u_spell_level('spell_stalker_eyes')+1)*1300)*100" ] }
  },
  {
    "id": "spell_devil_tail",
    "type": "SPELL",
    "name": "Devil's Tail",
    "description": "A stretchy tail appears from the base of your spine, instinctively aiding you in battle or moving to defend you, indefinitely, until toggled off.",
    "teachable": false,
    "valid_targets": [ "self" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_DEVIL_TAIL_INITIATE",
    "shape": "blast",
    "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX", "NO_FAIL" ],
    "skill": "deduction",
    "spell_class": "DREAMER",
    "magic_type": "xedra_dream_magic",
    "difficulty": 8,
    "base_casting_time": { "math": [ "u_has_trait('devil_tail') ? 0 : 1500" ] },
    "base_energy_cost": { "math": [ "u_has_trait('devil_tail') ? 0 : 100" ] },
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "min_duration": { "math": [ "((u_spell_level('spell_devil_tail')+1)*900)*100" ] },
    "max_duration": { "math": [ "((u_spell_level('spell_devil_tail')+1)*900)*100" ] }
  },
  {
    "id": "dreamer_lucid_dreams",
    "type": "SPELL",
    "name": "Lucid Dreams",
    "description": "The line between reality and your dreams shrinks enormously.  In this dream you are barely affected by reality, with most changes to your body reverting when you wake up.  While it may end your dream, not even death can touch you.",
    "teachable": false,
    "skill": "deduction",
    "valid_targets": [ "self" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_LUCID_DREAM_SWITCH",
    "shape": "blast",
    "base_casting_time": { "math": [ "u_has_trait('LUCID_DREAM') ? 0 : 1000" ] },
    "base_energy_cost": { "math": [ "u_has_trait('LUCID_DREAM') ? 0 : 900" ] },
    "magic_type": "xedra_dream_magic",
    "flags": [ "SOMATIC", "VERBAL", "SILENT", "NO_EXPLOSION_SFX" ],
    "spell_class": "DREAMER",
    "difficulty": 7,
    "max_level": { "math": [ "dreamer_level(1)" ] },
    "min_duration": { "math": [ "((u_spell_level('dreamer_lucid_dreams')+1)*700)*100" ] },
    "max_duration": { "math": [ "((u_spell_level('dreamer_lucid_dreams')+1)*700)*100" ] }
  }
]
