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();