diff --git a/_maps/deathmatch/OSHA_Violator.dmm b/_maps/deathmatch/OSHA_Violator.dmm index fd00138744733..7d30951a4f0a6 100644 --- a/_maps/deathmatch/OSHA_Violator.dmm +++ b/_maps/deathmatch/OSHA_Violator.dmm @@ -20,11 +20,18 @@ /obj/structure/closet/secure_closet/engineering_welding, /turf/open/indestructible, /area/deathmatch) +"cl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/indestructible, +/area/deathmatch) "cA" = ( /turf/open/indestructible, /area/deathmatch) "cR" = ( -/obj/machinery/field/generator/starts_on, +/obj/machinery/field/generator/starts_on/magic, /obj/effect/turf_decal/bot, /obj/structure/cable, /turf/open/indestructible, @@ -36,7 +43,7 @@ "dt" = ( /obj/machinery/light/no_nightlight/directional/north, /obj/effect/turf_decal/stripes/line, -/obj/machinery/field/generator/starts_on, +/obj/machinery/field/generator/starts_on/magic, /obj/structure/cable, /turf/open/indestructible, /area/deathmatch) @@ -578,7 +585,7 @@ /area/deathmatch) "Bv" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/field/generator/starts_on, +/obj/machinery/field/generator/starts_on/magic, /obj/structure/cable, /turf/open/indestructible, /area/deathmatch) @@ -682,6 +689,13 @@ /obj/machinery/light/no_nightlight/directional/west, /turf/open/indestructible, /area/deathmatch) +"Gw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/indestructible, +/area/deathmatch) "Gx" = ( /obj/machinery/conveyor/auto, /obj/structure/cable, @@ -846,7 +860,7 @@ /turf/open/indestructible, /area/deathmatch) "Pg" = ( -/obj/machinery/field/generator/starts_on, +/obj/machinery/field/generator, /obj/machinery/light/no_nightlight/directional/north, /turf/open/indestructible, /area/deathmatch) @@ -977,7 +991,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/field/generator/starts_on, +/obj/machinery/field/generator/starts_on/magic, /obj/structure/cable, /turf/open/indestructible, /area/deathmatch) @@ -1039,8 +1053,11 @@ /turf/open/indestructible, /area/deathmatch) "YA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, /obj/structure/cable, -/turf/closed/indestructible/fakeglass, +/turf/open/indestructible, /area/deathmatch) "YJ" = ( /obj/structure/cable, @@ -1059,7 +1076,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/field/generator/starts_on, +/obj/machinery/field/generator/starts_on/magic, /obj/structure/cable, /turf/open/indestructible, /area/deathmatch) @@ -1070,6 +1087,12 @@ }, /turf/open/indestructible, /area/deathmatch) +"Zq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/indestructible, +/area/deathmatch) "Zr" = ( /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle, /turf/open/space/basic, @@ -1336,7 +1359,7 @@ je (11,1,1) = {" je ai -YA +cl ai gN cA @@ -1911,7 +1934,7 @@ je (34,1,1) = {" je ai -bl +Zq ai ai Bf @@ -1929,7 +1952,7 @@ Bf Bf ai ai -bl +Gw ai je "} diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index 2bae67e2f3557..970e1773c9fa9 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -5,6 +5,19 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"aaf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "aan" = ( /obj/effect/landmark/carpspawn, /turf/open/space/basic, @@ -254,11 +267,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"agp" = ( -/obj/structure/table/wood, -/obj/item/cigarette/cigar/cohiba, -/turf/open/floor/carpet, -/area/station/commons/dorms) "agy" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/tank/oxygen{ @@ -662,6 +670,11 @@ }, /turf/open/floor/stone, /area/station/service/chapel) +"apw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "apB" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -696,21 +709,6 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"aqG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=16.0-CentralFore-CentralPort"; - location = "15.0-CentralStarboard-CentralFore" - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "aqV" = ( /obj/machinery/door/airlock/glass, /obj/machinery/door/firedoor, @@ -1035,26 +1033,19 @@ }, /turf/open/floor/tram, /area/station/security/tram) +"aws" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "aww" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"awC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "awE" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8 @@ -1138,12 +1129,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/maintenance/central/lesser) -"axN" = ( -/obj/machinery/sparker/directional/north{ - id = "Xenobio" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "axX" = ( /obj/effect/turf_decal/siding/yellow, /obj/effect/turf_decal/tile/yellow/diagonal_centre, @@ -1210,15 +1195,6 @@ }, /turf/open/floor/wood, /area/station/engineering/main) -"ayT" = ( -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new/light/corner{ - dir = 8 - }, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "ayV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1792,15 +1768,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"aIr" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/right/directional/south, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "aIu" = ( /obj/structure/bookcase/random/reference, /obj/machinery/camera/autoname/directional/north, @@ -1978,16 +1945,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) -"aLC" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/camera/autoname/directional/east, -/obj/machinery/light/cold/directional/east, -/obj/machinery/power/apc/auto_name/directional/east{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "aLS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, @@ -2451,6 +2408,23 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"aVS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Library Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/service/library) "aVT" = ( /obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior, /obj/effect/mapping_helpers/airlock/locked, @@ -2802,6 +2776,20 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) +"bcN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "bcO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3038,6 +3026,15 @@ }, /turf/open/floor/iron/white/side, /area/station/hallway/primary/central/aft) +"bjf" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "bjh" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -3105,6 +3102,22 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"bkF" = ( +/obj/structure/table, +/obj/machinery/light/small/directional/west, +/obj/item/clothing/head/costume/paper_hat{ + pixel_y = 12; + pixel_x = -4 + }, +/obj/item/clothing/head/collectable/petehat{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/cigarette/cigar/cohiba{ + pixel_y = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/commons/fitness/locker_room) "bkI" = ( /obj/machinery/status_display/evac/directional/south, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ @@ -3480,19 +3493,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) -"bpY" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/neutral/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "bqd" = ( /obj/item/reagent_containers/cup/bottle/ammonia, /obj/structure/steam_vent, @@ -3785,10 +3785,6 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"bvi" = ( -/obj/machinery/griddle, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "bvt" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/department/electrical) @@ -3826,27 +3822,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"bxc" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"bxk" = ( -/obj/effect/turf_decal/tile/neutral/full, -/obj/structure/rack, -/obj/item/weldingtool/mini, -/obj/item/tank/internals/emergency_oxygen/empty, -/obj/item/cigarette/rollie, -/turf/open/floor/iron/dark/smooth_large, -/area/station/maintenance/central/lesser) "bxl" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 1 @@ -4058,32 +4033,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmospherics_engine) -"bBL" = ( -/obj/structure/table, -/obj/item/storage/bag/tray, -/obj/item/knife/kitchen{ - pixel_y = 2 - }, -/obj/effect/spawner/random/food_or_drink/cake_ingredients, -/obj/item/kitchen/rollingpin, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) -"bBN" = ( -/obj/structure/window/spawner/directional/east, -/obj/structure/table/wood, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/stock_parts/power_store/cell/crap{ - pixel_y = 5 - }, -/obj/item/cigarette/pipe/cobpipe{ - pixel_x = 1; - pixel_y = -2 - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/wood/tile, -/area/station/command/corporate_showroom) "bBX" = ( /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, @@ -4588,23 +4537,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"bLS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock{ - name = "Library Maintenance" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/service/library) "bLT" = ( /obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/south, @@ -4618,15 +4550,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/commons/storage/art) -"bMn" = ( -/obj/effect/turf_decal/weather/snow, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "bMt" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -4914,18 +4837,6 @@ /obj/machinery/camera/directional/north, /turf/open/floor/grass, /area/station/service/chapel) -"bTD" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/obj/effect/turf_decal/weather/snow, -/obj/structure/closet/secure_closet/freezer/meat, -/obj/effect/turf_decal/weather/snow/corner, -/obj/item/food/meat/slab/monkey, -/obj/item/food/meat/slab/monkey, -/obj/item/food/meat/slab/monkey, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "bTE" = ( /obj/effect/turf_decal/tile/brown/half, /obj/effect/turf_decal/tile/brown/half{ @@ -5279,6 +5190,11 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"bZY" = ( +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "cam" = ( /obj/machinery/flasher/directional/east{ id = "AI"; @@ -5499,34 +5415,6 @@ }, /turf/open/floor/plating/rust, /area/station/engineering/supermatter/room) -"ccO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, -/obj/structure/table, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark, -/obj/item/radio/intercom/directional/south, -/obj/item/c_tube{ - pixel_x = 20 - }, -/obj/item/clothing/head/cone{ - pixel_y = 5; - pixel_x = -6 - }, -/obj/item/clothing/head/cone{ - pixel_y = 7; - pixel_x = -6 - }, -/obj/item/pipe_dispenser{ - pixel_y = 9; - pixel_x = 14 - }, -/obj/item/cigarette{ - pixel_y = 2 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "cdg" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/grass, @@ -5568,6 +5456,15 @@ /obj/structure/window/spawner/directional/south, /turf/open/space/basic, /area/space/nearstation) +"cev" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/chem_dispenser, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/pharmacy) "ceA" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/white/line{ @@ -6095,6 +5992,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"cmO" = ( +/obj/machinery/sparker/directional/north{ + id = "Xenobio" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "cmX" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 8 @@ -6658,6 +6561,17 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/ce) +"cyP" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/right/directional/east{ + req_access = list("hydroponics"); + name = "Hydroponics Service Desk" + }, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/hydroponics) "cyU" = ( /obj/effect/spawner/random/structure/table, /obj/effect/spawner/random/maintenance, @@ -6828,6 +6742,16 @@ /obj/item/storage/bag/xeno, /turf/open/floor/iron/white, /area/station/science/cytology) +"cCd" = ( +/obj/effect/spawner/random/trash, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "cCe" = ( /obj/structure/bed/maint, /obj/effect/spawner/random/trash, @@ -6977,10 +6901,6 @@ name = "AI Core Chamber Access"; req_access = list("ai_upload") }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "AI Core shutters"; - name = "AI Core Shutter" - }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) "cED" = ( @@ -7094,10 +7014,6 @@ name = "AI Core Chamber Access"; req_access = list("ai_upload") }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "AI Core shutters"; - name = "AI Core Shutter" - }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) "cFR" = ( @@ -7123,6 +7039,22 @@ "cGj" = ( /turf/closed/wall/r_wall, /area/station/security/execution/education) +"cGG" = ( +/obj/structure/rack, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/clothing/gloves/color/fyellow{ + pixel_y = 2 + }, +/obj/item/wrench, +/obj/item/cigarette/xeno{ + pixel_x = -3; + pixel_y = -9 + }, +/obj/item/clothing/head/utility/welding, +/turf/open/floor/iron/small, +/area/station/maintenance/department/engine/atmos) "cGI" = ( /obj/machinery/firealarm/directional/south, /obj/structure/closet/secure_closet/medical3, @@ -7163,15 +7095,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/service/lawoffice) -"cHG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "cHO" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/full, @@ -7291,10 +7214,11 @@ /area/station/science/lab) "cKc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/flasher/directional/west{ - id = "ai" - }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Core shutters"; + name = "AI Core Shutter" + }, /turf/open/floor/iron/stairs, /area/station/ai_monitored/turret_protected/ai) "cKk" = ( @@ -7730,17 +7654,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/shower) -"cSy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/neutral/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "cSC" = ( /turf/closed/wall, /area/station/commons/vacant_room/office) @@ -7879,19 +7792,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) -"cVm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/aft) "cVx" = ( /obj/effect/turf_decal/siding/dark_red{ dir = 4 @@ -8195,17 +8095,6 @@ /obj/structure/thermoplastic, /turf/open/floor/tram, /area/station/security/tram) -"cZI" = ( -/obj/effect/turf_decal/weather/snow, -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/effect/turf_decal/weather/snow/corner, -/obj/item/food/meat/bacon, -/obj/item/food/meat/bacon, -/obj/item/food/meat/slab/monkey, -/obj/item/food/meat/slab/monkey, -/obj/item/food/meat/slab/monkey, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "cZL" = ( /obj/item/reagent_containers/cup/bucket, /obj/item/mop, @@ -8714,6 +8603,10 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"diZ" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "djf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8893,6 +8786,10 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"dnl" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "dnK" = ( /obj/item/kirbyplants/random, /obj/item/storage/briefcase{ @@ -9078,6 +8975,16 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) +"drB" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/camera/autoname/directional/east, +/obj/machinery/light/cold/directional/east, +/obj/machinery/power/apc/auto_name/directional/east{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "drC" = ( /obj/machinery/vending/cola, /obj/effect/turf_decal/tile/blue{ @@ -9292,6 +9199,15 @@ }, /turf/closed/wall/rust, /area/station/ai_monitored/turret_protected/ai) +"duK" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/right/directional/south, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "duT" = ( /obj/structure/closet/wardrobe/white, /obj/machinery/light/small/directional/west, @@ -10627,22 +10543,6 @@ dir = 1 }, /area/station/science/xenobiology) -"dYc" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_x = 6; - pixel_y = 9 - }, -/obj/item/multitool{ - pixel_x = -6; - pixel_y = 3 - }, -/obj/item/cigarette{ - pixel_x = 5; - pixel_y = 2 - }, -/turf/open/floor/iron/dark, -/area/station/security/lockers) "dYj" = ( /obj/structure/table, /obj/effect/turf_decal/tile/dark_red, @@ -11336,20 +11236,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/security) -"elb" = ( -/obj/structure/table/reinforced, -/obj/structure/displaycase/forsale/kitchen{ - pixel_y = 5 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/plating, -/area/station/service/kitchen) "eld" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, /obj/machinery/camera/directional/west{ @@ -11804,8 +11690,9 @@ "etD" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/flasher/directional/east{ - id = "ai" +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Core shutters"; + name = "AI Core Shutter" }, /turf/open/floor/iron/stairs, /area/station/ai_monitored/turret_protected/ai) @@ -12040,6 +11927,15 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"ezd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/window/right/directional/south{ + name = "Upload Console Window"; + req_access = list("ai_upload") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "ezi" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/cafeteria, @@ -12188,7 +12084,9 @@ /obj/machinery/door/window/right/directional/south{ name = "AI Security Door" }, -/obj/machinery/status_display/evac/directional/west, +/obj/machinery/flasher/directional/west{ + id = "ai" + }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) "eAY" = ( @@ -12298,7 +12196,9 @@ /obj/machinery/door/window/left/directional/south{ name = "AI Security Door" }, -/obj/machinery/status_display/evac/directional/east, +/obj/machinery/flasher/directional/east{ + id = "ai" + }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) "eDo" = ( @@ -12731,6 +12631,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/kitchen/small, /area/station/maintenance/aft) +"eKp" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Xenobiology Lab - Test Chamber"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "eKs" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -12945,17 +12852,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/medical/coldroom) -"ePk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "ePn" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/small/directional/south, @@ -13021,6 +12917,13 @@ "eQt" = ( /turf/closed/wall, /area/station/command/heads_quarters/rd) +"eQv" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar/premium{ + pixel_y = 5 + }, +/turf/open/floor/stone, +/area/station/service/abandoned_gambling_den) "eQC" = ( /obj/effect/spawner/random/maintenance, /obj/effect/spawner/random/structure/girder, @@ -13370,6 +13273,16 @@ /obj/effect/turf_decal/siding/wideplating/dark, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"eWQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "eWY" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -13405,15 +13318,6 @@ }, /turf/open/floor/stone, /area/station/maintenance/aft) -"eXR" = ( -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/landmark/start/hangover, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "eXW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14191,22 +14095,6 @@ /obj/machinery/vending/security, /turf/open/floor/iron, /area/station/security/lockers) -"foI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/atmospherics/components/binary/pump, -/obj/machinery/button/door/directional/north{ - id = "Xenolab"; - name = "Test Chamber Blast Doors"; - pixel_x = 26; - pixel_y = -2; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white/side{ - dir = 8 - }, -/area/station/science/xenobiology) "foL" = ( /obj/structure/sign/poster/official/random/directional/north, /obj/structure/lattice, @@ -14318,6 +14206,20 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"frm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "frC" = ( /obj/effect/turf_decal/tile/neutral/full, /turf/open/floor/iron/dark/smooth_large, @@ -14578,11 +14480,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) -"fvH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "fvL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -15129,6 +15026,14 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/smooth, /area/station/maintenance/disposal/incinerator) +"fEw" = ( +/obj/effect/turf_decal/tile/neutral/full, +/obj/structure/rack, +/obj/item/weldingtool/mini, +/obj/item/tank/internals/emergency_oxygen/empty, +/obj/item/cigarette/rollie, +/turf/open/floor/iron/dark/smooth_large, +/area/station/maintenance/central/lesser) "fEC" = ( /turf/closed/wall, /area/station/maintenance/port/lesser) @@ -15260,14 +15165,11 @@ }, /turf/open/floor/plating/rust, /area/station/ai_monitored/turret_protected/aisat/maint) -"fGk" = ( -/obj/machinery/smartfridge, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) +"fGF" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "fGT" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -15366,6 +15268,12 @@ }, /turf/open/floor/wood/tile, /area/station/service/bar) +"fIn" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "fIw" = ( /obj/effect/landmark/navigate_destination/dockescpod, /turf/open/floor/plating, @@ -15862,6 +15770,13 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) +"fOo" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "fOJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -16062,12 +15977,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/prison) -"fSg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "fSx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -16587,16 +16496,6 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/iron/white/small, /area/station/science/lab) -"gbj" = ( -/obj/item/book/manual/chef_recipes, -/obj/item/stack/package_wrap{ - pixel_y = 2 - }, -/obj/item/holosign_creator/robot_seat/restaurant, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/table, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "gby" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/herringbone, @@ -16639,6 +16538,17 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"gbP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "gcg" = ( /obj/structure/chair{ name = "Defense" @@ -17254,26 +17164,18 @@ "gnd" = ( /turf/closed/wall, /area/station/engineering/atmos/office) +"gns" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "gnA" = ( /obj/structure/cable, /obj/machinery/light/small/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"gnL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/neutral/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "gnQ" = ( /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, /obj/effect/spawner/structure/window, @@ -17355,10 +17257,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"gpy" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "gpA" = ( /obj/effect/turf_decal/siding/thinplating/terracotta, /obj/effect/decal/cleanable/dirt, @@ -17419,6 +17317,24 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) +"gqn" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 8; + pixel_x = 3 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/turf/open/floor/plating, +/area/station/service/kitchen) "gqs" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 @@ -17638,30 +17554,28 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/small, /area/station/engineering/atmos/storage/gas) -"gwm" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/line{ +"gwx" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/line{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/structure/disposalpipe/segment, /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"gwx" = ( -/obj/structure/disposalpipe/segment{ +"gwL" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, -/obj/structure/disposalpipe/segment, /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) @@ -18089,6 +18003,11 @@ }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"gCx" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/components/unary/passive_vent, +/turf/open/space/basic, +/area/space/nearstation) "gCA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18582,23 +18501,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/carpet/royalblue, /area/station/command/corporate_suite) -"gJD" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"gJQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/stack/spacecash/c1, -/obj/item/cigarette/cigar/havana, -/turf/open/floor/light/colour_cycle/dancefloor_b, -/area/station/maintenance/starboard/central) "gJS" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18860,6 +18762,21 @@ }, /turf/open/floor/iron/small, /area/station/engineering/break_room) +"gNA" = ( +/obj/structure/table/reinforced, +/obj/structure/desk_bell{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/turf/open/floor/plating, +/area/station/service/kitchen) "gNC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -19037,6 +18954,23 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/engineering/supermatter/room) +"gQT" = ( +/obj/item/cigarette, +/obj/item/storage/fancy/cigarettes/cigpack_robust{ + pixel_y = 5; + pixel_x = 6 + }, +/obj/item/lighter, +/obj/structure/sign/poster/official/random/directional/east, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 6 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "gRm" = ( /obj/structure/flora/bush/flowers_br, /obj/structure/flora/bush/flowers_pp/style_random, @@ -19051,17 +18985,6 @@ dir = 1 }, /area/station/security/tram) -"gRG" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/machinery/camera/autoname/directional/east, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/freezer, -/area/station/command/heads_quarters/captain/private) "gRH" = ( /obj/machinery/button/door/directional/north{ id = "Cabin4"; @@ -19339,11 +19262,6 @@ "gWb" = ( /turf/closed/wall, /area/station/command/heads_quarters/hos) -"gWf" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "gWk" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood{ @@ -20421,12 +20339,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) -"hmn" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/hallway/primary/central/aft) "hmt" = ( /obj/structure/closet/crate, /obj/item/stack/license_plates/empty/fifty, @@ -20439,6 +20351,19 @@ /obj/effect/spawner/random/contraband/prison, /turf/open/floor/iron, /area/station/security/prison/work) +"hmu" = ( +/obj/effect/spawner/random/entertainment/lighter, +/obj/item/cigarette/rollie/mindbreaker{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/cigarette/rollie/trippy{ + pixel_x = 4 + }, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "hmB" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -20452,21 +20377,6 @@ }, /turf/open/floor/stone, /area/station/service/chapel) -"hmK" = ( -/obj/machinery/door/airlock/wood{ - name = "Bar Backroom" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/stone, -/area/station/service/bar) "hmQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/table, @@ -20744,16 +20654,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"hrl" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/right/directional/west, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/iron, -/area/station/service/kitchen) "hrx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22227,6 +22127,34 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) +"hSj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, +/obj/structure/table, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/item/radio/intercom/directional/south, +/obj/item/c_tube{ + pixel_x = 20 + }, +/obj/item/clothing/head/cone{ + pixel_y = 5; + pixel_x = -6 + }, +/obj/item/clothing/head/cone{ + pixel_y = 7; + pixel_x = -6 + }, +/obj/item/pipe_dispenser{ + pixel_y = 9; + pixel_x = 14 + }, +/obj/item/cigarette{ + pixel_y = 2 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "hSG" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -22264,6 +22192,20 @@ }, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"hTp" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "hTr" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/maintenance{ @@ -22704,6 +22646,16 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"iaI" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/right/directional/west, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/turf/open/floor/iron, +/area/station/service/kitchen) "iaJ" = ( /obj/structure/transit_tube/crossing/horizontal, /obj/structure/lattice/catwalk, @@ -23417,6 +23369,20 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) +"ilK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ilN" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/white/line{ @@ -23428,6 +23394,14 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"img" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "imj" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "permaouter"; @@ -24114,6 +24088,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) +"iwM" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" + }, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/catwalk_floor/iron, +/area/station/science/xenobiology) "ixl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24169,6 +24151,17 @@ }, /turf/open/floor/plating, /area/station/security/brig/entrance) +"iyh" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "iyl" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -24279,20 +24272,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor, /area/station/engineering/atmos/storage/gas) -"izP" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "izT" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 8 @@ -24428,23 +24407,14 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"iBt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood/corner, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/stone, -/area/station/service/bar/backroom) "iBu" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"iBB" = ( +/obj/structure/table, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "iBE" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/cable, @@ -24689,6 +24659,19 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth_corner, /area/station/engineering/supermatter/room) +"iGd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/stone, +/area/station/service/bar/backroom) "iGl" = ( /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) @@ -24808,10 +24791,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"iId" = ( -/obj/structure/table, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "iIs" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -25051,6 +25030,20 @@ /obj/effect/spawner/random/trash/food_packaging, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"iKB" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "iKK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible, /obj/machinery/meter, @@ -25139,6 +25132,21 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/starboard/aft) +"iLS" = ( +/obj/structure/table, +/obj/item/stock_parts/matter_bin{ + pixel_x = 6; + pixel_y = 15 + }, +/obj/item/stock_parts/matter_bin{ + pixel_y = 5 + }, +/obj/item/multitool, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/turf/open/floor/iron/dark, +/area/station/science/lab) "iLV" = ( /obj/machinery/recharge_station, /turf/open/floor/plating, @@ -25788,6 +25796,39 @@ /obj/item/flashlight, /turf/open/floor/plating, /area/station/hallway/secondary/dock) +"iVW" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 10 + }, +/obj/structure/table, +/obj/item/cigarette, +/obj/item/toy/toy_dagger, +/obj/item/clothing/head/collectable/paper, +/obj/item/toy/figure/roboticist{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/toy/figure/syndie{ + pixel_y = 5; + pixel_x = -6 + }, +/obj/item/toy/figure/md{ + pixel_x = 10 + }, +/obj/item/toy/figure/hop{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/toy/figure/ian{ + pixel_x = -5; + pixel_y = -1 + }, +/obj/item/toy/figure/lawyer{ + pixel_x = -10 + }, +/obj/item/toy/figure/detective, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "iVY" = ( /obj/effect/turf_decal/siding/brown{ dir = 1 @@ -26082,19 +26123,6 @@ /obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) -"iZO" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/neutral/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "iZU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26212,6 +26240,21 @@ }, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) +"jbs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=16.0-CentralFore-CentralPort"; + location = "15.0-CentralStarboard-CentralFore" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "jbt" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -26239,17 +26282,6 @@ /obj/machinery/photocopier, /turf/open/floor/iron/dark, /area/station/security/office) -"jbX" = ( -/obj/effect/landmark/start/assistant, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "jch" = ( /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) @@ -26374,6 +26406,16 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"jfk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jfs" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -27699,19 +27741,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) -"jBu" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/wood{ - name = "Bar Backroom" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/bar) "jBA" = ( /obj/structure/cable, /obj/machinery/power/smes/super/full, @@ -28085,6 +28114,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"jHl" = ( +/obj/machinery/smartfridge, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "jHq" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -28108,6 +28145,15 @@ /mob/living/basic/sloth/citrus, /turf/open/floor/iron, /area/station/cargo/storage) +"jHH" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/light/corner{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "jHI" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -28300,17 +28346,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"jKb" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/right/directional/east{ - req_access = list("hydroponics"); - name = "Hydroponics Service Desk" - }, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/hydroponics) "jKg" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -28322,6 +28357,16 @@ dir = 1 }, /area/station/science/xenobiology) +"jKh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "jKq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28469,13 +28514,6 @@ /obj/structure/chair/stool/bar/directional/east, /turf/open/floor/wood/large, /area/station/service/bar) -"jMC" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "jML" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -28657,21 +28695,6 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"jPI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/aft) "jPM" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/security_all, @@ -28810,16 +28833,6 @@ /obj/item/bedsheet/brown, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"jSp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "jSw" = ( /obj/structure/railing, /turf/open/floor/catwalk_floor, @@ -28870,16 +28883,6 @@ /obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/security/detectives_office) -"jTj" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "jTu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28947,23 +28950,6 @@ /obj/item/instrument/harmonica, /turf/open/floor/iron, /area/station/security/prison/rec) -"jUr" = ( -/obj/item/cigarette, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_y = 5; - pixel_x = 6 - }, -/obj/item/lighter, -/obj/structure/sign/poster/official/random/directional/east, -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 6 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "jUx" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -29635,11 +29621,6 @@ dir = 1 }, /area/station/hallway/primary/aft) -"kgu" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/components/unary/passive_vent, -/turf/open/space/basic, -/area/space/nearstation) "kgw" = ( /obj/machinery/door/airlock{ name = "Gambling Den" @@ -29869,19 +29850,6 @@ dir = 8 }, /area/station/hallway/secondary/dock) -"kjx" = ( -/mob/living/basic/goat/pete, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "kjO" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/turf_decal/siding/white{ @@ -29968,11 +29936,6 @@ /obj/machinery/duct, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) -"klf" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "klF" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 @@ -30165,6 +30128,13 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark/small, /area/station/medical/virology) +"kol" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/stack/spacecash/c1, +/obj/item/cigarette/cigar/havana, +/turf/open/floor/light/colour_cycle/dancefloor_b, +/area/station/maintenance/starboard/central) "kop" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30933,6 +30903,15 @@ /obj/structure/flora/bush/flowers_yw, /turf/open/floor/grass, /area/station/service/chapel) +"kzF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "kzI" = ( /obj/effect/turf_decal/bot_white, /obj/effect/spawner/random/structure/closet_empty/crate, @@ -31786,28 +31765,23 @@ dir = 1 }, /area/station/security/prison/shower) -"kPW" = ( -/turf/open/floor/plating, -/area/station/maintenance/port/fore) -"kQe" = ( -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_y = -8; - req_access = list("cargo") +"kPL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_y = 8; - req_access = list("cargo") +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/cargo/storage) +/area/station/hallway/primary/central/fore) +"kPW" = ( +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "kQk" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -31839,6 +31813,19 @@ /obj/machinery/holopad, /turf/open/floor/iron, /area/station/cargo/storage) +"kRf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/wood{ + name = "Bar Backroom" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/bar) "kRs" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -32054,10 +32041,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) -"kUa" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "kUf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32357,20 +32340,6 @@ }, /turf/open/floor/stone, /area/station/service/chapel) -"lab" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/aft) "lae" = ( /obj/machinery/atmospherics/components/binary/pump/on{ name = "Cold Loop to Gas" @@ -32547,6 +32516,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"ldo" = ( +/obj/machinery/griddle, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "ldq" = ( /turf/closed/wall, /area/station/maintenance/department/science/xenobiology) @@ -32610,39 +32583,6 @@ dir = 1 }, /area/station/medical/treatment_center) -"leB" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/dark_red, -/obj/effect/decal/cleanable/dirt, -/obj/item/food/gumball{ - pixel_x = 5; - pixel_y = 9 - }, -/obj/item/cigarette/candy{ - pixel_x = -3; - pixel_y = 10 - }, -/obj/item/food/gumball{ - pixel_x = 2; - pixel_y = 5 - }, -/obj/item/weldingtool/mini{ - pixel_x = 5; - pixel_y = -11 - }, -/obj/item/screwdriver{ - pixel_x = 2; - pixel_y = -3 - }, -/obj/item/storage/box/prisoner{ - pixel_x = 5; - pixel_y = -12 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron/dark, -/area/station/security/processing) "leC" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -32953,6 +32893,39 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"lik" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/dark_red, +/obj/effect/decal/cleanable/dirt, +/obj/item/food/gumball{ + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/cigarette/candy{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/food/gumball{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/weldingtool/mini{ + pixel_x = 5; + pixel_y = -11 + }, +/obj/item/screwdriver{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/storage/box/prisoner{ + pixel_x = 5; + pixel_y = -12 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/security/processing) "lir" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -33210,6 +33183,14 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/security/prison) +"lkS" = ( +/obj/item/toy/plush/slimeplushie{ + name = "Nanners" + }, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/science/xenobiology) "lkV" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance) @@ -33740,6 +33721,21 @@ }, /turf/open/floor/wood/parquet, /area/station/service/greenroom) +"luv" = ( +/obj/machinery/door/airlock/wood{ + name = "Bar Backroom" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/stone, +/area/station/service/bar) "luC" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -35099,19 +35095,6 @@ }, /turf/open/floor/iron/small, /area/station/engineering/atmos) -"lNF" = ( -/obj/effect/spawner/random/entertainment/lighter, -/obj/item/cigarette/rollie/mindbreaker{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/cigarette/rollie/trippy{ - pixel_x = 4 - }, -/obj/effect/mapping_helpers/burnt_floor, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "lNJ" = ( /obj/effect/turf_decal/siding/yellow{ dir = 6 @@ -35357,19 +35340,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"lRM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "lRU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -35631,22 +35601,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/large, /area/station/hallway/primary/central/fore) -"lWp" = ( -/obj/structure/table, -/obj/machinery/light/small/directional/west, -/obj/item/clothing/head/costume/paper_hat{ - pixel_y = 12; - pixel_x = -4 - }, -/obj/item/clothing/head/collectable/petehat{ - pixel_x = 5; - pixel_y = -5 - }, -/obj/item/cigarette/cigar/cohiba{ - pixel_y = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/commons/fitness/locker_room) "lWz" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -35812,23 +35766,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"lYt" = ( -/obj/structure/table/wood/fancy/green, -/obj/item/storage/wallet{ - pixel_x = -3; - pixel_y = 10 - }, -/obj/item/cigarette/cigar{ - pixel_x = -1; - pixel_y = -2 - }, -/obj/item/lighter{ - pixel_x = 11; - pixel_y = -7 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) "lYw" = ( /obj/structure/hedge, /obj/item/radio/intercom/directional/south, @@ -36034,6 +35971,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"mbj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/light/small/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "mbp" = ( /obj/structure/hedge, /obj/machinery/light_switch/directional/east, @@ -36168,14 +36111,6 @@ "mdt" = ( /turf/closed/wall/r_wall, /area/station/science/robotics/mechbay) -"mdG" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) "mdX" = ( /obj/machinery/light/small/directional/north, /obj/machinery/conveyor_switch{ @@ -36275,15 +36210,6 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor, /area/station/maintenance/department/electrical) -"mfV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "mgt" = ( /obj/machinery/vending/boozeomat, /obj/machinery/firealarm/directional/south, @@ -36430,6 +36356,20 @@ /obj/item/clothing/head/costume/tv_head, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) +"mjG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "mjN" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -36586,18 +36526,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"mlD" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mlK" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -37182,6 +37110,15 @@ dir = 1 }, /area/station/hallway/primary/central/fore) +"mvX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "mwn" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -37218,12 +37155,6 @@ /obj/effect/turf_decal/trimline/neutral/end, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"mwJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "mwN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -37763,22 +37694,6 @@ }, /turf/open/floor/carpet, /area/station/medical/psychology) -"mGn" = ( -/obj/structure/rack, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/item/clothing/gloves/color/fyellow{ - pixel_y = 2 - }, -/obj/item/wrench, -/obj/item/cigarette/xeno{ - pixel_x = -3; - pixel_y = -9 - }, -/obj/item/clothing/head/utility/welding, -/turf/open/floor/iron/small, -/area/station/maintenance/department/engine/atmos) "mGp" = ( /obj/structure/table/glass, /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted, @@ -38405,12 +38320,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/open/floor/iron/stairs/left, /area/station/engineering/atmos) -"mRB" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/end, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mRD" = ( /obj/effect/turf_decal/bot_white, /obj/effect/spawner/random/maintenance, @@ -38629,16 +38538,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"mUm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/status_display/ai/directional/west, -/obj/structure/disposalpipe/segment, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mUn" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -38890,14 +38789,6 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"mYT" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" - }, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/catwalk_floor/iron, -/area/station/science/xenobiology) "mYW" = ( /obj/machinery/camera{ c_tag = "Xenobiology - Zoo"; @@ -38983,6 +38874,19 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) +"nam" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/neutral/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "nay" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/public/glass{ @@ -39131,21 +39035,6 @@ }, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"ndJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/landmark/navigate_destination/teleporter, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "ndM" = ( /obj/structure/tank_dispenser/oxygen, /turf/open/floor/iron, @@ -39465,20 +39354,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/hallway/secondary/construction) -"njT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "njW" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -39621,24 +39496,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"nmC" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/item/reagent_containers/cup/bowl{ - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/bowl{ - pixel_y = 8; - pixel_x = 3 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/plating, -/area/station/service/kitchen) "nmH" = ( /obj/structure/railing, /obj/effect/turf_decal/siding/wideplating, @@ -40499,18 +40356,6 @@ }, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"nCt" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "nCC" = ( /obj/structure/chair/stool/directional/south, /obj/effect/turf_decal/siding/yellow{ @@ -40687,14 +40532,6 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/cmo) -"nFH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "nFI" = ( /obj/effect/turf_decal/stripes/end{ dir = 8 @@ -40870,20 +40707,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) -"nHU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "nId" = ( /turf/open/floor/circuit/green, /area/station/ai_monitored/command/nuke_storage) @@ -41224,21 +41047,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"nPY" = ( -/obj/structure/table/reinforced, -/obj/structure/desk_bell{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/plating, -/area/station/service/kitchen) "nQa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -41463,12 +41271,6 @@ }, /turf/open/floor/plating, /area/station/security/tram) -"nTz" = ( -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, -/obj/machinery/chem_dispenser, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/dark, -/area/station/medical/pharmacy) "nTC" = ( /turf/open/floor/iron/white/small, /area/station/security/prison/safe) @@ -41505,6 +41307,17 @@ }, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) +"nUq" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "nUx" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -41625,6 +41438,19 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/tcommsat/server) +"nWa" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "nWh" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/closed/wall/r_wall, @@ -41636,6 +41462,11 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/east, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"nWq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "nWr" = ( /obj/structure/cable, /obj/structure/hedge, @@ -41797,6 +41628,12 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"nZk" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science/xenobiology) "nZq" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -41979,6 +41816,11 @@ /obj/machinery/computer/records/security, /turf/open/floor/iron, /area/station/security/brig/entrance) +"ocC" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar/cohiba, +/turf/open/floor/carpet, +/area/station/commons/dorms) "odh" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/open/floor/plating, @@ -42401,6 +42243,14 @@ /obj/structure/cable, /turf/open/space/basic, /area/space/nearstation) +"ojO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "ojW" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -42652,6 +42502,17 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"ooC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "ooK" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -42665,6 +42526,19 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"ooR" = ( +/mob/living/basic/goat/pete, +/obj/effect/turf_decal/weather/snow, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "opc" = ( /obj/structure/railing{ dir = 1 @@ -42980,6 +42854,17 @@ dir = 1 }, /area/station/cargo/storage) +"ouO" = ( +/obj/effect/turf_decal/weather/snow, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/turf_decal/weather/snow/corner, +/obj/item/food/meat/bacon, +/obj/item/food/meat/bacon, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "ouR" = ( /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line{ @@ -43608,6 +43493,15 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) +"oGt" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/landmark/start/hangover, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "oGL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43642,13 +43536,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/stairs, /area/station/maintenance/port/greater) -"oHp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "oHw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43853,16 +43740,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) -"oJO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4 - }, -/obj/effect/mapping_helpers/mail_sorting/service/bar, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "oJP" = ( /obj/structure/cable, /obj/machinery/telecomms/broadcaster/preset_left, @@ -44211,6 +44088,19 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/science/cytology) +"oQo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "oQr" = ( /obj/machinery/door/poddoor{ id = "QMLoaddoor"; @@ -44262,6 +44152,18 @@ /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/mineral/random/stationside, /area/station/ai_monitored/aisat/exterior) +"oRn" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "oRp" = ( /obj/structure/chair/stool/directional/east, /turf/open/floor/carpet, @@ -44598,13 +44500,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"oWU" = ( -/obj/machinery/door/airlock{ - name = "Hydroponics Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +"oWN" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/end, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "oXa" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -44882,17 +44783,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/grass, /area/station/service/chapel) -"pbO" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "pbT" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -45451,28 +45341,6 @@ /obj/item/weldingtool, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) -"pkQ" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_y = 9; - pixel_x = 4 - }, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -3 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = -7; - pixel_y = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "pkR" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -45672,13 +45540,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) -"pot" = ( -/obj/structure/table/wood, -/obj/item/cigarette/cigar/premium{ - pixel_y = 5 - }, -/turf/open/floor/stone, -/area/station/service/abandoned_gambling_den) "pox" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45916,6 +45777,21 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/dark, /area/station/security/prison/safe) +"prA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/navigate_destination/teleporter, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "prI" = ( /turf/closed/wall, /area/station/engineering/hallway) @@ -45942,6 +45818,22 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/teleporter) +"psk" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = 9 + }, +/obj/item/multitool{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/item/cigarette{ + pixel_x = 5; + pixel_y = 2 + }, +/turf/open/floor/iron/dark, +/area/station/security/lockers) "psn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46525,6 +46417,18 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) +"pCP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "pCQ" = ( /obj/machinery/power/smes/engineering, /obj/structure/cable, @@ -46769,6 +46673,16 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"pGr" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "pGt" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; @@ -46836,6 +46750,14 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) +"pHl" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/machinery/chem_dispenser, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/medical/chemistry) "pHn" = ( /obj/structure/cable, /obj/structure/broken_flooring/singular/directional/east, @@ -47525,11 +47447,6 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"pRR" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "pSc" = ( /obj/item/bikehorn/rubberducky{ pixel_x = 6; @@ -48070,6 +47987,22 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/plating, /area/station/cargo/storage) +"pZJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/components/binary/pump, +/obj/machinery/button/door/directional/north{ + id = "Xenolab"; + name = "Test Chamber Blast Doors"; + pixel_x = 26; + pixel_y = -2; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/xenobiology) "pZK" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -48854,6 +48787,18 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) +"qnP" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/effect/turf_decal/weather/snow, +/obj/structure/closet/secure_closet/freezer/meat, +/obj/effect/turf_decal/weather/snow/corner, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "qoj" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/window/right/directional/west{ @@ -48972,6 +48917,21 @@ dir = 1 }, /area/station/engineering/supermatter/room) +"qqO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "qrb" = ( /obj/structure/sign/warning/biohazard, /turf/closed/wall/r_wall, @@ -49331,6 +49291,16 @@ }, /turf/open/floor/plating/elevatorshaft, /area/station/engineering/break_room) +"qxG" = ( +/obj/structure/table, +/obj/item/storage/bag/tray, +/obj/item/knife/kitchen{ + pixel_y = 2 + }, +/obj/effect/spawner/random/food_or_drink/cake_ingredients, +/obj/item/kitchen/rollingpin, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "qxN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -49892,6 +49862,7 @@ }, /obj/item/pen, /obj/machinery/airalarm/directional/south, +/obj/machinery/status_display/evac/directional/east, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) "qEm" = ( @@ -49912,6 +49883,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/lower) +"qED" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "qEO" = ( /obj/machinery/camera/autoname/directional/east, /obj/machinery/status_display/evac/directional/east, @@ -50082,16 +50058,17 @@ /turf/open/floor/iron/white/side, /area/station/science/lower) "qIb" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock{ - name = "Maintenance" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "qIf" = ( /turf/closed/wall, /area/station/medical/cryo) @@ -51395,25 +51372,6 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, /area/station/science/xenobiology) -"rco" = ( -/obj/machinery/shieldgen, -/obj/item/clothing/gloves/color/black{ - pixel_y = -3; - pixel_x = -2 - }, -/obj/item/cigarette{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/clothing/mask/gas{ - pixel_y = 5 - }, -/obj/item/clothing/head/cone{ - pixel_x = 1; - pixel_y = 15 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "rcE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51621,6 +51579,16 @@ /obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) +"rgg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/service/bar, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "rgA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -51649,6 +51617,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) +"rgY" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "rhg" = ( /obj/machinery/air_sensor/engine_chamber, /obj/effect/turf_decal/stripes/white/line{ @@ -51663,39 +51642,6 @@ /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"rhm" = ( -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 10 - }, -/obj/structure/table, -/obj/item/cigarette, -/obj/item/toy/toy_dagger, -/obj/item/clothing/head/collectable/paper, -/obj/item/toy/figure/roboticist{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/toy/figure/syndie{ - pixel_y = 5; - pixel_x = -6 - }, -/obj/item/toy/figure/md{ - pixel_x = 10 - }, -/obj/item/toy/figure/hop{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/toy/figure/ian{ - pixel_x = -5; - pixel_y = -1 - }, -/obj/item/toy/figure/lawyer{ - pixel_x = -10 - }, -/obj/item/toy/figure/detective, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "rhu" = ( /obj/effect/turf_decal/siding/yellow{ dir = 5 @@ -51817,6 +51763,20 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron/dark/small, /area/station/hallway/primary/fore) +"rjz" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "rjE" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -51837,22 +51797,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"rko" = ( -/obj/structure/sign/directions/evac/directional/west, -/obj/structure/sign/directions/science/directional/west{ - dir = 4; - pixel_y = -8 - }, -/obj/structure/sign/directions/security/directional/west{ - pixel_y = 8 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "rkI" = ( /obj/structure/disposalpipe/trunk, /obj/structure/disposaloutlet{ @@ -51896,6 +51840,21 @@ dir = 1 }, /area/station/commons/dorms) +"rlj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/neutral/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "rlk" = ( /obj/machinery/light/broken/directional/north, /obj/effect/decal/cleanable/dirt/dust, @@ -51933,6 +51892,16 @@ /obj/machinery/air_sensor/ordnance_burn_chamber, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) +"rlZ" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/captain/private) "rma" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 6 @@ -51963,6 +51932,17 @@ dir = 8 }, /area/station/engineering/main) +"rmV" = ( +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/machinery/light_switch/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "rmX" = ( /obj/structure/table, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -52344,14 +52324,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/small, /area/station/ai_monitored/command/storage/eva) -"rtI" = ( -/obj/item/toy/plush/slimeplushie{ - name = "Nanners" - }, -/turf/open/floor/iron/white/corner{ - dir = 8 - }, -/area/station/science/xenobiology) "rtQ" = ( /turf/closed/wall/r_wall, /area/station/security/tram) @@ -52424,6 +52396,19 @@ "ruY" = ( /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"rvf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/neutral/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "rvp" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/hallway/abandoned_command) @@ -53318,6 +53303,23 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"rKo" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/turf/open/floor/plating, +/area/station/service/kitchen) "rKv" = ( /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, @@ -53668,10 +53670,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) -"rQw" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "rQA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54076,21 +54074,6 @@ dir = 4 }, /area/station/science/lobby) -"rWr" = ( -/obj/structure/table, -/obj/item/stock_parts/matter_bin{ - pixel_x = 6; - pixel_y = 15 - }, -/obj/item/stock_parts/matter_bin{ - pixel_y = 5 - }, -/obj/item/multitool, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/turf/open/floor/iron/dark, -/area/station/science/lab) "rWs" = ( /obj/effect/turf_decal/siding/brown{ dir = 5 @@ -54596,6 +54579,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/space/basic, /area/space/nearstation) +"sfb" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/jungle/a/style_random, +/obj/structure/flora/bush/flowers_pp/style_random, +/obj/structure/window/spawner/directional/east, +/obj/machinery/light/floor, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/service/hydroponics) "sfd" = ( /obj/effect/turf_decal/siding/blue{ dir = 10 @@ -54816,15 +54808,18 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"sjK" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 +"sjy" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency{ + pixel_x = -2; + pixel_y = -3 }, +/obj/item/cigarette/cigar, /obj/effect/mapping_helpers/broken_floor, -/obj/effect/spawner/random/trash, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron/smooth, +/area/station/command/bridge) "sjL" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line{ @@ -54870,14 +54865,6 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/prison) -"skp" = ( -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/obj/machinery/chem_dispenser, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron, -/area/station/medical/chemistry) "skN" = ( /obj/structure/table/wood, /obj/machinery/camera/directional/south{ @@ -55039,23 +55026,25 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"sne" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -3 +"smJ" = ( +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_y = -8; + req_access = list("cargo") }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_y = 8; + req_access = list("cargo") }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/open/floor/plating, -/area/station/service/kitchen) +/turf/open/floor/iron, +/area/station/cargo/storage) "snj" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment{ @@ -55370,16 +55359,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"srg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "srn" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, @@ -56470,17 +56449,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"sKm" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "sKq" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -57294,6 +57262,10 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) +"sXB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "sXD" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/power/apc/auto_name/directional/east, @@ -57582,6 +57554,22 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/textured_large, /area/station/science/lab) +"tbC" = ( +/obj/structure/sign/directions/evac/directional/west, +/obj/structure/sign/directions/science/directional/west{ + dir = 4; + pixel_y = -8 + }, +/obj/structure/sign/directions/security/directional/west{ + pixel_y = 8 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "tbD" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -57831,6 +57819,22 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) +"tfB" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/table/wood, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stock_parts/power_store/cell/crap{ + pixel_y = 5 + }, +/obj/item/cigarette/pipe/cobpipe{ + pixel_x = 1; + pixel_y = -2 + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/wood/tile, +/area/station/command/corporate_showroom) "tfE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -57921,6 +57925,25 @@ dir = 1 }, /area/station/science/research) +"thg" = ( +/obj/machinery/shieldgen, +/obj/item/clothing/gloves/color/black{ + pixel_y = -3; + pixel_x = -2 + }, +/obj/item/cigarette{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/clothing/mask/gas{ + pixel_y = 5 + }, +/obj/item/clothing/head/cone{ + pixel_x = 1; + pixel_y = 15 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "thx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -58312,13 +58335,20 @@ /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"tnN" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, +"tnK" = ( +/obj/structure/table/reinforced, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 5 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, /turf/open/floor/plating, -/area/station/maintenance/central/greater) +/area/station/service/kitchen) "tnZ" = ( /obj/structure/bookcase/random, /obj/structure/sign/poster/official/random/directional/west, @@ -59395,6 +59425,15 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron, /area/station/engineering/atmos) +"tFE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/neutral/corner, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "tFH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59417,10 +59456,6 @@ /obj/machinery/chem_master, /turf/open/floor/iron, /area/station/medical/chemistry) -"tGp" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "tGq" = ( /turf/closed/wall, /area/station/service/kitchen/coldroom) @@ -59580,18 +59615,6 @@ }, /turf/open/floor/plating, /area/station/security/brig/entrance) -"tJF" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/rack, -/obj/item/storage/toolbox/emergency{ - pixel_x = -2; - pixel_y = -3 - }, -/obj/item/cigarette/cigar, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/iron/smooth, -/area/station/command/bridge) "tJX" = ( /turf/open/floor/plating, /area/station/maintenance/aft) @@ -59864,6 +59887,12 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) +"tOC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/hallway/primary/central/aft) "tOO" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -20; @@ -61218,6 +61247,15 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"ujk" = ( +/obj/effect/turf_decal/weather/snow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "ujq" = ( /obj/structure/disposalpipe/segment, /obj/structure/closet/emcloset, @@ -62087,6 +62125,23 @@ /obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"uwX" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/storage/wallet{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/cigarette/cigar{ + pixel_x = -1; + pixel_y = -2 + }, +/obj/item/lighter{ + pixel_x = 11; + pixel_y = -7 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/qm) "uxd" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63325,6 +63380,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"uQY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "uRe" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/turf_decal/tile/red{ @@ -63751,17 +63811,6 @@ /obj/effect/turf_decal/stripes/end, /turf/open/floor/plating, /area/station/security/brig/entrance) -"uYM" = ( -/obj/machinery/microwave{ - pixel_y = 5 - }, -/obj/machinery/light_switch/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "uYO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -65079,6 +65128,17 @@ }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) +"vqY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "vrf" = ( /obj/structure/hedge, /obj/machinery/light/small/directional/north, @@ -65305,18 +65365,6 @@ /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) -"vuD" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "vuH" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc/auto_name/directional/west, @@ -65837,15 +65885,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/research) -"vCi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/neutral/corner, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "vCl" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -66229,11 +66268,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"vIz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "vIC" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -66723,6 +66757,28 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"vPW" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 9; + pixel_x = 4 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "vPY" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ @@ -67997,14 +68053,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"wlN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "wlS" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ @@ -68155,6 +68203,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"wnI" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "wnR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68208,20 +68259,6 @@ /obj/item/wrench, /turf/open/floor/catwalk_floor, /area/station/science/xenobiology) -"woK" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "woP" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -68338,16 +68375,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/security/prison/workout) -"wrj" = ( -/obj/effect/spawner/random/trash, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "wrk" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -68837,15 +68864,6 @@ dir = 1 }, /area/station/science/xenobiology) -"wya" = ( -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 1 - }, -/obj/machinery/chem_dispenser, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/pharmacy) "wyb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -69500,6 +69518,16 @@ /obj/structure/window/spawner/directional/south, /turf/open/misc/sandy_dirt, /area/station/hallway/secondary/entry) +"wJJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "wJK" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 4 @@ -69667,6 +69695,13 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) +"wLU" = ( +/obj/machinery/door/airlock{ + name = "Hydroponics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "wLZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/effect/decal/cleanable/dirt, @@ -69787,18 +69822,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"wNs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "wNv" = ( /obj/effect/landmark/navigate_destination/bridge, /turf/open/floor/iron/smooth_half, @@ -70890,15 +70913,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"xcz" = ( -/obj/structure/window/spawner/directional/west, -/obj/structure/flora/bush/jungle/a/style_random, -/obj/structure/flora/bush/flowers_pp/style_random, -/obj/structure/window/spawner/directional/east, -/obj/machinery/light/floor, -/obj/structure/window/spawner/directional/north, -/turf/open/floor/grass, -/area/station/service/hydroponics) "xcF" = ( /turf/open/floor/iron, /area/station/commons/dorms) @@ -71570,18 +71584,6 @@ /obj/structure/cable/multilayer, /turf/open/floor/plating, /area/station/science/xenobiology) -"xlP" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) -"xlU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "xlZ" = ( /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) @@ -72025,15 +72027,6 @@ dir = 4 }, /area/station/command/heads_quarters/ce) -"xrX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/window/right/directional/south{ - name = "Upload Console Window"; - req_access = list("ai_upload") - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "xrZ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -72294,6 +72287,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"xuN" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/machinery/chem_dispenser, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, +/area/station/medical/pharmacy) "xuO" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -73582,11 +73581,22 @@ "xMY" = ( /turf/closed/wall/r_wall, /area/station/command/teleporter) +"xNe" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/showroomfloor, +/area/station/commons/toilet/auxiliary) "xNh" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, /turf/open/floor/iron, /area/station/security/lockers) +"xNp" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "xNw" = ( /turf/closed/wall, /area/station/science/breakroom) @@ -73748,20 +73758,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"xPJ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "xPN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -74280,6 +74276,16 @@ /obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/science/cubicle) +"xVB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "xVG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -74780,12 +74786,6 @@ dir = 8 }, /area/station/hallway/secondary/entry) -"ybF" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/white/side{ - dir = 4 - }, -/area/station/science/xenobiology) "ybJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -75096,17 +75096,13 @@ /obj/machinery/modular_computer/preset/civilian{ dir = 4 }, +/obj/machinery/status_display/evac/directional/west, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) "yfQ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"yfX" = ( -/obj/machinery/space_heater, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "yfY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -75117,13 +75113,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"ygf" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Xenobiology Lab - Test Chamber"; - network = list("ss13","rd","xeno") - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "ygu" = ( /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) @@ -75338,6 +75327,16 @@ "yjd" = ( /turf/open/floor/iron/dark, /area/station/security/lockers) +"yji" = ( +/obj/item/book/manual/chef_recipes, +/obj/item/stack/package_wrap{ + pixel_y = 2 + }, +/obj/item/holosign_creator/robot_seat/restaurant, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/table, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "yjt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -86408,7 +86407,7 @@ mnZ kdH nJU kEA -kQe +smJ ouR oRr kdH @@ -86608,7 +86607,7 @@ gKs gKs aOb utf -mfV +jfk mFD mrW hYC @@ -87659,7 +87658,7 @@ oUq sav gIM amH -ccO +hSj bNq olj gBh @@ -89473,7 +89472,7 @@ dDB dDB dDB slY -rhm +iVW cis slY slY @@ -90780,7 +90779,7 @@ yjc vLP oyZ lIq -lYt +uwX mhk xYJ lwC @@ -91001,7 +91000,7 @@ lER hRO knv rKZ -mGn +cGG lvK jiC vdw @@ -92107,7 +92106,7 @@ xfN daq xFe lgh -dYc +psk nlf yjd xFe @@ -93657,7 +93656,7 @@ xur xur iYY xur -leB +lik dYj wuc aTn @@ -93697,7 +93696,7 @@ dDB dDB dDB qyN -kgu +gCx wOl dby ktT @@ -94636,7 +94635,7 @@ frI frI oyp mXZ -mUm +eWQ mAR qWG fkS @@ -95344,7 +95343,7 @@ rrG gDq qqJ yjE -rco +thg yjE dGV fDO @@ -96953,7 +96952,7 @@ avp avp qiI jVM -bLS +aVS xeO xeO xeO @@ -97225,8 +97224,8 @@ yfC yfC yfC xli -jPI -cVm +qqO +aaf ifH iuR tYX @@ -97467,9 +97466,9 @@ eXB eIW mqz jVM -srg -oWU -ayT +xVB +wLU +jHH sZo yfC lnN @@ -97483,7 +97482,7 @@ qiC mKY hoc lhT -jbX +rgY diP rgM trB @@ -97724,7 +97723,7 @@ uGD nAq pSI jVM -srg +xVB jVM nrg xXD @@ -97739,8 +97738,8 @@ oun wBc kxY mka -vCi -gnL +tFE +rlj diP trB trB @@ -97959,7 +97958,7 @@ xMk xsh hcc xGJ -bBN +tfB jwi qtd hOg @@ -98759,10 +98758,10 @@ cJv yfC yfC erf -xcz +sfb tkm yfC -jKb +cyP tQC yfC yfC @@ -99278,7 +99277,7 @@ sGN bzj tmD lEs -jUr +gQT uMg msk wmX @@ -99522,7 +99521,7 @@ nlQ chI mTT jVM -jTj +jKh keb jVM tGq @@ -99533,7 +99532,7 @@ lAt xmt xmt xmt -hrl +iaI xmt xmt xli @@ -99779,10 +99778,10 @@ uvs mpx oxy jVM -jTj +jKh jVM tGq -bTD +qnP tGq sxl aTg @@ -100026,7 +100025,7 @@ opn jwa opn jYY -ndJ +prA rJZ wQB xZS @@ -100039,7 +100038,7 @@ jVM lzB jVM haH -cZI +ouO tGq ipG aTg @@ -100284,7 +100283,7 @@ jLR jLR xMY dCu -eXR +oGt eBC jVM jVM @@ -100296,17 +100295,17 @@ jVM ulE jVM amK -kjx +ooR rzH mog aTg -gbj -iId -iId -bvi +yji +iBB +iBB +ldo aTg aTg -aIr +duK sWq gLO pbD @@ -100553,17 +100552,17 @@ jVM ruS sem bxl -bMn +ujk tGq -uYM +rmV aTg -pkQ -bBL -iId -bvi +vPW +qxG +iBB +ldo aTg aTg -aIr +duK bIN bVJ sTb @@ -100785,7 +100784,7 @@ ycC ycC noq ueC -tJF +sjy qoD jnZ jEx @@ -101062,8 +101061,8 @@ xND ind jVM oZy -wlN -wlN +img +img uvx jVM tGq @@ -101071,11 +101070,11 @@ tGq tGq xmt ohy -fGk -nmC -nPY -sne -elb +jHl +gqn +gNA +rKo +tnK xmt xmt xli @@ -101312,13 +101311,13 @@ lun wNv mzM wCM -woK +iKB kJR qcB jVM jVM jVM -wrj +cCd jVM sON aYj @@ -101569,13 +101568,13 @@ gfs ivl mzM wCM -ePk +vqY tgx jVM -yfX -pRR +bZY +qED wzj -xlU +kzF jVM oVl uBN @@ -101826,17 +101825,17 @@ jxC ufb xCl cYY -wNs +qIb wiF jVM jVM jVM jVM -oJO +rgg eoM cqD -iBt -hmK +iGd +luv dMi vkh caW @@ -102083,13 +102082,13 @@ jye jOs mAv khS -aqG +jbs mwN jVM -sjK -tnN -nFH -cHG +bjf +fOo +ojO +mvX jVM iXW dRb @@ -102340,10 +102339,10 @@ quU quU tsF ubK -lRM -vuD -qIb -gJD +oQo +oRn +ooC +wJJ hPb jVM cCe @@ -102597,7 +102596,7 @@ liG rRQ tsF kiB -izP +bcN wNW jVM jVM @@ -102854,7 +102853,7 @@ jyu ezx tsF vIJ -nHU +frm twJ tgl iSi @@ -103111,7 +103110,7 @@ uff mak tsF qlV -ePk +vqY tmQ tgl lut @@ -103368,7 +103367,7 @@ rth mbp tsF kpF -ePk +vqY wQB tgl lvA @@ -103393,8 +103392,8 @@ ycS swW ove nUd -cSy -bpY +gbP +nam sMt tYX dDB @@ -103625,7 +103624,7 @@ jyG meu tsF lAS -ePk +vqY wQB tgl wHO @@ -103651,7 +103650,7 @@ jFm ove nUd vip -njT +mjG fGT tYX dDB @@ -103882,7 +103881,7 @@ lGK mfP tsF lPo -wNs +qIb wQB tgl tgl @@ -104139,7 +104138,7 @@ lGK jOS tsF vrn -ePk +vqY smf aCO iLA @@ -104149,7 +104148,7 @@ qDd xHD xHD vkh -jBu +kRf vkh vkh vkh @@ -104165,7 +104164,7 @@ vkh vkh bnU mVc -lab +rjz axd xli qir @@ -104396,7 +104395,7 @@ lGK mgt tsF kiO -nCt +pCP wNW coC pVj @@ -104419,7 +104418,7 @@ khY khY khY lmz -rko +tbC diP vip gaj @@ -104653,12 +104652,12 @@ iaw uoB tsF kjg -iZO -awC -gwm -xPJ -pbO -pbO +rvf +ilK +hTp +kPL +iyh +iyh icN mZd sDZ @@ -104669,16 +104668,16 @@ mut pjA mut otJ -pbO -bxc -pbO -mlD -xPJ -pbO -mRB -jSp -klf -oHp +iyh +nWa +iyh +gwL +kPL +iyh +oWN +pGr +nWq +gns huj fIj uhM @@ -104933,12 +104932,12 @@ aPK aPK aPK mcS -sKm +nUq dRT dRT nNz inU -hmn +tOC bcv kov viy @@ -105230,7 +105229,7 @@ vTo wYA wPP uer -skp +pHl tFW xqN rnE @@ -106207,7 +106206,7 @@ bmz mSa tPW qUt -bxk +fEw rex axz qUt @@ -106705,7 +106704,7 @@ xRH gcz wSZ jdp -gRG +rlZ wSZ nNj ujq @@ -106757,7 +106756,7 @@ qDK vEz mGh wfr -wya +cev lHJ vKY lSK @@ -107536,7 +107535,7 @@ toC bGY wCK tDd -nTz +xuN wfr sCp vJR @@ -108257,7 +108256,7 @@ fuD xVV eWP lNN -lWp +bkF xhD heN vjI @@ -111911,7 +111910,7 @@ ldq qdR naN vOr -mdG +xNe uLj oig oig @@ -114195,7 +114194,7 @@ xPv uSi wtu wKz -xrX +ezd xBj xUB yha @@ -114415,7 +114414,7 @@ aBL rqw jsE rqw -agp +ocC vpP pzd bqy @@ -115981,7 +115980,7 @@ cZx vMC apF vfk -rWr +iLS tLn pzK tbD @@ -116217,7 +116216,7 @@ ogE jhm qJH wQc -pot +eQv rUq lyq wOp @@ -118065,7 +118064,7 @@ gYH sYa yfs hPU -ybF +nZk fKN xMc xKX @@ -118322,7 +118321,7 @@ uEw sYa cqn xTR -foI +pZJ gJS lIL gJS @@ -118577,10 +118576,10 @@ cVQ rOX qBd sYa -rtI +lkS dXU aSy -mYT +iwM tst deQ aSy @@ -119093,11 +119092,11 @@ ugX sYa sYa sYa -xlP -xlP -fSg -xlP -xlP +wnI +wnI +fIn +wnI +wnI eWI eWI eWI @@ -119350,11 +119349,11 @@ uWl nbF cVz sYa -rQw -xlP -fSg -xlP -tGp +xNp +wnI +fIn +wnI +dnl eWI asc usJ @@ -119607,11 +119606,11 @@ saY qbo hnP sYa -xlP -xlP -jMC -xlP -xlP +wnI +wnI +aws +wnI +wnI eWI eKf tNT @@ -119864,11 +119863,11 @@ bXG jlN duc sYa -axN -xlP -gWf -xlP -xlP +cmO +wnI +fGF +wnI +wnI eWI fxN clb @@ -120121,11 +120120,11 @@ pXQ kwA xaR sYa -xlP -xlP -gpy -xlP -xlP +wnI +wnI +sXB +wnI +wnI eWI eWI eWI @@ -120378,11 +120377,11 @@ bqR ryy boW sYa -mwJ -xlP -ygf -xlP -fvH +mbj +wnI +eKp +wnI +apw eWI blb blb @@ -124212,7 +124211,7 @@ blb dDB xaN dNG -gJQ +kol vlq vFn qNO @@ -125251,10 +125250,10 @@ oZz xZJ aVT enG -kUa -kUa -kUa -vIz +diZ +diZ +diZ +uQY xpR kQt nhl @@ -125508,7 +125507,7 @@ nWh xEn nWh xnR -aLC +drB wLZ xwn cns @@ -131192,7 +131191,7 @@ xqq xLY ylD lye -lNF +hmu ylD ylD ylD diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index daba4820f69e4..1b962db26c34d 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -2070,6 +2070,24 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/port) +"axW" = ( +/obj/effect/turf_decal/box/red, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) +"axX" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "ayh" = ( /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/ce) @@ -2706,28 +2724,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/service/hydroponics) -"aHq" = ( -/obj/structure/table/wood, -/obj/item/storage/box/matches{ - pixel_x = -2; - pixel_y = 3 - }, -/obj/item/cigarette/cigar{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 3; - pixel_y = 1 - }, -/obj/item/cigarette/cigar{ - pixel_x = 4 - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/command/corporate_showroom) "aHr" = ( /obj/item/kirbyplants/random, /obj/machinery/light/directional/south, @@ -6182,23 +6178,6 @@ "bAR" = ( /turf/closed/wall/r_wall, /area/station/engineering/break_room) -"bAS" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/cigarette/cigar/havana{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/item/cigarette/cigar{ - pixel_x = -2; - pixel_y = 2 - }, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/hos) "bAU" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/lattice, @@ -6670,17 +6649,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/herringbone, /area/station/cargo/miningoffice) -"bFD" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "bFS" = ( /obj/effect/turf_decal/trimline/blue/filled/warning, /obj/structure/cable, @@ -7264,28 +7232,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"bLy" = ( -/obj/machinery/computer/cargo{ - dir = 8 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Cargo Bay - Starboard"; - name = "cargo camera" - }, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/east{ - id = "cargounload"; - name = "Loading Doors"; - pixel_y = 6 - }, -/obj/machinery/button/door/directional/east{ - id = "cargoload"; - name = "Loading Doors"; - pixel_y = -6 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "bLC" = ( /obj/structure/extinguisher_cabinet/directional/west, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -7442,6 +7388,14 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron, /area/station/commons/lounge) +"bNO" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2{ + dir = 6 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "bNT" = ( /obj/effect/turf_decal/trimline/neutral/warning{ dir = 8 @@ -8810,6 +8764,23 @@ "cfu" = ( /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) +"cfv" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/cigarette/cigar/havana{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/cigarette/cigar{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/hos) "cfx" = ( /obj/structure/cable, /obj/machinery/computer/station_alert{ @@ -10129,6 +10100,23 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) +"cwc" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/poddoor/preopen{ + id = "sci_experimentor"; + name = "Experimentor Blast Door" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/science/explab) "cwe" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -11496,6 +11484,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/theater) +"cNy" = ( +/obj/effect/decal/remains/xeno, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "cNH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11798,6 +11790,13 @@ /obj/structure/flora/bush/lavendergrass/style_random, /turf/open/misc/grass, /area/station/hallway/primary/fore) +"cRE" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Security - Armory External"; + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) "cRJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -13186,10 +13185,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/security) -"djY" = ( -/obj/structure/sign/warning/secure_area/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "dka" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -13913,11 +13908,6 @@ /obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"dtk" = ( -/obj/structure/table/wood/poker, -/obj/item/cigarette/pipe, -/turf/open/floor/carpet/green, -/area/station/commons/lounge) "dtn" = ( /obj/machinery/airalarm/directional/east, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -14671,10 +14661,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/xenobiology) -"dDB" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "dDT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/trinary/filter{ @@ -14976,6 +14962,17 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/plating, /area/station/maintenance/port) +"dHU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "dHX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -15112,6 +15109,13 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) +"dJE" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral/full, +/obj/machinery/holopad, +/obj/structure/cable, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "dJH" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -15915,6 +15919,13 @@ /obj/item/assembly/flash/handheld, /turf/open/floor/iron/grimy, /area/station/command/bridge) +"dTr" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "dTA" = ( /obj/machinery/duct, /obj/effect/turf_decal/tile/purple/half/contrasted{ @@ -15957,12 +15968,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"dTS" = ( -/obj/structure/sign/nanotrasen{ - pixel_y = -32 - }, -/turf/open/space/basic, -/area/space/nearstation) "dUb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16302,6 +16307,20 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"dYM" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/right/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/disposal) "dYQ" = ( /obj/structure/table, /obj/machinery/computer/records/medical/laptop{ @@ -17552,16 +17571,6 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron/dark, /area/station/service/bar) -"eqP" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Xenobiology - Secure Cell Interior"; - name = "xenobiology camera"; - network = list("ss13","xeno","rd") - }, -/obj/machinery/status_display/ai/directional/west, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "eqU" = ( /turf/open/space, /area/space) @@ -17612,6 +17621,17 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/supply) +"erA" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/effect/turf_decal/trimline/neutral, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/box/white, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "erM" = ( /obj/machinery/vending/cigarette, /obj/effect/turf_decal/bot, @@ -19103,18 +19123,6 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/escape) -"eKV" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Primary Restroom"; - name = "restroom camera" - }, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/toilet/locker) "eKX" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20403,6 +20411,11 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron, /area/station/engineering/atmos/hfr_room) +"fbh" = ( +/obj/structure/table/wood/poker, +/obj/item/cigarette/pipe, +/turf/open/floor/carpet/green, +/area/station/commons/lounge) "fbn" = ( /obj/effect/landmark/start/station_engineer, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -20748,17 +20761,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"fff" = ( -/obj/machinery/power/apc/auto_name/directional/north{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "ffi" = ( /obj/structure/cable, /obj/machinery/power/solar_control{ @@ -22513,6 +22515,9 @@ }, /turf/open/floor/iron, /area/station/maintenance/port) +"fBr" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "fBG" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 5 @@ -22703,6 +22708,10 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"fEw" = ( +/obj/structure/sign/warning/electric_shock/directional/east, +/turf/open/space/basic, +/area/space/nearstation) "fEx" = ( /obj/effect/decal/cleanable/dirt, /obj/item/kirbyplants/random, @@ -23256,6 +23265,17 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/east, /turf/open/floor/iron, /area/station/security/prison) +"fLx" = ( +/obj/machinery/power/apc/auto_name/directional/north{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "fLJ" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -25777,12 +25797,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/engineering/atmos) -"gqG" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/scrubber, -/obj/structure/sign/poster/official/there_is_no_gas_giant/directional/east, -/turf/open/floor/iron/textured_large, -/area/station/engineering/atmos/project) "gqH" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -26782,9 +26796,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/exit) -"gCt" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "gCB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27880,14 +27891,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/service/cafeteria) -"gQF" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "gQH" = ( /obj/structure/sign/warning/secure_area/directional/west, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -28621,10 +28624,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/supermatter/room) -"haF" = ( -/obj/structure/sign/warning/secure_area/directional/west, -/turf/open/space/basic, -/area/space/nearstation) "haG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/green/filled/line{ @@ -32156,6 +32155,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/warehouse) +"hXJ" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Xenobiology - Secure Cell Interior"; + name = "xenobiology camera"; + network = list("ss13","xeno","rd") + }, +/obj/machinery/status_display/ai/directional/west, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "hXO" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -32893,6 +32902,10 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/chapel) +"ifA" = ( +/obj/structure/sign/warning/secure_area/directional/south, +/turf/open/space/basic, +/area/space/nearstation) "ifR" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -33153,6 +33166,25 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/maintenance/department/security) +"ika" = ( +/obj/item/phone{ + desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 6 + }, +/obj/item/cigarette/cigar/havana{ + pixel_x = 2 + }, +/obj/item/cigarette/cigar{ + pixel_x = 4.5 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) "ike" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /obj/effect/decal/cleanable/dirt, @@ -33353,6 +33385,16 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, /turf/open/floor/iron, /area/station/science/ordnance/office) +"imj" = ( +/obj/item/reagent_containers/condiment/enzyme, +/obj/item/kitchen/rollingpin, +/obj/structure/table, +/obj/item/reagent_containers/cup/bowl, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 5 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "imp" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33620,13 +33662,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"iqg" = ( -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral/full, -/obj/machinery/holopad, -/obj/structure/cable, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "iqj" = ( /obj/effect/turf_decal/trimline/purple/filled/warning, /turf/open/floor/iron/white, @@ -34770,11 +34805,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/exit) -"iFt" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "iFD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/wood, @@ -35076,10 +35106,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"iJw" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "iJE" = ( /obj/structure/table/wood/fancy, /obj/machinery/door/window/left/directional/east, @@ -36153,12 +36179,6 @@ "iYi" = ( /turf/closed/wall, /area/station/commons/toilet/locker) -"iYp" = ( -/obj/structure/cable, -/obj/machinery/nuclearbomb/selfdestruct, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/nuke_storage) "iYq" = ( /obj/machinery/computer/prisoner/management{ dir = 4 @@ -38931,6 +38951,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"jFu" = ( +/obj/structure/cable, +/obj/machinery/nuclearbomb/selfdestruct, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) "jFC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40161,10 +40187,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"jUT" = ( -/obj/structure/sign/warning/electric_shock/directional/west, -/turf/open/space/basic, -/area/space/nearstation) "jUU" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -44532,13 +44554,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"lcP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "lcT" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -47604,16 +47619,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"lOw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer2{ - dir = 4 - }, -/obj/machinery/meter/layer2, -/obj/structure/sign/warning/no_smoking/directional/east, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "lOA" = ( /obj/machinery/suit_storage_unit/atmos, /obj/effect/turf_decal/box/red/corners{ @@ -49012,6 +49017,16 @@ /obj/effect/spawner/random/structure/tank_holder, /turf/open/floor/plating, /area/station/maintenance/fore) +"miN" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 8 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "mjo" = ( /obj/machinery/recharge_station, /obj/effect/decal/cleanable/dirt, @@ -49283,6 +49298,14 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/pumproom) +"mnQ" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/toilet/locker) "mnW" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, @@ -52050,18 +52073,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/station/service/library) -"mXr" = ( -/obj/structure/cable, -/obj/structure/table/wood, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 3 - }, -/obj/item/cigarette/cigar/havana{ - pixel_x = -3 - }, -/obj/item/cigarette/cigar, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/captain) "mXy" = ( /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hop) @@ -53731,6 +53742,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/lobby) +"nwd" = ( +/obj/structure/sign/warning/electric_shock/directional/west, +/turf/open/space/basic, +/area/space/nearstation) "nwn" = ( /obj/structure/table/reinforced, /obj/item/hfr_box/body/waste_output, @@ -54395,10 +54410,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"nET" = ( -/obj/structure/sign/warning/electric_shock/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "nEZ" = ( /turf/closed/wall/r_wall, /area/station/security/mechbay) @@ -54542,17 +54553,6 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"nHc" = ( -/obj/structure/table/wood, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 3 - }, -/obj/item/cigarette/cigar/havana{ - pixel_x = -3 - }, -/obj/item/cigarette/cigar, -/turf/open/floor/wood, -/area/station/command/meeting_room/council) "nHd" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance_hatch{ @@ -56820,6 +56820,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison/garden) +"okS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "okV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/plumbed{ @@ -57865,11 +57870,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) -"ozA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "ozE" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, @@ -58084,6 +58084,12 @@ }, /turf/open/floor/iron/dark/textured_half, /area/station/service/janitor) +"oDt" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) "oDw" = ( /obj/structure/table/glass, /obj/machinery/computer/records/medical/laptop, @@ -58255,12 +58261,6 @@ }, /turf/open/floor/engine, /area/station/science/genetics) -"oFv" = ( -/obj/docking_port/stationary/syndicate/northeast{ - dir = 8 - }, -/turf/open/space, -/area/space) "oFC" = ( /obj/machinery/airalarm/directional/west, /obj/structure/tank_dispenser, @@ -58297,20 +58297,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/station/command/corporate_showroom) -"oGq" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/delivery_chute{ - dir = 4 - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/window/right/directional/east, -/turf/open/floor/iron, -/area/station/maintenance/disposal) "oGr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/fueltank, @@ -61629,6 +61615,16 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/department/science/xenobiology) +"pzg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer2{ + dir = 4 + }, +/obj/machinery/meter/layer2, +/obj/structure/sign/warning/no_smoking/directional/east, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "pzh" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/brigdoor/right/directional/west{ @@ -62035,16 +62031,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"pDx" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "pDz" = ( /obj/machinery/quantum_server, /obj/effect/turf_decal/bot/left, @@ -62591,10 +62577,6 @@ /obj/effect/turf_decal/tile/neutral/full, /turf/open/floor/iron/large, /area/station/science/lab) -"pJz" = ( -/obj/effect/decal/remains/xeno, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "pJM" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -64020,13 +64002,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"pYW" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Security - Armory External"; - dir = 10 - }, -/turf/open/space/basic, -/area/space/nearstation) "pZc" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64108,23 +64083,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"pZM" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/poddoor/preopen{ - id = "sci_experimentor"; - name = "Experimentor Blast Door" - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/explab) "qaq" = ( /obj/structure/table, /obj/item/clothing/gloves/latex, @@ -64721,6 +64679,11 @@ }, /turf/open/floor/iron/large, /area/station/medical/medbay) +"qil" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "qin" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65485,6 +65448,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/captain) +"qtd" = ( +/obj/structure/sign/warning/secure_area/directional/west, +/turf/open/space/basic, +/area/space/nearstation) "qtm" = ( /obj/structure/chair/pew/right, /turf/open/floor/iron/chapel{ @@ -65962,6 +65929,17 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/engineering/main) +"qzE" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/cigarette/cigar, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) "qzR" = ( /obj/structure/toilet{ dir = 8 @@ -67136,6 +67114,18 @@ dir = 4 }, /area/station/medical/medbay/lobby) +"qNh" = ( +/obj/structure/cable, +/obj/structure/table/wood, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/cigarette/cigar, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain) "qNi" = ( /obj/structure/lattice/catwalk, /turf/open/space/basic, @@ -67311,6 +67301,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/maintenance/department/science/xenobiology) +"qPW" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "qPX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, @@ -68738,6 +68732,21 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"rke" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/blood/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/reagent_containers/blood/random, +/obj/effect/turf_decal/bot, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/iron, +/area/station/service/kitchen/abandoned) "rkr" = ( /obj/structure/chair{ dir = 4 @@ -69603,6 +69612,12 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/construction) +"rvA" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) "rvG" = ( /obj/effect/landmark/start/station_engineer, /obj/effect/turf_decal/tile/yellow/half/contrasted{ @@ -71045,6 +71060,28 @@ }, /turf/closed/wall/r_wall, /area/station/engineering/atmos/storage/gas) +"rOb" = ( +/obj/machinery/computer/cargo{ + dir = 8 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Cargo Bay - Starboard"; + name = "cargo camera" + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/bot, +/obj/machinery/button/door/directional/east{ + id = "cargounload"; + name = "Loading Doors"; + pixel_y = 6 + }, +/obj/machinery/button/door/directional/east{ + id = "cargoload"; + name = "Loading Doors"; + pixel_y = -6 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "rOc" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/large, @@ -72069,6 +72106,12 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/medical/virology) +"rZn" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/structure/sign/poster/official/there_is_no_gas_giant/directional/east, +/turf/open/floor/iron/textured_large, +/area/station/engineering/atmos/project) "rZt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72592,10 +72635,6 @@ /obj/effect/spawner/random/structure/tank_holder, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"sfE" = ( -/obj/effect/decal/cleanable/xenoblood, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "sfH" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/neutral{ @@ -73815,25 +73854,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/station/commons/fitness/recreation) -"swR" = ( -/obj/item/phone{ - desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 6 - }, -/obj/item/cigarette/cigar/havana{ - pixel_x = 2 - }, -/obj/item/cigarette/cigar{ - pixel_x = 4.5 - }, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) "swY" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -75767,11 +75787,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) -"sVm" = ( -/obj/structure/lattice, -/obj/structure/sign/warning/electric_shock/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "sVC" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ dir = 4 @@ -75993,23 +76008,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/grimy, /area/station/command/meeting_room/council) -"sXV" = ( -/obj/structure/table/reinforced, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/matter_bin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stock_parts/micro_laser, -/obj/effect/turf_decal/siding/purple{ - dir = 8 - }, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/obj/item/multitool, -/turf/open/floor/iron, -/area/station/science/lab) "sYf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -77247,24 +77245,6 @@ /obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/service/bar/backroom) -"trf" = ( -/obj/structure/table/wood, -/obj/item/restraints/handcuffs{ - pixel_y = 6 - }, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 7; - pixel_y = -7 - }, -/obj/item/cigarette/cigar/havana{ - pixel_x = -3 - }, -/obj/item/cigarette/cigar{ - pixel_x = -1; - pixel_y = -7 - }, -/turf/open/floor/carpet, -/area/station/security/detectives_office) "trw" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -77277,16 +77257,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"trC" = ( -/obj/item/reagent_containers/condiment/enzyme, -/obj/item/kitchen/rollingpin, -/obj/structure/table, -/obj/item/reagent_containers/cup/bowl, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 5 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "trG" = ( /obj/machinery/door/window/left/directional/north{ name = "Engineering Delivery"; @@ -77771,6 +77741,12 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/maintenance/department/crew_quarters/bar) +"twl" = ( +/obj/docking_port/stationary/syndicate/northeast{ + dir = 8 + }, +/turf/open/space, +/area/space) "twE" = ( /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/shutters{ @@ -81580,6 +81556,10 @@ }, /turf/open/floor/iron/grimy, /area/station/service/library) +"usp" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "usy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -83970,6 +83950,16 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"uVX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron, +/area/station/science/xenobiology) "uVZ" = ( /obj/structure/cable, /obj/machinery/duct, @@ -84072,10 +84062,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"uXF" = ( -/obj/structure/sign/warning/secure_area/directional/south, -/turf/open/space/basic, -/area/space/nearstation) "uXK" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -84106,16 +84092,6 @@ /obj/effect/mapping_helpers/airalarm/tlv_no_checks, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"uXU" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/delivery_chute{ - dir = 8 - }, -/obj/effect/turf_decal/box/red, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "uYg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet/green, @@ -87155,6 +87131,24 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"vLV" = ( +/obj/structure/table/wood, +/obj/item/restraints/handcuffs{ + pixel_y = 6 + }, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 7; + pixel_y = -7 + }, +/obj/item/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/cigarette/cigar{ + pixel_x = -1; + pixel_y = -7 + }, +/turf/open/floor/carpet, +/area/station/security/detectives_office) "vMd" = ( /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, @@ -87534,6 +87528,11 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"vSi" = ( +/obj/structure/lattice, +/obj/structure/sign/warning/electric_shock/directional/east, +/turf/open/space/basic, +/area/space/nearstation) "vSk" = ( /obj/structure/table/wood, /obj/item/folder/red, @@ -90140,12 +90139,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) -"wyN" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/space/basic, -/area/space/nearstation) "wzb" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 @@ -92315,16 +92308,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/textured, /area/station/medical/medbay) -"xcR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron, -/area/station/science/xenobiology) "xcU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -92342,14 +92325,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/iron, /area/station/maintenance/fore) -"xdn" = ( -/obj/effect/turf_decal/box/red, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "xdA" = ( /obj/effect/spawner/random/decoration/carpet, /obj/effect/spawner/random/structure/furniture_parts, @@ -92656,6 +92631,28 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"xhb" = ( +/obj/structure/table/wood, +/obj/item/storage/box/matches{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/cigarette/cigar{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 3; + pixel_y = 1 + }, +/obj/item/cigarette/cigar{ + pixel_x = 4 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/corporate_showroom) "xhi" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/button/door/directional/east{ @@ -94405,21 +94402,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"xCC" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/blood/random{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/reagent_containers/blood/random, -/obj/effect/turf_decal/bot, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = -6; - pixel_y = 8 - }, -/turf/open/floor/iron, -/area/station/service/kitchen/abandoned) "xCF" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 @@ -95038,6 +95020,10 @@ }, /turf/open/floor/iron/dark/textured_half, /area/station/medical/morgue) +"xJR" = ( +/obj/structure/sign/warning/secure_area/directional/east, +/turf/open/space/basic, +/area/space/nearstation) "xJW" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -95612,6 +95598,10 @@ }, /turf/open/floor/iron/cafeteria, /area/station/engineering/atmos) +"xST" = ( +/obj/effect/decal/cleanable/xenoblood, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "xTc" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 5 @@ -95631,6 +95621,23 @@ dir = 1 }, /area/station/maintenance/department/electrical) +"xTe" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stock_parts/micro_laser, +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/obj/item/multitool, +/turf/open/floor/iron, +/area/station/science/lab) "xTk" = ( /obj/structure/closet/secure_closet/security/sec, /obj/structure/sign/poster/official/do_not_question/directional/south, @@ -114366,7 +114373,7 @@ aaa uHd aaa qYo -nET +fEw qYo aaa qYo @@ -114374,7 +114381,7 @@ qYo aaa qYo aaa -nET +fEw qYo aaa uHd @@ -114621,7 +114628,7 @@ vVc aad aad aad -djY +xJR nCi nCi fqm @@ -114633,7 +114640,7 @@ fqm fqm nCi nCi -djY +xJR aaa qYo aaa @@ -115361,7 +115368,7 @@ wGy vVc vVc vVc -sVm +vSi abj abj lbi @@ -115396,11 +115403,11 @@ fqm djS nCi nCi -gCt -gCt -eqP -gCt -gCt +fBr +fBr +hXJ +fBr +fBr nCi nCi cJd @@ -115652,13 +115659,13 @@ chp fqm vPU nCi -gCt -gCt -gCt -iJw -gCt -gCt -gCt +fBr +fBr +fBr +usp +fBr +fBr +fBr nCi vPU fqm @@ -115909,13 +115916,13 @@ rXu nCi eVp nCi -gCt -ozA -pJz -gCt -sfE -gCt -gCt +fBr +okS +cNy +fBr +xST +fBr +fBr nCi mFq nCi @@ -116166,13 +116173,13 @@ gbe nCi vPU nCi -gCt -gCt -gCt -gCt -gCt -gCt -gCt +fBr +fBr +fBr +fBr +fBr +fBr +fBr nCi vPU cfb @@ -116425,9 +116432,9 @@ uWm nCi rIb rIb -xdn -gCt -uXU +axW +fBr +miN uhb uhb nCi @@ -117197,7 +117204,7 @@ mKn fPl jqr vxQ -xcR +uVX vxQ lzc plQ @@ -117622,7 +117629,7 @@ aaa qYo kvq aaa -wyN +oDt mJH pHl rQI @@ -119732,7 +119739,7 @@ gsV auh tMl apu -swR +ika aHE wCn gAw @@ -124586,7 +124593,7 @@ vOI etR xcU nmw -haF +qtd qYo dQS qYo @@ -124595,7 +124602,7 @@ aaa qYo cut qYo -haF +qtd aaa xLZ nNK @@ -124831,7 +124838,7 @@ lCM qlr hwM pqw -gqG +rZn dYE sOi wzD @@ -127928,7 +127935,7 @@ xtp pwA dyb eTy -trC +imj lZa xtp xtp @@ -128244,7 +128251,7 @@ pTC lLa fRK txc -pZM +cwc ffb dqP aFp @@ -129042,7 +129049,7 @@ qaA jXy oHM iLH -fff +fLx vss oSA kzc @@ -129300,7 +129307,7 @@ nJK yex iML tgI -iFt +qil djT kzc kzc @@ -129557,7 +129564,7 @@ vqx oHM iLH pKR -iqg +dJE uUG fgy oFC @@ -129814,7 +129821,7 @@ hGI esH owX asW -bFD +dHU nSb jHm ucu @@ -130071,7 +130078,7 @@ hNW hNW hNW hNW -dDB +qPW hNW nLP hNW @@ -130328,7 +130335,7 @@ lzo vbO uXN eqB -pDx +axX eyH pwD eyH @@ -130585,7 +130592,7 @@ oxo ojG oxo mZK -gQF +bNO vEX xLj ctU @@ -130841,12 +130848,12 @@ qPI ibH cBe ciH -lcP -lOw +dTr +pzg wCh cFB oQq -fYa +erA hqU kzc qBk @@ -132064,7 +132071,7 @@ bog xaF awc xOv -nHc +qzE fxs lAg kPM @@ -132654,7 +132661,7 @@ kzc aOD qQM qQM -uXF +ifA tgT xPc xPc @@ -133062,7 +133069,7 @@ aWP qrP odI mSA -dtk +fbh uDD msR mDq @@ -133133,7 +133140,7 @@ fvi fvi fvi hMa -sXV +xTe gsG iuU tZi @@ -133682,7 +133689,7 @@ kzc ecm uYH qQM -uXF +ifA tgT riB tgT @@ -136200,7 +136207,7 @@ duA cCM oEC nqf -aHq +xhb hTq qFK bPv @@ -139261,7 +139268,7 @@ uhH gOU xRO wvg -mXr +qNh icS gOU ivA @@ -140490,7 +140497,7 @@ sUA vno bxe uWe -xCC +rke vno jYU llB @@ -142336,7 +142343,7 @@ aaa lhY uvJ qKc -iYp +jFu sJr wPT lhY @@ -142563,7 +142570,7 @@ nDk ofN aWN ivt -bLy +rOb ivt ktK egU @@ -142882,7 +142889,7 @@ vBa crR iee iYi -eKV +mnQ npm qVH iYi @@ -143323,7 +143330,7 @@ aad oeX sZt fQL -oGq +dYM xBu rum akS @@ -144400,7 +144407,7 @@ aaa oIU eCA alG -trf +vLV gZz csy oIU @@ -147444,7 +147451,7 @@ aaa aaa abj aaa -nET +fEw aad aaa aaa @@ -151848,7 +151855,7 @@ aaa qYo aaa qYo -jUT +nwd qYo aaa qYo @@ -152113,7 +152120,7 @@ aaa aaa aaa mfO -pYW +cRE aaa mfO aaa @@ -152354,7 +152361,7 @@ gby jfR lPV qcj -bAS +cfv uTM nHJ bRF @@ -152557,7 +152564,7 @@ aaa aaa aaa aaa -oFv +twl aaa aaa aaa @@ -153156,7 +153163,7 @@ qYo uHd qYo aad -dTS +rvA uKw mfC xFk @@ -154663,13 +154670,13 @@ gJk aaa aad aaa -jUT +nwd aad aaa aad aaa aad -jUT +nwd aaa qYo aaa diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 9046bd34cd410..68e8ffbc759eb 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -1097,16 +1097,6 @@ /obj/item/storage/crayons, /turf/open/floor/iron, /area/station/commons/dorms) -"asb" = ( -/obj/structure/sink/directional/west, -/obj/structure/cable, -/obj/machinery/button/door/directional/east{ - id = "xenobio10"; - name = "Xenobio Pen 10 Blast DOors"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "asg" = ( /obj/structure/closet, /obj/effect/spawner/random/maintenance/two, @@ -1587,6 +1577,17 @@ /obj/effect/spawner/random/lavaland_mob/raptor, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"ayK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/cigarette{ + pixel_x = 6; + pixel_y = 12 + }, +/turf/open/floor/iron, +/area/mine/eva) "ayR" = ( /obj/machinery/airalarm/directional/east, /obj/structure/extinguisher_cabinet/directional/north, @@ -1922,16 +1923,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/white, /area/station/science/robotics/lab) -"aEK" = ( -/obj/machinery/atmospherics/components/binary/pump/off, -/obj/machinery/airlock_sensor/incinerator_ordmix{ - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "aEM" = ( /obj/structure/sign/departments/cargo, /turf/closed/wall/r_wall, @@ -2613,16 +2604,6 @@ /obj/item/clothing/shoes/jackboots, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"aQn" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/box, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science/ordnance) "aQy" = ( /obj/effect/turf_decal/siding/wood, /obj/item/kirbyplants/random/fullysynthetic{ @@ -3894,14 +3875,6 @@ /obj/item/clothing/head/beanie/orange, /turf/open/floor/iron, /area/station/cargo/storage) -"biI" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Xenobiology Test Chamber"; - network = list("ss13","test","rd","xeno") - }, -/obj/machinery/light/directional/west, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "biR" = ( /obj/structure/table/glass, /obj/item/storage/box/beakers{ @@ -4479,10 +4452,6 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/security/brig/upper) -"bqX" = ( -/obj/machinery/air_sensor/ordnance_burn_chamber, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "bqY" = ( /obj/structure/closet, /obj/effect/spawner/random/maintenance/two, @@ -5401,6 +5370,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"bCR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "bCT" = ( /obj/effect/turf_decal/trimline/dark_red/arrow_ccw{ dir = 1 @@ -5761,21 +5734,6 @@ dir = 4 }, /area/station/ai_monitored/command/storage/eva) -"bId" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/north{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "bIl" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -6248,15 +6206,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) -"bOy" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/spawner/random/vending/snackvend, -/obj/machinery/camera/directional/east{ - c_tag = "Engineering Lobby" - }, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/lobby) "bOz" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 1 @@ -6272,12 +6221,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"bOT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "bOX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6288,6 +6231,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) +"bOY" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "bOZ" = ( /obj/effect/spawner/random/structure/musician/piano/random_piano, /obj/machinery/button/curtain{ @@ -7152,15 +7098,6 @@ }, /turf/open/floor/iron, /area/station/science/lab) -"cbP" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio9"; - name = "Xenobio Pen 9 Blast DOors"; - req_access = list("xenobiology") - }, -/obj/machinery/light/floor, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "ccg" = ( /obj/machinery/light/directional/west, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -8022,6 +7959,14 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"cnm" = ( +/obj/machinery/button/door/directional/west{ + id = "xenobio3"; + name = "Xenobio Pen 3 Blast Door"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "cno" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, @@ -8432,10 +8377,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"cuB" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "cuJ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -11255,15 +11196,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/science/robotics/lab) -"dkB" = ( -/obj/structure/rack, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 4 - }, -/obj/effect/spawner/random/armory/shotgun, -/turf/open/floor/iron/dark/textured, -/area/station/ai_monitored/security/armory) "dkK" = ( /obj/structure/railing/corner, /obj/effect/turf_decal/stripes/line, @@ -11335,16 +11267,6 @@ }, /turf/open/floor/plating, /area/station/construction) -"dmj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/obj/machinery/button/door/directional/east{ - id = "xenobio11"; - name = "Xenobio Pen 11 Blast DOors"; - req_access = list("xenobiology") - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "dmk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/railing{ @@ -11478,14 +11400,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"doK" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio8"; - name = "Xenobio Pen 8 Blast DOors"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "doM" = ( /obj/structure/table, /obj/item/paper{ @@ -12559,6 +12473,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"dEi" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "dEv" = ( /obj/machinery/airalarm/directional/south, /turf/open/floor/wood, @@ -12703,6 +12621,30 @@ /obj/effect/decal/cleanable/food/egg_smudge, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"dGG" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Cargo Bay Receiving Dock" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_y = -8; + req_access = list("cargo") + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_y = 8; + req_access = list("cargo") + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "dGK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13044,18 +12986,6 @@ /obj/item/clothing/under/color/rainbow, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"dMB" = ( -/obj/vehicle/ridden/wheelchair{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/end{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/item/radio/intercom/directional/west, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/large, -/area/station/medical/medbay/aft) "dMH" = ( /obj/machinery/light/directional/north, /obj/machinery/status_display/evac/directional/north, @@ -14443,11 +14373,6 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) -"ejD" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/office) "ejL" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 @@ -15190,10 +15115,6 @@ "evb" = ( /turf/open/floor/iron, /area/station/service/janitor) -"evc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "evk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17078,9 +16999,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"fcj" = ( -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "fco" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/siding/wood{ @@ -18675,10 +18593,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/medical/medbay/lobby) -"fCS" = ( -/obj/machinery/door/poddoor/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "fCW" = ( /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark/textured, @@ -19527,6 +19441,15 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"fQi" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/filingcabinet/filingcabinet, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "fQk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/stool/directional/east, @@ -20307,16 +20230,6 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"gcy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "gcB" = ( /obj/item/pickaxe/improvised{ pixel_x = 7 @@ -21251,6 +21164,14 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"gri" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "riot"; + name = "Security Shutters" + }, +/turf/open/floor/glass/reinforced, +/area/station/hallway/primary/fore) "grk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -21809,6 +21730,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"gBF" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "gBI" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/plating, @@ -22297,6 +22224,17 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) +"gHW" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior{ + name = "Burn Chamber Interior Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/airlock_controller/incinerator_ordmix{ + pixel_x = 24 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "gHY" = ( /obj/effect/landmark/start/scientist, /obj/structure/chair/stool/directional/west, @@ -23740,25 +23678,6 @@ /obj/effect/spawner/random/engineering/canister, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"hek" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/scanning_module, -/obj/item/stock_parts/scanning_module, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/item/multitool, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/turf/open/floor/iron/white/side{ - dir = 10 - }, -/area/station/science/lab) "het" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/gas_mask, @@ -24115,6 +24034,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"hkO" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/north{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "hkU" = ( /obj/effect/landmark/start/cargo_technician, /obj/structure/chair/office{ @@ -25481,6 +25415,14 @@ }, /turf/open/openspace, /area/station/engineering/atmos/storage) +"hGF" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio7"; + name = "Xenobio Pen 7 Blast DOors"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "hGH" = ( /turf/closed/wall, /area/station/security/lockers) @@ -26910,6 +26852,16 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/service/hydroponics/garden) +"icZ" = ( +/obj/structure/sink/directional/east, +/obj/machinery/button/door/directional/west{ + id = "xenobio2"; + name = "Xenobio Pen 2 Blast Door"; + req_access = list("xenobiology") + }, +/obj/machinery/light/floor, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "ida" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -27138,14 +27090,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/security/execution/transfer) -"ihN" = ( -/obj/machinery/button/door/directional/west{ - id = "xenobio4"; - name = "Xenobio Pen 4 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "iif" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/green/opposingcorners{ @@ -28111,9 +28055,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"iwq" = ( -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "iwx" = ( /obj/machinery/door/airlock/maintenance{ name = "Xenobiology Maintenance" @@ -28492,10 +28433,6 @@ dir = 4 }, /area/station/science/explab) -"iCe" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "iCg" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -28783,6 +28720,14 @@ }, /turf/open/floor/iron, /area/station/command/bridge) +"iGU" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Xenobiology Test Chamber"; + network = list("ss13","test","rd","xeno") + }, +/obj/machinery/light/directional/west, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "iHc" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -29739,6 +29684,18 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/openspace, /area/station/science/xenobiology) +"iWK" = ( +/obj/vehicle/ridden/wheelchair{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/end{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/item/radio/intercom/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/large, +/area/station/medical/medbay/aft) "iWM" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -30940,14 +30897,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"jrc" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio6"; - name = "Xenobio Pen 6 Blast DOors"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "jre" = ( /turf/closed/wall, /area/station/maintenance/starboard/lesser) @@ -31385,6 +31334,10 @@ /obj/structure/cable, /turf/open/floor/carpet/red, /area/station/security/prison/work) +"jwQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "jxb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32571,16 +32524,6 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"jQt" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=1"; - location = "Medbay" - }, -/obj/effect/turf_decal/bot, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/plasticflaps/opaque, -/turf/open/floor/iron/dark, -/area/station/maintenance/department/medical/central) "jQz" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -32785,6 +32728,16 @@ /obj/structure/sign/poster/official/here_for_your_safety/directional/east, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"jSR" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance) "jST" = ( /obj/machinery/door/window/right/directional/north{ name = "Bridge Delivery"; @@ -34062,6 +34015,20 @@ /obj/effect/spawner/random/contraband/prison, /turf/open/floor/carpet/blue, /area/station/security/prison/work) +"klE" = ( +/obj/structure/tank_dispenser{ + pixel_x = -1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Atmospherics Monitoring" + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos/storage/gas) "klJ" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -34963,6 +34930,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"kyR" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio6"; + name = "Xenobio Pen 6 Blast DOors"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "kyU" = ( /obj/machinery/modular_computer/preset/id, /obj/machinery/light/directional/north, @@ -34982,6 +34957,14 @@ /obj/effect/turf_decal/tile/red/full, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) +"kzo" = ( +/obj/machinery/button/door/directional/west{ + id = "xenobio4"; + name = "Xenobio Pen 4 Blast Door"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "kzv" = ( /obj/structure/bed, /obj/effect/spawner/random/bedsheet/any, @@ -35386,6 +35369,16 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"kEA" = ( +/obj/structure/cable, +/obj/machinery/button/door/directional/west{ + id = "xenobio1"; + name = "Xenobio Pen 1 Blast Door"; + req_access = list("xenobiology") + }, +/obj/machinery/light/floor, +/turf/open/floor/iron, +/area/station/science/xenobiology) "kEB" = ( /obj/effect/decal/cleanable/generic, /obj/effect/decal/cleanable/robot_debris/down, @@ -36239,14 +36232,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"kRw" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/turf/open/floor/iron/showroomfloor, -/area/station/engineering/atmos) "kRy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37243,15 +37228,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) -"lgP" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "lgW" = ( /obj/machinery/meter/monitored/distro_loop, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, @@ -37440,6 +37416,15 @@ }, /turf/open/floor/iron/white, /area/station/science/lab) +"ljG" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/storage/box/matches, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) "ljK" = ( /obj/structure/disposalpipe/trunk/multiz/down{ dir = 4 @@ -39695,20 +39680,6 @@ "lSu" = ( /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"lSw" = ( -/obj/structure/tank_dispenser{ - pixel_x = -1 - }, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics Monitoring" - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos/storage/gas) "lSF" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39872,6 +39843,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"lVQ" = ( +/obj/machinery/button/door/directional/west{ + id = "xenobio5"; + name = "Xenobio Pen 5 Blast Door"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "lVY" = ( /obj/effect/turf_decal/siding/thinplating_new/corner{ dir = 4 @@ -40096,16 +40075,6 @@ /obj/structure/rack, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"mbb" = ( -/obj/structure/cable, -/obj/machinery/button/door/directional/west{ - id = "xenobio1"; - name = "Xenobio Pen 1 Blast Door"; - req_access = list("xenobiology") - }, -/obj/machinery/light/floor, -/turf/open/floor/iron, -/area/station/science/xenobiology) "mbk" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/blue{ @@ -41934,17 +41903,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"mIT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/cigarette{ - pixel_x = 6; - pixel_y = 12 - }, -/turf/open/floor/iron, -/area/mine/eva) "mJa" = ( /obj/machinery/light/directional/east, /obj/effect/turf_decal/tile/yellow, @@ -42382,6 +42340,10 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"mSh" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "mSv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43220,6 +43182,10 @@ }, /turf/open/floor/iron, /area/station/science/ordnance) +"ndd" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "ndl" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -43742,6 +43708,25 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison/workout) +"nkG" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/table/reinforced, +/obj/item/stack/wrapping_paper{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/stack/package_wrap{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/item/dest_tagger, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "nkI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43750,6 +43735,10 @@ /obj/structure/tank_holder/oxygen, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"nkM" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "nkO" = ( /obj/structure/table, /obj/item/storage/box/matches, @@ -44376,15 +44365,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"nsq" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/filingcabinet/filingcabinet, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "nsr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44628,6 +44608,12 @@ }, /turf/open/floor/iron/white, /area/station/science/genetics) +"nwq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance) "nwr" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -44976,6 +44962,25 @@ "nAH" = ( /turf/open/openspace/icemoon/keep_below, /area/station/hallway/secondary/entry) +"nAI" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/scanning_module, +/obj/item/stock_parts/scanning_module, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/item/multitool, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/turf/open/floor/iron/white/side{ + dir = 10 + }, +/area/station/science/lab) "nAN" = ( /obj/effect/landmark/start/paramedic, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45267,6 +45272,10 @@ "nDE" = ( /turf/closed/wall/r_wall, /area/station/security/prison/garden) +"nDF" = ( +/obj/machinery/air_sensor/ordnance_burn_chamber, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "nDJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46294,6 +46303,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"nSG" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "nSH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46784,6 +46799,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"obq" = ( +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "obr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -46844,10 +46862,6 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"ocd" = ( -/obj/machinery/igniter/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "ocp" = ( /obj/effect/landmark/start/hangover, /obj/effect/decal/cleanable/dirt, @@ -48923,6 +48937,15 @@ }, /turf/open/floor/plating, /area/station/engineering/storage_shared) +"oHs" = ( +/obj/structure/rack, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/obj/effect/spawner/random/armory/rubbershot, +/turf/open/floor/iron/dark/textured, +/area/station/ai_monitored/security/armory) "oHH" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -49030,6 +49053,16 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"oJK" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + location = "Medbay" + }, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/medical/central) "oJP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/dark_green, @@ -49523,6 +49556,14 @@ }, /turf/open/floor/iron, /area/station/cargo/office) +"oRB" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/turf/open/floor/iron/showroomfloor, +/area/station/engineering/atmos) "oRE" = ( /obj/machinery/conveyor{ dir = 10; @@ -49699,6 +49740,14 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"oUv" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/fakemoustache, +/obj/item/cigarette/pipe, +/obj/item/clothing/glasses/monocle, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/theater) "oUL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50304,30 +50353,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /turf/open/floor/engine, /area/station/science/explab) -"pdR" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Cargo Bay Receiving Dock" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_y = -8; - req_access = list("cargo") - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_y = 8; - req_access = list("cargo") - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "pdT" = ( /obj/structure/chair/sofa/corp/right{ dir = 8 @@ -50402,6 +50427,16 @@ /obj/structure/grille/broken, /turf/open/openspace/icemoon/keep_below, /area/icemoon/underground/explored) +"pfm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "pfn" = ( /obj/structure/sign/poster/official/work_for_a_future/directional/north, /obj/machinery/airalarm/directional/east, @@ -50429,16 +50464,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"pfJ" = ( -/obj/structure/sink/directional/east, -/obj/machinery/button/door/directional/west{ - id = "xenobio2"; - name = "Xenobio Pen 2 Blast Door"; - req_access = list("xenobiology") - }, -/obj/machinery/light/floor, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "pfO" = ( /obj/structure/chair/stool/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52599,6 +52624,10 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"pME" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "pMF" = ( /turf/open/floor/iron/white, /area/station/science/xenobiology) @@ -53538,6 +53567,16 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) +"qbv" = ( +/obj/structure/sink/directional/west, +/obj/structure/cable, +/obj/machinery/button/door/directional/east{ + id = "xenobio10"; + name = "Xenobio Pen 10 Blast DOors"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "qbA" = ( /obj/structure/cable, /obj/machinery/airalarm/directional/east, @@ -54213,6 +54252,16 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) +"qlB" = ( +/obj/machinery/atmospherics/components/binary/pump/off, +/obj/machinery/airlock_sensor/incinerator_ordmix{ + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "qlG" = ( /obj/structure/table, /obj/item/stack/sheet/glass/fifty{ @@ -54253,6 +54302,9 @@ /obj/structure/closet/crate, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"qlW" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "qmi" = ( /turf/open/floor/iron, /area/station/cargo/lobby) @@ -54747,6 +54799,16 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/service/chapel) +"qsd" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "qsh" = ( /obj/structure/plaque/static_plaque/golden/commission/icebox, /obj/effect/landmark/navigate_destination/dockarrival, @@ -54960,9 +55022,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"qvN" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "qvQ" = ( /obj/structure/closet/secure_closet/atmospherics, /turf/open/floor/iron/dark, @@ -56652,14 +56711,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) -"qTp" = ( -/obj/structure/table/wood, -/obj/item/clothing/mask/fakemoustache, -/obj/item/cigarette/pipe, -/obj/item/clothing/glasses/monocle, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "qTs" = ( /turf/open/floor/iron/showroomfloor, /area/station/security/prison/mess) @@ -57740,14 +57791,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"rjT" = ( -/obj/machinery/button/door/directional/west{ - id = "xenobio3"; - name = "Xenobio Pen 3 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "rkc" = ( /obj/effect/turf_decal/siding/yellow, /obj/effect/turf_decal/siding/yellow{ @@ -57921,14 +57964,6 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/iron/dark/textured_half, /area/mine/mechbay) -"rmG" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ - name = "Burn Chamber Exterior Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "rmM" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -58081,10 +58116,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron, /area/station/science/explab) -"roW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "roX" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -58702,12 +58733,6 @@ /obj/effect/turf_decal/delivery/red, /turf/open/floor/iron/textured, /area/station/hallway/secondary/entry) -"ryX" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "rzj" = ( /obj/structure/table, /obj/item/stack/sheet/iron/fifty{ @@ -59171,12 +59196,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"rEj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science/ordnance) "rEn" = ( /obj/structure/railing/wooden_fence{ dir = 4 @@ -59525,12 +59544,6 @@ }, /turf/open/floor/wood, /area/station/maintenance/port/aft) -"rKS" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Dormitory Toilets" - }, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) "rKX" = ( /obj/machinery/camera{ c_tag = "Surgery B"; @@ -59701,6 +59714,10 @@ /obj/structure/railing/corner/end/flip, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"rNX" = ( +/obj/machinery/door/poddoor/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "rOb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59920,6 +59937,14 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/security/brig/upper) +"rRZ" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ + name = "Burn Chamber Exterior Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "rSe" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/costume, @@ -60218,6 +60243,13 @@ }, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) +"rWq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance) "rWA" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -60329,14 +60361,6 @@ /obj/structure/minecart_rail/railbreak, /turf/open/floor/plating/snowed/coldroom, /area/station/service/kitchen/coldroom) -"rXD" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio7"; - name = "Xenobio Pen 7 Blast DOors"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "rXN" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -61305,14 +61329,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"snv" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "riot"; - name = "Security Shutters" - }, -/turf/open/floor/glass/reinforced, -/area/station/hallway/primary/fore) "snw" = ( /obj/structure/table, /obj/machinery/microwave, @@ -61541,17 +61557,6 @@ dir = 8 }, /area/station/service/chapel) -"sqH" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior{ - name = "Burn Chamber Interior Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/airlock_controller/incinerator_ordmix{ - pixel_x = 24 - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "sqN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61889,6 +61894,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/fore) +"suv" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/office) "suA" = ( /obj/structure/closet/crate/coffin, /obj/effect/decal/cleanable/dirt, @@ -63769,25 +63779,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"sXf" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/table/reinforced, -/obj/item/stack/wrapping_paper{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/stack/package_wrap{ - pixel_x = -1; - pixel_y = -1 - }, -/obj/item/dest_tagger, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "sXk" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -64863,6 +64854,15 @@ /obj/item/key/janitor, /turf/open/floor/iron, /area/station/service/janitor) +"tqn" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "tqr" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/blue/filled/warning, @@ -65822,6 +65822,10 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) +"tFx" = ( +/obj/machinery/igniter/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "tFF" = ( /obj/structure/disposalpipe/sorting/mail{ dir = 8 @@ -67273,6 +67277,14 @@ /obj/structure/sign/warning/electric_shock, /turf/closed/wall/r_wall, /area/station/engineering/supermatter) +"ucW" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio8"; + name = "Xenobio Pen 8 Blast DOors"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "udf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67692,10 +67704,6 @@ }, /turf/open/floor/wood, /area/station/maintenance/port/aft) -"ujp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "ujs" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -69109,16 +69117,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore) -"uHS" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "uHV" = ( /obj/structure/disposalpipe/trunk/multiz{ dir = 1 @@ -69813,12 +69811,6 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"uTc" = ( -/obj/machinery/chem_heater/withbuffer, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/yellow/full, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/pharmacy) "uTf" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -69887,10 +69879,6 @@ dir = 4 }, /area/station/service/chapel) -"uUn" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "uUq" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, @@ -70692,10 +70680,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) -"viR" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "viV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/window/reinforced/spawner/directional/south, @@ -72220,15 +72204,6 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"vFb" = ( -/obj/structure/table/wood, -/obj/item/cigarette/cigar{ - pixel_x = 7; - pixel_y = 10 - }, -/obj/item/storage/box/matches, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/captain) "vFg" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -72362,15 +72337,6 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"vHM" = ( -/obj/structure/rack, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 8 - }, -/obj/effect/spawner/random/armory/rubbershot, -/turf/open/floor/iron/dark/textured, -/area/station/ai_monitored/security/armory) "vHR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -73934,6 +73900,15 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"wiy" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/spawner/random/vending/snackvend, +/obj/machinery/camera/directional/east{ + c_tag = "Engineering Lobby" + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) "wiz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -74136,6 +74111,15 @@ /mob/living/carbon/human/species/monkey, /turf/open/floor/grass, /area/station/medical/virology) +"wlQ" = ( +/obj/structure/rack, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/obj/effect/spawner/random/armory/shotgun, +/turf/open/floor/iron/dark/textured, +/area/station/ai_monitored/security/armory) "wlR" = ( /obj/structure/closet/boxinggloves, /turf/open/floor/iron, @@ -75754,8 +75738,8 @@ /obj/effect/landmark/start/depsec/medical, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) -"wKh" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +"wKn" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/closed/wall/r_wall, /area/station/science/ordnance/burnchamber) "wKv" = ( @@ -76432,6 +76416,15 @@ /obj/effect/turf_decal/tile/red/opposingcorners, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) +"wTE" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio9"; + name = "Xenobio Pen 9 Blast DOors"; + req_access = list("xenobiology") + }, +/obj/machinery/light/floor, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "wTX" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -78080,6 +78073,16 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/white, /area/station/medical/virology) +"xtV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/obj/machinery/button/door/directional/east{ + id = "xenobio11"; + name = "Xenobio Pen 11 Blast DOors"; + req_access = list("xenobiology") + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "xtX" = ( /obj/structure/sign/warning/secure_area/directional/east, /obj/structure/cable, @@ -78699,14 +78702,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/security/courtroom) -"xCh" = ( -/obj/machinery/button/door/directional/west{ - id = "xenobio5"; - name = "Xenobio Pen 5 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "xCj" = ( /obj/structure/sign/departments/holy, /turf/closed/wall, @@ -78906,13 +78901,6 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/iron/dark/textured, /area/station/maintenance/starboard/lesser) -"xEQ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science/ordnance) "xEW" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/purple/fourcorners, @@ -79424,10 +79412,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/smooth_half, /area/station/ai_monitored/command/storage/eva) -"xNa" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "xNn" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -79750,6 +79734,10 @@ }, /turf/open/floor/iron/large, /area/station/hallway/primary/port) +"xSZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "xTi" = ( /obj/effect/landmark/start/clown, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -80812,6 +80800,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"ylm" = ( +/obj/machinery/chem_heater/withbuffer, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/yellow/full, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/pharmacy) "ylt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible, /obj/structure/sign/poster/official/safety_internals/directional/east, @@ -165335,7 +165329,7 @@ jzy pve xjZ bGP -mIT +ayK gsF vSi kZu @@ -172974,7 +172968,7 @@ yiL vDx cxO xuA -dkB +wlQ bYg yiL qLD @@ -173488,7 +173482,7 @@ yiL agF tgP rGh -vHM +oHs wyF yiL szz @@ -180716,7 +180710,7 @@ thA xMq xMq sBy -qTp +oUv xTi bpc cag @@ -188981,12 +188975,12 @@ xMq alM oxO ffe -qvN -qvN -qvN -biI -qvN -qvN +bOY +bOY +bOY +iGU +bOY +bOY qLY eGN lZX @@ -189238,12 +189232,12 @@ xMq alM oxO ffe -qvN -qvN -qvN -uUn -qvN -qvN +bOY +bOY +bOY +nkM +bOY +bOY qLY vfe tsa @@ -189495,12 +189489,12 @@ xMq alM oxO ffe -viR -qvN -qvN -bOT -qvN -qvN +dEi +bOY +bOY +nSG +bOY +bOY qLY tkP fPv @@ -189754,9 +189748,9 @@ nsp ffe qLY qLY -uHS -ujp -qvN +qsd +bCR +bOY ctF qLY qLY @@ -190274,24 +190268,24 @@ euM pMF sfv xyn -dmj +xtV wPd lVt -asb +qbv pMF -xCh -cbP +lVQ +wTE pMF -ihN -doK +kzo +ucW mBP -rjT -rXD +cnm +hGF pMF -pfJ -jrc +icZ +kyR pMF -mbb +kEA rkl nPI oxO @@ -191040,7 +191034,7 @@ ffe oqd vHq aZk -xNa +ndd pMF rdl iQM @@ -193614,7 +193608,7 @@ kAH mHu jlj tUo -aQn +jSR hFb vqv wQi @@ -193871,7 +193865,7 @@ uIf laa qKt tUo -aQn +jSR hFb vqv qiN @@ -194128,7 +194122,7 @@ inh mWj aNu tPG -xEQ +rWq qaL vqv brt @@ -194642,7 +194636,7 @@ opD jGR hFb mzb -rEj +nwq rRl vqv wZV @@ -195404,14 +195398,14 @@ thA thA rcY iDt -fcj -fcj -fcj -fcj -roW -roW -bId -gcy +qlW +qlW +qlW +qlW +jwQ +jwQ +hkO +pfm jJG jJG plX @@ -195661,12 +195655,12 @@ thA thA rcY iDt -fCS -iwq -cuB -iCe -lgP -iCe +rNX +obq +mSh +wKn +tqn +wKn vcH gnq xEF @@ -195918,12 +195912,12 @@ thA thA rcY iDt -fCS -ocd -bqX -rmG -ryX -sqH +rNX +tFx +nDF +rRZ +gBF +gHW qSk sbd rEh @@ -196175,12 +196169,12 @@ thA thA rcY iDt -fCS -iwq -evc -wKh -aEK -wKh +rNX +obq +xSZ +pME +qlB +pME odf sbd jaY @@ -230348,7 +230342,7 @@ kLZ jPc xKj hyY -pdR +dGG huI gbv maT @@ -235736,7 +235730,7 @@ ozH bZg gst tZR -nsq +fQi dOw dOw yhe @@ -235993,7 +235987,7 @@ gst oiK bLW xjP -sXf +nkG gxO dKK xmN @@ -237505,7 +237499,7 @@ bZx bZx bZx bZx -snv +gri kQi oWk bWn @@ -237762,7 +237756,7 @@ bZx bZx bZx bZx -snv +gri krQ skZ bWn @@ -238019,7 +238013,7 @@ bZx bZx bZx bZx -snv +gri krQ gYp bWn @@ -238276,7 +238270,7 @@ bZx bZx bZx bZx -snv +gri krQ thI bWn @@ -238533,7 +238527,7 @@ bZx bZx bZx bZx -snv +gri krQ gYp bWn @@ -238790,7 +238784,7 @@ bZx bZx bZx bZx -snv +gri gMK huT bWn @@ -239047,7 +239041,7 @@ bZx bZx bZx bZx -snv +gri lwO vTg bWn @@ -242956,7 +242950,7 @@ uwO rSx kRP kRP -lSw +klE cAR kNk tmA @@ -243195,7 +243189,7 @@ xLF lpM oGQ wKw -vFb +ljG mhQ hUV aks @@ -243475,7 +243469,7 @@ kQf hDh vnt keP -kRw +oRB ctr avk gxP @@ -243486,7 +243480,7 @@ nKj fwW uxp afK -bOy +wiy vfU pdV hqV @@ -243942,7 +243936,7 @@ yjF vVw yjF qSh -rKS +hsB uja jcy iuv @@ -246790,7 +246784,7 @@ azw eub eyc qPt -uTc +ylm biR dmI tdE @@ -250415,7 +250409,7 @@ vQP rdG jzY xlh -jQt +oJK uep uep uep @@ -250656,7 +250650,7 @@ rDa mrB jQD slc -dMB +iWK rjC qjF pPO @@ -260162,7 +260156,7 @@ fOR tFF tia qNn -hek +nAI gNi krY clo @@ -261720,7 +261714,7 @@ rjK nlP xTV imy -ejD +suv auK vaa xLq diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 1d3725f66c0a5..d399a2c5b353f 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -249,14 +249,6 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/iron, /area/station/engineering/atmos) -"afz" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/turf/open/floor/iron, -/area/station/engineering/atmos) "afD" = ( /turf/open/floor/engine{ name = "Holodeck Projector Floor" @@ -663,6 +655,12 @@ /obj/effect/turf_decal/tile/green/anticorner/contrasted, /turf/open/floor/iron, /area/station/security/courtroom) +"amp" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "amy" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -1739,20 +1737,6 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) -"aHH" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/effect/turf_decal/siding/purple{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/east{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "aHM" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -1990,6 +1974,14 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/station/service/bar) +"aLq" = ( +/obj/machinery/camera/motion/directional/south{ + active_power_usage = 0; + c_tag = "Armory - External"; + use_power = 0 + }, +/turf/open/space/basic, +/area/space/nearstation) "aLr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output{ dir = 1 @@ -2724,14 +2716,6 @@ }, /turf/open/floor/iron, /area/station/engineering/break_room) -"aYl" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Xenobiology Lab - Test Chamber"; - network = list("ss13","rd","xeno") - }, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "aYw" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Three"; @@ -3490,6 +3474,25 @@ /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/wood, /area/station/service/library) +"blc" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Security Post - Medbay"; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/machinery/light/small/directional/north, +/obj/structure/table/reinforced, +/obj/machinery/requests_console/directional/north{ + department = "Security"; + name = "Security Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/mapping_helpers/requests_console/supplies, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) "blu" = ( /obj/structure/table/wood, /obj/machinery/light/small/directional/west, @@ -3770,16 +3773,6 @@ /obj/effect/turf_decal/tile/purple, /turf/open/floor/iron, /area/station/hallway/primary/central) -"bpY" = ( -/obj/machinery/light/small/directional/west, -/obj/item/clothing/mask/animal/horsehead, -/obj/structure/table/wood, -/obj/machinery/airalarm/directional/south, -/obj/item/cigarette/pipe, -/obj/item/clothing/mask/fakemoustache, -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/wood, -/area/station/service/theater) "bqg" = ( /obj/structure/cable, /obj/structure/sign/poster/official/random/directional/east, @@ -3796,11 +3789,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"bqC" = ( -/obj/structure/table/wood, -/obj/item/cigarette/pipe, -/turf/open/floor/wood, -/area/station/commons/lounge) "bqJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4214,10 +4202,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"bxr" = ( -/obj/structure/sign/warning/electric_shock/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "bxE" = ( /obj/machinery/camera/directional/south{ c_tag = "Chemistry South"; @@ -4556,14 +4540,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/office) -"bEv" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ - name = "Burn Chamber Exterior Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "bEA" = ( /obj/structure/cable, /obj/machinery/camera/directional/south{ @@ -4622,6 +4598,10 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/security/checkpoint/customs) +"bFa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "bFr" = ( /obj/item/paper_bin{ pixel_x = -2; @@ -4648,17 +4628,6 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron, /area/station/science/robotics/lab) -"bFN" = ( -/obj/machinery/chem_dispenser, -/obj/machinery/button/door/directional/north{ - id = "pharmacy_shutters"; - name = "pharmacy shutters control"; - pixel_x = 24; - req_access = list("medical") - }, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/turf/open/floor/iron/white, -/area/station/medical/pharmacy) "bGo" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -4861,6 +4830,10 @@ }, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) +"bJH" = ( +/obj/structure/sign/warning/electric_shock/directional/south, +/turf/open/space/basic, +/area/space/nearstation) "bJQ" = ( /obj/machinery/vending/coffee, /obj/effect/turf_decal/bot, @@ -5718,18 +5691,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) -"bZb" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio6"; - name = "Xenobio Pen 6 Blast Doors"; - pixel_y = 1; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron, -/area/station/science/xenobiology) "bZq" = ( /obj/machinery/seed_extractor, /obj/effect/turf_decal/stripes/line{ @@ -6021,10 +5982,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"cgP" = ( -/obj/machinery/air_sensor/ordnance_burn_chamber, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "cgZ" = ( /obj/machinery/light_switch/directional/east, /obj/structure/cable, @@ -7028,15 +6985,6 @@ }, /turf/open/floor/wood, /area/station/service/library) -"cyp" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/siding/purple{ - dir = 6 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/storage) "cyG" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -7193,25 +7141,6 @@ /obj/structure/railing, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"cCM" = ( -/obj/structure/lattice/catwalk, -/obj/item/reagent_containers/cup/glass/bottle/rum{ - pixel_x = -7; - pixel_y = 2 - }, -/obj/item/reagent_containers/cup/glass/colocup{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/glass/colocup{ - pixel_x = 6; - pixel_y = -4 - }, -/obj/item/cigarette/rollie/cannabis{ - pixel_y = -3 - }, -/turf/open/space/basic, -/area/space/nearstation) "cCN" = ( /obj/item/stack/sheet/iron/fifty, /obj/item/stack/sheet/iron/fifty, @@ -7774,12 +7703,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/command/heads_quarters/cmo) -"cOT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "cOX" = ( /obj/structure/sign/warning/radiation/rad_area/directional/north, /obj/effect/turf_decal/stripes/line{ @@ -7959,14 +7882,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"cTk" = ( -/obj/machinery/camera/motion/directional/south{ - active_power_usage = 0; - c_tag = "Armory - External"; - use_power = 0 - }, -/turf/open/space/basic, -/area/space/nearstation) "cTl" = ( /obj/structure/table/glass, /obj/item/reagent_containers/syringe, @@ -8139,6 +8054,22 @@ dir = 1 }, /area/station/engineering/atmos/pumproom) +"cWz" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/west, +/obj/machinery/door/window/right/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/disposal) "cWD" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -8236,6 +8167,10 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"cYj" = ( +/obj/machinery/igniter/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "cYx" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -8364,6 +8299,17 @@ /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"dbe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/maintenance, +/obj/effect/turf_decal/stripes/corner, +/obj/item/reagent_containers/cup/soda_cans/pwr_game, +/obj/structure/sign/poster/contraband/random/directional/south, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "dbh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9583,22 +9529,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"dwI" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/delivery_chute{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/window/spawner/directional/south, -/obj/structure/window/spawner/directional/north, -/obj/structure/window/spawner/directional/west, -/obj/machinery/door/window/right/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/disposal) "dwJ" = ( /obj/structure/lattice, /obj/effect/spawner/random/structure/grille, @@ -9694,6 +9624,14 @@ }, /turf/open/floor/plating, /area/station/science/lab) +"dzs" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "dzw" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -9876,6 +9814,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"dEr" = ( +/obj/machinery/light/small/dim/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "dEx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9886,14 +9830,6 @@ }, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"dEF" = ( -/obj/machinery/atmospherics/components/binary/pump/on, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "dEH" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -10198,6 +10134,10 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/storage) +"dKx" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "dKC" = ( /turf/closed/wall, /area/station/maintenance/aft/lesser) @@ -10259,12 +10199,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"dLm" = ( -/obj/machinery/sparker/directional/north{ - id = "Xenobio" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "dLn" = ( /obj/structure/rack, /obj/item/wrench/medical, @@ -10809,10 +10743,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/locker) -"dTN" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "dTQ" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 4 @@ -10868,6 +10798,17 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"dUG" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -7; + pixel_y = 13 + }, +/obj/item/reagent_containers/condiment/flour{ + pixel_x = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "dVb" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -11071,9 +11012,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"dXU" = ( -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "dYa" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron, @@ -11270,6 +11208,10 @@ /obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/storage) +"ebq" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "ebr" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=0-SecurityDesk"; @@ -12628,6 +12570,25 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"ewr" = ( +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_y = -8; + req_access = list("cargo") + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_y = 8; + req_access = list("cargo") + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "ewB" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -12756,23 +12717,6 @@ }, /turf/open/floor/iron, /area/station/security/brig) -"ezw" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/item/kirbyplants/random{ - pixel_x = -7 - }, -/obj/machinery/camera/directional/north, -/obj/machinery/digital_clock/directional/east, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/item/poster/traitor, -/turf/open/floor/wood/large, -/area/station/command/heads_quarters/qm) "ezT" = ( /obj/machinery/door/airlock/research{ name = "Research Division Access" @@ -13130,6 +13074,17 @@ /obj/structure/sign/warning/directional/south, /turf/open/floor/iron, /area/station/cargo/warehouse) +"eIf" = ( +/obj/machinery/light/directional/south, +/obj/machinery/firealarm/directional/south, +/obj/structure/rack, +/obj/item/storage/briefcase/secure, +/obj/item/cigarette/cigar, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "eIy" = ( /obj/structure/cable, /obj/machinery/photocopier, @@ -13668,10 +13623,6 @@ }, /turf/open/floor/iron, /area/station/cargo/lobby) -"eRn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "eRR" = ( /obj/structure/table, /obj/item/screwdriver{ @@ -13749,32 +13700,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"eTt" = ( -/obj/structure/cable, -/obj/structure/table/wood/fancy/black, -/obj/item/storage/fancy/cigarettes/cigars/cohiba{ - pixel_x = 3; - pixel_y = 14 - }, -/obj/item/reagent_containers/cup/glass/bottle/champagne{ - pixel_x = -7; - pixel_y = 8 - }, -/obj/item/cigarette/cigar{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/item/cigarette/cigar{ - pixel_x = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/machinery/keycard_auth/directional/north{ - pixel_x = -5 - }, -/turf/open/floor/wood/large, -/area/station/command/heads_quarters/qm) "eTI" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -15974,10 +15899,6 @@ /obj/machinery/telecomms/server/presets/supply, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) -"fIR" = ( -/obj/structure/sign/warning/secure_area/directional/north, -/turf/open/space/basic, -/area/space/nearstation) "fIS" = ( /obj/machinery/airalarm/directional/south, /obj/structure/disposalpipe/segment{ @@ -16232,17 +16153,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig) -"fNz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/effect/spawner/random/maintenance, -/obj/effect/spawner/random/maintenance, -/obj/effect/spawner/random/maintenance, -/obj/effect/turf_decal/stripes/corner, -/obj/item/reagent_containers/cup/soda_cans/pwr_game, -/obj/structure/sign/poster/contraband/random/directional/south, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "fNI" = ( /obj/structure/sign/poster/contraband/random/directional/east, /turf/open/floor/wood, @@ -16774,6 +16684,12 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/service/library) +"fZt" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/space/basic, +/area/space/nearstation) "fZw" = ( /obj/structure/table, /obj/item/clothing/gloves/latex, @@ -16957,12 +16873,6 @@ }, /turf/open/floor/grass, /area/station/science/research) -"gda" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/turf/open/space/basic, -/area/space/nearstation) "gdb" = ( /turf/closed/wall/r_wall, /area/station/security/range) @@ -17199,18 +17109,6 @@ "ghL" = ( /turf/closed/wall/r_wall, /area/space/nearstation) -"gil" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1 - }, -/obj/machinery/airlock_sensor/incinerator_ordmix{ - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "giA" = ( /turf/closed/wall/r_wall, /area/station/tcommsat/computer) @@ -17283,18 +17181,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/service/hydroponics) -"gkC" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio7"; - name = "Xenobio Pen 7 Blast Doors"; - pixel_y = 4; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/station/science/xenobiology) "gkD" = ( /obj/machinery/recharger{ pixel_y = 3 @@ -17487,6 +17373,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"gnW" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "gog" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -18068,6 +17960,23 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) +"gyc" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/airlock_controller/incinerator_ordmix{ + pixel_x = -24 + }, +/obj/machinery/button/ignition/incinerator/ordmix{ + pixel_x = 24; + pixel_y = -6 + }, +/obj/machinery/button/door/incinerator_vent_ordmix{ + pixel_x = 24; + pixel_y = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "gyg" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 9 @@ -18115,10 +18024,6 @@ /obj/machinery/light/no_nightlight/directional/west, /turf/open/floor/iron, /area/station/engineering/atmos) -"gyK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "gyO" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -18146,15 +18051,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"gzO" = ( -/obj/machinery/firealarm/directional/west, -/obj/machinery/camera/directional/west{ - c_tag = "Restrooms" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet/restrooms) "gzW" = ( /obj/structure/chair/office{ dir = 8 @@ -18838,23 +18734,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"gLU" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding{ - dir = 9 - }, -/obj/item/stock_parts/matter_bin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/micro_laser, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/obj/item/multitool, -/turf/open/floor/iron, -/area/station/science/lab) "gLY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -19103,6 +18982,9 @@ /obj/effect/spawner/random/trash/janitor_supplies, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"gQv" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "gQw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, @@ -19188,6 +19070,13 @@ "gTt" = ( /turf/open/floor/carpet, /area/station/command/heads_quarters/hos) +"gTx" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "gTC" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -19653,6 +19542,10 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/engineering/main) +"hcj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "hcl" = ( /obj/item/target, /obj/effect/turf_decal/stripes/line{ @@ -20354,6 +20247,10 @@ }, /turf/open/floor/iron/grimy, /area/station/tcommsat/computer) +"hph" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "hpi" = ( /obj/effect/turf_decal/plaque{ icon_state = "L2" @@ -21036,6 +20933,10 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/cytology) +"hAd" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "hAk" = ( /obj/structure/cable, /obj/effect/landmark/start/hangover, @@ -23452,6 +23353,26 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"isi" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/book/manual/chef_recipes, +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/white, +/area/station/security/prison/mess) "isk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23874,6 +23795,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"izb" = ( +/obj/machinery/air_sensor/ordnance_burn_chamber, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "izd" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24678,18 +24603,6 @@ /obj/item/banner/cargo, /turf/open/space/basic, /area/space/nearstation) -"iNK" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio2"; - name = "Xenobio Pen 2 Blast Doors"; - pixel_y = 1; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/station/science/xenobiology) "iNQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -25073,18 +24986,6 @@ /obj/effect/turf_decal/tile/red/opposingcorners, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"iTQ" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio1"; - name = "Xenobio Pen 1 Blast Doors"; - pixel_y = 1; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron, -/area/station/science/xenobiology) "iTX" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ @@ -26621,16 +26522,6 @@ }, /turf/open/floor/engine/vacuum, /area/station/maintenance/disposal/incinerator) -"jvo" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/effect/turf_decal/siding/purple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/east, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "jvr" = ( /obj/structure/table/glass, /obj/item/folder/blue, @@ -27970,12 +27861,6 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"jQz" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "jQM" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -28319,6 +28204,13 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port) +"jVe" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) "jVl" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ @@ -28596,17 +28488,6 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos) -"kaU" = ( -/obj/structure/closet{ - name = "evidence closet 3" - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/obj/item/poster/traitor, -/turf/open/floor/iron/dark, -/area/station/security/evidence) "kbo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28695,9 +28576,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/command/bridge) -"kcu" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "kcF" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28886,10 +28764,6 @@ /obj/effect/turf_decal/tile/green/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/virology) -"kgC" = ( -/obj/machinery/door/poddoor/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "kgV" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -28951,20 +28825,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/hallway/primary/central) -"kif" = ( -/obj/item/emptysandbag, -/obj/item/emptysandbag, -/obj/item/emptysandbag, -/obj/item/emptysandbag{ - pixel_x = 8 - }, -/obj/item/emptysandbag{ - pixel_x = -9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random/directional/south, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "kir" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 4 @@ -29040,25 +28900,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/carpet, /area/station/service/theater) -"kkk" = ( -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_y = -8; - req_access = list("cargo") - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_y = 8; - req_access = list("cargo") - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "kkr" = ( /obj/structure/plasticflaps/opaque, /obj/machinery/door/poddoor/preopen{ @@ -29564,10 +29405,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) -"ktw" = ( -/obj/structure/sign/warning/electric_shock/directional/north, -/turf/open/space/basic, -/area/space/nearstation) "ktz" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -30168,6 +30005,32 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"kEk" = ( +/obj/structure/cable, +/obj/structure/table/wood/fancy/black, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_x = 3; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/glass/bottle/champagne{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/cigarette/cigar{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/cigarette/cigar{ + pixel_x = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/keycard_auth/directional/north{ + pixel_x = -5 + }, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/qm) "kEm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31579,6 +31442,11 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/station/engineering/gravity_generator) +"leO" = ( +/obj/structure/table, +/obj/item/cigarette/pipe, +/turf/open/floor/plating, +/area/station/maintenance/port) "leP" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ dir = 4 @@ -31821,6 +31689,16 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/cargo/lobby) +"liZ" = ( +/obj/machinery/light/small/directional/west, +/obj/item/clothing/mask/animal/horsehead, +/obj/structure/table/wood, +/obj/machinery/airalarm/directional/south, +/obj/item/cigarette/pipe, +/obj/item/clothing/mask/fakemoustache, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/wood, +/area/station/service/theater) "lje" = ( /obj/machinery/camera/directional/south{ c_tag = "Starboard Primary Hallway - Auxiliary Tool Storage" @@ -32880,6 +32758,12 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port) +"lHu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "lHx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -33341,22 +33225,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/security/prison) -"lPS" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio8"; - name = "Xenobio Pen 8 Blast Doors"; - pixel_y = 4; - req_access = list("xenobiology") - }, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = 10; - pixel_y = -1 - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron, -/area/station/science/xenobiology) "lPZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -33417,6 +33285,18 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"lRs" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio3"; + name = "Xenobio Pen 3 Blast Doors"; + pixel_y = 4; + req_access = list("xenobiology") + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron, +/area/station/science/xenobiology) "lRA" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -33993,20 +33873,6 @@ /obj/effect/turf_decal/box, /turf/open/floor/iron/dark, /area/station/security/mechbay) -"mcF" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio4"; - name = "Xenobio Pen 4 Blast Doors"; - pixel_y = 4; - req_access = list("xenobiology"); - sync_doors = 4 - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron, -/area/station/science/xenobiology) "mcP" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -34848,6 +34714,23 @@ dir = 1 }, /area/station/medical/treatment_center) +"mtk" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/kirbyplants/random{ + pixel_x = -7 + }, +/obj/machinery/camera/directional/north, +/obj/machinery/digital_clock/directional/east, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/item/poster/traitor, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/qm) "mtu" = ( /turf/open/floor/engine, /area/station/science/xenobiology) @@ -35198,26 +35081,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/cargo/sorting) -"mzm" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = -8; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = 9; - pixel_y = 3 - }, -/obj/item/book/manual/chef_recipes, -/obj/effect/turf_decal/tile/red/opposingcorners, -/obj/structure/window/spawner/directional/south, -/turf/open/floor/iron/white, -/area/station/security/prison/mess) "mzu" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -35456,19 +35319,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"mDC" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio5"; - name = "Xenobio Pen 5 Blast Doors"; - pixel_y = 4; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron, -/area/station/science/xenobiology) "mDL" = ( /obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/delivery, @@ -35648,6 +35498,10 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"mGE" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/space/basic, +/area/space/nearstation) "mGI" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -36196,6 +36050,18 @@ dir = 1 }, /area/station/security/prison) +"mRc" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio1"; + name = "Xenobio Pen 1 Blast Doors"; + pixel_y = 1; + req_access = list("xenobiology") + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "mRg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36506,12 +36372,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/service/bar/backroom) -"mWd" = ( -/obj/structure/railing{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "mWA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -36813,6 +36673,18 @@ }, /turf/open/floor/plating, /area/station/maintenance/central) +"naD" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio6"; + name = "Xenobio Pen 6 Blast Doors"; + pixel_y = 1; + req_access = list("xenobiology") + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "naN" = ( /obj/machinery/button/door/directional/west{ id = "transitlockdown"; @@ -37433,17 +37305,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) -"nnh" = ( -/obj/machinery/light_switch/directional/south, -/obj/structure/table/wood, -/obj/item/razor{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/cigarette/cigar, -/obj/item/reagent_containers/cup/glass/flask/gold, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/captain/private) "nnl" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/structure/disposalpipe/segment{ @@ -37979,6 +37840,18 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/cargo/storage) +"nux" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio7"; + name = "Xenobio Pen 7 Blast Doors"; + pixel_y = 4; + req_access = list("xenobiology") + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/science/xenobiology) "nuB" = ( /obj/structure/secure_safe/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -38088,17 +37961,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer5, /turf/closed/wall, /area/station/engineering/atmos/pumproom) -"nwL" = ( -/obj/machinery/computer/upload/ai, -/obj/machinery/door/window/right/directional/south{ - name = "Upload Console Window"; - req_access = list("ai_upload") - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "nwT" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8 @@ -38518,6 +38380,19 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) +"nDD" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio5"; + name = "Xenobio Pen 5 Blast Doors"; + pixel_y = 4; + req_access = list("xenobiology") + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron, +/area/station/science/xenobiology) "nDG" = ( /obj/item/radio/intercom/directional/south, /turf/closed/wall, @@ -38730,6 +38605,17 @@ /obj/effect/turf_decal/siding/purple/corner, /turf/open/floor/iron/white, /area/station/science/cytology) +"nIa" = ( +/obj/machinery/computer/upload/ai, +/obj/machinery/door/window/right/directional/south{ + name = "Upload Console Window"; + req_access = list("ai_upload") + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "nIj" = ( /obj/structure/easel, /turf/open/floor/plating, @@ -38754,13 +38640,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"nJn" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/pharmacy) "nJo" = ( /obj/machinery/smartfridge/organ, /obj/machinery/door/poddoor/shutters/preopen{ @@ -38771,10 +38650,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) -"nJr" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "nJu" = ( /obj/structure/closet/secure_closet/security/sec, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -38782,23 +38657,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/lockers) -"nJA" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/airlock_controller/incinerator_ordmix{ - pixel_x = -24 - }, -/obj/machinery/button/ignition/incinerator/ordmix{ - pixel_x = 24; - pixel_y = -6 - }, -/obj/machinery/button/door/incinerator_vent_ordmix{ - pixel_x = 24; - pixel_y = 8 - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "nJG" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -38949,10 +38807,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"nLZ" = ( -/obj/item/toy/beach_ball/branded, -/turf/open/space/basic, -/area/space/nearstation) "nMf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -39475,6 +39329,13 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/space, /area/space/nearstation) +"nXb" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron, +/area/station/commons/toilet/auxiliary) "nXm" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -39624,12 +39485,6 @@ /obj/machinery/bookbinder, /turf/open/floor/wood, /area/station/service/library) -"nZL" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "oac" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -39931,12 +39786,6 @@ /obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, /turf/open/floor/iron, /area/station/service/hydroponics) -"oet" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "oew" = ( /turf/open/floor/iron, /area/station/commons/fitness/recreation) @@ -40283,6 +40132,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"omf" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) "omm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40406,6 +40261,11 @@ /obj/structure/table, /turf/open/floor/iron/dark, /area/station/security/office) +"ooM" = ( +/obj/structure/table/wood, +/obj/item/cigarette/pipe, +/turf/open/floor/wood, +/area/station/commons/lounge) "ooP" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -41390,14 +41250,6 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/medical/medbay/central) -"oGj" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/box, -/obj/machinery/portable_atmospherics/canister, -/obj/item/radio/intercom/directional/north, -/obj/structure/sign/warning/gas_mask/directional/east, -/turf/open/floor/iron, -/area/station/science/xenobiology) "oGn" = ( /obj/machinery/door/airlock/maintenance{ name = "Fuel Closet" @@ -41605,6 +41457,16 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"oJK" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "oJL" = ( /obj/machinery/computer/atmos_control/nitrogen_tank{ dir = 1 @@ -42851,6 +42713,15 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"piy" = ( +/obj/machinery/camera/directional/west{ + active_power_usage = 0; + c_tag = "Turbine Vent"; + network = list("turbine"); + use_power = 0 + }, +/turf/open/space/basic, +/area/space/nearstation) "piz" = ( /obj/structure/cable, /obj/effect/landmark/start/hangover, @@ -43967,6 +43838,15 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/dark, /area/station/command/bridge) +"pCR" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/effect/turf_decal/siding/purple{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) "pDe" = ( /obj/machinery/computer/telecomms/server{ dir = 8; @@ -44311,6 +44191,17 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) +"pJc" = ( +/obj/machinery/chem_dispenser, +/obj/machinery/button/door/directional/north{ + id = "pharmacy_shutters"; + name = "pharmacy shutters control"; + pixel_x = 24; + req_access = list("medical") + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) "pJf" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -44885,6 +44776,10 @@ }, /turf/open/floor/iron/goonplaque, /area/station/hallway/primary/port) +"pTl" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/space/basic, +/area/space/nearstation) "pTm" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -47684,6 +47579,20 @@ /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden, /turf/open/floor/iron, /area/station/engineering/atmos/storage/gas) +"qRR" = ( +/obj/item/emptysandbag, +/obj/item/emptysandbag, +/obj/item/emptysandbag, +/obj/item/emptysandbag{ + pixel_x = 8 + }, +/obj/item/emptysandbag{ + pixel_x = -9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/south, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "qRS" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -48942,6 +48851,9 @@ /obj/effect/spawner/random/trash/caution_sign, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"rok" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "roF" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -49059,6 +48971,14 @@ /obj/machinery/digital_clock/directional/south, /turf/open/floor/iron, /area/station/service/bar) +"rrJ" = ( +/obj/structure/filingcabinet, +/obj/item/folder/documents, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/poster/traitor, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) "rrL" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/poddoor/preopen{ @@ -49163,10 +49083,6 @@ }, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) -"rtj" = ( -/obj/machinery/igniter/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "rtz" = ( /obj/effect/turf_decal/siding/wood/corner, /obj/effect/turf_decal/siding/wood{ @@ -49414,6 +49330,17 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"rwq" = ( +/obj/machinery/light_switch/directional/south, +/obj/structure/table/wood, +/obj/item/razor{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/cigarette/cigar, +/obj/item/reagent_containers/cup/glass/flask/gold, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain/private) "rwx" = ( /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line{ @@ -50264,18 +50191,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"rMe" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio3"; - name = "Xenobio Pen 3 Blast Doors"; - pixel_y = 4; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron, -/area/station/science/xenobiology) "rMl" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -50489,25 +50404,6 @@ }, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) -"rQk" = ( -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/machinery/camera/directional/north{ - c_tag = "Security Post - Medbay"; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/machinery/light/small/directional/north, -/obj/structure/table/reinforced, -/obj/machinery/requests_console/directional/north{ - department = "Security"; - name = "Security Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/effect/mapping_helpers/requests_console/supplies, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint/medical) "rQl" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -50905,9 +50801,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/visit) -"rXT" = ( -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "rXW" = ( /obj/item/radio/intercom/directional/west, /obj/structure/table/glass, @@ -51100,6 +50993,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"sat" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding{ + dir = 9 + }, +/obj/item/stock_parts/matter_bin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/micro_laser, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/obj/item/multitool, +/turf/open/floor/iron, +/area/station/science/lab) "saB" = ( /obj/machinery/button/door/directional/west{ id = "atmoshfr"; @@ -51134,6 +51044,25 @@ /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/dark, /area/station/service/cafeteria) +"saK" = ( +/obj/structure/lattice/catwalk, +/obj/item/reagent_containers/cup/glass/bottle/rum{ + pixel_x = -7; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/glass/colocup{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/glass/colocup{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/cigarette/rollie/cannabis{ + pixel_y = -3 + }, +/turf/open/space/basic, +/area/space/nearstation) "saN" = ( /obj/structure/bookcase/random/religion, /turf/open/floor/wood, @@ -51318,6 +51247,10 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"sdS" = ( +/obj/item/toy/beach_ball/branded, +/turf/open/space/basic, +/area/space/nearstation) "sdW" = ( /obj/structure/sign/warning/radiation/rad_area/directional/north, /obj/effect/turf_decal/bot_white, @@ -51979,6 +51912,22 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"stt" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio8"; + name = "Xenobio Pen 8 Blast Doors"; + pixel_y = 4; + req_access = list("xenobiology") + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 10; + pixel_y = -1 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "stC" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, @@ -52199,6 +52148,10 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"swB" = ( +/obj/machinery/door/poddoor/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "swP" = ( /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -52873,6 +52826,14 @@ "sHu" = ( /turf/open/floor/plating, /area/station/maintenance/port/fore) +"sHJ" = ( +/obj/machinery/atmospherics/components/binary/pump/on, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "sHM" = ( /obj/effect/turf_decal/bot/right, /turf/open/floor/engine, @@ -52945,6 +52906,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/engineering/supermatter) +"sKb" = ( +/obj/item/storage/box/matches{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/cigarette/cigar{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/item/cigarette/cigar{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/cigarette/cigar/cohiba, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/station/command/corporate_showroom) "sKs" = ( /obj/structure/closet/bombcloset/security, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -53208,6 +53186,18 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"sOp" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/obj/machinery/airlock_sensor/incinerator_ordmix{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "sOF" = ( /obj/structure/light_construct/directional/east, /turf/open/floor/wood, @@ -54051,6 +54041,18 @@ /obj/structure/bookcase/random/nonfiction, /turf/open/floor/wood, /area/station/service/library) +"tcc" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio2"; + name = "Xenobio Pen 2 Blast Doors"; + pixel_y = 1; + req_access = list("xenobiology") + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/science/xenobiology) "tck" = ( /obj/structure/extinguisher_cabinet/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -54507,6 +54509,10 @@ /obj/item/radio/intercom/prison/directional/north, /turf/open/floor/iron, /area/station/security/prison) +"tlg" = ( +/obj/structure/sign/warning/electric_shock/directional/east, +/turf/open/space/basic, +/area/space/nearstation) "tlh" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -54660,12 +54666,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"tnF" = ( -/obj/machinery/light/small/dim/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "tnG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/showcase/machinery/oldpod{ @@ -55828,10 +55828,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"tLb" = ( -/obj/structure/sign/warning/electric_shock/directional/south, -/turf/open/space/basic, -/area/space/nearstation) "tLc" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -56499,17 +56495,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"tVk" = ( -/obj/machinery/light/directional/south, -/obj/machinery/firealarm/directional/south, -/obj/structure/rack, -/obj/item/storage/briefcase/secure, -/obj/item/cigarette/cigar, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "tVm" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -58111,6 +58096,12 @@ "uwQ" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) +"uwT" = ( +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) "uxa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58247,15 +58238,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"uzl" = ( -/obj/machinery/camera/directional/west{ - active_power_usage = 0; - c_tag = "Turbine Vent"; - network = list("turbine"); - use_power = 0 - }, -/turf/open/space/basic, -/area/space/nearstation) "uzJ" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 4 @@ -59819,6 +59801,20 @@ /obj/item/stock_parts/power_store/cell/high, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"vap" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio4"; + name = "Xenobio Pen 4 Blast Doors"; + pixel_y = 4; + req_access = list("xenobiology"); + sync_doors = 4 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "vaB" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -59848,6 +59844,14 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/engineering/main) +"vbi" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ + name = "Burn Chamber Exterior Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "vbq" = ( /obj/structure/sign/map/right{ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; @@ -60120,13 +60124,6 @@ }, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) -"vhb" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "vhj" = ( /obj/structure/chair{ name = "Judge" @@ -60191,25 +60188,6 @@ /mob/living/carbon/human/species/monkey, /turf/open/floor/grass, /area/station/medical/virology) -"vis" = ( -/obj/structure/filingcabinet, -/obj/item/folder/documents, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/poster/traitor, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/nuke_storage) -"viF" = ( -/obj/machinery/computer/upload/borg, -/obj/machinery/door/window/left/directional/south{ - name = "Cyborg Upload Console Window"; - req_access = list("ai_upload") - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "viH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/spawner/structure/window/reinforced, @@ -60741,6 +60719,9 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"vqC" = ( +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "vqU" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -60771,6 +60752,20 @@ /obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/science/research) +"vrp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/east{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "vru" = ( /obj/machinery/chem_master, /obj/effect/turf_decal/tile/yellow/half/contrasted, @@ -61081,11 +61076,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"vwi" = ( -/obj/structure/table, -/obj/item/cigarette/pipe, -/turf/open/floor/plating, -/area/station/maintenance/port) "vwn" = ( /obj/item/kirbyplants/organic/plant10, /turf/open/floor/wood/large, @@ -61423,16 +61413,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"vCu" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/camera/directional/west{ - c_tag = "Auxilary Restrooms" - }, -/obj/structure/sign/poster/official/random/directional/west, -/turf/open/floor/iron, -/area/station/commons/toilet/auxiliary) "vCC" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -63127,6 +63107,14 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/lobby) +"wea" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Xenobiology Lab - Test Chamber"; + network = list("ss13","rd","xeno") + }, +/obj/machinery/light/cold/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "wem" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -63713,23 +63701,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"wpo" = ( -/obj/item/storage/box/matches{ - pixel_x = -2; - pixel_y = 3 - }, -/obj/item/cigarette/cigar{ - pixel_x = 4; - pixel_y = 1 - }, -/obj/item/cigarette/cigar{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/cigarette/cigar/cohiba, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/station/command/corporate_showroom) "wpr" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/stripes/line{ @@ -64471,6 +64442,14 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/science/server) +"wCE" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/box, +/obj/machinery/portable_atmospherics/canister, +/obj/item/radio/intercom/directional/north, +/obj/structure/sign/warning/gas_mask/directional/east, +/turf/open/floor/iron, +/area/station/science/xenobiology) "wCL" = ( /obj/structure/chair/stool/directional/south, /obj/effect/turf_decal/siding/wood{ @@ -65492,6 +65471,12 @@ "wXF" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/lesser) +"wXO" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "wXP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -66679,10 +66664,6 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"xtw" = ( -/obj/item/stack/rods, -/turf/open/space/basic, -/area/space/nearstation) "xtz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67139,6 +67120,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) +"xBp" = ( +/obj/machinery/sparker/directional/north{ + id = "Xenobio" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "xBq" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67441,6 +67428,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"xFZ" = ( +/obj/machinery/computer/upload/borg, +/obj/machinery/door/window/left/directional/south{ + name = "Cyborg Upload Console Window"; + req_access = list("ai_upload") + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "xGa" = ( /obj/structure/rack, /obj/item/storage/box, @@ -67546,17 +67544,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics) -"xIK" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = -7; - pixel_y = 13 - }, -/obj/item/reagent_containers/condiment/flour{ - pixel_x = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "xIM" = ( /obj/machinery/computer/operating{ dir = 8 @@ -67978,6 +67965,10 @@ "xRZ" = ( /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"xSq" = ( +/obj/item/stack/rods, +/turf/open/space/basic, +/area/space/nearstation) "xSO" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -68018,6 +68009,17 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron, /area/station/science/research) +"xTr" = ( +/obj/structure/closet{ + name = "evidence closet 3" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/item/poster/traitor, +/turf/open/floor/iron/dark, +/area/station/security/evidence) "xTw" = ( /turf/closed/wall/r_wall, /area/station/medical/medbay/central) @@ -68403,10 +68405,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"xYZ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "xZb" = ( /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, @@ -68606,10 +68604,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"ycv" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "ycw" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -79498,10 +79492,10 @@ lMJ aaa aaa aaa -mWd +omf aaa aaa -mWd +omf aaa aaa aaa @@ -81375,7 +81369,7 @@ aaa aaa aaa aaa -nLZ +sdS aaa aaa aaa @@ -81863,7 +81857,7 @@ aaa aaa aaa aaa -mWd +omf aaa aaa aaa @@ -82657,7 +82651,7 @@ aaa aaa aaa aaa -bxr +tlg aaa aaa lZV @@ -83693,7 +83687,7 @@ qPC rKQ xjH xjH -fIR +mGE aaa aaa lMJ @@ -84721,7 +84715,7 @@ rKQ rKQ xjH xjH -ktw +pTl aaa aaa lMJ @@ -84863,7 +84857,7 @@ aaa aaa aaa aaa -xtw +xSq aaa fcJ aaa @@ -85391,7 +85385,7 @@ aaa aaa aaa aaa -mWd +omf aaa aaa lMJ @@ -85453,7 +85447,7 @@ pOa pOa uOH jUb -xIK +dUG bar nBp dqN @@ -85705,7 +85699,7 @@ lMY pOa mrN gXe -vwi +leO tql pOa aDl @@ -85749,7 +85743,7 @@ rKQ rKQ xjH xjH -fIR +mGE aaa aaa aaa @@ -85941,9 +85935,9 @@ eOb gvA vQs ePj -tnF +dEr dKY -kif +qRR vQs dHc dHc @@ -86187,7 +86181,7 @@ yeq yeq cvv wcy -kkk +ewr fXZ sUc vsO @@ -86210,7 +86204,7 @@ iOc qwG fjD rEj -vCu +nXb cwc kXa fjD @@ -86258,7 +86252,7 @@ aaa aaa lMJ lMJ -cCM +saK cDD lMJ lMJ @@ -86421,7 +86415,7 @@ qvJ nxi bWw mqn -dwI +cWz iPE vfv wXv @@ -86778,7 +86772,7 @@ gAf tSw tSw aaa -gda +fZt aaa aaa sGL @@ -86972,7 +86966,7 @@ xbZ kZI nbd vKn -fNz +dbe vQs vQs hyW @@ -87556,7 +87550,7 @@ gnL ckz dWA ecz -fIR +mGE aaa lMJ aaa @@ -89271,7 +89265,7 @@ heR kQP hqD kQP -eTt +kEk nwm izI kQP @@ -89484,7 +89478,7 @@ tGX aXa aKl lds -mzm +isi hXQ bVF fGP @@ -90296,7 +90290,7 @@ wWe aTU jzE kQP -ezw +mtk aSv aLW jle @@ -90800,7 +90794,7 @@ fOB jXu aaa rlU -vis +rrJ dhz ixT oXK @@ -91562,7 +91556,7 @@ eWA sjP aaa aaa -bxr +tlg jXu rOz sHu @@ -92681,7 +92675,7 @@ qXL oqk xZB hIJ -vhb +gTx lrZ kiz nmQ @@ -93166,7 +93160,7 @@ gqX htd oGK qPJ -rQk +blc waH vbV ixr @@ -94154,7 +94148,7 @@ aaa aJS oOl rxx -viF +xFZ aPv oWF eQg @@ -94668,7 +94662,7 @@ aaa aJS bpu wzH -nwL +nIa aPv iIQ aRV @@ -94900,7 +94894,7 @@ lAM aaa aaa rJB -kaU +xTr nqD sfK rTw @@ -95457,7 +95451,7 @@ nxO qXF qXF aMB -tVk +eIf duI jnt cdC @@ -95490,7 +95484,7 @@ keK lXA mVE hxq -nJn +jVe nqB kxa eIO @@ -95742,7 +95736,7 @@ nxy nxy aYJ hEc -bFN +pJc qJn hYA jsh @@ -96183,7 +96177,7 @@ aaa jLw aaa aaa -cTk +aLq aeq dXs tJE @@ -96758,7 +96752,7 @@ jzN wyp gzi cyU -wpo +sKb oSo iXb kdx @@ -96950,7 +96944,7 @@ aaa aaa aaa aaa -tLb +bJH iTZ ahj ahj @@ -99307,7 +99301,7 @@ kGq syo oOz tLi -nnh +rwq tyY vFx tyY @@ -100286,7 +100280,7 @@ aaa aaa aaa aaa -tLb +bJH gdb ikZ gdb @@ -100370,7 +100364,7 @@ otB bdv jXK sQB -gLU +sat buT oOB kZx @@ -100400,12 +100394,12 @@ fhi fhi uEo fiS -rXT -eRn -rXT -rXT -rXT -rXT +rok +bFa +rok +rok +rok +rok lMJ uGg nFa @@ -100657,12 +100651,12 @@ huj fhi xEU iqx -xYZ -gil -xYZ -oet -dXU -kgC +hph +sOp +hph +lHu +vqC +swB lMJ uGg nFa @@ -100914,12 +100908,12 @@ fhi fhi fhi twy -nJA -nZL -bEv -cgP -rtj -kgC +gyc +gnW +vbi +izb +cYj +swB lMJ uGg nFa @@ -101163,20 +101157,20 @@ jVy jTN vAH kIY -cyp +pCR gyQ rbD jwj ujk -jvo -aHH +oJK +vrp iYE -dTN -dEF -dTN -cOT -dXU -kgC +dKx +sHJ +dKx +amp +vqC +swB lMJ uGg wpn @@ -102371,7 +102365,7 @@ fRW qnS uxb hAk -gzO +uwT eqn jSb kAF @@ -105736,7 +105730,7 @@ aSk tlZ lje klZ -bqC +ooM fqD wSs pur @@ -106777,7 +106771,7 @@ rHz aFW dqX qLp -bpY +liZ obG izZ tNQ @@ -107830,7 +107824,7 @@ lMJ lMJ lMJ lMJ -uzl +piy aaa aaa aaa @@ -110378,7 +110372,7 @@ dkC dwz dwz frE -afz +dzs uwQ siy lgL @@ -113234,7 +113228,7 @@ kWc xiL bus hMv -iTQ +mRc vGq avx vBf @@ -113244,7 +113238,7 @@ qQJ vGq bjs gyI -lPS +stt xiL kvO bPB @@ -114775,7 +114769,7 @@ oyj xiL mtu lHh -iNK +tcc faD iWc cXP @@ -114785,7 +114779,7 @@ vvD cXP lVB iWc -gkC +nux xlH mtu xiL @@ -115545,19 +115539,19 @@ hbK hbK oyj xiL -rMe +lRs rwx vFh dac evD pJf -ycv +ebq tIe min min wFy ohD -bZb +naD xiL lmn hbK @@ -115805,13 +115799,13 @@ xiL hWa imw iHH -mcF +vap rrL rSW min ckI sCv -mDC +nDD toM eOP hWa @@ -117091,7 +117085,7 @@ rDf uhs fjd jlU -oGj +wCE sZN msR xkv @@ -117605,11 +117599,11 @@ hbK mgS hbK jlU -kcu -kcu -gyK -kcu -kcu +gQv +gQv +hcj +gQv +gQv jlU hbK mTg @@ -117862,11 +117856,11 @@ tmU fGy wyo jlU -dLm -kcu -gyK -kcu -kcu +xBp +gQv +hcj +gQv +gQv jlU qgn mCV @@ -118119,11 +118113,11 @@ pWT rDf uLa jlU -kcu -kcu -jQz -nJr -kcu +gQv +gQv +wXO +hAd +gQv jlU lUS pHt @@ -118376,11 +118370,11 @@ hbK wrc wrc jlU -kcu -kcu -kcu -kcu -kcu +gQv +gQv +gQv +gQv +gQv jlU wrc wrc @@ -118634,9 +118628,9 @@ aaa lMJ jlU jlU -kcu -aYl -kcu +gQv +wea +gQv jlU jlU lMJ diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index b6ac5fb5feed9..098382a356265 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -72,13 +72,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/commons/toilet) -"aaN" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer4{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "aaO" = ( /obj/machinery/computer/atmos_alert{ dir = 4 @@ -209,12 +202,6 @@ /obj/effect/landmark/navigate_destination/dockarrival, /turf/open/floor/iron/textured_large, /area/station/hallway/secondary/entry) -"acl" = ( -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/openspace, -/area/space/nearstation) "acp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, @@ -289,15 +276,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/pod/light, /area/station/maintenance/floor3/starboard/fore) -"acL" = ( -/obj/structure/table/wood, -/obj/item/cigarette/cigar/cohiba, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line, -/turf/open/floor/carpet/blue, -/area/station/command/meeting_room) "adq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2980,6 +2958,13 @@ dir = 1 }, /area/station/hallway/floor2/aft) +"aOq" = ( +/obj/item/fishing_rod, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance/three, +/obj/item/cigarette/pipe, +/turf/open/floor/pod/light, +/area/station/maintenance/floor2/starboard/fore) "aOt" = ( /obj/structure/railing{ dir = 1 @@ -3380,6 +3365,24 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/medical/paramedic) +"aTe" = ( +/obj/machinery/computer/upload/ai, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "AI Upload Chamber - Fore"; + network = list("aiupload") + }, +/obj/machinery/door/window/right/directional/south{ + name = "Upload Console Window"; + req_access = list("ai_upload") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "aTh" = ( /obj/structure/chair/office{ dir = 8 @@ -3423,12 +3426,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"aTO" = ( -/obj/machinery/power/shuttle_engine/propulsion/burst{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "aTU" = ( /obj/effect/turf_decal/trimline/purple/line, /obj/effect/turf_decal/trimline/purple/line{ @@ -4184,6 +4181,14 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/command/meeting_room) +"bcE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "bcH" = ( /obj/effect/turf_decal/tile/purple/half/contrasted{ dir = 4 @@ -4338,6 +4343,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod/light, /area/station/maintenance/floor1/starboard/fore) +"beK" = ( +/obj/machinery/netpod, +/obj/structure/railing, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/bitrunning/den) "beM" = ( /obj/machinery/vending/drugs, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -6881,14 +6891,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/medical/abandoned) -"bJA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer4{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "bJQ" = ( /obj/structure/railing/corner{ dir = 1 @@ -7207,12 +7209,6 @@ }, /turf/open/floor/engine/hull, /area/space/nearstation) -"bOk" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "bOq" = ( /obj/machinery/door/airlock/maintenance/external, /obj/effect/turf_decal/stripes/line{ @@ -7333,6 +7329,15 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) +"bQj" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar/cohiba, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/line, +/turf/open/floor/carpet/blue, +/area/station/command/meeting_room) "bQn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11430,24 +11435,6 @@ }, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) -"cSb" = ( -/obj/structure/table, -/obj/item/stock_parts/micro_laser, -/obj/item/stock_parts/servo{ - pixel_x = 15; - pixel_y = 4 - }, -/obj/item/reagent_containers/dropper{ - pixel_x = -2; - pixel_y = 9 - }, -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/obj/item/multitool, -/turf/open/floor/iron/white, -/area/station/science/lab) "cSc" = ( /obj/item/food/cornchips/green{ pixel_x = -8; @@ -12032,6 +12019,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/side, /area/station/hallway/secondary/exit/escape_pod) +"cZk" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/space/openspace, +/area/space/nearstation) "cZA" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 @@ -12686,12 +12679,6 @@ }, /turf/open/floor/pod/dark, /area/station/maintenance/floor2/port/aft) -"djc" = ( -/obj/structure/railing{ - dir = 4 - }, -/turf/open/space/openspace, -/area/space/nearstation) "djd" = ( /obj/structure/cable, /turf/open/floor/iron/dark, @@ -12793,12 +12780,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/supply/visible, /turf/open/floor/iron, /area/station/engineering/atmos) -"dkn" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/turf/open/space/openspace, -/area/space/nearstation) "dks" = ( /obj/structure/girder, /obj/item/stack/sheet/iron, @@ -14457,11 +14438,6 @@ /obj/structure/cable, /turf/open/floor/pod/light, /area/station/maintenance/floor1/starboard/fore) -"dIJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "dIO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -15642,15 +15618,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/pod/light, /area/station/maintenance/floor1/port/fore) -"dXy" = ( -/obj/structure/table/glass, -/obj/machinery/defibrillator_mount/directional/east, -/obj/item/storage/box/syringes{ - pixel_y = 6 - }, -/obj/item/stack/medical/mesh, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "dXz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/graffiti{ @@ -18037,6 +18004,14 @@ /obj/machinery/light/dim/directional/east, /turf/open/floor/carpet/red, /area/station/service/theater) +"eFt" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 5 + }, +/obj/item/reagent_containers/condiment/enzyme, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "eFz" = ( /obj/structure/chair/wood, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -21120,6 +21095,14 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/escape_pod) +"fAw" = ( +/obj/machinery/door/firedoor/border_only, +/obj/structure/railing, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "fAy" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -23290,13 +23273,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/cargo/warehouse) -"gcm" = ( -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/structure/table/reinforced/rglass, -/obj/item/pai_card, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/iron/white/textured, -/area/station/medical/treatment_center) "gcs" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/effect/turf_decal/tile/green/half, @@ -23652,24 +23628,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/disposal) -"ghy" = ( -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/structure/table/reinforced/rglass, -/obj/machinery/cell_charger{ - pixel_y = 10 - }, -/obj/machinery/cell_charger{ - pixel_y = 1 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_y = 9; - pixel_x = -1 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = -1 - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/treatment_center) "ghH" = ( /obj/effect/turf_decal/tile/blue/half{ dir = 4 @@ -24699,13 +24657,6 @@ /obj/structure/window/reinforced/tinted/spawner/directional/west, /turf/open/floor/carpet, /area/station/commons/vacant_room/office) -"gwe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "gwl" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 4 @@ -25513,6 +25464,10 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/third) +"gHe" = ( +/obj/machinery/light/cold/no_nightlight/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "gHi" = ( /obj/structure/table/wood, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27040,15 +26995,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"hbW" = ( -/obj/structure/railing, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/obj/structure/closet/firecloset, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/floor4/fore) "hbX" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -28198,6 +28144,11 @@ /obj/structure/sign/poster/contraband/syndicate_pistol, /turf/closed/wall, /area/station/maintenance/floor3/port/aft) +"hrG" = ( +/obj/machinery/holopad, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "hrL" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/window/reinforced/spawner/directional/west, @@ -28249,11 +28200,6 @@ }, /turf/open/floor/pod/dark, /area/station/maintenance/floor2/starboard/aft) -"hsA" = ( -/obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron, -/area/station/commons/toilet) "hsG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /turf/open/floor/engine, @@ -29918,6 +29864,10 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"hNN" = ( +/obj/structure/railing, +/turf/open/space/openspace, +/area/space/nearstation) "hNO" = ( /obj/machinery/door/window/brigdoor/security/cell/left/directional/west{ id = "cell-3"; @@ -33303,6 +33253,15 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"iHC" = ( +/obj/structure/table/glass, +/obj/machinery/defibrillator_mount/directional/east, +/obj/item/storage/box/syringes{ + pixel_y = 6 + }, +/obj/item/stack/medical/mesh, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "iHG" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 8 @@ -33787,24 +33746,6 @@ "iOA" = ( /turf/closed/wall/r_wall, /area/station/maintenance/floor2/starboard) -"iOD" = ( -/obj/machinery/computer/upload/ai, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/obj/machinery/camera/directional/north{ - c_tag = "AI Upload Chamber - Fore"; - network = list("aiupload") - }, -/obj/machinery/door/window/right/directional/south{ - name = "Upload Console Window"; - req_access = list("ai_upload") - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "iOL" = ( /obj/structure/bookcase/random, /obj/effect/turf_decal/trimline/blue/filled/line, @@ -34747,6 +34688,17 @@ /obj/machinery/atmospherics/pipe/layer_manifold/pink/visible, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) +"jaS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "jbc" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/pod/light, @@ -35286,14 +35238,6 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/tools) -"jjj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "jjo" = ( /obj/machinery/holopad, /turf/open/floor/iron/white/textured_large, @@ -38156,6 +38100,9 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/floor3/fore) +"jVQ" = ( +/turf/open/space/openspace, +/area/space/nearstation) "jVS" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery, @@ -39040,6 +38987,12 @@ /obj/machinery/light/broken/directional/north, /turf/open/floor/iron/kitchen, /area/station/service/kitchen/abandoned) +"kfS" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/space/openspace, +/area/space/nearstation) "kga" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41292,6 +41245,10 @@ }, /turf/open/floor/iron/white, /area/station/science/lobby) +"kKb" = ( +/obj/machinery/camera/autoname/directional/east, +/turf/open/space/openspace, +/area/space/nearstation) "kKd" = ( /obj/structure/railing{ dir = 10 @@ -41374,6 +41331,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"kKR" = ( +/obj/machinery/computer/upload/borg, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/window/left/directional/south{ + name = "Cyborg Upload Console Window"; + req_access = list("ai_upload") + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "kKU" = ( /obj/structure/railing{ dir = 1 @@ -41766,6 +41737,24 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"kQG" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/book/manual/chef_recipes, +/turf/open/floor/iron, +/area/station/security/prison) "kQI" = ( /obj/effect/decal/cleanable/dirt, /obj/item/storage/bag/trash, @@ -42429,6 +42418,13 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron, /area/station/cargo/storage) +"kYS" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/sign/warning/gas_mask/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "kYV" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, @@ -42733,6 +42729,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/psychology) +"lbW" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron, +/area/station/engineering/atmos) "lcg" = ( /obj/effect/decal/cleanable/oil, /obj/item/mop, @@ -42745,6 +42746,12 @@ }, /turf/open/openspace, /area/station/maintenance/floor2/starboard) +"lcj" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/space/openspace, +/area/space/nearstation) "lcr" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 @@ -44092,18 +44099,6 @@ dir = 9 }, /area/station/security/prison) -"luo" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/structure/railing, -/obj/effect/decal/cleanable/robot_debris, -/obj/effect/landmark/start/bitrunner, -/turf/open/floor/iron/dark/textured_large, -/area/station/cargo/bitrunning/den) "luv" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44168,6 +44163,15 @@ /obj/machinery/light/floor, /turf/open/floor/carpet/red, /area/station/service/library/artgallery) +"luU" = ( +/obj/structure/railing, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/structure/closet/firecloset, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/floor4/fore) "luZ" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, @@ -44526,6 +44530,13 @@ /obj/machinery/duct, /turf/open/floor/iron/dark/side, /area/station/security/office) +"lAn" = ( +/obj/structure/table, +/obj/item/cigarette/candy{ + pixel_x = 4 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/floor1/aft) "lAD" = ( /obj/effect/turf_decal/trimline/green/filled/arrow_cw{ dir = 10 @@ -45625,6 +45636,11 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/white/herringbone, /area/station/medical/patients_rooms) +"lOy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "lOz" = ( /obj/structure/closet/secure_closet/personal/patient, /turf/open/floor/iron/white, @@ -45969,20 +45985,6 @@ /obj/effect/decal/cleanable/plastic, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat) -"lSI" = ( -/obj/machinery/computer/upload/borg, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/door/window/left/directional/south{ - name = "Cyborg Upload Console Window"; - req_access = list("ai_upload") - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "lSJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -46267,6 +46269,13 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor1/port) +"lWV" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/table/reinforced/rglass, +/obj/item/pai_card, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/iron/white/textured, +/area/station/medical/treatment_center) "lWY" = ( /obj/machinery/light/small/directional/south, /obj/structure/disposalpipe/trunk{ @@ -46695,6 +46704,10 @@ dir = 4 }, /area/station/hallway/secondary/service) +"mbP" = ( +/obj/structure/railing/corner, +/turf/open/space/openspace, +/area/space/nearstation) "mbS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, /obj/effect/spawner/structure/window/hollow/reinforced/plasma/middle, @@ -47521,6 +47534,12 @@ /obj/structure/lattice/catwalk, /turf/open/space/openspace, /area/station/solars/starboard/aft) +"mlU" = ( +/obj/machinery/power/shuttle_engine/huge{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) "mlX" = ( /obj/structure/chair/comfy/brown, /obj/effect/landmark/start/assistant, @@ -48455,6 +48474,10 @@ "myr" = ( /turf/open/floor/iron/textured_large, /area/station/hallway/secondary/entry) +"myw" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/commons/toilet) "myO" = ( /turf/closed/wall, /area/station/hallway/secondary/exit/escape_pod) @@ -49345,6 +49368,12 @@ /obj/structure/cable, /turf/open/floor/iron/dark/side, /area/station/hallway/floor2/aft) +"mJN" = ( +/obj/effect/turf_decal/tile/neutral/full, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) "mKf" = ( /obj/item/radio/intercom/directional/west, /obj/structure/chair/sofa/corner/maroon{ @@ -49696,6 +49725,12 @@ /obj/effect/turf_decal/tile/green/full, /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"mOi" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/space/openspace, +/area/space/nearstation) "mOj" = ( /obj/structure/railing{ dir = 5 @@ -51439,6 +51474,13 @@ }, /turf/open/floor/iron/dark/side, /area/station/hallway/floor3/aft) +"njL" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer4{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "njQ" = ( /obj/structure/railing{ dir = 1 @@ -52020,6 +52062,12 @@ "nrm" = ( /turf/closed/wall, /area/station/medical/medbay/central) +"nrr" = ( +/obj/machinery/camera/motion/directional/west{ + c_tag = "Minisat - Aft" + }, +/turf/open/space/openspace, +/area/space/nearstation) "nrt" = ( /obj/machinery/conveyor{ dir = 6; @@ -52995,13 +53043,6 @@ "nEI" = ( /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/aisat_interior) -"nEM" = ( -/obj/item/fishing_rod, -/obj/structure/closet, -/obj/effect/spawner/random/maintenance/three, -/obj/item/cigarette/pipe, -/turf/open/floor/pod/light, -/area/station/maintenance/floor2/starboard/fore) "nEO" = ( /obj/structure/table, /obj/item/screwdriver, @@ -59542,17 +59583,6 @@ dir = 8 }, /area/station/hallway/floor3/fore) -"pqH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "pqO" = ( /obj/effect/decal/cleanable/glass, /obj/item/shard, @@ -60307,6 +60337,9 @@ }, /turf/open/floor/iron/dark/side, /area/station/hallway/floor4/fore) +"pAl" = ( +/turf/open/space/basic, +/area/space/nearstation) "pAn" = ( /obj/effect/mapping_helpers/airlock/access/any/medical/general, /obj/machinery/door/airlock/medical{ @@ -60777,10 +60810,6 @@ dir = 8 }, /area/station/security/office) -"pGz" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "pGG" = ( /obj/structure/ladder, /obj/structure/lattice/catwalk, @@ -61335,12 +61364,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark, /area/station/security/evidence) -"pNV" = ( -/obj/machinery/power/shuttle_engine/large{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "pNW" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 @@ -62743,6 +62766,24 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/wood/parquet, /area/station/medical/psychology) +"qga" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/table/reinforced/rglass, +/obj/machinery/cell_charger{ + pixel_y = 10 + }, +/obj/machinery/cell_charger{ + pixel_y = 1 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 9; + pixel_x = -1 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -1 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/treatment_center) "qgb" = ( /obj/structure/table/wood, /obj/item/folder/red, @@ -63211,6 +63252,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/floor2/starboard/fore) +"qnL" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) "qnN" = ( /obj/machinery/chem_heater/withbuffer, /turf/open/floor/circuit, @@ -65608,12 +65655,6 @@ }, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) -"qRS" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/space/openspace, -/area/space/nearstation) "qRW" = ( /obj/structure/disposalpipe/junction{ dir = 8 @@ -67024,10 +67065,6 @@ /obj/structure/railing/corner/end, /turf/open/floor/iron/dark, /area/station/hallway/floor1/aft) -"rjB" = ( -/obj/machinery/light/cold/no_nightlight/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "rjD" = ( /turf/closed/wall, /area/station/hallway/floor1/aft) @@ -69586,6 +69623,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/hallway/secondary/service) +"rWv" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/structure/railing, +/obj/effect/decal/cleanable/robot_debris, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/textured_large, +/area/station/cargo/bitrunning/den) "rWx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -69852,11 +69901,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor1/port) -"sav" = ( -/obj/effect/turf_decal/box/corners, -/obj/structure/sign/warning/biohazard/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "saA" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 1 @@ -69990,6 +70034,13 @@ /obj/structure/sign/poster/official/cleanliness/directional/east, /turf/open/floor/iron/white/textured, /area/station/medical/storage) +"scE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "scG" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -72491,12 +72542,6 @@ /obj/structure/cable, /turf/open/floor/pod/light, /area/station/maintenance/solars/port/aft) -"sKZ" = ( -/obj/machinery/camera/motion/directional/west{ - c_tag = "Minisat - Aft" - }, -/turf/open/space/openspace, -/area/space/nearstation) "sLe" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, @@ -72717,6 +72762,12 @@ /obj/machinery/light/floor, /turf/open/floor/iron/textured_large, /area/station/hallway/secondary/entry) +"sOb" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/space/openspace, +/area/space/nearstation) "sOj" = ( /obj/effect/spawner/random/structure/girder, /turf/open/floor/pod/light, @@ -73436,6 +73487,11 @@ }, /turf/open/floor/wood, /area/station/commons/dorms/apartment2) +"sXk" = ( +/obj/effect/turf_decal/box/corners, +/obj/structure/sign/warning/biohazard/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "sXp" = ( /obj/structure/rack, /obj/item/radio/off{ @@ -74550,10 +74606,6 @@ "tlt" = ( /turf/open/floor/catwalk_floor, /area/station/maintenance/floor2/port/fore) -"tlJ" = ( -/obj/machinery/camera/autoname/directional/east, -/turf/open/space/openspace, -/area/space/nearstation) "tlK" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -78291,10 +78343,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured, /area/station/cargo/storage) -"ujI" = ( -/obj/structure/railing, -/turf/open/space/openspace, -/area/space/nearstation) "ujQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -81761,6 +81809,14 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/service/kitchen/diner) +"vex" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer4{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "veA" = ( /obj/structure/railing{ dir = 8 @@ -82535,14 +82591,6 @@ "voT" = ( /turf/closed/wall, /area/station/maintenance/floor4/port/fore) -"voX" = ( -/obj/machinery/door/firedoor/border_only, -/obj/structure/railing, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "vpa" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron/dark, @@ -83414,11 +83462,6 @@ /obj/effect/turf_decal/trimline/brown/arrow_ccw, /turf/open/floor/iron/dark/side, /area/station/cargo/lobby) -"vzo" = ( -/obj/machinery/netpod, -/obj/structure/railing, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/bitrunning/den) "vzu" = ( /obj/effect/landmark/start/psychologist, /obj/structure/sign/poster/official/random/directional/south, @@ -84899,13 +84942,6 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/pod/dark, /area/station/maintenance/floor2/port) -"vTV" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/structure/sign/warning/gas_mask/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "vTY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -85574,12 +85610,6 @@ }, /turf/open/floor/iron/white, /area/station/science/lower) -"wbT" = ( -/obj/structure/railing{ - dir = 1 - }, -/turf/open/space/openspace, -/area/space/nearstation) "wci" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -86314,24 +86344,6 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/exit/escape_pod) -"wkP" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = -8; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = 9; - pixel_y = 3 - }, -/obj/item/book/manual/chef_recipes, -/turf/open/floor/iron, -/area/station/security/prison) "wkX" = ( /turf/open/floor/catwalk_floor, /area/station/hallway/floor2/fore) @@ -88749,6 +88761,12 @@ dir = 1 }, /area/station/hallway/floor1/fore) +"wOo" = ( +/obj/machinery/power/shuttle_engine/large{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) "wOt" = ( /obj/machinery/door/morgue{ name = "Confession Booth" @@ -89461,6 +89479,24 @@ /obj/structure/cable, /turf/open/floor/iron/smooth_large, /area/station/maintenance/disposal) +"wYb" = ( +/obj/structure/table, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/servo{ + pixel_x = 15; + pixel_y = 4 + }, +/obj/item/reagent_containers/dropper{ + pixel_x = -2; + pixel_y = 9 + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/obj/item/multitool, +/turf/open/floor/iron/white, +/area/station/science/lab) "wYd" = ( /obj/effect/turf_decal/tile/blue/anticorner{ dir = 1 @@ -90426,12 +90462,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"xln" = ( -/obj/machinery/power/shuttle_engine/huge{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "xlu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -90638,9 +90668,6 @@ }, /turf/open/floor/grass, /area/station/service/hydroponics/garden/abandoned) -"xpw" = ( -/turf/open/space/basic, -/area/space/nearstation) "xpA" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -91110,14 +91137,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) -"xvN" = ( -/obj/structure/table, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 5 - }, -/obj/item/reagent_containers/condiment/enzyme, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "xvO" = ( /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/dirt, @@ -91256,11 +91275,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/commons/vacant_room/office) -"xxA" = ( -/obj/machinery/holopad, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "xxC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -92209,9 +92223,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor4/starboard) -"xIV" = ( -/turf/open/space/openspace, -/area/space/nearstation) "xJk" = ( /obj/machinery/seed_extractor, /obj/effect/turf_decal/tile/green/full, @@ -92295,13 +92306,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor3/port) -"xJX" = ( -/obj/structure/table, -/obj/item/cigarette/candy{ - pixel_x = 4 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/floor1/aft) "xKa" = ( /obj/effect/turf_decal/stripes/white/corner, /turf/open/floor/iron/dark/corner, @@ -92332,16 +92336,18 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/evidence) -"xKt" = ( -/obj/structure/railing/corner, -/turf/open/space/openspace, -/area/space/nearstation) "xKy" = ( /obj/machinery/modular_computer/preset/id{ dir = 8 }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) +"xKW" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) "xKZ" = ( /obj/machinery/light_switch/directional/north, /obj/machinery/shower/directional/west, @@ -93015,12 +93021,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"xUk" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/turf/open/space/openspace, -/area/space/nearstation) "xUB" = ( /obj/machinery/light/floor, /turf/open/floor/iron/dark/side{ @@ -94060,6 +94060,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) +"yjm" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/space/openspace, +/area/space/nearstation) "yjJ" = ( /obj/effect/turf_decal/siding/wideplating_new/dark/corner, /turf/open/floor/engine/co2, @@ -94276,6 +94282,10 @@ /obj/machinery/holopad, /turf/open/floor/iron/white/herringbone, /area/station/medical/patients_rooms) +"ymh" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) (1,1,1) = {" owI @@ -117511,7 +117521,7 @@ tXe tXe cOT sxb -luo +rWv hTP lNW qZU @@ -117768,7 +117778,7 @@ tXe tXe pjw scn -vzo +beK dqM bED qZU @@ -134995,7 +135005,7 @@ oIJ hRR qXk hHB -hHB +lbW gmw hOy lHR @@ -135268,7 +135278,7 @@ eIr oyH xnr fvO -xJX +lAn oaa uYB tLa @@ -143230,7 +143240,7 @@ mjv tZD oIy owI -bOk +xKW owI cHX owI @@ -143240,7 +143250,7 @@ biH owI cHX owI -bOk +xKW owI dEc xMY @@ -143745,7 +143755,7 @@ gxT fmg owI jkM -bOk +xKW jkM owI caC @@ -143753,7 +143763,7 @@ wqD mdr owI jkM -bOk +xKW jkM owI oyh @@ -144002,7 +144012,7 @@ teq teq owI jkM -bOk +xKW jkM owI caC @@ -144010,7 +144020,7 @@ wqD mdr owI jkM -bOk +xKW jkM owI oyh @@ -144773,7 +144783,7 @@ sKt teq owI jkM -bOk +xKW jkM owI caC @@ -144781,7 +144791,7 @@ wqD mdr owI jkM -bOk +xKW jkM owI oyh @@ -145030,7 +145040,7 @@ xqr gIz owI jkM -bOk +xKW jkM owI caC @@ -145038,7 +145048,7 @@ wqD mdr owI jkM -bOk +xKW jkM owI oyh @@ -147060,17 +147070,17 @@ owI owI owI owI -aTO +qnL rcO -pNV -aTO +wOo +qnL rcO rcO -xln -aTO +mlU +qnL rcO rcO -xln +mlU teq teq teq @@ -147112,15 +147122,15 @@ iSU iSU rcO rcO -xln -aTO +mlU +qnL rcO rcO -xln -aTO +mlU +qnL rcO -pNV -aTO +wOo +qnL owI owI owI @@ -147578,13 +147588,13 @@ owI owI owI owI -xpw -xpw -xpw +pAl +pAl +pAl owI -xpw -xpw -xpw +pAl +pAl +pAl owI owI owI @@ -147624,13 +147634,13 @@ owI owI owI owI -xpw -xpw -xpw +pAl +pAl +pAl owI -xpw -xpw -xpw +pAl +pAl +pAl owI owI owI @@ -174614,7 +174624,7 @@ oyh oyh oyh oyh -xIV +jVQ ucA ucA ucA @@ -174871,7 +174881,7 @@ oyh oyh oyh oyh -xIV +jVQ ucA ucA ucA @@ -175128,7 +175138,7 @@ oyh oyh oyh oyh -xIV +jVQ ucA ucA ucA @@ -175385,7 +175395,7 @@ oyh oyh oyh oyh -xIV +jVQ ucA ucA ucA @@ -175642,7 +175652,7 @@ oyh oyh oyh oyh -xIV +jVQ ucA ucA ucA @@ -175899,7 +175909,7 @@ oyh oyh oyh oyh -xIV +jVQ ucA ucA ucA @@ -180740,7 +180750,7 @@ wwu wwu wwu wwu -nEM +aOq qdW sbw wwu @@ -185121,7 +185131,7 @@ mhT jFr sif lvS -cSb +wYb mUJ jnV sif @@ -196703,7 +196713,7 @@ tOW rwv bCd dzM -gcm +lWV txp aaU coZ @@ -197215,7 +197225,7 @@ woE biz dzM kUl -ghy +qga dzM dYM scx @@ -197989,7 +197999,7 @@ iDr thd bYb bnC -dXy +iHC thd aHK aZW @@ -204654,7 +204664,7 @@ mPw uZF svu uZF -lSI +kKR biR vLx vpA @@ -204911,7 +204921,7 @@ mPw uZF svu uZF -iOD +aTe biR nqb xAu @@ -251194,7 +251204,7 @@ sFt oEU oSA sFt -xvN +eFt fWl bQG vZF @@ -256810,9 +256820,9 @@ umb nqi fXR yhT -vTV -rjB -sav +kYS +gHe +sXk iHm sSB ccV @@ -261701,7 +261711,7 @@ isU cdj eAi spT -hsA +myw fmK plX bex @@ -276106,11 +276116,11 @@ ucA ucA ucA ucA -xKt -djc -djc -djc -dkn +mbP +lcj +lcj +lcj +sOb ucA ucA ucA @@ -276363,11 +276373,11 @@ ucA ucA ucA ucA -ujI +hNN edA pRs pRs -wbT +yjm ucA ucA ucA @@ -276620,11 +276630,11 @@ ucA ucA ucA ucA -ujI +hNN pRs pRs pRs -wbT +yjm ucA ucA ucA @@ -276877,11 +276887,11 @@ ucA ucA ucA ucA -qRS -acl +mOi +kfS pRs -acl -xUk +kfS +cZk ucA ucA ucA @@ -307199,7 +307209,7 @@ ucA ucA ucA ucA -tlJ +kKb ucA gMe gMe @@ -307209,7 +307219,7 @@ gMe gMe gMe ucA -tlJ +kKb ucA ucA ucA @@ -311834,7 +311844,7 @@ lgD ykw hIb fKZ -hbW +luU dbZ hKg raq @@ -313376,7 +313386,7 @@ rti vuU wgO rZb -acL +bQj jKF fXa sFa @@ -315406,14 +315416,14 @@ mSG mSG aSX aSX -pqH -bJA +jaS +vex mKu hHi fMc gOF ddH -ddH +mJN nPE pDq vfi @@ -315664,10 +315674,10 @@ dWz lYx unQ wMU -aaN -pGz -jjj -dIJ +njL +ymh +bcE +lOy oTq jjT hmM @@ -315924,7 +315934,7 @@ hAH eSq tHk bDn -gwe +scE eoI nPE nPE @@ -316181,7 +316191,7 @@ wMU aqm kFy xTG -xxA +hrG xdE nPE uZr @@ -316435,7 +316445,7 @@ oOA tyR tyR xqB -voX +fAw kFy eTV auO @@ -330608,7 +330618,7 @@ yeU jVK vWn mRa -wkP +kQG uTc nOa vVW @@ -337547,7 +337557,7 @@ oyh oyh fMl sWs -wbT +yjm ucA ucA ucA @@ -337802,9 +337812,9 @@ oyh oyh oyh oyh -acl -acl -xUk +kfS +kfS +cZk ucA ucA ucA @@ -338553,7 +338563,7 @@ ucA ucA ucA ucA -sKZ +nrr ucA ucA ucA @@ -338564,7 +338574,7 @@ ucA ucA ucA ucA -sKZ +nrr ucA ucA ucA @@ -341642,11 +341652,11 @@ ucA ucA ucA ucA -xKt -djc -djc -djc -dkn +mbP +lcj +lcj +lcj +sOb ucA ucA ucA @@ -341899,11 +341909,11 @@ ucA ucA ucA ucA -ujI +hNN edA pRs pRs -wbT +yjm ucA ucA ucA @@ -342156,7 +342166,7 @@ ucA ucA ucA ucA -ujI +hNN pRs pRs ucA diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 507bb388c1c73..41d9c412d4d95 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -1960,11 +1960,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/commons/vacant_room) -"agG" = ( -/obj/structure/dresser, -/obj/item/cigarette/cigar/havana, -/turf/open/floor/iron/grimy, -/area/station/commons/vacant_room) "agH" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/reagent_dispensers/beerkeg, @@ -2955,14 +2950,6 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/engineering) -"aoN" = ( -/obj/machinery/elevator_control_panel{ - pixel_y = 2; - linked_elevator_id = "tram_xeno_lift"; - preset_destination_names = list("2"="Lower Deck", "3"="Upper Deck") - }, -/turf/closed/wall, -/area/station/science/xenobiology) "aoV" = ( /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/iron/dark, @@ -3583,6 +3570,10 @@ }, /turf/open/floor/iron, /area/station/security/processing) +"avE" = ( +/obj/structure/lattice, +/turf/open/space/openspace, +/area/space/nearstation) "avG" = ( /obj/structure/chair{ dir = 1 @@ -3857,6 +3848,12 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/checker, /area/station/commons/lounge) +"ayE" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/light/directional/north, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "ayG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, @@ -6779,14 +6776,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark, /area/station/command/bridge) -"bpl" = ( -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/iron, -/area/station/engineering/atmos) "bpn" = ( /mob/living/carbon/human/species/monkey, /turf/open/misc/grass/jungle, @@ -8933,6 +8922,10 @@ }, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"bZJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "bZN" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -9058,6 +9051,15 @@ /obj/effect/turf_decal/trimline/brown/filled/line, /turf/open/floor/iron, /area/station/cargo/office) +"cco" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/landmark/event_spawn, +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) "ccx" = ( /obj/structure/rack, /obj/item/storage/toolbox/electrical{ @@ -9179,16 +9181,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"cdM" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - name = "Test Chamber Blast Door"; - id = "Xenolab" - }, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/plating, -/area/station/science/xenobiology) "cdN" = ( /obj/machinery/button/ignition/incinerator/atmos, /turf/closed/wall/r_wall, @@ -10500,12 +10492,6 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/east, /turf/open/floor/wood/large, /area/station/service/barber) -"cAK" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/machinery/light/directional/north, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "cBo" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -10710,31 +10696,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"cFH" = ( -/obj/structure/table/wood, -/obj/structure/sign/picture_frame/showroom/two{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/structure/sign/picture_frame/showroom/one{ - pixel_x = -8; - pixel_y = 32 - }, -/obj/item/storage/box/matches{ - pixel_x = -2; - pixel_y = 3 - }, -/obj/item/cigarette/cigar{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/cigarette/cigar{ - pixel_x = 4; - pixel_y = 1 - }, -/obj/item/cigarette/cigar/cohiba, -/turf/open/floor/wood, -/area/station/command/meeting_room) "cFP" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 10 @@ -11787,6 +11748,12 @@ /obj/machinery/igniter/incinerator_ordmix, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) +"cXC" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/airless, +/area/space/nearstation) "cXL" = ( /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) @@ -13911,6 +13878,23 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron, /area/station/engineering/main) +"dLz" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/stock_parts/matter_bin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/micro_laser, +/obj/item/multitool, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/turf/open/floor/iron/white, +/area/station/science/lab) "dLD" = ( /obj/effect/turf_decal/bot, /obj/item/mop, @@ -14244,6 +14228,31 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) +"dQD" = ( +/obj/structure/table/wood, +/obj/structure/sign/picture_frame/showroom/two{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/structure/sign/picture_frame/showroom/one{ + pixel_x = -8; + pixel_y = 32 + }, +/obj/item/storage/box/matches{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/cigarette/cigar{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/cigarette/cigar{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/item/cigarette/cigar/cohiba, +/turf/open/floor/wood, +/area/station/command/meeting_room) "dQI" = ( /obj/machinery/disposal/bin, /obj/machinery/airalarm/directional/south, @@ -17914,6 +17923,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/workout) +"flO" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/netpod, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/bitrunning/den) "flP" = ( /obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/trimline/green/line{ @@ -18760,6 +18776,14 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron, /area/station/commons/storage/tools) +"fDz" = ( +/obj/machinery/elevator_control_panel{ + pixel_y = 2; + linked_elevator_id = "tram_xeno_lift"; + preset_destination_names = list("2"="Lower Deck", "3"="Upper Deck") + }, +/turf/closed/wall, +/area/station/science/xenobiology) "fDS" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Laser Room" @@ -22216,6 +22240,9 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) +"gQc" = ( +/turf/open/floor/plating/airless, +/area/space/nearstation) "gQk" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 4 @@ -26387,17 +26414,6 @@ /obj/machinery/status_display/evac/directional/east, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) -"ixH" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/openspace, -/area/space/nearstation) "ixO" = ( /obj/structure/chair/comfy/brown{ dir = 8; @@ -27385,6 +27401,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos) +"iRb" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) "iRe" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/reagent_dispensers/foamtank, @@ -32107,15 +32127,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"ksk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating, -/obj/effect/landmark/event_spawn, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/dark, -/area/station/science/xenobiology) "ksm" = ( /obj/machinery/door/airlock/atmos{ name = "Turbine Access" @@ -32722,6 +32733,13 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"kEm" = ( +/obj/machinery/camera/motion/directional/south{ + network = list("ss13","minisat"); + c_tag = "Secure - AI Lower External North" + }, +/turf/open/space/basic, +/area/space/nearstation) "kEN" = ( /obj/structure/stairs/north, /turf/open/floor/iron/stairs/right, @@ -32857,13 +32875,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/security/execution/education) -"kGv" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "kGA" = ( /obj/structure/railing, /obj/machinery/door/firedoor/border_only, @@ -37162,13 +37173,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"mbe" = ( -/obj/machinery/camera/motion/directional/south{ - network = list("ss13","minisat"); - c_tag = "Secure - AI Lower External North" - }, -/turf/open/space/basic, -/area/space/nearstation) "mbk" = ( /obj/effect/turf_decal/sand, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -38293,6 +38297,17 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/aisat_interior) +"mwP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/space/openspace, +/area/space/nearstation) "mxf" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 10 @@ -38731,12 +38746,6 @@ }, /turf/open/floor/wood/large, /area/station/service/theater) -"mFh" = ( -/obj/machinery/sparker/directional/west{ - id = "Xenobio" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "mFo" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -41440,23 +41449,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"nDR" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/structure/table/reinforced, -/obj/item/stock_parts/matter_bin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/micro_laser, -/obj/item/multitool, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/turf/open/floor/iron/white, -/area/station/science/lab) "nDX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46855,6 +46847,14 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/cargo/lobby) +"pDn" = ( +/obj/machinery/elevator_control_panel{ + pixel_y = 2; + linked_elevator_id = "tram_xeno_lift"; + preset_destination_names = list("2"="Lower Deck", "3"="Upper Deck") + }, +/turf/closed/wall/r_wall, +/area/station/science/xenobiology) "pDu" = ( /obj/machinery/duct, /obj/structure/cable, @@ -47091,6 +47091,10 @@ /obj/machinery/light/floor, /turf/open/floor/grass, /area/station/science/lower) +"pHM" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "pHX" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 1 @@ -47615,6 +47619,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/brig) +"pQa" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pQx" = ( /turf/open/misc/asteroid/dug, /area/station/science/explab) @@ -48252,12 +48264,6 @@ /obj/structure/sign/calendar/directional/east, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) -"qcE" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Civilian - Restroom North" - }, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) "qcG" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/iron/smooth, @@ -49225,6 +49231,9 @@ }, /turf/open/floor/wood, /area/station/command/meeting_room) +"qtq" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "qtB" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -51972,6 +51981,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) +"rpm" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "rpp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -53726,9 +53742,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/storage) -"rYE" = ( -/turf/open/floor/plating/airless, -/area/space/nearstation) "rYL" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -54247,12 +54260,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/lower) -"siX" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/turf/open/floor/iron/airless, -/area/space/nearstation) "siZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57727,10 +57734,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) -"ttj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "tto" = ( /obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/trimline/green/line{ @@ -58190,9 +58193,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"tBo" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "tBu" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/external{ @@ -58348,16 +58348,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/chapel/office) -"tEx" = ( -/obj/machinery/camera/directional/north{ - network = list("ss13","rd","xeno"); - c_tag = "Science - Xenobiology Lower Containment Chamber" - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "tED" = ( /obj/effect/turf_decal/tile/neutral/tram, /obj/effect/turf_decal/stripes/white/line, @@ -66476,13 +66466,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/explab) -"wrJ" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/netpod, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/bitrunning/den) "wrT" = ( /obj/structure/table/glass, /obj/item/grenade/chem_grenade, @@ -66511,6 +66494,16 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"wso" = ( +/obj/machinery/camera/directional/north{ + network = list("ss13","rd","xeno"); + c_tag = "Science - Xenobiology Lower Containment Chamber" + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "wsq" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -66663,6 +66656,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig) +"wvL" = ( +/obj/machinery/sparker/directional/west{ + id = "Xenobio" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "wvQ" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 4 @@ -67430,10 +67429,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"wIP" = ( -/obj/structure/lattice, -/turf/open/space/openspace, -/area/space/nearstation) "wIT" = ( /obj/structure/chair/wood, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68363,10 +68358,11 @@ /obj/structure/railing, /turf/open/floor/iron, /area/station/cargo/miningfoundry) -"xdw" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/storage) +"xdc" = ( +/obj/structure/dresser, +/obj/item/cigarette/cigar/havana, +/turf/open/floor/iron/grimy, +/area/station/commons/vacant_room) "xdx" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -68898,6 +68894,16 @@ "xnI" = ( /turf/open/floor/iron, /area/station/maintenance/tram/left) +"xnL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + name = "Test Chamber Blast Door"; + id = "Xenolab" + }, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/plating, +/area/station/science/xenobiology) "xnS" = ( /obj/machinery/door/airlock/highsecurity{ name = "AI Upload Access" @@ -69242,12 +69248,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"xut" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Civilian - Restroom South" - }, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) "xuA" = ( /obj/structure/closet/secure_closet/medical2, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -69573,14 +69573,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"xAM" = ( -/obj/machinery/elevator_control_panel{ - pixel_y = 2; - linked_elevator_id = "tram_xeno_lift"; - preset_destination_names = list("2"="Lower Deck", "3"="Upper Deck") - }, -/turf/closed/wall/r_wall, -/area/station/science/xenobiology) "xAR" = ( /obj/machinery/door/airlock/security{ name = "Prison Workshop" @@ -70388,10 +70380,6 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/iron, /area/station/maintenance/tram/left) -"xRm" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "xRn" = ( /turf/open/floor/plating, /area/station/hallway/secondary/service) @@ -85024,12 +85012,12 @@ apC apC veV veV -qcE +hAD hAD veV pdr kMD -xut +hAD veV veV apC @@ -87622,10 +87610,10 @@ jcT jcT ncE aek -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM fYW vXM vXM @@ -89422,10 +89410,10 @@ ncE jcT jcT aek -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM fYW vXM vXM @@ -92250,10 +92238,10 @@ jcT jcT ncE aek -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM fYW fYW fYW @@ -92510,7 +92498,7 @@ aac aac aac vXM -xRm +pHM vXM vXM vXM @@ -92520,7 +92508,7 @@ vXM vXM vXM vXM -xRm +pHM fYW fYW fYW @@ -92767,7 +92755,7 @@ aac aac aac vXM -xRm +pHM vXM vXM vXM @@ -92777,14 +92765,14 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM vXM vXM vXM -xRm +pHM vXM fYW vXM @@ -93024,9 +93012,9 @@ jcT jcT aac aek -xRm -xRm -xRm +pHM +pHM +pHM rWa vXM vXM @@ -93034,14 +93022,14 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -93285,12 +93273,12 @@ vXM rWa vXM qdd -xRm -xRm +pHM +pHM rWa -xRm -xRm -xRm +pHM +pHM +pHM rWa vXM vXM @@ -93298,7 +93286,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -93549,17 +93537,17 @@ vXM rWa vXM qdd -xRm -xRm +pHM +pHM rWa -xRm -xRm -xRm +pHM +pHM +pHM rWa -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM fYW vXM vXM @@ -94566,12 +94554,12 @@ ncE ncE aac aek -xRm -xRm -xRm +pHM +pHM +pHM rWa -xRm -xRm +pHM +pHM qdd vXM rWa @@ -94826,16 +94814,16 @@ aac aac vXM vXM -xRm +pHM vXM vXM rWa -xRm -xRm -xRm +pHM +pHM +pHM rWa -xRm -xRm +pHM +pHM qdd vXM rWa @@ -95083,25 +95071,25 @@ aac aac aac aac -xRm +pHM vXM vXM vXM vXM vXM vXM -xRm +pHM vXM vXM rWa -xRm -xRm -xRm +pHM +pHM +pHM rWa -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM fYW vXM vXM @@ -95347,14 +95335,14 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -95611,7 +95599,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -95868,7 +95856,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -96125,7 +96113,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -97902,9 +97890,9 @@ aak aak aak aak -xRm -xRm -xRm +pHM +pHM +pHM aak aak aak @@ -98936,7 +98924,7 @@ aeL aeL aeL aeJ -xRm +pHM aak aaN igy @@ -99183,7 +99171,7 @@ vOU ney vNH aen -xRm +pHM aey aey aey @@ -99193,7 +99181,7 @@ aeL aeL aeL aeH -xRm +pHM aak aak amq @@ -99440,7 +99428,7 @@ dnE ney vNH aak -xRm +pHM aey aey aey @@ -99450,7 +99438,7 @@ aeL aeL aeL aeJ -xRm +pHM aak aaN igy @@ -99707,7 +99695,7 @@ aeL aeL aeL aeH -xRm +pHM aak aaa aaa @@ -99964,7 +99952,7 @@ aeL aeL aeL aeJ -xRm +pHM aak aaa aaa @@ -100098,19 +100086,19 @@ vXM vXM vXM cAd -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM aai aac aac @@ -101643,19 +101631,19 @@ vXM vXM vXM cAd -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM aai aac aac @@ -104061,7 +104049,7 @@ sHH sHH hZr hZr -bpl +pQa mRs jaW mAx @@ -104072,7 +104060,7 @@ kgg eEp hzQ qHs -xRm +pHM aeV aeV prq @@ -104318,7 +104306,7 @@ rvh jUz ivk hZr -bpl +pQa mRs woR mAx @@ -105095,7 +105083,7 @@ mfB qga exl oNq -xRm +pHM ahD fKg hVy @@ -107151,7 +107139,7 @@ ssw fja cPD oNq -xRm +pHM ahD gMi hNI @@ -107306,9 +107294,9 @@ vXM vXM vXM fYW -xRm -xRm -xRm +pHM +pHM +pHM aac aam hlS @@ -107420,8 +107408,8 @@ aaa aaa aac aai -xRm -xRm +pHM +pHM rge vXM vXM @@ -107665,7 +107653,7 @@ wIY pKo vaK hZr -xRm +pHM fjQ fjQ fjQ @@ -107922,7 +107910,7 @@ hZr hZr lCk hZr -xRm +pHM hZr vXM mQi @@ -108159,19 +108147,19 @@ aaa abM abM wQP -xRm +pHM oFH -xRm +pHM bWv -xRm +pHM oFH -xRm +pHM bWv -xRm +pHM oFH -xRm +pHM bWv -xRm +pHM oFH nYX jUW @@ -108179,7 +108167,7 @@ mHw orh uxn oNq -xRm +pHM hZr aaa oEf @@ -108189,8 +108177,8 @@ aac aac vXM vXM -xRm -xRm +pHM +pHM rge vXM vXM @@ -108957,8 +108945,8 @@ hYn aac aac vXM -xRm -xRm +pHM +pHM rge vXM vXM @@ -109363,9 +109351,9 @@ vXM vXM vXM fYW -xRm -xRm -xRm +pHM +pHM +pHM aac aam hlS @@ -110899,12 +110887,12 @@ vXM fYW vXM vXM -xRm +pHM vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -111156,12 +111144,12 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM vXM -xRm +pHM vXM vXM aac @@ -111413,12 +111401,12 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM vXM -xRm +pHM vXM vXM aac @@ -111666,18 +111654,18 @@ vXM vXM vXM fYW -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM bwp -xRm -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM +pHM bwp -xRm +pHM aai aac aac @@ -113208,20 +113196,20 @@ vXM vXM vXM fYW -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM bwp -xRm -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM +pHM bwp -xRm -xRm -xRm +pHM +pHM +pHM aai hlS hlS @@ -113469,14 +113457,14 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM vXM vXM vXM -xRm +pHM vXM vXM aac @@ -113726,14 +113714,14 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM vXM vXM vXM -xRm +pHM vXM vXM aac @@ -113983,14 +113971,14 @@ vXM fYW vXM vXM -xRm +pHM vXM vXM vXM vXM vXM vXM -xRm +pHM vXM vXM aac @@ -115533,9 +115521,9 @@ vXM vXM vXM fYW -xRm -xRm -xRm +pHM +pHM +pHM aac aac aam @@ -117173,7 +117161,7 @@ hDT keT iEF fof -aoN +fDz knb hQk aHT @@ -117590,9 +117578,9 @@ vXM vXM vXM fYW -xRm -xRm -xRm +pHM +pHM +pHM aac aac aac @@ -117722,7 +117710,7 @@ vXM rxw rxw vXM -xRm +pHM vXM vXM vXM @@ -117733,7 +117721,7 @@ vXM vXM vXM vXM -xRm +pHM vXM rxw rxw @@ -117979,7 +117967,7 @@ rxw rxw vXM vXM -xRm +pHM oqp oqp oqp @@ -117990,7 +117978,7 @@ oqp oqp oqp oqp -xRm +pHM vXM vXM rxw @@ -118488,7 +118476,7 @@ vXM vXM vXM vXM -xRm +pHM vXM oqp oqp @@ -118765,7 +118753,7 @@ mYt oqp oqp oqp -xRm +pHM rxw vXM vXM @@ -119497,22 +119485,22 @@ aaa aaa aaa aaa -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM xvl xvl xvl @@ -119769,7 +119757,7 @@ vXM vXM vXM vXM -mbe +kEm xvl fLB xly @@ -120008,25 +119996,25 @@ vwd pRm pRm pRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM dBj wXI jqs @@ -120458,8 +120446,8 @@ aac aac aac aai -xRm -xRm +pHM +pHM vle aaS aaa @@ -120522,25 +120510,25 @@ aGY pRm pRm pRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM dBj fMK fMK @@ -121034,27 +121022,27 @@ hJl iix iix iix -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM +pHM xvl xvl xvl @@ -121849,7 +121837,7 @@ mYt oqp oqp oqp -xRm +pHM rxw vXM vXM @@ -122035,7 +122023,7 @@ dfz mpd lEt glc -xRm +pHM pAT cHH bNp @@ -122086,7 +122074,7 @@ vXM vXM vXM vXM -xRm +pHM vXM oqp oqp @@ -122292,7 +122280,7 @@ dfz txW iMt glc -xRm +pHM hkN gIj loa @@ -122605,7 +122593,7 @@ rxw rxw vXM vXM -xRm +pHM oqp oqp oqp @@ -122616,7 +122604,7 @@ oqp oqp oqp oqp -xRm +pHM vXM vXM rxw @@ -122808,7 +122796,7 @@ aaa aaa aaa dfz -xdw +iRb ure bKT bqU @@ -122862,7 +122850,7 @@ vXM rxw rxw vXM -xRm +pHM vXM vXM vXM @@ -122873,7 +122861,7 @@ vXM vXM vXM vXM -xRm +pHM vXM rxw rxw @@ -123027,11 +123015,11 @@ aaP aaQ aac aaS -xRm -xRm -xRm -xRm -xRm +pHM +pHM +pHM +pHM +pHM aaS aaa aaa @@ -123280,7 +123268,7 @@ vXM vXM vXM vXM -xRm +pHM aaH aac aac @@ -123529,7 +123517,7 @@ aaa aaa aaa aaH -xRm +pHM vXM vXM vXM @@ -123537,7 +123525,7 @@ vXM vXM vXM vXM -xRm +pHM aaH aac aac @@ -123786,7 +123774,7 @@ aaa aaa aaa aaI -xRm +pHM vXM vXM vXM @@ -123794,7 +123782,7 @@ vXM vXM vXM vXM -xRm +pHM aaI aac aac @@ -124043,7 +124031,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -124051,7 +124039,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM aac @@ -124300,7 +124288,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -124308,7 +124296,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM aac @@ -124557,7 +124545,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -124565,7 +124553,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -124814,7 +124802,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -124822,7 +124810,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -125071,7 +125059,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -125079,7 +125067,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -125328,7 +125316,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -125336,7 +125324,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -125379,9 +125367,9 @@ aac aac aac aac -xRm +pHM vXM -xRm +pHM aac aac vXM @@ -125585,7 +125573,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -125593,7 +125581,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -125636,9 +125624,9 @@ vXM aac aac aac -xRm +pHM vXM -xRm +pHM aac aac vXM @@ -125842,7 +125830,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -125850,7 +125838,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -125893,9 +125881,9 @@ vXM vXM aac vXM -xRm +pHM vXM -xRm +pHM aac vXM vXM @@ -126099,7 +126087,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -126107,7 +126095,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -126150,9 +126138,9 @@ vXM vXM vXM vXM -xRm -xRm -xRm +pHM +pHM +pHM vXM vXM vXM @@ -126356,7 +126344,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -126364,7 +126352,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -126407,9 +126395,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -126613,7 +126601,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -126621,7 +126609,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -126664,9 +126652,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -126870,7 +126858,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -126878,7 +126866,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -126921,9 +126909,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -127127,7 +127115,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -127135,7 +127123,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -127178,9 +127166,9 @@ vXM vXM vXM vXM -xRm -xRm -xRm +pHM +pHM +pHM vXM vXM vXM @@ -127384,7 +127372,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -127392,7 +127380,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -127435,9 +127423,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -127641,7 +127629,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -127649,7 +127637,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -127692,9 +127680,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -127898,7 +127886,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -127949,9 +127937,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -128206,9 +128194,9 @@ vXM vXM vXM vXM -xRm -xRm -xRm +pHM +pHM +pHM vXM vXM vXM @@ -128463,9 +128451,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM fjj vXM @@ -128720,9 +128708,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -128977,9 +128965,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -129234,9 +129222,9 @@ vXM vXM vXM vXM -xRm -xRm -xRm +pHM +pHM +pHM vXM vXM vXM @@ -129491,9 +129479,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -129748,9 +129736,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -130005,9 +129993,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -130262,9 +130250,9 @@ vXM vXM vXM vXM -xRm -xRm -xRm +pHM +pHM +pHM vXM vXM vXM @@ -130519,9 +130507,9 @@ vXM vXM vXM vXM -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -130776,9 +130764,9 @@ vXM aaa aaa aaa -xRm +pHM vXM -xRm +pHM vXM vXM vXM @@ -130829,8 +130817,8 @@ vXM vXM vXM vXM -xRm -rYE +pHM +gQc vXM vXM vXM @@ -131033,9 +131021,9 @@ aaa aaa aaa aaa -xRm +pHM vXM -xRm +pHM vXM vXM aaa @@ -131085,9 +131073,9 @@ vXM vXM vXM vXM -xRm -rYE -rYE +pHM +gQc +gQc vXM vXM vXM @@ -131342,9 +131330,9 @@ vXM vXM vXM vXM -xRm -siX -xRm +pHM +cXC +pHM vXM vXM vXM @@ -131600,7 +131588,7 @@ vXM vXM vXM vXM -xRm +pHM vXM vXM vXM @@ -139216,7 +139204,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -139473,7 +139461,7 @@ pMW pMW cAd pMW -wIP +avE pMW pMW pMW @@ -139493,7 +139481,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -139728,9 +139716,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -139750,7 +139738,7 @@ pMW pMW pMW pMW -wIP +avE pMW cAd pMW @@ -139985,9 +139973,9 @@ pMW pMW pMW pMW -wIP -wIP -wIP +avE +avE +avE pMW pMW pMW @@ -140007,9 +139995,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -140244,7 +140232,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -140264,9 +140252,9 @@ pMW pMW pMW pMW -wIP -wIP -wIP +avE +avE +avE pMW pMW pMW @@ -140501,7 +140489,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -140521,7 +140509,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -140758,7 +140746,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -140778,7 +140766,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -141015,7 +141003,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -141035,7 +141023,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -141786,7 +141774,7 @@ pMW pMW pMW pMW -xRm +pHM pMW pMW pMW @@ -141806,7 +141794,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -142043,7 +142031,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -142063,7 +142051,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -142814,8 +142802,8 @@ pMW pMW pMW pMW -wIP -wIP +avE +avE rOy rOy oKl @@ -142833,8 +142821,8 @@ pMW oKl rOy rOy -wIP -wIP +avE +avE pMW pMW pMW @@ -143075,7 +143063,7 @@ oKl pMW pMW pMW -wIP +avE pMW pMW pMW @@ -143087,7 +143075,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -143589,7 +143577,7 @@ oKl pMW pMW pMW -wIP +avE pMW pMW pMW @@ -143601,7 +143589,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -143685,7 +143673,7 @@ aaa aaa gcp agw -agG +xdc gcp aaa aaa @@ -143842,8 +143830,8 @@ pMW pMW pMW pMW -wIP -xRm +avE +pHM rOy rOy rOy @@ -143861,8 +143849,8 @@ oKl rOy rOy rOy -xRm -wIP +pHM +avE pMW pMW pMW @@ -143873,7 +143861,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -144130,7 +144118,7 @@ pMW oKl rOy rOy -xRm +pHM rOy rOy pMW @@ -144361,7 +144349,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -144371,7 +144359,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -144384,12 +144372,12 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -144613,12 +144601,12 @@ pMW pMW pMW pMW -wIP +avE tPE tPE tPE tPE -wIP +avE pMW pMW pMW @@ -144628,12 +144616,12 @@ pMW pMW pMW pMW -wIP +avE tPE tPE tPE tPE -wIP +avE pMW pMW pMW @@ -144641,12 +144629,12 @@ pMW pMW pMW pMW -wIP +avE tPE tPE tPE tPE -wIP +avE pMW pMW pMW @@ -144870,7 +144858,7 @@ oKl oKl oKl oKl -wIP +avE tPE qnv tld @@ -144890,7 +144878,7 @@ nmY cPH dfL nmY -wIP +avE pMW pMW pMW @@ -144898,7 +144886,7 @@ pMW pMW pMW pMW -wIP +avE nmY hng xnH @@ -145122,7 +145110,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -145379,7 +145367,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -153408,10 +153396,10 @@ jFJ aHp qgS jFJ -wIP -wIP -wIP -wIP +avE +avE +avE +avE pMW pMW pMW @@ -153922,10 +153910,10 @@ jYe gnr bIJ jFJ -wIP -wIP -wIP -wIP +avE +avE +avE +avE pMW pMW pMW @@ -156427,7 +156415,7 @@ blo fxK lpg qyZ -cFH +dQD xcH oho bPp @@ -156749,8 +156737,8 @@ vCZ wAA vCZ vCZ -wIP -wIP +avE +avE esT mAG tMW @@ -156758,9 +156746,9 @@ byH tMW tMW esT -wIP -wIP -wIP +avE +avE +avE kFx pMW pMW @@ -157777,8 +157765,8 @@ aaa aaa aaa aai -wIP -wIP +avE +avE esT tMW tMW @@ -157786,10 +157774,10 @@ sOg mAG mAG esT -wIP -wIP -wIP -wIP +avE +avE +avE +avE kFx kFx kFx @@ -158046,7 +158034,7 @@ sdb pMW pMW pMW -wIP +avE pMW pMW pMW @@ -158056,7 +158044,7 @@ pMW pMW pMW pMW -wIP +avE kFx kFx kFx @@ -158303,7 +158291,7 @@ sdb pMW pMW pMW -wIP +avE pMW pMW pMW @@ -158313,14 +158301,14 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW pMW pMW pMW -wIP +avE pMW kFx pMW @@ -158570,14 +158558,14 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -158834,7 +158822,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -159092,10 +159080,10 @@ sdb sdb sdb esT -wIP -wIP -wIP -wIP +avE +avE +avE +avE kFx pMW pMW @@ -159595,7 +159583,7 @@ opb oOJ oOJ stK -ixH +mwP sOg oOJ uXM @@ -160634,10 +160622,10 @@ sdb sdb sdb esT -wIP -wIP -wIP -wIP +avE +avE +avE +avE kFx pMW pMW @@ -160890,7 +160878,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -161147,7 +161135,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -161398,13 +161386,13 @@ pMW pMW pMW sdb -wIP +avE pMW pMW pMW pMW pMW -wIP +avE pMW kFx pMW @@ -172842,10 +172830,10 @@ pMW pMW pMW kFx -wIP -wIP -wIP -wIP +avE +avE +avE +avE aTY iCA fZL @@ -174899,10 +174887,10 @@ pMW pMW pMW kFx -wIP -wIP -wIP -wIP +avE +avE +avE +avE aTY iCA iCA @@ -176435,12 +176423,12 @@ pMW kFx pMW pMW -wIP +avE pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -176692,12 +176680,12 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -176949,12 +176937,12 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -177202,10 +177190,10 @@ pMW pMW pMW kFx -wIP -wIP -wIP -wIP +avE +avE +avE +avE aTY uRv uRv @@ -178744,10 +178732,10 @@ pMW pMW pMW kFx -wIP -wIP -wIP -wIP +avE +avE +avE +avE aTY uRv uRv @@ -179005,14 +178993,14 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -179262,14 +179250,14 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -179519,14 +179507,14 @@ pMW kFx pMW pMW -wIP +avE pMW pMW pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -180326,7 +180314,7 @@ aaa aaa eSQ eSQ -wrJ +flO dRY cTU cTU @@ -181069,11 +181057,11 @@ pMW pMW pMW kFx -wIP -wIP -wIP -wIP -wIP +avE +avE +avE +avE +avE aTY iCA iCA @@ -181911,7 +181899,7 @@ oxL fJQ mlM bxG -nDR +dLz fFR tPZ pqV @@ -181929,9 +181917,9 @@ uvU umu qVr qVr -mFh -tBo -tBo +wvL +qtq +qtq qVr gYw cHY @@ -182185,12 +182173,12 @@ pbH mAL nKU qVr -tEx -tBo -tBo -tBo +wso +qtq +qtq +qtq qVr -cdM +xnL eiy itq qyQ @@ -182442,11 +182430,11 @@ pbH bmz pIx qVr -ttj -tBo -tBo -tBo -tBo +bZJ +qtq +qtq +qtq +qtq pNa qNk xmY @@ -182455,7 +182443,7 @@ eJQ bNx aSt aSt -xAM +pDn aaa aaa aaa @@ -182699,14 +182687,14 @@ qKE chE pHX qVr -cAK -ttj -ttj -ttj -ttj +ayE +bZJ +bZJ +bZJ +bZJ nzg cwj -ksk +cco bsh rQr aMh @@ -182956,11 +182944,11 @@ pbH kBo kJA qVr -tBo -tBo -tBo -tBo -kGv +qtq +qtq +qtq +qtq +rpm qSS cFQ xmY @@ -183126,12 +183114,12 @@ pMW pMW pMW kFx -wIP -wIP -wIP -wIP -wIP -wIP +avE +avE +avE +avE +avE +avE aTY iCA fZL @@ -183213,10 +183201,10 @@ pbH mAL nKU qVr -tBo -tBo -tBo -tBo +qtq +qtq +qtq +qtq qVr jqK ijR @@ -183260,14 +183248,14 @@ rxw rxw pMW pMW -wIP +avE pMW pMW pMW bGh pMW pMW -wIP +avE pMW pMW rxw @@ -183471,9 +183459,9 @@ vSa cJR qVr qVr -tBo -tBo -tBo +qtq +qtq +qtq qVr gYw vav @@ -183769,7 +183757,7 @@ pMW pMW pMW pMW -wIP +avE pMW gFf gFf @@ -184301,7 +184289,7 @@ oMI gFf gFf gFf -wIP +avE rxw pMW pMW @@ -185032,23 +185020,23 @@ aaa aaa aaa aaS -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE vUu vUu lwj @@ -185291,7 +185279,7 @@ aaa pMW pMW pMW -wIP +avE pMW pMW pMW @@ -185301,7 +185289,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -185548,7 +185536,7 @@ aaa pMW pMW pMW -wIP +avE pMW pMW pMW @@ -185558,7 +185546,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -185802,24 +185790,24 @@ aaa aaa aaa aaS -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE xSS lwj tqN @@ -186067,7 +186055,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -186324,7 +186312,7 @@ pMW pMW pMW pMW -wIP +avE pMW pMW pMW @@ -186569,28 +186557,28 @@ aac aaa aaa aaS -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP -wIP +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE +avE vUu vUu lwj @@ -187385,7 +187373,7 @@ oMI gFf gFf gFf -wIP +avE rxw pMW pMW @@ -187881,7 +187869,7 @@ pMW pMW pMW pMW -wIP +avE pMW gFf gFf @@ -188400,14 +188388,14 @@ rxw rxw pMW pMW -wIP +avE pMW pMW pMW ylt pMW pMW -wIP +avE pMW pMW rxw @@ -191172,9 +191160,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -191429,9 +191417,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -191686,9 +191674,9 @@ pMW pMW pMW pMW -wIP -wIP -wIP +avE +avE +avE pMW pMW pMW @@ -191943,9 +191931,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -192200,9 +192188,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -192457,9 +192445,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -192714,9 +192702,9 @@ pMW pMW pMW pMW -wIP -wIP -wIP +avE +avE +avE pMW pMW pMW @@ -192971,9 +192959,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -193228,9 +193216,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -193485,9 +193473,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -193742,9 +193730,9 @@ pMW pMW pMW pMW -wIP -wIP -wIP +avE +avE +avE pMW pMW pMW @@ -193999,9 +193987,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -194256,9 +194244,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -194513,9 +194501,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW pMW @@ -194770,9 +194758,9 @@ pMW pMW pMW pMW -wIP -wIP -wIP +avE +avE +avE pMW pMW pMW @@ -195027,9 +195015,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE pMW pMW aaa @@ -195284,9 +195272,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE aac aaa aac @@ -195541,9 +195529,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE aac aac aac @@ -195798,9 +195786,9 @@ pMW pMW pMW pMW -wIP -wIP -wIP +avE +avE +avE aac aac aac @@ -196055,9 +196043,9 @@ pMW pMW pMW pMW -wIP +avE pMW -wIP +avE aac aac aaa @@ -196312,9 +196300,9 @@ pMW aac aac aac -wIP +avE pMW -wIP +avE aaa aaa aaa @@ -196569,9 +196557,9 @@ aac aac aac aac -wIP +avE pMW -wIP +avE aaa aaa aaa diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index b6588bde5dcb3..b19afd0ba14af 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -959,6 +959,18 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/cargo/storage) +"apA" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","rd") + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "apH" = ( /obj/structure/chair/comfy/beige{ dir = 1 @@ -1356,10 +1368,6 @@ }, /turf/open/floor/iron, /area/station/security/prison) -"awf" = ( -/obj/machinery/igniter/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "awi" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable, @@ -1789,6 +1797,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"aDF" = ( +/obj/structure/broken_flooring/singular/directional/east, +/turf/open/space/openspace, +/area/space/nearstation) "aDI" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -2037,12 +2049,6 @@ /obj/structure/railing/corner, /turf/open/floor/iron, /area/station/security/prison) -"aHZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "aIc" = ( /obj/structure/table, /obj/effect/spawner/random/bureaucracy/paper, @@ -2253,32 +2259,6 @@ /obj/structure/rack, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"aKU" = ( -/obj/effect/landmark/start/ai/secondary, -/obj/machinery/door/window/brigdoor/left/directional/north{ - name = "Tertiary AI Core Access"; - req_access = list("ai_upload"); - pixel_y = 3 - }, -/obj/item/radio/intercom/directional/south{ - pixel_x = -27; - freerange = 1; - listening = 0; - name = "Common Channel" - }, -/obj/item/radio/intercom/directional/south{ - pixel_x = 27; - frequency = 1447; - freerange = 1; - listening = 0; - name = "Private Channel" - }, -/obj/machinery/flasher/directional/east{ - pixel_y = 8; - id = "AI" - }, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai) "aLe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2547,6 +2527,14 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white/textured_large, /area/station/science/xenobiology) +"aPM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "aPO" = ( /obj/machinery/door/poddoor/shutters/window{ id = "maintbridge" @@ -2650,6 +2638,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/parquet, /area/station/service/theater) +"aSn" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/flat_white, +/area/station/medical/treatment_center) "aSE" = ( /obj/structure/bodycontainer/morgue{ dir = 2 @@ -3321,16 +3314,6 @@ "bfN" = ( /turf/open/floor/iron/dark, /area/station/maintenance/radshelter/civil) -"bfX" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/drip, -/obj/effect/decal/cleanable/blood/footprints{ - dir = 8 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "bga" = ( /obj/structure/chair/wood{ dir = 4 @@ -3734,14 +3717,6 @@ /obj/effect/spawner/random/structure/table_or_rack, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"bpN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/abandoned, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "bpW" = ( /obj/effect/turf_decal/stripes/white/line, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -4112,6 +4087,10 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, /area/station/security/detectives_office/private_investigators_office) +"bwC" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "bwQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4259,6 +4238,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/misc/asteroid, /area/station/asteroid) +"bzx" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/effect/spawner/random/entertainment/cigarette_pack, +/obj/item/cigarette/rollie/mindbreaker, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "bzB" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/machinery/recharger, @@ -4619,6 +4608,11 @@ /obj/machinery/light/warm/directional/south, /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) +"bEY" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/engine, +/area/station/science/xenobiology) "bFa" = ( /obj/machinery/duct, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -5117,6 +5111,25 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/cargo/miningoffice) +"bPx" = ( +/obj/structure/ladder, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 3 + }, +/obj/machinery/door/window/brigdoor/left/directional/south{ + pixel_y = -3; + name = "Monkey Pen"; + req_one_access = list("genetics") + }, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","rd") + }, +/obj/effect/turf_decal/siding/purple/corner, +/obj/structure/sign/poster/random/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/textured, +/area/station/science/genetics) "bPH" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/yellow{ @@ -6176,11 +6189,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"ckb" = ( -/obj/effect/turf_decal/siding/dark_blue, -/obj/machinery/holopad, -/turf/open/floor/iron/textured_large, -/area/station/command/bridge) "ckc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/grass, @@ -6778,9 +6786,6 @@ /obj/structure/rack, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"cxg" = ( -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "cxr" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -6944,18 +6949,6 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"cAG" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/west{ - network = list("ss13","rd") - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "cAQ" = ( /obj/vehicle/sealed/mecha/ripley/cargo, /obj/effect/decal/cleanable/dirt, @@ -7420,10 +7413,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) -"cKD" = ( -/mob/living/basic/mining/basilisk, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "cLd" = ( /obj/machinery/oven/range, /obj/machinery/light/directional/north, @@ -7764,12 +7753,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood/parquet, /area/station/cargo/boutique) -"cQu" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "cQK" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -8556,6 +8539,10 @@ /obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"deV" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "deX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -9408,16 +9395,6 @@ dir = 8 }, /area/station/science/robotics/lab) -"drZ" = ( -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 - }, -/obj/structure/chair{ - name = "Defense" - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/courtroom) "dsa" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -9709,29 +9686,6 @@ }, /turf/open/floor/iron, /area/station/commons/locker) -"dyS" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ - name = "Burn Chamber Interior Airlock"; - id_tag = "ordmix_airlock_interior" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/machinery/airlock_controller/incinerator_ordmix{ - pixel_y = -26 - }, -/obj/machinery/button/ignition/incinerator/ordmix{ - pixel_x = -6; - pixel_y = 24 - }, -/obj/machinery/button/door/incinerator_vent_ordmix{ - pixel_x = 8; - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "dyV" = ( /obj/structure/railing{ dir = 1 @@ -9875,6 +9829,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/main) +"dAn" = ( +/obj/structure/broken_flooring/pile/directional/east, +/turf/open/space/openspace, +/area/space/nearstation) "dAo" = ( /obj/structure/table, /obj/item/electronics/airalarm{ @@ -10101,12 +10059,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"dCv" = ( -/obj/structure/railing, -/obj/structure/dresser, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "dCG" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -10506,11 +10458,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"dJM" = ( -/obj/item/radio/intercom/directional/east, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "dKp" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10537,6 +10484,12 @@ /obj/effect/turf_decal/box, /turf/open/floor/iron/textured, /area/station/engineering/atmos/upper) +"dLd" = ( +/obj/machinery/sparker/directional/north{ + id = "Xenobio" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "dLf" = ( /obj/machinery/camera/directional/west{ c_tag = "Atmospherics Tank - Plasma" @@ -10571,10 +10524,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/engineering/atmos/upper) -"dLY" = ( -/obj/structure/broken_flooring/singular/directional/east, -/turf/open/space/openspace, -/area/space/nearstation) "dMa" = ( /obj/structure/chair/office, /obj/effect/turf_decal/tile/brown/fourcorners, @@ -10679,6 +10628,12 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/cytology) +"dOt" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "dOv" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -10835,6 +10790,16 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"dQJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" + }, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "dQQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -11074,10 +11039,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/security/warden) -"dUc" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "dUi" = ( /turf/closed/wall/r_wall, /area/station/engineering/lobby) @@ -11503,14 +11464,6 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"ebE" = ( -/obj/effect/spawner/structure/window/hollow/end, -/turf/open/floor/plating, -/area/station/security/courtroom) -"ebN" = ( -/obj/structure/broken_flooring/pile/directional/east, -/turf/open/space/openspace, -/area/space/nearstation) "ebP" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/effect/mapping_helpers/apc/cell_5k, @@ -11576,20 +11529,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"ecM" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 3; - pixel_y = -2 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "edv" = ( /obj/machinery/computer/order_console/cook, /turf/open/floor/iron, @@ -11681,10 +11620,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"efL" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "efQ" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -11696,6 +11631,12 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) +"egj" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "ego" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -11727,12 +11668,6 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron, /area/station/command/gateway) -"egV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "egY" = ( /obj/machinery/light_switch/directional/west, /turf/open/openspace, @@ -11769,6 +11704,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"ehN" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "gib5-old" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "ehO" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/iron, @@ -12193,6 +12134,16 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"epy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "epA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12535,6 +12486,15 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/external, /turf/open/floor/plating, /area/station/maintenance/department/science) +"evA" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 4; + name = "euthanization chamber freezer" + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron, +/area/station/science/xenobiology) "evN" = ( /obj/machinery/rnd/server/master, /obj/effect/turf_decal/siding/blue{ @@ -13111,6 +13071,12 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"eEX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) "eFj" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -13148,12 +13114,6 @@ /obj/structure/table, /turf/open/floor/iron/textured, /area/station/security/processing) -"eFJ" = ( -/obj/machinery/sparker/directional/north{ - id = "Xenobio" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "eFK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -13273,12 +13233,6 @@ }, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"eIo" = ( -/obj/structure/statue/sandstone/venus{ - dir = 1 - }, -/turf/open/floor/grass, -/area/station/science/research) "eIy" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -13378,20 +13332,6 @@ "eKR" = ( /turf/closed/wall/r_wall, /area/station/command/bridge) -"eKT" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/pipe_dispenser{ - pixel_x = 3; - pixel_y = 7 - }, -/obj/item/pipe_dispenser, -/obj/machinery/power/apc/auto_name/directional/south{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "eLe" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -13481,6 +13421,10 @@ /obj/effect/spawner/costume/sexyclown, /turf/open/floor/plating, /area/station/maintenance/aft/upper) +"eNk" = ( +/obj/item/stack/cable_coil, +/turf/open/space/openspace, +/area/space/nearstation) "eNr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13738,6 +13682,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"eTi" = ( +/obj/structure/closet/crate/critter, +/mob/living/basic/mothroach, +/obj/item/stack/spacecash/c100, +/turf/open/space/basic, +/area/space/nearstation) "eTn" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, @@ -14124,6 +14074,10 @@ /obj/item/coin/plasma, /turf/open/misc/asteroid, /area/station/maintenance/department/science) +"fcC" = ( +/mob/living/basic/mining/basilisk, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "fcH" = ( /obj/structure/frame/computer{ anchored = 1; @@ -14465,11 +14419,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/textured, /area/station/construction/mining/aux_base) -"fjb" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/engine, -/area/station/science/xenobiology) "fjg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -14541,6 +14490,12 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/chemistry/minisat) +"fkG" = ( +/obj/structure/railing, +/obj/structure/dresser, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "flc" = ( /obj/structure/window/spawner/directional/south, /obj/machinery/door/window/right/directional/east{ @@ -14571,12 +14526,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"flF" = ( -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) "flH" = ( /obj/structure/closet/boxinggloves, /obj/effect/landmark/start/hangover/closet, @@ -15033,12 +14982,6 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"fsV" = ( -/obj/effect/decal/cleanable/blood/old{ - icon_state = "gib3-old" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "fsZ" = ( /obj/machinery/door/window/brigdoor/left/directional/south{ name = "Research Director Observation"; @@ -15084,6 +15027,10 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) +"ftW" = ( +/obj/structure/girder, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "ftX" = ( /obj/effect/turf_decal/sand/plating, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15146,13 +15093,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/ordnance/storage) -"fuZ" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/white, -/area/station/hallway/secondary/entry) "fvd" = ( /obj/machinery/duct, /obj/effect/turf_decal/tile/dark_green/opposingcorners, @@ -15650,6 +15590,17 @@ "fDz" = ( /turf/open/floor/iron/dark, /area/station/science/ordnance) +"fDI" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ + name = "Burn Chamber Exterior Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "fDK" = ( /obj/machinery/door/morgue{ name = "Relic Closet"; @@ -16274,10 +16225,6 @@ /obj/effect/landmark/carpspawn, /turf/open/space/openspace, /area/space) -"fOe" = ( -/obj/effect/landmark/carpspawn, -/turf/open/space/openspace, -/area/space/nearstation) "fOi" = ( /obj/effect/turf_decal/stripes{ dir = 8 @@ -16300,6 +16247,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/service/bar) +"fOu" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Xenobiology Lab - Secure Pen"; + network = list("ss13","rd","xeno") + }, +/obj/structure/sign/warning/biohazard/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "fOv" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/girder, @@ -16466,6 +16421,10 @@ /obj/effect/mapping_helpers/airalarm/tlv_no_checks, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"fQE" = ( +/obj/structure/sign/warning/biohazard/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "fQG" = ( /obj/machinery/door/airlock/virology/glass{ name = "Virology Lab"; @@ -17156,6 +17115,14 @@ /obj/machinery/duct, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) +"gdj" = ( +/obj/structure/chair{ + name = "Defense" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/courtroom) "gdA" = ( /obj/structure/chair/sofa/bench/right, /turf/open/floor/iron/white, @@ -17657,16 +17624,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark, /area/station/security/mechbay) -"gmm" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" - }, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/engine, -/area/station/science/xenobiology) "gms" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -17677,6 +17634,10 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos) +"gmC" = ( +/obj/machinery/igniter/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "gmH" = ( /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/engine, @@ -17748,6 +17709,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"goL" = ( +/obj/effect/turf_decal/siding/dark_blue, +/turf/open/floor/iron/textured_large, +/area/station/command/bridge) "goX" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 @@ -17934,27 +17899,6 @@ }, /turf/open/openspace, /area/station/engineering/supermatter/room) -"gsi" = ( -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_y = -8; - req_access = list("cargo") - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_y = 8; - req_access = list("cargo") - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "gsm" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/firealarm/directional/north, @@ -18650,6 +18594,10 @@ }, /turf/open/floor/wood/tile, /area/station/service/bar) +"gEp" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/openspace, +/area/space/nearstation) "gEr" = ( /obj/effect/turf_decal/arrows{ dir = 8; @@ -18698,6 +18646,10 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"gFe" = ( +/obj/structure/fluff/iced_abductor, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "gFg" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/siding/purple{ @@ -19376,16 +19328,6 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/iron/white, /area/station/science/research) -"gTF" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 - }, -/obj/effect/spawner/random/entertainment/cigarette_pack, -/obj/item/cigarette/rollie/mindbreaker, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "gTI" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -20220,6 +20162,11 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"hfX" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/light/directional/south, +/turf/open/floor/engine, +/area/station/science/xenobiology) "hgi" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 @@ -20313,6 +20260,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured_large, /area/station/science/xenobiology) +"him" = ( +/obj/machinery/shower/directional/east, +/turf/open/floor/iron/showroomfloor, +/area/station/cargo/storage) "his" = ( /obj/effect/decal/cleanable/greenglow/radioactive, /obj/machinery/light/small/directional/west, @@ -21617,12 +21568,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) -"hFN" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "hFO" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -22202,6 +22147,10 @@ /obj/effect/landmark/start/depsec/medical, /turf/open/floor/iron/dark, /area/station/security/checkpoint/medical) +"hQR" = ( +/obj/machinery/door/poddoor/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "hQY" = ( /obj/structure/table, /obj/effect/spawner/random/bureaucracy/folder, @@ -22387,14 +22336,6 @@ dir = 1 }, /area/station/engineering/atmos/pumproom) -"hTZ" = ( -/obj/structure/table, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 5 - }, -/obj/item/reagent_containers/condiment/enzyme, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "hUm" = ( /obj/machinery/light/cold/dim/directional/south, /turf/open/floor/catwalk_floor/iron_dark, @@ -22957,9 +22898,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/engineering/lobby) -"ifd" = ( -/turf/open/floor/engine/airless, -/area/space/nearstation) "ifj" = ( /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) @@ -22967,6 +22905,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/medical/storage) +"ift" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "ifE" = ( /obj/machinery/vending/medical, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -23440,25 +23384,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"ipq" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = -8; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = 9; - pixel_y = 3 - }, -/obj/item/book/manual/chef_recipes, -/obj/effect/turf_decal/tile/red/opposingcorners, -/turf/open/floor/iron/white, -/area/station/security/prison/mess) "ipu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, @@ -23558,25 +23483,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central) -"irf" = ( -/obj/structure/ladder, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 3 - }, -/obj/machinery/door/window/brigdoor/left/directional/south{ - pixel_y = -3; - name = "Monkey Pen"; - req_one_access = list("genetics") - }, -/obj/machinery/camera/autoname/directional/west{ - network = list("ss13","rd") - }, -/obj/effect/turf_decal/siding/purple/corner, -/obj/structure/sign/poster/random/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white/textured, -/area/station/science/genetics) "irx" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -24245,6 +24151,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"iEq" = ( +/obj/machinery/camera/motion/directional/west{ + network = list("aicore"); + c_tag = "Secure - AI Upper External East" + }, +/turf/open/space/openspace, +/area/space/nearstation) "iEA" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/machinery/light/cold/directional/south, @@ -24476,11 +24389,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"iII" = ( -/obj/machinery/shower/directional/east, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/showroomfloor, -/area/station/cargo/storage) "iIR" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -25343,11 +25251,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"jbL" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/purple/anticorner/contrasted, -/turf/open/floor/iron/white, -/area/station/science/lobby) +"jbK" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 5 + }, +/obj/item/reagent_containers/condiment/enzyme, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "jbM" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table/reinforced, @@ -25883,6 +25794,12 @@ /obj/machinery/digital_clock/directional/north, /turf/open/floor/iron/dark, /area/station/security/lockers) +"jky" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "jkF" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -26071,6 +25988,16 @@ /obj/machinery/light/directional/east, /turf/open/floor/catwalk_floor/iron_dark, /area/station/command/corporate_dock) +"jnL" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "jnP" = ( /obj/machinery/mech_bay_recharge_port{ dir = 8 @@ -26344,6 +26271,11 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/dark, /area/station/medical/chemistry/minisat) +"jsr" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/light/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "jss" = ( /obj/effect/turf_decal/tile/neutral, /obj/structure/chair/sofa/bench/left{ @@ -26371,6 +26303,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/holofloor/dark, /area/station/command/heads_quarters/cmo) +"jsX" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white, +/area/station/hallway/secondary/entry) "jtc" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt/dust, @@ -26511,10 +26450,6 @@ }, /turf/open/floor/wood, /area/station/commons/lounge) -"jvV" = ( -/obj/structure/sign/warning/biohazard/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "jwa" = ( /obj/structure/lattice, /obj/effect/spawner/random/structure/grille, @@ -27374,14 +27309,6 @@ /obj/structure/sign/poster/contraband/lusty_xenomorph/directional/north, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"jIY" = ( -/obj/structure/chair{ - name = "Defense" - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/courtroom) "jJb" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/entry) @@ -28158,6 +28085,10 @@ /obj/effect/turf_decal/bot_red, /turf/open/floor/iron/textured_large, /area/station/cargo/sorting) +"jXv" = ( +/obj/structure/broken_flooring/singular/directional/south, +/turf/open/space/openspace, +/area/space/nearstation) "jXL" = ( /obj/effect/spawner/random/trash/garbage{ spawn_scatter_radius = 1 @@ -28737,12 +28668,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron, /area/station/commons/storage/primary) -"khJ" = ( -/obj/effect/decal/cleanable/blood/old{ - icon_state = "gib5-old" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "khL" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/machinery/status_display/evac/directional/south, @@ -28937,6 +28862,9 @@ /obj/structure/table/wood/fancy/orange, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) +"kkx" = ( +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "kkA" = ( /obj/machinery/light_switch/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -29462,15 +29390,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/security/prison) -"krz" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ - dir = 4; - name = "euthanization chamber freezer" - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/iron, -/area/station/science/xenobiology) "krJ" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 10 @@ -29621,6 +29540,12 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/showroomfloor, /area/station/maintenance/department/engine) +"kuk" = ( +/obj/item/toy/plush/lizard_plushie/space/green{ + name = "Delaminates-The-Supermatter" + }, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "kuy" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/siding/wood{ @@ -29643,6 +29568,12 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/service/cafeteria) +"kuW" = ( +/obj/structure/statue/sandstone/venus{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/science/research) "kuX" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -30021,6 +29952,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science) +"kBs" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/grass, +/area/station/science/research) "kBt" = ( /obj/machinery/modular_computer/preset/civilian, /obj/machinery/button/door/directional/north{ @@ -30601,6 +30538,11 @@ }, /turf/open/floor/iron, /area/station/commons/lounge) +"kLQ" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/engine, +/area/station/science/xenobiology) "kLU" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/tile/yellow{ @@ -31302,6 +31244,20 @@ }, /turf/open/floor/iron/herringbone, /area/station/hallway/primary/central) +"kYN" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/clothing/glasses/science, +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","rd") + }, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/obj/item/multitool, +/turf/open/floor/iron/white, +/area/station/science/lab) "kYT" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/medical) @@ -31645,12 +31601,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/security/brig/entrance) -"lfq" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "lfu" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/landmark/start/bartender, @@ -32046,11 +31996,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) -"lny" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/light/directional/south, -/turf/open/floor/engine, -/area/station/science/xenobiology) "lnG" = ( /obj/structure/bed, /obj/machinery/airalarm/directional/north, @@ -32542,6 +32487,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"lxy" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/purple/anticorner/contrasted, +/turf/open/floor/iron/white, +/area/station/science/lobby) "lxI" = ( /obj/item/kirbyplants/random, /turf/open/floor/wood/parquet, @@ -32831,10 +32781,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) -"lCK" = ( -/obj/effect/turf_decal/siding/dark_blue, -/turf/open/floor/iron/textured_large, -/area/station/command/bridge) "lCO" = ( /obj/structure/chair/pew{ dir = 4 @@ -33114,10 +33060,6 @@ "lHm" = ( /turf/closed/wall, /area/station/engineering/storage/tech) -"lHp" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "lHx" = ( /obj/machinery/door/airlock/engineering{ name = "Auxiliary Base Construction" @@ -33407,6 +33349,12 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"lNx" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "lNz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -34221,6 +34169,13 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark, /area/station/commons/locker) +"mdv" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/carpet, +/area/station/commons/dorms) "mdw" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -34343,6 +34298,14 @@ }, /turf/open/space/basic, /area/space) +"mgF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer1, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron/textured, +/area/station/engineering/atmos) "mgH" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -34508,12 +34471,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) -"miM" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "miR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34777,19 +34734,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine) -"mnm" = ( -/obj/machinery/chem_dispenser, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 1 - }, -/turf/open/floor/iron/white/smooth_edge{ - dir = 1 - }, -/area/station/medical/pharmacy) "mnt" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -35694,10 +35638,6 @@ /obj/machinery/holopad, /turf/open/floor/wood/parquet, /area/station/cargo/boutique) -"mDx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "mDF" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -35772,6 +35712,20 @@ /obj/item/computer_disk/maintenance/spectre_meter, /turf/open/misc/asteroid/airless, /area/station/asteroid) +"mEO" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/pipe_dispenser{ + pixel_x = 3; + pixel_y = 7 + }, +/obj/item/pipe_dispenser, +/obj/machinery/power/apc/auto_name/directional/south{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "mEQ" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -35919,6 +35873,15 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) +"mHx" = ( +/obj/structure/window/spawner/directional/east, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "mHG" = ( /obj/machinery/door/airlock/maintenance_hatch, /obj/effect/mapping_helpers/airlock/access/all/medical/general, @@ -35978,15 +35941,6 @@ }, /turf/open/floor/wood/large, /area/station/cargo/boutique) -"mIG" = ( -/obj/structure/window/spawner/directional/east, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "mIH" = ( /obj/structure/lattice, /obj/effect/turf_decal/stripes/asteroid/line{ @@ -36997,9 +36951,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"nbS" = ( -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "ncc" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/window/spawner/directional/north, @@ -37583,9 +37534,6 @@ dir = 1 }, /area/station/engineering/atmos) -"nkM" = ( -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "nli" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/machinery/airalarm/directional/east, @@ -37996,10 +37944,6 @@ }, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) -"ntd" = ( -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron/showroomfloor, -/area/station/command/heads_quarters/qm) "ntQ" = ( /obj/structure/sign/warning/docking, /turf/closed/wall, @@ -38021,13 +37965,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/chapel, /area/station/service/chapel) -"nur" = ( -/obj/structure/chair/wood{ - dir = 1 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/carpet, -/area/station/commons/dorms) "nuu" = ( /obj/machinery/bouldertech/refinery, /obj/machinery/conveyor{ @@ -38354,6 +38291,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) +"nAt" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "nAu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38982,6 +38926,12 @@ "nMI" = ( /turf/closed/wall/r_wall, /area/station/maintenance/port/lesser) +"nMK" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "gib3-old" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "nMP" = ( /obj/structure/sign/poster/random/directional/south, /obj/machinery/light/small/directional/south, @@ -39132,13 +39082,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"nQm" = ( -/obj/machinery/camera/motion/directional/west{ - network = list("aicore"); - c_tag = "Secure - AI Upper External East" - }, -/turf/open/space/openspace, -/area/space/nearstation) "nQs" = ( /obj/machinery/light/small/directional/north, /turf/open/misc/asteroid, @@ -39284,6 +39227,10 @@ /obj/item/emergency_bed, /turf/open/floor/iron/white, /area/station/maintenance/aft/upper) +"nUJ" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "nUS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -39538,12 +39485,6 @@ "oaP" = ( /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"oaR" = ( -/obj/structure/closet/crate/critter, -/mob/living/basic/mothroach, -/obj/item/stack/spacecash/c100, -/turf/open/space/basic, -/area/space/nearstation) "oaY" = ( /obj/effect/landmark/start/medical_doctor, /obj/effect/turf_decal/trimline/blue/filled/line, @@ -40028,6 +39969,13 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"oma" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/structure/railing, +/turf/open/floor/carpet, +/area/station/service/theater) "omv" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/backpack, @@ -40196,6 +40144,25 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"oql" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/book/manual/chef_recipes, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron/white, +/area/station/security/prison/mess) "oqp" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -41861,16 +41828,6 @@ }, /turf/open/floor/iron, /area/station/security/prison) -"oUk" = ( -/obj/effect/spawner/random{ - loot = list(/obj/item/cardboard_cutout/nuclear_operative,/obj/item/cardboard_cutout/nuclear_operative,/obj/structure/fluff/balloon_nuke); - spawn_all_loot = 1; - spawn_loot_chance = 5; - spawn_loot_double = 0; - spawn_scatter_radius = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "oUm" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 8 @@ -41951,14 +41908,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) -"oVV" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Xenobiology Lab - Secure Pen"; - network = list("ss13","rd","xeno") - }, -/obj/structure/sign/warning/biohazard/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "oVX" = ( /obj/structure/table, /obj/structure/window/spawner/directional/east, @@ -42478,6 +42427,12 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/upper) +"pfe" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) "pfg" = ( /obj/structure/barricade/wooden, /turf/open/misc/asteroid, @@ -42577,6 +42532,16 @@ /obj/structure/cable, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) +"phq" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, +/obj/machinery/airlock_sensor/incinerator_ordmix{ + pixel_y = -24 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "phA" = ( /obj/machinery/computer/exodrone_control_console{ dir = 8 @@ -43089,6 +43054,10 @@ /obj/item/pickaxe/improvised, /turf/open/misc/asteroid, /area/station/maintenance/port/greater) +"ppO" = ( +/obj/effect/spawner/structure/window/hollow/end, +/turf/open/floor/plating, +/area/station/security/courtroom) "ppR" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 8 @@ -43126,6 +43095,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"pqX" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "prc" = ( /obj/machinery/field/generator, /turf/open/floor/plating, @@ -43498,10 +43473,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/treatment_center) -"pwU" = ( -/obj/structure/fluff/iced_abductor, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "pwV" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -43698,10 +43669,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/break_room) -"pAK" = ( -/obj/item/stack/cable_coil, -/turf/open/space/openspace, -/area/space/nearstation) "pAP" = ( /obj/effect/spawner/random/food_or_drink/seed{ spawn_all_loot = 1; @@ -44086,6 +44053,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/security/detectives_office) +"pGt" = ( +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "pGH" = ( /obj/machinery/door/airlock/external{ name = "Server Room" @@ -44175,6 +44145,11 @@ }, /turf/open/floor/plating, /area/station/security/warden) +"pIM" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/grass, +/area/station/science/research) "pIN" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall/r_wall, @@ -44243,6 +44218,10 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) +"pKn" = ( +/obj/structure/lattice, +/turf/open/floor/engine/airless, +/area/space/nearstation) "pKH" = ( /obj/effect/landmark/start/hangover, /obj/machinery/duct, @@ -44252,12 +44231,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) -"pKI" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/flora/bush/fullgrass/style_random, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/grass, -/area/station/science/research) "pLd" = ( /obj/machinery/door/airlock/security, /obj/machinery/door/firedoor, @@ -44440,12 +44413,6 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"pNW" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/machinery/chem_dispenser, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "pOd" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -44599,6 +44566,10 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/wood, /area/station/commons/lounge) +"pRb" = ( +/obj/machinery/light/floor, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "pRk" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 @@ -44885,13 +44856,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/textured, /area/station/commons/storage/art) -"pVd" = ( -/obj/structure/chair/wood{ - dir = 1 - }, -/obj/structure/railing, -/turf/open/floor/carpet, -/area/station/service/theater) "pVh" = ( /obj/machinery/light/warm/directional/south, /obj/effect/turf_decal/siding/wood, @@ -45160,17 +45124,6 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"pZK" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ - name = "Burn Chamber Exterior Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "pZP" = ( /obj/machinery/atmospherics/pipe/multiz/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, @@ -45483,12 +45436,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) -"qgy" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/structure/railing/corner, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white, -/area/station/hallway/secondary/entry) "qgA" = ( /obj/structure/window/spawner/directional/east, /obj/structure/table, @@ -45685,10 +45632,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) -"qjk" = ( -/obj/structure/broken_flooring/singular/directional/south, -/turf/open/space/openspace, -/area/space/nearstation) "qjp" = ( /obj/structure/flora/bush/flowers_yw/style_random, /obj/structure/window/spawner/directional/north, @@ -46318,6 +46261,11 @@ }, /turf/open/floor/wood/tile, /area/station/service/bar) +"qvh" = ( +/obj/effect/turf_decal/siding/dark_blue, +/obj/machinery/holopad, +/turf/open/floor/iron/textured_large, +/area/station/command/bridge) "qvA" = ( /turf/closed/wall, /area/station/medical/surgery) @@ -46721,10 +46669,6 @@ /obj/item/book/codex_gigas, /turf/open/floor/engine/cult, /area/station/service/library) -"qEr" = ( -/obj/machinery/light/floor, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "qEC" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -47516,16 +47460,6 @@ }, /turf/open/openspace, /area/station/science/xenobiology) -"qUz" = ( -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/abandoned, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "qUA" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -48084,20 +48018,6 @@ /obj/machinery/telecomms/processor/preset_one, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) -"rdP" = ( -/obj/machinery/chem_dispenser, -/obj/machinery/newscaster/directional/east, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 4 - }, -/turf/open/floor/iron/white/smooth_corner{ - dir = 1 - }, -/area/station/medical/pharmacy) "rdR" = ( /obj/structure/broken_flooring/pile, /obj/effect/decal/cleanable/dirt/dust, @@ -48174,6 +48094,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"reJ" = ( +/obj/machinery/chem_dispenser, +/obj/machinery/newscaster/directional/east, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_corner{ + dir = 1 + }, +/area/station/medical/pharmacy) "reK" = ( /obj/effect/turf_decal/sand/plating, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48854,6 +48788,27 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation) +"rpb" = ( +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_y = -8; + req_access = list("cargo") + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_y = 8; + req_access = list("cargo") + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "rpy" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 @@ -48962,13 +48917,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"rqC" = ( -/obj/machinery/camera/motion/directional/north{ - network = list("aicore"); - c_tag = "Secure - AI Upper External South" - }, -/turf/open/space/openspace, -/area/space/nearstation) "rqJ" = ( /obj/machinery/air_sensor/plasma_tank, /turf/open/floor/engine/plasma, @@ -49312,6 +49260,9 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"rxr" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "rxv" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt/dust, @@ -50345,6 +50296,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"rPL" = ( +/obj/effect/spawner/random{ + loot = list(/obj/item/cardboard_cutout/nuclear_operative,/obj/item/cardboard_cutout/nuclear_operative,/obj/structure/fluff/balloon_nuke); + spawn_all_loot = 1; + spawn_loot_chance = 5; + spawn_loot_double = 0; + spawn_scatter_radius = 1 + }, +/turf/open/space/basic, +/area/space/nearstation) "rPR" = ( /obj/effect/turf_decal/siding/green{ dir = 5 @@ -50374,6 +50335,9 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"rQy" = ( +/turf/open/floor/iron/showroomfloor, +/area/station/command/heads_quarters/qm) "rQC" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -50483,6 +50447,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"rRP" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/structure/railing/corner, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white, +/area/station/hallway/secondary/entry) "rRY" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, @@ -50610,6 +50580,10 @@ "rTM" = ( /turf/closed/wall/r_wall, /area/station/security/mechbay) +"rTQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "rTV" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -51543,6 +51517,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"shI" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/structure/chair{ + name = "Defense" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/courtroom) "sia" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -51803,6 +51787,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"sml" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/grass, +/area/station/science/research) "smn" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -52279,12 +52269,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"sug" = ( -/obj/machinery/sparker/directional/south{ - id = "Xenobio" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "suq" = ( /obj/effect/landmark/start/station_engineer, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52779,11 +52763,6 @@ }, /turf/open/floor/iron, /area/station/engineering/break_room) -"sDq" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/light/directional/north, -/turf/open/floor/engine, -/area/station/science/xenobiology) "sDr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53122,6 +53101,13 @@ /obj/effect/spawner/random/food_or_drink/donkpockets, /turf/open/floor/iron, /area/station/engineering/lobby) +"sJz" = ( +/obj/machinery/camera/motion/directional/north{ + network = list("aicore"); + c_tag = "Secure - AI Upper External South" + }, +/turf/open/space/openspace, +/area/space/nearstation) "sJG" = ( /obj/effect/turf_decal/stripes{ dir = 8 @@ -53196,16 +53182,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/bar/backroom) -"sLr" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, -/obj/machinery/airlock_sensor/incinerator_ordmix{ - pixel_y = -24 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "sLt" = ( /obj/machinery/camera/autoname/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -53660,6 +53636,10 @@ /obj/item/paper_bin/bundlenatural, /turf/open/floor/iron/textured_large, /area/station/cargo/sorting) +"sUy" = ( +/obj/structure/sign/poster/contraband/communist_state/directional/east, +/turf/open/space/basic, +/area/space/nearstation) "sUz" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -54758,20 +54738,6 @@ /obj/machinery/telecomms/bus/preset_two, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) -"toV" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/clothing/glasses/science, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","rd") - }, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/obj/item/multitool, -/turf/open/floor/iron/white, -/area/station/science/lab) "tpj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -55424,13 +55390,6 @@ }, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) -"tBC" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "tBF" = ( /obj/structure/closet/secure_closet/chief_medical, /obj/item/screwdriver, @@ -55637,6 +55596,12 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"tEU" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/stairs/north, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark/textured_large, +/area/station/engineering/storage/tech) "tEW" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -55656,17 +55621,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark, /area/station/security/mechbay) -"tFf" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "tFD" = ( /obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, @@ -56039,11 +55993,6 @@ /obj/item/clothing/suit/utility/fire/firefighter, /turf/open/floor/plating/reinforced, /area/station/command/emergency_closet) -"tMu" = ( -/obj/structure/railing, -/obj/effect/spawner/random/structure/closet_private, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "tMz" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -56876,21 +56825,15 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/maintenance/department/engine) -"uak" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" - }, -/obj/structure/sign/warning/gas_mask/directional/south, -/turf/open/floor/engine, -/area/station/science/xenobiology) "uat" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/science) +"uaw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "uay" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -57461,6 +57404,10 @@ }, /turf/open/floor/plating, /area/station/medical/pharmacy) +"ujW" = ( +/obj/machinery/air_sensor/ordnance_burn_chamber, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "ukl" = ( /obj/machinery/door/airlock/external{ name = "Solar Maintenance" @@ -57610,11 +57557,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"umA" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/engine, -/area/station/science/xenobiology) "umK" = ( /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, @@ -57698,6 +57640,9 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"unZ" = ( +/turf/closed/mineral/asteroid, +/area/space/nearstation) "uoi" = ( /obj/machinery/space_heater, /turf/open/floor/plating, @@ -57707,11 +57652,6 @@ /obj/machinery/atmospherics/components/binary/valve, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"uoP" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/medical/treatment_center) "uoY" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/purple/filled/arrow_ccw, @@ -58161,6 +58101,20 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/storage) +"uwN" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "uwV" = ( /obj/machinery/door/poddoor/shutters/window/preopen{ id = "ordstorage" @@ -58587,6 +58541,9 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/security) +"uEn" = ( +/turf/open/floor/engine/airless, +/area/space/nearstation) "uEo" = ( /turf/closed/wall, /area/station/service/chapel/office) @@ -58773,6 +58730,11 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/upper) +"uIu" = ( +/obj/item/radio/intercom/directional/east, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "uIx" = ( /obj/machinery/airalarm/directional/west, /obj/structure/bed/double{ @@ -59226,6 +59188,29 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) +"uPj" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ + name = "Burn Chamber Interior Airlock"; + id_tag = "ordmix_airlock_interior" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/machinery/airlock_controller/incinerator_ordmix{ + pixel_y = -26 + }, +/obj/machinery/button/ignition/incinerator/ordmix{ + pixel_x = -6; + pixel_y = 24 + }, +/obj/machinery/button/door/incinerator_vent_ordmix{ + pixel_x = 8; + pixel_y = 24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "uPv" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 10 @@ -59813,12 +59798,6 @@ "vaC" = ( /turf/open/floor/catwalk_floor/iron_dark, /area/station/command/corporate_dock) -"vaU" = ( -/obj/item/toy/plush/lizard_plushie/space/green{ - name = "Delaminates-The-Supermatter" - }, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "vaY" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/broken_flooring/pile, @@ -60108,10 +60087,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/department/engine) -"vgW" = ( -/obj/structure/lattice, -/turf/open/floor/engine/airless, -/area/space/nearstation) "vhf" = ( /obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4, /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, @@ -60159,12 +60134,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) -"vib" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "viK" = ( /obj/effect/turf_decal/tile/dark_blue/half/contrasted{ dir = 8 @@ -60457,6 +60426,16 @@ }, /turf/open/floor/wood, /area/station/service/theater) +"vns" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" + }, +/obj/structure/sign/warning/gas_mask/directional/south, +/turf/open/floor/engine, +/area/station/science/xenobiology) "vnG" = ( /obj/machinery/disposal/bin, /obj/machinery/requests_console/directional/north{ @@ -60917,12 +60896,6 @@ mineralChance = 20 }, /area/station/asteroid) -"vxZ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "vyj" = ( /obj/structure/stairs/east, /obj/structure/railing, @@ -61335,12 +61308,6 @@ }, /turf/open/floor/iron, /area/station/security/brig) -"vFG" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/stairs/north, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/iron/dark/textured_large, -/area/station/engineering/storage/tech) "vFH" = ( /obj/effect/turf_decal/trimline/blue/line{ dir = 9 @@ -61596,11 +61563,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"vLa" = ( -/obj/structure/flora/bush/fullgrass/style_random, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/grass, -/area/station/science/research) "vLs" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/fence, @@ -61705,10 +61667,6 @@ /obj/structure/flora/coconuts, /turf/open/floor/grass, /area/station/medical/chemistry) -"vMR" = ( -/obj/machinery/door/poddoor/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "vNc" = ( /obj/machinery/modular_computer/preset/id{ dir = 1 @@ -62197,6 +62155,32 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/showroomfloor, /area/station/engineering/main) +"vVc" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/machinery/door/window/brigdoor/right/directional/south{ + name = "Secondary AI Core Access"; + req_access = list("ai_upload"); + pixel_y = -4 + }, +/obj/machinery/flasher/directional/west{ + id = "AI"; + pixel_y = -8 + }, +/obj/item/radio/intercom/directional/north{ + pixel_x = -27; + frequency = 1447; + freerange = 1; + on = 0; + name = "Private Channel" + }, +/obj/item/radio/intercom/directional/north{ + pixel_x = 27; + name = "Common Channel"; + freerange = 1; + listening = 0 + }, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) "vVe" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -62818,10 +62802,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"wgI" = ( -/obj/machinery/air_sensor/ordnance_burn_chamber, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "wgK" = ( /obj/effect/turf_decal/box/corners{ dir = 8 @@ -62847,6 +62827,19 @@ /obj/structure/broken_flooring/side/directional/east, /turf/open/floor/plating, /area/station/maintenance/department/medical) +"whz" = ( +/obj/machinery/chem_dispenser, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 1 + }, +/area/station/medical/pharmacy) "whG" = ( /obj/structure/table/reinforced/rglass, /obj/item/folder/blue, @@ -63207,6 +63200,17 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"wos" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "wou" = ( /obj/structure/table, /obj/item/reagent_containers/cup/glass/coffee, @@ -64160,6 +64164,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"wEj" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/chem_dispenser, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "wEs" = ( /obj/item/target, /obj/structure/window/reinforced/spawner/directional/north, @@ -64314,10 +64324,6 @@ /obj/structure/closet, /turf/open/floor/iron/textured, /area/station/hallway/primary/central) -"wHl" = ( -/obj/structure/girder, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "wHo" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/spawner/random/entertainment/arcade{ @@ -64402,10 +64408,6 @@ "wJy" = ( /turf/closed/wall, /area/station/medical/storage) -"wJC" = ( -/obj/structure/sign/poster/contraband/communist_state/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "wJN" = ( /obj/machinery/space_heater/improvised_chem_heater, /turf/open/floor/plating, @@ -64845,9 +64847,6 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) -"wSj" = ( -/turf/closed/mineral/asteroid, -/area/space/nearstation) "wSn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, @@ -65372,6 +65371,9 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hos) +"xbg" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "xbi" = ( /obj/effect/landmark/start/depsec/engineering, /obj/effect/turf_decal/trimline/red/filled/line, @@ -65480,6 +65482,12 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"xcX" = ( +/obj/machinery/sparker/directional/south{ + id = "Xenobio" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "xdf" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -65645,10 +65653,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) -"xfQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "xfS" = ( /obj/structure/sign/departments/aisat/directional/east, /obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ @@ -65678,6 +65682,12 @@ }, /turf/open/openspace, /area/station/science/xenobiology) +"xgy" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "xgG" = ( /turf/closed/wall/rust, /area/station/maintenance/department/medical/central) @@ -66025,9 +66035,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"xna" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "xnc" = ( /obj/machinery/door/airlock/command/glass{ name = "Bridge" @@ -66543,6 +66550,11 @@ /obj/structure/cable/layer1, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"xwG" = ( +/obj/structure/railing, +/obj/effect/spawner/random/structure/closet_private, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "xwO" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/disposalpipe/segment, @@ -66601,12 +66613,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/atmos) -"xxO" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/flora/bush/fullgrass/style_random, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/grass, -/area/station/science/research) "xxT" = ( /obj/structure/chair/wood, /obj/effect/turf_decal/siding/wood{ @@ -67594,6 +67600,32 @@ }, /turf/open/floor/catwalk_floor, /area/station/cargo/storage) +"xRu" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/machinery/door/window/brigdoor/left/directional/north{ + name = "Tertiary AI Core Access"; + req_access = list("ai_upload"); + pixel_y = 3 + }, +/obj/item/radio/intercom/directional/south{ + pixel_x = -27; + freerange = 1; + listening = 0; + name = "Common Channel" + }, +/obj/item/radio/intercom/directional/south{ + pixel_x = 27; + frequency = 1447; + freerange = 1; + listening = 0; + name = "Private Channel" + }, +/obj/machinery/flasher/directional/east{ + pixel_y = 8; + id = "AI" + }, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) "xRG" = ( /obj/structure/chair/wood{ dir = 4 @@ -67821,32 +67853,6 @@ /obj/effect/landmark/start/bitrunner, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/bitrunning/den) -"xWR" = ( -/obj/effect/landmark/start/ai/secondary, -/obj/machinery/door/window/brigdoor/right/directional/south{ - name = "Secondary AI Core Access"; - req_access = list("ai_upload"); - pixel_y = -4 - }, -/obj/machinery/flasher/directional/west{ - id = "AI"; - pixel_y = -8 - }, -/obj/item/radio/intercom/directional/north{ - pixel_x = -27; - frequency = 1447; - freerange = 1; - on = 0; - name = "Private Channel" - }, -/obj/item/radio/intercom/directional/north{ - pixel_x = 27; - name = "Common Channel"; - freerange = 1; - listening = 0 - }, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai) "xXh" = ( /obj/machinery/power/shieldwallgen, /obj/effect/decal/cleanable/dirt/dust, @@ -67890,10 +67896,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"xXF" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "xXY" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/effect/turf_decal/siding/wideplating/dark/end{ @@ -68391,6 +68393,10 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"ygW" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "yhj" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ @@ -73221,15 +73227,15 @@ cLf cLf iUF tLg -dUc -dUc -dUc -dUc -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC +bwC +bwC +bwC +bwC tLg iUF cLf @@ -73477,7 +73483,7 @@ cLf cLf cLf iUF -dUc +bwC wfz uuN uuN @@ -73487,7 +73493,7 @@ uuN uuN uuN wfz -dUc +bwC iUF cLf cLf @@ -73734,17 +73740,17 @@ cLf cLf cLf cLf -dUc +bwC uuN cLf cLf cLf -dUc +bwC cLf cLf cLf uuN -dUc +bwC cLf cLf cLf @@ -73991,17 +73997,17 @@ cLf cLf cLf cLf -dUc +bwC uuN cLf cLf cLf -dUc +bwC cLf cLf cLf uuN -dUc +bwC cLf cLf cLf @@ -74248,17 +74254,17 @@ cLf cLf cLf cLf -dUc +bwC uuN cLf cLf cLf -dUc +bwC cLf cLf cLf uuN -dUc +bwC cLf cLf cLf @@ -74505,17 +74511,17 @@ cLf cLf cLf cLf -dUc +bwC uuN -dUc -dUc -dUc +bwC +bwC +bwC itt -dUc -dUc -dUc +bwC +bwC +bwC uuN -dUc +bwC cLf cLf cLf @@ -74762,17 +74768,17 @@ cLf cLf cLf cLf -dUc +bwC uuN cLf cLf cLf -dUc +bwC cLf cLf cLf uuN -dUc +bwC cLf cLf cLf @@ -75019,17 +75025,17 @@ cLf cLf cLf cLf -dUc +bwC uuN cLf cLf cLf -dUc +bwC cLf cLf cLf uuN -dUc +bwC cLf cLf cLf @@ -75276,17 +75282,17 @@ cLf cLf cLf cLf -dUc +bwC uuN cLf cLf cLf -dUc +bwC cLf cLf cLf uuN -dUc +bwC cLf cLf cLf @@ -75533,7 +75539,7 @@ cLf cLf cLf iUF -dUc +bwC wfz uuN uuN @@ -75543,7 +75549,7 @@ uuN uuN uuN wfz -dUc +bwC iUF cLf cLf @@ -75791,15 +75797,15 @@ cLf cLf iUF tLg -dUc -dUc -dUc -dUc -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC +bwC +bwC +bwC +bwC tLg iUF cLf @@ -76008,16 +76014,16 @@ iUF iUF cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf iUF -dUc +bwC iUF cLf cLf @@ -76049,17 +76055,17 @@ cLf iUF iUF cLf -dUc +bwC cLf uuN uuN uuN cLf -dUc +bwC cLf iUF iUF -dUc +bwC cLf cLf cLf @@ -76265,16 +76271,16 @@ iUF cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf iUF -dUc +bwC iUF cLf cLf @@ -76306,17 +76312,17 @@ cLf cLf cLf cLf -dUc +bwC cLf uuN uuN uuN cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -76519,19 +76525,19 @@ cLf cLf cLf iUF -dUc -dUc -dUc +bwC +bwC +bwC rGO cLf qJB cLf rGO -dUc -dUc -dUc +bwC +bwC +bwC iUF -dUc +bwC iUF cLf cLf @@ -76563,22 +76569,22 @@ cLf cLf cLf cLf -dUc +bwC cLf uuN uuN uuN cLf -dUc +bwC cLf cLf cLf -dUc -dUc +bwC +bwC iUF iUF iUF -dUc +bwC cLf cLf cLf @@ -76788,7 +76794,7 @@ cLf cLf cLf iUF -dUc +bwC iUF cLf cLf @@ -76820,22 +76826,22 @@ cLf cLf cLf cLf -dUc +bwC cLf uuN uuN uuN cLf -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC cLf cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf @@ -77045,7 +77051,7 @@ cLf cLf cLf iUF -dUc +bwC iUF cLf cLf @@ -77077,22 +77083,22 @@ cLf cLf cLf cLf -dUc +bwC cLf uuN uuN uuN cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf kJV cLf -dUc +bwC cLf cLf cLf @@ -77302,7 +77308,7 @@ rGO cLf cLf iUF -dUc +bwC iUF cLf cLf @@ -77334,24 +77340,24 @@ cLf cLf cLf cLf -dUc +bwC cLf uuN uuN uuN cLf -dUc +bwC cLf cLf cLf iUF iUF -dUc -dUc -dUc +bwC +bwC +bwC iUF iUF -dUc +bwC mPv cLf cLf @@ -77559,7 +77565,7 @@ opZ rGO cLf iUF -dUc +bwC iUF cLf cLf @@ -77568,7 +77574,7 @@ cLf cLf cLf cLf -dUc +bwC iUF cLf cLf @@ -77585,12 +77591,12 @@ cLf cLf cLf iUF -dUc -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC +bwC iUF iUF kYn @@ -77602,18 +77608,18 @@ iUF iUF cLf cLf -dUc +bwC cLf cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -77804,7 +77810,7 @@ cLf cLf cLf iUF -dUc +bwC rGO sKL rGO @@ -77814,18 +77820,18 @@ nMk rGO sKL rGO -dUc +bwC iUF -dUc +bwC iUF -dUc -dUc +bwC +bwC iUF iUF iUF iUF -dUc -dUc +bwC +bwC cLf cLf cLf @@ -77842,7 +77848,7 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -77850,16 +77856,16 @@ cLf cLf iUF cLf -dUc +bwC cLf -dUc +bwC cLf -dUc +bwC cLf iUF cLf cLf -dUc +bwC cLf cLf cLf @@ -78073,14 +78079,14 @@ opZ opZ cLf iUF -dUc +bwC iUF cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -78099,19 +78105,19 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf -dUc +bwC cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf @@ -78143,12 +78149,12 @@ kYn cLf cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf shs @@ -78328,16 +78334,16 @@ nMk rGO sKL rGO -dUc +bwC iUF -dUc +bwC iUF cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -78356,19 +78362,19 @@ cLf cLf cLf tyd -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf -dUc +bwC cLf -dUc +bwC cLf -dUc +bwC cLf cLf rnk @@ -78395,8 +78401,8 @@ shs shs kYn shs -dUc -dUc +bwC +bwC cLf cLf oDH @@ -78405,7 +78411,7 @@ oDH cLf cLf cLf -dUc +bwC cLf cLf shs @@ -78575,7 +78581,7 @@ cLf cLf cLf iUF -dUc +bwC opZ opZ opZ @@ -78587,14 +78593,14 @@ opZ fYX cLf iUF -dUc +bwC iUF cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -78613,15 +78619,15 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf -dUc +bwC rnk rnk oFu @@ -78647,13 +78653,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf oDH weu @@ -78661,10 +78667,10 @@ oDH weu oDH bfl -dUc +bwC wfz -dUc -dUc +bwC +bwC shs cLf cLf @@ -78834,24 +78840,24 @@ cLf iUF cLf cLf -dUc +bwC cLf cLf pNk cLf cLf -dUc +bwC cLf cLf iUF -dUc +bwC iUF cLf cLf cLf cLf cLf -dUc +bwC cLf tyd cLf @@ -78870,7 +78876,7 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -78904,14 +78910,14 @@ vxX vxX vxX cLf -dUc +bwC cLf cLf cLf -dUc -dUc +bwC +bwC wfz -dUc +bwC oDH weu oDH @@ -78919,7 +78925,7 @@ weu oDH lTb oDH -dUc +bwC cLf cLf shs @@ -79091,24 +79097,24 @@ cLf iUF cLf cLf -dUc +bwC cLf cLf pNk cLf cLf -dUc +bwC cLf cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -79127,7 +79133,7 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -79165,9 +79171,9 @@ loh loh loh loh -dUc +bwC cLf -dUc +bwC cLf oDH weu @@ -79176,7 +79182,7 @@ weu oDH weu oDH -dUc +bwC cLf cLf shs @@ -79348,24 +79354,24 @@ cLf cLf cLf cLf -dUc +bwC cLf oyS oDZ oyS cLf -dUc +bwC tyd cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -79384,7 +79390,7 @@ cLf cLf cLf cLf -dUc +bwC cLf vxX vxX @@ -79424,8 +79430,8 @@ sRo iFz iFz iFz -dUc -dUc +bwC +bwC lTb weu lTb @@ -79611,12 +79617,12 @@ oyS hPg oyS cLf -dUc +bwC cLf cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf @@ -79641,7 +79647,7 @@ cLf cLf cLf cLf -dUc +bwC vxX vxX vxX @@ -79692,7 +79698,7 @@ kqy kqy kqy pBk -dUc +bwC shs cLf cLf @@ -79854,7 +79860,7 @@ cLf cLf cLf mPv -dUc +bwC nAb eSS eSS @@ -79868,12 +79874,12 @@ oyS qjc oyS oyS -dUc +bwC cLf cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf @@ -79883,10 +79889,10 @@ vxX vxX vxX cLf -dUc -dUc +bwC +bwC mfA -dUc +bwC fVZ mWe aoL @@ -79938,8 +79944,8 @@ hVs iFz iFz iFz -dUc -dUc +bwC +bwC lTb weu lTb @@ -80128,9 +80134,9 @@ poi poi poi mxq -dUc +bwC cLf -dUc +bwC cLf cLf cLf @@ -80140,7 +80146,7 @@ poi poi poi cLf -dUc +bwC cLf fsI cLf @@ -80193,9 +80199,9 @@ loh loh loh loh -dUc +bwC cLf -dUc +bwC cLf oDH weu @@ -80204,7 +80210,7 @@ weu oDH weu oDH -dUc +bwC cLf cLf shs @@ -80450,10 +80456,10 @@ sHh xyN nNv rnk -dUc -dUc +bwC +bwC wfz -dUc +bwC oDH weu oDH @@ -80461,7 +80467,7 @@ weu oDH lTb oDH -dUc +bwC cLf cLf shs @@ -80661,7 +80667,7 @@ sfu sfu bgv lam -gsi +rpb lam goX nZt @@ -80717,10 +80723,10 @@ oDH weu oDH bfl -dUc +bwC wfz -dUc -dUc +bwC +bwC shs cLf cLf @@ -80882,7 +80888,7 @@ cLf cLf cLf mPv -dUc +bwC nAb eSS eSS @@ -80975,7 +80981,7 @@ oDH cLf cLf cLf -dUc +bwC cLf cLf shs @@ -81227,12 +81233,12 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf shs @@ -81385,22 +81391,22 @@ cLf cLf cLf cLf -dUc +bwC iUF iUF iUF -dUc +bwC iUF iUF iUF -dUc +bwC iUF iUF iUF -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC eSS cro cro @@ -81478,11 +81484,11 @@ fma fma gtK rnk -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC kYn shs shs @@ -81638,21 +81644,21 @@ cLf cLf cLf cLf -dUc +bwC iUF iUF iUF -dUc +bwC cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -81742,7 +81748,7 @@ rnk cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -81895,21 +81901,21 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -82235,7 +82241,7 @@ kFT kFT qIS osT -uoP +aSn ioh gzw dKw @@ -82254,8 +82260,8 @@ uoo bMx hiO oFu -dUc -dUc +bwC +bwC iUF cLf cLf @@ -82410,7 +82416,7 @@ cLf cLf cLf iUF -dUc +bwC xrb xrb dEG @@ -82511,7 +82517,7 @@ sEY vJf rnk rnk -dUc +bwC cLf iUF cLf @@ -82683,7 +82689,7 @@ cem cem whY baH -dUc +bwC qhP dJK geh @@ -82923,7 +82929,7 @@ tyd cLf cLf cLf -dUc +bwC cLf xrb nEx @@ -83023,7 +83029,7 @@ lXG rnk cLf cLf -dUc +bwC kYn shs cLf @@ -83438,7 +83444,7 @@ cLf cLf cLf iUF -dUc +bwC xrb iNq oHi @@ -83951,7 +83957,7 @@ cLf cLf cLf cLf -dUc +bwC cLf oPe xch @@ -84051,7 +84057,7 @@ oaP oFu cLf cLf -dUc +bwC cLf cLf cLf @@ -84208,7 +84214,7 @@ cLf cLf cLf cLf -dUc +bwC vxX ubm ubm @@ -84240,10 +84246,10 @@ uZc uZc uZc uZc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC poi poi poi @@ -84308,7 +84314,7 @@ oqj rnk vxX vxX -dUc +bwC cLf cLf cLf @@ -84504,7 +84510,7 @@ cLf cLf cLf cLf -dUc +bwC htf kpT jdK @@ -84761,7 +84767,7 @@ cLf cLf cLf cLf -dUc +bwC htf iHv rZJ @@ -85018,7 +85024,7 @@ cLf cLf cLf cLf -dUc +bwC poi mhF jdK @@ -85249,7 +85255,7 @@ eFK iEO oCR bxs -ipq +oql jza mHL iHG @@ -85275,7 +85281,7 @@ cLf cLf cLf cLf -dUc +bwC poi htf poi @@ -85532,7 +85538,7 @@ uOf cLf cLf cLf -dUc +bwC iua tdq cTa @@ -85787,8 +85793,8 @@ cLf ved gxu ved -dUc -dUc +bwC +bwC poi poi poi @@ -86363,7 +86369,7 @@ paa pEZ wiK mXM -dUc +bwC gGf cLf cLf @@ -86623,7 +86629,7 @@ mXM cLf cLf cLf -oaR +eTi cLf cLf cLf @@ -86851,7 +86857,7 @@ vLx lZb mAa qfB -mnm +whz bII icw mnc @@ -87297,8 +87303,8 @@ cLf cLf cLf cLf -dUc -dUc +bwC +bwC cLf cLf cLf @@ -87368,7 +87374,7 @@ qfB vyO hjW dGs -rdP +reJ qfB rgx goI @@ -87389,7 +87395,7 @@ lKh dgp paa rnk -dUc +bwC iUF cLf cLf @@ -87646,7 +87652,7 @@ dgp dgp rFd rnk -dUc +bwC iUF cLf cLf @@ -87894,10 +87900,10 @@ kJT fhL kJT cLf -dUc +bwC cLf -dUc -cxg +bwC +kkx rnk wdV nHm @@ -88071,8 +88077,8 @@ pnS pnS pnS unk -dUc -dUc +bwC +bwC jza mbM mbM @@ -88151,9 +88157,9 @@ kJT kyi kJT cLf -dUc +bwC cLf -dUc +bwC cLf rnk xuD @@ -88330,7 +88336,7 @@ pnS pnS cLf cLf -dUc +bwC uuN uuN plA @@ -88407,11 +88413,11 @@ hDK kJT iTL kJT -dUc +bwC wfz uuN wfz -dUc +bwC jsC xWi jsC @@ -88587,7 +88593,7 @@ unk cLf cLf cLf -dUc +bwC uuN uuN plA @@ -88840,10 +88846,10 @@ cLf cLf cLf cLf -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC rTM rTM rTM @@ -89180,8 +89186,8 @@ jNJ pUY kJT hgV -wJC -dUc +sUy +bwC uuN gJE paa @@ -89438,7 +89444,7 @@ hYg kJT rnk rnk -dUc +bwC wfz gJE paa @@ -89695,7 +89701,7 @@ ndI kJT afV rnk -dUc +bwC uuN gJE paa @@ -90384,7 +90390,7 @@ cLf cLf cLf iUF -dUc +bwC hDo sIM wVz @@ -90726,8 +90732,8 @@ vxX vxX cLf cLf -dUc -dUc +bwC +bwC cLf cLf cLf @@ -90898,7 +90904,7 @@ cLf cLf cLf iUF -dUc +bwC hDo fmB rAu @@ -90931,7 +90937,7 @@ heI jAG oed oed -ebE +ppO fpH bxH oed @@ -90984,7 +90990,7 @@ rnk rnk rnk rnk -dUc +bwC cLf cLf cLf @@ -91186,7 +91192,7 @@ rWZ bZH sRV jAG -jIY +gdj wpc mAX aHl @@ -91443,7 +91449,7 @@ dIT ked ked iCa -drZ +shI dBS vhT fYj @@ -92263,13 +92269,13 @@ uZx rms tcN rnk -dUc -dUc +bwC +bwC rnk rnk rnk rnk -dUc +bwC cLf cLf cLf @@ -92453,14 +92459,14 @@ axD axD axD fYe -dUc -dUc -dUc +bwC +bwC +bwC uuN uuN -dUc -dUc -dUc +bwC +bwC +bwC fYe fYe fri @@ -92522,11 +92528,11 @@ lqf rnk cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -92701,7 +92707,7 @@ cLf cLf cLf cLf -dUc +bwC cLf fZF mGX @@ -92781,9 +92787,9 @@ hzF hzF hzF hzF -dUc -dUc -dUc +bwC +bwC +bwC cLf cLf cLf @@ -93040,7 +93046,7 @@ pCJ hzF cLf cLf -dUc +bwC cLf cLf cLf @@ -93210,11 +93216,11 @@ cLf cLf cLf iUF -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC axD axD axD @@ -93224,15 +93230,15 @@ jxq vEF axD axD -dUc +bwC uuN -dUc +bwC uuN uuN -dUc +bwC uuN -dUc -dUc +bwC +bwC fYe fri nAe @@ -93482,12 +93488,12 @@ dGh jqu hrM cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf fYe fYe @@ -93739,7 +93745,7 @@ nbm iDJ hrM cLf -dUc +bwC cLf cLf cLf @@ -93981,11 +93987,11 @@ cLf cLf cLf iUF -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC axD hnE axD @@ -94236,8 +94242,8 @@ cLf cLf cLf cLf -dUc -dUc +bwC +bwC cLf cLf cLf @@ -95265,11 +95271,11 @@ cLf cLf cLf iUF -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC eKR pVC yhk @@ -95319,7 +95325,7 @@ enu cLd cdk fTl -hTZ +jbK bJo cdk rPg @@ -95781,7 +95787,7 @@ cLf iUF cLf cLf -oUk +rPL cLf cLf bqX @@ -95790,7 +95796,7 @@ yhk fUR rUi typ -ckb +qvh jlw iRB gkQ @@ -96047,7 +96053,7 @@ qlc wbf lYZ typ -lCK +goL aHs iRB kZg @@ -96550,11 +96556,11 @@ cLf cLf cLf iUF -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC eKR cNQ kjs @@ -96638,7 +96644,7 @@ tNz nHK cLf cLf -dUc +bwC cLf cLf cLf @@ -96893,8 +96899,8 @@ xcl xrd ppk hzF -dUc -dUc +bwC +bwC wfz cLf cLf @@ -97152,7 +97158,7 @@ azg azg cLf cLf -dUc +bwC cLf cLf cLf @@ -97585,7 +97591,7 @@ cLf cLf cLf cLf -dUc +bwC cLf eKR iSE @@ -97836,13 +97842,13 @@ cLf cLf cLf iUF -dUc -dUc -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC +bwC +bwC cLf eKR tju @@ -97899,7 +97905,7 @@ fkn sAc bmL wSn -pVd +oma axa xbs bmp @@ -98357,7 +98363,7 @@ cLf cLf cLf iUF -dUc +bwC eKR eKR uCw @@ -98621,13 +98627,13 @@ jVy brP jVy eKR -dUc -dUc -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC +bwC +bwC juw vOe vOe @@ -99132,10 +99138,10 @@ ili cLf cLf cLf -dUc +bwC cLf cLf -dUc +bwC dVE pjN hoe @@ -99379,8 +99385,8 @@ kGm aPz aPz xsN -dUc -dUc +bwC +bwC cLf cLf reg @@ -99464,7 +99470,7 @@ vFr vlM uEo cLf -dUc +bwC cLf cLf cLf @@ -99637,7 +99643,7 @@ oOC oOC xsN cLf -dUc +bwC cLf cLf dwF @@ -99646,7 +99652,7 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -99720,7 +99726,7 @@ mUU sLt dnt uEo -dUc +bwC iUF cLf cLf @@ -99888,7 +99894,7 @@ cLf cLf cLf iUF -dUc +bwC srs aPz aPz @@ -100168,7 +100174,7 @@ cLf iWV hJs xqe -dUc +bwC utM utM kOd @@ -100420,8 +100426,8 @@ vBs hfm eVE jEY -dUc -dUc +bwC +bwC vfJ hJs vfJ @@ -100682,7 +100688,7 @@ cLf iWV hJs iWV -dUc +bwC utM utM wWD @@ -100956,7 +100962,7 @@ tCE rOq fDa wGu -nur +mdv jkG fDa mgV @@ -101195,8 +101201,8 @@ cLf cLf cLf hJs -dUc -dUc +bwC +bwC obA utM utM @@ -101447,10 +101453,10 @@ eEx sYI sfY srs -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC hJs cLf cLf @@ -101685,8 +101691,8 @@ cLf cLf cLf iUF -dUc -dUc +bwC +bwC unk vxX srs @@ -101706,7 +101712,7 @@ srs srs cLf cLf -dUc +bwC cLf hqF epi @@ -101963,7 +101969,7 @@ skw srs cLf cLf -dUc +bwC cLf cLf cLf @@ -102033,7 +102039,7 @@ uFb jke kiK uFb -dUc +bwC iUF cLf cLf @@ -102220,7 +102226,7 @@ hnL srs cLf cLf -dUc +bwC cLf cLf cLf @@ -102234,7 +102240,7 @@ grl pJN iKc rSL -jbL +lxy lFE cBr deY @@ -102291,7 +102297,7 @@ vBV cpF uFb cLf -dUc +bwC cLf cLf cLf @@ -102477,7 +102483,7 @@ kYu kYu cLf cLf -dUc +bwC cLf cLf cLf @@ -102733,10 +102739,10 @@ pgk ins kYu kYu -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC vxX vxX vxX @@ -102970,9 +102976,9 @@ cLf cLf cLf iUF -dUc -dUc -dUc +bwC +bwC +bwC dZy awB glq @@ -103323,7 +103329,7 @@ jge uFb cLf cLf -dUc +bwC cLf iUF cLf @@ -103808,11 +103814,11 @@ kBM nMI cLf xAy -dUc -dUc +bwC +bwC xAy cLf -dUc +bwC xAy xAy xTw @@ -104064,7 +104070,7 @@ jUU kBM pWw cLf -dUc +bwC cLf cLf uuN @@ -104095,7 +104101,7 @@ wag xzJ kub pUr -dUc +bwC iUF cLf cLf @@ -104321,12 +104327,12 @@ jUU nyQ pWw cLf -dUc +bwC cLf cLf uuN xAy -vFG +tEU ugN pWE hYF @@ -104578,7 +104584,7 @@ jUU kBM pWw cLf -dUc +bwC cLf cLf axt @@ -104836,11 +104842,11 @@ ajQ nMI cLf xAy -dUc -dUc +bwC +bwC xAy cLf -dUc +bwC xAy xAy qXB @@ -104871,7 +104877,7 @@ ruZ ruZ ruZ fmY -dUc +bwC mPv cLf cLf @@ -105056,7 +105062,7 @@ vfJ rXG raz cPt -toV +kYN hEw irJ cPt @@ -105899,7 +105905,7 @@ ykG ykG ykG fdj -dUc +bwC mPv vxX vxX @@ -106606,7 +106612,7 @@ tVF wAy mUP hfB -eIo +kuW smE xCw rAz @@ -106862,9 +106868,9 @@ mmV tVF jiw sHn -xxO -vLa -pKI +sml +pIM +kBs lBJ puX thf @@ -106880,15 +106886,15 @@ niB hjI crU vxX -dUc -dUc +bwC +bwC nbu nbu nbu nbu nbu -dUc -dUc +bwC +bwC pLB dpU dpU @@ -107137,16 +107143,16 @@ pXS hjI crU vxX -dUc -dUc +bwC +bwC nbu gxw gxw cxN nbu -dUc -dUc -dUc +bwC +bwC +bwC dpU iel hTX @@ -107394,16 +107400,16 @@ niB qAI crU vxX -dUc -dUc +bwC +bwC nbu gxw puQ gxw nbu -dUc -dUc -dUc +bwC +bwC +bwC dpU nav pJw @@ -107651,16 +107657,16 @@ qOs bpy crU vxX -dUc -dUc +bwC +bwC nbu cIx enn tBt nbu -dUc -dUc -dUc +bwC +bwC +bwC dpU iPu eoQ @@ -107862,11 +107868,11 @@ cLf cLf cLf cLf -flF +pfe neT utU neT -flF +pfe cLf cLf cLf @@ -107908,16 +107914,16 @@ niB aoA crU vxX -dUc -dUc +bwC +bwC nbu wpM wVI bvl nbu -dUc -dUc -dUc +bwC +bwC +bwC dpU ppR mZA @@ -107954,10 +107960,10 @@ pGo ykG ykG ykG -dUc -dUc +bwC +bwC fmr -dUc +bwC cLf cLf vxX @@ -108120,9 +108126,9 @@ cLf cLf cLf cLf -dUc +bwC utU -dUc +bwC cLf cLf cLf @@ -108165,16 +108171,16 @@ ers dsL crU vxX -dUc -dUc -dUc +bwC +bwC +bwC gdP -dUc +bwC mXr -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC dpU kRq kLU @@ -108210,9 +108216,9 @@ ece kcz ykG mXK -dUc -dUc -dUc +bwC +bwC +bwC fmr cLf cLf @@ -108377,9 +108383,9 @@ cLf cLf cLf cLf -dUc +bwC utU -dUc +bwC cLf cLf cLf @@ -108638,14 +108644,14 @@ qVF izr qVF wNk -dUc -dUc -dUc -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC +bwC +bwC +bwC fYe vxX vxX @@ -108671,13 +108677,13 @@ sSN nal gOY vxX -cxg +kkx vxX -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC cNc pNi kUb @@ -108887,9 +108893,9 @@ cLf cLf cLf cLf -dUc -dUc -dUc +bwC +bwC +bwC wZz wZz qpj @@ -108898,7 +108904,7 @@ wZz cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -108927,8 +108933,8 @@ gOY tDS cpJ gOY -cxg -cxg +kkx +kkx vxX nbu nbu @@ -108945,7 +108951,7 @@ oRf sYU hLj syl -nDN +mgF nDN nDN pPv @@ -109151,11 +109157,11 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -109184,8 +109190,8 @@ uPL pVG oLj gOY -wHl -cxg +ftW +kkx vxX nbu aXt @@ -109408,7 +109414,7 @@ cLf cLf cLf cLf -dUc +bwC cLf fYe fYe @@ -109441,15 +109447,15 @@ gOY wOn gOY gOY -cxg -cxg +kkx +kkx vxX nbu aXt jyO qsa wVI -dUc +bwC rLK vYL jSu @@ -109665,7 +109671,7 @@ cLf cLf cLf cLf -dUc +bwC cLf vxX vxX @@ -109698,8 +109704,8 @@ bPc efJ dPh gOY -cxg -cxg +kkx +kkx vxX nbu aXt @@ -109916,12 +109922,12 @@ cLf cLf cLf shs -dUc +bwC wfz -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC vxX vxX vxX @@ -109956,14 +109962,14 @@ rkI rYe gOY gOY -cxg +kkx vxX nbu nbu nbu nbu nbu -dUc +bwC utf qKj jSu @@ -110174,7 +110180,7 @@ shs shs shs cLf -dUc +bwC cLf cLf cLf @@ -110213,7 +110219,7 @@ fDz fDz gqV gOY -cxg +kkx vxX nbu pIV @@ -110431,7 +110437,7 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -110440,7 +110446,7 @@ cLf vxX cLf cLf -dUc +bwC cLf cLf cLf @@ -110470,14 +110476,14 @@ fDz dyd vrG gOY -cxg +kkx vxX nbu pIV mBg rqJ wVI -dUc +bwC rLK nLD jSu @@ -110683,21 +110689,21 @@ cLf shs shs cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf -dUc +bwC cLf cLf cLf @@ -110727,7 +110733,7 @@ vvE aWM vzP gOY -cxg +kkx vxX nbu pIV @@ -110938,11 +110944,11 @@ cLf cLf cLf shs -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC pbP pih pbP @@ -110951,10 +110957,10 @@ pbP cLf cLf cLf -dUc +bwC cLf cLf -dUc +bwC cLf cLf cLf @@ -110978,20 +110984,20 @@ aks tTK tvB cSI -nkM -vxZ -dyS -lfq -mDx +xbg +egj +uPj +pqX +rTQ gOY -cxg +kkx vxX nbu nbu nbu nbu nbu -dUc +bwC utf hon jSu @@ -111208,10 +111214,10 @@ pih cLf cLf tyd -dUc +bwC cLf cLf -dUc +bwC cLf cLf cLf @@ -111234,14 +111240,14 @@ gOY gOY tTK rFA -mIG -xfQ -cAG -xXF -sLr -mDx -cxg -cxg +mHx +uaw +apA +deV +phq +rTQ +kkx +kkx vxX nbu msY @@ -111465,10 +111471,10 @@ pih cLf cLf cLf -dUc +bwC cLf cLf -dUc +bwC cLf cLf pkl @@ -111490,22 +111496,22 @@ mnS gOY iJZ lcd -ecM -eKT -nkM -vxZ -pZK -lfq -nkM -cxg -cxg +uwN +mEO +xbg +egj +fDI +pqX +xbg +kkx +kkx vxX nbu msY qNM fzM wVI -dUc +bwC rLK fMS jSu @@ -111722,10 +111728,10 @@ pih cLf cLf cLf -dUc +bwC cLf cLf -dUc +bwC rXt rXt rXt @@ -111749,13 +111755,13 @@ elG uXb cmn jgl -efL -cQu -wgI -vib -vMR -dUc -cxg +nUJ +lNx +ujW +dOt +hQR +bwC +kkx vxX nbu msY @@ -112006,13 +112012,13 @@ joD ffK cut rcR -efL -miM -awf -egV -vMR -dUc -cxg +nUJ +xgy +gmC +ift +hQR +bwC +kkx vxX nbu nbu @@ -112236,10 +112242,10 @@ pih cLf cLf cLf -dUc +bwC cLf cLf -dUc +bwC rXt rXt rXt @@ -112263,12 +112269,12 @@ kke wmM auA icz -efL -nbS -nbS -nbS -vMR -dUc +nUJ +pGt +pGt +pGt +hQR +bwC cLf vxX vxX @@ -112276,7 +112282,7 @@ vxX vxX vxX vxX -dUc +bwC wRN fdC uVP @@ -112493,10 +112499,10 @@ pih cLf cLf cLf -dUc +bwC cLf cLf -dUc +bwC cLf cLf pkl @@ -112520,20 +112526,20 @@ gOY gOY roK gOY -nkM -nkM -nkM -nkM -nkM -dUc +xbg +xbg +xbg +xbg +xbg +bwC cLf -dUc +bwC vxX vxX vxX vxX vxX -dUc +bwC fTX rLK hfp @@ -112750,10 +112756,10 @@ pih cLf cLf cLf -dUc +bwC cLf cLf -dUc +bwC cLf cLf cLf @@ -112782,26 +112788,26 @@ gXw gHL jGy moe -dUc +bwC cLf -dUc +bwC vxX vxX vxX vxX vxX vxX -dUc +bwC eTZ -dUc +bwC xLu rZB pLe -dUc +bwC lfG rZB pLe -dUc +bwC lfG aUx kUX @@ -112994,11 +113000,11 @@ cLf cLf cLf shs -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC pbP pih pbP @@ -113007,14 +113013,14 @@ pbP cLf cLf cLf -dUc +bwC fYe fYe wfz -dUc +bwC vxX -dUc -dUc +bwC +bwC ilp ilp ilp @@ -113039,13 +113045,13 @@ uEV rRO yai moe -dUc -dUc -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC +bwC +bwC vxX vxX nbu @@ -113253,12 +113259,12 @@ cLf shs cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -113296,13 +113302,13 @@ rxn rRO mIa moe -dUc +bwC cLf iUF cLf cLf cLf -dUc +bwC vxX vxX nbu @@ -113329,8 +113335,8 @@ kGZ vuh wmr bBr -dUc -dUc +bwC +bwC jnY alX kQF @@ -113510,12 +113516,12 @@ cLf shs shs cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -113553,13 +113559,13 @@ rxn rRO iNC moe -dUc +bwC cLf iUF cLf cLf cLf -dUc +bwC vxX vxX nbu @@ -113586,8 +113592,8 @@ nLd owL fpg bBr -dUc -dUc +bwC +bwC jnY alX nPW @@ -113771,13 +113777,13 @@ shs shs shs shs -dUc +bwC wfz -dUc +bwC shs shs shs -dUc +bwC vxX vxX vxX @@ -113810,13 +113816,13 @@ hmG gME xGg moe -dUc +bwC cLf iUF cLf cLf cLf -dUc +bwC vxX vxX nbu @@ -113843,7 +113849,7 @@ bBr kUX kUX kUX -dUc +bwC vxX uFC spr @@ -114067,13 +114073,13 @@ moe fDj fDj moe -dUc +bwC cLf iUF cLf cLf cLf -dUc +bwC vxX vxX nbu @@ -114092,11 +114098,11 @@ nbu vxX mUQ cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf vxX vxX @@ -114321,16 +114327,16 @@ fDj moe iyE moe -dUc -dUc -dUc +bwC +bwC +bwC nmN cLf iUF cLf cLf cLf -dUc +bwC cLf vxX vxX @@ -114349,18 +114355,18 @@ fYe fYe uVI cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf vxX vxX vxX vxX -dUc +bwC cLf mDV uFC @@ -114572,13 +114578,13 @@ etW cLf cLf cLf -dUc -dUc -dUc +bwC +bwC +bwC moe aub moe -dUc +bwC cLf cLf cLf @@ -114587,12 +114593,12 @@ iUF cLf cLf cLf -dUc +bwC cLf cLf vxX cLf -dUc +bwC vxX vxX vxX @@ -114606,18 +114612,18 @@ fYe vxX mUQ vxX -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf vxX vxX vxX -dUc +bwC cLf mDV uFC @@ -114821,22 +114827,22 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC iUF iUF cLf cLf cLf -dUc +bwC ojz -aHZ +eEX ojz -dUc -dUc +bwC +bwC iUF iUF iUF @@ -114844,12 +114850,12 @@ iUF cLf cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -114863,19 +114869,19 @@ vxX vxX vxX vxX -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf vxX vxX vxX vxX -dUc -dUc +bwC +bwC mDV uFC ivC @@ -114889,8 +114895,8 @@ ncv ncm uFC vxX -cxg -cxg +kkx +kkx xzT tgj tgj @@ -115087,7 +115093,7 @@ cLf iUF iUF iUF -dUc +bwC nmN dXU dXU @@ -115101,17 +115107,17 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -115120,11 +115126,11 @@ cLf cLf vxX vxX -dUc +bwC iUF iUF iUF -dUc +bwC vxX vxX vxX @@ -115148,10 +115154,10 @@ uFC vxX vxX vxX -cxg -cxg -cxg -cxg +kkx +kkx +kkx +kkx vxX vxX vxX @@ -115346,9 +115352,9 @@ cLf cLf cLf cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf @@ -115358,17 +115364,17 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -115390,7 +115396,7 @@ mUQ fYe cLf cLf -dUc +bwC uFC kEu kEu @@ -115402,7 +115408,7 @@ sIm sIm kEu uFC -vaU +kuk vxX vxX vxX @@ -115602,11 +115608,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -115615,17 +115621,17 @@ cLf cLf cLf cLf -dUc -dUc -dUc -dUc -dUc -dUc -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC +bwC +bwC +bwC +bwC +bwC +bwC cLf cLf cLf @@ -115858,13 +115864,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -115872,17 +115878,17 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -116115,13 +116121,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -116129,17 +116135,17 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -116373,11 +116379,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -116386,17 +116392,17 @@ cLf cLf cLf cLf -dUc -dUc +bwC +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc -dUc +bwC +bwC cLf cLf cLf @@ -116631,9 +116637,9 @@ cLf cLf cLf cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf @@ -116644,15 +116650,15 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -116887,11 +116893,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -116901,15 +116907,15 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -117143,13 +117149,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -117158,15 +117164,15 @@ cLf cLf cLf shs -dUc -dUc +bwC +bwC jQS jQS jQS jQS jQS -dUc -dUc +bwC +bwC shs cLf cLf @@ -117400,13 +117406,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -117415,7 +117421,7 @@ cLf cLf cLf shs -dUc +bwC cLf jQS lgO @@ -117423,9 +117429,9 @@ czY kOL jQS cLf -dUc +bwC shs -dUc +bwC cLf cLf cLf @@ -117658,11 +117664,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -117670,19 +117676,19 @@ shs shs shs shs -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC jQS pRN kOL sgc jQS -dUc -dUc +bwC +bwC cLf -dUc +bwC shs shs shs @@ -117916,9 +117922,9 @@ cLf cLf cLf cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf @@ -118172,15 +118178,15 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf -dUc +bwC cLf cLf cLf @@ -118200,8 +118206,8 @@ jQS uep qDP qDP -dUc -dUc +bwC +bwC cLf cLf cLf @@ -118428,37 +118434,37 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC jQS tLO jQS -sDq +jsr aJA -umA +kLQ beE asn hBF sAf jSV -fjb +bEY aJA -lny +hfX jQS ifV jQS qDP cLf -dUc +bwC cLf cLf cLf @@ -118685,17 +118691,17 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc -dUc -dUc -dUc -dUc +bwC +bwC +bwC +bwC +bwC jQS xnB jQS @@ -118943,11 +118949,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -119201,9 +119207,9 @@ cLf cLf cLf cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf @@ -119457,16 +119463,16 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf shs -dUc +bwC jQS hAL jQS @@ -119484,8 +119490,8 @@ tVV jQS ucG jQS -dUc -dUc +bwC +bwC shs cLf cLf @@ -119713,13 +119719,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf shs @@ -119970,13 +119976,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -120228,11 +120234,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -120246,7 +120252,7 @@ jQS ufD jQS tMz -krz +evA tMz jQS sOj @@ -120486,9 +120492,9 @@ cLf cLf cLf cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf @@ -120742,11 +120748,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -120998,13 +121004,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf fZF @@ -121255,13 +121261,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf fZF @@ -121285,7 +121291,7 @@ jQS jQS jQS fZF -dUc +bwC shs cLf cLf @@ -121513,11 +121519,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -121771,9 +121777,9 @@ cLf cLf cLf cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf @@ -121799,7 +121805,7 @@ wTs jQS jQS fZF -dUc +bwC shs cLf cLf @@ -122027,11 +122033,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -122283,15 +122289,15 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc -dUc -dUc +bwC +bwC +bwC fZF jQS jQS @@ -122540,15 +122546,15 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc -dUc -dUc +bwC +bwC +bwC fZF jQS jQS @@ -122557,11 +122563,11 @@ jQS jQS jQS jQS -gmm +dQJ pXV hNP pXV -uak +vns jQS jQS jQS @@ -122798,11 +122804,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -122813,20 +122819,20 @@ fZF fZF jQS jQS -xna -xna -fsV -bfX -xna -xna -xna +rxr +rxr +nMK +epy +rxr +rxr +rxr jQS jQS fZF fZF fZF fZF -dUc +bwC cLf cLf cLf @@ -123056,34 +123062,34 @@ cLf cLf cLf cLf -dUc +bwC cLf -dUc +bwC cLf cLf cLf cLf cLf cLf -dUc +bwC cLf fZF jQS jQS -eFJ -xna -xna -tBC -xna -xna -xna +dLd +rxr +rxr +nAt +rxr +rxr +rxr jQS jQS fZF tyd cLf -dUc -dUc +bwC +bwC cLf cLf cLf @@ -123312,28 +123318,28 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf cLf shs shs -dUc +bwC fZF jQS jQS -xna -xna -qEr -hFN -qEr -khJ -sug +rxr +rxr +pRb +jky +pRb +ehN +xcX jQS jQS fZF @@ -123568,13 +123574,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -123584,13 +123590,13 @@ cLf fZF jQS jQS -xna -xna -xna -xna -xna -xna -lHp +rxr +rxr +rxr +rxr +rxr +rxr +ygW jQS jQS fZF @@ -123825,13 +123831,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -123842,11 +123848,11 @@ fZF jQS jQS jQS -xna -oVV -dJM -jvV -xna +rxr +fOu +uIu +fQE +rxr jQS jQS jQS @@ -124083,11 +124089,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -124107,7 +124113,7 @@ jQS jQS jQS fZF -dUc +bwC cLf cLf cLf @@ -124341,9 +124347,9 @@ cLf cLf cLf cLf -dUc -dUc -dUc +bwC +bwC +bwC cLf cLf cLf @@ -124353,7 +124359,7 @@ cLf cLf cLf cLf -dUc +bwC fZF jQS jQS @@ -124364,7 +124370,7 @@ jQS jQS fZF cLf -dUc +bwC cLf cLf cLf @@ -124597,11 +124603,11 @@ cLf cLf cLf cLf -dUc -dUc +bwC +bwC nmN -dUc -dUc +bwC +bwC cLf cLf cLf @@ -124610,7 +124616,7 @@ cLf cLf cLf cLf -dUc +bwC cLf fZF fZF @@ -124621,7 +124627,7 @@ fZF fZF cLf cLf -dUc +bwC cLf cLf cLf @@ -124854,11 +124860,11 @@ cLf cLf cLf cLf -dUc +bwC xUA uuN oJv -dUc +bwC cLf cLf cLf @@ -124867,18 +124873,18 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -125111,11 +125117,11 @@ cLf cLf cLf cLf -dUc -dUc +bwC +bwC nmN -dUc -dUc +bwC +bwC cLf cLf cLf @@ -125124,18 +125130,18 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -125369,9 +125375,9 @@ cLf cLf cLf cLf -dUc -dUc -dUc +bwC +bwC +bwC cLf cLf cLf @@ -125384,11 +125390,11 @@ shs shs cLf cLf -dUc +bwC cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -125625,11 +125631,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -125881,13 +125887,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -126138,13 +126144,13 @@ cLf cLf cLf cLf -dUc +bwC cLf cLf cLf cLf cLf -dUc +bwC cLf cLf cLf @@ -126396,11 +126402,11 @@ cLf cLf cLf nmN -dUc -dUc +bwC +bwC cLf -dUc -dUc +bwC +bwC nmN cLf cLf @@ -126654,9 +126660,9 @@ cLf cLf cLf cLf -dUc -dUc -dUc +bwC +bwC +bwC cLf cLf cLf @@ -145904,7 +145910,7 @@ hhX hhX hhX hen -fOe +gEp hen hen hen @@ -147730,7 +147736,7 @@ bBo iaN fON jds -gTF +bzx sdc sdc rWv @@ -147749,7 +147755,7 @@ mUi fpx rDE uIx -dCv +fkG fxF fxF wOU @@ -148006,7 +148012,7 @@ mUi rxK tCm lwu -tMu +xwG fxF fxF wOU @@ -148277,7 +148283,7 @@ dhj xmy sZH pWr -pNW +wEj ahq kuI sKt @@ -149546,7 +149552,7 @@ gli gli wEd wOU -ntd +rQy pZj wOU vxX @@ -151341,7 +151347,7 @@ sdc rDa ljk jTa -iII +him vOu dDm xeA @@ -153394,7 +153400,7 @@ oMn ocJ brc ofc -qUz +jnL hhU xCI gYW @@ -154926,7 +154932,7 @@ vxX gYW dum hdN -bpN +aPM hdN gYW ucb @@ -155958,7 +155964,7 @@ mMN jVk jVk fuk -tFf +wos xiM hVN aLN @@ -156202,10 +156208,10 @@ vxX vxX unk unk -cxg -cxg -cxg -cxg +kkx +kkx +kkx +kkx unk unk vxX @@ -156458,12 +156464,12 @@ vxX vxX vxX unk -cxg -cxg -cxg +kkx +kkx +kkx nQT -cxg -cxg +kkx +kkx unk jCD jCD @@ -156501,7 +156507,7 @@ sxV sxV hrI leZ -qgy +rRP uXD uXD uXD @@ -156715,12 +156721,12 @@ dsG vxX vxX unk -cxg +kkx joM joM joM joM -cxg +kkx eOx wMY apb @@ -156972,12 +156978,12 @@ dsG dsG dsG any -cxg +kkx joM joM joM joM -cxg +kkx eOx fFt cTH @@ -157229,12 +157235,12 @@ fYe fYe fYe unk -cxg -cxg -cxg -cxg -cxg -cxg +kkx +kkx +kkx +kkx +kkx +kkx unk jCD jCD @@ -157487,10 +157493,10 @@ fYe fYe unk unk -cxg -cxg -cxg -cxg +kkx +kkx +kkx +kkx unk unk vxX @@ -157522,7 +157528,7 @@ oKx oKx dzu oKx -fuZ +jsX mCn cUv nsY @@ -166967,7 +166973,7 @@ oID hhX hhX hhX -cxg +kkx srs bFS bFS @@ -167223,7 +167229,7 @@ hhX oID jVV jVV -cxg +kkx pvT srs upF @@ -167480,8 +167486,8 @@ hhX oID hhX hhX -cxg -cxg +kkx +kkx srs mCt riQ @@ -167738,7 +167744,7 @@ oID hhX hhX hhX -cxg +kkx srs riQ bNI @@ -169022,7 +169028,7 @@ hhX oID hhX hhX -cxg +kkx mQE mQE gwF @@ -169278,8 +169284,8 @@ hhX hhX hhX hhX -cxg -cxg +kkx +kkx vxX imZ mQE @@ -169349,7 +169355,7 @@ mCN xAy cLf hhX -ifd +uEn bkk eng msi @@ -169535,7 +169541,7 @@ hhX hhX hhX hhX -cxg +kkx pvT vxX vxX @@ -169606,7 +169612,7 @@ gVC xAy cLf hhX -ifd +uEn bkk qwG msi @@ -169863,7 +169869,7 @@ sWT bdC fSP tPb -vgW +pKn uJV qwG eeB @@ -170120,7 +170126,7 @@ pbY xAy cLf hhX -ifd +uEn bkk oJU eeB @@ -170377,7 +170383,7 @@ rCv xAy cLf hhX -ifd +uEn bkk qwG eeB @@ -171339,7 +171345,7 @@ uVI pFE kWb kWb -xWR +vVc qDl qDl kdR @@ -171349,7 +171355,7 @@ kWb mjq qDl qDl -aKU +xRu kWb kWb vxX @@ -172380,7 +172386,7 @@ kWb kWb kWb kWb -rqC +sJz hhX hhX hhX @@ -172481,8 +172487,8 @@ qzZ qzZ igG mtH -qjk -dLY +jXv +aDF uJc mml mml @@ -172648,7 +172654,7 @@ fYe lJq raz lAc -irf +bPx tsy jCT rin @@ -172731,7 +172737,7 @@ jdd hhX hhX hhX -dLY +aDF hhX hhX hhX @@ -173244,9 +173250,9 @@ vxX jVV pnS hhX -ebN +dAn hhX -pAK +eNk hhX vUj mml @@ -173400,7 +173406,7 @@ vxX hhX hhX jVV -nQm +iEq jVV hhX hhX @@ -197175,8 +197181,8 @@ hhX hhX hhX hhX -cxg -cxg +kkx +kkx hhX hhX hhX @@ -197431,10 +197437,10 @@ hhX hhX hhX hhX -cxg -cKD -wSj -cxg +kkx +fcC +unZ +kkx hhX hhX hhX @@ -197687,11 +197693,11 @@ hhX hhX hhX hhX -cxg -wSj -pwU -wSj -wSj +kkx +unZ +gFe +unZ +unZ hhX hhX hhX @@ -197944,10 +197950,10 @@ hhX hhX hhX hhX -cxg -wSj -wSj -wSj +kkx +unZ +unZ +unZ hhX hhX hhX diff --git a/_maps/virtual_domains/README.md b/_maps/virtual_domains/README.md index 6e9abc6556825..f0a8a1ebfd216 100644 --- a/_maps/virtual_domains/README.md +++ b/_maps/virtual_domains/README.md @@ -1,11 +1,12 @@ # Making new virtual domains ## REQUIRED: -1. One way that the encrypted cache can spawn. This can be from a mob drop, a landmark (place a few, it'll pick one), or a signable landmark if you have a points system. +1. One way that the encrypted cache can spawn. This can be from a mob drop, a landmark (place a few, it'll pick one), or a signal landmark if you have a points system. 2. Place a virtual domain baseturf helper in each area. 3. If you're using modular safehouses, ensure that the map has ONE tile marked with the safehouse modular map loader (and set the KEY). it will need an open 7x6 area. 4. Placing a safehouse area is redundant, but it will ensure there is power in the starting safehouse. 5. Create the dm file that defines the map qualities. You can use the existing ones as a template. +6. Place a virtual domain baseturf helper in each area. ## Converting an existing map 1. Create a new map using the existing map's size - give yourself enough room to enclose it with a binary wall. There's no need for any space outside of it, so ensure that it fits and is enclosed, nothing outside of this. @@ -18,7 +19,7 @@ You shouldn't need to fully enclose your map in 15 tiles of binary filler. Using For areas, ideally just one on the map and one for the safehouse. Vdoms should never last so long as to need individual area power and atmos unless you're specifically going for a gimmick. -Use modular mob segments! Use modular map segments! Add some variety to your maps! Just make sure you've set your map to have "is_modular" afterwards. +Make it modular: Add modular map and mob segments! It adds variety. Just make sure you've set your map to have "is_modular" afterwards. Adding some open tile padding around the safehouse is a good touch. About 7 tiles West/East for the visual effect of a larger map. diff --git a/_maps/virtual_domains/island_brawl.dmm b/_maps/virtual_domains/island_brawl.dmm new file mode 100644 index 0000000000000..2c8a12c6c5793 --- /dev/null +++ b/_maps/virtual_domains/island_brawl.dmm @@ -0,0 +1,12259 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"al" = ( +/obj/structure/flora/coconuts{ + pixel_x = -5; + pixel_y = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"as" = ( +/obj/structure/flora/tree/palm/style_2{ + pixel_y = 6 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"aw" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"aA" = ( +/obj/structure/chair/stool/bamboo{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"aD" = ( +/obj/item/storage/medkit/regular{ + pixel_y = 15; + pixel_x = -2 + }, +/obj/structure/table/glass, +/obj/item/emergency_bed{ + pixel_y = 6 + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"aE" = ( +/obj/structure/chair/stool/directional/south, +/turf/open/floor/iron/freezer, +/area/virtual_domain) +"aQ" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/under/costume/sailor, +/turf/open/floor/wood, +/area/virtual_domain) +"aY" = ( +/obj/structure/table/wood, +/obj/item/tape{ + pixel_y = 7; + pixel_x = 11 + }, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = -7; + pixel_y = 12 + }, +/obj/effect/spawner/random/bureaucracy/pen{ + pixel_x = -3; + pixel_y = -2 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"aZ" = ( +/obj/structure/table/wood, +/obj/item/food/grown/watermelon{ + pixel_y = 8; + pixel_x = 6 + }, +/obj/item/food/watermelonslice, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ba" = ( +/obj/effect/landmark/bitrunning/curiosity_spawn, +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain) +"bb" = ( +/obj/item/circular_saw{ + pixel_y = 4 + }, +/obj/item/scalpel{ + pixel_y = 15 + }, +/obj/structure/table/glass, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"bp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/turf_decal/tile/dark/half{ + pixel_y = -1; + pixel_x = 5; + dir = 8 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"bx" = ( +/obj/machinery/defibrillator_mount/directional/west, +/obj/structure/bed/pod{ + desc = "An old medical bed, just waiting for replacement with something up to date."; + dir = 4; + name = "medical bed" + }, +/obj/machinery/iv_drip{ + pixel_y = 21; + pixel_x = -4 + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"bD" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/item/reagent_containers/cup/soda_cans/melon_soda{ + pixel_y = 13; + pixel_x = -9 + }, +/obj/item/fishing_rod{ + pixel_x = 8; + pixel_y = -6 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"bE" = ( +/turf/open/floor/wood, +/area/virtual_domain) +"bK" = ( +/turf/open/floor/wood/parquet, +/area/virtual_domain/fullbright) +"bT" = ( +/obj/item/cigbutt{ + pixel_y = -4; + pixel_x = 2 + }, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"bX" = ( +/obj/effect/turf_decal/sand/plating, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"bY" = ( +/turf/open/misc/beach/coast{ + dir = 4 + }, +/area/virtual_domain/fullbright) +"cc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/vending/cigarette/beach, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"ce" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/virtual_domain) +"cg" = ( +/obj/machinery/medical_kiosk, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ch" = ( +/obj/machinery/recharge_station, +/obj/machinery/light/directional/east, +/turf/open/floor/carpet/cyan, +/area/virtual_domain) +"cp" = ( +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_x = -8; + pixel_y = -6 + }, +/obj/item/reagent_containers/cup/soda_cans/space_mountain_wind{ + pixel_x = 15 + }, +/obj/structure/fluff/beach_umbrella/science, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"cr" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/button/door/directional/north{ + id = "beach_room_9"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/item/claymore/cutlass{ + desc = "A piratey, foam sword used by kids to train themselves in the business of \"negotiating\" the transfer of treasure."; + force = 0; + name = "foam cutlass"; + throwforce = 0 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"ct" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"cB" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/under/costume/pirate, +/turf/open/floor/wood, +/area/virtual_domain) +"cC" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/virtual_domain) +"cE" = ( +/turf/open/misc/beach/coast, +/area/virtual_domain/fullbright) +"cH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/wood{ + name = "Room 7"; + id_tag = "beach_room_7" + }, +/turf/open/floor/wood, +/area/virtual_domain) +"cK" = ( +/obj/item/reagent_containers/cup/glass/bottle/wine{ + pixel_y = 16; + pixel_x = -5 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_y = 3; + pixel_x = -8 + }, +/obj/structure/table/bronze, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_y = 10; + pixel_x = 6 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"cO" = ( +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"cW" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/carpet/cyan, +/area/virtual_domain) +"db" = ( +/obj/machinery/door/airlock/wood{ + name = "Room 11"; + id_tag = "beach_room_11" + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/virtual_domain) +"de" = ( +/obj/effect/turf_decal/sand, +/mob/living/basic/crab, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"dj" = ( +/obj/machinery/door/airlock/wood/glass{ + name = "Hotel's Facilities" + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"dl" = ( +/obj/structure/table/bronze, +/obj/item/reagent_containers/condiment/bbqsauce{ + pixel_y = 13; + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/hotsauce{ + pixel_y = 9; + pixel_x = -3 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"dp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"du" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark/half{ + pixel_y = -1; + pixel_x = 5; + dir = 8 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"dv" = ( +/obj/structure/table, +/obj/item/wrench{ + pixel_y = 4 + }, +/obj/item/storage/toolbox/emergency, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/iron/dark/herringbone, +/area/virtual_domain) +"dA" = ( +/obj/structure/table/bronze, +/obj/item/paper_bin/carbon{ + pixel_y = 8 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"dB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/eighties, +/area/virtual_domain) +"dD" = ( +/obj/item/trash/can{ + pixel_y = -9; + pixel_x = 10 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"dG" = ( +/obj/effect/turf_decal/siding/blue, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"dH" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/wood, +/area/virtual_domain) +"dS" = ( +/obj/structure/table/bronze, +/obj/structure/sign/poster/random/directional/east, +/obj/item/table_clock{ + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"dW" = ( +/obj/structure/railing/corner/end/flip{ + dir = 1 + }, +/obj/machinery/door/airlock/wood{ + name = "Balcony"; + id_tag = "beach_room_x" + }, +/turf/open/floor/wood, +/area/virtual_domain) +"dX" = ( +/obj/item/toy/seashell{ + pixel_y = -5 + }, +/turf/open/misc/beach/coast, +/area/virtual_domain/fullbright) +"dY" = ( +/obj/structure/table/wood/poker, +/obj/item/stack/spacecash/c100{ + pixel_y = 5 + }, +/obj/item/toy/cards/deck{ + pixel_y = 13; + pixel_x = -5 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"ee" = ( +/obj/structure/table/reinforced, +/obj/item/defibrillator/loaded{ + pixel_y = 7 + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"ef" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"eh" = ( +/obj/structure/table/wood/fancy, +/obj/effect/turf_decal/tile/dark_red/full, +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_x = -13; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_x = 7; + pixel_y = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/virtual_domain/fullbright) +"en" = ( +/turf/open/floor/eighties, +/area/virtual_domain) +"ev" = ( +/obj/structure/mineral_door/sandstone{ + name = "Sandcastle" + }, +/obj/effect/turf_decal/sand/plating, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ew" = ( +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/landmark/bitrunning/loot_signal, +/turf/open/indestructible/binary, +/area/virtual_domain/protected_space/fullbright) +"eH" = ( +/turf/open/misc/beach/coast{ + dir = 9 + }, +/area/virtual_domain/fullbright) +"eJ" = ( +/obj/structure/table/bronze, +/obj/item/camera{ + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"eK" = ( +/turf/closed/wall/mineral/wood, +/area/virtual_domain/fullbright) +"eM" = ( +/obj/item/trash/can{ + pixel_y = -5; + pixel_x = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"eO" = ( +/obj/structure/table/bronze, +/obj/item/camera{ + pixel_y = 8; + pixel_x = -3 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"eP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/food_cart, +/turf/open/floor/plating, +/area/virtual_domain) +"fe" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark/half{ + pixel_y = -2; + pixel_x = 5; + dir = 8 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"fg" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/wall/mineral/wood, +/area/virtual_domain) +"fv" = ( +/obj/item/toy/seashell{ + pixel_x = 12; + pixel_y = -9 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"fH" = ( +/obj/structure/table/bronze, +/obj/item/camera{ + pixel_y = 8; + pixel_x = 6 + }, +/obj/item/pen/blue{ + pixel_x = -11; + pixel_y = 2 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"fI" = ( +/turf/open/misc/beach/sand, +/area/virtual_domain/protected_space/fullbright) +"fJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/water/beach, +/area/virtual_domain) +"fL" = ( +/obj/machinery/computer/order_console/cook, +/turf/open/floor/wood/large, +/area/virtual_domain) +"fY" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/binoculars{ + pixel_y = 20 + }, +/obj/item/megaphone{ + pixel_y = 2; + pixel_x = 1 + }, +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"gc" = ( +/obj/structure/table/bronze, +/obj/item/pai_card{ + desc = "A real Nanotrasen success, these personal AIs provide all of the companionship of an AI without any law related red-tape."; + name = "\improper Nanotrasen-brand personal AI device exhibit"; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"gf" = ( +/obj/machinery/button/door/directional/south{ + id = "beach_room_5"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"gi" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/item/stack/arcadeticket{ + pixel_y = 12; + pixel_x = -16 + }, +/turf/open/floor/eighties, +/area/virtual_domain) +"gs" = ( +/obj/structure/closet/crate, +/obj/item/clothing/suit/hooded/carp_costume, +/obj/item/clothing/head/hooded/carp_hood, +/obj/item/toy/plush/carpplushie, +/obj/item/toy/plush/shark, +/turf/open/floor/eighties, +/area/virtual_domain) +"gw" = ( +/turf/open/floor/carpet/cyan, +/area/virtual_domain) +"gA" = ( +/obj/effect/turf_decal/sand{ + density = 1 + }, +/obj/effect/decal/fakelattice, +/turf/open/floor/pod/light{ + density = 1 + }, +/area/virtual_domain/fullbright) +"gB" = ( +/obj/effect/landmark/bitrunning/curiosity_spawn, +/turf/open/floor/plastic, +/area/virtual_domain) +"gC" = ( +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/structure/fluff/beach_umbrella/syndi, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"gH" = ( +/obj/structure/tank_holder/extinguisher, +/turf/open/floor/wood/large, +/area/virtual_domain) +"gI" = ( +/obj/item/storage/toolbox/fishing{ + pixel_x = 2; + pixel_y = -13 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"gK" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/hos/double{ + name = "bedsheet"; + desc = "A bedsheet from the beach hotel." + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"gL" = ( +/turf/open/misc/beach/coast/corner, +/area/virtual_domain/fullbright) +"gN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"gP" = ( +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"gV" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 25 + }, +/obj/structure/flora/coconuts{ + pixel_x = -7; + pixel_y = 7 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"hh" = ( +/obj/effect/turf_decal/sand/plating, +/obj/item/shovel{ + pixel_y = 15; + pixel_x = -8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ho" = ( +/obj/structure/chair/stool/bar/directional/west, +/turf/open/floor/wood/large, +/area/virtual_domain) +"hu" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/beach/sand, +/area/virtual_domain/protected_space/fullbright) +"hA" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/fullupgrade{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"hB" = ( +/obj/item/reagent_containers/cup/soda_cans/lemon_lime{ + pixel_x = -12 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"hD" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/button/door/directional/south{ + id = "BeachGarage" + }, +/turf/open/floor/iron/dark/herringbone, +/area/virtual_domain) +"hM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/button/door/directional/south{ + id = "BeachBoats" + }, +/obj/effect/landmark/bitrunning/curiosity_spawn, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"hT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/power/smes/full, +/turf/open/floor/plating, +/area/virtual_domain) +"hZ" = ( +/obj/structure/table/bronze, +/obj/item/storage/bag/tray, +/turf/open/floor/wood/large, +/area/virtual_domain) +"ii" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ij" = ( +/turf/open/misc/beach/coast{ + dir = 10 + }, +/area/virtual_domain/fullbright) +"ik" = ( +/obj/structure/dresser, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/wood, +/area/virtual_domain) +"il" = ( +/obj/structure/chair/plastic, +/obj/item/fishing_rod{ + pixel_x = 11; + pixel_y = -8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"io" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/item/kirbyplants/organic/plant8{ + pixel_y = 9; + pixel_x = 6 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"iy" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/chair/stool/directional/south, +/obj/item/clothing/glasses/sunglasses{ + pixel_y = -2; + pixel_x = 2 + }, +/obj/item/bikehorn/airhorn{ + pixel_y = -15; + pixel_x = -13 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"iF" = ( +/obj/structure/table/bronze, +/obj/structure/desk_bell{ + pixel_x = -11; + pixel_y = 9 + }, +/obj/item/phone{ + pixel_y = 9; + pixel_x = 8 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"iP" = ( +/obj/structure/chair/plastic, +/obj/item/clothing/head/collectable/paper{ + desc = "What looks like an ordinary paper hat is actually a rare and valuable collector's edition paper hat. Keep away from fire, Curators, and ocean waves."; + pixel_y = -4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"iQ" = ( +/obj/machinery/button/door/directional/north{ + id = "beach_room_3"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"iU" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"iY" = ( +/obj/item/storage/bag/tray, +/obj/item/food/grown/watermelon{ + pixel_y = 4; + pixel_x = -1 + }, +/obj/effect/turf_decal/stripes/red/box, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"jb" = ( +/obj/structure/tank_holder/extinguisher{ + pixel_y = 11 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"jm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/obj/effect/landmark/bitrunning/curiosity_spawn, +/turf/open/floor/plating, +/area/virtual_domain) +"jn" = ( +/obj/item/cigbutt{ + pixel_y = -6; + pixel_x = -12 + }, +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"jp" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/neck/necklace/dope, +/obj/item/clothing/suit/jacket/letterman, +/turf/open/floor/wood, +/area/virtual_domain) +"jq" = ( +/obj/structure/musician/piano, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"jr" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 10; + pixel_x = 7 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"jw" = ( +/obj/machinery/space_heater, +/obj/structure/sign/clock/directional/north, +/turf/open/floor/wood, +/area/virtual_domain) +"jK" = ( +/obj/machinery/reagentgrinder{ + pixel_y = 15; + pixel_x = -1 + }, +/obj/structure/table/bronze, +/obj/structure/desk_bell{ + pixel_x = 12; + pixel_y = 3 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"jL" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"jP" = ( +/turf/open/indestructible/binary, +/area/virtual_domain/protected_space/fullbright) +"jV" = ( +/turf/open/floor/iron/dark/herringbone, +/area/virtual_domain) +"jW" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/floor/wood/large, +/area/virtual_domain) +"ka" = ( +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ke" = ( +/obj/vehicle/ridden/atv{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/virtual_domain) +"ky" = ( +/obj/machinery/vending/snack, +/obj/effect/turf_decal/sand, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"kD" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"kI" = ( +/obj/effect/turf_decal/sand, +/turf/closed/wall/mineral/wood, +/area/virtual_domain) +"kJ" = ( +/obj/machinery/shower/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain/fullbright) +"kL" = ( +/obj/structure/billboard/space_cola, +/obj/effect/turf_decal/siding/dark_red, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"kN" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"lc" = ( +/obj/machinery/space_heater, +/obj/machinery/button/door/directional/north{ + id = "beach_room_2"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"lh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/toolbox/mechanical/old, +/turf/open/floor/plating, +/area/virtual_domain) +"lk" = ( +/obj/effect/turf_decal/siding/dark_red/corner, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"lx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/virtual_domain/fullbright) +"lz" = ( +/obj/effect/turf_decal/siding/blue/corner{ + dir = 1 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"lA" = ( +/obj/machinery/shower/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"lF" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/o2{ + pixel_y = 17; + pixel_x = -1 + }, +/obj/item/storage/medkit/brute{ + pixel_y = 23; + pixel_x = -1 + }, +/obj/item/food/lollipop{ + pixel_y = 8; + pixel_x = 12 + }, +/obj/item/food/lollipop{ + pixel_y = 5; + pixel_x = 12 + }, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = -9; + pixel_y = 9 + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"lG" = ( +/obj/item/toy/seashell{ + pixel_y = 11; + pixel_x = -7 + }, +/turf/open/misc/beach/coast, +/area/virtual_domain/fullbright) +"lI" = ( +/obj/structure/table/wood/poker, +/turf/open/floor/wood/large, +/area/virtual_domain) +"lJ" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_y = 7 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"lP" = ( +/obj/structure/chair, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"lS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"lU" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Temporary Holding Cell" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain) +"lW" = ( +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"mi" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 24 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"mv" = ( +/obj/effect/turf_decal/siding/dark_red{ + dir = 1 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"mx" = ( +/obj/machinery/door/airlock/wood{ + name = "Arcade" + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"mJ" = ( +/obj/structure/flora/tree/palm/style_2{ + pixel_y = 25 + }, +/obj/item/stack/sheet/mineral/sandstone/thirty{ + pixel_y = -10; + pixel_x = -5 + }, +/obj/item/stack/sheet/mineral/sandstone/thirty{ + pixel_y = -2; + pixel_x = 9 + }, +/obj/item/stack/sheet/mineral/sandstone/thirty{ + pixel_y = -4; + pixel_x = 1 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"mL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock/wood{ + name = "Tropical Kitchen" + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"mP" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/item/reagent_containers/cup/soda_cans/starkist{ + pixel_y = 10; + pixel_x = -17 + }, +/obj/item/fishing_rod{ + pixel_x = -13; + pixel_y = 2 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"mV" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"mW" = ( +/obj/effect/turf_decal/siding/blue/corner{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"nc" = ( +/turf/open/misc/beach/coast/corner{ + dir = 1 + }, +/area/virtual_domain/fullbright) +"nk" = ( +/obj/machinery/door/airlock/wood{ + name = "Balcony"; + id_tag = "beach_room_x" + }, +/obj/structure/railing/corner/end/flip{ + dir = 1 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"nR" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 6 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"nX" = ( +/obj/structure/table/wood, +/obj/item/melee/baseball_bat{ + pixel_y = 3; + pixel_x = 6 + }, +/obj/item/clothing/glasses/blindfold/white{ + pixel_y = 7; + pixel_x = -5 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"oa" = ( +/turf/open/misc/beach/coast{ + dir = 1 + }, +/area/virtual_domain/fullbright) +"ob" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"og" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/water/beach, +/area/virtual_domain) +"oq" = ( +/obj/structure/table/wood, +/obj/item/food/grown/watermelon{ + pixel_y = 13; + pixel_x = 6 + }, +/obj/item/food/grown/watermelon{ + pixel_y = 8; + pixel_x = -4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"os" = ( +/obj/structure/flora/tree/palm/style_2{ + pixel_y = 12; + pixel_x = -7 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ot" = ( +/turf/template_noop, +/area/template_noop) +"ow" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/wood/large, +/area/virtual_domain) +"oC" = ( +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_x = -8; + pixel_y = 13 + }, +/turf/open/floor/carpet/blue, +/area/virtual_domain/fullbright) +"oE" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/glasses/heat, +/obj/item/clothing/head/cowboy/brown, +/turf/open/floor/wood, +/area/virtual_domain) +"oJ" = ( +/obj/item/flashlight/flare/torch{ + pixel_x = -11; + pixel_y = -6 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"oQ" = ( +/obj/structure/table/bronze, +/obj/item/pai_card{ + desc = "A real Nanotrasen success, these personal AIs provide all of the companionship of an AI without any law related red-tape."; + name = "\improper Nanotrasen-brand personal AI device exhibit"; + pixel_y = 2 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"oX" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) +"oZ" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"pj" = ( +/obj/structure/table/bronze, +/obj/item/camera{ + pixel_y = 12; + pixel_x = -10 + }, +/obj/item/camera{ + pixel_y = 4; + pixel_x = 1 + }, +/obj/item/camera_film{ + pixel_y = -11; + pixel_x = -10 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"pq" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/suit/jacket/letterman_syndie, +/turf/open/floor/wood, +/area/virtual_domain) +"pv" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/wood/large, +/area/virtual_domain) +"py" = ( +/turf/open/floor/iron/stairs, +/area/virtual_domain/fullbright) +"pz" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/under/costume/lobster, +/obj/item/clothing/head/costume/lobsterhat, +/turf/open/floor/wood, +/area/virtual_domain) +"pC" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"pE" = ( +/obj/machinery/door/airlock/wood/glass{ + name = "Rooms" + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"pJ" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/suit/jacket/letterman_red, +/turf/open/floor/wood, +/area/virtual_domain) +"pV" = ( +/obj/item/stack/arcadeticket{ + pixel_y = 5; + pixel_x = 13 + }, +/turf/open/floor/eighties, +/area/virtual_domain) +"pX" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"qa" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"qb" = ( +/obj/machinery/button/door/directional/west{ + id = "beach_room_1"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"qc" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/vending/clothing, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"qB" = ( +/obj/item/toy/seashell{ + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"qH" = ( +/obj/structure/bed/medical/emergency, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"qR" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/item/cigbutt{ + pixel_y = -6; + pixel_x = -12 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"qZ" = ( +/obj/effect/turf_decal/siding/dark_red/corner{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ra" = ( +/obj/item/stack/sheet/mineral/sandstone{ + pixel_x = 11 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"rj" = ( +/obj/machinery/grill, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"rl" = ( +/obj/structure/rack, +/obj/item/melee/skateboard/hoverboard{ + pixel_x = -7 + }, +/obj/item/melee/skateboard/hoverboard, +/obj/item/melee/skateboard/hoverboard{ + pixel_x = 7 + }, +/turf/open/misc/beach/coast/corner{ + dir = 4 + }, +/area/virtual_domain/fullbright) +"rn" = ( +/obj/machinery/computer/operating{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"ro" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"rw" = ( +/obj/structure/table/bronze, +/obj/machinery/button/door/directional/south{ + id = "beach_room_4"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/item/storage/toolbox/fishing{ + pixel_y = 2 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"rz" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"rB" = ( +/obj/item/toy/seashell{ + pixel_x = -10; + pixel_y = -4 + }, +/obj/structure/fluff/beach_umbrella, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"rD" = ( +/obj/structure/flora/coconuts, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"rE" = ( +/obj/structure/table/bronze, +/obj/machinery/button/door/directional/south{ + id = "beach_room_11"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/item/storage/toolbox/fishing{ + pixel_y = 2 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"rG" = ( +/obj/machinery/telecomms/allinone, +/obj/item/wirecutters{ + pixel_y = 9 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"rI" = ( +/obj/machinery/door/airlock/wood{ + name = "Room 12"; + id_tag = "beach_room_12" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"rK" = ( +/obj/machinery/vending/cigarette/beach, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"rQ" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 7; + pixel_x = 9 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"rR" = ( +/obj/structure/table/bronze, +/turf/open/floor/wood/large, +/area/virtual_domain) +"rW" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"sa" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/door/airlock/wood{ + name = "Bathroom"; + id_tag = "toilet3beach" + }, +/turf/open/floor/iron/white, +/area/virtual_domain) +"sh" = ( +/obj/structure/statue/sandstone/venus{ + pixel_y = 9; + dir = 1; + anchored = 1 + }, +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/floor/grass, +/area/virtual_domain) +"si" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = 9; + pixel_y = 5 + }, +/obj/item/food/seaweedsheet{ + pixel_y = 6; + pixel_x = -4 + }, +/obj/item/food/seaweedsheet{ + pixel_x = -15; + pixel_y = 2 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"sl" = ( +/obj/effect/turf_decal/sand/plating, +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_y = 17; + pixel_x = -6 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"st" = ( +/obj/structure/table/bronze, +/obj/structure/sign/poster/random/directional/east, +/obj/machinery/button/door/directional/south{ + id = "beach_room_8"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/item/camera{ + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"sz" = ( +/obj/item/toy/seashell, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"sC" = ( +/obj/item/reagent_containers/cup/soda_cans/space_mountain_wind, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"sI" = ( +/obj/structure/table/bronze, +/obj/item/clothing/suit/costume/hawaiian{ + pixel_y = 2; + pixel_x = 5 + }, +/obj/item/clothing/suit/costume/hawaiian{ + pixel_y = 6; + pixel_x = -4 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain/fullbright) +"sO" = ( +/obj/structure/fluff/beach_umbrella/syndi, +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_x = -8; + pixel_y = -6 + }, +/obj/item/reagent_containers/cup/soda_cans/thirteenloko{ + pixel_x = 15; + pixel_y = -11 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"sR" = ( +/obj/structure/flora/tree/palm/style_2{ + pixel_y = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"sV" = ( +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_y = 14; + pixel_x = -8 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"sW" = ( +/obj/machinery/door/airlock/wood{ + name = "Room 5"; + id_tag = "beach_room_5" + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/virtual_domain) +"ta" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"tf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/lights/mixed{ + pixel_x = -4; + pixel_y = 18 + }, +/obj/item/storage/box/lights/mixed{ + pixel_x = 6; + pixel_y = 12 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = -7; + pixel_y = 12 + }, +/obj/structure/table, +/obj/item/reagent_containers/cup/bucket{ + pixel_x = 10; + pixel_y = 4 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"th" = ( +/obj/structure/flora/tree/palm, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"tk" = ( +/turf/open/misc/beach/coast/corner{ + dir = 4 + }, +/area/virtual_domain/fullbright) +"tw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"ty" = ( +/obj/item/trash/boritos/purple{ + pixel_y = -16; + pixel_x = -5 + }, +/turf/open/floor/eighties, +/area/virtual_domain) +"tI" = ( +/obj/structure/sign/departments/custodian/directional/north{ + pixel_x = -32 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"tM" = ( +/obj/structure/table/wood, +/obj/item/book/manual/chef_recipes{ + pixel_x = 2; + pixel_y = 6 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"tQ" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"tW" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"tX" = ( +/obj/structure/table/bronze, +/obj/item/reagent_containers/condiment/ketchup{ + pixel_y = 14; + pixel_x = 1 + }, +/obj/item/reagent_containers/condiment/mayonnaise{ + pixel_y = 8; + pixel_x = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/wood/large, +/area/virtual_domain) +"up" = ( +/obj/item/storage/box/syringes{ + pixel_y = 14; + pixel_x = -5 + }, +/obj/item/clothing/neck/stethoscope{ + pixel_y = 3; + pixel_x = 4 + }, +/obj/structure/table/glass, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"ut" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"uu" = ( +/turf/open/floor/iron/freezer, +/area/virtual_domain) +"uz" = ( +/obj/effect/turf_decal/siding/dark_red/corner{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"uC" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 14 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"uD" = ( +/obj/structure/table/wood, +/obj/item/food/seaweedsheet, +/obj/item/kitchen/rollingpin{ + pixel_x = -12; + pixel_y = 3 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"uH" = ( +/obj/structure/bonfire, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"uI" = ( +/obj/structure/bed, +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain) +"uX" = ( +/obj/effect/turf_decal/siding/dark_red{ + dir = 4 + }, +/obj/item/trash/can{ + pixel_y = -9; + pixel_x = 10 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"uY" = ( +/turf/open/floor/carpet, +/area/virtual_domain) +"vx" = ( +/obj/structure/table/glass, +/obj/item/storage/box/coffeepack{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/box/donkpockets{ + pixel_y = 10; + pixel_x = 11 + }, +/obj/item/storage/fancy/donut_box{ + pixel_y = 18; + pixel_x = -11 + }, +/obj/item/food/donut/berry{ + pixel_y = 5; + pixel_x = -6 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"vF" = ( +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"vM" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"vU" = ( +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo" + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"wb" = ( +/turf/open/misc/beach/coast{ + dir = 5 + }, +/area/virtual_domain/fullbright) +"wf" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 10 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ww" = ( +/obj/structure/chair/stool/directional/south{ + dir = 8 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"wx" = ( +/obj/structure/closet/crate/bin, +/obj/structure/sign/clock/directional/north, +/turf/open/floor/wood, +/area/virtual_domain) +"wz" = ( +/obj/structure/rack, +/obj/item/mop, +/obj/item/extinguisher, +/turf/open/floor/wood/large, +/area/virtual_domain) +"wC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/reagent_dispensers/fueltank/large, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"wH" = ( +/obj/structure/table/wood/fancy, +/obj/effect/turf_decal/tile/dark_red/full, +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_x = -5; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_y = 13; + pixel_x = 6 + }, +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_y = 10 + }, +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_y = 6; + pixel_x = 11 + }, +/turf/open/floor/iron/smooth_large, +/area/virtual_domain/fullbright) +"wI" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/shower/directional/south, +/turf/open/floor/wood/parquet, +/area/virtual_domain/fullbright) +"wN" = ( +/obj/item/cigbutt{ + pixel_y = 21; + pixel_x = -13 + }, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"wO" = ( +/obj/structure/dresser, +/obj/machinery/light/directional/north, +/turf/open/floor/wood, +/area/virtual_domain) +"wT" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 8 + }, +/turf/open/floor/eighties, +/area/virtual_domain) +"wZ" = ( +/obj/item/clothing/head/soft/green, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"xe" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/door/airlock/wood{ + name = "Bathroom"; + id_tag = "toiletfarbeach" + }, +/turf/open/floor/iron/white, +/area/virtual_domain) +"xg" = ( +/turf/open/misc/beach/sand, +/area/virtual_domain) +"xj" = ( +/obj/item/toy/seashell{ + pixel_x = -8; + pixel_y = 9 + }, +/turf/open/misc/beach/coast/corner{ + dir = 1 + }, +/area/virtual_domain/fullbright) +"xk" = ( +/obj/structure/closet/crate/freezer, +/obj/item/food/meat/slab/rawcrab, +/obj/item/food/meat/slab/rawcrab, +/obj/item/food/meat/slab/rawcrab, +/obj/item/food/meat/slab/chicken, +/obj/item/food/meat/slab/chicken, +/obj/item/food/meat/slab/chicken, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/stack/sheet/mineral/coal/ten, +/obj/item/stack/sheet/mineral/coal/ten, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"xw" = ( +/obj/item/kirbyplants/organic/applebush{ + pixel_x = 7 + }, +/obj/item/kirbyplants/organic/plant17{ + pixel_y = 2; + pixel_x = -8 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"xx" = ( +/obj/item/stack/arcadeticket{ + pixel_y = 6; + pixel_x = -7 + }, +/obj/effect/landmark/bitrunning/curiosity_spawn, +/turf/open/floor/eighties, +/area/virtual_domain) +"xJ" = ( +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"xO" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/freezer, +/area/virtual_domain) +"xP" = ( +/obj/structure/chair/plastic{ + dir = 1 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"xR" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/item/kirbyplants/organic/plant8{ + pixel_y = 3; + pixel_x = -2 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"xT" = ( +/obj/machinery/oven/range, +/turf/open/floor/wood/large, +/area/virtual_domain) +"yc" = ( +/obj/structure/closet/gmcloset, +/turf/open/floor/plastic, +/area/virtual_domain) +"yg" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/wood/large, +/area/virtual_domain) +"yy" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/carpet/red, +/area/virtual_domain/fullbright) +"yz" = ( +/obj/structure/table/bronze, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"yB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/turf_decal/tile/dark/half{ + pixel_y = -1; + pixel_x = 5; + dir = 8 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"yG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/virtual_domain) +"yI" = ( +/obj/structure/dresser, +/obj/structure/sign/calendar/directional/north, +/turf/open/floor/wood, +/area/virtual_domain) +"yJ" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/popsicle_stick, +/obj/item/popsicle_stick, +/obj/item/popsicle_stick, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, +/obj/item/food/grown/banana/bunch, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"yN" = ( +/obj/structure/chair/stool/bamboo{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"yQ" = ( +/obj/structure/table/bronze, +/obj/structure/sign/poster/random/directional/east, +/obj/machinery/button/door/directional/south{ + id = "beach_room_10"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/item/table_clock{ + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"ze" = ( +/obj/effect/turf_decal/tile/dark_red/full, +/turf/open/floor/iron/smooth_large, +/area/virtual_domain/fullbright) +"zg" = ( +/obj/structure/table/bronze, +/obj/item/clothing/suit/costume/hawaiian{ + pixel_y = 6; + pixel_x = 4 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain/fullbright) +"zm" = ( +/obj/structure/table/reinforced, +/obj/item/stack/medical/mesh{ + pixel_y = 1; + pixel_x = 1 + }, +/obj/item/clothing/suit/toggle/labcoat{ + pixel_y = 9; + pixel_x = -8 + }, +/obj/item/storage/box/bodybags{ + pixel_y = 17; + pixel_x = 8 + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"zn" = ( +/obj/structure/table/optable, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"zp" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain) +"zq" = ( +/obj/item/stack/sheet/mineral/sandstone{ + pixel_x = -11; + pixel_y = -2 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"zH" = ( +/obj/item/reagent_containers/cup/soda_cans/lemon_lime{ + pixel_x = -12; + pixel_y = 14 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"zK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"zL" = ( +/obj/structure/table/bronze, +/obj/item/paper/paperslip{ + pixel_y = 6; + pixel_x = 10 + }, +/obj/item/pen/fourcolor{ + pixel_y = 7; + pixel_x = 1 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"zO" = ( +/obj/item/retractor{ + pixel_y = 8; + pixel_x = -2 + }, +/obj/item/cautery{ + pixel_y = 10 + }, +/obj/item/hemostat{ + pixel_y = -11 + }, +/obj/item/bonesetter{ + pixel_y = -12 + }, +/obj/structure/table/glass, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"zS" = ( +/obj/item/kirbyplants/organic/plant8{ + pixel_y = 18; + pixel_x = -8 + }, +/obj/item/cigbutt{ + pixel_y = -4; + pixel_x = 2 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"Ac" = ( +/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Ae" = ( +/obj/machinery/space_heater, +/obj/machinery/light/directional/north, +/turf/open/floor/wood, +/area/virtual_domain) +"Ag" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/kirbyplants/organic/plant8{ + pixel_y = 6 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/eighties, +/area/virtual_domain) +"Ai" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/eighties, +/area/virtual_domain) +"Aj" = ( +/obj/structure/railing/corner/end{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/water/beach, +/area/virtual_domain) +"Al" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Aq" = ( +/obj/structure/table/wood/poker, +/obj/item/storage/dice{ + pixel_y = 3; + pixel_x = 5 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Ay" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/brute{ + pixel_y = 9; + pixel_x = 2 + }, +/obj/item/storage/medkit/o2{ + pixel_y = 15; + pixel_x = 2 + }, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/item/reagent_containers/syringe{ + pixel_y = -4; + pixel_x = 3 + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"AG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark/half{ + pixel_x = 5; + dir = 8 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"AK" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/plastic, +/area/virtual_domain) +"AX" = ( +/obj/vehicle/ridden/atv{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"AZ" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/virtual_domain/fullbright) +"Bc" = ( +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_y = -5; + pixel_x = -11 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Bf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"Bk" = ( +/obj/machinery/door/airlock/wood{ + name = "Room 2"; + id_tag = "beach_room_2" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/wood, +/area/virtual_domain) +"Bq" = ( +/turf/closed/wall/mineral/wood, +/area/virtual_domain) +"Bx" = ( +/obj/item/reagent_containers/cup/soda_cans/starkist{ + pixel_x = -12; + pixel_y = -6 + }, +/obj/structure/fluff/beach_umbrella/cap, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Bz" = ( +/obj/structure/closet, +/obj/item/key/atv{ + pixel_x = -4 + }, +/obj/item/key/atv{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/key/atv{ + pixel_x = 1; + pixel_y = 1 + }, +/obj/item/clothing/head/soft/black, +/obj/item/clothing/head/soft/black, +/obj/item/clothing/head/soft/black, +/obj/effect/decal/cleanable/oil, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/glasses/heat, +/turf/open/floor/iron/dark/herringbone, +/area/virtual_domain) +"BB" = ( +/obj/item/toy/plush/moth{ + pixel_y = 5 + }, +/turf/open/floor/carpet/red, +/area/virtual_domain/fullbright) +"BD" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 19; + pixel_x = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"BI" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 5 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"BM" = ( +/obj/structure/closet/crate/bin, +/obj/item/flashlight/glowstick/yellow, +/obj/item/trash/candy, +/turf/open/floor/eighties, +/area/virtual_domain) +"BU" = ( +/obj/item/storage/toolbox/fishing{ + pixel_x = 10 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"BV" = ( +/obj/structure/sign/directions/dorms/directional/north{ + pixel_y = 35 + }, +/obj/structure/sign/directions/medical/directional/north{ + pixel_y = 29 + }, +/obj/machinery/computer/slot_machine, +/turf/open/floor/wood/large, +/area/virtual_domain) +"BW" = ( +/obj/structure/dresser, +/obj/structure/sign/clock/directional/east, +/turf/open/floor/wood, +/area/virtual_domain) +"Co" = ( +/obj/machinery/processor, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Cw" = ( +/obj/structure/sign/poster/official/fruit_bowl/directional/north, +/turf/open/floor/carpet, +/area/virtual_domain) +"CA" = ( +/obj/item/reagent_containers/cup/soda_cans/sol_dry{ + pixel_y = 18; + pixel_x = 9 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"CH" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/wood, +/area/virtual_domain) +"CP" = ( +/obj/structure/table/reinforced, +/obj/item/toy/plush/slimeplushie{ + pixel_y = 8; + pixel_x = 4 + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"CQ" = ( +/obj/structure/closet/crate/trashcart/laundry, +/turf/open/floor/plastic, +/area/virtual_domain) +"CR" = ( +/obj/structure/fluff/beach_umbrella/syndi, +/turf/open/misc/beach/coast/corner{ + dir = 8 + }, +/area/virtual_domain/fullbright) +"CS" = ( +/obj/machinery/door/airlock/wood{ + name = "Room 1"; + id_tag = "beach_room_1" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"CU" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/button/door/directional/west{ + id = "beach_room_6"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/item/clothing/suit/jacket/leather/biker, +/turf/open/floor/wood, +/area/virtual_domain) +"CV" = ( +/obj/item/toy/seashell{ + pixel_x = 8; + pixel_y = 14 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Dg" = ( +/obj/item/toy/beach_ball, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Do" = ( +/obj/effect/landmark/bitrunning/curiosity_spawn, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Dq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/water/beach, +/area/virtual_domain) +"Dt" = ( +/obj/machinery/icecream_vat, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Dx" = ( +/obj/structure/chair/stool/bar/directional/east, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/large, +/area/virtual_domain) +"DA" = ( +/obj/item/cigbutt{ + pixel_y = -7; + pixel_x = 14 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"DG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/virtual_domain) +"DL" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 12; + pixel_x = 3 + }, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/clothing/head/soft/mime{ + pixel_y = 3; + pixel_x = 5 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"DP" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/virtual_domain) +"DR" = ( +/turf/open/floor/carpet/blue, +/area/virtual_domain/fullbright) +"DS" = ( +/obj/machinery/door/airlock/wood{ + name = "Changing Room" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/freezer, +/area/virtual_domain) +"DT" = ( +/obj/structure/table/wood, +/obj/item/knife/kitchen{ + pixel_y = 12; + pixel_x = -13 + }, +/obj/item/clothing/head/utility/chefhat, +/turf/open/floor/wood/large, +/area/virtual_domain) +"DU" = ( +/obj/machinery/door/airlock/wood{ + name = "Room 10"; + id_tag = "beach_room_10" + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/virtual_domain) +"Eb" = ( +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_x = -8; + pixel_y = -4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Ej" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 19; + pixel_x = 7 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Er" = ( +/obj/effect/turf_decal/sand, +/obj/structure/bedsheetbin{ + pixel_y = 3; + pixel_x = -1 + }, +/obj/structure/table, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Et" = ( +/obj/item/toy/seashell, +/turf/open/misc/beach/coast/corner{ + dir = 8 + }, +/area/virtual_domain/fullbright) +"EA" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/button/door/directional/east{ + id = "toiletfarbeach"; + name = "restroom lock"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/structure/sink/directional/west, +/obj/machinery/light/small/directional/west, +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/floor/iron/white, +/area/virtual_domain) +"EI" = ( +/turf/open/misc/beach/coast{ + dir = 8 + }, +/area/virtual_domain/fullbright) +"EP" = ( +/obj/machinery/door/airlock/wood{ + name = "Room 3"; + id_tag = "beach_room_3" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"EQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/water/beach, +/area/virtual_domain) +"ET" = ( +/obj/item/reagent_containers/cup/glass/bottle/beer/light{ + pixel_x = -14; + pixel_y = 15 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"EY" = ( +/obj/structure/statue/sandstone/venus{ + dir = 4; + pixel_y = 9; + anchored = 1 + }, +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/floor/grass, +/area/virtual_domain) +"Fk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/mousetraps{ + pixel_x = -5; + pixel_y = 14 + }, +/obj/structure/table, +/obj/item/storage/box/mousetraps{ + pixel_x = 12; + pixel_y = 15 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = -1; + pixel_y = 3 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Fp" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Fx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"FB" = ( +/obj/machinery/medical_kiosk, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"FE" = ( +/obj/machinery/washing_machine, +/obj/machinery/light/directional/north, +/turf/open/floor/plastic, +/area/virtual_domain) +"FO" = ( +/obj/structure/chair/plastic, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"FX" = ( +/turf/open/floor/carpet/green, +/area/virtual_domain/fullbright) +"Ga" = ( +/obj/item/stack/arcadeticket{ + pixel_y = -1; + pixel_x = -6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Gm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/closed/wall/mineral/wood, +/area/virtual_domain) +"Go" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/suit/jacket/letterman_nanotrasen, +/obj/item/clothing/glasses/salesman, +/turf/open/floor/wood, +/area/virtual_domain) +"Gp" = ( +/obj/structure/no_effect_signpost{ + pixel_y = 6; + desc = "Northwest: Hotel. South: Seaside Bar. East: Dressing Rooms." + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Gq" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/closed/wall/mineral/wood, +/area/virtual_domain) +"Gw" = ( +/turf/open/indestructible/binary, +/area/virtual_domain/fullbright) +"Gx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/closet_empty/crate, +/obj/effect/spawner/random/maintenance/two, +/obj/item/storage/toolbox/fishing{ + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"GD" = ( +/obj/effect/landmark/bitrunning/permanent_exit, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/protected_space/fullbright) +"GI" = ( +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain) +"GK" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/wood/large, +/area/virtual_domain) +"GQ" = ( +/obj/item/toy/seashell{ + pixel_y = 3; + pixel_x = -6 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"GX" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/carpet, +/area/virtual_domain) +"GY" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/shower/directional/south, +/obj/structure/sink/directional/east, +/turf/open/floor/wood/parquet, +/area/virtual_domain/fullbright) +"Hd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/water/beach, +/area/virtual_domain) +"Ho" = ( +/obj/structure/table/wood, +/obj/item/modular_computer/laptop{ + pixel_y = 5 + }, +/obj/item/multitool{ + pixel_x = -8; + pixel_y = -8 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"Hp" = ( +/obj/structure/table/wood, +/obj/item/clothing/suit/apron/chef{ + pixel_y = 5; + pixel_x = 2 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"HE" = ( +/obj/machinery/griddle, +/turf/open/floor/wood/large, +/area/virtual_domain) +"HH" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"HI" = ( +/obj/structure/statue/sandstone/venus{ + dir = 4; + pixel_y = 9 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"HK" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash/food_packaging, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"HO" = ( +/obj/machinery/door/airlock/wood{ + name = "Room 9"; + id_tag = "beach_room_9" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"HP" = ( +/turf/open/water/beach, +/area/virtual_domain) +"HR" = ( +/obj/structure/sign/poster/official/tactical_game_cards/directional/west, +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/eighties, +/area/virtual_domain) +"HT" = ( +/obj/structure/bed/pod{ + desc = "An old medical bed, just waiting for replacement with something up to date."; + dir = 4; + name = "medical bed" + }, +/obj/machinery/defibrillator_mount/directional/east, +/obj/machinery/iv_drip{ + pixel_y = 21; + pixel_x = -4 + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"HV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/virtual_domain) +"Ib" = ( +/obj/structure/tank_holder/extinguisher{ + pixel_y = 11 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"If" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"In" = ( +/obj/item/kirbyplants/organic/plant8{ + pixel_y = 4; + pixel_x = 8 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"It" = ( +/obj/effect/turf_decal/siding/dark_red{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Iw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + id = "BeachBoats" + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"IA" = ( +/obj/machinery/shower/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"IF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"IG" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "BeachGarage" + }, +/turf/open/floor/plating, +/area/virtual_domain/fullbright) +"II" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"IJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/blood_filter{ + pixel_y = 8; + pixel_x = -6 + }, +/obj/item/surgical_drapes{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/surgical_drapes{ + pixel_x = 13; + pixel_y = 2 + }, +/obj/structure/table/glass, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"IL" = ( +/obj/effect/turf_decal/siding/dark_red, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"IS" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood/large, +/area/virtual_domain) +"IX" = ( +/obj/item/kirbyplants/organic/plant8{ + pixel_y = 18; + pixel_x = -8 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Jb" = ( +/obj/structure/table/glass, +/obj/machinery/coffeemaker/impressa{ + pixel_y = 13; + pixel_x = -1 + }, +/obj/item/reagent_containers/cup/glass/mug{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/glass/mug{ + pixel_x = 11; + pixel_y = -1 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"Jc" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"Jd" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"Je" = ( +/obj/structure/table/bronze, +/obj/item/table_clock{ + pixel_y = 13 + }, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/wood, +/area/virtual_domain) +"Jp" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"Jv" = ( +/obj/item/reagent_containers/cup/soda_cans/starkist{ + pixel_x = -6 + }, +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Jw" = ( +/obj/item/toy/seashell{ + pixel_x = 12; + pixel_y = 5 + }, +/turf/open/misc/beach/coast{ + dir = 4 + }, +/area/virtual_domain/fullbright) +"JF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"JG" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/wood/large, +/area/virtual_domain) +"JH" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"JJ" = ( +/obj/machinery/door/airlock/wood{ + name = "Room 8"; + id_tag = "beach_room_8" + }, +/turf/open/floor/wood, +/area/virtual_domain) +"JN" = ( +/obj/effect/turf_decal/sand, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"JU" = ( +/obj/item/instrument/guitar{ + pixel_y = 4; + pixel_x = -1 + }, +/turf/open/misc/beach/coast, +/area/virtual_domain/fullbright) +"Ka" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/button/door/directional/west{ + id = "beach_room_7"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/item/clothing/suit/apron/overalls, +/turf/open/floor/wood, +/area/virtual_domain) +"Ko" = ( +/obj/item/toy/beach_ball, +/turf/open/misc/beach/coast/corner{ + dir = 4 + }, +/area/virtual_domain/fullbright) +"Ks" = ( +/obj/structure/table/glass, +/obj/machinery/microwave{ + pixel_y = 15 + }, +/obj/item/cigbutt{ + pixel_y = 2; + pixel_x = -12 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"KH" = ( +/obj/structure/closet/athletic_mixed, +/turf/open/floor/iron/freezer, +/area/virtual_domain) +"KI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/virtual_domain) +"KJ" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood/large, +/area/virtual_domain) +"KL" = ( +/obj/structure/closet/secure_closet/freezer/empty, +/obj/item/food/popsicle/creamsicle_berry, +/obj/item/food/popsicle/creamsicle_berry, +/obj/item/food/popsicle/creamsicle_orange, +/obj/item/food/popsicle/creamsicle_orange, +/obj/item/food/popsicle/jumbo, +/obj/item/food/popsicle/pineapple_pop, +/obj/item/food/popsicle/pineapple_pop, +/obj/item/food/fishmeat, +/obj/item/food/fishmeat, +/obj/item/food/fishmeat, +/obj/item/food/fishmeat, +/obj/item/food/fishmeat, +/turf/open/floor/wood/large, +/area/virtual_domain) +"KP" = ( +/obj/item/clothing/head/soft/black{ + pixel_x = -1; + pixel_y = -3 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"KS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"KT" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"KZ" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/landmark/bitrunning/curiosity_spawn, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"La" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/wood, +/area/virtual_domain) +"Ld" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar{ + pixel_y = 16; + pixel_x = -2 + }, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/machinery/cell_charger, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"Lm" = ( +/obj/machinery/door/airlock/wood{ + name = "Balcony"; + id_tag = "beach_room_x" + }, +/turf/open/floor/wood, +/area/virtual_domain) +"LD" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/door/airlock/wood{ + name = "Bathroom"; + id_tag = "toilet1beach" + }, +/turf/open/floor/iron/white, +/area/virtual_domain) +"LN" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/carpet/blue, +/area/virtual_domain/fullbright) +"LR" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"LV" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"LY" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Ma" = ( +/obj/machinery/vending/games, +/turf/open/floor/eighties, +/area/virtual_domain) +"Mb" = ( +/turf/open/floor/wood/large, +/area/virtual_domain) +"Md" = ( +/obj/structure/fluff/beach_umbrella/syndi, +/obj/item/reagent_containers/cup/soda_cans/wellcheers{ + pixel_y = -10; + pixel_x = -6 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Mj" = ( +/obj/structure/table, +/obj/item/weldingtool{ + pixel_y = -7; + pixel_x = 4 + }, +/obj/item/trash/can{ + pixel_y = 10; + pixel_x = -5 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"Ml" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plastic, +/area/virtual_domain) +"Mo" = ( +/obj/machinery/door/airlock/wood{ + name = "Docks" + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"Mr" = ( +/obj/structure/table/wood, +/obj/item/stack/arcadeticket{ + pixel_y = 6; + pixel_x = -7 + }, +/obj/item/pen{ + pixel_y = 5; + pixel_x = 8 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Mx" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger{ + pixel_y = 13; + pixel_x = 21 + }, +/obj/item/clothing/glasses/hud/health{ + pixel_y = 1; + pixel_x = 18 + }, +/obj/item/stack/medical/gauze{ + pixel_x = -15; + pixel_y = 10 + }, +/obj/item/storage/belt/medical{ + pixel_y = 3; + pixel_x = -3 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"MA" = ( +/obj/effect/turf_decal/siding/dark_red/corner{ + dir = 1 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"MH" = ( +/obj/item/toy/seashell{ + pixel_x = -7; + pixel_y = 5 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"MO" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/item/reagent_containers/cup/glass/mug{ + pixel_x = -12; + pixel_y = 9 + }, +/obj/effect/spawner/random/bureaucracy/stamp{ + pixel_y = 14; + pixel_x = 8 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"MR" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"MT" = ( +/turf/open/misc/beach/coast/corner{ + dir = 8 + }, +/area/virtual_domain/fullbright) +"MV" = ( +/obj/item/radio/off{ + pixel_y = 16; + pixel_x = -5 + }, +/obj/item/storage/box/monkeycubes{ + pixel_y = 10; + pixel_x = 4 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 2 + }, +/obj/structure/table/glass, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"MX" = ( +/obj/effect/turf_decal/stripes/red/box, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"MZ" = ( +/obj/machinery/button/door/directional/north{ + id = "beach_room_12"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"Nc" = ( +/obj/item/tank/internals/anesthetic{ + pixel_y = 4 + }, +/obj/item/stack/medical/bone_gel{ + pixel_y = 16; + pixel_x = -7 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_y = 3; + pixel_x = 3 + }, +/obj/structure/table/bronze, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"Ne" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Nj" = ( +/obj/structure/fluff/beach_umbrella/cap, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Np" = ( +/obj/structure/chair/stool/bamboo{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"Nt" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/eighties, +/area/virtual_domain) +"NB" = ( +/obj/item/storage/box/fishing_hooks{ + pixel_y = 14 + }, +/obj/item/storage/box/fishing_lines{ + pixel_y = 12; + pixel_x = 18 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"NC" = ( +/mob/living/basic/crab, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"NH" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/candy, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"NT" = ( +/obj/item/toy/seashell, +/turf/open/misc/beach/coast, +/area/virtual_domain/fullbright) +"NU" = ( +/obj/machinery/vending/medical{ + req_access = "201" + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"NZ" = ( +/obj/effect/turf_decal/sand, +/turf/closed/wall/mineral/wood, +/area/virtual_domain/fullbright) +"Of" = ( +/obj/item/reagent_containers/cup/soda_cans/space_mountain_wind{ + pixel_x = -17; + pixel_y = 17 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Og" = ( +/obj/structure/table/bronze, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_y = 12 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -5; + pixel_y = 9 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Ol" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/virtual_domain) +"Om" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/hop/double{ + desc = "A blue bedsheet. Likely from the beach hotel."; + name = "blue bedsheet" + }, +/turf/open/floor/carpet/cyan, +/area/virtual_domain) +"Or" = ( +/obj/effect/turf_decal/siding/dark_red{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Oy" = ( +/mob/living/basic/crab, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"OA" = ( +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"OK" = ( +/obj/item/storage/box/gloves{ + pixel_y = 14; + pixel_x = 7 + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"OM" = ( +/turf/open/floor/iron/stairs/old, +/area/virtual_domain/fullbright) +"OO" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 16; + pixel_x = 12 + }, +/obj/structure/flora/coconuts, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"OV" = ( +/mob/living/basic/crab/kreb, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Po" = ( +/obj/structure/sink/kitchen/directional/east, +/turf/open/floor/plastic, +/area/virtual_domain) +"Pq" = ( +/obj/structure/table/bronze, +/obj/item/reagent_containers/cup/rag{ + pixel_y = 5 + }, +/obj/item/reagent_containers/condiment/coconut_milk{ + pixel_y = 14; + pixel_x = 5 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/wood/large, +/area/virtual_domain) +"PD" = ( +/obj/item/kirbyplants/organic/plant8{ + pixel_y = 9; + pixel_x = 6 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"PE" = ( +/obj/machinery/space_heater, +/turf/open/floor/wood, +/area/virtual_domain) +"PG" = ( +/obj/structure/table/bronze, +/obj/item/food/grown/banana/bunch{ + pixel_y = 10; + offset_at_init = 0 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"PH" = ( +/obj/item/toy/seashell{ + pixel_x = 12; + pixel_y = 5 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"PJ" = ( +/obj/item/cigbutt{ + pixel_y = -11; + pixel_x = -15 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"PR" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"PZ" = ( +/obj/structure/table/bronze, +/obj/item/camera{ + pixel_y = 12; + pixel_x = 6 + }, +/obj/item/camera_film{ + pixel_y = 4; + pixel_x = -2 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Qc" = ( +/obj/item/kirbyplants/organic/plant8{ + pixel_y = 5 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Qj" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/iron/freezer, +/area/virtual_domain) +"Qk" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/button/door/directional/east{ + id = "toilet2beach"; + name = "restroom lock"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/structure/sink/directional/west, +/obj/machinery/light/small/directional/west, +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/iron/white, +/area/virtual_domain) +"Qm" = ( +/obj/structure/sink/kitchen/directional/south, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Qq" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Qu" = ( +/obj/structure/tank_holder/extinguisher, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"Qv" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Admin" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock_note_placer{ + note_info = "Dear IT: Please fix the fax machine" + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"Qx" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 4 + }, +/turf/open/floor/eighties, +/area/virtual_domain) +"QG" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/item/wrench{ + pixel_y = -1; + pixel_x = 6 + }, +/obj/item/storage/toolbox/fishing{ + pixel_y = -8; + pixel_x = -3 + }, +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"QH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/wood{ + name = "Room 6"; + id_tag = "beach_room_6" + }, +/turf/open/floor/wood, +/area/virtual_domain) +"QI" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"QN" = ( +/obj/item/cigbutt{ + pixel_y = -6; + pixel_x = -12 + }, +/obj/item/clothing/head/soft/black, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"QX" = ( +/obj/machinery/vending/boozeomat/all_access{ + desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one. May not work for bartenders that don't have Nanotrasen bank accounts." + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"QY" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/table/wood, +/obj/item/storage/medkit/o2{ + pixel_y = 4; + pixel_x = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"Rc" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 31 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Rd" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/carpet, +/area/virtual_domain) +"Re" = ( +/obj/structure/table/wood, +/obj/item/stack/arcadeticket{ + pixel_y = 3; + pixel_x = -5 + }, +/obj/item/reagent_containers/cup/soda_cans/pwr_game{ + pixel_y = 12; + pixel_x = -8 + }, +/obj/item/paper_bin/carbon{ + pixel_y = 6; + pixel_x = 4 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Rf" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Rk" = ( +/obj/structure/table/glass, +/obj/machinery/fax{ + fax_name = "Beach Hotel Fax"; + name = "Beach Hotel's Fax Machine"; + pixel_y = 8; + visible_to_network = 0 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"Rs" = ( +/obj/machinery/door/airlock/wood{ + name = "Garage" + }, +/turf/open/floor/iron/dark/herringbone, +/area/virtual_domain) +"Rw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/wood{ + name = "Room 1" + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Ry" = ( +/obj/structure/closet{ + name = "Holding Cell Storage" + }, +/obj/item/taperecorder, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"Rz" = ( +/obj/item/kirbyplants/organic/plant21{ + pixel_y = 3; + pixel_x = -6 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"RB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"RF" = ( +/obj/effect/turf_decal/siding/wood, +/turf/closed/wall/mineral/wood, +/area/virtual_domain/fullbright) +"RJ" = ( +/obj/item/reagent_containers/cup/soda_cans/starkist{ + pixel_y = 16; + pixel_x = 10 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"RM" = ( +/obj/effect/baseturf_helper/beach/water, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"RO" = ( +/obj/item/reagent_containers/cup/soda_cans/lemon_lime{ + pixel_x = -12; + pixel_y = -7 + }, +/obj/item/reagent_containers/cup/soda_cans/dr_gibb{ + pixel_x = 13; + pixel_y = -7 + }, +/obj/structure/fluff/beach_umbrella, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"RP" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/engineering_guide{ + pixel_y = 7; + pixel_x = -6 + }, +/obj/item/pen{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/clothing/head/utility/welding{ + pixel_x = -10; + pixel_y = -8 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"RS" = ( +/obj/structure/table/wood, +/obj/item/food/donut/plain{ + pixel_y = -2; + pixel_x = 14 + }, +/obj/item/assembly/signaler{ + pixel_x = -6; + pixel_y = -5 + }, +/obj/effect/spawner/random/bureaucracy/folder{ + pixel_y = 11; + pixel_x = 4 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"Sb" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 19; + pixel_x = 10 + }, +/obj/machinery/hydroponics/constructable, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Sc" = ( +/obj/structure/table/wood, +/obj/item/storage/box/drinkingglasses{ + pixel_y = 18; + pixel_x = -5 + }, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_y = 12; + pixel_x = -7 + }, +/obj/item/clothing/head/hats/tophat{ + pixel_y = 2; + pixel_x = 3 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Se" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/lighter, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Sf" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"So" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Sr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/rack, +/obj/effect/spawner/random/maintenance/three, +/obj/effect/decal/cleanable/cobweb, +/obj/item/wheelchair, +/turf/open/floor/plating, +/area/virtual_domain) +"Su" = ( +/obj/machinery/door/airlock/wood{ + name = "Room 4"; + id_tag = "beach_room_4" + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/virtual_domain) +"Sx" = ( +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"Sz" = ( +/obj/structure/chair/stool/bamboo{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"SJ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/sand, +/obj/item/clothing/shoes/sandal{ + pixel_y = 4; + pixel_x = 8 + }, +/obj/item/clothing/shoes/sandal{ + pixel_x = 4 + }, +/obj/item/clothing/shoes/sandal{ + pixel_y = -4 + }, +/obj/item/clothing/shoes/sandal{ + pixel_y = -7; + pixel_x = -3 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"SL" = ( +/obj/machinery/door/airlock/wood{ + name = "Trash Disposal" + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"SM" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"SO" = ( +/obj/structure/table/bronze, +/obj/structure/desk_bell{ + pixel_x = 7; + pixel_y = 8 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"SR" = ( +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) +"Ta" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/carpet, +/area/virtual_domain) +"Tb" = ( +/obj/effect/landmark/bitrunning/curiosity_spawn, +/turf/open/floor/iron/dark/herringbone, +/area/virtual_domain) +"Tq" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark/herringbone, +/area/virtual_domain) +"Tr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Tt" = ( +/obj/machinery/recharge_station, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Tw" = ( +/obj/effect/turf_decal/stripes/white/full, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Ty" = ( +/turf/open/floor/carpet, +/area/virtual_domain/fullbright) +"TB" = ( +/obj/effect/turf_decal/tile/dark_red/full, +/obj/machinery/vending/cola/red, +/turf/open/floor/iron/smooth_large, +/area/virtual_domain/fullbright) +"TC" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"TK" = ( +/obj/structure/table/bronze, +/obj/item/clothing/suit/costume/hawaiian{ + pixel_y = 1; + pixel_x = 7 + }, +/obj/item/clothing/suit/costume/hawaiian{ + pixel_x = -14 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain/fullbright) +"TM" = ( +/obj/effect/turf_decal/siding/blue/corner, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"TO" = ( +/obj/structure/closet/crate/bin, +/obj/item/reagent_containers/syringe{ + pixel_y = -4; + pixel_x = 3 + }, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"TR" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/virtual_domain) +"TS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_y = 7; + pixel_x = -9 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_y = 4; + pixel_x = 3 + }, +/obj/item/clothing/gloves/latex, +/obj/structure/table/glass, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"TW" = ( +/obj/structure/table/bronze, +/obj/item/clothing/suit/costume/hawaiian{ + pixel_y = 7; + pixel_x = -3 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/parquet, +/area/virtual_domain/fullbright) +"TY" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Clinic" + }, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"TZ" = ( +/obj/structure/fluff/beach_umbrella/science, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Ub" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"Ud" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/cigbutt{ + pixel_y = -9; + pixel_x = 13 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"Uf" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/door/airlock/wood{ + name = "Bathroom"; + id_tag = "toilet2beach" + }, +/turf/open/floor/iron/white, +/area/virtual_domain) +"Ug" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"Uk" = ( +/obj/machinery/vending/autodrobe/all_access, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Um" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/suit/jacket/miljacket, +/turf/open/floor/wood, +/area/virtual_domain) +"Uy" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Clinic" + }, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"UE" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"UI" = ( +/obj/machinery/door/airlock/wood{ + name = "Janitorial" + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"UJ" = ( +/obj/vehicle/ridden/atv{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/iron/dark/herringbone, +/area/virtual_domain) +"UO" = ( +/obj/machinery/vending/cola/pwr_game, +/turf/open/floor/eighties, +/area/virtual_domain) +"US" = ( +/obj/machinery/shower/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"UW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"UZ" = ( +/obj/item/stack/sheet/mineral/sandstone{ + pixel_x = -8 + }, +/obj/item/stack/sheet/mineral/sandstone{ + pixel_x = 5 + }, +/obj/item/stack/sheet/mineral/sandstone{ + pixel_x = 1; + pixel_y = 7 + }, +/obj/item/stack/sheet/mineral/sandstone{ + pixel_x = -12; + pixel_y = 6 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Va" = ( +/obj/machinery/door/airlock/wood{ + name = "Employees' Only" + }, +/turf/open/floor/plastic, +/area/virtual_domain) +"Vs" = ( +/obj/structure/table/wood, +/obj/item/pai_card{ + desc = "A real Nanotrasen success, these personal AIs provide all of the companionship of an AI without any law related red-tape."; + name = "\improper Nanotrasen-brand personal AI device exhibit"; + pixel_y = 3; + pixel_x = 10 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"VD" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"VI" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/wood/large, +/area/virtual_domain) +"VK" = ( +/obj/machinery/door/airlock/wood/glass{ + name = "Cabin" + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"VL" = ( +/turf/open/misc/beach/coast{ + dir = 6 + }, +/area/virtual_domain/fullbright) +"We" = ( +/obj/structure/table/bronze, +/obj/item/book/manual/wiki/barman_recipes{ + pixel_x = 9; + pixel_y = 7; + name = "Tropical Mixing for Tropical Bartenders" + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_y = 10; + pixel_x = -12 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Wg" = ( +/obj/structure/closet/crate/trashcart/filled, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"Wm" = ( +/obj/effect/landmark/bitrunning/curiosity_spawn, +/turf/open/floor/iron/white/textured_large, +/area/virtual_domain) +"Ws" = ( +/obj/machinery/vending/cigarette/beach, +/turf/open/floor/wood/large, +/area/virtual_domain) +"WG" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"WX" = ( +/obj/structure/marker_beacon/teal, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"Xe" = ( +/obj/structure/table/bronze, +/obj/structure/sign/poster/random/directional/east, +/obj/item/camera{ + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"Xl" = ( +/obj/structure/flora/tree/palm/style_2{ + pixel_y = 25 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Xt" = ( +/turf/open/floor/plastic, +/area/virtual_domain) +"Xu" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Xx" = ( +/obj/machinery/door/airlock/wood/glass{ + name = "Beach Access" + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"XJ" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Locker Room" + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"XO" = ( +/obj/structure/flora/tree/palm/style_2{ + pixel_y = 25 + }, +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"XP" = ( +/obj/structure/mop_bucket/janitorialcart{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/wood/large, +/area/virtual_domain) +"XT" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/carpet/cyan, +/area/virtual_domain) +"XW" = ( +/obj/structure/fluff/beach_umbrella/syndi, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Yb" = ( +/obj/structure/sign/poster/contraband/pwr_game/directional/west, +/turf/open/floor/eighties, +/area/virtual_domain) +"Yd" = ( +/obj/structure/flora/tree/palm/style_2{ + pixel_y = 3; + pixel_x = -4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Yo" = ( +/turf/closed/wall/mineral/sandstone, +/area/virtual_domain/fullbright) +"Yr" = ( +/obj/item/reagent_containers/cup/watering_can{ + pixel_y = 19; + pixel_x = -6 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Yz" = ( +/obj/item/trash/candy{ + pixel_y = 9; + pixel_x = -9 + }, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"YD" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"YI" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/button/door/directional/east{ + id = "toilet1beach"; + name = "restroom lock"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/structure/sink/directional/west, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/white, +/area/virtual_domain) +"YM" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"YN" = ( +/obj/item/toy/seashell{ + pixel_x = 12; + pixel_y = -5 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"YP" = ( +/obj/structure/table/glass, +/obj/item/paper{ + pixel_y = 7; + pixel_x = 2 + }, +/obj/item/screwdriver{ + pixel_y = 13; + pixel_x = 3 + }, +/obj/item/paper_bin/carbon{ + pixel_y = 4; + pixel_x = -6 + }, +/obj/effect/spawner/random/bureaucracy/pen{ + pixel_x = 7 + }, +/turf/open/floor/iron/dark/diagonal, +/area/virtual_domain) +"YR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/vending/cola/red, +/turf/open/floor/wood/large, +/area/virtual_domain/fullbright) +"YW" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain) +"YZ" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain) +"Zd" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/wood, +/area/virtual_domain/fullbright) +"Zj" = ( +/obj/structure/flora/tree/palm{ + pixel_y = 16 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Zn" = ( +/obj/item/reagent_containers/cup/soda_cans/dr_gibb{ + pixel_x = -9; + pixel_y = -9 + }, +/obj/structure/fluff/beach_umbrella/engine, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"Zp" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/virtual_domain) +"Zs" = ( +/obj/machinery/door/poddoor/shutters{ + id = "BeachBoats" + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) +"Zy" = ( +/obj/structure/sign/chalkboard_menu{ + pixel_y = 32 + }, +/turf/open/floor/wood/large, +/area/virtual_domain) +"Zz" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ZB" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/button/door/directional/east{ + id = "toilet3beach"; + name = "restroom lock"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/structure/sink/directional/west, +/obj/item/cigbutt{ + pixel_y = -7; + pixel_x = -13 + }, +/obj/machinery/light/small/directional/west, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/floor/iron/white, +/area/virtual_domain) +"ZE" = ( +/obj/structure/table/bronze, +/turf/open/floor/carpet, +/area/virtual_domain) +"ZH" = ( +/obj/item/kirbyplants/organic/plant24{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/reagent_containers/cup/watering_can{ + pixel_x = -3; + pixel_y = 15 + }, +/obj/structure/table, +/turf/open/floor/wood/large, +/area/virtual_domain) +"ZI" = ( +/obj/effect/baseturf_helper/beach/sand, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ZV" = ( +/obj/structure/chair/plastic, +/obj/item/pai_card{ + desc = "A real Nanotrasen success, these personal AIs provide all of the companionship of an AI without any law related red-tape."; + name = "\improper Nanotrasen-brand personal AI device exhibit"; + pixel_y = 3; + pixel_x = -1 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) +"ZX" = ( +/obj/structure/table/bronze, +/obj/item/storage/toolbox/fishing{ + pixel_y = 2 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"ZY" = ( +/obj/effect/turf_decal/siding/blue/corner{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) + +(1,1,1) = {" +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(2,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(3,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(4,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(5,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(6,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(7,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(8,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +LR +Bf +Bf +Bf +qa +cO +LR +Bf +Bf +Bf +HH +Bf +Bf +Bf +qa +cO +LR +Bf +Bf +Bf +qa +cO +cO +cO +cO +cO +cO +cO +cO +SR +SR +SR +SR +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(9,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +Jd +vF +Zd +io +tw +cO +Jd +vF +Zd +io +Jp +vF +Zd +io +tw +cO +Jd +vF +Zd +PD +tw +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(10,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +eK +Lm +AZ +AZ +eK +cO +eK +Lm +AZ +AZ +eK +Lm +AZ +AZ +eK +cO +eK +Lm +AZ +AZ +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(11,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +eK +CH +uY +PE +Bq +eK +Bq +MZ +gw +PE +Bq +bE +uY +oE +Bq +eK +Bq +iQ +gw +jp +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(12,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +eK +cB +Rd +bE +db +Mb +rI +bE +cW +aQ +Bq +jw +Rd +bE +Su +Mb +EP +bE +cW +La +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(13,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +eK +yI +gK +rE +Bq +Mb +Bq +yI +ch +Xe +Bq +wO +gK +rw +Bq +Mb +Bq +Je +Om +Zp +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(14,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +eK +Bq +Bq +Bq +Bq +pv +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Mb +Bq +Bq +Bq +Bq +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +SR +SR +SR +SR +SR +SR +SR +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(15,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +vF +nk +bE +XT +PE +Bq +Mb +Mb +yg +Mb +Mb +Mb +Mb +yg +Mb +Mb +Mb +Mb +yg +gH +Bq +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(16,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +aw +AZ +Go +cW +bE +DU +Mb +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Mb +Bq +Bq +Bq +Bq +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(17,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +xR +AZ +Zp +Om +yQ +Bq +Mb +Bq +cr +uY +dH +Bq +Um +gw +gf +Bq +pv +Bq +lc +uY +pq +eK +cO +eH +EI +EI +EI +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(18,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +eK +Bq +Gm +Bq +Bq +Mb +HO +bE +Rd +La +Bq +Ae +cW +bE +sW +Mb +Bk +bE +Rd +La +eK +eH +tk +qB +ka +MH +nc +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +oX +"} +(19,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +vF +dW +bE +GX +dH +Bq +Mb +Bq +ik +gK +ZX +Bq +yI +Om +dS +Bq +Mb +Bq +ik +gK +ZX +eK +tk +CV +wZ +QI +gI +ka +nc +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(20,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +KZ +AZ +pz +Rd +bE +JJ +Mb +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Mb +Bq +Bq +Bq +Bq +eK +BI +ka +mP +rB +bD +ka +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(21,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +xR +AZ +BW +gK +st +Bq +Mb +Mb +yg +Mb +Bq +xg +Bq +Mb +Mb +Mb +Mb +yg +Mb +Mb +Xx +TC +JN +ka +ka +ka +ka +ka +rD +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(22,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +eK +Bq +Bq +Bq +Bq +Mb +Bq +Bq +cH +Bq +Bq +Bq +QH +Bq +Bq +Mb +Bq +Bq +Bq +Bq +eK +NB +rD +ka +ka +ka +BI +ka +nc +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(23,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +eK +eK +Bq +Fk +Yr +wz +Bq +Mb +Bq +Ka +gw +PE +Bq +CU +uY +bE +Bq +Mb +CS +qb +gw +pJ +eK +ka +ka +eK +Rw +eK +eK +eK +Ej +nc +EI +EI +EI +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(24,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +eK +tf +GK +XP +Bq +pv +Bq +bE +cW +La +Bq +PE +Rd +La +Bq +Mb +Bq +wx +cW +La +eK +Sf +eK +Bq +Mb +Dx +Mb +Bq +eK +Ej +ka +ka +ka +nc +EI +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(25,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +eK +IX +Mb +Mb +Bq +pE +Bq +ik +Om +gc +Bq +yI +gK +ZX +Bq +pE +Bq +Zp +Om +eJ +Bq +eK +Bq +jb +dY +lI +Aq +MR +Bq +eK +th +ka +ka +ka +ka +nc +EI +EI +EI +EI +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(26,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +eK +ow +Bq +UI +Bq +Mb +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Bq +Mb +Bq +Bq +Bq +Bq +Bq +BV +Mb +Mb +ho +ho +ho +Mb +Rz +AZ +ka +sz +ka +ka +yy +ka +ka +ka +ka +ka +nc +EI +ij +cO +cO +cO +cO +eH +EI +EI +EI +EI +EI +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(27,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +LR +Bf +eK +Bq +Bq +tI +Mb +Mb +Mb +Mb +Mb +Mb +JG +Mb +Mb +Mb +Mb +Mb +Mb +JG +Mb +dj +Mb +Mb +IS +gN +Al +Mb +Mb +Mb +xw +AZ +ka +ka +ka +Md +BB +ka +ka +ka +rD +ka +ka +ka +nc +ij +cO +cO +cO +oa +sz +th +ka +ka +ka +nc +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(28,1,1) = {" +SR +cO +cO +cO +cO +cO +LR +lS +wN +xJ +SL +Mb +Mb +Mb +Mb +Mb +Mb +Mb +Mb +Mb +Mb +Mb +Mb +Mb +Mb +Mb +Mb +Mb +dj +Mb +Mb +So +EY +UW +Mb +Mb +ZH +AZ +AZ +JN +ka +ka +ka +ka +ka +ka +DR +ka +ka +BD +ka +sz +nc +EI +EI +EI +tk +ka +ka +ka +ka +ka +sz +nc +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(29,1,1) = {" +SR +cO +cO +cO +cO +cO +Jd +Yz +xJ +eK +Bq +Bq +yG +yG +Bq +Qv +Bq +Bq +Bq +Bq +Bq +DP +TY +DP +Bq +Bq +Bq +Bq +Bq +Bq +pv +LV +II +Qq +Mb +Mb +AZ +AZ +JN +JN +ka +ka +ka +ka +ka +TZ +oC +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +Oy +ka +Dg +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(30,1,1) = {" +SR +cO +cO +cO +cO +cO +Jd +mV +xJ +eK +Jb +zS +lW +lW +PJ +lW +Qu +Bq +lF +bx +jL +qH +gP +FB +NU +Bq +CQ +CQ +Bq +cK +Mb +dA +Mb +Mb +Mb +Mb +eK +sR +JN +de +JN +ka +ka +ka +rD +ka +ka +ka +ka +eK +AZ +AZ +eK +ka +eK +AZ +AZ +eK +uC +ka +ka +Nj +ka +ka +nc +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(31,1,1) = {" +SR +cO +cO +cO +cO +cO +Ud +bT +Wg +eK +vx +lW +Ug +aY +Ug +lW +YP +Gq +zm +Wm +gP +gP +gP +gP +gP +Va +Xt +Xt +Bq +Cw +uY +zL +uY +uY +uY +uY +VK +Ty +JN +JN +JN +ka +ka +th +ka +ka +ka +ka +eK +Bq +Qx +Qx +Bq +AZ +Bq +BM +gs +Bq +eK +rD +ka +DR +LN +ka +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(32,1,1) = {" +SR +cO +cO +cO +cO +cO +Jc +If +Wg +eK +Ks +lW +Ho +RS +Ld +lW +Rk +Bq +Mx +gP +gP +up +gP +gP +TO +Bq +Ml +Xt +Bq +uY +Rd +ZE +uY +uY +uY +Ta +eK +Ty +Ty +JN +JN +ka +ka +ka +ka +ka +ka +ka +eK +UO +en +ty +Yb +en +HR +gi +Ai +Ga +eK +ka +ka +ka +nR +ka +gL +VL +JH +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(33,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +Jc +IF +eK +HK +lW +qR +MO +pX +PJ +rG +Bq +CP +HT +gP +aD +OK +gP +Ay +Bq +Ml +Xt +Bq +Cw +uY +iF +uY +uY +uY +uY +VK +Ty +Ty +Ty +JN +ka +ka +ka +ka +ka +ka +ka +eK +Bq +Ma +xx +en +pV +Nt +dB +Mr +Mb +AZ +ka +ka +ka +rD +ka +cE +cO +cO +cO +cO +WX +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(34,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +eK +Bq +lW +lW +KT +DA +In +Bq +eK +AZ +Bq +gP +gP +gP +Bq +Bq +Bq +FE +Xt +Bq +PG +Mb +oQ +Mb +Mb +Mb +eK +eK +wf +Ty +Ty +Ty +ka +ka +ka +rD +ka +ka +sz +ka +eK +AZ +Bq +wT +wT +Ag +Mb +Vs +Mb +eK +ka +ka +ka +ka +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(35,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +eK +lW +rW +Ry +MV +Bq +eK +zO +bb +eK +Uy +Bq +ee +Bq +Ml +Po +gB +Xt +Bq +Bq +Mb +IS +gN +Al +Mb +AZ +wf +SJ +JN +Ty +Ty +Ty +ka +ka +ka +ka +ka +ka +th +ka +JN +eK +AZ +AZ +Bq +Mb +Re +fg +eK +as +ka +ka +ka +ka +nc +ij +cO +cO +cO +cO +cO +cO +cO +JH +cO +cO +cO +cO +cO +SR +"} +(36,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +eK +lU +yG +yG +Bq +eK +IJ +xJ +xJ +xJ +xJ +eK +AZ +Bq +Ml +AK +Xt +Xt +Xt +Va +Mb +So +sh +UW +Mb +AZ +AZ +SJ +JN +JN +Ty +Ty +Ty +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +JN +eK +mx +AZ +eK +Ib +JN +ka +ka +ka +Oy +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(37,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +eK +GI +GI +YW +eK +cO +TS +mV +xJ +xJ +xJ +tw +cO +eK +Bq +yc +yc +yc +Bq +Bq +Bq +LV +Ne +Qq +Mb +Qc +AZ +SJ +JN +JN +ka +Ty +Ty +Ty +ka +ka +ka +ka +ka +ka +ka +JN +ka +ka +ta +YD +dp +ct +ka +ka +ka +JN +ka +ka +ka +NT +cO +cO +cO +cO +cO +cO +cO +cO +cO +WX +cO +cO +cO +SR +"} +(38,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +lx +uI +ba +YW +lx +cO +bp +rn +zn +Nc +yB +pC +cO +cO +eK +Bq +Bq +Bq +Bq +Sr +Bq +kD +Bq +Mb +Mb +Tt +AZ +Er +JN +rD +ka +ka +Ty +Ty +Ty +ka +ka +ka +rD +ka +JN +JN +JN +ka +JN +ka +JN +ka +JN +ka +ka +ka +ka +ka +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(39,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +eK +Bq +zp +Bq +eK +cO +Jc +fe +du +AG +pC +cO +cO +cO +eK +hT +lh +TR +jm +TR +TR +TR +Bq +Ws +KJ +fg +eK +JN +ka +ka +ka +ka +ka +Ty +Ty +Ty +ka +ka +ka +JN +JN +JN +ka +JN +ka +JN +JN +ka +ka +ka +JN +ka +ka +FO +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +JH +cO +SR +"} +(40,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +eK +eK +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +eK +TR +TR +HV +TR +TR +eP +KI +Bq +eK +eK +eK +ka +ka +Xl +ka +sz +ka +ka +Gp +Ty +Ty +JN +JN +JN +JN +JN +ka +ka +JN +JN +ka +ka +JN +ka +ka +ka +ka +ka +RO +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(41,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +eK +Ol +TR +TR +DG +Gx +Bq +eK +eK +rD +ka +ka +ka +ka +ka +ka +ka +ka +th +ka +JN +JN +JN +JN +JN +JN +ka +NH +eK +eK +AZ +AZ +eK +eK +ky +ka +JN +ka +ka +FO +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(42,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +eK +eK +Bq +ce +cC +Bq +eK +mJ +ka +ka +ka +Yo +Yo +Yo +ka +ka +ka +ka +ka +rD +JN +JN +JN +ka +ka +JN +JN +yJ +eK +QX +hA +Ac +Sc +eK +YR +ka +ka +ka +ka +ka +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +WX +SR +"} +(43,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +eK +eK +eK +eK +bY +Et +ka +ra +Yo +Yo +bX +Yo +Yo +sz +ka +ka +ka +ka +JN +JN +jr +ka +ka +ka +JN +eK +Bq +Qm +Mb +Mb +Mb +jK +aA +JF +ka +ka +FO +ka +gL +VL +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(44,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +wb +MT +UZ +Yo +bX +hh +bX +Yo +sz +ka +lA +US +IA +JN +JN +ka +ka +ka +ka +JN +mL +Mb +GK +Se +vU +Mb +rR +yN +UE +ka +ka +Bx +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(45,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +zq +Yo +bX +kN +bX +ev +ka +ka +NZ +NZ +eK +JN +JN +ka +ka +ka +ka +Sb +eK +Zy +lJ +tM +Hp +Mb +rR +yN +UE +ka +ka +FO +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +JH +SR +"} +(46,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +Bc +Yo +sl +bX +bX +Yo +sz +ka +NZ +YI +LD +JN +JN +rD +ka +ka +ka +eK +eK +pv +uD +DT +Mb +Mb +We +yN +UE +ka +ka +Eb +ka +nc +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(47,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +Yo +Yo +bX +Yo +Yo +sz +ka +NZ +kI +eK +JN +JN +ka +ka +ka +GQ +eK +VI +Mb +si +Co +Mb +Fp +Pq +Sz +Fx +ka +ka +ka +FO +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(48,1,1) = {" +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +ka +Yo +Yo +Yo +ka +ka +ka +NZ +Qk +Uf +JN +JN +ka +ka +ka +ka +AZ +HE +Mb +jW +Mb +Mb +dl +eK +Fx +ka +ka +ka +th +Zn +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(49,1,1) = {" +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +sz +ka +ka +ka +th +ka +eK +kI +kI +eK +JN +JN +ka +ka +ka +ka +AZ +fL +Mb +Mb +Mb +hZ +rR +UE +ka +ka +ka +ka +ka +FO +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(50,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +ka +rD +ka +ka +ka +ka +ka +NZ +ZB +sa +JN +JN +ka +th +ka +ka +AZ +xT +Mb +Mb +Og +SO +Np +Fx +ka +as +ka +ka +ka +sC +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +WX +SR +"} +(51,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +wb +MT +th +ka +ka +ka +ka +ka +ka +eK +eK +eK +JN +JN +ka +ka +rD +ka +eK +xT +Do +KL +tX +Np +Fx +ka +ka +ka +ka +ka +ka +ka +gL +VL +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(52,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +ka +ka +RM +ka +ka +ka +eK +rK +JN +JN +JN +ka +ka +ka +ka +eK +eK +AZ +AZ +eK +cc +ka +ka +ka +ka +ka +ka +ka +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(53,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +ka +ka +ZI +ka +ka +as +ka +cg +JN +JN +ka +ka +ka +ka +ka +ka +os +ka +eM +ka +rD +ka +ka +ka +ka +ka +rj +ka +gL +VL +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(54,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +tW +ka +ka +th +ka +ka +ka +ka +ka +JN +JN +ka +ka +ka +ka +th +ka +BI +ka +ka +as +ka +ka +ka +ka +ka +ka +xk +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +JH +SR +"} +(55,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +Rc +Of +ka +ka +rD +ka +ka +ka +ka +JN +JN +ka +ka +ka +ka +ka +ka +sz +ka +ka +ka +ka +ka +QY +fY +gA +ka +ka +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(56,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +wb +MT +ka +ka +ka +ka +ka +ka +ka +ka +JN +JN +JN +lk +Or +uX +qZ +ka +ka +ka +rD +ka +ka +ka +iy +ut +OM +ka +ka +ka +nc +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(57,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +XO +ka +ka +ka +ka +ka +ka +ka +as +JN +JN +kL +TB +ze +mv +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +th +ka +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(58,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +ET +tW +ka +XW +CA +ka +ka +ka +JN +JN +IL +wH +ze +mv +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +rD +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +WX +cO +SR +"} +(59,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +wb +bY +CR +ka +zH +LN +DR +ka +ka +ka +JN +JN +IL +eh +ze +mv +ka +rD +ka +ka +th +ka +ka +th +ka +ka +Oy +ka +ka +BU +nc +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(60,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +JH +cO +cO +cO +wb +bY +MT +ka +ka +ka +ka +ka +JN +JN +uz +It +It +MA +ka +ka +ka +ka +ka +ka +tW +tW +tW +tW +ka +ka +ka +il +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(61,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +TZ +RJ +ka +JN +JN +JN +Yd +ka +ka +ka +ka +dD +ka +ka +ka +TM +SM +SM +SM +SM +LY +ZY +ka +cp +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +JH +cO +cO +cO +SR +"} +(62,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +WX +cO +cO +cO +cO +cO +cO +oa +ka +FX +FX +ka +JN +JN +ka +ka +ka +ka +ka +ka +ka +sz +ZV +FO +dG +ka +ka +ka +ka +ka +PR +ka +FO +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(63,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +wb +MT +ka +ka +ka +JN +JN +ka +ka +ka +ka +ka +ka +OO +ka +FO +FO +dG +ka +ka +ka +ka +ka +PR +ka +ka +gL +VL +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(64,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +ka +ka +JN +JN +ka +mi +ka +ka +ka +ka +ka +ka +FO +FO +dG +ka +ka +ka +ka +ka +PR +th +gL +VL +cO +cO +cO +cO +cO +cO +cO +cO +cO +WX +cO +cO +cO +cO +SR +"} +(65,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +JH +cO +cO +cO +cO +cO +cO +cO +oa +rD +ka +ka +JN +JN +ka +ka +ka +ka +rD +ka +JN +ka +ka +ka +dG +ka +Dg +ka +ka +ka +PR +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(66,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +ka +ka +JN +JN +JN +JN +JN +ka +ka +ka +fI +jP +fI +lP +dG +ka +ka +ka +ka +ka +PR +Oy +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(67,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +th +ka +ka +JN +JN +JN +ka +JN +JN +ka +JN +GD +ew +fI +sO +dG +Tw +Tw +Tw +Tw +Tw +PR +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +JH +cO +cO +cO +cO +cO +cO +SR +"} +(68,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +WX +cO +cO +cO +cO +cO +cO +eH +Ko +ka +ka +rD +JN +JN +ka +yz +ka +ka +ka +Gw +fI +jP +hu +lP +dG +ka +ka +ka +ka +ka +PR +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(69,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +eH +tk +ka +ka +Dt +ka +JN +JN +ka +ka +ka +ka +JN +ka +ka +th +ka +ka +dG +ka +ka +ka +ka +ka +PR +ka +cE +cO +cO +cO +cO +cO +cO +WX +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(70,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +JH +cO +cO +eH +EI +rl +ka +ka +ka +ka +ka +JN +JN +JN +ka +ka +ka +ka +ka +ka +rD +FO +FO +dG +ka +ka +ka +ka +ka +PR +al +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(71,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +eH +tk +th +ka +ka +eK +eK +eK +eK +qc +JN +JN +ka +ka +ka +ka +ka +JN +ka +FO +FO +dG +ka +ka +ka +ka +ka +PR +ka +xj +ij +cO +cO +JH +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(72,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +Oy +eK +eK +Bq +ro +ro +fg +eK +oZ +tQ +ka +ka +eO +PZ +ka +ka +ka +FO +FO +dG +ka +ka +ka +ka +ka +PR +ka +ka +nc +ij +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(73,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +eH +tk +ka +eK +Bq +ro +Ub +Sx +Sx +Sx +XJ +bK +ii +tQ +ka +pj +fH +ka +ka +ka +ka +ka +mW +Xu +Xu +Xu +Xu +WG +lz +ka +iP +ka +lG +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(74,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +eH +tk +ka +ka +eK +ro +Sx +Sx +Sx +Sx +Sx +XJ +bK +bK +TC +ka +ka +ka +rD +ka +ka +ka +ka +th +iU +iU +iU +iU +ka +ka +ka +hB +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(75,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +oa +sz +ka +ka +eK +Bq +DS +Bq +Bq +ro +Sx +eK +bK +bK +TC +ka +ka +ka +ka +ka +ka +ka +ka +rD +ka +ka +ka +ka +ka +rD +ka +FO +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(76,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +eH +tk +ka +sz +JN +eK +KH +uu +KH +Bq +ro +Sx +TW +bK +bK +TC +ka +ka +th +ka +ka +ka +ka +ka +ka +ka +ka +ka +th +ka +ka +ka +gC +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(77,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +oa +ka +ka +eK +Rs +Bq +Bq +uu +uu +Bq +Bq +Sx +TK +bK +bK +TC +ka +ka +ka +tW +tW +tW +ka +tW +tW +ka +ka +ka +ka +ka +ka +ka +FO +ka +dX +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(78,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +oa +ka +ka +eK +jV +dv +Bq +KH +uu +Qj +Bq +Sx +sI +bK +bK +TC +ka +ka +ka +tW +tW +tW +ka +tW +tW +ka +ka +ka +ka +ka +sR +ka +Jv +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(79,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +oa +th +ka +eK +Tq +hD +Bq +Bq +xO +uu +Bq +Bq +zg +bK +vM +VD +ka +ka +rD +ka +ka +ka +ka +ka +ka +ka +ka +ka +tW +ka +ka +ka +Oy +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(80,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +oa +ka +ka +eK +Bz +Tb +UJ +Bq +aE +uu +KH +Bq +RF +YD +VD +ka +ka +ka +ka +ka +Rf +Tr +Tr +Tr +Zz +ka +ka +FO +uH +xP +ka +ka +ka +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +"} +(81,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +wb +MT +ka +eK +eK +jV +ke +Bq +aE +uu +KH +eK +GY +ka +ka +ka +ka +th +ka +Rf +zK +OA +OA +OA +RB +Zz +Oy +oJ +iU +ka +ka +ka +YN +gL +VL +cO +cO +cO +cO +cO +cO +cO +SR +SR +SR +SR +SR +SR +SR +"} +(82,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +oa +sz +AX +eK +IG +IG +eK +Bq +KH +Bq +eK +wI +ka +ka +ka +ka +ka +ka +rz +jq +OA +OA +OA +OA +ob +ka +ka +ka +ka +Zj +rD +gL +VL +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +"} +(83,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +wb +MT +ka +ka +ka +ka +ka +eK +eK +eK +kJ +ka +OV +ka +ka +ka +ka +ka +rQ +ww +OA +OA +OA +OA +py +ka +Dg +ka +ka +ka +ka +cE +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +"} +(84,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +wb +MT +ka +ka +ka +ka +ka +ka +sR +ka +ka +ka +ka +ka +ka +ka +KP +eK +eK +eK +eK +eK +eK +eK +Uk +ka +ka +ka +ka +gL +VL +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +"} +(85,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +wb +MT +Oy +ka +ka +ka +ka +ka +ka +tW +tW +ka +tW +tW +Rf +eK +Bq +RP +YM +Ub +Mj +sV +fg +eK +ka +ka +gL +bY +VL +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +"} +(86,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +th +ka +NZ +NZ +eK +ka +ka +ka +ka +ka +ka +ka +rz +Mo +Sx +jn +YZ +YZ +jn +YZ +QG +Bq +eK +bY +VL +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +SR +SR +ot +ot +ot +ot +ot +ot +"} +(87,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +wb +MT +ka +NZ +EA +xe +ka +ka +ef +ef +ef +ef +NC +ta +eK +DL +Dq +Dq +Dq +Dq +Dq +KS +QN +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +"} +(88,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +wb +MT +eK +eK +eK +ka +oq +ka +ka +ka +ka +ka +ka +eK +Bq +Aj +Aj +Aj +Aj +Aj +Hd +hM +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +"} +(89,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +wb +MT +PH +ka +ka +aZ +iY +ka +ka +ka +MX +ka +JU +eK +fJ +og +HP +HP +HP +HP +wC +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +SR +SR +ot +ot +ot +ot +ot +ot +ot +ot +"} +(90,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +oa +ka +ka +Oy +ka +ka +ka +ka +nX +gL +Jw +VL +eK +HI +EQ +HP +HP +HP +HP +Bq +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(91,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +wb +MT +gV +ka +ka +fv +gL +bY +bY +VL +cO +cO +eK +eK +Zs +Iw +Iw +Iw +eK +eK +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(92,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +wb +bY +bY +bY +bY +VL +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +SR +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(93,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(94,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(95,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +SR +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(96,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(97,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +cO +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} +(98,1,1) = {" +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +SR +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +ot +"} diff --git a/code/__DEFINES/_flags.dm b/code/__DEFINES/_flags.dm index a9b42840fdb71..72d28ca6bca9d 100644 --- a/code/__DEFINES/_flags.dm +++ b/code/__DEFINES/_flags.dm @@ -132,6 +132,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define QUIET_LOGS (1<<15) /// This area does not allow virtual entities to enter. #define VIRTUAL_SAFE_AREA (1<<16) +/// This area does not allow the Binary channel +#define BINARY_JAMMING (1<<17) /* These defines are used specifically with the atom/pass_flags bitmask diff --git a/code/__DEFINES/dcs/signals/signals_bitrunning.dm b/code/__DEFINES/dcs/signals/signals_bitrunning.dm index 150c26080221c..23461a90a1108 100644 --- a/code/__DEFINES/dcs/signals/signals_bitrunning.dm +++ b/code/__DEFINES/dcs/signals/signals_bitrunning.dm @@ -42,8 +42,14 @@ #define COMSIG_BITRUNNER_STATION_SPAWN "bitrunner_station_spawn" // Ladder + /// from /obj/structure/hololadder/disconnect() #define COMSIG_BITRUNNER_LADDER_SEVER "bitrunner_ladder_sever" /// Sent when a server console is emagged #define COMSIG_BITRUNNER_SERVER_EMAGGED "bitrunner_server_emagged" + +// Spawners + +/// from /obj/effect/mob_spawn/ghost_role/human/virtual_domain/proc/artificial_spawn() : (mob/living/runner) +#define COMSIG_BITRUNNER_SPAWNED "bitrunner_spawned" diff --git a/code/__DEFINES/dcs/signals/signals_object.dm b/code/__DEFINES/dcs/signals/signals_object.dm index d92408f2192e7..d34de1e356792 100644 --- a/code/__DEFINES/dcs/signals/signals_object.dm +++ b/code/__DEFINES/dcs/signals/signals_object.dm @@ -340,6 +340,10 @@ #define COMSIG_GUN_CHAMBER_PROCESSED "gun_chamber_processed" ///called in /obj/item/gun/ballistic/process_chamber (casing) #define COMSIG_CASING_EJECTED "casing_ejected" +///called in /obj/item/gun/ballistic/sawoff(mob/user, obj/item/saw, handle_modifications) : (mob/user) +#define COMSIG_GUN_BEING_SAWNOFF "gun_being_sawnoff" + #define COMPONENT_CANCEL_SAWING_OFF (1<<0) +#define COMSIG_GUN_SAWN_OFF "gun_sawn_off" // Jetpack things // Please kill me diff --git a/code/__DEFINES/tools.dm b/code/__DEFINES/tools.dm index 7809610e6abec..2348bd49f194b 100644 --- a/code/__DEFINES/tools.dm +++ b/code/__DEFINES/tools.dm @@ -8,6 +8,7 @@ #define TOOL_ANALYZER "analyzer" #define TOOL_MINING "mining" #define TOOL_SHOVEL "shovel" +#define TOOL_DRAPES "surgicaldrapes" #define TOOL_RETRACTOR "retractor" #define TOOL_HEMOSTAT "hemostat" #define TOOL_CAUTERY "cautery" diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index c04b57241c7e0..ff73ecb3302b4 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -1016,8 +1016,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// things with this trait are treated as having no access in /atom/movable/proc/check_access(obj/item) #define TRAIT_ALWAYS_NO_ACCESS "alwaysnoaccess" -/// This human wants to see the color of their glasses, for some reason -#define TRAIT_SEE_GLASS_COLORS "see_glass_colors" +///Used by wearable_client_colour to determine whether the mob wants to have the colours of the screen affected by worn items (some still do regardless). +#define TRAIT_SEE_WORN_COLOURS "see_worn_colour" // Radiation defines diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 40915672ef960..53b8b95997cc9 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -241,12 +241,7 @@ if(last_char_group == SPACES_DETECTED) t_out = copytext_char(t_out, 1, -1) //removes the last character (in this case a space) - for(var/bad_name in list("space","floor","wall","r-wall","monkey","unknown","inactive ai")) //prevents these common metagamey names - if(cmptext(t_out,bad_name)) - return //(not case sensitive) - - // Protects against names containing IC chat prohibited words. - if(is_ic_filtered(t_out) || is_soft_ic_filtered(t_out)) + if(!filter_name_ic(t_out)) return return t_out @@ -257,6 +252,39 @@ #undef LETTERS_DETECTED +/// Much more permissive version of reject_bad_name(). +/// Returns a trimmed string or null if the name is invalid. +/// Allows most characters except for IC chat prohibited words. +/proc/permissive_sanitize_name(value) + if(!istext(value)) // Not a string + return + + var/name_length = length(value) + if(name_length < 3) // Too short + return + + if(name_length > 3 * MAX_NAME_LEN) // Bad input + return + + var/trimmed = trim(value, MAX_NAME_LEN) + if(!filter_name_ic(trimmed)) // Contains IC chat prohibited words + return + + return trim_reduced(trimmed) + + +/// Helper proc to check if a name is valid for the IC filter +/proc/filter_name_ic(name) + for(var/bad_name in list("space", "floor", "wall", "r-wall", "monkey", "unknown", "inactive ai")) //prevents these common metagamey names + if(cmptext(name, bad_name)) + return FALSE //(not case sensitive) + + // Protects against names containing IC chat prohibited words. + if(is_ic_filtered(name) || is_soft_ic_filtered(name)) + return FALSE + + return TRUE + //html_encode helper proc that returns the smallest non null of two numbers //or 0 if they're both null (needed because of findtext returning 0 when a value is not present) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index e7c6368d4d5fd..faaabd77ba134 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -149,6 +149,7 @@ GLOBAL_LIST_INIT(scarySounds, list( 'sound/weapons/armbomb.ogg', 'sound/weapons/taser.ogg', 'sound/weapons/thudswoosh.ogg', + 'sound/weapons/shove.ogg', )) diff --git a/code/_globalvars/lists/quirks.dm b/code/_globalvars/lists/quirks.dm index 882e556a801f6..22ef830ea773d 100644 --- a/code/_globalvars/lists/quirks.dm +++ b/code/_globalvars/lists/quirks.dm @@ -11,7 +11,7 @@ GLOBAL_LIST_INIT(nearsighted_glasses, list( )) ///Options for the prosthetic limb quirk to choose from -GLOBAL_LIST_INIT(limb_choice, list( +GLOBAL_LIST_INIT(prosthetic_limb_choice, list( "Left Arm" = /obj/item/bodypart/arm/left/robot/surplus, "Right Arm" = /obj/item/bodypart/arm/right/robot/surplus, "Left Leg" = /obj/item/bodypart/leg/left/robot/surplus, diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 3d01e86d17e1b..3696f42e77783 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -429,7 +429,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_ROUGHRIDER" = TRAIT_ROUGHRIDER, "TRAIT_SABRAGE_PRO" = TRAIT_SABRAGE_PRO, "TRAIT_SECURITY_HUD" = TRAIT_SECURITY_HUD, - "TRAIT_SEE_GLASS_COLORS" = TRAIT_SEE_GLASS_COLORS, + "TRAIT_SEE_WORN_COLOURS" = TRAIT_SEE_WORN_COLOURS, "TRAIT_SELF_AWARE" = TRAIT_SELF_AWARE, "TRAIT_SETTLER" = TRAIT_SETTLER, "TRAIT_SHAVED" = TRAIT_SHAVED, diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 117c8e162d607..1d7e07f7b9912 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -197,7 +197,7 @@ * A backwards depth-limited breadth-first-search to see if the target is * logically "in" anything adjacent to us. */ -/atom/movable/proc/CanReach(atom/ultimate_target, obj/item/tool, view_only = FALSE) +/atom/proc/CanReach(atom/ultimate_target, obj/item/tool, view_only = FALSE) var/list/direct_access = DirectAccess() var/depth = 1 + (view_only ? STORAGE_VIEW_DEPTH : INVENTORY_DEPTH) @@ -231,7 +231,7 @@ return FALSE -/atom/movable/proc/DirectAccess() +/atom/proc/DirectAccess() return list(src, loc) /mob/DirectAccess(atom/target) diff --git a/code/_onclick/click_ctrl.dm b/code/_onclick/click_ctrl.dm index 72f67b4271ed7..ebb22b9eafd11 100644 --- a/code/_onclick/click_ctrl.dm +++ b/code/_onclick/click_ctrl.dm @@ -34,7 +34,7 @@ SHOULD_NOT_OVERRIDE(TRUE) . = ..() - if(. || world.time < next_move || !can_perform_action(target, NOT_INSIDE_TARGET | SILENT_ADJACENCY)) + if(. || world.time < next_move || !can_perform_action(target, NOT_INSIDE_TARGET | SILENT_ADJACENCY | ALLOW_RESTING | FORBID_TELEKINESIS_REACH)) return . = TRUE diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index 1bbc20d49133f..aa23d5a57eaa0 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -37,17 +37,13 @@ // only if both dragged object & receiver agree to do checks do we proceed var/combined_atom_flags = interaction_flags_atom | over.interaction_flags_atom if(!(combined_atom_flags & INTERACT_ATOM_MOUSEDROP_IGNORE_CHECKS)) - if(!(combined_atom_flags & INTERACT_ATOM_MOUSEDROP_IGNORE_ADJACENT)) - if(!Adjacent(user) || !over.Adjacent(user)) - return // should stop you from dragging through windows + //Check for adjacency + if(!(combined_atom_flags & INTERACT_ATOM_MOUSEDROP_IGNORE_ADJACENT) && (!CanReach(user) || !over.CanReach(user))) + return // should stop you from dragging through windows if(!(combined_atom_flags & INTERACT_ATOM_MOUSEDROP_IGNORE_USABILITY)) - var/combined_flags = interaction_flags_mouse_drop | over.interaction_flags_mouse_drop - if(combined_atom_flags & INTERACT_ATOM_MOUSEDROP_IGNORE_ADJACENT) - combined_flags |= BYPASS_ADJACENCY - else - combined_flags |= SILENT_ADJACENCY - if(!user.can_perform_action(src, combined_flags)) + //Bypass adjacency cause we already checked for it above + if(!user.can_perform_action(src, interaction_flags_mouse_drop | over.interaction_flags_mouse_drop | BYPASS_ADJACENCY)) return // is the mob not able to drag the object with both sides conditions applied mouse_drop_dragged(over, user, src_location, over_location, params) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index beeb1599f2038..a5c2035b9394d 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -8,6 +8,11 @@ * * [/obj/item/proc/afterattack]. The return value does not matter. */ /obj/item/proc/melee_attack_chain(mob/user, atom/target, params) + //Proxy replaces src cause it returns an atom that will attack the target on our behalf + var/obj/item/source_atom = get_proxy_attacker_for(target, user) + if(source_atom != src) //if we are someone else then call that attack chain else we can proceed with the usual stuff + return source_atom.melee_attack_chain(user, target, params) + var/list/modifiers = params2list(params) var/is_right_clicking = LAZYACCESS(modifiers, RIGHT_CLICK) diff --git a/code/controllers/subsystem/bitrunning.dm b/code/controllers/subsystem/bitrunning.dm index 2b303911e42c9..78afb101945b0 100644 --- a/code/controllers/subsystem/bitrunning.dm +++ b/code/controllers/subsystem/bitrunning.dm @@ -24,7 +24,8 @@ SUBSYSTEM_DEF(bitrunning) var/can_view = domain.difficulty < scanner_tier && domain.cost <= points + 5 var/can_view_reward = domain.difficulty < (scanner_tier + 1) && domain.cost <= points + 3 - levels += list(list( + UNTYPED_LIST_ADD(levels, list( + "announce_ghosts"= domain.announce_to_ghosts, "cost" = domain.cost, "desc" = can_view ? domain.desc : "Limited scanning capabilities. Cannot infer domain details.", "difficulty" = domain.difficulty, diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index bd782968abef2..45354d4bd6164 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -13,7 +13,8 @@ GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list( list(/datum/quirk/item_quirk/clown_enjoyer, /datum/quirk/item_quirk/mime_fan), list(/datum/quirk/bad_touch, /datum/quirk/friendly), list(/datum/quirk/extrovert, /datum/quirk/introvert), - list(/datum/quirk/prosthetic_limb, /datum/quirk/quadruple_amputee, /datum/quirk/transhumanist, /datum/quirk/body_purist), + list(/datum/quirk/prosthetic_limb, /datum/quirk/quadruple_amputee, /datum/quirk/body_purist), + list(/datum/quirk/transhumanist, /datum/quirk/body_purist), list(/datum/quirk/prosthetic_organ, /datum/quirk/tin_man, /datum/quirk/body_purist), list(/datum/quirk/quadruple_amputee, /datum/quirk/paraplegic, /datum/quirk/hemiplegic), list(/datum/quirk/quadruple_amputee, /datum/quirk/frail), diff --git a/code/datums/components/bayonet_attachable.dm b/code/datums/components/bayonet_attachable.dm new file mode 100644 index 0000000000000..4b2442bea50bd --- /dev/null +++ b/code/datums/components/bayonet_attachable.dm @@ -0,0 +1,212 @@ +/** + * Component which allows you to attach a bayonet to an item, + * be it a piece of clothing or a tool. + */ +/datum/component/bayonet_attachable + /// Whenever we can remove the bayonet with a screwdriver + var/removable = TRUE + /// If passed, we wil simply update our item's icon_state when a bayonet is attached. + /// Formatted as parent_base_state-[bayonet_icon_state-state] + var/bayonet_icon_state + /// If passed, we will use a specific overlay instead of using the knife itself + /// The state to take from the bayonet overlay icon if supplied. + var/bayonet_overlay + /// This is the icon file it grabs the overlay from. + var/bayonet_overlay_icon + /// Offsets for the bayonet overlay + var/offset_x = 0 + var/offset_y = 0 + /// If this component allows sawing off the parent gun/should be deleted when the parent gun is sawn off + var/allow_sawnoff = FALSE + + // Internal vars + /// Currently attached bayonet + var/obj/item/bayonet + /// Static typecache of all knives that can become bayonets + var/static/list/valid_bayonets = typecacheof(list(/obj/item/knife/combat)) + +/datum/component/bayonet_attachable/Initialize( + obj/item/starting_bayonet, + offset_x = 0, + offset_y = 0, + removable = TRUE, + bayonet_icon_state = null, + bayonet_overlay = "bayonet", + bayonet_overlay_icon = 'icons/obj/weapons/guns/bayonets.dmi', + allow_sawnoff = FALSE +) + + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + + src.removable = removable + src.bayonet_icon_state = bayonet_icon_state + src.bayonet_overlay = bayonet_overlay + src.bayonet_overlay_icon = bayonet_overlay_icon + src.offset_x = offset_x + src.offset_y = offset_y + src.allow_sawnoff = allow_sawnoff + + if (istype(starting_bayonet)) + add_bayonet(starting_bayonet) + +/datum/component/bayonet_attachable/Destroy(force) + if(bayonet) + remove_bayonet() + return ..() + +/datum/component/bayonet_attachable/RegisterWithParent() + RegisterSignal(parent, COMSIG_OBJ_DECONSTRUCT, PROC_REF(on_parent_deconstructed)) + RegisterSignal(parent, COMSIG_ATOM_EXITED, PROC_REF(on_item_exit)) + RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_SCREWDRIVER), PROC_REF(on_screwdriver)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_ICON_STATE, PROC_REF(on_update_icon_state)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_update_overlays)) + RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_QDELETING, PROC_REF(on_parent_deleted)) + RegisterSignal(parent, COMSIG_ITEM_PRE_ATTACK, PROC_REF(on_pre_attack)) + RegisterSignal(parent, COMSIG_GUN_BEING_SAWNOFF, PROC_REF(on_being_sawnoff)) + RegisterSignal(parent, COMSIG_GUN_SAWN_OFF, PROC_REF(on_sawn_off)) + +/datum/component/bayonet_attachable/UnregisterFromParent() + UnregisterSignal(parent, list( + COMSIG_OBJ_DECONSTRUCT, + COMSIG_ATOM_EXITED, + COMSIG_ATOM_TOOL_ACT(TOOL_SCREWDRIVER), + COMSIG_ATOM_UPDATE_ICON_STATE, + COMSIG_ATOM_UPDATE_OVERLAYS, + COMSIG_ATOM_ATTACKBY, + COMSIG_ATOM_EXAMINE, + COMSIG_QDELETING, + COMSIG_ITEM_PRE_ATTACK, + COMSIG_GUN_BEING_SAWNOFF, + COMSIG_GUN_SAWN_OFF, + )) + +/datum/component/bayonet_attachable/proc/on_examine(obj/item/source, mob/examiner, list/examine_list) + SIGNAL_HANDLER + + if(isnull(bayonet)) + examine_list += "It has a bayonet lug on it." + return + + examine_list += "It has \a [bayonet] [removable ? "" : "permanently "]affixed to it." + if(removable) + examine_list += span_info("[bayonet] looks like it can be unscrewed from [bayonet].") + +/datum/component/bayonet_attachable/proc/on_pre_attack(obj/item/source, atom/target, mob/living/user, params) + SIGNAL_HANDLER + + if (isnull(bayonet) || !user.combat_mode) + return NONE + + INVOKE_ASYNC(bayonet, TYPE_PROC_REF(/obj/item, melee_attack_chain), user, target, params) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/datum/component/bayonet_attachable/proc/on_attackby(obj/item/source, obj/item/attacking_item, mob/attacker, params) + SIGNAL_HANDLER + + if(!is_type_in_typecache(attacking_item, valid_bayonets)) + return + + if(bayonet) + source.balloon_alert(attacker, "already has \a [bayonet]!") + return + + if(!attacker.transferItemToLoc(attacking_item, source)) + return + + add_bayonet(attacking_item, attacker) + source.balloon_alert(attacker, "attached") + return COMPONENT_NO_AFTERATTACK + +/datum/component/bayonet_attachable/proc/add_bayonet(obj/item/new_bayonet, mob/attacher) + if(bayonet) + CRASH("[type] tried to add a new bayonet when it already had one.") + + bayonet = new_bayonet + if(bayonet.loc != parent) + bayonet.forceMove(parent) + var/obj/item/item_parent = parent + item_parent.update_appearance() + +/datum/component/bayonet_attachable/proc/remove_bayonet() + bayonet = null + var/obj/item/item_parent = parent + item_parent.update_appearance() + +/datum/component/bayonet_attachable/proc/on_item_exit(obj/item/source, atom/movable/gone, direction) + SIGNAL_HANDLER + + if(gone == bayonet) + remove_bayonet() + +/datum/component/bayonet_attachable/proc/on_parent_deconstructed(obj/item/source, disassembled) + SIGNAL_HANDLER + + if(QDELETED(bayonet) || !removable) + remove_bayonet() + return + + bayonet.forceMove(source.drop_location()) + +/datum/component/bayonet_attachable/proc/on_screwdriver(obj/item/source, mob/user, obj/item/tool) + SIGNAL_HANDLER + + if(!bayonet || !removable) + return + + INVOKE_ASYNC(src, PROC_REF(unscrew_bayonet), source, user, tool) + return ITEM_INTERACT_BLOCKING + +/datum/component/bayonet_attachable/proc/unscrew_bayonet(obj/item/source, mob/user, obj/item/tool) + tool?.play_tool_sound(source) + source.balloon_alert(user, "unscrewed [bayonet]") + + var/obj/item/to_remove = bayonet + to_remove.forceMove(source.drop_location()) + if(source.Adjacent(user) && !issilicon(user)) + user.put_in_hands(to_remove) + +/datum/component/bayonet_attachable/proc/on_update_overlays(obj/item/source, list/overlays) + SIGNAL_HANDLER + + if(!bayonet_overlay || !bayonet_overlay_icon) + return + + if(!bayonet) + return + + var/mutable_appearance/bayonet_appearance = mutable_appearance(bayonet_overlay_icon, bayonet_overlay) + bayonet_appearance.pixel_x = offset_x + bayonet_appearance.pixel_y = offset_y + overlays += bayonet_appearance + +/datum/component/bayonet_attachable/proc/on_update_icon_state(obj/item/source) + SIGNAL_HANDLER + + if(!bayonet_icon_state) + return + + var/base_state = source.base_icon_state || initial(source.icon_state) + if(bayonet) + source.icon_state = "[base_state]-[bayonet_icon_state]" + else if(source.icon_state != base_state) + source.icon_state = base_state + +/datum/component/bayonet_attachable/proc/on_parent_deleted(obj/item/source) + SIGNAL_HANDLER + QDEL_NULL(bayonet) + +/datum/component/bayonet_attachable/proc/on_being_sawnoff(obj/item/source, mob/user) + SIGNAL_HANDLER + + if (!bayonet || allow_sawnoff) + return + source.balloon_alert(user, "bayonet must be removed!") + return COMPONENT_CANCEL_SAWING_OFF + +/datum/component/bayonet_attachable/proc/on_sawn_off(obj/item/source, mob/user) + SIGNAL_HANDLER + if (!allow_sawnoff) + qdel(src) diff --git a/code/datums/components/effect_remover.dm b/code/datums/components/effect_remover.dm index a02be73f5684e..a67962250dbe1 100644 --- a/code/datums/components/effect_remover.dm +++ b/code/datums/components/effect_remover.dm @@ -46,7 +46,7 @@ return ..() /datum/component/effect_remover/RegisterWithParent() - RegisterSignal(parent, COMSIG_ITEM_ATTACK_EFFECT, PROC_REF(try_remove_effect)) + RegisterSignal(parent, COMSIG_ITEM_INTERACTING_WITH_ATOM, PROC_REF(try_remove_effect)) if(tip_text) var/obj/item/item_parent = parent @@ -54,20 +54,21 @@ RegisterSignal(parent, COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET, PROC_REF(add_item_context)) /datum/component/effect_remover/UnregisterFromParent() - UnregisterSignal(parent, list(COMSIG_ITEM_ATTACK_EFFECT, COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET)) + UnregisterSignal(parent, list(COMSIG_ITEM_INTERACTING_WITH_ATOM, COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET)) /* - * Signal proc for [COMSIG_ITEM_ATTACK_EFFECT]. + * Signal proc for [COMSIG_ITEM_INTERACTING_WITH_ATOM]. */ -/datum/component/effect_remover/proc/try_remove_effect(datum/source, obj/effect/target, mob/living/user, params) + +/datum/component/effect_remover/proc/try_remove_effect(datum/source, mob/living/user, atom/target, params) SIGNAL_HANDLER if(!isliving(user)) - return + return NONE - if(effects_we_clear[target.type]) // Make sure we get all subtypes and everything + if(is_type_in_typecache(target, effects_we_clear)) // Make sure we get all subtypes and everything INVOKE_ASYNC(src, PROC_REF(do_remove_effect), target, user) - return COMPONENT_NO_AFTERATTACK + return ITEM_INTERACT_SUCCESS /* * Actually removes the effect, invoking our on_clear_callback before it's deleted. diff --git a/code/datums/components/material/material_container.dm b/code/datums/components/material/material_container.dm index ffcf81feacefd..207e1d080f768 100644 --- a/code/datums/components/material/material_container.dm +++ b/code/datums/components/material/material_container.dm @@ -207,8 +207,9 @@ * - [weapon][obj/item]: the item you are trying to insert * - multiplier: The multiplier for the materials being inserted * - context: the atom performing the operation, this is the last argument sent in COMSIG_MATCONTAINER_ITEM_CONSUMED and is used mostly for silo logging + * * - delete_item: should we delete the item after its materials are consumed. does not apply to stacks if they were split due to lack of space */ -/datum/component/material_container/proc/insert_item(obj/item/weapon, multiplier = 1, atom/context = parent) +/datum/component/material_container/proc/insert_item(obj/item/weapon, multiplier = 1, atom/context = parent, delete_item = TRUE) if(QDELETED(weapon)) return MATERIAL_INSERT_ITEM_NO_MATS multiplier = CEILING(multiplier, 0.01) @@ -232,14 +233,11 @@ material_amount = get_item_material_amount(target) * multiplier material_amount = OPTIMAL_COST(material_amount) - //not enough space, time to bail - if(!has_space(material_amount)) - return MATERIAL_INSERT_ITEM_NO_SPACE - //do the insert var/last_inserted_id = insert_item_materials(target, multiplier, context) if(!isnull(last_inserted_id)) - qdel(target) //item gone + if(delete_item || target != weapon) //we could have split the stack ourself + qdel(target) //item gone return material_amount else if(!isnull(item_stack) && item_stack != target) //insertion failed, merge the split stack back into the original var/obj/item/stack/inserting_stack = target @@ -266,188 +264,178 @@ . = 0 //All items that do not have any contents - var/list/obj/item/child_items = list() - //All items that do have contents but they were already processed by the above list - var/list/obj/item/parent_items = list(held_item) + var/list/obj/item/items = list(held_item) //is this the first item we are ever processing var/first_checks = TRUE + //list of items to delete + var/list/obj/item/to_delete = list() //The status of the last insert attempt var/inserted = 0 //All messages to be displayed to chat var/list/chat_msgs = list() //differs from held_item when using TK var/active_held = user.get_active_held_item() - //storage items to retrive items from - var/static/list/storage_items - if(isnull(storage_items)) - storage_items = list( - /obj/item/storage/backpack, - /obj/item/storage/bag, - /obj/item/storage/box, - ) - - //1st iteration consumes all items that do not have contents inside - //2nd iteration consumes items who do have contents inside(but they were consumed in the 1st iteration so its empty now) - for(var/i in 1 to 2) + + while(items.len) //no point inserting more items if(inserted == MATERIAL_INSERT_ITEM_NO_SPACE) break - //transfer all items for processing - if(!parent_items.len) - break - child_items += parent_items - parent_items.Cut() - - while(child_items.len) - //Pop the 1st item out from the list - var/obj/item/target_item = child_items[1] - child_items -= target_item + //Pop the 1st item out from the list + var/obj/item/target_item = items[1] + items -= target_item - //e.g. projectiles inside bullets are not objects - if(!istype(target_item)) - continue - //can't allow abstract, hologram items - if((target_item.item_flags & ABSTRACT) || (target_item.flags_1 & HOLOGRAM_1)) + //e.g. projectiles inside bullets are not objects + if(!istype(target_item)) + continue + //can't allow abstract, hologram items + if((target_item.item_flags & ABSTRACT) || (target_item.flags_1 & HOLOGRAM_1)) + continue + //user defined conditions + if(SEND_SIGNAL(src, COMSIG_MATCONTAINER_PRE_USER_INSERT, target_item, user) & MATCONTAINER_BLOCK_INSERT) + continue + //item is either indestructible, not allowed for redemption or not in the allowed types + if((target_item.resistance_flags & INDESTRUCTIBLE) || (target_item.item_flags & NO_MAT_REDEMPTION) || (allowed_item_typecache && !is_type_in_typecache(target_item, allowed_item_typecache))) + if(!(mat_container_flags & MATCONTAINER_SILENT)) + var/list/status_data = chat_msgs["[MATERIAL_INSERT_ITEM_FAILURE]"] || list() + var/list/item_data = status_data[target_item.name] || list() + item_data["count"] += 1 + status_data[target_item.name] = item_data + chat_msgs["[MATERIAL_INSERT_ITEM_FAILURE]"] = status_data + + if(target_item.resistance_flags & INDESTRUCTIBLE) + if(target_item != active_held) //move it out of any storage medium its in so it doesn't get consumed with its parent, but only if that storage medium is not our hand + target_item.forceMove(get_turf(context)) continue - //user defined conditions - if(SEND_SIGNAL(src, COMSIG_MATCONTAINER_PRE_USER_INSERT, target_item, user) & MATCONTAINER_BLOCK_INSERT) + + //storage items usually come here + //this is so players can insert items from their bags into machines for convinience + if(!target_item.atom_storage || !target_item.contents.len) continue - //item is either indestructible, not allowed for redemption or not in the allowed types - if((target_item.resistance_flags & INDESTRUCTIBLE) || (target_item.item_flags & NO_MAT_REDEMPTION) || (allowed_item_typecache && !is_type_in_typecache(target_item, allowed_item_typecache))) - if(!(mat_container_flags & MATCONTAINER_SILENT) && i == 1) //count only child items the 1st time around - var/list/status_data = chat_msgs["[MATERIAL_INSERT_ITEM_FAILURE]"] || list() - var/list/item_data = status_data[target_item.name] || list() - item_data["count"] += 1 - status_data[target_item.name] = item_data - chat_msgs["[MATERIAL_INSERT_ITEM_FAILURE]"] = status_data - - if(target_item.resistance_flags & INDESTRUCTIBLE) - if(i == 1 && target_item != active_held) //move it out of any storage medium its in so it doesn't get consumed with its parent, but only if that storage medium is not our hand - target_item.forceMove(get_turf(context)) - continue - //storage items usually come here but we make the exception only on the 1st iteration - //this is so players can insert items from their bags into machines for convinience - if(!is_type_in_list(target_item, storage_items)) - continue - else if(!target_item.contents.len || i == 2) - continue - //at this point we can check if we have enough for all items & other stuff - if(first_checks) - //duffle bags needs to be unzipped - if(target_item.atom_storage?.locked) + //at this point we can check if we have enough for all items & other stuff + if(first_checks) + //duffle bags needs to be unzipped + if(target_item.atom_storage?.locked) + if(!(mat_container_flags & MATCONTAINER_SILENT)) + to_chat(user, span_warning("[target_item] has its storage locked")) + return + + //anything that isn't a stack cannot be split so find out if we have enough space, we don't want to consume half the contents of an object & leave it in a broken state + //for duffle bags and other storage items we can check for space 1 item at a time + if(!isstack(target_item) && !target_item.atom_storage) + var/total_amount = 0 + for(var/obj/item/weapon as anything in target_item.get_all_contents_type(/obj/item)) + total_amount += get_item_material_amount(weapon) + if(!has_space(total_amount)) if(!(mat_container_flags & MATCONTAINER_SILENT)) - to_chat(user, span_warning("[target_item] has its storage locked")) + to_chat(user, span_warning("[parent] does not have enough space for [target_item]!")) return - //anything that isn't a stack cannot be split so find out if we have enough space, we don't want to consume half the contents of an object & leave it in a broken state - //for duffle bags and other storage items we can check for space 1 item at a time - if(!isstack(target_item) && !is_type_in_list(target_item, storage_items)) - var/total_amount = 0 - for(var/obj/item/weapon as anything in target_item.get_all_contents_type(/obj/item)) - total_amount += get_item_material_amount(weapon) - if(!has_space(total_amount)) - if(!(mat_container_flags & MATCONTAINER_SILENT)) - to_chat(user, span_warning("[parent] does not have enough space for [target_item]!")) - return - - first_checks = FALSE - - //All hard checks have passed, at this point we can consume the item - //If it has children then we will process them first and then the item in the 2nd round - //This is done so we don't delete the children when the parent is consumed - //We only do this on the 1st iteration so we don't re-iterate through its children again - if(target_item.contents.len && i == 1) - if(target_item.atom_storage?.locked) //can't access contents of locked storage(like duffle bags) - continue - //process children - child_items += target_item.contents - //in the 2nd round only after its children are consumed do we consume this next, FIFO order - parent_items.Insert(1, target_item) - //leave it here till we get to its children - continue + first_checks = FALSE - //if stack, check if we want to read precise amount of sheets to insert - var/obj/item/stack/item_stack = null - if(isstack(target_item) && precise_insertion) - var/atom/current_parent = parent - item_stack = target_item - var/requested_amount = tgui_input_number(user, "How much do you want to insert?", "Inserting [item_stack.singular_name]s", item_stack.amount, item_stack.amount) - if(!requested_amount || QDELETED(target_item) || QDELETED(user) || QDELETED(src)) - continue - if(parent != current_parent || user.get_active_held_item() != active_held) - continue - if(requested_amount != item_stack.amount) //only split if its not the whole amount - target_item = fast_split_stack(item_stack, requested_amount) //split off the requested amount - requested_amount = 0 - - //is this item a stack and was it split by the player? - var/was_stack_split = !isnull(item_stack) && item_stack != target_item - //if it was split then item_stack has the reference to the original stack/item - var/original_item = was_stack_split ? item_stack : target_item - //if this item is not the one the player is holding then don't remove it from their hand - if(original_item != active_held) - original_item = null - if(!isnull(original_item) && !user.temporarilyRemoveItemFromInventory(original_item)) //remove from hand(if split remove the original stack else the target) - return - - //insert the item - var/item_name = target_item.name - var/item_count = 1 - var/is_stack = FALSE - if(isstack(target_item)) - var/obj/item/stack/the_stack = target_item - item_name = the_stack.singular_name - item_count = the_stack.amount - is_stack = TRUE - inserted = insert_item(target_item, 1, context) - if(inserted > 0) - . += inserted - inserted /= SHEET_MATERIAL_AMOUNT // display units inserted as sheets for improved readability - - //stack was either split by the container(!QDELETED(target_item) means the container only consumed a part of it) or by the player, put whats left back of the original stack back in players hand - if((!QDELETED(target_item) || was_stack_split)) - - //stack was split by player and that portion was not fully consumed, merge whats left back with the original stack - if(!QDELETED(target_item) && was_stack_split) - var/obj/item/stack/inserting_stack = target_item - item_stack.add(inserting_stack.amount) - qdel(inserting_stack) - - //was this the original item in the players hand? put what's left back in the player's hand - if(!isnull(original_item)) - user.put_in_active_hand(original_item) - - //collect all messages to print later - var/list/status_data = chat_msgs["[MATERIAL_INSERT_ITEM_SUCCESS]"] || list() - var/list/item_data = status_data[item_name] || list() - item_data["count"] += item_count - item_data["amount"] += inserted - item_data["stack"] = is_stack - status_data[item_name] = item_data - chat_msgs["[MATERIAL_INSERT_ITEM_SUCCESS]"] = status_data - - else - //collect all messages to print later - var/list/status_data = chat_msgs["[inserted]"] || list() - var/list/item_data = status_data[item_name] || list() - item_data["count"] += item_count - status_data[item_name] = item_data - chat_msgs["[inserted]"] = status_data - - //player split the stack by the requested amount but even that split amount could not be salvaged. merge it back with the original - if(!isnull(item_stack) && was_stack_split) + //if stack, check if we want to read precise amount of sheets to insert + var/obj/item/stack/item_stack = null + if(isstack(target_item) && precise_insertion) + var/atom/current_parent = parent + item_stack = target_item + var/requested_amount = tgui_input_number(user, "How much do you want to insert?", "Inserting [item_stack.singular_name]s", item_stack.amount, item_stack.amount) + if(!requested_amount || QDELETED(target_item) || QDELETED(user) || QDELETED(src)) + continue + if(parent != current_parent || user.get_active_held_item() != active_held) + continue + if(requested_amount != item_stack.amount) //only split if its not the whole amount + target_item = fast_split_stack(item_stack, requested_amount) //split off the requested amount + requested_amount = 0 + + //is this item a stack and was it split by the player? + var/was_stack_split = !isnull(item_stack) && item_stack != target_item + //if it was split then item_stack has the reference to the original stack/item + var/obj/item/original_item = was_stack_split ? item_stack : target_item + //if this item is not the one the player is holding then don't remove it from their hand + if(original_item != active_held) + original_item = null + if(!isnull(original_item) && !user.temporarilyRemoveItemFromInventory(original_item)) //remove from hand(if split remove the original stack else the target) + return + + //insert the item + var/item_name = target_item.name + var/item_count = 1 + var/is_stack = FALSE + var/obj/item/stack/the_stack + if(isstack(target_item)) + the_stack = target_item + item_name = the_stack.singular_name + item_count = the_stack.amount + is_stack = TRUE + + //we typically don't want to consume bags, boxes but only their contents. so we skip processing + inserted = !target_item.atom_storage ? insert_item(target_item, 1, context, is_stack) : 0 + if(inserted > 0) + . += inserted + inserted /= SHEET_MATERIAL_AMOUNT // display units inserted as sheets for improved readability + + //collect all messages to print later + var/list/status_data = chat_msgs["[MATERIAL_INSERT_ITEM_SUCCESS]"] || list() + var/list/item_data = status_data[item_name] || list() + item_data["count"] += item_count + item_data["amount"] += inserted + item_data["stack"] = is_stack + status_data[item_name] = item_data + chat_msgs["[MATERIAL_INSERT_ITEM_SUCCESS]"] = status_data + + //delete the item or merge stacks if any left over + if(is_stack) + //player split it & machine further split that due to lack of space? merge with remaining stack + if(!QDELETED(target_item) && was_stack_split) var/obj/item/stack/inserting_stack = target_item item_stack.add(inserting_stack.amount) qdel(inserting_stack) - //was this the original item in the players hand? put it back because we coudn't salvage it - if(!isnull(original_item)) + //was this the original item in the players hand? put what's left back in the player's hand + if(!QDELETED(original_item)) user.put_in_active_hand(original_item) - //we can stop here as remaining items will fail to insert as well - if(inserted == MATERIAL_INSERT_ITEM_NO_SPACE) - break + //skip processing children & other stuff. irrelevant for stacks + continue + + //queue the object for deletion + to_delete += target_item + else + //collect all messages to print later + var/list/status_data = chat_msgs["[inserted]"] || list() + var/list/item_data = status_data[item_name] || list() + item_data["count"] += item_count + status_data[item_name] = item_data + chat_msgs["[inserted]"] = status_data + + //player split the stack by the requested amount but even that split amount could not be salvaged. merge it back with the original + if(was_stack_split) + var/obj/item/stack/inserting_stack = target_item + item_stack.add(inserting_stack.amount) + qdel(inserting_stack) + + //was this the original item in the players hand? put it back because we coudn't salvage it + if(!QDELETED(original_item)) + user.put_in_active_hand(original_item) + + //we can stop here as remaining items will fail to insert as well + if(inserted == MATERIAL_INSERT_ITEM_NO_SPACE) + break + + //we failed to process the item so don't bother going into its contents + //but if we are dealing with storage items like bags, boxes etc then we make a exception + if(!target_item.atom_storage) + continue + + //If any mats were consumed we can proceed to delete the parent + //If it has children then we will process them first in the 2nd round + //This is done so we don't delete the children when the parent is consumed + //We only do this on the 1st iteration so we don't re-iterate through its children again + if(target_item.contents.len) + if(target_item.atom_storage?.locked) //can't access contents of locked storage(like duffle bags) + continue + //process children + items += target_item.contents //we now summarize the chat msgs collected if(!(mat_container_flags & MATCONTAINER_SILENT)) @@ -475,6 +463,11 @@ if(MATERIAL_INSERT_ITEM_FAILURE) //could be because the material type was not accepted or other stuff to_chat(user, span_warning("[item_name][count > 1 ? "s were" : " was"] rejected by [parent]!")) + //finally delete the items + for(var/obj/item/deleting as anything in to_delete) + if(!QDELETED(deleting)) //deleting parents also delete their children so we check + qdel(deleting) + /// Proc that allows players to fill the parent with mats /datum/component/material_container/proc/on_attackby(datum/source, obj/item/weapon, mob/living/user) SIGNAL_HANDLER diff --git a/code/datums/components/material/remote_materials.dm b/code/datums/components/material/remote_materials.dm index 568b018e58b2b..d2804f97df120 100644 --- a/code/datums/components/material/remote_materials.dm +++ b/code/datums/components/material/remote_materials.dm @@ -144,12 +144,10 @@ handles linking back and forth. return COMPONENT_NO_AFTERATTACK -/datum/component/remote_materials/proc/OnMultitool(datum/source, mob/user, obj/item/I) +/datum/component/remote_materials/proc/OnMultitool(datum/source, mob/user, obj/item/multitool/M) SIGNAL_HANDLER - if(!I.multitool_check_buffer(user, I)) - return ITEM_INTERACT_BLOCKING - var/obj/item/multitool/M = I + . = ITEM_INTERACT_BLOCKING if (!QDELETED(M.buffer) && istype(M.buffer, /obj/machinery/ore_silo)) if (silo == M.buffer) to_chat(user, span_warning("[parent] is already connected to [silo]!")) diff --git a/code/datums/components/plumbing/_plumbing.dm b/code/datums/components/plumbing/_plumbing.dm index 3e5528b1095a3..e2f7b2880c4bd 100644 --- a/code/datums/components/plumbing/_plumbing.dm +++ b/code/datums/components/plumbing/_plumbing.dm @@ -394,10 +394,6 @@ demand_connects = NORTH supply_connects = SOUTH -/datum/component/plumbing/iv_drip - demand_connects = SOUTH - supply_connects = NORTH - /datum/component/plumbing/manifold/change_ducting_layer(obj/caller, obj/changer, new_layer) return diff --git a/code/datums/components/religious_tool.dm b/code/datums/components/religious_tool.dm index 3c421a04aa302..37b62d1aa0e3c 100644 --- a/code/datums/components/religious_tool.dm +++ b/code/datums/components/religious_tool.dm @@ -140,7 +140,10 @@ select_sect(usr, params["path"]) return TRUE //they picked a sect lets update so some weird spammy shit doesn't happen if("perform_rite") - perform_rite(usr, params["path"]) + if(!ispath(text2path(params["path"]), /datum/religion_rites)) + message_admins("[ADMIN_LOOKUPFLW(usr)] has tried to spawn an item when performing a rite.") + return + perform_rite(usr, text2path(params["path"])) /// Select the sect, called from [/datum/component/religious_tool/proc/AttemptActions] /datum/component/religious_tool/proc/select_sect(mob/living/user, path) @@ -154,9 +157,6 @@ /// Perform the rite, called from [/datum/component/religious_tool/proc/AttemptActions] /datum/component/religious_tool/proc/perform_rite(mob/living/user, path) - if(!ispath(text2path(path), /datum/religion_rites)) - message_admins("[ADMIN_LOOKUPFLW(usr)] has tried to spawn an item when performing a rite.") - return if(user.mind.holy_role < HOLY_ROLE_PRIEST) if(user.mind.holy_role == HOLY_ROLE_DEACON) to_chat(user, "You are merely a deacon of [GLOB.deity], and therefore cannot perform rites.") diff --git a/code/datums/components/scope.dm b/code/datums/components/scope.dm index dfc9d1c66c4b8..087eb0c06d24c 100644 --- a/code/datums/components/scope.dm +++ b/code/datums/components/scope.dm @@ -1,3 +1,6 @@ +///Used to allow reaching the maximum offset range without exiting the boundaries of the game screen. +#define MOUSE_POINTER_OFFSET_MULT 1.1 + ///A component that allows players to use the item to zoom out. Mainly intended for firearms, but now works with other items too. /datum/component/scope /// How far we can extend, with modifier of 1, up to our vision edge, higher numbers multiply. @@ -249,6 +252,12 @@ icon_y = text2num(LAZYACCESS(modifiers, ICON_Y)) if(isnull(icon_y)) icon_y = view_list[2]*world.icon_size/2 - given_x = round(range_modifier * (icon_x - view_list[1]*world.icon_size/2)) - given_y = round(range_modifier * (icon_y - view_list[2]*world.icon_size/2)) + var/x_cap = range_modifier * view_list[1]*world.icon_size / 2 + var/y_cap = range_modifier * view_list[2]*world.icon_size / 2 + var/uncapped_x = round(range_modifier * (icon_x - view_list[1]*world.icon_size/2) * MOUSE_POINTER_OFFSET_MULT) + var/uncapped_y = round(range_modifier * (icon_y - view_list[2]*world.icon_size/2) * MOUSE_POINTER_OFFSET_MULT) + given_x = clamp(uncapped_x, -x_cap, x_cap) + given_y = clamp(uncapped_y, -y_cap, y_cap) given_turf = locate(owner.x+round(given_x/world.icon_size, 1),owner.y+round(given_y/world.icon_size, 1),owner.z) + +#undef MOUSE_POINTER_OFFSET_MULT diff --git a/code/datums/components/surgery_initiator.dm b/code/datums/components/surgery_initiator.dm index de3f83739e546..848bfd021eee6 100644 --- a/code/datums/components/surgery_initiator.dm +++ b/code/datums/components/surgery_initiator.dm @@ -134,15 +134,7 @@ if(is_robotic) required_tool_type = TOOL_SCREWDRIVER - if(iscyborg(user)) - var/has_cautery = FALSE - for(var/obj/item/borg/cyborg_omnitool/toolarm in user.held_items) - if(toolarm.selected && istype(toolarm.selected, /obj/item/cautery)) - has_cautery = TRUE - if(!has_cautery) - patient.balloon_alert(user, "need a cautery in an inactive slot to stop the surgery!") - return - else if(!close_tool || close_tool.tool_behaviour != required_tool_type) + if(!close_tool || close_tool.tool_behaviour != required_tool_type) patient.balloon_alert(user, "need a [is_robotic ? "screwdriver": "cautery"] in your inactive hand to stop the surgery!") return @@ -226,7 +218,7 @@ ) /datum/component/surgery_initiator/ui_data(mob/user) - var/mob/living/surgery_target = surgery_target_ref.resolve() + var/mob/living/surgery_target = surgery_target_ref?.resolve() var/list/surgeries = list() if (!isnull(surgery_target)) @@ -253,10 +245,6 @@ return ..() /datum/component/surgery_initiator/ui_status(mob/user, datum/ui_state/state) - var/obj/item/item_parent = parent - if (user != item_parent.loc) - return UI_CLOSE - var/mob/living/surgery_target = surgery_target_ref?.resolve() if (isnull(surgery_target)) return UI_CLOSE @@ -271,7 +259,8 @@ return FALSE // The item was moved somewhere else - if (!(parent in user)) + var/atom/movable/tool = parent + if (tool.loc != user) return FALSE // While we were choosing, another surgery was started at the same location diff --git a/code/datums/dna.dm b/code/datums/dna.dm index d5677dad7ca61..17cdb20e3c492 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -79,7 +79,10 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) var/stability = 100 ///Did we take something like mutagen? In that case we cant get our genes scanned to instantly cheese all the powers. var/scrambled = FALSE - + /// Weighted list of nonlethal meltdowns + var/static/list/nonfatal_meltdowns = list() + /// Weighted list of lethal meltdowns + var/static/list/fatal_meltdowns = list() /datum/dna/New(mob/living/new_holder) if(istype(new_holder)) @@ -871,81 +874,23 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) var/instability = -dna.stability dna.remove_all_mutations() dna.stability = 100 - if(prob(max(70-instability,0))) - switch(rand(0,11)) //not complete and utter death - if(0) - monkeyize() - if(1) - gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) - new/obj/vehicle/ridden/wheelchair(get_turf(src)) //don't buckle, because I can't imagine to plethora of things to go through that could otherwise break - to_chat(src, span_warning("My flesh turned into a wheelchair and I can't feel my legs.")) - if(2) - corgize() - if(3) - to_chat(src, span_notice("Oh, I actually feel quite alright!")) - if(4) - to_chat(src, span_notice("Oh, I actually feel quite alright!")) - physiology.damage_resistance -= 20000 //you thought - if(5) - to_chat(src, span_notice("Oh, I actually feel quite alright!")) - reagents.add_reagent(/datum/reagent/aslimetoxin, 10) - if(6) - apply_status_effect(/datum/status_effect/go_away) - if(7) - to_chat(src, span_notice("Oh, I actually feel quite alright!")) - ForceContractDisease(new /datum/disease/decloning) // slow acting, non-viral GBS - if(8) - var/list/elligible_organs = list() - for(var/obj/item/organ/internal/internal_organ in organs) //make sure we dont get an implant or cavity item - elligible_organs += internal_organ - vomit(VOMIT_CATEGORY_DEFAULT, lost_nutrition = 10) - if(elligible_organs.len) - var/obj/item/organ/O = pick(elligible_organs) - O.Remove(src) - visible_message(span_danger("[src] vomits up [p_their()] [O.name]!"), span_danger("You vomit up your [O.name]")) //no "vomit up your heart" - O.forceMove(drop_location()) - if(prob(20)) - O.animate_atom_living() - if(9 to 10) - ForceContractDisease(new/datum/disease/gastrolosis()) - to_chat(src, span_notice("Oh, I actually feel quite alright!")) - if(11) - to_chat(src, span_notice("Your DNA mutates into the ultimate biological form!")) - crabize() - else - switch(rand(0,6)) - if(0) - investigate_log("has been gibbed by DNA instability.", INVESTIGATE_DEATHS) - gib(DROP_ALL_REMAINS) - if(1) - investigate_log("has been dusted by DNA instability.", INVESTIGATE_DEATHS) - dust() - if(2) - investigate_log("has been transformed into a statue by DNA instability.", INVESTIGATE_DEATHS) - death() - petrify(statue_timer = INFINITY, save_brain = FALSE) - ghostize(FALSE) - if(3) - if(prob(95)) - var/obj/item/bodypart/BP = get_bodypart(pick(BODY_ZONE_CHEST,BODY_ZONE_HEAD)) - if(BP) - BP.dismember() - else - investigate_log("has been gibbed by DNA instability.", INVESTIGATE_DEATHS) - gib(DROP_ALL_REMAINS) - else - set_species(/datum/species/dullahan) - if(4) - visible_message(span_warning("[src]'s skin melts off!"), span_boldwarning("Your skin melts off!")) - spawn_gibs() - set_species(/datum/species/skeleton) - if(prob(90)) - addtimer(CALLBACK(src, PROC_REF(death)), 3 SECONDS) - if(5) - to_chat(src, span_phobia("LOOK UP!")) - addtimer(CALLBACK(src, PROC_REF(something_horrible_mindmelt)), 3 SECONDS) - if(6) - slow_psykerize() + + var/nonfatal = prob(max(70-instability, 0)) + + if(!dna.nonfatal_meltdowns.len) + for(var/datum/instability_meltdown/meltdown_type as anything in typecacheof(/datum/instability_meltdown, ignore_root_path = TRUE)) + if(initial(meltdown_type.abstract_type) == meltdown_type) + continue + + if (initial(meltdown_type.fatal)) + dna.fatal_meltdowns[meltdown_type] = initial(meltdown_type.meltdown_weight) + continue + + dna.nonfatal_meltdowns[meltdown_type] = initial(meltdown_type.meltdown_weight) + + var/picked_type = pick_weight(nonfatal ? dna.nonfatal_meltdowns : dna.fatal_meltdowns) + var/datum/instability_meltdown/meltdown = new picked_type + meltdown.meltdown(src) /mob/living/carbon/human/proc/something_horrible_mindmelt() if(!is_blind()) diff --git a/code/datums/elements/wearable_client_colour.dm b/code/datums/elements/wearable_client_colour.dm new file mode 100644 index 0000000000000..8757dd1098cd5 --- /dev/null +++ b/code/datums/elements/wearable_client_colour.dm @@ -0,0 +1,121 @@ +/// An element that adds a client colour to the wearer when equipped to the right slot, under the right conditions. +/datum/element/wearable_client_colour + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + ///The typepath of the client_colour added when worn in the appropriate slot(s) + var/datum/client_colour/colour_type + ///The slot(s) that enable the client colour + var/equip_slots = NONE + ///For items that want costumizable client colours + var/custom_colour + ///if forced is false, we check that the user has the TRAIT_SEE_WORN_COLOURS before adding the colour. + var/forced = FALSE + ///On examine, it'll tell which you have to press to toggle TRAIT_SEE_WORN_COLOURS. + var/key_info = "Figure it out yourself how" + +/datum/element/wearable_client_colour/Attach(obj/item/target, colour_type, equip_slots, custom_colour, forced = FALSE, comsig_toggle = COMSIG_CLICK_ALT) + . = ..() + if(!isitem(target)) + return ELEMENT_INCOMPATIBLE + + RegisterSignal(target, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equipped)) + RegisterSignal(target, COMSIG_ITEM_DROPPED, PROC_REF(on_dropped)) + + src.colour_type = colour_type + src.equip_slots = equip_slots + src.custom_colour = custom_colour + src.forced = forced + + if(!forced) + switch(comsig_toggle) + if(COMSIG_CLICK_ALT) + key_info = EXAMINE_HINT("Alt-Click") + if(COMSIG_CLICK_ALT_SECONDARY) + key_info = EXAMINE_HINT("Right-Alt-Click") + if(COMSIG_CLICK_CTRL) + key_info = EXAMINE_HINT("Ctrl-Click") + if(COMSIG_CLICK_CTRL_SHIFT) + key_info = EXAMINE_HINT("Ctrl-Shift-Click") + else + stack_trace("Unsupported comsig_toggle arg value ([comsig_toggle]) for [type], defaulting to [COMSIG_CLICK_ALT]") + key_info = EXAMINE_HINT("Alt-Click") + comsig_toggle = COMSIG_CLICK_ALT + RegisterSignal(target, comsig_toggle, PROC_REF(toggle_see_worn_colors)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + + if(ismob(target.loc)) + var/mob/wearer = target.loc + if(wearer.get_slot_by_item(target) & equip_slots) + try_client_colour(wearer) + +/datum/element/wearable_client_colour/Detach(obj/item/source) + var/list/fairly_long_list = list( + COMSIG_ITEM_EQUIPPED, + COMSIG_ITEM_DROPPED, + COMSIG_CLICK_ALT, + COMSIG_CLICK_ALT_SECONDARY, + COMSIG_CLICK_CTRL, + COMSIG_CLICK_CTRL_SHIFT, + COMSIG_ATOM_EXAMINE, + ) + UnregisterSignal(source, fairly_long_list) + if(ismob(source.loc)) + var/mob/wearer = source.loc + if(wearer.get_slot_by_item(source) & equip_slots) + remove_client_colour(wearer) + return ..() + +/datum/element/wearable_client_colour/proc/on_equipped(obj/item/source, mob/equipper, slot) + SIGNAL_HANDLER + if(slot & equip_slots) + try_client_colour(equipper) + +/datum/element/wearable_client_colour/proc/on_dropped(obj/item/source, mob/dropper) + SIGNAL_HANDLER + remove_client_colour(dropper) + +/datum/element/wearable_client_colour/proc/try_client_colour(mob/equipper) + if(!forced) + RegisterSignal(equipper, SIGNAL_ADDTRAIT(TRAIT_SEE_WORN_COLOURS), PROC_REF(on_trait_added)) + RegisterSignal(equipper, SIGNAL_REMOVETRAIT(TRAIT_SEE_WORN_COLOURS), PROC_REF(on_trait_removed)) + if(!HAS_TRAIT(equipper, TRAIT_SEE_WORN_COLOURS)) + return + apply_client_colour(equipper) + +/datum/element/wearable_client_colour/proc/on_trait_added(mob/source, trait) + SIGNAL_HANDLER + apply_client_colour(source) + +/datum/element/wearable_client_colour/proc/apply_client_colour(mob/equipper) + var/datum/client_colour/colour_to_add = colour_type + if(custom_colour) + colour_to_add = new colour_to_add + colour_to_add.colour = custom_colour + equipper.add_client_colour(colour_to_add) + +/datum/element/wearable_client_colour/proc/on_trait_removed(mob/source, trait) + SIGNAL_HANDLER + source.remove_client_colour(colour_type) + +/datum/element/wearable_client_colour/proc/remove_client_colour(mob/dropper) + if(!forced) + UnregisterSignal(dropper, list(SIGNAL_ADDTRAIT(TRAIT_SEE_WORN_COLOURS), SIGNAL_REMOVETRAIT(TRAIT_SEE_WORN_COLOURS))) + if(!HAS_TRAIT(dropper, TRAIT_SEE_WORN_COLOURS)) + return + dropper.remove_client_colour(colour_type) + +/datum/element/wearable_client_colour/proc/toggle_see_worn_colors(obj/item/source, mob/clicker) + SIGNAL_HANDLER + if(source.loc != clicker || HAS_TRAIT(clicker, TRAIT_INCAPACITATED)) + return + if(HAS_TRAIT(clicker, TRAIT_SEE_WORN_COLOURS)) + REMOVE_TRAIT(clicker, TRAIT_SEE_WORN_COLOURS, CLOTHING_TRAIT) + clicker.balloon_alert(clicker, "glasses colors disabled") + else + ADD_TRAIT(clicker, TRAIT_SEE_WORN_COLOURS, CLOTHING_TRAIT) + clicker.balloon_alert(clicker, "glasses colors enabled") + return CLICK_ACTION_SUCCESS + +/datum/element/wearable_client_colour/proc/on_examine(obj/item/source, mob/user, list/examine_texts) + SIGNAL_HANDLER + examine_texts += span_info("While holding or wearing it, [key_info] to toggle on/off the screen color from glasses and such.") diff --git a/code/datums/instability_meltdown.dm b/code/datums/instability_meltdown.dm new file mode 100644 index 0000000000000..d8e6fbd77ac9e --- /dev/null +++ b/code/datums/instability_meltdown.dm @@ -0,0 +1,163 @@ +/// A possible genetic meltdown that occurs when someone exceeds 100 genetic instability +/datum/instability_meltdown + /// How likely a meltdown is to be picked + var/meltdown_weight = 1 + /// If this meltdown is considered "fatal" or not + var/fatal = FALSE + /// Used to ensure that abstract subtypes do not get picked + var/abstract_type = /datum/instability_meltdown + +/// Code that runs when this meltdown is picked +/datum/instability_meltdown/proc/meltdown(mob/living/carbon/human/victim) + return + +// Nonfatal meltdowns + +/// Turns you into a monkey +/datum/instability_meltdown/monkey + +/datum/instability_meltdown/monkey/meltdown(mob/living/carbon/human/victim) + victim.monkeyize() + +/// Gives you brain trauma that makes your legs disfunctional and gifts you a wheelchair +/datum/instability_meltdown/paraplegic + +/datum/instability_meltdown/paraplegic/meltdown(mob/living/carbon/human/victim) + victim.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) + new /obj/vehicle/ridden/wheelchair(get_turf(victim)) + to_chat(victim, span_warning("My flesh turned into a wheelchair and I can't feel my legs.")) + +/// Turns you into a corgi +/datum/instability_meltdown/corgi + +/datum/instability_meltdown/corgi/meltdown(mob/living/carbon/human/victim) + victim.corgize() + +/// Does nothing +/datum/instability_meltdown/alright + +/datum/instability_meltdown/alright/meltdown(mob/living/carbon/human/victim) + to_chat(victim, span_notice("Oh, I actually feel quite alright!")) + +/// Gives you the same text as above but now when you're hit you take 200 times more damage +/datum/instability_meltdown/not_alright + +/datum/instability_meltdown/not_alright/meltdown(mob/living/carbon/human/victim) + to_chat(victim, span_notice("Oh, I actually feel quite alright!")) + victim.physiology.damage_resistance -= 20000 //you thought + victim.log_message("has received x200 damage multiplier from [type] genetic meltdown") + +/// Turns you into a slime +/datum/instability_meltdown/slime + +/datum/instability_meltdown/slime/meltdown(mob/living/carbon/human/victim) + to_chat(victim, span_notice("Oh, I actually feel quite alright!")) + victim.reagents.add_reagent(/datum/reagent/aslimetoxin, 10) + +/// Makes you phase through walls into a random direction +/datum/instability_meltdown/yeet + +/datum/instability_meltdown/yeet/meltdown(mob/living/carbon/human/victim) + victim.apply_status_effect(/datum/status_effect/go_away) + +/// Makes you take cell damage and gibs you after some time +/datum/instability_meltdown/decloning + +/datum/instability_meltdown/decloning/meltdown(mob/living/carbon/human/victim) + to_chat(src, span_notice("Oh, I actually feel quite alright!")) + victim.ForceContractDisease(new /datum/disease/decloning) // slow acting, non-viral GBS + +/// Makes you vomit up a random organ +/datum/instability_meltdown/organ_vomit + +/datum/instability_meltdown/organ_vomit/meltdown(mob/living/carbon/human/victim) + var/list/elligible_organs = list() + for(var/obj/item/organ/internal/internal_organ in victim.organs) //make sure we dont get an implant or cavity item + elligible_organs += internal_organ + victim.vomit(VOMIT_CATEGORY_DEFAULT, lost_nutrition = 10) + if(!elligible_organs.len) + return + var/obj/item/organ/picked_organ = pick(elligible_organs) + picked_organ.Remove(src) + victim.visible_message(span_danger("[victim] vomits up [p_their()] [picked_organ.name]!"), span_danger("You vomit up your [picked_organ.name]")) //no "vomit up your heart" + picked_organ.forceMove(victim.drop_location()) + if(prob(20)) + picked_organ.animate_atom_living() + +/// Turns you into a snail +/datum/instability_meltdown/snail + meltdown_weight = 2 + +/datum/instability_meltdown/snail/meltdown(mob/living/carbon/human/victim) + to_chat(victim, span_notice("Oh, I actually feel quite alright!")) + victim.ForceContractDisease(new/datum/disease/gastrolosis()) + +/// Turns you into the ultimate lifeform +/datum/instability_meltdown/crab + +/datum/instability_meltdown/crab/meltdown(mob/living/carbon/human/victim) + to_chat(victim, span_notice("Your DNA mutates into the ultimate biological form!")) + victim.crabize() + +// Fatal meltdowns + +/datum/instability_meltdown/fatal + fatal = TRUE + abstract_type = /datum/instability_meltdown/fatal + +/// Instantly gibs you +/datum/instability_meltdown/fatal/gib + +/datum/instability_meltdown/fatal/gib/meltdown(mob/living/carbon/human/victim) + victim.investigate_log("has been gibbed by DNA instability.", INVESTIGATE_DEATHS) + victim.gib(DROP_ALL_REMAINS) + +/// Dusts you +/datum/instability_meltdown/fatal/dust + +/datum/instability_meltdown/fatal/dust/meltdown(mob/living/carbon/human/victim) + victim.investigate_log("has been dusted by DNA instability.", INVESTIGATE_DEATHS) + victim.dust() + +/// Turns you into a statue +/datum/instability_meltdown/fatal/petrify + +/datum/instability_meltdown/fatal/petrify/meltdown(mob/living/carbon/human/victim) + victim.investigate_log("has been transformed into a statue by DNA instability.", INVESTIGATE_DEATHS) + victim.death() + victim.petrify(statue_timer = INFINITY, save_brain = FALSE) + victim.ghostize(FALSE) + +/// Either dismembers you, or if unable to, gibs you +/datum/instability_meltdown/fatal/dismember + +/datum/instability_meltdown/fatal/dismember/meltdown(mob/living/carbon/human/victim) + var/obj/item/bodypart/part = victim.get_bodypart(pick(BODY_ZONE_CHEST,BODY_ZONE_HEAD)) + if(part) + part.dismember() + return + victim.investigate_log("has been gibbed by DNA instability.", INVESTIGATE_DEATHS) + victim.gib(DROP_ALL_REMAINS) + +/// Turns you into a skeleton, with a high chance of killing you soon after +/datum/instability_meltdown/fatal/skeletonize + +/datum/instability_meltdown/fatal/skeletonize/meltdown(mob/living/carbon/human/victim) + victim.visible_message(span_warning("[victim]'s skin melts off!"), span_boldwarning("Your skin melts off!")) + victim.spawn_gibs() + victim.set_species(/datum/species/skeleton) + if(prob(90)) + addtimer(CALLBACK(victim, TYPE_PROC_REF(/mob/living, death)), 3 SECONDS) + +/// Makes you look up and melts out your eyes +/datum/instability_meltdown/fatal/ceiling + +/datum/instability_meltdown/fatal/ceiling/meltdown(mob/living/carbon/human/victim) + to_chat(victim, span_phobia("LOOK UP!")) + addtimer(CALLBACK(victim, TYPE_PROC_REF(/mob/living/carbon/human, something_horrible_mindmelt)), 3 SECONDS) + +/// Slowly turns you into a psyker +/datum/instability_meltdown/fatal/psyker + +/datum/instability_meltdown/fatal/psyker/meltdown(mob/living/carbon/human/victim) + victim.slow_psykerize() diff --git a/code/datums/mutations/_combined.dm b/code/datums/mutations/_combined.dm index 534d94550c41b..baa7c2c1215b5 100644 --- a/code/datums/mutations/_combined.dm +++ b/code/datums/mutations/_combined.dm @@ -50,5 +50,5 @@ result = /datum/mutation/human/martyrdom /datum/generecipe/heckacious - required = "/datum/mutation/human/wacky; /datum/mutation/human/trichromatic" + required = "/datum/mutation/human/wacky; /datum/mutation/human/stoner" result = /datum/mutation/human/heckacious diff --git a/code/datums/mutations/reach.dm b/code/datums/mutations/reach.dm index 5186a1be0627a..1c46976e76bee 100644 --- a/code/datums/mutations/reach.dm +++ b/code/datums/mutations/reach.dm @@ -66,7 +66,7 @@ /// signal sent when prompting if an item can be equipped /datum/mutation/human/elastic_arms/proc/on_owner_equipping_item(mob/living/carbon/human/owner, obj/item/pick_item) SIGNAL_HANDLER - if(pick_item.w_class > WEIGHT_CLASS_BULKY) // cant decide if i should limit to huge or bulky. + if((pick_item.w_class > WEIGHT_CLASS_BULKY) && !(pick_item.item_flags & ABSTRACT|HAND_ITEM)) // cant decide if i should limit to huge or bulky. pick_item.balloon_alert(owner, "arms too floppy to wield!") return COMPONENT_LIVING_CANT_PUT_IN_HAND diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index 5b917aa1397b9..98560bb252679 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -40,24 +40,13 @@ speech_args[SPEECH_SPANS] |= SPAN_SANS -// Lower rust floor probability -// Make it only happen on open turf -// Add early return to wall hitting -// Fix throw at on cult sac -// Reduce tochat prob on rust floor -// add trait rusty to windows -// aim assist on rc doesnt work -// also in general -// give master seek to rusted harvester - /datum/mutation/human/heckacious name = "heckacious larincks" desc = "duge what is WISH your words man..........." quality = MINOR_NEGATIVE - text_gain_indication = span_sans(span_red("aw SHIT man. your throat feels like FUCKASS.")) + text_gain_indication = span_sans("aw SHIT man. your throat feels like FUCKASS.") text_lose_indication = span_notice("The demonic entity possessing your larynx has finally released its grasp.") locked = TRUE - conflicts = list(/datum/mutation/human/trichromatic) // they both modify with the same spans. also would be way too annoying /datum/mutation/human/heckacious/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -111,11 +100,15 @@ // Random caps if(prob(10)) - editing_word = uppertext(editing_word) + editing_word = prob(85) ? uppertext(editing_word) : LOWER_TEXT(editing_word) // some times....... we add DOTS... if(prob(10)) for(var/dotnum in 1 to rand(2, 8)) editing_word += "." + // change for bold/italics/underline as well! + if(prob(10)) + var/extra_emphasis = pick("+", "_", "|") + editing_word = extra_emphasis + editing_word + extra_emphasis // If no replacement we do it manually if(!word_edited) @@ -133,9 +126,6 @@ patchword += replacetext(editing_word[letter], "", editing_word[letter] + editing_word[letter]) editing_word = patchword - // Some words are randomly recolored and resized so they get a few of these - editing_word = span_class_handler(editing_word) - LAZYADD(edited_message_words, editing_word) var/edited_message = jointext(edited_message_words, " ") @@ -144,74 +134,6 @@ speech_args[SPEECH_MESSAGE] = message -/datum/mutation/human/heckacious/proc/span_class_handler(message, looped = FALSE) - // Sadly combining span colors will not combine the colors of the message - if(prob(15)) - switch(rand(1,3)) - if(1) - message = span_red(message) - if(2) - message = span_blue(message) - if(3) - message = span_green(message) - if(prob(15)) - switch(rand(1,2)) - if(1) - message = span_big(message) - if(2) - message = span_small(message) - // do it AGAIN - if(prob(40)) - span_class_handler(message, looped = TRUE) - return message - -/datum/mutation/human/trichromatic - name = "Trichromatic Larynx" - desc = "A strange mutation originating from Clown Planet which alters the color of the patient's vocal chords." - quality = MINOR_NEGATIVE - text_gain_indication = span_red("You") + span_blue(" feel ") + span_green("Weird.") - text_lose_indication = span_notice("Your colors feel normal again.") - conflicts = list(/datum/mutation/human/heckacious) - -/datum/mutation/human/trichromatic/on_acquiring(mob/living/carbon/human/owner) - if(..()) - return - RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - -/datum/mutation/human/trichromatic/on_losing(mob/living/carbon/human/owner) - if(..()) - return - UnregisterSignal(owner, COMSIG_MOB_SAY) - -/datum/mutation/human/trichromatic/proc/handle_speech(datum/source, list/speech_args) - SIGNAL_HANDLER - - var/message = speech_args[SPEECH_MESSAGE] - - var/list/message_words = splittext(message, " ") - var/list/static/span_combo_list = list("green", "red", "blue") - var/words_key = 1 - for(var/i in message_words) - message_words[words_key] = span_class_handler(message_words[words_key]) - words_key++ - - var/edited_message = jointext(message_words, " ") - - message = trim(edited_message) - - speech_args[SPEECH_MESSAGE] = message - -/datum/mutation/human/trichromatic/proc/span_class_handler(message) - // Sadly combining span colors will not combine the colors of the message - switch(rand(1,3)) - if(1) - message = span_red(message) - if(2) - message = span_blue(message) - if(3) - message = span_green(message) - return message - /datum/mutation/human/mute name = "Mute" desc = "Completely inhibits the vocal section of the brain." @@ -369,7 +291,6 @@ name = "Stoner" desc = "A common mutation that severely decreases intelligence." quality = NEGATIVE - locked = TRUE text_gain_indication = span_notice("You feel...totally chill, man!") text_lose_indication = span_notice("You feel like you have a better sense of time.") diff --git a/code/datums/mutations/touch.dm b/code/datums/mutations/touch.dm index d80510fb1feec..4bc4ec83bb0a0 100644 --- a/code/datums/mutations/touch.dm +++ b/code/datums/mutations/touch.dm @@ -142,8 +142,8 @@ // If you crunch the numbers it sounds crazy good, // but I think that's a fair reward for combining the efforts of Genetics, Medbay, and Mining to reach a hidden mechanic. if(HAS_TRAIT_FROM(mendicant, TRAIT_HIPPOCRATIC_OATH, HIPPOCRATIC_OATH_TRAIT)) - heal_multiplier *= 2 - pain_multiplier *= 0.5 + heal_multiplier = 2 + pain_multiplier = 0.5 to_chat(mendicant, span_green("You can feel the magic of the Rod of Aesculapius aiding your efforts!")) beam_icon = "sendbeam" var/obj/item/rod_of_asclepius/rod = locate() in mendicant.contents @@ -154,8 +154,8 @@ // If a normal pacifist, heal and hurt more! else if(HAS_TRAIT(mendicant, TRAIT_PACIFISM)) - heal_multiplier *= 1.75 - pain_multiplier *= 1.75 + heal_multiplier = 1.75 + pain_multiplier = 1.75 to_chat(mendicant, span_green("Your peaceful nature helps you guide all the pain to yourself.")) var/success @@ -165,7 +165,7 @@ success = do_simple_heal(mendicant, hurtguy, heal_multiplier, pain_multiplier) // Both types can be ignited (technically at least), so we can just do this here. - if(hurtguy.has_status_effect(/datum/status_effect/fire_handler/fire_stacks)) + if(hurtguy.fire_stacks > 0) mendicant.set_fire_stacks(hurtguy.fire_stacks * pain_multiplier, remove_wet_stacks = TRUE) if(hurtguy.on_fire) mendicant.ignite_mob() @@ -201,7 +201,7 @@ if(IS_ORGANIC_LIMB(possible_limb)) mendicant_organic_limbs += possible_limb // None? Gtfo - if(isnull(mendicant_organic_limbs)) + if(!length(mendicant_organic_limbs)) return . // Try to use our active hand, otherwise pick at random @@ -211,11 +211,11 @@ mendicant_transfer_limb.receive_damage(brute_to_heal * pain_multiplier, burn_to_heal * pain_multiplier, forced = TRUE, wound_bonus = CANT_WOUND) if(brute_to_heal) - hurtguy.adjustBruteLoss(brute_to_heal) + hurtguy.adjustBruteLoss(-brute_to_heal) . = TRUE if(burn_to_heal) - hurtguy.adjustFireLoss(burn_to_heal) + hurtguy.adjustFireLoss(-burn_to_heal) . = TRUE return . diff --git a/code/datums/quirks/negative_quirks/prosthetic_limb.dm b/code/datums/quirks/negative_quirks/prosthetic_limb.dm index eda4217b795d1..f8941975ac15e 100644 --- a/code/datums/quirks/negative_quirks/prosthetic_limb.dm +++ b/code/datums/quirks/negative_quirks/prosthetic_limb.dm @@ -16,9 +16,9 @@ customization_options = list(/datum/preference/choiced/prosthetic) /datum/quirk/prosthetic_limb/add_unique(client/client_source) - var/limb_type = GLOB.limb_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/prosthetic)] + var/limb_type = GLOB.prosthetic_limb_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/prosthetic)] if(isnull(limb_type)) //Client gone or they chose a random prosthetic - limb_type = GLOB.limb_choice[pick(GLOB.limb_choice)] + limb_type = GLOB.prosthetic_limb_choice[pick(GLOB.prosthetic_limb_choice)] var/mob/living/carbon/human/human_holder = quirk_holder var/obj/item/bodypart/surplus = new limb_type() diff --git a/code/datums/quirks/neutral_quirks/transhumanist.dm b/code/datums/quirks/neutral_quirks/transhumanist.dm index a898a2d202046..ea6494a6b327b 100644 --- a/code/datums/quirks/neutral_quirks/transhumanist.dm +++ b/code/datums/quirks/neutral_quirks/transhumanist.dm @@ -110,6 +110,14 @@ if(isnull(part_type)) //Client gone or they chose a random part part_type = GLOB.part_choice_transhuman[pick(GLOB.part_choice_transhuman)] + if(quirk_holder.has_quirk(/datum/quirk/prosthetic_limb)) + var/obj/item/bodypart/shit_limb = GLOB.prosthetic_limb_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/prosthetic)] + var/obj/item/bodypart/part_part = part_type + if(ispath(shit_limb, /obj/item/bodypart) && ispath(part_part, /obj/item/bodypart)) + // dumbass already has a part in the same spot so let's just let the shoddy trait do its thing instead + if(initial(shit_limb.body_zone) == initial(part_part.body_zone)) + return + var/mob/living/carbon/human/human_holder = quirk_holder var/obj/item/new_part = new part_type() if(isbodypart(new_part)) diff --git a/code/datums/sprite_accessories.dm b/code/datums/sprite_accessories.dm index e5cf49475e22e..5c7f99daf7e25 100644 --- a/code/datums/sprite_accessories.dm +++ b/code/datums/sprite_accessories.dm @@ -26,7 +26,7 @@ /// Determines if the accessory will be skipped or included in random hair generations. var/gender = NEUTER /// Something that can be worn by either gender, but looks different on each. - var/gender_specific + var/gender_specific = FALSE /// Determines if the accessory will be skipped by color preferences. var/use_static /** @@ -46,6 +46,9 @@ var/dimension_y = 32 /// Should this sprite block emissives? var/em_block = FALSE + /// Determines if this is considered "sane" for the purpose of [/proc/randomize_human_normie] + /// Basically this is to blacklist the extremely wacky stuff from being picked in random human generation. + var/natural_spawn = TRUE /datum/sprite_accessory/blank name = "None" @@ -74,11 +77,13 @@ /datum/sprite_accessory/hair/afro_large name = "Afro (Large)" icon_state = "hair_bigafro" + natural_spawn = FALSE /datum/sprite_accessory/hair/afro_huge name = "Afro (Huge)" icon_state = "hair_hugeafro" y_offset = 6 + natural_spawn = FALSE /datum/sprite_accessory/hair/allthefuzz name = "All The Fuzz" @@ -119,6 +124,7 @@ /datum/sprite_accessory/hair/bedheadfloorlength name = "Floorlength Bedhead" icon_state = "hair_floorlength_bedhead" + natural_spawn = FALSE /datum/sprite_accessory/hair/badlycut name = "Shorter Long Bedhead" @@ -359,6 +365,7 @@ /datum/sprite_accessory/hair/bigflattop name = "Flat Top (Big)" icon_state = "hair_bigflattop" + natural_spawn = FALSE /datum/sprite_accessory/hair/flow_hair name = "Flow Hair" @@ -419,6 +426,7 @@ /datum/sprite_accessory/hair/joestar name = "Joestar" icon_state = "hair_joestar" + natural_spawn = FALSE /datum/sprite_accessory/hair/keanu name = "Keanu Hair" @@ -475,22 +483,27 @@ /datum/sprite_accessory/hair/mohawk name = "Mohawk" icon_state = "hair_d" + natural_spawn = FALSE // sorry little one /datum/sprite_accessory/hair/nitori name = "Nitori" icon_state = "hair_nitori" + natural_spawn = FALSE /datum/sprite_accessory/hair/reversemohawk name = "Mohawk (Reverse)" icon_state = "hair_reversemohawk" + natural_spawn = FALSE /datum/sprite_accessory/hair/shavedmohawk name = "Mohawk (Shaved)" icon_state = "hair_shavedmohawk" + natural_spawn = FALSE /datum/sprite_accessory/hair/unshavenmohawk name = "Mohawk (Unshaven)" icon_state = "hair_unshaven_mohawk" + natural_spawn = FALSE /datum/sprite_accessory/hair/mulder name = "Mulder" @@ -499,6 +512,7 @@ /datum/sprite_accessory/hair/odango name = "Odango" icon_state = "hair_odango" + natural_spawn = FALSE /datum/sprite_accessory/hair/ombre name = "Ombre" @@ -531,14 +545,17 @@ /datum/sprite_accessory/hair/kagami name = "Pigtails" icon_state = "hair_kagami" + natural_spawn = FALSE /datum/sprite_accessory/hair/pigtail name = "Pigtails 2" icon_state = "hair_pigtails" + natural_spawn = FALSE /datum/sprite_accessory/hair/pigtail2 name = "Pigtails 3" icon_state = "hair_pigtails2" + natural_spawn = FALSE /datum/sprite_accessory/hair/pixie name = "Pixie Cut" @@ -917,6 +934,7 @@ /datum/sprite_accessory/facial_hair/brokenman name = "Beard (Broken Man)" icon_state = "facial_brokenman" + natural_spawn = FALSE /datum/sprite_accessory/facial_hair/chinstrap name = "Beard (Chinstrap)" @@ -961,6 +979,7 @@ /datum/sprite_accessory/facial_hair/martialartist name = "Beard (Martial Artist)" icon_state = "facial_martialartist" + natural_spawn = FALSE /datum/sprite_accessory/facial_hair/chinlessbeard name = "Beard (Chinless Beard)" diff --git a/code/datums/wires/mecha.dm b/code/datums/wires/mecha.dm index b6e20c8161f45..4e11eda65f7f6 100644 --- a/code/datums/wires/mecha.dm +++ b/code/datums/wires/mecha.dm @@ -3,7 +3,7 @@ proper_name = "Mecha Control" /datum/wires/mecha/New(atom/holder) - wires = list(WIRE_IDSCAN, WIRE_DISARM, WIRE_ZAP, WIRE_OVERCLOCK) + wires = list(WIRE_IDSCAN, WIRE_DISARM, WIRE_ZAP, WIRE_OVERCLOCK, WIRE_LAUNCH) var/obj/vehicle/sealed/mecha/mecha = holder if(mecha.mecha_flags & HAS_LIGHTS) wires += WIRE_LIGHT @@ -27,7 +27,7 @@ status += "The blue light is [mecha.equipment_disabled ? "on" : "off"]." return status -/datum/wires/mecha/on_pulse(wire) +/datum/wires/mecha/on_pulse(wire, user) var/obj/vehicle/sealed/mecha/mecha = holder switch(wire) if(WIRE_IDSCAN) @@ -42,6 +42,8 @@ mecha.set_light_on(!mecha.light_on) if(WIRE_OVERCLOCK) mecha.toggle_overclock() + if(WIRE_LAUNCH) + try_attack(user) /datum/wires/mecha/on_cut(wire, mend, source) var/obj/vehicle/sealed/mecha/mecha = holder @@ -58,11 +60,40 @@ mecha.internal_damage &= ~MECHA_INT_SHORT_CIRCUIT else mecha.internal_damage |= MECHA_INT_SHORT_CIRCUIT + if(isliving(source)) + mecha.shock(source, 50) if(WIRE_LIGHT) mecha.set_light_on(!mend) if(WIRE_OVERCLOCK) if(!mend) mecha.toggle_overclock(FALSE) + if(WIRE_LAUNCH) + if(!mend) + try_attack(source) + +/datum/wires/mecha/proc/try_attack(mob/living/target) + var/obj/vehicle/sealed/mecha/mecha = holder + if(mecha.occupant_amount()) //no powergamers sorry + return + var/list/obj/item/mecha_parts/mecha_equipment/armaments = list() + if(!isnull(mecha.equip_by_category[MECHA_R_ARM])) + armaments += mecha.equip_by_category[MECHA_R_ARM] + if(!isnull(mecha.equip_by_category[MECHA_L_ARM])) + armaments += mecha.equip_by_category[MECHA_L_ARM] + var/obj/item/mecha_parts/mecha_equipment/armament = length(armaments) ? pick(armaments) : null //null makes a melee attack + if(isnull(target)) + target = locate() in view(length(armaments) ? 5 : 1, mecha) + if(isnull(target)) // still no target + return + + var/disabled = mecha.equipment_disabled + if(!isnull(armament) && armament.range & MECHA_RANGED) + mecha.equipment_disabled = FALSE // honestly just avoid this wire + INVOKE_ASYNC(armament, TYPE_PROC_REF(/obj/item/mecha_parts/mecha_equipment, action), mecha, target) + mecha.equipment_disabled = disabled + return + if(mecha.Adjacent(target) && !TIMER_COOLDOWN_RUNNING(mecha, COOLDOWN_MECHA_MELEE_ATTACK) && target.mech_melee_attack(mecha)) + TIMER_COOLDOWN_START(mecha, COOLDOWN_MECHA_MELEE_ATTACK, mecha.melee_cooldown) /datum/wires/mecha/ui_act(action, params) . = ..() diff --git a/code/game/atom/atom_tool_acts.dm b/code/game/atom/atom_tool_acts.dm index d055f22759e3e..10bed5a407760 100644 --- a/code/game/atom/atom_tool_acts.dm +++ b/code/game/atom/atom_tool_acts.dm @@ -276,14 +276,6 @@ /atom/proc/multitool_act_secondary(mob/living/user, obj/item/tool) return -///Check if an item supports a data buffer (is a multitool) -/atom/proc/multitool_check_buffer(user, obj/item/multitool, silent = FALSE) - if(!istype(multitool, /obj/item/multitool)) - if(user && !silent) - to_chat(user, span_warning("[multitool] has no data buffer!")) - return FALSE - return TRUE - /// Called on an object when a tool with screwdriver capabilities is used to left click an object /atom/proc/screwdriver_act(mob/living/user, obj/item/tool) return diff --git a/code/game/machinery/botlaunchpad.dm b/code/game/machinery/botlaunchpad.dm index c8004af84ba86..fecca2a25489f 100644 --- a/code/game/machinery/botlaunchpad.dm +++ b/code/game/machinery/botlaunchpad.dm @@ -21,17 +21,14 @@ /obj/machinery/botpad/crowbar_act(mob/user, obj/item/tool) return default_deconstruction_crowbar(tool) -/obj/machinery/botpad/multitool_act(mob/living/user, obj/item/tool) +/obj/machinery/botpad/multitool_act(mob/living/user, obj/item/multitool/tool) if(!panel_open) - return - if(!multitool_check_buffer(user, tool)) - return + return NONE var/obj/item/multitool/multitool = tool multitool.set_buffer(src) balloon_alert(user, "saved to multitool buffer") return ITEM_INTERACT_SUCCESS - // Checks the turf for a bot and launches it if it's the only mob on the pad. /obj/machinery/botpad/proc/launch(mob/living/user) var/turf/reverse_turf = get_turf(user) diff --git a/code/game/machinery/computer/launchpad_control.dm b/code/game/machinery/computer/launchpad_control.dm index 54ff5e0f31369..7c6d1307b76b1 100644 --- a/code/game/machinery/computer/launchpad_control.dm +++ b/code/game/machinery/computer/launchpad_control.dm @@ -58,20 +58,16 @@ to_chat(user, span_warning("You are too primitive to use this computer!")) return -/obj/machinery/computer/launchpad/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_MULTITOOL) - if(!multitool_check_buffer(user, W)) - return - var/obj/item/multitool/M = W - if(M.buffer && istype(M.buffer, /obj/machinery/launchpad)) - if(LAZYLEN(launchpads) < maximum_pads) - launchpads |= M.buffer - M.set_buffer(null) - to_chat(user, span_notice("You upload the data from the [W.name]'s buffer.")) - else - to_chat(user, span_warning("[src] cannot handle any more connections!")) - else - return ..() +/obj/machinery/computer/launchpad/multitool_act(mob/living/user, obj/item/multitool/tool) + . = NONE + if(!istype(tool.buffer, /obj/machinery/launchpad)) + return + + if(LAZYLEN(launchpads) < maximum_pads) + launchpads |= tool.buffer + tool.set_buffer(null) + to_chat(user, span_notice("You upload the data from the [tool] buffer.")) + return ITEM_INTERACT_SUCCESS /obj/machinery/computer/launchpad/proc/pad_exists(number) var/obj/machinery/launchpad/pad = launchpads[number] diff --git a/code/game/machinery/computer/mechlaunchpad.dm b/code/game/machinery/computer/mechlaunchpad.dm index 7b80b6e95c8d6..46c0045fb3568 100644 --- a/code/game/machinery/computer/mechlaunchpad.dm +++ b/code/game/machinery/computer/mechlaunchpad.dm @@ -86,28 +86,32 @@ continue return found_mechpad -/obj/machinery/computer/mechpad/multitool_act(mob/living/user, obj/item/tool) - if(!multitool_check_buffer(user, tool)) +/obj/machinery/computer/mechpad/multitool_act(mob/living/user, obj/item/multitool/multitool) + . = NONE + if(!istype(multitool.buffer, /obj/machinery/mechpad)) return - var/obj/item/multitool/multitool = tool - if(istype(multitool.buffer, /obj/machinery/mechpad)) - var/obj/machinery/mechpad/buffered_pad = multitool.buffer - if(!(mechpads.len < maximum_pads)) - to_chat(user, span_warning("[src] cannot handle any more connections!")) - return TRUE - if(buffered_pad == connected_mechpad) - to_chat(user, span_warning("[src] cannot connect to its own mechpad!")) - else if(!connected_mechpad && buffered_pad == find_pad()) - if(buffered_pad in mechpads) - remove_pad(buffered_pad) - connect_launchpad(buffered_pad) - multitool.set_buffer(null) - to_chat(user, span_notice("You connect the console to the pad with data from the [multitool.name]'s buffer.")) - else - add_pad(buffered_pad) - multitool.set_buffer(null) - to_chat(user, span_notice("You upload the data from the [multitool.name]'s buffer.")) - return TRUE + + var/obj/machinery/mechpad/buffered_pad = multitool.buffer + if(!(mechpads.len < maximum_pads)) + to_chat(user, span_warning("[src] cannot handle any more connections!")) + return ITEM_INTERACT_SUCCESS + + if(buffered_pad == connected_mechpad) + to_chat(user, span_warning("[src] cannot connect to its own mechpad!")) + return ITEM_INTERACT_BLOCKING + + if(!connected_mechpad && buffered_pad == find_pad()) + if(buffered_pad in mechpads) + remove_pad(buffered_pad) + connect_launchpad(buffered_pad) + multitool.set_buffer(null) + to_chat(user, span_notice("You connect the console to the pad with data from the [multitool.name]'s buffer.")) + return ITEM_INTERACT_SUCCESS + + add_pad(buffered_pad) + multitool.set_buffer(null) + to_chat(user, span_notice("You upload the data from the [multitool.name]'s buffer.")) + return ITEM_INTERACT_SUCCESS /obj/machinery/computer/mechpad/proc/add_pad(obj/machinery/mechpad/pad) mechpads += pad diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index 444e44125c80a..391cf38b74b7d 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -66,6 +66,15 @@ if(in_range(user, src) || isobserver(user)) . += span_notice("The status display reads: Maximum range: [range] units.") +/obj/machinery/launchpad/multitool_act(mob/living/user, obj/item/multitool/multi) + . = NONE + if(!panel_open) + return + + multi.set_buffer(src) + balloon_alert(user, "saved to buffer") + return ITEM_INTERACT_SUCCESS + /obj/machinery/launchpad/attackby(obj/item/weapon, mob/user, params) if(!stationary) return ..() @@ -74,14 +83,6 @@ update_indicator() return - if(panel_open && weapon.tool_behaviour == TOOL_MULTITOOL) - if(!multitool_check_buffer(user, weapon)) - return - var/obj/item/multitool/multi = weapon - multi.set_buffer(src) - balloon_alert(user, "saved to buffer") - return TRUE - if(default_deconstruction_crowbar(weapon)) return diff --git a/code/game/machinery/mechlaunchpad.dm b/code/game/machinery/mechlaunchpad.dm index b8c282ae22cca..cbdc34d864800 100644 --- a/code/game/machinery/mechlaunchpad.dm +++ b/code/game/machinery/mechlaunchpad.dm @@ -30,15 +30,14 @@ if(default_deconstruction_crowbar(tool)) return TRUE -/obj/machinery/mechpad/multitool_act(mob/living/user, obj/item/tool) +/obj/machinery/mechpad/multitool_act(mob/living/user, obj/item/multitool/multitool) + . = NONE if(!panel_open) return - if(!multitool_check_buffer(user, tool)) - return - var/obj/item/multitool/multitool = tool + multitool.set_buffer(src) balloon_alert(user, "saved to multitool buffer") - return TRUE + return ITEM_INTERACT_SUCCESS /obj/machinery/mechpad/wirecutter_act(mob/living/user, obj/item/tool) if(!panel_open) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index d41064ba2efcf..c9694730a3f8a 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -317,6 +317,15 @@ DEFINE_BITFIELD(turret_flags, list( remove_control() check_should_process() +/obj/machinery/porta_turret/multitool_act(mob/living/user, obj/item/multitool/tool) + . = NONE + if(locked) + return + + tool.set_buffer(src) + balloon_alert(user, "saved to multitool buffer") + return ITEM_INTERACT_SUCCESS + /obj/machinery/porta_turret/attackby(obj/item/I, mob/user, params) if(machine_stat & BROKEN) if(I.tool_behaviour == TOOL_CROWBAR) @@ -364,12 +373,6 @@ DEFINE_BITFIELD(turret_flags, list( to_chat(user, span_notice("Controls are now [locked ? "locked" : "unlocked"].")) else to_chat(user, span_alert("Access denied.")) - else if(I.tool_behaviour == TOOL_MULTITOOL && !locked) - if(!multitool_check_buffer(user, I)) - return - var/obj/item/multitool/M = I - M.set_buffer(src) - balloon_alert(user, "saved to multitool buffer") else return ..() @@ -967,18 +970,19 @@ DEFINE_BITFIELD(turret_flags, list( . += {"[span_notice("Ctrl-click [src] to [ enabled ? "disable" : "enable"] turrets.")] [span_notice("Alt-click [src] to set turrets to [ lethal ? "stun" : "kill"].")]"} -/obj/machinery/turretid/attackby(obj/item/attacking_item, mob/user, params) +/obj/machinery/turretid/multitool_act(mob/living/user, obj/item/multitool/multi_tool) + . = NONE if(machine_stat & BROKEN) return - if(attacking_item.tool_behaviour == TOOL_MULTITOOL) - if(!multitool_check_buffer(user, attacking_item)) - return - var/obj/item/multitool/M = attacking_item - if(M.buffer && istype(M.buffer, /obj/machinery/porta_turret)) - turrets |= WEAKREF(M.buffer) - to_chat(user, span_notice("You link \the [M.buffer] with \the [src].")) - return + if(multi_tool.buffer && istype(multi_tool.buffer, /obj/machinery/porta_turret)) + turrets |= WEAKREF(multi_tool.buffer) + to_chat(user, span_notice("You link \the [multi_tool.buffer] with \the [src].")) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/turretid/attackby(obj/item/attacking_item, mob/user, params) + if(machine_stat & BROKEN) + return if (issilicon(user)) return attack_hand(user) diff --git a/code/game/machinery/porta_turret/portable_turret_cover.dm b/code/game/machinery/porta_turret/portable_turret_cover.dm index e81c13af60892..ad3111b330bdc 100644 --- a/code/game/machinery/porta_turret/portable_turret_cover.dm +++ b/code/game/machinery/porta_turret/portable_turret_cover.dm @@ -36,6 +36,15 @@ /obj/machinery/porta_turret_cover/attack_ghost(mob/user) return ..() || parent_turret.attack_ghost(user) +/obj/machinery/porta_turret_cover/multitool_act(mob/living/user, obj/item/multitool/multi_tool) + . = NONE + if(parent_turret.locked) + return + + multi_tool.set_buffer(parent_turret) + balloon_alert(user, "saved to multitool buffer") + return ITEM_INTERACT_SUCCESS + /obj/machinery/porta_turret_cover/attackby(obj/item/I, mob/user, params) if(I.tool_behaviour == TOOL_WRENCH && !parent_turret.on) if(parent_turret.raised) @@ -61,13 +70,6 @@ to_chat(user, span_notice("Access denied.")) return - if(I.tool_behaviour == TOOL_MULTITOOL && !parent_turret.locked) - if(!multitool_check_buffer(user, I)) - return - var/obj/item/multitool/M = I - M.set_buffer(parent_turret) - balloon_alert(user, "saved to multitool buffer") - return return ..() /obj/machinery/porta_turret_cover/attacked_by(obj/item/I, mob/user) diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index 1c014927e62d4..f5f5851b7586e 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -53,37 +53,30 @@ teleport_cooldown = initial(teleport_cooldown) teleport_cooldown -= (E * 100) -/obj/machinery/quantumpad/attackby(obj/item/I, mob/user, params) - if(default_deconstruction_screwdriver(user, "qpad-idle-open", "qpad-idle", I)) - return - +/obj/machinery/quantumpad/multitool_act(mob/living/user, obj/item/multitool/multi_tool) if(panel_open) - if(I.tool_behaviour == TOOL_MULTITOOL) - if(!multitool_check_buffer(user, I)) - return - var/obj/item/multitool/M = I - M.set_buffer(src) - balloon_alert(user, "saved to multitool buffer") - to_chat(user, span_notice("You save the data in [I]'s buffer. It can now be saved to pads with closed panels.")) - return TRUE - else if(I.tool_behaviour == TOOL_MULTITOOL) - if(!multitool_check_buffer(user, I)) - return - var/obj/item/multitool/M = I - if(istype(M.buffer, /obj/machinery/quantumpad)) - if(M.buffer == src) - balloon_alert(user, "cannot link to self!") - return TRUE - else - linked_pad = M.buffer - balloon_alert(user, "data uploaded from buffer") - return TRUE - else - balloon_alert(user, "no quantum pad data found!") - return TRUE + multi_tool.set_buffer(src) + balloon_alert(user, "saved to multitool buffer") + to_chat(user, span_notice("You save the data in [multi_tool] buffer. It can now be saved to pads with closed panels.")) + return ITEM_INTERACT_SUCCESS + + if(istype(multi_tool.buffer, /obj/machinery/quantumpad)) + if(multi_tool.buffer == src) + balloon_alert(user, "cannot link to self!") + return ITEM_INTERACT_BLOCKING + linked_pad = multi_tool.buffer + balloon_alert(user, "data uploaded from buffer") + return ITEM_INTERACT_SUCCESS + + balloon_alert(user, "no quantum pad data found!") + return NONE + +/obj/machinery/quantumpad/attackby(obj/item/weapon, mob/user, params) + if(default_deconstruction_screwdriver(user, "qpad-idle-open", "qpad-idle", weapon)) + return - else if(istype(I, /obj/item/quantum_keycard)) - var/obj/item/quantum_keycard/K = I + if(istype(weapon, /obj/item/quantum_keycard)) + var/obj/item/quantum_keycard/K = weapon if(K.qpad) to_chat(user, span_notice("You insert [K] into [src]'s card slot, activating it.")) interact(user, K.qpad) @@ -93,7 +86,7 @@ to_chat(user, span_notice("You complete the link between [K] and [src].")) K.set_pad(src) - if(default_deconstruction_crowbar(I)) + if(default_deconstruction_crowbar(weapon)) return return ..() diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 77e1efbdfa13d..fb68631b76676 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -246,22 +246,19 @@ /// Returns a multitool from a user depending on their mobtype. /obj/machinery/telecomms/proc/get_multitool(mob/user) - var/obj/item/multitool/multitool = null - // Let's double check - if(!HAS_SILICON_ACCESS(user) && istype(user.get_active_held_item(), /obj/item/multitool)) - multitool = user.get_active_held_item() - else if(isAI(user)) + . = null + if(isAI(user)) var/mob/living/silicon/ai/U = user - multitool = U.aiMulti - else if(iscyborg(user) && in_range(user, src)) - var/mob/living/silicon/robot/borguser = user - for(var/obj/item/borg/cyborg_omnitool/toolarm in borguser.held_items) - if(istype(toolarm.selected, /obj/item/multitool)) - multitool = toolarm.selected - break - return multitool - -/obj/machinery/telecomms/proc/canAccess(mob/user) - if(HAS_SILICON_ACCESS(user) || in_range(user, src)) - return TRUE - return FALSE + return U.aiMulti + + var/obj/item/held_item = user.get_active_held_item() + if(QDELETED(held_item)) + return + held_item = held_item.get_proxy_attacker_for(src, user) //for borgs omni tool + if(held_item.tool_behaviour != TOOL_MULTITOOL) + return + + if(!HAS_SILICON_ACCESS(user)) + return held_item + if(iscyborg(user) && in_range(user, src)) + return held_item diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 2373334491772..c46f6b351543d 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -162,24 +162,25 @@ teleporter_console = null return ..() +/obj/machinery/teleport/station/multitool_act(mob/living/user, obj/item/multitool/tool) + . = NONE + + if(panel_open) + tool.set_buffer(src) + balloon_alert(user, "saved to multitool buffer") + return ITEM_INTERACT_SUCCESS + + if(!istype(tool.buffer, /obj/machinery/teleport/station) || tool.buffer == src) + return ITEM_INTERACT_BLOCKING + + if(linked_stations.len < efficiency) + linked_stations.Add(tool.buffer) + tool.set_buffer(null) + balloon_alert(user, "data uploaded from buffer") + return ITEM_INTERACT_SUCCESS + /obj/machinery/teleport/station/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_MULTITOOL) - if(!multitool_check_buffer(user, W)) - return - var/obj/item/multitool/M = W - if(panel_open) - M.set_buffer(src) - balloon_alert(user, "saved to multitool buffer") - else - if(M.buffer && istype(M.buffer, /obj/machinery/teleport/station) && M.buffer != src) - if(linked_stations.len < efficiency) - linked_stations.Add(M.buffer) - M.set_buffer(null) - balloon_alert(user, "data uploaded from buffer") - else - to_chat(user, span_alert("This station can't hold more information, try to use better parts.")) - return - else if(default_deconstruction_screwdriver(user, "controller-o", "controller", W)) + if(default_deconstruction_screwdriver(user, "controller-o", "controller", W)) update_appearance() return diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 1cdeaa89bafcb..18fed35de4533 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1732,3 +1732,17 @@ if(!isnull(loc)) SEND_SIGNAL(loc, COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED, src, old_w_class, new_w_class) return TRUE + + +/** + * Returns the atom(either itself or an internal module) that will interact/attack the target on behalf of us + * For example an object can have different `tool_behaviours` (e.g borg omni tool) but will return an internal reference of that tool to attack for us + * You can use it for general purpose polymorphism if you need a proxy atom to interact in a specific way + * with a target on behalf on this atom + * + * Currently used only in the object melee attack chain but can be used anywhere else or even moved up to the atom level if required + */ +/obj/item/proc/get_proxy_attacker_for(atom/target, mob/user) + RETURN_TYPE(/obj/item) + + return src diff --git a/code/game/objects/items/botpad_remote.dm b/code/game/objects/items/botpad_remote.dm index d2f2db3e1ac5e..6b219725aa087 100644 --- a/code/game/objects/items/botpad_remote.dm +++ b/code/game/objects/items/botpad_remote.dm @@ -28,22 +28,23 @@ user?.balloon_alert(user, "no connected pad!") return -/obj/item/botpad_remote/multitool_act(mob/living/user, obj/item/tool) - if(!multitool_check_buffer(user, tool)) +/obj/item/botpad_remote/multitool_act(mob/living/user, obj/item/multitool/multitool) + . = NONE + if(!istype(multitool.buffer, /obj/machinery/botpad)) return - var/obj/item/multitool/multitool = tool - if(istype(multitool.buffer, /obj/machinery/botpad)) - var/obj/machinery/botpad/buffered_remote = multitool.buffer - if(buffered_remote == connected_botpad) - to_chat(user, span_warning("Controller cannot connect to its own botpad!")) - else if(!connected_botpad && istype(buffered_remote, /obj/machinery/botpad)) - connected_botpad = buffered_remote - connected_botpad.connected_remote = src - connected_botpad.id = id - multitool.set_buffer(null) - to_chat(user, span_notice("You connect the controller to the pad with data from the [multitool.name]'s buffer.")) - else - to_chat(user, span_warning("Unable to upload!")) + + var/obj/machinery/botpad/buffered_remote = multitool.buffer + if(buffered_remote == connected_botpad) + to_chat(user, span_warning("Controller cannot connect to its own botpad!")) + return ITEM_INTERACT_BLOCKING + + if(!connected_botpad && istype(buffered_remote, /obj/machinery/botpad)) + connected_botpad = buffered_remote + connected_botpad.connected_remote = src + connected_botpad.id = id + multitool.set_buffer(null) + to_chat(user, span_notice("You connect the controller to the pad with data from the [multitool.name]'s buffer.")) + return ITEM_INTERACT_SUCCESS /obj/item/botpad_remote/proc/try_launch(mob/living/user) if(!connected_botpad) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 27647feb924f9..32ad7f8845de3 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -493,7 +493,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/cigarette/proc/make_cig_smoke() cig_smoke = new(src, /particles/smoke/cig) - cig_smoke.particles.scale *= 1.5 + cig_smoke.particles?.scale *= 1.5 return cig_smoke // Cigarette brands. diff --git a/code/game/objects/items/food/sandwichtoast.dm b/code/game/objects/items/food/sandwichtoast.dm index e440a1039e6d1..47a7b563e0895 100644 --- a/code/game/objects/items/food/sandwichtoast.dm +++ b/code/game/objects/items/food/sandwichtoast.dm @@ -9,7 +9,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("meat" = 2, "cheese" = 1, "bread" = 2, "lettuce" = 1) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm index 622ee6592cb7a..1aa09dbfe68e5 100644 --- a/code/game/objects/items/knives.dm +++ b/code/game/objects/items/knives.dm @@ -21,7 +21,6 @@ attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") sharpness = SHARP_EDGED armor_type = /datum/armor/item_knife - var/bayonet = FALSE //Can this be attached to a gun? wound_bonus = 5 bare_wound_bonus = 15 tool_behaviour = TOOL_KNIFE @@ -130,7 +129,6 @@ throwforce = 20 attack_verb_continuous = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "cuts") attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "cut") - bayonet = TRUE slot_flags = ITEM_SLOT_MASK /obj/item/knife/combat/Initialize(mapload) @@ -161,7 +159,6 @@ desc = "A hunting grade survival knife." force = 15 throwforce = 15 - bayonet = TRUE /obj/item/knife/combat/bone name = "bone dagger" diff --git a/code/game/objects/items/robot/items/tools.dm b/code/game/objects/items/robot/items/tools.dm index 8a4ccff8ced20..f16cd0844901d 100644 --- a/code/game/objects/items/robot/items/tools.dm +++ b/code/game/objects/items/robot/items/tools.dm @@ -1,7 +1,5 @@ #define PKBORG_DAMPEN_CYCLE_DELAY (2 SECONDS) #define POWER_RECHARGE_CYBORG_DRAIN_MULTIPLIER (0.0004 * STANDARD_CELL_RATE) -#define NO_TOOL "deactivated" -#define TOOL_DRAPES "surgical_drapes" /obj/item/cautery/prt //it's a subtype of cauteries so that it inherits the cautery sprites and behavior and stuff, because I'm too lazy to make sprites for this thing name = "plating repair tool" @@ -176,146 +174,138 @@ projectile.speed *= (1 / projectile_speed_coefficient) projectile.cut_overlay(projectile_effect) -////////////////////// -///CYBORG OMNITOOLS/// -////////////////////// - -/** - Onmi Toolboxs act as a cache of tools for a particular borg's omnitools. Not all borg - get a toolbox (as not all borgs use omnitools), and those that do can only have one - toolbox. The toolbox keeps track of a borg's omnitool arms, and handles speed upgrades. - - Omnitools are the actual tool arms for the cyborg to interact with. When attack_self - is called, they can select a tool from the toolbox. The tool is not moved, and instead - only referenced in place of the omnitool's own attacks. The omnitool also takes on - the tool's sprite, which completes the illusion. In this way, multiple tools are - shared between multiple omnitool arms. A multitool's buffer, for example, will not - depend on which omnitool arm was used to set it. -*/ -/obj/item/cyborg_omnitoolbox - name = "broken cyborg toolbox" - desc = "Some internal part of a broken cyborg." +//bare minimum omni-toolset for modularity +/obj/item/borg/cyborg_omnitool + name = "cyborg omni-toolset" + desc = "You shouldn't see this in-game normally." icon = 'icons/mob/silicon/robot_items.dmi' - icon_state = "lollipop" - toolspeed = 10 - ///List of Omnitool "arms" that the borg has. - var/list/omnitools = list() - ///List of paths for tools. These will be created during Initialize() - var/list/toolpaths = list() - ///Target Toolspeed to set after reciving an omnitool upgrade - var/upgraded_toolspeed = 10 - ///Whether we currently have the upgraded speed - var/currently_upgraded = FALSE - -/obj/item/cyborg_omnitoolbox/Initialize(mapload) - . = ..() - if(!toolpaths.len) - return - - var/obj/item/newitem - for(var/newpath in toolpaths) - newitem = new newpath(src) - newitem.toolspeed = toolspeed //In case thse have different base speeds as stand-alone tools on other borgs - ADD_TRAIT(newitem, TRAIT_NODROP, CYBORG_ITEM_TRAIT) + icon_state = "toolkit_medborg" -/obj/item/cyborg_omnitoolbox/proc/set_upgrade(upgrade = FALSE) - for(var/obj/item/tool in contents) - if(upgrade) - tool.toolspeed = upgraded_toolspeed - else - tool.toolspeed = toolspeed - currently_upgraded = upgrade + ///our tools (list of item typepaths) + var/list/obj/item/omni_toolkit = list() + ///Map of solid objects internally used by the omni tool + var/list/obj/item/atoms = list() + ///object we are referencing to for force, sharpness and sound + var/obj/item/reference + //is the toolset upgraded or not + var/upgraded = FALSE + +/obj/item/borg/cyborg_omnitool/Destroy(force) + for(var/obj/item/tool_path as anything in atoms) + var/obj/item/tool = atoms[tool_path] + if(!QDELETED(tool)) //if we are sharing tools from our other omnitool brothers we don't want to re delete them if they got deleted first + qdel(tool) + atoms.Cut() -/obj/item/cyborg_omnitoolbox/engineering - toolspeed = 0.5 - upgraded_toolspeed = 0.3 - toolpaths = list( - /obj/item/wrench/cyborg, - /obj/item/wirecutters/cyborg, - /obj/item/screwdriver/cyborg, - /obj/item/crowbar/cyborg, - /obj/item/multitool/cyborg, - ) - -/obj/item/cyborg_omnitoolbox/medical - toolspeed = 1 - upgraded_toolspeed = 0.7 - toolpaths = list( - /obj/item/scalpel/cyborg, - /obj/item/surgicaldrill/cyborg, - /obj/item/hemostat/cyborg, - /obj/item/retractor/cyborg, - /obj/item/cautery/cyborg, - /obj/item/circular_saw/cyborg, - /obj/item/bonesetter/cyborg, - ) + return ..() -/obj/item/borg/cyborg_omnitool - name = "broken cyborg tool arm" - desc = "Some internal part of a broken cyborg." - icon = 'icons/mob/silicon/robot_items.dmi' - icon_state = "lollipop" - ///Ref to the toolbox, since our own loc will be changing - var/obj/item/cyborg_omnitoolbox/toolbox - ///Ref to currently selected tool, if any - var/obj/item/selected +/obj/item/borg/cyborg_omnitool/get_all_tool_behaviours() + . = list() + for(var/obj/item/tool as anything in omni_toolkit) + . += initial(tool.tool_behaviour) + +///The omnitool interacts with real world objects based on the state it has assumed +/obj/item/borg/cyborg_omnitool/get_proxy_attacker_for(atom/target, mob/user) + if(!reference) + return src + + //first check if we have the tool + var/obj/item/tool = atoms[reference] + if(!QDELETED(tool)) + return tool + + //else try to borrow an in-built tool from our other omnitool brothers to save & share memory & such + var/mob/living/silicon/robot/borg = user + for(var/obj/item/borg/cyborg_omnitool/omni_tool in borg.model.basic_modules) + if(omni_tool == src) + continue + tool = omni_tool.atoms[reference] + if(!QDELETED(tool)) + atoms[reference] = tool + return tool -/obj/item/borg/cyborg_omnitool/Initialize(mapload) - . = ..() - if(!iscyborg(loc.loc)) - return - var/obj/item/robot_model/model = loc - var/obj/item/cyborg_omnitoolbox/chassis_toolbox = model.toolbox - if(!chassis_toolbox) - return - toolbox = chassis_toolbox - toolbox.omnitools += src + //if all else fails just make a new one from scratch + tool = new reference(user) + ADD_TRAIT(tool, TRAIT_NODROP, CYBORG_ITEM_TRAIT) + atoms[reference] = tool + return tool /obj/item/borg/cyborg_omnitool/attack_self(mob/user) + //build the radial menu options var/list/radial_menu_options = list() - for(var/obj/item/borgtool in toolbox.contents) - radial_menu_options[borgtool] = image(icon = borgtool.icon, icon_state = borgtool.icon_state) - var/obj/item/potential_new_tool = show_radial_menu(user, src, radial_menu_options, require_near = TRUE, tooltips = TRUE) - if(!potential_new_tool) - return ..() - if(potential_new_tool == selected) - return ..() - for(var/obj/item/borg/cyborg_omnitool/coworker in toolbox.omnitools) - if(coworker.selected == potential_new_tool) - coworker.deselect() //Can I borrow that please - break - selected = potential_new_tool - icon_state = selected.icon_state - playsound(src, 'sound/items/change_jaws.ogg', 50, TRUE) - return ..() + for(var/obj/item/tool as anything in omni_toolkit) + radial_menu_options[initial(tool.tool_behaviour)] = image(icon = initial(tool.icon), icon_state = initial(tool.icon_state)) -/obj/item/borg/cyborg_omnitool/proc/deselect() - if(!selected) + //assign the new tool behaviour + var/new_tool_behaviour = show_radial_menu(user, src, radial_menu_options, require_near = TRUE, tooltips = TRUE) + if(isnull(new_tool_behaviour) || new_tool_behaviour == tool_behaviour) return - selected = null + tool_behaviour = new_tool_behaviour + + //set the reference & update icons + for(var/obj/item/tool as anything in omni_toolkit) + if(initial(tool.tool_behaviour) == new_tool_behaviour) + reference = tool + update_appearance(UPDATE_ICON_STATE) + playsound(src, 'sound/items/change_jaws.ogg', 50, TRUE) + break + +/obj/item/borg/cyborg_omnitool/update_icon_state() icon_state = initial(icon_state) - playsound(src, 'sound/items/change_jaws.ogg', 50, TRUE) -/obj/item/borg/cyborg_omnitool/cyborg_unequip() - deselect() - return ..() + if (tool_behaviour) + icon_state += "_[sanitize_css_class_name(tool_behaviour)]" -/obj/item/borg/cyborg_omnitool/melee_attack_chain(mob/user, atom/target, params) - if(selected) - return selected.melee_attack_chain(user, target, params) return ..() +/** + * Is this omni tool upgraded or not + * Arguments + * + * * upgrade - TRUE/FALSE for upgraded + */ +/obj/item/borg/cyborg_omnitool/proc/set_upgraded(upgrade) + upgraded = upgraded + + playsound(src, 'sound/items/change_jaws.ogg', 50, TRUE) + +/obj/item/borg/cyborg_omnitool/medical + name = "surgical omni-toolset" + desc = "A set of surgical tools used by cyborgs to operate on various surgical operations." + + omni_toolkit = list( + /obj/item/surgical_drapes/cyborg, + /obj/item/scalpel/cyborg, + /obj/item/surgicaldrill/cyborg, + /obj/item/hemostat/cyborg, + /obj/item/retractor/cyborg, + /obj/item/cautery/cyborg, + /obj/item/circular_saw/cyborg, + /obj/item/bonesetter/cyborg, + ) + +//Toolset for engineering cyborgs, this is all of the tools except for the welding tool. since it's quite hard to implement (read:can't be arsed to) /obj/item/borg/cyborg_omnitool/engineering name = "engineering omni-toolset" desc = "A set of engineering tools used by cyborgs to conduct various engineering tasks." + icon = 'icons/obj/items_cyborg.dmi' icon_state = "toolkit_engiborg" -/obj/item/borg/cyborg_omnitool/medical - name = "surgical omni-toolset" - desc = "A set of surgical tools used by cyborgs to operate on various surgical operations." - icon_state = "toolkit_medborg" + omni_toolkit = list( + /obj/item/wrench/cyborg, + /obj/item/wirecutters/cyborg, + /obj/item/screwdriver/cyborg, + /obj/item/crowbar/cyborg, + /obj/item/multitool/cyborg, + ) + +/obj/item/borg/cyborg_omnitool/engineering/examine(mob/user) + . = ..() + + if(tool_behaviour == TOOL_MULTITOOL) + for(var/obj/item/multitool/tool in atoms) + . += "Its multitool buffer contains [tool.buffer]" + break #undef PKBORG_DAMPEN_CYCLE_DELAY #undef POWER_RECHARGE_CYBORG_DRAIN_MULTIPLIER -#undef NO_TOOL -#undef TOOL_DRAPES diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index b2994028c7006..6fa32ae31e29b 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -428,18 +428,21 @@ . = ..() if(!.) return . - if(cyborg.model.toolbox.currently_upgraded) - to_chat(user, span_warning("This unit is already equipped with an omnitool upgrade!")) - return FALSE - cyborg.model.toolbox.set_upgrade(TRUE) ADD_TRAIT(cyborg, TRAIT_FASTMED, REF(src)) + for(var/obj/item/borg/cyborg_omnitool/medical/omnitool_upgrade in cyborg.model.modules) + if(omnitool_upgrade.upgraded) + to_chat(user, span_warning("This unit is already equipped with an omnitool upgrade!")) + return FALSE + for(var/obj/item/borg/cyborg_omnitool/medical/omnitool in cyborg.model.modules) + omnitool.set_upgraded(TRUE) /obj/item/borg/upgrade/surgery_omnitool/deactivate(mob/living/silicon/robot/cyborg, mob/living/user = usr) . = ..() if(!.) return . - cyborg.model.toolbox.set_upgrade(FALSE) REMOVE_TRAIT(cyborg, TRAIT_FASTMED, REF(src)) + for(var/obj/item/borg/cyborg_omnitool/omnitool in cyborg.model.modules) + omnitool.set_upgraded(FALSE) /obj/item/borg/upgrade/engineering_omnitool name = "cyborg engineering omni-tool upgrade" @@ -454,16 +457,19 @@ . = ..() if(!.) return . - if(cyborg.model.toolbox.currently_upgraded) - to_chat(user, span_warning("This unit is already equipped with an omnitool upgrade!")) - return FALSE - cyborg.model.toolbox.set_upgrade(TRUE) + for(var/obj/item/borg/cyborg_omnitool/engineering/omnitool_upgrade in cyborg.model.modules) + if(omnitool_upgrade.upgraded) + to_chat(user, span_warning("This unit is already equipped with an omnitool upgrade!")) + return FALSE + for(var/obj/item/borg/cyborg_omnitool/engineering/omnitool in cyborg.model.modules) + omnitool.set_upgraded(TRUE) /obj/item/borg/upgrade/engineering_omnitool/deactivate(mob/living/silicon/robot/cyborg, mob/living/user = usr) . = ..() if(!.) return . - cyborg.model.toolbox.set_upgrade(FALSE) + for(var/obj/item/borg/cyborg_omnitool/omnitool in cyborg.model.modules) + omnitool.set_upgraded(FALSE) /obj/item/borg/upgrade/defib name = "medical cyborg defibrillator" diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 5e6b35531f182..a843c3e3e4bff 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -12,6 +12,8 @@ LINEN BINS righthand_file = 'icons/mob/inhands/items/bedsheet_righthand.dmi' icon_state = "sheetwhite" inhand_icon_state = "sheetwhite" + drop_sound = 'sound/items/handling/cloth_drop.ogg' + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' slot_flags = ITEM_SLOT_NECK layer = BELOW_MOB_LAYER throwforce = 0 @@ -57,20 +59,38 @@ LINEN BINS return NONE -/obj/item/bedsheet/attack_secondary(mob/living/target, mob/living/user, params) - if(!user.CanReach(target)) - return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN - if(target.body_position != LYING_DOWN) - return ..() +/obj/item/bedsheet/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) + if(!isliving(interacting_with)) + return NONE + var/mob/living/to_cover = interacting_with + if(to_cover.body_position != LYING_DOWN) + return ITEM_INTERACT_BLOCKING if(!user.dropItemToGround(src)) - return ..() + return ITEM_INTERACT_BLOCKING - forceMove(get_turf(target)) + forceMove(get_turf(to_cover)) balloon_alert(user, "covered") - coverup(target) + coverup(to_cover) add_fingerprint(user) - return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + return ITEM_INTERACT_SUCCESS + +/obj/item/bedsheet/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + // Handle wirecutters here so we still tear it up in combat mode + if(tool.tool_behaviour != TOOL_WIRECUTTER && !tool.get_sharpness()) + return NONE + + // We cannot get free cloth from holograms + if(flags_1 & HOLOGRAM_1) + return ITEM_INTERACT_BLOCKING + + var/obj/item/stack/shreds = new stack_type(get_turf(src), stack_amount) + if(!QDELETED(shreds)) // Stacks merged + transfer_fingerprints_to(shreds) + shreds.add_fingerprint(user) + to_chat(user, span_notice("You tear [src] up.")) + qdel(src) + return ITEM_INTERACT_SUCCESS /obj/item/bedsheet/attack_self(mob/living/user) if(!user.CanReach(src)) //No telekinetic grabbing. @@ -83,10 +103,15 @@ LINEN BINS coverup(user) add_fingerprint(user) +/obj/item/bedsheet/click_alt(mob/living/user) + setDir(REVERSE_DIR(dir)) + return CLICK_ACTION_SUCCESS + /obj/item/bedsheet/proc/coverup(mob/living/sleeper) layer = ABOVE_MOB_LAYER pixel_x = 0 pixel_y = 0 + pixel_z = sleeper.pixel_z // Account for possible mob elevation balloon_alert(sleeper, "covered") var/angle = sleeper.lying_prev dir = angle2dir(angle + 180) // 180 flips it to be the same direction as the mob @@ -107,6 +132,7 @@ LINEN BINS balloon_alert(sleeper, "smoothed sheets") layer = initial(layer) SET_PLANE_IMPLICIT(src, initial(plane)) + pixel_z = 0 signal_sleeper = null // We need to do this in case someone picks up a bedsheet while a mob is covered up @@ -120,24 +146,9 @@ LINEN BINS UnregisterSignal(sleeper, COMSIG_MOVABLE_MOVED) UnregisterSignal(sleeper, COMSIG_LIVING_SET_BODY_POSITION) UnregisterSignal(sleeper, COMSIG_QDELETING) + pixel_z = 0 signal_sleeper = null -/obj/item/bedsheet/attackby(obj/item/I, mob/user, params) - if(I.tool_behaviour == TOOL_WIRECUTTER || I.get_sharpness()) - if (!(flags_1 & HOLOGRAM_1)) - var/obj/item/stack/shreds = new stack_type(get_turf(src), stack_amount) - if(!QDELETED(shreds)) //stacks merged - transfer_fingerprints_to(shreds) - shreds.add_fingerprint(user) - qdel(src) - to_chat(user, span_notice("You tear [src] up.")) - else - return ..() - -/obj/item/bedsheet/click_alt(mob/living/user) - dir = REVERSE_DIR(dir) - return CLICK_ACTION_SUCCESS - /obj/item/bedsheet/blue icon_state = "sheetblue" inhand_icon_state = "sheetblue" @@ -565,9 +576,12 @@ LINEN BINS desc = "It looks rather cosy." icon = 'icons/obj/structures.dmi' icon_state = "linenbin-full" + base_icon_state = "linenbin" anchored = TRUE + pass_flags = PASSTABLE resistance_flags = FLAMMABLE max_integrity = 70 + anchored_tabletop_offset = 6 /// The number of bedsheets in the bin var/amount = 10 /// A list of actual sheets within the bin @@ -620,11 +634,11 @@ LINEN BINS /obj/structure/bedsheetbin/update_icon_state() switch(amount) if(0) - icon_state = "linenbin-empty" + icon_state = "[base_icon_state]-empty" if(1 to 5) - icon_state = "linenbin-half" + icon_state = "[base_icon_state]-half" else - icon_state = "linenbin-full" + icon_state = "[base_icon_state]-full" return ..() /obj/structure/bedsheetbin/fire_act(exposed_temperature, exposed_volume) @@ -740,3 +754,13 @@ LINEN BINS add_fingerprint(user) return COMPONENT_CANCEL_ATTACK_CHAIN + +/obj/structure/bedsheetbin/basket + name = "linen basket" + icon_state = "linenbasket-full" + base_icon_state = "linenbasket" + +/obj/structure/bedsheetbin/empty/basket + name = "linen basket" + icon_state = "linenbasket-empty" + base_icon_state = "linenbasket" diff --git a/code/game/objects/structures/mystery_box.dm b/code/game/objects/structures/mystery_box.dm index 9dc8152f5b7bf..e165c2e295c93 100644 --- a/code/game/objects/structures/mystery_box.dm +++ b/code/game/objects/structures/mystery_box.dm @@ -22,9 +22,7 @@ GLOBAL_LIST_INIT(mystery_box_guns, list( /obj/item/gun/energy/lasercannon, /obj/item/gun/energy/recharge/ebow/large, /obj/item/gun/energy/e_gun, - /obj/item/gun/energy/e_gun/advtaser, /obj/item/gun/energy/e_gun/nuclear, - /obj/item/gun/energy/e_gun/turret, /obj/item/gun/energy/laser, /obj/item/gun/energy/laser/hellgun, /obj/item/gun/energy/laser/captain, @@ -34,17 +32,17 @@ GLOBAL_LIST_INIT(mystery_box_guns, list( /obj/item/gun/ballistic/revolver/mateba, /obj/item/gun/ballistic/automatic/pistol/deagle/camo, /obj/item/gun/ballistic/automatic/pistol/suppressed, - /obj/item/gun/energy/pulse/carbine, - /obj/item/gun/energy/pulse/pistol, + /obj/item/gun/energy/pulse/carbine/taserless, + /obj/item/gun/energy/pulse/pistol/taserless, /obj/item/gun/ballistic/shotgun/lethal, /obj/item/gun/ballistic/shotgun/automatic/combat, - /obj/item/gun/ballistic/shotgun/bulldog, + /obj/item/gun/ballistic/shotgun/bulldog/unrestricted, /obj/item/gun/ballistic/rifle/boltaction, /obj/item/gun/ballistic/automatic/ar, - /obj/item/gun/ballistic/automatic/proto, - /obj/item/gun/ballistic/automatic/c20r, - /obj/item/gun/ballistic/automatic/l6_saw, - /obj/item/gun/ballistic/automatic/m90, + /obj/item/gun/ballistic/automatic/proto/unrestricted, + /obj/item/gun/ballistic/automatic/c20r/unrestricted, + /obj/item/gun/ballistic/automatic/l6_saw/unrestricted, + /obj/item/gun/ballistic/automatic/m90/unrestricted, /obj/item/gun/ballistic/automatic/tommygun, /obj/item/gun/ballistic/automatic/wt550, /obj/item/gun/ballistic/rifle/sniper_rifle, @@ -72,15 +70,11 @@ GLOBAL_LIST_INIT(mystery_magic, list( /obj/item/gun/magic/wand/arcane_barrage/blood, /obj/item/gun/magic/wand/fireball, /obj/item/gun/magic/wand/resurrection, - /obj/item/gun/magic/wand/death, - /obj/item/gun/magic/wand/polymorph, /obj/item/gun/magic/wand/teleport, /obj/item/gun/magic/wand/door, /obj/item/gun/magic/wand/nothing, /obj/item/storage/belt/wands/full, /obj/item/gun/magic/staff/healing, - /obj/item/gun/magic/staff/change, - /obj/item/gun/magic/staff/animate, /obj/item/gun/magic/staff/chaos, /obj/item/gun/magic/staff/door, /obj/item/gun/magic/staff/honk, @@ -88,7 +82,6 @@ GLOBAL_LIST_INIT(mystery_magic, list( /obj/item/gun/magic/staff/flying, /obj/item/gun/magic/staff/babel, /obj/item/singularityhammer, - /obj/item/mod/control/pre_equipped/enchanted, /obj/item/runic_vendor_scepter, )) diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm index 12d9deedbae84..84b9ac26e9b8d 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -142,7 +142,7 @@ /turf/open/floor/proc/try_replace_tile(obj/item/stack/tile/T, mob/user, params) if(T.turf_type == type && T.turf_dir == dir) return - var/obj/item/crowbar/CB = user.is_holding_item_of_type(/obj/item/crowbar) + var/obj/item/crowbar/CB = user.is_holding_tool_quality(TOOL_CROWBAR) if(!CB) return var/turf/open/floor/plating/P = pry_tile(CB, user, TRUE) diff --git a/code/game/turfs/open/floor/fancy_floor.dm b/code/game/turfs/open/floor/fancy_floor.dm index 4d79e6b1b3141..cfece702af4f1 100644 --- a/code/game/turfs/open/floor/fancy_floor.dm +++ b/code/game/turfs/open/floor/fancy_floor.dm @@ -34,9 +34,9 @@ /turf/open/floor/wood/try_replace_tile(obj/item/stack/tile/T, mob/user, params) if(T.turf_type == type) return - var/obj/item/tool = user.is_holding_item_of_type(/obj/item/screwdriver) + var/obj/item/tool = user.is_holding_tool_quality(TOOL_SCREWDRIVER) if(!tool) - tool = user.is_holding_item_of_type(/obj/item/crowbar) + tool = user.is_holding_tool_quality(TOOL_CROWBAR) if(!tool) return var/turf/open/floor/plating/P = pry_tile(tool, user, TRUE) diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm index 509787ffd3a56..e01a305c24c6c 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -11,7 +11,7 @@ user << browse(create_panel_helper(create_mob_html), "window=create_mob;size=425x475") /** - * Randomizes everything about a human, including DNA and name + * Fully randomizes everything about a human, including DNA and name. */ /proc/randomize_human(mob/living/carbon/human/human, randomize_mutations = FALSE) human.gender = human.dna.species.sexes ? pick(MALE, FEMALE, PLURAL, NEUTER) : PLURAL @@ -31,3 +31,42 @@ // Snowflake for Ethereals human.updatehealth() human.updateappearance(mutcolor_update = TRUE) + +/** + * Randomizes a human, but produces someone who looks exceedingly average (by most standards). + * + * (IE, no wacky hair styles / colors) + */ +/proc/randomize_human_normie(mob/living/carbon/human/human, randomize_mutations = FALSE) + var/static/list/natural_hair_colors = list( + "#111111", "#362925", "#3B3831", "#41250C", "#412922", + "#544C49", "#583322", "#593029", "#703b30", "#714721", + "#744729", "#74482a", "#7b746e", "#855832", "#863019", + "#8c4734", "#9F550E", "#A29A96", "#A4381C", "#B17B41", + "#C0BAB7", "#EFE5E4", "#F7F3F1", "#FFF2D6", "#a15537", + "#a17e61", "#b38b67", "#ba673c", "#c89f73", "#d9b380", + "#dbc9b8", "#e1621d", "#e17d17", "#e1af93", "#f1cc8f", + "#fbe7a1", + ) + // Sorry enbys but statistically you are not average enough + human.gender = human.dna.species.sexes ? pick(MALE, FEMALE) : PLURAL + human.physique = human.gender + human.real_name = human.generate_random_mob_name() + human.name = human.get_visible_name() + human.eye_color_left = random_eye_color() + human.eye_color_right = human.eye_color_left + human.skin_tone = pick(GLOB.skin_tones) + // No underwear generation handled here + var/picked_color = pick(natural_hair_colors) + human.set_haircolor(picked_color, update = FALSE) + human.set_facial_haircolor(picked_color, update = FALSE) + var/datum/sprite_accessory/hairstyle = SSaccessories.hairstyles_list[random_hairstyle(human.gender)] + if(hairstyle?.natural_spawn) + human.set_hairstyle(hairstyle.name, update = FALSE) + var/datum/sprite_accessory/facial_hair = SSaccessories.facial_hairstyles_list[random_facial_hairstyle(human.gender)] + if(facial_hair?.natural_spawn) + human.set_facial_hairstyle(facial_hair.name, update = FALSE) + // Normal DNA init stuff, these can generally be wacky but we care less, they're aliens after all + human.dna.initialize_dna(newblood_type = random_blood_type(), create_mutation_blocks = randomize_mutations, randomize_features = TRUE) + human.updatehealth() + human.updateappearance(mutcolor_update = TRUE) diff --git a/code/modules/admin/verbs/anonymousnames.dm b/code/modules/admin/verbs/anonymousnames.dm index 10edb49d99336..7f56155c9989a 100644 --- a/code/modules/admin/verbs/anonymousnames.dm +++ b/code/modules/admin/verbs/anonymousnames.dm @@ -94,7 +94,7 @@ GLOBAL_DATUM(current_anonymous_theme, /datum/anonymous_theme) return var/mob/living/carbon/human/human_mob = player var/original_name = player.real_name //id will not be changed if you do not do this - randomize_human(player) //do this first so the special name can be given + randomize_human_normie(player) //do this first so the special name can be given player.fully_replace_character_name(original_name, anonymous_name(player)) if(extras_enabled) player_extras(player) diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 436e484cb430e..3717affc51c34 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -208,7 +208,7 @@ ADMIN_VERB(create_mapping_job_icons, R_DEBUG, "Generate job landmarks icons", "G else for(var/obj/item/I in D) qdel(I) - randomize_human(D) + randomize_human_normie(D) D.dress_up_as_job( equipping = JB, visual_only = TRUE, diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 1c4fa8c501cd0..db261c29b5433 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -341,7 +341,7 @@ damage = 0 damage_type = BRUTE range = 8 - hitsound = 'sound/weapons/thudswoosh.ogg' + hitsound = 'sound/weapons/shove.ogg' var/chain var/obj/item/ammo_casing/magic/tentacle/source //the item that shot it ///Click params that were used to fire the tentacle shot diff --git a/code/modules/antagonists/heretic/knowledge/starting_lore.dm b/code/modules/antagonists/heretic/knowledge/starting_lore.dm index 0a93659884a14..7cb3b82a39ac2 100644 --- a/code/modules/antagonists/heretic/knowledge/starting_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/starting_lore.dm @@ -315,16 +315,23 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge()) return !invoker.feast_of_owls /datum/heretic_knowledge/feast_of_owls/on_finished_recipe(mob/living/user, list/selected_atoms, turf/loc) + //amount of research points granted + var/reward = 5 var/alert = tgui_alert(user,"Do you really want to forsake your ascension? This action cannot be reverted.", "Feast of Owls", list("Yes I'm sure", "No"), 30 SECONDS) if( alert != "Yes I'm sure") return FALSE - user.set_temp_blindness(5 SECONDS) - user.AdjustParalyzed(5 SECONDS) + user.set_temp_blindness(reward SECONDS) + user.AdjustParalyzed(reward SECONDS) + user.playsound_local(get_turf(user), 'sound/ambience/antag/heretic/heretic_gain_intense.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) var/datum/antagonist/heretic/heretic_datum = IS_HERETIC(user) - for(var/i in 0 to 4) + for(var/i in 1 to reward) user.emote("scream") playsound(loc, 'sound/items/eatfood.ogg', 100, TRUE) heretic_datum.knowledge_points++ + to_chat(user, span_danger("You feel something invisible tearing away at your very essence!")) + user.do_jitter_animation() sleep(1 SECONDS) - to_chat(user,span_danger("You feel different...")) heretic_datum.feast_of_owls = TRUE + to_chat(user, span_danger(span_big("Your ambition is ravaged, but something powerful remains in its wake..."))) + var/drain_message = pick(strings(HERETIC_INFLUENCE_FILE, "drain_message")) + to_chat(user, span_hypnophrase(span_big("[drain_message]"))) diff --git a/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm b/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm index 4ec7830ac88cf..0a6aa23b34d58 100644 --- a/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm +++ b/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm @@ -145,6 +145,8 @@ GLOBAL_LIST_EMPTY_TYPED(air_alarms, /obj/machinery/airalarm) /obj/machinery/airalarm/proc/check_enviroment() var/turf/our_turf = connected_sensor ? get_turf(connected_sensor) : get_turf(src) var/datum/gas_mixture/environment = our_turf.return_air() + if(isnull(environment)) + return check_danger(our_turf, environment, environment.temperature) /obj/machinery/airalarm/proc/get_enviroment() @@ -554,6 +556,9 @@ GLOBAL_LIST_EMPTY_TYPED(air_alarms, /obj/machinery/airalarm) if((machine_stat & (NOPOWER|BROKEN)) || shorted) return + if(!environment) + return + var/old_danger = danger_level danger_level = AIR_ALARM_ALERT_NONE diff --git a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer_items.dm b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer_items.dm index 6e0490e25efb3..95b548998a194 100644 --- a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer_items.dm +++ b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer_items.dm @@ -16,7 +16,7 @@ if(atmos_device.nob_crystal_inserted) to_chat(user, span_warning("[atmos_device] already has a hypernoblium crystal inserted in it!")) return ITEM_INTERACT_BLOCKING - atmos_device.nob_crystal_inserted = TRUE + atmos_device.insert_nob_crystal() to_chat(user, span_notice("You insert the [src] into [atmos_device].")) if(istype(worn_item)) diff --git a/code/modules/atmospherics/machinery/portable/pipe_scrubber.dm b/code/modules/atmospherics/machinery/portable/pipe_scrubber.dm new file mode 100644 index 0000000000000..cde38f216ad70 --- /dev/null +++ b/code/modules/atmospherics/machinery/portable/pipe_scrubber.dm @@ -0,0 +1,167 @@ +/obj/machinery/portable_atmospherics/pipe_scrubber + name = "pipe scrubber" + desc = "A machine for cleaning out pipes of lingering gases. It is a huge tank with a pump attached to it." + icon_state = "pipe_scrubber" + density = TRUE + max_integrity = 250 + volume = 200 + ///The internal air tank obj of the mech + var/obj/machinery/portable_atmospherics/canister/internal_tank + ///Is the machine on? + var/on = FALSE + ///What direction is the machine pumping to (into scrubber or out to the port)? + var/direction = PUMP_IN + ///the rate the machine will scrub air + var/volume_rate = 1000 + ///List of gases that can be scrubbed + var/list/scrubbing = list( + /datum/gas/plasma, + /datum/gas/carbon_dioxide, + /datum/gas/nitrous_oxide, + /datum/gas/bz, + /datum/gas/nitrium, + /datum/gas/tritium, + /datum/gas/hypernoblium, + /datum/gas/water_vapor, + /datum/gas/freon, + /datum/gas/hydrogen, + /datum/gas/healium, + /datum/gas/proto_nitrate, + /datum/gas/zauker, + /datum/gas/halon, + ) + +/obj/machinery/portable_atmospherics/pipe_scrubber/Initialize(mapload) + . = ..() + internal_tank = new(src) + RegisterSignal(internal_tank, COMSIG_ATOM_BREAK, PROC_REF(deconstruct)) + RegisterSignal(internal_tank, COMSIG_QDELETING, PROC_REF(deconstruct)) + +/obj/machinery/portable_atmospherics/pipe_scrubber/atom_deconstruct(disassembled) + . = ..() + var/turf/my_turf = get_turf(src) + my_turf.assume_air(air_contents) + my_turf.assume_air(internal_tank.air_contents) + SSair.stop_processing_machine(internal_tank) + qdel(internal_tank) + +/obj/machinery/portable_atmospherics/pipe_scrubber/return_analyzable_air() + return list( + air_contents, + internal_tank.air_contents + ) + +/obj/machinery/portable_atmospherics/pipe_scrubber/welder_act(mob/living/user, obj/item/tool) + internal_tank.welder_act(user, tool) + return ..() + +/obj/machinery/portable_atmospherics/pipe_scrubber/click_alt(mob/living/user) + return CLICK_ACTION_BLOCKING + +/obj/machinery/portable_atmospherics/pipe_scrubber/replace_tank(mob/living/user, close_valve, obj/item/tank/new_tank) + return FALSE + +/obj/machinery/portable_atmospherics/pipe_scrubber/update_icon_state() + icon_state = on ? "[initial(icon_state)]_active" : initial(icon_state) + return ..() + +/obj/machinery/portable_atmospherics/pipe_scrubber/process_atmos() + if(take_atmos_damage()) + excited = TRUE + return ..() + if(!on) + return ..() + excited = TRUE + if(direction == PUMP_IN) + scrub(air_contents) + else + internal_tank.air_contents.pump_gas_to(air_contents, PUMP_MAX_PRESSURE) + return ..() + +/// Scrub gasses from own air_contents into internal_tank.air_contents +/obj/machinery/portable_atmospherics/pipe_scrubber/proc/scrub() + if(internal_tank.air_contents.return_pressure() >= PUMP_MAX_PRESSURE) + return + + var/transfer_moles = min(1, volume_rate / air_contents.volume) * air_contents.total_moles() + + var/datum/gas_mixture/filtering = air_contents.remove(transfer_moles) // Remove part of the mixture to filter. + var/datum/gas_mixture/filtered = new + if(!filtering) + return + + filtered.temperature = filtering.temperature + for(var/gas in filtering.gases & scrubbing) + filtered.add_gas(gas) + filtered.gases[gas][MOLES] = filtering.gases[gas][MOLES] // Shuffle the "bad" gasses to the filtered mixture. + filtering.gases[gas][MOLES] = 0 + filtering.garbage_collect() // Now that the gasses are set to 0, clean up the mixture. + + internal_tank.air_contents.merge(filtered) // Store filtered out gasses. + air_contents.merge(filtering) // Returned the cleaned gas. + +/obj/machinery/portable_atmospherics/pipe_scrubber/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "PipeScrubber", name) + ui.open() + +/obj/machinery/portable_atmospherics/pipe_scrubber/ui_data() + var/data = list() + data["on"] = on + data["direction"] = direction + data["connected"] = connected_port ? 1 : 0 + data["pressureTank"] = round(internal_tank.air_contents.return_pressure() ? internal_tank.air_contents.return_pressure() : 0) + data["pressurePump"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0) + data["hasHypernobCrystal"] = nob_crystal_inserted + data["reactionSuppressionEnabled"] = suppress_reactions + + data["filterTypes"] = list() + for(var/gas_path in GLOB.meta_gas_info) + var/list/gas = GLOB.meta_gas_info[gas_path] + data["filterTypes"] += list(list("gasId" = gas[META_GAS_ID], "gasName" = gas[META_GAS_NAME], "enabled" = (gas_path in scrubbing))) + + return data + +/obj/machinery/portable_atmospherics/pipe_scrubber/ui_static_data() + var/list/data = list() + data["pressureLimitPump"] = pressure_limit + data["pressureLimitTank"] = internal_tank.pressure_limit + return data + +/obj/machinery/portable_atmospherics/pipe_scrubber/ui_act(action, params) + . = ..() + if(.) + return + switch(action) + if("power") + on = !on + if(on) + SSair.start_processing_machine(src) + SSair.start_processing_machine(internal_tank) + . = TRUE + if("direction") + direction = !direction + . = TRUE + if("toggle_filter") + scrubbing ^= gas_id2path(params["val"]) + . = TRUE + if("reaction_suppression") + if(!internal_tank.nob_crystal_inserted) + message_admins("[ADMIN_LOOKUPFLW(usr)] tried to toggle reaction suppression on a pipe scrubber without a noblium crystal inside, possible href exploit attempt.") + return + internal_tank.suppress_reactions = !internal_tank.suppress_reactions + SSair.start_processing_machine(internal_tank) + message_admins("[ADMIN_LOOKUPFLW(usr)] turned [internal_tank.suppress_reactions ? "on" : "off"] the [internal_tank] reaction suppression.") + usr.investigate_log("turned [internal_tank.suppress_reactions ? "on" : "off"] the [internal_tank] reaction suppression.") + . = TRUE + update_appearance() + +/obj/machinery/portable_atmospherics/pipe_scrubber/insert_nob_crystal() + . = ..() + internal_tank.nob_crystal_inserted = TRUE + +/obj/machinery/portable_atmospherics/pipe_scrubber/proc/toggle_reaction_suppression() + var/new_value = !suppress_reactions + suppress_reactions = new_value + internal_tank.suppress_reactions = new_value diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index 17f3a6fb439f7..9729c0871451a 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -212,8 +212,16 @@ * * new_tank: the tank we are trying to put in the machine */ /obj/machinery/portable_atmospherics/proc/replace_tank(mob/living/user, close_valve, obj/item/tank/new_tank) + if(machine_stat & BROKEN) + return FALSE if(!user) return FALSE + if(!user.transferItemToLoc(new_tank, src)) + return FALSE + + investigate_log("had its internal [holding] swapped with [new_tank] by [key_name(user)].", INVESTIGATE_ATMOS) + to_chat(user, span_notice("[holding ? "In one smooth motion you pop [holding] out of [src]'s connector and replace it with [new_tank]" : "You insert [new_tank] into [src]"].")) + if(holding && new_tank)//for when we are actually switching tanks user.put_in_hands(holding) UnregisterSignal(holding, COMSIG_QDELETING) @@ -238,17 +246,9 @@ return TRUE /obj/machinery/portable_atmospherics/attackby(obj/item/item, mob/user, params) - if(!istype(item, /obj/item/tank)) - return ..() - if(machine_stat & BROKEN) - return FALSE - var/obj/item/tank/insert_tank = item - if(!user.transferItemToLoc(insert_tank, src)) - return FALSE - to_chat(user, span_notice("[holding ? "In one smooth motion you pop [holding] out of [src]'s connector and replace it with [insert_tank]" : "You insert [insert_tank] into [src]"].")) - investigate_log("had its internal [holding] swapped with [insert_tank] by [key_name(user)].", INVESTIGATE_ATMOS) - replace_tank(user, FALSE, insert_tank) - update_appearance() + if(istype(item, /obj/item/tank)) + return replace_tank(user, FALSE, item) + return ..() /obj/machinery/portable_atmospherics/wrench_act(mob/living/user, obj/item/wrench) if(machine_stat & BROKEN) @@ -295,4 +295,8 @@ UnregisterSignal(holding, COMSIG_QDELETING) holding = null +/// Insert Hypernob crystal into the machine +/obj/machinery/portable_atmospherics/proc/insert_nob_crystal() + nob_crystal_inserted = TRUE + #undef PORTABLE_ATMOS_IGNORE_ATMOS_LIMIT diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm index 6f66e9e07d2c0..b292180683f88 100644 --- a/code/modules/atmospherics/machinery/portable/scrubber.dm +++ b/code/modules/atmospherics/machinery/portable/scrubber.dm @@ -65,7 +65,9 @@ return ..() var/turf/epicentre = get_turf(src) - for(var/turf/open/openturf in epicentre.get_atmos_adjacent_turfs(alldir = TRUE)) + if(isopenturf(epicentre)) + scrub(epicentre.return_air()) + for(var/turf/open/openturf as anything in epicentre.get_atmos_adjacent_turfs(alldir = TRUE)) scrub(openturf.return_air()) return ..() diff --git a/code/modules/bitrunning/components/bitrunning_points.dm b/code/modules/bitrunning/components/bitrunning_points.dm index 328a70679e653..ea8f63f76d8df 100644 --- a/code/modules/bitrunning/components/bitrunning_points.dm +++ b/code/modules/bitrunning/components/bitrunning_points.dm @@ -5,6 +5,7 @@ /// A special condition limits this from spawning a crate var/points_received = 0 + /datum/component/bitrunning_points/Initialize(datum/lazy_template/virtual_domain/domain) . = ..() if(!isturf(parent)) @@ -12,6 +13,7 @@ RegisterSignal(domain, COMSIG_BITRUNNER_GOAL_POINT, PROC_REF(on_add_points)) + /// Listens for points to be added which will eventually spawn a crate. /datum/component/bitrunning_points/proc/on_add_points(datum/source, points_to_add) SIGNAL_HANDLER @@ -23,12 +25,14 @@ reveal() + /// Spawns the crate with some effects /datum/component/bitrunning_points/proc/reveal() playsound(src, 'sound/magic/blink.ogg', 50, TRUE) var/turf/tile = parent - new /obj/structure/closet/crate/secure/bitrunning/encrypted(tile) + var/obj/structure/closet/crate/secure/bitrunning/encrypted/crate = new() + crate.forceMove(tile) // Triggers any on-move effects on that turf var/datum/effect_system/spark_spread/quantum/sparks = new(tile) sparks.set_up(number = 5, location = tile) diff --git a/code/modules/bitrunning/netpod/_netpod.dm b/code/modules/bitrunning/netpod/_netpod.dm new file mode 100644 index 0000000000000..2208c56a7414e --- /dev/null +++ b/code/modules/bitrunning/netpod/_netpod.dm @@ -0,0 +1,137 @@ +#define BASE_DISCONNECT_DAMAGE 40 + + +/obj/machinery/netpod + name = "netpod" + + base_icon_state = "netpod" + circuit = /obj/item/circuitboard/machine/netpod + desc = "A link to the netverse. It has an assortment of cables to connect yourself to a virtual domain." + icon = 'icons/obj/machines/bitrunning.dmi' + icon_state = "netpod" + max_integrity = 300 + obj_flags = BLOCKS_CONSTRUCTION + state_open = TRUE + interaction_flags_mouse_drop = NEED_HANDS | NEED_DEXTERITY + + /// Whether we have an ongoing connection + var/connected = FALSE + /// A player selected outfit by clicking the netpod + var/datum/outfit/netsuit = /datum/outfit/job/bitrunner + /// Holds this to see if it needs to generate a new one + var/datum/weakref/avatar_ref + /// The linked quantum server + var/datum/weakref/server_ref + /// The amount of brain damage done from force disconnects + var/disconnect_damage + /// Static list of outfits to select from + var/list/cached_outfits = list() + + +/obj/machinery/netpod/post_machine_initialize() + . = ..() + + disconnect_damage = BASE_DISCONNECT_DAMAGE + find_server() + + RegisterSignal(src, COMSIG_ATOM_TAKE_DAMAGE, PROC_REF(on_damage_taken)) + RegisterSignal(src, COMSIG_MACHINERY_POWER_LOST, PROC_REF(on_power_loss)) + RegisterSignals(src, list(COMSIG_QDELETING, COMSIG_MACHINERY_BROKEN),PROC_REF(on_broken)) + + register_context() + update_appearance() + + +/obj/machinery/netpod/Destroy() + . = ..() + + QDEL_LIST(cached_outfits) + + +/obj/machinery/netpod/examine(mob/user) + . = ..() + + if(isnull(server_ref?.resolve())) + . += span_infoplain("It's not connected to anything.") + . += span_infoplain("Netpods must be built within 4 tiles of a server.") + return + + if(!isobserver(user)) + . += span_infoplain("Drag yourself into the pod to engage the link.") + . += span_infoplain("It has limited resuscitation capabilities. Remaining in the pod can heal some injuries.") + . += span_infoplain("It has a security system that will alert the occupant if it is tampered with.") + + if(isnull(occupant)) + . += span_infoplain("It's currently unoccupied.") + return + + . += span_infoplain("It's currently occupied by [occupant].") + + if(isobserver(user)) + . += span_notice("As an observer, you can click this netpod to jump to its avatar.") + return + + . += span_notice("It can be pried open with a crowbar, but its safety mechanisms will alert the occupant.") + + +/obj/machinery/netpod/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + + if(isnull(held_item)) + context[SCREENTIP_CONTEXT_LMB] = "Select Outfit" + return CONTEXTUAL_SCREENTIP_SET + + if(istype(held_item, /obj/item/crowbar) && occupant) + context[SCREENTIP_CONTEXT_LMB] = "Pry Open" + return CONTEXTUAL_SCREENTIP_SET + + +/obj/machinery/netpod/update_icon_state() + if(!is_operational) + icon_state = base_icon_state + return ..() + + if(state_open) + icon_state = base_icon_state + "_open_active" + return ..() + + if(panel_open) + icon_state = base_icon_state + "_panel" + return ..() + + icon_state = base_icon_state + "_closed" + if(occupant) + icon_state += "_active" + + return ..() + + +/obj/machinery/netpod/mouse_drop_receive(mob/target, mob/user, params) + var/mob/living/carbon/player = user + + if(!iscarbon(player) || !is_operational || !state_open || player.buckled) + return + + close_machine(target) + + +/obj/machinery/netpod/attack_hand(mob/living/user, list/modifiers) + . = ..() + if(!state_open && user == occupant) + container_resist_act(user) + + +/obj/machinery/netpod/attack_ghost(mob/dead/observer/our_observer) + var/our_target = avatar_ref?.resolve() + if(isnull(our_target) || !our_observer.orbit(our_target)) + return ..() + + +/// When the server is upgraded, drops brain damage a little +/obj/machinery/netpod/proc/on_server_upgraded(obj/machinery/quantum_server/source) + SIGNAL_HANDLER + + disconnect_damage = BASE_DISCONNECT_DAMAGE * (1 - source.servo_bonus) + + +#undef BASE_DISCONNECT_DAMAGE diff --git a/code/modules/bitrunning/netpod/container.dm b/code/modules/bitrunning/netpod/container.dm new file mode 100644 index 0000000000000..6165544544511 --- /dev/null +++ b/code/modules/bitrunning/netpod/container.dm @@ -0,0 +1,74 @@ +/obj/machinery/netpod/Exited(atom/movable/gone, direction) + . = ..() + if(!state_open && gone == occupant) + container_resist_act(gone) + + +/obj/machinery/netpod/relaymove(mob/living/user, direction) + if(!state_open) + container_resist_act(user) + + +/obj/machinery/netpod/container_resist_act(mob/living/user) + user.visible_message(span_notice("[occupant] emerges from [src]!"), + span_notice("You climb out of [src]!"), + span_notice("With a hiss, you hear a machine opening.")) + open_machine() + + +/obj/machinery/netpod/open_machine(drop = TRUE, density_to_set = FALSE) + playsound(src, 'sound/machines/tramopen.ogg', 60, TRUE, frequency = 65000) + flick("[base_icon_state]_opening", src) + SEND_SIGNAL(src, COMSIG_BITRUNNER_NETPOD_OPENED) + update_use_power(IDLE_POWER_USE) + + return ..() + + +/obj/machinery/netpod/close_machine(mob/user, density_to_set = TRUE) + if(!state_open || panel_open || !is_operational || !iscarbon(user)) + return + + playsound(src, 'sound/machines/tramclose.ogg', 60, TRUE, frequency = 65000) + flick("[base_icon_state]_closing", src) + ..() + + enter_matrix() + + +/obj/machinery/netpod/default_pry_open(obj/item/crowbar, mob/living/pryer) + if(isnull(occupant) || !iscarbon(occupant)) + if(!state_open) + if(panel_open) + return FALSE + open_machine() + else + shut_pod() + + return TRUE + + pryer.visible_message( + span_danger("[pryer] starts prying open [src]!"), + span_notice("You start to pry open [src]."), + span_notice("You hear loud prying on metal.") + ) + playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) + + SEND_SIGNAL(src, COMSIG_BITRUNNER_CROWBAR_ALERT, pryer) + + if(do_after(pryer, 15 SECONDS, src)) + if(!state_open) + sever_connection() + open_machine() + + return TRUE + + +/// Closes the machine without shoving in an occupant +/obj/machinery/netpod/proc/shut_pod() + state_open = FALSE + playsound(src, 'sound/machines/tramclose.ogg', 60, TRUE, frequency = 65000) + flick("[base_icon_state]_closing", src) + set_density(TRUE) + + update_appearance() diff --git a/code/modules/bitrunning/netpod/outfitting.dm b/code/modules/bitrunning/netpod/outfitting.dm new file mode 100644 index 0000000000000..07f251541980f --- /dev/null +++ b/code/modules/bitrunning/netpod/outfitting.dm @@ -0,0 +1,30 @@ +/// Creates a list of outfit entries for the UI. +/obj/machinery/netpod/proc/make_outfit_collection(identifier, list/outfit_list) + var/list/collection = list( + "name" = identifier, + "outfits" = list() + ) + + for(var/datum/outfit/outfit as anything in outfit_list) + var/outfit_name = initial(outfit.name) + if(findtext(outfit_name, "(") != 0 || findtext(outfit_name, "-") != 0) // No special variants please + continue + + collection["outfits"] += list(list("path" = outfit, "name" = outfit_name)) + + return list(collection) + + +/// Resolves a path to an outfit. +/obj/machinery/netpod/proc/resolve_outfit(text) + var/path = text2path(text) + if(!ispath(path, /datum/outfit)) + return + + for(var/wardrobe in cached_outfits) + for(var/outfit in wardrobe["outfits"]) + if(path == outfit["path"]) + return path + + message_admins("[usr]:[usr.ckey] attempted to select an unavailable outfit from a netpod") + return diff --git a/code/modules/bitrunning/netpod/signals.dm b/code/modules/bitrunning/netpod/signals.dm new file mode 100644 index 0000000000000..8f8416aeb7b1b --- /dev/null +++ b/code/modules/bitrunning/netpod/signals.dm @@ -0,0 +1,64 @@ +/// Machine has been broken - handles signals and reverting sprites +/obj/machinery/netpod/proc/on_broken(datum/source) + SIGNAL_HANDLER + + sever_connection() + + +/// Checks the integrity, alerts occupants +/obj/machinery/netpod/proc/on_damage_taken(datum/source, damage_amount) + SIGNAL_HANDLER + + if(isnull(occupant) || !connected) + return + + var/total = max_integrity - damage_amount + var/integrity = (atom_integrity / total) * 100 + if(integrity > 50) + return + + SEND_SIGNAL(src, COMSIG_BITRUNNER_NETPOD_INTEGRITY) + + +/// Puts points on the current occupant's card account +/obj/machinery/netpod/proc/on_domain_complete(datum/source, atom/movable/crate, reward_points) + SIGNAL_HANDLER + + if(isnull(occupant) || !connected) + return + + var/mob/living/player = occupant + + var/datum/bank_account/account = player.get_bank_account() + if(isnull(account)) + return + + account.bitrunning_points += reward_points * 100 + + +/// The domain has been fully purged, so we should double check our avatar is deleted +/obj/machinery/netpod/proc/on_domain_scrubbed(datum/source) + SIGNAL_HANDLER + + var/mob/avatar = avatar_ref?.resolve() + if(isnull(avatar)) + return + + QDEL_NULL(avatar) + + +/// Boots out anyone in the machine && opens it +/obj/machinery/netpod/proc/on_power_loss(datum/source) + SIGNAL_HANDLER + + if(state_open) + return + + if(isnull(occupant) || !connected) + connected = FALSE + open_machine() + return + + sever_connection() + + diff --git a/code/modules/bitrunning/netpod/tools.dm b/code/modules/bitrunning/netpod/tools.dm new file mode 100644 index 0000000000000..0d31bdab86651 --- /dev/null +++ b/code/modules/bitrunning/netpod/tools.dm @@ -0,0 +1,22 @@ +/obj/machinery/netpod/crowbar_act(mob/living/user, obj/item/tool) + if(user.combat_mode) + attack_hand(user) + return ITEM_INTERACT_SUCCESS + + if(default_pry_open(tool, user) || default_deconstruction_crowbar(tool)) + return ITEM_INTERACT_SUCCESS + + +/obj/machinery/netpod/screwdriver_act(mob/living/user, obj/item/tool) + if(occupant) + balloon_alert(user, "in use!") + return ITEM_INTERACT_SUCCESS + + if(state_open) + balloon_alert(user, "close first.") + return ITEM_INTERACT_SUCCESS + + if(default_deconstruction_screwdriver(user, "[base_icon_state]_panel", "[base_icon_state]_closed", tool)) + update_appearance() // sometimes icon doesnt properly update during flick() + ui_close(user) + return ITEM_INTERACT_SUCCESS diff --git a/code/modules/bitrunning/netpod/ui.dm b/code/modules/bitrunning/netpod/ui.dm new file mode 100644 index 0000000000000..93719fe64ebef --- /dev/null +++ b/code/modules/bitrunning/netpod/ui.dm @@ -0,0 +1,41 @@ +/obj/machinery/netpod/ui_interact(mob/user, datum/tgui/ui) + if(!is_operational || occupant) + return + + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "NetpodOutfits") + ui.set_autoupdate(FALSE) + ui.open() + + +/obj/machinery/netpod/ui_data() + var/list/data = list() + + data["netsuit"] = netsuit + return data + + +/obj/machinery/netpod/ui_static_data() + var/list/data = list() + + if(!length(cached_outfits)) + cached_outfits += make_outfit_collection("Jobs", subtypesof(/datum/outfit/job)) + + data["collections"] = cached_outfits + + return data + + +/obj/machinery/netpod/ui_act(action, params) + . = ..() + if(.) + return TRUE + switch(action) + if("select_outfit") + var/datum/outfit/new_suit = resolve_outfit(params["outfit"]) + if(new_suit) + netsuit = new_suit + return TRUE + + return FALSE diff --git a/code/modules/bitrunning/netpod/utils.dm b/code/modules/bitrunning/netpod/utils.dm new file mode 100644 index 0000000000000..6e0033fe02d93 --- /dev/null +++ b/code/modules/bitrunning/netpod/utils.dm @@ -0,0 +1,144 @@ +/// Puts the occupant in netpod stasis, basically short-circuiting environmental conditions +/obj/machinery/netpod/proc/add_healing(mob/living/target) + if(target != occupant) + return + + target.AddComponent(/datum/component/netpod_healing, pod = src) + target.playsound_local(src, 'sound/effects/submerge.ogg', 20, vary = TRUE) + target.extinguish_mob() + update_use_power(ACTIVE_POWER_USE) + + +/// Disconnects the occupant after a certain time so they aren't just hibernating in netpod stasis. A balance change +/obj/machinery/netpod/proc/auto_disconnect() + if(isnull(occupant) || state_open || connected) + return + + var/mob/player = occupant + player.playsound_local(src, 'sound/effects/splash.ogg', 60, TRUE) + to_chat(player, span_notice("The machine disconnects itself and begins to drain.")) + open_machine() + + +/// Handles occupant post-disconnection effects like damage, sounds, etc +/obj/machinery/netpod/proc/disconnect_occupant(cause_damage = FALSE) + connected = FALSE + + var/mob/living/mob_occupant = occupant + if(isnull(occupant) || mob_occupant.stat == DEAD) + open_machine() + return + + mob_occupant.playsound_local(src, 'sound/magic/blink.ogg', 25, TRUE) + mob_occupant.set_static_vision(2 SECONDS) + mob_occupant.set_temp_blindness(1 SECONDS) + mob_occupant.Paralyze(2 SECONDS) + + if(!is_operational) + open_machine() + return + + var/heal_time = 1 + if(mob_occupant.health < mob_occupant.maxHealth) + heal_time = (mob_occupant.stat + 2) * 5 + addtimer(CALLBACK(src, PROC_REF(auto_disconnect)), heal_time SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME) + + if(!cause_damage) + return + + mob_occupant.flash_act(override_blindness_check = TRUE, visual = TRUE) + mob_occupant.adjustOrganLoss(ORGAN_SLOT_BRAIN, disconnect_damage) + INVOKE_ASYNC(mob_occupant, TYPE_PROC_REF(/mob/living, emote), "scream") + to_chat(mob_occupant, span_danger("You've been forcefully disconnected from your avatar! Your thoughts feel scrambled!")) + + +/** + * ### Enter Matrix + * Finds any current avatars from this chair - or generates a new one + * + * New avatars cost 1 attempt, and this will eject if there's none left + * + * Connects the mind to the avatar if everything is ok + */ +/obj/machinery/netpod/proc/enter_matrix() + var/mob/living/carbon/human/neo = occupant + if(!ishuman(neo) || neo.stat == DEAD || isnull(neo.mind)) + balloon_alert(neo, "invalid occupant.") + return + + var/obj/machinery/quantum_server/server = find_server() + if(isnull(server)) + balloon_alert(neo, "no server connected!") + return + + var/datum/lazy_template/virtual_domain/generated_domain = server.generated_domain + if(isnull(generated_domain) || !server.is_ready) + balloon_alert(neo, "nothing loaded!") + return + + var/mob/living/carbon/current_avatar = avatar_ref?.resolve() + if(isnull(current_avatar) || current_avatar.stat != CONSCIOUS) // We need a viable avatar + current_avatar = server.start_new_connection(neo, netsuit) + if(isnull(current_avatar)) + balloon_alert(neo, "out of bandwidth!") + return + + neo.set_static_vision(2 SECONDS) + add_healing(occupant) + + if(!validate_entry(neo, current_avatar)) + open_machine() + return + + current_avatar.AddComponent( \ + /datum/component/avatar_connection, \ + old_mind = neo.mind, \ + old_body = neo, \ + server = server, \ + pod = src, \ + help_text = generated_domain.help_text, \ + ) + + connected = TRUE + + +/// Finds a server and sets the server_ref +/obj/machinery/netpod/proc/find_server() + var/obj/machinery/quantum_server/server = server_ref?.resolve() + if(server) + return server + + server = locate(/obj/machinery/quantum_server) in oview(4, src) + if(isnull(server)) + return + + server_ref = WEAKREF(server) + RegisterSignal(server, COMSIG_MACHINERY_REFRESH_PARTS, PROC_REF(on_server_upgraded)) + RegisterSignal(server, COMSIG_BITRUNNER_DOMAIN_COMPLETE, PROC_REF(on_domain_complete)) + RegisterSignal(server, COMSIG_BITRUNNER_DOMAIN_SCRUBBED, PROC_REF(on_domain_scrubbed)) + + return server + + +/// Severs the connection with the current avatar +/obj/machinery/netpod/proc/sever_connection() + if(isnull(occupant) || !connected) + return + + SEND_SIGNAL(src, COMSIG_BITRUNNER_NETPOD_SEVER) + + +/// Checks for cases to eject/fail connecting an avatar +/obj/machinery/netpod/proc/validate_entry(mob/living/neo, mob/living/avatar) + if(!do_after(neo, 2 SECONDS, src)) + return FALSE + + // Very invalid + if(QDELETED(neo) || QDELETED(avatar) || QDELETED(src) || !is_operational) + return FALSE + + // Invalid + if(occupant != neo || isnull(neo.mind) || neo.stat > SOFT_CRIT || avatar.stat == DEAD) + return FALSE + + return TRUE diff --git a/code/modules/bitrunning/objects/landmarks.dm b/code/modules/bitrunning/objects/landmarks.dm index 3b38493edfffa..ea55b96979edd 100644 --- a/code/modules/bitrunning/objects/landmarks.dm +++ b/code/modules/bitrunning/objects/landmarks.dm @@ -12,6 +12,11 @@ name = "Bitrunning hololadder spawn" icon_state = "hololadder" +/// A permanent exit for the domain +/obj/effect/landmark/bitrunning/permanent_exit + name = "Bitrunning permanent exit" + icon_state = "perm_exit" + /// Where the crates need to be taken /obj/effect/landmark/bitrunning/cache_goal_turf name = "Bitrunning goal turf" diff --git a/code/modules/bitrunning/objects/netpod.dm b/code/modules/bitrunning/objects/netpod.dm deleted file mode 100644 index 1d4e905d6e184..0000000000000 --- a/code/modules/bitrunning/objects/netpod.dm +++ /dev/null @@ -1,490 +0,0 @@ -#define BASE_DISCONNECT_DAMAGE 40 - -/obj/machinery/netpod - name = "netpod" - - base_icon_state = "netpod" - circuit = /obj/item/circuitboard/machine/netpod - desc = "A link to the netverse. It has an assortment of cables to connect yourself to a virtual domain." - icon = 'icons/obj/machines/bitrunning.dmi' - icon_state = "netpod" - max_integrity = 300 - obj_flags = BLOCKS_CONSTRUCTION - state_open = TRUE - interaction_flags_mouse_drop = NEED_HANDS | NEED_DEXTERITY - - /// Whether we have an ongoing connection - var/connected = FALSE - /// A player selected outfit by clicking the netpod - var/datum/outfit/netsuit = /datum/outfit/job/bitrunner - /// Holds this to see if it needs to generate a new one - var/datum/weakref/avatar_ref - /// The linked quantum server - var/datum/weakref/server_ref - /// The amount of brain damage done from force disconnects - var/disconnect_damage - /// Static list of outfits to select from - var/list/cached_outfits = list() - -/obj/machinery/netpod/post_machine_initialize() - . = ..() - - disconnect_damage = BASE_DISCONNECT_DAMAGE - find_server() - - RegisterSignal(src, COMSIG_ATOM_TAKE_DAMAGE, PROC_REF(on_damage_taken)) - RegisterSignal(src, COMSIG_MACHINERY_POWER_LOST, PROC_REF(on_power_loss)) - RegisterSignals(src, list(COMSIG_QDELETING, COMSIG_MACHINERY_BROKEN),PROC_REF(on_broken)) - - register_context() - update_appearance() - -/obj/machinery/netpod/Destroy() - . = ..() - - QDEL_LIST(cached_outfits) - -/obj/machinery/netpod/examine(mob/user) - . = ..() - - if(isnull(server_ref?.resolve())) - . += span_infoplain("It's not connected to anything.") - . += span_infoplain("Netpods must be built within 4 tiles of a server.") - return - - if(!isobserver(user)) - . += span_infoplain("Drag yourself into the pod to engage the link.") - . += span_infoplain("It has limited resuscitation capabilities. Remaining in the pod can heal some injuries.") - . += span_infoplain("It has a security system that will alert the occupant if it is tampered with.") - - if(isnull(occupant)) - . += span_infoplain("It's currently unoccupied.") - return - - . += span_infoplain("It's currently occupied by [occupant].") - - if(isobserver(user)) - . += span_notice("As an observer, you can click this netpod to jump to its avatar.") - return - - . += span_notice("It can be pried open with a crowbar, but its safety mechanisms will alert the occupant.") - - - -/obj/machinery/netpod/add_context(atom/source, list/context, obj/item/held_item, mob/user) - . = ..() - - if(isnull(held_item)) - context[SCREENTIP_CONTEXT_LMB] = "Select Outfit" - return CONTEXTUAL_SCREENTIP_SET - - if(istype(held_item, /obj/item/crowbar) && occupant) - context[SCREENTIP_CONTEXT_LMB] = "Pry Open" - return CONTEXTUAL_SCREENTIP_SET - - -/obj/machinery/netpod/update_icon_state() - if(!is_operational) - icon_state = base_icon_state - return ..() - - if(state_open) - icon_state = base_icon_state + "_open_active" - return ..() - - if(panel_open) - icon_state = base_icon_state + "_panel" - return ..() - - icon_state = base_icon_state + "_closed" - if(occupant) - icon_state += "_active" - - return ..() - -/obj/machinery/netpod/mouse_drop_receive(mob/target, mob/user, params) - var/mob/living/carbon/player = user - - if(!iscarbon(player) || !is_operational || !state_open || player.buckled) - return - - close_machine(target) - -/obj/machinery/netpod/crowbar_act(mob/living/user, obj/item/tool) - if(user.combat_mode) - attack_hand(user) - return ITEM_INTERACT_SUCCESS - - if(default_pry_open(tool, user) || default_deconstruction_crowbar(tool)) - return ITEM_INTERACT_SUCCESS - -/obj/machinery/netpod/screwdriver_act(mob/living/user, obj/item/tool) - if(occupant) - balloon_alert(user, "in use!") - return ITEM_INTERACT_SUCCESS - - if(state_open) - balloon_alert(user, "close first.") - return ITEM_INTERACT_SUCCESS - - if(default_deconstruction_screwdriver(user, "[base_icon_state]_panel", "[base_icon_state]_closed", tool)) - update_appearance() // sometimes icon doesnt properly update during flick() - ui_close(user) - return ITEM_INTERACT_SUCCESS - -/obj/machinery/netpod/attack_hand(mob/living/user, list/modifiers) - . = ..() - if(!state_open && user == occupant) - container_resist_act(user) - -/obj/machinery/netpod/Exited(atom/movable/gone, direction) - . = ..() - if(!state_open && gone == occupant) - container_resist_act(gone) - -/obj/machinery/netpod/relaymove(mob/living/user, direction) - if(!state_open) - container_resist_act(user) - -/obj/machinery/netpod/container_resist_act(mob/living/user) - user.visible_message(span_notice("[occupant] emerges from [src]!"), - span_notice("You climb out of [src]!"), - span_notice("With a hiss, you hear a machine opening.")) - open_machine() - -/obj/machinery/netpod/open_machine(drop = TRUE, density_to_set = FALSE) - playsound(src, 'sound/machines/tramopen.ogg', 60, TRUE, frequency = 65000) - flick("[base_icon_state]_opening", src) - SEND_SIGNAL(src, COMSIG_BITRUNNER_NETPOD_OPENED) - update_use_power(IDLE_POWER_USE) - - return ..() - -/obj/machinery/netpod/close_machine(mob/user, density_to_set = TRUE) - if(!state_open || panel_open || !is_operational || !iscarbon(user)) - return - - playsound(src, 'sound/machines/tramclose.ogg', 60, TRUE, frequency = 65000) - flick("[base_icon_state]_closing", src) - ..() - - enter_matrix() - -/obj/machinery/netpod/default_pry_open(obj/item/crowbar, mob/living/pryer) - if(isnull(occupant) || !iscarbon(occupant)) - if(!state_open) - if(panel_open) - return FALSE - open_machine() - else - shut_pod() - - return TRUE - - pryer.visible_message( - span_danger("[pryer] starts prying open [src]!"), - span_notice("You start to pry open [src]."), - span_notice("You hear loud prying on metal.") - ) - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) - - SEND_SIGNAL(src, COMSIG_BITRUNNER_CROWBAR_ALERT, pryer) - - if(do_after(pryer, 15 SECONDS, src)) - if(!state_open) - sever_connection() - open_machine() - - return TRUE - -/obj/machinery/netpod/ui_interact(mob/user, datum/tgui/ui) - if(!is_operational || occupant) - return - - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "NetpodOutfits") - ui.set_autoupdate(FALSE) - ui.open() - -/obj/machinery/netpod/ui_data() - var/list/data = list() - - data["netsuit"] = netsuit - return data - -/obj/machinery/netpod/ui_static_data() - var/list/data = list() - - if(!length(cached_outfits)) - cached_outfits += make_outfit_collection("Jobs", subtypesof(/datum/outfit/job)) - - data["collections"] = cached_outfits - - return data - -/obj/machinery/netpod/ui_act(action, params) - . = ..() - if(.) - return TRUE - switch(action) - if("select_outfit") - var/datum/outfit/new_suit = resolve_outfit(params["outfit"]) - if(new_suit) - netsuit = new_suit - return TRUE - - return FALSE - -/obj/machinery/netpod/attack_ghost(mob/dead/observer/our_observer) - var/our_target = avatar_ref?.resolve() - if(isnull(our_target) || !our_observer.orbit(our_target)) - return ..() - -/// Puts the occupant in netpod stasis, basically short-circuiting environmental conditions -/obj/machinery/netpod/proc/add_healing(mob/living/target) - if(target != occupant) - return - - target.AddComponent(/datum/component/netpod_healing, pod = src) - target.playsound_local(src, 'sound/effects/submerge.ogg', 20, vary = TRUE) - target.extinguish_mob() - update_use_power(ACTIVE_POWER_USE) - -/// Disconnects the occupant after a certain time so they aren't just hibernating in netpod stasis. A balance change -/obj/machinery/netpod/proc/auto_disconnect() - if(isnull(occupant) || state_open || connected) - return - - var/mob/player = occupant - player.playsound_local(src, 'sound/effects/splash.ogg', 60, TRUE) - to_chat(player, span_notice("The machine disconnects itself and begins to drain.")) - open_machine() - -/// Handles occupant post-disconnection effects like damage, sounds, etc -/obj/machinery/netpod/proc/disconnect_occupant(cause_damage = FALSE) - connected = FALSE - - var/mob/living/mob_occupant = occupant - if(isnull(occupant) || mob_occupant.stat == DEAD) - open_machine() - return - - mob_occupant.playsound_local(src, 'sound/magic/blink.ogg', 25, TRUE) - mob_occupant.set_static_vision(2 SECONDS) - mob_occupant.set_temp_blindness(1 SECONDS) - mob_occupant.Paralyze(2 SECONDS) - - if(!is_operational) - open_machine() - return - - var/heal_time = 1 - if(mob_occupant.health < mob_occupant.maxHealth) - heal_time = (mob_occupant.stat + 2) * 5 - addtimer(CALLBACK(src, PROC_REF(auto_disconnect)), heal_time SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME) - - if(!cause_damage) - return - - mob_occupant.flash_act(override_blindness_check = TRUE, visual = TRUE) - mob_occupant.adjustOrganLoss(ORGAN_SLOT_BRAIN, disconnect_damage) - INVOKE_ASYNC(mob_occupant, TYPE_PROC_REF(/mob/living, emote), "scream") - to_chat(mob_occupant, span_danger("You've been forcefully disconnected from your avatar! Your thoughts feel scrambled!")) - -/** - * ### Enter Matrix - * Finds any current avatars from this chair - or generates a new one - * - * New avatars cost 1 attempt, and this will eject if there's none left - * - * Connects the mind to the avatar if everything is ok - */ -/obj/machinery/netpod/proc/enter_matrix() - var/mob/living/carbon/human/neo = occupant - if(!ishuman(neo) || neo.stat == DEAD || isnull(neo.mind)) - balloon_alert(neo, "invalid occupant.") - return - - var/obj/machinery/quantum_server/server = find_server() - if(isnull(server)) - balloon_alert(neo, "no server connected!") - return - - var/datum/lazy_template/virtual_domain/generated_domain = server.generated_domain - if(isnull(generated_domain) || !server.is_ready) - balloon_alert(neo, "nothing loaded!") - return - - var/mob/living/carbon/current_avatar = avatar_ref?.resolve() - if(isnull(current_avatar) || current_avatar.stat != CONSCIOUS) // We need a viable avatar - var/obj/structure/hololadder/wayout = server.generate_hololadder() - if(isnull(wayout)) - balloon_alert(neo, "out of bandwidth!") - return - current_avatar = server.generate_avatar(wayout, netsuit) - avatar_ref = WEAKREF(current_avatar) - server.stock_gear(current_avatar, neo, generated_domain) - - neo.set_static_vision(3 SECONDS) - add_healing(occupant) - - if(!validate_entry(neo, current_avatar)) - open_machine() - return - - current_avatar.AddComponent( \ - /datum/component/avatar_connection, \ - old_mind = neo.mind, \ - old_body = neo, \ - server = server, \ - pod = src, \ - help_text = generated_domain.help_text, \ - ) - - connected = TRUE - -/// Finds a server and sets the server_ref -/obj/machinery/netpod/proc/find_server() - var/obj/machinery/quantum_server/server = server_ref?.resolve() - if(server) - return server - - server = locate(/obj/machinery/quantum_server) in oview(4, src) - if(isnull(server)) - return - - server_ref = WEAKREF(server) - RegisterSignal(server, COMSIG_MACHINERY_REFRESH_PARTS, PROC_REF(on_server_upgraded)) - RegisterSignal(server, COMSIG_BITRUNNER_DOMAIN_COMPLETE, PROC_REF(on_domain_complete)) - RegisterSignal(server, COMSIG_BITRUNNER_DOMAIN_SCRUBBED, PROC_REF(on_domain_scrubbed)) - - return server - -/// Creates a list of outfit entries for the UI. -/obj/machinery/netpod/proc/make_outfit_collection(identifier, list/outfit_list) - var/list/collection = list( - "name" = identifier, - "outfits" = list() - ) - - for(var/datum/outfit/outfit as anything in outfit_list) - var/outfit_name = initial(outfit.name) - if(findtext(outfit_name, "(") != 0 || findtext(outfit_name, "-") != 0) // No special variants please - continue - - collection["outfits"] += list(list("path" = outfit, "name" = outfit_name)) - - return list(collection) - -/// Machine has been broken - handles signals and reverting sprites -/obj/machinery/netpod/proc/on_broken(datum/source) - SIGNAL_HANDLER - - sever_connection() - -/// Checks the integrity, alerts occupants -/obj/machinery/netpod/proc/on_damage_taken(datum/source, damage_amount) - SIGNAL_HANDLER - - if(isnull(occupant) || !connected) - return - - var/total = max_integrity - damage_amount - var/integrity = (atom_integrity / total) * 100 - if(integrity > 50) - return - - SEND_SIGNAL(src, COMSIG_BITRUNNER_NETPOD_INTEGRITY) - -/// Puts points on the current occupant's card account -/obj/machinery/netpod/proc/on_domain_complete(datum/source, atom/movable/crate, reward_points) - SIGNAL_HANDLER - - if(isnull(occupant) || !connected) - return - - var/mob/living/player = occupant - - var/datum/bank_account/account = player.get_bank_account() - if(isnull(account)) - return - - account.bitrunning_points += reward_points * 100 - -/// The domain has been fully purged, so we should double check our avatar is deleted -/obj/machinery/netpod/proc/on_domain_scrubbed(datum/source) - SIGNAL_HANDLER - - var/mob/avatar = avatar_ref?.resolve() - if(isnull(avatar)) - return - - QDEL_NULL(avatar) - -/// Boots out anyone in the machine && opens it -/obj/machinery/netpod/proc/on_power_loss(datum/source) - SIGNAL_HANDLER - - if(state_open) - return - - if(isnull(occupant) || !connected) - connected = FALSE - open_machine() - return - - sever_connection() - -/// When the server is upgraded, drops brain damage a little -/obj/machinery/netpod/proc/on_server_upgraded(obj/machinery/quantum_server/source) - SIGNAL_HANDLER - - disconnect_damage = BASE_DISCONNECT_DAMAGE * (1 - source.servo_bonus) - -/// Resolves a path to an outfit. -/obj/machinery/netpod/proc/resolve_outfit(text) - var/path = text2path(text) - if(!ispath(path, /datum/outfit)) - return - - for(var/wardrobe in cached_outfits) - for(var/outfit in wardrobe["outfits"]) - if(path == outfit["path"]) - return path - - message_admins("[usr]:[usr.ckey] attempted to select an unavailable outfit from a netpod") - return - -/// Severs the connection with the current avatar -/obj/machinery/netpod/proc/sever_connection() - if(isnull(occupant) || !connected) - return - - SEND_SIGNAL(src, COMSIG_BITRUNNER_NETPOD_SEVER) - -/// Closes the machine without shoving in an occupant -/obj/machinery/netpod/proc/shut_pod() - state_open = FALSE - playsound(src, 'sound/machines/tramclose.ogg', 60, TRUE, frequency = 65000) - flick("[base_icon_state]_closing", src) - set_density(TRUE) - - update_appearance() - -/// Checks for cases to eject/fail connecting an avatar -/obj/machinery/netpod/proc/validate_entry(mob/living/neo, mob/living/avatar) - if(!do_after(neo, 2 SECONDS, src)) - return FALSE - - // Very invalid - if(QDELETED(neo) || QDELETED(avatar) || QDELETED(src) || !is_operational) - return FALSE - - // Invalid - if(occupant != neo || isnull(neo.mind) || neo.stat > SOFT_CRIT || avatar.stat == DEAD) - return FALSE - - return TRUE - -#undef BASE_DISCONNECT_DAMAGE diff --git a/code/modules/bitrunning/outfits.dm b/code/modules/bitrunning/outfits.dm index 41a65b228ff44..c0bb01ebc06e5 100644 --- a/code/modules/bitrunning/outfits.dm +++ b/code/modules/bitrunning/outfits.dm @@ -10,12 +10,62 @@ suit = /obj/item/clothing/suit/jacket/trenchcoat id = /obj/item/card/id/advanced + /datum/outfit/echolocator/post_equip(mob/living/carbon/human/user, visualsOnly) . = ..() user.psykerize() + /datum/outfit/bitductor name = "Bitrunning Abductor" uniform = /obj/item/clothing/under/abductor gloves = /obj/item/clothing/gloves/fingerless shoes = /obj/item/clothing/shoes/jackboots + + +/datum/outfit/beachbum_combat + name = "Beachbum: Island Combat" + id = /obj/item/card/id/advanced + l_pocket = null + r_pocket = null + shoes = /obj/item/clothing/shoes/sandal + uniform = /obj/item/clothing/under/pants/jeans + /// Available ranged weapons + var/list/ranged_weaps = list( + /obj/item/gun/ballistic/automatic/pistol, + /obj/item/gun/ballistic/rifle/boltaction, + /obj/item/gun/ballistic/automatic/mini_uzi, + /obj/item/gun/ballistic/automatic/pistol/deagle, + /obj/item/gun/ballistic/rocketlauncher/unrestricted, + /obj/item/gun/ballistic/automatic/ar, + + ) + /// Corresponding ammo + var/list/corresponding_ammo = list( + /obj/item/ammo_box/magazine/m9mm, + /obj/item/ammo_box/strilka310, + /obj/item/ammo_box/magazine/uzim9mm, + /obj/item/ammo_box/magazine/m50, + /obj/item/food/pizzaslice/dank, // more silly, less destructive + /obj/item/ammo_box/magazine/m223, + ) + + +/datum/outfit/beachbum_combat/post_equip(mob/living/carbon/human/bum, visualsOnly) + . = ..() + + var/choice = rand(1, length(ranged_weaps)) + var/weapon = ranged_weaps[choice] + bum.put_in_active_hand(new weapon) + + var/ammo = corresponding_ammo[choice] + var/obj/item/ammo1 = new ammo + var/obj/item/ammo2 = new ammo + + if(!bum.equip_to_slot_if_possible(new ammo, ITEM_SLOT_LPOCKET)) + ammo1.forceMove(get_turf(bum)) + if(!bum.equip_to_slot_if_possible(new ammo, ITEM_SLOT_RPOCKET)) + ammo2.forceMove(get_turf(bum)) + + if(prob(50)) + bum.equip_to_slot_if_possible(new /obj/item/clothing/glasses/sunglasses, ITEM_SLOT_EYES) diff --git a/code/modules/bitrunning/server/_parent.dm b/code/modules/bitrunning/server/_parent.dm index 8a8d2eed913de..541d36ad5d72c 100644 --- a/code/modules/bitrunning/server/_parent.dm +++ b/code/modules/bitrunning/server/_parent.dm @@ -77,12 +77,18 @@ . += span_infoplain("Can be resource intensive to run. Ensure adequate power supply.") + var/upgraded = FALSE if(capacitor_coefficient < 1) . += span_infoplain("- Its coolant capacity reduces cooldown time by [(1 - capacitor_coefficient) * 100]%.") + upgraded = TRUE if(servo_bonus > 0.2) . += span_infoplain("- Its manipulation potential is increasing rewards by [servo_bonus]x.") . += span_infoplain("- Injury from unsafe ejection reduced [servo_bonus * 100]%.") + upgraded = TRUE + + if(!upgraded) + . += span_notice("Its output is suboptimal. Improved components will grant domain information, reduce cooldowns and increase rewards.") if(!is_ready) . += span_notice("It is currently cooling down. Give it a few moments.") diff --git a/code/modules/bitrunning/server/loot.dm b/code/modules/bitrunning/server/loot.dm index 83d26daa6075a..0e6ff30cd246a 100644 --- a/code/modules/bitrunning/server/loot.dm +++ b/code/modules/bitrunning/server/loot.dm @@ -4,6 +4,7 @@ #define GRADE_A "A" #define GRADE_S "S" + /// Handles calculating rewards based on number of players, parts, threats, etc /obj/machinery/quantum_server/proc/calculate_rewards() var/rewards_base = 0.8 @@ -20,6 +21,7 @@ return rewards_base + /// Handles spawning the (new) crate and deleting the former /obj/machinery/quantum_server/proc/generate_loot(obj/cache, obj/machinery/byteforge/chosen_forge) SSblackbox.record_feedback("tally", "bitrunning_domain_primary_completed", 1, generated_domain.key) @@ -55,6 +57,8 @@ chosen_forge.start_to_spawn(reward_cache) return TRUE + +/// Builds secondary loot if the achievements were met /obj/machinery/quantum_server/proc/generate_secondary_loot(obj/curiosity, obj/machinery/byteforge/chosen_forge) SSblackbox.record_feedback("tally", "bitrunning_domain_secondary_completed", 1, generated_domain.key) spark_at_location(curiosity) // abracadabra! @@ -65,6 +69,7 @@ chosen_forge.start_to_spawn(reward_curiosity) return TRUE + /// Returns the markdown text containing domain completion information /obj/machinery/quantum_server/proc/get_completion_certificate(time_difference, grade) var/base_points = generated_domain.reward_points @@ -126,6 +131,7 @@ return generated_domain.difficulty >= BITRUNNER_DIFFICULTY_MEDIUM && (grade in passing_grades) + /// Grades the player's run based on several factors /obj/machinery/quantum_server/proc/grade_completion(completion_time) var/score = length(spawned_threat_refs) * 5 diff --git a/code/modules/bitrunning/server/map_handling.dm b/code/modules/bitrunning/server/map_handling.dm index 5bfa7813910b6..f98332f7e8d8f 100644 --- a/code/modules/bitrunning/server/map_handling.dm +++ b/code/modules/bitrunning/server/map_handling.dm @@ -24,6 +24,7 @@ reset() + /// Links all the loading processes together - does validation for booting a map /obj/machinery/quantum_server/proc/cold_boot_map(map_key) if(!is_ready) @@ -69,8 +70,15 @@ if(broadcasting) start_broadcasting_network(BITRUNNER_CAMERA_NET) + if(generated_domain.announce_to_ghosts) + notify_ghosts("Bitrunners have loaded a domain that offers ghost interactions. Check the spawners menu for more information.", + src, + "Matrix Glitch", + ) + return TRUE + /// Initializes a new domain if the given key is valid and the user has enough points /obj/machinery/quantum_server/proc/load_domain(map_key) for(var/datum/lazy_template/virtual_domain/available in SSbitrunning.all_domains) @@ -82,6 +90,7 @@ return FALSE + /// Loads in necessary map items like hololadder spawns, caches, etc /obj/machinery/quantum_server/proc/load_map_items() var/turf/goal_turfs = list() @@ -116,6 +125,15 @@ var/turf/signaler_turf = get_turf(thing) signaler_turf.AddComponent(/datum/component/bitrunning_points, generated_domain) qdel(thing) + continue + + if(istype(thing, /obj/effect/landmark/bitrunning/permanent_exit)) + var/turf/tile = get_turf(thing) + exit_turfs += tile + qdel(thing) + + new /obj/structure/hololadder(tile) + if(!length(exit_turfs)) CRASH("Failed to find exit turfs on generated domain.") @@ -134,6 +152,7 @@ return TRUE + /// Stops the current virtual domain and disconnects all users /obj/machinery/quantum_server/proc/reset(fast = FALSE) is_ready = FALSE @@ -155,6 +174,7 @@ stop_broadcasting_network(BITRUNNER_CAMERA_NET) + /// Tries to clean up everything in the domain /obj/machinery/quantum_server/proc/scrub_vdom() sever_connections() /// just in case someone's connected diff --git a/code/modules/bitrunning/server/obj_generation.dm b/code/modules/bitrunning/server/obj_generation.dm index 34a870a3426d5..dabac8ae62dd9 100644 --- a/code/modules/bitrunning/server/obj_generation.dm +++ b/code/modules/bitrunning/server/obj_generation.dm @@ -15,6 +15,7 @@ new /obj/structure/closet/crate/secure/bitrunning/encrypted(chosen_turf) return TRUE + /// Attempts to spawn a lootbox /obj/machinery/quantum_server/proc/attempt_spawn_curiosity(list/possible_turfs) if(!length(possible_turfs)) // Out of turfs to place a curiosity @@ -35,9 +36,10 @@ new /obj/item/storage/lockbox/bitrunning/encrypted(chosen_turf) return chosen_turf + /// Generates a new avatar for the bitrunner. -/obj/machinery/quantum_server/proc/generate_avatar(obj/structure/hololadder/wayout, datum/outfit/netsuit) - var/mob/living/carbon/human/avatar = new(wayout.loc) +/obj/machinery/quantum_server/proc/generate_avatar(turf/destination, datum/outfit/netsuit) + var/mob/living/carbon/human/avatar = new(destination) var/outfit_path = generated_domain.forced_outfit || netsuit var/datum/outfit/to_wear = new outfit_path() @@ -61,8 +63,9 @@ if(istype(hat)) hat.set_armor(/datum/armor/none) - for(var/obj/thing in avatar.held_items) - qdel(thing) + if(!generated_domain.forced_outfit) + for(var/obj/thing in avatar.held_items) + qdel(thing) var/obj/item/storage/backpack/bag = avatar.back if(istype(bag)) @@ -88,32 +91,9 @@ network = BITRUNNER_CAMERA_NET, \ emp_proof = TRUE, \ ) - return avatar - -/// Generates a new hololadder for the bitrunner. Effectively a respawn attempt. -/obj/machinery/quantum_server/proc/generate_hololadder() - if(!length(exit_turfs)) - return - - if(retries_spent >= length(exit_turfs)) - return - var/turf/destination - for(var/turf/dest_turf in exit_turfs) - if(!locate(/obj/structure/hololadder) in dest_turf) - destination = dest_turf - break - - if(isnull(destination)) - return - - var/obj/structure/hololadder/wayout = new(destination, src) - if(isnull(wayout)) - return - - retries_spent += 1 + return avatar - return wayout /// Loads in any mob segments of the map /obj/machinery/quantum_server/proc/load_mob_segments() @@ -142,6 +122,7 @@ return TRUE + /// Scans over neo's contents for bitrunning tech disks. Loads the items or abilities onto the avatar. /obj/machinery/quantum_server/proc/stock_gear(mob/living/carbon/human/avatar, mob/living/carbon/human/neo, datum/lazy_template/virtual_domain/generated_domain) var/domain_forbids_items = generated_domain.forbids_disk_items diff --git a/code/modules/bitrunning/server/signal_handlers.dm b/code/modules/bitrunning/server/signal_handlers.dm index 0e5e949e8bb51..f5d2840143e16 100644 --- a/code/modules/bitrunning/server/signal_handlers.dm +++ b/code/modules/bitrunning/server/signal_handlers.dm @@ -4,12 +4,14 @@ sever_connections() + /// Whenever a corpse spawner makes a new corpse, add it to the list of potential mutations /obj/machinery/quantum_server/proc/on_corpse_spawned(datum/source, mob/living/corpse) SIGNAL_HANDLER mutation_candidate_refs.Add(WEAKREF(corpse)) + /// Being qdeleted - make sure the circuit and connected mobs go with it /obj/machinery/quantum_server/proc/on_delete(datum/source) SIGNAL_HANDLER @@ -26,6 +28,7 @@ if(circuit) qdel(circuit) + /// Whenever something enters the send tiles, check if it's a loot crate. If so, alert players. /obj/machinery/quantum_server/proc/on_goal_turf_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) SIGNAL_HANDLER @@ -51,6 +54,7 @@ generate_secondary_loot(arrived, chosen_forge, generated_domain) return + /// Handles examining the server. Shows cooldown time and efficiency. /obj/machinery/quantum_server/proc/on_goal_turf_examined(datum/source, mob/examiner, list/examine_text) SIGNAL_HANDLER @@ -58,6 +62,7 @@ examine_text += span_info("Beneath your gaze, the floor pulses subtly with streams of encoded data.") examine_text += span_info("It seems to be part of the location designated for retrieving encrypted payloads.") + /// Scans over the inbound created_atoms from lazy templates /obj/machinery/quantum_server/proc/on_template_loaded(datum/lazy_template/source, list/created_atoms) SIGNAL_HANDLER @@ -98,6 +103,7 @@ /// Just in case there's any special handling for the domain generated_domain.setup_domain(created_atoms) + /// Handles when cybercops are summoned into the area or ghosts click a ghost role spawner /obj/machinery/quantum_server/proc/on_threat_created(datum/source, mob/living/threat) SIGNAL_HANDLER diff --git a/code/modules/bitrunning/server/threats.dm b/code/modules/bitrunning/server/threats.dm index 25a891c03b24b..28d91aa4b3714 100644 --- a/code/modules/bitrunning/server/threats.dm +++ b/code/modules/bitrunning/server/threats.dm @@ -4,6 +4,7 @@ SEND_SIGNAL(src, COMSIG_BITRUNNER_THREAT_CREATED) threat.AddComponent(/datum/component/virtual_entity, src) + /// Choses which antagonist role is spawned based on threat /obj/machinery/quantum_server/proc/get_antagonist_role() var/list/available = list() @@ -19,6 +20,7 @@ return chosen + /// Selects a target to mutate. Gives two attempts, then crashes if it fails. /obj/machinery/quantum_server/proc/get_mutation_target() var/datum/weakref/target_ref = pick(mutation_candidate_refs) @@ -35,6 +37,7 @@ resolved = target_ref.resolve() return resolved + /// Finds any mobs with minds in the zones and gives them the bad news /obj/machinery/quantum_server/proc/notify_spawned_threats() for(var/datum/weakref/baddie_ref as anything in spawned_threat_refs) @@ -52,10 +55,12 @@ to_chat(baddie, span_userdanger("You have been flagged for deletion! Thank you for your service.")) + /// Removes a specific threat - used when station spawning /obj/machinery/quantum_server/proc/remove_threat(mob/living/threat) spawned_threat_refs.Remove(WEAKREF(threat)) + /// Selects the role and waits for a ghost orbiter /obj/machinery/quantum_server/proc/setup_glitch(datum/antagonist/bitrunning_glitch/forced_role) if(!validate_mutation_candidates()) @@ -83,6 +88,7 @@ spawn_glitch(chosen_role, mutation_target, chosen_one) return mutation_target + /// Orbit poll has concluded - spawn the antag /obj/machinery/quantum_server/proc/spawn_glitch(datum/antagonist/bitrunning_glitch/chosen_role, mob/living/mutation_target, mob/dead/observer/ghost) if(QDELETED(mutation_target)) @@ -121,6 +127,7 @@ add_threats(new_mob) + /// Oh boy - transports the antag station side /obj/machinery/quantum_server/proc/station_spawn(mob/living/antag, obj/machinery/byteforge/chosen_forge) antag.balloon_alert(antag, "scanning...") @@ -165,6 +172,7 @@ do_teleport(antag, get_turf(chosen_forge), forced = TRUE, asoundin = 'sound/magic/ethereal_enter.ogg', asoundout = 'sound/magic/ethereal_exit.ogg', channel = TELEPORT_CHANNEL_QUANTUM) + /// Removes any invalid candidates from the list /obj/machinery/quantum_server/proc/validate_mutation_candidates() for(var/datum/weakref/creature_ref as anything in mutation_candidate_refs) diff --git a/code/modules/bitrunning/server/util.dm b/code/modules/bitrunning/server/util.dm index 6b5352bde6cb1..ab267a34cd330 100644 --- a/code/modules/bitrunning/server/util.dm +++ b/code/modules/bitrunning/server/util.dm @@ -1,11 +1,13 @@ #define MAX_DISTANCE 4 // How far crates can spawn from the server + /// Resets the cooldown state and updates icons /obj/machinery/quantum_server/proc/cool_off() is_ready = TRUE update_appearance() radio.talk_into(src, "Thermal systems within operational parameters. Proceeding to domain configuration.", RADIO_CHANNEL_SUPPLY) + /// If there are hosted minds, attempts to get a list of their current virtual bodies w/ vitals /obj/machinery/quantum_server/proc/get_avatar_data() var/list/hosted_avatars = list() @@ -31,6 +33,49 @@ return hosted_avatars + +/// I grab the atom here so I can signal it / manipulate spawners etc +/obj/machinery/quantum_server/proc/get_avatar_destination() as /atom + // Branch A: Custom spawns + if(length(generated_domain.custom_spawns)) + var/atom/valid_spawner + + while(isnull(valid_spawner)) + var/atom/chosen = pick(generated_domain.custom_spawns) + if(QDELETED(chosen)) + generated_domain.custom_spawns -= chosen + continue + + valid_spawner = chosen + break + + return valid_spawner + + // Branch B: Hololadders + if(!length(exit_turfs)) + return + + if(retries_spent >= length(exit_turfs)) + return + + var/turf/exit_tile + for(var/turf/dest_turf in exit_turfs) + if(!locate(/obj/structure/hololadder) in dest_turf) + exit_tile = dest_turf + break + + if(isnull(exit_tile)) + return + + var/obj/structure/hololadder/wayout = new(exit_tile, src) + if(isnull(wayout)) + return + + retries_spent += 1 + + return wayout + + /// Locates any turfs with forges on them, returns a random one /obj/machinery/quantum_server/proc/get_random_nearby_forge() var/list/nearby_forges = list() @@ -40,6 +85,7 @@ return pick(nearby_forges) + /// Gets a random available domain given the current points. /obj/machinery/quantum_server/proc/get_random_domain_id() if(points < 1) @@ -85,6 +131,7 @@ SEND_SIGNAL(src, COMSIG_BITRUNNER_QSRV_SEVER) + /// Do some magic teleport sparks /obj/machinery/quantum_server/proc/spark_at_location(obj/cache) playsound(cache, 'sound/magic/blink.ogg', 50, vary = TRUE) @@ -92,16 +139,33 @@ sparks.set_up(5, location = get_turf(cache)) sparks.start() -/// Returns a turf if it's not dense, else will find a neighbor. -/obj/machinery/quantum_server/proc/validate_turf(turf/chosen_turf) - if(!chosen_turf.is_blocked_turf()) - return chosen_turf - for(var/turf/tile in get_adjacent_open_turfs(chosen_turf)) - if(!tile.is_blocked_turf()) - return chosen_turf +/// Starts building a new avatar for the player. +/// Called by netpods when they don't have a current avatar. +/// This is a procedural proc which links several others together. +/obj/machinery/quantum_server/proc/start_new_connection(mob/living/carbon/human/neo, datum/outfit/netsuit) as /mob/living/carbon/human + var/atom/entry_atom = get_avatar_destination() + if(isnull(entry_atom)) + return + + var/mob/living/carbon/new_avatar = generate_avatar(get_turf(entry_atom), netsuit) + stock_gear(new_avatar, neo, generated_domain) + + // Cleanup for domains with one time use custom spawns + if(!length(generated_domain.custom_spawns)) + return new_avatar + + // If we're spawning from some other fuckery, no need for this + if(istype(entry_atom, /obj/effect/mob_spawn/ghost_role/human/virtual_domain)) + var/obj/effect/mob_spawn/ghost_role/human/virtual_domain/spawner = entry_atom + spawner.artificial_spawn(new_avatar) + + if(!generated_domain.keep_custom_spawns) + generated_domain.custom_spawns -= entry_atom + qdel(entry_atom) + + return new_avatar -#undef MAX_DISTANCE /// Toggles broadcast on and off /obj/machinery/quantum_server/proc/toggle_broadcast() @@ -116,3 +180,16 @@ // And we only flip TVs when there's a domain, because otherwise there's no cams to watch set_network_broadcast_status(BITRUNNER_CAMERA_NET, broadcasting) return TRUE + + +/// Returns a turf if it's not dense, else will find a neighbor. +/obj/machinery/quantum_server/proc/validate_turf(turf/chosen_turf) + if(!chosen_turf.is_blocked_turf()) + return chosen_turf + + for(var/turf/tile in get_adjacent_open_turfs(chosen_turf)) + if(!tile.is_blocked_turf()) + return chosen_turf + + +#undef MAX_DISTANCE diff --git a/code/modules/bitrunning/spawners.dm b/code/modules/bitrunning/spawners.dm index 5fa889ac655fd..4b5f79a43b186 100644 --- a/code/modules/bitrunning/spawners.dm +++ b/code/modules/bitrunning/spawners.dm @@ -3,12 +3,9 @@ prompt_name = "a virtual domain debug entity" flavour_text = "You probably shouldn't be seeing this, contact a coder!" you_are_text = "You are NOT supposed to be here. How did you let this happen?" - important_text = "You must eliminate any bitrunners from the domain." + important_text = "Bitrunning is a crime, and your primary threat." temp_body = TRUE -/obj/effect/mob_spawn/ghost_role/human/virtual_domain/Initialize(mapload) - . = ..() - notify_ghosts("The [name] has been created. The virtual world calls for aid!", src, "Virtual Insanity!") /obj/effect/mob_spawn/ghost_role/human/virtual_domain/special(mob/living/spawned_mob, mob/mob_possessor) var/datum/mind/ghost_mind = mob_possessor.mind @@ -19,6 +16,12 @@ spawned_mob.mind.add_antag_datum(/datum/antagonist/domain_ghost_actor) + +/// Simulates a ghost role spawn without calling special(), ie a bitrunner spawn instead of a ghost. +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/proc/artificial_spawn(mob/living/runner) + SEND_SIGNAL(src, COMSIG_BITRUNNER_SPAWNED, runner) + + /obj/effect/mob_spawn/ghost_role/human/virtual_domain/pirate name = "Virtual Pirate Remains" desc = "Some inanimate bones. They feel like they could spring to life at any moment!" @@ -27,22 +30,25 @@ icon_state = "remains" prompt_name = "a virtual skeleton pirate" you_are_text = "You are a virtual pirate. Yarrr!" - flavour_text = "You have awoken, without instruction. There's a LANDLUBBER after yer booty. Stop them!" + flavour_text = " There's a LANDLUBBER after yer booty. Stop them!" + /obj/effect/mob_spawn/ghost_role/human/virtual_domain/pirate/special(mob/living/spawned_mob, mob/mob_possessor) . = ..() spawned_mob.fully_replace_character_name(spawned_mob.real_name, "[pick(strings(PIRATE_NAMES_FILE, "generic_beginnings"))][pick(strings(PIRATE_NAMES_FILE, "generic_endings"))]") + /obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie name = "Virtual Syndicate Sleeper" icon = 'icons/obj/machines/sleeper.dmi' icon_state = "sleeper_s" prompt_name = "a virtual syndicate operative" you_are_text = "You are a virtual syndicate operative." - flavour_text = "You have awoken, without instruction. Alarms blare! We are being boarded!" + flavour_text = "Alarms blare! We are being boarded!" outfit = /datum/outfit/virtual_syndicate spawner_job_path = /datum/job/space_syndicate + /datum/outfit/virtual_syndicate name = "Virtual Syndie" id = /obj/item/card/id/advanced/chameleon @@ -53,5 +59,6 @@ shoes = /obj/item/clothing/shoes/combat implants = list(/obj/item/implant/weapons_auth) + /datum/outfit/virtual_syndicate/post_equip(mob/living/carbon/human/user, visualsOnly) user.faction |= ROLE_SYNDICATE diff --git a/code/modules/bitrunning/virtual_domain/domains/island_brawl.dm b/code/modules/bitrunning/virtual_domain/domains/island_brawl.dm new file mode 100644 index 0000000000000..b745a4746aa24 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/island_brawl.dm @@ -0,0 +1,46 @@ +/datum/lazy_template/virtual_domain/island_brawl + name = "Island Brawl" + announce_to_ghosts = TRUE + cost = BITRUNNER_COST_HIGH + desc = "A 'peaceful' island tucked away in the middle of nowhere. This map will auto-complete after a number of deaths have occurred." + difficulty = BITRUNNER_DIFFICULTY_HIGH + forced_outfit = /datum/outfit/beachbum_combat + help_text = "There may be bounties laid out across the island, but the primary objective is to survive. Deaths on the island will count towards the final score." + key = "island_brawl" + map_name = "island_brawl" + reward_points = BITRUNNER_REWARD_HIGH + secondary_loot = list( + /obj/item/toy/beach_ball = 2, + /obj/item/clothing/shoes/sandal = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/gun/ballistic/automatic/mini_uzi = 1, + ) + + +/datum/lazy_template/virtual_domain/island_brawl/setup_domain(list/created_atoms) + for(var/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander/spawner in created_atoms) + custom_spawns += spawner + + RegisterSignals(spawner, list(COMSIG_GHOSTROLE_SPAWNED, COMSIG_BITRUNNER_SPAWNED), PROC_REF(on_spawn)) + + +/// Someone has spawned in, so we check for their death +/datum/lazy_template/virtual_domain/island_brawl/proc/on_spawn(datum/source, mob/living/spawned_mob) + SIGNAL_HANDLER + + RegisterSignals(spawned_mob, list(COMSIG_LIVING_DEATH), PROC_REF(on_death)) + + +/// Mob has died, so we add a point to the domain +/datum/lazy_template/virtual_domain/island_brawl/proc/on_death(datum/source, gibbed) + SIGNAL_HANDLER + + add_points(1) + + +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander + name = "Islander" + outfit = /datum/outfit/beachbum_combat + prompt_name = "a combat beach bum" + you_are_text = "You are a virtual islander." + flavour_text = "Don't let anyone ruin your idyllic vacation spot. Coordinate with others- or don't!" diff --git a/code/modules/bitrunning/virtual_domain/domains/pirates.dm b/code/modules/bitrunning/virtual_domain/domains/pirates.dm index 52d86a7121180..b8bff6dbeb363 100644 --- a/code/modules/bitrunning/virtual_domain/domains/pirates.dm +++ b/code/modules/bitrunning/virtual_domain/domains/pirates.dm @@ -1,5 +1,6 @@ /datum/lazy_template/virtual_domain/pirates name = "Corsair Cove" + announce_to_ghosts = TRUE cost = BITRUNNER_COST_MEDIUM desc = "Battle your way to the hidden treasure, seize the booty, and make a swift escape before the pirates turn the tide." difficulty = BITRUNNER_DIFFICULTY_MEDIUM diff --git a/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm b/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm index 5f754dd433ad6..f81bc6daae2c4 100644 --- a/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm +++ b/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm @@ -1,5 +1,6 @@ /datum/lazy_template/virtual_domain/syndicate_assault name = "Syndicate Assault" + announce_to_ghosts = TRUE cost = BITRUNNER_COST_MEDIUM desc = "Board the enemy ship and recover the stolen cargo." difficulty = BITRUNNER_DIFFICULTY_MEDIUM diff --git a/code/modules/bitrunning/virtual_domain/virtual_domain.dm b/code/modules/bitrunning/virtual_domain/virtual_domain.dm index 21898daad72d7..f81f6186cbe6e 100644 --- a/code/modules/bitrunning/virtual_domain/virtual_domain.dm +++ b/code/modules/bitrunning/virtual_domain/virtual_domain.dm @@ -7,50 +7,82 @@ map_name = "None" key = "Virtual Domain" place_on_top = TRUE + /// Whether to tell observers this map is being used + var/announce_to_ghosts = FALSE + /// The map file to load + var/filename = "virtual_domain.dmm" + /// The start time of the map. Used to calculate time taken + var/start_time + /// This map is specifically for unit tests. Shouldn't display in game + var/test_only = FALSE + + /** + * Generic settings / UI + */ /// Cost of this map to load var/cost = BITRUNNER_COST_NONE - /// Any outfit that you wish to force on avatars. Overrides preferences - var/datum/outfit/forced_outfit /// The description of the map for the console UI var/desc = "A map." /// Affects the ui and ability to scan info. var/difficulty = BITRUNNER_DIFFICULTY_NONE - /// The map file to load - var/filename = "virtual_domain.dmm" + /// Write these to help complete puzzles and other objectives. Viewed in the domain info ability. + var/help_text + // Name to show in the UI + var/name = "Virtual Domain" + /// Points to reward for completion. Used to purchase new domains and calculate ore rewards. + var/reward_points = BITRUNNER_REWARD_MIN + + /** + * Player customization + */ + /// If this domain blocks the use of items from disks, for whatever reason var/forbids_disk_items = FALSE /// If this domain blocks the use of spells from disks, for whatever reason var/forbids_disk_spells = FALSE - /// Information given to connected clients via ability - var/help_text - /// Whether to display this as a modular map - var/is_modular = FALSE - /// Byond will look for modular mob segment landmarks then choose from here at random. You can make them unique also. - var/list/datum/modular_mob_segment/mob_modules = list() + /// Any outfit that you wish to force on avatars. Overrides preferences + var/datum/outfit/forced_outfit + + /** + * Loot + */ + /// An assoc list of typepath/amount to spawn on completion. Not weighted - the value is the amount var/list/completion_loot - /// An accoc list of typepath/amount to spawn from secondary objectives. Not weighted - the value is the total number of items that can be obtained. + /// An assoc list of typepath/amount to spawn from secondary objectives. Not weighted - the value is the total number of items that can be obtained. var/list/secondary_loot = list() /// Number of secondary loot boxes generated. Resets when the domain is reloaded. var/secondary_loot_generated - /// Forces all mob modules to only load once - var/modular_unique_mobs = FALSE - // Name to show in the UI - var/name = "Virtual Domain" - /// Points to reward for completion. Used to purchase new domains and calculate ore rewards. - var/reward_points = BITRUNNER_REWARD_MIN - /// The start time of the map. Used to calculate time taken - var/start_time - /// This map is specifically for unit tests. Shouldn't display in game - var/test_only = FALSE /// Has this domain been beaten with high enough score to spawn a tech disk? var/disk_reward_spawned = FALSE + /** + * Modularity + */ + + /// Whether to display this as a modular map + var/is_modular = FALSE + /// Byond will look for modular mob segment landmarks then choose from here at random. You can make them unique also. + var/list/datum/modular_mob_segment/mob_modules = list() + /// Forces all mob modules to only load once + var/modular_unique_mobs = FALSE + + /** + * Spawning + */ + + /// Looks for random landmarks to spawn on. + var/list/custom_spawns = list() + /// Set TRUE if you want reusable custom spawners + var/keep_custom_spawns = FALSE + + /// Sends a point to any loot signals on the map /datum/lazy_template/virtual_domain/proc/add_points(points_to_add) SEND_SIGNAL(src, COMSIG_BITRUNNER_GOAL_POINT, points_to_add) + /// Overridable proc to be called after the map is loaded. /datum/lazy_template/virtual_domain/proc/setup_domain(list/created_atoms) return diff --git a/code/modules/capture_the_flag/medieval_sim/medisim_game.dm b/code/modules/capture_the_flag/medieval_sim/medisim_game.dm index 18e1cd13e7ede..118184698a3cc 100644 --- a/code/modules/capture_the_flag/medieval_sim/medisim_game.dm +++ b/code/modules/capture_the_flag/medieval_sim/medisim_game.dm @@ -22,7 +22,7 @@ if(!.) return var/mob/living/carbon/human/human_knight = . - randomize_human(human_knight) + randomize_human_normie(human_knight) human_knight.dna.add_mutation(/datum/mutation/human/medieval, MUT_OTHER) var/oldname = human_knight.name var/title = "error" diff --git a/code/modules/cargo/packs/emergency.dm b/code/modules/cargo/packs/emergency.dm index b48ef268da683..2d19c276ec115 100644 --- a/code/modules/cargo/packs/emergency.dm +++ b/code/modules/cargo/packs/emergency.dm @@ -6,8 +6,8 @@ name = "Biological Emergency Crate" desc = "This crate includes 2 complete bio suits, along with a box containing sterile masks and latex gloves, providing effective protection against viruses." cost = CARGO_CRATE_VALUE * 2 - contains = list(/obj/item/clothing/head/bio_hood = 2, - /obj/item/clothing/suit/bio_suit = 2, + contains = list(/obj/item/clothing/head/bio_hood/general = 2, + /obj/item/clothing/suit/bio_suit/general = 2, /obj/item/storage/bag/bio, /obj/item/reagent_containers/syringe/antiviral = 2, /obj/item/clothing/gloves/latex/nitrile = 2, diff --git a/code/modules/client/client_colour.dm b/code/modules/client/client_colour.dm index 1209b5c35823c..5dbcaa0f824de 100644 --- a/code/modules/client/client_colour.dm +++ b/code/modules/client/client_colour.dm @@ -198,6 +198,13 @@ /datum/client_colour/glass_colour/gray colour = "#cccccc" +///A client colour that makes the screen look a bit more grungy, halloweenesque even. +/datum/client_colour/halloween_helmet + colour = list(0.75,0.13,0.13,0, 0.13,0.7,0.13,0, 0.13,0.13,0.75,0, -0.06,-0.09,-0.08,1, 0,0,0,0) + +/datum/client_colour/flash_hood + colour = COLOR_MATRIX_POLAROID + /datum/client_colour/glass_colour/nightmare colour = list(255,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, -130,0,0,0) //every color is either red or black diff --git a/code/modules/client/preferences/names.dm b/code/modules/client/preferences/names.dm index 8456eb9a62709..82d37eca0722b 100644 --- a/code/modules/client/preferences/names.dm +++ b/code/modules/client/preferences/names.dm @@ -17,21 +17,26 @@ /// If the highest priority job matches this, will prioritize this name in the UI var/relevant_job + /datum/preference/name/apply_to_human(mob/living/carbon/human/target, value) // Only real_name applies directly, everything else is applied by something else return + /datum/preference/name/deserialize(input, datum/preferences/preferences) return reject_bad_name("[input]", allow_numbers) + /datum/preference/name/serialize(input) // `is_valid` should always be run before `serialize`, so it should not // be possible for this to return `null`. return reject_bad_name(input, allow_numbers) + /datum/preference/name/is_valid(value) return istext(value) && !isnull(reject_bad_name(value, allow_numbers)) + /// A character's real name /datum/preference/name/real_name explanation = "Name" @@ -181,8 +186,21 @@ explanation = "Hacker alias" group = "bitrunning" savefile_key = "hacker_alias" - allow_numbers = TRUE relevant_job = /datum/job/bitrunner + /datum/preference/name/hacker_alias/create_default_value() return pick(GLOB.hacker_aliases) + + +/datum/preference/name/hacker_alias/is_valid(value) + return !isnull(permissive_sanitize_name(value)) + + +/datum/preference/name/hacker_alias/deserialize(input, datum/preferences/preferences) + return permissive_sanitize_name(input) + + +/datum/preference/name/hacker_alias/serialize(input) + return permissive_sanitize_name(input) + diff --git a/code/modules/client/preferences/prosthetic_limb.dm b/code/modules/client/preferences/prosthetic_limb.dm index a4d5b5a577ba1..3d9525734e572 100644 --- a/code/modules/client/preferences/prosthetic_limb.dm +++ b/code/modules/client/preferences/prosthetic_limb.dm @@ -4,7 +4,7 @@ savefile_identifier = PREFERENCE_CHARACTER /datum/preference/choiced/prosthetic/init_possible_values() - return list("Random") + GLOB.limb_choice + return list("Random") + GLOB.prosthetic_limb_choice /datum/preference/choiced/prosthetic/is_accessible(datum/preferences/preferences) . = ..() diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 358bff5ce80d5..9453df3616fba 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -27,15 +27,15 @@ /// Whether or not vision coloring is forcing var/forced_glass_color = FALSE +/obj/item/clothing/glasses/Initialize(mapload) + . = ..() + if(glass_colour_type) + AddElement(/datum/element/wearable_client_colour, glass_colour_type, ITEM_SLOT_EYES, forced = forced_glass_color) + /obj/item/clothing/glasses/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] is stabbing \the [src] into [user.p_their()] eyes! It looks like [user.p_theyre()] trying to commit suicide!")) return BRUTELOSS -/obj/item/clothing/glasses/examine(mob/user) - . = ..() - if(glass_colour_type && !forced_glass_color && ishuman(user)) - . += span_notice("Alt-click to toggle [p_their()] colors.") - /obj/item/clothing/glasses/visor_toggling() . = ..() alternate_worn_layer = up ? ABOVE_BODY_FRONT_HEAD_LAYER : null @@ -62,37 +62,12 @@ H.set_eye_blur_if_lower(10 SECONDS) eyes.apply_organ_damage(5) -/obj/item/clothing/glasses/click_alt(mob/user) - if(isnull(glass_colour_type) || forced_glass_color || !ishuman(user)) - return NONE - var/mob/living/carbon/human/human_user = user - - if (HAS_TRAIT_FROM(human_user, TRAIT_SEE_GLASS_COLORS, GLASSES_TRAIT)) - REMOVE_TRAIT(human_user, TRAIT_SEE_GLASS_COLORS, GLASSES_TRAIT) - to_chat(human_user, span_notice("You will no longer see glasses colors.")) - else - ADD_TRAIT(human_user, TRAIT_SEE_GLASS_COLORS, GLASSES_TRAIT) - to_chat(human_user, span_notice("You will now see glasses colors.")) - human_user.update_glasses_color(src, TRUE) - return CLICK_ACTION_SUCCESS - -/obj/item/clothing/glasses/proc/change_glass_color(mob/living/carbon/human/H, datum/client_colour/glass_colour/new_color_type) - var/old_colour_type = glass_colour_type - if(!new_color_type || ispath(new_color_type)) //the new glass colour type must be null or a path. - glass_colour_type = new_color_type - if(H && H.glasses == src) - if(old_colour_type) - H.remove_client_colour(old_colour_type) - if(glass_colour_type) - H.update_glasses_color(src, 1) - - -/mob/living/carbon/human/proc/update_glasses_color(obj/item/clothing/glasses/G, glasses_equipped) - if((HAS_TRAIT(src, TRAIT_SEE_GLASS_COLORS) || G.forced_glass_color) && glasses_equipped) - add_client_colour(G.glass_colour_type) - else - remove_client_colour(G.glass_colour_type) - +/obj/item/clothing/glasses/proc/change_glass_color(new_color_type) + if(glass_colour_type) + RemoveElement(/datum/element/wearable_client_colour, glass_colour_type, ITEM_SLOT_EYES, forced = forced_glass_color) + glass_colour_type = new_color_type + if(glass_colour_type) + AddElement(/datum/element/wearable_client_colour, glass_colour_type, ITEM_SLOT_EYES, forced = forced_glass_color) /obj/item/clothing/glasses/meson name = "optical meson scanner" diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 018543d93a33c..81ec00d54b439 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -226,6 +226,10 @@ . = ..() if(isnull(.)) return + if(new_value) + AddElement(/datum/element/wearable_client_colour, /datum/client_colour/halloween_helmet, ITEM_SLOT_HEAD, forced = TRUE) + else + RemoveElement(/datum/element/wearable_client_colour, /datum/client_colour/halloween_helmet, ITEM_SLOT_HEAD, forced = TRUE) update_icon(UPDATE_OVERLAYS) /obj/item/clothing/head/utility/hardhat/pumpkinhead/update_overlays() diff --git a/code/modules/clothing/suits/costume.dm b/code/modules/clothing/suits/costume.dm index 9cf86a396e95a..929e8d931d5ca 100644 --- a/code/modules/clothing/suits/costume.dm +++ b/code/modules/clothing/suits/costume.dm @@ -21,6 +21,10 @@ body_parts_covered = HEAD flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK|HIDESNOUT +/obj/item/clothing/head/hooded/flashsuit/Initialize(mapload) + . = ..() + AddElement(/datum/element/wearable_client_colour, /datum/client_colour/flash_hood, ITEM_SLOT_HEAD, forced = TRUE) + /obj/item/clothing/suit/costume/pirate name = "pirate coat" desc = "Yarr." diff --git a/code/modules/deathmatch/deathmatch_loadouts.dm b/code/modules/deathmatch/deathmatch_loadouts.dm index a24663b3ba439..911e5bf6e1b15 100644 --- a/code/modules/deathmatch/deathmatch_loadouts.dm +++ b/code/modules/deathmatch/deathmatch_loadouts.dm @@ -673,7 +673,7 @@ /datum/outfit/deathmatch_loadout/battler/clown/upgraded name = "Deathmatch: Clown (Syndicate Gear)" - display_name = "Clown" + display_name = "Clown Commando" desc = "They were bound to show up sooner or later." shoes = /obj/item/clothing/shoes/clown_shoes/combat @@ -727,7 +727,7 @@ /datum/outfit/deathmatch_loadout/chef/upgraded name = "Deathmatch: Master Chef" - display_name = "Chef" + display_name = "Master Chef" desc = "Let him cook." belt = /obj/item/gun/magic/hook diff --git a/code/modules/deathmatch/deathmatch_lobby.dm b/code/modules/deathmatch/deathmatch_lobby.dm index 028653a2f2124..ffc41c887162d 100644 --- a/code/modules/deathmatch/deathmatch_lobby.dm +++ b/code/modules/deathmatch/deathmatch_lobby.dm @@ -21,6 +21,8 @@ var/list/modifiers = list() /// Is the modifiers modal menu open (for the host) var/mod_menu_open = FALSE + /// artificial time padding when we start loading to give lighting a breather (admin starts will set this to 0) + var/start_time = 8 SECONDS /datum/deathmatch_lobby/New(mob/player) . = ..() @@ -79,7 +81,7 @@ UnregisterSignal(source, COMSIG_LAZY_TEMPLATE_LOADED) map.template_in_use = FALSE - addtimer(CALLBACK(src, PROC_REF(start_game_after_delay)), 8 SECONDS) + addtimer(CALLBACK(src, PROC_REF(start_game_after_delay)), start_time) /datum/deathmatch_lobby/proc/start_game_after_delay() if (!length(player_spawns) || length(player_spawns) < length(players)) @@ -152,7 +154,14 @@ GLOB.deathmatch_game.modifiers[modifier].apply(new_player, src) // register death handling. - RegisterSignals(new_player, list(COMSIG_LIVING_DEATH, COMSIG_MOB_GHOSTIZED, COMSIG_QDELETING), PROC_REF(player_died)) + register_player_signals(new_player) + +/datum/deathmatch_lobby/proc/register_player_signals(new_player) + RegisterSignals(new_player, list(COMSIG_LIVING_DEATH, COMSIG_QDELETING, COMSIG_MOB_GHOSTIZED), PROC_REF(player_died)) + RegisterSignal(new_player, COMSIG_LIVING_ON_WABBAJACKED, PROC_REF(player_wabbajacked)) + +/datum/deathmatch_lobby/proc/unregister_player_signals(new_player) + UnregisterSignal(new_player, list(COMSIG_LIVING_DEATH, COMSIG_QDELETING, COMSIG_MOB_GHOSTIZED, COMSIG_LIVING_ON_WABBAJACKED)) /datum/deathmatch_lobby/proc/game_took_too_long() if (!location || QDELING(src)) @@ -173,9 +182,9 @@ for(var/ckey in players) var/mob/loser = players[ckey]["mob"] - UnregisterSignal(loser, list(COMSIG_MOB_GHOSTIZED, COMSIG_QDELETING)) + unregister_player_signals(loser) players[ckey]["mob"] = null - loser.ghostize() + loser.ghostize(can_reenter_corpse = FALSE) qdel(loser) for(var/datum/deathmatch_modifier/modifier in modifiers) @@ -185,12 +194,18 @@ GLOB.deathmatch_game.remove_lobby(host) log_game("Deathmatch game [host] ended.") +/datum/deathmatch_lobby/proc/player_wabbajacked(mob/living/player, mob/living/new_mob) + SIGNAL_HANDLER + unregister_player_signals(player) + players[player.ckey]["mob"] = new_mob + register_player_signals(new_mob) + /datum/deathmatch_lobby/proc/player_died(mob/living/player, gibbed) SIGNAL_HANDLER - if(isnull(player) || QDELING(src)) + if(isnull(player) || QDELING(src) || HAS_TRAIT_FROM(player, TRAIT_NO_TRANSFORM, MAGIC_TRAIT)) //this trait check fixes polymorphing return - var/ckey = player.ckey + var/ckey = player.ckey ? player.ckey : player.mind?.key if(!islist(players[ckey])) // potentially the player info could hold a reference to this mob so we can figure the ckey out without worrying about ghosting and suicides n such for(var/potential_ckey in players) var/list/player_info = players[potential_ckey] @@ -209,8 +224,9 @@ announce(span_reallybig("[player.real_name] HAS DIED.
[players.len] REMAIN.")) - if(!gibbed && !QDELING(player)) + if(!gibbed && !QDELING(player) && !isdead(player)) if(!HAS_TRAIT(src, TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTS)) + unregister_player_signals(player) player.dust(TRUE, TRUE, TRUE) if (players.len <= 1) end_game() @@ -338,6 +354,7 @@ .["maps"] = list() for (var/map_key in GLOB.deathmatch_game.maps) .["maps"] += map_key + .["maps"] = sort_list(.["maps"]) /datum/deathmatch_lobby/ui_data(mob/user) @@ -499,12 +516,13 @@ if ("admin") // Admin functions if (!check_rights(R_ADMIN)) - message_admins("[usr.key] has attempted to use admin functions in a deathmatch lobby!") + message_admins("[usr.key] has attempted to use admin functions in a deathmatch lobby without being an admin!") log_admin("[key_name(usr)] tried to use the deathmatch lobby admin functions without authorization.") return switch (params["func"]) if ("Force start") log_admin("[key_name(usr)] force started deathmatch lobby [host].") + start_time = 0 start_game() return FALSE diff --git a/code/modules/deathmatch/deathmatch_mapping.dm b/code/modules/deathmatch/deathmatch_mapping.dm index 320b87d2fd15d..9f006e1524295 100644 --- a/code/modules/deathmatch/deathmatch_mapping.dm +++ b/code/modules/deathmatch/deathmatch_mapping.dm @@ -2,7 +2,7 @@ name = "Deathmatch Arena" requires_power = FALSE has_gravity = STANDARD_GRAVITY - area_flags = UNIQUE_AREA | NOTELEPORT | EVENT_PROTECTED | QUIET_LOGS + area_flags = UNIQUE_AREA | NOTELEPORT | EVENT_PROTECTED | QUIET_LOGS | NO_DEATH_MESSAGE | BINARY_JAMMING /area/deathmatch/fullbright static_lighting = FALSE @@ -12,7 +12,7 @@ name = "Deathmatch Player Spawner" /area/deathmatch/teleport //Prevent access to cross-z teleportation in the map itself (no wands of safety/teleportation scrolls). Cordons should prevent same-z teleportations outside of the arena. - area_flags = UNIQUE_AREA | EVENT_PROTECTED | QUIET_LOGS + area_flags = /area/deathmatch::area_flags & ~NOTELEPORT // for the illusion of a moving train /turf/open/chasm/true/no_smooth/fake_motion_sand diff --git a/code/modules/experisci/experiment/experiments.dm b/code/modules/experisci/experiment/experiments.dm index a025d90b44f4e..ea3a982cb8f80 100644 --- a/code/modules/experisci/experiment/experiments.dm +++ b/code/modules/experisci/experiment/experiments.dm @@ -380,7 +380,7 @@ /// Scan for cybernetic organs /datum/experiment/scanning/people/augmented_organs name = "Human Field Research: Augmented Organs" - description = "We need to gather data on how cybernetic vital organs integrate with human biology. Conduct a scan on a human with these implants to help us understand their compatibility" + description = "We need to gather data on how cybernetic vital organs integrate with human biology. Conduct a scan on a human with these implants to help us understand their compatibility." performance_hint = "Perform an organ manipulation surgery to replace one of the vital organs with a cybernetic variant." required_traits_desc = "augmented vital organs" required_count = 1 @@ -399,11 +399,8 @@ ) for (var/obj/item/organ/organ as anything in check.organs) - if (IS_ORGANIC_ORGAN(organ)) - continue - if (!(organ.slot in vital_organ_slots)) - continue - return TRUE + if (organ.slot in vital_organ_slots && IS_ROBOTIC_ORGAN(organ)) + return TRUE return FALSE /// Scan for skillchips @@ -426,9 +423,45 @@ return FALSE return TRUE +/// Scan an android +/datum/experiment/scanning/people/android + name = "Human Field Research: Full Augmentation" + description = "Perform a full cybernetic augmentation on a crewmate then scan them to test their newfound capabilities and new sensory and cognitive functions." + performance_hint = "Achieve full augmentation by performing a set of surgery operations." + required_traits_desc = "fully augmented android" + required_count = 1 + +/datum/experiment/scanning/people/android/is_valid_scan_target(mob/living/carbon/human/check, datum/component/experiment_handler/experiment_handler) + . = ..() + if (!.) + return + if (isandroid(check)) + return TRUE + if (check.organs < 6 || check.bodyparts < 6) + return FALSE + + var/static/list/augmented_organ_slots = list( + ORGAN_SLOT_EYES, + ORGAN_SLOT_EARS, + ORGAN_SLOT_HEART, + ORGAN_SLOT_LUNGS, + ORGAN_SLOT_LIVER, + ORGAN_SLOT_STOMACH, + ) + for (var/obj/item/organ/organ as anything in check.organs) + if (!(organ.slot in augmented_organ_slots)) + continue + if (!IS_ROBOTIC_ORGAN(organ)) + return FALSE + for (var/obj/item/bodypart/bodypart as anything in check.bodyparts) + if (bodypart.bodytype != BODYTYPE_ROBOTIC) + return FALSE + return TRUE + /datum/experiment/scanning/reagent/cryostylane name = "Pure Cryostylane Scan" description = "It appears that the Cryostylane reagent can potentially halt all physiological processes in the human body. Produce Cryostylane with at least 99% purity and scan the beaker." + performance_hint = "Keep the temperature as high as possible during the reaction." required_reagent = /datum/reagent/cryostylane min_purity = 0.99 diff --git a/code/modules/experisci/experiment/types/scanning_fish.dm b/code/modules/experisci/experiment/types/scanning_fish.dm index 8a50446063994..f1c2263a84c7e 100644 --- a/code/modules/experisci/experiment/types/scanning_fish.dm +++ b/code/modules/experisci/experiment/types/scanning_fish.dm @@ -12,7 +12,7 @@ GLOBAL_LIST_EMPTY(scanned_fish_by_techweb) performance_hint = "Scan fish. Examine scanner to review progress. Unlock new fishing portals." allowed_experimentors = list(/obj/item/experi_scanner, /obj/machinery/destructive_scanner, /obj/item/fishing_rod/tech, /obj/item/fish_analyzer) traits = EXPERIMENT_TRAIT_TYPECACHE - points_reward = list(TECHWEB_POINT_TYPE_GENERIC = 750) + points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS ) required_atoms = list(/obj/item/fish = 4) scan_message = "Scan different species of fish" ///Further experiments added to the techweb when this one is completed. @@ -80,7 +80,7 @@ GLOBAL_LIST_EMPTY(scanned_fish_by_techweb) /datum/experiment/scanning/fish/second name = "Fish Scanning Experiment 2" description = "An experiment requiring more fish species to be scanned to unlock the 'Chasm' setting for the fishing portal." - points_reward = list(TECHWEB_POINT_TYPE_GENERIC = 1500) + points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS ) required_atoms = list(/obj/item/fish = 8) next_experiments = list(/datum/experiment/scanning/fish/third) fish_source_reward = /datum/fish_source/portal/chasm @@ -88,7 +88,7 @@ GLOBAL_LIST_EMPTY(scanned_fish_by_techweb) /datum/experiment/scanning/fish/third name = "Fish Scanning Experiment 3" description = "An experiment requiring even more fish species to be scanned to unlock the 'Ocean' setting for the fishing portal." - points_reward = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS ) required_atoms = list(/obj/item/fish = 14) next_experiments = list(/datum/experiment/scanning/fish/fourth, /datum/experiment/scanning/fish/holographic) fish_source_reward = /datum/fish_source/portal/ocean @@ -97,7 +97,7 @@ GLOBAL_LIST_EMPTY(scanned_fish_by_techweb) name = "Holographic Fish Scanning Experiment" description = "This one actually requires holographic fish to unlock the 'Randomizer' setting for the fishing portal." performance_hint = "Load in the 'Beach' template at the Holodeck to fish some holo-fish." - points_reward = list(TECHWEB_POINT_TYPE_GENERIC = 500) + points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS ) required_atoms = list(/obj/item/fish/holo = 4) scan_message = "Scan different species of holographic fish" next_experiments = null @@ -110,7 +110,7 @@ GLOBAL_LIST_EMPTY(scanned_fish_by_techweb) /datum/experiment/scanning/fish/fourth name = "Fish Scanning Experiment 4" description = "An experiment requiring lotsa fish species to unlock the 'Hyperspace' setting for the fishing portal." - points_reward = list(TECHWEB_POINT_TYPE_GENERIC = 3250) + points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS ) required_atoms = list(/obj/item/fish = 21) next_experiments = null fish_source_reward = /datum/fish_source/portal/hyperspace diff --git a/code/modules/experisci/experiment/types/scanning_reagent.dm b/code/modules/experisci/experiment/types/scanning_reagent.dm index 1a39e2941efeb..992c28d148d44 100644 --- a/code/modules/experisci/experiment/types/scanning_reagent.dm +++ b/code/modules/experisci/experiment/types/scanning_reagent.dm @@ -31,5 +31,5 @@ return TRUE /datum/experiment/scanning/reagent/serialize_progress_stage(atom/target, list/seen_instances) - return EXPERIMENT_PROG_INT("Scan a reagent container with [required_reagent::name] of at least [PERCENT(min_purity)] purity.", \ + return EXPERIMENT_PROG_INT("Scan a reagent container with [required_reagent::name] of at least [PERCENT(min_purity)]% purity.", \ seen_instances.len, required_atoms[target]) diff --git a/code/modules/food_and_drinks/machinery/microwave.dm b/code/modules/food_and_drinks/machinery/microwave.dm index 88256eaf1d27e..bc5adfbd0f951 100644 --- a/code/modules/food_and_drinks/machinery/microwave.dm +++ b/code/modules/food_and_drinks/machinery/microwave.dm @@ -114,6 +114,7 @@ QDEL_LIST(ingredients) QDEL_NULL(wires) QDEL_NULL(soundloop) + QDEL_NULL(particles) if(!isnull(cell)) QDEL_NULL(cell) return ..() @@ -366,8 +367,10 @@ return ITEM_INTERACT_SUCCESS /obj/machinery/microwave/tool_act(mob/living/user, obj/item/tool, list/modifiers) + if(!tool.tool_behaviour) + return ..() if(operating) - return ITEM_INTERACT_SKIP_TO_ATTACK // Don't use tools if we're dirty + return ITEM_INTERACT_SKIP_TO_ATTACK // Don't use tools if we're operating if(dirty >= MAX_MICROWAVE_DIRTINESS) return ITEM_INTERACT_SKIP_TO_ATTACK // Don't insert items if we're dirty if(panel_open && is_wire_tool(tool)) @@ -375,15 +378,13 @@ return ITEM_INTERACT_SUCCESS return ..() -/obj/machinery/microwave/attackby(obj/item/item, mob/living/user, params) +/obj/machinery/microwave/item_interaction(mob/living/user, obj/item/item, list/modifiers) if(operating) - return + return NONE if(broken > NOT_BROKEN) - if(IS_EDIBLE(item)) - balloon_alert(user, "it's broken!") - return TRUE - return ..() + balloon_alert(user, "it's broken!") + return ITEM_INTERACT_BLOCKING if(istype(item, /obj/item/stock_parts/power_store/cell) && cell_powered) var/swapped = FALSE @@ -395,27 +396,23 @@ swapped = TRUE if(!user.transferItemToLoc(item, src)) update_appearance() - return TRUE + return ITEM_INTERACT_BLOCKING cell = item balloon_alert(user, "[swapped ? "swapped" : "inserted"] cell") update_appearance() - return TRUE + return ITEM_INTERACT_SUCCESS if(!anchored) - if(IS_EDIBLE(item)) - balloon_alert(user, "not secured!") - return TRUE - return ..() + balloon_alert(user, "not secured!") + return ITEM_INTERACT_BLOCKING if(dirty >= MAX_MICROWAVE_DIRTINESS) // The microwave is all dirty so can't be used! - if(IS_EDIBLE(item)) - balloon_alert(user, "it's too dirty!") - return TRUE - return ..() + balloon_alert(user, "it's too dirty!") + return ITEM_INTERACT_BLOCKING if(vampire_charging_capable && istype(item, /obj/item/modular_computer) && ingredients.len > 0) balloon_alert(user, "max 1 device!") - return FALSE + return ITEM_INTERACT_BLOCKING if(istype(item, /obj/item/storage)) var/obj/item/storage/tray = item @@ -425,14 +422,14 @@ // Non-tray dumping requires a do_after to_chat(user, span_notice("You start dumping out the contents of [item] into [src]...")) if(!do_after(user, 2 SECONDS, target = tray)) - return + return ITEM_INTERACT_BLOCKING for(var/obj/tray_item in tray.contents) if(!IS_EDIBLE(tray_item)) continue if(ingredients.len >= max_n_of_items) balloon_alert(user, "it's full!") - return TRUE + return ITEM_INTERACT_BLOCKING if(tray.atom_storage.attempt_remove(tray_item, src)) loaded++ ingredients += tray_item @@ -440,23 +437,21 @@ open(autoclose = 0.6 SECONDS) to_chat(user, span_notice("You insert [loaded] items into \the [src].")) update_appearance() - return + return ITEM_INTERACT_SUCCESS - if(item.w_class <= WEIGHT_CLASS_NORMAL && !istype(item, /obj/item/storage) && !user.combat_mode) + if(item.w_class <= WEIGHT_CLASS_NORMAL && !user.combat_mode) if(ingredients.len >= max_n_of_items) balloon_alert(user, "it's full!") - return TRUE + return ITEM_INTERACT_BLOCKING if(!user.transferItemToLoc(item, src)) balloon_alert(user, "it's stuck to your hand!") - return FALSE + return ITEM_INTERACT_BLOCKING ingredients += item open(autoclose = 0.6 SECONDS) user.visible_message(span_notice("[user] adds \a [item] to \the [src]."), span_notice("You add [item] to \the [src].")) update_appearance() - return - - return ..() + return ITEM_INTERACT_SUCCESS /obj/machinery/microwave/attack_hand_secondary(mob/user, list/modifiers) if(user.can_perform_action(src, ALLOW_SILICON_REACH)) @@ -541,8 +536,9 @@ /obj/machinery/microwave/proc/eject() var/atom/drop_loc = drop_location() - for(var/atom/movable/movable_ingredient as anything in ingredients) - movable_ingredient.forceMove(drop_loc) + for(var/obj/item/item_ingredient as anything in ingredients) + item_ingredient.forceMove(drop_loc) + item_ingredient.dropped() //Mob holders can be on the ground if we don't do this open(autoclose = 1.4 SECONDS) /obj/machinery/microwave/proc/start_cycle(mob/user) @@ -674,10 +670,34 @@ if(MICROWAVE_PRE) pre_success(cooker) return + + if(cycles == 1) //Only needs to try to shock mobs once, towards the end of the loop + var/successful_shock + var/list/microwave_contents = list() + microwave_contents += get_all_contents() //Mobs are often hid inside of mob holders, which could be fried and made into a burger... + for(var/mob/living/victim in microwave_contents) + if(victim.electrocute_act(shock_damage = 100, source = src, siemens_coeff = 1, flags = SHOCK_NOGLOVES)) + successful_shock = TRUE + if(victim.stat == DEAD) //This is mostly so humans that can_be_held don't get gibbed from one microwave run alone, but mice become burnt messes + victim.gib() + muck() + if(successful_shock) //We only want to give feedback once, regardless of how many mobs got shocked + var/list/cant_smell = list() + for(var/mob/smeller in get_hearers_in_view(DEFAULT_MESSAGE_RANGE, src)) + if(HAS_TRAIT(smeller, TRAIT_ANOSMIA)) + cant_smell += smeller + visible_message(span_danger("You smell a burnt smell coming from [src]!"), ignored_mobs = cant_smell) + particles = new /particles/smoke() + addtimer(CALLBACK(src, PROC_REF(remove_smoke)), 10 SECONDS) + Shake(duration = 1 SECONDS) + cycles-- use_energy(active_power_usage) addtimer(CALLBACK(src, PROC_REF(cook_loop), type, cycles, wait, cooker), wait) +/obj/machinery/microwave/proc/remove_smoke() + QDEL_NULL(particles) + /obj/machinery/microwave/power_change() . = ..() if(cell_powered) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm index 7761a57fcfdbd..742e8c1f3c89b 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm @@ -10,6 +10,7 @@ name = "Sandwich" reqs = list( /obj/item/food/breadslice/plain = 2, + /obj/item/food/grown/cabbage = 1, /obj/item/food/meat/steak = 1, /obj/item/food/cheese/wedge = 1 ) diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 7a14898f364d0..64d1a3b0bff19 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -112,8 +112,8 @@ var/obj/item/stack/sheet/animalhide/goliath_hide/plating = new() explorer_suit.hood.attackby(plating) for(var/obj/item/gun/energy/recharge/kinetic_accelerator/accelerator in miner_contents) - var/obj/item/knife/combat/survival/knife = new(accelerator) - accelerator.bayonet = knife + var/datum/component/bayonet_attachable/bayonet = accelerator.GetComponent(/datum/component/bayonet_attachable) + bayonet.add_bayonet(new /obj/item/knife/combat/survival(accelerator)) var/obj/item/flashlight/seclite/flashlight = new() var/datum/component/seclite_attachable/light_component = accelerator.GetComponent(/datum/component/seclite_attachable) light_component.add_light(flashlight) diff --git a/code/modules/lootpanel/search_object.dm b/code/modules/lootpanel/search_object.dm index 3550c62ef4133..149be76e71064 100644 --- a/code/modules/lootpanel/search_object.dm +++ b/code/modules/lootpanel/search_object.dm @@ -25,12 +25,15 @@ if(isturf(item)) RegisterSignal(item, COMSIG_TURF_CHANGE, PROC_REF(on_turf_change)) + else + // Lest we find ourselves here again, this is intentionally stupid. + // It tracks items going out and user actions, otherwise they can refresh the lootpanel. + // If this is to be made to track everything, we'll need to make a new signal to specifically create/delete a search object RegisterSignals(item, list( - COMSIG_ATOM_ENTERED, - COMSIG_ATOM_EXITED, + COMSIG_ITEM_PICKUP, + COMSIG_MOVABLE_MOVED, + COMSIG_QDELETING, ), PROC_REF(on_item_moved)) - else - RegisterSignal(item, COMSIG_QDELETING, PROC_REF(on_item_moved)) // Icon generation conditions ////////////// // Condition 1: Icon is complex diff --git a/code/modules/meteors/meteor_changeling.dm b/code/modules/meteors/meteor_changeling.dm index 5733e2dbe93e2..9c25f8b6776a6 100644 --- a/code/modules/meteors/meteor_changeling.dm +++ b/code/modules/meteors/meteor_changeling.dm @@ -30,7 +30,7 @@ return TRUE //If the meteor misses the station and deletes itself, we make absolutely sure the changeling reaches the station. -/obj/effect/meteor/meaty/changeling/handle_stopping() +/obj/effect/meteor/meaty/changeling/moved_off_z() if(!landing_target) //If our destination turf is gone for some reason, we chuck them at the observer_start landmark (usually at the center of the station) as a last resort. landing_target = locate(/obj/effect/landmark/observer_start) in GLOB.landmarks_list diff --git a/code/modules/meteors/meteor_dark_matteor.dm b/code/modules/meteors/meteor_dark_matteor.dm index f965605048204..f72bbcff6fa13 100644 --- a/code/modules/meteors/meteor_dark_matteor.dm +++ b/code/modules/meteors/meteor_dark_matteor.dm @@ -60,7 +60,7 @@ qdel(defender) return FALSE -/obj/effect/meteor/dark_matteor/handle_stopping() +/obj/effect/meteor/dark_matteor/moved_off_z() . = ..() if(previous_security_level && SSsecurity_level.get_current_level_as_number() != SEC_LEVEL_DELTA) SSsecurity_level.set_level(previous_security_level) diff --git a/code/modules/meteors/meteor_types.dm b/code/modules/meteors/meteor_types.dm index 504cca702de00..199f6517abb1e 100644 --- a/code/modules/meteors/meteor_types.dm +++ b/code/modules/meteors/meteor_types.dm @@ -60,8 +60,7 @@ get_hit() if(z != z_original || loc == get_turf(dest)) - qdel(src) - return + moved_off_z() /obj/effect/meteor/Process_Spacemove(movement_dir = 0, continuous_move = FALSE) return TRUE //Keeps us from drifting for no reason @@ -80,13 +79,9 @@ if(!new_loop) return - RegisterSignal(new_loop, COMSIG_QDELETING, PROC_REF(handle_stopping)) - ///Deals with what happens when we stop moving, IE we die -/obj/effect/meteor/proc/handle_stopping() - SIGNAL_HANDLER - if(!QDELETED(src)) - qdel(src) +/obj/effect/meteor/proc/moved_off_z() + qdel(src) /obj/effect/meteor/proc/ram_turf(turf/T) //first yell at mobs about them dying horribly diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index a52107ce8b260..385afb0f81f3e 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -31,13 +31,10 @@ machine = null return ..() -/obj/machinery/mineral/stacking_unit_console/multitool_act(mob/living/user, obj/item/I) - if(!multitool_check_buffer(user, I)) - return - var/obj/item/multitool/M = I +/obj/machinery/mineral/stacking_unit_console/multitool_act(mob/living/user, obj/item/multitool/M) M.set_buffer(src) balloon_alert(user, "saved to multitool buffer") - return TRUE + return ITEM_INTERACT_SUCCESS /obj/machinery/mineral/stacking_unit_console/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/mob/living/basic/slime/defense.dm b/code/modules/mob/living/basic/slime/defense.dm index b747c24201971..a3242525170c7 100644 --- a/code/modules/mob/living/basic/slime/defense.dm +++ b/code/modules/mob/living/basic/slime/defense.dm @@ -19,7 +19,7 @@ return attacker.visible_message(span_warning("[attacker] manages to wrestle \the [defender_slime.name] off!"), span_notice("You manage to wrestle \the [defender_slime.name] off!")) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(loc, 'sound/weapons/shove.ogg', 50, TRUE, -1) defender_slime.discipline_slime() diff --git a/code/modules/mob/living/basic/vermin/mouse.dm b/code/modules/mob/living/basic/vermin/mouse.dm index 3cce5e3481784..724833af16f2a 100644 --- a/code/modules/mob/living/basic/vermin/mouse.dm +++ b/code/modules/mob/living/basic/vermin/mouse.dm @@ -117,11 +117,19 @@ . = ..(TRUE) // Now if we were't ACTUALLY gibbed, spawn the dead mouse if(!gibbed) - var/obj/item/food/deadmouse/mouse = new(loc) - mouse.copy_corpse(src) - if(HAS_TRAIT(src, TRAIT_BEING_SHOCKED)) - mouse.desc = "They're toast." - mouse.add_atom_colour("#3A3A3A", FIXED_COLOUR_PRIORITY) + var/make_a_corpse = TRUE + var/place_to_make_corpse = loc + if(istype(loc, /obj/item/clothing/head/mob_holder))//If our mouse is dying in place holder we want to put the dead mouse where the place holder was + var/obj/item/clothing/head/mob_holder/found_holder = loc + place_to_make_corpse = found_holder.loc + if(istype(found_holder.loc, /obj/machinery/microwave))//Microwaves gib things that die when cooked, so we don't need to make a dead body too + make_a_corpse = FALSE + if(make_a_corpse) + var/obj/item/food/deadmouse/mouse = new(place_to_make_corpse) + mouse.copy_corpse(src) + if(HAS_TRAIT(src, TRAIT_BEING_SHOCKED)) + mouse.desc = "They're toast." + mouse.add_atom_colour("#3A3A3A", FIXED_COLOUR_PRIORITY) qdel(src) /mob/living/basic/mouse/UnarmedAttack(atom/attack_target, proximity_flag, list/modifiers) diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index 3340e34064052..f13e90719c1dc 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -76,7 +76,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) cut_overlays(TRUE) /mob/living/carbon/human/dummy/setup_human_dna() - randomize_human(src, randomize_mutations = FALSE) + randomize_human_normie(src, randomize_mutations = FALSE) /mob/living/carbon/human/dummy/log_mob_tag(text) return diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9d3d8c2d5a81b..1dd47f8060426 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -56,7 +56,7 @@ ADD_TRAIT(src, TRAIT_AGEUSIA, NO_TONGUE_TRAIT) /mob/living/carbon/human/proc/setup_human_dna() - randomize_human(src, randomize_mutations = TRUE) + randomize_human_normie(src, randomize_mutations = TRUE) /mob/living/carbon/human/Destroy() QDEL_NULL(physiology) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 14003b86da496..fda6d7a9142ea 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -26,8 +26,9 @@ /mob/living/carbon/human/Move(NewLoc, direct) . = ..() - if(shoes && body_position == STANDING_UP && loc == NewLoc && has_gravity(loc)) - SEND_SIGNAL(shoes, COMSIG_SHOES_STEP_ACTION) + if(shoes && body_position == STANDING_UP && has_gravity(loc)) + if((. && !moving_diagonally) || (!. && moving_diagonally == SECOND_DIAG_STEP)) + SEND_SIGNAL(shoes, COMSIG_SHOES_STEP_ACTION) /mob/living/carbon/human/Process_Spacemove(movement_dir = 0, continuous_move = FALSE) if(movement_type & FLYING || HAS_TRAIT(src, TRAIT_FREE_FLOAT_MOVEMENT)) diff --git a/code/modules/mob/living/carbon/human/human_say.dm b/code/modules/mob/living/carbon/human/human_say.dm index 8bf21e3c809a6..0ce34ffa27205 100644 --- a/code/modules/mob/living/carbon/human/human_say.dm +++ b/code/modules/mob/living/carbon/human/human_say.dm @@ -70,6 +70,9 @@ var/obj/item/radio/headset/dongle = ears if(!istype(dongle)) return FALSE + var/area/our_area = get_area(src) + if(our_area.area_flags & BINARY_JAMMING) + return FALSE return dongle.translate_binary /mob/living/carbon/human/radio(message, list/message_mods = list(), list/spans, language) //Poly has a copy of this, lazy bastard diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index b4838e978d6fe..a24e9cd070d86 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -156,8 +156,6 @@ if(glasses) return glasses = equipping - if(glasses.glass_colour_type) - update_glasses_color(glasses, 1) if(glasses.vision_flags || glasses.invis_override || glasses.invis_view || !isnull(glasses.lighting_cutoff)) update_sight() update_worn_glasses() @@ -250,10 +248,8 @@ update_worn_gloves() else if(I == glasses) glasses = null - var/obj/item/clothing/glasses/G = I - if(G.glass_colour_type) - update_glasses_color(G, 0) - if(G.vision_flags || G.invis_override || G.invis_view || !isnull(G.lighting_cutoff)) + var/obj/item/clothing/glasses/old_glasses = I + if(old_glasses.vision_flags || old_glasses.invis_override || old_glasses.invis_view || !isnull(old_glasses.lighting_cutoff)) update_sight() if(!QDELETED(src)) update_worn_glasses() diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 5a5995e207235..ee601251465aa 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -659,7 +659,7 @@ playsound(target, 'sound/effects/glassbash.ogg', 50, TRUE, -1) else do_attack_animation(target, ATTACK_EFFECT_DISARM) - playsound(target, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(target, 'sound/weapons/shove.ogg', 50, TRUE, -1) if (ishuman(target) && isnull(weapon)) var/mob/living/carbon/human/human_target = target human_target.w_uniform?.add_fingerprint(src) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 0b844a2362afb..6ec18d0d5392c 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -3,6 +3,7 @@ hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD) pressure_resistance = 10 hud_type = /datum/hud/living + interaction_flags_click = ALLOW_RESTING interaction_flags_mouse_drop = ALLOW_RESTING ///Tracks the current size of the mob in relation to its original size. Use update_transform(resize) to change it. diff --git a/code/modules/mob/living/silicon/ai/vox_sounds.dm b/code/modules/mob/living/silicon/ai/vox_sounds.dm index dacb1eeb8131c..d69bb2e1cc3b8 100644 --- a/code/modules/mob/living/silicon/ai/vox_sounds.dm +++ b/code/modules/mob/living/silicon/ai/vox_sounds.dm @@ -8,12 +8,15 @@ // For vim // :%s/\(\(.*\)\.ogg\)/"\2" = 'sound\/vox_fem\/\1',/g GLOBAL_LIST_INIT(vox_sounds, list( - "abduction" = 'sound/vox_fem/abduction.ogg', "," = 'sound/vox_fem/,.ogg', "." = 'sound/vox_fem/..ogg', "a" = 'sound/vox_fem/a.ogg', + "abduction" = 'sound/vox_fem/abduction.ogg', "abortions" = 'sound/vox_fem/abortions.ogg', "above" = 'sound/vox_fem/above.ogg', + "absorb" = 'sound/vox_fem/absorb.ogg', + "absorbed" = 'sound/vox_fem/absorbed.ogg', + "absorbing" = 'sound/vox_fem/absorbing.ogg', "abstain" = 'sound/vox_fem/abstain.ogg', "accelerating" = 'sound/vox_fem/accelerating.ogg', "accelerator" = 'sound/vox_fem/accelerator.ogg', @@ -26,11 +29,17 @@ GLOBAL_LIST_INIT(vox_sounds, list( "across" = 'sound/vox_fem/across.ogg', "activate" = 'sound/vox_fem/activate.ogg', "activated" = 'sound/vox_fem/activated.ogg', + "activating" = 'sound/vox_fem/activating.ogg', + "activation" = 'sound/vox_fem/activation.ogg', + "active" = 'sound/vox_fem/active.ogg', "activity" = 'sound/vox_fem/activity.ogg', "adios" = 'sound/vox_fem/adios.ogg', "administration" = 'sound/vox_fem/administration.ogg', "advanced" = 'sound/vox_fem/advanced.ogg', "advised" = 'sound/vox_fem/advised.ogg', + "affect" = 'sound/vox_fem/affect.ogg', + "affected" = 'sound/vox_fem/affected.ogg', + "affecting" = 'sound/vox_fem/affecting.ogg', "aft" = 'sound/vox_fem/aft.ogg', "after" = 'sound/vox_fem/after.ogg', "agent" = 'sound/vox_fem/agent.ogg', @@ -40,44 +49,59 @@ GLOBAL_LIST_INIT(vox_sounds, list( "alarm" = 'sound/vox_fem/alarm.ogg', "alarmed" = 'sound/vox_fem/alarmed.ogg', "alarming" = 'sound/vox_fem/alarming.ogg', + "alcohol" = 'sound/vox_fem/alcohol.ogg', "alert" = 'sound/vox_fem/alert.ogg', "alerted" = 'sound/vox_fem/alerted.ogg', "alerting" = 'sound/vox_fem/alerting.ogg', "alien" = 'sound/vox_fem/alien.ogg', + "align" = 'sound/vox_fem/align.ogg', "aligned" = 'sound/vox_fem/aligned.ogg', "all" = 'sound/vox_fem/all.ogg', + "allow" = 'sound/vox_fem/allow.ogg', + "alongside" = 'sound/vox_fem/alongside.ogg', "alpha" = 'sound/vox_fem/alpha.ogg', "also" = 'sound/vox_fem/also.ogg', "am" = 'sound/vox_fem/am.ogg', "amigo" = 'sound/vox_fem/amigo.ogg', "ammunition" = 'sound/vox_fem/ammunition.ogg', + "amount" = 'sound/vox_fem/amount.ogg', "an" = 'sound/vox_fem/an.ogg', "and" = 'sound/vox_fem/and.ogg', "animal" = 'sound/vox_fem/animal.ogg', + "annihilate" = 'sound/vox_fem/annihilate.ogg', + "annihilated" = 'sound/vox_fem/annihilated.ogg', + "annihilating" = 'sound/vox_fem/annihilating.ogg', + "annihilation" = 'sound/vox_fem/annihilation.ogg', "announcement" = 'sound/vox_fem/announcement.ogg', "anomalous" = 'sound/vox_fem/anomalous.ogg', "answer" = 'sound/vox_fem/answer.ogg', "antenna" = 'sound/vox_fem/antenna.ogg', + "anti-noblium" = 'sound/vox_fem/anti-noblium.ogg', "any" = 'sound/vox_fem/any.ogg', "apc" = 'sound/vox_fem/apc.ogg', "apprehend" = 'sound/vox_fem/apprehend.ogg', "approach" = 'sound/vox_fem/approach.ogg', + "arc" = 'sound/vox_fem/arc.ogg', + "arcs" = 'sound/vox_fem/arcs.ogg', "are" = 'sound/vox_fem/are.ogg', "area" = 'sound/vox_fem/area.ogg', "arm" = 'sound/vox_fem/arm.ogg', "armed" = 'sound/vox_fem/armed.ogg', "armor" = 'sound/vox_fem/armor.ogg', "armory" = 'sound/vox_fem/armory.ogg', + "around" = 'sound/vox_fem/around.ogg', "array" = 'sound/vox_fem/array.ogg', "arrest" = 'sound/vox_fem/arrest.ogg', "artillery" = 'sound/vox_fem/artillery.ogg', "asimov" = 'sound/vox_fem/asimov.ogg', + "ask" = 'sound/vox_fem/ask.ogg', "ass" = 'sound/vox_fem/ass.ogg', "asshole" = 'sound/vox_fem/asshole.ogg', "assholes" = 'sound/vox_fem/assholes.ogg', "assistance" = 'sound/vox_fem/assistance.ogg', "assistant" = 'sound/vox_fem/assistant.ogg', "at" = 'sound/vox_fem/at.ogg', + "ate" = 'sound/vox_fem/ate.ogg', "atmosphere" = 'sound/vox_fem/atmosphere.ogg', "atmospheric" = 'sound/vox_fem/atmospheric.ogg', "atmospherics" = 'sound/vox_fem/atmospherics.ogg', @@ -101,10 +125,14 @@ GLOBAL_LIST_INIT(vox_sounds, list( "base" = 'sound/vox_fem/base.ogg', "bay" = 'sound/vox_fem/bay.ogg', "be" = 'sound/vox_fem/be.ogg', + "beaker" = 'sound/vox_fem/beaker.ogg', "beam" = 'sound/vox_fem/beam.ogg', "been" = 'sound/vox_fem/been.ogg', "beep" = 'sound/vox_fem/beep.ogg', "before" = 'sound/vox_fem/before.ogg', + "began" = 'sound/vox_fem/began.ogg', + "begin" = 'sound/vox_fem/begin.ogg', + "begins" = 'sound/vox_fem/begins.ogg', "below" = 'sound/vox_fem/below.ogg', "beside" = 'sound/vox_fem/beside.ogg', "beware" = 'sound/vox_fem/beware.ogg', @@ -133,6 +161,7 @@ GLOBAL_LIST_INIT(vox_sounds, list( "bone" = 'sound/vox_fem/bone.ogg', "botanist" = 'sound/vox_fem/botanist.ogg', "botany" = 'sound/vox_fem/botany.ogg', + "bottle" = 'sound/vox_fem/bottle.ogg', "bottom" = 'sound/vox_fem/bottom.ogg', "bravo" = 'sound/vox_fem/bravo.ogg', "breach" = 'sound/vox_fem/breach.ogg', @@ -140,6 +169,11 @@ GLOBAL_LIST_INIT(vox_sounds, list( "break" = 'sound/vox_fem/break.ogg', "bridge" = 'sound/vox_fem/bridge.ogg', "brig" = 'sound/vox_fem/brig.ogg', + "broke" = 'sound/vox_fem/broke.ogg', + "broken" = 'sound/vox_fem/broken.ogg', + "bump" = 'sound/vox_fem/bump.ogg', + "bumped" = 'sound/vox_fem/bumped.ogg', + "bumps" = 'sound/vox_fem/bumps.ogg', "bust" = 'sound/vox_fem/bust.ogg', "but" = 'sound/vox_fem/but.ogg', "button" = 'sound/vox_fem/button.ogg', @@ -148,6 +182,7 @@ GLOBAL_LIST_INIT(vox_sounds, list( "cable" = 'sound/vox_fem/cable.ogg', "call" = 'sound/vox_fem/call.ogg', "called" = 'sound/vox_fem/called.ogg', + "can" = 'sound/vox_fem/can.ogg', "canal" = 'sound/vox_fem/canal.ogg', "canister" = 'sound/vox_fem/canister.ogg', "cap" = 'sound/vox_fem/cap.ogg', @@ -155,7 +190,12 @@ GLOBAL_LIST_INIT(vox_sounds, list( "capture" = 'sound/vox_fem/capture.ogg', "carbon" = 'sound/vox_fem/carbon.ogg', "cargo" = 'sound/vox_fem/cargo.ogg', + "cascade" = 'sound/vox_fem/cascade.ogg', "cat" = 'sound/vox_fem/cat.ogg', + "cause" = 'sound/vox_fem/cause.ogg', + "caused" = 'sound/vox_fem/caused.ogg', + "causes" = 'sound/vox_fem/causes.ogg', + "causing" = 'sound/vox_fem/causing.ogg', "ce" = 'sound/vox_fem/ce.ogg', "cease" = 'sound/vox_fem/cease.ogg', "ceiling" = 'sound/vox_fem/ceiling.ogg', @@ -171,6 +211,7 @@ GLOBAL_LIST_INIT(vox_sounds, list( "changeling" = 'sound/vox_fem/changeling.ogg', "chapel" = 'sound/vox_fem/chapel.ogg', "chaplain" = 'sound/vox_fem/chaplain.ogg', + "charge" = 'sound/vox_fem/charge.ogg', "charlie" = 'sound/vox_fem/charlie.ogg', "check" = 'sound/vox_fem/check.ogg', "checkpoint" = 'sound/vox_fem/checkpoint.ogg', @@ -185,35 +226,51 @@ GLOBAL_LIST_INIT(vox_sounds, list( "clear" = 'sound/vox_fem/clear.ogg', "clearance" = 'sound/vox_fem/clearance.ogg', "clockwork" = 'sound/vox_fem/clockwork.ogg', + "clog" = 'sound/vox_fem/clog.ogg', "close" = 'sound/vox_fem/close.ogg', "closed" = 'sound/vox_fem/closed.ogg', "closing" = 'sound/vox_fem/closing.ogg', + "clothing" = 'sound/vox_fem/clothing.ogg', "clown" = 'sound/vox_fem/clown.ogg', "clowning" = 'sound/vox_fem/clowning.ogg', "cmo" = 'sound/vox_fem/cmo.ogg', "code" = 'sound/vox_fem/code.ogg', "coded" = 'sound/vox_fem/coded.ogg', + "coil" = 'sound/vox_fem/coil.ogg', + "coils" = 'sound/vox_fem/coils.ogg', "cold" = 'sound/vox_fem/cold.ogg', "collider" = 'sound/vox_fem/collider.ogg', + "combat" = 'sound/vox_fem/combat.ogg', + "combatant" = 'sound/vox_fem/combatant.ogg', "come" = 'sound/vox_fem/come.ogg', "command" = 'sound/vox_fem/command.ogg', "communication" = 'sound/vox_fem/communication.ogg', + "complete" = 'sound/vox_fem/complete.ogg', + "completed" = 'sound/vox_fem/completed.ogg', + "completion" = 'sound/vox_fem/completion.ogg', "complex" = 'sound/vox_fem/complex.ogg', "comply" = 'sound/vox_fem/comply.ogg', "computer" = 'sound/vox_fem/computer.ogg', "condition" = 'sound/vox_fem/condition.ogg', + "conditions" = 'sound/vox_fem/conditions.ogg', "condom" = 'sound/vox_fem/condom.ogg', + "configure" = 'sound/vox_fem/configure.ogg', + "configured" = 'sound/vox_fem/configured.ogg', + "configuring" = 'sound/vox_fem/configuring.ogg', "confirmed" = 'sound/vox_fem/confirmed.ogg', "connor" = 'sound/vox_fem/connor.ogg', "console" = 'sound/vox_fem/console.ogg', "console2" = 'sound/vox_fem/console2.ogg', "construct" = 'sound/vox_fem/construct.ogg', + "container" = 'sound/vox_fem/container.ogg', "containment" = 'sound/vox_fem/containment.ogg', "contamination" = 'sound/vox_fem/contamination.ogg', "contraband" = 'sound/vox_fem/contraband.ogg', "control" = 'sound/vox_fem/control.ogg', "cook" = 'sound/vox_fem/cook.ogg', + "cool" = 'sound/vox_fem/cool.ogg', "coolant" = 'sound/vox_fem/coolant.ogg', + "cooling" = 'sound/vox_fem/cooling.ogg', "coomer" = 'sound/vox_fem/coomer.ogg', "core" = 'sound/vox_fem/core.ogg', "corgi" = 'sound/vox_fem/corgi.ogg', @@ -221,10 +278,15 @@ GLOBAL_LIST_INIT(vox_sounds, list( "correct" = 'sound/vox_fem/correct.ogg', "corridor" = 'sound/vox_fem/corridor.ogg', "corridors" = 'sound/vox_fem/corridors.ogg', + "could" = 'sound/vox_fem/could.ogg', + "couldnt" = 'sound/vox_fem/couldnt.ogg', + "countdown" = 'sound/vox_fem/countdown.ogg', "coward" = 'sound/vox_fem/coward.ogg', "cowards" = 'sound/vox_fem/cowards.ogg', "crate" = 'sound/vox_fem/crate.ogg', + "create" = 'sound/vox_fem/create.ogg', "created" = 'sound/vox_fem/created.ogg', + "creating" = 'sound/vox_fem/creating.ogg', "creature" = 'sound/vox_fem/creature.ogg', "crew" = 'sound/vox_fem/crew.ogg', "critical" = 'sound/vox_fem/critical.ogg', @@ -251,9 +313,12 @@ GLOBAL_LIST_INIT(vox_sounds, list( "deeoo" = 'sound/vox_fem/deeoo.ogg', "defense" = 'sound/vox_fem/defense.ogg', "degrees" = 'sound/vox_fem/degrees.ogg', + "delaminating" = 'sound/vox_fem/delaminating.ogg', + "delamination" = 'sound/vox_fem/delamination.ogg', "delta" = 'sound/vox_fem/delta.ogg', "demon" = 'sound/vox_fem/demon.ogg', "denied" = 'sound/vox_fem/denied.ogg', + "deny" = 'sound/vox_fem/deny.ogg', "departures" = 'sound/vox_fem/departures.ogg', "deploy" = 'sound/vox_fem/deploy.ogg', "deployed" = 'sound/vox_fem/deployed.ogg', @@ -263,7 +328,9 @@ GLOBAL_LIST_INIT(vox_sounds, list( "destroyed" = 'sound/vox_fem/destroyed.ogg', "destruction" = 'sound/vox_fem/destruction.ogg', "detain" = 'sound/vox_fem/detain.ogg', + "detect" = 'sound/vox_fem/detect.ogg', "detected" = 'sound/vox_fem/detected.ogg', + "detecting" = 'sound/vox_fem/detecting.ogg', "detective" = 'sound/vox_fem/detective.ogg', "detonation" = 'sound/vox_fem/detonation.ogg', "device" = 'sound/vox_fem/device.ogg', @@ -271,8 +338,10 @@ GLOBAL_LIST_INIT(vox_sounds, list( "did" = 'sound/vox_fem/did.ogg', "die" = 'sound/vox_fem/die.ogg', "died" = 'sound/vox_fem/died.ogg', + "different" = 'sound/vox_fem/different.ogg', "dimensional" = 'sound/vox_fem/dimensional.ogg', "dioxide" = 'sound/vox_fem/dioxide.ogg', + "direct" = 'sound/vox_fem/direct.ogg', "director" = 'sound/vox_fem/director.ogg', "dirt" = 'sound/vox_fem/dirt.ogg', "disabled" = 'sound/vox_fem/disabled.ogg', @@ -286,31 +355,47 @@ GLOBAL_LIST_INIT(vox_sounds, list( "do" = 'sound/vox_fem/do.ogg', "doctor" = 'sound/vox_fem/doctor.ogg', "dog" = 'sound/vox_fem/dog.ogg', + "dont" = 'sound/vox_fem/dont.ogg', "doomsday" = 'sound/vox_fem/doomsday.ogg', "doop" = 'sound/vox_fem/doop.ogg', "door" = 'sound/vox_fem/door.ogg', "dormitory" = 'sound/vox_fem/dormitory.ogg', "dot" = 'sound/vox_fem/dot.ogg', + "double" = 'sound/vox_fem/double.ogg', "down" = 'sound/vox_fem/down.ogg', + "dress" = 'sound/vox_fem/dress.ogg', + "dressed" = 'sound/vox_fem/dressed.ogg', + "dressing" = 'sound/vox_fem/dressing.ogg', "drone" = 'sound/vox_fem/drone.ogg', "dual" = 'sound/vox_fem/dual.ogg', "duct" = 'sound/vox_fem/duct.ogg', "e" = 'sound/vox_fem/e.ogg', + "easily" = 'sound/vox_fem/easily.ogg', "east" = 'sound/vox_fem/east.ogg', + "eat" = 'sound/vox_fem/eat.ogg', + "eaten" = 'sound/vox_fem/eaten.ogg', "echo" = 'sound/vox_fem/echo.ogg', "ed" = 'sound/vox_fem/ed.ogg', + "education" = 'sound/vox_fem/education.ogg', "effect" = 'sound/vox_fem/effect.ogg', + "effects" = 'sound/vox_fem/effects.ogg', "egress" = 'sound/vox_fem/egress.ogg', "eight" = 'sound/vox_fem/eight.ogg', "eighteen" = 'sound/vox_fem/eighteen.ogg', "eighty" = 'sound/vox_fem/eighty.ogg', "electric" = 'sound/vox_fem/electric.ogg', + "electrical" = 'sound/vox_fem/electrical.ogg', "electromagnetic" = 'sound/vox_fem/electromagnetic.ogg', "elevator" = 'sound/vox_fem/elevator.ogg', "eleven" = 'sound/vox_fem/eleven.ogg', "eliminate" = 'sound/vox_fem/eliminate.ogg', "emergency" = 'sound/vox_fem/emergency.ogg', + "emitted" = 'sound/vox_fem/emitted.ogg', + "emitter" = 'sound/vox_fem/emitter.ogg', + "emitting" = 'sound/vox_fem/emitting.ogg', "enabled" = 'sound/vox_fem/enabled.ogg', + "end" = 'sound/vox_fem/end.ogg', + "ends" = 'sound/vox_fem/ends.ogg', "energy" = 'sound/vox_fem/energy.ogg', "engage" = 'sound/vox_fem/engage.ogg', "engaged" = 'sound/vox_fem/engaged.ogg', @@ -318,6 +403,7 @@ GLOBAL_LIST_INIT(vox_sounds, list( "engineer" = 'sound/vox_fem/engineer.ogg', "engineering" = 'sound/vox_fem/engineering.ogg', "enormous" = 'sound/vox_fem/enormous.ogg', + "enough" = 'sound/vox_fem/enough.ogg', "enter" = 'sound/vox_fem/enter.ogg', "entity" = 'sound/vox_fem/entity.ogg', "entry" = 'sound/vox_fem/entry.ogg', @@ -329,7 +415,11 @@ GLOBAL_LIST_INIT(vox_sounds, list( "ethereal" = 'sound/vox_fem/ethereal.ogg', "eva" = 'sound/vox_fem/eva.ogg', "evacuate" = 'sound/vox_fem/evacuate.ogg', + "even" = 'sound/vox_fem/even.ogg', "ever" = 'sound/vox_fem/ever.ogg', + "every" = 'sound/vox_fem/every.ogg', + "everybody" = 'sound/vox_fem/everybody.ogg', + "everyone" = 'sound/vox_fem/everyone.ogg', "exchange" = 'sound/vox_fem/exchange.ogg', "execute" = 'sound/vox_fem/execute.ogg', "exit" = 'sound/vox_fem/exit.ogg', @@ -337,12 +427,16 @@ GLOBAL_LIST_INIT(vox_sounds, list( "experiment" = 'sound/vox_fem/experiment.ogg', "experimental" = 'sound/vox_fem/experimental.ogg', "explode" = 'sound/vox_fem/explode.ogg', + "exploded" = 'sound/vox_fem/exploded.ogg', + "exploding" = 'sound/vox_fem/exploding.ogg', "explosion" = 'sound/vox_fem/explosion.ogg', "explosive" = 'sound/vox_fem/explosive.ogg', "exposure" = 'sound/vox_fem/exposure.ogg', "exterminate" = 'sound/vox_fem/exterminate.ogg', + "external" = 'sound/vox_fem/external.ogg', "extinguish" = 'sound/vox_fem/extinguish.ogg', "extinguisher" = 'sound/vox_fem/extinguisher.ogg', + "extra" = 'sound/vox_fem/extra.ogg', "extreme" = 'sound/vox_fem/extreme.ogg', "f" = 'sound/vox_fem/f.ogg', "facility" = 'sound/vox_fem/facility.ogg', @@ -354,12 +448,19 @@ GLOBAL_LIST_INIT(vox_sounds, list( "farthest" = 'sound/vox_fem/farthest.ogg', "fast" = 'sound/vox_fem/fast.ogg', "fauna" = 'sound/vox_fem/fauna.ogg', + "feature" = 'sound/vox_fem/feature.ogg', + "featured" = 'sound/vox_fem/featured.ogg', + "features" = 'sound/vox_fem/features.ogg', + "featuring" = 'sound/vox_fem/featuring.ogg', "feet" = 'sound/vox_fem/feet.ogg', "felinid" = 'sound/vox_fem/felinid.ogg', + "few" = 'sound/vox_fem/few.ogg', "field" = 'sound/vox_fem/field.ogg', "fifteen" = 'sound/vox_fem/fifteen.ogg', "fifth" = 'sound/vox_fem/fifth.ogg', "fifty" = 'sound/vox_fem/fifty.ogg', + "filter" = 'sound/vox_fem/filter.ogg', + "filters" = 'sound/vox_fem/filters.ogg', "final" = 'sound/vox_fem/final.ogg', "fine" = 'sound/vox_fem/fine.ogg', "fire" = 'sound/vox_fem/fire.ogg', @@ -370,6 +471,7 @@ GLOBAL_LIST_INIT(vox_sounds, list( "floor" = 'sound/vox_fem/floor.ogg', "flyman" = 'sound/vox_fem/flyman.ogg', "fool" = 'sound/vox_fem/fool.ogg', + "foolish" = 'sound/vox_fem/foolish.ogg', "for" = 'sound/vox_fem/for.ogg', "forbidden" = 'sound/vox_fem/forbidden.ogg', "force" = 'sound/vox_fem/force.ogg', @@ -389,6 +491,7 @@ GLOBAL_LIST_INIT(vox_sounds, list( "freeze" = 'sound/vox_fem/freeze.ogg', "freezer" = 'sound/vox_fem/freezer.ogg', "freezing" = 'sound/vox_fem/freezing.ogg', + "freon" = 'sound/vox_fem/freon.ogg', "from" = 'sound/vox_fem/from.ogg', "front" = 'sound/vox_fem/front.ogg', "froze" = 'sound/vox_fem/froze.ogg', @@ -399,9 +502,19 @@ GLOBAL_LIST_INIT(vox_sounds, list( "fuel" = 'sound/vox_fem/fuel.ogg', "g" = 'sound/vox_fem/g.ogg', "gas" = 'sound/vox_fem/gas.ogg', + "gases" = 'sound/vox_fem/gases.ogg', + "gave" = 'sound/vox_fem/gave.ogg', + "gear" = 'sound/vox_fem/gear.ogg', + "geared" = 'sound/vox_fem/geared.ogg', + "gearing" = 'sound/vox_fem/gearing.ogg', + "generate" = 'sound/vox_fem/generate.ogg', + "generated" = 'sound/vox_fem/generated.ogg', + "generating" = 'sound/vox_fem/generating.ogg', "generator" = 'sound/vox_fem/generator.ogg', "geneticist" = 'sound/vox_fem/geneticist.ogg', "get" = 'sound/vox_fem/get.ogg', + "give" = 'sound/vox_fem/give.ogg', + "given" = 'sound/vox_fem/given.ogg', "glory" = 'sound/vox_fem/glory.ogg', "go" = 'sound/vox_fem/go.ogg', "god" = 'sound/vox_fem/god.ogg', @@ -428,17 +541,29 @@ GLOBAL_LIST_INIT(vox_sounds, list( "had" = 'sound/vox_fem/had.ogg', "hall" = 'sound/vox_fem/hall.ogg', "hallway" = 'sound/vox_fem/hallway.ogg', + "halon" = 'sound/vox_fem/halon.ogg', "handling" = 'sound/vox_fem/handling.ogg', "hangar" = 'sound/vox_fem/hangar.ogg', + "hard" = 'sound/vox_fem/hard.ogg', + "hardly" = 'sound/vox_fem/hardly.ogg', "harm" = 'sound/vox_fem/harm.ogg', "harmful" = 'sound/vox_fem/harmful.ogg', + "harness" = 'sound/vox_fem/harness.ogg', + "harnessed" = 'sound/vox_fem/harnessed.ogg', + "harnessing" = 'sound/vox_fem/harnessing.ogg', "has" = 'sound/vox_fem/has.ogg', "have" = 'sound/vox_fem/have.ogg', "hazard" = 'sound/vox_fem/hazard.ogg', "he" = 'sound/vox_fem/he.ogg', "head" = 'sound/vox_fem/head.ogg', + "heal" = 'sound/vox_fem/heal.ogg', + "healed" = 'sound/vox_fem/healed.ogg', + "healing" = 'sound/vox_fem/healing.ogg', + "healium" = 'sound/vox_fem/healium.ogg', "health" = 'sound/vox_fem/health.ogg', "heat" = 'sound/vox_fem/heat.ogg', + "heated" = 'sound/vox_fem/heated.ogg', + "heating" = 'sound/vox_fem/heating.ogg', "helicopter" = 'sound/vox_fem/helicopter.ogg', "helium" = 'sound/vox_fem/helium.ogg', "hello" = 'sound/vox_fem/hello.ogg', @@ -468,7 +593,9 @@ GLOBAL_LIST_INIT(vox_sounds, list( "hunger" = 'sound/vox_fem/hunger.ogg', "hurt" = 'sound/vox_fem/hurt.ogg', "hydro" = 'sound/vox_fem/hydro.ogg', + "hydrogen" = 'sound/vox_fem/hydrogen.ogg', "hydroponics" = 'sound/vox_fem/hydroponics.ogg', + "hyper-noblium" = 'sound/vox_fem/hyper-noblium.ogg', "i" = 'sound/vox_fem/i.ogg', "ian" = 'sound/vox_fem/ian.ogg', "idiot" = 'sound/vox_fem/idiot.ogg', @@ -482,26 +609,33 @@ GLOBAL_LIST_INIT(vox_sounds, list( "in" = 'sound/vox_fem/in.ogg', "inches" = 'sound/vox_fem/inches.ogg', "india" = 'sound/vox_fem/india.ogg', + "inert" = 'sound/vox_fem/inert.ogg', "ing" = 'sound/vox_fem/ing.ogg', "inoperative" = 'sound/vox_fem/inoperative.ogg', "inside" = 'sound/vox_fem/inside.ogg', "inspection" = 'sound/vox_fem/inspection.ogg', "inspector" = 'sound/vox_fem/inspector.ogg', "interchange" = 'sound/vox_fem/interchange.ogg', + "internal" = 'sound/vox_fem/internal.ogg', "internals" = 'sound/vox_fem/internals.ogg', "intruder" = 'sound/vox_fem/intruder.ogg', "invalid" = 'sound/vox_fem/invalid.ogg', "invalidate" = 'sound/vox_fem/invalidate.ogg', "invasion" = 'sound/vox_fem/invasion.ogg', + "irradiate" = 'sound/vox_fem/irradiate.ogg', "is" = 'sound/vox_fem/is.ogg', "it" = 'sound/vox_fem/it.ogg', + "its" = 'sound/vox_fem/its.ogg', "j" = 'sound/vox_fem/j.ogg', "janitor" = 'sound/vox_fem/janitor.ogg', "jesus" = 'sound/vox_fem/jesus.ogg', + "job" = 'sound/vox_fem/job.ogg', + "jobs" = 'sound/vox_fem/jobs.ogg', "johnson" = 'sound/vox_fem/johnson.ogg', "jolly" = 'sound/vox_fem/jolly.ogg', "juliet" = 'sound/vox_fem/juliet.ogg', "k" = 'sound/vox_fem/k.ogg', + "kelvin" = 'sound/vox_fem/kelvin.ogg', "key" = 'sound/vox_fem/key.ogg', "kidnapped" = 'sound/vox_fem/kidnapped.ogg', "kidnapping" = 'sound/vox_fem/kidnapping.ogg', @@ -536,7 +670,10 @@ GLOBAL_LIST_INIT(vox_sounds, list( "light" = 'sound/vox_fem/light.ogg', "lightbulb" = 'sound/vox_fem/lightbulb.ogg', "lima" = 'sound/vox_fem/lima.ogg', + "limit" = 'sound/vox_fem/limit.ogg', + "limited" = 'sound/vox_fem/limited.ogg', "liquid" = 'sound/vox_fem/liquid.ogg', + "list" = 'sound/vox_fem/list.ogg', "live" = 'sound/vox_fem/live.ogg', "live2" = 'sound/vox_fem/live2.ogg', "lizard" = 'sound/vox_fem/lizard.ogg', @@ -559,12 +696,14 @@ GLOBAL_LIST_INIT(vox_sounds, list( "lusty" = 'sound/vox_fem/lusty.ogg', "m" = 'sound/vox_fem/m.ogg', "machine" = 'sound/vox_fem/machine.ogg', + "made" = 'sound/vox_fem/made.ogg', "magic" = 'sound/vox_fem/magic.ogg', "magnetic" = 'sound/vox_fem/magnetic.ogg', "main" = 'sound/vox_fem/main.ogg', "maintainer" = 'sound/vox_fem/maintainer.ogg', "maintenance" = 'sound/vox_fem/maintenance.ogg', "major" = 'sound/vox_fem/major.ogg', + "making" = 'sound/vox_fem/making.ogg', "malfunction" = 'sound/vox_fem/malfunction.ogg', "man" = 'sound/vox_fem/man.ogg', "many" = 'sound/vox_fem/many.ogg', @@ -573,15 +712,21 @@ GLOBAL_LIST_INIT(vox_sounds, list( "maximum" = 'sound/vox_fem/maximum.ogg', "may" = 'sound/vox_fem/may.ogg', "me" = 'sound/vox_fem/me.ogg', + "mean" = 'sound/vox_fem/mean.ogg', + "means" = 'sound/vox_fem/means.ogg', "meat" = 'sound/vox_fem/meat.ogg', "medbay" = 'sound/vox_fem/medbay.ogg', "medical" = 'sound/vox_fem/medical.ogg', + "medium" = 'sound/vox_fem/medium.ogg', "megafauna" = 'sound/vox_fem/megafauna.ogg', "men" = 'sound/vox_fem/men.ogg', "mercy" = 'sound/vox_fem/mercy.ogg', "mesa" = 'sound/vox_fem/mesa.ogg', + "meson" = 'sound/vox_fem/meson.ogg', "message" = 'sound/vox_fem/message.ogg', "meter" = 'sound/vox_fem/meter.ogg', + "method" = 'sound/vox_fem/method.ogg', + "miasma" = 'sound/vox_fem/miasma.ogg', "micro" = 'sound/vox_fem/micro.ogg', "middle" = 'sound/vox_fem/middle.ogg', "mike" = 'sound/vox_fem/mike.ogg', @@ -594,17 +739,22 @@ GLOBAL_LIST_INIT(vox_sounds, list( "miner" = 'sound/vox_fem/miner.ogg', "minimum" = 'sound/vox_fem/minimum.ogg', "minor" = 'sound/vox_fem/minor.ogg', + "minute" = 'sound/vox_fem/minute.ogg', "minutes" = 'sound/vox_fem/minutes.ogg', "mister" = 'sound/vox_fem/mister.ogg', + "mixture" = 'sound/vox_fem/mixture.ogg', "mode" = 'sound/vox_fem/mode.ogg', "modification" = 'sound/vox_fem/modification.ogg', "money" = 'sound/vox_fem/money.ogg', "monkey" = 'sound/vox_fem/monkey.ogg', + "most" = 'sound/vox_fem/most.ogg', "moth" = 'sound/vox_fem/moth.ogg', "mothperson" = 'sound/vox_fem/mothperson.ogg', "motor" = 'sound/vox_fem/motor.ogg', "motorpool" = 'sound/vox_fem/motorpool.ogg', "move" = 'sound/vox_fem/move.ogg', + "moved" = 'sound/vox_fem/moved.ogg', + "moving" = 'sound/vox_fem/moving.ogg', "multitude" = 'sound/vox_fem/multitude.ogg', "murder" = 'sound/vox_fem/murder.ogg', "murderer" = 'sound/vox_fem/murderer.ogg', @@ -613,7 +763,9 @@ GLOBAL_LIST_INIT(vox_sounds, list( "mythic" = 'sound/vox_fem/mythic.ogg', "n" = 'sound/vox_fem/n.ogg', "nanotrasen" = 'sound/vox_fem/nanotrasen.ogg', + "near" = 'sound/vox_fem/near.ogg', "nearest" = 'sound/vox_fem/nearest.ogg', + "nearly" = 'sound/vox_fem/nearly.ogg', "need" = 'sound/vox_fem/need.ogg', "never" = 'sound/vox_fem/never.ogg', "nice" = 'sound/vox_fem/nice.ogg', @@ -624,16 +776,21 @@ GLOBAL_LIST_INIT(vox_sounds, list( "nitrogen" = 'sound/vox_fem/nitrogen.ogg', "no" = 'sound/vox_fem/no.ogg', "nominal" = 'sound/vox_fem/nominal.ogg', + "none" = 'sound/vox_fem/none.ogg', + "normal" = 'sound/vox_fem/normal.ogg', + "normally" = 'sound/vox_fem/normally.ogg', "north" = 'sound/vox_fem/north.ogg', "northeast" = 'sound/vox_fem/northeast.ogg', "northwest" = 'sound/vox_fem/northwest.ogg', "not" = 'sound/vox_fem/not.ogg', + "notably" = 'sound/vox_fem/notably.ogg', "november" = 'sound/vox_fem/november.ogg', "now" = 'sound/vox_fem/now.ogg', "nuclear" = 'sound/vox_fem/nuclear.ogg', "nuke" = 'sound/vox_fem/nuke.ogg', "number" = 'sound/vox_fem/number.ogg', "o" = 'sound/vox_fem/o.ogg', + "object" = 'sound/vox_fem/object.ogg', "objective" = 'sound/vox_fem/objective.ogg', "obliterate" = 'sound/vox_fem/obliterate.ogg', "obliterated" = 'sound/vox_fem/obliterated.ogg', @@ -660,13 +817,17 @@ GLOBAL_LIST_INIT(vox_sounds, list( "option" = 'sound/vox_fem/option.ogg', "or" = 'sound/vox_fem/or.ogg', "order" = 'sound/vox_fem/order.ogg', + "ordered" = 'sound/vox_fem/ordered.ogg', + "ordering" = 'sound/vox_fem/ordering.ogg', "organic" = 'sound/vox_fem/organic.ogg', "oscar" = 'sound/vox_fem/oscar.ogg', "out" = 'sound/vox_fem/out.ogg', + "output" = 'sound/vox_fem/output.ogg', "outside" = 'sound/vox_fem/outside.ogg', "over" = 'sound/vox_fem/over.ogg', "overload" = 'sound/vox_fem/overload.ogg', "override" = 'sound/vox_fem/override.ogg', + "own" = 'sound/vox_fem/own.ogg', "oxygen" = 'sound/vox_fem/oxygen.ogg', "p" = 'sound/vox_fem/p.ogg', "pacification" = 'sound/vox_fem/pacification.ogg', @@ -676,6 +837,7 @@ GLOBAL_LIST_INIT(vox_sounds, list( "panel" = 'sound/vox_fem/panel.ogg', "panting" = 'sound/vox_fem/panting.ogg', "pathetic" = 'sound/vox_fem/pathetic.ogg', + "pda" = 'sound/vox_fem/pda.ogg', "percent" = 'sound/vox_fem/percent.ogg', "perfect" = 'sound/vox_fem/perfect.ogg', "perhaps" = 'sound/vox_fem/perhaps.ogg', @@ -690,28 +852,46 @@ GLOBAL_LIST_INIT(vox_sounds, list( "plasma" = 'sound/vox_fem/plasma.ogg', "plasmaman" = 'sound/vox_fem/plasmaman.ogg', "platform" = 'sound/vox_fem/platform.ogg', + "plating" = 'sound/vox_fem/plating.ogg', "plausible" = 'sound/vox_fem/plausible.ogg', "please" = 'sound/vox_fem/please.ogg', + "pluoxium" = 'sound/vox_fem/pluoxium.ogg', "point" = 'sound/vox_fem/point.ogg', "port" = 'sound/vox_fem/port.ogg', "portal" = 'sound/vox_fem/portal.ogg', + "portion" = 'sound/vox_fem/portion.ogg', "possible" = 'sound/vox_fem/possible.ogg', "power" = 'sound/vox_fem/power.ogg', + "powered" = 'sound/vox_fem/powered.ogg', + "powering" = 'sound/vox_fem/powering.ogg', + "premature" = 'sound/vox_fem/premature.ogg', + "prematurely" = 'sound/vox_fem/prematurely.ogg', "presence" = 'sound/vox_fem/presence.ogg', "present" = 'sound/vox_fem/present.ogg', "presents" = 'sound/vox_fem/presents.ogg', "press" = 'sound/vox_fem/press.ogg', "pressure" = 'sound/vox_fem/pressure.ogg', "primary" = 'sound/vox_fem/primary.ogg', + "priority" = 'sound/vox_fem/priority.ogg', "prison" = 'sound/vox_fem/prison.ogg', "prisoner" = 'sound/vox_fem/prisoner.ogg', "proceed" = 'sound/vox_fem/proceed.ogg', "processing" = 'sound/vox_fem/processing.ogg', "progress" = 'sound/vox_fem/progress.ogg', + "projectile" = 'sound/vox_fem/projectile.ogg', "proper" = 'sound/vox_fem/proper.ogg', "propulsion" = 'sound/vox_fem/propulsion.ogg', "prosecute" = 'sound/vox_fem/prosecute.ogg', + "protect" = 'sound/vox_fem/protect.ogg', + "protected" = 'sound/vox_fem/protected.ogg', + "protection" = 'sound/vox_fem/protection.ogg', "protective" = 'sound/vox_fem/protective.ogg', + "proto-nitrate" = 'sound/vox_fem/proto-nitrate.ogg', + "pull" = 'sound/vox_fem/pull.ogg', + "pulled" = 'sound/vox_fem/pulled.ogg', + "pulling" = 'sound/vox_fem/pulling.ogg', + "pump" = 'sound/vox_fem/pump.ogg', + "pumps" = 'sound/vox_fem/pumps.ogg', "push" = 'sound/vox_fem/push.ogg', "put" = 'sound/vox_fem/put.ogg', "q" = 'sound/vox_fem/q.ogg', @@ -737,9 +917,14 @@ GLOBAL_LIST_INIT(vox_sounds, list( "reactor" = 'sound/vox_fem/reactor.ogg', "red" = 'sound/vox_fem/red.ogg', "relay" = 'sound/vox_fem/relay.ogg', + "release" = 'sound/vox_fem/release.ogg', "released" = 'sound/vox_fem/released.ogg', + "releasing" = 'sound/vox_fem/releasing.ogg', "remaining" = 'sound/vox_fem/remaining.ogg', "removal" = 'sound/vox_fem/removal.ogg', + "remove" = 'sound/vox_fem/remove.ogg', + "removed" = 'sound/vox_fem/removed.ogg', + "removing" = 'sound/vox_fem/removing.ogg', "renegade" = 'sound/vox_fem/renegade.ogg', "repair" = 'sound/vox_fem/repair.ogg', "report" = 'sound/vox_fem/report.ogg', @@ -752,6 +937,9 @@ GLOBAL_LIST_INIT(vox_sounds, list( "research" = 'sound/vox_fem/research.ogg', "resevoir" = 'sound/vox_fem/resevoir.ogg', "resistance" = 'sound/vox_fem/resistance.ogg', + "resistant" = 'sound/vox_fem/resistant.ogg', + "resisting" = 'sound/vox_fem/resisting.ogg', + "resonance" = 'sound/vox_fem/resonance.ogg', "rest" = 'sound/vox_fem/rest.ogg', "restoration" = 'sound/vox_fem/restoration.ogg', "revolution" = 'sound/vox_fem/revolution.ogg', @@ -770,18 +958,28 @@ GLOBAL_LIST_INIT(vox_sounds, list( "runtime" = 'sound/vox_fem/runtime.ogg', "s" = 'sound/vox_fem/s.ogg', "sabotage" = 'sound/vox_fem/sabotage.ogg', + "sabotaged" = 'sound/vox_fem/sabotaged.ogg', + "sabotaging" = 'sound/vox_fem/sabotaging.ogg', "safe" = 'sound/vox_fem/safe.ogg', "safety" = 'sound/vox_fem/safety.ogg', "sairhorn" = 'sound/vox_fem/sairhorn.ogg', + "same" = 'sound/vox_fem/same.ogg', "sarah" = 'sound/vox_fem/sarah.ogg', "sargeant" = 'sound/vox_fem/sargeant.ogg', "satellite" = 'sound/vox_fem/satellite.ogg', "save" = 'sound/vox_fem/save.ogg', + "saw" = 'sound/vox_fem/saw.ogg', + "scan" = 'sound/vox_fem/scan.ogg', + "scanned" = 'sound/vox_fem/scanned.ogg', + "scanner" = 'sound/vox_fem/scanner.ogg', + "scanners" = 'sound/vox_fem/scanners.ogg', + "scanning" = 'sound/vox_fem/scanning.ogg', "scensor" = 'sound/vox_fem/scensor.ogg', "science" = 'sound/vox_fem/science.ogg', "scientist" = 'sound/vox_fem/scientist.ogg', "scream" = 'sound/vox_fem/scream.ogg', "screen" = 'sound/vox_fem/screen.ogg', + "screw" = 'sound/vox_fem/screw.ogg', "search" = 'sound/vox_fem/search.ogg', "second" = 'sound/vox_fem/second.ogg', "secondary" = 'sound/vox_fem/secondary.ogg', @@ -791,21 +989,32 @@ GLOBAL_LIST_INIT(vox_sounds, list( "secure" = 'sound/vox_fem/secure.ogg', "secured" = 'sound/vox_fem/secured.ogg', "security" = 'sound/vox_fem/security.ogg', + "seen" = 'sound/vox_fem/seen.ogg', "select" = 'sound/vox_fem/select.ogg', "selected" = 'sound/vox_fem/selected.ogg', "self" = 'sound/vox_fem/self.ogg', "sensors" = 'sound/vox_fem/sensors.ogg', "server" = 'sound/vox_fem/server.ogg', "service" = 'sound/vox_fem/service.ogg', + "set" = 'sound/vox_fem/set.ogg', "seven" = 'sound/vox_fem/seven.ogg', "seventeen" = 'sound/vox_fem/seventeen.ogg', "seventy" = 'sound/vox_fem/seventy.ogg', + "sever" = 'sound/vox_fem/sever.ogg', "severe" = 'sound/vox_fem/severe.ogg', + "severed" = 'sound/vox_fem/severed.ogg', + "severing" = 'sound/vox_fem/severing.ogg', "sewage" = 'sound/vox_fem/sewage.ogg', "sewer" = 'sound/vox_fem/sewer.ogg', "shaft" = 'sound/vox_fem/shaft.ogg', + "shame" = 'sound/vox_fem/shame.ogg', + "shameful" = 'sound/vox_fem/shameful.ogg', + "shameless" = 'sound/vox_fem/shameless.ogg', + "shard" = 'sound/vox_fem/shard.ogg', "she" = 'sound/vox_fem/she.ogg', "shield" = 'sound/vox_fem/shield.ogg', + "shift" = 'sound/vox_fem/shift.ogg', + "shifts" = 'sound/vox_fem/shifts.ogg', "shipment" = 'sound/vox_fem/shipment.ogg', "shirt" = 'sound/vox_fem/shirt.ogg', "shit" = 'sound/vox_fem/shit.ogg', @@ -820,11 +1029,15 @@ GLOBAL_LIST_INIT(vox_sounds, list( "shuttle" = 'sound/vox_fem/shuttle.ogg', "sick" = 'sound/vox_fem/sick.ogg', "side" = 'sound/vox_fem/side.ogg', + "sides" = 'sound/vox_fem/sides.ogg', "sierra" = 'sound/vox_fem/sierra.ogg', "sight" = 'sound/vox_fem/sight.ogg', "silicon" = 'sound/vox_fem/silicon.ogg', "silo" = 'sound/vox_fem/silo.ogg', + "single" = 'sound/vox_fem/single.ogg', "singularity" = 'sound/vox_fem/singularity.ogg', + "siphon" = 'sound/vox_fem/siphon.ogg', + "siphoning" = 'sound/vox_fem/siphoning.ogg', "six" = 'sound/vox_fem/six.ogg', "sixteen" = 'sound/vox_fem/sixteen.ogg', "sixty" = 'sound/vox_fem/sixty.ogg', @@ -837,6 +1050,7 @@ GLOBAL_LIST_INIT(vox_sounds, list( "sm" = 'sound/vox_fem/sm.ogg', "small" = 'sound/vox_fem/small.ogg', "sockmuncher" = 'sound/vox_fem/sockmuncher.ogg', + "soft" = 'sound/vox_fem/soft.ogg', "solar" = 'sound/vox_fem/solar.ogg', "solars" = 'sound/vox_fem/solars.ogg', "soldier" = 'sound/vox_fem/soldier.ogg', @@ -845,16 +1059,23 @@ GLOBAL_LIST_INIT(vox_sounds, list( "something" = 'sound/vox_fem/something.ogg', "son" = 'sound/vox_fem/son.ogg', "sorry" = 'sound/vox_fem/sorry.ogg', + "source" = 'sound/vox_fem/source.ogg', "south" = 'sound/vox_fem/south.ogg', "southeast" = 'sound/vox_fem/southeast.ogg', "southwest" = 'sound/vox_fem/southwest.ogg', "space" = 'sound/vox_fem/space.ogg', + "special" = 'sound/vox_fem/special.ogg', + "spew" = 'sound/vox_fem/spew.ogg', "squad" = 'sound/vox_fem/squad.ogg', "square" = 'sound/vox_fem/square.ogg', "ss13" = 'sound/vox_fem/ss13.ogg', "stairway" = 'sound/vox_fem/stairway.ogg', "starboard" = 'sound/vox_fem/starboard.ogg', + "start" = 'sound/vox_fem/start.ogg', + "starts" = 'sound/vox_fem/starts.ogg', "station" = 'sound/vox_fem/station.ogg', + "stations" = 'sound/vox_fem/stations.ogg', + "stationwide" = 'sound/vox_fem/stationwide.ogg', "status" = 'sound/vox_fem/status.ogg', "stay" = 'sound/vox_fem/stay.ogg', "sterile" = 'sound/vox_fem/sterile.ogg', @@ -865,9 +1086,12 @@ GLOBAL_LIST_INIT(vox_sounds, list( "stuck" = 'sound/vox_fem/stuck.ogg', "sub" = 'sound/vox_fem/sub.ogg', "subsurface" = 'sound/vox_fem/subsurface.ogg', + "such" = 'sound/vox_fem/such.ogg', "sudden" = 'sound/vox_fem/sudden.ogg', "suffer" = 'sound/vox_fem/suffer.ogg', "suit" = 'sound/vox_fem/suit.ogg', + "suited" = 'sound/vox_fem/suited.ogg', + "super" = 'sound/vox_fem/super.ogg', "superconducting" = 'sound/vox_fem/superconducting.ogg', "supercooled" = 'sound/vox_fem/supercooled.ogg', "supermatter" = 'sound/vox_fem/supermatter.ogg', @@ -904,6 +1128,7 @@ GLOBAL_LIST_INIT(vox_sounds, list( "terminate" = 'sound/vox_fem/terminate.ogg', "terminated" = 'sound/vox_fem/terminated.ogg', "termination" = 'sound/vox_fem/termination.ogg', + "tesla" = 'sound/vox_fem/tesla.ogg', "test" = 'sound/vox_fem/test.ogg', "text" = 'sound/vox_fem/text.ogg', "thank" = 'sound/vox_fem/thank.ogg', @@ -924,23 +1149,33 @@ GLOBAL_LIST_INIT(vox_sounds, list( "threat" = 'sound/vox_fem/threat.ogg', "three" = 'sound/vox_fem/three.ogg', "through" = 'sound/vox_fem/through.ogg', + "tick" = 'sound/vox_fem/tick.ogg', "tide" = 'sound/vox_fem/tide.ogg', + "tile" = 'sound/vox_fem/tile.ogg', "time" = 'sound/vox_fem/time.ogg', "tiny" = 'sound/vox_fem/tiny.ogg', "to" = 'sound/vox_fem/to.ogg', "top" = 'sound/vox_fem/top.ogg', "topside" = 'sound/vox_fem/topside.ogg', "touch" = 'sound/vox_fem/touch.ogg', + "touched" = 'sound/vox_fem/touched.ogg', + "touching" = 'sound/vox_fem/touching.ogg', "towards" = 'sound/vox_fem/towards.ogg', "toxins" = 'sound/vox_fem/toxins.ogg', "track" = 'sound/vox_fem/track.ogg', "train" = 'sound/vox_fem/train.ogg', "traitor" = 'sound/vox_fem/traitor.ogg', "transportation" = 'sound/vox_fem/transportation.ogg', + "trigger" = 'sound/vox_fem/trigger.ogg', + "triggered" = 'sound/vox_fem/triggered.ogg', + "triggering" = 'sound/vox_fem/triggering.ogg', + "triple" = 'sound/vox_fem/triple.ogg', + "tritium" = 'sound/vox_fem/tritium.ogg', "truck" = 'sound/vox_fem/truck.ogg', "true" = 'sound/vox_fem/true.ogg', "tunnel" = 'sound/vox_fem/tunnel.ogg', "turn" = 'sound/vox_fem/turn.ogg', + "turned" = 'sound/vox_fem/turned.ogg', "turret" = 'sound/vox_fem/turret.ogg', "twelve" = 'sound/vox_fem/twelve.ogg', "twenty" = 'sound/vox_fem/twenty.ogg', @@ -952,10 +1187,13 @@ GLOBAL_LIST_INIT(vox_sounds, list( "unauthorized" = 'sound/vox_fem/unauthorized.ogg', "under" = 'sound/vox_fem/under.ogg', "uniform" = 'sound/vox_fem/uniform.ogg', + "unique" = 'sound/vox_fem/unique.ogg', "unknown" = 'sound/vox_fem/unknown.ogg', "unlocked" = 'sound/vox_fem/unlocked.ogg', "unsafe" = 'sound/vox_fem/unsafe.ogg', "until" = 'sound/vox_fem/until.ogg', + "unwrench" = 'sound/vox_fem/unwrench.ogg', + "unwrenching" = 'sound/vox_fem/unwrenching.ogg', "up" = 'sound/vox_fem/up.ogg', "update" = 'sound/vox_fem/update.ogg', "updated" = 'sound/vox_fem/updated.ogg', @@ -967,6 +1205,8 @@ GLOBAL_LIST_INIT(vox_sounds, list( "usa" = 'sound/vox_fem/usa.ogg', "use" = 'sound/vox_fem/use.ogg', "used" = 'sound/vox_fem/used.ogg', + "useful" = 'sound/vox_fem/useful.ogg', + "useless" = 'sound/vox_fem/useless.ogg', "user" = 'sound/vox_fem/user.ogg', "v" = 'sound/vox_fem/v.ogg', "vacate" = 'sound/vox_fem/vacate.ogg', @@ -987,8 +1227,8 @@ GLOBAL_LIST_INIT(vox_sounds, list( "vitals" = 'sound/vox_fem/vitals.ogg', "voltage" = 'sound/vox_fem/voltage.ogg', "vox" = 'sound/vox_fem/vox.ogg', - "vox_login" = 'sound/vox_fem/vox_login.ogg', "voxtest" = 'sound/vox_fem/voxtest.ogg', + "vox_login" = 'sound/vox_fem/vox_login.ogg', "w" = 'sound/vox_fem/w.ogg', "walk" = 'sound/vox_fem/walk.ogg', "wall" = 'sound/vox_fem/wall.ogg', @@ -1002,15 +1242,19 @@ GLOBAL_LIST_INIT(vox_sounds, list( "was" = 'sound/vox_fem/was.ogg', "waste" = 'sound/vox_fem/waste.ogg', "water" = 'sound/vox_fem/water.ogg', + "way" = 'sound/vox_fem/way.ogg', + "ways" = 'sound/vox_fem/ways.ogg', "we" = 'sound/vox_fem/we.ogg', "weak" = 'sound/vox_fem/weak.ogg', "weapon" = 'sound/vox_fem/weapon.ogg', "welcome" = 'sound/vox_fem/welcome.ogg', + "weld" = 'sound/vox_fem/weld.ogg', "west" = 'sound/vox_fem/west.ogg', "wew" = 'sound/vox_fem/wew.ogg', "what" = 'sound/vox_fem/what.ogg', "when" = 'sound/vox_fem/when.ogg', "where" = 'sound/vox_fem/where.ogg', + "which" = 'sound/vox_fem/which.ogg', "while" = 'sound/vox_fem/while.ogg', "whiskey" = 'sound/vox_fem/whiskey.ogg', "white" = 'sound/vox_fem/white.ogg', @@ -1025,7 +1269,15 @@ GLOBAL_LIST_INIT(vox_sounds, list( "wood" = 'sound/vox_fem/wood.ogg', "woody" = 'sound/vox_fem/woody.ogg', "woop" = 'sound/vox_fem/woop.ogg', + "work" = 'sound/vox_fem/work.ogg', + "worked" = 'sound/vox_fem/worked.ogg', + "working" = 'sound/vox_fem/working.ogg', + "works" = 'sound/vox_fem/works.ogg', + "would" = 'sound/vox_fem/would.ogg', + "wouldnt" = 'sound/vox_fem/wouldnt.ogg', "wow" = 'sound/vox_fem/wow.ogg', + "wrench" = 'sound/vox_fem/wrench.ogg', + "wrenching" = 'sound/vox_fem/wrenching.ogg', "x" = 'sound/vox_fem/x.ogg', "xeno" = 'sound/vox_fem/xeno.ogg', "xenobiology" = 'sound/vox_fem/xenobiology.ogg', @@ -1041,6 +1293,8 @@ GLOBAL_LIST_INIT(vox_sounds, list( "your" = 'sound/vox_fem/your.ogg', "yourself" = 'sound/vox_fem/yourself.ogg', "z" = 'sound/vox_fem/z.ogg', + "zap" = 'sound/vox_fem/zap.ogg', + "zauker" = 'sound/vox_fem/zauker.ogg', "zero" = 'sound/vox_fem/zero.ogg', "zombie" = 'sound/vox_fem/zombie.ogg', "zone" = 'sound/vox_fem/zone.ogg', diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index 4fc4bd5d8c15d..1721d6ec2c102 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -53,17 +53,9 @@ var/list/ride_offset_y = list("north" = 4, "south" = 4, "east" = 3, "west" = 3) ///List of skins the borg can be reskinned to, optional var/list/borg_skins - ///Omnitoolbox, holder of certain borg tools. Not all models have one - var/obj/item/cyborg_omnitoolbox/toolbox - ///Path to toolbox, if a model gets one - var/toolbox_path /obj/item/robot_model/Initialize(mapload) . = ..() - - if(toolbox_path) - toolbox = new toolbox_path(src) - for(var/path in basic_modules) var/obj/item/new_module = new path(src) basic_modules += new_module @@ -406,7 +398,6 @@ model_select_icon = "engineer" model_traits = list(TRAIT_NEGATES_GRAVITY) hat_offset = -4 - toolbox_path = /obj/item/cyborg_omnitoolbox/engineering /obj/item/robot_model/janitor name = "Janitor" @@ -687,7 +678,6 @@ /obj/item/reagent_containers/syringe, /obj/item/borg/cyborg_omnitool/medical, /obj/item/borg/cyborg_omnitool/medical, - /obj/item/surgical_drapes/cyborg, /obj/item/blood_filter, /obj/item/extinguisher/mini, /obj/item/emergency_bed/silicon, @@ -705,7 +695,6 @@ model_select_icon = "medical" model_traits = list(TRAIT_PUSHIMMUNE) hat_offset = 3 - toolbox_path = /obj/item/cyborg_omnitoolbox/medical borg_skins = list( "Machinified Doctor" = list(SKIN_ICON_STATE = "medical"), "Qualified Doctor" = list(SKIN_ICON_STATE = "qualified_doctor"), @@ -888,7 +877,6 @@ /obj/item/healthanalyzer, /obj/item/borg/cyborg_omnitool/medical, /obj/item/borg/cyborg_omnitool/medical, - /obj/item/surgical_drapes/cyborg, /obj/item/blood_filter, /obj/item/melee/energy/sword/cyborg/saw, /obj/item/emergency_bed/silicon, @@ -904,7 +892,6 @@ model_select_icon = "malf" model_traits = list(TRAIT_PUSHIMMUNE) hat_offset = 3 - toolbox_path = /obj/item/cyborg_omnitoolbox/medical /obj/item/robot_model/saboteur name = "Syndicate Saboteur" @@ -934,7 +921,6 @@ model_select_icon = "malf" model_traits = list(TRAIT_PUSHIMMUNE, TRAIT_NEGATES_GRAVITY) hat_offset = -4 - toolbox_path = /obj/item/cyborg_omnitoolbox/engineering canDispose = TRUE /obj/item/robot_model/syndicate/kiltborg diff --git a/code/modules/mob/living/silicon/silicon_say.dm b/code/modules/mob/living/silicon/silicon_say.dm index 1468b9c736591..9310211aa0e6d 100644 --- a/code/modules/mob/living/silicon/silicon_say.dm +++ b/code/modules/mob/living/silicon/silicon_say.dm @@ -70,6 +70,9 @@ ) /mob/living/silicon/binarycheck() + var/area/our_area = get_area(src) + if(our_area.area_flags & BINARY_JAMMING) + return FALSE return TRUE /mob/living/silicon/radio(message, list/message_mods = list(), list/spans, language) diff --git a/code/modules/mob_spawn/mob_spawn.dm b/code/modules/mob_spawn/mob_spawn.dm index c9130fb706e1b..3337a15b441c5 100644 --- a/code/modules/mob_spawn/mob_spawn.dm +++ b/code/modules/mob_spawn/mob_spawn.dm @@ -59,26 +59,15 @@ spawned_human.underwear = "Nude" spawned_human.undershirt = "Nude" spawned_human.socks = "Nude" + randomize_human_normie(spawned_human) if(hairstyle) - spawned_human.hairstyle = hairstyle - else - spawned_human.hairstyle = random_hairstyle(spawned_human.gender) + spawned_human.set_hairstyle(hairstyle, update = FALSE) if(facial_hairstyle) - spawned_human.facial_hairstyle = facial_hairstyle - else - spawned_human.facial_hairstyle = random_facial_hairstyle(spawned_human.gender) + spawned_human.set_facial_hairstyle(facial_hairstyle, update = FALSE) if(haircolor) - spawned_human.hair_color = haircolor - else - spawned_human.hair_color = "#[random_color()]" + spawned_human.set_haircolor(haircolor, update = FALSE) if(facial_haircolor) - spawned_human.facial_hair_color = facial_haircolor - else - spawned_human.facial_hair_color = "#[random_color()]" - if(skin_tone) - spawned_human.skin_tone = skin_tone - else - spawned_human.skin_tone = pick(GLOB.skin_tones) + spawned_human.set_facial_haircolor(facial_haircolor, update = FALSE) spawned_human.update_body(is_creating = TRUE) /obj/effect/mob_spawn/proc/name_mob(mob/living/spawned_mob, forced_name) diff --git a/code/modules/mod/mod_link.dm b/code/modules/mod/mod_link.dm index 5733d48f45f6f..ad7addf691b4a 100644 --- a/code/modules/mod/mod_link.dm +++ b/code/modules/mod/mod_link.dm @@ -77,29 +77,34 @@ ) /obj/item/mod/control/multitool_act_secondary(mob/living/user, obj/item/multitool/tool) - if(!multitool_check_buffer(user, tool)) - return + . = NONE + var/tool_frequency = null if(istype(tool.buffer, /datum/mod_link)) var/datum/mod_link/buffer_link = tool.buffer tool_frequency = buffer_link.frequency balloon_alert(user, "frequency set") + . = ITEM_INTERACT_SUCCESS if(!tool_frequency && mod_link.frequency) tool.set_buffer(mod_link) balloon_alert(user, "frequency copied") + . = ITEM_INTERACT_SUCCESS else if(tool_frequency && !mod_link.frequency) mod_link.frequency = tool_frequency + . = ITEM_INTERACT_SUCCESS else if(tool_frequency && mod_link.frequency) var/response = tgui_alert(user, "Would you like to copy or imprint the frequency?", "MODlink Frequency", list("Copy", "Imprint")) if(!user.is_holding(tool)) - return + return ITEM_INTERACT_BLOCKING switch(response) if("Copy") tool.set_buffer(mod_link) balloon_alert(user, "frequency copied") + . = ITEM_INTERACT_SUCCESS if("Imprint") mod_link.frequency = tool_frequency balloon_alert(user, "frequency set") + . = ITEM_INTERACT_SUCCESS /obj/item/mod/control/proc/can_call() return get_charge() && wearer && wearer.stat < DEAD @@ -227,29 +232,34 @@ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN /obj/item/clothing/neck/link_scryer/multitool_act_secondary(mob/living/user, obj/item/multitool/tool) - if(!multitool_check_buffer(user, tool)) - return + . = NONE + var/tool_frequency = null if(istype(tool.buffer, /datum/mod_link)) var/datum/mod_link/buffer_link = tool.buffer tool_frequency = buffer_link.frequency balloon_alert(user, "frequency set") + . = ITEM_INTERACT_SUCCESS if(!tool_frequency && mod_link.frequency) tool.set_buffer(mod_link) balloon_alert(user, "frequency copied") + . = ITEM_INTERACT_SUCCESS else if(tool_frequency && !mod_link.frequency) mod_link.frequency = tool_frequency + . = ITEM_INTERACT_SUCCESS else if(tool_frequency && mod_link.frequency) var/response = tgui_alert(user, "Would you like to copy or imprint the frequency?", "MODlink Frequency", list("Copy", "Imprint")) if(!user.is_holding(tool)) - return + return ITEM_INTERACT_BLOCKING switch(response) if("Copy") tool.set_buffer(mod_link) balloon_alert(user, "frequency copied") + . = ITEM_INTERACT_SUCCESS if("Imprint") mod_link.frequency = tool_frequency balloon_alert(user, "frequency set") + . = ITEM_INTERACT_SUCCESS /obj/item/clothing/neck/link_scryer/worn_overlays(mutable_appearance/standing, isinhands) . = ..() diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm index 5c849f4a530cd..b4e97615a923a 100644 --- a/code/modules/paperwork/ticketmachine.dm +++ b/code/modules/paperwork/ticketmachine.dm @@ -49,13 +49,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/ticket_machine, 32) . += span_notice("The ticket machine shows that ticket #[current_number] is currently being served.") . += span_notice("You can take a ticket out with Left-Click to be number [ticket_number + 1] in queue.") -/obj/machinery/ticket_machine/multitool_act(mob/living/user, obj/item/I) - if(!multitool_check_buffer(user, I)) //make sure it has a data buffer - return - var/obj/item/multitool/M = I +/obj/machinery/ticket_machine/multitool_act(mob/living/user, obj/item/multitool/M) M.set_buffer(src) balloon_alert(user, "saved to multitool buffer") - return TRUE + return ITEM_INTERACT_SUCCESS /obj/machinery/ticket_machine/emag_act(mob/user, obj/item/card/emag/emag_card) //Emag the ticket machine to dispense burning tickets, as well as randomize its number to destroy the HoP's mind. if(obj_flags & EMAGGED) diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.dm b/code/modules/plumbing/plumbers/_plumb_machinery.dm index 2e8eaee9d6dec..1f60a4eefb4cb 100644 --- a/code/modules/plumbing/plumbers/_plumb_machinery.dm +++ b/code/modules/plumbing/plumbers/_plumb_machinery.dm @@ -12,6 +12,7 @@ active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 2.75 resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF interaction_flags_machine = parent_type::interaction_flags_machine | INTERACT_MACHINE_OFFLINE + reagents = /datum/reagents/plumbing ///Plumbing machinery is always gonna need reagents, so we might aswell put it here var/buffer = 50 @@ -25,6 +26,12 @@ AddComponent(/datum/component/simple_rotation) register_context() +/obj/machinery/plumbing/create_reagents(max_vol, flags) + if(!ispath(reagents)) + qdel(reagents) + reagents = new reagents(max_vol, flags) + reagents.my_atom = src + /obj/machinery/plumbing/add_context(atom/source, list/context, obj/item/held_item, mob/user) . = NONE if(isnull(held_item)) @@ -96,58 +103,94 @@ reagents.expose(get_turf(src), TOUCH) //splash on the floor reagents.clear_reagents() -///We can empty beakers in here and everything -/obj/machinery/plumbing/input - name = "input gate" - desc = "Can be manually filled with reagents from containers." - icon_state = "pipe_input" - pass_flags_self = PASSMACHINE | LETPASSTHROW // Small - reagent_flags = TRANSPARENT | REFILLABLE - - -/obj/machinery/plumbing/input/Initialize(mapload, bolt, layer) - . = ..() - AddComponent(/datum/component/plumbing/simple_supply, bolt, layer) - -///We can fill beakers in here and everything. we dont inheret from input because it has nothing that we need -/obj/machinery/plumbing/output - name = "output gate" - desc = "A manual output for plumbing systems, for taking reagents directly into containers." - icon_state = "pipe_output" - pass_flags_self = PASSMACHINE | LETPASSTHROW // Small - reagent_flags = TRANSPARENT | DRAINABLE - -/obj/machinery/plumbing/output/Initialize(mapload, bolt, layer) - . = ..() - AddComponent(/datum/component/plumbing/simple_demand, bolt, layer) +/** + * Specialized reagent container for plumbing. Uses the round robin approach of transferring reagents + * so transfer 5 from 15 water, 15 sugar and 15 plasma becomes 10, 15, 15 instead of 13.3333, 13.3333 13.3333. Good if you hate floating point errors + */ +/datum/reagents/plumbing + +/datum/reagents/plumbing/trans_to( + atom/target, + amount = 1, + multiplier = 1, //unused for plumbing + datum/reagent/target_id, + preserve_data = TRUE, //unused for plumbing + no_react = FALSE, //unused for plumbing we always want reactions + mob/transferred_by, //unused for plumbing logging is not important inside plumbing machines + remove_blacklisted = FALSE, //unused for plumbing, we don't care what reagents are inside us + methods = NONE, //unused for plumbing + show_message = TRUE, //unused for plumbing, used for logging only + ignore_stomach = FALSE //unused for plumbing, reagents flow only between machines & is not injected to mobs at any point in time +) + if(QDELETED(target) || !total_volume) + return FALSE + + if(!IS_FINITE(amount)) + stack_trace("non finite amount passed to trans_to [amount] amount of reagents") + return FALSE + + if(!isnull(target_id) && !ispath(target_id)) + stack_trace("invalid target reagent id [target_id] passed to trans_to") + return FALSE + + var/datum/reagents/target_holder + if(istype(target, /datum/reagents)) + target_holder = target + else + target_holder = target.reagents + + var/cached_amount = amount + + // Prevents small amount problems, as well as zero and below zero amounts. + amount = round(min(amount, total_volume, target_holder.maximum_volume - target_holder.total_volume), CHEMICAL_QUANTISATION_LEVEL) + if(amount <= 0) + return FALSE + + //Set up new reagents to inherit the old ongoing reactions + transfer_reactions(target_holder) + + var/list/cached_reagents = reagent_list + var/list/reagents_to_remove = list() + var/transfer_amount + var/transfered_amount + var/to_transfer = amount + var/total_transfered_amount = 0 + + //first add reagents to target + for(var/datum/reagent/reagent as anything in cached_reagents) + if(!to_transfer) + break + + if(!isnull(target_id)) + if(reagent.type == target_id) + force_stop_reagent_reacting(reagent) + transfer_amount = min(to_transfer, reagent.volume) + else + continue + else + transfer_amount = min(to_transfer, reagent.volume) -/obj/machinery/plumbing/output/tap - name = "drinking tap" - desc = "A manual output for plumbing systems, for taking drinks directly into glasses." - icon_state = "tap_output" + if(reagent.intercept_reagents_transfer(target_holder, cached_amount)) + continue -/obj/machinery/plumbing/tank - name = "chemical tank" - desc = "A massive chemical holding tank." - icon_state = "tank" - buffer = 400 + transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount * multiplier, copy_data(reagent), chem_temp, reagent.purity, reagent.ph, no_react = TRUE, ignore_splitting = reagent.chemical_flags & REAGENT_DONOTSPLIT) //we only handle reaction after every reagent has been transferred. + if(!transfered_amount) + continue + reagents_to_remove += list(list("R" = reagent, "T" = transfer_amount)) + total_transfered_amount += transfered_amount + to_transfer -= transfered_amount -/obj/machinery/plumbing/tank/Initialize(mapload, bolt, layer) - . = ..() - AddComponent(/datum/component/plumbing/tank, bolt, layer) + if(!isnull(target_id)) + break -///Layer manifold machine that connects a bunch of layers -/obj/machinery/plumbing/layer_manifold - name = "layer manifold" - desc = "A plumbing manifold for layers." - icon_state = "manifold" - density = FALSE + //remove chemicals that were added above + for(var/list/data as anything in reagents_to_remove) + var/datum/reagent/reagent = data["R"] + transfer_amount = data["T"] + remove_reagent(reagent.type, transfer_amount) -/obj/machinery/plumbing/layer_manifold/Initialize(mapload, bolt, layer) - . = ..() + //handle reactions + target_holder.handle_reactions() + src.handle_reactions() - AddComponent(/datum/component/plumbing/manifold, bolt, FIRST_DUCT_LAYER) - AddComponent(/datum/component/plumbing/manifold, bolt, SECOND_DUCT_LAYER) - AddComponent(/datum/component/plumbing/manifold, bolt, THIRD_DUCT_LAYER) - AddComponent(/datum/component/plumbing/manifold, bolt, FOURTH_DUCT_LAYER) - AddComponent(/datum/component/plumbing/manifold, bolt, FIFTH_DUCT_LAYER) + return round(total_transfered_amount, CHEMICAL_VOLUME_ROUNDING) diff --git a/code/modules/plumbing/plumbers/iv_drip.dm b/code/modules/plumbing/plumbers/iv_drip.dm index 6e2585553849c..45c2ebca27acb 100644 --- a/code/modules/plumbing/plumbers/iv_drip.dm +++ b/code/modules/plumbing/plumbers/iv_drip.dm @@ -10,7 +10,7 @@ /obj/machinery/iv_drip/plumbing/Initialize(mapload, bolt, layer) . = ..() - AddComponent(/datum/component/plumbing/iv_drip, bolt, layer) + AddComponent(/datum/component/plumbing/simple_demand, bolt, layer) AddComponent(/datum/component/simple_rotation) /obj/machinery/iv_drip/plumbing/add_context(atom/source, list/context, obj/item/held_item, mob/living/user) diff --git a/code/modules/plumbing/plumbers/simple_machines.dm b/code/modules/plumbing/plumbers/simple_machines.dm new file mode 100644 index 0000000000000..c2ef308297324 --- /dev/null +++ b/code/modules/plumbing/plumbers/simple_machines.dm @@ -0,0 +1,57 @@ +///We can empty beakers in here and everything +/obj/machinery/plumbing/input + name = "input gate" + desc = "Can be manually filled with reagents from containers." + icon_state = "pipe_input" + pass_flags_self = PASSMACHINE | LETPASSTHROW // Small + reagent_flags = TRANSPARENT | REFILLABLE + +/obj/machinery/plumbing/input/Initialize(mapload, bolt, layer) + . = ..() + AddComponent(/datum/component/plumbing/simple_supply, bolt, layer) + +///We can fill beakers in here and everything. we dont inheret from input because it has nothing that we need +/obj/machinery/plumbing/output + name = "output gate" + desc = "A manual output for plumbing systems, for taking reagents directly into containers." + icon_state = "pipe_output" + pass_flags_self = PASSMACHINE | LETPASSTHROW // Small + reagent_flags = TRANSPARENT | DRAINABLE + reagents = /datum/reagents + +/obj/machinery/plumbing/output/Initialize(mapload, bolt, layer) + . = ..() + AddComponent(/datum/component/plumbing/simple_demand, bolt, layer) + +///For pouring reagents from ducts directly into cups +/obj/machinery/plumbing/output/tap + name = "drinking tap" + desc = "A manual output for plumbing systems, for taking drinks directly into glasses." + icon_state = "tap_output" + +///For storing large volume of reagents +/obj/machinery/plumbing/tank + name = "chemical tank" + desc = "A massive chemical holding tank." + icon_state = "tank" + buffer = 400 + +/obj/machinery/plumbing/tank/Initialize(mapload, bolt, layer) + . = ..() + AddComponent(/datum/component/plumbing/tank, bolt, layer) + +///Layer manifold machine that connects a bunch of layers +/obj/machinery/plumbing/layer_manifold + name = "layer manifold" + desc = "A plumbing manifold for layers." + icon_state = "manifold" + density = FALSE + +/obj/machinery/plumbing/layer_manifold/Initialize(mapload, bolt, layer) + . = ..() + + AddComponent(/datum/component/plumbing/manifold, bolt, FIRST_DUCT_LAYER) + AddComponent(/datum/component/plumbing/manifold, bolt, SECOND_DUCT_LAYER) + AddComponent(/datum/component/plumbing/manifold, bolt, THIRD_DUCT_LAYER) + AddComponent(/datum/component/plumbing/manifold, bolt, FOURTH_DUCT_LAYER) + AddComponent(/datum/component/plumbing/manifold, bolt, FIFTH_DUCT_LAYER) diff --git a/code/modules/plumbing/plumbers/teleporter.dm b/code/modules/plumbing/plumbers/teleporter.dm index df79220d15a8c..46c46d594f6f6 100644 --- a/code/modules/plumbing/plumbers/teleporter.dm +++ b/code/modules/plumbing/plumbers/teleporter.dm @@ -12,15 +12,10 @@ . = ..() AddComponent(/datum/component/plumbing/simple_demand, bolt, layer) -/obj/machinery/plumbing/sender/multitool_act(mob/living/user, obj/item/I) - if(!multitool_check_buffer(user, I)) - return - - var/obj/item/multitool/M = I - +/obj/machinery/plumbing/sender/multitool_act(mob/living/user, obj/item/multitool/M) if(!istype(M.buffer, /obj/machinery/plumbing/receiver)) to_chat(user, span_warning("Invalid buffer.")) - return + return ITEM_INTERACT_BLOCKING if(target) lose_teleport_target() @@ -28,7 +23,7 @@ set_teleport_target(M.buffer) to_chat(user, span_green("You succesfully link [src] to the [M.buffer].")) - return TRUE + return ITEM_INTERACT_SUCCESS ///Lose our previous target and make our previous target lose us. Seperate proc because I feel like I'll need this again /obj/machinery/plumbing/sender/proc/lose_teleport_target() @@ -67,14 +62,10 @@ . = ..() AddComponent(/datum/component/plumbing/simple_supply, bolt) -/obj/machinery/plumbing/receiver/multitool_act(mob/living/user, obj/item/I) - if(!multitool_check_buffer(user, I)) - return - - var/obj/item/multitool/M = I +/obj/machinery/plumbing/receiver/multitool_act(mob/living/user, obj/item/multitool/M) M.set_buffer(src) balloon_alert(user, "saved to multitool buffer") - return TRUE + return ITEM_INTERACT_SUCCESS /obj/machinery/plumbing/receiver/process(seconds_per_tick) if(!is_operational || panel_open) diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index b46b29538c608..da3a4e12c5662 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -51,6 +51,8 @@ no power level overlay is currently in the overlays list. var/list/obj/machinery/field/generator/connected_gens = list() ///Check for asynk cleanups for this and the connected gens var/clean_up = FALSE + /// we warm up and cool down instantly + var/instantenous = FALSE /datum/armor/field_generator melee = 25 @@ -207,8 +209,11 @@ no power level overlay is currently in the overlays list. can_atmos_pass = ATMOS_PASS_YES air_update_turf(TRUE, FALSE) INVOKE_ASYNC(src, PROC_REF(cleanup)) - addtimer(CALLBACK(src, PROC_REF(cool_down)), 5 SECONDS) RemoveElement(/datum/element/give_turf_traits, string_list(list(TRAIT_CONTAINMENT_FIELD))) + if(instantenous) + warming_up = 0 + return + addtimer(CALLBACK(src, PROC_REF(cool_down)), 5 SECONDS) /obj/machinery/field/generator/proc/cool_down() if(active || warming_up <= 0) @@ -219,9 +224,14 @@ no power level overlay is currently in the overlays list. addtimer(CALLBACK(src, PROC_REF(cool_down)), 5 SECONDS) /obj/machinery/field/generator/proc/turn_on() + AddElement(/datum/element/give_turf_traits, string_list(list(TRAIT_CONTAINMENT_FIELD))) + if(instantenous) + active = FG_ONLINE + warming_up = 3 + start_fields() + return active = FG_CHARGING addtimer(CALLBACK(src, PROC_REF(warm_up)), 5 SECONDS) - AddElement(/datum/element/give_turf_traits, string_list(list(TRAIT_CONTAINMENT_FIELD))) /obj/machinery/field/generator/proc/warm_up() if(!active) @@ -420,9 +430,20 @@ no power level overlay is currently in the overlays list. state = FG_WELDED /obj/machinery/field/generator/starts_on/Initialize(mapload) + . = ..() + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/field/generator/starts_on/post_machine_initialize() . = ..() turn_on() +/obj/machinery/field/generator/starts_on/magic + power_level = 6 //forces the highest level overlay + instantenous = TRUE + +/obj/machinery/field/generator/starts_on/magic/process() + return PROCESS_KILL // this is the only place calc_power is called, and doing it here avoids one unnecessary proc call + #undef FG_UNSECURED #undef FG_SECURED #undef FG_WELDED diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 198eed66e3c92..f1df323609dd9 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -64,11 +64,6 @@ /// True if a gun dosen't need a pin, mostly used for abstract guns like tentacles and meathooks var/pinless = FALSE - var/can_bayonet = FALSE //if a bayonet can be added or removed if it already has one. - var/obj/item/knife/bayonet - var/knife_x_offset = 0 - var/knife_y_offset = 0 - var/ammo_x_offset = 0 //used for positioning ammo count overlay on sprite var/ammo_y_offset = 0 @@ -83,12 +78,11 @@ pin = new pin(src) add_seclight_point() + add_bayonet_point() /obj/item/gun/Destroy() if(isobj(pin)) //Can still be the initial path, then we skip QDEL_NULL(pin) - if(bayonet) - QDEL_NULL(bayonet) if(chambered) //Not all guns are chambered (EMP'ed energy guns etc) QDEL_NULL(chambered) if(isatom(suppressed)) //SUPPRESSED IS USED AS BOTH A TRUE/FALSE AND AS A REF, WHAT THE FUCKKKKKKKKKKKKKKKKK @@ -111,6 +105,10 @@ /obj/item/gun/proc/add_seclight_point() return +/// Similarly to add_seclight_point(), handles [the bayonet attachment component][/datum/component/bayonet_attachable] +/obj/item/gun/proc/add_bayonet_point() + return + /obj/item/gun/Exited(atom/movable/gone, direction) . = ..() if(gone == pin) @@ -120,10 +118,6 @@ update_appearance() if(gone == suppressed) clear_suppressor() - if(gone == bayonet) - bayonet = null - if(!QDELING(src)) - update_appearance() ///Clears var and updates icon. In the case of ballistic weapons, also updates the gun's weight. /obj/item/gun/proc/clear_suppressor() @@ -144,13 +138,6 @@ else . += "It doesn't have a firing pin installed, and won't fire." - if(bayonet) - . += "It has \a [bayonet] [can_bayonet ? "" : "permanently "]affixed to it." - if(can_bayonet) //if it has a bayonet and this is false, the bayonet is permanent. - . += span_info("[bayonet] looks like it can be unscrewed from [src].") - if(can_bayonet) - . += "It has a bayonet lug on it." - //called after the gun has successfully fired its chambered ammo. /obj/item/gun/proc/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE) handle_chamber(empty_chamber, from_firing, chamber_next_round) @@ -248,31 +235,6 @@ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN -/obj/item/gun/pre_attack(atom/A, mob/living/user, params) - . = ..() - if(.) - return . - if(isnull(bayonet) || !user.combat_mode) - return . - return bayonet.melee_attack_chain(user, A, params) - -/obj/item/gun/item_interaction(mob/living/user, obj/item/tool, list/modifiers) - if(user.combat_mode) - return NONE - - if(istype(tool, /obj/item/knife)) - var/obj/item/knife/new_stabber = tool - if(!can_bayonet || !new_stabber.bayonet || !isnull(bayonet)) //ensure the gun has an attachment point available, and that the knife is compatible with it. - return ITEM_INTERACT_BLOCKING - if(!user.transferItemToLoc(new_stabber, src)) - return ITEM_INTERACT_BLOCKING - to_chat(user, span_notice("You attach [new_stabber] to [src]'s bayonet lug.")) - bayonet = new_stabber - update_appearance() - return ITEM_INTERACT_SUCCESS - - return NONE - /obj/item/gun/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if(user.combat_mode && isliving(interacting_with)) return ITEM_INTERACT_SKIP_TO_ATTACK // Gun bash / bayonet attack @@ -508,17 +470,7 @@ return if(!user.can_perform_action(src, FORBID_TELEKINESIS_REACH)) return - - if(bayonet && can_bayonet) //if it has a bayonet, and the bayonet can be removed - I.play_tool_sound(src) - to_chat(user, span_notice("You unfix [bayonet] from [src].")) - bayonet.forceMove(drop_location()) - - if(Adjacent(user) && !issilicon(user)) - user.put_in_hands(bayonet) - return ITEM_INTERACT_SUCCESS - - else if(pin?.pin_removable && user.is_holding(src)) + if(pin?.pin_removable && user.is_holding(src)) user.visible_message(span_warning("[user] attempts to remove [pin] from [src] with [I]."), span_notice("You attempt to remove [pin] from [src]. (It will take [DisplayTimeText(FIRING_PIN_REMOVAL_DELAY)].)"), null, 3) if(I.use_tool(src, user, FIRING_PIN_REMOVAL_DELAY, volume = 50)) @@ -563,19 +515,6 @@ QDEL_NULL(pin) return TRUE -/obj/item/gun/update_overlays() - . = ..() - if(bayonet) - var/mutable_appearance/knife_overlay - var/state = "bayonet" //Generic state. - if(bayonet.icon_state in icon_states('icons/obj/weapons/guns/bayonets.dmi')) //Snowflake state? - state = bayonet.icon_state - var/icon/bayonet_icons = 'icons/obj/weapons/guns/bayonets.dmi' - knife_overlay = mutable_appearance(bayonet_icons, state) - knife_overlay.pixel_x = knife_x_offset - knife_overlay.pixel_y = knife_y_offset - . += knife_overlay - /obj/item/gun/animate_atom_living(mob/living/owner) new /mob/living/simple_animal/hostile/mimic/copy/ranged(drop_location(), src, owner) diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 6f798eb8908e1..361d68123f5c4 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -638,8 +638,7 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( if(sawn_off) balloon_alert(user, "it's already shortened!") return - if(bayonet) - balloon_alert(user, "[bayonet.name] must be removed!") + if (SEND_SIGNAL(src, COMSIG_GUN_BEING_SAWNOFF, user) & COMPONENT_CANCEL_SAWING_OFF) return user.changeNext_move(CLICK_CD_MELEE) user.visible_message(span_notice("[user] begins to shorten [src]."), span_notice("You begin to shorten [src]...")) @@ -649,27 +648,30 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( user.visible_message(span_danger("[src] goes off!"), span_danger("[src] goes off in your face!")) return - if(do_after(user, 3 SECONDS, target = src)) - if(sawn_off) - return - user.visible_message(span_notice("[user] shortens [src]!"), span_notice("You shorten [src].")) - sawn_off = TRUE - if(handle_modifications) - name = "sawn-off [src.name]" - desc = sawn_desc - update_weight_class(WEIGHT_CLASS_NORMAL) - //The file might not have a "gun" icon, let's prepare for this - lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' - inhand_x_dimension = 32 - inhand_y_dimension = 32 - inhand_icon_state = "gun" - worn_icon_state = "gun" - slot_flags &= ~ITEM_SLOT_BACK //you can't sling it on your back - slot_flags |= ITEM_SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) - recoil = SAWN_OFF_RECOIL - update_appearance() + if(!do_after(user, 3 SECONDS, target = src)) + return + if(sawn_off) + return + user.visible_message(span_notice("[user] shortens [src]!"), span_notice("You shorten [src].")) + sawn_off = TRUE + SEND_SIGNAL(src, COMSIG_GUN_SAWN_OFF) + if(!handle_modifications) return TRUE + name = "sawn-off [src.name]" + desc = sawn_desc + update_weight_class(WEIGHT_CLASS_NORMAL) + //The file might not have a "gun" icon, let's prepare for this + lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' + inhand_x_dimension = 32 + inhand_y_dimension = 32 + inhand_icon_state = "gun" + worn_icon_state = "gun" + slot_flags &= ~ITEM_SLOT_BACK //you can't sling it on your back + slot_flags |= ITEM_SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) + recoil = SAWN_OFF_RECOIL + update_appearance() + return TRUE /obj/item/gun/ballistic/proc/guncleaning(mob/user, obj/item/A) if(misfire_probability == initial(misfire_probability)) diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 30ba65dc94a86..b86e2a9938995 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -41,13 +41,13 @@ fire_delay = 2 burst_size = 3 pin = /obj/item/firing_pin/implant/pindicate - can_bayonet = TRUE - knife_x_offset = 26 - knife_y_offset = 12 mag_display = TRUE mag_display_ammo = TRUE empty_indicator = TRUE +/obj/item/gun/ballistic/automatic/c20r/add_bayonet_point() + AddComponent(/datum/component/bayonet_attachable, offset_x = 26, offset_y = 12) + /obj/item/gun/ballistic/automatic/c20r/update_overlays() . = ..() if(!chambered && empty_indicator) //this is duplicated due to a layering issue with the select fire icon. @@ -75,9 +75,6 @@ can_suppress = FALSE burst_size = 1 actions_types = list() - can_bayonet = TRUE - knife_x_offset = 25 - knife_y_offset = 12 mag_display = TRUE mag_display_ammo = TRUE empty_indicator = TRUE @@ -86,6 +83,9 @@ . = ..() AddComponent(/datum/component/automatic_fire, 0.3 SECONDS) +/obj/item/gun/ballistic/automatic/wt550/add_bayonet_point() + AddComponent(/datum/component/bayonet_attachable, offset_x = 25, offset_y = 12) + /obj/item/gun/ballistic/automatic/plastikov name = "\improper PP-95 SMG" desc = "An ancient 9mm submachine gun pattern updated and simplified to lower costs, though perhaps simplified too much." diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index a8161ddb39612..21ddb63211e63 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -54,9 +54,6 @@ slot_flags = ITEM_SLOT_BACK accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction - can_bayonet = TRUE - knife_x_offset = 42 - knife_y_offset = 12 can_be_sawn_off = TRUE weapon_weight = WEAPON_HEAVY var/jamming_chance = 20 @@ -67,11 +64,13 @@ SET_BASE_PIXEL(-8, 0) +/obj/item/gun/ballistic/rifle/boltaction/add_bayonet_point() + AddComponent(/datum/component/bayonet_attachable, offset_x = 32, offset_y = 12) + /obj/item/gun/ballistic/rifle/boltaction/sawoff(mob/user) . = ..() if(.) spread = 36 - can_bayonet = FALSE SET_BASE_PIXEL(0, 0) update_appearance() @@ -271,14 +270,14 @@ projectile_damage_multiplier = 1.35 obj_flags = UNIQUE_RENAME - can_bayonet = TRUE - knife_x_offset = 35 - knife_y_offset = 10 can_be_sawn_off = FALSE trigger_guard = TRIGGER_GUARD_ALLOW_ALL SET_BASE_PIXEL(-8, 0) +/obj/item/gun/ballistic/rifle/boltaction/pipegun/add_bayonet_point() + AddComponent(/datum/component/bayonet_attachable, offset_x = 35, offset_y = 10) + /obj/item/gun/ballistic/rifle/boltaction/pipegun/handle_chamber() . = ..() do_sparks(1, TRUE, src) @@ -305,11 +304,13 @@ spread = 15 //kinda inaccurate slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_NORMAL - can_bayonet = FALSE weapon_weight = WEAPON_MEDIUM SET_BASE_PIXEL(0, 0) +/obj/item/gun/ballistic/rifle/boltaction/pipegun/pipepistol/add_bayonet_point() + return + /obj/item/gun/ballistic/rifle/boltaction/pipegun/prime name = "regal pipegun" desc = "To call this 'regal' is a cruel irony. For the only noteworthy quality of nobility is in how it is wielded to kill. \ diff --git a/code/modules/projectiles/guns/energy/crank_guns.dm b/code/modules/projectiles/guns/energy/crank_guns.dm index 64ffa86f36015..fa56075990ec5 100644 --- a/code/modules/projectiles/guns/energy/crank_guns.dm +++ b/code/modules/projectiles/guns/energy/crank_guns.dm @@ -7,9 +7,9 @@ ammo_type = list(/obj/item/ammo_casing/energy/laser/musket) slot_flags = ITEM_SLOT_BACK obj_flags = UNIQUE_RENAME - can_bayonet = TRUE - knife_x_offset = 22 - knife_y_offset = 11 + +/obj/item/gun/energy/laser/musket/add_bayonet_point() + AddComponent(/datum/component/bayonet_attachable, offset_x = 22, offset_y = 11) /obj/item/gun/energy/laser/musket/Initialize(mapload) . = ..() @@ -84,12 +84,12 @@ shaded_charge = TRUE ammo_x_offset = 1 obj_flags = UNIQUE_RENAME - can_bayonet = TRUE - knife_x_offset = 19 - knife_y_offset = 13 w_class = WEIGHT_CLASS_NORMAL dual_wield_spread = 5 //as intended by the coders +/obj/item/gun/energy/laser/thermal/add_bayonet_point() + AddComponent(/datum/component/bayonet_attachable, offset_x = 19, offset_y = 13) + /obj/item/gun/energy/laser/thermal/Initialize(mapload) . = ..() AddElement(/datum/element/empprotection, EMP_PROTECT_SELF|EMP_PROTECT_CONTENTS) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 7237ee0e32747..1cfa73ddc6451 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -9,9 +9,6 @@ obj_flags = UNIQUE_RENAME resistance_flags = FIRE_PROOF weapon_weight = WEAPON_LIGHT - can_bayonet = TRUE - knife_x_offset = 20 - knife_y_offset = 12 gun_flags = NOT_A_REAL_GUN ///List of all mobs that projectiles fired from this gun will ignore. var/list/ignored_mob_types @@ -20,6 +17,9 @@ ///The max capacity of modkits the PKA can have installed at once. var/max_mod_capacity = 100 +/obj/item/gun/energy/recharge/kinetic_accelerator/add_bayonet_point() + AddComponent(/datum/component/bayonet_attachable, offset_x = 20, offset_y = 12) + /obj/item/gun/energy/recharge/kinetic_accelerator/Initialize(mapload) . = ..() // Only actual KAs can be converted diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 0635de8037adf..839689144c2f1 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -59,6 +59,9 @@ /obj/item/gun/energy/pulse/carbine/loyalpin pin = /obj/item/firing_pin/implant/mindshield +/obj/item/gun/energy/pulse/carbine/taserless + ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse, /obj/item/ammo_casing/energy/laser) + /obj/item/gun/energy/pulse/destroyer name = "pulse destroyer" desc = "A heavy-duty energy rifle built for pure destruction." @@ -79,6 +82,9 @@ inhand_icon_state = "gun" cell_type = /obj/item/stock_parts/power_store/cell/pulse/pistol +/obj/item/gun/energy/pulse/pistol/taserless + ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse, /obj/item/ammo_casing/energy/laser) + /obj/item/gun/energy/pulse/pistol/loyalpin pin = /obj/item/firing_pin/implant/mindshield diff --git a/code/modules/projectiles/guns/energy/recharge.dm b/code/modules/projectiles/guns/energy/recharge.dm index 0aa14b48c32f6..504dc5c9e0f4a 100644 --- a/code/modules/projectiles/guns/energy/recharge.dm +++ b/code/modules/projectiles/guns/energy/recharge.dm @@ -111,9 +111,9 @@ recharge_time = 2 SECONDS holds_charge = TRUE unique_frequency = TRUE - can_bayonet = TRUE - knife_x_offset = 20 - knife_y_offset = 12 + +/obj/item/gun/energy/recharge/ebow/add_bayonet_point() + AddComponent(/datum/component/bayonet_attachable, offset_x = 20, offset_y = 12) /obj/item/gun/energy/recharge/ebow/halloween name = "candy corn crossbow" diff --git a/code/modules/reagents/chemistry/holder/holder.dm b/code/modules/reagents/chemistry/holder/holder.dm index 3fe2e482f3efd..0c300c3896b0e 100644 --- a/code/modules/reagents/chemistry/holder/holder.dm +++ b/code/modules/reagents/chemistry/holder/holder.dm @@ -235,6 +235,7 @@ var/total_removed_amount = 0 var/remove_amount = 0 var/list/cached_reagents = reagent_list + var/list/removed_reagents = list() for(var/datum/reagent/cached_reagent as anything in cached_reagents) //check for specific type or subtypes if(!include_subtypes) @@ -243,19 +244,26 @@ else if(!istype(cached_reagent, reagent_type)) continue + //reduce the volume remove_amount = min(cached_reagent.volume, amount) cached_reagent.volume -= remove_amount - update_total() - if(!safety)//So it does not handle reactions when it need not to - handle_reactions() - SEND_SIGNAL(src, COMSIG_REAGENTS_REM_REAGENT, QDELING(cached_reagent) ? reagent_type : cached_reagent, amount) - + //record the changes + removed_reagents += cached_reagent total_removed_amount += remove_amount //if we reached here means we have found our specific reagent type so break if(!include_subtypes) - return total_removed_amount + break + + //inform others about our reagents being removed + for(var/datum/reagent/removed_reagent as anything in cached_reagents) + SEND_SIGNAL(src, COMSIG_REAGENTS_REM_REAGENT, removed_reagent, amount) + + //update the holder & handle reactions + update_total() + if(!safety) + handle_reactions() return round(total_removed_amount, CHEMICAL_VOLUME_ROUNDING) @@ -504,8 +512,6 @@ log_target.add_hiddenprint(transferred_by) //log prints so admins can figure out who touched it last. log_combat(transferred_by, log_target, "transferred reagents to", my_atom, "which had [get_external_reagent_log_string(transfer_log)]") - update_total() - target_holder.update_total() if(!no_react) target_holder.handle_reactions() src.handle_reactions() diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 77205b577929d..29822e3158bec 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -881,7 +881,7 @@ return to_chat(affected_mob, span_warning("You grit your teeth in pain as your body rapidly mutates!")) affected_mob.visible_message("[affected_mob] suddenly transforms!") - randomize_human(affected_mob) + randomize_human_normie(affected_mob) /datum/reagent/aslimetoxin name = "Advanced Mutation Toxin" diff --git a/code/modules/recycling/disposal/construction.dm b/code/modules/recycling/disposal/construction.dm index 903a59a930557..13f43b1f4a419 100644 --- a/code/modules/recycling/disposal/construction.dm +++ b/code/modules/recycling/disposal/construction.dm @@ -109,7 +109,7 @@ var/turf/T = get_turf(src) if(T.underfloor_accessibility < UNDERFLOOR_INTERACTABLE && isfloorturf(T)) - var/obj/item/crowbar/held_crowbar = user.is_holding_item_of_type(/obj/item/crowbar) + var/obj/item/crowbar/held_crowbar = user.is_holding_tool_quality(TOOL_CROWBAR) if(!held_crowbar || !T.crowbar_act(user, held_crowbar)) to_chat(user, span_warning("You can only attach the [pipename] if the floor plating is removed!")) return TRUE diff --git a/code/modules/research/designs/computer_part_designs.dm b/code/modules/research/designs/computer_part_designs.dm index 8dab08c046d45..7a8242642a13a 100644 --- a/code/modules/research/designs/computer_part_designs.dm +++ b/code/modules/research/designs/computer_part_designs.dm @@ -5,10 +5,11 @@ /datum/design/portabledrive/basic name = "Data Disk" id = "portadrive_basic" - build_type = IMPRINTER | AWAY_IMPRINTER - materials = list(/datum/material/glass = SMALL_MATERIAL_AMOUNT*8) + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT) build_path = /obj/item/computer_disk category = list( + RND_CATEGORY_INITIAL, RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING @@ -16,10 +17,11 @@ /datum/design/portabledrive/advanced name = "Advanced Data Disk" id = "portadrive_advanced" - build_type = IMPRINTER | AWAY_IMPRINTER - materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT*1.5) + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 2) build_path = /obj/item/computer_disk/advanced category = list( + RND_CATEGORY_INITIAL, RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING @@ -27,10 +29,11 @@ /datum/design/portabledrive/super name = "Super Data Disk" id = "portadrive_super" - build_type = IMPRINTER | AWAY_IMPRINTER - materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT*1.5) + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 4) build_path = /obj/item/computer_disk/super category = list( + RND_CATEGORY_INITIAL, RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 069447c6f4539..0cfca236d24c3 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -72,7 +72,7 @@ return CONTEXTUAL_SCREENTIP_SET else if(held_item.tool_behaviour == TOOL_MULTITOOL) - var/obj/item/multitool/tool = held_item + var/obj/item/multitool/tool = held_item.get_proxy_attacker_for(src, user) if(!QDELETED(tool.buffer) && istype(tool.buffer, /datum/techweb)) context[SCREENTIP_CONTEXT_LMB] = "Upload Techweb" context[SCREENTIP_CONTEXT_RMB] = "Upload Techweb" diff --git a/code/modules/research/techweb/nodes/cyborg_nodes.dm b/code/modules/research/techweb/nodes/cyborg_nodes.dm index da9f485f2bf1f..447ee2dc7f3b9 100644 --- a/code/modules/research/techweb/nodes/cyborg_nodes.dm +++ b/code/modules/research/techweb/nodes/cyborg_nodes.dm @@ -19,6 +19,9 @@ "cybernetic_liver", "cybernetic_heart", ) + experiments_to_unlock = list( + /datum/experiment/scanning/people/android, + ) /datum/techweb_node/cybernetics id = TECHWEB_NODE_CYBERNETICS @@ -213,7 +216,7 @@ "cybernetic_liver_tier3", "cybernetic_heart_tier3", ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) required_experiments = list(/datum/experiment/scanning/people/augmented_organs) /datum/techweb_node/cyber/cyber_organs_adv @@ -229,3 +232,4 @@ "ci-xray-moth", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) + discount_experiments = list(/datum/experiment/scanning/people/android = TECHWEB_TIER_5_POINTS) diff --git a/code/modules/research/xenobiology/crossbreeding/_clothing.dm b/code/modules/research/xenobiology/crossbreeding/_clothing.dm index c174856a62a31..9bd9e2d881b1c 100644 --- a/code/modules/research/xenobiology/crossbreeding/_clothing.dm +++ b/code/modules/research/xenobiology/crossbreeding/_clothing.dm @@ -38,8 +38,13 @@ Slimecrossing Armor icon = 'icons/obj/science/slimecrossing.dmi' icon_state = "prismglasses" actions_types = list(/datum/action/item_action/change_prism_colour, /datum/action/item_action/place_light_prism) + forced_glass_color = TRUE var/glasses_color = COLOR_WHITE +/obj/item/clothing/glasses/prism_glasses/Initialize(mapload) + . = ..() + AddElement(/datum/element/wearable_client_colour, /datum/client_colour/glass_colour, ITEM_SLOT_EYES, glasses_color, forced_glass_color) + /obj/item/clothing/glasses/prism_glasses/item_action_slot_check(slot) if(slot & ITEM_SLOT_EYES) return TRUE @@ -76,7 +81,9 @@ Slimecrossing Armor var/new_color = input(owner, "Choose the lens color:", "Color change",glasses.glasses_color) as color|null if(!new_color) return + RemoveElement(/datum/element/wearable_client_colour, /datum/client_colour/glass_colour, ITEM_SLOT_EYES, glasses.glasses_color, glasses.forced_glass_color) glasses.glasses_color = new_color + AddElement(/datum/element/wearable_client_colour, /datum/client_colour/glass_colour, ITEM_SLOT_EYES, new_color, glasses.forced_glass_color) /datum/action/item_action/place_light_prism name = "Fabricate Light Prism" diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index c83f710d1df1d..e2feaa2bc26ed 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -50,13 +50,10 @@ GLOBAL_VAR_INIT(bsa_unlock, FALSE) . = ..() AddComponent(/datum/component/simple_rotation) -/obj/machinery/bsa/back/multitool_act(mob/living/user, obj/item/I) - if(!multitool_check_buffer(user, I)) //make sure it has a data buffer - return - var/obj/item/multitool/M = I +/obj/machinery/bsa/back/multitool_act(mob/living/user, obj/item/multitool/M) M.set_buffer(src) balloon_alert(user, "saved to multitool buffer") - return TRUE + return ITEM_INTERACT_SUCCESS /obj/machinery/bsa/front name = "Bluespace Artillery Bore" @@ -67,13 +64,10 @@ GLOBAL_VAR_INIT(bsa_unlock, FALSE) . = ..() AddComponent(/datum/component/simple_rotation) -/obj/machinery/bsa/front/multitool_act(mob/living/user, obj/item/I) - if(!multitool_check_buffer(user, I)) //make sure it has a data buffer - return - var/obj/item/multitool/M = I +/obj/machinery/bsa/front/multitool_act(mob/living/user, obj/item/multitool/M) M.set_buffer(src) balloon_alert(user, "saved to multitool buffer") - return TRUE + return ITEM_INTERACT_SUCCESS /obj/machinery/bsa/middle name = "Bluespace Artillery Fusor" @@ -86,22 +80,19 @@ GLOBAL_VAR_INIT(bsa_unlock, FALSE) . = ..() AddComponent(/datum/component/simple_rotation) -/obj/machinery/bsa/middle/multitool_act(mob/living/user, obj/item/I) - if(!multitool_check_buffer(user, I)) - return - var/obj/item/multitool/M = I - if(M.buffer) - if(istype(M.buffer, /obj/machinery/bsa/back)) - back_ref = WEAKREF(M.buffer) - to_chat(user, span_notice("You link [src] with [M.buffer].")) - M.set_buffer(null) - else if(istype(M.buffer, /obj/machinery/bsa/front)) - front_ref = WEAKREF(M.buffer) - to_chat(user, span_notice("You link [src] with [M.buffer].")) - M.set_buffer(null) - else - to_chat(user, span_warning("[I]'s data buffer is empty!")) - return TRUE +/obj/machinery/bsa/middle/multitool_act(mob/living/user, obj/item/multitool/tool) + . = NONE + + if(istype(tool.buffer, /obj/machinery/bsa/back)) + back_ref = WEAKREF(tool.buffer) + to_chat(user, span_notice("You link [src] with [tool.buffer].")) + tool.set_buffer(null) + return ITEM_INTERACT_SUCCESS + else if(istype(tool.buffer, /obj/machinery/bsa/front)) + front_ref = WEAKREF(tool.buffer) + to_chat(user, span_notice("You link [src] with [tool.buffer].")) + tool.set_buffer(null) + return ITEM_INTERACT_SUCCESS /obj/machinery/bsa/middle/proc/check_completion() var/obj/machinery/bsa/front/front = front_ref?.resolve() diff --git a/code/modules/surgery/blood_filter.dm b/code/modules/surgery/blood_filter.dm index d56e35ca9e73b..401a412bc1c9e 100644 --- a/code/modules/surgery/blood_filter.dm +++ b/code/modules/surgery/blood_filter.dm @@ -40,7 +40,7 @@ */ /datum/surgery_step/filter_blood/proc/has_filterable_chems(mob/living/carbon/target, obj/item/blood_filter/bloodfilter) if(!length(target.reagents?.reagent_list)) - bloodfilter.audible_message(span_notice("The [bloodfilter] pings as it reports no chemicals detected in [target]'s blood.")) + bloodfilter.audible_message(span_notice("[bloodfilter] pings as it reports no chemicals detected in [target]'s blood.")) playsound(get_turf(target), 'sound/machines/ping.ogg', 75, TRUE, falloff_exponent = 12, falloff_distance = 1) return FALSE @@ -58,7 +58,7 @@ implements = list(/obj/item/blood_filter = 95) repeatable = TRUE time = 2.5 SECONDS - success_sound = 'sound/machines/fan_loop.ogg' + success_sound = 'sound/machines/card_slide.ogg' /datum/surgery_step/filter_blood/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_pain(target, "You feel a throbbing pain in your chest!") @@ -68,7 +68,7 @@ if(target.reagents?.total_volume) for(var/datum/reagent/chem as anything in target.reagents.reagent_list) if(!length(bloodfilter.whitelist) || (chem.type in bloodfilter.whitelist)) - target.reagents.remove_reagent(chem.type, min(chem.volume * 0.22, 10)) + target.reagents.remove_reagent(chem.type, min(round(chem.volume * 0.22, 0.2), 10)) display_results( user, target, diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index 17444590cf2ef..a555548e43268 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -124,10 +124,6 @@ if(isnull(step)) return FALSE var/obj/item/tool = user.get_active_held_item() - if(istype(tool, /obj/item/borg/cyborg_omnitool)) //catches borg surgeries - var/obj/item/borg/cyborg_omnitool/toolarm = tool - if(toolarm.selected) - tool = toolarm.selected if(step.try_op(user, target, user.zone_selected, tool, src, try_to_fail)) return TRUE if(tool && tool.item_flags & SURGICAL_TOOL) //Just because you used the wrong tool it doesn't mean you meant to whack the patient with it diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 6c3ee9c014713..eba496e0b8c5f 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -316,6 +316,7 @@ attack_verb_continuous = list("slaps") attack_verb_simple = list("slap") interaction_flags_atom = parent_type::interaction_flags_atom | INTERACT_ATOM_IGNORE_MOBILITY + tool_behaviour = TOOL_DRAPES /obj/item/surgical_drapes/Initialize(mapload) . = ..() diff --git a/code/modules/unit_tests/cyborg_tool.dm b/code/modules/unit_tests/cyborg_tool.dm index 711f0948aee0f..39aed619ec50d 100644 --- a/code/modules/unit_tests/cyborg_tool.dm +++ b/code/modules/unit_tests/cyborg_tool.dm @@ -5,7 +5,7 @@ /datum/unit_test/cyborg_tool/Run() var/mob/living/carbon/human/consistent/not_a_borg = allocate(__IMPLIED_TYPE__) var/obj/item/borg/cyborg_omnitool/engineering/tool = allocate(__IMPLIED_TYPE__) - tool.selected = allocate(/obj/item/wrench/cyborg) + tool.tool_behaviour = TOOL_WRENCH not_a_borg.put_in_active_hand(tool) diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_syndicateinfiltrator.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_syndicateinfiltrator.png index 0a9a5ef08e4ee..4c9212509d2ea 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_antag_icons_syndicateinfiltrator.png and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_syndicateinfiltrator.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_syndicatesleeperagent.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_syndicatesleeperagent.png index 0a9a5ef08e4ee..4c9212509d2ea 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_antag_icons_syndicatesleeperagent.png and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_syndicatesleeperagent.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_traitor.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_traitor.png index 0a9a5ef08e4ee..4c9212509d2ea 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_antag_icons_traitor.png and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_traitor.png differ diff --git a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm index 5b50ac935236b..0bb691160b373 100644 --- a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm +++ b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm @@ -69,7 +69,7 @@ projectile_obj.log_override = TRUE //we log being fired ourselves a little further down. projectile_obj.firer = chassis projectile_obj.preparePixelProjectile(target, source, modifiers, spread) - if(source.client && isliving(source)) //dont want it to happen from syndie mecha npc mobs, they do direct fire anyways + if(isliving(source) && source.client) //dont want it to happen from syndie mecha npc mobs, they do direct fire anyways var/mob/living/shooter = source projectile_obj.hit_prone_targets = shooter.combat_mode projectile_obj.fire() diff --git a/code/modules/vehicles/mecha/mech_melee_attack.dm b/code/modules/vehicles/mecha/mech_melee_attack.dm index e5c7b0aac72f3..d88aaaeb8c85d 100644 --- a/code/modules/vehicles/mecha/mech_melee_attack.dm +++ b/code/modules/vehicles/mecha/mech_melee_attack.dm @@ -10,7 +10,8 @@ /atom/proc/mech_melee_attack(obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user) SHOULD_CALL_PARENT(TRUE) SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_MECH, mecha_attacker, user) - log_combat(user, src, "attacked", mecha_attacker, "(COMBAT MODE: [uppertext(user.combat_mode)] (DAMTYPE: [uppertext(mecha_attacker.damtype)])") + if(!isnull(user)) + log_combat(user, src, "attacked", mecha_attacker, "(COMBAT MODE: [uppertext(user?.combat_mode)] (DAMTYPE: [uppertext(mecha_attacker.damtype)])") return 0 /turf/closed/wall/mech_melee_attack(obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user) @@ -72,7 +73,7 @@ return ..() /mob/living/mech_melee_attack(obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user) - if(!user.combat_mode) + if(istype(user) && !user.combat_mode) step_away(src, mecha_attacker) log_combat(user, src, "pushed", mecha_attacker) visible_message(span_warning("[mecha_attacker] pushes [src] out of the way."), \ @@ -80,7 +81,7 @@ to_chat(mecha_attacker, span_danger("You push [src] out of the way.")) return 0 - if(HAS_TRAIT(user, TRAIT_PACIFISM)) + if(!isnull(user) && HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, span_warning("You don't want to harm other living beings!")) return 0 mecha_attacker.do_attack_animation(src) diff --git a/html/changelogs/AutoChangeLog-pr-84144.yml b/html/changelogs/AutoChangeLog-pr-84144.yml deleted file mode 100644 index 4435e9f594361..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-84144.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "DaCoolBoss" -delete-after: True -changes: - - rscadd: "Ghost role food truck merchants may occasionally turn up at the station." - - rscadd: "Adds a new fugitive hunter type, MI13 secret agents." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84379.yml b/html/changelogs/AutoChangeLog-pr-84379.yml deleted file mode 100644 index f50ab9c9172aa..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-84379.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "MTandi" -delete-after: True -changes: - - qol: "It is easier to do some required techweb experiments on Charlie station now" - - bugfix: "Fixed experimental dissection surgeries giving too many points" - - balance: "Techweb: Moved NTNet relay back to tcomms node" - - balance: "Techweb: Moved blood pack and chem pack to the starting node" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84417.yml b/html/changelogs/AutoChangeLog-pr-84417.yml deleted file mode 100644 index ba8600075a5aa..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-84417.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "GremlinSeeker" -delete-after: True -changes: - - bugfix: "fixed Birdshot bar and surrounding areas not properly connected to the power grid." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84418.yml b/html/changelogs/AutoChangeLog-pr-84418.yml deleted file mode 100644 index 96f0d7f7b7c43..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-84418.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "MrDas" -delete-after: True -changes: - - bugfix: "Bolas now slowdown properly." - - bugfix: "Cult bolas no longer leave in-hand sprite when they ensnare to non-cult user." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84423.yml b/html/changelogs/AutoChangeLog-pr-84423.yml deleted file mode 100644 index ff3e09efedbf6..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-84423.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "bob-b-b" -delete-after: True -changes: - - rscadd: "Added flatpacker & multitool to all R&D labs" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84425.yml b/html/changelogs/AutoChangeLog-pr-84425.yml deleted file mode 100644 index 93229357e8cfa..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-84425.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "DaCoolBoss" -delete-after: True -changes: - - bugfix: "Removed three traitor posters from Cargo Warehouse's walls. (Metastation)" - - balance: "Added one traitor poster each to the QM's Office, Vault and Evidence Storage to compensate. (Metastation)" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84452.yml b/html/changelogs/AutoChangeLog-pr-84452.yml deleted file mode 100644 index 66b0f2f96b06f..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-84452.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Sosmaster9000" -delete-after: True -changes: - - balance: "Xenobiologists now have a BZ-filled containment pen. Don't breathe that!\nbalance:Some items which either cannot be printed elsewhere or are part of game progression (e.g. teleporter endpoints and, of course, Nanners) have been moved. Alien Spawnpoints are in the same spot." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84502.yml b/html/changelogs/AutoChangeLog-pr-84502.yml new file mode 100644 index 0000000000000..ba6ec25bf22c4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84502.yml @@ -0,0 +1,5 @@ +author: "MTandi" +delete-after: True +changes: + - bugfix: "Techweb: Moved upgraded cyber organs to tier 3 from tier 4" + - qol: "Techweb: Added fully augmented android scan discount experiment for Advanced Cybernetic Organs techweb node" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84516.yml b/html/changelogs/AutoChangeLog-pr-84516.yml new file mode 100644 index 0000000000000..88db7528a4d82 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84516.yml @@ -0,0 +1,4 @@ +author: "MTandi" +delete-after: True +changes: + - qol: "Data disks are now printed in lathes instead of circuit imprinter" \ No newline at end of file diff --git a/html/changelogs/archive/2024-07.yml b/html/changelogs/archive/2024-07.yml index 18b6fc43a0061..6b82931730018 100644 --- a/html/changelogs/archive/2024-07.yml +++ b/html/changelogs/archive/2024-07.yml @@ -151,3 +151,153 @@ canister nikothedude: - rscadd: Being cursed now enables disembowlements/cranial fissures outside of hardcrit +2024-07-03: + 00-Steven: + - bugfix: Fixed telekinesis letting you grab people at a distance, and teleport + them to you by strangling them. + DaCoolBoss: + - bugfix: Removed three traitor posters from Cargo Warehouse's walls. (Metastation) + - balance: Added one traitor poster each to the QM's Office, Vault and Evidence + Storage to compensate. (Metastation) + - rscadd: Ghost role food truck merchants may occasionally turn up at the station. + - rscadd: Adds a new fugitive hunter type, MI13 secret agents. + DrDiasyl aka DrTuxedo: + - sound: Shoves now produce more meaty sound! + GremlinSeeker: + - bugfix: fixed Birdshot bar and surrounding areas not properly connected to the + power grid. + LT3: + - qol: Crew monitor defaults to sort by vitals + MTandi: + - image: New linen bin / basket sprites + - qol: It is easier to do some required techweb experiments on Charlie station now + - bugfix: Fixed experimental dissection surgeries giving too many points + - balance: 'Techweb: Moved NTNet relay back to tcomms node' + - balance: 'Techweb: Moved blood pack and chem pack to the starting node' + MrDas: + - bugfix: Bolas now slowdown properly. + - bugfix: Cult bolas no longer leave in-hand sprite when they ensnare to non-cult + user. + OrbisAnima: + - bugfix: Fixed the basic Sandwich recipe and tags, now it matches the description + and original intent. + - bugfix: Brought the fishing rewards experiments to normal values. + - bugfix: Bio Emergency crates now bring Bio Suits and Hoods compatible with the + Security Hoods and Suits Schematics. + Rhials: + - balance: All cameras in bathrooms and showers have been removed. + SmArtKar: + - bugfix: Dark matteors no longer claim that they have missed when they actually + impacted the station + - image: Fixed shading on some metal ingots. + Sosmaster9000: + - balance: 'Xenobiologists now have a BZ-filled containment pen. Don''t breathe + that! + + balance:Some items which either cannot be printed elsewhere or are part of game + progression (e.g. teleporter endpoints and, of course, Nanners) have been moved. + Alien Spawnpoints are in the same spot.' + bob-b-b: + - rscadd: Added flatpacker & multitool to all R&D labs + carlarctg: + - rscdel: Removed Trichromatic Larynx per @mothblocks decision that it looks uggo. + - rscdel: Replaced heckacious laryncks' color and size changes with random bolding, + italics, and underlining. + - rscadd: Stoner has been un-locked and replaces TL in the above's recipe. + - bugfix: Fixed elastic arms users being unable to use abstract items like mending + touch or shock touch. + - bugfix: Fixed mending touch being bad + mc-oofert: + - bugfix: portascrubbers also scrub the tile theyre on +2024-07-04: + 00-Steven: + - code_imp: Moved bedsheet interactions to the item interaction code. Please report + any issues. + - bugfix: Bedsheets adjust their offset to match that of the living they're tucking + in. + - sound: Bedsheets use the cloth drop/pickup sounds instead of being silent. + - qol: You can tuck someone in telekinetically. + ArcaneDefence: + - rscadd: You can now microwave station pets that you can pick up, with predictable + outcomes + Ben10Omintrix: + - bugfix: fixes mansus grasp not clearing runes + - bugfix: fixes not being able to clean microwaves + Bisar: + - bugfix: Dastardly clowns will no longer be able to get counted for three times + the steps by moving diagonally. + Ghommie: + - bugfix: Fixed toggleable screen colors for glasses. + - code_imp: De-hardcoded, refactored the above, now-fixed feature. + - rscadd: Pumpkin hardhats and the hood of the flash suit now affect the color of + your screen. + - rscadd: Prism glasses, obtainable through xenobiology crossbreeding, now also + affect the color of your screen. + - qol: You no longer need to reach the very edge of the game screen to reach the + maximum zoom range when scoped. + LT3: + - sound: Changed blood filter cycle sound + MTandi: + - image: Fixed the cargo crate having wrong stripe width in open state + - rscadd: Added Pipe Scrubber portable atmos machine + Melbert: + - rscadd: Humonkeys and random corpse spawns now look more... human. + Paxilmaniac: + - image: The sprites for the projectile dampener field have been updated + Profakos: + - bugfix: Instruments enhanced with portable tuning can perform the rites that have + been granted + SmArtKar: + - image: Some gloves have received new sprites + - bugfix: Mending touch no longer damages non-humans + - rscdel: You can no longer get turned into a dullahan by a genetic meltdown + - refactor: Refactored genetic meltdown code into datums, making it more extendable. + - image: Updated diamond stacks to fit its "unstacked" version. + - refactor: Bayonet attachment is now a component. + SyncIt21: + - bugfix: omni crowbar tool interaction for replacing tiles has been fixed + - bugfix: techfab screentip does not runtime when you hover over it with an omnitool + multitool + - bugfix: medi borgs can do brain surgery again + - code_imp: improved multitool & general tool code for some machines + - bugfix: you can hold your wound while resting via ctrl click + - bugfix: material container won't consume the contents of an item if that item + itself is rejected for any reason + - qol: you can use any storage medium & not just bags/boxes to dump stuff into material + containers + - code_imp: improved mouse drag & drop code + - code_imp: Improves cpu performance of transferring & removing reagents + - bugfix: plumbing machinery should have consistent volumes throughout the course + of its operations + - bugfix: plumbing iv drop now only accepts reagents from ducts but won't put reagents + back into it i.e. it only has a input pipe + Thunder12345: + - bugfix: Birdshot's AI core no longer has windoors concealed under open shutters. + ViktorKoL: + - rscadd: the Feast of Owls now leaves more dramatic messages in your chat + - sound: the Feast of Owls now has a little theme + carlarctg: + - qol: Transhumanist and prosthetic limb no longer conflict. If you pick the same + limb for both it uses the weaker prosthetic (dumbass) + - code_imp: Made the name for prosthetic limb global list more intelligible + jlsnow301: + - bugfix: Reverts the fully interactive lootpanel, please just refresh it if you + want to see new contents + - rscadd: 'Added a bitrunning deathmatch map: Island Brawl. Both ghosts and runners + get many more spawns than normal.' + - bugfix: Lowered the static vision time in domain load in. + - bugfix: Bitrunning hacker aliases are now much more permissive + mc-oofert: + - rscadd: 254 new vox lines + - balance: removed tasers, the unfirable turret gun, death wand, polymorph wands + and the enchanted modsuit from lootbox loot tables + - bugfix: lootbox guns should now mostly not have syndicate firing pins so you can + actually use them + - bugfix: deathmatch OSHA Violator map has actually functioning field gens now + - bugfix: being polymorphed in deathmatch does not count you dead + - bugfix: deathmatch cyborgs may not talk in binary + - qol: deathmatch map names are sorted alphabetically + - spellcheck: deathmatch final destination clown and chef loadouts have been renamed + to avoid confusion + - rscadd: mecha wire that shoots you or anyone nearby if pulsed or cut + - bugfix: mecha shock wire shocks you diff --git a/icons/effects/bitrunning.dmi b/icons/effects/bitrunning.dmi index 8efa429389c3a..9a2e9c0228a57 100644 Binary files a/icons/effects/bitrunning.dmi and b/icons/effects/bitrunning.dmi differ diff --git a/icons/effects/fields.dmi b/icons/effects/fields.dmi index f87e1f3975e86..1e42870787674 100644 Binary files a/icons/effects/fields.dmi and b/icons/effects/fields.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index a670c33b7dcf6..ded01542e31b6 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/inhands/clothing/gloves_lefthand.dmi b/icons/mob/inhands/clothing/gloves_lefthand.dmi index 6277d146ffc3d..4d191e42939b7 100644 Binary files a/icons/mob/inhands/clothing/gloves_lefthand.dmi and b/icons/mob/inhands/clothing/gloves_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing/gloves_righthand.dmi b/icons/mob/inhands/clothing/gloves_righthand.dmi index 7479dd8c505cc..f8ce306cc9850 100644 Binary files a/icons/mob/inhands/clothing/gloves_righthand.dmi and b/icons/mob/inhands/clothing/gloves_righthand.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index d5099c64e7f65..465340870dd48 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/pipes_n_cables/atmos.dmi b/icons/obj/pipes_n_cables/atmos.dmi index 91badbf3ccf9b..fc67ff54158f9 100644 Binary files a/icons/obj/pipes_n_cables/atmos.dmi and b/icons/obj/pipes_n_cables/atmos.dmi differ diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi index b4617915e86ed..f13b10bdf4a8a 100644 Binary files a/icons/obj/stack_objects.dmi and b/icons/obj/stack_objects.dmi differ diff --git a/icons/obj/storage/crates.dmi b/icons/obj/storage/crates.dmi index 0a8640860eced..34d5db6f3e898 100644 Binary files a/icons/obj/storage/crates.dmi and b/icons/obj/storage/crates.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index 94b88301f7aab..becab20e591de 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/sound/ambience/antag/heretic/heretic_gain_intense.ogg b/sound/ambience/antag/heretic/heretic_gain_intense.ogg new file mode 100644 index 0000000000000..5e6d4f4174fc9 Binary files /dev/null and b/sound/ambience/antag/heretic/heretic_gain_intense.ogg differ diff --git a/sound/vox_fem/absorb.ogg b/sound/vox_fem/absorb.ogg new file mode 100644 index 0000000000000..e05b4aa464570 Binary files /dev/null and b/sound/vox_fem/absorb.ogg differ diff --git a/sound/vox_fem/absorbed.ogg b/sound/vox_fem/absorbed.ogg new file mode 100644 index 0000000000000..726f1aa8c6ffb Binary files /dev/null and b/sound/vox_fem/absorbed.ogg differ diff --git a/sound/vox_fem/absorbing.ogg b/sound/vox_fem/absorbing.ogg new file mode 100644 index 0000000000000..8b8c1f575c744 Binary files /dev/null and b/sound/vox_fem/absorbing.ogg differ diff --git a/sound/vox_fem/activating.ogg b/sound/vox_fem/activating.ogg new file mode 100644 index 0000000000000..8082efb691143 Binary files /dev/null and b/sound/vox_fem/activating.ogg differ diff --git a/sound/vox_fem/activation.ogg b/sound/vox_fem/activation.ogg new file mode 100644 index 0000000000000..f06d33245df5b Binary files /dev/null and b/sound/vox_fem/activation.ogg differ diff --git a/sound/vox_fem/active.ogg b/sound/vox_fem/active.ogg new file mode 100644 index 0000000000000..54d0c1eb45f5c Binary files /dev/null and b/sound/vox_fem/active.ogg differ diff --git a/sound/vox_fem/affect.ogg b/sound/vox_fem/affect.ogg new file mode 100644 index 0000000000000..4c9b7aaeaad67 Binary files /dev/null and b/sound/vox_fem/affect.ogg differ diff --git a/sound/vox_fem/affected.ogg b/sound/vox_fem/affected.ogg new file mode 100644 index 0000000000000..c634e08f73421 Binary files /dev/null and b/sound/vox_fem/affected.ogg differ diff --git a/sound/vox_fem/affecting.ogg b/sound/vox_fem/affecting.ogg new file mode 100644 index 0000000000000..18f2e3c0c7a67 Binary files /dev/null and b/sound/vox_fem/affecting.ogg differ diff --git a/sound/vox_fem/alcohol.ogg b/sound/vox_fem/alcohol.ogg new file mode 100644 index 0000000000000..a304167a27f85 Binary files /dev/null and b/sound/vox_fem/alcohol.ogg differ diff --git a/sound/vox_fem/align.ogg b/sound/vox_fem/align.ogg new file mode 100644 index 0000000000000..bcf4b6465a89d Binary files /dev/null and b/sound/vox_fem/align.ogg differ diff --git a/sound/vox_fem/allow.ogg b/sound/vox_fem/allow.ogg new file mode 100644 index 0000000000000..ea0b8098fd75a Binary files /dev/null and b/sound/vox_fem/allow.ogg differ diff --git a/sound/vox_fem/alongside.ogg b/sound/vox_fem/alongside.ogg new file mode 100644 index 0000000000000..a96b9e7ba25d0 Binary files /dev/null and b/sound/vox_fem/alongside.ogg differ diff --git a/sound/vox_fem/amount.ogg b/sound/vox_fem/amount.ogg new file mode 100644 index 0000000000000..19b59e8263cf8 Binary files /dev/null and b/sound/vox_fem/amount.ogg differ diff --git a/sound/vox_fem/annihilate.ogg b/sound/vox_fem/annihilate.ogg new file mode 100644 index 0000000000000..375dfda691fd1 Binary files /dev/null and b/sound/vox_fem/annihilate.ogg differ diff --git a/sound/vox_fem/annihilated.ogg b/sound/vox_fem/annihilated.ogg new file mode 100644 index 0000000000000..823cc93dc6a6c Binary files /dev/null and b/sound/vox_fem/annihilated.ogg differ diff --git a/sound/vox_fem/annihilating.ogg b/sound/vox_fem/annihilating.ogg new file mode 100644 index 0000000000000..95a507df8503f Binary files /dev/null and b/sound/vox_fem/annihilating.ogg differ diff --git a/sound/vox_fem/annihilation.ogg b/sound/vox_fem/annihilation.ogg new file mode 100644 index 0000000000000..6acb85503388c Binary files /dev/null and b/sound/vox_fem/annihilation.ogg differ diff --git a/sound/vox_fem/anti-noblium.ogg b/sound/vox_fem/anti-noblium.ogg new file mode 100644 index 0000000000000..70f89e82229a7 Binary files /dev/null and b/sound/vox_fem/anti-noblium.ogg differ diff --git a/sound/vox_fem/arc.ogg b/sound/vox_fem/arc.ogg new file mode 100644 index 0000000000000..3ebed29740dd1 Binary files /dev/null and b/sound/vox_fem/arc.ogg differ diff --git a/sound/vox_fem/arcs.ogg b/sound/vox_fem/arcs.ogg new file mode 100644 index 0000000000000..cb32908d5b84e Binary files /dev/null and b/sound/vox_fem/arcs.ogg differ diff --git a/sound/vox_fem/around.ogg b/sound/vox_fem/around.ogg new file mode 100644 index 0000000000000..76183f92cda08 Binary files /dev/null and b/sound/vox_fem/around.ogg differ diff --git a/sound/vox_fem/ask.ogg b/sound/vox_fem/ask.ogg new file mode 100644 index 0000000000000..c8d00b0039996 Binary files /dev/null and b/sound/vox_fem/ask.ogg differ diff --git a/sound/vox_fem/ate.ogg b/sound/vox_fem/ate.ogg new file mode 100644 index 0000000000000..8dcdd461d11c2 Binary files /dev/null and b/sound/vox_fem/ate.ogg differ diff --git a/sound/vox_fem/beaker.ogg b/sound/vox_fem/beaker.ogg new file mode 100644 index 0000000000000..6863afc5c79af Binary files /dev/null and b/sound/vox_fem/beaker.ogg differ diff --git a/sound/vox_fem/began.ogg b/sound/vox_fem/began.ogg new file mode 100644 index 0000000000000..548143aff53c5 Binary files /dev/null and b/sound/vox_fem/began.ogg differ diff --git a/sound/vox_fem/begin.ogg b/sound/vox_fem/begin.ogg new file mode 100644 index 0000000000000..5c70cebbb0966 Binary files /dev/null and b/sound/vox_fem/begin.ogg differ diff --git a/sound/vox_fem/begins.ogg b/sound/vox_fem/begins.ogg new file mode 100644 index 0000000000000..5fedd2ef4b59b Binary files /dev/null and b/sound/vox_fem/begins.ogg differ diff --git a/sound/vox_fem/bottle.ogg b/sound/vox_fem/bottle.ogg new file mode 100644 index 0000000000000..b5bd1f34e761b Binary files /dev/null and b/sound/vox_fem/bottle.ogg differ diff --git a/sound/vox_fem/broke.ogg b/sound/vox_fem/broke.ogg new file mode 100644 index 0000000000000..a1a075d6769c9 Binary files /dev/null and b/sound/vox_fem/broke.ogg differ diff --git a/sound/vox_fem/broken.ogg b/sound/vox_fem/broken.ogg new file mode 100644 index 0000000000000..589dabc0a3924 Binary files /dev/null and b/sound/vox_fem/broken.ogg differ diff --git a/sound/vox_fem/bump.ogg b/sound/vox_fem/bump.ogg new file mode 100644 index 0000000000000..c6892a3412fa5 Binary files /dev/null and b/sound/vox_fem/bump.ogg differ diff --git a/sound/vox_fem/bumped.ogg b/sound/vox_fem/bumped.ogg new file mode 100644 index 0000000000000..6d111a8731d1a Binary files /dev/null and b/sound/vox_fem/bumped.ogg differ diff --git a/sound/vox_fem/bumps.ogg b/sound/vox_fem/bumps.ogg new file mode 100644 index 0000000000000..a7fff16f04802 Binary files /dev/null and b/sound/vox_fem/bumps.ogg differ diff --git a/sound/vox_fem/can.ogg b/sound/vox_fem/can.ogg new file mode 100644 index 0000000000000..0d77353ad99e1 Binary files /dev/null and b/sound/vox_fem/can.ogg differ diff --git a/sound/vox_fem/cascade.ogg b/sound/vox_fem/cascade.ogg new file mode 100644 index 0000000000000..cc7e70ed00d25 Binary files /dev/null and b/sound/vox_fem/cascade.ogg differ diff --git a/sound/vox_fem/cause.ogg b/sound/vox_fem/cause.ogg new file mode 100644 index 0000000000000..2294d0405d037 Binary files /dev/null and b/sound/vox_fem/cause.ogg differ diff --git a/sound/vox_fem/caused.ogg b/sound/vox_fem/caused.ogg new file mode 100644 index 0000000000000..c91eecaa90db4 Binary files /dev/null and b/sound/vox_fem/caused.ogg differ diff --git a/sound/vox_fem/causes.ogg b/sound/vox_fem/causes.ogg new file mode 100644 index 0000000000000..019430ccb4a07 Binary files /dev/null and b/sound/vox_fem/causes.ogg differ diff --git a/sound/vox_fem/causing.ogg b/sound/vox_fem/causing.ogg new file mode 100644 index 0000000000000..e41ab06c2b4ae Binary files /dev/null and b/sound/vox_fem/causing.ogg differ diff --git a/sound/vox_fem/charge.ogg b/sound/vox_fem/charge.ogg new file mode 100644 index 0000000000000..b5adb81d83b57 Binary files /dev/null and b/sound/vox_fem/charge.ogg differ diff --git a/sound/vox_fem/clog.ogg b/sound/vox_fem/clog.ogg new file mode 100644 index 0000000000000..31e6bf604ec49 Binary files /dev/null and b/sound/vox_fem/clog.ogg differ diff --git a/sound/vox_fem/clothing.ogg b/sound/vox_fem/clothing.ogg new file mode 100644 index 0000000000000..912a7532fe3a4 Binary files /dev/null and b/sound/vox_fem/clothing.ogg differ diff --git a/sound/vox_fem/coil.ogg b/sound/vox_fem/coil.ogg new file mode 100644 index 0000000000000..d9a76618eb4f5 Binary files /dev/null and b/sound/vox_fem/coil.ogg differ diff --git a/sound/vox_fem/coils.ogg b/sound/vox_fem/coils.ogg new file mode 100644 index 0000000000000..12d0d54fd3e8f Binary files /dev/null and b/sound/vox_fem/coils.ogg differ diff --git a/sound/vox_fem/combat.ogg b/sound/vox_fem/combat.ogg new file mode 100644 index 0000000000000..51a438ea95325 Binary files /dev/null and b/sound/vox_fem/combat.ogg differ diff --git a/sound/vox_fem/combatant.ogg b/sound/vox_fem/combatant.ogg new file mode 100644 index 0000000000000..d82f5dddd0092 Binary files /dev/null and b/sound/vox_fem/combatant.ogg differ diff --git a/sound/vox_fem/complete.ogg b/sound/vox_fem/complete.ogg new file mode 100644 index 0000000000000..134d280d068ff Binary files /dev/null and b/sound/vox_fem/complete.ogg differ diff --git a/sound/vox_fem/completed.ogg b/sound/vox_fem/completed.ogg new file mode 100644 index 0000000000000..bdeca3b4fe34d Binary files /dev/null and b/sound/vox_fem/completed.ogg differ diff --git a/sound/vox_fem/completion.ogg b/sound/vox_fem/completion.ogg new file mode 100644 index 0000000000000..c4d65fbdad0c7 Binary files /dev/null and b/sound/vox_fem/completion.ogg differ diff --git a/sound/vox_fem/conditions.ogg b/sound/vox_fem/conditions.ogg new file mode 100644 index 0000000000000..79e0a6bfe8f3a Binary files /dev/null and b/sound/vox_fem/conditions.ogg differ diff --git a/sound/vox_fem/configure.ogg b/sound/vox_fem/configure.ogg new file mode 100644 index 0000000000000..753339e761e8a Binary files /dev/null and b/sound/vox_fem/configure.ogg differ diff --git a/sound/vox_fem/configured.ogg b/sound/vox_fem/configured.ogg new file mode 100644 index 0000000000000..544ed189add4f Binary files /dev/null and b/sound/vox_fem/configured.ogg differ diff --git a/sound/vox_fem/configuring.ogg b/sound/vox_fem/configuring.ogg new file mode 100644 index 0000000000000..eb81a1bb1df1c Binary files /dev/null and b/sound/vox_fem/configuring.ogg differ diff --git a/sound/vox_fem/container.ogg b/sound/vox_fem/container.ogg new file mode 100644 index 0000000000000..59fe11b5f48c7 Binary files /dev/null and b/sound/vox_fem/container.ogg differ diff --git a/sound/vox_fem/cool.ogg b/sound/vox_fem/cool.ogg new file mode 100644 index 0000000000000..0e8c39a92608c Binary files /dev/null and b/sound/vox_fem/cool.ogg differ diff --git a/sound/vox_fem/cooling.ogg b/sound/vox_fem/cooling.ogg new file mode 100644 index 0000000000000..eef866ca1b16b Binary files /dev/null and b/sound/vox_fem/cooling.ogg differ diff --git a/sound/vox_fem/could.ogg b/sound/vox_fem/could.ogg new file mode 100644 index 0000000000000..fdbd14f696c29 Binary files /dev/null and b/sound/vox_fem/could.ogg differ diff --git a/sound/vox_fem/couldnt.ogg b/sound/vox_fem/couldnt.ogg new file mode 100644 index 0000000000000..80550544ee497 Binary files /dev/null and b/sound/vox_fem/couldnt.ogg differ diff --git a/sound/vox_fem/countdown.ogg b/sound/vox_fem/countdown.ogg new file mode 100644 index 0000000000000..93b0f64961575 Binary files /dev/null and b/sound/vox_fem/countdown.ogg differ diff --git a/sound/vox_fem/create.ogg b/sound/vox_fem/create.ogg new file mode 100644 index 0000000000000..f4f1797202af2 Binary files /dev/null and b/sound/vox_fem/create.ogg differ diff --git a/sound/vox_fem/creating.ogg b/sound/vox_fem/creating.ogg new file mode 100644 index 0000000000000..ca2a92d5d7264 Binary files /dev/null and b/sound/vox_fem/creating.ogg differ diff --git a/sound/vox_fem/delaminating.ogg b/sound/vox_fem/delaminating.ogg new file mode 100644 index 0000000000000..3c023387abf4a Binary files /dev/null and b/sound/vox_fem/delaminating.ogg differ diff --git a/sound/vox_fem/delamination.ogg b/sound/vox_fem/delamination.ogg new file mode 100644 index 0000000000000..993c06fd4eae7 Binary files /dev/null and b/sound/vox_fem/delamination.ogg differ diff --git a/sound/vox_fem/deny.ogg b/sound/vox_fem/deny.ogg new file mode 100644 index 0000000000000..df6b5cb40fb63 Binary files /dev/null and b/sound/vox_fem/deny.ogg differ diff --git a/sound/vox_fem/detect.ogg b/sound/vox_fem/detect.ogg new file mode 100644 index 0000000000000..e5ea9092f0af4 Binary files /dev/null and b/sound/vox_fem/detect.ogg differ diff --git a/sound/vox_fem/detecting.ogg b/sound/vox_fem/detecting.ogg new file mode 100644 index 0000000000000..1b849cd836ddb Binary files /dev/null and b/sound/vox_fem/detecting.ogg differ diff --git a/sound/vox_fem/different.ogg b/sound/vox_fem/different.ogg new file mode 100644 index 0000000000000..dfce0903818db Binary files /dev/null and b/sound/vox_fem/different.ogg differ diff --git a/sound/vox_fem/direct.ogg b/sound/vox_fem/direct.ogg new file mode 100644 index 0000000000000..f1268e34a0968 Binary files /dev/null and b/sound/vox_fem/direct.ogg differ diff --git a/sound/vox_fem/dont.ogg b/sound/vox_fem/dont.ogg new file mode 100644 index 0000000000000..20723c8687ca3 Binary files /dev/null and b/sound/vox_fem/dont.ogg differ diff --git a/sound/vox_fem/double.ogg b/sound/vox_fem/double.ogg new file mode 100644 index 0000000000000..3c3eb3157bc36 Binary files /dev/null and b/sound/vox_fem/double.ogg differ diff --git a/sound/vox_fem/dress.ogg b/sound/vox_fem/dress.ogg new file mode 100644 index 0000000000000..84cc7fe79b99f Binary files /dev/null and b/sound/vox_fem/dress.ogg differ diff --git a/sound/vox_fem/dressed.ogg b/sound/vox_fem/dressed.ogg new file mode 100644 index 0000000000000..4a9ef3515a63f Binary files /dev/null and b/sound/vox_fem/dressed.ogg differ diff --git a/sound/vox_fem/dressing.ogg b/sound/vox_fem/dressing.ogg new file mode 100644 index 0000000000000..dded3edabb3b4 Binary files /dev/null and b/sound/vox_fem/dressing.ogg differ diff --git a/sound/vox_fem/easily.ogg b/sound/vox_fem/easily.ogg new file mode 100644 index 0000000000000..cadf6f9291fbb Binary files /dev/null and b/sound/vox_fem/easily.ogg differ diff --git a/sound/vox_fem/eat.ogg b/sound/vox_fem/eat.ogg new file mode 100644 index 0000000000000..b33c5a3503459 Binary files /dev/null and b/sound/vox_fem/eat.ogg differ diff --git a/sound/vox_fem/eaten.ogg b/sound/vox_fem/eaten.ogg new file mode 100644 index 0000000000000..9005930d0f6ad Binary files /dev/null and b/sound/vox_fem/eaten.ogg differ diff --git a/sound/vox_fem/education.ogg b/sound/vox_fem/education.ogg new file mode 100644 index 0000000000000..9a7ed1d17d12c Binary files /dev/null and b/sound/vox_fem/education.ogg differ diff --git a/sound/vox_fem/effects.ogg b/sound/vox_fem/effects.ogg new file mode 100644 index 0000000000000..59eb22c67fe4c Binary files /dev/null and b/sound/vox_fem/effects.ogg differ diff --git a/sound/vox_fem/electrical.ogg b/sound/vox_fem/electrical.ogg new file mode 100644 index 0000000000000..08e40b2367c55 Binary files /dev/null and b/sound/vox_fem/electrical.ogg differ diff --git a/sound/vox_fem/emitted.ogg b/sound/vox_fem/emitted.ogg new file mode 100644 index 0000000000000..d31b6307a3d1d Binary files /dev/null and b/sound/vox_fem/emitted.ogg differ diff --git a/sound/vox_fem/emitter.ogg b/sound/vox_fem/emitter.ogg new file mode 100644 index 0000000000000..6662ece8be40c Binary files /dev/null and b/sound/vox_fem/emitter.ogg differ diff --git a/sound/vox_fem/emitting.ogg b/sound/vox_fem/emitting.ogg new file mode 100644 index 0000000000000..377f792c08016 Binary files /dev/null and b/sound/vox_fem/emitting.ogg differ diff --git a/sound/vox_fem/end.ogg b/sound/vox_fem/end.ogg new file mode 100644 index 0000000000000..95b430e8b6434 Binary files /dev/null and b/sound/vox_fem/end.ogg differ diff --git a/sound/vox_fem/ends.ogg b/sound/vox_fem/ends.ogg new file mode 100644 index 0000000000000..34e06feb39ef7 Binary files /dev/null and b/sound/vox_fem/ends.ogg differ diff --git a/sound/vox_fem/enough.ogg b/sound/vox_fem/enough.ogg new file mode 100644 index 0000000000000..b7056903b955e Binary files /dev/null and b/sound/vox_fem/enough.ogg differ diff --git a/sound/vox_fem/even.ogg b/sound/vox_fem/even.ogg new file mode 100644 index 0000000000000..75294ef40251a Binary files /dev/null and b/sound/vox_fem/even.ogg differ diff --git a/sound/vox_fem/every.ogg b/sound/vox_fem/every.ogg new file mode 100644 index 0000000000000..6468158bd7dca Binary files /dev/null and b/sound/vox_fem/every.ogg differ diff --git a/sound/vox_fem/everybody.ogg b/sound/vox_fem/everybody.ogg new file mode 100644 index 0000000000000..8d8cc97489485 Binary files /dev/null and b/sound/vox_fem/everybody.ogg differ diff --git a/sound/vox_fem/everyone.ogg b/sound/vox_fem/everyone.ogg new file mode 100644 index 0000000000000..19e137b9a0cb6 Binary files /dev/null and b/sound/vox_fem/everyone.ogg differ diff --git a/sound/vox_fem/exploded.ogg b/sound/vox_fem/exploded.ogg new file mode 100644 index 0000000000000..1534b362892c6 Binary files /dev/null and b/sound/vox_fem/exploded.ogg differ diff --git a/sound/vox_fem/exploding.ogg b/sound/vox_fem/exploding.ogg new file mode 100644 index 0000000000000..a6980e6b53b70 Binary files /dev/null and b/sound/vox_fem/exploding.ogg differ diff --git a/sound/vox_fem/external.ogg b/sound/vox_fem/external.ogg new file mode 100644 index 0000000000000..d6f39b2651e0b Binary files /dev/null and b/sound/vox_fem/external.ogg differ diff --git a/sound/vox_fem/extra.ogg b/sound/vox_fem/extra.ogg new file mode 100644 index 0000000000000..0b5b16c6957b4 Binary files /dev/null and b/sound/vox_fem/extra.ogg differ diff --git a/sound/vox_fem/feature.ogg b/sound/vox_fem/feature.ogg new file mode 100644 index 0000000000000..59a3f68d456a6 Binary files /dev/null and b/sound/vox_fem/feature.ogg differ diff --git a/sound/vox_fem/featured.ogg b/sound/vox_fem/featured.ogg new file mode 100644 index 0000000000000..e087b0d7cc668 Binary files /dev/null and b/sound/vox_fem/featured.ogg differ diff --git a/sound/vox_fem/features.ogg b/sound/vox_fem/features.ogg new file mode 100644 index 0000000000000..745992b760a7a Binary files /dev/null and b/sound/vox_fem/features.ogg differ diff --git a/sound/vox_fem/featuring.ogg b/sound/vox_fem/featuring.ogg new file mode 100644 index 0000000000000..72578f2bb19d6 Binary files /dev/null and b/sound/vox_fem/featuring.ogg differ diff --git a/sound/vox_fem/few.ogg b/sound/vox_fem/few.ogg new file mode 100644 index 0000000000000..5ba76619c0f4f Binary files /dev/null and b/sound/vox_fem/few.ogg differ diff --git a/sound/vox_fem/filter.ogg b/sound/vox_fem/filter.ogg new file mode 100644 index 0000000000000..3b2ae95e37ff1 Binary files /dev/null and b/sound/vox_fem/filter.ogg differ diff --git a/sound/vox_fem/filters.ogg b/sound/vox_fem/filters.ogg new file mode 100644 index 0000000000000..204b82da198eb Binary files /dev/null and b/sound/vox_fem/filters.ogg differ diff --git a/sound/vox_fem/foolish.ogg b/sound/vox_fem/foolish.ogg new file mode 100644 index 0000000000000..214ed30f2c43c Binary files /dev/null and b/sound/vox_fem/foolish.ogg differ diff --git a/sound/vox_fem/freon.ogg b/sound/vox_fem/freon.ogg new file mode 100644 index 0000000000000..82128fee24109 Binary files /dev/null and b/sound/vox_fem/freon.ogg differ diff --git a/sound/vox_fem/gases.ogg b/sound/vox_fem/gases.ogg new file mode 100644 index 0000000000000..0605a2605566f Binary files /dev/null and b/sound/vox_fem/gases.ogg differ diff --git a/sound/vox_fem/gave.ogg b/sound/vox_fem/gave.ogg new file mode 100644 index 0000000000000..beb35f1f4215b Binary files /dev/null and b/sound/vox_fem/gave.ogg differ diff --git a/sound/vox_fem/gear.ogg b/sound/vox_fem/gear.ogg new file mode 100644 index 0000000000000..629667e5df418 Binary files /dev/null and b/sound/vox_fem/gear.ogg differ diff --git a/sound/vox_fem/geared.ogg b/sound/vox_fem/geared.ogg new file mode 100644 index 0000000000000..7188c657589d4 Binary files /dev/null and b/sound/vox_fem/geared.ogg differ diff --git a/sound/vox_fem/gearing.ogg b/sound/vox_fem/gearing.ogg new file mode 100644 index 0000000000000..9e27a7956943d Binary files /dev/null and b/sound/vox_fem/gearing.ogg differ diff --git a/sound/vox_fem/generate.ogg b/sound/vox_fem/generate.ogg new file mode 100644 index 0000000000000..ceb09ec3b4360 Binary files /dev/null and b/sound/vox_fem/generate.ogg differ diff --git a/sound/vox_fem/generated.ogg b/sound/vox_fem/generated.ogg new file mode 100644 index 0000000000000..42a49e7d43e54 Binary files /dev/null and b/sound/vox_fem/generated.ogg differ diff --git a/sound/vox_fem/generating.ogg b/sound/vox_fem/generating.ogg new file mode 100644 index 0000000000000..a90e62d9dd760 Binary files /dev/null and b/sound/vox_fem/generating.ogg differ diff --git a/sound/vox_fem/give.ogg b/sound/vox_fem/give.ogg new file mode 100644 index 0000000000000..8144ba82cccea Binary files /dev/null and b/sound/vox_fem/give.ogg differ diff --git a/sound/vox_fem/given.ogg b/sound/vox_fem/given.ogg new file mode 100644 index 0000000000000..63f86c4878f8a Binary files /dev/null and b/sound/vox_fem/given.ogg differ diff --git a/sound/vox_fem/halon.ogg b/sound/vox_fem/halon.ogg new file mode 100644 index 0000000000000..0cab7dee9a5c9 Binary files /dev/null and b/sound/vox_fem/halon.ogg differ diff --git a/sound/vox_fem/hard.ogg b/sound/vox_fem/hard.ogg new file mode 100644 index 0000000000000..be1a80c3f091b Binary files /dev/null and b/sound/vox_fem/hard.ogg differ diff --git a/sound/vox_fem/hardly.ogg b/sound/vox_fem/hardly.ogg new file mode 100644 index 0000000000000..bb4de217a1767 Binary files /dev/null and b/sound/vox_fem/hardly.ogg differ diff --git a/sound/vox_fem/harness.ogg b/sound/vox_fem/harness.ogg new file mode 100644 index 0000000000000..a81840955f4b7 Binary files /dev/null and b/sound/vox_fem/harness.ogg differ diff --git a/sound/vox_fem/harnessed.ogg b/sound/vox_fem/harnessed.ogg new file mode 100644 index 0000000000000..d1f259c7bdfd4 Binary files /dev/null and b/sound/vox_fem/harnessed.ogg differ diff --git a/sound/vox_fem/harnessing.ogg b/sound/vox_fem/harnessing.ogg new file mode 100644 index 0000000000000..3dbdd03af886d Binary files /dev/null and b/sound/vox_fem/harnessing.ogg differ diff --git a/sound/vox_fem/heal.ogg b/sound/vox_fem/heal.ogg new file mode 100644 index 0000000000000..f31b53c1cba5b Binary files /dev/null and b/sound/vox_fem/heal.ogg differ diff --git a/sound/vox_fem/healed.ogg b/sound/vox_fem/healed.ogg new file mode 100644 index 0000000000000..80eea8068a5b7 Binary files /dev/null and b/sound/vox_fem/healed.ogg differ diff --git a/sound/vox_fem/healing.ogg b/sound/vox_fem/healing.ogg new file mode 100644 index 0000000000000..6ebcc588294ff Binary files /dev/null and b/sound/vox_fem/healing.ogg differ diff --git a/sound/vox_fem/healium.ogg b/sound/vox_fem/healium.ogg new file mode 100644 index 0000000000000..79b4fd19de329 Binary files /dev/null and b/sound/vox_fem/healium.ogg differ diff --git a/sound/vox_fem/heated.ogg b/sound/vox_fem/heated.ogg new file mode 100644 index 0000000000000..e3db67adee43b Binary files /dev/null and b/sound/vox_fem/heated.ogg differ diff --git a/sound/vox_fem/heating.ogg b/sound/vox_fem/heating.ogg new file mode 100644 index 0000000000000..553b4d5576605 Binary files /dev/null and b/sound/vox_fem/heating.ogg differ diff --git a/sound/vox_fem/hydrogen.ogg b/sound/vox_fem/hydrogen.ogg new file mode 100644 index 0000000000000..050a3bc028cc5 Binary files /dev/null and b/sound/vox_fem/hydrogen.ogg differ diff --git a/sound/vox_fem/hyper-noblium.ogg b/sound/vox_fem/hyper-noblium.ogg new file mode 100644 index 0000000000000..4fda6b404689f Binary files /dev/null and b/sound/vox_fem/hyper-noblium.ogg differ diff --git a/sound/vox_fem/inert.ogg b/sound/vox_fem/inert.ogg new file mode 100644 index 0000000000000..00826c23b2afa Binary files /dev/null and b/sound/vox_fem/inert.ogg differ diff --git a/sound/vox_fem/internal.ogg b/sound/vox_fem/internal.ogg new file mode 100644 index 0000000000000..0cc275bd471c1 Binary files /dev/null and b/sound/vox_fem/internal.ogg differ diff --git a/sound/vox_fem/irradiate.ogg b/sound/vox_fem/irradiate.ogg new file mode 100644 index 0000000000000..d14b296179828 Binary files /dev/null and b/sound/vox_fem/irradiate.ogg differ diff --git a/sound/vox_fem/its.ogg b/sound/vox_fem/its.ogg new file mode 100644 index 0000000000000..b5c2c22dd5720 Binary files /dev/null and b/sound/vox_fem/its.ogg differ diff --git a/sound/vox_fem/job.ogg b/sound/vox_fem/job.ogg new file mode 100644 index 0000000000000..5b8186d0f7266 Binary files /dev/null and b/sound/vox_fem/job.ogg differ diff --git a/sound/vox_fem/jobs.ogg b/sound/vox_fem/jobs.ogg new file mode 100644 index 0000000000000..3fd3529e06c38 Binary files /dev/null and b/sound/vox_fem/jobs.ogg differ diff --git a/sound/vox_fem/kelvin.ogg b/sound/vox_fem/kelvin.ogg new file mode 100644 index 0000000000000..dd759e02214f6 Binary files /dev/null and b/sound/vox_fem/kelvin.ogg differ diff --git a/sound/vox_fem/limit.ogg b/sound/vox_fem/limit.ogg new file mode 100644 index 0000000000000..d88bd43e01d91 Binary files /dev/null and b/sound/vox_fem/limit.ogg differ diff --git a/sound/vox_fem/limited.ogg b/sound/vox_fem/limited.ogg new file mode 100644 index 0000000000000..df3d3b3ebe4c1 Binary files /dev/null and b/sound/vox_fem/limited.ogg differ diff --git a/sound/vox_fem/list.ogg b/sound/vox_fem/list.ogg new file mode 100644 index 0000000000000..1c3d643983307 Binary files /dev/null and b/sound/vox_fem/list.ogg differ diff --git a/sound/vox_fem/made.ogg b/sound/vox_fem/made.ogg new file mode 100644 index 0000000000000..3540661b5c1c9 Binary files /dev/null and b/sound/vox_fem/made.ogg differ diff --git a/sound/vox_fem/making.ogg b/sound/vox_fem/making.ogg new file mode 100644 index 0000000000000..d2ee9ab93e3dd Binary files /dev/null and b/sound/vox_fem/making.ogg differ diff --git a/sound/vox_fem/mean.ogg b/sound/vox_fem/mean.ogg new file mode 100644 index 0000000000000..d53391b033fdb Binary files /dev/null and b/sound/vox_fem/mean.ogg differ diff --git a/sound/vox_fem/means.ogg b/sound/vox_fem/means.ogg new file mode 100644 index 0000000000000..068cb7bfd1a73 Binary files /dev/null and b/sound/vox_fem/means.ogg differ diff --git a/sound/vox_fem/medium.ogg b/sound/vox_fem/medium.ogg new file mode 100644 index 0000000000000..0bd964ffe35b9 Binary files /dev/null and b/sound/vox_fem/medium.ogg differ diff --git a/sound/vox_fem/meson.ogg b/sound/vox_fem/meson.ogg new file mode 100644 index 0000000000000..5bd85d3292003 Binary files /dev/null and b/sound/vox_fem/meson.ogg differ diff --git a/sound/vox_fem/method.ogg b/sound/vox_fem/method.ogg new file mode 100644 index 0000000000000..4da8e60475f38 Binary files /dev/null and b/sound/vox_fem/method.ogg differ diff --git a/sound/vox_fem/miasma.ogg b/sound/vox_fem/miasma.ogg new file mode 100644 index 0000000000000..5956b203f87a1 Binary files /dev/null and b/sound/vox_fem/miasma.ogg differ diff --git a/sound/vox_fem/minute.ogg b/sound/vox_fem/minute.ogg new file mode 100644 index 0000000000000..fe29d747120de Binary files /dev/null and b/sound/vox_fem/minute.ogg differ diff --git a/sound/vox_fem/mixture.ogg b/sound/vox_fem/mixture.ogg new file mode 100644 index 0000000000000..63525110a7a70 Binary files /dev/null and b/sound/vox_fem/mixture.ogg differ diff --git a/sound/vox_fem/most.ogg b/sound/vox_fem/most.ogg new file mode 100644 index 0000000000000..472837fced880 Binary files /dev/null and b/sound/vox_fem/most.ogg differ diff --git a/sound/vox_fem/moved.ogg b/sound/vox_fem/moved.ogg new file mode 100644 index 0000000000000..e8eb17787ef4f Binary files /dev/null and b/sound/vox_fem/moved.ogg differ diff --git a/sound/vox_fem/moving.ogg b/sound/vox_fem/moving.ogg new file mode 100644 index 0000000000000..258c38a711668 Binary files /dev/null and b/sound/vox_fem/moving.ogg differ diff --git a/sound/vox_fem/near.ogg b/sound/vox_fem/near.ogg new file mode 100644 index 0000000000000..0c48f322133a8 Binary files /dev/null and b/sound/vox_fem/near.ogg differ diff --git a/sound/vox_fem/nearly.ogg b/sound/vox_fem/nearly.ogg new file mode 100644 index 0000000000000..2b76f6323f834 Binary files /dev/null and b/sound/vox_fem/nearly.ogg differ diff --git a/sound/vox_fem/none.ogg b/sound/vox_fem/none.ogg new file mode 100644 index 0000000000000..6c16899ce9264 Binary files /dev/null and b/sound/vox_fem/none.ogg differ diff --git a/sound/vox_fem/normal.ogg b/sound/vox_fem/normal.ogg new file mode 100644 index 0000000000000..cf68ed5ec5e29 Binary files /dev/null and b/sound/vox_fem/normal.ogg differ diff --git a/sound/vox_fem/normally.ogg b/sound/vox_fem/normally.ogg new file mode 100644 index 0000000000000..81d7c16d366d4 Binary files /dev/null and b/sound/vox_fem/normally.ogg differ diff --git a/sound/vox_fem/notably.ogg b/sound/vox_fem/notably.ogg new file mode 100644 index 0000000000000..d6f604390502f Binary files /dev/null and b/sound/vox_fem/notably.ogg differ diff --git a/sound/vox_fem/object.ogg b/sound/vox_fem/object.ogg new file mode 100644 index 0000000000000..091c4b6b190e6 Binary files /dev/null and b/sound/vox_fem/object.ogg differ diff --git a/sound/vox_fem/ordered.ogg b/sound/vox_fem/ordered.ogg new file mode 100644 index 0000000000000..a483e355544f8 Binary files /dev/null and b/sound/vox_fem/ordered.ogg differ diff --git a/sound/vox_fem/ordering.ogg b/sound/vox_fem/ordering.ogg new file mode 100644 index 0000000000000..e05a1534d3c5b Binary files /dev/null and b/sound/vox_fem/ordering.ogg differ diff --git a/sound/vox_fem/output.ogg b/sound/vox_fem/output.ogg new file mode 100644 index 0000000000000..fc3e5312c4eaf Binary files /dev/null and b/sound/vox_fem/output.ogg differ diff --git a/sound/vox_fem/own.ogg b/sound/vox_fem/own.ogg new file mode 100644 index 0000000000000..e978ba4a8da1e Binary files /dev/null and b/sound/vox_fem/own.ogg differ diff --git a/sound/vox_fem/pda.ogg b/sound/vox_fem/pda.ogg new file mode 100644 index 0000000000000..72407e2b0e324 Binary files /dev/null and b/sound/vox_fem/pda.ogg differ diff --git a/sound/vox_fem/plating.ogg b/sound/vox_fem/plating.ogg new file mode 100644 index 0000000000000..d0783ca5e351e Binary files /dev/null and b/sound/vox_fem/plating.ogg differ diff --git a/sound/vox_fem/pluoxium.ogg b/sound/vox_fem/pluoxium.ogg new file mode 100644 index 0000000000000..cb52c5ac29856 Binary files /dev/null and b/sound/vox_fem/pluoxium.ogg differ diff --git a/sound/vox_fem/portion.ogg b/sound/vox_fem/portion.ogg new file mode 100644 index 0000000000000..7f2f699da1900 Binary files /dev/null and b/sound/vox_fem/portion.ogg differ diff --git a/sound/vox_fem/powered.ogg b/sound/vox_fem/powered.ogg new file mode 100644 index 0000000000000..d03eb08d5645e Binary files /dev/null and b/sound/vox_fem/powered.ogg differ diff --git a/sound/vox_fem/powering.ogg b/sound/vox_fem/powering.ogg new file mode 100644 index 0000000000000..7c13b590846c2 Binary files /dev/null and b/sound/vox_fem/powering.ogg differ diff --git a/sound/vox_fem/premature.ogg b/sound/vox_fem/premature.ogg new file mode 100644 index 0000000000000..19fb67b8f3b87 Binary files /dev/null and b/sound/vox_fem/premature.ogg differ diff --git a/sound/vox_fem/prematurely.ogg b/sound/vox_fem/prematurely.ogg new file mode 100644 index 0000000000000..b3422a535f6ae Binary files /dev/null and b/sound/vox_fem/prematurely.ogg differ diff --git a/sound/vox_fem/priority.ogg b/sound/vox_fem/priority.ogg new file mode 100644 index 0000000000000..5084584a44e12 Binary files /dev/null and b/sound/vox_fem/priority.ogg differ diff --git a/sound/vox_fem/projectile.ogg b/sound/vox_fem/projectile.ogg new file mode 100644 index 0000000000000..ec6d297926ac9 Binary files /dev/null and b/sound/vox_fem/projectile.ogg differ diff --git a/sound/vox_fem/protect.ogg b/sound/vox_fem/protect.ogg new file mode 100644 index 0000000000000..512d7e30e27d1 Binary files /dev/null and b/sound/vox_fem/protect.ogg differ diff --git a/sound/vox_fem/protected.ogg b/sound/vox_fem/protected.ogg new file mode 100644 index 0000000000000..7f6c8c0f6efdc Binary files /dev/null and b/sound/vox_fem/protected.ogg differ diff --git a/sound/vox_fem/protection.ogg b/sound/vox_fem/protection.ogg new file mode 100644 index 0000000000000..90b6a508e2aa9 Binary files /dev/null and b/sound/vox_fem/protection.ogg differ diff --git a/sound/vox_fem/proto-nitrate.ogg b/sound/vox_fem/proto-nitrate.ogg new file mode 100644 index 0000000000000..13f3aed7b450e Binary files /dev/null and b/sound/vox_fem/proto-nitrate.ogg differ diff --git a/sound/vox_fem/pull.ogg b/sound/vox_fem/pull.ogg new file mode 100644 index 0000000000000..9ac8e2c399ad7 Binary files /dev/null and b/sound/vox_fem/pull.ogg differ diff --git a/sound/vox_fem/pulled.ogg b/sound/vox_fem/pulled.ogg new file mode 100644 index 0000000000000..ef3388a25c9a7 Binary files /dev/null and b/sound/vox_fem/pulled.ogg differ diff --git a/sound/vox_fem/pulling.ogg b/sound/vox_fem/pulling.ogg new file mode 100644 index 0000000000000..5a2b5532e5acb Binary files /dev/null and b/sound/vox_fem/pulling.ogg differ diff --git a/sound/vox_fem/pump.ogg b/sound/vox_fem/pump.ogg new file mode 100644 index 0000000000000..07400cb2b8c26 Binary files /dev/null and b/sound/vox_fem/pump.ogg differ diff --git a/sound/vox_fem/pumps.ogg b/sound/vox_fem/pumps.ogg new file mode 100644 index 0000000000000..eba663d3963c4 Binary files /dev/null and b/sound/vox_fem/pumps.ogg differ diff --git a/sound/vox_fem/release.ogg b/sound/vox_fem/release.ogg new file mode 100644 index 0000000000000..4a9350168483f Binary files /dev/null and b/sound/vox_fem/release.ogg differ diff --git a/sound/vox_fem/releasing.ogg b/sound/vox_fem/releasing.ogg new file mode 100644 index 0000000000000..3d2a5d0ed70bd Binary files /dev/null and b/sound/vox_fem/releasing.ogg differ diff --git a/sound/vox_fem/remove.ogg b/sound/vox_fem/remove.ogg new file mode 100644 index 0000000000000..e9b2cb3bc1204 Binary files /dev/null and b/sound/vox_fem/remove.ogg differ diff --git a/sound/vox_fem/removed.ogg b/sound/vox_fem/removed.ogg new file mode 100644 index 0000000000000..2a7d78e9280b5 Binary files /dev/null and b/sound/vox_fem/removed.ogg differ diff --git a/sound/vox_fem/removing.ogg b/sound/vox_fem/removing.ogg new file mode 100644 index 0000000000000..638d20b0c354d Binary files /dev/null and b/sound/vox_fem/removing.ogg differ diff --git a/sound/vox_fem/resistant.ogg b/sound/vox_fem/resistant.ogg new file mode 100644 index 0000000000000..4401519979172 Binary files /dev/null and b/sound/vox_fem/resistant.ogg differ diff --git a/sound/vox_fem/resisting.ogg b/sound/vox_fem/resisting.ogg new file mode 100644 index 0000000000000..c3c23d267fd94 Binary files /dev/null and b/sound/vox_fem/resisting.ogg differ diff --git a/sound/vox_fem/resonance.ogg b/sound/vox_fem/resonance.ogg new file mode 100644 index 0000000000000..0d569574c8363 Binary files /dev/null and b/sound/vox_fem/resonance.ogg differ diff --git a/sound/vox_fem/sabotaged.ogg b/sound/vox_fem/sabotaged.ogg new file mode 100644 index 0000000000000..9d883d12218c0 Binary files /dev/null and b/sound/vox_fem/sabotaged.ogg differ diff --git a/sound/vox_fem/sabotaging.ogg b/sound/vox_fem/sabotaging.ogg new file mode 100644 index 0000000000000..a8b5d6680c329 Binary files /dev/null and b/sound/vox_fem/sabotaging.ogg differ diff --git a/sound/vox_fem/same.ogg b/sound/vox_fem/same.ogg new file mode 100644 index 0000000000000..38adb22168bca Binary files /dev/null and b/sound/vox_fem/same.ogg differ diff --git a/sound/vox_fem/saw.ogg b/sound/vox_fem/saw.ogg new file mode 100644 index 0000000000000..fa3c7b1994d11 Binary files /dev/null and b/sound/vox_fem/saw.ogg differ diff --git a/sound/vox_fem/scan.ogg b/sound/vox_fem/scan.ogg new file mode 100644 index 0000000000000..36026e8f8c471 Binary files /dev/null and b/sound/vox_fem/scan.ogg differ diff --git a/sound/vox_fem/scanned.ogg b/sound/vox_fem/scanned.ogg new file mode 100644 index 0000000000000..bc9bb80ac4c9c Binary files /dev/null and b/sound/vox_fem/scanned.ogg differ diff --git a/sound/vox_fem/scanner.ogg b/sound/vox_fem/scanner.ogg new file mode 100644 index 0000000000000..2098a81a34c8f Binary files /dev/null and b/sound/vox_fem/scanner.ogg differ diff --git a/sound/vox_fem/scanners.ogg b/sound/vox_fem/scanners.ogg new file mode 100644 index 0000000000000..74bbdae300aa7 Binary files /dev/null and b/sound/vox_fem/scanners.ogg differ diff --git a/sound/vox_fem/scanning.ogg b/sound/vox_fem/scanning.ogg new file mode 100644 index 0000000000000..84701910e997f Binary files /dev/null and b/sound/vox_fem/scanning.ogg differ diff --git a/sound/vox_fem/screw.ogg b/sound/vox_fem/screw.ogg new file mode 100644 index 0000000000000..ae9325f69a658 Binary files /dev/null and b/sound/vox_fem/screw.ogg differ diff --git a/sound/vox_fem/seen.ogg b/sound/vox_fem/seen.ogg new file mode 100644 index 0000000000000..7ad89a173ab59 Binary files /dev/null and b/sound/vox_fem/seen.ogg differ diff --git a/sound/vox_fem/set.ogg b/sound/vox_fem/set.ogg new file mode 100644 index 0000000000000..f2f8c19c27842 Binary files /dev/null and b/sound/vox_fem/set.ogg differ diff --git a/sound/vox_fem/sever.ogg b/sound/vox_fem/sever.ogg new file mode 100644 index 0000000000000..3bc2e2102f72e Binary files /dev/null and b/sound/vox_fem/sever.ogg differ diff --git a/sound/vox_fem/severed.ogg b/sound/vox_fem/severed.ogg new file mode 100644 index 0000000000000..4f6f7e47bf0a8 Binary files /dev/null and b/sound/vox_fem/severed.ogg differ diff --git a/sound/vox_fem/severing.ogg b/sound/vox_fem/severing.ogg new file mode 100644 index 0000000000000..1ddad6209efb0 Binary files /dev/null and b/sound/vox_fem/severing.ogg differ diff --git a/sound/vox_fem/shame.ogg b/sound/vox_fem/shame.ogg new file mode 100644 index 0000000000000..f90b1306da05f Binary files /dev/null and b/sound/vox_fem/shame.ogg differ diff --git a/sound/vox_fem/shameful.ogg b/sound/vox_fem/shameful.ogg new file mode 100644 index 0000000000000..526b70909f66b Binary files /dev/null and b/sound/vox_fem/shameful.ogg differ diff --git a/sound/vox_fem/shameless.ogg b/sound/vox_fem/shameless.ogg new file mode 100644 index 0000000000000..804a92e29615f Binary files /dev/null and b/sound/vox_fem/shameless.ogg differ diff --git a/sound/vox_fem/shard.ogg b/sound/vox_fem/shard.ogg new file mode 100644 index 0000000000000..2a6b0c195804e Binary files /dev/null and b/sound/vox_fem/shard.ogg differ diff --git a/sound/vox_fem/shift.ogg b/sound/vox_fem/shift.ogg new file mode 100644 index 0000000000000..70e7d3ca6d17d Binary files /dev/null and b/sound/vox_fem/shift.ogg differ diff --git a/sound/vox_fem/shifts.ogg b/sound/vox_fem/shifts.ogg new file mode 100644 index 0000000000000..f2caa538efc61 Binary files /dev/null and b/sound/vox_fem/shifts.ogg differ diff --git a/sound/vox_fem/sides.ogg b/sound/vox_fem/sides.ogg new file mode 100644 index 0000000000000..cef8d153207bf Binary files /dev/null and b/sound/vox_fem/sides.ogg differ diff --git a/sound/vox_fem/single.ogg b/sound/vox_fem/single.ogg new file mode 100644 index 0000000000000..1d5912ecc57ed Binary files /dev/null and b/sound/vox_fem/single.ogg differ diff --git a/sound/vox_fem/siphon.ogg b/sound/vox_fem/siphon.ogg new file mode 100644 index 0000000000000..789653f5cbb67 Binary files /dev/null and b/sound/vox_fem/siphon.ogg differ diff --git a/sound/vox_fem/siphoning.ogg b/sound/vox_fem/siphoning.ogg new file mode 100644 index 0000000000000..163f2ed4734b8 Binary files /dev/null and b/sound/vox_fem/siphoning.ogg differ diff --git a/sound/vox_fem/soft.ogg b/sound/vox_fem/soft.ogg new file mode 100644 index 0000000000000..ea9361ea8c980 Binary files /dev/null and b/sound/vox_fem/soft.ogg differ diff --git a/sound/vox_fem/source.ogg b/sound/vox_fem/source.ogg new file mode 100644 index 0000000000000..824dd3f0a8c1c Binary files /dev/null and b/sound/vox_fem/source.ogg differ diff --git a/sound/vox_fem/special.ogg b/sound/vox_fem/special.ogg new file mode 100644 index 0000000000000..f0f219c13974b Binary files /dev/null and b/sound/vox_fem/special.ogg differ diff --git a/sound/vox_fem/spew.ogg b/sound/vox_fem/spew.ogg new file mode 100644 index 0000000000000..b9d20048d2651 Binary files /dev/null and b/sound/vox_fem/spew.ogg differ diff --git a/sound/vox_fem/start.ogg b/sound/vox_fem/start.ogg new file mode 100644 index 0000000000000..b07dc5faf259b Binary files /dev/null and b/sound/vox_fem/start.ogg differ diff --git a/sound/vox_fem/starts.ogg b/sound/vox_fem/starts.ogg new file mode 100644 index 0000000000000..fca5914927f2d Binary files /dev/null and b/sound/vox_fem/starts.ogg differ diff --git a/sound/vox_fem/stations.ogg b/sound/vox_fem/stations.ogg new file mode 100644 index 0000000000000..c0a495263698c Binary files /dev/null and b/sound/vox_fem/stations.ogg differ diff --git a/sound/vox_fem/stationwide.ogg b/sound/vox_fem/stationwide.ogg new file mode 100644 index 0000000000000..b7b000b3b9f8c Binary files /dev/null and b/sound/vox_fem/stationwide.ogg differ diff --git a/sound/vox_fem/such.ogg b/sound/vox_fem/such.ogg new file mode 100644 index 0000000000000..a85d0642e6ed1 Binary files /dev/null and b/sound/vox_fem/such.ogg differ diff --git a/sound/vox_fem/suited.ogg b/sound/vox_fem/suited.ogg new file mode 100644 index 0000000000000..36b2b45c5275a Binary files /dev/null and b/sound/vox_fem/suited.ogg differ diff --git a/sound/vox_fem/super.ogg b/sound/vox_fem/super.ogg new file mode 100644 index 0000000000000..6d110152fdc23 Binary files /dev/null and b/sound/vox_fem/super.ogg differ diff --git a/sound/vox_fem/tesla.ogg b/sound/vox_fem/tesla.ogg new file mode 100644 index 0000000000000..70cb9e4ca82b9 Binary files /dev/null and b/sound/vox_fem/tesla.ogg differ diff --git a/sound/vox_fem/tick.ogg b/sound/vox_fem/tick.ogg new file mode 100644 index 0000000000000..bb986534a5bbb Binary files /dev/null and b/sound/vox_fem/tick.ogg differ diff --git a/sound/vox_fem/tile.ogg b/sound/vox_fem/tile.ogg new file mode 100644 index 0000000000000..2d794c26a1291 Binary files /dev/null and b/sound/vox_fem/tile.ogg differ diff --git a/sound/vox_fem/touched.ogg b/sound/vox_fem/touched.ogg new file mode 100644 index 0000000000000..e4cb940d71fc6 Binary files /dev/null and b/sound/vox_fem/touched.ogg differ diff --git a/sound/vox_fem/touching.ogg b/sound/vox_fem/touching.ogg new file mode 100644 index 0000000000000..b1ef04d443a6a Binary files /dev/null and b/sound/vox_fem/touching.ogg differ diff --git a/sound/vox_fem/trigger.ogg b/sound/vox_fem/trigger.ogg new file mode 100644 index 0000000000000..22ed22d489039 Binary files /dev/null and b/sound/vox_fem/trigger.ogg differ diff --git a/sound/vox_fem/triggered.ogg b/sound/vox_fem/triggered.ogg new file mode 100644 index 0000000000000..7fe30ad804606 Binary files /dev/null and b/sound/vox_fem/triggered.ogg differ diff --git a/sound/vox_fem/triggering.ogg b/sound/vox_fem/triggering.ogg new file mode 100644 index 0000000000000..8cb4788155618 Binary files /dev/null and b/sound/vox_fem/triggering.ogg differ diff --git a/sound/vox_fem/triple.ogg b/sound/vox_fem/triple.ogg new file mode 100644 index 0000000000000..6b6679258100a Binary files /dev/null and b/sound/vox_fem/triple.ogg differ diff --git a/sound/vox_fem/tritium.ogg b/sound/vox_fem/tritium.ogg new file mode 100644 index 0000000000000..7e62eddb9c504 Binary files /dev/null and b/sound/vox_fem/tritium.ogg differ diff --git a/sound/vox_fem/turned.ogg b/sound/vox_fem/turned.ogg new file mode 100644 index 0000000000000..2d9c59edfac3f Binary files /dev/null and b/sound/vox_fem/turned.ogg differ diff --git a/sound/vox_fem/unique.ogg b/sound/vox_fem/unique.ogg new file mode 100644 index 0000000000000..cb773507fcbb9 Binary files /dev/null and b/sound/vox_fem/unique.ogg differ diff --git a/sound/vox_fem/unwrench.ogg b/sound/vox_fem/unwrench.ogg new file mode 100644 index 0000000000000..bd31681fe3171 Binary files /dev/null and b/sound/vox_fem/unwrench.ogg differ diff --git a/sound/vox_fem/unwrenching.ogg b/sound/vox_fem/unwrenching.ogg new file mode 100644 index 0000000000000..6f4d8b7de7ef9 Binary files /dev/null and b/sound/vox_fem/unwrenching.ogg differ diff --git a/sound/vox_fem/useful.ogg b/sound/vox_fem/useful.ogg new file mode 100644 index 0000000000000..dfd8e6952a594 Binary files /dev/null and b/sound/vox_fem/useful.ogg differ diff --git a/sound/vox_fem/useless.ogg b/sound/vox_fem/useless.ogg new file mode 100644 index 0000000000000..5b9bb7aa2941c Binary files /dev/null and b/sound/vox_fem/useless.ogg differ diff --git a/sound/vox_fem/way.ogg b/sound/vox_fem/way.ogg new file mode 100644 index 0000000000000..fdc121629c9cf Binary files /dev/null and b/sound/vox_fem/way.ogg differ diff --git a/sound/vox_fem/ways.ogg b/sound/vox_fem/ways.ogg new file mode 100644 index 0000000000000..8fa99a1c4b74e Binary files /dev/null and b/sound/vox_fem/ways.ogg differ diff --git a/sound/vox_fem/weld.ogg b/sound/vox_fem/weld.ogg new file mode 100644 index 0000000000000..6273ba147a6d4 Binary files /dev/null and b/sound/vox_fem/weld.ogg differ diff --git a/sound/vox_fem/which.ogg b/sound/vox_fem/which.ogg new file mode 100644 index 0000000000000..ae1486f816afc Binary files /dev/null and b/sound/vox_fem/which.ogg differ diff --git a/sound/vox_fem/work.ogg b/sound/vox_fem/work.ogg new file mode 100644 index 0000000000000..8ddb06ef1d522 Binary files /dev/null and b/sound/vox_fem/work.ogg differ diff --git a/sound/vox_fem/worked.ogg b/sound/vox_fem/worked.ogg new file mode 100644 index 0000000000000..7ea59ff0b2b97 Binary files /dev/null and b/sound/vox_fem/worked.ogg differ diff --git a/sound/vox_fem/working.ogg b/sound/vox_fem/working.ogg new file mode 100644 index 0000000000000..8e49779ee5c5b Binary files /dev/null and b/sound/vox_fem/working.ogg differ diff --git a/sound/vox_fem/works.ogg b/sound/vox_fem/works.ogg new file mode 100644 index 0000000000000..c35984171ab37 Binary files /dev/null and b/sound/vox_fem/works.ogg differ diff --git a/sound/vox_fem/would.ogg b/sound/vox_fem/would.ogg new file mode 100644 index 0000000000000..2df534769afe8 Binary files /dev/null and b/sound/vox_fem/would.ogg differ diff --git a/sound/vox_fem/wouldnt.ogg b/sound/vox_fem/wouldnt.ogg new file mode 100644 index 0000000000000..0c3b01facee79 Binary files /dev/null and b/sound/vox_fem/wouldnt.ogg differ diff --git a/sound/vox_fem/wrench.ogg b/sound/vox_fem/wrench.ogg new file mode 100644 index 0000000000000..98cf94db09a5f Binary files /dev/null and b/sound/vox_fem/wrench.ogg differ diff --git a/sound/vox_fem/wrenching.ogg b/sound/vox_fem/wrenching.ogg new file mode 100644 index 0000000000000..b61b70fd363c6 Binary files /dev/null and b/sound/vox_fem/wrenching.ogg differ diff --git a/sound/vox_fem/zap.ogg b/sound/vox_fem/zap.ogg new file mode 100644 index 0000000000000..233653de9131a Binary files /dev/null and b/sound/vox_fem/zap.ogg differ diff --git a/sound/vox_fem/zauker.ogg b/sound/vox_fem/zauker.ogg new file mode 100644 index 0000000000000..ed586c6c3f0f3 Binary files /dev/null and b/sound/vox_fem/zauker.ogg differ diff --git a/sound/weapons/shove.ogg b/sound/weapons/shove.ogg new file mode 100644 index 0000000000000..eb10eabed26a4 Binary files /dev/null and b/sound/weapons/shove.ogg differ diff --git a/strings/heckacious.json b/strings/heckacious.json index 1d43f0bfaffee..1c648ce123815 100644 --- a/strings/heckacious.json +++ b/strings/heckacious.json @@ -75,7 +75,6 @@ "seeing": "scoping", "great": "choice", "look": "lonk", - "shit": "balls warmed oveur", "battery": "babbery", "retard": "dicktard", "gay": "homo", @@ -93,6 +92,7 @@ "dude": [ "duge", "bro", "brah" ], "'": [ "'", "" ], "i'm": [ "im", "i am" ], + "shit": [ "balls warmed oveur", "shit" ], "he's": [ "hes", "he is", "he'ss" ] } } diff --git a/tgstation.dme b/tgstation.dme index 4f6c96dd3d038..99b52e4cb46a0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -784,6 +784,7 @@ #include "code\datums\hotkeys_help.dm" #include "code\datums\http.dm" #include "code\datums\hud.dm" +#include "code\datums\instability_meltdown.dm" #include "code\datums\json_database.dm" #include "code\datums\json_savefile.dm" #include "code\datums\lazy_template.dm" @@ -1030,6 +1031,7 @@ #include "code\datums\components\basic_inhands.dm" #include "code\datums\components\basic_mob_attack_telegraph.dm" #include "code\datums\components\basic_ranged_ready_overlay.dm" +#include "code\datums\components\bayonet_attachable.dm" #include "code\datums\components\beetlejuice.dm" #include "code\datums\components\blob_minion.dm" #include "code\datums\components\blood_walk.dm" @@ -1530,6 +1532,7 @@ #include "code\datums\elements\wall_walker.dm" #include "code\datums\elements\watery_tile.dm" #include "code\datums\elements\weapon_description.dm" +#include "code\datums\elements\wearable_client_colour.dm" #include "code\datums\elements\weather_listener.dm" #include "code\datums\elements\web_walker.dm" #include "code\datums\elements\wheel.dm" @@ -3445,6 +3448,7 @@ #include "code\modules\atmospherics\machinery\pipes\heat_exchange\manifold4w.dm" #include "code\modules\atmospherics\machinery\pipes\heat_exchange\simple.dm" #include "code\modules\atmospherics\machinery\portable\canister.dm" +#include "code\modules\atmospherics\machinery\portable\pipe_scrubber.dm" #include "code\modules\atmospherics\machinery\portable\portable_atmospherics.dm" #include "code\modules\atmospherics\machinery\portable\pump.dm" #include "code\modules\atmospherics\machinery\portable\scrubber.dm" @@ -3498,6 +3502,13 @@ #include "code\modules\bitrunning\components\netpod_healing.dm" #include "code\modules\bitrunning\components\npc_friendly.dm" #include "code\modules\bitrunning\components\virtual_entity.dm" +#include "code\modules\bitrunning\netpod\_netpod.dm" +#include "code\modules\bitrunning\netpod\container.dm" +#include "code\modules\bitrunning\netpod\outfitting.dm" +#include "code\modules\bitrunning\netpod\signals.dm" +#include "code\modules\bitrunning\netpod\tools.dm" +#include "code\modules\bitrunning\netpod\ui.dm" +#include "code\modules\bitrunning\netpod\utils.dm" #include "code\modules\bitrunning\objects\byteforge.dm" #include "code\modules\bitrunning\objects\clothing.dm" #include "code\modules\bitrunning\objects\debug.dm" @@ -3507,7 +3518,6 @@ #include "code\modules\bitrunning\objects\landmarks.dm" #include "code\modules\bitrunning\objects\loot_box.dm" #include "code\modules\bitrunning\objects\loot_crate.dm" -#include "code\modules\bitrunning\objects\netpod.dm" #include "code\modules\bitrunning\objects\quantum_console.dm" #include "code\modules\bitrunning\objects\vendor.dm" #include "code\modules\bitrunning\orders\bepis.dm" @@ -3537,6 +3547,7 @@ #include "code\modules\bitrunning\virtual_domain\domains\fredingtonfastingbear.dm" #include "code\modules\bitrunning\virtual_domain\domains\gondola_asteroid.dm" #include "code\modules\bitrunning\virtual_domain\domains\hierophant.dm" +#include "code\modules\bitrunning\virtual_domain\domains\island_brawl.dm" #include "code\modules\bitrunning\virtual_domain\domains\pipedream.dm" #include "code\modules\bitrunning\virtual_domain\domains\pirates.dm" #include "code\modules\bitrunning\virtual_domain\domains\psyker_shuffle.dm" @@ -5341,6 +5352,7 @@ #include "code\modules\plumbing\plumbers\plumbing_buffer.dm" #include "code\modules\plumbing\plumbers\pumps.dm" #include "code\modules\plumbing\plumbers\reaction_chamber.dm" +#include "code\modules\plumbing\plumbers\simple_machines.dm" #include "code\modules\plumbing\plumbers\splitters.dm" #include "code\modules\plumbing\plumbers\synthesizer.dm" #include "code\modules\plumbing\plumbers\teleporter.dm" diff --git a/tgui/packages/tgui/interfaces/CrewConsole.tsx b/tgui/packages/tgui/interfaces/CrewConsole.tsx index 7394d9964fde6..4a0439e7eeedd 100644 --- a/tgui/packages/tgui/interfaces/CrewConsole.tsx +++ b/tgui/packages/tgui/interfaces/CrewConsole.tsx @@ -26,7 +26,7 @@ const SORT_NAMES = { const STAT_LIVING = 0; const STAT_DEAD = 4; -const SORT_OPTIONS = ['ijob', 'name', 'area', 'health']; +const SORT_OPTIONS = ['health', 'ijob', 'name', 'area']; const jobIsHead = (jobId: number) => jobId % 10 === 0; @@ -69,10 +69,10 @@ const statToIcon = (life_status: number) => { }; const healthSort = (a: CrewSensor, b: CrewSensor) => { - if (a.life_status < b.life_status) return -1; - if (a.life_status > b.life_status) return 1; - if (a.health > b.health) return -1; - if (a.health < b.health) return 1; + if (a.life_status > b.life_status) return -1; + if (a.life_status < b.life_status) return 1; + if (a.health < b.health) return -1; + if (a.health > b.health) return 1; return 0; }; diff --git a/tgui/packages/tgui/interfaces/PipeScrubber.tsx b/tgui/packages/tgui/interfaces/PipeScrubber.tsx new file mode 100644 index 0000000000000..b18d80a9a06c8 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PipeScrubber.tsx @@ -0,0 +1,175 @@ +import { toFixed } from 'common/math'; +import { BooleanLike } from 'common/react'; + +import { useBackend } from '../backend'; +import { + Box, + Button, + Icon, + LabeledControls, + RoundGauge, + Section, + Tooltip, +} from '../components'; +import { getGasLabel } from '../constants'; +import { formatSiUnit } from '../format'; +import { Window } from '../layouts'; + +type Data = { + on: BooleanLike; + direction: BooleanLike; + connected: BooleanLike; + pressureTank: number; + pressureLimitTank: number; + pressurePump: number; + pressureLimitPump: number; + pumpMaxPressure: number; + hasHypernobCrystal: BooleanLike; + reactionSuppressionEnabled: BooleanLike; + filterTypes: Filter[]; +}; + +type Filter = { + id: string; + enabled: BooleanLike; + gasId: string; + gasName: string; +}; + +const formatPressure = (value) => { + if (value < 10000) { + return toFixed(value) + ' kPa'; + } + return formatSiUnit(value * 1000, 1, 'Pa'); +}; + +export const PipeScrubber = (props) => { + const { act, data } = useBackend(); + const { + on, + connected, + direction, + pressureTank, + pressureLimitTank, + pressurePump, + pressureLimitPump, + hasHypernobCrystal, + reactionSuppressionEnabled, + filterTypes = [], + } = data; + + return ( + + +
act('reaction_suppression')} + > + {reactionSuppressionEnabled + ? 'Reaction Suppression Enabled' + : 'Reaction Suppression Disabled'} + + ) + } + > + + + + + + + + + + + + + + + + + + +
+
act('direction')}> + {direction ? 'Buffer → Tank' : 'Tank → Buffer'} + + } + > + {!!direction && ( + <> + Filtering gases from the buffer into the internal tank. +
+ {filterTypes.map((filter) => ( +
+ + )} + {!direction && ( + Dumping internal tank gases into the buffer. + )} +
+
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/QuantumConsole.tsx b/tgui/packages/tgui/interfaces/QuantumConsole.tsx index c42a7ce9402d2..08ec428bc4dbd 100644 --- a/tgui/packages/tgui/interfaces/QuantumConsole.tsx +++ b/tgui/packages/tgui/interfaces/QuantumConsole.tsx @@ -47,6 +47,7 @@ type Avatar = { }; type Domain = { + announce_ghosts: BooleanLike; cost: number; desc: string; difficulty: number; @@ -74,10 +75,11 @@ enum Difficulty { High, } -const isConnected = (data: Data): data is Data & { connected: 1 } => - data.connected === 1; +function isConnected(data: Data): data is Data & { connected: 1 } { + return data.connected === 1; +} -const getColor = (difficulty: number) => { +function getColor(difficulty: number) { switch (difficulty) { case Difficulty.Low: return 'yellow'; @@ -88,9 +90,9 @@ const getColor = (difficulty: number) => { default: return 'green'; } -}; +} -export const QuantumConsole = (props) => { +export function QuantumConsole(props) { const { data } = useBackend(); return ( @@ -101,9 +103,9 @@ export const QuantumConsole = (props) => { ); -}; +} -const AccessView = (props) => { +function AccessView(props) { const { act, data } = useBackend(); const [tab, setTab] = useSharedState('tab', 0); @@ -228,22 +230,24 @@ const AccessView = (props) => { act('stop_domain')} tooltip="Begins shutdown. Will notify anyone connected." - /> + > + Stop Domain + ); -}; +} -const DomainEntry = (props: DomainEntryProps) => { +function DomainEntry(props: DomainEntryProps) { const { domain: { + announce_ghosts, cost, desc, difficulty, @@ -275,6 +279,8 @@ const DomainEntry = (props: DomainEntryProps) => { buttonName = 'Deploy'; } + const canView = name !== '???'; + return ( { title={ <> {name} - {!!is_modular && name !== '???' && } - {!!has_secondary_objectives && name !== '???' && ( - - )} + {!!is_modular && canView && } + {!!has_secondary_objectives && canView && } + {!!announce_ghosts && canView && } } > @@ -303,6 +308,7 @@ const DomainEntry = (props: DomainEntryProps) => { {desc} {!!is_modular && ' (Modular)'} {!!has_secondary_objectives && ' (Secondary Objective Available)'} + {!!announce_ghosts && ' (Ghost Interaction)'} @@ -322,7 +328,7 @@ const DomainEntry = (props: DomainEntryProps) => { ); -}; +} const AvatarDisplay = (props) => { const { act, data } = useBackend();