From d9ded524bdf7c72112e01bc42d89e81035e16d22 Mon Sep 17 00:00:00 2001 From: SariusSkelrets Date: Sat, 16 Nov 2024 21:49:50 -0500 Subject: [PATCH] Fix demonic possession causing starvation penalties --- .../Spells/attunements/Blood_Mage.json | 77 ++++++++++++++++++- .../traits/temporary_demon_traits.json | 27 +++++++ 2 files changed, 100 insertions(+), 4 deletions(-) diff --git a/data/mods/Magiclysm/Spells/attunements/Blood_Mage.json b/data/mods/Magiclysm/Spells/attunements/Blood_Mage.json index 496a219dcfaac..5e5a92130b405 100644 --- a/data/mods/Magiclysm/Spells/attunements/Blood_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Blood_Mage.json @@ -46,7 +46,7 @@ "DEMON_CLAWS", "DEMON_SKIN", "DEMON_TAIL", - "HUGE_OK", + "DEMON_HUGE", "NOPAIN", "FACIAL_HAIR_GOATEE" ] @@ -59,12 +59,12 @@ "type": "SPELL", "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" ], + "valid_targets": [ "self" ], "flags": [ "CONJURATION_SPELL", "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ], - "effect": "spawn_item", + "effect": "effect_on_condition", "shape": "blast", - "effect_str": "demon_possession_aura", + "effect_str": "EOC_DEMON_POSSESSION", "min_damage": 1, "max_damage": 1, "min_duration": 360000, @@ -76,5 +76,74 @@ "base_casting_time": 800, "base_energy_cost": 5, "energy_source": "HP" + }, + { + "type": "effect_on_condition", + "id": "EOC_DEMON_POSSESSION", + "condition": { "and": [ { "not": { "u_has_trait": "HUGE" } }, { "not": { "u_has_trait": "HUGE_OK" } } ] }, + "effect": [ + { "u_message": "Your body swells and warps as your size increases!", "type": "good" }, + { "math": [ "u_preshift_size", "=", "u_val('size')" ] }, + { + "switch": { "math": [ "u_preshift_size" ] }, + "cases": [ + { "case": 1, "effect": [ { "math": [ "u_calories('dont_affect_weariness': true)", "*=", "12" ] } ] }, + { "case": 2, "effect": [ { "math": [ "u_calories('dont_affect_weariness': true)", "*=", "6" ] } ] }, + { "case": 3, "effect": [ { "math": [ "u_calories('dont_affect_weariness': true)", "*=", "2" ] } ] }, + { "case": 4, "effect": [ { "math": [ "u_calories('dont_affect_weariness': true)", "*=", "1.5" ] } ] }, + { "case": 5, "effect": [ ] } + ] + }, + { "u_cast_spell": { "id": "demonic_possession_real" } }, + { + "run_eocs": "EOC_DEMON_POSSESSION_REMOVE", + "time_in_future": { "math": [ "(u_spell_level('demonic_possession') * 309) + 3600" ] } + } + ], + "false_effect": [ + { "u_message": "Your body fills with demonic power!", "type": "good" }, + { "u_cast_spell": { "id": "demonic_possession_real" } }, + { + "run_eocs": "EOC_DEMON_POSSESSION_REMOVE", + "time_in_future": { "math": [ "(u_spell_level('demonic_possession') * 309) + 3600" ] } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DEMON_POSSESSION_REMOVE", + "effect": [ + { "u_message": "Your body shrinks and warps as your size decreases!", "type": "bad" }, + { + "switch": { "math": [ "u_preshift_size" ] }, + "cases": [ + { "case": 1, "effect": [ { "math": [ "u_calories('dont_affect_weariness': true)", "/=", "12" ] } ] }, + { "case": 2, "effect": [ { "math": [ "u_calories('dont_affect_weariness': true)", "/=", "6" ] } ] }, + { "case": 3, "effect": [ { "math": [ "u_calories('dont_affect_weariness': true)", "/=", "2" ] } ] }, + { "case": 4, "effect": [ { "math": [ "u_calories('dont_affect_weariness': true)", "/=", "1.5" ] } ] }, + { "case": 5, "effect": [ ] } + ] + } + ] + }, + { + "id": "demonic_possession_real", + "type": "SPELL", + "name": "Demonic Possession Real", + "description": "Grants the aura that gives the demon traits. You're not supposed to see this.", + "valid_targets": [ "self" ], + "flags": [ "CONJURATION_SPELL", "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN", "SILENT", "NO_EXPLOSION_SFX" ], + "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": [ "(u_spell_level('demonic_possession') * 30900) + 360000" ] }, + "max_duration": { "math": [ "(u_spell_level('demonic_possession') * 30900) + 360000" ] }, + "spell_class": "BLOOD_MAGE", + "difficulty": 5, + "max_level": 35, + "base_casting_time": 0 } ] diff --git a/data/mods/Magiclysm/traits/temporary_demon_traits.json b/data/mods/Magiclysm/traits/temporary_demon_traits.json index 16561b3d3f73f..1734a4af29f2f 100644 --- a/data/mods/Magiclysm/traits/temporary_demon_traits.json +++ b/data/mods/Magiclysm/traits/temporary_demon_traits.json @@ -62,6 +62,33 @@ ], "flags": [ "NO_SPELLCASTING" ] }, + { + "type": "mutation", + "id": "DEMON_HUGE", + "//": "Identical to HUGE_OK but uses the flag for temporary sizeshifting.", + "//2": "I am not using the biomancer version, as it has more bonuses than HUGE_OK and I want to keep the spell's balance identical while fixing the bug.", + "flags": [ "TEMPORARY_SHAPESHIFT", "SHAPESHIFT_SIZE_HUGE" ], + "name": { "str": "Huge" }, + "points": 2, + "visibility": 4, + "ugliness": 3, + "valid": false, + "starting_trait": false, + "mixed_effect": true, + "description": "Your cardiovascular system has caught up with your muscular physique, so who needs pathetic human cars? Strength +4.", + "types": [ "SIZE" ], + "enchantments": [ + { + "values": [ + { "value": "STRENGTH", "add": 4 }, + { "value": "STOMACH_SIZE_MULTIPLIER", "multiply": 1 }, + { "value": "CARRY_WEIGHT", "multiply": 0.1 } + ] + } + ], + "restricts_gear": [ "torso", "leg_l", "leg_r", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r" ], + "destroys_gear": true + }, { "type": "mutation", "id": "DEMON_CLAWS",