Skip to content

Commit

Permalink
Merge pull request #78611 from Standing-Storm/spell-damage-randomization
Browse files Browse the repository at this point in the history
[Magiclysm] The Great Damage Randomization and Normalization
  • Loading branch information
Anton Burmistrov authored Dec 21, 2024
2 parents 1987718 + e185d7c commit 8e1af0c
Show file tree
Hide file tree
Showing 36 changed files with 476 additions and 494 deletions.
67 changes: 30 additions & 37 deletions data/mods/Magiclysm/Spells/animist.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"name": "Smite",
"description": "Evil has become pervasive throughout the world. Let your power be the light that shines in the darkness!",
"valid_targets": [ "hostile" ],
"min_damage": 10,
"max_damage": 200,
"min_damage": { "math": [ "(u_spell_level('smite') * 5) + 5" ] },
"max_damage": { "math": [ "(u_spell_level('smite') * 9) + 10" ] },
"damage_increment": 15,
"min_range": 1,
"max_range": 1,
Expand All @@ -22,7 +22,7 @@
"difficulty": 8,
"max_level": 15,
"damage_type": "light",
"flags": [ "EVOCATION_SPELL", "VERBAL", "LOUD", "NO_HANDS", "SPLIT_DAMAGE" ],
"flags": [ "EVOCATION_SPELL", "VERBAL", "LOUD", "RANDOM_DAMAGE", "NO_HANDS", "SPLIT_DAMAGE" ],
"extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
"energy_source": "MANA"
},
Expand All @@ -32,9 +32,8 @@
"name": "Life Conversion",
"description": "You channel lifeforce itself into your spiritual energy. You consume a rune to regain mana.",
"valid_targets": [ "self" ],
"min_damage": 75,
"damage_increment": 15,
"max_damage": 600,
"min_damage": { "math": [ "(u_spell_level('recover_mana') * 10) + 30" ] },
"max_damage": { "math": [ "(u_spell_level('recover_mana') * 20) + 70" ] },
"max_level": 35,
"effect": "recover_energy",
"effect_str": "MANA",
Expand All @@ -43,8 +42,8 @@
"energy_source": "MANA",
"components": "spell_components_rune_animist",
"base_casting_time": 500,
"flags": [ "CHANNELING_SPELL", "SOMATIC", "VERBAL", "SILENT", "NO_LEGS", "CONSUMES_RUNES" ],
"extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ],
"flags": [ "RESTORATION_SPELL", "SOMATIC", "RANDOM_DAMAGE", "VERBAL", "SILENT", "NO_LEGS", "CONSUMES_RUNES" ],
"extra_effects": [ { "id": "eoc_restoration_setup", "hit_self": true } ],
"difficulty": 3
},
{
Expand All @@ -53,9 +52,8 @@
"name": "Mind over Pain",
"description": "With an intense ritual that resembles crossfit, you manage to put some of your pain at bay.",
"valid_targets": [ "self" ],
"min_damage": 10,
"max_damage": 100,
"damage_increment": 2,
"min_damage": { "math": [ "(u_spell_level('recover_pain') * 1) + 5" ] },
"max_damage": { "math": [ "(u_spell_level('recover_pain') * 2) + 10" ] },
"max_level": 45,
"spell_class": "ANIMIST",
"effect": "recover_energy",
Expand All @@ -65,7 +63,7 @@
"base_casting_time": 50000,
"base_energy_cost": 5000,
"energy_increment": 500.0,
"flags": [ "RESTORATION_SPELL", "SOMATIC", "VERBAL", "PAIN_NORESIST" ],
"flags": [ "RESTORATION_SPELL", "RANDOM_DAMAGE", "SOMATIC", "VERBAL", "PAIN_NORESIST" ],
"extra_effects": [ { "id": "eoc_restoration_setup", "hit_self": true } ],
"final_energy_cost": 10000
},
Expand Down Expand Up @@ -399,16 +397,16 @@
"EVOCATION_SPELL",
"NO_LEGS",
"CONCENTRATE",
"RANDOM_DAMAGE",
"SOMATIC",
"NO_PROJECTILE",
"NO_HANDS",
"CONSUMES_RUNES",
"SPLIT_DAMAGE"
],
"components": "spell_components_rune_animist",
"min_damage": 10,
"max_damage": 160,
"damage_increment": 6,
"min_damage": { "math": [ "(u_spell_level('necrotic_gaze') * 2) + 4" ] },
"max_damage": { "math": [ "(u_spell_level('necrotic_gaze') * 5) + 8" ] },
"min_range": 3,
"max_range": 5,
"range_increment": 0.1,
Expand Down Expand Up @@ -585,11 +583,10 @@
"name": "Disruption Bolt",
"description": "Release a resonant bolt of spiritual energy at a nearby target. It will disrupt the natural link between matter and animus, causing heavy, non-lethal damage.",
"valid_targets": [ "hostile" ],
"flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "NO_LEGS", "PERCENTAGE_DAMAGE", "SILENT", "NO_PROJECTILE" ],
"min_damage": 35,
"flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "RANDOM_DAMAGE", "NO_LEGS", "PERCENTAGE_DAMAGE", "SILENT", "NO_PROJECTILE" ],
"damage_type": "necrotic",
"damage_increment": 1,
"max_damage": 50,
"min_damage": { "math": [ "(u_spell_level('disruption_bolt') * 0.5) + 5" ] },
"max_damage": { "math": [ "(u_spell_level('disruption_bolt') * 1.5) + 10" ] },
"min_range": 2,
"range_increment": 0.5,
"max_range": 66,
Expand Down Expand Up @@ -724,19 +721,16 @@
"base_energy_cost": 150,
"damage_type": "necrotic",
"max_level": 25,
"min_damage": 1,
"max_damage": 26,
"damage_increment": 1,
"min_range": 3,
"max_range": 5,
"range_increment": 0.1,
"min_duration": 500,
"max_duration": 1000,
"duration_increment": 20,
"min_dot": 2,
"max_dot": 52,
"min_dot": { "math": [ "(u_spell_level('bleed') * 0.3) + 0.2" ] },
"max_dot": { "math": [ "(u_spell_level('bleed') * 0.3) + 0.2" ] },
"extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
"dot_increment": 2
"ignored_monster_species": [ "ROBOT", "NETHER_EMANATION", "ROBOT_FLYING", "GOLEM" ]
},
{
"id": "animist_summon_decaying_boneclub",
Expand Down Expand Up @@ -795,18 +789,17 @@
"id": "rupture",
"type": "SPELL",
"name": "Rupture",
"description": "You pour mana into an unwilling and unprepared vessel, causing cellular break-down, internal hemorrhaging, muddling ley lines, and overcharging electronics. Immensely gruesome and crude, it was once illegal world-wide, not that it matters now.",
"description": "You pour mana into an unwilling and unprepared vessel, causing cellular break-down, internal hemorrhaging, muddling ley lines, and overcharging electronics. The more powerful the spell, the faster the damage happens. Immensely gruesome and crude, it was once illegal world-wide, not that it matters now.",
"effect": "attack",
"shape": "blast",
"valid_targets": [ "hostile" ],
"flags": [ "EVOCATION_SPELL", "SOMATIC", "NO_PROJECTILE", "LOUD", "NO_HANDS" ],
"flags": [ "EVOCATION_SPELL", "SOMATIC", "RANDOM_DAMAGE", "NO_PROJECTILE", "LOUD", "NO_HANDS" ],
"max_level": 25,
"min_range": 1,
"range_increment": 0.1,
"max_range": 3,
"min_damage": 0,
"max_damage": 90,
"damage_increment": 3.6,
"min_damage": { "math": [ "(u_spell_level('rupture') * 0.5) + 0" ] },
"max_damage": { "math": [ "(u_spell_level('rupture') * 2) + 10" ] },
"base_casting_time": 50,
"base_energy_cost": 500,
"final_energy_cost": 250,
Expand All @@ -815,12 +808,13 @@
"min_duration": 1500,
"max_duration": 0,
"duration_increment": -60,
"min_dot": 6,
"max_dot": 6,
"min_dot": 5,
"max_dot": 5,
"energy_source": "MANA",
"difficulty": 3,
"extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
"damage_type": "necrotic"
"damage_type": "necrotic",
"ignored_monster_species": [ "ROBOT", "NETHER_EMANATION", "ROBOT_FLYING", "GOLEM" ]
},
{
"id": "devour",
Expand Down Expand Up @@ -1101,12 +1095,11 @@
"name": "Magic Fissile",
"description": "I cast Magic… Fissile? At the darkness?",
"valid_targets": [ "hostile" ],
"flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "NO_LEGS", "SILENT", "NO_PROJECTILE" ],
"flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC", "RANDOM_DAMAGE", "NO_LEGS", "SILENT", "NO_PROJECTILE" ],
"extra_effects": [ { "id": "animist_radiation_bolt", "hit_self": false }, { "id": "eoc_evocation_setup", "hit_self": true } ],
"min_damage": 1,
"damage_increment": 1.5,
"min_damage": { "math": [ "(u_spell_level('animist_magic_fissile') * 0.75) + 0" ] },
"max_damage": { "math": [ "(u_spell_level('animist_magic_fissile') * 1) + 3" ] },
"damage_type": "necrotic",
"max_damage": 20,
"min_range": 8,
"range_increment": 0.8,
"max_range": 20,
Expand Down
14 changes: 6 additions & 8 deletions data/mods/Magiclysm/Spells/attunements/Biotek.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@
"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": [ "EVOCATION_SPELL", "MUST_HAVE_CLASS_TO_LEARN" ],
"flags": [ "EVOCATION_SPELL", "RANDOM_DAMAGE", "MUST_HAVE_CLASS_TO_LEARN" ],
"extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
"effect": "dash",
"effect_str": "downed",
"shape": "cone",
"min_damage": 0,
"max_damage": 350,
"damage_increment": 10,
"min_damage": { "math": [ "(u_spell_level('nitro_boost') * 4) + 0" ] },
"max_damage": { "math": [ "(u_spell_level('nitro_boost') * 8.3) + 10" ] },
"damage_type": "bash",
"min_range": 8,
"max_range": 8,
Expand All @@ -37,9 +36,8 @@
"description": "Heals a little bit of damage on the target.",
"valid_targets": [ "self" ],
"extra_effects": [ { "id": "eoc_restoration_setup", "hit_self": true } ],
"min_damage": -5,
"max_damage": -40,
"damage_increment": -1.0,
"min_damage": { "math": [ "(u_spell_level('biotek_healing') * -0.4) - 2" ] },
"max_damage": { "math": [ "(u_spell_level('biotek_healing') * -0.85) - 5" ] },
"max_level": 35,
"effect": "attack",
"shape": "blast",
Expand All @@ -48,7 +46,7 @@
"energy_increment": -20,
"final_energy_cost": 100,
"components": "jury_rig",
"flags": [ "RESTORATION_SPELL", "SOMATIC", "VERBAL", "NO_LEGS", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ],
"flags": [ "RESTORATION_SPELL", "RANDOM_DAMAGE", "SOMATIC", "VERBAL", "NO_LEGS", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ],
"spell_class": "BIOTEK",
"difficulty": 2,
"energy_source": "BIONIC"
Expand Down
12 changes: 5 additions & 7 deletions data/mods/Magiclysm/Spells/attunements/Boreal_Mage.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@
"shape": "cone",
"extra_effects": [ { "id": "auroral_wave_cold" }, { "id": "eoc_evocation_setup", "hit_self": true } ],
"damage_type": "light",
"min_damage": 60,
"damage_increment": 3.0,
"max_damage": 160,
"min_damage": { "math": [ "(u_spell_level('auroral_wave') * 1.1) + 25" ] },
"max_damage": { "math": [ "(u_spell_level('auroral_wave') * 2.4) + 45" ] },
"min_range": 3,
"max_range": 7,
"range_increment": 0.12,
Expand All @@ -38,10 +37,9 @@
"effect": "attack",
"shape": "cone",
"valid_targets": [ "hostile", "ground" ],
"flags": [ "EVOCATION_SPELL", "SPLIT_DAMAGE" ],
"min_damage": 30,
"max_damage": 100,
"damage_increment": 2.0,
"flags": [ "EVOCATION_SPELL", "RANDOM_DAMAGE", "SPLIT_DAMAGE" ],
"min_damage": { "math": [ "(u_spell_level('auroral_wave') * 0.8) + 11" ] },
"max_damage": { "math": [ "(u_spell_level('auroral_wave') * 1.4) + 23" ] },
"min_range": 4,
"max_range": 12,
"range_increment": 0.25,
Expand Down
22 changes: 9 additions & 13 deletions data/mods/Magiclysm/Spells/attunements/Cleansing_Flame.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
"energy_source": "MANA",
"spell_class": "CLEANSING_FLAME",
"difficulty": 8,
"min_damage": 1,
"max_damage": 1,
"max_level": 1,
"base_casting_time": { "math": [ "u_effect_intensity('effect_burning_trail') > -1 ? 0 : 50" ] },
"base_energy_cost": 25
Expand Down Expand Up @@ -106,6 +104,7 @@
"VERBAL",
"NO_LEGS",
"LOUD",
"RANDOM_DAMAGE",
"CONCENTRATE",
"IGNITE_FLAMMABLE",
"MUST_HAVE_CLASS_TO_LEARN",
Expand All @@ -116,9 +115,8 @@
"shape": "blast",
"extra_effects": [ { "id": "immolate_transform" }, { "id": "immolate_push" }, { "id": "eoc_evocation_setup", "hit_self": true } ],
"damage_type": "heat",
"min_damage": 90,
"damage_increment": 4.9,
"max_damage": 260,
"min_damage": { "math": [ "(u_spell_level('immolate') * 2.6) + 61" ] },
"max_damage": { "math": [ "(u_spell_level('immolate') * 4.1) + 79" ] },
"min_range": 4,
"max_range": 8,
"range_increment": 0.12,
Expand Down Expand Up @@ -166,12 +164,11 @@
"base_energy_cost": 800,
"energy_source": "MANA",
"difficulty": 10,
"min_damage": -20,
"max_damage": -120,
"damage_increment": -2.9,
"min_damage": { "math": [ "(u_spell_level('cleansingflame_hermes_heal') * -1.1) - 8" ] },
"max_damage": { "math": [ "(u_spell_level('cleansingflame_hermes_heal') * -2.2) - 15" ] },
"max_level": 35,
"extra_effects": [ { "id": "cleansingflame_hermes_burn" }, { "id": "pain_split" }, { "id": "eoc_restoration_setup", "hit_self": true } ],
"flags": [ "RESTORATION_SPELL", "SOMATIC", "VERBAL", "CONCENTRATE", "LOUD" ]
"flags": [ "RESTORATION_SPELL", "RANDOM_DAMAGE", "SOMATIC", "VERBAL", "CONCENTRATE", "LOUD" ]
},
{
"id": "cleansingflame_hermes_burn",
Expand All @@ -183,12 +180,11 @@
},
"valid_targets": [ "self" ],
"max_level": 35,
"flags": [ "SPLIT_DAMAGE" ],
"flags": [ "RANDOM_DAMAGE", "SPLIT_DAMAGE" ],
"effect": "attack",
"shape": "blast",
"min_damage": 10,
"max_damage": 25,
"damage_increment": 0.45,
"min_damage": 8,
"max_damage": 20,
"min_range": 1,
"max_range": 1,
"damage_type": "cold",
Expand Down
22 changes: 11 additions & 11 deletions data/mods/Magiclysm/Spells/attunements/Earth_Elemental.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@
"shape": "blast",
"effect_str": "downed",
"damage_type": "bash",
"min_damage": 20,
"damage_increment": 4.0,
"max_damage": 160,
"min_damage": { "math": [ "(u_spell_level('quake') * 1.9) + 6" ] },
"max_damage": { "math": [ "(u_spell_level('quake') * 3.1) + 14" ] },
"min_bash_scaling": 1.5,
"bash_scaling_increment": -0.007,
"max_bash_scaling": 1.25,
Expand Down Expand Up @@ -61,13 +60,12 @@
"name": "Rock Blast",
"description": "Fire three large rocks at an enemy, causing blunt damage and knocking it back.",
"valid_targets": [ "hostile" ],
"flags": [ "EVOCATION_SPELL", "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ],
"flags": [ "EVOCATION_SPELL", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ],
"effect": "attack",
"shape": "blast",
"max_level": 35,
"min_damage": 20,
"max_damage": 180,
"damage_increment": 4.6,
"min_damage": { "math": [ "(u_spell_level('rock_blast') * 1.7) + 6" ] },
"max_damage": { "math": [ "(u_spell_level('rock_blast') * 3.8) + 14" ] },
"min_range": 8,
"max_range": 15,
"range_increment": 0.2,
Expand All @@ -90,16 +88,18 @@
{
"id": "single_rock_blast",
"type": "SPELL",
"flags": [ "EVOCATION_SPELL", "NO_EXPLOSION_SFX" ],
"flags": [ "EVOCATION_SPELL", "RANDOM_DAMAGE", "NO_EXPLOSION_SFX" ],
"name": { "str": "Single Rock Blast", "//~": "NO_I18N" },
"description": { "str": "A single portion of the rock blast spell.", "//~": "NO_I18N" },
"valid_targets": [ "hostile" ],
"effect": "attack",
"shape": "blast",
"max_level": 35,
"min_damage": 20,
"max_damage": 180,
"damage_increment": 4.6,
"min_damage": { "math": [ "(u_spell_level('rock_blast') * 1.7) + 6" ] },
"max_damage": { "math": [ "(u_spell_level('rock_blast') * 3.8) + 14" ] },
"min_range": 8,
"max_range": 15,
"range_increment": 0.2,
"damage_type": "bash",
"sound_id": "earth_spell",
"sound_variant": "strong"
Expand Down
15 changes: 11 additions & 4 deletions data/mods/Magiclysm/Spells/attunements/Fire_Elemental.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,21 @@
"name": "Flareup",
"description": "You channel heat through your hands to severely burn a target you touch.",
"valid_targets": [ "hostile" ],
"flags": [ "EVOCATION_SPELL", "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ],
"flags": [
"EVOCATION_SPELL",
"RANDOM_DAMAGE",
"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": 20,
"damage_increment": 8.0,
"max_damage": 300,
"min_damage": { "math": [ "(u_spell_level('flareup') * 4.1) + 8" ] },
"max_damage": { "math": [ "(u_spell_level('flareup') * 6.9) + 20" ] },
"min_range": 1,
"max_range": 1,
"base_energy_cost": 120,
Expand Down
Loading

0 comments on commit 8e1af0c

Please sign in to comment.