From ae2a3b4171a5643370c5abd8e6690eb89c102741 Mon Sep 17 00:00:00 2001 From: Geeves Date: Sat, 26 Dec 2020 12:19:48 +0200 Subject: [PATCH] Coagzolug (#10604) Added Coagzolug, a blood coagulation chemical created by mixing tricordrazine and cough syrup. It will slow bleeding, even arterial, while in the bloodstream. Added Coagzolug autoinjectors to mining brute packs and the EMT stabilization kit locker. --- code/__defines/chemistry.dm | 1 + .../objects/items/weapons/storage/firstaid.dm | 3 ++- code/modules/organs/internal/heart.dm | 8 +++++-- .../Chemistry-Reagents-Medicine.dm | 22 +++++++++++++++++++ code/modules/reagents/Chemistry-Recipes.dm | 7 ++++++ .../reagents/reagent_containers/hypospray.dm | 11 ++++++++++ html/changelogs/geeves-heartbreak.yml | 7 ++++++ maps/aurora/aurora-4_mainlevel.dmm | 2 ++ 8 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 html/changelogs/geeves-heartbreak.yml diff --git a/code/__defines/chemistry.dm b/code/__defines/chemistry.dm index 1044033e0d4..887ee9cf3f7 100644 --- a/code/__defines/chemistry.dm +++ b/code/__defines/chemistry.dm @@ -75,6 +75,7 @@ #define CE_BLOODRESTORE "bloodrestore" // Iron/nutriment #define CE_BRAIN_REGEN "brainfix" // Alkysine #define CE_OXYGENATED "oxygenated" // Dexalin +#define CE_BLOODCLOT "bloodclot" // Coagzolug // Deal damage #define CE_BREATHLOSS "breathloss" diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index c7b2bc27e81..cdb0ccd0019 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -137,7 +137,8 @@ starts_with = list( /obj/item/stack/medical/bruise_pack = 2, /obj/item/stack/medical/advanced/bruise_pack = 2, - /obj/item/reagent_containers/pill/bicaridine = 2, + /obj/item/reagent_containers/pill/bicaridine = 1, + /obj/item/reagent_containers/hypospray/autoinjector/coagzolug = 1, /obj/item/device/healthanalyzer = 1 ) diff --git a/code/modules/organs/internal/heart.dm b/code/modules/organs/internal/heart.dm index 6863423ac26..f7715a8a955 100644 --- a/code/modules/organs/internal/heart.dm +++ b/code/modules/organs/internal/heart.dm @@ -139,7 +139,7 @@ var/blood_max = 0 var/open_wound var/list/do_spray = list() - for(var/obj/item/organ/external/temp in owner.organs) + for(var/obj/item/organ/external/temp in owner.bad_external_organs) if((temp.status & ORGAN_BLEEDING) && !BP_IS_ROBOTIC(temp)) for(var/datum/wound/W in temp.wounds) if(W.bleeding()) @@ -156,6 +156,8 @@ if(temp.status & ORGAN_ARTERY_CUT) var/bleed_amount = Floor(owner.vessel.total_volume / (temp.applied_pressure || !open_wound ? 450 : 250)) if(bleed_amount) + if(CE_BLOODCLOT in owner.chem_effects) + bleed_amount *= 0.8 // won't do much, but it'll help if(open_wound) blood_max += bleed_amount do_spray += "[temp.name]" @@ -170,7 +172,9 @@ if(PULSE_2FAST, PULSE_THREADY) blood_max *= 1.5 - if(CE_STABLE in owner.chem_effects) + if(CE_BLOODCLOT in owner.chem_effects) + blood_max *= 0.7 + else if(CE_STABLE in owner.chem_effects) blood_max *= 0.8 if(world.time >= next_blood_squirt && istype(owner.loc, /turf) && do_spray.len) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index b7d99b1f30d..8b1429a1533 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -1677,3 +1677,25 @@ /datum/reagent/rmt/overdose(var/mob/living/carbon/H, var/alien) if(prob(2)) to_chat(H, SPAN_WARNING(pick("Your muscles are stinging a bit.", "Your muscles ache."))) + +/datum/reagent/coagzolug + name = "Coagzolug" + description = "A medicine that was stumbled upon by accident, coagzolug encourages blood to clot and slow down bleeding. An overdose causes dangerous blood clots capable of harming the heart." + reagent_state = LIQUID + scannable = TRUE + color = "#bd5eb5" + overdose = 10 + metabolism = REM / 3.33 + taste_description = "throat-clenching sourness" + fallback_specific_heat = 1 + +/datum/reagent/coagzolug/affect_blood(mob/living/carbon/M, alien, removed) + . = ..() + M.add_chemical_effect(CE_BLOODCLOT) + M.make_dizzy(5) + +/datum/reagent/coagzolug/overdose(var/mob/living/carbon/H, var/alien) + if(prob(2)) + to_chat(H, SPAN_WARNING(pick("You feel a clot shoot through your heart!", "Your veins feel like they're being shredded!"))) + var/obj/item/organ/internal/heart/heart = H.internal_organs_by_name[BP_HEART] + heart.take_internal_damage(1, TRUE) \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index cd81585e89b..93fc79f3418 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -478,6 +478,13 @@ required_reagents = list(/datum/reagent/sodiumchloride = 1, /datum/reagent/alcohol/ethanol = 1, /datum/reagent/radium = 1) result_amount = 3 +/datum/chemical_reaction/coagzolug + name = "Coagzolug" + id = "coagzolug" + result = /datum/reagent/coagzolug + required_reagents = list(/datum/reagent/tricordrazine = 1, /datum/reagent/coughsyrup = 1) + result_amount = 1 // result is 1. i imagine it's because of some whacky reaction + /datum/chemical_reaction/surfactant name = "Azosurfactant" id = "surfactant" diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 93a17351abb..51ea1a7d0e1 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -177,6 +177,17 @@ . = ..() desc += " This auto-injector is to be used in emergencies. It contains a small amount of inaprovaline and dexalin." +/obj/item/reagent_containers/hypospray/autoinjector/coagzolug + name = "autoinjector (coagzolug)" + desc = "A rapid and safe way to administer small amounts of drugs by untrained or trained personnel. This one contains coagzolug, a quick-acting blood coagulant that will slow bleeding for as long as it's within the bloodstream." + volume = 5 + flags = 0 + +/obj/item/reagent_containers/hypospray/autoinjector/coagzolug/Initialize() + . = ..() + reagents.add_reagent(/datum/reagent/coagzolug, 5) + update_icon() + /obj/item/reagent_containers/hypospray/autoinjector/sideeffectbgone name = "sideeffects-be-gone! autoinjector" desc = "A special cocktail designed to counter the side-effects of various drugs. Has 2 uses." diff --git a/html/changelogs/geeves-heartbreak.yml b/html/changelogs/geeves-heartbreak.yml new file mode 100644 index 00000000000..c375fd330c4 --- /dev/null +++ b/html/changelogs/geeves-heartbreak.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Added Coagzolug, a blood coagulation chemical created by mixing tricordrazine and cough syrup. It will slow bleeding, even arterial, while in the bloodstream." + - rscadd: "Added Coagzolug autoinjectors to mining brute packs and the EMT stabilization kit locker." diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm index 6f169556d8e..b4ba124c82d 100644 --- a/maps/aurora/aurora-4_mainlevel.dmm +++ b/maps/aurora/aurora-4_mainlevel.dmm @@ -44667,6 +44667,8 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/item/reagent_containers/hypospray/autoinjector/coagzolug, +/obj/item/reagent_containers/hypospray/autoinjector/coagzolug, /turf/simulated/floor/tiled, /area/medical/first_responder) "bxy" = (