Skip to content

Commit

Permalink
Merge pull request #76443 from Standing-Storm/stormshaper-technomance…
Browse files Browse the repository at this point in the history
…r-eoc-rework

[Magiclysm] Move bulk of spellcasting proficiency processing to dedicated EoCs and out of spell JSON (Finish)
  • Loading branch information
Maleclypse authored Sep 16, 2024
2 parents b7fc6a9 + 5cf9db8 commit 3197800
Show file tree
Hide file tree
Showing 42 changed files with 932 additions and 1,041 deletions.
2 changes: 1 addition & 1 deletion data/mods/Magiclysm/Spells/animist.json
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
24 changes: 12 additions & 12 deletions data/mods/Magiclysm/Spells/attunements/Alchemist.json
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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
},
Expand All @@ -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",
Expand All @@ -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
},
{
Expand All @@ -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",
Expand All @@ -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
}
]
16 changes: 8 additions & 8 deletions data/mods/Magiclysm/Spells/attunements/Artificer.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -21,15 +21,15 @@
"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,
"max_field_intensity": 1,
"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"
},
{
Expand Down Expand Up @@ -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"
}
]
20 changes: 10 additions & 10 deletions data/mods/Magiclysm/Spells/attunements/Biotek.json
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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"
Expand Down
18 changes: 9 additions & 9 deletions data/mods/Magiclysm/Spells/attunements/Blood_Mage.json
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down
23 changes: 12 additions & 11 deletions data/mods/Magiclysm/Spells/attunements/Boreal_Mage.json
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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,
Expand All @@ -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"
}
]
36 changes: 21 additions & 15 deletions data/mods/Magiclysm/Spells/attunements/Cleansing_Flame.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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
},
{
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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",
Expand Down
20 changes: 10 additions & 10 deletions data/mods/Magiclysm/Spells/attunements/Crusader.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
},
{
Expand All @@ -77,18 +77,18 @@
"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,
"effect": "spawn_item",
"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",
Expand Down
Loading

0 comments on commit 3197800

Please sign in to comment.