From 4efee9c6083a38c4fc41917878ce69123f28fbc2 Mon Sep 17 00:00:00 2001 From: BurgerLUA Date: Thu, 15 Nov 2018 11:10:26 -0800 Subject: [PATCH] Adds Omnizine, Atropine, Epinephrine, Mannitol. (#5414) Adds 4 new reagents. Adds Omnizine, Atropine, Epinephrine, Mannitol. --- .../Chemistry-Reagents-Medicine.dm | 115 +++++++++++++++++- code/modules/reagents/Chemistry-Recipes.dm | 28 +++++ .../burgerbb - new reagents pt1.yml | 37 ++++++ 3 files changed, 176 insertions(+), 4 deletions(-) create mode 100644 html/changelogs/burgerbb - new reagents pt1.yml diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index a9e2903e7f4..684133b0dc9 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -24,6 +24,47 @@ QDEL_NULL(modifier) return ..() +/datum/reagent/epinephrine + name = "Epinephrine" + id = "epinephrine" + description = "Epinephrine, also known as adrenaline, is a super strength stimulant and painkiller intended to keep a patient alive while in critical condition." + reagent_state = LIQUID + color = "#FFFFFF" + overdose = REAGENTS_OVERDOSE + metabolism = REM * 2 + metabolism_min = REM * 0.25 + breathe_mul = 0.25 + ingest_mul = 0.25 + scannable = 1 + taste_description = "salty sugar" + var/datum/modifier/modifier + +/datum/reagent/epinephrine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + + if(M.health <= config.health_threshold_crit) + var/damage_stats = list(BRUTE = M.getBruteLoss(), BURN = M.getFireLoss(), TOX = M.getToxLoss(), OXY = M.getOxyLoss()) + damage_stats = sortByKey(damage_stats) + var/best_stat = get_key_by_index(damage_stats,1) + switch(best_stat) + if(BRUTE) + M.adjustBruteLoss(removed*5) + if(BURN) + M.adjustFireLoss(removed*5) + if(TOX) + M.adjustToxLoss(removed*5) + if(OXY) + M.adjustOxyLoss(removed*5) + + M.make_jittery(removed) + M.add_chemical_effect(CE_STABLE) + M.add_chemical_effect(CE_PAINKILLER, 25) + if (!modifier) + modifier = M.add_modifier(/datum/modifier/adrenaline, MODIFIER_REAGENT, src, _strength = 1, override = MODIFIER_OVERRIDE_STRENGTHEN) + +/datum/reagent/epinephrine/Destroy() + QDEL_NULL(modifier) + return ..() + /datum/reagent/bicaridine name = "Bicaridine" id = "bicaridine" @@ -157,6 +198,46 @@ M.heal_organ_damage(3 * removed * power,3 * removed * power) M.adjustToxLoss(-3 * removed) +/datum/reagent/omnizine + name = "Omnizine" + id = "omnizine" + description = "Omnizine is a low strength over-the-counter stimulant designed and marketed as a 'treat all' pill. Ingesting or inhaling the substance has the same strength as directly injecting it." + reagent_state = SOLID + color = "#8080AA" + metabolism = REM + ingest_mul = 1 + breathe_mul = 1 + scannable = 1 + taste_description = "bittersweet chalk" + +/datum/reagent/omnizine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + M.adjustOxyLoss(-1 * removed) + M.adjustBruteLoss(-1 * removed) + M.adjustFireLoss(-1 * removed) + M.adjustToxLoss(-1 * removed) + +/datum/reagent/atropine + name = "Atropine" + id = "atropine" + description = "Atropine is an emergency stabilizing reagent designed to heal suffocation, blunt trauma, and burns in critical condition. Side effects include toxin increase." + reagent_state = LIQUID + metabolism = REM * 4 + color = "#8040FF" + scannable = 1 + taste_description = "bitterness" + breathe_mul = 0 + +/datum/reagent/atropine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + var/reagent_strength = 0.25 + if(M.health <= config.health_threshold_crit) + reagent_strength = 1 + + M.adjustOxyLoss(-10 * removed * reagent_strength) + M.adjustBruteLoss(-4 * removed * reagent_strength) + M.adjustFireLoss(-4 * removed * reagent_strength) + + M.adjustToxLoss(1 * removed) + /datum/reagent/cryoxadone name = "Cryoxadone" id = "cryoxadone" @@ -1010,17 +1091,43 @@ if (prob(dose)) M.vomit() +/datum/reagent/mannitol + name = "Mannitol" + id = "mannitol" + description = "Mannitol is a super strength chemical that heals brain tissue damage and cures dumbness, cerebral blindness, cerebral paralysis, colorblindness, and aphasia. More effective when the patient's body temperature is less than 170K." + reagent_state = LIQUID + color = "#FFFF00" + metabolism = REM * 2 //0.4 + overdose = REAGENTS_OVERDOSE + scannable = 1 + taste_description = "bitterness" + metabolism_min = REM * 0.25 + var/list/curable_traumas = list( + /datum/brain_trauma/mild/dumbness/, + /datum/brain_trauma/severe/blindness/, + /datum/brain_trauma/severe/paralysis/, + /datum/brain_trauma/severe/total_colorblind/, + /datum/brain_trauma/severe/aphasia/ + ) -//Things that are not cured by medication: -//Dumbness +/datum/reagent/mannitol/affect_blood(var/mob/living/carbon/human/M, var/alien, var/removed) + + M.add_chemical_effect(CE_PAINKILLER, 10) + var/chance = dose*removed + if(M.bodytemperature < 170) + chance = (chance*4) + 5 + if(prob(chance)) + M.cure_trauma_type(pick(curable_traumas)) + + M.adjustBrainLoss(10*removed) + +//Things that are not cured/treated by medication: //Gerstmann Syndrome //Cerebral Near-Blindness //Mutism //Cerebral Blindness -//Paralysis //Narcolepsy //Discoordination -//Aphasia /datum/reagent/calomel name = "Calomel" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 06c8800f648..cb9762c199a 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -577,6 +577,34 @@ required_reagents = list("phoron" = 0.1, "water" = 1, "potassium_chloride" = 0.2) result_amount = 1 +/datum/chemical_reaction/mannitol + name = "Mannitol" + id = "mannitol" + result = "mannitol" + required_reagents = list("phoron" = 0.1, "alkysine" = 1, "cryoxadone" = 0.1) + result_amount = 1 + +/datum/chemical_reaction/omnizine + name = "Omnizine" + id = "omnizine" + result = "omnizine" + required_reagents = list("tricordrazine" = 1, "sugar" = 1, "carbon" = 1 ) + result_amount = 3 + +/datum/chemical_reaction/atropine + name = "Atropine" + id = "atropine" + result = "atropine" + required_reagents = list("tricordrazine" = 1, "phoron" = 0.1, "hydrazine" = 1 ) + result_amount = 2 + +/datum/chemical_reaction/epinephrine + name = "Epinephrine" + id = "epinephrine" + result = "epinephrine" + required_reagents = list("atropine" = 1, "phoron" = 0.1, "inaprovaline" = 1 ) + result_amount = 2 + //Mental Medication /datum/chemical_reaction/methylphenidate diff --git a/html/changelogs/burgerbb - new reagents pt1.yml b/html/changelogs/burgerbb - new reagents pt1.yml new file mode 100644 index 00000000000..4e754c97f9a --- /dev/null +++ b/html/changelogs/burgerbb - new reagents pt1.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 +# balance +################################# + +# Your name. +author: BurgerBB + +# 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: "Adds 4 new reagents and recipes for them: Omnizine, Atropine, Epinephrine, Mannitol."