diff --git a/data/mods/Magiclysm/Spells/animist.json b/data/mods/Magiclysm/Spells/animist.json
index 49eb21b0721fb..6c39055f698b3 100644
--- a/data/mods/Magiclysm/Spells/animist.json
+++ b/data/mods/Magiclysm/Spells/animist.json
@@ -5,9 +5,9 @@
     "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": [ "evocation_proficiency_bonus_calculate(10, 0.5)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(200, 0.5)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(15, 0.08)" ] },
+    "min_damage": 10,
+    "max_damage": 200,
+    "damage_increment": 15,
     "min_range": 1,
     "max_range": 1,
     "effect": "attack",
@@ -22,7 +22,7 @@
     "difficulty": 8,
     "max_level": 15,
     "damage_type": "light",
-    "flags": [ "VERBAL", "LOUD", "NO_HANDS" ],
+    "flags": [ "EVOCATION_SPELL", "VERBAL", "LOUD", "NO_HANDS" ],
     "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
     "energy_source": "MANA"
   },
@@ -32,9 +32,9 @@
     "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": [ "channeling_proficiency_bonus_calculate(75, 1)" ] },
-    "damage_increment": { "math": [ "channeling_proficiency_bonus_calculate(15, 0.03)" ] },
-    "max_damage": { "math": [ "channeling_proficiency_bonus_calculate(600, 1)" ] },
+    "min_damage": 75,
+    "damage_increment": 15,
+    "max_damage": 600,
     "max_level": 35,
     "effect": "recover_energy",
     "effect_str": "MANA",
@@ -42,8 +42,8 @@
     "spell_class": "ANIMIST",
     "energy_source": "MANA",
     "components": "spell_components_rune_animist",
-    "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(500, 4)" ] },
-    "flags": [ "SOMATIC", "VERBAL", "SILENT", "NO_LEGS", "CONSUMES_RUNES" ],
+    "base_casting_time": 500,
+    "flags": [ "CHANNELING_SPELL", "SOMATIC", "VERBAL", "SILENT", "NO_LEGS", "CONSUMES_RUNES" ],
     "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ],
     "difficulty": 3
   },
@@ -53,19 +53,19 @@
     "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": [ "channeling_proficiency_bonus_calculate(10, 1)" ] },
-    "max_damage": { "math": [ "channeling_proficiency_bonus_calculate(100, 1)" ] },
-    "damage_increment": { "math": [ "channeling_proficiency_bonus_calculate(2.0, 0.022)" ] },
+    "min_damage": 10,
+    "max_damage": 100,
+    "damage_increment": 2,
     "max_level": 45,
     "spell_class": "ANIMIST",
     "effect": "recover_energy",
     "effect_str": "PAIN",
     "shape": "blast",
     "energy_source": "STAMINA",
-    "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(50000, 100)" ] },
+    "base_casting_time": 50000,
     "base_energy_cost": 5000,
     "energy_increment": 500.0,
-    "flags": [ "SOMATIC", "VERBAL", "PAIN_NORESIST" ],
+    "flags": [ "CHANNELING_SPELL", "SOMATIC", "VERBAL", "PAIN_NORESIST" ],
     "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ],
     "final_energy_cost": 10000
   },
@@ -86,11 +86,11 @@
     "shape": "blast",
     "energy_source": "MANA",
     "base_energy_cost": 400,
-    "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(3000, 20)" ] },
-    "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "CONSUMES_RUNES" ],
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(36000, 30)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1080000, 30)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.034)" ] },
+    "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 } ]
   },
   {
@@ -123,10 +123,10 @@
     "max_range": 3,
     "min_aoe": 2,
     "max_aoe": 2,
-    "flags": [ "SILENT", "NO_EXPLOSION_SFX", "NO_CORPSE_QUIET" ],
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(36000, 30)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1080000, 30)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.034)" ] }
+    "flags": [ "CONJURATION_SPELL", "SILENT", "NO_EXPLOSION_SFX", "NO_CORPSE_QUIET" ],
+    "min_duration": 36000,
+    "max_duration": 1080000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_zombie",
@@ -138,9 +138,9 @@
     "effect": "summon",
     "effect_str": "mon_zombie",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(216000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(216000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.16)" ] }
+    "min_duration": 216000,
+    "max_duration": 216000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_tough_zombie",
@@ -152,9 +152,9 @@
     "effect": "summon",
     "effect_str": "mon_zombie_tough",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(468000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(468000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.08)" ] }
+    "min_duration": 468000,
+    "max_duration": 468000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_zombie_brute",
@@ -166,9 +166,9 @@
     "effect": "summon",
     "effect_str": "mon_zombie_brute",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(720000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(720000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.05)" ] }
+    "min_duration": 720000,
+    "max_duration": 720000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_skeleton",
@@ -180,9 +180,9 @@
     "effect": "summon",
     "effect_str": "mon_skeleton",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(972000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(972000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.04)" ] }
+    "min_duration": 972000,
+    "max_duration": 972000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_skeleton_brute",
@@ -194,9 +194,9 @@
     "effect": "summon",
     "effect_str": "mon_skeleton_brute",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(1260000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1260000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.03)" ] }
+    "min_duration": 1260000,
+    "max_duration": 1260000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_skeleton_hulk",
@@ -208,9 +208,9 @@
     "effect": "summon",
     "effect_str": "mon_skeleton_hulk",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(1260000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1260000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.03)" ] }
+    "min_duration": 1260000,
+    "max_duration": 1260000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_undead_swarm",
@@ -228,12 +228,12 @@
     "components": "spell_components_rune_animist_3",
     "shape": "blast",
     "energy_source": "MANA",
-    "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(600, 3)" ] },
-    "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(3000, 20)" ] },
-    "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "CONSUMES_RUNES" ],
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(36000, 40)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1080000, 40)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.034)" ] },
+    "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 } ]
   },
   {
@@ -268,10 +268,10 @@
     "max_range": 3,
     "min_aoe": 2,
     "max_aoe": 2,
-    "flags": [ "SILENT", "NO_EXPLOSION_SFX", "NO_CORPSE_QUIET" ],
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(36000, 30)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1080000, 30)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.034)" ] }
+    "flags": [ "CONJURATION_SPELL", "SILENT", "NO_EXPLOSION_SFX", "NO_CORPSE_QUIET" ],
+    "min_duration": 36000,
+    "max_duration": 1080000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_zombie_dog",
@@ -283,9 +283,9 @@
     "effect": "summon",
     "effect_str": "mon_zombie_dog",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(144000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(144000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.25)" ] }
+    "min_duration": 144000,
+    "max_duration": 144000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_dog_skeleton",
@@ -297,9 +297,9 @@
     "effect": "summon",
     "effect_str": "mon_dog_skeleton",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(324000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(324000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.11)" ] }
+    "min_duration": 324000,
+    "max_duration": 324000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_zougar",
@@ -311,9 +311,9 @@
     "effect": "summon",
     "effect_str": "mon_zougar",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(504000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(504000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.07)" ] }
+    "min_duration": 504000,
+    "max_duration": 504000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_wolf_skeleton",
@@ -325,9 +325,9 @@
     "effect": "summon",
     "effect_str": "mon_wolf_skeleton",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(684000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(684000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.052)" ] }
+    "min_duration": 684000,
+    "max_duration": 684000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_dog_zombie_brute",
@@ -339,9 +339,9 @@
     "effect": "summon",
     "effect_str": "mon_dog_zombie_brute",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(864000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(864000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.04)" ] }
+    "min_duration": 864000,
+    "max_duration": 864000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_dog_skeleton_brute",
@@ -353,9 +353,9 @@
     "effect": "summon",
     "effect_str": "mon_dog_skeleton_brute",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(1044000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1044000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.04)" ] }
+    "min_duration": 1044000,
+    "max_duration": 1044000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_dog_zombie_hulk",
@@ -367,9 +367,9 @@
     "effect": "summon",
     "effect_str": "mon_dog_zombie_hulk",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(1260000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1260000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.03)" ] }
+    "min_duration": 1260000,
+    "max_duration": 1260000,
+    "duration_increment": 36000
   },
   {
     "id": "summon_zougar_hunter",
@@ -381,9 +381,9 @@
     "effect": "summon",
     "effect_str": "mon_zougar_hunter",
     "max_level": 35,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(1260000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1260000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(36000, 0.03)" ] }
+    "min_duration": 1260000,
+    "max_duration": 1260000,
+    "duration_increment": 36000
   },
   {
     "id": "necrotic_gaze",
@@ -395,11 +395,11 @@
     "shape": "line",
     "spell_class": "ANIMIST",
     "energy_source": "MANA",
-    "flags": [ "NO_LEGS", "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "NO_HANDS", "CONSUMES_RUNES" ],
+    "flags": [ "EVOCATION_SPELL", "NO_LEGS", "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "NO_HANDS", "CONSUMES_RUNES" ],
     "components": "spell_components_rune_animist",
-    "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.5)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(160, 0.5)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(6, 0.04)" ] },
+    "min_damage": 10,
+    "max_damage": 160,
+    "damage_increment": 6,
     "min_range": 3,
     "max_range": 5,
     "range_increment": 0.1,
@@ -423,7 +423,7 @@
     "effect": "spawn_item",
     "effect_str": "rune_animist",
     "shape": "blast",
-    "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(5000, 10)" ] },
+    "base_casting_time": 5000,
     "base_energy_cost": 5,
     "min_duration": 1,
     "max_duration": 2,
@@ -434,7 +434,7 @@
     "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": [ "PERMANENT", "NO_LEGS", "CONCENTRATE" ]
+    "flags": [ "CHANNELING_SPELL", "PERMANENT", "NO_LEGS", "CONCENTRATE" ]
   },
   {
     "id": "dominate",
@@ -442,7 +442,7 @@
     "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": [ "CONCENTRATE", "SOMATIC", "SILENT", "CONSUMES_RUNES" ],
+    "flags": [ "ENERVATION_SPELL", "CONCENTRATE", "SOMATIC", "SILENT", "CONSUMES_RUNES" ],
     "effect": "charm_monster",
     "targeted_monster_species": [ "ZOMBIE" ],
     "components": "spell_components_rune_animist_3",
@@ -454,7 +454,7 @@
     "min_range": 4,
     "max_range": 26,
     "range_increment": 1.1,
-    "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(400, 1)" ] },
+    "base_energy_cost": 400,
     "spell_class": "ANIMIST",
     "difficulty": 6,
     "max_level": 20,
@@ -464,10 +464,10 @@
     "min_duration": 36000,
     "max_duration": 1080000,
     "duration_increment": 36000,
-    "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(300, 1)" ] },
-    "final_casting_time": { "math": [ "channeling_proficiency_negate_calculate(30, 1)" ] },
-    "casting_time_increment": { "math": [ "channeling_proficiency_negate_calculate(-14, 0.051)" ] },
-    "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ],
+    "base_casting_time": 300,
+    "final_casting_time": 30,
+    "casting_time_increment": -14,
+    "extra_effects": [ { "id": "eoc_enervation_setup", "hit_self": true } ],
     "energy_source": "MANA"
   },
   {
@@ -480,7 +480,7 @@
     "effect": "attack",
     "shape": "blast",
     "spell_class": "ANIMIST",
-    "flags": [ "NO_LEGS", "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "NO_HANDS", "PERCENTAGE_DAMAGE" ],
+    "flags": [ "EVOCATION_SPELL", "NO_LEGS", "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "NO_HANDS", "PERCENTAGE_DAMAGE" ],
     "min_damage": 100,
     "max_damage": 100,
     "min_range": 10,
@@ -502,15 +502,15 @@
     "name": "Life Detonation Explosion",
     "description": "Detonation for life detonation spell.",
     "valid_targets": [ "hostile", "ground" ],
-    "flags": [ "CONCENTRATE", "SOMATIC", "SILENT" ],
+    "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SOMATIC", "SILENT" ],
     "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",
-    "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.5)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(180, 0.5)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(6.4, 0.04)" ] },
+    "min_damage": 20,
+    "max_damage": 180,
+    "damage_increment": 6.4,
     "spell_class": "ANIMIST",
     "difficulty": 5,
     "max_level": 25,
