Merge branch 'master' into departmentalclothes

This commit is contained in:
faaaay
2021-07-24 16:31:47 +01:00
committed by GitHub
22 changed files with 198 additions and 41 deletions
@@ -462,12 +462,12 @@
"bnq" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating/asteroid/layenia,/area/layenia)
"bnr" = (/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/turf/open/floor/plasteel/white,/area/medical/virology)
"bnt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/stairs{dir = 4},/area/bridge)
"bnu" = (/obj/machinery/door/airlock/maintenance{dir = 4; name = "Maintenance Access"; req_access_txt = "12"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/port)
"bnu" = (/obj/structure/cable{icon_state = "4-8"},/obj/machinery/door/airlock/public/glass{dir = 4; name = "Art Gallery"},/turf/open/floor/wood,/area/library/lounge)
"bnv" = (/obj/effect/turf_decal/tile/yellow{dir = 4},/obj/structure/reagent_dispensers/water_cooler,/obj/machinery/atmospherics/pipe/simple/purple/hidden{dir = 6},/turf/open/floor/plasteel/checker,/area/engine/atmos)
"bnx" = (/turf/open/floor/wood,/area/maintenance/starboard/aft)
"bnK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/engine/break_room)
"bnR" = (/obj/machinery/atmospherics/pipe/simple/purple/visible{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/camera{c_tag = "Turbine Access"; dir = 4; network = list("turbine")},/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/maintenance/disposal/incinerator)
"boq" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 10},/turf/open/floor/plating,/area/maintenance/port)
"boq" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 10},/turf/open/floor/plasteel/dark,/area/library/lounge)
"bor" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "Mix to Space"},/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/maintenance/disposal/incinerator)
"boO" = (/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red,/obj/structure/chair/comfy/black{dir = 4},/obj/effect/landmark/start/security_officer,/turf/open/floor/plasteel,/area/security/main)
"boR" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/maintenance/disposal/incinerator)
@@ -953,7 +953,7 @@
"cEt" = (/obj/structure/toilet{dir = 1},/obj/item/soap/nanotrasen,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{pixel_y = -1},/turf/open/floor/plasteel/freezer,/area/security/prison)
"cEy" = (/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/obj/machinery/light{pixel_y = -1},/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/crew_quarters/fitness/pool)
"cEC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 5; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 5; name = "air supply pipe"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/junction{dir = 1},/turf/open/floor/plating,/area/maintenance/port)
"cEE" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port)
"cEE" = (/obj/structure/sign/painting/library_private{pixel_y = -24},/obj/machinery/door/window/northright{name = "Library Desk Door"; req_access_txt = "37"},/obj/structure/table/wood/fancy,/turf/open/floor/plasteel/dark,/area/library/lounge)
"cEO" = (/obj/structure/chair/stool,/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 6},/turf/open/floor/plasteel/white,/area/medical/virology)
"cEW" = (/obj/structure/disposalpipe/junction/yjunction{dir = 4},/turf/closed/wall,/area/quartermaster/sorting)
"cFg" = (/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/neutral{dir = 4},/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/hallway/primary/fore)
@@ -1189,7 +1189,7 @@
"dmN" = (/turf/open/floor/plasteel/dark,/area/crew_quarters/bar)
"dmQ" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/red{dir = 8},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{dir = 1; name = "scrubbers pipe"},/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/hallway/primary/port)
"dmR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/turf/open/floor/plasteel,/area/engine/engineering)
"dmU" = (/obj/structure/table,/obj/item/storage/box/lights/mixed{pixel_x = -3; pixel_y = 5},/turf/open/floor/plating,/area/maintenance/port)
"dmU" = (/obj/structure/sign/painting/library_private{pixel_y = -24},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/table/wood/fancy,/turf/open/floor/plasteel/dark,/area/library/lounge)
"dmV" = (/obj/structure/flora/crystal/small/growth{icon_state = "crystalgrowth2"},/turf/open/floor/plating/asteroid/layenia/garden,/area/hallway/primary/aft)
"dmW" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fore)
"dmZ" = (/obj/effect/turf_decal/tile/blue,/obj/effect/turf_decal/tile/blue{dir = 4},/obj/machinery/camera{c_tag = "Medbay South-East"; dir = 8; network = list("ss13","medbay")},/turf/open/floor/plasteel/white,/area/medical/sleeper)
@@ -1217,6 +1217,7 @@
"dpU" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{icon_state = "1-2"},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel/dark,/area/engine/engine_smes)
"dpW" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plasteel,/area/engine/engineering)
"dpZ" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/obj/machinery/meter,/turf/open/floor/plasteel,/area/engine/atmos)
"dqh" = (/obj/machinery/door/airlock/public/glass{name = "Art Gallery"},/turf/open/floor/plasteel/dark,/area/library/lounge)
"dqt" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 8},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/ai)
"dqu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 5; name = "scrubbers pipe"},/turf/open/floor/plasteel,/area/security/prison)
"dqF" = (/obj/structure/table,/obj/item/screwdriver{pixel_y = 16},/obj/item/wirecutters,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/turf/open/floor/plasteel/dark,/area/storage/tech)
@@ -1589,7 +1590,7 @@
"etU" = (/obj/machinery/conveyor{id = "garbage"},/obj/item/trash/raisins,/turf/open/floor/plating,/area/maintenance/disposal)
"eul" = (/obj/structure/cable{icon_state = "4-8"},/obj/structure/cable{icon_state = "1-4"},/obj/structure/cable{icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 5; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 5; name = "scrubbers pipe"},/obj/structure/disposalpipe/segment{dir = 5},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/white/side{dir = 8},/area/crew_quarters/heads/hor)
"eut" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/wood{icon_state = "wood-broken4"},/area/maintenance/port/aft)
"euu" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/machinery/light{dir = 1; pixel_y = 19},/turf/open/floor/plasteel,/area/hallway/primary/aft)
"euu" = (/obj/structure/sign/painting/library_private{pixel_y = -24},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/table/wood/fancy,/turf/open/floor/plasteel/dark,/area/library/lounge)
"euA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/open/floor/plasteel,/area/engine/engineering)
"euB" = (/obj/structure/lattice/catwalk,/obj/machinery/light{dir = 1; pixel_y = 19},/obj/structure/railing{dir = 8},/obj/structure/railing,/turf/open/chasm/cloud,/area/layenia/cloudlayer)
"euL" = (/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/turf/open/floor/plasteel/stairs/left,/area/security/main)
@@ -1714,7 +1715,7 @@
"eLy" = (/obj/machinery/photocopier,/obj/machinery/light{pixel_y = -1},/turf/open/floor/wood,/area/science/research)
"eLA" = (/obj/machinery/gulag_teleporter,/obj/machinery/light{dir = 8; pixel_x = -7; pixel_y = 0},/turf/open/floor/plasteel/dark,/area/security/processing)
"eLG" = (/obj/effect/spawner/structure/window/reinforced,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"},/turf/open/floor/plating,/area/gateway)
"eLI" = (/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/port)
"eLI" = (/obj/structure/cable{icon_state = "4-8"},/obj/structure/sign/painting/library{pixel_y = 28},/turf/open/floor/plasteel/dark,/area/library/lounge)
"eLL" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red{dir = 8},/obj/structure/table,/obj/item/folder/red,/obj/item/pen,/turf/open/floor/plasteel,/area/security/main)
"eMc" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "inc_in"},/obj/structure/sign/warning/vacuum/external{pixel_x = -32},/turf/open/floor/engine/vacuum,/area/science/mixing)
"eMm" = (/turf/closed/wall/r_wall,/area/crew_quarters/toilet/restrooms)
@@ -1897,7 +1898,7 @@
"foo" = (/obj/structure/window{dir = 1},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/machinery/light{dir = 4; pixel_x = 7; pixel_y = 0},/obj/machinery/camera{c_tag = "Arcade East"; dir = 9},/turf/open/floor/plasteel/dark,/area/arcade)
"foG" = (/obj/machinery/atmospherics/components/unary/vent_pump/on/layer3{dir = 4; name = "air vent"},/turf/open/floor/wood,/area/crew_quarters/fitness)
"foH" = (/obj/structure/lattice/catwalk,/obj/structure/railing{dir = 1},/turf/open/chasm/cloud,/area/layenia/cloudlayer)
"foU" = (/obj/structure/cable{icon_state = "1-2"},/obj/structure/railing{dir = 4},/turf/open/floor/plasteel/stairs/medium,/area/maintenance/port)
"foU" = (/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plasteel/dark,/area/library/lounge)
"foY" = (/obj/structure/chair/wood/normal{dir = 4},/turf/open/floor/wood,/area/maintenance/fore)
"fpb" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/carpet/red,/area/crew_quarters/heads/hos)
"fpg" = (/obj/item/crowbar/red,/obj/item/wrench,/obj/effect/turf_decal/stripes/line{dir = 6},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plasteel/dark,/area/science/xenobiology)
@@ -3629,7 +3630,7 @@
"kkx" = (/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{dir = 4; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/hallway/primary/aft)
"kkA" = (/obj/item/twohanded/required/kirbyplants/random,/obj/machinery/light{pixel_y = -1},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/maintenance/port/aft)
"kkB" = (/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red,/obj/structure/disposalpipe/segment{dir = 6},/turf/open/floor/plasteel{dir = 8; icon_state = "floor_plate"},/area/security/main)
"kkD" = (/obj/structure/chair/stool,/obj/structure/railing,/turf/open/floor/plating,/area/maintenance/port)
"kkD" = (/turf/open/floor/plasteel/dark,/area/library/lounge)
"kkJ" = (/obj/effect/turf_decal/tile/yellow,/obj/structure/chair/office/light{dir = 8},/turf/open/floor/plasteel/white/side{dir = 8},/area/bridge)
"klb" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{dir = 4; name = "air scrubber"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/secondary/service)
"klf" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/crew_quarters/locker)
@@ -6211,7 +6212,7 @@
"rsN" = (/obj/machinery/door/airlock/public/glass{dir = 4; name = "Hydroponics"; req_access_txt = "35"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hydroponics)
"rsU" = (/obj/machinery/door/airlock/maintenance{dir = 8; name = "Shop Maintenance Access"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/turf/open/floor/plasteel,/area/security/vacantoffice/a)
"rta" = (/obj/effect/turf_decal/tile/blue,/obj/effect/turf_decal/tile/blue{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/structure/sign/warning/nosmoking{pixel_y = -32},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper)
"rtf" = (/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_access_txt = "12"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/port)
"rtf" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/public/glass{name = "Art Gallery"},/turf/open/floor/plasteel/dark,/area/library/lounge)
"rtj" = (/obj/machinery/light{dir = 1; pixel_y = 16},/obj/machinery/atmospherics/pipe/layer_manifold{dir = 4},/turf/open/floor/plating,/area/engine/atmos)
"rtk" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/open/floor/plasteel/dark/side{dir = 8},/area/bridge)
"rtv" = (/obj/structure/closet/radiation,/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel/dark,/area/science/misc_lab)
@@ -6677,7 +6678,7 @@
"sDl" = (/obj/effect/turf_decal/tile/purple{dir = 1},/obj/structure/closet/l3closet/janitor,/obj/effect/turf_decal/tile/purple{dir = 8},/turf/open/floor/plasteel,/area/janitor)
"sDp" = (/obj/machinery/space_heater,/turf/open/floor/plasteel{dir = 4; icon_state = "floor_plate"},/area/quartermaster/warehouse)
"sDI" = (/obj/item/twohanded/required/kirbyplants/random,/obj/effect/turf_decal/tile/blue{dir = 4},/obj/machinery/light{dir = 1; pixel_y = 16},/obj/machinery/camera{c_tag = "Arrivals Bay 2 North"; dir = 4},/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/secondary/entry)
"sDQ" = (/obj/structure/cable{icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/port)
"sDQ" = (/obj/structure/cable{icon_state = "2-4"},/obj/structure/sign/painting/library{pixel_y = 28},/turf/open/floor/plasteel/dark,/area/library/lounge)
"sEb" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/cable{icon_state = "1-4"},/obj/structure/cable{icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 5},/turf/open/floor/plasteel/white,/area/science/research)
"sEr" = (/obj/machinery/atm{pixel_y = 30},/obj/effect/turf_decal/tile/blue{dir = 4},/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/secondary/entry)
"sEt" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 9; name = "air supply pipe"},/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 9},/turf/open/floor/wood,/area/science/research)
@@ -7347,6 +7348,7 @@
"uqP" = (/obj/effect/turf_decal/tile/green,/obj/effect/turf_decal/tile/green{dir = 8},/turf/open/indestructible/concrete/smooth,/area/layenia)
"uqU" = (/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/carpet/black,/area/crew_quarters/bar)
"uqV" = (/obj/structure/table,/obj/item/toy/figure/chef{pixel_y = 5},/turf/open/floor/plasteel/dark,/area/crew_quarters/kitchen)
"uqZ" = (/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{dir = 8; name = "Library Maintenance"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/port)
"urf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/turf/open/floor/plasteel,/area/engine/engineering)
"urh" = (/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/engine/break_room)
"uri" = (/obj/structure/chair/office/dark{dir = 4},/obj/machinery/light{dir = 8; pixel_x = -7; pixel_y = 0},/turf/open/floor/wood,/area/engine/engineering)
@@ -8797,6 +8799,7 @@
"ygc" = (/obj/machinery/door/airlock/security/glass{dir = 8; name = "Equipment Room"; req_access_txt = "1"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/turf/open/floor/plasteel/showroomfloor,/area/security/main)
"ygj" = (/obj/structure/table,/obj/item/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/storage/toolbox/mechanical,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 7},/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/turf/open/floor/plating,/area/ai_monitored/storage/satellite)
"ygo" = (/turf/open/floor/plasteel/dark,/area/hallway/secondary/entry)
"ygA" = (/obj/machinery/door/airlock/public/glass{dir = 4; name = "Art Gallery"},/turf/open/floor/wood,/area/library/lounge)
"ygM" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft)
"ygN" = (/obj/effect/turf_decal/bot,/obj/structure/closet/crate/medical,/turf/open/floor/plasteel,/area/quartermaster/warehouse)
"ygQ" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/structure/cable{icon_state = "4-8"},/obj/effect/landmark/xeno_spawn,/turf/open/floor/plasteel{dir = 8; icon_state = "floor_plate"},/area/tcommsat/computer)
@@ -8997,11 +9000,11 @@ gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgT
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgbxKjXjpTbvJJgTWmapgTWgTWgPqiEgnusgPqgTWgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkyankmGlWBlWBmmkpwFvKTrmtoFbvkrghvpwFanmpbjsCLsCLsCLqAReSMprnplzoRXjMGkOBwbScRskNHhSriWlcvMnNhflyaYxxazqpKkVqcvMnpRmWLmPCrifrifrifsVcoUbwdppVFegAoNBfiTtYBeuSmWWxlFrDkcDobGjqMSvQsbfoqLawOlgZviALxoipqIxlkhfzyjlpRbeoZwbEoNVdvNpLTfufnusgTWgTWgTWgTWgTWiEglVsstxkpketMrlKpfGvEPbhIofllzmerNkIrqLWlzmoflabTtYRdyJdyJofloQEuIpuIpuIpmRgeoNtBccWzprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgGFfoHfoHfoHikngTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgbxKeDSpypvJJgTWmapgTWgTWgGFwOpwOpfoHikngTWgTWgTWgPqiEgwOpmGJbMkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkslElWBqNDqUosXTrrppwFjLJbsLjLJpwFpwFwrcsCLvgKhwFsuMhLshdPckcfOSfmwuvLwIukmXuvLuvLuvLeCUcvMsBHaHhaHhqQUamUtstcvMsVcsVcsVcsVcsVcsVcsVckukwdpsnjegAmXMdSfdSfdSxjXukAAlEvvoGamaqikvQsmyjegAdcFwOqdcFirxwIWxEkcBqcoMpqIvUFwbEoNVdvNnndfufnusgPqgPqgPqgPqgPqiEglVsrRRlRSxxgwkcfdUyaQaBGofllzmvDxotolzmrcMoflabTtYRsivsivofloQEvcZlOAaxelOArzqtBccWzprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWiEgiQcftOkdknusgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgvJJvJJvJJvJJgPqmapgPqgPqiEgvJJvJJvJJnusgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkyanfxniGupDetdFugWcHDtIugLYmvHgEVpzWkKosCLhBXcQnsCLrKbeokxPxcDmrxvuvLnovcEWpFlxkOuvLcECnJxpKUwJRoaioSGfyGtstcvMsDQeLIeLIeLIeLIeLIbnuoRZrsrsnjegAdSfdSfdSfrIGwbVgzrfTlpOVamaqMSvQsqMFegAdxfnKPdxfirxshpjNCojhjTPiFYbbkwbEoNVdvNrrYdxfvJJwjKwjKwjKwjKwjKvJJofloflofloflofloflofloflofldERrVfblGdERdERofljvStYRwYosGAofljyWerFfVPlOAcRMrzqtBccWzprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgPqgPqgPqiEgorldiGpggnusgPqgfhgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgwOpgCVwOpwOpoQhpPQgTWgTWiEgdgCvBZncTnusgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkyanfxnuYynhImwjfxnmLhoNCbmyoNCukfoNCrWhsCLkFbkcWsCLtNBcLxrmDhZwiPEuvLvXcxqyhQPtZSuvLqRwcvMrugcwceGOqdwiMmfjscvMcgIkkDdmUcEEdvzioGbxOhJOfbBhjlegAtAThvGtWgplngVferEerEerEuPVqMSvQsjoaegAleooIofeXirxmuUmKqjZZmSNpqIqXvwbEoNVdvNhxjfufnusgPqgPqgPqgPqgPqiEgsjelzmlzmlzmlzmoflpWEmaxafpjbhbKchhroDlryoiDwpzdtYRvXyvXyoflgAUoflgwAuIpuIpeoNtBccWzprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWiEgrCwwyjtmAnusgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgfhgPqvJJvJJvJJvJJvJJgTWgTWgTWgTWiEgvJJvJJvJJnusgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkyanfxnuvNbWRuiVatDguXoNCbmyoNCmlroNCupcsCLtKWgPasCLrjXrjXrjXsCLdGcuvLagLkbOwmbobouvLlHHcvMcvMcvMcvMcvMcvMcvMcvMfoUeDKdvzdvzdvzdvzbxOeQXbtJfSregAegAegAegAegAhjFmvprWVexXfHgsHXwgehXregAhiIfkvsUZirxqRbckUpqIpqIjEQtztwbEgtjcfGhxjfufnusgTWgTWgTWgTWgTWiEgsjelzmbXXlzmsAGoflhNBmaRaFPjbhfsCycQwLWeECtnmxyKbaLjCZvczvavvTlofloQEuIprnOrzqtBccWzprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtjeZwOpnusgPqgTWgTWgTWmcCxejxejxejpPQgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWwTpxejxejxejxAUgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkslElWBxketsPxUrfxnguXbYtbmybmyukfcOZrWhsCLsCLsCLsCLfruqWHcLBmPfplNuvLuzUpPIlhmrixuvLuykxurxurxurxurxurxurxurxurboquSzdvziIfoHXkQMuNLqgRaxBsnjahmdmVoHXyhwegAmatpTlhIOdZWegAjTteQpjTtegArgRqLfhTRirxuoraqluorkqIocHocHocHoNVdvNhxjfufnusgPqgPqgPqgPqgPqiEgsjelzmlzmlzmlzmofliNSbgjtCqbkThsAgxKrBhnadkVZoIjsAntwjkGrmghhHQofloQElOAlOArzqtBcfVcxDVaCcxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVaCcxDVpQYwOpnusgPqgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkyanlWBlWBlWBlWBlWBjGMuefssDrjFukfpPxrWhnVWhUVlDBxdqbDZfLsbDZchQhJBuvLgZotPegZokmXuvLuvLuvLbxObxObxObxObxObxObxOrtfbxObxObAZpzFaOGxMHqgRaxBsnjhMkaxKqDJaxKegAegAegAegAegAegAroPxIaphCegAdxfoCLdxfirxroPxIaphCjOIxKMhPnocHoNVdvNrrYdxfvJJwjKwjKwjKwjKwjKvJJofldQUsbssbsdQUofloflmBfiGUkGrgdbqHUwCHgdbcUZqHUgdbeBqahyppyfpPofloQEuIpiDkeoNtBchWHeAAghbeAAxbEvpDgyfeAAghbeAAuXnuXneAAghbeAAcUUvpDyeOeAAghbeAAuXnwOpnusgPqgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgPqiEgwOpmGJbMkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkyanjUYnajrfynazuAAhcguefguXbmyukfqxndTscfCsXSsXSsXSsXScfCsXSrpMfNfybzglLbAyuzflGbfRCrrwuvLokZaITjSPczUtkejYtwnWcpDeuuxDlwnWwnWwnWwnWwdpaxBwdpjUEjUEjUEjUEkzPimcwNSjUEjUEoxwjUEjUEjUEjUEjUEjUEeoDaGnjUEjUEitnrjujvpgZjocHoNVdvNnMHfufnusgPqgPqgPqgPqgPqiEgjbhbqRmfTlHLuHBnLLoflqnqiGUmghrtvofljbhjbhjbhoflpEGhNacQpofloflofloQEuIplOAeoNjXChWHdbTlQwdbTwsTcaKnnIdbTlQwdbTuXnuXndbTlQwdbTmikcaKvxrdbTlQwdbTuXnwOpnusgPqgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgwOpgCVwOpwOpoQhpPQgTWgTWiEgdgCvBZncTnusgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkyanfxnuYynhImwjfxnmLhoNCbmyoNCukfoNCrWhsCLkFbkcWsCLtNBcLxrmDhZwiPEuvLvXcxqyhQPtZSuvLqRwcvMrugcwceGOqdwiMmfjscvMfoUkkDdmUcEEeuukkDygAhJOfbBhjlegAtAThvGtWgplngVferEerEerEuPVqMSvQsjoaegAleooIofeXirxmuUmKqjZZmSNpqIqXvwbEoNVdvNhxjfufnusgPqgPqgPqgPqgPqiEgsjelzmlzmlzmlzmoflpWEmaxafpjbhbKchhroDlryoiDwpzdtYRvXyvXyoflgAUoflgwAuIpuIpeoNtBccWzprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWiEgrCwwyjtmAnusgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgfhgPqvJJvJJvJJvJJvJJgTWgTWgTWgTWiEgvJJvJJvJJnusgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkyanfxnuvNbWRuiVatDguXoNCbmyoNCmlroNCupcsCLtKWgPasCLrjXrjXrjXsCLdGcuvLagLkbOwmbobouvLlHHcvMcvMcvMcvMcvMcvMcvMcvMfoUkkDbxObxObxObxObxOeQXbtJfSregAegAegAegAegAhjFmvprWVexXfHgsHXwgehXregAhiIfkvsUZirxqRbckUpqIpqIjEQtztwbEgtjcfGhxjfufnusgTWgTWgTWgTWgTWiEgsjelzmbXXlzmsAGoflhNBmaRaFPjbhfsCycQwLWeECtnmxyKbaLjCZvczvavvTlofloQEuIprnOrzqtBccWzprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtjeZwOpnusgPqgTWgTWgTWmcCxejxejxejpPQgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWwTpxejxejxejxAUgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkslElWBxketsPxUrfxnguXbYtbmybmyukfcOZrWhsCLsCLsCLsCLfruqWHcLBmPfplNuvLuzUpPIlhmrixuvLuykxurxurxurxurxurxurxuruqZboqkkDbxOiIfoHXkQMuNLqgRaxBsnjahmdmVoHXyhwegAmatpTlhIOdZWegAjTteQpjTtegArgRqLfhTRirxuoraqluorkqIocHocHocHoNVdvNhxjfufnusgPqgPqgPqgPqgPqiEgsjelzmlzmlzmlzmofliNSbgjtCqbkThsAgxKrBhnadkVZoIjsAntwjkGrmghhHQofloQElOAlOArzqtBcfVcxDVaCcxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVaCcxDVpQYwOpnusgPqgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkyanlWBlWBlWBlWBlWBjGMuefssDrjFukfpPxrWhnVWhUVlDBxdqbDZfLsbDZchQhJBuvLgZotPegZokmXuvLuvLuvLbxObxObxObxObxObxObxOrtfdqhbxObAZpzFaOGxMHqgRaxBsnjhMkaxKqDJaxKegAegAegAegAegAegAroPxIaphCegAdxfoCLdxfirxroPxIaphCjOIxKMhPnocHoNVdvNrrYdxfvJJwjKwjKwjKwjKwjKvJJofldQUsbssbsdQUofloflmBfiGUkGrgdbqHUwCHgdbcUZqHUgdbeBqahyppyfpPofloQEuIpiDkeoNtBchWHeAAghbeAAxbEvpDgyfeAAghbeAAuXnuXneAAghbeAAcUUvpDyeOeAAghbeAAuXnwOpnusgPqgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgPqiEgwOpmGJbMkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkyanjUYnajrfynazuAAhcguefguXbmyukfqxndTscfCsXSsXSsXSsXScfCsXSrpMfNfybzglLbAyuzflGbfRCrrwuvLokZaITjSPczUtkejYtwnWcpDwnWxDlwnWwnWwnWwnWwdpaxBwdpjUEjUEjUEjUEkzPimcwNSjUEjUEoxwjUEjUEjUEjUEjUEjUEeoDaGnjUEjUEitnrjujvpgZjocHoNVdvNnMHfufnusgPqgPqgPqgPqgPqiEgjbhbqRmfTlHLuHBnLLoflqnqiGUmghrtvofljbhjbhjbhoflpEGhNacQpofloflofloQEuIplOAeoNjXChWHdbTlQwdbTwsTcaKnnIdbTlQwdbTuXnuXndbTlQwdbTmikcaKvxrdbTlQwdbTuXnwOpnusgPqgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgGFfoHfoHfoHikngTWgTWgTWgTWgGFfoHfoHfoHikngTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPnlkyanjUYjUYrfyrfyuAAwWzuefguXbYtocxiKjjeldoHneknekneknekdoHnekuPsgyEqwypzEwkLeNyoTudrxwfQybzhoeqiJmojktamojnnTjdxhnvsdYsdYpfXsdYsdYeHMbmUjZQmojmojmojmojmojmojmojmojmojmojktarqmlJbaBTmojmojmojyiBjdxrsrwdpdvAcAwmzelgnkurqcmdkSpLTfufnusgTWgTWgTWgTWgTWiEgjbhqqWeqZszRadbvMqbyzvCOohxmghxsyoflcYhvEXaEuofljKahNacOuoflirCatBrkBeoNguheoNtBchWHeAAdbTeAAgqGwdSdjBeAAdbTeAAuXnuXneAAdbTeAAjMBnfpxEQeAAdbTeAAuXnwOpnusgPqgTWgTWgTWgGFfoHfoHfoHikngTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgiQcftOkdknusgTWgTWgTWgTWiEgiQcftOkdknusgTWgTWgTWgPqiEgwOpmGJnlknlktfonlknlknlknlknlknlknlknlknlknlknlknlknlknlknlkyanjUYjUYrfydnKuAAwHumVMgQobzcfgVmXnbmymnDhnTmwejjyjjyjjyjjygucpRIuvLuxpiXzeaHeaHsxYwfQybzhoecSZpwUnCSrXbpAEpAEpAEpAEpAEpAEeFYlMXlMXedulMXlMXlMXlMXeFYlMXlMXlMXlMXlMXlMXscTurqrJzrOplMXlMXeFYpGclMXlMXlMXwhyrjudVMwWQrjuoNVdvNnndfufnusgPqgPqgPqgPqgPqiEgoflofloflofloflofloflofliThxlRoflofloflofloflofloflhNacOuoflkwioQEjYCeoNbXVnsHtBcaUKgcfgcfgcfgcfgcfgcfgcfgcfgcfuXnuXngcfgcfgcfuXnuXnuXnuXnuXnuXnuXnwOpnusgPqgTWgTWgTWiEgiQcftOkdknusgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgfhgPqiEgorldiGpggnusgPqgPqgPqgPqiEgorldiGpggnusgPqgPqgPqgPqiEgwOpbRSshZshZshZshZshZshZshZshZshZshZshZshZshZshZshZshZshZshZsmBjUYjUYjUYjUYuAAuAAflNflNflNcYrvNJkDlkKacJjflNflNflNflNflNuAAbLkuvLfksxTdnPbvoygbYkeTuvLcHdcSZavmhlxobLfFGfPmobLobLobLobLdNreeneenmFzrEmrEmeeneenhLxhLxeUEstcstcstckjMsMJsMJsMJsMJsMJsMJsMJmebrTLrTLrTLrTLjOIocHocHocHmlEqmpevkdxfdxffuffuffuffuffufdxfoflsJPxiJtiitfFxsUofljDSuKnaQEmeatBlmvotBlqEuoflelcvCYylIofleoNmqpeoNjaXwpFgOntBcrhGtBctBctBctBcrhGtBctBctBcxQulatwRVvlJtBcwpFuNasKHtyztyztyzwOpwOpwOpnusgPqgPqgPqgPqiEgorldiGpggnusgPqgfhgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW
+1
View File
@@ -53,3 +53,4 @@
#define JOB_UNAVAILABLE_PLAYTIME 3
#define JOB_UNAVAILABLE_ACCOUNTAGE 4
#define JOB_UNAVAILABLE_SLOTFULL 5
#define JOB_UNAVAILABLE_WHITELIST 6
+21
View File
@@ -1130,6 +1130,27 @@ B --><-- A
if (target)
return target
/proc/get_safe_random_station_turf_nochasm() //same method as above but with chasm detection
for (var/i in 1 to 5)
var/list/L = get_area_turfs(pick(GLOB.the_station_areas))
var/turf/target
while (L.len && !target)
var/I = rand(1, L.len)
var/turf/T = L[I]
if(!T.density)
var/clear = TRUE
for(var/obj/O in T)
if(O.density)
clear = FALSE
break
if(ischasm(T)) //stop right there criminal scum
clear = FALSE
if(clear)
target = T
if (!target)
L.Cut(I,I+1)
if (target)
return target
/proc/get_closest_atom(type, list, source)
var/closest_atom
@@ -297,7 +297,7 @@
repeatable = TRUE
//property_weights = list("extended" = 1)
occurances_max = 2
chaos_min = 3.0
chaos_min = 1.2
/datum/dynamic_ruleset/event/anomaly_flux
name = "Anomaly: Hyper-Energetic Flux"
+4
View File
@@ -227,6 +227,10 @@
for (var/atom/movable/A in urange(12, FROM )) // iterate thru list of mobs in the area
if(istype(A, /obj/item/beacon))
continue // don't teleport beacons because that's just insanely stupid
if(isliving(A))
var/turf/L = get_safe_random_station_turf_nochasm() //Safe and cuddly.
do_teleport(A, L, forceMove = TRUE, channel = TELEPORT_CHANNEL_BLUESPACE)
continue
if(A.anchored)
continue
+20 -14
View File
@@ -222,17 +222,6 @@
framed_offset_x = 5
framed_offset_y = 6
/obj/item/canvas/twentyfour_twentyfour
name = "ai universal standard canvas"
desc = "Besides being very large, the AI can accept these as a display from their internal database after you've hung it up."
icon_state = "24x24"
width = 24
height = 24
pixel_x = 2
pixel_y = 1
framed_offset_x = 4
framed_offset_y = 5
/obj/item/wallframe/painting
name = "painting frame"
desc = "The perfect showcase for your favorite deathtrap memories."
@@ -284,9 +273,26 @@
if(persistence_id)
. += "<span class='notice'>Any painting placed here will be archived at the end of the shift.</span>"
if(current_canvas)
current_canvas.ui_interact(user)
ui_interact(user, state = GLOB.physical_obscured_state)
. += "<span class='notice'>Use wirecutters to remove the painting.</span>"
//Hyperstation UI hotwire code ahead. No, I'm not particularly proud of this but if it works, it works.
/obj/structure/sign/painting/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "canvas", name, current_canvas.ui_x, current_canvas.ui_y, master_ui, state)
ui.set_autoupdate(FALSE)
ui.open()
/obj/structure/sign/painting/ui_data(mob/user)
. = ..()
.["grid"] = current_canvas.grid
.["name"] = current_canvas.painting_name
.["finalized"] = current_canvas.finalized
//End of hotwire code
/obj/structure/sign/painting/wirecutter_act(mob/living/user, obj/item/I)
. = ..()
if(current_canvas)
@@ -319,9 +325,9 @@
/obj/structure/sign/painting/update_icon_state()
// icon_state = "[base_icon_state]-[current_canvas?.generated_icon ? "overlay" : "empty"]"
if(current_canvas?.generated_icon)
icon_state = "frame-null"
else
icon_state = "frame-empty"
//else
// icon_state = null // or "frame-empty"
return ..()
/obj/structure/sign/painting/update_overlays()
+5 -2
View File
@@ -199,8 +199,11 @@
body += "<A href='?_src_=holder;[HrefToken()];tdomeadmin=[REF(M)]'>Thunderdome Admin</A> | "
body += "<A href='?_src_=holder;[HrefToken()];tdomeobserve=[REF(M)]'>Thunderdome Observer</A> | "
body += "<A href='?_src_=holder;[HrefToken()];makementor=[M.ckey]'>Make mentor</A> | "
body += "<A href='?_src_=holder;[HrefToken()];removementor=[M.ckey]'>Remove mentor</A>"
body += "<A href='?_src_=holder;[HrefToken()];makeeligible=[REF(M)]'>Allow reentering round</A>"
body += "<A href='?_src_=holder;[HrefToken()];removementor=[M.ckey]'>Remove mentor</A> |"
body += "<A href='?_src_=holder;[HrefToken()];makeeligible=[REF(M)]'>Allow reentering round</A> |"
body += "<A href='?_src_=holder;[HrefToken()];sillyroles=[M.ckey]'>Toggle Silly Roles</A> |"
body += "<A href='?_src_=holder;[HrefToken()];roleplayroles=[M.ckey]'>Toggle Roleplay Roles</A> |"
body += "<A href='?_src_=holder;[HrefToken()];importantroles=[M.ckey]'>Toggle Important Roles</A> |"
body += "<br>"
body += "</body></html>"
+62 -1
View File
@@ -22,6 +22,16 @@
if(!CheckAdminHref(href, href_list))
return
if(href_list["sillyroles"]) //toggle, clown and mime.
togglesilly(href_list["sillyroles"])
if(href_list["roleplayroles"]) //toggle, roleplay jobs
toggleroleplay(href_list["roleplayroles"])
if(href_list["importantroles"]) //toggle, roleplay jobs
toggleimportant(href_list["importantroles"])
if(href_list["makementor"])
makeMentor(href_list["makementor"])
else if(href_list["removementor"])
@@ -1359,7 +1369,7 @@
else if(href_list["f_secret"])
return HandleFSecret()
//Dynamic mode
else if(href_list["f_dynamic_roundstart"])
if(!check_rights(R_ADMIN))
@@ -2991,3 +3001,54 @@
to_chat(usr, "<span class='danger'>Failed to establish database connection. The changes will last only for the current round.</span>")
to_chat(usr, "<span class='adminnotice'>Mentor removed.</span>")
/datum/admins/proc/togglesilly(ckey)
if(!usr.client)
return
if (!check_rights(0))
return
if(!ckey)
return
var/client/C = GLOB.directory[ckey]
if(!C)
return
C.prefs.sillyroles = !C.prefs.sillyroles
if(C.prefs.sillyroles)
to_chat(usr, "<span class='adminnotice'>Silly roles have been allowed.</span>")
else
to_chat(usr, "<span class='adminnotice'>Silly roles have been disabled.</span>")
C.prefs.save_preferences()
/datum/admins/proc/toggleroleplay(ckey)
if(!usr.client)
return
if (!check_rights(0))
return
if(!ckey)
return
var/client/C = GLOB.directory[ckey]
if(!C)
return
C.prefs.roleplayroles = !C.prefs.roleplayroles
if(C.prefs.roleplayroles)
to_chat(usr, "<span class='adminnotice'>Roleplay roles have been allowed.</span>")
else
to_chat(usr, "<span class='adminnotice'>Roleplay roles have been disabled.</span>")
C.prefs.save_preferences()
/datum/admins/proc/toggleimportant(ckey)
if(!usr.client)
return
if (!check_rights(0))
return
if(!ckey)
return
var/client/C = GLOB.directory[ckey]
if(!C)
return
C.prefs.importantroles = !C.prefs.importantroles
if(C.prefs.importantroles)
to_chat(usr, "<span class='adminnotice'>Important roles have been allowed.</span>")
else
to_chat(usr, "<span class='adminnotice'>Important roles have been disabled.</span>")
C.prefs.save_preferences()
@@ -292,8 +292,8 @@
S.burnmod *= 0.5
S.coldmod *= 0.5
if(20)
//Free wizard!
user.mind.make_Wizard()
//Gives the roller a healing staff!
new /obj/item/gun/magic/staff/healing(drop_location())
/datum/outfit/butler
+5 -1
View File
@@ -96,10 +96,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/eye_color = "000" //Eye color
var/wing_color = "fff" //Wing color
//H13
//HS13
var/body_size = 100 //Body Size in percent
var/can_get_preg = 0 //if they can get preggers
//HS13 jobs
var/sillyroles = FALSE //for clown and mime
var/roleplayroles = FALSE //for the roleplay roles
var/importantroles = FALSE //for things that define as important.
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/list/features = list("mcolor" = "FFF",
@@ -141,6 +141,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
//Hyper code
S["noncon"] >> noncon
S["sillyroles"] >> sillyroles
S["roleplayroles"] >> roleplayroles
S["importantroles"] >> importantroles
//try to fix any outdated data if necessfary
if(needs_update >= 0)
@@ -152,6 +155,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
UI_style = sanitize_inlist(UI_style, GLOB.available_ui_styles, GLOB.available_ui_styles[1])
hotkeys = sanitize_integer(hotkeys, 0, 1, initial(hotkeys))
autocorrect = sanitize_integer(autocorrect, 0, 1, initial(autocorrect))
sillyroles = sanitize_integer(sillyroles, 0, 1, initial(sillyroles))
roleplayroles = sanitize_integer(roleplayroles, 0, 1, initial(roleplayroles))
importantroles = sanitize_integer(importantroles, 0, 1, initial(importantroles))
chat_on_map = sanitize_integer(chat_on_map, 0, 1, initial(chat_on_map))
radiosounds = sanitize_integer(radiosounds, 0, 1, initial(radiosounds))
max_chat_length = sanitize_integer(max_chat_length, 1, CHAT_MESSAGE_MAX_LENGTH, initial(max_chat_length))
@@ -212,6 +218,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["hotkeys"], hotkeys)
WRITE_FILE(S["chat_on_map"], chat_on_map)
WRITE_FILE(S["autocorrect"], autocorrect)
WRITE_FILE(S["sillyroles"], sillyroles)
WRITE_FILE(S["roleplayroles"], roleplayroles)
WRITE_FILE(S["importantroles"], importantroles)
WRITE_FILE(S["radiosounds"], radiosounds)
WRITE_FILE(S["max_chat_length"], max_chat_length)
WRITE_FILE(S["see_chat_non_mob"], see_chat_non_mob)
+3
View File
@@ -17,6 +17,8 @@ Clown
access = list(ACCESS_THEATRE)
minimal_access = list(ACCESS_THEATRE)
whitelist_type = "silly"
/datum/job/clown/after_spawn(mob/living/carbon/human/H, mob/M)
..()
H.apply_pref_name("clown", M.client)
@@ -81,6 +83,7 @@ Mime
access = list(ACCESS_THEATRE)
minimal_access = list(ACCESS_THEATRE)
whitelist_type = "silly"
/datum/job/mime/after_spawn(mob/living/carbon/human/H, mob/M)
..()
+3
View File
@@ -63,6 +63,9 @@
var/override_roundstart_spawn = null //Where the player spawns at roundstart if defined
//whitelisting
var/whitelist_type = ""
//Only override this proc
//H is usually a human unless an /equip override transformed it
/datum/job/proc/after_spawn(mob/living/H, mob/M, latejoin = FALSE)
-1
View File
@@ -55,7 +55,6 @@ GLOBAL_LIST_INIT(security_positions, list(
"Security Officer",
"Rookie"))
GLOBAL_LIST_INIT(nonhuman_positions, list(
"AI",
"Cyborg",
@@ -318,6 +318,8 @@
return "[jobtitle] is unavailable."
if(JOB_UNAVAILABLE_BANNED)
return "You are currently banned from [jobtitle]."
if(JOB_UNAVAILABLE_WHITELIST)
return "You are not whitelisted for [jobtitle]."
if(JOB_UNAVAILABLE_PLAYTIME)
return "You do not have enough relevant playtime for [jobtitle]."
if(JOB_UNAVAILABLE_ACCOUNTAGE)
@@ -341,6 +343,13 @@
return JOB_UNAVAILABLE_SLOTFULL
if(jobban_isbanned(src,rank))
return JOB_UNAVAILABLE_BANNED
if(job.whitelist_type) //whitelisting
if(job.whitelist_type == "roleplay" && !client.prefs.roleplayroles)
return JOB_UNAVAILABLE_WHITELIST
if(job.whitelist_type == "important" && !client.prefs.importantroles)
return JOB_UNAVAILABLE_WHITELIST
if(job.whitelist_type == "silly" && !client.prefs.sillyroles)
return JOB_UNAVAILABLE_WHITELIST
if(QDELETED(src))
return JOB_UNAVAILABLE_GENERIC
if(!job.player_old_enough(client))
@@ -0,0 +1,13 @@
/*
Roleplay Jobs, Currently borked.
/datum/job/rpcentral
title = "Central Command Inspector"
faction = "Station"
total_positions = 1
spawn_positions = 1
minimal_player_age = 1
supervisors = "central command"
selection_color = "#ffeef0"
custom_spawn_text = "You are from central command doing a routine inspection of the station, please fill out the provided information and submit it to central command by the end of the shift."
*/
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 35 KiB

+18 -1
View File
@@ -279,6 +279,23 @@
emote_type = EMOTE_AUDIBLE
muzzle_ignore = FALSE
restraint_check = FALSE
/datum/emote/living/cackle
key = "cackle"
key_third_person = "cackles"
message = "cackles hysterically!"
emote_type = EMOTE_AUDIBLE
muzzle_ignore = FALSE
restraint_check = FALSE
/datum/emote/living/cackle/run_emote(mob/living/user, params)
if(ishuman(user))
if(user.nextsoundemote >= world.time)
return
user.nextsoundemote = world.time + 7
playsound(user, 'modular_citadel/sound/voice/cackle_yeen.ogg', 50, 1, -1)
. = ..()
/datum/emote/living/meow/run_emote(mob/living/user, params)
if(!(. = ..()))
@@ -302,4 +319,4 @@
if(user.nextsoundemote >= world.time)
return
user.nextsoundemote = world.time + 7
playsound(user, 'modular_citadel/sound/voice/purr.ogg', 50, 1, -1)
playsound(user, 'modular_citadel/sound/voice/purr.ogg', 50, 1, -1)
Binary file not shown.
+1
View File
@@ -3125,6 +3125,7 @@
#include "hyperstation\code\modules\economy\account.dm"
#include "hyperstation\code\modules\events\crystalline_reentry.dm"
#include "hyperstation\code\modules\integrated_electronics\input.dm"
#include "hyperstation\code\modules\jobs\job_types\roleplay.dm"
#include "hyperstation\code\modules\mining\shelters.dm"
#include "hyperstation\code\modules\mining\equipment\survival_pod.dm"
#include "hyperstation\code\modules\mob\mob_helpers.dm"
+3 -3
View File
@@ -1554,9 +1554,9 @@ color-name@^1.0.0:
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-string@^1.5.2:
version "1.5.3"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
version "1.6.0"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"
integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==
dependencies:
color-name "^1.0.0"
simple-swizzle "^0.2.2"