From 4d7f8a0b0cd5d8df5aaa488e855a351492b9b4d2 Mon Sep 17 00:00:00 2001 From: rty275 <788335+rty275@users.noreply.github.com> Date: Sun, 14 Apr 2024 10:13:31 -0700 Subject: [PATCH 1/5] Spell, plus effect, plus scroll, plus spawns for that scroll. --- data/mods/Magiclysm/Spells/technomancer.json | 21 ++++++++++++++++++ data/mods/Magiclysm/effects/effects.json | 22 ++++++++++++++++++- .../mods/Magiclysm/itemgroups/spellbooks.json | 3 ++- data/mods/Magiclysm/items/spell_scrolls.json | 9 ++++++++ 4 files changed, 53 insertions(+), 2 deletions(-) diff --git a/data/mods/Magiclysm/Spells/technomancer.json b/data/mods/Magiclysm/Spells/technomancer.json index a793e242d821c..33a5568613b87 100644 --- a/data/mods/Magiclysm/Spells/technomancer.json +++ b/data/mods/Magiclysm/Spells/technomancer.json @@ -907,5 +907,26 @@ "max_level": 25, "spell_class": "TECHNOMANCER", "energy_source": "MANA" + }, + { + "id": "technomancer_pain_ignore", + "type": "SPELL", + "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"], + "extra_effects": [ { "id": "eoc_enhancement_setup" } ], + "effect": "attack", + "effect_str": "effect_technomancer_pain_ignore", + "shape": "blast", + "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(50)" ] }, + "base_energy_cost": 100, + "energy_source": "MANA", + "spell_class": "TECHNOMANCER", + "difficulty": 4, + "max_level": 15, + "min_duration": { "math": [ "enhancement_proficiency_bonus_calculate(1000)" ] }, + "max_duration": { "math": [ "enhancement_proficiency_bonus_calculate(2500)" ] }, + "duration_increment": { "math": [ "enhancement_proficiency_bonus_calculate(100)" ] } } ] diff --git a/data/mods/Magiclysm/effects/effects.json b/data/mods/Magiclysm/effects/effects.json index b7693d506699d..4d09114b54d97 100644 --- a/data/mods/Magiclysm/effects/effects.json +++ b/data/mods/Magiclysm/effects/effects.json @@ -548,6 +548,24 @@ } ] }, + { + "type": "effect_type", + "id": "effect_technomancer_pain_ignore", + "name": [ "The Body Mechanical" ], + "desc": [ "Your body functions through pain with mechanical efficiency." ], + "remove_message": "Pain suddenly hampers you again.", + "enchantments": [ + { + "values": [ + { "value": "PAIN_PENALTY_MOD_STR", "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } }, + { "value": "PAIN_PENALTY_MOD_DEX", "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } }, + { "value": "PAIN_PENALTY_MOD_INT", "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } }, + { "value": "PAIN_PENALTY_MOD_PER", "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } }, + { "value": "PAIN_PENALTY_MOD_SPEED", "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } } + ] + } + ] + }, { "id": "eshaper_crystal_wrap", "type": "effect_type", @@ -1278,7 +1296,8 @@ "effect_acid_res_aura_greater", "effect_thorns_electric", "effect_stormshaper_loud_voice", - "effect_technomancer_gain_electronics_computer" + "effect_technomancer_gain_electronics_computer", + "effect_technomancer_pain_ignore" ] }, { @@ -1404,6 +1423,7 @@ "effect_spirit_walking", "effect_stormshaper_loud_voice", "effect_technomancer_gain_electronics_computer", + "effect_technomancer_pain_ignore", "haste", "synaptic_stim", "slow_freeze_effect", diff --git a/data/mods/Magiclysm/itemgroups/spellbooks.json b/data/mods/Magiclysm/itemgroups/spellbooks.json index 055b100e7a7aa..ad978181c7050 100644 --- a/data/mods/Magiclysm/itemgroups/spellbooks.json +++ b/data/mods/Magiclysm/itemgroups/spellbooks.json @@ -136,7 +136,8 @@ [ "spell_scroll_force_jar", 30 ], [ "spell_scroll_flamebreath", 30 ], [ "spell_scroll_thought_shield", 35 ], - [ "spell_scroll_technomancer_far_sight", 20 ] + [ "spell_scroll_technomancer_far_sight", 20 ], + [ "spell_scroll_technomancer_pain_ignore", 30 ] ] }, { diff --git a/data/mods/Magiclysm/items/spell_scrolls.json b/data/mods/Magiclysm/items/spell_scrolls.json index 07599603ec9d1..edd8cdbaa76a8 100644 --- a/data/mods/Magiclysm/items/spell_scrolls.json +++ b/data/mods/Magiclysm/items/spell_scrolls.json @@ -2040,5 +2040,14 @@ "name": { "str": "Scroll of Zoom Lens", "str_pl": "Scrolls of Zoom Lens" }, "description": "Enchant a lens with the ability to see beyond the horizon.", "use_action": { "type": "learn_spell", "spells": [ "technomancer_far_sight" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_technomancer_pain_ignore", + "//": "Technomancer spell", + "name": { "str": "Scroll of The Body Mechanical", "str_pl": "Scrolls of The Body Mechanical" }, + "description": "Grant yourself brief reprieves from the effects of pain.", + "use_action": { "type": "learn_spell", "spells": [ "technomancer_pain_ignore" ] } } ] From 65ac63e07e931ea4ac5de6c443a627ace5a38aec Mon Sep 17 00:00:00 2001 From: rty275 <788335+rty275@users.noreply.github.com> Date: Sun, 14 Apr 2024 10:16:39 -0700 Subject: [PATCH 2/5] fix slight formatting error --- data/mods/Magiclysm/effects/effects.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mods/Magiclysm/effects/effects.json b/data/mods/Magiclysm/effects/effects.json index 4d09114b54d97..6e5e4c7809693 100644 --- a/data/mods/Magiclysm/effects/effects.json +++ b/data/mods/Magiclysm/effects/effects.json @@ -1297,7 +1297,7 @@ "effect_thorns_electric", "effect_stormshaper_loud_voice", "effect_technomancer_gain_electronics_computer", - "effect_technomancer_pain_ignore" + "effect_technomancer_pain_ignore" ] }, { @@ -1423,7 +1423,7 @@ "effect_spirit_walking", "effect_stormshaper_loud_voice", "effect_technomancer_gain_electronics_computer", - "effect_technomancer_pain_ignore", + "effect_technomancer_pain_ignore", "haste", "synaptic_stim", "slow_freeze_effect", From 538e263406f01be5a61c84c495f0cdc81db04d6b Mon Sep 17 00:00:00 2001 From: rty275 <788335+rty275@users.noreply.github.com> Date: Sun, 14 Apr 2024 10:18:16 -0700 Subject: [PATCH 3/5] fix another slight formatting error --- data/mods/Magiclysm/itemgroups/spellbooks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Magiclysm/itemgroups/spellbooks.json b/data/mods/Magiclysm/itemgroups/spellbooks.json index ad978181c7050..a210038affbcf 100644 --- a/data/mods/Magiclysm/itemgroups/spellbooks.json +++ b/data/mods/Magiclysm/itemgroups/spellbooks.json @@ -137,7 +137,7 @@ [ "spell_scroll_flamebreath", 30 ], [ "spell_scroll_thought_shield", 35 ], [ "spell_scroll_technomancer_far_sight", 20 ], - [ "spell_scroll_technomancer_pain_ignore", 30 ] + [ "spell_scroll_technomancer_pain_ignore", 30 ] ] }, { From ee329c3fe1e9b30486687d8879fcf6d91aff3e43 Mon Sep 17 00:00:00 2001 From: rty275 <788335+rty275@users.noreply.github.com> Date: Sun, 14 Apr 2024 11:40:24 -0700 Subject: [PATCH 4/5] Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- data/mods/Magiclysm/Spells/technomancer.json | 2 +- data/mods/Magiclysm/effects/effects.json | 25 ++++++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/data/mods/Magiclysm/Spells/technomancer.json b/data/mods/Magiclysm/Spells/technomancer.json index 33a5568613b87..b14d475daf055 100644 --- a/data/mods/Magiclysm/Spells/technomancer.json +++ b/data/mods/Magiclysm/Spells/technomancer.json @@ -914,7 +914,7 @@ "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": [ "VERBAL", "NO_LEGS", "NO_HANDS" ], "extra_effects": [ { "id": "eoc_enhancement_setup" } ], "effect": "attack", "effect_str": "effect_technomancer_pain_ignore", diff --git a/data/mods/Magiclysm/effects/effects.json b/data/mods/Magiclysm/effects/effects.json index 6e5e4c7809693..63908cda7a52b 100644 --- a/data/mods/Magiclysm/effects/effects.json +++ b/data/mods/Magiclysm/effects/effects.json @@ -557,11 +557,26 @@ "enchantments": [ { "values": [ - { "value": "PAIN_PENALTY_MOD_STR", "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } }, - { "value": "PAIN_PENALTY_MOD_DEX", "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } }, - { "value": "PAIN_PENALTY_MOD_INT", "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } }, - { "value": "PAIN_PENALTY_MOD_PER", "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } }, - { "value": "PAIN_PENALTY_MOD_SPEED", "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } } + { + "value": "PAIN_PENALTY_MOD_STR", + "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } + }, + { + "value": "PAIN_PENALTY_MOD_DEX", + "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } + }, + { + "value": "PAIN_PENALTY_MOD_INT", + "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } + }, + { + "value": "PAIN_PENALTY_MOD_PER", + "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } + }, + { + "value": "PAIN_PENALTY_MOD_SPEED", + "multiply": { "math": [ "((u_spell_level('technomancer_pain_ignore') * -0.02) - 0.7)" ] } + } ] } ] From 78cb8de48024eccd061c09c35ac607969ad13107 Mon Sep 17 00:00:00 2001 From: rty275 <788335+rty275@users.noreply.github.com> Date: Wed, 17 Apr 2024 12:20:26 -0700 Subject: [PATCH 5/5] Change to bionic power, lower cost --- data/mods/Magiclysm/Spells/technomancer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mods/Magiclysm/Spells/technomancer.json b/data/mods/Magiclysm/Spells/technomancer.json index b14d475daf055..f833f63e5fa90 100644 --- a/data/mods/Magiclysm/Spells/technomancer.json +++ b/data/mods/Magiclysm/Spells/technomancer.json @@ -920,8 +920,8 @@ "effect_str": "effect_technomancer_pain_ignore", "shape": "blast", "base_casting_time": { "math": [ "enhancement_proficiency_negate_calculate(50)" ] }, - "base_energy_cost": 100, - "energy_source": "MANA", + "base_energy_cost": 25, + "energy_source": "BIONIC", "spell_class": "TECHNOMANCER", "difficulty": 4, "max_level": 15,