@@ -524,7 +524,7 @@
     "name": "Convert",
     "description": "Kill an allied creature, converting its life energy into a compact rune that you can use afterwards.",
     "valid_targets": [ "ally" ],
-    "flags": [ "CONCENTRATE", "SOMATIC", "SILENT", "PERCENTAGE_DAMAGE" ],
+    "flags": [ "CHANNELING_SPELL", "CONCENTRATE", "SOMATIC", "SILENT", "PERCENTAGE_DAMAGE" ],
     "effect": "attack",
     "shape": "blast",
     "message": "",
@@ -536,9 +536,9 @@
     "spell_class": "ANIMIST",
     "difficulty": 4,
     "max_level": 10,
-    "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(30000, 10)" ] },
-    "final_casting_time": { "math": [ "channeling_proficiency_negate_calculate(1000, 10)" ] },
-    "casting_time_increment": { "math": [ "channeling_proficiency_negate_calculate(-200, 0.007)" ] },
+    "base_casting_time": 30000,
+    "final_casting_time": 1000,
+    "casting_time_increment": -200,
     "energy_source": "MANA",
     "extra_effects": [ { "id": "create_rune_animist", "hit_self": true }, { "id": "eoc_channeling_setup", "hit_self": true } ]
   },
@@ -548,7 +548,7 @@
     "name": "Soulrend",
     "description": "Violently tears the spirit from the body and binds the resulting shade to your will.",
     "valid_targets": [ "hostile", "ally" ],
-    "flags": [ "NO_LEGS", "LOUD", "SOMATIC", "POLYMORPH_GROUP", "FRIENDLY_POLY", "NO_HANDS" ],
+    "flags": [ "CONJURATION_SPELL", "NO_LEGS", "LOUD", "SOMATIC", "POLYMORPH_GROUP", "FRIENDLY_POLY", "NO_HANDS" ],
     "effect": "targeted_polymorph",
     "effect_str": "GROUP_POLYMORPH_SHADOW",
     "shape": "blast",
@@ -559,10 +559,10 @@
     "max_damage": 140,
     "damage_increment": 2.5,
     "max_level": 40,
-    "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(200, 1)" ] },
-    "casting_time_increment": { "math": [ "summoning_proficiency_negate_calculate(-2.0, 0.025)" ] },
-    "final_casting_time": { "math": [ "summoning_proficiency_negate_calculate(120, 1)" ] },
-    "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(200, 1)" ] },
+    "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 } ],
@@ -574,11 +574,11 @@
     "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": [ "VERBAL", "SOMATIC", "NO_LEGS", "PERCENTAGE_DAMAGE", "SILENT", "NO_PROJECTILE" ],
+    "flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "NO_LEGS", "PERCENTAGE_DAMAGE", "SILENT", "NO_PROJECTILE" ],
     "min_damage": 35,
     "damage_type": "necrotic",
-    "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1, 0.2)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(50, 0.2)" ] },
+    "damage_increment": 1,
+    "max_damage": 50,
     "min_range": 2,
     "range_increment": 0.5,
     "max_range": 66,
@@ -611,14 +611,14 @@
     "effect_str": "mon_magi_shadow",
     "shape": "blast",
     "energy_source": "MANA",
-    "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(200, 1)" ] },
-    "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(500, 2)" ] },
+    "base_energy_cost": 200,
+    "base_casting_time": 500,
     "min_aoe": 3,
     "max_aoe": 3,
-    "flags": [ "SOMATIC", "VERBAL" ],
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(3600, 8)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(12000, 8)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(1000, 0.12)" ] },
+    "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL" ],
+    "min_duration": 3600,
+    "max_duration": 12000,
+    "duration_increment": 280,
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
   },
   {
@@ -628,22 +628,22 @@
     "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": [ "NO_LEGS", "LOUD", "SOMATIC", "SWAP_POS", "NO_PROJECTILE" ],
+    "flags": [ "CONVEYANCE_SPELL", "NO_LEGS", "LOUD", "SOMATIC", "SWAP_POS", "NO_PROJECTILE" ],
     "effect": "attack",
     "shape": "blast",
     "spell_class": "ANIMIST",
     "energy_source": "MANA",
     "difficulty": 5,
     "max_level": 20,
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(100, 0.33)" ] },
-    "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-2.5, 0.05)" ] },
-    "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(50, 0.33)" ] },
+    "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_enhancement_setup", "hit_self": true } ],
+    "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ],
     "range_increment": 1.0
   },
   {
@@ -652,12 +652,12 @@
     "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": [ "SOMATIC", "VERBAL", "NO_HANDS" ],
+    "flags": [ "CONVEYANCE_SPELL", "SOMATIC", "VERBAL", "NO_HANDS" ],
     "effect": "banishment",
     "shape": "blast",
-    "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(40, 0.7)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.04)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(290, 0.7)" ] },
+    "min_damage": 40,
+    "damage_increment": 10,
+    "max_damage": 290,
     "min_range": 6,
     "max_range": 6,
     "base_energy_cost": 600,
@@ -665,7 +665,7 @@
     "difficulty": 9,
     "max_level": 25,
     "base_casting_time": 100,
-    "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
+    "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ],
     "energy_source": "MANA"
   },
   {
@@ -677,7 +677,7 @@
     "effect": "summon",
     "effect_str": "mon_wisp",
     "shape": "blast",
-    "flags": [ "LOUD", "SOMATIC" ],
+    "flags": [ "CONJURATION_SPELL", "LOUD", "SOMATIC" ],
     "energy_source": "MANA",
     "spell_class": "ANIMIST",
     "difficulty": 2,
@@ -692,9 +692,9 @@
     "min_range": 3,
     "max_range": 7,
     "range_increment": 0.16,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(6000, 30)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(60000, 30)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(2160, 0.04)" ] },
+    "min_duration": 6000,
+    "max_duration": 60000,
+    "duration_increment": 2160,
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
   },
   {
@@ -705,7 +705,7 @@
     "valid_targets": [ "hostile" ],
     "effect": "attack",
     "shape": "blast",
-    "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE", "NO_HANDS" ],
+    "flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE", "NO_HANDS" ],
     "energy_source": "MANA",
     "spell_class": "ANIMIST",
     "difficulty": 2,
@@ -713,17 +713,17 @@
     "base_energy_cost": 150,
     "damage_type": "necrotic",
     "max_level": 25,
-    "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(1, 0.1)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(26, 0.1)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1, 0.04)" ] },
+    "min_damage": 1,
+    "max_damage": 26,
+    "damage_increment": 1,
     "min_range": 3,
     "max_range": 5,
     "range_increment": 0.1,
     "min_duration": 500,
     "max_duration": 1000,
     "duration_increment": 20,
-    "min_dot": { "math": [ "evocation_proficiency_bonus_calculate(2, 0.2)" ] },
-    "max_dot": { "math": [ "evocation_proficiency_bonus_calculate(52, 0.2)" ] },
+    "min_dot": 2,
+    "max_dot": 52,
     "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
     "dot_increment": 2
   },
