From 0936a5e83b511d5ceed250f1927da9e31ab96157 Mon Sep 17 00:00:00 2001 From: cyberascetic Date: Sat, 15 Aug 2026 19:16:13 +0300 Subject: [PATCH 1/3] Life eternal fix, and slight price reduction --- code/datums/enchantments/life_eternal.dm | 52 +++++++++++++++++++----- 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/code/datums/enchantments/life_eternal.dm b/code/datums/enchantments/life_eternal.dm index d35211e5120..ce7a7a1bc9b 100644 --- a/code/datums/enchantments/life_eternal.dm +++ b/code/datums/enchantments/life_eternal.dm @@ -5,11 +5,13 @@ enchantment_color = "#FF69B4" enchantment_end_message = "The life essence fades away." essence_recipe = list( - /datum/thaumaturgical_essence/life = 80, - /datum/thaumaturgical_essence/cycle = 50, - /datum/thaumaturgical_essence/magic = 35, - /datum/thaumaturgical_essence/light = 30 + /datum/thaumaturgical_essence/life = 60, + /datum/thaumaturgical_essence/cycle = 30, + /datum/thaumaturgical_essence/magic = 20, + /datum/thaumaturgical_essence/light = 15 ) + required_type = list(/obj/item/clothing) + var/healing_power = 1 /datum/enchantment/life_eternal/register_triggers(atom/item) . = ..() @@ -18,15 +20,45 @@ registered_signals += COMSIG_ITEM_DROPPED RegisterSignal(item, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) -/datum/enchantment/life_eternal/proc/on_equip(obj/item/i, mob/living/user) - // Constant slow healing while equipped - START_PROCESSING(SSobj, src) +/datum/enchantment/life_eternal/proc/on_equip(obj/item/i, mob/living/user, slot) + var/datum/enchantment/life_eternal/enchantment + if(slot != ITEM_SLOT_HANDS) //preventing it from triggering if held + //I might have not have a brain, gentlemen, but i have an idea... + //We cycle through all gear with life_eternal enchantment, increasing healing_power counter, + //disabling previous enchantments processing, till we reach the final item, that will be processed. + //More enchanted items = higher healing power + for(var/obj/item/clothing/gear in user.get_all_gear()) + if(gear && gear != i && gear.has_enchantment(/datum/enchantment/life_eternal)) + enchantment = gear.get_enchantment(/datum/enchantment/life_eternal) + STOP_PROCESSING(SSobj, enchantment) + healing_power += 1 + else if(gear && gear == i) + START_PROCESSING(SSobj, src) + continue + else + return /datum/enchantment/life_eternal/proc/on_drop(obj/item/i, mob/living/user) + var/enchanted_items = 0 + var/datum/enchantment/life_eternal/enchantment = null STOP_PROCESSING(SSobj, src) + src.healing_power = 1 + for(var/obj/item/clothing/gear in user.get_all_gear()) + if(gear && gear.has_enchantment(/datum/enchantment/life_eternal)) + enchanted_items += 1 + enchantment = gear.get_enchantment(/datum/enchantment/life_eternal) + if(enchanted_items != 0) + enchantment.healing_power = enchanted_items + START_PROCESSING(SSobj, enchantment) + else + return + /datum/enchantment/life_eternal/process() if(enchanted_item.loc && isliving(enchanted_item.loc)) - var/mob/living/L = enchanted_item.loc - if(L.health < L.maxHealth) - L.heal_bodypart_damage(1, 1) + var/mob/living/carbon/human/L = enchanted_item.loc + if(L.stat != DEAD) + L.heal_wounds(0.1 * healing_power, TRUE) + L.heal_bodypart_damage(0.1 * healing_power, 0.1 * healing_power, TRUE, required_status = BODYPART_ORGANIC) + L.adjustOrganLoss(-0.05 * healing_power) + From c45612fd4f2dccd23923ba57274a6d746f7db049 Mon Sep 17 00:00:00 2001 From: cyberascetic Date: Mon, 17 Aug 2026 19:56:29 +0300 Subject: [PATCH 2/3] Bound runes fix --- code/datums/enchantments/bound_runes.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/datums/enchantments/bound_runes.dm b/code/datums/enchantments/bound_runes.dm index b6f769f2a5a..3e675c88732 100644 --- a/code/datums/enchantments/bound_runes.dm +++ b/code/datums/enchantments/bound_runes.dm @@ -1,4 +1,3 @@ - /datum/enchantment/binding_runes enchantment_name = "Binding Runes" examine_text = "Strange engravings cover this, it would be unwise to put it on." @@ -26,5 +25,5 @@ var/atom/real_enchanter = enchanter.resolve() if(!real_enchanter) return COMPONENT_ITEM_BLOCK_UNEQUIP - if(source != real_enchanter) + if(usr != real_enchanter) return COMPONENT_ITEM_BLOCK_UNEQUIP From 376544c3bd271a2ddde2bb54c1b2508d71e0960c Mon Sep 17 00:00:00 2001 From: cyberascetic Date: Mon, 17 Aug 2026 20:03:09 +0300 Subject: [PATCH 3/3] Mske STR potion great again --- code/modules/crafting/alchemy/cauldron_recipes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/crafting/alchemy/cauldron_recipes.dm b/code/modules/crafting/alchemy/cauldron_recipes.dm index 1bb1396e1f7..28c97cc587b 100644 --- a/code/modules/crafting/alchemy/cauldron_recipes.dm +++ b/code/modules/crafting/alchemy/cauldron_recipes.dm @@ -165,7 +165,7 @@ Keep them reasonable to make /datum/alch_cauldron_recipe/str_potion recipe_name = "Strength of Troll Muscles" smells_like = "sour vomit" - output_reagents = list(/datum/reagent/buff/strength = 5) + output_reagents = list(/datum/reagent/buff/strength = 25) required_essences = list( /datum/thaumaturgical_essence/earth = 18, /datum/thaumaturgical_essence/order = 9,