diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 0fe6dc041bf9..521c1cb0091b 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -7,6 +7,7 @@ if(!gibbed) INVOKE_ASYNC(src, PROC_REF(emote), "deathgasp") + reagents.end_metabolization(src) add_memory_in_range(src, 7, MEMORY_DEATH, list(DETAIL_PROTAGONIST = src), story_value = STORY_VALUE_OKAY, memory_flags = MEMORY_CHECK_BLIND_AND_DEAF) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index b45f09d20839..6a61af1dcc06 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -357,7 +357,7 @@ if(touching) . += touching.metabolize(src, can_overdose = FALSE, updatehealth = FALSE) - if(stat != DEAD) + if(stat != DEAD && !HAS_TRAIT(src, TRAIT_NOMETABOLISM)) var/obj/item/organ/stomach/S = organs_by_slot[ORGAN_SLOT_STOMACH] if(S?.reagents && !(S.organ_flags & ORGAN_DEAD)) . += S.reagents.metabolize(src, can_overdose = TRUE, updatehealth = FALSE) @@ -593,8 +593,6 @@ All effects don't start immediately, but rather get worse over time; the rate is if(liver) return - reagents.end_metabolization(src) //Stops trait-based effects on reagents, to prevent permanent buffs - if(HAS_TRAIT(src, TRAIT_STABLELIVER) || !needs_organ(ORGAN_SLOT_LIVER)) return diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index c41e3869d295..3457f41a06b4 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -75,7 +75,7 @@ if(!istype(liver_owner)) return - if(organ_flags & ORGAN_DEAD || HAS_TRAIT(liver_owner, TRAIT_NOMETABOLISM))//can't process reagents with a failing liver + if(organ_flags & ORGAN_DEAD) return if (germ_level > INFECTION_LEVEL_ONE) diff --git a/code/modules/surgery/organs/stomach/_stomach.dm b/code/modules/surgery/organs/stomach/_stomach.dm index b448c45fb9a0..14bac809bdb0 100644 --- a/code/modules/surgery/organs/stomach/_stomach.dm +++ b/code/modules/surgery/organs/stomach/_stomach.dm @@ -53,10 +53,11 @@ return ..() /obj/item/organ/stomach/set_organ_dead(failing) + . = ..() if(!.) return - if(organ_flags & ORGAN_DEAD && owner) + if((organ_flags & ORGAN_DEAD) && owner) reagents.end_metabolization(owner) /obj/item/organ/stomach/on_life(delta_time, times_fired)