@@ -736,14 +736,14 @@
     "effect_str": "decaying_boneclub",
     "shape": "blast",
     "valid_targets": [ "self" ],
-    "flags": [ "SOMATIC", "CONCENTRATE", "VERBAL" ],
+    "flags": [ "CONJURATION_SPELL", "SOMATIC", "CONCENTRATE", "VERBAL" ],
     "components": "spell_components_decayingboneclub",
     "max_level": 15,
     "min_damage": 1,
     "max_damage": 1,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(2400, 30)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 30)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.07)" ] },
+    "min_duration": 24000,
+    "max_duration": 360000,
+    "duration_increment": 24000,
     "spell_class": "ANIMIST",
     "base_casting_time": 400,
     "base_energy_cost": 6,
@@ -761,18 +761,18 @@
     "effect_str": "decaying_boneclub",
     "shape": "blast",
     "valid_targets": [ "self" ],
-    "flags": [ "SOMATIC", "VERBAL", "NO_FAIL" ],
+    "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "NO_FAIL" ],
     "components": "spell_components_decayingboneclub",
     "max_level": 25,
     "min_damage": 1,
     "max_damage": 1,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(2160000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(72000, 0.04)" ] },
+    "min_duration": 360000,
+    "max_duration": 2160000,
+    "duration_increment": 72000,
     "spell_class": "ANIMIST",
-    "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(400, 1)" ] },
-    "final_casting_time": { "math": [ "summoning_proficiency_negate_calculate(100, 1)" ] },
-    "casting_time_increment": { "math": [ "summoning_proficiency_negate_calculate(-12, 0.04)" ] },
+    "base_casting_time": 400,
+    "final_casting_time": 100,
+    "casting_time_increment": -12,
     "base_energy_cost": 6,
     "final_energy_cost": 3,
     "energy_increment": -0.2,
@@ -788,14 +788,14 @@
     "effect": "attack",
     "shape": "blast",
     "valid_targets": [ "hostile" ],
-    "flags": [ "SOMATIC", "NO_PROJECTILE", "LOUD", "NO_HANDS" ],
+    "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_PROJECTILE", "LOUD", "NO_HANDS" ],
     "max_level": 25,
     "min_range": 1,
     "range_increment": 0.1,
     "max_range": 3,
-    "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(0, 0.5)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(90, 0.5)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(3.6, 0.04)" ] },
+    "min_damage": 0,
+    "max_damage": 90,
+    "damage_increment": 3.6,
     "base_casting_time": 50,
     "base_energy_cost": 500,
     "final_energy_cost": 250,
@@ -817,14 +817,14 @@
     "name": "Devour",
     "description": "Kill an allied creature, consuming its life energy to regain some health.",
     "valid_targets": [ "ally" ],
-    "flags": [ "CONCENTRATE", "SOMATIC" ],
+    "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": { "math": [ "evocation_proficiency_negate_calculate(-1, 0.1)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_negate_calculate(-10, 0.1)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_negate_calculate(-0.4, 0.044)" ] },
+    "min_damage": -1,
+    "max_damage": -10,
+    "damage_increment": -0.4,
     "min_range": 10,
     "max_range": 10,
     "base_energy_cost": 250,
@@ -845,7 +845,7 @@
     "name": "Devour Damage",
     "description": "Deal deadly damage to ally.  You can see it only in debug mode.",
     "valid_targets": [ "ally" ],
-    "flags": [ "SILENT", "PERCENTAGE_DAMAGE" ],
+    "flags": [ "EVOCATION_SPELL", "SILENT", "PERCENTAGE_DAMAGE" ],
     "effect": "attack",
     "shape": "blast",
     "damage_type": "pure",
@@ -858,12 +858,12 @@
     "name": "Devour Healing",
     "description": "Heal the player.  You can see it only in debug mode.",
     "valid_targets": [ "self" ],
-    "flags": [ "CONCENTRATE", "SOMATIC", "SILENT", "NO_PROJECTILE" ],
+    "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SOMATIC", "SILENT", "NO_PROJECTILE" ],
     "effect": "attack",
     "shape": "blast",
-    "min_damage": { "math": [ "evocation_proficiency_negate_calculate(-1, 0.1)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_negate_calculate(-10, 0.1)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_negate_calculate(-0.4, 0.044)" ] },
+    "min_damage": -1,
+    "max_damage": -10,
+    "damage_increment": -0.4,
     "max_level": 25
   },
   {
@@ -873,7 +873,7 @@
     "description": "You can sense the presence of nearby beings from the Nether.",
     "valid_targets": [ "self" ],
     "spell_class": "ANIMIST",
-    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ],
+    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ],
     "effect": "attack",
     "effect_str": "effect_sense_outsiders",
     "shape": "blast",
@@ -881,10 +881,10 @@
     "difficulty": 5,
     "max_level": 15,
     "base_energy_cost": 500,
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(90000, 5400)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(900000, 5400)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(60000, 0.074)" ] },
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(1500, 10)" ] },
+    "min_duration": 90000,
+    "max_duration": 900000,
+    "duration_increment": 60000,
+    "base_casting_time": 1500,
     "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ]
   },
   {
@@ -892,7 +892,7 @@
     "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": [ "SOMATIC", "CONCENTRATE", "VERBAL", "NO_PROJECTILE" ],
+    "flags": [ "CONJURATION_SPELL", "SOMATIC", "CONCENTRATE", "VERBAL", "NO_PROJECTILE" ],
     "spell_class": "ANIMIST",
     "effect": "summon",
     "effect_str": "mon_watcher_spirit",
@@ -905,12 +905,12 @@
     "min_range": 3,
     "max_range": 20,
     "range_increment": 1.1,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 300)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.07)" ] },
+    "min_duration": 24000,
+    "max_duration": 360000,
+    "duration_increment": 24000,
     "energy_source": "MANA",
     "base_casting_time": 500,
-    "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(150, 1)" ] },
+    "base_energy_cost": 150,
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
   },
   {
@@ -920,16 +920,16 @@
     "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": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_HANDS", "IGNORE_WALLS" ],
+    "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_evocation_setup", "hit_self": true } ],
+    "extra_effects": [ { "id": "animist_mass_hiding_self", "hit_self": true }, { "id": "eoc_enervation_setup", "hit_self": true } ],
     "shape": "blast",
-    "min_duration": { "math": [ "evocation_proficiency_bonus_calculate(3000, 5)" ] },
-    "max_duration": { "math": [ "evocation_proficiency_bonus_calculate(63000, 5)" ] },
-    "duration_increment": { "math": [ "evocation_proficiency_bonus_calculate(3000, 5)" ] },
+    "min_duration": 3000,
+    "max_duration": 63000,
+    "duration_increment": 3000,
     "min_aoe": 5,
     "max_aoe": 25,
     "aoe_increment": 1,
@@ -946,7 +946,7 @@
     "message": "",
     "teachable": false,
     "valid_targets": [ "self" ],
-    "flags": [ "SILENT", "NO_HANDS", "NO_LEGS" ],
+    "flags": [ "ENERVATION_SPELL", "SILENT", "NO_HANDS", "NO_LEGS" ],
     "effect": "attack",
     "effect_str": "telepathic_ignorance_self",
     "shape": "blast",
@@ -958,7 +958,7 @@
     "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": [ "SOMATIC", "CONCENTRATE", "VERBAL" ],
+    "flags": [ "CONJURATION_SPELL", "SOMATIC", "CONCENTRATE", "VERBAL" ],
     "spell_class": "ANIMIST",
     "effect": "spawn_item",
     "effect_str": "item_animist_luck_bone",
@@ -969,12 +969,12 @@
     "max_level": 20,
     "min_damage": 1,
     "max_damage": 1,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(72000, 600)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1512000, 600)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(72000, 0.05)" ] },
+    "min_duration": 72000,
+    "max_duration": 1512000,
+    "duration_increment": 72000,
     "energy_source": "MANA",
     "base_casting_time": 30000,
-    "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(600, 3)" ] },
+    "base_energy_cost": 600,
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
   },
   {
@@ -982,7 +982,7 @@
     "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": [ "SOMATIC", "CONCENTRATE", "VERBAL" ],
+    "flags": [ "ENHANCEMENT_SPELL", "SOMATIC", "CONCENTRATE", "VERBAL" ],
     "spell_class": "ANIMIST",
     "effect": "effect_on_condition",
     "effect_str": "EOC_ANIMIST_SPIRIT_WALKING",
@@ -991,11 +991,11 @@
     "components": "spell_components_spirit_walking",
     "max_level": 20,
     "difficulty": 8,
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(3000, 40)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(9000, 40)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(300, 0.05)" ] },
+    "min_duration": 3000,
+    "max_duration": 9000,
+    "duration_increment": 300,
     "energy_source": "MANA",
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(300, 2)" ] },
+    "base_casting_time": 300,
     "base_energy_cost": 1200,
     "final_energy_cost": 850,
     "energy_increment": -17.5,
@@ -1007,11 +1007,11 @@
     "effect": [
       {
         "u_add_effect": "effect_spirit_walking",
-        "duration": { "math": [ "( 30 + (u_spell_level('animist_spirit_walking') * 3)) " ] }
+        "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)) " ] }
+        "duration": { "math": [ "( 30 + (u_spell_level('animist_spirit_walking') * 3) ) * (enhancement_proficiency_modifier() )" ] }
       }
     ]
   },
@@ -1022,7 +1022,8 @@
     "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",
