Files
Bubberstation/code/modules/vending/medical.dm
T
MrMelbertandGitHub ef28e00690 [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)
/🆑
2026-02-15 08:30:57 +01:00

118 lines
4.3 KiB
Plaintext

/obj/machinery/vending/medical
name = "\improper NanoMed Plus"
desc = "Medical drug dispenser."
icon_state = "med"
icon_deny = "med-deny"
panel_type = "panel11"
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
products = list(
/obj/item/stack/medical/wrap/gauze = 8,
/obj/item/reagent_containers/syringe = 12,
/obj/item/reagent_containers/dropper = 3,
/obj/item/healthanalyzer = 4,
/obj/item/wrench/medical = 1,
/obj/item/stack/medical/wrap/sticky_tape/surgical = 3,
/obj/item/healthanalyzer/simple = 4,
/obj/item/stack/medical/ointment = 2,
/obj/item/stack/medical/suture = 2,
/obj/item/stack/medical/bone_gel = 4,
/obj/item/cane/crutch = 2,
/obj/item/cane/white = 2,
/obj/item/clothing/glasses/eyepatch/medical = 2,
/obj/item/storage/box/bandages = 2,
/obj/item/storage/box/triage_cards = 4,
/obj/item/pinpointer/crew = 2,
)
contraband = list(
/obj/item/storage/box/gum/happiness = 3,
/obj/item/storage/box/hug/medical = 1,
)
premium = list(
/obj/item/reagent_containers/hypospray/medipen = 3,
/obj/item/storage/belt/medical = 3,
/obj/item/sensor_device = 2,
/obj/item/storage/medkit/advanced = 2,
/obj/item/shears = 1,
/obj/item/tourniquet = 6,
/obj/item/storage/organbox = 1,
)
refill_canister = /obj/item/vending_refill/medical
default_price = PAYCHECK_CREW
extra_price = PAYCHECK_COMMAND
payment_department = ACCOUNT_MED
light_mask = "med-light-mask"
/obj/item/vending_refill/medical
machine_name = "NanoMed Plus"
icon_state = "refill_medical"
/obj/machinery/vending/medical/syndicate
name = "\improper SyndiMed Plus"
initial_language_holder = /datum/language_holder/syndicate
allow_custom = FALSE
/obj/machinery/vending/medical/infested_frigate
products = list(
/obj/item/stack/medical/wrap/gauze = 0,
/obj/item/reagent_containers/syringe = 7,
/obj/item/reagent_containers/dropper = 3,
/obj/item/healthanalyzer = 0,
/obj/item/wrench/medical = 0,
/obj/item/stack/medical/wrap/sticky_tape/surgical = 0,
/obj/item/healthanalyzer/simple = 0,
/obj/item/stack/medical/ointment = 0,
/obj/item/stack/medical/suture = 1,
/obj/item/stack/medical/bone_gel = 1,
/obj/item/cane/crutch = 2,
/obj/item/cane/white = 2,
/obj/item/clothing/glasses/eyepatch/medical = 2,
)
allow_custom = FALSE
//Created out of a necessity to get these dumb chems out of the medical tools vendor.
/obj/machinery/vending/drugs
name = "\improper NanoDrug Plus"
desc = "Medical drugs dispenser."
icon_state = "drug"
icon_deny = "drug-deny"
panel_type = "panel11"
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
products = list(
/obj/item/reagent_containers/applicator/patch/libital = 5,
/obj/item/reagent_containers/applicator/patch/aiuri = 5,
/obj/item/reagent_containers/syringe/convermol = 2,
/obj/item/reagent_containers/applicator/pill/insulin = 5,
/obj/item/reagent_containers/cup/bottle/multiver = 2,
/obj/item/reagent_containers/cup/bottle/syriniver = 2,
/obj/item/reagent_containers/cup/bottle/calomel = 2,
/obj/item/reagent_containers/cup/bottle/epinephrine = 3,
/obj/item/reagent_containers/cup/bottle/morphine = 4,
/obj/item/reagent_containers/cup/bottle/potass_iodide = 1,
/obj/item/reagent_containers/cup/bottle/salglu_solution = 3,
/obj/item/reagent_containers/cup/bottle/toxin = 3,
/obj/item/reagent_containers/syringe/antiviral = 6,
/obj/item/reagent_containers/medigel/libital = 2,
/obj/item/reagent_containers/medigel/aiuri = 2,
/obj/item/reagent_containers/medigel/sterilizine = 3,
)
contraband = list(
/obj/item/reagent_containers/applicator/pill/tox = 3,
/obj/item/reagent_containers/applicator/pill/morphine = 4,
/obj/item/reagent_containers/applicator/pill/multiver = 6,
)
premium = list(
/obj/item/reagent_containers/medigel/synthflesh = 2,
/obj/item/storage/pill_bottle/psicodine = 2,
/obj/item/storage/pill_bottle/sansufentanyl = 1,
/obj/item/inhaler/albuterol = 2,
)
default_price = 50
extra_price = 100
payment_department = ACCOUNT_MED
refill_canister = /obj/item/vending_refill/drugs
allow_custom = TRUE
/obj/item/vending_refill/drugs
machine_name = "NanoDrug Plus"
icon_state = "refill_medical"