Added some starting gear for medical. (#21939)

Supercedes #21909

Adds a single bottle of bicaridine, kelotane, and dexalin to the medical
smartfridge on the Horizon.

Also adds bicaridine, tricordrazine, and dermaline to the cargo order
screen. Butazoline and dermaline are priced as premium medicines.
Tricordrazine is priced cheap.

---------

Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
This commit is contained in:
Cody Brittain
2026-03-05 05:41:27 -05:00
committed by GitHub
parent 497bfafc84
commit b3fe100b25
7 changed files with 148 additions and 8 deletions
+45 -3
View File
@@ -240,12 +240,40 @@
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/tricordrazine
category = "medical"
name = "tricordrazine bottle"
supplier = "nanotrasen"
description = "A bottle of tricordrazine, a medicine used to treat various wounds."
price = 175
items = list(
/obj/item/reagent_containers/glass/bottle/tricordrazine
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/bicaridine_bottle
category = "medical"
name = "bicaridine bottle"
supplier = "nanotrasen"
description = "A bottle of bicaridine, a medicine used to treat trauma."
price = 250
items = list(
/obj/item/reagent_containers/glass/bottle/bicaridine
)
access = ACCESS_MEDICAL
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/butazoline_bottle
category = "medical"
name = "butazoline bottle"
supplier = "nanotrasen"
supplier = "zeng_hu"
description = "A bottle of butazoline, a medicine used to treat severe trauma."
price = 250
price = 525
items = list(
/obj/item/reagent_containers/glass/bottle/butazoline
)
@@ -258,7 +286,7 @@
category = "medical"
name = "kelotane bottle"
supplier = "nanotrasen"
description = "A bottle of kelotane, a medicine used to treat severe burns."
description = "A bottle of kelotane, a medicine used to treat burns."
price = 250
items = list(
/obj/item/reagent_containers/glass/bottle/kelotane
@@ -268,6 +296,20 @@
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/dermaline_bottle
category = "medical"
name = "dermaline bottle"
supplier = "zeng_hu"
description = "A bottle of dermaline, a medicine used to treat severe burns."
price = 525
items = list(
/obj/item/reagent_containers/glass/bottle/dermaline
)
access = ACCESS_MEDICAL
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/dylovene_bottle
category = "medical"
name = "dylovene bottle"
+3 -1
View File
@@ -40,6 +40,7 @@
)
display_tiers = 5
display_tier_amt = 3
has_emissive = FALSE
/obj/machinery/smartfridge/tradeshelf/clothing
name = "clothing shelf"
@@ -84,6 +85,7 @@
)
display_tiers = 4
display_tier_amt = 5
has_emissive = TRUE
/obj/machinery/smartfridge/tradeshelf/toy
name = "toy shelf"
@@ -131,7 +133,7 @@
user.visible_message("<b>[user]</b> loads [src] with [P].", SPAN_NOTICE("You load [src] with [P]."))
if(length(P.contents) > 0)
to_chat(user, SPAN_NOTICE("Some items are refused."))
update_overlays()
update_icon()
return TRUE
. = ..()
+26 -3
View File
@@ -22,6 +22,11 @@
var/machineselect = 0
var/list/accepted_items = list(/obj/item/reagent_containers/food/snacks/grown, /obj/item/seeds, /obj/item/mollusc)
/// List of items that the machine starts with upon spawn
var/list/initial_contents
/// Is this smartfridge going to have a glowing screen? (Drying Racks are not)
var/has_emissive = TRUE
var/cooling = 0 //Whether or not to vend products at the cooling temperature
var/heating = 0 //Whether or not to vend products at the heating temperature
@@ -99,12 +104,20 @@
update_overlays()
update_static_data_for_all_viewers()
/obj/machinery/smartfridge/Initialize()
/obj/machinery/smartfridge/Initialize(mapload)
. = ..()
if(is_secure)
wires = new/datum/wires/smartfridge/secure(src)
else
wires = new(src)
if(islist(initial_contents))
for(var/obj/item/typekey as anything in initial_contents)
var/amount = initial_contents[typekey]
if(isnull(amount))
amount = 1
for(var/i in 1 to amount)
new typekey(src)
item_quants[typekey.name]++
update_icon()
/obj/machinery/smartfridge/Destroy()
@@ -170,6 +183,12 @@
/obj/item/reagent_containers/hypospray/autoinjector,
/obj/item/personal_inhaler)
//Variant of medical fridge, but with some starting gear
/obj/machinery/smartfridge/secure/medbay/horizon
initial_contents = list(/obj/item/reagent_containers/glass/bottle/bicaridine = 1,
/obj/item/reagent_containers/glass/bottle/kelotane = 1,
/obj/item/reagent_containers/glass/bottle/dexalin = 1)
/obj/machinery/smartfridge/secure/virology
name = "\improper Refrigerated Virus Storage"
desc = "A refrigerated storage unit for storing viral material."
@@ -213,6 +232,7 @@
icon_state = "drying_rack"
accepted_items = list(/obj/item/reagent_containers/food/snacks)
contents_path = null
has_emissive = FALSE
/obj/machinery/smartfridge/drying_rack/accept_check(var/obj/item/O)
if(!..())
@@ -292,10 +312,12 @@
if(panel_open)
AddOverlays("[initial(icon_state)]-panel")
var/list/shown_contents = contents - component_parts
if(contents_path && shown_contents.len > 0)
var/contents_icon_state = change_display(shown_contents.len - 1)
if(contents_path && length(shown_contents) > 0)
var/contents_icon_state = change_display(length(shown_contents) - 1)
AddOverlays("[initial(icon_state)][contents_path][contents_icon_state]")
AddOverlays("[initial(icon_state)]-glass[(stat & BROKEN) ? "-broken" : ""]")
if(has_emissive && powered() && !(stat & BROKEN))
AddOverlays(emissive_appearance(icon, "[initial(icon_state)]-light-mask", src, alpha = src.alpha))
/obj/machinery/smartfridge/proc/change_display(var/length)
var/tier = clamp((floor(length / display_tier_amt) + 1), 1, display_tiers)
@@ -579,6 +601,7 @@
icon = 'icons/obj/structure/urban/restaurant.dmi'
icon_state = "buffet"
contents_path = null
has_emissive = FALSE
/obj/machinery/smartfridge/foodheater/buffet/Initialize()
. = ..()
@@ -162,6 +162,12 @@
icon_state = "bottle-4"
reagents_to_add = list(/singleton/reagent/adrenaline = 60)
/obj/item/reagent_containers/glass/bottle/dexalin
name = "dexalin bottle"
desc = "A small bottle. Contains Dexalin that is used in the treatment of oxygen deprivation. It is somewhat effective, and is twice as powerful and lasts twice as long when inhaled."
icon_state = "bottle-4"
reagents_to_add = list(/singleton/reagent/dexalin = 60)
/obj/item/reagent_containers/glass/bottle/dexalin_plus
name = "dexalin plus bottle"
desc = "A small bottle. Contains Dexalin Plus that is used in the treatment of oxygen deprivation. It is highly effective, and is twice as powerful and lasts twice as long when inhaled."
@@ -186,6 +192,12 @@
icon_state = "bottle-4"
reagents_to_add = list(/singleton/reagent/thetamycin = 60)
/obj/item/reagent_containers/glass/bottle/tricordrazine
name = "tricordrazine bottle"
desc = "A small bottle. Contains bicaridine - treats all wounds slowly."
icon_state = "bottle-3"
reagents_to_add = list(/singleton/reagent/tricordrazine = 60)
/obj/item/reagent_containers/glass/bottle/bicaridine
name = "bicaridine bottle"
desc = "A small bottle. Contains bicaridine - treats damaged tissues."
@@ -0,0 +1,61 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# - (fixes bugs)
# wip
# - (work in progress)
# qol
# - (quality of life)
# soundadd
# - (adds a sound)
# sounddel
# - (removes a sound)
# rscadd
# - (adds a feature)
# rscdel
# - (removes a feature)
# imageadd
# - (adds an image or sprite)
# imagedel
# - (removes an image or sprite)
# spellcheck
# - (fixes spelling or grammar)
# experiment
# - (experimental change)
# balance
# - (balance changes)
# code_imp
# - (misc internal code change)
# refactor
# - (refactors code)
# config
# - (makes a change to the config files)
# admin
# - (makes changes to administrator tools)
# server
# - (miscellaneous changes to server)
#################################
# Your name.
author: GeneralCamo
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Added bicaridine, dermaline, and tricordrazine to the cargo order interface."
- balance: "Dermaline and butazoline are now priced as premium medicines."
- rscadd: "The Horizon's medical bay now starts with a single bottle of bicaridine, kelotane, and dexalin."
- rscadd: "Smartfridges now have emissive masks."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

+1 -1
View File
@@ -57280,7 +57280,7 @@
/area/horizon/engineering/atmos/air)
"hCX" = (
/obj/machinery/door/firedoor,
/obj/machinery/smartfridge/secure/medbay,
/obj/machinery/smartfridge/secure/medbay/horizon,
/turf/simulated/floor/tiled/dark/full,
/area/horizon/medical/pharmacy)
"hCZ" = (