diff --git a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm index 1b2d3a0e6b5..55a0ab29350 100644 --- a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm +++ b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm @@ -2620,7 +2620,7 @@ /obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ dir = 8 }, -/obj/machinery/status_display/evac/directional/west, +/obj/machinery/newscaster/directional/west, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/central) "aKJ" = ( @@ -5968,10 +5968,10 @@ "bEU" = ( /obj/structure/extinguisher_cabinet/directional/west, /obj/machinery/camera/autoname/directional/south, -/obj/machinery/light_switch/directional/south, /obj/machinery/computer/operating{ dir = 4 }, +/obj/machinery/vitals_reader/directional/south, /turf/open/floor/iron/dark/textured_corner{ dir = 4 }, @@ -16264,10 +16264,7 @@ /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, -/obj/structure/sign/warning/cold_temp/directional/east{ - name = "Cryogenics"; - pixel_x = 26 - }, +/obj/structure/sign/warning/cold_temp/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "eta" = ( @@ -20589,7 +20586,7 @@ dir = 8 }, /obj/effect/turf_decal/trimline/blue/filled/mid_joiner, -/obj/machinery/newscaster/directional/west, +/obj/machinery/vitals_reader/directional/west, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/central) "fFq" = ( @@ -22772,7 +22769,7 @@ /obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ dir = 8 }, -/obj/machinery/status_display/ai/directional/west, +/obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/central) "ghV" = ( @@ -32468,9 +32465,6 @@ network = list("ss13","medbay"); c_tag = "Medbay - Lower Central Hallway" }, -/obj/machinery/firealarm/directional/west{ - pixel_x = -20 - }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "iKm" = ( @@ -38122,9 +38116,6 @@ }, /obj/structure/tank_holder/extinguisher, /obj/structure/cable, -/obj/machinery/light_switch/directional/west{ - pixel_x = -22 - }, /turf/open/floor/iron/dark, /area/station/medical/cryo) "knj" = ( @@ -46936,11 +46927,6 @@ /turf/open/floor/iron, /area/station/cargo/storage) "mDX" = ( -/obj/structure/bed/pod{ - desc = "An old medical bed, just waiting for replacement with something up to date."; - name = "medical bed"; - dir = 1 - }, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 }, @@ -46948,6 +46934,9 @@ /obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ dir = 8 }, +/obj/machinery/stasis{ + dir = 4 + }, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/central) "mDZ" = ( @@ -52406,8 +52395,13 @@ }, /area/station/hallway/primary/fore) "ofr" = ( -/obj/machinery/firealarm/directional/east, +/obj/machinery/firealarm/directional/east{ + pixel_y = -6 + }, /obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/obj/machinery/light_switch/directional/east{ + pixel_y = 4 + }, /turf/open/floor/iron/dark, /area/station/medical/cryo) "ofs" = ( @@ -55231,7 +55225,6 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 }, -/obj/machinery/airalarm/directional/west, /obj/item/radio/intercom/directional/north, /obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ dir = 1 @@ -55240,6 +55233,7 @@ dir = 8 }, /obj/item/stack/medical/mesh, +/obj/machinery/vitals_reader/directional/west, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/central) "oTZ" = ( @@ -71461,6 +71455,7 @@ dir = 1 }, /obj/machinery/computer/crew, +/obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "tqv" = ( @@ -73952,10 +73947,8 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/obj/machinery/firealarm/directional/east{ - pixel_x = 20 - }, /obj/machinery/disposal/bin, +/obj/machinery/firealarm/directional/east, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/surgery) "tYE" = ( @@ -78116,6 +78109,17 @@ /obj/effect/turf_decal/trimline/dark_green, /turf/open/floor/iron/dark, /area/station/engineering/atmos/upper) +"vcG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "vcH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -82752,7 +82756,10 @@ /turf/open/floor/iron/dark, /area/station/medical/cryo) "wqq" = ( -/obj/machinery/stasis, +/obj/structure/bed/pod{ + desc = "An old medical bed, just waiting for replacement with something up to date."; + name = "medical bed" + }, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/central) "wqB" = ( @@ -83753,6 +83760,7 @@ /obj/machinery/computer/operating{ dir = 8 }, +/obj/machinery/vitals_reader/directional/south, /turf/open/floor/iron/dark/textured_corner{ dir = 1 }, @@ -86459,6 +86467,7 @@ dir = 1 }, /obj/effect/turf_decal/siding/blue, +/obj/structure/tank_holder/extinguisher, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "xsh" = ( @@ -88691,10 +88700,10 @@ /obj/item/storage/box/gloves{ pixel_y = 10 }, -/obj/structure/extinguisher_cabinet/directional/west, /obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ dir = 8 }, +/obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/central) "xUT" = ( @@ -119131,7 +119140,7 @@ tYC qdd uSP wER -oZn +ccN xeM fYF kLI @@ -119643,8 +119652,8 @@ xsD viV iKa uNT -pMm xeM +pMm xeM xeM siR @@ -119902,7 +119911,7 @@ oOS aJR pTV eZE -gPC +vcG gPC ovh ljq diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 17f79580956..e671c1cc88f 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -31136,7 +31136,6 @@ /turf/open/floor/iron, /area/station/commons/storage/tools) "hJn" = ( -/obj/structure/extinguisher_cabinet/directional/north, /obj/item/stack/medical/gauze, /obj/item/stack/medical/suture, /obj/machinery/camera/directional/north{ @@ -31146,6 +31145,7 @@ }, /obj/structure/table/reinforced/rglass, /obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/firealarm/directional/north, /turf/open/floor/iron, /area/station/medical/treatment_center) "hJo" = ( @@ -36792,6 +36792,7 @@ }, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/bot_white, +/obj/machinery/vitals_reader/directional/south, /turf/open/floor/iron/dark, /area/station/medical/surgery/theatre) "jdg" = ( @@ -38037,6 +38038,7 @@ /obj/item/storage/box/rxglasses, /obj/structure/table/reinforced/rglass, /obj/effect/turf_decal/tile/blue/fourcorners, +/obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/medical/treatment_center) "jsh" = ( @@ -40141,7 +40143,6 @@ /area/station/hallway/secondary/exit/departure_lounge) "jRJ" = ( /obj/machinery/defibrillator_mount/directional/south, -/obj/item/radio/intercom/directional/west, /obj/item/emergency_bed{ pixel_y = 6 }, @@ -40150,6 +40151,7 @@ }, /obj/structure/table/reinforced/rglass, /obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/vitals_reader/directional/west, /turf/open/floor/iron, /area/station/medical/treatment_center) "jRL" = ( @@ -44333,6 +44335,7 @@ /obj/item/reagent_containers/syringe, /obj/structure/table/reinforced/rglass, /obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/vitals_reader/directional/west, /turf/open/floor/iron, /area/station/medical/treatment_center) "kXb" = ( @@ -46091,7 +46094,6 @@ /area/station/maintenance/disposal/incinerator) "ltz" = ( /obj/machinery/defibrillator_mount/directional/north, -/obj/item/radio/intercom/directional/east, /obj/item/storage/box/bodybags{ pixel_x = 3; pixel_y = 3 @@ -46099,6 +46101,7 @@ /obj/item/storage/box/masks, /obj/structure/table/reinforced/rglass, /obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/vitals_reader/directional/east, /turf/open/floor/iron, /area/station/medical/treatment_center) "ltD" = ( @@ -47417,13 +47420,6 @@ }, /turf/open/floor/iron, /area/station/cargo/warehouse) -"lIG" = ( -/obj/structure/table/optable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/status_display/ai/directional/south, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron/dark, -/area/station/medical/surgery/theatre) "lII" = ( /obj/structure/railing, /obj/structure/chair/sofa/bench{ @@ -54928,11 +54924,11 @@ /area/station/hallway/primary/central/fore) "nFO" = ( /obj/machinery/firealarm/directional/east, -/obj/structure/extinguisher_cabinet/directional/north, /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron, /area/station/medical/storage) "nFV" = ( @@ -55254,12 +55250,12 @@ /turf/open/floor/iron, /area/station/security/prison) "nJh" = ( -/obj/machinery/firealarm/directional/north, /obj/item/stack/medical/gauze, /obj/item/stack/medical/mesh, /obj/structure/table/reinforced/rglass, /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/light/cold/directional/north, +/obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/medical/treatment_center) "nJj" = ( @@ -72194,6 +72190,7 @@ }, /obj/structure/extinguisher_cabinet/directional/west, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/medical/surgery/theatre) "rSZ" = ( @@ -73809,7 +73806,6 @@ }, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/light/small/directional/east, -/obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron/textured, /area/station/medical/medbay) "snE" = ( @@ -75723,7 +75719,6 @@ pixel_x = -3 }, /obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/status_display/evac/directional/south, /obj/machinery/door/window/left/directional/north{ name = "Surgical Supplies"; req_access = list("surgery") @@ -81063,7 +81058,7 @@ /obj/machinery/computer/operating, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/bot_white, -/obj/machinery/firealarm/directional/east, +/obj/machinery/vitals_reader/directional/north, /turf/open/floor/iron/dark, /area/station/medical/surgery/theatre) "ubL" = ( @@ -82767,6 +82762,7 @@ /obj/structure/bodycontainer/morgue{ dir = 2 }, +/obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/dark/textured_half{ dir = 1 }, @@ -83139,10 +83135,10 @@ /obj/effect/turf_decal/trimline/neutral/mid_joiner{ dir = 8 }, -/obj/machinery/status_display/evac/directional/north, /obj/structure/bodycontainer/morgue{ dir = 2 }, +/obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/dark/textured_half{ dir = 1 }, @@ -84008,7 +84004,6 @@ /turf/open/floor/iron, /area/station/engineering/break_room) "uLx" = ( -/obj/machinery/status_display/ai/directional/south, /obj/effect/turf_decal/siding/thinplating/dark/corner, /obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 @@ -91202,6 +91197,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, /area/station/medical/treatment_center) "wCc" = ( @@ -95027,7 +95023,6 @@ /area/station/security/detectives_office/private_investigators_office) "xAr" = ( /obj/structure/mannequin/skeleton, -/obj/machinery/status_display/ai/directional/north, /obj/effect/turf_decal/tile/dark_blue/half/contrasted{ dir = 1 }, @@ -138664,7 +138659,7 @@ tOS fCD jqJ jqJ -lIG +fCD qYL xAr xBJ diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index bf6538a41c4..cd3eaa228e7 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -6753,7 +6753,6 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/newscaster/directional/south, /obj/machinery/camera/directional/south{ c_tag = "Medbay North"; network = list("ss13","medbay") @@ -9300,6 +9299,7 @@ c_tag = "Surgery A"; network = list("ss13","medbay") }, +/obj/machinery/newscaster/directional/north, /turf/open/floor/iron/white, /area/station/medical/surgery/fore) "cyA" = ( @@ -13277,7 +13277,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/firealarm/directional/north, +/obj/machinery/airalarm/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "dDV" = ( @@ -22303,6 +22303,7 @@ }, /obj/item/reagent_containers/syringe, /obj/effect/turf_decal/tile/blue/full, +/obj/machinery/vitals_reader/directional/north, /turf/open/floor/iron/large, /area/station/medical/treatment_center) "gkY" = ( @@ -41573,6 +41574,7 @@ /area/station/tcommsat/computer) "lIP" = ( /obj/effect/mapping_helpers/trapdoor_placer, +/obj/item/radio/intercom/directional/north, /turf/open/floor/catwalk_floor/iron_white, /area/station/medical/medbay/central) "lIQ" = ( @@ -43221,10 +43223,10 @@ /area/station/hallway/secondary/entry) "mjH" = ( /obj/structure/table/optable, -/obj/machinery/newscaster/directional/east, /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 4 }, +/obj/machinery/vitals_reader/directional/east, /turf/open/floor/iron/white, /area/station/medical/surgery/fore) "mjI" = ( @@ -47054,10 +47056,10 @@ /area/icemoon/surface/outdoors/less_spawns) "nqd" = ( /obj/structure/table/optable, -/obj/machinery/newscaster/directional/east, /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 4 }, +/obj/machinery/vitals_reader/directional/east, /turf/open/floor/iron/white, /area/station/medical/surgery/aft) "nqn" = ( @@ -49062,7 +49064,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/airalarm/directional/south, +/obj/machinery/newscaster/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "nRm" = ( @@ -54201,6 +54203,7 @@ c_tag = "Surgery B"; network = list("ss13","medbay") }, +/obj/machinery/newscaster/directional/south, /turf/open/floor/iron/white, /area/station/medical/surgery/aft) "pkf" = ( @@ -57463,6 +57466,7 @@ /obj/item/reagent_containers/syringe, /obj/effect/turf_decal/tile/blue/full, /obj/item/radio/intercom/directional/west, +/obj/machinery/vitals_reader/directional/north, /turf/open/floor/iron/large, /area/station/medical/treatment_center) "qfs" = ( @@ -71052,12 +71056,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"tXc" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/structure/cable, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "tXh" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -254872,7 +254870,7 @@ mjI fCM dIL hDq -tXc +pZm lwQ gkX oeW diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index e8234f1482a..dd8fc524563 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -1099,7 +1099,6 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/structure/cable, /turf/open/floor/iron/white/smooth_half, /area/station/medical/cryo) "avc" = ( @@ -1539,7 +1538,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/firealarm/directional/west, +/obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, /area/station/medical/cryo) "aDa" = ( @@ -3600,6 +3599,7 @@ /obj/structure/table/glass, /obj/item/surgicaldrill, /obj/item/toy/figure/paramedic, +/obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/paramedic) "bnx" = ( @@ -5921,8 +5921,8 @@ dir = 4 }, /obj/machinery/suit_storage_unit/medical, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/structure/sign/clock/directional/north, +/obj/machinery/airalarm/directional/west, +/obj/machinery/digital_clock/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/paramedic) "ccc" = ( @@ -10777,7 +10777,6 @@ dir = 1 }, /obj/machinery/duct, -/obj/structure/cable, /turf/open/floor/iron/white/smooth_half, /area/station/medical/cryo) "dOA" = ( @@ -17817,7 +17816,7 @@ "gmN" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/status_display/evac/directional/west, +/obj/machinery/newscaster/directional/west, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "gmS" = ( @@ -18209,7 +18208,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, /turf/open/floor/iron/white/smooth_half, /area/station/medical/cryo) "gtm" = ( @@ -18353,7 +18351,7 @@ dir = 10 }, /obj/structure/cable, -/obj/structure/sign/eyechart/directional/west, +/obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/white, /area/station/medical/cryo) "gvg" = ( @@ -24340,7 +24338,8 @@ "iwj" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/status_display/evac/directional/east, +/obj/machinery/vitals_reader/directional/north, +/obj/machinery/newscaster/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "iwt" = ( @@ -24532,7 +24531,6 @@ /turf/open/floor/iron/dark, /area/station/security/courtroom) "izs" = ( -/obj/structure/cable, /obj/structure/sink/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -25665,8 +25663,7 @@ "iRy" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, -/obj/item/radio/intercom/directional/west, -/obj/machinery/firealarm/directional/north, +/obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark, /area/station/medical/storage) "iRW" = ( @@ -29456,6 +29453,7 @@ c_tag = "Medbay Storage"; network = list("ss13","medbay") }, +/obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/medical/storage) "kdx" = ( @@ -30163,8 +30161,8 @@ "kpi" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/status_display/ai/directional/west, -/obj/item/radio/intercom/directional/north, +/obj/machinery/vitals_reader/directional/north, +/obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "kpB" = ( @@ -30925,6 +30923,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/directional/west, +/obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "kDb" = ( @@ -32261,14 +32260,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"kZv" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden/layer5, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "kZx" = ( /turf/closed/wall, /area/station/science/lab) @@ -32456,8 +32447,9 @@ "ldm" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/status_display/evac/directional/west, /obj/effect/spawner/surgery_tray/full, +/obj/machinery/digital_clock/directional/north, +/obj/structure/sign/poster/official/cleanliness/directional/west, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) "lds" = ( @@ -33531,10 +33523,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/door/airlock/medical/glass{ - name = "Cryogenics Bay" - }, /obj/effect/mapping_helpers/airlock/access/all/medical/paramedic, +/obj/machinery/door/airlock/medical/glass{ + name = "Paramedic Dispatch Room" + }, /turf/open/floor/iron/dark, /area/station/medical/paramedic) "lyu" = ( @@ -35808,8 +35800,6 @@ /area/station/science/research) "mpV" = ( /obj/structure/table/glass, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, /obj/item/reagent_containers/cup/beaker/cryoxadone{ pixel_x = -6; pixel_y = 10 @@ -35832,6 +35822,7 @@ }, /obj/effect/turf_decal/tile/blue/fourcorners, /obj/item/radio/intercom/directional/west, +/obj/machinery/vitals_reader/directional/north, /turf/open/floor/iron/white, /area/station/medical/cryo) "mqe" = ( @@ -38768,7 +38759,6 @@ "nnE" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/status_display/evac/directional/west, /obj/machinery/digital_clock/directional/south, /obj/effect/spawner/surgery_tray/full, /turf/open/floor/iron/white, @@ -45151,8 +45141,7 @@ "pyU" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/status_display/ai/directional/east, -/obj/item/radio/intercom/directional/south, +/obj/item/radio/intercom/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "pyY" = ( @@ -45865,6 +45854,7 @@ /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 8 }, +/obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "pMd" = ( @@ -48313,7 +48303,6 @@ /obj/machinery/computer/crew{ dir = 1 }, -/obj/machinery/airalarm/directional/west, /obj/machinery/camera/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/paramedic) @@ -48809,12 +48798,15 @@ dir = 1 }, /obj/machinery/portable_atmospherics/canister/anesthetic_mix, -/obj/machinery/light_switch/directional/east{ - pixel_x = 21 - }, /obj/effect/turf_decal/stripes/end{ dir = 1 }, +/obj/machinery/light_switch/directional/east{ + pixel_y = 4 + }, +/obj/machinery/firealarm/directional/east{ + pixel_y = -6 + }, /turf/open/floor/iron/dark, /area/station/medical/cryo) "qNk" = ( @@ -50395,7 +50387,6 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 }, -/obj/machinery/airalarm/directional/west, /obj/machinery/door/firedoor, /turf/open/floor/iron/white, /area/station/medical/medbay/central) @@ -50502,6 +50493,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/cold/directional/west, +/obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "rpx" = ( @@ -51420,6 +51412,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 }, +/obj/item/radio/intercom/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "rEu" = ( @@ -52292,7 +52285,7 @@ /turf/open/floor/wood, /area/station/commons/dorms) "rUp" = ( -/obj/item/radio/intercom/directional/east, +/obj/structure/sign/eyechart/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "rUE" = ( @@ -53325,6 +53318,7 @@ "snb" = ( /obj/structure/table/optable, /obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/vitals_reader/directional/west, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) "snt" = ( @@ -56879,6 +56873,7 @@ }, /obj/structure/table/glass, /obj/machinery/fax, +/obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "tzJ" = ( @@ -58584,7 +58579,7 @@ network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/airalarm/directional/north, +/obj/machinery/vitals_reader/directional/north, /turf/open/floor/iron/white, /area/station/medical/cryo) "ucc" = ( @@ -69529,6 +69524,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/spawner/random/structure/steam_vent, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden/layer5, +/obj/structure/sign/poster/contraband/random/directional/east, /turf/open/floor/plating, /area/station/maintenance/port/aft) "xLM" = ( @@ -69930,11 +69926,11 @@ "xST" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/west, /obj/machinery/light/directional/west, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 }, +/obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "xTg" = ( @@ -70873,10 +70869,10 @@ /turf/open/floor/iron/white/smooth_large, /area/station/medical/chemistry) "yiB" = ( -/obj/machinery/firealarm/directional/west, /obj/effect/turf_decal/trimline/blue/filled/warning, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "yiH" = ( @@ -88929,7 +88925,7 @@ xNq bQm xNq mbx -kZv +xNq xNq xLB mbx diff --git a/_maps/map_files/NebulaStation/NebulaStation.dmm b/_maps/map_files/NebulaStation/NebulaStation.dmm index 268e8cd2164..68cda7ae99a 100644 --- a/_maps/map_files/NebulaStation/NebulaStation.dmm +++ b/_maps/map_files/NebulaStation/NebulaStation.dmm @@ -14853,11 +14853,11 @@ /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 4 }, -/obj/machinery/digital_clock/directional/east, /obj/structure/bed/medical{ dir = 4 }, /obj/item/bedsheet/medical, +/obj/machinery/vitals_reader/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "ckV" = ( @@ -24174,6 +24174,9 @@ /obj/effect/turf_decal/siding/dark/end{ dir = 8 }, +/obj/machinery/vitals_reader/directional/west{ + id_tag = "uppercryo" + }, /turf/open/floor/iron/dark/small, /area/station/medical/cryo) "dDn" = ( @@ -35287,6 +35290,9 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, +/obj/machinery/vitals_reader/directional/west{ + id_tag = "lowercryo" + }, /turf/open/floor/iron/dark/small, /area/station/medical/cryo) "fkb" = ( @@ -50307,6 +50313,7 @@ dir = 1 }, /obj/machinery/digital_clock/directional/south, +/obj/machinery/vitals_reader/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) "hud" = ( @@ -75513,6 +75520,7 @@ /obj/machinery/computer/operating{ dir = 1 }, +/obj/machinery/vitals_reader/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) "lfV" = ( @@ -78157,16 +78165,17 @@ "lAm" = ( /obj/machinery/defibrillator_mount/directional/south, /obj/effect/turf_decal/tile/blue/anticorner/contrasted, -/obj/machinery/digital_clock/directional/east, /obj/structure/bed/medical{ dir = 4 }, /obj/item/bedsheet/medical, +/obj/machinery/vitals_reader/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "lAq" = ( /obj/machinery/cryo_cell{ - dir = 4 + dir = 4; + id_tag = "lowercryo" }, /obj/effect/turf_decal/bot_white{ color = "#52B4E9" @@ -95271,6 +95280,17 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"ogk" = ( +/obj/machinery/cryo_cell{ + dir = 4; + id_tag = "uppercryo" + }, +/obj/effect/turf_decal/bot_white{ + color = "#52B4E9" + }, +/obj/structure/sign/warning/cold_temp/directional/west, +/turf/open/floor/iron/dark/textured, +/area/station/medical/cryo) "ogl" = ( /obj/structure/fluff/paper, /obj/structure/sign/poster/random/directional/south, @@ -118264,6 +118284,9 @@ /obj/item/bedsheet/medical{ dir = 4 }, +/obj/machinery/digital_clock/directional/north{ + pixel_y = 36 + }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "rwS" = ( @@ -254375,7 +254398,7 @@ aqQ gyf nHB dCZ -lAq +ogk tMT lAq fjZ diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index f7bdd888516..95d31cc2042 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -2522,6 +2522,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/vitals_reader/directional/south, /turf/open/floor/iron/white/corner, /area/station/medical/medbay) "SC" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index f3e01239f79..ab2590e6901 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -5769,22 +5769,11 @@ /turf/open/floor/iron, /area/centcom/central_command_areas/control) "zH" = ( -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/circular_saw, -/obj/item/retractor{ - pixel_x = 4 - }, -/obj/item/hemostat{ - pixel_x = -4 - }, -/obj/item/clothing/gloves/latex, -/obj/item/clothing/mask/surgical, /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, +/obj/item/surgery_tray/full/advanced, /turf/open/floor/iron/white, /area/centcom/central_command_areas/control) "zI" = ( @@ -5932,7 +5921,6 @@ /area/centcom/central_command_areas/control) "Aq" = ( /obj/structure/table/optable, -/obj/item/surgical_drapes, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, @@ -6052,10 +6040,10 @@ /obj/machinery/computer/operating{ dir = 4 }, -/obj/machinery/status_display/ai/directional/west, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, +/obj/machinery/vitals_reader/directional/west, /turf/open/floor/iron/white, /area/centcom/central_command_areas/control) "AV" = ( @@ -6208,7 +6196,6 @@ "BF" = ( /obj/item/defibrillator/loaded, /obj/structure/table/reinforced, -/obj/machinery/status_display/evac/directional/west, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, @@ -6249,6 +6236,7 @@ /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, +/obj/machinery/vitals_reader/directional/south, /turf/open/floor/iron/white, /area/centcom/central_command_areas/control) "BH" = ( @@ -6262,7 +6250,6 @@ /area/centcom/central_command_areas/control) "BI" = ( /obj/machinery/light/directional/south, -/obj/structure/noticeboard/directional/south, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -6959,7 +6946,6 @@ /area/centcom/central_command_areas/evacuation/ship) "Fg" = ( /obj/structure/closet/crate/bin, -/obj/machinery/status_display/evac/directional/south, /obj/machinery/status_display/evac/directional/west, /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 8 @@ -9421,6 +9407,7 @@ /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, +/obj/machinery/vitals_reader/directional/south, /turf/open/floor/iron/white, /area/centcom/central_command_areas/control) "RA" = ( @@ -57319,9 +57306,9 @@ zI Ab xN BG -iu +io Tw -iu +io uc io iu @@ -58347,9 +58334,9 @@ zJ Ab xN Ry -iu +io oW -iu +io uc io io diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 27fa9526b94..2b4d6f12f72 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -15128,6 +15128,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/ordnance) +"edV" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/anesthetic_mix, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron/dark, +/area/station/medical/treatment_center) "eep" = ( /turf/open/floor/plating, /area/station/service/barber) @@ -27540,6 +27548,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 5 }, +/obj/machinery/vitals_reader/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "iOi" = ( @@ -30474,7 +30483,6 @@ dir = 5 }, /obj/item/radio/intercom/directional/east, -/obj/machinery/status_display/evac/directional/north, /obj/machinery/light/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) @@ -33626,6 +33634,9 @@ dir = 1 }, /obj/machinery/light/directional/south, +/obj/machinery/vitals_reader/directional/south{ + id_tag = "lowersurgery" + }, /turf/open/floor/iron/white, /area/station/medical/surgery/aft) "kIi" = ( @@ -39844,7 +39855,6 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 }, -/obj/machinery/status_display/ai/directional/north, /obj/machinery/light/directional/west, /turf/open/floor/iron/white, /area/station/medical/treatment_center) @@ -40155,7 +40165,9 @@ /turf/open/floor/iron, /area/station/security/prison) "mXd" = ( -/obj/structure/table/optable, +/obj/structure/table/optable{ + id_tag = "uppersurgery" + }, /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/surgery/fore) @@ -40589,7 +40601,9 @@ /turf/open/floor/glass/reinforced, /area/station/security/brig) "neE" = ( -/obj/structure/table/optable, +/obj/structure/table/optable{ + id_tag = "lowersurgery" + }, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, @@ -41724,13 +41738,13 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 }, -/obj/item/radio/intercom/directional/west, /obj/machinery/light/directional/west, /obj/item/storage/medkit/regular, /obj/item/storage/medkit/regular{ pixel_x = 4; pixel_y = 4 }, +/obj/item/radio/intercom/directional/south, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "nyM" = ( @@ -48329,8 +48343,8 @@ network = list("ss13","medbay"); c_tag = "Medical - Treatment South-East" }, -/obj/machinery/wall_healer/directional/east, /obj/machinery/light/directional/east, +/obj/machinery/wall_healer/directional/south, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "pUV" = ( @@ -53516,6 +53530,7 @@ network = list("ss13","medbay"); c_tag = "Medical - Treatment North-West" }, +/obj/machinery/vitals_reader/directional/west, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "rNt" = ( @@ -62296,6 +62311,13 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/tram/left) +"uId" = ( +/obj/machinery/cryo_cell{ + dir = 4 + }, +/obj/machinery/status_display/ai/directional/south, +/turf/open/floor/iron/dark, +/area/station/medical/treatment_center) "uIk" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -65148,6 +65170,9 @@ }, /obj/machinery/light/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/vitals_reader/directional/north{ + id_tag = "uppersurgery" + }, /turf/open/floor/iron/white, /area/station/medical/surgery/fore) "vGd" = ( @@ -168973,7 +168998,7 @@ aMG xdx gBt uVW -gBt +uId jtr dSZ aOO @@ -170515,7 +170540,7 @@ brx uem dqe dlN -dqe +edV jtr dSZ aOO diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index 28b390be699..d46ffefcacc 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -6004,6 +6004,7 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /obj/structure/table/glass, /obj/machinery/light/cold/dim/directional/south, +/obj/machinery/vitals_reader/directional/south, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "ceD" = ( @@ -17770,6 +17771,7 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/iv_drip, /obj/machinery/light/cold/dim/directional/north, +/obj/machinery/vitals_reader/directional/north, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "gkt" = ( @@ -22400,9 +22402,9 @@ "hPp" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/light_switch/directional/west, /obj/item/wrench/medical, /obj/machinery/light/cold/dim/directional/west, +/obj/machinery/vitals_reader/directional/west, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "hPs" = ( @@ -23401,7 +23403,6 @@ "ifE" = ( /obj/machinery/vending/medical, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/firealarm/directional/south, /obj/machinery/newscaster/directional/east, /turf/open/floor/iron/white, /area/station/medical/storage) @@ -43587,6 +43588,13 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"pek" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "peo" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -44038,7 +44046,6 @@ dir = 4 }, /obj/machinery/duct, -/obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) "pmp" = ( @@ -63424,6 +63431,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 }, +/obj/machinery/light_switch/directional/west, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "vOu" = ( @@ -84884,7 +84892,7 @@ lcM isy isy lJo -crz +pek bui yit yit diff --git a/code/__DEFINES/dcs/signals/signals_operating_computer.dm b/code/__DEFINES/dcs/signals/signals_operating_computer.dm index 8974bb99db8..3517b0d01eb 100644 --- a/code/__DEFINES/dcs/signals/signals_operating_computer.dm +++ b/code/__DEFINES/dcs/signals/signals_operating_computer.dm @@ -1,5 +1,7 @@ -// /obj/machinery/computer/operating signals - /// Fired when a autopsy surgery completes. /// (mob/living/target) #define COMSIG_OPERATING_COMPUTER_AUTOPSY_COMPLETE "operating_computer_autopsy_complete" + +/// Fired when the patient on the operating table is changed. +/// (mob/living/target) +#define COMSIG_OPERATING_TABLE_SET_PATIENT "operating_table_set_patient" diff --git a/code/game/machinery/wall_vitals.dm b/code/game/machinery/wall_vitals.dm new file mode 100644 index 00000000000..c175fc98f48 --- /dev/null +++ b/code/game/machinery/wall_vitals.dm @@ -0,0 +1,538 @@ +/obj/item/wallframe/status_display/vitals + name = "vitals display frame" + desc = "Used to build vitals displays. Secure on a wall nearby a stasis bed, operating table, \ + or another machine that can hold patients such as cryo cells or sleepers." + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 4, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT * 0.5, + ) + result_path = /obj/machinery/vitals_reader + +/obj/item/wallframe/status_display/vitals/advanced + name = "advanced vitals display frame" + desc = "Used to build advanced vitals displays. Performs a more detailed scan of the patient than the basic display." + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 4, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT * 0.5, + ) + result_path = /obj/machinery/vitals_reader/advanced + +/// A wall mounted screen that showcases the vitals of a patient nearby. +/obj/machinery/vitals_reader + name = "vitals display" + desc = "A screen that displays the vitals of a patient." + icon = 'icons/obj/machines/vitals_monitor.dmi' + icon_state = "frame" + verb_say = "beeps" + verb_ask = "beeps" + verb_exclaim = "beeps" + density = FALSE + layer = ABOVE_WINDOW_LAYER + interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON + use_power = NO_POWER_USE + idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 0.1 + active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 0.1 + processing_flags = START_PROCESSING_MANUALLY + density = FALSE + max_integrity = 150 + payment_department = ACCOUNT_MED + armor_type = /datum/armor/obj_machinery/vitals_reader + light_range = 1.5 + light_power = 0.75 + light_color = LIGHT_COLOR_FAINT_CYAN + + /// Whether we perform an advanced scan on examine or not + var/advanced = FALSE + /// If TRUE, also append a chemical scan to the readout + var/chemscan = TRUE + /// Typepath to spawn when deconstructed + var/frame = /obj/item/wallframe/status_display/vitals + /// Range which we can connect to machines, don't go crazy ok? + var/connection_range = 3 + /// Static typecache of things the vitals display can connect to. + var/static/list/connectable_typecache = typecacheof(list( + /obj/machinery/abductor/experiment, + /obj/machinery/cryo_cell, + /obj/machinery/dna_scannernew, + /obj/machinery/gulag_teleporter, + /obj/machinery/hypnochair, + /obj/machinery/implantchair, + /obj/machinery/sleeper, + /obj/machinery/stasis, + /obj/structure/table/optable, + )) + /// The last stat we beeped about + VAR_FINAL/last_reported_stat = null + /// CD between beeps + COOLDOWN_DECLARE(beep_cd) + /// Reference to the mob that is being tracked / scanned + VAR_FINAL/mob/living/patient + /// What machine are we talking to + VAR_FINAL/obj/machinery/connected + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/vitals_reader, 32) + +/obj/machinery/vitals_reader/advanced + name = "advanced vitals display" + desc = "A screen that displays the vitals of a patient. \ + Performs a more detailed scan of the patient than a basic display." + frame = /obj/item/wallframe/status_display/vitals/advanced + advanced = TRUE + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/vitals_reader/advanced, 32) + +/datum/armor/obj_machinery/vitals_reader + melee = 30 + bullet = 20 + laser = 20 + energy = 30 + bomb = 10 + fire = 50 + acid = 80 + +/obj/machinery/vitals_reader/Initialize(mapload, obj/item/circuitboard/C) + . = ..() + register_context() + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/vitals_reader/post_machine_initialize() + . = ..() + find_machine(prioritize_by_id = TRUE) // mappers can set an id tag to connect it to specific machines + if(is_operational) + set_light_on(TRUE) + +/obj/machinery/vitals_reader/Destroy(force) + unset_connection() + unset_patient() // unset connection also unsets patient, but just in case + return ..() + +/obj/machinery/vitals_reader/proc/unset_connected(...) + SIGNAL_HANDLER + UnregisterSignal(connected, COMSIG_QDELETING) + UnregisterSignal(connected, list(COMSIG_OPERATING_TABLE_SET_PATIENT, COMSIG_MACHINERY_SET_OCCUPANT)) + UnregisterSignal(connected, COMSIG_MOVABLE_MOVED) + connected = null + +/obj/machinery/vitals_reader/proc/connected_occupant_changed(datum/source, mob/living/new_patient) + SIGNAL_HANDLER + + set_patient(new_patient) + +/obj/machinery/vitals_reader/proc/connected_moved(...) + SIGNAL_HANDLER + if(get_dist(src, connected) > connection_range) + unset_connected() + +/obj/machinery/vitals_reader/proc/unset_connection(...) + SIGNAL_HANDLER + if(isnull(connected)) + return + + UnregisterSignal(connected, COMSIG_QDELETING) + UnregisterSignal(connected, list(COMSIG_OPERATING_TABLE_SET_PATIENT, COMSIG_MACHINERY_SET_OCCUPANT)) + UnregisterSignal(connected, COMSIG_MOVABLE_MOVED) + connected = null + unset_patient() + update_use_power(NO_POWER_USE) + +/obj/machinery/vitals_reader/proc/set_connection(obj/new_connected) + if(!isnull(connected)) + unset_connected() + + connected = new_connected + RegisterSignal(connected, COMSIG_QDELETING, PROC_REF(unset_connected)) + RegisterSignals(connected, list(COMSIG_OPERATING_TABLE_SET_PATIENT, COMSIG_MACHINERY_SET_OCCUPANT), PROC_REF(connected_occupant_changed)) + RegisterSignal(connected, COMSIG_MOVABLE_MOVED, PROC_REF(connected_moved)) + update_use_power(IDLE_POWER_USE) + + if(ismachinery(connected)) + var/obj/machinery/connected_machine = connected + set_patient(connected_machine.occupant) + else if(istype(connected, /obj/structure/table/optable)) + var/obj/structure/table/optable/connected_table = connected + set_patient(connected_table.patient) + +/obj/machinery/vitals_reader/wrench_act(mob/living/user, obj/item/tool) + balloon_alert(user, "detaching...") + if(tool.use_tool(src, user, 6 SECONDS, volume = 50)) + playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE) + deconstruct(TRUE) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/vitals_reader/multitool_act(mob/living/user, obj/item/tool) + if(!is_operational) + return NONE + + if(isnull(connected)) + if(find_machine()) + balloon_alert(user, "connected to [connected.name]") + else + balloon_alert(user, "no connectable machines nearby!") + return ITEM_INTERACT_SUCCESS + + balloon_alert(user, "disconnecting...") + if(!do_after(user, 2 SECONDS, target = src)) + return ITEM_INTERACT_BLOCKING + + balloon_alert(user, "disconnected from [connected.name]") + unset_connection() + return ITEM_INTERACT_SUCCESS + +/// Find and connects to a nearby machine +/// If prioritize_by_id is TRUE, will first try to find a machine with the same id_tag as this vitals reader +/obj/machinery/vitals_reader/proc/find_machine(prioritize_by_id = FALSE) + for(var/obj/nearby_thing in view(connection_range, src)) + if(prioritize_by_id && nearby_thing.id_tag != src.id_tag) + continue + if(!is_type_in_typecache(nearby_thing, connectable_typecache)) + continue + + set_connection(nearby_thing) + return nearby_thing + + if(prioritize_by_id) + return find_machine(prioritize_by_id = FALSE) + return null + +/obj/machinery/vitals_reader/on_deconstruction(disassembled) + var/atom/drop_loc = drop_location() + if(disassembled) + new frame(drop_loc) + else + new /obj/item/stack/sheet/iron(drop_loc, 2) + new /obj/item/shard(drop_loc) + new /obj/item/shard(drop_loc) + qdel(src) + +/obj/machinery/vitals_reader/examine(mob/user) + . = ..() + if(!is_operational) + return + + if(isnull(connected)) + . += span_notice("The display is currently not connected to anything. \ + Use a [EXAMINE_HINT("multitool")] to connect it to a neighboring machine.") + return + + if(user.is_blind()) + return + + if(machine_stat & EMPED) + . += span_warning("The display is flickering erratically!") + return + + if(!issilicon(user) && !isobserver(user) && get_dist(patient, user) > 2) + . += span_notice("You are too far away to read the display.") + else if(HAS_TRAIT(user, TRAIT_DUMB) || !user.can_read(src, reading_check_flags = READING_CHECK_LITERACY, silent = TRUE)) + . += span_warning("You try to comprehend the display, but it's too complex for you to understand.") + else + . += healthscan(user, patient, mode = SCANNER_CONDENSED, advanced = src.advanced, tochat = FALSE) + . += chemscan(user, patient, tochat = FALSE) + +/obj/machinery/vitals_reader/add_context(atom/source, list/context, obj/item/held_item, mob/user) + if(held_item?.tool_behaviour == TOOL_WRENCH) + context[SCREENTIP_CONTEXT_LMB] = "Detach" + . = CONTEXTUAL_SCREENTIP_SET + if(is_operational) + if(isnull(connected) && held_item?.tool_behaviour == TOOL_MULTITOOL) + context[SCREENTIP_CONTEXT_LMB] = "Connect to nearby machine" + . = CONTEXTUAL_SCREENTIP_SET + if(!isnull(patient)) + context[SCREENTIP_CONTEXT_SHIFT_LMB] = "Examine vitals" + . = CONTEXTUAL_SCREENTIP_SET + return . + +#define LOWER_BAR_OFFSET -3 + +/** + * Returns all overlays to be shown when a simple / basic animal patient is detected + * + * * hp_color - color being used for general, overrall health + */ +/obj/machinery/vitals_reader/proc/get_simple_mob_overlays(hp_color) + return list( + construct_overlay("mob", hp_color), + construct_overlay("blood", COLOR_GRAY), + construct_overlay("bar9", COLOR_GRAY), + construct_overlay("bar9", COLOR_GRAY, LOWER_BAR_OFFSET), + ) + +/** + * Returns all overlays to be shown when a humanoid patient is detected + * + * * hp_color - color being used for general, overrall health + */ +/obj/machinery/vitals_reader/proc/get_humanoid_overlays(hp_color) + var/list/returned_overlays = list() + + for(var/body_zone in GLOB.all_body_zones) + var/obj/item/bodypart/real_part = patient.get_bodypart(body_zone) + var/bodypart_color = isnull(real_part) ? COLOR_GRAY : percent_to_color((real_part.brute_dam + real_part.burn_dam) / real_part.max_damage) + returned_overlays += construct_overlay("human_[body_zone]", bodypart_color) + + if(CAN_HAVE_BLOOD(patient)) + var/blood_color = "#a51919" + switch((patient.blood_volume - BLOOD_VOLUME_SURVIVE) / (BLOOD_VOLUME_NORMAL - BLOOD_VOLUME_SURVIVE)) + if(-INFINITY to 0.2) + blood_color = "#a1a1a1" + if(0.2 to 0.4) + blood_color = "#a18282" + if(0.4 to 0.6) + blood_color = "#a16363" + if(0.6 to 0.8) + blood_color = "#a14444" + if(0.8 to INFINITY) + blood_color = "#a51919" + + returned_overlays += construct_overlay("blood", blood_color) + else + returned_overlays += construct_overlay("blood", COLOR_GRAY) + + if(HAS_TRAIT(patient, TRAIT_NOBREATH)) + returned_overlays += construct_overlay("bar9", COLOR_GRAY) + else + var/oxy_percent = patient.get_oxy_loss() / patient.maxHealth + returned_overlays += construct_overlay(percent_to_bar(oxy_percent), "#2A72AA") + + if(HAS_TRAIT(patient, TRAIT_TOXIMMUNE)) + returned_overlays += construct_overlay("bar9", COLOR_GRAY, LOWER_BAR_OFFSET) + else + var/tox_percent = patient.get_tox_loss() / patient.maxHealth + returned_overlays += construct_overlay(percent_to_bar(tox_percent), "#5d9c11", LOWER_BAR_OFFSET) + + return returned_overlays + +/** + * Returns the EKG and Respiration overlays + * + * * hp_color - color being used for general, overrall health + */ +/obj/machinery/vitals_reader/proc/get_ekg_and_resp(hp_color) + var/ekg_icon_state = "ekg" + var/resp_icon_state = "resp" + if(!patient.appears_alive()) + ekg_icon_state = "ekg_flat" + resp_icon_state = "resp_flat" + + else if(patient.stat == HARD_CRIT || patient.has_status_effect(/datum/status_effect/jitter)) + ekg_icon_state = "ekg_fast" + + if(patient.losebreath || HAS_TRAIT(patient, TRAIT_NOBREATH)) + resp_icon_state = "resp_flat" + + return list( + construct_overlay(ekg_icon_state, hp_color), + construct_overlay(resp_icon_state, "#00f7ff"), + ) + +/obj/machinery/vitals_reader/update_overlays() + . = ..() + if(!is_operational) + return + + . += emissive_appearance(icon, "outline", src, alpha = src.alpha) + if(isnull(patient)) + return + + . += "buttons" + + var/hp_color = percent_to_color((patient.maxHealth - patient.health) / patient.maxHealth) + . += get_ekg_and_resp(hp_color) + if(ishuman(patient)) + . += get_humanoid_overlays(hp_color) + else + . += get_simple_mob_overlays(hp_color) + +/// Converts a percentage to a color +/obj/machinery/vitals_reader/proc/percent_to_color(percent) + if(machine_stat & (EMPED|EMAGGED)) + percent = rand(1, 100) * 0.01 + + if(percent == 0) + return "#2A72AA" + + switch(percent) + if(0 to 0.125) + return "#A6BD00" + if(0.125 to 0.25) + return "#BDA600" + if(0.25 to 0.375) + return "#BD7E00" + if(0.375 to 0.5) + return "#BD4200" + + return "#BD0600" + +/// Converts a percentage to a bar icon state +/obj/machinery/vitals_reader/proc/percent_to_bar(percent) + if(machine_stat & (EMPED|EMAGGED)) + percent = rand(1, 100) * 0.01 + + if(percent >= 1) + return "bar9" + if(percent <= 0) + return "bar1" + + switch(percent) + if(0 to 0.125) + return "bar1" + if(0.125 to 0.25) + return "bar2" + if(0.25 to 0.375) + return "bar3" + if(0.375 to 0.5) + return "bar4" + if(0.5 to 0.625) + return "bar5" + if(0.625 to 0.75) + return "bar6" + if(0.75 to 0.875) + return "bar7" + if(0.875 to 1) + return "bar8" + + return "bar9" // ?? + +/** + * Helper to construct an overlay for the vitals display + * + * * state_to_use - icon state to use, required + * * color_to_use - color to use, optional + * * y_offset - offset to apply to the y position of the overlay, defaults to 0 + */ +/obj/machinery/vitals_reader/proc/construct_overlay(state_to_use, color_to_use, y_offset = 0) + var/mutable_appearance/overlay = mutable_appearance(icon, state_to_use, alpha = src.alpha) + overlay.appearance_flags |= RESET_COLOR + overlay.color = color_to_use + overlay.pixel_z += 32 + overlay.pixel_y += -32 + y_offset + return overlay + +#undef LOWER_BAR_OFFSET + +/obj/machinery/vitals_reader/on_set_is_operational(old_value) + update_appearance() + set_light_on(is_operational) + +/obj/machinery/vitals_reader/process() + if(!COOLDOWN_FINISHED(src, beep_cd) || !is_operational) + return + if(isnull(patient)) + stack_trace("[src] has no patient but is still processing!") + end_processing() + return + + var/patient_stat = patient.stat + if(machine_stat & (EMPED|EMAGGED)) + patient_stat = pick(CONSCIOUS, SOFT_CRIT, HARD_CRIT, DEAD, DEAD, DEAD) + + switch(patient_stat) + if(DEAD) + COOLDOWN_START(src, beep_cd, 11 SECONDS) + if(last_reported_stat != DEAD) + beep_message("lets out a droning beep.") + last_reported_stat = DEAD + if(HARD_CRIT) + COOLDOWN_START(src, beep_cd, 5 SECONDS) + if(last_reported_stat != HARD_CRIT) + beep_message("lets out an alternating beep.") + last_reported_stat = HARD_CRIT + if(SOFT_CRIT) + COOLDOWN_START(src, beep_cd, 7 SECONDS) + if(last_reported_stat != SOFT_CRIT) + beep_message("lets out a high pitch beep.") + last_reported_stat = SOFT_CRIT + else + COOLDOWN_START(src, beep_cd, 7 SECONDS) + if(last_reported_stat != CONSCIOUS) + beep_message("lets out a beep.") + last_reported_stat = CONSCIOUS + +/obj/machinery/vitals_reader/proc/beep_message(message) + for(var/mob/viewer as anything in viewers(src)) + if(isnull(viewer.client) || !viewer.can_hear()) + continue + if(!viewer.runechat_prefs_check(viewer, EMOTE_MESSAGE)) + continue + viewer.create_chat_message( + speaker = src, + raw_message = message, + runechat_flags = EMOTE_MESSAGE, + ) + +/// Sets the passed mob as the active patient +/// If there is already a patient, it will be unset first. +/obj/machinery/vitals_reader/proc/set_patient(mob/living/new_patient) + if(patient == new_patient) + return + if(isnull(new_patient)) + unset_patient() + return + + if(isnull(patient)) + unset_patient() + + patient = new_patient + RegisterSignal(patient, COMSIG_QDELETING, PROC_REF(unset_patient)) + RegisterSignals(patient, list( + COMSIG_CARBON_POST_REMOVE_LIMB, + COMSIG_CARBON_POST_ATTACH_LIMB, + COMSIG_LIVING_HEALTH_UPDATE, + COMSIG_LIVING_UPDATE_BLOOD_STATUS, + ), PROC_REF(update_overlay_on_signal)) + update_appearance() + begin_processing() + update_use_power(ACTIVE_POWER_USE) + last_reported_stat = null + +/// Unset the current patient. +/obj/machinery/vitals_reader/proc/unset_patient(...) + SIGNAL_HANDLER + if(isnull(patient)) + return + + UnregisterSignal(patient, list( + COMSIG_QDELETING, + COMSIG_CARBON_POST_REMOVE_LIMB, + COMSIG_CARBON_POST_ATTACH_LIMB, + COMSIG_LIVING_HEALTH_UPDATE, + COMSIG_LIVING_UPDATE_BLOOD_STATUS, + )) + + patient = null + end_processing() + update_use_power(IDLE_POWER_USE) + if(QDELING(src)) + return + + update_appearance() + +/// Signal proc to update the display when a signal is received. +/obj/machinery/vitals_reader/proc/update_overlay_on_signal(...) + SIGNAL_HANDLER + update_appearance() + +/obj/machinery/vitals_reader/emp_act(severity) + . = ..() + if(. & EMP_PROTECT_SELF) + return + + COOLDOWN_START(src, beep_cd, 1 SECONDS * rand(10, (severity == EMP_HEAVY ? 120 : 60))) + set_machine_stat(machine_stat | EMPED) + addtimer(CALLBACK(src, PROC_REF(fix_emp)), (severity == EMP_HEAVY ? 150 SECONDS : 75 SECONDS), TIMER_DELETE_ME) + +/obj/machinery/vitals_reader/proc/fix_emp() + set_machine_stat(machine_stat & ~EMPED) + +/obj/machinery/vitals_reader/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(machine_stat & BROKEN) + playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 70, TRUE) + else + playsound(src, 'sound/effects/glass/glasshit.ogg', 75, TRUE) + if(BURN) + playsound(src, 'sound/items/tools/welder.ogg', 100, TRUE) diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm index e1f4bc6d792..971dcd513a3 100644 --- a/code/game/objects/items/devices/scanners/health_analyzer.dm +++ b/code/game/objects/items/devices/scanners/health_analyzer.dm @@ -525,7 +525,7 @@ REMOVE_TRAIT(target, TRAIT_RECENTLY_TREATED, ANALYZER_TRAIT) return TRUE -/proc/chemscan(mob/living/user, mob/living/target, reagent_types_to_check = null) +/proc/chemscan(mob/living/user, mob/living/target, reagent_types_to_check = null, tochat = TRUE) if(user.incapacitated) return @@ -594,7 +594,10 @@ render_list += "[allergies]
" // we handled the last
so we don't need handholding - to_chat(user, custom_boxed_message("blue_box", jointext(render_list, "")), trailing_newline = FALSE, type = MESSAGE_TYPE_INFO) + if(tochat) + to_chat(user, custom_boxed_message("blue_box", jointext(render_list, "")), trailing_newline = FALSE, type = MESSAGE_TYPE_INFO) + else + return jointext(render_list, "") /obj/item/healthanalyzer/click_alt(mob/user) if(mode == SCANNER_NO_MODE) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 53e142dce59..00a7dec2bf6 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -1103,6 +1103,7 @@ if (patient.external && patient.external == air_tank) patient.close_externals() + SEND_SIGNAL(src, COMSIG_OPERATING_TABLE_SET_PATIENT, new_patient) patient = new_patient update_appearance() computer?.update_static_data_for_all_viewers() diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 3ca9a45b732..5fec94d4333 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -1379,3 +1379,31 @@ id = "surgery_oldstation_dissection" surgery = /datum/surgery_operation/basic/dissection research_icon_state = "surgery_chest" + +/datum/design/vitals_monitor + name = "Vitals Monitor" + desc = "A wall mounted computer that displays the vitals of a patient nearby. \ + Links to stasis beds, operating tables, and other machines that can hold patients \ + such as cryo cells, sleepers, and more." + id = "vitals_monitor" + build_type = PROTOLATHE + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 4, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT * 0.5, + ) + build_path = /obj/item/wallframe/status_display/vitals + category = list(RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_MEDICAL) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + +/datum/design/vitals_monitor/advanced + name = "Advanced Vitals Monitor" + desc = "An updated vitals display which performs a more detailed scan of the patient than the basic display." + id = "vitals_monitor_advanced" + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 4, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT * 0.5, + ) + build_path = /obj/item/wallframe/status_display/vitals/advanced diff --git a/code/modules/research/techweb/nodes/medbay_nodes.dm b/code/modules/research/techweb/nodes/medbay_nodes.dm index c79bad013ef..6ae856d8173 100644 --- a/code/modules/research/techweb/nodes/medbay_nodes.dm +++ b/code/modules/research/techweb/nodes/medbay_nodes.dm @@ -4,35 +4,36 @@ display_name = "Medbay Equipment" description = "Essential medical tools to patch you up while medbay is still intact." design_ids = list( - "operating", - "medicalbed", - "defibmountdefault", - "surgical_drapes", - "scalpel", - "retractor", - "hemostat", - "cautery", - "circular_saw", - "surgicaldrill", - "bonesetter", + "beaker", "blood_filter", - "surgical_tape", + "blood_pack", + "blood_scanner", + "bonesetter", + "cautery", + "chem_pack", + "circular_saw", + "defibmountdefault", + "dropper", + "hemostat", + "jerrycan", + "large_beaker", + "medicalbed", + "operating", + "organ_jar", "penlight", "penlight_paramedic", - "stethoscope", - "beaker", - "large_beaker", - "chem_pack", - "blood_pack", - "syringe", - "dropper", "pillbottle", - "xlarge_beaker", - "organ_jar", - "jerrycan", "reflex_hammer", - "blood_scanner", + "retractor", + "scalpel", + "stethoscope", "suit_sensor", + "surgical_drapes", + "surgical_tape", + "surgicaldrill", + "syringe", + "vitals_monitor", + "xlarge_beaker", ) experiments_to_unlock = list( /datum/experiment/autopsy/human, @@ -74,16 +75,17 @@ description = "State-of-the-art medical gear for keeping the crew in one piece — mostly." prereq_ids = list(TECHWEB_NODE_CHEM_SYNTHESIS) design_ids = list( - "smoke_machine", "chem_mass_spec", - "healthanalyzer_advanced", - "mod_health_analyzer", "crewpinpointer", "defibmount", - "medicalbed_emergency", - "piercesyringe", "diode_disk_healing", "diode_disk_sanity", + "healthanalyzer_advanced", + "medicalbed_emergency", + "mod_health_analyzer", + "piercesyringe", + "smoke_machine", + "vitals_monitor_advanced", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) required_experiments = list(/datum/experiment/scanning/reagent/haloperidol) diff --git a/icons/obj/machines/vitals_monitor.dmi b/icons/obj/machines/vitals_monitor.dmi new file mode 100644 index 00000000000..d402e7f0b3e Binary files /dev/null and b/icons/obj/machines/vitals_monitor.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 266fd8a0eb0..da561f0cec6 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2256,6 +2256,7 @@ #include "code\game\machinery\teleporter.dm" #include "code\game\machinery\transformer.dm" #include "code\game\machinery\wall_healer.dm" +#include "code\game\machinery\wall_vitals.dm" #include "code\game\machinery\washing_machine.dm" #include "code\game\machinery\wishgranter.dm" #include "code\game\machinery\ai_core\_core.dm"