[MDB Ignore] Refactors gauze, adds Tourniquets (#95041)

## About The Pull Request

1. Refactors gauze

Removes gauze var from `/stack`, adds a shared parent between tape and
gauze.
Behavior of "sticking thing on limb" is now a bit more generic, with
there being a component to facilitate it and a framework on `/bodypart`

Closes #92990

2. Adds Tourniquets

A first aid item, when attached to a limb it reduces blood loss from
that limb by 90%.
However while attached you walk slower (if on a leg), interact slower
(if on a arm), and yes, you rapidly die if you put it on your head

Paramedic belts have their starting equipment changed again for the
500th time.
Surgical tape -> Tourniquet
Bone gel -> Bonesetter

<img width="604" height="224" alt="image"
src="https://github.com/user-attachments/assets/443dd5c0-44a3-4ccb-9f6a-c561bbf2fba9"
/>

## Why It's Good For The Game

Adds some more variety for field treatment of bleeding wounds, and in
the future we can add things like "improvised tourniquets" or
"improvised splints" with wooden planks.

## Changelog

🆑 Melbert
add: Adds Tourniquets. While attached to a limb, reduces blood loss from
that limb by 90%, but makes you walk / interact slower. (Or if you put
it on your head, you die.)
add: You can purchase Tourniquets from the premium section of the
medical vendor
add: Paramedic belt setup has changed yet again: Surgical tape replaced
with Tourniquet, Bone gel replaced with Bonesetter.
add: You can use all forms of tape as splint - like Gauze. Will secure a
fracture but won't stop your blood from exiting.
refactor: Refactored gauze entirely, report any strangeness with it (or
tape, or tourniquets)
/🆑
This commit is contained in:
MrMelbert
2026-02-15 08:30:57 +01:00
committed by GitHub
parent 9ab3db9b4a
commit ef28e00690
89 changed files with 1021 additions and 607 deletions
+3 -18
View File
@@ -58,21 +58,6 @@
// They're here instead of /stack/medical
// because sticky tape can be used as a makeshift bandage or splint
/// Verb used when applying this object to someone
var/apply_verb = "applying"
/// If set and this used as a splint for a broken bone wound,
/// This is used as a multiplier for applicable slowdowns (lower = better) (also for speeding up burn recoveries)
var/splint_factor
/// Like splint_factor but for burns instead of bone wounds. This is a multiplier used to speed up burn recoveries
var/burn_cleanliness_bonus
/// How much blood flow this stack can absorb if used as a bandage on a cut wound.
/// note that absorption is how much we lower the flow rate, not the raw amount of blood we suck up
var/absorption_capacity
/// How quickly we lower the blood flow on a cut wound we're bandaging.
/// Expected lifetime of this bandage in seconds is thus absorption_capacity/absorption_rate,
/// or until the cut heals, whichever comes first
var/absorption_rate
/// Can this stack be used for contruction of girders?
var/usable_for_construction = FALSE
/// Does this stack require a unique girder in order to make a wall?
@@ -231,12 +216,12 @@
if(novariants)
return ..()
if(amount <= (max_amount * (1/3)))
icon_state = initial(icon_state)
icon_state = post_init_icon_state || initial(icon_state)
return ..()
if (amount <= (max_amount * (2/3)))
icon_state = "[initial(icon_state)]_2"
icon_state = "[post_init_icon_state || initial(icon_state)]_2"
return ..()
icon_state = "[initial(icon_state)]_3"
icon_state = "[post_init_icon_state || initial(icon_state)]_3"
return ..()
/obj/item/stack/examine(mob/user)