diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index 353df9095c..681929691a 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -400,6 +400,49 @@ M.heal_organ_damage(30 * removed, 30 * removed * chem_effective) M.adjustToxLoss(-30 * removed * chem_effective) +/datum/reagent/mortiferin + name = "Mortiferin" + id = "mortiferin" + description = "A liquid compound based upon those used in cloning. Utilized in cases of toxic shock. May cause liver damage." + taste_description = "meat" + reagent_state = LIQUID + color = "#6b4de3" + metabolism = REM * 0.5 + mrate_static = TRUE + scannable = 1 + +/datum/reagent/mortiferin/on_mob_life(var/mob/living/carbon/M, var/alien, var/datum/reagents/metabolism/location) + if(M.stat == DEAD && M.has_modifier_of_type(/datum/modifier/bloodpump_corpse)) + affects_dead = TRUE + else + affects_dead = FALSE + + . = ..(M, alien, location) + +/datum/reagent/mortiferin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(M.bodytemperature < (T0C - 10) || (M.stat == DEAD && M.has_modifier_of_type(/datum/modifier/bloodpump_corpse))) + var/chem_effective = 1 * M.species.chem_strength_heal + if(alien == IS_SLIME) + if(prob(10)) + to_chat(M, "It's so cold. Something causes your cellular mass to solidify sporadically, resulting in uncontrollable twitching.") + chem_effective = 0.5 + M.Weaken(10) + M.silent = max(M.silent, 10) + M.make_jittery(4) + if(M.stat != DEAD) + M.adjustCloneLoss(-5 * removed * chem_effective) + M.adjustOxyLoss(-10 * removed * chem_effective) + M.adjustToxLoss(-20 * removed * chem_effective) + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/obj/item/organ/internal/liver/L = H.internal_organs_by_name[O_LIVER] + if(istype(L) && prob(5)) + if(L.robotic >= ORGAN_ROBOT) + return + + L.take_damage(rand(1,3) * removed) + /datum/reagent/necroxadone name = "Necroxadone" id = "necroxadone" @@ -410,18 +453,11 @@ metabolism = REM * 0.5 mrate_static = TRUE scannable = 1 - -/datum/reagent/necroxadone/on_mob_life(var/mob/living/carbon/M, var/alien, var/datum/reagents/metabolism/location) - if(M.stat == DEAD && M.has_modifier_of_type(/datum/modifier/bloodpump_corpse)) - affects_dead = TRUE - else - affects_dead = FALSE - - . = ..(M, alien, location) + affects_dead = TRUE /datum/reagent/necroxadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + var/chem_effective = 1 * M.species.chem_strength_heal if(M.bodytemperature < 170 || (M.stat == DEAD && M.has_modifier_of_type(/datum/modifier/bloodpump_corpse))) - var/chem_effective = 1 * M.species.chem_strength_heal if(alien == IS_SLIME) if(prob(10)) to_chat(M, "It's so cold. Something causes your cellular mass to harden sporadically, resulting in seizure-like twitching.") @@ -433,6 +469,12 @@ M.adjustCloneLoss(-5 * removed * chem_effective) M.adjustOxyLoss(-20 * removed * chem_effective) M.adjustToxLoss(-40 * removed * chem_effective) + M.adjustCloneLoss(-15 * removed * chem_effective) + + else + M.adjustToxLoss(-25 * removed * chem_effective) + M.adjustOxyLoss(-10 * removed * chem_effective) + M.adjustCloneLoss(-7 * removed * chem_effective) /* Painkillers */ diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index f5f4d17587..9adb2558b9 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -428,6 +428,14 @@ catalysts = list("phoron" = 5) result_amount = 2 +/datum/chemical_reaction/mortiferin + name = "Mortiferin" + id = "mortiferin" + result = "mortiferin" + required_reagents = list("cryptobiolin" = 1, "clonexadone" = 1, "corophizine" = 1) + result_amount = 2 + catalysts = list("phoron" = 5) + /datum/chemical_reaction/spaceacillin name = "Spaceacillin" id = "spaceacillin" diff --git a/html/changelogs/mechoid - mortiferin.yml b/html/changelogs/mechoid - mortiferin.yml new file mode 100644 index 0000000000..00ce2ca033 --- /dev/null +++ b/html/changelogs/mechoid - mortiferin.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Mechoid + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Mortiferin added in place of old Necroxadone as a normal chem recipe." + - tweak: "Necroxadone changed to a more powerful alternative to Mortiferin which works even on corpses without bloodflow."