diff --git a/_maps/map_files/LayeniaStation/LayeniaStation.dmm b/_maps/map_files/LayeniaStation/LayeniaStation.dmm index b7bba568..77f65489 100644 --- a/_maps/map_files/LayeniaStation/LayeniaStation.dmm +++ b/_maps/map_files/LayeniaStation/LayeniaStation.dmm @@ -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 diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 3a64637a..86dd868a 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -53,3 +53,4 @@ #define JOB_UNAVAILABLE_PLAYTIME 3 #define JOB_UNAVAILABLE_ACCOUNTAGE 4 #define JOB_UNAVAILABLE_SLOTFULL 5 +#define JOB_UNAVAILABLE_WHITELIST 6 \ No newline at end of file diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 831e92d4..3ceb1547 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -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 diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm index cc56359c..7677ebbd 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm @@ -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" diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index 10345e21..6d3df24e 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -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 diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm index 4cc8de58..339b39e3 100644 --- a/code/game/objects/structures/artstuff.dm +++ b/code/game/objects/structures/artstuff.dm @@ -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) . += "Any painting placed here will be archived at the end of the shift." if(current_canvas) - current_canvas.ui_interact(user) + ui_interact(user, state = GLOB.physical_obscured_state) . += "Use wirecutters to remove the painting." +//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() diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 7121aaac..acdfc605 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -199,8 +199,11 @@ body += "Thunderdome Admin | " body += "Thunderdome Observer | " body += "Make mentor | " - body += "Remove mentor" - body += "Allow reentering round" + body += "Remove mentor |" + body += "Allow reentering round |" + body += "Toggle Silly Roles |" + body += "Toggle Roleplay Roles |" + body += "Toggle Important Roles |" body += "
" body += "" diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index c781cf31..3e1d04b0 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -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, "Failed to establish database connection. The changes will last only for the current round.") to_chat(usr, "Mentor removed.") +/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, "Silly roles have been allowed.") + else + to_chat(usr, "Silly roles have been disabled.") + 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, "Roleplay roles have been allowed.") + else + to_chat(usr, "Roleplay roles have been disabled.") + 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, "Important roles have been allowed.") + else + to_chat(usr, "Important roles have been disabled.") + C.prefs.save_preferences() \ No newline at end of file diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index 962b850e..8140f41f 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -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 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 42ae307a..b1c2229c 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -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", diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 71379b48..f4c91da8 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -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) diff --git a/code/modules/jobs/job_types/civilian.dm b/code/modules/jobs/job_types/civilian.dm index 7d97858f..bceea381 100644 --- a/code/modules/jobs/job_types/civilian.dm +++ b/code/modules/jobs/job_types/civilian.dm @@ -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) ..() diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 7b4ed75c..79711fd1 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -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) diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index df3f48aa..08616e28 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -55,7 +55,6 @@ GLOBAL_LIST_INIT(security_positions, list( "Security Officer", "Rookie")) - GLOBAL_LIST_INIT(nonhuman_positions, list( "AI", "Cyborg", diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 7382647a..c4ec1cf4 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -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)) diff --git a/hyperstation/code/modules/jobs/job_types/roleplay.dm b/hyperstation/code/modules/jobs/job_types/roleplay.dm new file mode 100644 index 00000000..9becaf9b --- /dev/null +++ b/hyperstation/code/modules/jobs/job_types/roleplay.dm @@ -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." +*/ \ No newline at end of file diff --git a/hyperstation/icons/obj/plushes.dmi b/hyperstation/icons/obj/plushes.dmi index 1f67aedf..e0496bfb 100644 Binary files a/hyperstation/icons/obj/plushes.dmi and b/hyperstation/icons/obj/plushes.dmi differ diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi index ef6dac69..49bb26f3 100644 Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm index d6071da6..4134e35a 100644 --- a/modular_citadel/code/modules/mob/cit_emotes.dm +++ b/modular_citadel/code/modules/mob/cit_emotes.dm @@ -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) \ No newline at end of file + playsound(user, 'modular_citadel/sound/voice/purr.ogg', 50, 1, -1) diff --git a/modular_citadel/sound/voice/cackle_yeen.ogg b/modular_citadel/sound/voice/cackle_yeen.ogg new file mode 100644 index 00000000..8d76cda2 Binary files /dev/null and b/modular_citadel/sound/voice/cackle_yeen.ogg differ diff --git a/tgstation.dme b/tgstation.dme index 03410005..08404753 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -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" diff --git a/tgui-next/yarn.lock b/tgui-next/yarn.lock index 6dc63457..e6d22750 100644 --- a/tgui-next/yarn.lock +++ b/tgui-next/yarn.lock @@ -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"