-    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_LEGS" ],
+    "//": "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",
@@ -1030,11 +1031,11 @@
     "difficulty": 4,
     "max_level": 15,
     "base_energy_cost": 350,
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(30000, 3000)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(480000, 3000)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(30000, 0.07)" ] },
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(250, 2)" ] },
-    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ]
+    "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",
@@ -1043,7 +1044,7 @@
     "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": [ "CONCENTRATE", "VERBAL", "SOMATIC" ],
+    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
     "effect": "effect_on_condition",
     "effect_str": "EOC_ANIMIST_SLOW_FOOD_ROTTING_SPELL",
     "components": "spell_components_slow_food_rotting",
@@ -1051,9 +1052,9 @@
     "difficulty": 5,
     "max_level": 15,
     "energy_source": "MANA",
-    "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(550, 5)" ] },
-    "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(90000, 100)" ] },
-    "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ]
+    "base_energy_cost": 550,
+    "base_casting_time": 90000,
+    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ]
   },
   {
     "type": "effect_on_condition",
@@ -1077,12 +1078,12 @@
     "name": "Magic Fissile",
     "description": "I cast Magic… Fissile?  At the darkness?",
     "valid_targets": [ "hostile" ],
-    "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "SILENT", "NO_PROJECTILE" ],
+    "flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "NO_LEGS", "SILENT", "NO_PROJECTILE" ],
     "extra_effects": [ { "id": "animist_radiation_bolt", "hit_self": false }, { "id": "eoc_evocation_setup", "hit_self": true } ],
-    "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(1, 0.2)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1.5, 0.083)" ] },
+    "min_damage": 1,
+    "damage_increment": 1.5,
     "damage_type": "necrotic",
-    "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.2)" ] },
+    "max_damage": 20,
     "min_range": 8,
     "range_increment": 0.8,
     "max_range": 20,
@@ -1100,7 +1101,7 @@
     "type": "SPELL",
     "name": "Magic Fissile Radiation",
     "description": "Spawns a radiation field near the target.  It's a bug if you have it directly.",
-    "flags": [ "NO_EXPLOSION_SFX" ],
+    "flags": [ "EVOCATION_SPELL", "NO_EXPLOSION_SFX" ],
     "valid_targets": [ "self" ],
     "effect": "emit",
     "effect_str": "emit_rad_leak",
diff --git a/data/mods/Magiclysm/Spells/biomancer.json b/data/mods/Magiclysm/Spells/biomancer.json
index 13011d6fd6abc..a89b66a6a98b1 100644
--- a/data/mods/Magiclysm/Spells/biomancer.json
+++ b/data/mods/Magiclysm/Spells/biomancer.json
@@ -14,10 +14,10 @@
     "range_increment": 0.75,
     "effect": "attack",
     "shape": "blast",
-    "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(300, 3)" ] },
-    "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(800, 10)" ] },
+    "base_casting_time": 300,
+    "base_energy_cost": 800,
     "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ],
-    "flags": [ "SOMATIC", "VERBAL", "NO_PROJECTILE" ],
+    "flags": [ "CHANNELING_SPELL", "SOMATIC", "VERBAL", "NO_PROJECTILE" ],
     "spell_class": "BIOMANCER",
     "difficulty": 2,
     "energy_source": "MANA"
@@ -30,11 +30,11 @@
     "valid_targets": [ "self" ],
     "effect": "pain_split",
     "shape": "blast",
-    "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(100, 1)" ] },
-    "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(800, 10)" ] },
+    "base_casting_time": 100,
+    "base_energy_cost": 800,
     "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ],
     "energy_source": "MANA",
-    "flags": [ "SOMATIC", "NO_LEGS", "CONCENTRATE" ],
+    "flags": [ "CHANNELING_SPELL", "SOMATIC", "NO_LEGS", "CONCENTRATE" ],
     "spell_class": "BIOMANCER",
     "difficulty": 4,
     "max_level": 1
@@ -50,15 +50,15 @@
     "effect": "spawn_item",
     "effect_str": "tentacle_whip",
     "shape": "blast",
-    "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(250, 1)" ] },
+    "base_casting_time": 250,
     "base_energy_cost": 550,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 300)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 300)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.071)" ] },
+    "min_duration": 24000,
+    "max_duration": 360000,
+    "duration_increment": 24000,
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
     "difficulty": 6,
     "max_level": 15,
-    "flags": [ "SOMATIC", "LOUD" ],
+    "flags": [ "CONJURATION_SPELL", "SOMATIC", "LOUD" ],
     "spell_class": "BIOMANCER",
     "learn_spells": { "vicious_tentacle_plus": 15 },
     "energy_source": "MANA"
@@ -74,19 +74,19 @@
     "effect": "spawn_item",
     "effect_str": "tentacle_whip",
     "shape": "blast",
-    "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(250, 1)" ] },
-    "final_casting_time": { "math": [ "summoning_proficiency_negate_calculate(100, 1)" ] },
-    "casting_time_increment": { "math": [ "summoning_proficiency_negate_calculate(-6, 0.04)" ] },
+    "base_casting_time": 250,
+    "final_casting_time": 100,
+    "casting_time_increment": -6,
     "base_energy_cost": 550,
     "final_energy_cost": 200,
     "energy_increment": -14,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 2500)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(2160000, 2500)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(72000, 0.04)" ] },
+    "min_duration": 360000,
+    "max_duration": 2160000,
+    "duration_increment": 72000,
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
     "difficulty": 7,
     "max_level": 25,
-    "flags": [ "LOUD", "NO_FAIL" ],
+    "flags": [ "CONJURATION_SPELL", "LOUD", "NO_FAIL" ],
     "spell_class": "BIOMANCER",
     "energy_source": "MANA"
   },
@@ -99,9 +99,9 @@
     "effect": "attack",
     "effect_str": "bio_boost",
     "shape": "blast",
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(100, 0.33)" ] },
-    "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-2.5, 0.05)" ] },
-    "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(50, 0.33)" ] },
+    "base_casting_time": 100,
+    "casting_time_increment": -2.5,
+    "final_casting_time": 50,
     "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
     "base_energy_cost": 250,
     "energy_increment": -5.0,
@@ -110,11 +110,11 @@
     "spell_class": "BIOMANCER",
     "difficulty": 6,
     "max_level": 20,
-    "flags": [ "SOMATIC", "LOUD" ],
+    "flags": [ "ENHANCEMENT_SPELL", "SOMATIC", "LOUD" ],
     "//": "duration is in moves",
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(6000, 360)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(60000, 360)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(2700, 0.05)" ] }
+    "min_duration": 6000,
+    "max_duration": 60000,
+    "duration_increment": 2700
   },
   {
     "id": "bio_acidicspray",
@@ -131,14 +131,14 @@
     "spell_class": "BIOMANCER",
     "difficulty": 2,
     "max_level": 20,
-    "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(8, 0.5)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(65, 0.5)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(4.0, 0.07)" ] },
+    "min_damage": 8,
+    "max_damage": 65,
+    "damage_increment": 4.0,
     "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
     "damage_type": "acid",
     "min_range": 3,
     "max_range": 5,
-    "flags": [ "VERBAL", "NO_HANDS" ],
+    "flags": [ "EVOCATION_SPELL", "VERBAL", "NO_HANDS" ],
     "range_increment": 0.25,
     "min_aoe": 25,
     "max_aoe": 60,
@@ -155,15 +155,15 @@
     "effect": "spawn_item",
     "effect_str": "fleshpouch",
     "shape": "blast",
-    "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(250, 2)" ] },
+    "base_casting_time": 250,
     "base_energy_cost": 300,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 3000)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(9000000, 3000)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(360000, 0.045)" ] },
+    "min_duration": 360000,
+    "max_duration": 9000000,
+    "duration_increment": 360000,
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
     "difficulty": 4,
     "max_level": 20,
-    "flags": [ "NO_HANDS", "NO_LEGS", "SOMATIC" ],
+    "flags": [ "CONJURATION_SPELL", "NO_HANDS", "NO_LEGS", "SOMATIC" ],
     "spell_class": "BIOMANCER",
     "energy_source": "MANA"
   },
@@ -178,15 +178,15 @@
     "effect": "spawn_item",
     "effect_str": "bonespear",
     "shape": "blast",
-    "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(300, 2)" ] },
+    "base_casting_time": 300,
     "base_energy_cost": 350,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 300)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 300)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.07)" ] },
+    "min_duration": 24000,
+    "max_duration": 360000,
+    "duration_increment": 24000,
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
     "difficulty": 8,
     "max_level": 15,
-    "flags": [ "LOUD", "SOMATIC" ],
+    "flags": [ "CONJURATION_SPELL", "LOUD", "SOMATIC" ],
     "spell_class": "BIOMANCER",
     "learn_spells": { "bio_bonespear_plus": 15 },
     "energy_source": "MANA"
@@ -202,19 +202,19 @@
     "effect": "spawn_item",
     "effect_str": "bonespear",
     "shape": "blast",
-    "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(300, 1)" ] },
-    "final_casting_time": { "math": [ "summoning_proficiency_negate_calculate(100, 1)" ] },
-    "casting_time_increment": { "math": [ "summoning_proficiency_negate_calculate(-8, 0.04)" ] },
+    "base_casting_time": 300,
+    "final_casting_time": 100,
+    "casting_time_increment": -8,
     "base_energy_cost": 350,
     "final_energy_cost": 100,
     "energy_increment": -0.2,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 3000)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(21600000, 3000)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(72000, 0.04)" ] },
+    "min_duration": 360000,
+    "max_duration": 21600000,
+    "duration_increment": 72000,
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
     "difficulty": 9,
     "max_level": 25,
