diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index a62dfcf0a2..98743b7bb3 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -6034,12 +6034,15 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/machinery/door/firedoor, /obj/item/flashlight/lamp, /obj/machinery/door/window/westright{ name = "Security Checkpoint"; req_access_txt = "1" }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, /turf/open/floor/plasteel, /area/security/checkpoint) "aoB" = ( @@ -9593,12 +9596,15 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/machinery/door/firedoor, /obj/item/folder/red, /obj/machinery/door/window/westleft{ name = "Security Checkpoint"; req_access_txt = "1" }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, /turf/open/floor/plasteel, /area/security/checkpoint) "awu" = ( @@ -23201,7 +23207,25 @@ /area/hallway/primary/port/fore) "aYW" = ( /obj/structure/table/reinforced, -/obj/machinery/door/firedoor, +/obj/item/pen/blue, +/obj/machinery/camera{ + c_tag = "Customs - Fore"; + dir = 4 + }, +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "HoPFore"; + name = "HoP Fore Desk Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"aYX" = ( +/obj/structure/table/reinforced, /obj/machinery/door/window/northright{ name = "Customs Desk"; req_access_txt = "57" @@ -23210,16 +23234,9 @@ id = "HoPFore"; name = "HoP Fore Desk Shutters" }, -/turf/open/floor/plasteel/dark, -/area/security/checkpoint/customs) -"aYX" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/flashlight/lamp, -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "HoPFore"; - name = "HoP Fore Desk Shutters" +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" }, /turf/open/floor/plasteel/dark, /area/security/checkpoint/customs) @@ -25410,7 +25427,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bdM" = ( /turf/open/floor/plasteel, /area/quartermaster/office) @@ -25688,7 +25705,7 @@ /area/security/courtroom) "bey" = ( /turf/closed/wall/r_wall, -/area/science/server) +/area/science/server/compcore) "bez" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -25764,7 +25781,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /turf/open/floor/plating, -/area/science/server) +/area/science/server/compcore) "beI" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, @@ -25778,7 +25795,7 @@ /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "beJ" = ( /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -25967,7 +25984,7 @@ icon_state = "0-4" }, /turf/open/floor/plating, -/area/science/server) +/area/science/server/compcore) "bfi" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 10 @@ -25985,13 +26002,13 @@ icon_state = "0-4" }, /turf/open/floor/plating, -/area/science/server) +/area/science/server/compcore) "bfk" = ( /obj/structure/cable{ icon_state = "2-8" }, /turf/closed/wall/r_wall, -/area/science/server) +/area/science/server/compcore) "bfl" = ( /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ @@ -26943,7 +26960,7 @@ icon_state = "2-4" }, /turf/closed/wall/r_wall, -/area/science/server) +/area/science/server/compcore) "bhm" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/engine, @@ -27313,7 +27330,7 @@ icon_state = "4-8" }, /turf/closed/wall/r_wall, -/area/science/server) +/area/science/server/compcore) "bia" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -27399,7 +27416,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /turf/closed/wall/r_wall, -/area/science/server) +/area/science/server/compcore) "bik" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -27415,7 +27432,7 @@ "bil" = ( /obj/structure/window/reinforced/spawner, /turf/open/floor/plasteel/dark, -/area/science/server) +/area/science/server/compcore) "bim" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -27513,7 +27530,7 @@ dir = 5 }, /turf/open/floor/plasteel/dark, -/area/science/server) +/area/science/server/compcore) "bix" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery, @@ -27576,7 +27593,7 @@ dir = 10 }, /turf/open/floor/plasteel/dark, -/area/science/server) +/area/science/server/compcore) "biF" = ( /obj/structure/cable{ icon_state = "4-8" @@ -27615,7 +27632,7 @@ icon_state = "1-2" }, /turf/closed/wall/r_wall, -/area/science/server) +/area/science/server/compcore) "biI" = ( /obj/machinery/light{ dir = 4; @@ -28416,7 +28433,7 @@ }, /obj/machinery/photocopier, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bku" = ( /obj/structure/closet, /turf/open/floor/plasteel, @@ -28455,7 +28472,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bkA" = ( /obj/machinery/light_switch{ pixel_y = -24 @@ -28566,7 +28583,7 @@ pixel_y = 24 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bkK" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -28674,7 +28691,7 @@ /area/maintenance/department/eva) "bkW" = ( /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bkX" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment, @@ -28918,25 +28935,26 @@ "blv" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "blw" = ( /obj/structure/cable{ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "blx" = ( /obj/structure/cable{ icon_state = "0-8" }, /obj/machinery/power/apc{ + areastring = "/area/science/server/compcore"; dir = 1; name = "Computer Core APC"; pixel_y = 24 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bly" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29001,7 +29019,7 @@ light_color = "#e8eaff" }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "blE" = ( /obj/machinery/light{ dir = 8 @@ -29216,7 +29234,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bma" = ( /obj/structure/chair{ dir = 8 @@ -29522,7 +29540,7 @@ icon_state = "1-2" }, /turf/closed/wall/r_wall, -/area/science/server) +/area/science/server/compcore) "bmG" = ( /turf/open/floor/engine, /area/gateway) @@ -30215,7 +30233,7 @@ pixel_y = 1 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bnT" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -30228,7 +30246,7 @@ dir = 9 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bnU" = ( /obj/structure/rack, /obj/item/clothing/suit/space/fragile, @@ -30280,18 +30298,16 @@ /area/engine/teg) "bnZ" = ( /obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/pen/blue, -/obj/machinery/camera{ - c_tag = "Customs - Fore"; - dir = 4 - }, +/obj/item/flashlight/lamp, /obj/structure/window/reinforced/spawner/north, /obj/machinery/door/poddoor/shutters/preopen{ id = "HoPFore"; name = "HoP Fore Desk Shutters" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, /turf/open/floor/plasteel/dark, /area/security/checkpoint/customs) "boa" = ( @@ -30314,24 +30330,22 @@ /area/crew_quarters/heads/chief) "bod" = ( /obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/machinery/camera{ + c_tag = "Customs - Aft"; dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/structure/window/reinforced/spawner, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "HoPAft"; + name = "HoP Aft Desk Shutters" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" }, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/southleft{ - name = "Primary Tool Storage Desk"; - req_access_txt = "11" - }, -/obj/item/folder/yellow, -/turf/open/floor/plasteel, -/area/storage/primary) +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) "boe" = ( /obj/machinery/door/airlock/vault{ name = "Vault Door"; @@ -30351,7 +30365,7 @@ req_access = list(16) }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bog" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible, /obj/machinery/door/airlock/engineering/glass{ @@ -30380,7 +30394,7 @@ dir = 5 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "boj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -30451,7 +30465,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "boq" = ( /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ @@ -30464,7 +30478,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bor" = ( /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance, @@ -30503,7 +30517,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bou" = ( /obj/effect/turf_decal/plaque{ icon_state = "L2" @@ -30859,7 +30873,7 @@ }, /obj/item/book/manual/wiki/robotics_cyborgs, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bpi" = ( /obj/machinery/firealarm{ pixel_y = 26 @@ -31095,7 +31109,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bpL" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -31105,7 +31119,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bpM" = ( /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, @@ -31116,7 +31130,7 @@ }, /obj/effect/turf_decal/tile/green, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bpO" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -31164,7 +31178,7 @@ /obj/effect/turf_decal/tile/green, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bpW" = ( /obj/structure/cable{ icon_state = "1-2" @@ -31350,7 +31364,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bqu" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -31546,7 +31560,7 @@ }, /obj/item/storage/box/disks, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bqP" = ( /obj/machinery/camera{ c_tag = "Engine Room - Port Quarter"; @@ -34882,7 +34896,7 @@ }, /obj/structure/window/reinforced/spawner, /turf/open/floor/plasteel/dark, -/area/science/server) +/area/science/server/compcore) "byf" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Telecommunications Mainframe"; @@ -35576,7 +35590,7 @@ "bzN" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/science/server) +/area/science/server/compcore) "bzO" = ( /obj/machinery/conveyor_switch/oneway{ id = "recycler"; @@ -35605,7 +35619,7 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bzS" = ( /obj/structure/table, /obj/machinery/light/small{ @@ -35924,7 +35938,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/holopad, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bAz" = ( /obj/structure/disposalpipe/junction/flip{ dir = 1 @@ -36037,7 +36051,7 @@ }, /obj/structure/window/reinforced/spawner, /turf/open/floor/plasteel/dark, -/area/science/server) +/area/science/server/compcore) "bAI" = ( /obj/machinery/photocopier, /obj/machinery/requests_console{ @@ -36545,7 +36559,7 @@ /obj/effect/turf_decal/delivery, /obj/machinery/rnd/server, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bBT" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -36623,10 +36637,10 @@ name = "RD Server Lockup" }, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bCb" = ( /turf/open/floor/circuit/green, -/area/science/server) +/area/science/server/compcore) "bCc" = ( /obj/effect/turf_decal/delivery, /obj/structure/cable{ @@ -36998,7 +37012,7 @@ "bCW" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/circuit/green, -/area/science/server) +/area/science/server/compcore) "bCX" = ( /obj/machinery/rnd/production/circuit_imprinter/department/science, /obj/item/reagent_containers/glass/beaker/sulphuric, @@ -38773,7 +38787,7 @@ "bGv" = ( /obj/item/caution, /turf/open/floor/plasteel, -/area/science/server) +/area/science/server/compcore) "bGw" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -38897,7 +38911,7 @@ /obj/item/circuitboard/machine/rdserver, /obj/item/disk/tech_disk, /turf/open/floor/circuit/green, -/area/science/server) +/area/science/server/compcore) "bGL" = ( /obj/structure/chair{ dir = 1 @@ -38946,7 +38960,7 @@ /obj/machinery/light, /obj/structure/disposalpipe/segment, /turf/open/floor/circuit/green, -/area/science/server) +/area/science/server/compcore) "bGQ" = ( /obj/structure/lattice/catwalk, /obj/structure/disposalpipe/segment{ @@ -39522,7 +39536,7 @@ network = list("minisat") }, /turf/open/floor/circuit/green, -/area/science/server) +/area/science/server/compcore) "bIh" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/delivery/white, @@ -40062,7 +40076,7 @@ icon_state = "1-4" }, /turf/closed/wall/r_wall, -/area/science/server) +/area/science/server/compcore) "bJo" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, @@ -40233,7 +40247,7 @@ icon_state = "0-4" }, /turf/open/floor/plating, -/area/science/server) +/area/science/server/compcore) "bJG" = ( /obj/structure/extinguisher_cabinet{ pixel_y = -32 @@ -40574,7 +40588,7 @@ icon_state = "1-8" }, /turf/closed/wall/r_wall, -/area/science/server) +/area/science/server/compcore) "bKt" = ( /obj/structure/cable{ icon_state = "1-4" @@ -42597,7 +42611,7 @@ icon_state = "0-2" }, /turf/open/floor/plating, -/area/science/server) +/area/science/server/compcore) "bOA" = ( /obj/effect/turf_decal/tile/green{ dir = 4 @@ -42830,18 +42844,23 @@ /area/science/xenobiology) "bOY" = ( /obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, -/obj/machinery/camera{ - c_tag = "Customs - Aft"; - dir = 4 +/obj/item/clipboard, +/obj/item/stamp/denied{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stamp, +/obj/machinery/door/window/southright{ + name = "Customs Desk"; + req_access_txt = "57" }, -/obj/structure/window/reinforced/spawner, /obj/machinery/door/poddoor/shutters/preopen{ id = "HoPAft"; name = "HoP Aft Desk Shutters" }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, /turf/open/floor/plasteel/dark, /area/security/checkpoint/customs) "bOZ" = ( @@ -44439,7 +44458,7 @@ }, /obj/structure/cable, /turf/open/floor/plating, -/area/science/server) +/area/science/server/compcore) "bSp" = ( /obj/machinery/conveyor_switch/oneway{ id = "cargoload" @@ -46307,26 +46326,17 @@ /area/engine/atmos) "bVY" = ( /obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 +/obj/item/flashlight/lamp, +/obj/structure/window/reinforced/spawner, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "HoPAft"; + name = "HoP Aft Desk Shutters" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/southright{ - name = "Primary Tool Storage Desk"; - req_access_txt = "11" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/storage/primary) +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) "bVZ" = ( /obj/machinery/power/apc{ name = "Cargo Bay APC"; @@ -54609,26 +54619,26 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "cmT" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/item/folder/red, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/machinery/door/window/northright{ - name = "Security Checkpoint"; - req_access_txt = "1" +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/full, +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" }, /turf/open/floor/plasteel, -/area/security/checkpoint/supply) +/area/engine/workshop) "cmU" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -57988,20 +57998,25 @@ /turf/open/floor/plasteel, /area/engine/atmos) "ctl" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/obj/effect/turf_decal/stripes/white/full, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/modular_computer/console/preset/engineering, +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/structure/window/reinforced/spawner/north, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, /turf/open/floor/plasteel, /area/engine/workshop) "ctm" = ( @@ -58202,21 +58217,17 @@ /turf/open/floor/plating, /area/medical/virology) "ctE" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft{ + name = "Workshop Desk"; + req_access_txt = "11" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/modular_computer/console/preset/engineering, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/window/reinforced/spawner/north, /turf/open/floor/plasteel, /area/engine/workshop) "ctF" = ( @@ -59567,34 +59578,38 @@ /area/science/xenobiology) "cvZ" = ( /obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/clipboard, -/obj/item/stamp/denied{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/stamp, /obj/machinery/door/window/southright{ - name = "Customs Desk"; - req_access_txt = "57" + name = "Workshop Desk"; + req_access_txt = "11" }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "HoPAft"; - name = "HoP Aft Desk Shutters" +/obj/item/folder/yellow, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" }, -/turf/open/floor/plasteel/dark, -/area/security/checkpoint/customs) +/turf/open/floor/plasteel, +/area/engine/workshop) "cwa" = ( /obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/flashlight/lamp, -/obj/structure/window/reinforced/spawner, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "HoPAft"; - name = "HoP Aft Desk Shutters" +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/security/checkpoint/customs) +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/door/window/southleft{ + name = "Primary Tool Storage Desk"; + req_access_txt = "11" + }, +/obj/item/folder/yellow, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel, +/area/storage/primary) "cwb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60704,6 +60719,7 @@ pixel_y = 24 }, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/toilet/restrooms"; dir = 4; name = "Restrooms APC"; pixel_x = 24 @@ -68681,6 +68697,30 @@ /obj/machinery/light, /turf/open/floor/plasteel, /area/router/air) +"cNm" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/door/window/southright{ + name = "Primary Tool Storage Desk"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel, +/area/storage/primary) "cNn" = ( /obj/machinery/conveyor/auto{ dir = 8; @@ -68693,26 +68733,28 @@ /area/engine/workshop) "cNp" = ( /obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/southleft{ - name = "Workshop Desk"; - req_access_txt = "11" +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/item/paper_bin, -/obj/item/pen, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/workshop) -"cNq" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/southright{ - name = "Workshop Desk"; - req_access_txt = "11" +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/folder/red, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/door/window/northright{ + name = "Security Checkpoint"; + req_access_txt = "1" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" }, -/obj/item/folder/yellow, /turf/open/floor/plasteel, -/area/engine/workshop) +/area/security/checkpoint/supply) "cNr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -94872,11 +94914,11 @@ aUV aYB bbg bcH -bnZ +aYW bqi bIl bcJ -bOY +bod bdr beJ beJ @@ -95129,11 +95171,11 @@ bcN aYJ aNL aVJ -aYW +aYX baF bIr bcx -cvZ +bOY bdr beJ beT @@ -95386,11 +95428,11 @@ bcQ aUC aNL aVJ -aYX +bnZ baD bIV bKg -cwa +bVY bdr beJ bfd @@ -107000,7 +107042,7 @@ cvb cvd cvd cNa -cNp +ctE ber cIQ cgB @@ -107257,7 +107299,7 @@ cuV cyv cuV cNb -cNq +cvZ beW cIM cgB @@ -108022,7 +108064,7 @@ cqs cqG crt cdm -ctl +cmT cuL cvd cAp @@ -108279,7 +108321,7 @@ bxz bwP cBn cBH -ctE +ctl cuM cvg cBa @@ -111626,7 +111668,7 @@ ciL cLr cwQ bPx -bod +cwa beW bXX cIM @@ -111883,7 +111925,7 @@ con coo cwR bPy -bVY +cNm bWn bYO cJc @@ -117286,7 +117328,7 @@ bdM cNA bhb ciE -cmT +cNp cnB csh cHV diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 3c160180da..cf0b6115af 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -52010,19 +52010,23 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "bZV" = ( -/obj/item/storage/toolbox/emergency, -/obj/item/hand_labeler, -/obj/effect/spawner/lootdrop/maintenance, +/obj/item/storage/box/lights/mixed, /turf/open/floor/plating, /area/maintenance/port/aft) "bZW" = ( -/obj/item/cigbutt, +/obj/item/cigbutt{ + pixel_x = 6; + pixel_y = -6 + }, /obj/structure/disposalpipe/segment{ dir = 6 }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/item/storage/toolbox/emergency, +/obj/item/hand_labeler, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/aft) "bZX" = ( @@ -53085,7 +53089,6 @@ }, /area/maintenance/port/aft) "cbG" = ( -/obj/item/storage/box/lights/mixed, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -53178,8 +53181,6 @@ network = list("ss13","medbay") }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/crate/freezer/surplus_limbs, -/obj/item/reagent_containers/glass/beaker/synthflesh, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -55173,7 +55174,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/bloodbankgen, +/obj/vehicle/ridden/wheelchair, /turf/open/floor/plasteel/dark, /area/medical/sleeper) "cfL" = ( @@ -56421,35 +56422,28 @@ /turf/closed/wall, /area/medical/surgery) "cib" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/plasteel/white/corner, /area/medical/surgery) "cic" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 + dir = 10 }, -/turf/closed/wall, -/area/medical/surgery) -"cid" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Medbay Maintenance"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/turf/open/floor/plasteel/white/side{ dir = 1 }, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/area/medical/surgery) +"cid" = ( +/obj/structure/curtain{ + icon_state = "closed" + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) "cie" = ( /obj/machinery/firealarm{ dir = 4; pixel_x = -24 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -57093,56 +57087,65 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cjw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +/obj/structure/table, +/obj/machinery/firealarm{ + pixel_y = 24 }, -/turf/open/floor/plasteel/dark, -/area/medical/surgery) -"cjx" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_y = 5 }, -/turf/open/floor/plasteel/dark, -/area/medical/surgery) -"cjy" = ( -/obj/item/cigbutt, -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/light_switch{ + pixel_x = -26 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/white/corner, /area/medical/surgery) "cjz" = ( -/obj/structure/chair, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/medical/surgery) -"cjA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/plasteel/white/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"cjA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, /area/medical/surgery) "cjB" = ( -/obj/item/cigbutt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/vending/wallmed{ + pixel_y = 29 + }, +/turf/open/floor/plasteel/white/side, /area/medical/surgery) "cjC" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/dark, +/obj/structure/table, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = 22 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/suit/apron/surgical, +/turf/open/floor/plasteel/white/side, /area/medical/surgery) "cjD" = ( -/obj/structure/chair, -/obj/machinery/light/small{ - dir = 1 +/obj/structure/table, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_y = 5 + }, +/obj/machinery/light_switch{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/medical/surgery) "cjE" = ( /obj/structure/bed/roller, @@ -57153,9 +57156,6 @@ name = "Station Intercom (Medbay)"; pixel_x = -30 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, /obj/machinery/camera{ c_tag = "Medbay Sleepers"; dir = 4; @@ -57171,12 +57171,7 @@ /turf/open/floor/plasteel/white, /area/medical/sleeper) "cjF" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/medical/sleeper) "cjG" = ( @@ -57188,7 +57183,6 @@ /area/medical/sleeper) "cjH" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, /area/medical/sleeper) "cjI" = ( @@ -57790,71 +57784,72 @@ /turf/open/floor/plasteel/dark, /area/aisat) "ckU" = ( -/obj/structure/chair, -/obj/structure/sign/warning/nosmoking{ - pixel_x = -28 +/obj/machinery/computer/operating{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/medical/surgery) -"ckV" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/medical/surgery) -"ckW" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/dark, /area/medical/surgery) "ckX" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 +/obj/structure/sink{ + dir = 4; + pixel_x = 11 }, -/turf/open/floor/plasteel/dark, -/area/medical/surgery) -"ckY" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/surgery) -"ckZ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - name = "Observation" - }, -/turf/open/floor/plasteel/dark, -/area/medical/surgery) -"cla" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/medical/surgery) -"clb" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/medical/surgery) -"clc" = ( -/obj/item/cigbutt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/sign/warning/nosmoking{ +/obj/structure/mirror{ pixel_x = 28 }, -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/surgery) +"ckY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/surgery) +"ckZ" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/surgery) +"cla" = ( +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"clb" = ( +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"clc" = ( +/obj/machinery/computer/operating{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, /area/medical/surgery) "cld" = ( /obj/machinery/sleeper{ @@ -57894,6 +57889,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel/white, /area/medical/sleeper) "clg" = ( @@ -57974,6 +57970,9 @@ /area/medical/medbay/central) "cln" = ( /obj/effect/turf_decal/tile/blue, +/obj/vehicle/ridden/wheelchair{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "clo" = ( @@ -58441,26 +58440,32 @@ /turf/open/floor/wood, /area/maintenance/port/aft) "cmk" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, +/obj/structure/table/optable, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, /area/medical/surgery) "cml" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, /area/medical/surgery) "cmm" = ( -/obj/effect/spawner/structure/window, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, /area/medical/surgery) "cmn" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - name = "Observation" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, /area/medical/surgery) "cmo" = ( /obj/effect/spawner/structure/window, @@ -58903,78 +58908,30 @@ /turf/open/floor/wood, /area/maintenance/port/aft) "cnm" = ( -/obj/structure/table, -/obj/item/hemostat, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/medical/surgery) -"cnn" = ( -/obj/structure/table, -/obj/item/surgicaldrill, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white/side, -/area/medical/surgery) -"cno" = ( -/obj/structure/table, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/circular_saw, -/turf/open/floor/plasteel/white/side, +/obj/structure/sign/poster/official/cleanliness, +/turf/closed/wall, /area/medical/surgery) "cnp" = ( -/obj/structure/table, -/obj/item/cautery{ - pixel_x = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/razor{ - pixel_y = 5 +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" }, -/turf/open/floor/plasteel/white/side, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, /area/medical/surgery) "cnq" = ( -/obj/structure/table, -/obj/item/retractor, -/turf/open/floor/plasteel, +/obj/machinery/smartfridge/organ/preloaded, +/turf/closed/wall, /area/medical/surgery) "cnr" = ( -/obj/machinery/computer/med_data{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel/white/side, -/area/medical/surgery) -"cns" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side, +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, /area/medical/surgery) "cnt" = ( -/obj/structure/table/reinforced, -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_x = 30 - }, -/obj/structure/bedsheetbin{ - pixel_x = 2 - }, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/mask/muzzle, -/obj/item/clothing/glasses/eyepatch, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/ears/earmuffs, -/obj/item/storage/belt/medical{ - pixel_y = 2 - }, -/obj/item/gun/syringe/dart, -/turf/open/floor/plasteel/white/side, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, /area/medical/surgery) "cnu" = ( /obj/machinery/power/apc{ @@ -59637,89 +59594,100 @@ }, /area/maintenance/port/aft) "coy" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, -/obj/item/clothing/suit/apron/surgical, -/obj/machinery/airalarm{ +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/firealarm{ dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 + pixel_x = -24 }, +/turf/open/floor/plasteel/dark, /area/medical/surgery) "coz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/vomit/old{ + pixel_x = -2; + pixel_y = 7 + }, +/turf/open/floor/plasteel/dark, /area/medical/surgery) "coA" = ( -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/white, +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, /area/medical/surgery) "coB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/medical/surgery) "coC" = ( -/obj/machinery/power/apc{ - areastring = "/area/medical/surgery"; - dir = 4; - name = "Surgery APC"; - pixel_x = 26 - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/table, -/obj/item/surgical_drapes, -/turf/open/floor/plasteel/white/side{ - dir = 8 +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, +/turf/open/floor/plasteel/dark, /area/medical/surgery) "coD" = ( -/obj/structure/bed/roller, -/obj/machinery/light/small{ - dir = 8 +/obj/item/cigbutt{ + pixel_x = -8; + pixel_y = 12 }, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white, +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/dark, /area/medical/surgery) "coE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +/obj/structure/chair{ + dir = 1 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, /area/medical/surgery) "coF" = ( -/obj/structure/bed, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/item/trash/popcorn{ + pixel_x = -5; + pixel_y = -4 }, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/white, +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, /area/medical/surgery) "coG" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/table/optable, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/white/corner{ + dir = 1 }, -/turf/open/floor/plating, /area/medical/surgery) "coH" = ( /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/medical/cryo) "coI" = ( @@ -60439,96 +60407,90 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cpT" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Surgery Maintenance"; - req_access_txt = "45" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cpU" = ( -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"cpW" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"cpX" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - name = "Operating Theatre"; - req_access_txt = "45" - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"cpY" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"cpZ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/landmark/start/medical_doctor, -/obj/machinery/holopad, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cpT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, /turf/open/floor/plasteel/white, /area/medical/surgery) +"cpW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/medical/surgery) +"cpX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/medical/surgery) +"cpZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/medical/surgery) "cqa" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, /area/medical/surgery) "cqb" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ name = "Surgery Observation" }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/medical/surgery) "cqc" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, /turf/open/floor/plasteel/white, /area/medical/cryo) "cqd" = ( @@ -61165,66 +61127,36 @@ }, /area/maintenance/port/aft) "crj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, /obj/machinery/light_switch{ - pixel_x = -28 + pixel_x = -26 }, -/turf/open/floor/plasteel/white/side{ +/turf/open/floor/plasteel/white/corner, +/area/medical/surgery) +"crl" = ( +/turf/open/floor/plasteel/white/side, +/area/medical/surgery) +"crm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side, +/area/medical/surgery) +"crn" = ( +/obj/machinery/light{ dir = 4 }, +/turf/open/floor/plasteel/white/side, /area/medical/surgery) -"crk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +"cro" = ( +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, /turf/open/floor/plasteel/white, /area/medical/surgery) -"crl" = ( -/obj/machinery/computer/operating{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"crm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"crn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/white/side{ - dir = 8 - }, -/area/medical/surgery) -"cro" = ( -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/obj/structure/sign/warning/nosmoking{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) "crq" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/machinery/light_switch{ - pixel_x = 26 - }, -/turf/open/floor/plasteel/white, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white/side, /area/medical/surgery) "crr" = ( /obj/machinery/airalarm{ @@ -61669,23 +61601,46 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "csj" = ( -/obj/structure/closet/secure_closet/medical2, /obj/structure/sign/warning/nosmoking{ pixel_x = -28 }, -/turf/open/floor/plasteel, +/obj/machinery/limbgrower, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, /area/medical/surgery) "csk" = ( +/obj/machinery/light, +/obj/machinery/bloodbankgen, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"csl" = ( /obj/machinery/airalarm{ dir = 1; pixel_y = -22 }, -/turf/open/floor/plasteel/white/side{ - dir = 1 +/obj/structure/window/reinforced{ + dir = 8 }, +/obj/structure/closet/crate/freezer/blood, +/obj/machinery/door/window/northleft{ + name = "Surgery Supplies"; + red_alert_access = 1; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, /area/medical/surgery) -"csl" = ( -/obj/machinery/light, +"csm" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/closet/crate/freezer/surplus_limbs, +/obj/item/reagent_containers/glass/beaker/synthflesh, +/obj/machinery/door/window/northright{ + name = "Surgery Supplies"; + red_alert_access = 1; + req_access_txt = "5" + }, /obj/machinery/camera{ c_tag = "Medbay Surgery"; dir = 1; @@ -61693,72 +61648,38 @@ }, /turf/open/floor/plasteel/white, /area/medical/surgery) -"csm" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/medical/surgery) "csn" = ( -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_y = -30 - }, -/obj/structure/closet/crate/freezer/blood, -/turf/open/floor/plasteel, -/area/medical/surgery) -"cso" = ( -/obj/structure/bed/roller, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/structure/chair/office/light{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/surgery) -"csp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +"cso" = ( +/obj/item/bedsheet/medical{ dir = 1 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/structure/bed{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/surgery) +"csp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/surgery) "csq" = ( /obj/structure/bed, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, /obj/item/bedsheet/medical, -/obj/machinery/newscaster{ - pixel_y = -32 +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 }, -/obj/machinery/camera{ - c_tag = "Medbay Recovery Room"; - dir = 1; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ +/turf/open/floor/plasteel/white/side{ dir = 8 }, -/turf/open/floor/plasteel/white, /area/medical/surgery) "csr" = ( /obj/machinery/door/airlock/maintenance{ @@ -62325,8 +62246,12 @@ /turf/open/floor/plating, /area/maintenance/aft) "ctr" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, +/obj/structure/bed{ + dir = 1 + }, +/obj/item/bedsheet/medical{ + dir = 1 + }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/airalarm{ dir = 4; @@ -62376,6 +62301,16 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, /area/medical/patients_rooms/room_a) "ctv" = ( @@ -62458,7 +62393,7 @@ "ctD" = ( /obj/structure/sign/directions/evac, /turf/closed/wall, -/area/medical/genetics) +/area/medical/paramedic) "ctE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, @@ -62728,29 +62663,38 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cui" = ( -/obj/structure/closet/crate, -/obj/item/coin/silver, -/obj/item/reagent_containers/spray/weedspray, -/obj/item/paper, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" +/obj/structure/table/reinforced, +/obj/structure/bedsheetbin{ + pixel_x = 2 }, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/glasses/eyepatch, +/obj/item/gun/syringe/dart, +/obj/item/storage/belt/medical{ + pixel_y = 2 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/surgery) "cuj" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/cable/yellow{ - icon_state = "0-2" +/obj/structure/sign/poster/official/medical_green_cross{ + pixel_y = -32 }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/port/aft"; - dir = 1; - name = "Port Quarter Maintenance APC"; - pixel_y = 24 +/obj/structure/bed{ + dir = 1 }, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/obj/item/bedsheet/medical{ + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/medical/surgery) "cuk" = ( /obj/structure/table, /obj/item/folder/white{ @@ -62936,14 +62880,16 @@ }, /obj/item/folder/white{ pixel_x = 4; - pixel_y = -3 + pixel_y = 4 }, /obj/item/folder/white{ pixel_x = 4; - pixel_y = -3 + pixel_y = 4 }, /obj/item/storage/pill_bottle/mutadone, -/obj/item/storage/pill_bottle/mannitol, +/obj/item/storage/pill_bottle/mannitol{ + pixel_x = 5 + }, /obj/structure/table/glass, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -62981,10 +62927,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -5 + }, /turf/open/floor/plasteel/dark, /area/medical/genetics) "cuw" = ( -/obj/structure/filingcabinet/chestdrawer, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -62994,51 +62942,41 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"cux" = ( -/obj/structure/noticeboard{ - desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; - name = "requests board"; - pixel_x = -32; - pixel_y = 32 +/obj/machinery/computer/crew, +/obj/machinery/vending/wallmed{ + pixel_x = -25 }, +/turf/open/floor/plasteel, +/area/medical/paramedic) +"cux" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/medical/paramedic) "cuy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "genetics_shutters"; - name = "genetics shutters" +/obj/structure/table/glass, +/obj/item/flashlight/lamp{ + pixel_x = -1; + pixel_y = 11 }, -/turf/open/floor/plating, -/area/medical/genetics) -"cuz" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 6 +/obj/effect/spawner/lootdrop/cig_packs{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, /obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/medical/paramedic) "cuA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/blue{ @@ -63047,6 +62985,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cuB" = ( @@ -63346,8 +63287,8 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cvn" = ( -/obj/structure/chair{ - dir = 8 +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -63528,72 +63469,61 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "cvC" = ( -/obj/machinery/firealarm{ - dir = 4; +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/paramedic"; + dir = 8; + name = "Paramedic Station APC"; pixel_x = -24 }, -/obj/item/storage/box/syringes, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/structure/table/glass, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/structure/cable/yellow{ + icon_state = "0-4" }, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/medical/paramedic) "cvD" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, /obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/geneticist, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "2-8" }, +/obj/item/cigbutt{ + pixel_x = -15; + pixel_y = 14 + }, +/obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/medical/paramedic) "cvE" = ( -/obj/structure/table/reinforced, +/obj/structure/table/glass, /obj/item/folder/white{ pixel_x = 4; - pixel_y = -3 + pixel_y = 4 }, -/obj/item/pen, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/eastright{ - dir = 8; - name = "Genetics Desk"; - req_access_txt = "5;9" +/obj/item/pen/blue{ + pixel_x = 5; + pixel_y = 3 }, -/obj/machinery/door/window/southleft{ - dir = 4; - name = "Outer Window" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "genetics_shutters"; - name = "genetics shutters" - }, -/turf/open/floor/plating, -/area/medical/genetics) -"cvF" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/medical/paramedic) +"cvF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/paramedic) "cvG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/extinguisher_cabinet{ @@ -63853,7 +63783,14 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cwj" = ( -/obj/item/cigbutt, +/obj/structure/closet/crate, +/obj/item/coin/silver, +/obj/item/reagent_containers/spray/weedspray, +/obj/item/paper, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, /turf/open/floor/plating, /area/maintenance/port/aft) "cwm" = ( @@ -63865,12 +63802,10 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cwn" = ( -/obj/structure/rack, -/obj/item/clothing/glasses/sunglasses, -/obj/item/flashlight/pen, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/surgery) "cwo" = ( /obj/machinery/light/small{ dir = 8 @@ -64061,20 +63996,15 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "cwD" = ( -/obj/item/storage/box/disks{ - pixel_x = 2; - pixel_y = 2 - }, /obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_x = -29 }, /obj/machinery/camera{ - c_tag = "Genetics Desk"; + c_tag = "Paramedics Office"; dir = 4; network = list("ss13","medbay") }, -/obj/structure/table/glass, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -64082,26 +64012,15 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/medical/paramedic) "cwE" = ( -/obj/machinery/light{ - dir = 4 - }, /obj/structure/disposalpipe/segment, -/obj/machinery/button/door{ - id = "genetics_shutters"; - name = "genetics shutters control"; - pixel_x = 28; - req_access_txt = "9" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/medical/paramedic) "cwF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 @@ -64109,6 +64028,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cwG" = ( @@ -64333,11 +64253,28 @@ }, /area/maintenance/port/aft) "cxc" = ( -/obj/item/trash/chips, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Medbay Recovery Room"; + dir = 1; + network = list("ss13","medbay") + }, +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/structure/sign/poster/official/love_ian{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/medical/surgery) "cxd" = ( -/obj/structure/reagent_dispensers/watertank, +/obj/structure/rack, +/obj/item/clothing/glasses/sunglasses, +/obj/item/flashlight/pen, +/obj/effect/spawner/lootdrop/maintenance, /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -64383,6 +64320,16 @@ req_access_txt = "5" }, /obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/medical/medbay/aft) "cxi" = ( @@ -64491,12 +64438,12 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/medical/genetics) "cxu" = ( @@ -64513,57 +64460,62 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "cxv" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/medical/genetics) -"cxw" = ( -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/stack/packageWrap, -/obj/item/pen, -/obj/item/reagent_containers/spray/cleaner, -/obj/structure/table/glass, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"cxx" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 }, +/obj/effect/landmark/start/paramedic, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel, -/area/medical/genetics) -"cxy" = ( -/obj/structure/sign/warning/nosmoking{ - pixel_x = 28 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, +/area/medical/paramedic) +"cxw" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/paramedic, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/medical/paramedic) +"cxx" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light, +/obj/structure/closet/secure_closet/paramedic, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/paramedic) +"cxy" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"cxz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light{ +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, +/turf/open/floor/plasteel, +/area/medical/paramedic) +"cxz" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=10.1-Central-from-Aft"; location = "10-Aft-To-Central" @@ -64571,6 +64523,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cxA" = ( @@ -64580,6 +64538,9 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cxB" = ( @@ -64710,17 +64671,36 @@ }, /area/maintenance/port/aft) "cxR" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas, -/obj/effect/spawner/lootdrop/maintenance, +/obj/item/trash/chips, /turf/open/floor/plating, /area/maintenance/port/aft) "cxS" = ( -/obj/item/latexballon, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/oil/streak, /turf/open/floor/plating, /area/maintenance/port/aft) "cxT" = ( -/obj/item/clothing/suit/ianshirt, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plating, /area/maintenance/port/aft) "cxU" = ( @@ -64885,6 +64865,7 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/medical/genetics) "cyh" = ( @@ -64892,67 +64873,70 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, /turf/open/floor/plasteel/white, /area/medical/genetics) "cyi" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - id_tag = "AuxGenetics"; - name = "Genetics Lab"; - req_access_txt = "9" +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" }, +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/paramedic) +"cyk" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/medical/paramedic) +"cyl" = ( +/turf/closed/wall, +/area/medical/paramedic) +"cym" = ( +/obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"cyj" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"cyk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"cyl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"cym" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ id_tag = "AuxGenetics"; name = "Genetics Access"; req_access_txt = "9" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/genetics) "cyn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cyo" = ( @@ -65278,13 +65262,6 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "cza" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -65292,28 +65269,35 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/medical/genetics) "czb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/camera{ + c_tag = "Genetics Lab"; + dir = 6; + network = list("ss13","medbay") + }, /turf/open/floor/plasteel, /area/medical/genetics) "czc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/light/small{ + dir = 1 }, /turf/open/floor/plasteel, /area/medical/genetics) @@ -65321,36 +65305,37 @@ /obj/machinery/light_switch{ pixel_x = 23 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/genetics) "cze" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/door/airlock/research{ + id_tag = "AuxGenetics"; + name = "Genetics Access"; + req_access_txt = "9" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/closed/wall, +/turf/open/floor/plasteel, /area/medical/genetics) "czf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_x = -26 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "czg" = ( @@ -65363,9 +65348,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "czh" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, /obj/machinery/button/door{ id = "Skynet_launch"; name = "Mech Bay Door Control"; @@ -65374,6 +65356,7 @@ req_one_access_txt = "29" }, /obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/primary/aft) "czi" = ( @@ -65928,6 +65911,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/medical/genetics) "cAh" = ( @@ -67855,9 +67841,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/medical/morgue) "cEd" = ( @@ -67876,28 +67860,21 @@ pixel_y = -3 }, /obj/item/clothing/gloves/color/latex, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/medical/morgue) "cEe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/closed/wall, -/area/medical/morgue) -"cEf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, +/area/medical/surgery) +"cEf" = ( /turf/closed/wall, /area/hallway/primary/aft) "cEg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 @@ -67908,13 +67885,11 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "cEh" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cEi" = ( @@ -68343,12 +68318,18 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/medical/morgue) "cEX" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/medical/morgue) "cEY" = ( @@ -68357,9 +68338,15 @@ name = "Morgue"; req_access_txt = "6" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/medical/morgue) "cEZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "cFa" = ( @@ -68840,6 +68827,9 @@ /area/medical/morgue) "cFY" = ( /obj/structure/closet, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "cFZ" = ( @@ -68848,6 +68838,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cGa" = ( @@ -72322,17 +72315,14 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cMo" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/power/apc{ + areastring = "/area/maintenance/port/aft"; + dir = 1; + name = "Port Quarter Maintenance APC"; + pixel_y = 24 }, /obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 + icon_state = "0-8" }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -72899,10 +72889,16 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cNg" = ( -/obj/structure/rack, -/obj/item/flashlight, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/light/small, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/cigbutt, /turf/open/floor/plating, /area/maintenance/port/aft) "cNh" = ( @@ -75895,8 +75891,12 @@ /turf/closed/wall/r_wall, /area/science/xenobiology) "cUH" = ( -/obj/structure/table/optable, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/medical/surgery) "cUL" = ( /obj/docking_port/stationary/random{ @@ -79639,9 +79639,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, /obj/structure/cable/yellow{ icon_state = "2-4" }, @@ -80246,6 +80243,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/power/apc{ + areastring = "/area/medical/surgery"; + name = "Surgery APC"; + pixel_y = -26 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, /turf/open/floor/plating, /area/maintenance/port/aft) "dwj" = ( @@ -81359,6 +81364,12 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/engine/engineering) +"fpa" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) "fpY" = ( /turf/closed/wall, /area/crew_quarters/cryopod) @@ -81457,6 +81468,32 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"gtn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics) +"gwW" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) "gEk" = ( /obj/structure/cable/yellow{ icon_state = "2-8" @@ -81519,6 +81556,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/security/vacantoffice) +"hny" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/curtain, +/turf/open/floor/plasteel/white/side, +/area/medical/surgery) "hyP" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two" @@ -81766,6 +81808,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, /area/science/circuit) +"kgN" = ( +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/surgery) "krD" = ( /turf/closed/wall, /area/science/circuit) @@ -81982,8 +82033,22 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "lWL" = ( -/obj/machinery/smartfridge/organ/preloaded, -/turf/closed/wall, +/obj/machinery/computer/med_data{ + dir = 8 + }, +/obj/structure/window{ + dir = 4 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = -30 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, /area/medical/surgery) "lWY" = ( /obj/machinery/door/airlock/hatch{ @@ -82057,6 +82122,10 @@ }, /turf/open/floor/wood, /area/security/vacantoffice) +"mqC" = ( +/obj/structure/lattice, +/turf/closed/wall, +/area/maintenance/port/aft) "mvj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -82110,6 +82179,10 @@ icon_state = "panelscorched" }, /area/maintenance/port/aft) +"nho" = ( +/obj/item/latexballon, +/turf/open/floor/plating, +/area/maintenance/port/aft) "nhy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -82265,6 +82338,12 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"oeQ" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/aft) "ohj" = ( /obj/item/integrated_electronics/analyzer, /obj/item/integrated_electronics/debugger, @@ -82519,6 +82598,16 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"qee" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) "qhe" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -82627,6 +82716,16 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) +"reM" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) "roa" = ( /obj/structure/chair/stool, /obj/machinery/light/small{ @@ -82650,6 +82749,13 @@ }, /turf/open/floor/plating, /area/hallway/secondary/entry) +"rvd" = ( +/obj/structure/rack, +/obj/item/flashlight, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/port/aft) "rzX" = ( /obj/structure/chair/office/light{ dir = 1; @@ -82780,6 +82886,17 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) +"sBC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/paramedic) +"sCN" = ( +/obj/item/clothing/suit/ianshirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) "sFv" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -82954,6 +83071,13 @@ /obj/item/flashlight, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"umv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) "upN" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -83074,6 +83198,14 @@ }, /turf/open/floor/wood, /area/security/vacantoffice) +"vwZ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general{ + color = "#0000ff" + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/medical/surgery) "vxG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -100807,7 +100939,7 @@ cwi dux dux dux -aaa +dux aaa cBR cCK @@ -101062,10 +101194,10 @@ cuf cvk cwh bXE +bXE dvq dux aaa -aaa cBR cBR cDE @@ -101318,10 +101450,10 @@ chZ chZ cvl cbx +cfD ceu dux -dux -aaf +mqC aaa aaa cBR @@ -101568,7 +101700,7 @@ cia cia cia cia -cpT +cDP cia cia cia @@ -101576,11 +101708,11 @@ ceu dyg dvt bXE +bXE dvE dux aaf aaf -aaf dBN cDG cEJ @@ -101823,21 +101955,21 @@ cia cjw ckU cmk -cnm +cnt coy -cpU +cUH crj csj cia cug dyg +bXE dDw bXE -cNg +rvd dux aaa aaa -aaa cBR cDH cEK @@ -102076,25 +102208,25 @@ bXE cer dux dwb -cib -cjx -ckV +cia +cjC +cla cml -cnn +cnt coz -coz -crk +cUH +crq csk cia cuh cvm cDK -cxc +ceu cxR +oeQ dux aaa aaa -aaa dBN cDI cEL @@ -102333,11 +102465,11 @@ bXE bYJ dux dwe +cia +cjB +cpT cic -cjy -ckW -cmk -cno +cnr coA cUH crl @@ -102346,12 +102478,12 @@ cia ceu ceu dyg +ceu dux dux dux aaa aaa -aaa cBR cDJ cEM @@ -102590,25 +102722,25 @@ dvt dux dux dwb -cic +cia cjz ckX cmm cnp coB -coB +vwZ crm csm cia -cui +dux cwj -dyg +cNg +ceu dux -cxS +nho dux aaf aaf -aaf cBR cBR cBR @@ -102847,23 +102979,23 @@ cdi dux cdl dwb -cic -cjA -ckY -cmk +cia +cnm +cia +cid cnq coC cpW crn csn -cia -cdl -cMm -cMo +cui dux -cxT +cxS +cNf +fpa +dux +sCN dux -aaa aaa aaa aaf @@ -103104,25 +103236,25 @@ dux dux cfD dwb -cic cia +cib ckZ -cia -cia -cia +cjA +kgN +coB cpX cia lWL cia -ceu +cia dyg +bXE dyw dux -cxS +nho dux aaa aaa -aaa aaf aaa aaa @@ -103361,20 +103493,20 @@ cdj cse cdj cgL -cid +cia cjB -cla -cmk +cro +ckY cnr coD -cpY -cro +cqa +cnt cso +cuj cia -cfD dyj ceu -dux +ceu dux dux dux @@ -103618,18 +103750,18 @@ cdk ceu cfE dwi -cic +cia cjC clb cmn -cns +cnt coE cpZ -coB +hny csp +cwn csr -duH -dyg +cxT ceu cMm cwm @@ -103875,17 +104007,17 @@ dux dux cfF dwj -cic +cia cjD clc -cmk +coG cnt coF -cqa -crq +cEe +cnt csq +cxc cia -dux diM cwm cNf @@ -104132,20 +104264,20 @@ cdl cev cev cgO -cic cia cia cia cia -coG +cia +cia cqb cia cia cia -cuj -cbx +cia +cMo dDw -bXE +gwW cxU cxU czN @@ -104401,7 +104533,7 @@ csr duH bXE cvn -cwn +dvE cxd cxU cyN @@ -104655,9 +104787,9 @@ coI cqd crs css -dux -dux -dux +cvp +cvp +cvp cxU cxU cxU @@ -108773,7 +108905,7 @@ cvA cwB cxt cyg -cyZ +reM cAd ctA dbr @@ -109285,10 +109417,10 @@ ctA ctA ctA ctA -cxv -cyi ctA ctA +cym +ctA ctA cCi cCW @@ -109538,12 +109670,12 @@ coV cqt cga cKJ -ctB +cyl cuw cvC cwD cxw -cyj +cyl czb cAf cBc @@ -110052,18 +110184,18 @@ coX cnL cga cbC -ctB +cyl cuy cvE -ctB +cxv cxy cyl czd -cAg +gtn ctB cCe cCe -cEe +cCe cEY cCe cCe @@ -110310,11 +110442,11 @@ coY cga csI ctD -cuz cvF -ctB -ctB -cym +sBC +cyl +cyi +cyl cze ctB cBd @@ -110825,18 +110957,18 @@ crG csK ctF car -car +czg car cxA car -czg +car cAi ctF car car -czg -cFb car +cFb +czg car cHO cIF @@ -111082,7 +111214,7 @@ crH csL ctG cgc -cvG +qee chh cxB cyo @@ -111093,7 +111225,7 @@ cCm cpa cEh cFc -chh +umv chh cvG cIG diff --git a/code/__DEFINES/loadout.dm b/code/__DEFINES/loadout.dm index 7fe5fa4876..ecd043a66a 100644 --- a/code/__DEFINES/loadout.dm +++ b/code/__DEFINES/loadout.dm @@ -55,6 +55,9 @@ //donator items #define LOADOUT_CATEGORY_DONATOR "Donator" +//unlockable items +#define LOADOUT_CATEGORY_UNLOCKABLE "Unlockable" + //how many prosthetics can we have #define MAXIMUM_LOADOUT_PROSTHETICS 2 diff --git a/code/__DEFINES/species.dm b/code/__DEFINES/species.dm index efd715b85a..74ca459fa1 100644 --- a/code/__DEFINES/species.dm +++ b/code/__DEFINES/species.dm @@ -5,6 +5,7 @@ #define SPECIES_ANDROID "android" #define SPECIES_ANGEL "angel" #define SPECIES_MAMMAL "mammal" + #define SPECIES_MAMMAL_SYNTHETIC "mammal_synthetic" #define SPECIES_ARACHNID "arachnid" #define SPECIES_INSECT "insect" #define SPECIES_DULLAHAN "dullahan" diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 583427cab7..76ca97cd3a 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -86,10 +86,6 @@ if (CONFIG_GET(flag/log_attack)) WRITE_LOG(GLOB.world_attack_log, "ATTACK: [text]") -/proc/log_wounded(text) - if (CONFIG_GET(flag/log_attack)) - WRITE_LOG(GLOB.world_attack_log, "WOUND: [text]") - /proc/log_manifest(ckey, datum/mind/mind,mob/body, latejoin = FALSE) if (CONFIG_GET(flag/log_manifest)) WRITE_LOG(GLOB.world_manifest_log, "[ckey] \\ [body.real_name] \\ [mind.assigned_role] \\ [mind.special_role ? mind.special_role : "NONE"] \\ [latejoin ? "LATEJOIN":"ROUNDSTART"]") diff --git a/code/_globalvars/lists/loadout_categories.dm b/code/_globalvars/lists/loadout_categories.dm index 0f0ac52214..4a61a94dc7 100644 --- a/code/_globalvars/lists/loadout_categories.dm +++ b/code/_globalvars/lists/loadout_categories.dm @@ -9,5 +9,6 @@ GLOBAL_LIST_INIT(loadout_categories, list( LOADOUT_CATEGORY_SHOES = LOADOUT_SUBCATEGORIES_NONE, LOADOUT_CATEGORY_GLOVES = LOADOUT_SUBCATEGORIES_NONE, LOADOUT_CATEGORY_GLASSES = LOADOUT_SUBCATEGORIES_NONE, - LOADOUT_CATEGORY_DONATOR = LOADOUT_SUBCATEGORIES_NONE + LOADOUT_CATEGORY_DONATOR = LOADOUT_SUBCATEGORIES_NONE, + LOADOUT_CATEGORY_UNLOCKABLE = LOADOUT_SUBCATEGORIES_NONE )) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 4963e33cc3..779ee2fbac 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -698,6 +698,8 @@ SUBSYSTEM_DEF(job) if(polychromic && istype(polychromic)) var/list/polychromic_entry = polychromic.colors_by_atom[I] if(polychromic_entry) + if(polychromic.suits_with_helmet_typecache[I.type]) //is this one of those toggleable hood/helmet things? + polychromic.connect_helmet(I,i[LOADOUT_COLOR]) polychromic.colors_by_atom[I] = i[LOADOUT_COLOR] I.update_icon() else diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm index 753adf7ff4..dae685b08f 100644 --- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm @@ -72,6 +72,52 @@ category = CAT_WEAPONRY subcategory = CAT_MELEE +/datum/crafting_recipe/bokken + name = "Training Bokken" + result = /obj/item/melee/bokken + tools = list(TOOL_SCREWDRIVER) + reqs = list(/obj/item/bokken_blade = 1, + /obj/item/bokken_hilt = 1, + /obj/item/stack/sheet/cloth = 2, + /obj/item/stack/sheet/leather = 1) + time = 60 + category = CAT_WEAPONRY + subcategory = CAT_MELEE + +/datum/crafting_recipe/bokken_steelwood + name = "Training Bokken" + result = /obj/item/melee/bokken/steelwood + tools = list(TOOL_SCREWDRIVER) + reqs = list(/obj/item/bokken_steelblade = 1, + /obj/item/bokken_hilt = 1, + /obj/item/stack/sheet/cloth = 2, + /obj/item/stack/sheet/leather = 1) + time = 60 + category = CAT_WEAPONRY + subcategory = CAT_MELEE + +/datum/crafting_recipe/wakibokken + name = "Training Wakizashi Bokken" + result = /obj/item/melee/bokken/waki + tools = list(TOOL_SCREWDRIVER) + reqs = list(/obj/item/wakibokken_blade = 1, + /obj/item/bokken_hilt = 1, + /obj/item/stack/sheet/cloth = 1) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_MELEE + +/datum/crafting_recipe/wakibokken_steelwood + name = "Training Wakizashi Steelwood Bokken" + result = /obj/item/melee/bokken/waki/steelwood + tools = list(TOOL_SCREWDRIVER) + reqs = list(/obj/item/wakibokken_steelblade = 1, + /obj/item/bokken_hilt = 1, + /obj/item/stack/sheet/cloth = 1) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_MELEE + /datum/crafting_recipe/bola name = "Bola" result = /obj/item/restraints/legcuffs/bola @@ -434,3 +480,51 @@ time = 20 category = CAT_WEAPONRY subcategory = CAT_PARTS + +// BOKKEN CRAFTING + +/datum/crafting_recipe/bokken_blade + name = "Training Bokken Blade" + result = /obj/item/bokken_blade + tools = list(/obj/item/hatchet) + reqs = list(/obj/item/stack/sheet/mineral/wood = 5) + time = 20 + category = CAT_WEAPONRY + subcategory = CAT_PARTS + +/datum/crafting_recipe/wakibokken_blade + name = "Training Wakizashi Bokken Blade" + result = /obj/item/wakibokken_blade + tools = list(/obj/item/hatchet) + reqs = list(/obj/item/stack/sheet/mineral/wood = 2) + time = 20 + category = CAT_WEAPONRY + subcategory = CAT_PARTS + +/datum/crafting_recipe/bokken_steelblade + name = "Training Ironwood Bokken Blade" + result = /obj/item/bokken_steelblade + tools = list(/obj/item/hatchet, TOOL_WELDER) + reqs = list(/obj/item/grown/log/steel = 2) + time = 20 + category = CAT_WEAPONRY + subcategory = CAT_PARTS + +/datum/crafting_recipe/wakibokken_blade + name = "Training Wakizashi Ironwood Bokken Blade" + result = /obj/item/wakibokken_steelblade + tools = list(/obj/item/hatchet, TOOL_WELDER) + reqs = list(/obj/item/grown/log/steel = 1) + time = 20 + category = CAT_WEAPONRY + subcategory = CAT_PARTS + +/datum/crafting_recipe/bokken_hilt + name = "Training Bokken hilt" + result = /obj/item/bokken_hilt + tools = list(/obj/item/hatchet) + reqs = list(/obj/item/stack/sheet/mineral/wood = 5, + /obj/item/stack/sheet/cloth = 2) + time = 20 + category = CAT_WEAPONRY + subcategory = CAT_PARTS diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm index 600bf9250e..5e888e0609 100644 --- a/code/datums/elements/polychromic.dm +++ b/code/datums/elements/polychromic.dm @@ -165,6 +165,15 @@ /datum/element/polychromic/proc/on_examine(atom/source, mob/user, list/examine_list) examine_list += "Alt-click to recolor it." +/datum/element/polychromic/proc/connect_helmet(atom/I, var/applycolor) + if(isitem(I)) + if(istype(I,/obj/item/clothing/suit/hooded)) + var/obj/item/clothing/suit/hooded/Isuit = I + colors_by_atom[Isuit.hood] = applycolor + else if(istype(I,/obj/item/clothing/suit/space/hardsuit)) + var/obj/item/clothing/suit/space/hardsuit/Isuit = I + colors_by_atom[Isuit.helmet] = applycolor + /datum/element/polychromic/proc/register_helmet(atom/source, obj/item/clothing/head/H) if(!isitem(H)) //backup in case if it messes up somehow if(istype(source,/obj/item/clothing/suit/hooded)) //so how come it be like this, where toggleable headslots are named separately (helmet/hood) anyways? diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index 1eec1ba7fd..edd2047bd6 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -1123,6 +1123,10 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "Research Division Server Room" icon_state = "server" +/area/science/server/compcore + name = "Computer Core" + icon_state = "server" + /area/science/explab name = "Experimentation Lab" icon_state = "toxmisc" diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index c3127c246f..86d7766fd5 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -16,9 +16,9 @@ GLOBAL_LIST_EMPTY(power_sinks) throw_speed = 1 throw_range = 2 custom_materials = list(/datum/material/iron=750) - var/drain_rate = 1600000 // amount of power to drain per tick + var/drain_rate = 2000000 // amount of power to drain per tick. Currently 2MJ. var/power_drained = 0 // has drained this much power - var/max_power = 1e10 // maximum power that can be drained before exploding + var/max_power = 2000000000 // maximum power that can be drained before exploding. Currently 2GJ. About 17 minutes to explode at the max rate. var/mode = 0 // 0 = off, 1=clamped (off), 2=operating var/admins_warned = FALSE // stop spam, only warn the admins once that we are about to boom @@ -155,5 +155,5 @@ GLOBAL_LIST_EMPTY(power_sinks) if(power_drained >= max_power) STOP_PROCESSING(SSobj, src) - explosion(src.loc, 4,8,16,32) + explosion(src.loc, 3,7,14,28) qdel(src) diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm index 01ef96b7e8..62a3530afe 100644 --- a/code/game/objects/items/mop.dm +++ b/code/game/objects/items/mop.dm @@ -24,13 +24,17 @@ create_reagents(mopcap, NONE, NO_REAGENTS_VALUE) -/obj/item/mop/proc/clean(turf/A) +/obj/item/mop/proc/clean(turf/A, mob/user) if(reagents.has_reagent(/datum/reagent/water, 1) || reagents.has_reagent(/datum/reagent/water/holywater, 1) || reagents.has_reagent(/datum/reagent/consumable/ethanol/vodka, 1) || reagents.has_reagent(/datum/reagent/space_cleaner, 1)) SEND_SIGNAL(A, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM) A.clean_blood() + var/cleaned_something = FALSE for(var/obj/effect/O in A) if(is_cleanable(O)) + cleaned_something = TRUE qdel(O) + if(cleaned_something && user && user.client) + user.client.increment_progress("janitor", 1) reagents.reaction(A, TOUCH, 10) //Needed for proper floor wetting. reagents.remove_any(1) //reaction() doesn't use up the reagents @@ -59,7 +63,7 @@ if(!L.UseStaminaBuffer(stamusage, warn = TRUE)) return user.visible_message("[user] cleans \the [T] with [src].", "You clean \the [T] with [src].") - clean(T) + clean(T, user) user.DelayNextAction(CLICK_CD_MELEE) user.do_attack_animation(T, used_item = src) playsound(T, "slosh", 50, 1) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 8526727464..c0fd65bd28 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -253,7 +253,6 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("painting frame", /obj/item/wallframe/painting, 1, time = 10),\ new/datum/stack_recipe("wooden buckler", /obj/item/shield/riot/buckler, 20, time = 40), \ new/datum/stack_recipe("baseball bat", /obj/item/melee/baseball_bat, 5, time = 15),\ - new/datum/stack_recipe("training bokken", /obj/item/melee/bokken, 10, time = 15),\ null, \ new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index abd862736b..80818b5fff 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -802,7 +802,8 @@ . += "Alt-click it to quickly draw the blade." /obj/item/storage/belt/sabre/PopulateContents() - new starting_sword(src) + if(starting_sword) + new starting_sword(src) /obj/item/storage/belt/sabre/rapier name = "rapier sheath" @@ -864,6 +865,7 @@ var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_items = 2 STR.max_w_class = WEIGHT_CLASS_BULKY + WEIGHT_CLASS_NORMAL //katana and waki. + STR.max_combined_w_class = 7 /obj/item/melee/smith/twohand/katana/on_exit_storage(datum/component/storage/S) var/obj/item/storage/belt/sabre/twin/B = S.parent diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 3f2dc2506a..07900d6bbf 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -296,8 +296,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK w_class = WEIGHT_CLASS_BULKY - force = 7 //how much harm mode damage we do - var/stamina_damage_increment = 4 //how much extra damage do we do when in non-harm mode + force = 10 //how much harm mode damage we do + var/stamina_damage_increment = 5 //how much extra damage do we do when in non-harm mode throwforce = 10 damtype = STAMINA attack_verb = list("whacked", "smacked", "struck") @@ -310,11 +310,13 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 var/quick_parry = FALSE // false = default parry, true = really small parry window item_flags = ITEM_CAN_PARRY block_parry_data = /datum/block_parry_data/bokken + var/default_parry_data = /datum/block_parry_data/bokken + var/quick_parry_data = /datum/block_parry_data/bokken/quick_parry bare_wound_bonus = 0 wound_bonus = 0 /datum/block_parry_data/bokken // fucked up parry data, emphasizing quicker, shorter parries - parry_stamina_cost = 8 // be wise about when you parry, though, else you won't be able to fight enough to make it count + parry_stamina_cost = 10 // be wise about when you parry, though, else you won't be able to fight enough to make it count parry_time_windup = 0 parry_time_active = 10 // small parry window parry_time_spindown = 0 @@ -330,11 +332,11 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 ) parry_failed_stagger_duration = 3 SECONDS parry_data = list( - PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5, // 7*2.5 = 17.5, 8*2.5 = 20, 9*2.5 = 22.5, 10*2.5 = 25 + PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5, // 10*2.5 = 25, 11*2.5 = 27.5, 12*2.5 = 30, 13*2.5 = 32.5 ) /datum/block_parry_data/bokken/quick_parry // emphasizing REALLY SHORT PARRIES - parry_stamina_cost = 6 // still more costly than most parries, but less than a full bokken parry + parry_stamina_cost = 8 // still more costly than most parries, but less than a full bokken parry parry_time_active = 5 // REALLY small parry window parry_time_perfect = 2.5 // however... parry_time_perfect_leeway = 2 // the entire time, the parry is perfect @@ -371,9 +373,9 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 . = ..() quick_parry = !quick_parry if(quick_parry) - block_parry_data = /datum/block_parry_data/bokken/quick_parry + block_parry_data = quick_parry_data else - block_parry_data = /datum/block_parry_data/bokken + block_parry_data = default_parry_data to_chat(user, "[src] is now [quick_parry ? "emphasizing shorter parries, forcing you to riposte or be staggered" : "emphasizing longer parries, with a shorter window to riposte but more forgiving parries"].") /obj/item/melee/bokken/attackby(obj/item/I, mob/living/user, params) @@ -410,23 +412,76 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 if(burnt) . += " Burned into the \"blade\" is [burned_in]." +/obj/item/melee/bokken/steelwood + name = "steelwood bokken" + desc = "A misnomer of sorts, this is effectively a blunt katana made from steelwood, a dense organic wood derived from steelcaps. Why steelwood? Druids can use it. Duh." + icon_state = "bokken_steel" + item_state = "bokken_steel" + force = 12 + stamina_damage_increment = 3 + +/obj/item/melee/bokken/waki + name = "wakizashi bokken" + desc = "A space-Japanese training sword made of wood and shaped like a wakizashi." + icon_state = "wakibokken" + item_state = "wakibokken" + slot_flags = ITEM_SLOT_BELT + w_class = WEIGHT_CLASS_NORMAL + force = 6 + stamina_damage_increment = 4 + block_parry_data = /datum/block_parry_data/bokken/waki + default_parry_data = /datum/block_parry_data/bokken/waki + quick_parry_data = /datum/block_parry_data/bokken/waki/quick_parry + +/datum/block_parry_data/bokken/waki // weaker parries than the bigger variant, but cheaper and faster recovery, like quick parry + parry_stamina_cost = 4 + parry_time_windup = 0 + parry_time_active = 6 + parry_time_spindown = 0 + parry_time_perfect = 1.5 + parry_time_perfect_leeway = 1 + parry_imperfect_falloff_percent = 7.5 + parry_efficiency_to_counterattack = 120 + parry_efficiency_considered_successful = 65 + parry_efficiency_perfect = 120 + parry_efficiency_perfect_override = list( + TEXT_ATTACK_TYPE_PROJECTILE = 30, + ) + parry_failed_stagger_duration = 2 SECONDS + parry_data = list( + PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 1.5, // 6*1.5 = 9, 7*1.5 = 10.5, 8*1.5 = 12, 9*1.5 = 13.5 + ) + +/datum/block_parry_data/bokken/waki/quick_parry //For the parry spammer in you + parry_stamina_cost = 2 // Slam that parry button + parry_time_active = 2.5 + parry_time_perfect = 1 + parry_time_perfect_leeway = 1 + parry_failed_stagger_duration = 1 SECONDS + parry_failed_clickcd_duration = 1 SECONDS + +/datum/block_parry_data/bokken/waki/quick_parry/proj + parry_efficiency_perfect_override = list() + +/obj/item/melee/bokken/waki/steelwood + name = "wakizashi steelwood bokken" + desc = "A misnomer of sorts, this is effectively a blunt wakizashi made from steelwood, a dense organic wood derived from steelcaps. Why steelwood? Druids can use it. Duh." + icon_state = "wakibokken_steel" + item_state = "wakibokken_steel" + force = 8 + stamina_damage_increment = 2 + /obj/item/melee/bokken/debug name = "funny debug parrying stick" desc = "if you see this you've fucked up somewhere my good man" block_parry_data = /datum/block_parry_data/bokken/debug - -/obj/item/melee/bokken/debug/AltClick(mob/user) - quick_parry = !quick_parry - if(quick_parry) - block_parry_data = /datum/block_parry_data/bokken/quick_parry/debug - else - block_parry_data = /datum/block_parry_data/bokken/debug - to_chat(user, "[src] is now [quick_parry ? "emphasizing shorter parries, forcing you to riposte or be staggered" : "emphasizing longer parries, with a shorter window to riposte but more forgiving parries"].") + default_parry_data = /datum/block_parry_data/bokken/debug + quick_parry_data = /datum/block_parry_data/bokken/quick_parry/debug /datum/block_parry_data/bokken/debug parry_efficiency_perfect_override = list() parry_data = list( - PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5, // 7*2.5 = 17.5, 8*2.5 = 20, 9*2.5 = 22.5, 10*2.5 = 25 + PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5, // 10*2.5 = 25, 11*2.5 = 27.5, 12*2.5 = 30, 13*2.5 = 32.5 PARRY_DISARM_ATTACKER = TRUE, PARRY_KNOCKDOWN_ATTACKER = 10, PARRY_STAGGER_ATTACKER = 10, @@ -436,13 +491,63 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /datum/block_parry_data/bokken/quick_parry/debug parry_efficiency_perfect_override = list() parry_data = list( - PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5, // 7*2.5 = 17.5, 8*2.5 = 20, 9*2.5 = 22.5, 10*2.5 = 25 + PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5, // 10*2.5 = 25, 11*2.5 = 27.5, 12*2.5 = 30, 13*2.5 = 32.5 PARRY_DISARM_ATTACKER = TRUE, PARRY_KNOCKDOWN_ATTACKER = 10, PARRY_STAGGER_ATTACKER = 10, PARRY_DAZE_ATTACKER = 10, ) +/// BOKKEN CRAFTNG PIECES + +/obj/item/bokken_blade + name = "training bokken wooden blade" + desc = "The blade piece of a bokken katana." + icon = 'icons/obj/smith.dmi' + icon_state = "bokken" + item_state = "bone_dagger" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/bokken_steelblade + name = "training bokken steelwood blade" + desc = "The blade piece of a steelwood bokken katana." + icon = 'icons/obj/smith.dmi' + icon_state = "bokken_steel" + item_state = "switchblade_ext" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/wakibokken_blade + name = "training bokken wooden wakizashi blade" + desc = "The blade piece of a bokken wakizashi." + icon = 'icons/obj/smith.dmi' + icon_state = "wakibokken" + item_state = "bone_dagger" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/wakibokken_steelblade + name = "training bokken steelwood wakizashi blade" + desc = "The blade piece of a steelwood bokken katana." + icon = 'icons/obj/smith.dmi' + icon_state = "wakibokken_steel" + item_state = "switchblade_ext" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/bokken_hilt + name = "training bokken hilt" + desc = "The hilt piece of a bokken. This hilt is appropriate for any potential blade length or material." + icon = 'icons/obj/smith.dmi' + icon_state = "bokken_hilt" + item_state = "bone_dagger" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' /obj/item/wirerod name = "wired rod" diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index c36fba96cb..e718bce620 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -243,7 +243,7 @@ LINEN BINS /obj/item/bedsheet/random/Initialize() ..() - var/type = pick(typesof(/obj/item/bedsheet) - list(/obj/item/bedsheet/random, /obj/item/bedsheet/chameleon)) + var/type = pick(typesof(/obj/item/bedsheet) - (list(/obj/item/bedsheet/random, /obj/item/bedsheet/chameleon) + typesof(/obj/item/bedsheet/unlockable))) new type(loc) return INITIALIZE_HINT_QDEL @@ -257,9 +257,32 @@ LINEN BINS chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/bedsheet chameleon_action.chameleon_name = "Bedsheet" - chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/bedsheet/chameleon, /obj/item/bedsheet/random), only_root_path = TRUE) + chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/bedsheet/chameleon, /obj/item/bedsheet/random, /obj/item/bedsheet/unlockable), only_root_path = FALSE) chameleon_action.initialize_disguises() +//unlockable bedsheets +/obj/item/bedsheet/unlockable + name = "unlockable bedsheet" + desc = "this shouldn't be here!" + +//janitor: clean 100 messes with mop as janitor +/obj/item/bedsheet/unlockable/janitor + name = "janitor bedsheet" + desc = "A white bedsheet, with a warning sign on the front." + icon_state = "sheetjanitor" + +//cook: use microwave 100 times properly (contents must make one good item) as cook +/obj/item/bedsheet/unlockable/cook + name = "cook bedsheet" + desc = "A grey bedsheet, with a microwave on the front." + icon_state = "sheetcook" + +//miner: redeem 100,000 mining points +/obj/item/bedsheet/unlockable/miner + name = "miner bedsheet" + desc = "A red and black bedsheet. It seems to be made with goliath hide." + icon_state = "sheetminer" + //bedsheet bin /obj/structure/bedsheetbin name = "linen bin" diff --git a/code/modules/arousal/organs/penis.dm b/code/modules/arousal/organs/penis.dm index 5a451359f3..a8e95673ae 100644 --- a/code/modules/arousal/organs/penis.dm +++ b/code/modules/arousal/organs/penis.dm @@ -40,17 +40,18 @@ var/rounded_length = round(length) var/new_size var/enlargement = FALSE + var/max_D = CONFIG_GET(number/penis_max_inches_prefs) switch(rounded_length) if(0 to 6) //If modest size new_size = 1 if(7 to 11) //If large new_size = 2 - if(12 to 20) //If massive + if(12 to max_D) //If massive new_size = 3 - if(21 to 34) //If massive and due for large effects + if(max_D + 1 to max_D+13) //If massive and due for large effects, modified in case some server owner running recent citcode decides to be insane with dick sizes in the config new_size = 3 enlargement = TRUE - if(35 to INFINITY) //If comical + if(max_D+14 to INFINITY) //If comical new_size = 4 //no new sprites for anything larger yet enlargement = TRUE if(owner) diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index 6a4165f840..58cae36015 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -90,6 +90,18 @@ crate_name = "medical hardsuit" crate_type = /obj/structure/closet/crate/secure/medical +/datum/supply_pack/medical/paramedicevasuit + name = "Paramedic EVA Suit" + desc = "Greytide pushing up daisies with the carp outside the station? Chemistry vented in a meth experiment gone wrong? Be the blue saviour this station desperately needs and get your Paramedical EVA suit today! Requires medical access to open." + cost = 1975 + access = ACCESS_MEDICAL + contains = list(/obj/item/tank/internals/emergency_oxygen, + /obj/item/clothing/head/helmet/space/eva/paramedic, + /obj/item/clothing/suit/space/eva/paramedic, + /obj/item/clothing/mask/breath) + crate_name = "paramedic EVA suit" + crate_type = /obj/structure/closet/crate/secure/medical + /datum/supply_pack/medical/supplies name = "Medical Supplies Crate" desc = "Contains seven beakers, syringes, and bodybags. Three morphine bottles, four insulin pills. Two charcoal bottles, epinephrine bottles, antitoxin bottles, and large beakers. Finally, a single roll of medical gauze, as well as a bottle of stimulant pills for long, hard work days. German doctor not included." diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 617d4a1d72..c298d150f8 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -1024,3 +1024,25 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( verb_tabs |= verb_to_init.category verblist[++verblist.len] = list(verb_to_init.category, verb_to_init.name) src << output("[url_encode(json_encode(verb_tabs))];[url_encode(json_encode(verblist))]", "statbrowser:init_verbs") + +//increment progress for an unlockable loadout item +/client/proc/increment_progress(key, amount) + if(prefs) + var/savefile/S = new /savefile(prefs.path) + var/list/unlockable_loadout_data = prefs.unlockable_loadout_data + if(!length(unlockable_loadout_data)) + unlockable_loadout_data = list() + unlockable_loadout_data[key] = amount + WRITE_FILE(S["unlockable_loadout"], safe_json_encode(unlockable_loadout_data)) + prefs.unlockable_loadout_data = unlockable_loadout_data + return TRUE + else + if(unlockable_loadout_data[key]) + unlockable_loadout_data[key] += amount + else + unlockable_loadout_data[key] = amount + WRITE_FILE(S["unlockable_loadout"], safe_json_encode(unlockable_loadout_data)) + prefs.unlockable_loadout_data = unlockable_loadout_data + return TRUE + return FALSE + diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index e97f6dc3f4..7c6ba30b80 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -198,6 +198,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/gear_points = 10 var/list/gear_categories var/list/loadout_data = list() + var/list/unlockable_loadout_data = list() var/loadout_slot = 1 //goes from 1 to MAXIMUM_LOADOUT_SAVES var/gear_category var/gear_subcategory @@ -907,12 +908,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) loadout_color_non_poly = loadout_item[LOADOUT_COLOR][1] extra_color_data += "
Color" extra_color_data += "   " - else if(gear_points <= 0) + else if((gear_points - gear.cost) < 0) class_link = "style='white-space:normal;' class='linkOff'" else if(donoritem) class_link = "style='white-space:normal;background:#ebc42e;' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=1'" - else + else if(!istype(gear, /datum/gear/unlockable) || can_use_unlockable(gear)) class_link = "style='white-space:normal;' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=1'" + else + class_link = "style='white-space:normal;background:#eb2e2e;' class='linkOff'" dat += "[name][extra_color_data]" dat += "[gear.cost]" if(islist(gear.restricted_roles)) @@ -925,7 +928,16 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" dat += gear.restricted_roles.Join(";") dat += "" - dat += "[gear.description]" + if(!istype(gear, /datum/gear/unlockable)) + dat += "[gear.description]" + else + //we add the user's progress to the description assuming they have progress + var/datum/gear/unlockable/unlockable = gear + var/progress_made = unlockable_loadout_data[unlockable.progress_key] + if(!progress_made) + progress_made = 0 + dat += "[gear.description] Progress: [min(progress_made, unlockable.progress_required)]/[unlockable.progress_required]" + dat += "" if(4) // Content preferences dat += "
" @@ -2675,6 +2687,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(G.donoritem && !G.donator_ckey_check(user.ckey)) to_chat(user, "This is an item intended for donator use only. You are not authorized to use this item.") return + if(istype(G, /datum/gear/unlockable) && !can_use_unlockable(G)) + to_chat(user, "To use this item, you need to meet the defined requirements!") + return if(gear_points >= initial(G.cost)) var/list/new_loadout_data = list(LOADOUT_ITEM = "[G.type]") if(length(G.loadout_initial_colors)) @@ -2960,6 +2975,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(find_gear) loadout_data["SAVE_[save_slot]"] -= list(find_gear) +/datum/preferences/proc/can_use_unlockable(datum/gear/unlockable/unlockable_gear) + if(unlockable_loadout_data[unlockable_gear.progress_key] >= unlockable_gear.progress_required) + return TRUE + return FALSE + #undef DEFAULT_SLOT_AMT #undef HANDS_SLOT_AMT #undef BACKPACK_SLOT_AMT diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 86f7622a93..0db9fbb66c 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 47 +#define SAVEFILE_VERSION_MAX 48 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -285,6 +285,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["loadout"] = safe_json_encode(loadout_data) + if(current_version < 48) //unlockable loadout items but we need to clear bad data from a mistake + S["unlockable_loadout"] = list() + /datum/preferences/proc/load_path(ckey,filename="preferences.sav") if(!ckey) return @@ -427,6 +430,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car verify_keybindings_valid() // one of these days this will runtime and you'll be glad that i put it in a different proc so no one gets their saves wiped + if(S["unlockable_loadout"]) + unlockable_loadout_data = safe_json_decode(S["unlockable_loadout"]) + else + unlockable_loadout_data = list() + if(needs_update >= 0) //save the updated version var/old_default_slot = default_slot var/old_max_save_slots = max_save_slots @@ -532,6 +540,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["auto_ooc"], auto_ooc) WRITE_FILE(S["no_tetris_storage"], no_tetris_storage) + if(length(unlockable_loadout_data)) + WRITE_FILE(S["unlockable_loadout"], safe_json_encode(unlockable_loadout_data)) + else + WRITE_FILE(S["unlockable_loadout"], safe_json_encode(list())) + return 1 /datum/preferences/proc/load_character(slot, bypass_cooldown = FALSE) @@ -736,7 +749,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car belly_prefs = json_from_file["belly_prefs"] //gear loadout - loadout_data = safe_json_decode(S["loadout"]) + if(S["loadout"]) + loadout_data = safe_json_decode(S["loadout"]) + else + loadout_data = list() //try to fix any outdated data if necessary //preference updating will handle saving the updated data for us. diff --git a/code/modules/clothing/under/jobs/civilian/civilian.dm b/code/modules/clothing/under/jobs/civilian/civilian.dm index 505aa91775..2eabb0ce35 100644 --- a/code/modules/clothing/under/jobs/civilian/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian/civilian.dm @@ -24,7 +24,7 @@ mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON /obj/item/clothing/under/rank/civilian/util - name = "generic utility uniform" + name = "utility uniform" desc = "A utility uniform worn by various crew." icon_state = "utilgen" item_state = "utilgen" diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm index 8a6c372272..cc07665063 100644 --- a/code/modules/clothing/under/jobs/command.dm +++ b/code/modules/clothing/under/jobs/command.dm @@ -3,11 +3,12 @@ name = "captain's jumpsuit" icon_state = "captain" item_state = "b_suit" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 15) sensor_mode = SENSOR_COORDS random_sensor = FALSE /obj/item/clothing/under/rank/captain/util - name = "Command Utiltiy Uniform" + name = "command utility uniform" desc = "A utility uniform for command personnel." icon_state = "utilcom" item_state = "utilcom" @@ -26,7 +27,6 @@ /obj/item/clothing/under/rank/captain/suit name = "captain's suit" desc = "A green suit and yellow necktie. Exemplifies authority." - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 15) icon_state = "green_suit" item_state = "dg_suit" can_adjust = FALSE diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index de285b0470..20fd34f4a0 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -131,7 +131,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 5) /obj/item/clothing/under/rank/medical/doctor/util - name = "Medical Utility Uniform" + name = "medical utility uniform" desc = "Utility jumpsuit for medical personnel" icon_state = "utilmed" item_state = "utilmed" diff --git a/code/modules/clothing/under/jobs/rnd.dm b/code/modules/clothing/under/jobs/rnd.dm index 7443cd9d39..d63e81a0a3 100644 --- a/code/modules/clothing/under/jobs/rnd.dm +++ b/code/modules/clothing/under/jobs/rnd.dm @@ -62,7 +62,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 5) /obj/item/clothing/under/rank/rnd/scientist/util - name = "Science Utility Uniform" + name = "science utility uniform" desc = "A utility uniform for science personnel" icon_state = "utilsci" item_state = "utilsci" diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index d9e3bc6165..6bdf3cff8e 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -195,7 +195,7 @@ /obj/machinery/microwave/AltClick(mob/user) . = ..() if(user.canUseTopic(src, !hasSiliconAccessInArea(user))) - cook() + cook(user) return TRUE /obj/machinery/microwave/ui_interact(mob/user) @@ -226,7 +226,7 @@ if("eject") eject() if("use") - cook() + cook(user) if("examine") examine(user) @@ -236,7 +236,7 @@ AM.forceMove(drop_location()) ingredients.Cut() -/obj/machinery/microwave/proc/cook() +/obj/machinery/microwave/proc/cook(mob/user) if(stat & (NOPOWER|BROKEN)) return if(operating || broken > 0 || panel_open || !anchored || dirty == 100) @@ -257,7 +257,7 @@ start_can_fail() return break - start() + start(user) /obj/machinery/microwave/proc/turn_on() visible_message("\The [src] turns on.", "You hear a microwave humming.") @@ -277,9 +277,9 @@ #define MICROWAVE_MUCK 1 #define MICROWAVE_PRE 2 -/obj/machinery/microwave/proc/start() +/obj/machinery/microwave/proc/start(mob/user) turn_on() - loop(MICROWAVE_NORMAL, 10) + loop(MICROWAVE_NORMAL, 10, user = user) /obj/machinery/microwave/proc/start_can_fail() turn_on() @@ -292,7 +292,7 @@ update_icon() loop(MICROWAVE_MUCK, 4) -/obj/machinery/microwave/proc/loop(type, time, wait = max(12 - 2 * productivity, 2)) // standard wait is 10 +/obj/machinery/microwave/proc/loop(type, time, wait = max(12 - 2 * productivity, 2), mob/user) // standard wait is 10 if(stat & (NOPOWER|BROKEN)) if(type == MICROWAVE_PRE) pre_fail() @@ -300,7 +300,7 @@ if(!time) switch(type) if(MICROWAVE_NORMAL) - loop_finish() + loop_finish(user) if(MICROWAVE_MUCK) muck_finish() if(MICROWAVE_PRE) @@ -308,16 +308,21 @@ return time-- use_power(500) - addtimer(CALLBACK(src, .proc/loop, type, time, wait), wait) + addtimer(CALLBACK(src, .proc/loop, type, time, wait, user), wait) -/obj/machinery/microwave/proc/loop_finish() +/obj/machinery/microwave/proc/loop_finish(mob/user) operating = FALSE var/metal = 0 + var/cooked_food = 0 for(var/obj/item/O in ingredients) - O.microwave_act(src) + var/cooked_result = O.microwave_act(src) + if(!istype(cooked_result, /obj/item/reagent_containers/food/snacks/badrecipe)) + cooked_food += 1 if(O.custom_materials?.len) metal += O.custom_materials[SSmaterials.GetMaterialRef(/datum/material/iron)] + if(cooked_food && user.client) + user.client.increment_progress("cook", cooked_food) if(metal) spark() @@ -336,8 +341,8 @@ spark() after_finish_loop() -/obj/machinery/microwave/proc/pre_success() - loop(MICROWAVE_NORMAL, 10) +/obj/machinery/microwave/proc/pre_success(mob/user) + loop(MICROWAVE_NORMAL, 10, user) /obj/machinery/microwave/proc/muck_finish() visible_message("\The [src] gets covered in muck!") diff --git a/code/modules/mining/point_bank.dm b/code/modules/mining/point_bank.dm index 11f23a5d7c..f18b62635f 100644 --- a/code/modules/mining/point_bank.dm +++ b/code/modules/mining/point_bank.dm @@ -30,6 +30,8 @@ if(points) if(I) I.mining_points += points + if(usr.client) + usr.client.increment_progress("miner", points) points = 0 else to_chat(usr, "No ID detected.") diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 399efc4b29..28d311b034 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -68,7 +68,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/plant name = "Plant Weeds" - desc = "Plants some alien weeds." + desc = "Plants Alien weeds which spread resin which heals any alien. These weeds also regenerate plasma faster. Costs 50 Plasma." plasma_cost = 50 check_turf = TRUE action_icon_state = "alien_plant" @@ -83,7 +83,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/whisper name = "Whisper" - desc = "Whisper to someone." + desc = "Whisper to someone through the hivemind. Costs 10 Plasma." plasma_cost = 10 action_icon_state = "alien_whisper" @@ -143,7 +143,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/acid name = "Corrosive Acid" - desc = "Drench an object in acid, destroying it over time." + desc = "Drench an object in acid, destroying it over time. Costs 200 Plasma." plasma_cost = 200 action_icon_state = "alien_acid" @@ -189,7 +189,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/neurotoxin name = "Spit Neurotoxin" - desc = "Spits neurotoxin at someone, paralyzing them for a short time." + desc = "Activates your Neurotoxin glands. You can shoot paralyzing shots. Each shot costs 50 Plasma." action_icon_state = "alien_neurotoxin_0" active = FALSE @@ -254,7 +254,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/resin name = "Secrete Resin" - desc = "Secrete tough malleable resin." + desc = "Secrete tough malleable resin. Costs 55 Plasma." plasma_cost = 55 check_turf = TRUE var/list/structures = list( diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm index 4ec5780838..796a78d566 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm @@ -20,7 +20,7 @@ /obj/effect/proc_holder/alien/royal/praetorian/evolve name = "Evolve" - desc = "Produce an internal egg sac capable of spawning children. Only one queen can exist at a time." + desc = "Produce an internal egg sac capable of spawning children. Only one queen can exist at a time. Costs 500 Plasma." plasma_cost = 500 action_icon_state = "alien_evolve_praetorian" diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 1200220ce4..91a61efea6 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -57,7 +57,7 @@ //Queen verbs /obj/effect/proc_holder/alien/lay_egg name = "Lay Egg" - desc = "Lay an egg to produce huggers to impregnate prey with." + desc = "Lay an egg to produce huggers to impregnate prey with. Costs 75 Plasma." plasma_cost = 75 check_turf = TRUE action_icon_state = "alien_egg" @@ -77,7 +77,7 @@ //Button to let queen choose her praetorian. /obj/effect/proc_holder/alien/royal/queen/promote name = "Create Royal Parasite" - desc = "Produce a royal parasite to grant one of your children the honor of being your Praetorian." + desc = "Produce a royal parasite to grant one of your children the honor of being your Praetorian. Costs 500 Plasma." plasma_cost = 500 //Plasma cost used on promotion, not spawning the parasite. action_icon_state = "alien_queen_promote" diff --git a/code/modules/mob/living/carbon/human/species_types/anthromorph.dm b/code/modules/mob/living/carbon/human/species_types/anthromorph.dm index 95aec26d9f..d718db818c 100644 --- a/code/modules/mob/living/carbon/human/species_types/anthromorph.dm +++ b/code/modules/mob/living/carbon/human/species_types/anthromorph.dm @@ -18,3 +18,33 @@ species_category = SPECIES_CATEGORY_FURRY allowed_limb_ids = list("mammal","aquatic","avian") + +/datum/species/mammal/synthetic + name = "Synthetic Anthromorph" + id = SPECIES_MAMMAL_SYNTHETIC + + species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR,ROBOTIC_LIMBS,HAS_FLESH,HAS_BONE,WINGCOLOR,HORNCOLOR) + inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM) + inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID|MOB_BEAST + + meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc + gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless) + //Just robo looking parts. + mutant_heart = /obj/item/organ/heart/ipc + mutantlungs = /obj/item/organ/lungs/ipc + mutantliver = /obj/item/organ/liver/ipc + mutantstomach = /obj/item/organ/stomach/ipc + mutanteyes = /obj/item/organ/eyes/ipc + mutantears = /obj/item/organ/ears/ipc + mutanttongue = /obj/item/organ/tongue/robot/ipc + mutant_brain = /obj/item/organ/brain/ipc + + //special cybernetic organ for getting power from apcs + mutant_organs = list(/obj/item/organ/cyberimp/arm/power_cord) + + + attack_verb = "claw" + attack_sound = 'sound/weapons/slash.ogg' + miss_sound = 'sound/weapons/slashmiss.ogg' + + allowed_limb_ids = list("mammal","aquatic","avian", "human") diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 4806813c04..33a2a09b70 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -203,6 +203,15 @@ var/obj/item/I = AM if(I.light_range && I.light_power) disintegrate(I) + else if (isstructure(AM)) + var/obj/structure/S = AM + if(istype(S, /obj/structure/glowshroom) || istype(S, /obj/structure/marker_beacon)) + qdel(S) + visible_message("[S] is disintegrated by [src]!") + else if(AM.light_range && AM.light_power && !(istype(AM, /obj/machinery/power/apc) || istype(AM, /obj/machinery/airalarm))) + var/obj/target_object = AM + target_object.take_damage(force * 5, BRUTE, "melee", 0) + /obj/item/light_eater/proc/disintegrate(obj/item/O) if(istype(O, /obj/item/pda)) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 7a69026922..605f0a2d55 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -508,7 +508,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp if(LOG_EMOTE) colored_message = "(EMOTE) [colored_message]" - var/list/timestamped_message = list("\[[TIME_STAMP("hh:mm:ss", FALSE)]\] [key_name(src)] [loc_name(src)]" = colored_message) + var/list/timestamped_message = list("\[[TIME_STAMP("hh:mm:ss", FALSE)]\] [key_name(src)] [loc_name(src)] (Event #[LAZYLEN(logging[smessage_type])])" = colored_message) logging[smessage_type] += timestamped_message diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index cf49039fde..285ef70433 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -257,9 +257,9 @@ var/amount = text2num(params["amount"]) if(amount == null) amount = text2num(input(usr, - "Max 10. Buffer content will be split evenly.", + "Max 20. Buffer content will be split evenly.", "How many to make?", 1)) - amount = clamp(round(amount), 0, 10) + amount = clamp(round(amount), 0, 20) if (amount <= 0) return FALSE // Get units per item diff --git a/code/modules/research/designs/machine_desings/machine_designs_engi.dm b/code/modules/research/designs/machine_desings/machine_designs_engi.dm index 4f70b6ee78..8908241b83 100644 --- a/code/modules/research/designs/machine_desings/machine_designs_engi.dm +++ b/code/modules/research/designs/machine_desings/machine_designs_engi.dm @@ -104,3 +104,11 @@ build_path = /obj/item/circuitboard/machine/thermomachine category = list ("Engineering Machinery") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/spaceship_navigation_beacon + name = "Machine Design (Bluespace Navigation Gigabeacon)" + desc = "The circuit board for a Bluespace Navigation Gigabeacon." + id = "spaceship_navigation_beacon" + build_path = /obj/item/circuitboard/machine/spaceship_navigation_beacon + category = list ("Teleportation Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE \ No newline at end of file diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 445ce39ce5..66ae54ae9c 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -726,6 +726,32 @@ category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +///////////////////// +/////Synth Organs//// +///////////////////// + +/datum/design/ipc_stomach + name = "IPC cell" + desc = "Effectively the robot equivalent of a stomach, handling power storage." + id = "ipc_stomach" + build_type = PROTOLATHE | MECHFAB + construction_time = 40 + materials = list(/datum/material/iron = 1000, /datum/material/glass = 300, /datum/material/silver = 500, /datum/material/gold = 400) + build_path = /obj/item/organ/stomach/ipc + category = list("Misc", "Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/cyberimp_power_cord + name = "IPC power cord" + desc = "A implant for Robots designed to siphon power from APCs to recharge their own cell." + id = "ci-power-cord" + build_type = PROTOLATHE | MECHFAB + construction_time = 75 + materials = list(/datum/material/iron = 4000, /datum/material/glass = 1500, /datum/material/silver = 1200, /datum/material/gold = 1600, /datum/material/plasma = 1000) + build_path = /obj/item/organ/cyberimp/arm/power_cord + category = list("Misc", "Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + ///////////////////// ///Surgery Designs/// ///////////////////// diff --git a/code/modules/research/techweb/nodes/biotech_nodes.dm b/code/modules/research/techweb/nodes/biotech_nodes.dm index 977f8685d6..3c89f0bbab 100644 --- a/code/modules/research/techweb/nodes/biotech_nodes.dm +++ b/code/modules/research/techweb/nodes/biotech_nodes.dm @@ -5,7 +5,7 @@ display_name = "Biological Technology" description = "What makes us tick." //the MC, silly! prereq_ids = list("base") - design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray","genescanner","chem_pack") + design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray","genescanner","chem_pack", "portable_chem_mixer") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/adv_biotech diff --git a/code/modules/research/techweb/nodes/bluespace_nodes.dm b/code/modules/research/techweb/nodes/bluespace_nodes.dm index b0705a0b76..ae9fdd6485 100644 --- a/code/modules/research/techweb/nodes/bluespace_nodes.dm +++ b/code/modules/research/techweb/nodes/bluespace_nodes.dm @@ -70,7 +70,7 @@ display_name = "Basic Shuttle Research" description = "Research the technology required to create and use basic shuttles." prereq_ids = list("practical_bluespace", "adv_engi") - design_ids = list("shuttle_creator", "engine_plasma", "engine_heater", "shuttle_control", "shuttle_docker") + design_ids = list("shuttle_creator", "engine_plasma", "engine_heater", "shuttle_control", "shuttle_docker","spaceship_navigation_beacon") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) /datum/techweb_node/shuttle_route_upgrade diff --git a/code/modules/research/techweb/nodes/medical_nodes.dm b/code/modules/research/techweb/nodes/medical_nodes.dm index 2c0240f1da..914a6174ab 100644 --- a/code/modules/research/techweb/nodes/medical_nodes.dm +++ b/code/modules/research/techweb/nodes/medical_nodes.dm @@ -80,7 +80,7 @@ display_name = "Upgraded Cybernetic Organs" description = "We have the technology to upgrade him." prereq_ids = list("cyber_organs") - design_ids = list("cybernetic_ears_u", "cybernetic_heart_u", "cybernetic_liver_u", "cybernetic_lungs_u") + design_ids = list("cybernetic_ears_u", "cybernetic_heart_u", "cybernetic_liver_u", "cybernetic_lungs_u", "ipc_stomach") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) /datum/techweb_node/cyber_implants @@ -88,7 +88,7 @@ display_name = "Cybernetic Implants" description = "Electronic implants that improve humans." prereq_ids = list("adv_biotech", "adv_datatheory") - design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-service") + design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-service", "ci-power-cord") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/adv_cyber_implants diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 21a9c6c5d7..36abcb41dc 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -11,6 +11,7 @@ var/list/jumpto_ports = list() //hashset of ports to jump to and ignore for collision purposes var/obj/docking_port/stationary/my_port //the custom docking port placed by this console var/obj/docking_port/mobile/shuttle_port //the mobile docking port of the connected shuttle + var/list/locked_traits = list(ZTRAIT_RESERVED, ZTRAIT_CENTCOM, ZTRAIT_AWAY, ZTRAIT_REEBE) //traits forbided for custom docking var/view_range = 0 var/x_offset = 0 var/y_offset = 0 @@ -186,7 +187,7 @@ var/turf/eyeturf = get_turf(the_eye) if(!eyeturf) return SHUTTLE_DOCKER_BLOCKED - if(z_lock.len && !(eyeturf.z in z_lock)) + if(!eyeturf.z || SSmapping.level_has_any_trait(eyeturf.z, locked_traits)) return SHUTTLE_DOCKER_BLOCKED . = SHUTTLE_DOCKER_LANDING_CLEAR @@ -224,9 +225,9 @@ if(hidden_turf_info) . = SHUTTLE_DOCKER_BLOCKED_BY_HIDDEN_PORT - if(space_turfs_only) + if(length(whitelist_turfs)) var/turf_type = hidden_turf_info ? hidden_turf_info[2] : T.type - if(!ispath(turf_type, /turf/open/space)) + if(!is_type_in_typecache(turf_type, whitelist_turfs)) return SHUTTLE_DOCKER_BLOCKED if(length(whitelist_turfs)) @@ -324,12 +325,25 @@ var/list/L = list() for(var/V in SSshuttle.stationary) if(!V) + stack_trace("SSshuttle.stationary have null entry!") continue var/obj/docking_port/stationary/S = V if(console.z_lock.len && !(S.z in console.z_lock)) continue if(console.jumpto_ports[S.id]) - L[S.name] = S + L["([L.len])[S.name]"] = S + + for(var/V in SSshuttle.beacons) + if(!V) + stack_trace("SSshuttle.beacons have null entry!") + continue + var/obj/machinery/spaceship_navigation_beacon/nav_beacon = V + if(!nav_beacon.z || SSmapping.level_has_any_trait(nav_beacon.z, console.locked_traits)) + break + if(!nav_beacon.locked) + L["([L.len]) [nav_beacon.name] located: [nav_beacon.x] [nav_beacon.y] [nav_beacon.z]"] = nav_beacon + else + L["([L.len]) [nav_beacon.name] locked"] = null playsound(console, 'sound/machines/terminal_prompt.ogg', 25, 0) var/selected = input("Choose location to jump to", "Locations", null) as null|anything in L diff --git a/code/modules/shuttle/spaceship_navigation_beacon.dm b/code/modules/shuttle/spaceship_navigation_beacon.dm new file mode 100644 index 0000000000..f1861e0477 --- /dev/null +++ b/code/modules/shuttle/spaceship_navigation_beacon.dm @@ -0,0 +1,63 @@ +/obj/item/circuitboard/machine/spaceship_navigation_beacon + name = "Bluespace Navigation Gigabeacon (Machine Board)" + build_path = /obj/machinery/spaceship_navigation_beacon + req_components = list() + + +/obj/machinery/spaceship_navigation_beacon + name = "Bluespace Navigation Gigabeacon" + desc = "A device that creates a bluespace anchor that allow ships jump near to it." + icon = 'icons/obj/abductor.dmi' + icon_state = "core" + use_power = IDLE_POWER_USE + idle_power_usage = 0 + density = TRUE + circuit = /obj/item/circuitboard/machine/spaceship_navigation_beacon + + var/locked = FALSE //Locked beacons don't allow to jump to it. + + +/obj/machinery/spaceship_navigation_beacon/Initialize() + . = ..() + SSshuttle.beacons |= src + +obj/machinery/spaceship_navigation_beacon/emp_act() + locked = TRUE + +/obj/machinery/spaceship_navigation_beacon/Destroy() + SSshuttle.beacons -= src + return ..() + +// update the icon_state +/obj/machinery/spaceship_navigation_beacon/update_icon() + if(powered()) + icon_state = "core" + else + icon_state = "core-open" + +/obj/machinery/spaceship_navigation_beacon/power_change() + . = ..() + update_icon() + +/obj/machinery/spaceship_navigation_beacon/multitool_act(mob/living/user, obj/item/multitool/I) + if(panel_open) + var/new_name = "Beacon_[input("Enter the custom name for this beacon", "It be Beacon ..your input..") as text]" + if(new_name && Adjacent(user)) + name = new_name + to_chat(user, "You change beacon name to [name].") + else + locked =!locked + to_chat(user, "You [locked ? "" : "un"]lock [src].") + return TRUE + +/obj/machinery/spaceship_navigation_beacon/examine() + .=..() + . += "Status: [locked ? "LOCKED" : "Stable"] " + +/obj/machinery/spaceship_navigation_beacon/attackby(obj/item/W, mob/user, params) + if(default_deconstruction_screwdriver(user, "core-open", "core", W)) + return + if(default_deconstruction_crowbar(W)) + return + + return ..() \ No newline at end of file diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index cd0ac28daf..2ca7d07e73 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -394,11 +394,10 @@ var/datum/wound/new_wound if(replaced_wound) new_wound = replaced_wound.replace_wound(possible_wound) - log_wound(owner, new_wound, damage, wound_bonus, bare_wound_bonus, base_roll) // dismembering wounds are logged in the apply_wound() for loss wounds since they delete themselves immediately, these will be immediately returned else new_wound = new possible_wound new_wound.apply_wound(src) - log_wound(owner, new_wound, damage, wound_bonus, bare_wound_bonus, base_roll) + log_wound(owner, new_wound, damage, wound_bonus, bare_wound_bonus, base_roll) // dismembering wounds are logged in the apply_wound() for loss wounds since they delete themselves immediately, these will be immediately returned return new_wound // try forcing a specific wound, but only if there isn't already a wound of that severity or greater for that type on this bodypart diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index e15e02f0d5..d10f06b257 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -544,7 +544,7 @@ /obj/item/clothing/glasses/sunglasses/gar/supergar = 1, /obj/item/clothing/gloves/color/captain = 1) refill_canister = /obj/item/vending_refill/wardrobe/cap_wardrobe - payment_department = ACCOUNT_CIV + payment_department = ACCOUNT_SEC default_price = PRICE_ALMOST_EXPENSIVE extra_price = PRICE_ABOVE_EXPENSIVE diff --git a/html/changelogs/AutoChangeLog-pr-13859.yml b/html/changelogs/AutoChangeLog-pr-13859.yml new file mode 100644 index 0000000000..2d6dc5c25a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13859.yml @@ -0,0 +1,4 @@ +author: "timothyteakettle" +delete-after: True +changes: + - rscadd: "adds unlockable loadout items, corresponding category in loadouts, etc" diff --git a/html/changelogs/AutoChangeLog-pr-13932.yml b/html/changelogs/AutoChangeLog-pr-13932.yml new file mode 100644 index 0000000000..955d9f5741 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13932.yml @@ -0,0 +1,4 @@ +author: "shellspeed1" +delete-after: True +changes: + - tweak: "Xenomorph powers now list plasma cost in their description." diff --git a/html/changelogs/AutoChangeLog-pr-13934.yml b/html/changelogs/AutoChangeLog-pr-13934.yml new file mode 100644 index 0000000000..74f8ece6fc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13934.yml @@ -0,0 +1,4 @@ +author: "shellspeed1" +delete-after: True +changes: + - rscadd: "The bluespace navigation gigabeacon design has been added to shuttle research for those wanting to take their ships around space more." diff --git a/html/changelogs/AutoChangeLog-pr-13936.yml b/html/changelogs/AutoChangeLog-pr-13936.yml new file mode 100644 index 0000000000..9b15d2232a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13936.yml @@ -0,0 +1,4 @@ +author: "BlueWildrose" +delete-after: True +changes: + - bugfix: "Polychromic hoodies that were obtained from the loadout have functional colorable hoods now." diff --git a/html/changelogs/AutoChangeLog-pr-13938.yml b/html/changelogs/AutoChangeLog-pr-13938.yml new file mode 100644 index 0000000000..34d76a190b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13938.yml @@ -0,0 +1,4 @@ +author: "timothyteakettle" +delete-after: True +changes: + - rscadd: "anthromorphic synth species" diff --git a/html/changelogs/AutoChangeLog-pr-13940.yml b/html/changelogs/AutoChangeLog-pr-13940.yml new file mode 100644 index 0000000000..60cbcc9a19 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13940.yml @@ -0,0 +1,4 @@ +author: "Chiirno" +delete-after: True +changes: + - rscadd: "Added the paramedics EVA suit as a purchase from the cargo console." diff --git a/html/changelogs/AutoChangeLog-pr-13941.yml b/html/changelogs/AutoChangeLog-pr-13941.yml new file mode 100644 index 0000000000..5a72376ebb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13941.yml @@ -0,0 +1,4 @@ +author: "Chiirno" +delete-after: True +changes: + - bugfix: "Portable Chem Mixer now researchable from biotech node." diff --git a/html/changelogs/AutoChangeLog-pr-13943.yml b/html/changelogs/AutoChangeLog-pr-13943.yml new file mode 100644 index 0000000000..405d6b0d93 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13943.yml @@ -0,0 +1,6 @@ +author: "Hatterhat" +delete-after: True +changes: + - spellcheck: "Utility uniforms now comply with the \"nonproper equipment names\" thing." + - bugfix: "The CapDrobe now allows the captain to get his own clothes for free. Probably." + - tweak: "All captains' clothes now offer 15 woundarmor, up from the 5. Because apparently only the suit and tie and its suitskirt subtype have this wound armor, which is dumb." diff --git a/html/changelogs/AutoChangeLog-pr-13945.yml b/html/changelogs/AutoChangeLog-pr-13945.yml new file mode 100644 index 0000000000..91b8bb9498 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13945.yml @@ -0,0 +1,4 @@ +author: "DeltaFire15" +delete-after: True +changes: + - rscadd: "IPC cells & power cords are now printable after they are researched." diff --git a/html/changelogs/AutoChangeLog-pr-13946.yml b/html/changelogs/AutoChangeLog-pr-13946.yml new file mode 100644 index 0000000000..d7f3e15024 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13946.yml @@ -0,0 +1,4 @@ +author: "Ryll/Shaps" +delete-after: True +changes: + - admin: "Fixed an issue with player logs becoming confused when someone triggers multiple events within one second (like being attacked by two people at the same time) that would cause holes in the logs" diff --git a/html/changelogs/AutoChangeLog-pr-13947.yml b/html/changelogs/AutoChangeLog-pr-13947.yml new file mode 100644 index 0000000000..0388efc701 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13947.yml @@ -0,0 +1,4 @@ +author: "Chiirno" +delete-after: True +changes: + - tweak: "Chem masters can now dispense 20 instances of its outputs instead of 10." diff --git a/html/changelogs/AutoChangeLog-pr-13948.yml b/html/changelogs/AutoChangeLog-pr-13948.yml new file mode 100644 index 0000000000..73c5ba6b1a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13948.yml @@ -0,0 +1,11 @@ +author: "necromanceranne" +delete-after: True +changes: + - rscadd: "Bokken now come in two lengths; full and wakizashi, and two varieties: wood and ironwood. They have different stats for all four." + - rscadd: "Bokken require menu crafting and part construction, as well as more complicated materials." + - tweak: "Bokken (long and short) require wood, cloth and leather to craft with a hatchet and screwdriver." + - tweak: "Ironwood bokken (long and short) require ironcap logs, cloth and leather to craft with a hatchet, screwdriver and welder." + - balance: "Twin sheathes can only fit a pair of blades (longsword + shortsword) or they can fit two shortswords." + - bugfix: "Fixed a twin sheath runtime." + - imageadd: "A lot of bokken related sprites received an overhaul. Added overlay sprites for weapons sheathed in the twin sheathes." + - imageadd: "The extradimensional blade received improved sprites for inhands/back sprites." diff --git a/html/changelogs/AutoChangeLog-pr-13950.yml b/html/changelogs/AutoChangeLog-pr-13950.yml new file mode 100644 index 0000000000..28affe7ebe --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13950.yml @@ -0,0 +1,6 @@ +author: "TripleShades" +delete-after: True +changes: + - rscadd: "New Paramedic Office next to Genetics where the old Genetics Reception used to be +change: Surgery, Surgery Observation, and Recovery Hall layout revamped drastically +change: Maints below Surgery lowered by one tile to recover lost tile space from Surgery expansion" diff --git a/html/changelogs/AutoChangeLog-pr-13951.yml b/html/changelogs/AutoChangeLog-pr-13951.yml new file mode 100644 index 0000000000..fe3ac84523 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13951.yml @@ -0,0 +1,4 @@ +author: "BlueWildrose" +delete-after: True +changes: + - tweak: "You can now have a max-roundstart-dicksize-config inch long johnson before you start suffering blood loss and slowdowns instead of a 20 inch one." diff --git a/html/changelogs/AutoChangeLog-pr-13954.yml b/html/changelogs/AutoChangeLog-pr-13954.yml new file mode 100644 index 0000000000..a8751d66ca --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13954.yml @@ -0,0 +1,6 @@ +author: "EmeraldSundisk" +delete-after: True +changes: + - rscadd: "Adds a new \"Computer Core\" area designation for CogStation" + - bugfix: "Fixes some missing area strings" + - tweak: "Replaces some firelocks with directional ones as to ensure desks/counters can still be accessed" diff --git a/html/changelogs/AutoChangeLog-pr-13955.yml b/html/changelogs/AutoChangeLog-pr-13955.yml new file mode 100644 index 0000000000..1d43dd6b95 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13955.yml @@ -0,0 +1,5 @@ +author: "Chiirno" +delete-after: True +changes: + - tweak: "Nightmare now deals additional damage to most light sources." + - bugfix: "Nightmare now one-shots miners beacons and glowshrooms" diff --git a/html/changelogs/AutoChangeLog-pr-13959.yml b/html/changelogs/AutoChangeLog-pr-13959.yml new file mode 100644 index 0000000000..1303768344 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13959.yml @@ -0,0 +1,6 @@ +author: "necromanceranne" +delete-after: True +changes: + - bugfix: "You can now make all the variants of the bokken." + - bugfix: "Removes a duplicate sprite." + - tweak: "Renames all instances of 'ironwood' to 'steelwood'." diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index 8594af8ec2..caa901a9fd 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index f84e360179..c1404cb044 100644 Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index 276b5c9458..084a2c3649 100644 Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ diff --git a/icons/mob/inhands/weapons/swords_lefthand.dmi b/icons/mob/inhands/weapons/swords_lefthand.dmi index 5ff248de68..ed34177c7b 100644 Binary files a/icons/mob/inhands/weapons/swords_lefthand.dmi and b/icons/mob/inhands/weapons/swords_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi index 0332e60fb5..9f59dbed06 100644 Binary files a/icons/mob/inhands/weapons/swords_righthand.dmi and b/icons/mob/inhands/weapons/swords_righthand.dmi differ diff --git a/icons/obj/bedsheets.dmi b/icons/obj/bedsheets.dmi index 05535334cf..f62dd34c66 100644 Binary files a/icons/obj/bedsheets.dmi and b/icons/obj/bedsheets.dmi differ diff --git a/icons/obj/clothing/belt_overlays.dmi b/icons/obj/clothing/belt_overlays.dmi index cdb2567268..1178588ee7 100644 Binary files a/icons/obj/clothing/belt_overlays.dmi and b/icons/obj/clothing/belt_overlays.dmi differ diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 9b73fa706b..119e612c40 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ diff --git a/icons/obj/smith.dmi b/icons/obj/smith.dmi index a40b9a2b19..dcf4a77131 100644 Binary files a/icons/obj/smith.dmi and b/icons/obj/smith.dmi differ diff --git a/modular_citadel/code/modules/client/loadout/unlockable.dm b/modular_citadel/code/modules/client/loadout/unlockable.dm new file mode 100644 index 0000000000..6e522812b8 --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/unlockable.dm @@ -0,0 +1,30 @@ +/datum/gear/unlockable + category = LOADOUT_CATEGORY_UNLOCKABLE + slot = SLOT_NECK + + var/progress_required //what does our progress need to be to unlock it + var/progress_key //what is the key used to retrieve existing progress for this unlockable + +/datum/gear/unlockable/janitor + name = "Janitor Bedsheet" + description = "Clean 100 messes with a mop to unlock this. It has a warning sign on!" + path = /obj/item/bedsheet/unlockable/janitor + + progress_required = 100 + progress_key = "janitor" + +/datum/gear/unlockable/cook + name = "Cook Bedsheet" + description = "Cook 250 items using the microwave to unlock this. It has a microwave on!" + path = /obj/item/bedsheet/unlockable/cook + + progress_required = 250 + progress_key = "cook" + +/datum/gear/unlockable/miner + name = "Miner Bedsheet" + description = "Redeem a total of 100,000 miner points to unlock this. It's made out of goliath hide!" + path = /obj/item/bedsheet/unlockable/miner + + progress_required = 100000 + progress_key = "miner" \ No newline at end of file diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm index 7403de6215..ac3ef96505 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm @@ -232,7 +232,8 @@ P.Insert(H) P.modify_size(0.1) - if (ISINRANGE_EX(P.length, 20.5, 21) && (H.w_uniform || H.wear_suit)) + var/max_D = CONFIG_GET(number/penis_max_inches_prefs) + if (ISINRANGE_EX(P.length, max_D + 0.5, max_D + 1) && (H.w_uniform || H.wear_suit)) var/target = H.get_bodypart(BODY_ZONE_CHEST) if(!message_spam) to_chat(H, "Your cock begin to strain against your clothes tightly!") diff --git a/tgstation.dme b/tgstation.dme index 2b00eb6b98..71abfdea8e 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3343,6 +3343,7 @@ #include "code\modules\shuttle\shuttle.dm" #include "code\modules\shuttle\shuttle_rotate.dm" #include "code\modules\shuttle\snaxi.dm" +#include "code\modules\shuttle\spaceship_navigation_beacon.dm" #include "code\modules\shuttle\special.dm" #include "code\modules\shuttle\supply.dm" #include "code\modules\shuttle\syndicate.dm" @@ -3609,6 +3610,7 @@ #include "modular_citadel\code\modules\client\loadout\shoes.dm" #include "modular_citadel\code\modules\client\loadout\suit.dm" #include "modular_citadel\code\modules\client\loadout\uniform.dm" +#include "modular_citadel\code\modules\client\loadout\unlockable.dm" #include "modular_citadel\code\modules\client\verbs\who.dm" #include "modular_citadel\code\modules\clothing\neck.dm" #include "modular_citadel\code\modules\clothing\trek.dm" diff --git a/tgui/packages/tgui/interfaces/ChemMaster.js b/tgui/packages/tgui/interfaces/ChemMaster.js index 1a3f4f87bc..1cf66ae0e4 100644 --- a/tgui/packages/tgui/interfaces/ChemMaster.js +++ b/tgui/packages/tgui/interfaces/ChemMaster.js @@ -205,7 +205,7 @@ const PackagingControlsItem = props => { stepPixelSize={15} value={amount} minValue={1} - maxValue={10} + maxValue={20} onChange={onChangeAmount} />