Several common 'household' reagents can be used as improvised medicine treatment. Updated first aid analyzer information. (#77746)

## About The Pull Request

Several common 'household' reagents can be used as improvised medicine
treatment.

Drinking tea will help mend (non-bone) wounds over time.

Flour and corn starch may be splashed onto wounds to help dry them up,
though they'll have a negative effect on burn wounds.

Added a new reagent, saltwater, made by combining table salt with water.

Table salt and saltwater can be splashed onto wounds as well, reducing
bleeding and improving sanitization and disinfection significantly.
However, the coarse undiluted salt will irritate the wounds, reducing
clot rate and flesh healing, and both of the reagents will increase a
burn wound's infestation rate.

Altered Table Salt's recipe to just need sodium and chloride. Changed
the recipe of Pentetic Acid and Heparin to need table salt (sodium x
chloride) and thus slightly altered the total output of those reagents
(pentacid went from 5u per reaction to 4u, heparin 4u->3u)

Saline-Glucose Solution now needs 2u of saltwater and 1u of sugar,
meaning the overall recipe should be completely unchanged in practice.
Contact me on discord if any issues arise from these chemical changes!

First aid analyzers now give easy-to-understand direct information, with
the specific recommended treatments bolded in the analysis text. They
also have a 'unique' extra bit of info, telling you about improvised
ways to remedy your wound.
## Why It's Good For The Game

Wounds have a very poor amount of interaction with the rest of the game
and have not had much added to them post-merge, especially in
'improvised' ways to help Not Die to a wound while you crawl your way to
a emergency medkit or medbay. I researched info on this and found some
interesting ideas - some of them I'll have to leave for later because
this PR kept growing out of scope (Improvised bone gel, ice on wounds
which turned into wound temperature mechanics, crutches, a 'suture item'
component refactor...)

As for what this actually does to benefit the game, it allows more
dynamic wound Gameplay as people use first aid analyzers to get
information on treatment when medbay blows up, helps them stabilize by
splashing flour onto themselves before looking for some actual
treatment, helps traitors realize how they can self-treat many crippling
wounds (at risk, of course). It expands treatment options to things
beside medkits and medbay, but always does so in ways that have
downsides that make them not ideal as _treatment_, and more beneficial
as stabilizing before seeking true professional help. This thus
significantly increases the rather shallow depth of wounds as a system
to interact with.

> Several common 'household' reagents can be used as improvised medicine
treatment.

From what I could tell by looking at several sources for each
'realistic' treatment, these are indeed semi-reasonable things that are
done to wounds by some people as household treatment.

It goes without saying that you should **not do any of these things in
real life** without consulting a doctor unless your blood is also
spilling out by the gallon into the floor. All these 'realistic
treatments' have drastic downsides and are meant for the short-term
only. Except the tea.

> Drinking tea will help mend (non-bone) wounds over time.

Tea is healthy, we all know that.

> Flour and corn starch may be splashed onto wounds to help dry them up,
though they'll have a negative effect on burn wounds.

Flour and apparently starch dries wounds up but risks infection. That's
not a thing for blood wounds yet but oh well.

> Table salt and saltwater can be splashed onto wounds as well, reducing
bleeding and improving sanitization and disinfection significantly.
However, the coarse undiluted salt will irritate the wounds, reducing
clot rate and flesh healing, and both of the reagents will increase a
burn wound's infestation rate.

Salt kills bacteria via osmosis, but it also kills your own cells, and
some bacteria like salt.

> Added a new reagent, saltwater, made by combining table salt with
water.

> Altered Table Salt's recipe to just need sodium and chloride. Changed
the recipe of Pentetic Acid and Heparin to need table salt (sodium x
chloride) and thus slightly altered the total output of those reagents
(pentacid went from 5u per reaction to 4u, heparin 4u->3u)

> Saline-Glucose Solution now needs 2u of saltwater and 1u of sugar,
meaning the overall recipe should be completely unchanged in practice.
Contact me on discord if any issues arise from these chemical changes!

I wish I hadn't had to mess with reagents like this, but I needed to
because just adding mixing salt and water caused the saline glucose
recipe to basically split itself into half saltwater half glucose.

I removed the water requirement for table salt (Why did it even have
that, salt ain't wet bro?), made saline-glucose need 2u saltwater and 1u
sugar, and altered relevant recipes so they didn't also cause unwanted
table salt to react from their sodium and chloride ingredients.

A happy side-effect is that saline glucose solution is even easier to
make now as an improvised chem by mixing salt, water, and sugar, which
fits pretty perfectly (especially as a temporary blood substitute)

> First aid analyzers now give easy-to-understand direct information,
with the specific recommended treatments bolded in the analysis text.
They also have a 'unique' extra bit of info, telling you about
improvised ways to remedy your wound.

You might notice that as the wounds get more serious the text gets more
direct and concise and reluctantly hands out more and more improvised
treatment options, so that's fun. As for the improvised section itself,
it helps people be actually aware of these ways to help treat themselves
rather than delegating it to hyper-gamer knowledge.

The bolded treatment bit is pretty neat and means your eyes can
inmediately focus on what you can do to save yourself - very useful if
you have a weeping avulsion and no bandages.
## Changelog
🆑
add: Several common 'household' reagents can be used as improvised
medicine treatment.
add: Drinking tea will help mend (non-bone) wounds over time.
add: Flour and corn starch may be splashed onto wounds to help dry them
up, though they'll have a negative effect on burn wounds.
add: Added a new reagent, saltwater, made by combining table salt with
water.
add: Table salt and saltwater can be splashed onto wounds as well,
reducing bleeding and improving sanitization and disinfection
significantly. However, the coarse undiluted salt will irritate the
wounds, reducing clot rate and flesh healing, and both of the reagents
will increase a burn wound's infestation rate.
add: Altered Table Salt's recipe to just need sodium and chloride.
Changed the recipe of Pentetic Acid and Heparin to need table salt
(sodium x chloride) and thus slightly altered the total output of those
reagents (pentacid went from 5u per reaction to 4u, heparin 4u->3u)
add: Saline-Glucose Solution now needs 2u of saltwater and 1u of sugar,
meaning the overall recipe should be completely unchanged in practice.
Contact me on discord if any issues arise from these chemical changes!
qol: First aid analyzers now give easy-to-understand direct information,
with the specific recommended treatments bolded in the analysis text.
They also have a 'unique' extra bit of info, telling you about
improvised ways to remedy your wound.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
This commit is contained in:
carlarctg
2023-09-11 14:44:31 -06:00
committed by GitHub
co-authored by san7890 MrMelbert
parent 82f34a3b02
commit dd8d13d8bc
20 changed files with 305 additions and 57 deletions
+3
View File
@@ -240,6 +240,9 @@
#define SPT_PROB(prob_per_second_percent, seconds_per_tick) (prob(100*SPT_PROB_RATE((prob_per_second_percent)/100, (seconds_per_tick))))
// )
// This value per these many units. Very unnecessary but helpful for readability (For example wanting 30 units of synthflesh to heal 50 damage - VALUE_PER(50, 30))
#define VALUE_PER(value, per) (value / per)
#define GET_TRUE_DIST(a, b) (a == null || b == null) ? -1 : max(abs(a.x -b.x), abs(a.y-b.y), abs(a.z-b.z))
//We used to use linear regression to approximate the answer, but Mloc realized this was actually faster.
+2
View File
@@ -115,6 +115,8 @@
#define REAGENT_NO_RANDOM_RECIPE (1<<7)
///Does this reagent clean things?
#define REAGENT_CLEANS (1<<8)
///Does this reagent affect wounds? Used to check if some procs should be ran.
#define REAGENT_AFFECTS_WOUNDS (1<<9)
//Chemical reaction flags, for determining reaction specialties
///Convert into impure/pure on reaction completion
+18 -7
View File
@@ -31,6 +31,14 @@
/// What the limb looks like on a cursory examine
var/examine_desc = "is badly hurt"
/// Simple description, shortened for clarity if defined. Otherwise just takes the normal desc in the analyzer proc.
var/simple_desc
/// Simple analyzer's wound description, which focuses less on the clinical aspect of the wound and more on easily readable treatment instructions.
var/simple_treat_text = "Go to medbay idiot"
/// Improvised remedies indicated by the first aid analyzer only.
var/homemade_treat_text = "Remember to drink lots of water!"
/// If this wound can generate a scar.
var/can_scar = TRUE
@@ -66,7 +74,7 @@
/// Using this limb in a do_after interaction will multiply the length by this duration (arms)
var/interaction_efficiency_penalty = 1
/// Incoming damage on this limb will be multiplied by this, to simulate tenderness and vulnerability (mostly burns).
var/damage_mulitplier_penalty = 1
var/damage_multiplier_penalty = 1
/// If set and this wound is applied to a leg, we take this many deciseconds extra per step on this leg
var/limp_slowdown
/// If this wound has a limp_slowdown and is applied to a leg, it has this chance to limp each step
@@ -547,7 +555,7 @@
return base_xadone_progress_to_qdel * severity
/// When synthflesh is applied to the victim, we call this. No sense in setting up an entire chem reaction system for wounds when we only care for a few chems. Probably will change in the future
/datum/wound/proc/on_synthflesh(power)
/datum/wound/proc/on_synthflesh(reac_volume)
return
/// Called when the patient is undergoing stasis, so that having fully treated a wound doesn't make you sit there helplessly until you think to unbuckle them
@@ -641,18 +649,21 @@
return "[desc]."
/datum/wound/proc/get_scanner_description(mob/user)
return "Type: [name]\nSeverity: [severity_text()]\nDescription: [desc]\nRecommended Treatment: [treat_text]"
return "Type: [name]\nSeverity: [severity_text(simple = FALSE)]\nDescription: [desc]\nRecommended Treatment: [treat_text]"
/datum/wound/proc/severity_text()
/datum/wound/proc/get_simple_scanner_description(mob/user)
return "[name] detected!\nRisk: [severity_text(simple = TRUE)]\nDescription: [simple_desc ? simple_desc : desc]\n<i>Treatment Guide: [simple_treat_text]</i>\n<i>Homemade Remedies: [homemade_treat_text]</i>"
/datum/wound/proc/severity_text(simple = FALSE)
switch(severity)
if(WOUND_SEVERITY_TRIVIAL)
return "Trivial"
if(WOUND_SEVERITY_MODERATE)
return "Moderate"
return "Moderate" + (simple ? "!" : "")
if(WOUND_SEVERITY_SEVERE)
return "Severe"
return "Severe" + (simple ? "!!" : "")
if(WOUND_SEVERITY_CRITICAL)
return "Critical"
return "Critical" + (simple ? "!!!" : "")
/// Returns TRUE if our limb is the head or chest, FALSE otherwise.
/// Essential in the sense of "we cannot live without it".
+13
View File
@@ -198,6 +198,10 @@
status_effect_type = /datum/status_effect/wound/blunt/bone/moderate
scar_keyword = "dislocate"
simple_desc = "Patient's bone has been dislocated, causing limping or reduced dexterity."
simple_treat_text = "<b>Bandaging</b> the wound will reduce its impact until treated with a bonesetter. Most commonly, it is treated by aggressively grabbing someone and helpfully wrenching the limb in place, though there's room for malfeasance when doing this."
homemade_treat_text = "Besides bandaging and wrenching, <b>bone setters</b> can be printed in lathes and utilized on oneself at the cost of great pain. As a last resort, <b>crushing</b> the patient with a <b>firelock</b> has sometimes been noted to fix their dislocated limb."
/datum/wound_pregen_data/bone/dislocate
abstract = FALSE
@@ -333,6 +337,11 @@
wound_flags = (ACCEPTS_GAUZE | MANGLES_INTERIOR)
regen_ticks_needed = 120 // ticks every 2 seconds, 240 seconds, so roughly 4 minutes default
simple_desc = "Patient's bone has cracked in the middle, drastically reducing limb functionality."
simple_treat_text = "<b>Bandaging</b> the wound will reduce its impact until <b>surgically treated</b> with bone gel and surgical tape."
homemade_treat_text = "<b>Bone gel and surgical tape</b> may be applied directly to the wound, though this is quite difficult for most people to do so individually unless they've dosed themselves with one or more <b>painkillers</b> (Morphine and Miner's Salve have been known to help)"
/datum/wound_pregen_data/bone/hairline
abstract = FALSE
@@ -364,6 +373,10 @@
wound_flags = (ACCEPTS_GAUZE | MANGLES_INTERIOR)
regen_ticks_needed = 240 // ticks every 2 seconds, 480 seconds, so roughly 8 minutes default
simple_desc = "Patient's bones have effectively shattered completely, causing total immobilization of the limb."
simple_treat_text = "<b>Bandaging</b> the wound will slightly reduce its impact until <b>surgically treated</b> with bone gel and surgical tape."
homemade_treat_text = "Although this is extremely difficult and slow to function, <b>Bone gel and surgical tape</b> may be applied directly to the wound, though this is nigh-impossible for most people to do so individually unless they've dosed themselves with one or more <b>painkillers</b> (Morphine and Miner's Salve have been known to help)"
/datum/wound_pregen_data/bone/compound
abstract = FALSE
+25 -13
View File
@@ -47,14 +47,12 @@
victim.visible_message(span_danger("The infection on the remnants of [victim]'s [limb.plaintext_zone] shift and bubble nauseatingly!"), span_warning("You can feel the infection on the remnants of your [limb.plaintext_zone] coursing through your veins!"), vision_distance = COMBAT_MESSAGE_RANGE)
return
if(victim.reagents)
if(HAS_TRAIT(victim, TRAIT_VIRUS_RESISTANCE))
sanitization += 0.9
if(victim.reagents.has_reagent(/datum/reagent/space_cleaner/sterilizine/))
sanitization += 0.9
if(victim.reagents.has_reagent(/datum/reagent/medicine/mine_salve))
sanitization += 0.3
flesh_healing += 0.5
for(var/datum/reagent/reagent as anything in victim.reagents.reagent_list)
if(reagent.chemical_flags & REAGENT_AFFECTS_WOUNDS)
reagent.on_burn_wound_processing()
if(HAS_TRAIT(victim, TRAIT_VIRUS_RESISTANCE))
sanitization += 0.9
if(limb.current_gauze)
limb.seep_gauze(WOUND_BURN_SANITIZATION_RATE * seconds_per_tick)
@@ -262,8 +260,8 @@
if(sanitization > 0)
infestation = max(infestation - (0.1 * WOUND_BURN_SANITIZATION_RATE * seconds_per_tick), 0)
/datum/wound/burn/flesh/on_synthflesh(amount)
flesh_healing += amount * 0.5 // 20u patch will heal 10 flesh standard
/datum/wound/burn/flesh/on_synthflesh(reac_volume)
flesh_healing += reac_volume * 0.5 // 20u patch will heal 10 flesh standard
/datum/wound_pregen_data/flesh_burn
abstract = TRUE
@@ -284,12 +282,16 @@
examine_desc = "is badly burned and breaking out in blisters"
occur_text = "breaks out with violent red burns"
severity = WOUND_SEVERITY_MODERATE
damage_mulitplier_penalty = 1.1
damage_multiplier_penalty = 1.1
threshold_penalty = 30 // burns cause significant decrease in limb integrity compared to other wounds
status_effect_type = /datum/status_effect/wound/burn/flesh/moderate
flesh_damage = 5
scar_keyword = "burnmoderate"
simple_desc = "Patient's skin is burned, weakening the limb and multiplying percieved damage!"
simple_treat_text = "Ointment will speed up recovery, as will regenerative mesh. Risk of infection is negligible."
homemade_treat_text = "Healthy tea will speed up recovery. Salt, or preferably a salt-water mixture, will sanitize the wound, but the former will cause skin irritation, increasing the risk of infection."
/datum/wound_pregen_data/flesh_burn/second_degree
abstract = FALSE
@@ -304,7 +306,7 @@
examine_desc = "appears seriously charred, with aggressive red splotches"
occur_text = "chars rapidly, exposing ruined tissue and spreading angry red burns"
severity = WOUND_SEVERITY_SEVERE
damage_mulitplier_penalty = 1.2
damage_multiplier_penalty = 1.2
threshold_penalty = 40
status_effect_type = /datum/status_effect/wound/burn/flesh/severe
treatable_by = list(/obj/item/flashlight/pen/paramedic, /obj/item/stack/medical/ointment, /obj/item/stack/medical/mesh)
@@ -312,6 +314,10 @@
flesh_damage = 12.5
scar_keyword = "burnsevere"
simple_desc = "Patient's skin is badly burned, significantly weakening the limb and compounding further damage!!"
simple_treat_text = "<b>Bandages will speed up recovery</b>, as will <b>ointment or regenerative mesh</b>. <b>Spaceacilin, sterilizine, and 'Miner's Salve'</b> will help with infection."
homemade_treat_text = "<b>Healthy tea</b> will speed up recovery. <b>Salt</b>, or preferably a <b>salt-water</b> mixture, will sanitize the wound, but the former especially will cause skin irritation and dehydration, speeding up infection. <b>Space Cleaner</b> can be used as disinfectant in a pinch."
/datum/wound_pregen_data/flesh_burn/third_degree
abstract = FALSE
@@ -326,7 +332,7 @@
examine_desc = "is a ruined mess of blanched bone, melted fat, and charred tissue"
occur_text = "vaporizes as flesh, bone, and fat melt together in a horrifying mess"
severity = WOUND_SEVERITY_CRITICAL
damage_mulitplier_penalty = 1.3
damage_multiplier_penalty = 1.3
sound_effect = 'sound/effects/wounds/sizzle2.ogg'
threshold_penalty = 80
status_effect_type = /datum/status_effect/wound/burn/flesh/critical
@@ -335,6 +341,10 @@
flesh_damage = 20
scar_keyword = "burncritical"
simple_desc = "Patient's skin is destroyed and tissue charred, leaving the limb with almost <b>no integrity<b> and a drastic chance of <b>infection<b>!!!"
simple_treat_text = "Immediately <b>bandage</b> the wound and treat it with <b>ointment or regenerative mesh</b>. <b>Spaceacilin, sterilizine, or 'Miner's Salve'</b> will stave off infection. Seek professional care <b>immediately</b>, before sepsis sets in and the wound becomes untreatable."
homemade_treat_text = "<b>Healthy tea</b> will help with recovery. A <b>salt-water mixture</b>, topically applied, might help stave off infection in the short term, but pure table salt is NOT recommended. <b>Space Cleaner</b> can be used as disinfectant in a pinch."
/datum/wound_pregen_data/flesh_burn/fourth_degree
abstract = FALSE
@@ -349,6 +359,8 @@
examine_desc = "appears to have holy symbols painfully branded into their flesh, leaving severe burns."
occur_text = "chars rapidly into a strange pattern of holy symbols, burned into the flesh."
simple_desc = "Patient's skin has had strange markings burned onto it, significantly weakening the limb and compounding further damage!!"
/datum/wound_pregen_data/flesh_burn/third_degree/holy
abstract = FALSE
can_be_randomly_generated = FALSE
+11 -2
View File
@@ -107,9 +107,9 @@
if (limb) // parent can cause us to be removed, so its reasonable to check if we're still applied
adjust_blood_flow(-0.03 * power) // i think it's like a minimum of 3 power, so .09 blood_flow reduction per tick is pretty good for 0 effort
/datum/wound/pierce/bleed/on_synthflesh(power)
/datum/wound/pierce/bleed/on_synthflesh(reac_volume)
. = ..()
adjust_blood_flow(-0.025 * power) // 20u * 0.05 = -1 blood flow, less than with slashes but still good considering smaller bleed rates
adjust_blood_flow(-0.025 * reac_volume) // 20u * 0.05 = -1 blood flow, less than with slashes but still good considering smaller bleed rates
/// If someone is using a suture to close this puncture
/datum/wound/pierce/bleed/proc/suture(obj/item/stack/medical/suture/I, mob/user)
@@ -193,6 +193,9 @@
status_effect_type = /datum/status_effect/wound/pierce/moderate
scar_keyword = "piercemoderate"
simple_treat_text = "<b>Bandaging</b> the wound will reduce blood loss, help the wound close by itself quicker, and speed up the blood recovery period. The wound itself can be slowly <b>sutured</b> shut."
homemade_treat_text = "<b>Tea</b> stimulates the body's natural healing systems, slightly fastening clotting. The wound itself can be rinsed off on a sink or shower as well. Other remedies are unnecessary."
/datum/wound_pregen_data/flesh_pierce/breakage
abstract = FALSE
@@ -221,6 +224,9 @@
status_effect_type = /datum/status_effect/wound/pierce/severe
scar_keyword = "piercesevere"
simple_treat_text = "<b>Bandaging</b> the wound is essential, and will reduce blood loss. Afterwards, the wound can be <b>sutured</b> shut, preferably while the patient is resting and/or grasping their wound."
homemade_treat_text = "Bed sheets can be ripped up to make <b>makeshift gauze</b>. <b>Flour, table salt, or salt mixed with water</b> can be applied directly to stem the flow, though unmixed salt will irritate the skin and worsen natural healing. Resting and grabbing your wound will also reduce bleeding."
/datum/wound_pregen_data/flesh_pierce/open_puncture
abstract = FALSE
@@ -249,6 +255,9 @@
scar_keyword = "piercecritical"
wound_flags = (ACCEPTS_GAUZE | MANGLES_EXTERIOR | CAN_BE_GRASPED)
simple_treat_text = "<b>Bandaging</b> the wound is of utmost importance, as is seeking direct medical attention - <b>Death</b> will ensue if treatment is delayed whatsoever, with lack of <b>oxygen</b> killing the patient, thus <b>Food, Iron, and saline solution</b> is always recommended after treatment. This wound will not naturally seal itself."
homemade_treat_text = "Bed sheets can be ripped up to make <b>makeshift gauze</b>. <b>Flour, salt, and saltwater</b> topically applied will help. Dropping to the ground and grabbing your wound will reduce blood flow."
/datum/wound_pregen_data/flesh_pierce/cavity
abstract = FALSE
+10 -3
View File
@@ -233,9 +233,9 @@
if (limb) // parent can cause us to be removed, so its reasonable to check if we're still applied
adjust_blood_flow(-0.03 * power) // i think it's like a minimum of 3 power, so .09 blood_flow reduction per tick is pretty good for 0 effort
/datum/wound/slash/flesh/on_synthflesh(power)
/datum/wound/slash/flesh/on_synthflesh(reac_volume)
. = ..()
adjust_blood_flow(-0.075 * power) // 20u * 0.075 = -1.5 blood flow, pretty good for how little effort it is
adjust_blood_flow(-0.075 * reac_volume) // 20u * 0.075 = -1.5 blood flow, pretty good for how little effort it is
/// If someone's putting a laser gun up to our cut to cauterize it
/datum/wound/slash/flesh/proc/las_cauterize(obj/item/gun/energy/laser/lasgun, mob/user)
@@ -328,6 +328,9 @@
status_effect_type = /datum/status_effect/wound/slash/flesh/moderate
scar_keyword = "slashmoderate"
simple_treat_text = "<b>Bandaging</b> the wound will reduce blood loss, help the wound close by itself quicker, and speed up the blood recovery period. The wound itself can be slowly <b>sutured</b> shut."
homemade_treat_text = "<b>Tea</b> stimulates the body's natural healing systems, slightly fastening clotting. The wound itself can be rinsed off on a sink or shower as well. Other remedies are unnecessary."
/datum/wound/slash/flesh/moderate/update_descriptions()
if(!limb.can_bleed())
occur_text = "is cut open"
@@ -355,6 +358,9 @@
status_effect_type = /datum/status_effect/wound/slash/flesh/severe
scar_keyword = "slashsevere"
simple_treat_text = "<b>Bandaging</b> the wound is essential, and will reduce blood loss. Afterwards, the wound can be <b>sutured</b> shut, preferably while the patient is resting and/or grasping their wound."
homemade_treat_text = "Bed sheets can be ripped up to make <b>makeshift gauze</b>. <b>Flour, table salt, or salt mixed with water</b> can be applied directly to stem the flow, though unmixed salt will irritate the skin and worsen natural healing. Resting and grabbing your wound will also reduce bleeding."
/datum/wound_pregen_data/flesh_slash/laceration
abstract = FALSE
@@ -382,6 +388,8 @@
status_effect_type = /datum/status_effect/wound/slash/flesh/critical
scar_keyword = "slashcritical"
wound_flags = (ACCEPTS_GAUZE | MANGLES_EXTERIOR | CAN_BE_GRASPED)
simple_treat_text = "<b>Bandaging</b> the wound is of utmost importance, as is seeking direct medical attention - <b>Death</b> will ensue if treatment is delayed whatsoever, with lack of <b>oxygen</b> killing the patient, thus <b>Food, Iron, and saline solution</b> is always recommended after treatment. This wound will not naturally seal itself."
homemade_treat_text = "Bed sheets can be ripped up to make <b>makeshift gauze</b>. <b>Flour, salt, and saltwater</b> topically applied will help. Dropping to the ground and grabbing your wound will reduce blood flow."
/datum/wound/slash/flesh/critical/update_descriptions()
if (!limb.can_bleed())
@@ -391,7 +399,6 @@
abstract = FALSE
wound_path_to_generate = /datum/wound/slash/flesh/critical
threshold_minimum = 80
/datum/wound/slash/flesh/moderate/many_cuts
@@ -496,7 +496,7 @@
#define AID_EMOTION_SAD "sad"
/// Displays wounds with extended information on their status vs medscanners
/proc/woundscan(mob/user, mob/living/carbon/patient, obj/item/healthanalyzer/scanner)
/proc/woundscan(mob/user, mob/living/carbon/patient, obj/item/healthanalyzer/scanner, simple_scan = FALSE)
if(!istype(patient) || user.incapacitated())
return
@@ -507,7 +507,7 @@
render_list += "<span class='alert ml-1'><b>Warning: Physical trauma[LAZYLEN(wounded_part.wounds) > 1? "s" : ""] detected in [wounded_part.name]</b>"
for(var/limb_wound in wounded_part.wounds)
var/datum/wound/current_wound = limb_wound
render_list += "<div class='ml-2'>[current_wound.get_scanner_description()]</div>\n"
render_list += "<div class='ml-2'>[simple_scan ? current_wound.get_simple_scanner_description() : current_wound.get_scanner_description()]</div>\n"
if (scanner.give_wound_treatment_bonus)
ADD_TRAIT(current_wound, TRAIT_WOUND_SCANNED, ANALYZER_TRAIT)
if(!advised)
@@ -515,11 +515,9 @@
advised = TRUE
render_list += "</span>"
var/obj/item/healthanalyzer/simple/simple_scanner
if(istype(scanner, /obj/item/healthanalyzer/simple))
simple_scanner = scanner
if(render_list == "")
if (simple_scanner)
if(simple_scan)
var/obj/item/healthanalyzer/simple/simple_scanner = scanner
// Only emit the cheerful scanner message if this scan came from a scanner
playsound(simple_scanner, 'sound/machines/ping.ogg', 50, FALSE)
to_chat(user, span_notice("\The [simple_scanner] makes a happy ping and briefly displays a smiley face with several exclamation points! It's really excited to report that [patient] has no wounds!"))
@@ -527,7 +525,8 @@
to_chat(user, "<span class='notice ml-1'>No wounds detected in subject.</span>")
else
to_chat(user, examine_block(jointext(render_list, "")), type = MESSAGE_TYPE_INFO)
if (simple_scanner)
if(simple_scan)
var/obj/item/healthanalyzer/simple/simple_scanner = scanner
simple_scanner.show_emotion(AID_EMOTION_WARN)
playsound(simple_scanner, 'sound/machines/twobeep.ogg', 50, FALSE)
@@ -586,7 +585,7 @@
show_emotion(AI_EMOTION_SAD)
return
woundscan(user, patient, src)
woundscan(user, patient, src, simple_scan = TRUE)
flick(icon_state + "_pinprick", src)
/obj/item/healthanalyzer/simple/update_overlays()
@@ -410,7 +410,7 @@
/datum/chemical_reaction/drink/squirt_cider
results = list(/datum/reagent/consumable/ethanol/squirt_cider = 4)
required_reagents = list(/datum/reagent/water = 2, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/salt = 1)
required_reagents = list(/datum/reagent/water/salt = 2, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/nutriment = 1)
mix_message = "The mix swirls and turns a bright red that reminds you of an apple's skin."
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
@@ -560,8 +560,8 @@
/datum/chemical_reaction/food/soup/chili_sin_carne
required_reagents = list(
/datum/reagent/water = 40,
/datum/reagent/consumable/salt = 5,
/datum/reagent/water = 30,
/datum/reagent/water/salt = 10,
)
required_ingredients = list(
/obj/item/food/grown/chili = 1,
@@ -1097,8 +1097,8 @@
/datum/chemical_reaction/food/soup/electron
required_reagents = list(
/datum/reagent/water = 45,
/datum/reagent/consumable/salt = 5,
/datum/reagent/water = 40,
/datum/reagent/water/salt = 10,
)
required_ingredients = list(
/obj/item/food/grown/mushroom/jupitercup = 1,
@@ -1661,8 +1661,8 @@
/datum/chemical_reaction/food/soup/rice_porridge
required_reagents = list(
/datum/reagent/water = 30,
/datum/reagent/consumable/salt = 5,
/datum/reagent/water = 20,
/datum/reagent/water/salt = 10,
)
required_ingredients = list(
/obj/item/food/boiledrice = 1,
@@ -1803,7 +1803,7 @@
/obj/item/food/spaghetti/rawnoodles = 1
)
required_catalysts = list(
/datum/reagent/water = 30
/datum/reagent/water/salt = 10,
)
resulting_food_path = /obj/item/food/spaghetti/boilednoodles
ingredient_reagent_multiplier = 0
@@ -422,8 +422,7 @@
reqs = list(
/obj/item/reagent_containers/cup/beaker/large = 1,
/obj/item/food/grown/cucumber = 10,
/datum/reagent/water = 10,
/datum/reagent/consumable/salt = 10,
/datum/reagent/water/salt = 20,
)
result = /obj/item/storage/fancy/pickles_jar
category = CAT_MISCFOOD
@@ -162,6 +162,10 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
return
holder.remove_reagent(type, metabolization_rate * M.metabolism_efficiency * seconds_per_tick) //By default it slowly disappears.
/// Called in burns.dm *if* the reagent has the REAGENT_AFFECTS_WOUNDS process flag
/datum/reagent/proc/on_burn_wound_processing(datum/wound/burn/flesh/burn_wound)
return
/*
Used to run functions before a reagent is transferred. Returning TRUE will block the transfer attempt.
Primarily used in reagents/reaction_agents
@@ -296,10 +296,39 @@
affected_mob.AdjustSleeping(-20 * REM * seconds_per_tick)
if(affected_mob.getToxLoss() && SPT_PROB(10, seconds_per_tick))
affected_mob.adjustToxLoss(-1, FALSE, required_biotype = affected_biotype)
var/to_chatted = FALSE
for(var/datum/wound/iter_wound as anything in affected_mob.all_wounds)
if(SPT_PROB(10, seconds_per_tick))
var/helped = iter_wound.tea_life_process()
if(!to_chatted && helped)
to_chat(affected_mob, span_notice("A calm, relaxed feeling suffuses you. Your wounds feel a little healthier."))
to_chatted = TRUE
affected_mob.adjust_bodytemperature(20 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * seconds_per_tick, 0, affected_mob.get_body_temp_normal())
..()
. = TRUE
// Different handling, different name.
// Returns FALSE by default so broken bones and 'loss' wounds don't give a false message
/datum/wound/proc/tea_life_process()
return FALSE
// Slowly increase (gauzed) clot rate
/datum/wound/pierce/bleed/tea_life_process()
gauzed_clot_rate += 0.1
return TRUE
// Slowly increase clot rate
/datum/wound/slash/flesh/tea_life_process()
clot_rate += 0.2
return TRUE
// There's a designated burn process, but I felt this would be better for consistency with the rest of the reagent's procs
/datum/wound/burn/flesh/tea_life_process()
// Sanitizes and heals, but with a limit
flesh_healing = (flesh_healing > 0.1) ? flesh_healing : flesh_healing + 0.02
infestation_rate = max(infestation_rate - 0.005, 0)
return TRUE
/datum/reagent/consumable/lemonade
name = "Lemonade"
description = "Sweet, tangy lemonade. Good for the soul."
@@ -468,6 +468,40 @@
return
exposed_turf.spawn_unique_cleanable(/obj/effect/decal/cleanable/food/salt)
/datum/reagent/consumable/salt/expose_mob(mob/living/exposed_mob, methods, reac_volume)
. = ..()
var/mob/living/carbon/carbies = exposed_mob
if(!(methods & (PATCH|TOUCH|VAPOR)))
return
for(var/datum/wound/iter_wound as anything in carbies.all_wounds)
iter_wound.on_salt(reac_volume, carbies)
// Salt can help with wounds by soaking up fluid, but undiluted salt will also cause irritation from the loose crystals, and it might soak up the body's water as well!
// A saltwater mixture would be best, but we're making improvised chems here, not real ones.
/datum/wound/proc/on_salt(reac_volume, mob/living/carbon/carbies)
return
/datum/wound/pierce/bleed/on_salt(reac_volume, mob/living/carbon/carbies)
adjust_blood_flow(-0.06 * reac_volume, initial_flow * 0.6) // 20u of a salt shacker * 0.1 = -1.6~ blood flow, but is always clamped to, at best, third blood loss from that wound.
// Crystal irritation worsening recovery.
gauzed_clot_rate *= 0.65
to_chat(carbies, span_notice("The salt bits seep in and stick to [lowertext(src)], painfully irritating the skin but soaking up most of the blood."))
/datum/wound/slash/flesh/on_salt(reac_volume, mob/living/carbon/carbies)
adjust_blood_flow(-0.1 * reac_volume, initial_flow * 0.5) // 20u of a salt shacker * 0.1 = -2~ blood flow, but is always clamped to, at best, halve blood loss from that wound.
// Crystal irritation worsening recovery.
clot_rate *= 0.75
to_chat(carbies, span_notice("The salt bits seep in and stick to [lowertext(src)], painfully irritating the skin but soaking up most of the blood."))
/datum/wound/burn/flesh/on_salt(reac_volume)
// Slightly sanitizes and disinfects, but also increases infestation rate (some bacteria are aided by salt), and decreases flesh healing (can damage the skin from moisture absorption)
sanitization += VALUE_PER(0.4, 30) * reac_volume
infestation -= max(VALUE_PER(0.3, 30) * reac_volume, 0)
infestation_rate += VALUE_PER(0.12, 30) * reac_volume
flesh_healing -= max(VALUE_PER(5, 30) * reac_volume, 0)
to_chat(victim, span_notice("The salt bits seep in and stick to [lowertext(src)], painfully irritating the skin! After a few moments, it feels marginally better."))
/datum/reagent/consumable/blackpepper
name = "Black Pepper"
description = "A powder ground from peppercorns. *AAAACHOOO*"
@@ -606,9 +640,38 @@
reagent_state = SOLID
color = "#FFFFFF" // rgb: 0, 0, 0
taste_description = "chalky wheat"
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_AFFECTS_WOUNDS
default_container = /obj/item/reagent_containers/condiment/flour
/datum/reagent/consumable/flour/expose_mob(mob/living/exposed_mob, methods, reac_volume)
. = ..()
var/mob/living/carbon/carbies = exposed_mob
if(!(methods & (PATCH|TOUCH|VAPOR)))
return
for(var/datum/wound/iter_wound as anything in carbies.all_wounds)
iter_wound.on_flour(reac_volume, carbies)
/datum/wound/proc/on_flour(reac_volume, mob/living/carbon/carbies)
return
/datum/wound/pierce/bleed/on_flour(reac_volume, mob/living/carbon/carbies)
adjust_blood_flow(-0.015 * reac_volume) // 30u of a flour sack * 0.015 = -0.45~ blood flow, prettay good
to_chat(carbies, span_notice("The flour seeps into [lowertext(src)], painfully drying it up and absorbing some of the blood."))
// When some nerd adds infection for wounds, make this increase the infection
/datum/wound/slash/flesh/on_flour(reac_volume, mob/living/carbon/carbies)
adjust_blood_flow(-0.04 * reac_volume) // 30u of a flour sack * 0.04 = -1.25~ blood flow, pretty good!
to_chat(carbies, span_notice("The flour seeps into [lowertext(src)], painfully drying some of it up and absorbing a little blood."))
// When some nerd adds infection for wounds, make this increase the infection
// Don't pour flour onto burn wounds, it increases infection risk! Very unwise. Backed up by REAL info from REAL professionals.
// https://www.reuters.com/article/uk-factcheck-flour-burn-idUSKCN26F2N3
/datum/wound/burn/flesh/on_flour(reac_volume)
to_chat(victim, span_notice("The flour seeps into [lowertext(src)], spiking you with intense pain! That probably wasn't a good idea..."))
sanitization -= min(0, 1)
infestation += 0.2
return
/datum/reagent/consumable/flour/expose_turf(turf/exposed_turf, reac_volume)
. = ..()
if(isspaceturf(exposed_turf))
@@ -681,6 +744,37 @@
description = "A slippery solution."
color = "#DBCE95"
taste_description = "slime"
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_AFFECTS_WOUNDS
// Starch has similar absorbing properties to flour (Stronger here because it's rarer)
/datum/reagent/consumable/corn_starch/expose_mob(mob/living/exposed_mob, methods, reac_volume)
. = ..()
var/mob/living/carbon/carbies = exposed_mob
if(!(methods & (PATCH|TOUCH|VAPOR)))
return
for(var/datum/wound/iter_wound as anything in carbies.all_wounds)
iter_wound.on_starch(reac_volume, carbies)
/datum/wound/proc/on_starch(reac_volume, mob/living/carbon/carbies)
return
/datum/wound/pierce/bleed/on_starch(reac_volume, mob/living/carbon/carbies)
adjust_blood_flow(-0.03 * reac_volume)
to_chat(carbies, span_notice("The slimey starch seeps into [lowertext(src)], painfully drying some of it up and absorbing a little blood."))
// When some nerd adds infection for wounds, make this increase the infection
return
/datum/wound/slash/flesh/on_starch(reac_volume, mob/living/carbon/carbies)
adjust_blood_flow(-0.06 * reac_volume)
to_chat(carbies, span_notice("The slimey starch seeps into [lowertext(src)], painfully drying it up and absorbing some of the blood."))
// When some nerd adds infection for wounds, make this increase the infection
return
/datum/wound/burn/flesh/on_starch(reac_volume, mob/living/carbon/carbies)
to_chat(carbies, span_notice("The slimey starch seeps into [lowertext(src)], spiking you with intense pain! That probably wasn't a good idea..."))
sanitization -= min(0, 0.5)
infestation += 0.1
return
/datum/reagent/consumable/corn_syrup
name = "Corn Syrup"
@@ -346,7 +346,7 @@
color = "#6D6374"
metabolization_rate = 0.4 * REAGENTS_METABOLISM
ph = 2.6
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_AFFECTS_WOUNDS
/datum/reagent/medicine/mine_salve/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
affected_mob.adjustBruteLoss(-0.25 * REM * seconds_per_tick, FALSE, required_bodytype = affected_bodytype)
@@ -380,6 +380,10 @@
. = ..()
metabolizer.remove_status_effect(/datum/status_effect/grouped/screwy_hud/fake_healthy, type)
/datum/reagent/medicine/mine_salve/on_burn_wound_processing(datum/wound/burn/flesh/burn_wound)
burn_wound.sanitization += 0.3
burn_wound.flesh_healing += 0.5
/datum/reagent/medicine/omnizine
name = "Omnizine"
description = "Slowly heals all damage types. Overdose will cause damage in all types instead."
@@ -281,6 +281,53 @@
//You don't belong in this world, monster!
mytray.reagents.remove_reagent(type, volume)
/datum/reagent/water/salt
name = "Saltwater"
description = "Water, but salty. Smells like... the station infirmary?"
color = "#aaaaaa9d" // rgb: 170, 170, 170, 77 (alpha)
taste_description = "the sea"
cooling_temperature = 3
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_CLEANS
default_container = /obj/item/reagent_containers/cup/glass/waterbottle
/datum/glass_style/shot_glass/water/salt
required_drink_type = /datum/reagent/water/salt
icon_state = "shotglassclear"
/datum/glass_style/drinking_glass/water/salt
required_drink_type = /datum/reagent/water/salt
name = "glass of saltwater"
desc = "If you have a sore throat, gargle some saltwater and watch the pain go away. Can be used as a very improvised topical medicine against wounds."
icon_state = "glass_clear"
/datum/reagent/water/salt/expose_mob(mob/living/exposed_mob, methods, reac_volume)
. = ..()
var/mob/living/carbon/carbies = exposed_mob
if(!(methods & (PATCH|TOUCH|VAPOR)))
return
for(var/datum/wound/iter_wound as anything in carbies.all_wounds)
iter_wound.on_saltwater(reac_volume, carbies)
// Mixed salt with water! All the help of salt with none of the irritation. Plus increased volume.
/datum/wound/proc/on_saltwater(reac_volume, mob/living/carbon/carbies)
return
/datum/wound/pierce/bleed/on_saltwater(reac_volume, mob/living/carbon/carbies)
adjust_blood_flow(-0.06 * reac_volume, initial_flow * 0.6)
to_chat(carbies, span_notice("The salt water splashes over [lowertext(src)], soaking up the blood."))
/datum/wound/slash/flesh/on_saltwater(reac_volume, mob/living/carbon/carbies)
adjust_blood_flow(-0.1 * reac_volume, initial_flow * 0.5)
to_chat(carbies, span_notice("The salt water splashes over [lowertext(src)], soaking up the blood."))
/datum/wound/burn/flesh/on_saltwater(reac_volume)
// Similar but better stats from normal salt.
sanitization += VALUE_PER(0.6, 30) * reac_volume
infestation -= max(VALUE_PER(0.5, 30) * reac_volume, 0)
infestation_rate += VALUE_PER(0.07, 30) * reac_volume
to_chat(victim, span_notice("The salt water splashes over [lowertext(src)], soaking up the... miscellaneous fluids. It feels somewhat better afterwards."))
return
/datum/reagent/water/holywater
name = "Holy Water"
description = "Water blessed by some deity."
@@ -1037,7 +1084,7 @@
color = "#D0EFEE" // space cleaner but lighter
taste_description = "bitterness"
ph = 10.5
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_AFFECTS_WOUNDS
/datum/reagent/space_cleaner/sterilizine/expose_mob(mob/living/carbon/exposed_carbon, methods=TOUCH, reac_volume)
. = ..()
@@ -1047,6 +1094,9 @@
for(var/datum/surgery/surgery as anything in exposed_carbon.surgeries)
surgery.speed_modifier = max(0.2, surgery.speed_modifier)
/datum/reagent/space_cleaner/sterilizine/on_burn_wound_processing(datum/wound/burn/flesh/burn_wound)
burn_wound.sanitization += 0.9
/datum/reagent/iron
name = "Iron"
description = "Pure iron is a metal."
@@ -1210,14 +1260,14 @@
/datum/reagent/space_cleaner
name = "Space Cleaner"
description = "A compound used to clean things. Now with 50% more sodium hypochlorite!"
description = "A compound used to clean things. Now with 50% more sodium hypochlorite! Can be used to clean wounds, but it's not really meant for that."
color = "#A5F0EE" // rgb: 165, 240, 238
taste_description = "sourness"
reagent_weight = 0.6 //so it sprays further
penetrates_skin = NONE
penetrates_skin = VAPOR
var/clean_types = CLEAN_WASH
ph = 5.5
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_CLEANS
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_CLEANS|REAGENT_AFFECTS_WOUNDS
/datum/reagent/space_cleaner/expose_obj(obj/exposed_obj, reac_volume)
. = ..()
@@ -1243,6 +1293,13 @@
if(methods & (TOUCH|VAPOR))
exposed_mob.wash(clean_types)
/datum/reagent/space_cleaner/on_burn_wound_processing(datum/wound/burn/flesh/burn_wound)
burn_wound.sanitization += 0.3
if(prob(5))
to_chat(burn_wound.victim, span_notice("Your [burn_wound] stings and burns from the [src] covering it! It does look pretty clean though."))
burn_wound.victim.adjustToxLoss(0.5)
burn_wound.limb.receive_damage(burn = 0.5, wound_bonus = CANT_WOUND)
/datum/reagent/space_cleaner/ez_clean
name = "EZ Clean"
description = "A powerful, acidic cleaner sold by Waffle Co. Affects organic matter while leaving other objects unaffected."
@@ -90,7 +90,7 @@
/datum/chemical_reaction/medicine/salglu_solution
results = list(/datum/reagent/medicine/salglu_solution = 3)
required_reagents = list(/datum/reagent/consumable/salt = 1, /datum/reagent/water = 1, /datum/reagent/consumable/sugar = 1)
required_reagents = list(/datum/reagent/water/salt = 2, /datum/reagent/consumable/sugar = 1)
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_ORGAN
/datum/chemical_reaction/medicine/mine_salve
@@ -138,8 +138,8 @@
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
/datum/chemical_reaction/medicine/pen_acid
results = list(/datum/reagent/medicine/pen_acid = 6)
required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/chlorine = 1, /datum/reagent/ammonia = 1, /datum/reagent/toxin/formaldehyde = 1, /datum/reagent/sodium = 1, /datum/reagent/toxin/cyanide = 1)
results = list(/datum/reagent/medicine/pen_acid = 5)
required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/ammonia = 1, /datum/reagent/toxin/formaldehyde = 1, /datum/reagent/consumable/salt = 1, /datum/reagent/toxin/cyanide = 1)
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
/datum/chemical_reaction/medicine/sal_acid
@@ -35,8 +35,8 @@
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_EXPLOSIVE
/datum/chemical_reaction/sodiumchloride
results = list(/datum/reagent/consumable/salt = 3)
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/sodium = 1, /datum/reagent/chlorine = 1)
results = list(/datum/reagent/consumable/salt = 2)
required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/chlorine = 1) // That's what I said! Sodium Chloride!
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_FOOD
/datum/chemical_reaction/stable_plasma
@@ -770,6 +770,11 @@
required_catalysts = list(/datum/reagent/water/holywater = 1)
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_PLANT | REACTION_TAG_OTHER
/datum/chemical_reaction/saltwater
results = list(/datum/reagent/water/salt = 2)
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/consumable/salt = 1)
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRINK | REACTION_TAG_ORGAN
/datum/chemical_reaction/exotic_stabilizer
results = list(/datum/reagent/exotic_stabilizer = 2)
required_reagents = list(/datum/reagent/plasma_oxide = 1,/datum/reagent/stabilizing_agent = 1)
@@ -307,8 +307,8 @@
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OTHER
/datum/chemical_reaction/heparin
results = list(/datum/reagent/toxin/heparin = 4)
required_reagents = list(/datum/reagent/toxin/formaldehyde = 1, /datum/reagent/sodium = 1, /datum/reagent/chlorine = 1, /datum/reagent/lithium = 1)
results = list(/datum/reagent/toxin/heparin = 3)
required_reagents = list(/datum/reagent/toxin/formaldehyde = 1, /datum/reagent/consumable/salt = 1, /datum/reagent/lithium = 1)
mix_message = "<span class='danger'>The mixture thins and loses all color.</span>"
is_cold_recipe = FALSE
required_temp = 100
+1 -1
View File
@@ -308,7 +308,7 @@
// we can (normally) only have one wound per type, but remember there's multiple types (smites like :B:loodless can generate multiple cuts on a limb)
for(var/datum/wound/iter_wound as anything in wounds)
dam_mul *= iter_wound.damage_mulitplier_penalty
dam_mul *= iter_wound.damage_multiplier_penalty
if(!LAZYLEN(wounds) && current_gauze && !replaced) // no more wounds = no need for the gauze anymore
owner.visible_message(span_notice("\The [current_gauze.name] on [owner]'s [name] falls away."), span_notice("The [current_gauze.name] on your [parse_zone(body_zone)] falls away."))