From 421ec26e0a23e8a7fb067e88707ac584e0d96d0f Mon Sep 17 00:00:00 2001 From: Geeves Date: Thu, 5 Aug 2021 18:03:14 +0200 Subject: [PATCH] Strong Rezadone (#12221) --- code/__defines/chemistry.dm | 1 + code/modules/mob/living/carbon/human/human.dm | 5 ++++- code/modules/organs/internal/_internal.dm | 5 +++-- .../Chemistry-Reagents/Chemistry-Reagents-Medicine.dm | 8 ++++++++ html/changelogs/geeves-rezadone_healing.yml | 6 ++++++ 5 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 html/changelogs/geeves-rezadone_healing.yml diff --git a/code/__defines/chemistry.dm b/code/__defines/chemistry.dm index 6f65586a00a..f17e0289a49 100644 --- a/code/__defines/chemistry.dm +++ b/code/__defines/chemistry.dm @@ -78,6 +78,7 @@ #define CE_BRAIN_REGEN "brainfix" // Alkysine #define CE_OXYGENATED "oxygenated" // Dexalin #define CE_BLOODCLOT "bloodclot" // Coagzolug +#define CE_ORGANREPAIR "organrepair" // Rezadone // Deal damage #define CE_BREATHLOSS "breathloss" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index f5ac8b3c595..e235bc4681c 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1917,7 +1917,10 @@ /mob/living/carbon/human/should_have_organ(var/organ_check) return (species?.has_organ[organ_check]) -/mob/living/carbon/human/proc/resuscitate() +/mob/living/proc/resuscitate() + return FALSE + +/mob/living/carbon/human/resuscitate() if(!is_asystole() || !should_have_organ(BP_HEART)) return var/obj/item/organ/internal/heart/heart = internal_organs_by_name[BP_HEART] diff --git a/code/modules/organs/internal/_internal.dm b/code/modules/organs/internal/_internal.dm index 75698b6e8ce..88d5254a448 100644 --- a/code/modules/organs/internal/_internal.dm +++ b/code/modules/organs/internal/_internal.dm @@ -126,5 +126,6 @@ /obj/item/organ/internal/proc/handle_regeneration() if(!damage || BP_IS_ROBOTIC(src) || !istype(owner) || owner.chem_effects[CE_TOXIN] || (toxin_type in owner.chem_effects) || owner.is_asystole()) return - if(damage < 0.1*max_damage) - heal_damage(0.1) + var/repair_modifier = owner.chem_effects[CE_ORGANREPAIR] || 0.1 + if(damage < repair_modifier*max_damage) + heal_damage(repair_modifier) \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index 4d504ca79ac..a2ef4be2859 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -1262,11 +1262,19 @@ scannable = TRUE taste_description = "sickness" +/decl/reagent/rezadone/affect_chem_effect(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder) + . = ..() + if(.) + M.add_chemical_effect(CE_ORGANREPAIR, 1) + M.add_chemical_effect(CE_BLOODRESTORE, 15) + /decl/reagent/rezadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder) M.adjustCloneLoss(-20 * removed) M.adjustOxyLoss(-2 * removed) M.heal_organ_damage(20 * removed, 20 * removed) M.adjustToxLoss(-1 * removed) + if(M.is_asystole() && prob(20)) + M.resuscitate() if(M.chem_doses[type] > 3) M.status_flags &= ~DISFIGURED if(M.chem_doses[type] > 10) diff --git a/html/changelogs/geeves-rezadone_healing.yml b/html/changelogs/geeves-rezadone_healing.yml new file mode 100644 index 00000000000..d5058d3630e --- /dev/null +++ b/html/changelogs/geeves-rezadone_healing.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Rezadone now repairs internal organs, restores blood, and restarts the heart." \ No newline at end of file