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" = (