diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index f0df15af4fe..fe4c1088885 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -389,6 +389,8 @@ organStatus["splinted"] = 1 if(E.status & ORGAN_BLEEDING) organStatus["bleeding"] = 1 + if(E.status & ORGAN_DEAD) + organStatus["dead"] = 1 organData["status"] = organStatus @@ -415,6 +417,7 @@ organData["bruised"] = I.min_broken_damage organData["broken"] = I.min_bruised_damage organData["robotic"] = I.robotic + organData["dead"] = (I.status & ORGAN_DEAD) intOrganData.Add(list(organData)) diff --git a/code/modules/reagents/oldchem/reagents/reagents_med.dm b/code/modules/reagents/oldchem/reagents/reagents_med.dm index ae6fd9bb8a3..63318122b4f 100644 --- a/code/modules/reagents/oldchem/reagents/reagents_med.dm +++ b/code/modules/reagents/oldchem/reagents/reagents_med.dm @@ -87,6 +87,11 @@ ..() return +/datum/reagent/mitocholide/reaction_obj(var/obj/O, var/volume) + if(istype(O, /obj/item/organ)) + var/obj/item/organ/Org = O + Org.rejuvenate() + /datum/reagent/cryoxadone name = "Cryoxadone" id = "cryoxadone" diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index 0335acd1f65..c912fb1a013 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -57,7 +57,10 @@ var/list/organ_cache = list() /obj/item/organ/proc/set_dna(var/datum/dna/new_dna) if(new_dna) dna = new_dna.Clone() - blood_DNA = list() + if(blood_DNA) + blood_DNA.Cut() + else + blood_DNA = list() blood_DNA[dna.unique_enzymes] = dna.b_type /obj/item/organ/proc/die() @@ -173,6 +176,9 @@ var/list/organ_cache = list() /obj/item/organ/proc/rejuvenate() damage = 0 germ_level = 0 + status &= ~ORGAN_DEAD + if(!owner) + processing_objects |= src /obj/item/organ/proc/is_damaged() return damage > 0 diff --git a/nano/templates/adv_med.tmpl b/nano/templates/adv_med.tmpl index 017abaad0cb..66650e62f86 100644 --- a/nano/templates/adv_med.tmpl +++ b/nano/templates/adv_med.tmpl @@ -174,6 +174,7 @@ Used In File(s): \code\game\machinery\adv_med.dm {{if value.status.splinted}} splinted
{{/if}} {{if value.status.robotic}} robotic
{{/if}} + {{if value.status.dead}} DEAD
@@ -220,6 +221,7 @@ Used In File(s): \code\game\machinery\adv_med.dm {{if value.robotic == 1}} robotic
{{/if}} {{if value.robotic == 2}} assisted
{{/if}} + {{if value.dead}} DEAD
{{/if}} {{/for}}