-    "flags": [ "LOUD", "NO_FAIL" ],
+    "flags": [ "CONJURATION_SPELL", "LOUD", "NO_FAIL" ],
     "spell_class": "BIOMANCER",
     "energy_source": "MANA"
   },
@@ -229,7 +229,7 @@
     "effect": "spawn_item",
     "effect_str": "rune_biomancer",
     "shape": "blast",
-    "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(5000, 15)" ] },
+    "base_casting_time": 5000,
     "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ],
     "base_energy_cost": 5,
     "min_duration": 1,
@@ -239,7 +239,7 @@
     "max_level": 0,
     "spell_class": "BIOMANCER",
     "energy_source": "MANA",
-    "flags": [ "PERMANENT", "NO_LEGS", "CONCENTRATE" ]
+    "flags": [ "CHANNELING_SPELL", "PERMANENT", "NO_LEGS", "CONCENTRATE" ]
   },
   {
     "id": "biomancer_paralytic_dart",
@@ -250,24 +250,24 @@
     "effect": "attack",
     "effect_str": "biomancer_dart_venom",
     "shape": "blast",
-    "flags": [ "VERBAL", "NO_HANDS" ],
+    "flags": [ "EVOCATION_SPELL", "VERBAL", "NO_HANDS" ],
     "spell_class": "BIOMANCER",
     "energy_source": "MANA",
     "difficulty": 3,
     "base_casting_time": 100,
     "base_energy_cost": 80,
     "max_level": 15,
-    "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(4, 0.2)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(28, 0.2)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1.6, 0.07)" ] },
+    "min_damage": 4,
+    "max_damage": 28,
+    "damage_increment": 1.6,
     "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
     "damage_type": "poison",
     "min_range": 3,
     "max_range": 9,
     "range_increment": 0.4,
-    "min_duration": { "math": [ "evocation_proficiency_bonus_calculate(1200, 1.5)" ] },
-    "max_duration": { "math": [ "evocation_proficiency_bonus_calculate(12000, 1.5)" ] },
-    "duration_increment": { "math": [ "evocation_proficiency_bonus_calculate(720, 0.07)" ] }
+    "min_duration": 1200,
+    "max_duration": 12000,
+    "duration_increment": 720
   },
   {
     "id": "biomancer_visceral_projection",
@@ -283,16 +283,16 @@
       { "id": "biomancer_visceral_backlash", "hit_self": true },
       { "id": "eoc_evocation_setup", "hit_self": true }
     ],
-    "flags": [ "VERBAL", "NO_HANDS" ],
+    "flags": [ "EVOCATION_SPELL", "VERBAL", "NO_HANDS" ],
     "spell_class": "BIOMANCER",
     "energy_source": "MANA",
     "difficulty": 4,
     "base_casting_time": 200,
     "base_energy_cost": 150,
     "max_level": 20,
-    "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(1, 0.1)" ] },
-    "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.1)" ] },
-    "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(0.45, 0.05)" ] },
+    "min_damage": 1,
+    "max_damage": 10,
+    "damage_increment": 0.45,
     "damage_type": "poison",
     "min_aoe": 2,
     "max_aoe": 6,
@@ -312,14 +312,14 @@
     "effect": "attack",
     "effect_str": "biomancer_dart_venom",
     "shape": "blast",
-    "flags": [ "SILENT" ],
+    "flags": [ "EVOCATION_SPELL", "SILENT" ],
     "max_level": 20,
     "min_aoe": 2,
     "max_aoe": 6,
     "aoe_increment": 0.2,
-    "min_duration": { "math": [ "evocation_proficiency_bonus_calculate(6000, 1.5)" ] },
-    "max_duration": { "math": [ "evocation_proficiency_bonus_calculate(18000, 1.5)" ] },
-    "duration_increment": { "math": [ "evocation_proficiency_bonus_calculate(450, 0.0375)" ] },
+    "min_duration": 6000,
+    "max_duration": 18000,
+    "duration_increment": 450,
     "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
     "field_id": "fd_gibs_flesh",
     "field_chance": 1,
@@ -349,17 +349,17 @@
     "effect": "attack",
     "effect_str": "bio_weave",
     "shape": "blast",
-    "flags": [ "SOMATIC", "VERBAL" ],
+    "flags": [ "ENHANCEMENT_SPELL", "SOMATIC", "VERBAL" ],
     "energy_source": "MANA",
     "spell_class": "BIOMANCER",
     "difficulty": 4,
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(200, 2)" ] },
+    "base_casting_time": 200,
     "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
     "base_energy_cost": 100,
     "max_level": 20,
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(6000, 560)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(90000, 560)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(4200, 0.05)" ] }
+    "min_duration": 6000,
+    "max_duration": 90000,
+    "duration_increment": 4200
   },
   {
     "id": "corrosive_aura_spell",
@@ -391,7 +391,7 @@
     "effect": "spawn_item",
     "effect_str": "aura_caustic",
     "shape": "blast",
-    "flags": [ "SOMATIC", "CONCENTRATE" ],
+    "flags": [ "ENHANCEMENT_SPELL", "SOMATIC", "CONCENTRATE" ],
     "components": "spell_components_causticaura",
     "energy_source": "MANA",
     "spell_class": "BIOMANCER",
@@ -399,14 +399,14 @@
     "min_damage": 1,
     "max_damage": 1,
     "base_casting_time": 400,
-    "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(350, 2)" ] },
+    "base_energy_cost": 350,
     "max_level": 15,
     "min_range": 1,
     "max_range": 1,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 300)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 300)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.07)" ] },
-    "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
+    "min_duration": 24000,
+    "max_duration": 360000,
+    "duration_increment": 24000,
+    "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
     "learn_spells": { "biomancer_caustic_aura_plus": 15 }
   },
   {
@@ -418,7 +418,7 @@
     "effect": "spawn_item",
     "effect_str": "aura_caustic",
     "shape": "blast",
-    "flags": [ "SOMATIC", "NO_FAIL" ],
+    "flags": [ "ENHANCEMENT_SPELL", "SOMATIC", "NO_FAIL" ],
     "components": "spell_components_causticaura",
     "energy_source": "MANA",
     "spell_class": "BIOMANCER",
@@ -428,16 +428,16 @@
     "base_casting_time": 400,
     "final_casting_time": 150,
     "casting_time_increment": -10,
-    "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(350, 2)" ] },
-    "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(150, 2)" ] },
-    "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-8, 0.04)" ] },
+    "base_energy_cost": 350,
+    "final_energy_cost": 150,
+    "energy_increment": -8,
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
     "max_level": 25,
     "min_range": 1,
     "max_range": 1,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 3000)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(2160000, 3000)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(72000, 0.04)" ] }
+    "min_duration": 360000,
+    "max_duration": 2160000,
+    "duration_increment": 72000
   },
   {
     "id": "biomancer_swim_frog",
@@ -446,19 +446,19 @@
     "description": "Grow webbing on your hands and feet, making quick swimming a breeze.",
     "valid_targets": [ "self" ],
     "spell_class": "BIOMANCER",
-    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ],
+    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
     "effect": "attack",
     "effect_str": "effect_biomancer_swim_speed",
     "shape": "blast",
     "difficulty": 4,
     "max_level": 10,
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(120000, 1600)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(360000, 1600)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(24000, 0.1)" ] },
+    "min_duration": 120000,
+    "max_duration": 360000,
+    "duration_increment": 24000,
     "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
     "energy_source": "MANA",
     "base_energy_cost": 200,
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(1000, 6.7)" ] }
+    "base_casting_time": 1000
   },
   {
     "id": "biomancer_giant_growth",
@@ -467,19 +467,19 @@
     "description": "Grow to enormous size.  Your clothing and equipment will not grow with you.",
     "valid_targets": [ "self" ],
     "spell_class": "BIOMANCER",
-    "flags": [ "VERBAL", "SOMATIC" ],
+    "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "SOMATIC" ],
     "effect": "effect_on_condition",
     "effect_str": "EOC_GIANT_GROWTH_MUTATION",
     "shape": "blast",
     "difficulty": 6,
     "max_level": 15,
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(30000, 400)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(90000, 400)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(4000, 0.07)" ] },
+    "min_duration": 30000,
+    "max_duration": 90000,
+    "duration_increment": 4000,
     "energy_source": "MANA",
     "base_energy_cost": 500,
     "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(100, 1)" ] }
+    "base_casting_time": 100
   },
   {
     "type": "effect_on_condition",
@@ -501,7 +501,7 @@
       { "u_add_trait": "BIO_GIANT_GROWTH" },
       {
         "queue_eocs": "EOC_GIANT_GROWTH_MUTATION_REMOVE",
-        "time_in_future": { "math": [ "(( u_spell_level('biomancer_giant_growth') * 40 ) + 300 )" ] }
+        "time_in_future": { "math": [ "(( u_spell_level('biomancer_giant_growth') * 40 ) + 300 ) * ( enhancement_proficiency_modifier() )" ] }
       }
     ],
     "false_effect": [ { "u_message": "You are already enormous--the spell cannot make you any larger!" } ]
@@ -532,7 +532,7 @@
     "valid_targets": [ "self", "ally" ],
     "spell_class": "BIOMANCER",
     "components": "spell_components_remove_instability",
-    "flags": [ "VERBAL", "SOMATIC" ],
+    "flags": [ "CHANNELING_SPELL", "VERBAL", "SOMATIC" ],
     "effect": "attack",
     "effect_str": "effect_biomancer_remove_instability",
     "shape": "blast",
