From 5cf9db852f29675ea3f5af9237c41464b54611ac Mon Sep 17 00:00:00 2001 From: "Standing-StormStanding-Storm git config --global user.name Standing-Storm git config --global user.name Standing-Storm" Date: Sat, 14 Sep 2024 20:09:24 -0500 Subject: [PATCH] Commit --- data/mods/Magiclysm/Spells/animist.json | 2 +- .../Spells/attunements/Alchemist.json | 24 +- .../Spells/attunements/Artificer.json | 16 +- .../Magiclysm/Spells/attunements/Biotek.json | 20 +- .../Spells/attunements/Blood_Mage.json | 18 +- .../Spells/attunements/Boreal_Mage.json | 23 +- .../Spells/attunements/Cleansing_Flame.json | 36 +- .../Spells/attunements/Crusader.json | 20 +- .../Spells/attunements/Earth_Elemental.json | 30 +- .../Spells/attunements/Fire_Elemental.json | 18 +- .../Spells/attunements/Force_Mage.json | 18 +- .../Spells/attunements/Gaias_Chosen.json | 24 +- .../Spells/attunements/Glacier_Mage.json | 24 +- .../Spells/attunements/Golemancer.json | 18 +- .../Spells/attunements/Gravity_Mage.json | 61 +-- .../Spells/attunements/Ice_Elemental.json | 28 +- .../Spells/attunements/Illusionist.json | 36 +- .../Spells/attunements/Magnetism_Mage.json | 31 +- .../Spells/attunements/Overclocker.json | 24 +- .../Spells/attunements/Permafrost_Mage.json | 22 +- .../Spells/attunements/Radiation_Mage.json | 20 +- .../Magiclysm/Spells/attunements/Shaman.json | 28 +- .../Spells/attunements/Shapeshifter.json | 24 +- .../Spells/attunements/Soulfire.json | 17 +- .../Spells/attunements/Storm_Elemental.json | 46 +-- .../Spells/attunements/Stormcaller.json | 28 +- .../Spells/attunements/Sun_Mage.json | 18 +- .../Spells/attunements/Tundra_Mage.json | 20 +- .../Spells/attunements/Void_Mage.json | 11 +- .../Spells/attunements/Vulcanist.json | 30 +- .../Spells/attunements/Wither_Mage.json | 25 +- data/mods/Magiclysm/Spells/black_dragon.json | 71 ++-- data/mods/Magiclysm/Spells/classless.json | 210 +++++----- data/mods/Magiclysm/Spells/dragonbreath.json | 7 +- data/mods/Magiclysm/Spells/druid.json | 2 +- data/mods/Magiclysm/Spells/mana_upgrades.json | 36 +- data/mods/Magiclysm/Spells/manatouched.json | 4 +- data/mods/Magiclysm/Spells/stormshaper.json | 373 +++++++++--------- data/mods/Magiclysm/Spells/technomancer.json | 366 +++++++++-------- data/mods/Magiclysm/jmath.json | 61 --- data/mods/Magiclysm/magic_balance.md | 75 +--- data/mods/Magiclysm/obsolete/eocs.json | 8 +- 42 files changed, 932 insertions(+), 1041 deletions(-) diff --git a/data/mods/Magiclysm/Spells/animist.json b/data/mods/Magiclysm/Spells/animist.json index 53e9acfb1dd29..dce4c6ec86447 100644 --- a/data/mods/Magiclysm/Spells/animist.json +++ b/data/mods/Magiclysm/Spells/animist.json @@ -682,7 +682,7 @@ "spell_class": "ANIMIST", "difficulty": 2, "base_casting_time": 250, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 1)" ] }, + "base_energy_cost": 300, "max_level": 25, "min_damage": 1, "max_damage": 8, diff --git a/data/mods/Magiclysm/Spells/attunements/Alchemist.json b/data/mods/Magiclysm/Spells/attunements/Alchemist.json index 32597030cbc13..569a8c6f807f4 100644 --- a/data/mods/Magiclysm/Spells/attunements/Alchemist.json +++ b/data/mods/Magiclysm/Spells/attunements/Alchemist.json @@ -10,7 +10,7 @@ "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "shape": "blast", "valid_targets": [ "self" ], - "flags": [ "SOMATIC", "CONCENTRATE", "VERBAL" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "CONCENTRATE", "VERBAL" ], "max_level": 35, "min_damage": 1, "max_damage": 8, @@ -19,9 +19,9 @@ "base_casting_time": 45000, "final_casting_time": 4500, "casting_time_increment": -1250, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 1)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(100, 1)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-6, 0.03)" ] }, + "base_energy_cost": 300, + "final_energy_cost": 100, + "energy_increment": -6, "energy_source": "MANA", "difficulty": 5 }, @@ -31,7 +31,7 @@ "name": "Manafusion Bomb", "description": "Oversaturates potion starter with mana to create a deadly mana explosion.", "valid_targets": [ "none" ], - "flags": [ "SOMATIC", "PERMANENT_ALL_LEVELS" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "PERMANENT_ALL_LEVELS" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "spawn_item", "effect_str": "alchemist_bomb", @@ -46,9 +46,9 @@ "base_casting_time": 180000, "final_casting_time": 12000, "casting_time_increment": -5000, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(400, 2)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(800, 2)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(12, 0.03)" ] }, + "base_energy_cost": 400, + "final_energy_cost": 800, + "energy_increment": 12, "difficulty": 5 }, { @@ -58,7 +58,7 @@ "description": "Make a manafusion trap, stabilizing manafusion bombs and giving you some of the excess mana.", "//": "In perfect world there will be another spell that create already buried mine, making very effective trap in realtime. But not today.", "valid_targets": [ "none" ], - "flags": [ "SOMATIC", "PERMANENT_ALL_LEVELS" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "PERMANENT_ALL_LEVELS" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "spawn_item", "effect_str": "alchemist_mine", @@ -73,9 +73,9 @@ "base_casting_time": 18000, "final_casting_time": 1200, "casting_time_increment": -500, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(400, 2)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(800, 2)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(12, 0.03)" ] }, + "base_energy_cost": 400, + "final_energy_cost": 800, + "energy_increment": 12, "difficulty": 6 } ] diff --git a/data/mods/Magiclysm/Spells/attunements/Artificer.json b/data/mods/Magiclysm/Spells/attunements/Artificer.json index 6d69b939ad951..92a3081bfe9f9 100644 --- a/data/mods/Magiclysm/Spells/attunements/Artificer.json +++ b/data/mods/Magiclysm/Spells/attunements/Artificer.json @@ -10,7 +10,7 @@ "name": "Spy Wasp", "description": "Sends out a partly magical, partly electronic spy drone shaped like a wasp that reveals terrain in a line in front of you. The wasp can travel through walls.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "CONCENTRATE", "IGNORE_WALLS", "NO_LEGS", "SILENT", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CHANNELING_SPELL", "CONCENTRATE", "IGNORE_WALLS", "NO_LEGS", "SILENT", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "effect": "attack", "shape": "line", @@ -21,7 +21,7 @@ "min_duration": 1500, "duration_increment": 115, "max_duration": 5500, - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(140, 1.5)" ] }, + "base_energy_cost": 140, "components": "spy_wasp", "field_id": "fd_clairvoyant", "min_field_intensity": 1, @@ -29,7 +29,7 @@ "spell_class": "ARTIFICER", "difficulty": 3, "max_level": 35, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(700, 1.5)" ] }, + "base_casting_time": 700, "energy_source": "MANA" }, { @@ -90,23 +90,23 @@ "name": "Artificer's Toolkit", "description": "Artificers have a special pocket dimension with a magical tool that can cover a wide variety of tasks. It is only a matter of temporarily summoning the item for use.", "valid_targets": [ "none" ], - "flags": [ "CONCENTRATE", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "spawn_item", "shape": "blast", "effect_str": "artificer_toolkit", "min_damage": 1, "max_damage": 1, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(1680000, 20000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(60480000, 20000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(1680000, 0.03)" ] }, + "min_duration": 1680000, + "max_duration": 60480000, + "duration_increment": 1680000, "spell_class": "ARTIFICER", "difficulty": 3, "max_level": 35, "base_casting_time": 1500, "final_casting_time": 500, "casting_time_increment": -30, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(100, 1)" ] }, + "base_energy_cost": 100, "energy_source": "MANA" } ] diff --git a/data/mods/Magiclysm/Spells/attunements/Biotek.json b/data/mods/Magiclysm/Spells/attunements/Biotek.json index 45cac29f0a59c..9d3709b27fea2 100644 --- a/data/mods/Magiclysm/Spells/attunements/Biotek.json +++ b/data/mods/Magiclysm/Spells/attunements/Biotek.json @@ -5,14 +5,14 @@ "name": "Nitro Boost", "description": "You overclock your flesh and bionics, charging so fast the friction can ignite the air, to wind up for a skull-cracking punch.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "effect": "dash", "effect_str": "downed", "shape": "cone", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(0, 1)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(350, 1)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.03)" ] }, + "min_damage": 0, + "max_damage": 350, + "damage_increment": 10, "damage_type": "bash", "min_range": 8, "max_range": 8, @@ -36,19 +36,19 @@ "name": "Jury Rig", "description": "Heals a little bit of damage on the target.", "valid_targets": [ "self" ], - "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], + "extra_effects": [ { "id": "eoc_restoration_setup", "hit_self": true } ], "min_damage": -5, "max_damage": -40, "damage_increment": -1.0, "max_level": 35, "effect": "attack", "shape": "blast", - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(500, 1)" ] }, - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(800, 1)" ] }, - "energy_increment": { "math": [ "channeling_proficiency_negate_calculate(-20, 0.03)" ] }, - "final_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(100, 1)" ] }, + "base_casting_time": 500, + "base_energy_cost": 800, + "energy_increment": -20, + "final_energy_cost": 100, "components": "jury_rig", - "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "RESTORATION_SPELL", "SOMATIC", "VERBAL", "NO_LEGS", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ], "spell_class": "BIOTEK", "difficulty": 2, "energy_source": "BIONIC" diff --git a/data/mods/Magiclysm/Spells/attunements/Blood_Mage.json b/data/mods/Magiclysm/Spells/attunements/Blood_Mage.json index b15ce9b660cba..496a219dcfaac 100644 --- a/data/mods/Magiclysm/Spells/attunements/Blood_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Blood_Mage.json @@ -5,13 +5,13 @@ "name": "Greater Banishment", "description": "A more advanced version of Banishment, which is a ritual spell that attempts to banish a monster. Being closely related to blood magic, the Blood Mage is much more specialized to use a spell like this.", "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "VERBAL", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], - "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], + "flags": [ "CONVEYANCE_SPELL", "SOMATIC", "VERBAL", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], + "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ], "effect": "banishment", "shape": "blast", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(120, 1)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(15, 0.03)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(640, 1)" ] }, + "min_damage": 120, + "damage_increment": 15, + "max_damage": 640, "min_range": 6, "max_range": 6, "min_aoe": 0, @@ -60,16 +60,16 @@ "name": "Demonic Possession", "description": "You allow a demon to possess your body for a short time, giving you great combat abilities. You still retain control, though lose your spellcasting abilities temporarily.", "valid_targets": [ "none" ], - "flags": [ "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "spawn_item", "shape": "blast", "effect_str": "demon_possession_aura", "min_damage": 1, "max_damage": 1, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 2000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1440000, 2000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(30858, 0.03)" ] }, + "min_duration": 360000, + "max_duration": 1440000, + "duration_increment": 30858, "spell_class": "BLOOD_MAGE", "difficulty": 5, "max_level": 35, diff --git a/data/mods/Magiclysm/Spells/attunements/Boreal_Mage.json b/data/mods/Magiclysm/Spells/attunements/Boreal_Mage.json index 75819827a5ab8..2da55f9357f3a 100644 --- a/data/mods/Magiclysm/Spells/attunements/Boreal_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Boreal_Mage.json @@ -5,14 +5,14 @@ "name": "Auroral Wave", "description": "A rippling wave of luminous energy spreads from your hands, a beautiful torrent of magnetic force and chill wind.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "effect": "attack", "shape": "cone", "extra_effects": [ { "id": "auroral_wave_cold" }, { "id": "eoc_evocation_setup", "hit_self": true } ], "damage_type": "light", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(60, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(3.0, 0.03)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(160, 0.5)" ] }, + "min_damage": 60, + "damage_increment": 3.0, + "max_damage": 160, "min_range": 3, "max_range": 7, "range_increment": 0.12, @@ -35,9 +35,10 @@ "effect": "attack", "shape": "cone", "valid_targets": [ "hostile", "ground" ], - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(30, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(100, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2.0, 0.03)" ] }, + "flags": [ "EVOCATION_SPELL" ], + "min_damage": 30, + "max_damage": 100, + "damage_increment": 2.0, "min_range": 4, "max_range": 12, "range_increment": 0.25, @@ -58,15 +59,15 @@ "effect_str": "aura_auroral_guard", "shape": "blast", "energy_source": "MANA", - "flags": [ "CONCENTRATE", "VERBAL", "NO_LEGS" ], + "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "VERBAL", "NO_LEGS" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "difficulty": 9, "max_level": 40, "base_casting_time": 350, "base_energy_cost": 750, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(100000, 1000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(2000000, 1000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(47500, 0.025)" ] }, + "min_duration": 100000, + "max_duration": 2000000, + "duration_increment": 47500, "spell_class": "BOREAL_MAGE" } ] diff --git a/data/mods/Magiclysm/Spells/attunements/Cleansing_Flame.json b/data/mods/Magiclysm/Spells/attunements/Cleansing_Flame.json index 0edb1f2d8a4ae..5766cb777b5aa 100644 --- a/data/mods/Magiclysm/Spells/attunements/Cleansing_Flame.json +++ b/data/mods/Magiclysm/Spells/attunements/Cleansing_Flame.json @@ -5,8 +5,8 @@ "name": "Burning Trail", "description": "Speak a short phrase and transform your footsteps into burning pits of flame, leaving a trail of fire behind you. Each step will consume mana, but you will be immune to fire while the spell is in effect.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "VERBAL", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN", "NO_FAIL" ], - "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], + "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "VERBAL", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN", "NO_FAIL" ], + "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "effect": "effect_on_condition", "effect_str": "EOC_CLEANSING_FLAME_FIRE_FOOSTEPS", "shape": "blast", @@ -16,11 +16,7 @@ "min_damage": 1, "max_damage": 1, "max_level": 1, - "base_casting_time": { - "math": [ - "u_effect_intensity('effect_burning_trail') > -1 ? 0 : 50 - ((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)" - ] - }, + "base_casting_time": { "math": [ "u_effect_intensity('effect_burning_trail') > -1 ? 0 : 50" ] }, "base_energy_cost": 25 }, { @@ -104,14 +100,24 @@ "name": "Immolate", "description": "A purifying blast of raw elemental heat wipes the slate clean, searing the Earth back to her most original state: a barren ball of burning rock.", "valid_targets": [ "ally", "hostile", "ground" ], - "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "LOUD", "CONCENTRATE", "IGNITE_FLAMMABLE", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], + "flags": [ + "EVOCATION_SPELL", + "SOMATIC", + "VERBAL", + "NO_LEGS", + "LOUD", + "CONCENTRATE", + "IGNITE_FLAMMABLE", + "MUST_HAVE_CLASS_TO_LEARN", + "NO_HANDS" + ], "effect": "attack", "shape": "blast", "extra_effects": [ { "id": "immolate_transform" }, { "id": "immolate_push" }, { "id": "eoc_evocation_setup", "hit_self": true } ], "damage_type": "heat", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(90, 1)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(4.9, 0.03)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(260, 1)" ] }, + "min_damage": 90, + "damage_increment": 4.9, + "max_damage": 260, "min_range": 4, "max_range": 8, "range_increment": 0.12, @@ -155,16 +161,16 @@ "valid_targets": [ "self" ], "effect": "attack", "shape": "blast", - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(350, 1.5)" ] }, - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(800, 1.5)" ] }, + "base_casting_time": 350, + "base_energy_cost": 800, "energy_source": "MANA", "difficulty": 10, "min_damage": -20, "max_damage": -120, "damage_increment": -2.9, "max_level": 35, - "extra_effects": [ { "id": "cleansingflame_hermes_burn" }, { "id": "pain_split" }, { "id": "eoc_channeling_setup", "hit_self": true } ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "LOUD" ] + "extra_effects": [ { "id": "cleansingflame_hermes_burn" }, { "id": "pain_split" }, { "id": "eoc_restoration_setup", "hit_self": true } ], + "flags": [ "RESTORATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE", "LOUD" ] }, { "id": "cleansingflame_hermes_burn", diff --git a/data/mods/Magiclysm/Spells/attunements/Crusader.json b/data/mods/Magiclysm/Spells/attunements/Crusader.json index ead105de991f1..d7f5223ef9063 100644 --- a/data/mods/Magiclysm/Spells/attunements/Crusader.json +++ b/data/mods/Magiclysm/Spells/attunements/Crusader.json @@ -54,21 +54,21 @@ "name": "Holy Shield", "description": "Crusaders have the ability to summon a magically enhanced shield to their arm to protect them in armed combat.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "spawn_item", "shape": "blast", "effect_str": "holy_shield", "min_damage": 1, "max_damage": 1, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 2000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(12960000, 2000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(360000, 0.03)" ] }, + "min_duration": 360000, + "max_duration": 12960000, + "duration_increment": 360000, "spell_class": "CRUSADER", "difficulty": 4, "max_level": 35, "base_casting_time": 1500, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(500, 3)" ] }, + "base_energy_cost": 500, "energy_source": "MANA" }, { @@ -77,7 +77,7 @@ "name": "Sword of Judgement", "description": "This blade of light will cut through any evil it makes contact with! You can change its shape into a dagger, great sword, spear or mace.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_damage": 1, "max_damage": 1, @@ -85,10 +85,10 @@ "effect_str": "longsword_judgement", "shape": "blast", "base_casting_time": 1500, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(500, 2)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 2000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(12960000, 2000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(360000, 0.03)" ] }, + "base_energy_cost": 500, + "min_duration": 360000, + "max_duration": 12960000, + "duration_increment": 360000, "difficulty": 4, "max_level": 35, "spell_class": "CRUSADER", diff --git a/data/mods/Magiclysm/Spells/attunements/Earth_Elemental.json b/data/mods/Magiclysm/Spells/attunements/Earth_Elemental.json index 6a1943e0c492f..4ad2a6c97de4e 100644 --- a/data/mods/Magiclysm/Spells/attunements/Earth_Elemental.json +++ b/data/mods/Magiclysm/Spells/attunements/Earth_Elemental.json @@ -10,14 +10,14 @@ "name": "Quake", "description": "Cause a localized earthquake, knocking down enemies and overturning the earth.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "LOUD", "NO_HANDS", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN", "IGNORE_WALLS" ], + "flags": [ "EVOCATION_SPELL", "LOUD", "NO_HANDS", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN", "IGNORE_WALLS" ], "effect": "attack", "shape": "blast", "effect_str": "downed", "damage_type": "bash", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(4.0, 0.03)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(160, 0.5)" ] }, + "min_damage": 20, + "damage_increment": 4.0, + "max_damage": 160, "min_aoe": 0, "max_aoe": 35, "aoe_increment": 1, @@ -40,7 +40,7 @@ "name": "Quake Transform", "description": "Causes rubble to be spawned occasionally.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SILENT", "NO_EXPLOSION_SFX", "IGNORE_WALLS" ], + "flags": [ "EVOCATION_SPELL", "SILENT", "NO_EXPLOSION_SFX", "IGNORE_WALLS" ], "effect": "ter_transform", "effect_str": "quake_transform", "shape": "blast", @@ -58,7 +58,7 @@ "name": "Quake Earthquake", "description": "Destroy furniture and terrain nearby.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SILENT", "NO_EXPLOSION_SFX", "IGNORE_WALLS" ], + "flags": [ "EVOCATION_SPELL", "SILENT", "NO_EXPLOSION_SFX", "IGNORE_WALLS" ], "effect": "bash", "shape": "blast", "min_damage": 30, @@ -75,13 +75,13 @@ "name": "Rock Blast", "description": "Fire three large rocks at an enemy, causing blunt damage and knocking it back.", "valid_targets": [ "hostile" ], - "flags": [ "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "effect": "attack", "shape": "blast", "max_level": 35, - "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(4.6, 0.03)" ] }, + "min_damage": 20, + "max_damage": 180, + "damage_increment": 4.6, "min_range": 8, "max_range": 15, "range_increment": 0.2, @@ -105,15 +105,15 @@ "id": "single_rock_blast", "name": "Single Rock Blast", "type": "SPELL", - "flags": [ "NO_EXPLOSION_SFX" ], + "flags": [ "EVOCATION_SPELL", "NO_EXPLOSION_SFX" ], "description": "A single portion of the rock blast spell.", "valid_targets": [ "hostile" ], "effect": "attack", "shape": "blast", "max_level": 35, - "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(4.6, 0.03)" ] }, + "min_damage": 20, + "max_damage": 180, + "damage_increment": 4.6, "damage_type": "bash", "sound_id": "earth_spell", "sound_variant": "strong" @@ -124,7 +124,7 @@ "type": "SPELL", "description": "The push portion of the rock blast spell.", "valid_targets": [ "hostile" ], - "flags": [ "NO_EXPLOSION_SFX" ], + "flags": [ "EVOCATION_SPELL", "NO_EXPLOSION_SFX" ], "effect": "directed_push", "shape": "blast", "max_level": 35, diff --git a/data/mods/Magiclysm/Spells/attunements/Fire_Elemental.json b/data/mods/Magiclysm/Spells/attunements/Fire_Elemental.json index a597b9396e720..1080c0a97a991 100644 --- a/data/mods/Magiclysm/Spells/attunements/Fire_Elemental.json +++ b/data/mods/Magiclysm/Spells/attunements/Fire_Elemental.json @@ -5,14 +5,14 @@ "name": "Flareup", "description": "You channel heat through your hands to severely burn a target you touch.", "valid_targets": [ "hostile" ], - "flags": [ "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], + "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "effect": "attack", "shape": "blast", "damage_type": "heat", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(8.0, 0.03)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(300, 0.5)" ] }, + "min_damage": 20, + "damage_increment": 8.0, + "max_damage": 300, "min_range": 1, "max_range": 1, "base_energy_cost": 120, @@ -31,14 +31,14 @@ "name": "Flarewhip", "description": "You conjure a whip made of solid flame.", "valid_targets": [ "none" ], - "flags": [ "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "spawn_item", "effect_str": "flarewhip", "shape": "blast", "min_damage": 1, "max_damage": 1, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 2)" ] }, + "base_energy_cost": 300, "spell_class": "FIRE_ELEMENTAL", "difficulty": 7, "max_level": 35, @@ -46,8 +46,8 @@ "sound_description": "whoosh", "sound_id": "fire_spell", "energy_source": "MANA", - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(90000, 400)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(6000, 0.03)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(300000, 400)" ] } + "min_duration": 90000, + "duration_increment": 6000, + "max_duration": 300000 } ] diff --git a/data/mods/Magiclysm/Spells/attunements/Force_Mage.json b/data/mods/Magiclysm/Spells/attunements/Force_Mage.json index 01081bc9a632b..f7e74e2e99449 100644 --- a/data/mods/Magiclysm/Spells/attunements/Force_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Force_Mage.json @@ -5,7 +5,7 @@ "name": "Force Blade", "description": "You shoot a blade of concentrated force in a straight line, cutting everything in its path.", "valid_targets": [ "hostile", "ground", "ally" ], - "flags": [ "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "effect": "attack", "shape": "line", @@ -15,9 +15,9 @@ "base_energy_cost": 350, "difficulty": 4, "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(60, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(410, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.03)" ] }, + "min_damage": 60, + "max_damage": 410, + "damage_increment": 10, "damage_type": "cut", "min_aoe": 1, "max_aoe": 1, @@ -75,7 +75,7 @@ "name": "Force Shield", "description": "Adds a shield of pure force that protects your body and your clothing from attacks.", "valid_targets": [ "none" ], - "flags": [ "VERBAL", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONJURATION_SPELL", "VERBAL", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "spawn_item", "effect_str": "force_magical_armor", @@ -83,12 +83,12 @@ "spell_class": "FORCE_MAGE", "energy_source": "MANA", "base_casting_time": 500, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(500, 3)" ] }, + "base_energy_cost": 500, "max_level": 35, "min_damage": 1, "max_damage": 1, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 400)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1440000, 400)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(40115, 0.04)" ] } + "min_duration": 360000, + "max_duration": 1440000, + "duration_increment": 40115 } ] diff --git a/data/mods/Magiclysm/Spells/attunements/Gaias_Chosen.json b/data/mods/Magiclysm/Spells/attunements/Gaias_Chosen.json index b5cca58307959..5116bca226a13 100644 --- a/data/mods/Magiclysm/Spells/attunements/Gaias_Chosen.json +++ b/data/mods/Magiclysm/Spells/attunements/Gaias_Chosen.json @@ -6,19 +6,19 @@ "name": "Samsara", "description": "You tie your ley lines to the world's, renewing your flesh as if reborn.", "valid_targets": [ "self" ], - "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], + "extra_effects": [ { "id": "eoc_restoration_setup", "hit_self": true } ], "effect": "attack", "effect_str": "cureall", "shape": "blast", - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(60000, 100)" ] }, - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(800, 10)" ] }, + "base_casting_time": 60000, + "base_energy_cost": 800, "energy_source": "MANA", "difficulty": 8, "min_damage": -20, "max_damage": -200, "damage_increment": -4.5, "max_level": 40, - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "LOUD" ] + "flags": [ "RESTORATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE", "LOUD" ] }, { "id": "dust_reborn", @@ -30,10 +30,10 @@ "effect_str": "EOC_DUST_REBORN_INITIAL", "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "shape": "blast", - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(2160000, 1000)" ] }, - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(1000, 20)" ] }, + "base_casting_time": 2160000, + "base_energy_cost": 1000, "energy_source": "MANA", - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CHANNELING_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ], "spell_class": "GAIAS_CHOSEN", "difficulty": 0, "max_level": 0 @@ -48,14 +48,14 @@ "effect_str": "effect_terra_armor", "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "shape": "blast", - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(550, 2)" ] }, + "base_casting_time": 550, "base_energy_cost": 750, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(50000, 120000)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1800000, 120000)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(50000, 0.03)" ] }, + "min_duration": 50000, + "max_duration": 1800000, + "duration_increment": 50000, "difficulty": 7, "max_level": 35, - "flags": [ "SOMATIC" ], + "flags": [ "ENHANCEMENT_SPELL", "SOMATIC" ], "spell_class": "GAIAS_CHOSEN", "energy_source": "MANA" }, diff --git a/data/mods/Magiclysm/Spells/attunements/Glacier_Mage.json b/data/mods/Magiclysm/Spells/attunements/Glacier_Mage.json index c9512aecd6622..f6b44dfcff652 100644 --- a/data/mods/Magiclysm/Spells/attunements/Glacier_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Glacier_Mage.json @@ -8,10 +8,10 @@ "shape": "cone", "valid_targets": [ "hostile", "ground" ], "extra_effects": [ { "id": "ice_clave_blunt" }, { "id": "eoc_evocation_setup", "hit_self": true } ], - "flags": [ "LOUD", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(30, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(100, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2.0, 0.03)" ] }, + "flags": [ "EVOCATION_SPELL", "LOUD", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], + "min_damage": 30, + "max_damage": 100, + "damage_increment": 2.0, "min_range": 3, "max_range": 7, "range_increment": 0.12, @@ -33,10 +33,11 @@ "description": "This is the blunt damage portion of the Ice Clave spell.", "effect": "attack", "shape": "cone", + "flags": [ "EVOCATION_SPELL" ], "valid_targets": [ "hostile", "ground" ], - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(30, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(100, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2.0, 0.03)" ] }, + "min_damage": 30, + "max_damage": 100, + "damage_increment": 2.0, "min_range": 3, "max_range": 7, "range_increment": 0.12, @@ -56,12 +57,12 @@ "effect": "attack", "shape": "line", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SOMATIC", "NO_LEGS", "LOUD", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_LEGS", "LOUD", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "frozen_winds_push" }, { "id": "eoc_evocation_setup", "hit_self": true } ], "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(25, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(95, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2, 0.03)" ] }, + "min_damage": 25, + "max_damage": 95, + "damage_increment": 2, "min_aoe": 3, "max_aoe": 6, "aoe_increment": 0.1, @@ -83,6 +84,7 @@ "description": "This is the push effect portion of the Frozen Winds spell.", "effect": "directed_push", "shape": "line", + "flags": [ "EVOCATION_SPELL" ], "valid_targets": [ "hostile", "ground" ], "max_level": 35, "min_damage": 3, diff --git a/data/mods/Magiclysm/Spells/attunements/Golemancer.json b/data/mods/Magiclysm/Spells/attunements/Golemancer.json index 8fe83985f1ef8..ddb6689c0ea02 100644 --- a/data/mods/Magiclysm/Spells/attunements/Golemancer.json +++ b/data/mods/Magiclysm/Spells/attunements/Golemancer.json @@ -17,20 +17,20 @@ "base_casting_time": 3500, "casting_time_increment": -100, "final_casting_time": 2000, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(500, 3)" ] }, + "base_energy_cost": 500, "energy_source": "MANA", "difficulty": 6, "max_level": 35, "min_damage": 1, "max_damage": 1, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(30000, 40)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(90000, 40)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(1715, 0.03)" ] }, + "min_duration": 30000, + "max_duration": 90000, + "duration_increment": 1715, "min_range": 3, "max_range": 3, "components": "summon_golem", "extra_effects": [ { "id": "summon_golem_focus" }, { "id": "eoc_summon_setup", "hit_self": true } ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ] + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE" ] }, { "id": "summon_golem_focus", @@ -59,12 +59,12 @@ "effect": "directed_push", "shape": "blast", "valid_targets": [ "hostile" ], - "flags": [ "LOUD", "VERBAL", "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], + "flags": [ "EVOCATION_SPELL", "LOUD", "VERBAL", "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "spell_class": "GOLEMANCER", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(5, 0.2)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(16, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(0.32, 0.03)" ] }, + "min_damage": 5, + "max_damage": 16, + "damage_increment": 0.32, "min_range": 1, "max_range": 1, "base_energy_cost": 4, diff --git a/data/mods/Magiclysm/Spells/attunements/Gravity_Mage.json b/data/mods/Magiclysm/Spells/attunements/Gravity_Mage.json index e64dbf582dedf..db7b44a3ee58d 100644 --- a/data/mods/Magiclysm/Spells/attunements/Gravity_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Gravity_Mage.json @@ -8,9 +8,9 @@ "effect": "attack", "shape": "blast", "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(25, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(60, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1, 0.03)" ] }, + "min_damage": 25, + "max_damage": 60, + "damage_increment": 1, "damage_type": "gravity", "min_aoe": 2, "max_aoe": 7, @@ -18,7 +18,7 @@ "min_range": 5, "max_range": 17, "range_increment": 0.5, - "flags": [ "LOUD" ] + "flags": [ "EVOCATION_SPELL", "LOUD" ] }, { "id": "gravitymage_graviton", @@ -34,9 +34,9 @@ "energy_source": "MANA", "difficulty": 10, "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(25, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(60, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1, 0.03)" ] }, + "min_damage": 25, + "max_damage": 60, + "damage_increment": 1, "damage_type": "bash", "min_aoe": 4, "max_aoe": 9, @@ -49,7 +49,16 @@ { "id": "gravitymage_graviton_centerdamage" }, { "id": "eoc_evocation_setup", "hit_self": true } ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "NO_PROJECTILE", "IGNORE_WALLS", "LOUD", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ + "EVOCATION_SPELL", + "SOMATIC", + "VERBAL", + "CONCENTRATE", + "NO_PROJECTILE", + "IGNORE_WALLS", + "LOUD", + "MUST_HAVE_CLASS_TO_LEARN" + ], "sound_description": "a crack" }, { @@ -61,9 +70,9 @@ "effect": "attack", "shape": "blast", "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(35, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(105, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2, 0.03)" ] }, + "min_damage": 35, + "max_damage": 105, + "damage_increment": 2, "damage_type": "gravity", "min_aoe": 0, "max_aoe": 2, @@ -71,7 +80,7 @@ "min_range": 5, "max_range": 17, "range_increment": 0.5, - "flags": [ "LOUD" ] + "flags": [ "EVOCATION_SPELL", "LOUD" ] }, { "type": "SPELL", @@ -79,22 +88,22 @@ "name": "Gravity Leap", "description": "Decrease your weight to a minimum, and use a mana flow to jump to your enemies from a long distance.", "valid_targets": [ "ground" ], - "flags": [ "SILENT", "NO_LEGS", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONVEYANCE_SPELL", "SILENT", "NO_LEGS", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ], "effect": "dash", "shape": "cone", "damage_type": "bash", - "min_range": { "math": [ "conveyance_proficiency_bonus_calculate(4, 0.113)" ] }, - "max_range": { "math": [ "conveyance_proficiency_bonus_calculate(21, 0.113)" ] }, - "range_increment": { "math": [ "conveyance_proficiency_bonus_calculate(0.5, 0.03)" ] }, + "min_range": 4, + "max_range": 21, + "range_increment": 0.5, "spell_class": "GRAVITY_MAGE", "difficulty": 5, "base_casting_time": 400, "final_casting_time": 50, "casting_time_increment": -10, - "base_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(200, 0.5)" ] }, - "final_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(50, 0.5)" ] }, - "energy_increment": { "math": [ "conveyance_proficiency_negate_calculate(-4.5, 0.03)" ] }, + "base_energy_cost": 200, + "final_energy_cost": 50, + "energy_increment": -4.5, "max_level": 35, "energy_source": "MANA" }, @@ -107,21 +116,21 @@ "effect": "attack", "effect_str": "gravity_mage_melee", "shape": "blast", - "flags": [ "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "spell_class": "GRAVITY_MAGE", "energy_source": "MANA", "difficulty": 7, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(500, 30)" ] }, - "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(150, 30)" ] }, - "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-10, 0.03)" ] }, + "base_casting_time": 500, + "final_casting_time": 150, + "casting_time_increment": -10, "base_energy_cost": 500, "final_energy_cost": 150, "energy_increment": -10, "max_level": 35, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(20000, 2300)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(720000, 2300)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(20000, 0.03)" ] } + "min_duration": 20000, + "max_duration": 720000, + "duration_increment": 20000 }, { "id": "gravity_mage_melee", diff --git a/data/mods/Magiclysm/Spells/attunements/Ice_Elemental.json b/data/mods/Magiclysm/Spells/attunements/Ice_Elemental.json index 6fcfa04b720fc..92a3386f64f60 100644 --- a/data/mods/Magiclysm/Spells/attunements/Ice_Elemental.json +++ b/data/mods/Magiclysm/Spells/attunements/Ice_Elemental.json @@ -5,7 +5,7 @@ "name": "Subzero Talons", "description": "Your fingers stiffen as condensation freezes into claws, intensifying your naturally cold touch and protecting your hands from damage.", "valid_targets": [ "none" ], - "flags": [ "NO_LEGS", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONJURATION_SPELL", "NO_LEGS", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_damage": 1, "max_damage": 1, @@ -17,12 +17,12 @@ "difficulty": 7, "max_level": 35, "base_casting_time": 400, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(400, 2)" ] }, + "base_energy_cost": 400, "energy_increment": -10, "final_energy_cost": 250, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(18000, 600)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(120000, 600)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(4500, 0.045)" ] } + "min_duration": 18000, + "max_duration": 120000, + "duration_increment": 4500 }, { "id": "cold_heart", @@ -30,13 +30,13 @@ "name": "Cold Heart", "description": "Harshly drop the temperature inside of your enemies, slowing down their bloodstreams or even shattering organs.", "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "NO_PROJECTILE", "SILENT" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_PROJECTILE", "SILENT" ], "effect": "attack", "shape": "blast", "damage_type": "cold", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(80, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1.8, 0.03)" ] }, + "min_damage": 20, + "max_damage": 80, + "damage_increment": 1.8, "min_range": 6, "max_range": 20, "range_increment": 0.4, @@ -77,14 +77,14 @@ "effect_str": "icelemental_crystal", "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "shape": "blast", - "flags": [ "SOMATIC", "LOUD", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "LOUD", "MUST_HAVE_CLASS_TO_LEARN" ], "spell_class": "ICE_ELEMENTAL", "energy_source": "MANA", "difficulty": 5, - "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(30000, 4)" ] }, - "final_casting_time": { "math": [ "summoning_proficiency_negate_calculate(300, 4)" ] }, - "casting_time_increment": { "math": [ "summoning_proficiency_negate_calculate(-850, 0.03)" ] }, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(1500, 4)" ] }, + "base_casting_time": 30000, + "final_casting_time": 300, + "casting_time_increment": -850, + "base_energy_cost": 1500, "max_level": 35, "min_range": 3, "max_range": 10, diff --git a/data/mods/Magiclysm/Spells/attunements/Illusionist.json b/data/mods/Magiclysm/Spells/attunements/Illusionist.json index faf02ae0686eb..7d7d33e953b3b 100644 --- a/data/mods/Magiclysm/Spells/attunements/Illusionist.json +++ b/data/mods/Magiclysm/Spells/attunements/Illusionist.json @@ -5,15 +5,15 @@ "name": "Spear of Light", "description": "Shoot directed light from your fingertips that is so bright you can see through the skin of the target for an instant.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SOMATIC", "VERBAL", "SILENT", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "VERBAL", "SILENT", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "effect": "attack", "effect_str": "blind", "shape": "line", "damage_type": "light", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(40, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(15.0, 0.03)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(565, 0.5)" ] }, + "min_damage": 40, + "damage_increment": 15.0, + "max_damage": 565, "min_range": 8, "max_range": 8, "min_duration": 0, @@ -35,7 +35,7 @@ "effect": "summon", "effect_str": "mon_battle_hologram", "shape": "blast", - "flags": [ "SILENT", "RANDOM_TARGET", "NO_EXPLOSION_SFX", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONJURATION_SPELL", "SILENT", "RANDOM_TARGET", "NO_EXPLOSION_SFX", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "spell_class": "ILLUSIONIST", "energy_source": "MANA", @@ -51,13 +51,13 @@ "base_casting_time": 400, "final_casting_time": 100, "casting_time_increment": -10, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(400, 2)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(200, 2)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-6, 0.03)" ] }, + "base_energy_cost": 400, + "final_energy_cost": 200, + "energy_increment": -6, "max_level": 35, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(3500, 10)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(126000, 10)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(3500, 0.4)" ] } + "min_duration": 3500, + "max_duration": 126000, + "duration_increment": 3500 }, { "id": "illusionist_transposition", @@ -65,7 +65,7 @@ "name": "Illusion Transposition", "description": "Fool reality, and swap your position with any other creature in your line of sight", "valid_targets": [ "hostile", "ally" ], - "flags": [ "NO_LEGS", "NO_HANDS", "SWAP_POS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONVEYANCE_SPELL", "NO_LEGS", "NO_HANDS", "SWAP_POS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ], "effect": "attack", "shape": "blast", @@ -76,11 +76,11 @@ "base_casting_time": 150, "casting_time_increment": -5, "final_casting_time": 0, - "base_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(250, 1)" ] }, - "energy_increment": { "math": [ "conveyance_proficiency_negate_calculate(-5, 0.033)" ] }, - "final_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(100, 1)" ] }, - "min_range": { "math": [ "conveyance_proficiency_bonus_calculate(25, 0.23)" ] }, - "max_range": { "math": [ "conveyance_proficiency_bonus_calculate(60, 0.23)" ] }, - "range_increment": { "math": [ "conveyance_proficiency_bonus_calculate(1, 0.03)" ] } + "base_energy_cost": 250, + "energy_increment": -5, + "final_energy_cost": 100, + "min_range": 25, + "max_range": 60, + "range_increment": 1 } ] diff --git a/data/mods/Magiclysm/Spells/attunements/Magnetism_Mage.json b/data/mods/Magiclysm/Spells/attunements/Magnetism_Mage.json index 3716d2fd967c1..72acd8db152a6 100644 --- a/data/mods/Magiclysm/Spells/attunements/Magnetism_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Magnetism_Mage.json @@ -174,7 +174,7 @@ "type": "SPELL", "name": "Railgun", "description": "Magnetize a bullet, and fire it at supersonic speeds by applying an opposite magnetic force to the bullet. Leaves a trail of sparks", - "flags": [ "LOUD", "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "LOUD", "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "valid_targets": [ "hostile" ], "spell_class": "MAGNETISM_MAGE", "energy_source": "MANA", @@ -182,9 +182,9 @@ "effect": "attack", "shape": "blast", "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(100, 1)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(450, 1)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.03)" ] }, + "min_damage": 100, + "max_damage": 450, + "damage_increment": 10, "components": "railgun_bullet", "min_range": 20, "max_range": 20, @@ -213,13 +213,13 @@ "name": "Electrolaser", "description": "Creates a conductive channel from the caster's hand to the target by ionizing air molecules using a high-powered laser beam, then sends a powerful half million volt charge down the channel.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SOMATIC", "NO_LEGS", "LOUD" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_LEGS", "LOUD" ], "effect": "attack", "shape": "line", "damage_type": "light", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(15, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(75, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1.8, 0.03)" ] }, + "min_damage": 15, + "max_damage": 75, + "damage_increment": 1.8, "min_range": 6, "max_range": 26, "range_increment": 0.6, @@ -244,12 +244,13 @@ "name": "Electrolaser Electric Damage", "description": "Give some electric damage for Electrolaser spell. Subspell; you aren't allowed to see it except in debug mode.", "valid_targets": [ "hostile", "ground" ], + "flags": [ "EVOCATION_SPELL" ], "effect": "attack", "shape": "line", "damage_type": "electric", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(150, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(3.8, 0.03)" ] }, + "min_damage": 20, + "max_damage": 150, + "damage_increment": 3.8, "max_range": 26, "min_aoe": 1, "max_aoe": 5, @@ -279,7 +280,7 @@ "type": "SPELL", "name": "Surge", "description": "Send a wave of high-frequency alternating pulses. It can't hurt living creatures, but is exceptional at stunning and destroying robots. Even though it isn't an EMP.", - "flags": [ "NO_LEGS", "LOUD", "SOMATIC" ], + "flags": [ "EVOCATION_SPELL", "NO_LEGS", "LOUD", "SOMATIC" ], "valid_targets": [ "hostile", "ground" ], "targeted_monster_species": [ "ROBOT", "CYBORG" ], "spell_class": "MAGNETISM_MAGE", @@ -295,9 +296,9 @@ "effect": "attack", "shape": "blast", "damage_type": "electric", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 1)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(320, 1)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.033)" ] }, + "min_damage": 20, + "max_damage": 320, + "damage_increment": 10, "min_range": 10, "max_range": 55, "range_increment": 1.3, diff --git a/data/mods/Magiclysm/Spells/attunements/Overclocker.json b/data/mods/Magiclysm/Spells/attunements/Overclocker.json index f6f3b3b5e232e..3d2c0e7251614 100644 --- a/data/mods/Magiclysm/Spells/attunements/Overclocker.json +++ b/data/mods/Magiclysm/Spells/attunements/Overclocker.json @@ -8,7 +8,7 @@ "effect_str": "neuro_boost", "shape": "blast", "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "CONCENTRATE", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], + "flags": [ "ENHANCEMENT_SPELL", "SOMATIC", "CONCENTRATE", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "max_level": 35, "min_damage": 0, @@ -17,16 +17,16 @@ "min_dot": 15, "max_dot": 50, "dot_increment": 1, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(300, 4.7)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1000, 4.7)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(20, 0.03)" ] }, + "min_duration": 300, + "max_duration": 1000, + "duration_increment": 20, "min_range": 5, "max_range": 12, "range_increment": 0.2, "spell_class": "OVERCLOCKER", - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(160, 0.5)" ] }, - "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(40, 0.5)" ] }, - "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-5, 0.042)" ] }, + "base_casting_time": 160, + "final_casting_time": 40, + "casting_time_increment": -5, "base_energy_cost": 400, "energy_source": "MANA", "difficulty": 6, @@ -38,19 +38,19 @@ "name": "Overdrive", "description": "The power of mana flows into you, heightening your speed to supernatural levels in a self-destructive way. You are a blur amongst your enemies, felling them with blows too swift to see.", "valid_targets": [ "self" ], - "flags": [ "NO_HANDS", "NO_LEGS", "SILENT" ], + "flags": [ "ENHANCEMENT_SPELL", "NO_HANDS", "NO_LEGS", "SILENT" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "effect": "attack", "shape": "blast", "effect_str": "overclocker_drive_effect", "max_damage": 1, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1000, 993)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(150000, 993)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(4300, 0.03)" ] }, + "min_duration": 1000, + "max_duration": 150000, + "duration_increment": 4300, "spell_class": "OVERCLOCKER", "difficulty": 9, "max_level": 35, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(600, 4)" ] }, + "base_casting_time": 600, "base_energy_cost": 900, "energy_source": "MANA" } diff --git a/data/mods/Magiclysm/Spells/attunements/Permafrost_Mage.json b/data/mods/Magiclysm/Spells/attunements/Permafrost_Mage.json index a596c4b789ef7..c38640c0aba24 100644 --- a/data/mods/Magiclysm/Spells/attunements/Permafrost_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Permafrost_Mage.json @@ -5,7 +5,7 @@ "name": { "str": "Ice Fog" }, "description": "Using your mana, you began to accelerate ice particles inside a cold mist, eroding everything inside.", "valid_targets": [ "self" ], - "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CHANNELING_SPELL", "SOMATIC", "VERBAL", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "effect": "spawn_item", "effect_str": "aura_cold_energy", @@ -14,12 +14,12 @@ "energy_source": "MANA", "difficulty": 9, "max_level": 35, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(600, 5)" ] }, - "casting_time_increment": { "math": [ "channeling_proficiency_negate_calculate(-15, 0.0375)" ] }, - "final_casting_time": { "math": [ "channeling_proficiency_negate_calculate(200, 5)" ] }, - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(800, 5)" ] }, - "energy_increment": { "math": [ "channeling_proficiency_negate_calculate(-15, 0.0375)" ] }, - "final_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(400, 5)" ] }, + "base_casting_time": 600, + "casting_time_increment": -15, + "final_casting_time": 200, + "base_energy_cost": 800, + "energy_increment": -15, + "final_energy_cost": 400, "min_damage": 1, "max_damage": 1, "min_duration": 10000, @@ -58,12 +58,12 @@ "effect_str": "cold", "shape": "blast", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "VERBAL", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(0, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(100, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(3, 0.03)" ] }, + "min_damage": 0, + "max_damage": 100, + "damage_increment": 3, "min_dot": 0, "max_dot": 45, "dot_increment": 1.3, diff --git a/data/mods/Magiclysm/Spells/attunements/Radiation_Mage.json b/data/mods/Magiclysm/Spells/attunements/Radiation_Mage.json index ba8ecbf3b8ac7..6ed9f8a5180e1 100644 --- a/data/mods/Magiclysm/Spells/attunements/Radiation_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Radiation_Mage.json @@ -5,12 +5,12 @@ "name": "Shortwave", "description": "Cook nearby monsters (and yourself to an extent).", "valid_targets": [ "hostile", "ground", "self" ], - "flags": [ "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "effect": "attack", "shape": "blast", "damage_type": "necrotic", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.5)" ] }, + "min_damage": 20, + "max_damage": 20, "min_range": 3, "max_range": 3, "min_aoe": 3, @@ -29,13 +29,13 @@ "name": "Shortwave 2", "description": "Cook nearby monsters (and yourself to an extent).", "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN" ], "effect": "attack", "shape": "blast", "damage_type": "heat", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(70, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(420, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.03)" ] }, + "min_damage": 70, + "max_damage": 420, + "damage_increment": 10, "min_range": 3, "max_range": 3, "min_aoe": 3, @@ -48,7 +48,7 @@ "name": "Gamma Burst", "description": "Cause cell damage to everything in a wide area. Fast to cast, but does damage slowly.", "valid_targets": [ "hostile", "ally" ], - "flags": [ "NO_LEGS", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "NO_LEGS", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "shape": "blast", "effect": "attack", @@ -62,8 +62,8 @@ "min_aoe": 6, "max_aoe": 10, "aoe_increment": 0.12, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(2, 0.1)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(2, 0.1)" ] }, + "min_damage": 2, + "max_damage": 2, "min_dot": 10, "max_dot": 45, "dot_increment": 1, diff --git a/data/mods/Magiclysm/Spells/attunements/Shaman.json b/data/mods/Magiclysm/Spells/attunements/Shaman.json index 7e4ed1fded3ae..5df19950d0947 100644 --- a/data/mods/Magiclysm/Spells/attunements/Shaman.json +++ b/data/mods/Magiclysm/Spells/attunements/Shaman.json @@ -5,7 +5,7 @@ "name": { "str": "Butterfly Swarm" }, "description": "Summon a pack of butterflies with razor-sharp wings, to cut every creature in your way.", "valid_targets": [ "ground" ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "summon", "effect_str": "mon_razor_butterflies", @@ -17,9 +17,9 @@ "base_casting_time": 500, "casting_time_increment": -10, "final_casting_time": 150, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(350, 2)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-5, 0.033)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(200, 2)" ] }, + "base_energy_cost": 350, + "energy_increment": -5, + "final_energy_cost": 200, "min_damage": 1, "max_damage": 12, "damage_increment": 0.4, @@ -29,9 +29,9 @@ "min_aoe": 1, "max_aoe": 8, "aoe_increment": 0.2, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(14400, 20)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(144000, 20)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(4000, 0.03)" ] } + "min_duration": 14400, + "max_duration": 144000, + "duration_increment": 4000 }, { "id": "summon_shambling_mound", @@ -39,7 +39,7 @@ "name": { "str": "Call of Mound" }, "description": "Summons a Shambling Mound, a giant carnivorous plant mess with devastating area attacks. It is too slow for a normal fight, but excels at defending its shaman.", "valid_targets": [ "ground" ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "summon", "effect_str": "mon_shambling_mound", @@ -51,9 +51,9 @@ "base_casting_time": 1200, "casting_time_increment": -26, "final_casting_time": 300, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(800, 3)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-9, 0.03)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(500, 3)" ] }, + "base_energy_cost": 800, + "energy_increment": -9, + "final_energy_cost": 500, "min_damage": 1, "max_damage": 1, "min_range": 1, @@ -62,8 +62,8 @@ "min_aoe": 8, "max_aoe": 1, "aoe_increment": -0.2, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(14400, 20)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(144000, 20)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(4000, 0.03)" ] } + "min_duration": 14400, + "max_duration": 144000, + "duration_increment": 4000 } ] diff --git a/data/mods/Magiclysm/Spells/attunements/Shapeshifter.json b/data/mods/Magiclysm/Spells/attunements/Shapeshifter.json index d606a3289fc6b..8fc6ad8c7beb7 100644 --- a/data/mods/Magiclysm/Spells/attunements/Shapeshifter.json +++ b/data/mods/Magiclysm/Spells/attunements/Shapeshifter.json @@ -5,16 +5,16 @@ "name": "Alkahest", "description": "Release a spray of mana-saturated bioactive solvent. Your ley lines give you a resistance to this acid due to your mana signature, but others beware!", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SILENT", "NO_HANDS", "NO_LEGS" ], + "flags": [ "EVOCATION_SPELL", "SILENT", "NO_HANDS", "NO_LEGS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "spell_class": "SHAPESHIFTER", "effect": "attack", "shape": "cone", "damage_type": "acid", "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(5, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(65, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1.8, 0.03)" ] }, + "min_damage": 5, + "max_damage": 65, + "damage_increment": 1.8, "min_range": 3, "max_range": 16, "range_increment": 0.4, @@ -40,21 +40,21 @@ "//": "thats supposed to be a magikarp power - weak on the very beginning but op in the end of the path. also it has a cool feature - you can support it indefinitely, if you have enough mana (and thats the only problem for the user - it requires really ton of mana to support it)", "message": "", "valid_targets": [ "self" ], - "flags": [ "SILENT", "NO_LEGS", "NO_HANDS" ], - "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], + "flags": [ "TRANSFORMATION_SPELL", "SILENT", "NO_LEGS", "NO_HANDS" ], + "extra_effects": [ { "id": "eoc_transformation_setup", "hit_self": true } ], "effect": "attack", "effect_str": "biomechanic", "shape": "blast", "energy_source": "MANA", "spell_class": "SHAPESHIFTER", "difficulty": 8, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1440, 210.4)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(33000, 210.4)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(900, 0.03)" ] }, + "min_duration": 1440, + "max_duration": 33000, + "duration_increment": 900, "max_level": 35, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(1000, 5.3)" ] }, - "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(200, 5.3)" ] }, - "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-35, 0.044)" ] }, + "base_casting_time": 1000, + "final_casting_time": 200, + "casting_time_increment": -35, "base_energy_cost": 350, "energy_increment": -10, "final_energy_cost": 50 diff --git a/data/mods/Magiclysm/Spells/attunements/Soulfire.json b/data/mods/Magiclysm/Spells/attunements/Soulfire.json index c024645936116..6c9f3beecb957 100644 --- a/data/mods/Magiclysm/Spells/attunements/Soulfire.json +++ b/data/mods/Magiclysm/Spells/attunements/Soulfire.json @@ -5,14 +5,14 @@ "name": "Burn at Both Ends", "description": "A candle burns the most brightly at both ends, and yet it burns twice as fast.", "valid_targets": [ "hostile" ], - "flags": [ "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "effect": "attack", "shape": "blast", "damage_type": "heat", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(30, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(10.0, 0.03)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(380, 0.5)" ] }, + "min_damage": 30, + "damage_increment": 10.0, + "max_damage": 380, "min_range": 3, "range_increment": 0.1, "max_range": 6, @@ -36,6 +36,7 @@ "type": "SPELL", "name": "Soul Burn", "description": "This is a description for a spell the player will never see.", + "flags": [ "ENHANCEMENT_SPELL" ], "effect": "attack", "effect_str": "soul_burn", "shape": "blast", @@ -43,9 +44,9 @@ "max_damage": 0, "valid_targets": [ "self" ], "max_level": 35, - "min_duration": { "math": [ "enhancement_proficiency_negate_calculate(1080000, 3600)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_negate_calculate(540000, 3600)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_negate_calculate(-30000, 0.055)" ] } + "min_duration": 1080000, + "max_duration": 540000, + "duration_increment": -30000 }, { "id": "soul_burn", @@ -64,7 +65,7 @@ "name": "Soul Afterburner", "description": "You burn a small portion of your soul to gain a large burst of speed.", "valid_targets": [ "self" ], - "flags": [ "VERBAL", "SILENT", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "SILENT", "MUST_HAVE_CLASS_TO_LEARN" ], "effect": "mod_moves", "shape": "blast", "min_damage": 1500, diff --git a/data/mods/Magiclysm/Spells/attunements/Storm_Elemental.json b/data/mods/Magiclysm/Spells/attunements/Storm_Elemental.json index a6c9595605ec0..13123e5c8e1b7 100644 --- a/data/mods/Magiclysm/Spells/attunements/Storm_Elemental.json +++ b/data/mods/Magiclysm/Spells/attunements/Storm_Elemental.json @@ -9,16 +9,16 @@ "damage_type": "electric", "spell_class": "STORM_ELEMENTAL", "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(0, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(70, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2, 0.03)" ] }, + "min_damage": 0, + "max_damage": 70, + "damage_increment": 2, "min_range": 1, "max_range": 1, "energy_source": "MANA", "base_energy_cost": 500, "base_casting_time": 100, "difficulty": 4, - "flags": [ "LOUD", "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "LOUD", "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "sound_description": "a crackle", "valid_targets": [ "hostile" ], "extra_effects": [ { "id": "storm_chain_1" }, { "id": "storm_chain_1" }, { "id": "eoc_evocation_setup", "hit_self": true } ] @@ -36,9 +36,9 @@ "max_field_intensity": 2, "field_chance": 1, "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(0, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(70, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2, 0.03)" ] }, + "min_damage": 0, + "max_damage": 70, + "damage_increment": 2, "min_range": 13, "range_increment": 0.2, "max_range": 20, @@ -46,7 +46,7 @@ "max_aoe": 1, "sound_description": "a crackle", "valid_targets": [ "hostile", "ground" ], - "flags": [ "LOUD", "RANDOM_TARGET", "RANDOM_CRITTER" ], + "flags": [ "EVOCATION_SPELL", "LOUD", "RANDOM_TARGET", "RANDOM_CRITTER" ], "extra_effects": [ { "id": "storm_chain_2" }, { "id": "storm_chain_2" } ] }, { @@ -62,9 +62,9 @@ "max_field_intensity": 2, "field_chance": 1, "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(0, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(70, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2, 0.03)" ] }, + "min_damage": 0, + "max_damage": 70, + "damage_increment": 2, "min_range": 7, "range_increment": 0.2, "max_range": 14, @@ -72,7 +72,7 @@ "max_aoe": 1, "sound_description": "a crackle", "valid_targets": [ "hostile", "ground" ], - "flags": [ "LOUD", "RANDOM_TARGET", "RANDOM_CRITTER" ], + "flags": [ "EVOCATION_SPELL", "LOUD", "RANDOM_TARGET", "RANDOM_CRITTER" ], "extra_effects": [ { "id": "storm_chain_3" }, { "id": "storm_chain_3" } ] }, { @@ -88,9 +88,9 @@ "max_field_intensity": 2, "field_chance": 1, "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(0, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(70, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2, 0.03)" ] }, + "min_damage": 0, + "max_damage": 70, + "damage_increment": 2, "min_range": 0, "range_increment": 0.2, "max_range": 7, @@ -98,7 +98,7 @@ "max_aoe": 1, "sound_description": "a crackle", "valid_targets": [ "hostile", "ground" ], - "flags": [ "LOUD", "RANDOM_TARGET", "RANDOM_CRITTER" ] + "flags": [ "EVOCATION_SPELL", "LOUD", "RANDOM_TARGET", "RANDOM_CRITTER" ] }, { "id": "storm_elemental_electric_melee", @@ -109,16 +109,16 @@ "effect": "attack", "effect_str": "eff_storm_elemental_electric_melee", "shape": "blast", - "flags": [ "NO_LEGS", "SILENT", "NO_HANDS", "NO_EXPLOSION_SFX" ], + "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS", "SILENT", "NO_HANDS", "NO_EXPLOSION_SFX" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "spell_class": "STORM_ELEMENTAL", "difficulty": 4, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(20000, 4700)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(720000, 4700)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(20000, 0.03)" ] }, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(500, 1.5)" ] }, - "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(150, 1.5)" ] }, - "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-10, 0.03)" ] }, + "min_duration": 20000, + "max_duration": 720000, + "duration_increment": 20000, + "base_casting_time": 500, + "final_casting_time": 150, + "casting_time_increment": -10, "base_energy_cost": 325, "final_energy_cost": 150, "energy_increment": -5, diff --git a/data/mods/Magiclysm/Spells/attunements/Stormcaller.json b/data/mods/Magiclysm/Spells/attunements/Stormcaller.json index 456e285087587..05014f20027d8 100644 --- a/data/mods/Magiclysm/Spells/attunements/Stormcaller.json +++ b/data/mods/Magiclysm/Spells/attunements/Stormcaller.json @@ -5,7 +5,7 @@ "name": { "str": "Electric Demon" }, "description": "Summon a small electric imp - fast as lightning, and just as deadly.", "valid_targets": [ "ground" ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "RANDOM_TARGET" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE", "RANDOM_TARGET" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "summon", "effect_str": "mon_electric_demon", @@ -17,9 +17,9 @@ "base_casting_time": 250, "final_casting_time": 150, "casting_time_increment": -3, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(400, 0.5)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(50, 0.5)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-10, 0.03)" ] }, + "base_energy_cost": 400, + "final_energy_cost": 50, + "energy_increment": -10, "min_damage": 1, "max_damage": 1, "min_range": 1, @@ -27,9 +27,9 @@ "range_increment": 0.25, "min_aoe": 3, "max_aoe": 3, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(10000, 60)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 60)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(10000, 0.03)" ] } + "min_duration": 10000, + "max_duration": 360000, + "duration_increment": 10000 }, { "id": "electric_turret", @@ -37,7 +37,7 @@ "name": { "str": "Thunder Pillar" }, "description": "Summon immovable pillars, that will attack your enemies with devastating lightning bolts.", "valid_targets": [ "ground" ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "RANDOM_TARGET" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE", "RANDOM_TARGET" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "summon", "effect_str": "mon_electric_turret", @@ -49,9 +49,9 @@ "base_casting_time": 400, "casting_time_increment": -10, "final_casting_time": 50, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(400, 2)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-17.5, 0.1)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(225, 2)" ] }, + "base_energy_cost": 400, + "energy_increment": -17.5, + "final_energy_cost": 225, "//": "it is intended to have min_damage 0 - the attunement is given on lvl 5, which round the amount of monsters to 1 and make smooth progression afterwards", "min_damage": 0, "max_damage": 4, @@ -60,8 +60,8 @@ "max_range": 1, "min_aoe": 1, "max_aoe": 1, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(10000, 60)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 60)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(10000, 0.03)" ] } + "min_duration": 10000, + "max_duration": 360000, + "duration_increment": 10000 } ] diff --git a/data/mods/Magiclysm/Spells/attunements/Sun_Mage.json b/data/mods/Magiclysm/Spells/attunements/Sun_Mage.json index eae38d4642926..11acc41485346 100644 --- a/data/mods/Magiclysm/Spells/attunements/Sun_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Sun_Mage.json @@ -5,15 +5,15 @@ "name": "Solar Beam", "description": "Fire a blast of sunlight in a wide beam, blinding everything in its path and leaving it bright enough for you to see for a few seconds.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "effect": "attack", "shape": "line", "effect_str": "blind", "damage_type": "light", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(7.5, 0.03)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(280, 0.5)" ] }, + "min_damage": 20, + "damage_increment": 7.5, + "max_damage": 280, "min_range": 12, "max_range": 12, "min_aoe": 3, @@ -37,7 +37,7 @@ "name": "Pocket Sun", "description": "You create a stable portal in the fabric of reality to the sun, through which you can draw on its light and temperature.", "valid_targets": [ "self" ], - "flags": [ "NO_LEGS", "CONCENTRATE", "VERBAL", "NO_PROJECTILE" ], + "flags": [ "CONJURATION_SPELL", "NO_LEGS", "CONCENTRATE", "VERBAL", "NO_PROJECTILE" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_damage": 1, "max_damage": 1, @@ -49,9 +49,9 @@ "difficulty": 6, "max_level": 40, "base_casting_time": 150, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 3)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(1000000, 4000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(50000000, 4000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(1250000, 0.003)" ] } + "base_energy_cost": 300, + "min_duration": 1000000, + "max_duration": 50000000, + "duration_increment": 1250000 } ] diff --git a/data/mods/Magiclysm/Spells/attunements/Tundra_Mage.json b/data/mods/Magiclysm/Spells/attunements/Tundra_Mage.json index f33a06dba13ca..08a5d92294cde 100644 --- a/data/mods/Magiclysm/Spells/attunements/Tundra_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Tundra_Mage.json @@ -9,9 +9,9 @@ "damage_type": "cold", "spell_class": "TUNDRA_MAGE", "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(0, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(140, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(4, 0.03)" ] }, + "min_damage": 0, + "max_damage": 140, + "damage_increment": 4, "min_range": 4, "max_range": 10, "range_increment": 0.2, @@ -19,7 +19,7 @@ "base_energy_cost": 100, "base_casting_time": 33, "difficulty": 7, - "flags": [ "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "sound_description": "crack", "valid_targets": [ "hostile" ], "extra_effects": [ { "id": "cold_snap_freeze" }, { "id": "eoc_evocation_setup", "hit_self": true } ] @@ -36,7 +36,7 @@ "max_damage": -400, "damage_increment": -10, "valid_targets": [ "hostile" ], - "flags": [ "SILENT" ] + "flags": [ "EVOCATION_SPELL", "SILENT" ] }, { "id": "summon_winter_wolf", @@ -55,16 +55,16 @@ "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "shape": "blast", "energy_source": "MANA", - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(600, 4)" ] }, + "base_energy_cost": 600, "base_casting_time": 300, "min_range": 5, "max_range": 7, "range_increment": 0.2, "min_aoe": 2, "max_aoe": 2, - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN", "NO_CORPSE_QUIET" ], - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(36000, 100)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(180000, 100)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(5000, 0.03)" ] } + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN", "NO_CORPSE_QUIET" ], + "min_duration": 36000, + "max_duration": 180000, + "duration_increment": 5000 } ] diff --git a/data/mods/Magiclysm/Spells/attunements/Void_Mage.json b/data/mods/Magiclysm/Spells/attunements/Void_Mage.json index 4e3489bb7542d..793b5d749563c 100644 --- a/data/mods/Magiclysm/Spells/attunements/Void_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Void_Mage.json @@ -7,16 +7,16 @@ "effect": "attack", "shape": "blast", "valid_targets": [ "hostile" ], - "flags": [ "SILENT", "SOMATIC", "IGNORE_WALLS", "NO_LEGS" ], + "flags": [ "EVOCATION_SPELL", "SILENT", "SOMATIC", "IGNORE_WALLS", "NO_LEGS" ], "min_damage": 0, "max_damage": 0, "min_range": 5, "max_range": 25, "range_increment": 0.7, "damage_type": "necrotic", - "min_dot": { "math": [ "evocation_proficiency_bonus_calculate(5, 0.5)" ] }, - "max_dot": { "math": [ "evocation_proficiency_bonus_calculate(55, 0.5)" ] }, - "dot_increment": { "math": [ "evocation_proficiency_bonus_calculate(1.5, 0.03)" ] }, + "min_dot": 5, + "max_dot": 55, + "dot_increment": 1.5, "max_level": 35, "min_duration": 500, "max_duration": 5000, @@ -36,6 +36,7 @@ "name": "Final Grasp Slowdown", "description": "Removes some moves from an enemy. Subspell; you aren't allowed to see it except in debug mode.", "valid_targets": [ "hostile" ], + "flags": [ "EVOCATION_SPELL" ], "effect": "mod_moves", "shape": "blast", "max_level": 35, @@ -52,7 +53,7 @@ "effect": "attack", "shape": "blast", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SILENT", "SOMATIC", "WONDER", "NO_LEGS", "RANDOM_DAMAGE" ], + "flags": [ "EVOCATION_SPELL", "SILENT", "SOMATIC", "WONDER", "NO_LEGS", "RANDOM_DAMAGE" ], "min_damage": 5, "max_damage": 35, "damage_increment": 1, diff --git a/data/mods/Magiclysm/Spells/attunements/Vulcanist.json b/data/mods/Magiclysm/Spells/attunements/Vulcanist.json index 065d89bf945db..cb52bf30166f6 100644 --- a/data/mods/Magiclysm/Spells/attunements/Vulcanist.json +++ b/data/mods/Magiclysm/Spells/attunements/Vulcanist.json @@ -4,14 +4,15 @@ "type": "SPELL", "name": "Lava Bomb Shrapnel", "description": "This is a sub spell for the Lava Bomb spell.", + "flags": [ "EVOCATION_SPELL" ], "effect": "attack", "shape": "blast", "valid_targets": [ "hostile", "ally", "self", "ground" ], "damage_type": "cut", "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(5, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(145, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(4, 0.03)" ] }, + "min_damage": 5, + "max_damage": 145, + "damage_increment": 4, "min_aoe": 1, "max_aoe": 3, "aoe_increment": 0.1 @@ -21,14 +22,15 @@ "type": "SPELL", "name": "Lava Bomb Heat", "description": "This is a sub spell for the Lava Bomb spell.", + "flags": [ "EVOCATION_SPELL" ], "effect": "attack", "shape": "blast", "valid_targets": [ "hostile", "ally", "self", "ground" ], "damage_type": "heat", "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(115, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(3, 0.03)" ] }, + "min_damage": 10, + "max_damage": 115, + "damage_increment": 3, "min_aoe": 3, "max_aoe": 5, "aoe_increment": 0.1 @@ -59,16 +61,16 @@ "damage_type": "bash", "max_level": 35, "difficulty": 6, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(160, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(4, 0.03)" ] }, + "min_damage": 20, + "max_damage": 160, + "damage_increment": 4, "min_range": 6, "max_range": 10, "range_increment": 0.2, "base_casting_time": 350, "base_energy_cost": 400, "energy_source": "MANA", - "flags": [ "VERBAL", "SOMATIC", "LOUD", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "LOUD", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "lava_bomb_shrapnel" }, { "id": "lava_bomb_heat" }, @@ -88,9 +90,9 @@ "damage_type": "heat", "max_level": 35, "difficulty": 10, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(40, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(200, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(5, 0.03125)" ] }, + "min_damage": 40, + "max_damage": 200, + "damage_increment": 5, "min_range": 6, "max_range": 16, "range_increment": 0.3, @@ -102,7 +104,7 @@ "final_energy_cost": 500, "energy_increment": 5, "energy_source": "MANA", - "flags": [ "VERBAL", "SOMATIC", "LOUD", "IGNITE_FLAMMABLE" ], + "flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "LOUD", "IGNITE_FLAMMABLE" ], "extra_effects": [ { "id": "vulcanist_pyroclastic_flow_smoke" }, { "id": "eoc_evocation_setup", "hit_self": true } ], "spell_class": "VULCANIST" }, diff --git a/data/mods/Magiclysm/Spells/attunements/Wither_Mage.json b/data/mods/Magiclysm/Spells/attunements/Wither_Mage.json index ca2f1b1f02cb1..ae4bfa78e190b 100644 --- a/data/mods/Magiclysm/Spells/attunements/Wither_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Wither_Mage.json @@ -7,9 +7,9 @@ "effect": "short_range_teleport", "shape": "blast", "valid_targets": [ "none" ], - "flags": [ "SILENT" ], - "min_range": { "math": [ "conveyance_proficiency_bonus_calculate(8, 0.053)" ] }, - "max_range": { "math": [ "conveyance_proficiency_bonus_calculate(8, 0.053)" ] } + "flags": [ "CONVEYANCE_SPELL", "SILENT" ], + "min_range": 8, + "max_range": 8 }, { "type": "SPELL", @@ -33,7 +33,7 @@ "effect": "attack", "shape": "blast", "valid_targets": [ "hostile" ], - "flags": [ "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONVEYANCE_SPELL", "MUST_HAVE_CLASS_TO_LEARN" ], "min_damage": 35, "max_damage": 490, "damage_increment": 13, @@ -65,10 +65,10 @@ "effect": "attack", "shape": "blast", "valid_targets": [ "hostile", "ally" ], - "flags": [ "LOUD", "VERBAL", "NO_LEGS", "NO_PROJECTILE" ], - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(15, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(65, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1.5, 0.03)" ] }, + "flags": [ "RESTORATION_SPELL", "LOUD", "VERBAL", "NO_LEGS", "NO_PROJECTILE" ], + "min_damage": 15, + "max_damage": 65, + "damage_increment": 1.5, "min_range": 4, "max_range": 16, "range_increment": 0.35, @@ -81,7 +81,7 @@ "final_energy_cost": 250, "energy_increment": -8.6, "difficulty": 7, - "extra_effects": [ { "id": "life_drain_stamina", "hit_self": true }, { "id": "eoc_evocation_setup", "hit_self": true } ] + "extra_effects": [ { "id": "life_drain_stamina", "hit_self": true }, { "id": "eoc_restoration_setup", "hit_self": true } ] }, { "type": "SPELL", @@ -90,11 +90,12 @@ "description": "Gives you a bit of stamina. Subspell; you aren't allowed to see it except in debug mode.", "effect": "recover_energy", "effect_str": "STAMINA", + "flags": [ "RESTORATION_SPELL" ], "valid_targets": [ "self" ], "shape": "blast", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(500, 1.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(2500, 1.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(60, 0.03)" ] }, + "min_damage": 500, + "max_damage": 2500, + "damage_increment": 60, "max_level": 35, "energy_source": "NONE" } diff --git a/data/mods/Magiclysm/Spells/black_dragon.json b/data/mods/Magiclysm/Spells/black_dragon.json index 7473afa8c4e45..f6d38469440a4 100644 --- a/data/mods/Magiclysm/Spells/black_dragon.json +++ b/data/mods/Magiclysm/Spells/black_dragon.json @@ -5,7 +5,7 @@ "name": "Acid Claw", "description": "Your claws glow with yellow acid energy, and as you swipe your claw a wave of acid sweeps forth from it.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SOMATIC", "VERBAL", "LOUD" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "VERBAL", "LOUD" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "spell_class": "NONE", "effect": "attack", @@ -14,9 +14,9 @@ "affected_body_parts": [ "torso" ], "damage_type": "acid", "max_level": 5, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(5, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(65, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(15.0, 0.25)" ] }, + "min_damage": 5, + "max_damage": 65, + "damage_increment": 15.0, "min_range": 3, "max_range": 5, "range_increment": 0.5, @@ -40,7 +40,7 @@ "name": "Acid Bite", "description": "Your maw drips with acid as you make a bite attack.", "valid_targets": [ "hostile" ], - "flags": [ "VERBAL", "NO_HANDS", "LOUD" ], + "flags": [ "EVOCATION_SPELL", "VERBAL", "NO_HANDS", "LOUD" ], "spell_class": "NONE", "effect": "attack", "effect_str": "dragon_acidburn", @@ -48,9 +48,9 @@ "affected_body_parts": [ "torso" ], "damage_type": "acid", "max_level": 5, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(15, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(75, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(15, 0.25)" ] }, + "min_damage": 15, + "max_damage": 75, + "damage_increment": 15, "min_range": 1, "max_range": 1, "difficulty": 0, @@ -66,12 +66,13 @@ "id": "dragon_bite", "name": "Dragon's Bite", "description": "The bite damage in Acid Bite.", + "flags": [ "EVOCATION_SPELL" ], "valid_targets": [ "hostile" ], "effect": "attack", "shape": "blast", "damage_type": "stab", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.5)" ] } + "min_damage": 20, + "max_damage": 20 }, { "id": "dragon_shell_black", @@ -89,14 +90,14 @@ "shape": "blast", "energy_source": "MANA", "spell_class": "NONE", - "flags": [ "CONCENTRATE" ], + "flags": [ "CONJURATION_SPELL", "CONCENTRATE" ], "difficulty": 1, "max_level": 15, "base_casting_time": 200, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(250, 2)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(1000, 30)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(5000, 30)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(1000, 0.25)" ] } + "base_energy_cost": 250, + "min_duration": 1000, + "max_duration": 5000, + "duration_increment": 1000 }, { "id": "dragon_shell_retaliation_black", @@ -138,15 +139,15 @@ "aoe_increment": 2, "min_range": 1, "max_range": 1, - "min_duration": { "math": [ "evocation_proficiency_bonus_calculate(1000, 10)" ] }, - "max_duration": { "math": [ "evocation_proficiency_bonus_calculate(5000, 10)" ] }, - "duration_increment": { "math": [ "evocation_proficiency_bonus_calculate(1000, 0.25)" ] }, + "min_duration": 1000, + "max_duration": 5000, + "duration_increment": 1000, "base_casting_time": 200, "base_energy_cost": 400, "energy_source": "MANA", "difficulty": 0, - "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], - "flags": [ "LOUD", "NO_HANDS", "NO_LEGS" ] + "extra_effects": [ { "id": "eoc_enervation_setup", "hit_self": true } ], + "flags": [ "ENERVATION_SPELL", "LOUD", "NO_HANDS", "NO_LEGS" ] }, { "id": "dragon_boost", @@ -165,14 +166,14 @@ "max_level": 5, "min_range": 1, "max_range": 1, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(2000, 53.3)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(10000, 53.3)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(2000, 0.25)" ] }, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(100, 1)" ] }, + "min_duration": 2000, + "max_duration": 10000, + "duration_increment": 2000, + "base_casting_time": 100, "base_energy_cost": 150, "energy_source": "MANA", "difficulty": 0, - "flags": [ "LOUD", "NO_HANDS", "NO_LEGS" ] + "flags": [ "ENHANCEMENT_SPELL", "LOUD", "NO_HANDS", "NO_LEGS" ] }, { "type": "SPELL", @@ -184,7 +185,7 @@ "shape": "blast", "min_damage": 0, "max_damage": -10, - "flags": [ "SILENT", "RANDOM_DAMAGE" ] + "flags": [ "ENHANCEMENT_SPELL", "SILENT", "RANDOM_DAMAGE" ] }, { "type": "SPELL", @@ -197,7 +198,7 @@ "shape": "blast", "min_damage": 0, "max_damage": 500, - "flags": [ "SILENT", "RANDOM_DAMAGE" ] + "flags": [ "ENHANCEMENT_SPELL", "SILENT", "RANDOM_DAMAGE" ] }, { "id": "dragon_spit_acid", @@ -205,16 +206,16 @@ "name": "Dragon Acid Spit", "description": "You conjure up acidic spittle that you can shoot long distances as you close in on your terrified prey.", "valid_targets": [ "hostile" ], - "flags": [ "LOUD", "VERBAL", "NO_HANDS", "NO_LEGS" ], + "flags": [ "EVOCATION_SPELL", "LOUD", "VERBAL", "NO_HANDS", "NO_LEGS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "effect": "attack", "shape": "blast", "damage_type": "acid", "effect_str": "lesser_dragon_acidburn", "affected_body_parts": [ "torso" ], - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(50, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.25)" ] }, + "min_damage": 10, + "max_damage": 50, + "damage_increment": 10, "min_range": 5, "max_range": 13, "range_increment": 2, @@ -235,9 +236,9 @@ "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "damage_type": "acid", "max_level": 5, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(5, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(45, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.25)" ] }, + "min_damage": 5, + "max_damage": 45, + "damage_increment": 10, "min_range": 8, "max_range": 12, "range_increment": 1, @@ -251,6 +252,6 @@ "base_casting_time": 200, "energy_source": "MANA", "base_energy_cost": 200, - "flags": [ "VERBAL", "NO_HANDS", "NO_LEGS", "LOUD" ] + "flags": [ "EVOCATION_SPELL", "VERBAL", "NO_HANDS", "NO_LEGS", "LOUD" ] } ] diff --git a/data/mods/Magiclysm/Spells/classless.json b/data/mods/Magiclysm/Spells/classless.json index a11d29aaaf55b..a639cb008edfa 100644 --- a/data/mods/Magiclysm/Spells/classless.json +++ b/data/mods/Magiclysm/Spells/classless.json @@ -6,7 +6,7 @@ "description": "Crystallizes mana into solid form.", "valid_targets": [ "self" ], "spell_class": "NONE", - "flags": [ "NO_LEGS", "CONCENTRATE" ], + "flags": [ "CHANNELING_SPELL", "NO_LEGS", "CONCENTRATE" ], "difficulty": 3, "min_damage": 1, "max_damage": 1, @@ -15,10 +15,10 @@ "effect_str": "eoc_crystal_spawn", "shape": "blast", "energy_source": "MANA", - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(1000, 10)" ] }, - "final_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(1000, 10)" ] }, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(600000, 4000)" ] }, - "final_casting_time": { "math": [ "channeling_proficiency_negate_calculate(600000, 4000)" ] }, + "base_energy_cost": 1000, + "final_energy_cost": 1000, + "base_casting_time": 600000, + "final_casting_time": 600000, "extra_effects": [ { "id": "mana_fatigue" }, { "id": "eoc_channeling_setup", "hit_self": true } ] }, { @@ -35,7 +35,7 @@ "description": "Mana Crystal Spawner. If you can see this you probably debugged it in.", "valid_targets": [ "self" ], "spell_class": "NONE", - "flags": [ "PERMANENT", "NO_LEGS", "CONCENTRATE" ], + "flags": [ "CHANNELING_SPELL", "PERMANENT", "NO_LEGS", "CONCENTRATE" ], "difficulty": 1, "min_damage": 1, "max_damage": 1, @@ -56,7 +56,7 @@ "description": "Mana Crystal Spawner. If you can see this you probably debugged it in.", "valid_targets": [ "self" ], "spell_class": "NONE", - "flags": [ "PERMANENT", "NO_LEGS", "CONCENTRATE" ], + "flags": [ "CHANNELING_SPELL", "PERMANENT", "NO_LEGS", "CONCENTRATE" ], "effect": "spawn_item", "effect_str": "crystallized_mana", "difficulty": 1, @@ -90,18 +90,19 @@ "name": "Dark Sight", "description": "Gives you the power to see in the dark.", "message": "Your eyes glow green for a moment. Now your sight can pierce the darkest shadows.", + "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "NO_LEGS", "CONCENTRATE" ], "valid_targets": [ "self" ], "effect": "attack", "effect_str": "dark_sight", "shape": "blast", - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(100, 1)" ] }, + "base_casting_time": 100, "base_energy_cost": 175, "energy_source": "MANA", "difficulty": 2, "max_level": 20, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(100000, 6000)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1000000, 6000)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(45000, 0.05)" ] }, + "min_duration": 100000, + "max_duration": 1000000, + "duration_increment": 45000, "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ] }, { @@ -117,13 +118,13 @@ "base_energy_cost": 8000, "energy_source": "STAMINA", "spell_class": "NONE", - "flags": [ "LOUD", "SOMATIC", "VERBAL" ], + "flags": [ "EVOCATION_SPELL", "LOUD", "SOMATIC", "VERBAL" ], "difficulty": 10, "max_level": 20, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(30, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(100, 0.5)" ] }, + "min_damage": 30, + "max_damage": 100, "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(3.5, 0.05)" ] }, + "damage_increment": 3.5, "min_range": 3, "max_range": 12, "range_increment": 0.45, @@ -145,15 +146,15 @@ "effect_str": "magic_light", "shape": "blast", "energy_source": "MANA", - "flags": [ "VERBAL", "NO_LEGS" ], + "flags": [ "CONJURATION_SPELL", "VERBAL", "NO_LEGS" ], "difficulty": 1, "max_level": 20, "base_casting_time": 1000, "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(200, 2)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(100000, 1000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1000000, 1000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(45000, 0.05)" ] } + "base_energy_cost": 200, + "min_duration": 100000, + "max_duration": 1000000, + "duration_increment": 45000 }, { "id": "blinding_flash", @@ -166,21 +167,21 @@ "affected_body_parts": [ "eyes" ], "valid_targets": [ "hostile", "ground" ], "max_level": 20, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(1, 0.2)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.2)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(0.5, 0.06)" ] }, + "min_damage": 1, + "max_damage": 10, + "damage_increment": 0.5, "min_aoe": 0, "max_aoe": 3, "aoe_increment": 0.15, "min_range": 4, "max_range": 16, "range_increment": 0.6, - "min_duration": { "math": [ "evocation_proficiency_bonus_calculate(1000, 5)" ] }, - "max_duration": { "math": [ "evocation_proficiency_bonus_calculate(3000, 5)" ] }, - "duration_increment": { "math": [ "evocation_proficiency_bonus_calculate(100, 0.05)" ] }, + "min_duration": 1000, + "max_duration": 3000, + "duration_increment": 100, "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "spell_class": "NONE", - "flags": [ "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], "base_casting_time": 200, "base_energy_cost": 150, "energy_source": "MANA", @@ -198,21 +199,21 @@ "affected_body_parts": [ "foot_l", "foot_r" ], "valid_targets": [ "hostile", "ground" ], "max_level": 20, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.2)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(30, 0.2)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1, 0.05)" ] }, + "min_damage": 10, + "max_damage": 30, + "damage_increment": 1, "min_aoe": 2, "max_aoe": 20, "aoe_increment": 0.5, "min_range": 5, "max_range": 20, "range_increment": 2.0, - "min_duration": { "math": [ "evocation_proficiency_bonus_calculate(1000, 5)" ] }, - "max_duration": { "math": [ "evocation_proficiency_bonus_calculate(5000, 5)" ] }, - "duration_increment": { "math": [ "evocation_proficiency_bonus_calculate(200, 0.05)" ] }, + "min_duration": 1000, + "max_duration": 5000, + "duration_increment": 200, "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "spell_class": "NONE", - "flags": [ "SOMATIC", "NO_PROJECTILE" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_PROJECTILE" ], "base_casting_time": 200, "base_energy_cost": 400, "energy_source": "MANA", @@ -229,14 +230,14 @@ "effect_str": "effect_obfuscating_aura", "shape": "blast", "energy_source": "MANA", - "flags": [ "CONCENTRATE", "NO_LEGS" ], + "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "NO_LEGS" ], "difficulty": 5, "max_level": 15, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(500, 2)" ] }, + "base_casting_time": 500, "base_energy_cost": 600, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(24000, 2240)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(360000, 2240)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(24000, 0.07)" ] }, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "learn_spells": { "obfuscated_body_plus": 15 } }, @@ -250,18 +251,18 @@ "effect_str": "effect_obfuscating_aura", "shape": "blast", "energy_source": "MANA", - "flags": [ "NO_LEGS", "NO_FAIL" ], + "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS", "NO_FAIL" ], "difficulty": 7, "max_level": 25, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(500, 3.33)" ] }, + "base_casting_time": 500, "final_casting_time": 150, "casting_time_increment": -14, "base_energy_cost": 600, "final_energy_cost": 200, "energy_increment": -16, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(360000, 12000)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(2160000, 12000)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(72000, 0.04)" ] }, + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 72000, "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ] }, { @@ -278,12 +279,12 @@ "energy_source": "MANA", "difficulty": 2, "max_level": 15, - "flags": [ "CONCENTRATE", "VERBAL", "NO_LEGS" ], + "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "NO_LEGS" ], "base_casting_time": 350, - "base_energy_cost": { "math": [ "summoning_proficiency_bonus_calculate(375, 3)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 900)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 900)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.07)" ] }, + "base_energy_cost": 375, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "learn_spells": { "protection_aura_plus": 15 } }, @@ -301,16 +302,16 @@ "energy_source": "MANA", "difficulty": 5, "max_level": 25, - "flags": [ "VERBAL", "NO_LEGS", "NO_FAIL" ], + "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "NO_LEGS", "NO_FAIL" ], "base_casting_time": 350, "final_casting_time": 100, "casting_time_increment": -10, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(375, 2)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(150, 2)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-9, 0.04)" ] }, - "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)" ] }, + "base_energy_cost": 375, + "final_energy_cost": 150, + "energy_increment": -9, + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 72000, "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ] }, { @@ -319,12 +320,13 @@ "name": "Translocate Self", "description": "Translocates the user to an attuned gate.", "valid_targets": [ "self" ], + "flags": [ "CONVEYANCE_SPELL", "VERBAL", "NO_LEGS" ], "effect": "translocate", "shape": "blast", "difficulty": 15, "max_level": 25, - "base_casting_time": { "math": [ "conveyance_proficiency_negate_calculate(6000, 40)" ] }, - "base_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(675, 4.5)" ] }, + "base_casting_time": 6000, + "base_energy_cost": 675, "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ], "energy_source": "MANA", "spell_class": "NONE" @@ -340,14 +342,14 @@ "shape": "blast", "energy_source": "MANA", "spell_class": "NONE", - "flags": [ "CONCENTRATE", "NO_LEGS" ], + "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "NO_LEGS" ], "difficulty": 4, "max_level": 15, "base_casting_time": 200, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(150, 1)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 150)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 150)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.07)" ] }, + "base_energy_cost": 150, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "learn_spells": { "acid_resistance_greater": 15 } }, @@ -362,13 +364,13 @@ "shape": "blast", "energy_source": "MANA", "spell_class": "NONE", - "flags": [ "NO_LEGS" ], + "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS" ], "difficulty": 7, "max_level": 1, "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "base_casting_time": 200, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(250, 2)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(180000, 1000)" ] } + "base_energy_cost": 250, + "min_duration": 180000 }, { "id": "thought_shield", @@ -380,17 +382,17 @@ "effect_str": "thought_shield_item", "shape": "blast", "energy_source": "MANA", - "flags": [ "CONCENTRATE", "NO_LEGS" ], + "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "NO_LEGS" ], "difficulty": 6, "min_damage": 1, "max_damage": 1, "max_level": 15, "base_casting_time": 1500, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(800, 3)" ] }, + "base_energy_cost": 800, "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 100)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 100)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.07)" ] }, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, "learn_spells": { "thought_shield_plus": 15 } }, { @@ -403,7 +405,7 @@ "effect_str": "thought_shield_plus_item", "shape": "blast", "energy_source": "MANA", - "flags": [ "NO_LEGS", "NO_FAIL" ], + "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS", "NO_FAIL" ], "min_damage": 1, "max_damage": 1, "difficulty": 7, @@ -412,12 +414,12 @@ "final_casting_time": 100, "casting_time_increment": -56, "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(800, 2)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(200, 2)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-24, 0.04)" ] }, - "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)" ] } + "base_energy_cost": 800, + "final_energy_cost": 200, + "energy_increment": -24, + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 72000 }, { "id": "sound_bomb", @@ -425,18 +427,18 @@ "name": "Sound Bomb", "description": "Behind the cool name hides a common joke spell to spook your friends and restrain dogs. It can be useful in some special cases.", "valid_targets": [ "self", "ally", "hostile", "ground" ], - "flags": [ "CONCENTRATE", "SOMATIC", "LOUD", "NO_PROJECTILE" ], + "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SOMATIC", "LOUD", "NO_PROJECTILE" ], "effect": "noise", "shape": "blast", "sound_description": "a loud, high pitched sound", "damage_type": "sonic", - "min_damage": { "math": [ "channeling_proficiency_bonus_calculate(12, 0.5)" ] }, - "max_damage": { "math": [ "channeling_proficiency_bonus_calculate(120, 0.5)" ] }, + "min_damage": 12, + "max_damage": 120, "damage_increment": 5, "min_range": 5, "max_range": 55, "range_increment": 2, - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(125, 1)" ] }, + "base_energy_cost": 125, "spell_class": "NONE", "difficulty": 3, "max_level": 25, @@ -447,7 +449,7 @@ "min_field_intensity": 1, "max_field_intensity": 1, "field_chance": 1, - "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], + "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "energy_source": "MANA" }, { @@ -456,7 +458,7 @@ "name": "Knowing the Day and the Hour", "description": "Probably the single greatest example of technology rendering magic obsolete, this spell allows you know exactly what time it is.", "valid_targets": [ "self" ], - "flags": [ "VERBAL", "SOMATIC" ], + "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "SOMATIC" ], "effect": "attack", "effect_str": "effect_classless_watch", "shape": "blast", @@ -465,10 +467,10 @@ "min_duration": 720000, "max_duration": 8640000, "duration_increment": 720000, - "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], + "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "energy_source": "MANA", - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(50, 0.5)" ] }, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(6000, 15)" ] } + "base_energy_cost": 50, + "base_casting_time": 6000 }, { "id": "classless_clean_clothing_and_self", @@ -476,7 +478,7 @@ "name": "Freshen Up", "description": "Undoubtedly the single most common spell in the world before the Cataclysm, Freshen Up cleans your teeth, sweetens your breath, removes stains and sweat from your clothes, exfoliates you, and gives volume back to your hair.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "flags": [ "CHANNELING_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ], "effect": "effect_on_condition", "effect_str": "EOC_CLASSLESS_CLEAN_CLOTHING_AND_SELF", "components": "spell_components_freshen_up", @@ -484,9 +486,9 @@ "difficulty": 2, "max_level": 15, "energy_source": "MANA", - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(75, 0.5)" ] }, + "base_energy_cost": 75, "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(3000, 12)" ] } + "base_casting_time": 3000 }, { "type": "effect_on_condition", @@ -512,22 +514,22 @@ "name": "Peaceful Rest", "description": "A favorite of overworked mages and dilettantes who, this spell makes it much easier to fall asleep regardless of how tired you are.", "valid_targets": [ "self" ], - "flags": [ "VERBAL", "SOMATIC" ], + "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "SOMATIC" ], "effect": "attack", "effect_str": "effect_classless_easy_sleep", "components": "spell_components_easy_sleep", "shape": "blast", "difficulty": 1, "max_level": 15, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(360000, 2400)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(360000, 2400)" ] }, + "min_duration": 360000, + "max_duration": 360000, "energy_source": "MANA", "base_energy_cost": 250, "final_energy_cost": 75, "energy_increment": -11.67, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(90000, 40)" ] }, - "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(6000, 40)" ] }, - "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-5600, 0.07)" ] }, + "base_casting_time": 90000, + "final_casting_time": 6000, + "casting_time_increment": -5600, "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ] }, { @@ -537,15 +539,15 @@ "description": "Remove magical effects from your target. It fails when faced with powerful enchantments or the unique bonuses provided by attunements.", "//": "Should only target spells of Difficulty 6 and that aren't granted by an attunement", "valid_targets": [ "self", "ally", "hostile" ], - "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL" ], + "flags": [ "ENERVATION_SPELL", "CONCENTRATE", "SOMATIC", "VERBAL" ], "effect": "attack", "effect_str": "effect_dispel_magic", "shape": "blast", "difficulty": 6, "max_level": 15, - "min_duration": { "math": [ "evocation_proficiency_bonus_calculate(200, 1)" ] }, - "max_duration": { "math": [ "evocation_proficiency_bonus_calculate(200, 1)" ] }, - "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], + "min_duration": 200, + "max_duration": 200, + "extra_effects": [ { "id": "eoc_enervation_setup", "hit_self": true } ], "min_range": 3, "max_range": 20, "range_increment": 1.2, @@ -559,19 +561,19 @@ "name": "Disjunction", "description": "The ultimate anti-magic spell, Disjunction will strip even attunement-related or powerful enchantments from the target.", "valid_targets": [ "self", "ally", "hostile" ], - "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL" ], + "flags": [ "ENERVATION_SPELL", "CONCENTRATE", "SOMATIC", "VERBAL" ], "effect": "attack", "effect_str": "effect_disjunction", "shape": "blast", "difficulty": 10, "max_level": 15, - "min_duration": { "math": [ "evocation_proficiency_bonus_calculate(200, 1)" ] }, - "max_duration": { "math": [ "evocation_proficiency_bonus_calculate(200, 1)" ] }, + "min_duration": 200, + "max_duration": 200, "min_range": 3, "max_range": 20, "range_increment": 1.2, "energy_source": "MANA", - "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], + "extra_effects": [ { "id": "eoc_enervation_setup", "hit_self": true } ], "base_energy_cost": 1250, "final_energy_cost": 750, "energy_increment": 33.33, diff --git a/data/mods/Magiclysm/Spells/dragonbreath.json b/data/mods/Magiclysm/Spells/dragonbreath.json index ada80439c6c8b..71b69613f6ecb 100644 --- a/data/mods/Magiclysm/Spells/dragonbreath.json +++ b/data/mods/Magiclysm/Spells/dragonbreath.json @@ -42,10 +42,9 @@ "valid_targets": [ "hostile", "ally", "ground" ], "damage_type": "acid", "max_level": 40, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(6, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(240, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(6.0, 0.026)" ] }, - "extra_effects": [ { "id": "eoc_evocation_setup" } ], + "min_damage": 6, + "max_damage": 240, + "damage_increment": 6.0, "min_range": 8, "max_range": 12, "range_increment": 0.1, diff --git a/data/mods/Magiclysm/Spells/druid.json b/data/mods/Magiclysm/Spells/druid.json index 62d1524383cef..a5498f7d0053d 100644 --- a/data/mods/Magiclysm/Spells/druid.json +++ b/data/mods/Magiclysm/Spells/druid.json @@ -323,7 +323,7 @@ "effect": "spawn_item", "effect_str": "rune_druid", "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, diff --git a/data/mods/Magiclysm/Spells/mana_upgrades.json b/data/mods/Magiclysm/Spells/mana_upgrades.json index aea425f5e2964..ee7562121e1cb 100644 --- a/data/mods/Magiclysm/Spells/mana_upgrades.json +++ b/data/mods/Magiclysm/Spells/mana_upgrades.json @@ -8,14 +8,14 @@ "shape": "blast", "effect": "effect_on_condition", "effect_str": "EOC_SPELL_GRANT_MANA_ADD1", - "flags": [ "VERBAL", "SOMATIC", "CONCENTRATE" ], + "flags": [ "CHANNELING_SPELL", "VERBAL", "SOMATIC", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "components": "spell_components_mana_upgrade_efficiency_01", "difficulty": 6, "max_level": 15, "energy_source": "MANA", - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(800, 10)" ] }, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(2520000, 2000)" ] } + "base_energy_cost": 800, + "base_casting_time": 2520000 }, { "type": "effect_on_condition", @@ -66,14 +66,14 @@ "shape": "blast", "effect": "effect_on_condition", "effect_str": "EOC_SPELL_GRANT_MANA_ADD2", - "flags": [ "VERBAL", "SOMATIC", "CONCENTRATE" ], + "flags": [ "CHANNELING_SPELL", "VERBAL", "SOMATIC", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "components": "spell_components_mana_upgrade_efficiency_02", "difficulty": 9, "max_level": 15, "energy_source": "MANA", - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(1400, 10)" ] }, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(3960000, 2000)" ] } + "base_energy_cost": 1400, + "base_casting_time": 3960000 }, { "type": "effect_on_condition", @@ -131,14 +131,14 @@ "shape": "blast", "effect": "effect_on_condition", "effect_str": "EOC_SPELL_GRANT_MANA_REGEN1", - "flags": [ "VERBAL", "SOMATIC", "CONCENTRATE" ], + "flags": [ "CHANNELING_SPELL", "VERBAL", "SOMATIC", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "components": "spell_components_mana_upgrade_regeneration_01", "difficulty": 6, "max_level": 15, "energy_source": "MANA", - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(800, 10)" ] }, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(2520000, 2000)" ] } + "base_energy_cost": 800, + "base_casting_time": 2520000 }, { "type": "effect_on_condition", @@ -201,14 +201,14 @@ "shape": "blast", "effect": "effect_on_condition", "effect_str": "EOC_SPELL_GRANT_MANA_REGEN2", - "flags": [ "VERBAL", "SOMATIC", "CONCENTRATE" ], + "flags": [ "CHANNELING_SPELL", "VERBAL", "SOMATIC", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "components": "spell_components_mana_upgrade_regeneration_02", "difficulty": 9, "max_level": 15, "energy_source": "MANA", - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(1400, 10)" ] }, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(3960000, 2000)" ] } + "base_energy_cost": 1400, + "base_casting_time": 3960000 }, { "type": "effect_on_condition", @@ -284,14 +284,14 @@ "shape": "blast", "effect": "effect_on_condition", "effect_str": "EOC_SPELL_GRANT_MANA_MULT1", - "flags": [ "VERBAL", "SOMATIC", "CONCENTRATE" ], + "flags": [ "CHANNELING_SPELL", "VERBAL", "SOMATIC", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "components": "spell_components_mana_upgrade_sensitivity_01", "difficulty": 6, "max_level": 15, "energy_source": "MANA", - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(800, 10)" ] }, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(2520000, 2000)" ] } + "base_energy_cost": 800, + "base_casting_time": 2520000 }, { "type": "effect_on_condition", @@ -352,14 +352,14 @@ "shape": "blast", "effect": "effect_on_condition", "effect_str": "EOC_SPELL_GRANT_MANA_MULT2", - "flags": [ "VERBAL", "SOMATIC", "CONCENTRATE" ], + "flags": [ "CHANNELING_SPELL", "VERBAL", "SOMATIC", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "components": "spell_components_mana_upgrade_sensitivity_02", "difficulty": 9, "max_level": 15, "energy_source": "MANA", - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(1400, 10)" ] }, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(3960000, 2000)" ] } + "base_energy_cost": 1400, + "base_casting_time": 3960000 }, { "type": "effect_on_condition", diff --git a/data/mods/Magiclysm/Spells/manatouched.json b/data/mods/Magiclysm/Spells/manatouched.json index ba602627d2dd6..3d4c641ce9a82 100644 --- a/data/mods/Magiclysm/Spells/manatouched.json +++ b/data/mods/Magiclysm/Spells/manatouched.json @@ -6,7 +6,7 @@ "description": "Crystallizes mana into solid form. Your physiological changes have made this spell much more efficient and easier to cast.", "valid_targets": [ "self" ], "spell_class": "MANA_CRYST_MANA", - "flags": [ "PERMANENT", "NO_LEGS", "CONCENTRATE", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONJURATION_SPELL", "PERMANENT", "NO_LEGS", "CONCENTRATE", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN" ], "max_level": 5, "difficulty": 3, "min_damage": 4, @@ -44,7 +44,7 @@ "final_casting_time": 85, "damage_type": "nether", "sound_description": "a zing", - "flags": [ "RANDOM_TARGET", "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CHANNELING_SPELL", "RANDOM_TARGET", "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "magic_missile" }, { "id": "magic_missile" }, { "id": "magic_missile" }, { "id": "magic_missile" } ] } ] diff --git a/data/mods/Magiclysm/Spells/stormshaper.json b/data/mods/Magiclysm/Spells/stormshaper.json index 54de7cd39ad13..b81f60d659625 100644 --- a/data/mods/Magiclysm/Spells/stormshaper.json +++ b/data/mods/Magiclysm/Spells/stormshaper.json @@ -7,12 +7,12 @@ "effect": "attack", "shape": "cone", "valid_targets": [ "ally", "hostile", "ground" ], - "flags": [ "LOUD", "SOMATIC", "NO_HANDS" ], + "flags": [ "EVOCATION_SPELL", "LOUD", "SOMATIC", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "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.07)" ] }, + "min_damage": 8, + "max_damage": 65, + "damage_increment": 4, "min_range": 3, "max_range": 5, "range_increment": 0.25, @@ -35,11 +35,11 @@ "effect": "attack", "shape": "blast", "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "NO_LEGS" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_LEGS" ], "max_level": 20, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(2, 0.2)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(24, 0.2)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2.2, 0.1)" ] }, + "min_damage": 2, + "max_damage": 24, + "damage_increment": 2.2, "min_range": 3, "max_range": 16, "range_increment": 0.8, @@ -80,12 +80,12 @@ "effect": "attack", "shape": "line", "valid_targets": [ "ally", "hostile", "ground" ], - "flags": [ "LOUD", "SOMATIC", "NO_LEGS", "NO_HANDS" ], + "flags": [ "EVOCATION_SPELL", "LOUD", "SOMATIC", "NO_LEGS", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(8, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(200, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(6, 0.03125)" ] }, + "min_damage": 8, + "max_damage": 200, + "damage_increment": 6, "min_range": 4, "max_range": 8, "range_increment": 0.25, @@ -115,12 +115,12 @@ "shape": "cone", "affected_body_parts": [ "leg_l", "leg_r" ], "valid_targets": [ "ally", "hostile", "ground" ], - "flags": [ "SOMATIC", "NO_LEGS", "NO_HANDS" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_LEGS", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "max_level": 15, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(24, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(68, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(3, 0.07)" ] }, + "min_damage": 24, + "max_damage": 68, + "damage_increment": 3, "min_aoe": 30, "max_aoe": 60, "aoe_increment": 2, @@ -144,9 +144,9 @@ "type": "SPELL", "name": "Windrunning", "description": "A magical wind pushes you forward as you move, easing your movements and increasing speed.", - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(100, 0.33)" ] }, - "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-5, 0.1)" ] }, - "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(50, 0.33)" ] }, + "base_casting_time": 100, + "casting_time_increment": -5, + "final_casting_time": 50, "base_energy_cost": 100, "energy_increment": -5, "final_energy_cost": 50, @@ -158,12 +158,12 @@ "shape": "blast", "affected_body_parts": [ "torso" ], "valid_targets": [ "ally", "self" ], - "flags": [ "CONCENTRATE", "SILENT", "VERBAL", "NO_HANDS", "NO_PROJECTILE" ], + "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "SILENT", "VERBAL", "NO_HANDS", "NO_PROJECTILE" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "max_level": 10, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(6000, 160)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(30000, 160)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(2400, 0.1)" ] }, + "min_duration": 6000, + "max_duration": 30000, + "duration_increment": 2400, "min_range": 1, "max_range": 10, "range_increment": 1 @@ -174,7 +174,7 @@ "name": "Call Stormhammer", "description": "Creates a crackling magical warhammer full of lightning to smite your foes with, and of course, smash things to bits!", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "LOUD", "VERBAL", "NO_LEGS" ], + "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "LOUD", "VERBAL", "NO_LEGS" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_damage": 1, "max_damage": 1, @@ -186,10 +186,10 @@ "difficulty": 3, "max_level": 15, "base_casting_time": 550, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 1)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 200)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 200)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000,0.04)" ] }, + "base_energy_cost": 300, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, "learn_spells": { "storm_hammer_plus": 15 } }, { @@ -198,7 +198,7 @@ "name": "Enhanced Call Stormhammer", "description": "Creates a crackling magical warhammer full of lightning to smite your foes with, and of course, smash things to bits! Now you know this spell like the back of your hand, and start to design your own version.", "valid_targets": [ "self" ], - "flags": [ "LOUD", "VERBAL", "NO_LEGS", "NO_FAIL" ], + "flags": [ "CONJURATION_SPELL", "LOUD", "VERBAL", "NO_LEGS", "NO_FAIL" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_damage": 1, "max_damage": 1, @@ -212,12 +212,12 @@ "base_casting_time": 550, "final_casting_time": 150, "casting_time_increment": -16, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 1)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(100, 1)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-8, 0.04)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 400)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(2160000, 400)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(72000, 0.04)" ] } + "base_energy_cost": 300, + "final_energy_cost": 100, + "energy_increment": -8, + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 72000 }, { "id": "create_rune_stormshaper", @@ -231,7 +231,7 @@ "effect_str": "rune_stormshaper", "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "shape": "blast", - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(5000, 15)" ] }, + "base_casting_time": 5000, "base_energy_cost": 5, "min_duration": 1, "max_duration": 2, @@ -240,7 +240,7 @@ "max_level": 0, "spell_class": "STORMSHAPER", "energy_source": "MANA", - "flags": [ "PERMANENT", "NO_LEGS", "CONCENTRATE" ] + "flags": [ "CHANNELING_SPELL", "PERMANENT", "NO_LEGS", "CONCENTRATE" ] }, { "id": "lightning_blast", @@ -249,17 +249,17 @@ "description": "You fire a small concentrated ball of lightning at the target. The electricity diffuses rapidly, so it doesn't do much damage, but you're able to fire off several ones quickly.", "valid_targets": [ "hostile", "ground", "self", "ally" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], - "flags": [ "LOUD", "SOMATIC", "NO_LEGS" ], + "flags": [ "EVOCATION_SPELL", "LOUD", "SOMATIC", "NO_LEGS" ], "min_aoe": 1, "max_aoe": 2, "aoe_increment": 0.05, "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(4, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(100, 0.5)" ] }, + "min_damage": 4, + "max_damage": 100, "min_range": 6, "max_range": 12, "range_increment": 0.2, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(3, 0.015)" ] }, + "damage_increment": 3, "difficulty": 10, "spell_class": "STORMSHAPER", "energy_source": "MANA", @@ -278,17 +278,17 @@ "name": { "ctxt": "spell", "str": "Lightning Storm" }, "description": "You call the power of the sky to strike the earth. Several lightning blasts fire from your finger tips to strike the target.", "valid_targets": [ "hostile", "ground", "self", "ally" ], - "flags": [ "CONCENTRATE", "LOUD", "VERBAL", "SOMATIC", "NO_LEGS" ], + "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "LOUD", "VERBAL", "SOMATIC", "NO_LEGS" ], "min_aoe": 1, "max_aoe": 2, "aoe_increment": 0.05, "max_level": 35, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(30, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(150, 0.5)" ] }, + "min_damage": 30, + "max_damage": 150, "min_range": 6, "max_range": 8, "range_increment": 0.01, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(4, 0.033)" ] }, + "damage_increment": 4, "difficulty": 20, "spell_class": "STORMSHAPER", "energy_source": "MANA", @@ -313,7 +313,7 @@ "effect": "attack", "shape": "blast", "extra_effects": [ { "id": "stormshaper_ionization_thunderclap" }, { "id": "eoc_evocation_setup", "hit_self": true } ], - "flags": [ "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], "energy_source": "MANA", "spell_class": "STORMSHAPER", "difficulty": 8, @@ -322,9 +322,9 @@ "casting_time_increment": -5, "base_energy_cost": 300, "max_level": 30, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(15, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(60, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1.5, 0.033)" ] }, + "min_damage": 15, + "max_damage": 60, + "damage_increment": 1.5, "damage_type": "electric", "min_aoe": 7, "max_aoe": 7, @@ -346,7 +346,7 @@ "valid_targets": [ "hostile", "ground", "self", "ally" ], "effect": "flashbang", "shape": "blast", - "flags": [ "LOUD" ], + "flags": [ "EVOCATION_SPELL", "LOUD" ], "max_level": 30, "min_range": 12, "max_range": 24, @@ -361,7 +361,7 @@ "effect": "attack", "effect_str": "downed", "shape": "line", - "flags": [ "SOMATIC", "NO_LEGS", "NO_HANDS" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_LEGS", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "energy_source": "MANA", "spell_class": "STORMSHAPER", @@ -369,9 +369,9 @@ "base_casting_time": 125, "base_energy_cost": 150, "max_level": 10, - "min_aoe": { "math": [ "evocation_proficiency_bonus_calculate(5, 0.1)" ] }, - "max_aoe": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.1)" ] }, - "aoe_increment": { "math": [ "evocation_proficiency_bonus_calculate(0.5, 0.055)" ] }, + "min_aoe": 5, + "max_aoe": 10, + "aoe_increment": 0.5, "min_range": 2, "max_range": 4, "range_increment": 0.2, @@ -395,7 +395,7 @@ "damage_type": "electric", "min_damage": 15, "max_damage": 15, - "flags": [ "LOUD", "NO_PROJECTILE" ], + "flags": [ "ENHANCEMENT_SPELL", "LOUD", "NO_PROJECTILE" ], "sound_type": "combat", "sound_description": "arcing electricity!", "min_range": 5, @@ -410,17 +410,17 @@ "effect": "attack", "effect_str": "effect_thorns_electric", "shape": "blast", - "flags": [ "SOMATIC", "NO_LEGS", "CONCENTRATE" ], + "flags": [ "ENHANCEMENT_SPELL", "SOMATIC", "NO_LEGS", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "energy_source": "MANA", "spell_class": "STORMSHAPER", "difficulty": 4, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(250, 2)" ] }, + "base_casting_time": 250, "base_energy_cost": 550, "max_level": 15, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(24000, 2240)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(360000, 2240)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(24000, 0.07)" ] }, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, "learn_spells": { "stormshaper_repelling_arc_plus": 15 } }, { @@ -432,28 +432,28 @@ "effect": "attack", "effect_str": "effect_thorns_electric", "shape": "blast", - "flags": [ "SOMATIC", "NO_LEGS", "NO_FAIL" ], + "flags": [ "ENHANCEMENT_SPELL", "SOMATIC", "NO_LEGS", "NO_FAIL" ], "energy_source": "MANA", "spell_class": "STORMSHAPER", "difficulty": 6, "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(250, 1)" ] }, - "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(100, 1)" ] }, - "casting_time_increment": { "math": [ "enhancement_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": 100, "energy_increment": -18, "max_level": 25, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(360000, 12000)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(2160000, 12000)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(72000, 0.04)" ] } + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 72000 }, { "id": "stormfist", "type": "SPELL", "name": "Stormfist", "description": "Encases your arm and hand in a sheath of crackling magical lightning, you can punch and defend yourself with it in melee combat.", - "flags": [ "LOUD", "VERBAL", "NO_LEGS" ], + "flags": [ "CONJURATION_SPELL", "LOUD", "VERBAL", "NO_LEGS" ], "valid_targets": [ "self" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_damage": 1, @@ -466,10 +466,10 @@ "difficulty": 5, "max_level": 15, "base_casting_time": 500, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(400, 2)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 200)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 200)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.071)" ] }, + "base_energy_cost": 400, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, "learn_spells": { "stormfist_plus": 15 } }, { @@ -478,7 +478,7 @@ "name": "Enhanced Stormfist", "description": "Encases your arm and hand in a sheath of crackling magical lightning, you can punch and defend yourself with it in melee combat. Now you know this spell like the back of your hand, and start to design your own version.", "valid_targets": [ "self" ], - "flags": [ "LOUD", "NO_LEGS", "NO_FAIL" ], + "flags": [ "CONJURATION_SPELL", "LOUD", "NO_LEGS", "NO_FAIL" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_damage": 1, "max_damage": 1, @@ -492,12 +492,12 @@ "base_casting_time": 500, "final_casting_time": 200, "casting_time_increment": -12, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(400, 1)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(150, 1)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-10, 0.04)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 400)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(2160000, 400)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(72000, 0.04)" ] } + "base_energy_cost": 400, + "final_energy_cost": 150, + "energy_increment": -10, + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 72000 }, { "id": "create_electric_lighter", @@ -505,23 +505,23 @@ "name": "Fire Spark", "description": "Summons a small electric spark, that doesn't harm anything. You can use it to ignite something flammable.", "valid_targets": [ "none" ], - "flags": [ "NO_LEGS" ], + "flags": [ "CONJURATION_SPELL", "NO_LEGS" ], "effect": "spawn_item", "effect_str": "electric_lighter", "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "shape": "blast", "min_damage": 1, "max_damage": 1, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(6000, 20)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(60000, 20)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(5400, 0.1)" ] }, + "min_duration": 6000, + "max_duration": 60000, + "duration_increment": 5400, "max_level": 10, "spell_class": "STORMSHAPER", "energy_source": "MANA", "base_casting_time": 250, "final_casting_time": 50, "casting_time_increment": -20.0, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(65, 0.5)" ] }, + "base_energy_cost": 65, "difficulty": 0 }, { @@ -544,14 +544,14 @@ "spell_class": "STORMSHAPER", "difficulty": 6, "max_level": 25, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(30, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(150, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(5, 0.042)" ] }, + "min_damage": 30, + "max_damage": 150, + "damage_increment": 5, "damage_type": "sonic", "min_range": 2, "max_range": 9, "range_increment": 0.3, - "flags": [ "VERBAL", "LOUD", "NO_HANDS", "RANDOM_DURATION" ], + "flags": [ "EVOCATION_SPELL", "VERBAL", "LOUD", "NO_HANDS", "RANDOM_DURATION" ], "min_duration": 200, "max_duration": 900, "min_aoe": 30, @@ -567,7 +567,7 @@ "effect": "area_push", "shape": "cone", "valid_targets": [ "ally", "hostile", "item", "ground" ], - "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "flags": [ "EVOCATION_SPELL", "SILENT", "NO_EXPLOSION_SFX" ], "max_level": 25, "min_aoe": 60, "max_aoe": 180, @@ -584,12 +584,12 @@ "effect": "attack", "shape": "blast", "valid_targets": [ "self", "ally", "hostile", "ground" ], - "flags": [ "SOMATIC", "VERBAL", "NO_LEGS" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "VERBAL", "NO_LEGS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "max_level": 15, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(24, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(84, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(4, 0.07)" ] }, + "min_damage": 24, + "max_damage": 84, + "damage_increment": 4, "min_aoe": 0, "max_aoe": 6, "aoe_increment": 0.4, @@ -616,11 +616,11 @@ "effect": "attack", "shape": "blast", "valid_targets": [ "self", "ally", "hostile", "ground" ], - "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "EXTRA_EFFECTS_FIRST" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "VERBAL", "NO_LEGS", "EXTRA_EFFECTS_FIRST" ], "max_level": 25, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(38, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(158, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(5, 0.042)" ] }, + "min_damage": 38, + "max_damage": 158, + "damage_increment": 5, "min_aoe": 2, "max_aoe": 9, "aoe_increment": 0.3, @@ -656,7 +656,7 @@ "effect": "area_pull", "shape": "blast", "valid_targets": [ "hostile", "item", "ground" ], - "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "flags": [ "EVOCATION_SPELL", "SILENT", "NO_EXPLOSION_SFX" ], "max_level": 25, "min_aoe": 5, "max_aoe": 16, @@ -668,7 +668,7 @@ "name": "Air Bubble", "description": "Cover your head with an air bubble, allowing you to breathe underwater or prevent breathing of toxic gases.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "LOUD", "VERBAL", "NO_LEGS" ], + "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "LOUD", "VERBAL", "NO_LEGS" ], "min_damage": 1, "max_damage": 1, "effect": "spawn_item", @@ -680,10 +680,10 @@ "difficulty": 3, "max_level": 10, "base_casting_time": 1000, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(200, 1)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(18000, 200)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(180000, 200)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(18000, 0.1)" ] } + "base_energy_cost": 200, + "min_duration": 18000, + "max_duration": 180000, + "duration_increment": 18000 }, { "id": "storm_superconductor", @@ -704,13 +704,13 @@ "spell_class": "STORMSHAPER", "difficulty": 6, "max_level": 25, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(30, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(170, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(6, 0.043)" ] }, + "min_damage": 30, + "max_damage": 170, + "damage_increment": 6, "damage_type": "electric", "range_increment": 0.3, "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], - "flags": [ "VERBAL", "LOUD", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "flags": [ "EVOCATION_SPELL", "VERBAL", "LOUD", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], "min_duration": 100, "max_duration": 500, "min_aoe": 1, @@ -729,14 +729,14 @@ "name": "Shocking Dash", "description": "Fill your legs with energy and quickly dash to a target destination.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "NO_HANDS", "LOUD" ], + "flags": [ "CONVEYANCE_SPELL", "NO_HANDS", "LOUD" ], "effect": "dash", "shape": "cone", "min_damage": 0, "max_damage": 0, - "min_range": { "math": [ "conveyance_proficiency_bonus_calculate(2, 0.05)" ] }, - "max_range": { "math": [ "conveyance_proficiency_bonus_calculate(10, 0.05)" ] }, - "range_increment": { "math": [ "conveyance_proficiency_bonus_calculate(0.35, 0.05)" ] }, + "min_range": 2, + "max_range": 10, + "range_increment": 0.35, "field_id": "fd_electricity", "min_field_intensity": 2, "max_field_intensity": 2, @@ -744,9 +744,9 @@ "base_casting_time": 200, "final_casting_time": 50, "casting_time_increment": -6, - "base_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(350, 1)" ] }, - "final_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(200, 1)" ] }, - "energy_increment": { "math": [ "conveyance_proficiency_negate_calculate(-6, 0.04)" ] }, + "base_energy_cost": 350, + "final_energy_cost": 200, + "energy_increment": -6, "max_level": 25, "energy_source": "MANA", "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ], @@ -758,20 +758,20 @@ "name": "Shocking Teleport", "description": "Briefly become lightning to teleport to a chosen spot, ignoring all obstacles in-between.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "NO_HANDS", "LOUD", "TARGET_TELEPORT" ], + "flags": [ "CONVEYANCE_SPELL", "NO_HANDS", "LOUD", "TARGET_TELEPORT" ], "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ], "effect": "short_range_teleport", "shape": "blast", - "min_range": { "math": [ "conveyance_proficiency_bonus_calculate(4, 0.11)" ] }, - "max_range": { "math": [ "conveyance_proficiency_bonus_calculate(20, 0.11)" ] }, - "range_increment": { "math": [ "conveyance_proficiency_bonus_calculate(0.7, 0.05)" ] }, + "min_range": 4, + "max_range": 20, + "range_increment": 0.7, "spell_class": "STORMSHAPER", "base_casting_time": 500, "final_casting_time": 100, "casting_time_increment": -16, - "base_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(550, 1.7)" ] }, - "final_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(300, 1.7)" ] }, - "energy_increment": { "math": [ "conveyance_proficiency_negate_calculate(-10, 0.04)" ] }, + "base_energy_cost": 550, + "final_energy_cost": 300, + "energy_increment": -10, "max_level": 25, "energy_source": "MANA" }, @@ -790,7 +790,7 @@ "max_damage": 85, "damage_increment": 3, "damage_type": "electric", - "flags": [ "LOUD" ], + "flags": [ "CONVEYANCE_SPELL", "LOUD" ], "min_duration": 100, "max_duration": 500, "min_aoe": 1, @@ -812,11 +812,11 @@ "effect_str": "zapped", "shape": "blast", "valid_targets": [ "self", "ally", "hostile", "ground" ], - "flags": [ "SOMATIC", "VERBAL", "NO_LEGS" ], + "flags": [ "EVOCATION_SPELL", "SOMATIC", "VERBAL", "NO_LEGS" ], "max_level": 25, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(0, 0.2)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(13, 0.2)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(0.5, 0.04)" ] }, + "min_damage": 0, + "max_damage": 13, + "damage_increment": 0.5, "min_aoe": 1, "max_aoe": 11, "aoe_increment": 0.4, @@ -850,21 +850,21 @@ "effect": "attack", "effect_str": "electric_eye", "shape": "blast", - "flags": [ "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ], + "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "spell_class": "STORMSHAPER", "energy_source": "MANA", "difficulty": 4, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(3000, 13.33)" ] }, - "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(1000, 13.33)" ] }, - "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-80, 0.04)" ] }, + "base_casting_time": 3000, + "final_casting_time": 1000, + "casting_time_increment": -80, "base_energy_cost": 400, "final_energy_cost": 200, "energy_increment": -8, "max_level": 25, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(57600, 9216)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1440000, 9216)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(57600, 0.042)" ] } + "min_duration": 57600, + "max_duration": 1440000, + "duration_increment": 57600 }, { "id": "electric_waves", @@ -875,21 +875,21 @@ "effect": "attack", "effect_str": "electric_waves", "shape": "blast", - "flags": [ "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ], + "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "spell_class": "STORMSHAPER", "energy_source": "MANA", "difficulty": 5, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(3000, 13.33)" ] }, - "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(1000, 13.33)" ] }, - "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-80, 0.04)" ] }, + "base_casting_time": 3000, + "final_casting_time": 1000, + "casting_time_increment": -80, "base_energy_cost": 400, "final_energy_cost": 200, "energy_increment": -8, "max_level": 25, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(14400, 2304)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(360000, 2304)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(14400, 0.042)" ] } + "min_duration": 14400, + "max_duration": 360000, + "duration_increment": 14400 }, { "id": "electric_waves_damage", @@ -903,7 +903,7 @@ "max_damage": 35, "min_range": 1, "damage_type": "electric", - "flags": [ "LOUD", "RANDOM_DURATION", "RANDOM_AOE", "RANDOM_DAMAGE" ], + "flags": [ "ENHANCEMENT_SPELL", "LOUD", "RANDOM_DURATION", "RANDOM_AOE", "RANDOM_DAMAGE" ], "min_duration": 50, "max_duration": 200, "min_aoe": 1, @@ -923,19 +923,19 @@ "effect": "attack", "effect_str": "electric_arts", "shape": "blast", - "flags": [ "NO_EXPLOSION_SFX" ], + "flags": [ "ENHANCEMENT_SPELL", "NO_EXPLOSION_SFX" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "spell_class": "STORMSHAPER", "energy_source": "MANA", "difficulty": 1, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(48000, 320)" ] }, + "base_casting_time": 48000, "base_energy_cost": 400, "final_energy_cost": 200, "energy_increment": -8, "max_level": 25, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(230400, 36864)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(5760000, 36864)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(230400, 0.042)" ] } + "min_duration": 230400, + "max_duration": 5760000, + "duration_increment": 230400 }, { "id": "summon_teravolt", @@ -953,18 +953,18 @@ "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "shape": "blast", "energy_source": "MANA", - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(400, 1.5)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(200, 1.5)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-4, 0.02)" ] }, - "base_casting_time": { "math": [ "summoning_proficiency_negate_calculate(600, 1)" ] }, - "final_casting_time": { "math": [ "summoning_proficiency_negate_calculate(100, 1)" ] }, - "casting_time_increment": { "math": [ "summoning_proficiency_negate_calculate(-20, 0.04)" ] }, + "base_energy_cost": 400, + "final_energy_cost": 200, + "energy_increment": -4, + "base_casting_time": 600, + "final_casting_time": 100, + "casting_time_increment": -20, "min_aoe": 4, "max_aoe": 4, - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "PERMANENT", "NO_EXPLOSION_SFX" ], - "min_duration": { "math": [ "summoning_proficiency_negate_calculate(4800, 200)" ] }, - "max_duration": { "math": [ "summoning_proficiency_negate_calculate(120000, 200)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_negate_calculate(4800, 0.041)" ] } + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE", "PERMANENT", "NO_EXPLOSION_SFX" ], + "min_duration": 4800, + "max_duration": 120000, + "duration_increment": 4800 }, { "id": "stormshaper_cloak_of_fog", @@ -972,7 +972,7 @@ "name": "Cloak of Fog", "description": "Call out to the sky spirits for aid and ask them to conceal you from your enemies. The fog will hide your passage, but you do not have any special ability to see through it yourself.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], + "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], "effect": "attack", "extra_effects": [ { "id": "stormshaper_cloak_fog_emitter", "hit_self": true, "max_level": 20 }, @@ -992,9 +992,9 @@ "max_field_intensity": 3, "field_chance": 1, "base_energy_cost": 250, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(300, 1.33)" ] }, - "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(100, 1.33)" ] }, - "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-7.5, 0.0375)" ] } + "base_casting_time": 300, + "final_casting_time": 100, + "casting_time_increment": -7.5 }, { "id": "stormshaper_cloak_fog_emitter", @@ -1002,12 +1002,13 @@ "name": "Cloak of Fog Real", "description": "The spell that puts the effect of Cloak of Fog on you. It's a bug if you can see it.", "valid_targets": [ "self" ], + "flags": [ "ENHANCEMENT_SPELL" ], "effect": "attack", "effect_str": "effect_cloak_of_fog", "shape": "blast", - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(3000, 180)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(30000, 180)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(575, 0.03)" ] } + "min_duration": 3000, + "max_duration": 30000, + "duration_increment": 575 }, { "id": "stormshaper_cloak_fog_wonder", @@ -1027,7 +1028,7 @@ "type": "SPELL", "name": "Cloak of Fog Random", "description": "The spell that puts the effect of Cloak of Fog on you. It's a bug if you can see it.", - "flags": [ "RANDOM_TARGET", "NO_EXPLOSION_SFX" ], + "flags": [ "ENHANCEMENT_SPELL", "RANDOM_TARGET", "NO_EXPLOSION_SFX" ], "valid_targets": [ "ground" ], "message": "", "effect": "attack", @@ -1050,7 +1051,7 @@ "name": "Heart of the Hurricane", "description": "Compress the fury of hurricane winds into a thin shell of raging air around yourself. This will make it harder for you to lose your footing or be knocked down and occasionally throw attackers away from you, but the whirling winds are loud.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], + "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "effect": "attack", "effect_str": "effect_heart_of_hurricane", @@ -1058,12 +1059,12 @@ "spell_class": "STORMSHAPER", "difficulty": 7, "max_level": 20, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(15000, 500)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(90000, 500)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(3750, 0.05)" ] }, + "min_duration": 15000, + "max_duration": 90000, + "duration_increment": 3750, "energy_source": "MANA", "base_energy_cost": 400, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(1500, 20)" ] } + "base_casting_time": 1500 }, { "id": "stormshaper_heart_of_hurricane_throw", @@ -1073,7 +1074,7 @@ "message": "The winds lash out and hurl away!", "valid_targets": [ "ally", "hostile", "item", "ground" ], "spell_class": "STORMSHAPER", - "flags": [ "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "flags": [ "ENHANCEMENT_SPELL", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], "effect": "directed_push", "shape": "blast", "min_damage": 1, @@ -1086,7 +1087,7 @@ "name": "Cloak of Frog", "description": "Someone's personal notes were added to this spell. You're positive that they changed both the name and the function.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], + "flags": [ "TRANSFORMATION_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], "effect": "attack", "extra_effects": [ { "id": "stormshaper_cloak_frog_transform", "hit_self": true }, @@ -1097,19 +1098,19 @@ "spell_class": "STORMSHAPER", "difficulty": 4, "max_level": 20, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(15000, 500)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(90000, 500)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(3750, 0.05)" ] }, + "min_duration": 15000, + "max_duration": 90000, + "duration_increment": 3750, "energy_source": "MANA", "base_energy_cost": 350, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(150, 2)" ] } + "base_casting_time": 150 }, { "id": "stormshaper_cloak_frog_transform", "type": "SPELL", "name": "Cloak of Frog Transform", "description": "Grants the caster some post-threshold Batrachian mutations if they aren't already a frog mutant.", - "flags": [ "NO_EXPLOSION_SFX" ], + "flags": [ "TRANSFORMATION_SPELL", "NO_EXPLOSION_SFX" ], "valid_targets": [ "self" ], "effect": "effect_on_condition", "effect_str": "EOC_GAIN_CLOAK_OF_FROG_MUTATIONS", @@ -1127,8 +1128,10 @@ { "queue_eocs": "EOC_LOSE_CLOAK_OF_FROG_MUTATIONS", "time_in_future": [ - { "math": [ "( (u_spell_level('stormshaper_cloak_of_frog') * 3750) + 15000)" ] }, - { "math": [ "( (u_spell_level('stormshaper_cloak_of_frog') * 3750) + 15000)" ] } + { "math": [ "( (u_spell_level('stormshaper_cloak_of_frog') * 3750) + 15000) * transformation_proficiency_modifier()" ] }, + { + "math": [ "( (u_spell_level('stormshaper_cloak_of_frog') * 3750) + 15000) * transformation_proficiency_modifier()" ] + } ] } ], @@ -1149,7 +1152,7 @@ "type": "SPELL", "name": "Cloak of Frog Wonder", "description": "Places other frog locations nearby. The number depends on your cloak of frog level.", - "flags": [ "WONDER", "NO_EXPLOSION_SFX" ], + "flags": [ "TRANSFORMATION_SPELL", "WONDER", "NO_EXPLOSION_SFX" ], "valid_targets": [ "self" ], "effect": "attack", "extra_effects": [ { "id": "stormshaper_cloak_frog_summon", "max_level": 20 } ], @@ -1162,7 +1165,7 @@ "type": "SPELL", "name": "Cloak of Frog Summon", "description": "The spell that creates the frogs. It's a bug if you have it.", - "flags": [ "RANDOM_TARGET", "NO_EXPLOSION_SFX", "SPAWN_GROUP" ], + "flags": [ "TRANSFORMATION_SPELL", "RANDOM_TARGET", "NO_EXPLOSION_SFX", "SPAWN_GROUP" ], "valid_targets": [ "ground", "hostile" ], "message": "", "effect": "summon", @@ -1185,18 +1188,18 @@ "description": "Increase the volume of the caster's voice, allowing every word to resound like a peal of thunder. As a useful side effect, it makes the caster immune to hearing damage caused by loud noises.", "valid_targets": [ "self" ], "spell_class": "STORMSHAPER", - "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_LEGS" ], + "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_LEGS" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "effect": "attack", "effect_str": "effect_stormshaper_loud_voice", "shape": "blast", "difficulty": 3, "max_level": 20, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(42000, 5600)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(882000, 5600)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(42000, 0.05)" ] }, + "min_duration": 42000, + "max_duration": 882000, + "duration_increment": 42000, "energy_source": "MANA", "base_energy_cost": 150, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(250, 1.7)" ] } + "base_casting_time": 250 } ] diff --git a/data/mods/Magiclysm/Spells/technomancer.json b/data/mods/Magiclysm/Spells/technomancer.json index 38645254396a2..4cc617bf21d1c 100644 --- a/data/mods/Magiclysm/Spells/technomancer.json +++ b/data/mods/Magiclysm/Spells/technomancer.json @@ -5,13 +5,13 @@ "name": { "str": "Bless" }, "description": "A blessing that gives you energy and boosts your abilities.", "valid_targets": [ "self", "ally" ], - "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], + "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "effect": "attack", "effect_str": "bless", "shape": "blast", "affected_body_parts": [ "torso" ], - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(100, 1)" ] }, + "base_casting_time": 100, "base_energy_cost": 100, "energy_source": "MANA", "spell_class": "TECHNOMANCER", @@ -24,9 +24,9 @@ "max_range": 10, "range_increment": 1.0, "//": "duration is in moves", - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(6000, 160)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(30000, 160)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(1200, 0.05)" ] } + "min_duration": 6000, + "max_duration": 30000, + "duration_increment": 1200 }, { "id": "invisibility", @@ -39,16 +39,16 @@ "effect_str": "effect_technomancer_invisibility", "components": "spell_components_invisibility", "shape": "blast", - "flags": [ "SILENT", "SOMATIC" ], + "flags": [ "ENHANCEMENT_SPELL", "SILENT", "SOMATIC" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "spell_class": "TECHNOMANCER", "difficulty": 4, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(100, 1)" ] }, + "base_casting_time": 100, "base_energy_cost": 400, "energy_source": "MANA", - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1250, 31.7)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(6000, 31.7)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(250, 0.06)" ] }, + "min_duration": 1250, + "max_duration": 6000, + "duration_increment": 250, "max_level": 20 }, { @@ -57,7 +57,7 @@ "name": "Mage Blade", "description": "This blade of light will cut through any evil it makes contact with!", "valid_targets": [ "self" ], - "flags": [ "VERBAL", "NO_LEGS", "CONCENTRATE" ], + "flags": [ "CONJURATION_SPELL", "VERBAL", "NO_LEGS", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_range": 0, "max_range": 0, @@ -67,10 +67,10 @@ "effect_str": "longsword_holy", "shape": "blast", "base_casting_time": 450, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(475, 2)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 200)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 200)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.04)" ] }, + "base_energy_cost": 475, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, "difficulty": 7, "max_level": 15, "spell_class": "TECHNOMANCER", @@ -83,7 +83,7 @@ "name": "Enhanced Mage Blade", "description": "This blade of light will cut through any evil it makes contact with! Now you know this spell like the back of your hand, and have started to design your own version.", "valid_targets": [ "self" ], - "flags": [ "VERBAL", "NO_LEGS", "NO_FAIL" ], + "flags": [ "CONJURATION_SPELL", "VERBAL", "NO_LEGS", "NO_FAIL" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_range": 0, "max_range": 0, @@ -93,10 +93,10 @@ "effect_str": "longsword_holy", "shape": "blast", "base_casting_time": 450, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(475, 2)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 400)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(2160000, 400)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(72000, 0.04)" ] }, + "base_energy_cost": 475, + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 72000, "difficulty": 9, "max_level": 25, "spell_class": "TECHNOMANCER", @@ -108,7 +108,7 @@ "name": "Mage Armor", "description": "Evil will not make it through your defenses if your faith is strong enough!", "valid_targets": [ "self" ], - "flags": [ "VERBAL", "NO_LEGS", "CONCENTRATE", "SOMATIC" ], + "flags": [ "CONJURATION_SPELL", "VERBAL", "NO_LEGS", "CONCENTRATE", "SOMATIC" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_range": 0, "max_range": 0, @@ -122,10 +122,10 @@ "difficulty": 6, "max_level": 15, "base_casting_time": 450, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(475, 2)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(24000, 200)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 200)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.04)" ] }, + "base_energy_cost": 475, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, "learn_spells": { "spirit_armor_plus": 15 } }, { @@ -134,7 +134,7 @@ "name": "Enhanced Mage Armor", "description": "Evil will not make it through your defenses if your faith is strong enough! Now you know this spell like the back of your hand, and have started to design your own version.", "valid_targets": [ "self" ], - "flags": [ "VERBAL", "NO_LEGS", "SOMATIC", "NO_FAIL" ], + "flags": [ "CONJURATION_SPELL", "VERBAL", "NO_LEGS", "SOMATIC", "NO_FAIL" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_range": 0, "max_range": 0, @@ -150,12 +150,12 @@ "base_casting_time": 450, "final_casting_time": 150, "casting_time_increment": -12, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(475, 2)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(150, 2)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-13, 0.04)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 400)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(2160000, 400)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(72000, 0.04)" ] } + "base_energy_cost": 475, + "final_energy_cost": 150, + "energy_increment": -13, + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 72000 }, { "id": "create_atomic_lamp", @@ -163,7 +163,7 @@ "name": "Lamp", "description": "Creates a magical lamp.", "valid_targets": [ "self" ], - "flags": [ "VERBAL", "NO_LEGS", "CONCENTRATE" ], + "flags": [ "CONJURATION_SPELL", "VERBAL", "NO_LEGS", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "min_range": 0, "max_range": 0, @@ -177,10 +177,10 @@ "difficulty": 2, "max_level": 20, "base_casting_time": 200, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(750, 2)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(100000, 300)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1000000, 300)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(45000, 0.05)" ] } + "base_energy_cost": 750, + "min_duration": 100000, + "max_duration": 1000000, + "duration_increment": 45000 }, { "id": "recover_bionic_power", @@ -188,14 +188,14 @@ "name": "Manatricity", "description": "You have found a way to convert your mana into power you can use for your bionics.", "valid_targets": [ "self" ], - "flags": [ "NO_LEGS", "NO_HANDS", "SOMATIC", "VERBAL", "SILENT" ], - "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], + "flags": [ "RESTORATION_SPELL", "NO_LEGS", "NO_HANDS", "SOMATIC", "VERBAL", "SILENT" ], + "extra_effects": [ { "id": "eoc_restoration_setup", "hit_self": true } ], "min_damage": 250, "damage_increment": 50.0, "max_damage": 15000, - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(250, 3)" ] }, - "energy_increment": { "math": [ "channeling_proficiency_negate_calculate(50.0, 0.0034)" ] }, - "final_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(15000, 3)" ] }, + "base_energy_cost": 250, + "energy_increment": 50.0, + "final_energy_cost": 15000, "max_level": 25, "spell_class": "TECHNOMANCER", "effect": "recover_energy", @@ -203,7 +203,7 @@ "shape": "blast", "energy_source": "MANA", "difficulty": 6, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(1000, 10)" ] } + "base_casting_time": 1000 }, { "id": "create_rune_technomancer", @@ -217,7 +217,7 @@ "effect_str": "rune_technomancer", "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "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, @@ -226,7 +226,7 @@ "max_level": 0, "spell_class": "TECHNOMANCER", "energy_source": "MANA", - "flags": [ "PERMANENT", "NO_LEGS", "CONCENTRATE" ] + "flags": [ "CHANNELING_SPELL", "PERMANENT", "NO_LEGS", "CONCENTRATE" ] }, { "id": "taze", @@ -234,7 +234,7 @@ "name": "Taze", "description": "This spell arcs two small bolts of electricity into a target, shocking them.", "valid_targets": [ "hostile", "ground", "ally" ], - "flags": [ "NO_LEGS", "LOUD", "SOMATIC", "NO_HANDS" ], + "flags": [ "EVOCATION_SPELL", "NO_LEGS", "LOUD", "SOMATIC", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "effect": "attack", "shape": "blast", @@ -249,9 +249,9 @@ "final_energy_cost": 30, "max_level": 20, "damage_type": "electric", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(10, 0.3)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(30, 0.3)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(1.0, 0.05)" ] }, + "min_damage": 10, + "max_damage": 30, + "damage_increment": 1.0, "min_range": 1, "max_range": 4, "range_increment": 0.2 @@ -262,7 +262,7 @@ "name": "Lesser Quantum Tunnel", "description": "This spell manipulates some quantum something or other to tunnel you through a short distance of space, and even matter, unfortunately there's that whole uncertainty thing as to where you come out. It leaves you a little dazed on the other side as you reorient yourself.", "valid_targets": [ "none" ], - "flags": [ "NO_LEGS", "NO_HANDS", "SILENT" ], + "flags": [ "CONVEYANCE_SPELL", "NO_LEGS", "NO_HANDS", "SILENT" ], "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ], "effect": "short_range_teleport", "effect_str": "dazed", @@ -274,15 +274,15 @@ "base_casting_time": 100, "casting_time_increment": -1.0, "final_casting_time": 80, - "base_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(100, 0.13)" ] }, - "energy_increment": { "math": [ "conveyance_proficiency_negate_calculate(-1.0, 0.05)" ] }, - "final_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(80, 0.13)" ] }, + "base_energy_cost": 100, + "energy_increment": -1.0, + "final_energy_cost": 80, "min_aoe": 4, "max_aoe": 1, "aoe_increment": -0.25, - "min_range": { "math": [ "conveyance_proficiency_bonus_calculate(5, 0.03)" ] }, - "max_range": { "math": [ "conveyance_proficiency_bonus_calculate(10, 0.03)" ] }, - "range_increment": { "math": [ "conveyance_proficiency_bonus_calculate(0.25, 0.05)" ] }, + "min_range": 5, + "max_range": 10, + "range_increment": 0.25, "min_duration": 100, "max_duration": 100 }, @@ -292,7 +292,7 @@ "name": "Synaptic Stimulation", "description": "This spell stimulates the synapses in your brain beyond normal processing speeds, giving you a large boost in mental processing capability. It enhances your reflexes, speed, and raw intellectual power. Use responsibly!", "valid_targets": [ "self" ], - "flags": [ "NO_LEGS", "VERBAL", "NO_PROJECTILE" ], + "flags": [ "ENHANCEMENT_SPELL", "NO_LEGS", "VERBAL", "NO_PROJECTILE" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "effect": "attack", "effect_str": "synaptic_stim", @@ -301,15 +301,15 @@ "energy_source": "MANA", "difficulty": 7, "max_level": 20, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(500, 0.33)" ] }, - "casting_time_increment": { "math": [ "enhancement_proficiency_negate_calculate(-2.5, 0.05)" ] }, - "final_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(450, 0.33)" ] }, + "base_casting_time": 500, + "casting_time_increment": -2.5, + "final_casting_time": 450, "base_energy_cost": 500, "energy_increment": -7.5, "final_energy_cost": 350, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(6000, 1160)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(180000, 1160)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(8700, 0.05)" ] } + "min_duration": 6000, + "max_duration": 180000, + "duration_increment": 8700 }, { "id": "laze", @@ -317,7 +317,7 @@ "name": "Laze", "description": "You concentrate and release a focused beam of photons at a target, also known as a laser.", "valid_targets": [ "hostile", "ground", "ally" ], - "flags": [ "NO_LEGS", "LOUD", "SOMATIC", "NO_PROJECTILE" ], + "flags": [ "EVOCATION_SPELL", "NO_LEGS", "LOUD", "SOMATIC", "NO_PROJECTILE" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "effect": "attack", "shape": "line", @@ -331,9 +331,9 @@ "base_energy_cost": 150, "energy_increment": -2.0, "final_energy_cost": 110, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(15, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(60, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2.5, 0.055)" ] }, + "min_damage": 15, + "max_damage": 60, + "damage_increment": 2.5, "damage_type": "light", "min_range": 10, "max_range": 25, @@ -349,7 +349,7 @@ "name": { "str": "Animated Blade" }, "description": "This spell conjures flying animated blades that will cut your enemies down to size. Into small pieces that is.", "valid_targets": [ "ground" ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "summon", "effect_str": "mon_animated_blade", @@ -361,9 +361,9 @@ "base_casting_time": 200, "casting_time_increment": -2.0, "final_casting_time": 160, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(350, 2)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-2.0, 0.05)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(310, 2)" ] }, + "base_energy_cost": 350, + "energy_increment": -2.0, + "final_energy_cost": 310, "min_damage": 1, "max_damage": 2, "damage_increment": 0.15, @@ -372,9 +372,9 @@ "range_increment": 0.25, "min_aoe": 3, "max_aoe": 3, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(6000, 300)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(156000, 300)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(6000, 0.04)" ] } + "min_duration": 6000, + "max_duration": 156000, + "duration_increment": 6000 }, { "id": "mirror_image", @@ -382,7 +382,7 @@ "name": "Mirror Image", "description": "This spell manipulates light into barely tangible duplicates of a living being, a magical hologram in short.", "valid_targets": [ "ground" ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "summon", "effect_str": "mon_mirror_image", @@ -394,9 +394,9 @@ "base_casting_time": 150, "casting_time_increment": -1.0, "final_casting_time": 130, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(200, 1)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-2.0, 0.05)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(160, 1)" ] }, + "base_energy_cost": 200, + "energy_increment": -2.0, + "final_energy_cost": 160, "min_damage": 1, "max_damage": 5, "damage_increment": 0.5, @@ -405,9 +405,9 @@ "range_increment": 0.5, "min_aoe": 3, "max_aoe": 3, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(3000, 60)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(6000, 60)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(200, 0.07)" ] } + "min_duration": 3000, + "max_duration": 6000, + "duration_increment": 200 }, { "id": "holographic_transposition", @@ -416,7 +416,7 @@ "description": "Allows you to swap places with a previously existing holographic image of yourself. If the universe itself can't tell you apart, who could?", "valid_targets": [ "hostile", "ally" ], "targeted_monster_ids": [ "mon_mirror_image", "mon_hologram" ], - "flags": [ "NO_LEGS", "LOUD", "SOMATIC", "SWAP_POS", "NO_PROJECTILE" ], + "flags": [ "CONVEYANCE_SPELL", "NO_LEGS", "LOUD", "SOMATIC", "SWAP_POS", "NO_PROJECTILE" ], "extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ], "effect": "attack", "shape": "blast", @@ -427,12 +427,12 @@ "base_casting_time": 100, "casting_time_increment": -1.0, "final_casting_time": 80, - "base_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(150, 0.33)" ] }, - "energy_increment": { "math": [ "conveyance_proficiency_negate_calculate(-2.0, 0.04)" ] }, - "final_energy_cost": { "math": [ "conveyance_proficiency_negate_calculate(100, 0.33)" ] }, - "min_range": { "math": [ "conveyance_proficiency_bonus_calculate(20, 0.07)" ] }, - "max_range": { "math": [ "conveyance_proficiency_bonus_calculate(30, 0.07)" ] }, - "range_increment": { "math": [ "conveyance_proficiency_bonus_calculate(1.0, 0.1)" ] } + "base_energy_cost": 150, + "energy_increment": -2.0, + "final_energy_cost": 100, + "min_range": 20, + "max_range": 30, + "range_increment": 1.0 }, { "id": "summon_floating_disk", @@ -440,7 +440,7 @@ "name": "Summon Floating Disk", "description": "Summons a floating disk that is sworn to carry your burdens.", "valid_targets": [ "ground" ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "summon_vehicle", "spell_class": "TECHNOMANCER", @@ -450,13 +450,13 @@ "difficulty": 5, "max_level": 20, "base_casting_time": 120, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(500, 2)" ] }, + "base_energy_cost": 500, "min_range": 1, "max_range": 10, "range_increment": 1, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(400000, 3000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(9600000, 3000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(460000, 0.05)" ] } + "min_duration": 400000, + "max_duration": 9600000, + "duration_increment": 460000 }, { "id": "summon_magic_motorcycle", @@ -464,7 +464,7 @@ "name": "Summon Mojocycle", "description": "You're not a cowboy, but on a steel horse you ride regardless.", "valid_targets": [ "ground" ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "summon_vehicle", "spell_class": "TECHNOMANCER", @@ -474,14 +474,14 @@ "difficulty": 5, "max_level": 20, "base_casting_time": 1000, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(1000, 2)" ] }, + "base_energy_cost": 1000, "min_range": 1, "max_range": 10, "range_increment": 1, "//": "40 minutes + 10 minutes / level; 4 hours at max level", - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(240000, 600)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1440000, 600)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(60000, 0.05)" ] }, + "min_duration": 240000, + "max_duration": 1440000, + "duration_increment": 60000, "learn_spells": { "summon_magic_comcycle": 10 } }, { @@ -490,7 +490,7 @@ "name": "Summon Co-op cycle", "description": "A bigger ride for bigger loot. Or a second cowboy.", "valid_targets": [ "ground" ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "summon_vehicle", "spell_class": "TECHNOMANCER", @@ -500,14 +500,14 @@ "difficulty": 6, "max_level": 20, "base_casting_time": 1250, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(1000, 2)" ] }, + "base_energy_cost": 1000, "min_range": 1, "max_range": 10, "range_increment": 1, "//": "40 minutes + 10 minutes / level; 4 hours at max level", - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(240000, 600)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1440000, 600)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(60000, 0.05)" ] } + "min_duration": 240000, + "max_duration": 1440000, + "duration_increment": 60000 }, { "id": "overcharge_burn", @@ -537,9 +537,9 @@ "effect": "attack", "shape": "cone", "extra_effects": [ { "id": "overcharge_burn", "hit_self": true }, { "id": "eoc_evocation_setup", "hit_self": true } ], - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(90, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(5.0, 0.045)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(200, 0.5)" ] }, + "min_damage": 90, + "damage_increment": 5.0, + "max_damage": 200, "min_range": 8, "range_increment": 0.35, "max_range": 20, @@ -556,7 +556,7 @@ "base_casting_time": 120, "final_casting_time": 120, "valid_targets": [ "hostile", "ground" ], - "flags": [ "LOUD", "VERBAL", "NO_HANDS", "NO_LEGS" ] + "flags": [ "EVOCATION_SPELL", "LOUD", "VERBAL", "NO_HANDS", "NO_LEGS" ] }, { "type": "SPELL", @@ -564,7 +564,7 @@ "id": "x-ray", "description": "You fire a cone of X-rays that magically allows you to see that area for a short time.", "valid_targets": [ "hostile", "ground", "ally" ], - "flags": [ "CONCENTRATE", "IGNORE_WALLS" ], + "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "IGNORE_WALLS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "effect": "attack", "shape": "cone", @@ -572,9 +572,9 @@ "min_field_intensity": 1, "max_field_intensity": 1, "difficulty": 6, - "min_range": { "math": [ "evocation_proficiency_bonus_calculate(5, 0.2)" ] }, - "max_range": { "math": [ "evocation_proficiency_bonus_calculate(20, 0.2)" ] }, - "range_increment": { "math": [ "evocation_proficiency_bonus_calculate(0.75, 0.05)" ] }, + "min_range": 5, + "max_range": 20, + "range_increment": 0.75, "max_level": 20, "min_aoe": 15, "max_aoe": 60, @@ -596,13 +596,13 @@ "effect": "ter_transform", "effect_str": "unlock_doors", "shape": "blast", - "flags": [ "NO_LEGS", "SOMATIC", "CONCENTRATE", "NO_PROJECTILE" ], + "flags": [ "CHANNELING_SPELL", "NO_LEGS", "SOMATIC", "CONCENTRATE", "NO_PROJECTILE" ], "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "max_level": 15, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(1200, 6)" ] }, - "final_casting_time": { "math": [ "channeling_proficiency_negate_calculate(1050, 6)" ] }, - "casting_time_increment": { "math": [ "channeling_proficiency_negate_calculate(-10, 0.07)" ] }, - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(350, 5)" ] }, + "base_casting_time": 1200, + "final_casting_time": 1050, + "casting_time_increment": -10, + "base_energy_cost": 350, "difficulty": 3, "min_range": 1, "max_range": 4, @@ -619,13 +619,13 @@ "effect": "ter_transform", "effect_str": "unlock_all_doors", "shape": "blast", - "flags": [ "NO_LEGS", "SOMATIC", "CONCENTRATE", "NO_PROJECTILE" ], + "flags": [ "CHANNELING_SPELL", "NO_LEGS", "SOMATIC", "CONCENTRATE", "NO_PROJECTILE" ], "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "max_level": 15, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(2600, 6)" ] }, - "final_casting_time": { "math": [ "channeling_proficiency_negate_calculate(2375, 6)" ] }, - "casting_time_increment": { "math": [ "channeling_proficiency_negate_calculate(-15, 0.07)" ] }, - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(800, 5)" ] }, + "base_casting_time": 2600, + "final_casting_time": 2375, + "casting_time_increment": -15, + "base_energy_cost": 800, "difficulty": 7, "min_range": 6, "max_range": 6, @@ -638,7 +638,7 @@ "name": "Knifeshot", "description": "This spell generates a magnetic field around a knife, before launching it at high speed.", "valid_targets": [ "hostile", "ally" ], - "flags": [ "CONCENTRATE", "SILENT", "SOMATIC", "NO_HANDS" ], + "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SILENT", "SOMATIC", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "components": "spell_components_knifeshot", "effect": "attack", @@ -651,9 +651,9 @@ "casting_time_increment": -15, "final_casting_time": 300, "base_energy_cost": 50, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(30, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(70, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(2.0, 0.05)" ] }, + "min_damage": 30, + "max_damage": 70, + "damage_increment": 2.0, "damage_type": "stab", "min_range": 10, "max_range": 20, @@ -669,7 +669,7 @@ "name": "Hypervelocity Knifeshot", "description": "This spell goes even further beyond, launching a knife so fast it can pierce through targets.", "valid_targets": [ "hostile", "ally" ], - "flags": [ "CONCENTRATE", "LOUD", "SOMATIC", "NO_HANDS", "NO_FAIL" ], + "flags": [ "EVOCATION_SPELL", "CONCENTRATE", "LOUD", "SOMATIC", "NO_HANDS", "NO_FAIL" ], "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], "components": "spell_components_knifeshot", "effect": "attack", @@ -680,8 +680,8 @@ "max_level": 1, "base_casting_time": 500, "base_energy_cost": 125, - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(125, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(125, 0.5)" ] }, + "min_damage": 125, + "max_damage": 125, "damage_type": "bullet", "min_range": 7, "max_range": 7, @@ -694,8 +694,8 @@ "name": "Shutdown", "description": "Overload the target, stunning it briefly. Originally developed during the Roman Empire to target out-of-control golems, this spell became significantly more popular in modern times when it was discovered it also worked on robots and machinery.", "valid_targets": [ "hostile", "ally" ], - "flags": [ "VERBAL", "SOMATIC", "RANDOM_DAMAGE", "SILENT" ], - "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], + "flags": [ "ENERVATION_SPELL", "VERBAL", "SOMATIC", "RANDOM_DAMAGE", "SILENT" ], + "extra_effects": [ { "id": "eoc_enervation_setup", "hit_self": true } ], "effect": "mod_moves", "shape": "blast", "spell_class": "TECHNOMANCER", @@ -704,12 +704,8 @@ "min_range": 5, "max_range": 20, "range_increment": 1, - "min_damage": { - "math": [ "( (u_spell_level('technomancer_robot_shutdown') * -15) - evocation_proficiency_bonus_calculate(200, 1))" ] - }, - "max_damage": { - "math": [ "( (u_spell_level('technomancer_robot_shutdown') * -25) - evocation_proficiency_bonus_calculate(400, 1))" ] - }, + "min_damage": { "math": [ "(u_spell_level('technomancer_robot_shutdown') * -15) * evocation_proficiency_modifier()" ] }, + "max_damage": { "math": [ "(u_spell_level('technomancer_robot_shutdown') * -25) * evocation_proficiency_modifier()" ] }, "energy_source": "MANA", "base_casting_time": 150, "base_energy_cost": 250, @@ -721,7 +717,7 @@ "name": "Speak through the Aether", "description": "One of the most widely-known pre-modern technomantic spells, this allows technomancers to communicate at a distance. Its use declined rapidly after Guglielmo Marconi invented the radio and suddenly everyone could listen in to their conversations.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "spawn_item", "effect_str": "technomancer_summoned_radio", @@ -729,12 +725,12 @@ "spell_class": "TECHNOMANCER", "difficulty": 4, "max_level": 15, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(30000, 200)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(180000, 200)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(15000, 0.1)" ] }, + "min_duration": 30000, + "max_duration": 180000, + "duration_increment": 15000, "energy_source": "MANA", "base_casting_time": 6000, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 2)" ] } + "base_energy_cost": 300 }, { "id": "technomancer_conjure_ups", @@ -742,7 +738,7 @@ "name": "Power Supply", "description": "For the technomancer with no enhancements, this spell summons a power supply composed of pure mana that can be used to charge any compatible device. It will continually recharge until the duration expires.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], "effect": "effect_on_condition", "effect_str": "EOC_CONJURE_UPS_SWITCHER", @@ -750,14 +746,14 @@ "spell_class": "TECHNOMANCER", "difficulty": 7, "max_level": 20, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(100000, 3000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(300000, 3000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(10000, 0.05)" ] }, + "min_duration": 100000, + "max_duration": 300000, + "duration_increment": 10000, "energy_source": "MANA", "base_casting_time": 3000, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 2)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(450, 2)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(7, 0.05)" ] } + "base_energy_cost": 300, + "final_energy_cost": 450, + "energy_increment": 7 }, { "type": "effect_on_condition", @@ -765,7 +761,7 @@ "effect": [ { "queue_eocs": "EOC_CONJURE_UPS_REMOVER", - "time_in_future": { "math": [ "(u_spell_level('technomancer_conjure_ups') * 100 ) + 1000" ] } + "time_in_future": { "math": [ "((u_spell_level('technomancer_conjure_ups') * 100 ) + 1000) * summoning_proficiency_modifier()" ] } }, { "switch": { "math": [ "u_spell_level('technomancer_conjure_ups')" ] }, @@ -798,7 +794,7 @@ "name": "Voltaic Touch", "description": "Using the principles of what were once called \"voltaic arcs\", you can electrically heat metal hot enough to weld it together.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], + "flags": [ "CONJURATION_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], "effect": "spawn_item", "effect_str": "technomancer_welder", "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], @@ -808,11 +804,11 @@ "max_level": 15, "min_damage": 1, "max_damage": 1, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 3000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(720000, 3000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(24000, 0.07)" ] }, + "min_duration": 360000, + "max_duration": 720000, + "duration_increment": 24000, "energy_source": "MANA", - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 1)" ] }, + "base_energy_cost": 300, "base_casting_time": 3000 }, { @@ -822,7 +818,7 @@ "description": "This fancifully-named spell actually restores power to a battery or power grid. An esoteric curiosity until electrical power became widespread, even then the power efficiency of fossil fuels rendered it a niche spell.", "valid_targets": [ "ground" ], "spell_class": "TECHNOMANCER", - "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "flags": [ "CHANNELING_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_LEGS", "NO_EXPLOSION_SFX" ], "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], "difficulty": 5, "max_level": 20, @@ -833,8 +829,8 @@ "damage_increment": 2350, "min_range": 1, "energy_source": "MANA", - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(500, 5)" ] }, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(6000, 12)" ] } + "base_energy_cost": 500, + "base_casting_time": 6000 }, { "id": "technomancer_gain_electronics_computer_spell", @@ -843,7 +839,7 @@ "description": "This spell grants the caster an intuitive understanding of electronics and computers, making their use, repair, and construction much easier.", "valid_targets": [ "self" ], "spell_class": "TECHNOMANCER", - "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_LEGS" ], + "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC", "NO_LEGS" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "effect": "attack", "effect_str": "effect_technomancer_gain_electronics_computer", @@ -851,12 +847,12 @@ "shape": "blast", "difficulty": 1, "max_level": 15, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(90000, 9000)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1440000, 9000)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(90000, 0.07)" ] }, + "min_duration": 90000, + "max_duration": 1440000, + "duration_increment": 90000, "energy_source": "MANA", "base_energy_cost": 350, - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(3000, 20)" ] } + "base_casting_time": 3000 }, { "id": "technomancer_create_ups_connection", @@ -865,8 +861,8 @@ "description": "Enchant an item so that it is capable of drawing power wirelessly through the air from a compatible power source.", "valid_targets": [ "self" ], "spell_class": "TECHNOMANCER", - "flags": [ "CONCENTRATE", "VERBAL", "NO_HANDS" ], - "extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ], + "flags": [ "ENHANCEMENT_SPELL", "CONCENTRATE", "VERBAL", "NO_HANDS" ], + "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "effect": "effect_on_condition", "effect_str": "EOC_TECHNOMANCER_POWER_LINKAGE", "components": "spell_components_create_ups_connection", @@ -874,8 +870,8 @@ "difficulty": 6, "max_level": 15, "energy_source": "MANA", - "base_energy_cost": { "math": [ "channeling_proficiency_negate_calculate(600, 5)" ] }, - "base_casting_time": { "math": [ "channeling_proficiency_negate_calculate(720000, 500)" ] } + "base_energy_cost": 600, + "base_casting_time": 720000 }, { "type": "effect_on_condition", @@ -898,18 +894,18 @@ "effect_str": "technomancer_far_sight_lens", "components": "spell_components_technomancer_far_sight", "shape": "blast", - "flags": [ "SOMATIC", "CONCENTRATE", "VERBAL" ], - "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], + "flags": [ "TRANSFORMATION_SPELL", "SOMATIC", "CONCENTRATE", "VERBAL" ], + "extra_effects": [ { "id": "eoc_transformation_setup", "hit_self": true } ], "spell_class": "TECHNOMANCER", "difficulty": 6, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(360000, 1000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(1440000, 1000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(72000, 0.07)" ] }, + "min_duration": 360000, + "max_duration": 1440000, + "duration_increment": 72000, "energy_source": "MANA", "base_casting_time": 60000, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(600, 2)" ] }, - "final_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 2)" ] }, - "energy_increment": { "math": [ "summoning_proficiency_negate_calculate(-20, 0.07)" ] }, + "base_energy_cost": 600, + "final_energy_cost": 300, + "energy_increment": -20, "max_level": 15, "learn_spells": { "technomancer_far_sight_plus": 15 } }, @@ -919,17 +915,17 @@ "name": "Enhanced Zoom Lens", "description": "This lens can see farther than ever! Now you know this spell like the back of your hand, and have started to design your own version.", "valid_targets": [ "self" ], - "flags": [ "SOMATIC", "CONCENTRATE", "VERBAL", "NO_FAIL" ], - "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], + "flags": [ "TRANSFORMATION_SPELL", "SOMATIC", "CONCENTRATE", "VERBAL", "NO_FAIL" ], + "extra_effects": [ { "id": "eoc_transformation_setup", "hit_self": true } ], "effect": "spawn_item", "effect_str": "technomancer_far_sight_lens", "components": "spell_components_technomancer_far_sight", "shape": "blast", "base_casting_time": 60000, - "base_energy_cost": { "math": [ "summoning_proficiency_negate_calculate(300, 2)" ] }, - "min_duration": { "math": [ "summoning_proficiency_bonus_calculate(1440000, 3000)" ] }, - "max_duration": { "math": [ "summoning_proficiency_bonus_calculate(8640000, 2000)" ] }, - "duration_increment": { "math": [ "summoning_proficiency_bonus_calculate(288000, 0.04)" ] }, + "base_energy_cost": 300, + "min_duration": 1440000, + "max_duration": 8640000, + "duration_increment": 288000, "difficulty": 9, "max_level": 25, "spell_class": "TECHNOMANCER", @@ -941,19 +937,19 @@ "name": { "str": "The Body Mechanical" }, "description": "With a word of power, you spur your body to function as a machine would, partially ignoring the effects of pain for a brief moment.", "valid_targets": [ "self" ], - "flags": [ "VERBAL", "NO_LEGS", "NO_HANDS" ], + "flags": [ "ENHANCEMENT_SPELL", "VERBAL", "NO_LEGS", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_enhancement_setup", "hit_self": true } ], "effect": "attack", "effect_str": "effect_technomancer_pain_ignore", "shape": "blast", - "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(50, 0.33)" ] }, + "base_casting_time": 50, "base_energy_cost": 25, "energy_source": "BIONIC", "spell_class": "TECHNOMANCER", "difficulty": 4, "max_level": 15, - "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1000, 10)" ] }, - "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(2500, 10)" ] }, - "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(100, 0.07)" ] } + "min_duration": 1000, + "max_duration": 2500, + "duration_increment": 100 } ] diff --git a/data/mods/Magiclysm/jmath.json b/data/mods/Magiclysm/jmath.json index 68fc8f6722d7c..881499ce8445d 100644 --- a/data/mods/Magiclysm/jmath.json +++ b/data/mods/Magiclysm/jmath.json @@ -1,89 +1,28 @@ [ - { - "type": "jmath_function", - "id": "evocation_proficiency_bonus_calculate", - "num_args": 2, - "return": "_0 + ((((u_proficiency('prof_magic_evocation_beginner', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_evocation_apprentice', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_evocation_master', 'format': 'percent') * 1) / 10)) * _1 )" - }, - { - "type": "jmath_function", - "id": "evocation_proficiency_negate_calculate", - "num_args": 2, - "return": "_0 - ((((u_proficiency('prof_magic_evocation_beginner', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_evocation_apprentice', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_evocation_master', 'format': 'percent') * 1) / 10)) * _1 )" - }, { "type": "jmath_function", "id": "evocation_proficiency_modifier", "num_args": 0, "return": "1 + ( (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": "jmath_function", - "id": "channeling_proficiency_negate_calculate", - "num_args": 2, - "return": "_0 - (((((u_proficiency('prof_magic_channel_beginner', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_channel_apprentice', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_channel_master', 'format': 'percent') * 1) / 10))) * _1 )" - }, - { - "type": "jmath_function", - "id": "channeling_proficiency_bonus_calculate", - "num_args": 2, - "return": "_0 + (((((u_proficiency('prof_magic_channel_beginner', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_channel_apprentice', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_channel_master', 'format': 'percent') * 1) / 10))) * _1 )" - }, { "type": "jmath_function", "id": "channeling_proficiency_modifier", "num_args": 0, "return": "1 + ( (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) )" }, - { - "type": "jmath_function", - "id": "summoning_proficiency_bonus_calculate", - "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_negate_calculate", - "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", - "//": "As a general rule, this jmath should give a 20% bonus to a spell when all 3 proficiencies are at max level.", - "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": "conveyance_proficiency_bonus_calculate", - "num_args": 2, - "return": "_0 + (((((u_proficiency('prof_magic_conveyance_beginner', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_conveyance_apprentice', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_conveyance_master', 'format': 'percent') * 1) / 10))) * _1 )" - }, - { - "type": "jmath_function", - "id": "conveyance_proficiency_negate_calculate", - "num_args": 2, - "return": "_0 - (((((u_proficiency('prof_magic_conveyance_beginner', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_conveyance_apprentice', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_conveyance_master', 'format': 'percent') * 1) / 10))) * _1 )" - }, { "type": "jmath_function", "id": "restoration_proficiency_modifier", diff --git a/data/mods/Magiclysm/magic_balance.md b/data/mods/Magiclysm/magic_balance.md index 0dba2f6b15f1b..946863d976438 100644 --- a/data/mods/Magiclysm/magic_balance.md +++ b/data/mods/Magiclysm/magic_balance.md @@ -20,8 +20,6 @@ - [Conjuration](#conjuration) - [Enhancement](#enhancement) - [Conveyance](#conveyance) - - [How The JMATH Works](#how-the-jmath-works) - - [How JMATH Outputs are Used in Spells](#how-jmath-outputs-are-used-in-spells) - [Advice for Using Proficiencies in Spells](#advice-for-using-proficiencies-in-spells) --- @@ -106,78 +104,11 @@ Enervation spells are the opposite of Enhancement, being spells that reduce the 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. ## Restoration -Restoration spells return the physical, spiritually, emotional, or magical capabilities of the target to its ideal state. Spells like Cure Light Wounds, Sacrificial Regrowth, Mind over Pain, or Stone's Endurance are all restoration spells. Proficiency in Restoration will reduce the casting time and increase the amount healed. +Restoration spells generally return the physical, spiritually, emotional, or magical capabilities of the target to its ideal state. Spells like Cure Light Wounds, Sacrificial Regrowth, Mind over Pain, or Stone's Endurance are all restoration spells. Restoratiojn also has a dark side, however; spells that drain the target of some capability to restore it to the caster are also restoration spells. Proficiency in Restoration will reduce the casting time and increase the amount healed. ## Transformation Transformation spells change one thing into another, such as changing a handful of leaves into gold or changing a charging enemy into a housecat. This also includes partial tranformations of the target. Spells like Harvest of the Hunter, Vicious Tentacle, or Convert are transformation spells. Proficiency in Transformation will increase the duration and reduce the casting time. -#### How The JMATH Works -The JMATH behind spellcasting proficiencies is fairly simple, this is how it works: - -Take for example this function for evocation proficiency bonuses: -```JSON - "type": "jmath_function", - "id": "evocation_proficiency_bonus_calculate", - "num_args": 2, - "return": "_0 + ((((u_proficiency('prof_magic_evocation_beginner', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_evocation_apprentice', 'format': 'percent') * 1) / 10) + ((u_proficiency('prof_magic_evocation_master', 'format': 'percent') * 1) / 10)) * _1 )" -``` -What this does is it takes the three associated proficiencies for Evocation (Beginner, Apprentice, and Master) and sees how much you know of that proficiency, on the percent scale of 0% to 100%. It will then take this found value and convert it from a percent to an integer by multiplying it by 1, and this allows the value to be used in `math` calculations. The function then divides the converted integer by 10. This is used for balancing reasons, since initial testing of `math` calculations using a 1 to 1 conversion resulted in spells producing insane damage numbers and costing 0 mana to cast. It repeats this process for all three proficiencies, and then adds them together, giving us a maximum value of 30. This number is used by the game to determine how big of a bonus you get to things like damage and cost reduction, since this maximum value requires that the character master all 3 of these proficiencies in full. - -All of the proficiency bonus and negation JMATH functions work the same way, just with different listed proficiencies to calculate off of. One works just like the other, except if it adds or subtracts using the output value. - -_0 and _1 will be discussed in [How JMATH Outputs are Used in Spells](#how-jmath-outputs-are-used-in-spells) - -##### How JMATH Outputs are Used in Spells -For our next example, let's take a look at the JSON of the classic Kelvinist staple, Point Flare: -```JSON - "id": "point_flare", - "type": "SPELL", - "name": "Point Flare", - "description": "Generates strong heat at the targeted location, damaging anything susceptible to high temperatures.", - "valid_targets": [ "hostile" ], - "flags": [ "CONCENTRATE", "SOMATIC", "LOUD", "NO_PROJECTILE" ], - "extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ], - "effect": "attack", - "shape": "blast", - "damage_type": "heat", - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(16, 0.5)" ] }, - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(4.0, 0.0625)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(80, 0.5)" ] }, - "min_range": 3, - "range_increment": 0.5, - "max_range": 11, - "base_energy_cost": 75, - "spell_class": "KELVINIST", - "difficulty": 4, - "max_level": 16, - "base_casting_time": 300, - "energy_source": "MANA" -``` - -There are a few important numbers out of this that relate to how the previous JMATH is used. - -Min and Max Damage: -```JSON - "min_damage": { "math": [ "evocation_proficiency_bonus_calculate(16, 0.5)" ] }, - "max_damage": { "math": [ "evocation_proficiency_bonus_calculate(80, 0.5)" ] } -``` -The first value listed in the `min_damage` and `max_damage` arrays is the base damage of the spell, the _0 in [How The JMATH Works](#how-the-jmath-works). This is what damage the spell would do if the player had no experience at all in Evocation proficiencies, and is what the calculated bonus is added too in the aforementioned example. 0.5 is the _1 that was seen in [How The JMATH Works](#how-the-jmath-works), and this is a scaling modifier. Not all spells do the same damage or scale the same way, so this serves as a way to tune the bonuses of JMATH calculations. In greater detail, this value is what the sum of the three proficiencies is multiplied by at the end of the JMATH calculation to produce the final bonus value, which is added to _0. - -Damage Increments: -```JSON - "damage_increment": { "math": [ "evocation_proficiency_bonus_calculate(4.0, 0.0625)" ] } -``` -Damage increments work off of the same logic as stated above, with 4.0 being the base increase with no proficiency, and 0.0625 being the scaling modifier. In this case, the scaling modifier limits how much bonus damage is added to the spell upon level-up, thus keeping the natural flow of spell progression in check. Without this value, spells would hit their max damage after 4-6 level-ups, giving players no reason to study above that level and breaking magic balance. To find the scaling modifier for damage increments, simply divide the base `damage_increment` with the difference between base `max_damage` and base `min_damage` of the spell in question. Mathematically expressed, it looks like this for Point Flare; -```JSON - 4.0 / (80 - 16) - 4.0 / 64 - 0.0625 -``` -which gives us our result of 0.0625. This already accounts for spell levels and such, so you don't have to worry about that. - -This same process can be repeated for all needed calculations in proficiency bonuses and negations. For example, this process applies to `base_energy_cost`, `final_energy_cost`, and `energy_increment` when calculating the proficiency negations on mana costs for Conjuration spells, or `min_duration`, `max_duration`, and `duration_increment` for Enhancement bonusues extending the buff's time. - ### Advice for Using Proficiencies in Spells -1. When determining scaling modifiers for proficiency bonuses, remeber to account for the maximum possible bonus (all three proficiencies at 100%, max spell level). If this is not done, then your spell might not scale properly at higher power levels, or become too strong when the player accquires all used proficiencies. -2. Ideally, bonuses should cap around 20% of the base values at maximum proficiency, but this is mainly a rule of thumb. It's up to the discretion of the programmer for how big they want their bonuses to go. So, if something feels to powerful, then reel it back in at bit. If it feels underwhelming, don't be afraid to buff it. -3. When working on spells with multiple effects, such as an `extra_effects` entry, be sure to account for all of the sub-spells and have them use the proper `math` functions. Otherwise, your spell won't scale properly. \ No newline at end of file +1. When picking a spell category, make sure to add the appropriate flag (such as `CHANNELING_SPELL` or `RESTORATION_SPELL`) and add an `extra_effects` to call the appropriate spell to grant proficiency xp. If you're using multiple subspells, make sure to add the flag to all the subspells as well. +2. When working on spells with multiple effects, such as an `extra_effects` entry, be sure to account for all of the sub-spells and have them use the proper `math` functions. Otherwise, your spell won't scale properly. \ No newline at end of file diff --git a/data/mods/Magiclysm/obsolete/eocs.json b/data/mods/Magiclysm/obsolete/eocs.json index fc9a8f4cff355..31c31880415f2 100644 --- a/data/mods/Magiclysm/obsolete/eocs.json +++ b/data/mods/Magiclysm/obsolete/eocs.json @@ -87,12 +87,8 @@ "difficulty": 4, "min_damage": 1, "max_damage": 1, - "min_duration": { - "math": [ "( (u_spell_level('druid_water_walking') * 30000) + enhancement_proficiency_bonus_calculate(30000, 200))" ] - }, - "max_duration": { - "math": [ "( (u_spell_level('druid_water_walking') * 30000) + enhancement_proficiency_bonus_calculate(30000, 200))" ] - } + "min_duration": { "math": [ "(u_spell_level('druid_water_walking') * 30000) * enhancement_proficiency_modifier()" ] }, + "max_duration": { "math": [ "(u_spell_level('druid_water_walking') * 30000) + enhancement_proficiency_modifier()" ] } }, { "type": "effect_on_condition",