@@ -540,12 +540,12 @@
     "max_level": 15,
     "energy_source": "MANA",
     "min_range": 1,
-    "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(1500, 10)" ] },
-    "base_casting_time": { "math": [ "channeling_proficiency_bonus_calculate(180000, 1000)" ] },
-    "min_duration": { "math": [ "channeling_proficiency_bonus_calculate(4500000, 10000)" ] },
-    "max_duration": { "math": [ "channeling_proficiency_bonus_calculate(45000000, 10000)" ] },
+    "base_energy_cost": 1500,
+    "base_casting_time": 180000,
+    "min_duration": 4500000,
+    "max_duration": 45000000,
     "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ],
-    "duration_increment": { "math": [ "channeling_proficiency_bonus_calculate(2700000, 10000)" ] }
+    "duration_increment": 2700000
   },
   {
     "id": "biomancer_carrion_feast",
@@ -554,19 +554,19 @@
     "description": "Alter your digestive system to consume rotten food with no ill effects.  This is either a truly ancient spell or otherwise must have been the product of some university thaumaturgical research department.",
     "valid_targets": [ "self" ],
     "spell_class": "BIOMANCER",
-    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ],
+    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
     "effect": "attack",
     "effect_str": "effect_biomancer_carrion_feast",
     "shape": "blast",
     "difficulty": 3,
     "energy_source": "MANA",
     "max_level": 10,
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(6000, 200)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(36000, 200)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(2800, 0.093)" ] },
+    "min_duration": 6000,
+    "max_duration": 36000,
+    "duration_increment": 2800,
     "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
     "base_energy_cost": 250,
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(1500, 20)" ] }
+    "base_casting_time": 1500
   },
   {
     "id": "biomancer_lashing_tentacles",
@@ -575,18 +575,18 @@
     "description": "Grow a pair of lashing tentacles from your shoulders.  While not as long as the Vicious Tentacle, they will strike anyone in melee with you.  You cannot wear rigid armor that covers the shoulders with them.",
     "valid_targets": [ "self" ],
     "spell_class": "BIOMANCER",
-    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ],
+    "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
     "effect": "effect_on_condition",
     "effect_str": "EOC_LASHING_TENTACLES_MUTATION",
     "shape": "blast",
     "difficulty": 6,
     "max_level": 15,
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(7000, 60)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(30000, 60)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(1533, 0.07)" ] },
+    "min_duration": 7000,
+    "max_duration": 30000,
+    "duration_increment": 1533,
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
     "energy_source": "MANA",
-    "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(400, 3)" ] },
+    "base_energy_cost": 400,
     "base_casting_time": 500
   },
   {
@@ -598,7 +598,7 @@
       { "u_add_trait": "BIO_LASHING_TENTACLES" },
       {
         "queue_eocs": "EOC_LASHING_TENTACLES_MUTATION_REMOVE",
-        "time_in_future": { "math": [ "(( u_spell_level('biomancer_lashing_tentacles') * 15 ) + 70 )" ] }
+        "time_in_future": { "math": [ "(( u_spell_level('biomancer_lashing_tentacles') * 15 ) + 70 ) * (summoning_proficiency_modifier() )" ] }
       }
     ],
     "false_effect": [ { "u_message": "You already have a pair of lashing tentacles!" } ]
@@ -618,22 +618,22 @@
     "description": "Cure any minor illnesses you might be suffering from.  This is one of the few biomantic cure spells that is castable on other people.",
     "valid_targets": [ "self", "ally" ],
     "spell_class": "BIOMANCER",
-    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ],
+    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
     "effect": "attack",
     "effect_str": "effect_biomancer_cure_disease_minor",
     "shape": "blast",
     "difficulty": 4,
     "max_level": 10,
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(60480000, 403200)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(60480000, 403200)" ] },
+    "min_duration": 60480000,
+    "max_duration": 60480000,
     "min_range": 1,
     "max_range": 1,
     "energy_source": "MANA",
     "base_energy_cost": 500,
     "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(90000, 400)" ] },
-    "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(30000, 400)" ] },
-    "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-6000, 0.1)" ] }
+    "base_casting_time": 90000,
+    "final_casting_time": 30000,
+    "casting_time_increment": -6000
   },
   {
     "id": "biomancer_hyper_regeneration",
@@ -642,18 +642,18 @@
     "description": "Possibly the most powerful of the biomantic healing spells, this causes your flesh to literally knit itself together before your eyes.",
     "valid_targets": [ "self" ],
     "spell_class": "BIOMANCER",
-    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ],
+    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
     "effect": "attack",
     "effect_str": "effect_biomancer_hyper_regeneration",
     "shape": "blast",
     "difficulty": 10,
     "max_level": 20,
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(3000, 66.7)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(13000, 66.7)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(500, 0.05)" ] },
+    "min_duration": 3000,
+    "max_duration": 13000,
+    "duration_increment": 500,
     "energy_source": "MANA",
     "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
-    "base_energy_cost": { "math": [ "enhancement_proficiency_negate_calculate(900, 6)" ] },
+    "base_energy_cost": 900,
     "base_casting_time": 150
   },
   {
@@ -663,19 +663,19 @@
     "description": "As you can control your body, you can control your blood.",
     "valid_targets": [ "self" ],
     "spell_class": "BIOMANCER",
-    "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL" ],
+    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "SOMATIC", "VERBAL" ],
     "difficulty": 4,
     "max_level": 15,
     "effect": "effect_on_condition",
     "effect_str": "EOC_BIOMANCER_SLOW_BLEEDING",
     "shape": "blast",
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(90000, 3600)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(630000, 3600)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(36000, 0.07)" ] },
+    "min_duration": 90000,
+    "max_duration": 630000,
+    "duration_increment": 36000,
     "energy_source": "MANA",
     "base_energy_cost": 250,
     "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(350, 2)" ] }
+    "base_casting_time": 350
   },
   {
     "type": "effect_on_condition",
@@ -687,21 +687,21 @@
           "case": 0,
           "effect": {
             "u_add_effect": "effect_biomancer_slow_bleeding_01",
-            "duration": { "math": [ "(( u_spell_level('biomancer_slow_bleeding') * 360 ) + 900 )" ] }
+            "duration": { "math": [ "(( u_spell_level('biomancer_slow_bleeding') * 360 ) + 900 ) * ( enhancement_proficiency_modifier() )" ] }
           }
         },
         {
           "case": 8,
           "effect": {
             "u_add_effect": "effect_biomancer_slow_bleeding_02",
-            "duration": { "math": [ "(( u_spell_level('biomancer_slow_bleeding') * 360 ) + 900 )" ] }
+            "duration": { "math": [ "(( u_spell_level('biomancer_slow_bleeding') * 360 ) + 900 ) * ( enhancement_proficiency_modifier() )" ] }
           }
         },
         {
           "case": 15,
           "effect": {
             "u_add_effect": "effect_biomancer_slow_bleeding_03",
-            "duration": { "math": [ "(( u_spell_level('biomancer_slow_bleeding') * 360 ) + 900 )" ] }
+            "duration": { "math": [ "(( u_spell_level('biomancer_slow_bleeding') * 360 ) + 900 ) * ( enhancement_proficiency_modifier() )" ] }
           }
         }
       ]
@@ -714,18 +714,18 @@
     "description": "Change each of your fingers into a myriad of tiny bone knives, allowing you to cut with surgical precision… or slice your enemies to ribbons.",
     "valid_targets": [ "self" ],
     "spell_class": "BIOMANCER",
-    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ],
+    "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
     "difficulty": 5,
     "max_level": 20,
     "effect": "spawn_item",
     "effect_str": "item_biomancer_scalpel_fingers",
     "shape": "blast",
-    "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 300)" ] },
-    "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 300)" ] },
-    "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.07)" ] },
+    "min_duration": 24000,
+    "max_duration": 360000,
+    "duration_increment": 24000,
     "energy_source": "MANA",
     "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ],
-    "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 2)" ] },
+    "base_energy_cost": 300,
     "base_casting_time": 500
   },
   {
@@ -735,19 +735,19 @@
     "description": "Transmute your blood to magically-enhanced acid, making you immune to acid and also splashing anyone who spills your blood.",
     "valid_targets": [ "self" ],
     "spell_class": "BIOMANCER",
-    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ],
+    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
     "effect": "effect_on_condition",
     "effect_str": "EOC_BIO_CAUSTIC_BLOOD_MUTATION",
     "shape": "blast",
     "difficulty": 7,
     "max_level": 20,
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(180000, 8000)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1380000, 8000)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(60000, 0.05)" ] },
+    "min_duration": 180000,
+    "max_duration": 1380000,
+    "duration_increment": 60000,
     "energy_source": "MANA",
     "base_energy_cost": 450,
     "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(600, 4)" ] }
+    "base_casting_time": 600
   },
   {
     "type": "effect_on_condition",
@@ -759,7 +759,7 @@
       { "u_add_trait": "ACIDPROOF" },
       {
         "queue_eocs": "EOC_BIO_CAUSTIC_BLOOD_MUTATION_REMOVE",
-        "time_in_future": { "math": [ "(( u_spell_level('biomancer_caustic_blood') * 600 ) + 1800 )" ] }
+        "time_in_future": { "math": [ "(( u_spell_level('biomancer_caustic_blood') * 600 ) + 1800 ) * ( enhancement_proficiency_modifier() )" ] }
       }
     ],
     "false_effect": [ { "u_message": "Your body is already inured to acid!" } ]
@@ -780,18 +780,18 @@
     "description": "Magically expand your stomach size, allowing it to consume more food without taking up any more room in your body.  Once a rarely-learned spell, it's much more useful now that you're not always sure where your next meal is coming from.",
     "valid_targets": [ "self" ],
     "spell_class": "BIOMANCER",
-    "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ],
+    "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
     "effect": "attack",
     "effect_str": "effect_biomancer_eat_tons_of_food",
     "shape": "blast",
     "difficulty": 3,
     "max_level": 16,
-    "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(72000, 7680)" ] },
-    "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1224000, 7680)" ] },
-    "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(72000, 0.0625)" ] },
+    "min_duration": 72000,
+    "max_duration": 1224000,
+    "duration_increment": 72000,
     "energy_source": "MANA",
     "base_energy_cost": 200,
     "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ],
-    "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(1500, 20)" ] }
+    "base_casting_time": 1500
   }
 ]
diff --git a/data/mods/Magiclysm/Spells/classless.json b/data/mods/Magiclysm/Spells/classless.json
index f7e3973c35f0c..943416f7ab9d7 100644
--- a/data/mods/Magiclysm/Spells/classless.json
+++ b/data/mods/Magiclysm/Spells/classless.json
@@ -661,6 +661,27 @@
     "base_casting_time": 0,
     "final_casting_time": 0
   },
+  {
+    "id": "eoc_enervation_setup",
+    "type": "SPELL",
+    "name": "Set Up Proficiency: Enervation",
+    "description": "Sets up proficiency gain.  This is a bug if you have it.",
+    "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",
diff --git a/data/mods/Magiclysm/eoc_spell_casting_proficiencies.json b/data/mods/Magiclysm/eoc_spell_casting_proficiencies.json
index d86b3bafb3f5f..80b1290a59923 100644
--- a/data/mods/Magiclysm/eoc_spell_casting_proficiencies.json
+++ b/data/mods/Magiclysm/eoc_spell_casting_proficiencies.json
@@ -151,6 +151,44 @@
       }
     ]
   },
+  {
+    "type": "effect_on_condition",
+    "id": "EOC_SPELLCASTING_ENERVATION_PROFICIENCY_ADD",
+    "global": false,
+    "eoc_type": "ACTIVATION",
+    "effect": [
+      { "math": [ "u_prof_lowest", "=", "4" ] },
+      {
+        "if": { "math": [ "u_proficiency('prof_magic_enervation_beginner', 'format': 'percent')", ">=", "100" ] },
+        "then": [
+          {
+            "if": { "math": [ "u_proficiency('prof_magic_enervation_apprentice', 'format': 'percent')", ">=", "100" ] },
+            "then": [
+              {
+                "if": { "math": [ "u_proficiency('prof_magic_enervation_master', 'format': 'percent')", ">=", "100" ] },
+                "then": [ { "math": [ "u_prof_level", "=", "3" ] }, { "math": [ "u_prof_lowest", "=", "min(u_prof_level, u_prof_lowest)" ] } ],
+                "else": [
+                  { "math": [ "u_proficiency('prof_magic_enervation_master', 'format': 'percent')", "+=", "rand(4) / 64" ] },
+                  { "math": [ "u_prof_level", "=", "2" ] },
+                  { "math": [ "u_prof_lowest", "=", "min(u_prof_level, u_prof_lowest)" ] }
+                ]
+              }
+            ],
+            "else": [
+              { "math": [ "u_proficiency('prof_magic_enervation_apprentice', 'format': 'percent')", "+=", "rand(4) / 32" ] },
+              { "math": [ "u_prof_level", "=", "1" ] },
+              { "math": [ "u_prof_lowest", "=", "min(u_prof_level, u_prof_lowest)" ] }
+            ]
+          }
+        ],
+        "else": [
+          { "math": [ "u_proficiency('prof_magic_enervation_beginner', 'format': 'percent')", "+=", "rand(4) / 16" ] },
+          { "math": [ "u_prof_level", "=", "0" ] },
+          { "math": [ "u_prof_lowest", "=", "min(u_prof_level, u_prof_lowest)" ] }
+        ]
+      }
+    ]
+  },
   {
     "type": "effect_on_condition",
     "id": "EOC_SPELLCASTING_CONVEYANCE_PROFICIENCY_ADD",
@@ -188,5 +226,130 @@
         ]
       }
     ]
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "EOC_EVOCATION_SPELLS_PROFICIENCY_BONUSES",
+    "eoc_type": "EVENT",
+    "required_event": "opens_spellbook",
+    "effect": [
+      {
+        "math": [
+          "u_spellcasting_adjustment('damage', 'flag_whitelist': 'EVOCATION_SPELL')",
+          "=",
+          "( (u_proficiency('prof_magic_evocation_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_evocation_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_evocation_master', 'format': 'percent') / 1000) )"
+        ]
+      }
+    ]
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "EOC_CHANNELING_SPELLS_PROFICIENCY_BONUSES",
+    "eoc_type": "EVENT",
+    "required_event": "opens_spellbook",
+    "effect": [
+      {
+        "math": [
+          "u_spellcasting_adjustment('casting_time', 'flag_whitelist': 'CHANNELING_SPELL')",
+          "=",
+          "( (u_proficiency('prof_magic_channel_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_channel_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_channel_master', 'format': 'percent') / 1000) ) * -1"
+        ]
+      },
+      {
+        "math": [
+          "u_spellcasting_adjustment('cost', 'flag_whitelist': 'CHANNELING_SPELL')",
+          "=",
+          "( (u_proficiency('prof_magic_channel_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_channel_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_channel_master', 'format': 'percent') / 1000) ) * -1"
+        ]
+      }
+    ]
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "EOC_CONJURATION_SPELLS_PROFICIENCY_BONUSES",
+    "eoc_type": "EVENT",
+    "required_event": "opens_spellbook",
+    "effect": [
+      {
+        "math": [
+          "u_spellcasting_adjustment('duration', 'flag_whitelist': 'CONJURATION_SPELL')",
+          "=",
+          "( (u_proficiency('prof_magic_summon_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_summon_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_summon_master', 'format': 'percent') / 1000) )"
+        ]
+      },
+      {
+        "math": [
+          "u_spellcasting_adjustment('cost', 'flag_whitelist': 'CONJURATION_SPELL')",
+          "=",
+          "( (u_proficiency('prof_magic_summon_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_summon_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_summon_master', 'format': 'percent') / 1000) ) * -1"
+        ]
+      }
+    ]
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "EOC_ENHANCEMENT_SPELLS_PROFICIENCY_BONUSES",
+    "eoc_type": "EVENT",
+    "required_event": "opens_spellbook",
+    "effect": [
+      {
+        "math": [
+          "u_spellcasting_adjustment('duration', 'flag_whitelist': 'ENHANCEMENT_SPELL')",
+          "=",
+          "( (u_proficiency('prof_magic_enhancement_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_enhancement_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_enhancement_master', 'format': 'percent') / 1000) )"
+        ]
+      },
+      {
+        "math": [
+          "u_spellcasting_adjustment('casting_time', 'flag_whitelist': 'ENHANCEMENT_SPELL')",
+          "=",
+          "( (u_proficiency('prof_magic_enhancement_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_enhancement_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_enhancement_master', 'format': 'percent') / 1000) ) * -1"
+        ]
+      }
+    ]
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "EOC_ENERVATION_SPELLS_PROFICIENCY_BONUSES",
+    "eoc_type": "EVENT",
+    "required_event": "opens_spellbook",
+    "effect": [
+      {
+        "math": [
+          "u_spellcasting_adjustment('duration', 'flag_whitelist': 'ENERVATION_SPELL')",
+          "=",
+          "( (u_proficiency('prof_magic_enervation_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_enervation_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_enervation_master', 'format': 'percent') / 1000) )"
+        ]
+      },
+      {
+        "math": [
+          "u_spellcasting_adjustment('aoe', 'flag_whitelist': 'ENERVATION_SPELL')",
+          "=",
+          "( (u_proficiency('prof_magic_enervation_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_enervation_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_enervation_master', 'format': 'percent') / 1000) )"
+        ]
+      }
+    ]
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "EOC_CONVEYANCE_SPELLS_PROFICIENCY_BONUSES",
+    "eoc_type": "EVENT",
+    "required_event": "opens_spellbook",
+    "effect": [
+      {
+        "math": [
+          "u_spellcasting_adjustment('cost', 'flag_whitelist': 'CONVEYANCE_SPELL')",
+          "=",
+          "( (u_proficiency('prof_magic_conveyance_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_conveyance_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_conveyance_master', 'format': 'percent') / 1000) ) * -1"
+        ]
+      },
+      {
+        "math": [
+          "u_spellcasting_adjustment('range', 'flag_whitelist': 'CONVEYANCE_SPELL')",
+          "=",
+          "( (u_proficiency('prof_magic_conveyance_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_conveyance_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_conveyance_master', 'format': 'percent') / 1000) )"
+        ]
+      }
+    ]
   }
 ]
diff --git a/data/mods/Magiclysm/jmath.json b/data/mods/Magiclysm/jmath.json
index a6f436840e9af..398d6d0b3b0d9 100644
--- a/data/mods/Magiclysm/jmath.json
+++ b/data/mods/Magiclysm/jmath.json
@@ -35,12 +35,24 @@
     "num_args": 2,
     "return": "_0 - (((((u_proficiency('prof_magic_summon_beginner', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_summon_apprentice', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_summon_master', 'format': 'percent') * 1) / 10))) * _1 )"
   },
+  {
+    "type": "jmath_function",
+    "id": "summoning_proficiency_modifier",
+    "num_args": 0,
+    "return": "1 + ( (u_proficiency('prof_magic_summon_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_summon_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_summon_master', 'format': 'percent') / 1000) )"
+  },
   {
     "type": "jmath_function",
     "id": "enhancement_proficiency_bonus_calculate",
     "num_args": 2,
     "return": "_0 + (((((u_proficiency('prof_magic_enhancement_beginner', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_enhancement_apprentice', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_enhancement_master', 'format': 'percent') * 1) / 10))) * _1 )"
   },
+  {
+    "type": "jmath_function",
+    "id": "enhancement_proficiency_modifier",
+    "num_args": 0,
+    "return": "1 + ( (u_proficiency('prof_magic_enhancement_beginner', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_enhancement_apprentice', 'format': 'percent') / 1000) + (u_proficiency('prof_magic_enhancement_master', 'format': 'percent') / 1000) )"
+  },
   {
     "type": "jmath_function",
     "id": "enhancement_proficiency_negate_calculate",
diff --git a/data/mods/Magiclysm/magic_balance.md b/data/mods/Magiclysm/magic_balance.md
index 5522b87f20799..626f93bff79ef 100644
--- a/data/mods/Magiclysm/magic_balance.md
+++ b/data/mods/Magiclysm/magic_balance.md
@@ -97,10 +97,13 @@ Channeling covers spells that require the caster to focus for long periods of ti
 Conjuration encompasses spells that summon something or someone, usually for a set period of time. Most Golemancy is covered by this, along with the Animist's Summon Undead, Ignus Fattus, or the Druid's Nature's Bow. Conjuration specializes in spells that temporarily summon something, rather than permanently creating something, which would be a bit more suited to Channeling. Proficiency in Conjuration will lower the mana cost of spells and improve the duration times of summoned creatures/objects.
 
 ### Enhancement
-Enhancement covers spells that improve the target in some way, mentally, physically, or emotionally. While there are many spells in this class, some of them are Cat's Grace, Ogre's Strength, Eagle's Sight, or Feral Form. Note that spells which exclusively heal are not included, as they are fixing something which is damaged, while Enhancement covers spells which improve on the whole. However, if a spell both heals and buffs something, then it should be included in this. Any spells which exclusively debuff or hinder something should also not be included. Proficiency in Enhancement will lower the casting time of spells and improve the duration of enhancement.
+Enhancement covers spells that improve the target in some way, mentally, physically, or emotionally. While there are many spells in this class, some of them are Cat's Grace, Ogre's Strength, Eagle's Sight, or Feral Form. Note that spells which exclusively heal are not included, as they are fixing something which is damaged, while Enhancement covers spells which improve on the whole. However, if a spell both heals and buffs something, then it should be included in this. Any spells which exclusively debuff or hinder something should also not be included; see below. Proficiency in Enhancement will lower the casting time of spells and improve the duration of enhancement.
+
+### Enervation
+Enervation spells are the opposite of Enhancement, being spells that reduce the capabilities of the target in some way, such as Slow, A Shadow in the Crowd, or Faerie Fire. This includes spells such as Domination or Beguiling the Savage Beast that take control of the target's mind or actions. Spells that do damage as their primary effect but have some debuffing power as an additional ability are not Enervation spells. Proficiency in Enervation will improve the duration of the spell and increase its area of effect.
 
 ### Conveyance
-Conveyance encompasses spells which involve translocating, teleporting, or moving the caster/target. Some spells covered are Phase Door, Magus's Mark, Shocking Dash, or Translocate Self. Proficiency in Conveyance will extend the range of the spell (if applicable), or lower the casting time if not, and lower the mana cost of the incantation.
+Conveyance encompasses spells which involve translocating, teleporting, or moving the caster/target. Some spells covered are Phase Door, Magus's Mark, Shocking Dash, or Translocate Self. Proficiency in Conveyance will extend the range of the spell and lower the mana cost of the incantation.
 
 #### How The JMATH Works
 The JMATH behind spellcasting proficiencies is fairly simple, this is how it works:
diff --git a/data/mods/Magiclysm/proficiencies.json b/data/mods/Magiclysm/proficiencies.json
index 9dcb49dce09b3..454599881fd96 100644
--- a/data/mods/Magiclysm/proficiencies.json
+++ b/data/mods/Magiclysm/proficiencies.json
@@ -235,6 +235,42 @@
     "time_to_learn": "32 h",
     "required_proficiencies": [ "prof_magic_enhancement_apprentice" ]
   },
+  {
+    "type": "proficiency",
+    "id": "prof_magic_enervation_beginner",
+    "category": "prof_magic_casting",
+    "name": { "str": "Novice Enervation" },
+    "//": "This covers anything that debilitates a target, such as slowing them, silencing them, reducing their regeneration, and so on.",
+    "description": "You're familiar with debilitating your enemies through magic.",
+    "can_learn": true,
+    "default_time_multiplier": 1.5,
+    "default_skill_penalty": 0.2,
+    "time_to_learn": "8 h"
+  },
+  {
+    "type": "proficiency",
+    "id": "prof_magic_enervation_apprentice",
+    "category": "prof_magic_casting",
+    "name": { "str": "Apprentice Enervation" },
+    "description": "You're proficient in debilitating your enemies through magic.",
+    "can_learn": true,
+    "default_time_multiplier": 1.5,
+    "default_skill_penalty": 0.2,
+    "time_to_learn": "16 h",
+    "required_proficiencies": [ "prof_magic_enhancement_beginner" ]
+  },
+  {
+    "type": "proficiency",
+    "id": "prof_magic_enervation_master",
+    "category": "prof_magic_casting",
+    "name": { "str": "Master Enervation" },
+    "description": "You've mastered the art of debilitating your enemies with the power of magical incantations.",
+    "can_learn": true,
+    "default_time_multiplier": 1.5,
+    "default_skill_penalty": 0.2,
+    "time_to_learn": "32 h",
+    "required_proficiencies": [ "prof_magic_enhancement_apprentice" ]
+  },
   {
     "type": "proficiency",
     "id": "prof_magic_conveyance_beginner",
diff --git a/src/magic.cpp b/src/magic.cpp
index 2dfa2133e00a0..5982d596783af 100644
--- a/src/magic.cpp
+++ b/src/magic.cpp
@@ -167,6 +167,12 @@ std::string enum_to_string<spell_flag>( spell_flag data )
         case spell_flag::NON_MAGICAL: return "NON_MAGICAL";
         case spell_flag::PSIONIC: return "PSIONIC";
         case spell_flag::RECHARM: return "RECHARM";
+        case spell_flag::EVOCATION_SPELL: return "EVOCATION_SPELL";
+        case spell_flag::CHANNELING_SPELL: return "CHANNELING_SPELL";
+        case spell_flag::CONJURATION_SPELL: return "CONJURATION_SPELL";
+        case spell_flag::ENHANCEMENT_SPELL: return "ENHANCEMENT_SPELL";
+        case spell_flag::ENERVATION_SPELL: return "ENERVATION_SPELL";
+        case spell_flag::CONVEYANCE_SPELL: return "CONVEYANCE_SPELL";
         case spell_flag::LAST: break;
     }
     cata_fatal( "Invalid spell_flag" );
@@ -2505,6 +2511,24 @@ std::string spell::enumerate_spell_data( const Character &guy ) const
     if( has_flag( spell_flag::PSIONIC ) ) {
         spell_data.emplace_back( _( "is a psionic power" ) );
     }
+    if( has_flag( spell_flag::EVOCATION_SPELL ) ) {
+        spell_data.emplace_back( _( "is an evocation spell" ) );
+    }
+    if( has_flag( spell_flag::CHANNELING_SPELL ) ) {
+        spell_data.emplace_back( _( "is a channeling spell" ) );
+    }
+    if( has_flag( spell_flag::CONJURATION_SPELL ) ) {
+        spell_data.emplace_back( _( "is a conjuration spell" ) );
+    }
+    if( has_flag( spell_flag::ENHANCEMENT_SPELL ) ) {
+        spell_data.emplace_back( _( "is an enhancement spell" ) );
+    }
+    if( has_flag( spell_flag::ENERVATION_SPELL ) ) {
+        spell_data.emplace_back( _( "is an enervation spell" ) );
+    }
+    if( has_flag( spell_flag::CONVEYANCE_SPELL ) ) {
+        spell_data.emplace_back( _( "is a conveyance spell" ) );
+    }
     if( has_flag( spell_flag::CONCENTRATE ) && !has_flag( spell_flag::PSIONIC ) &&
         temp_concentration_difficulty_multiplyer > 0 ) {
         spell_data.emplace_back( _( "requires concentration" ) );
diff --git a/src/magic.h b/src/magic.h
index 93b94b343f889..686a1d622cbe5 100644
--- a/src/magic.h
+++ b/src/magic.h
@@ -85,6 +85,12 @@ enum class spell_flag : int {
     NON_MAGICAL, // ignores spell resistance
     PSIONIC, // psychic powers instead of traditional magic
     RECHARM, // charm_monster spell adds to duration of existing charm_monster effect
+    EVOCATION_SPELL, // Evocation spell category, used for Magiclysm proficiencies
+    CHANNELING_SPELL, // Channeling spell category, used for Magiclysm proficiencies
+    CONJURATION_SPELL, // Conjuration spell category, used for Magiclysm proficiencies
+    ENHANCEMENT_SPELL, // Enhancement spell category, used for Magiclysm proficiencies
+    ENERVATION_SPELL, // Enervation spell category, used for Magiclysm proficiencies
+    CONVEYANCE_SPELL, // Conveyance spell category, used for Magiclysm proficiencies
     LAST
 };