diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 521c222e9d5..4ed20435923 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -4182,6 +4182,26 @@
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible,
/turf/open/floor/iron/dark/corner,
/area/engineering/atmos)
+"aCt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"aCu" = (
/obj/structure/disposalpipe/segment,
/obj/effect/landmark/start/hangover,
@@ -4394,6 +4414,22 @@
},
/turf/open/floor/iron/grimy,
/area/hallway/secondary/service)
+"aEM" = (
+/obj/machinery/light/directional/east,
+/obj/machinery/status_display/evac/directional/east,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"aEN" = (
/obj/effect/spawner/randomarcade{
dir = 1
@@ -5524,6 +5560,29 @@
},
/turf/open/floor/iron,
/area/cargo/qm)
+"aNy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"aNC" = (
/obj/effect/landmark/start/prisoner,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -8288,12 +8347,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/ai_monitored/security/armory)
-"bly" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"blB" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -11757,17 +11810,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/grimy,
/area/service/chapel/main)
-"bLH" = (
-/obj/machinery/light/directional/north,
-/obj/machinery/component_printer,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"bLU" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
@@ -12211,6 +12253,13 @@
},
/turf/open/space,
/area/space/nearstation)
+"bNG" = (
+/obj/structure/sign/poster/official/build{
+ pixel_y = -32
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/iron/white,
+/area/science/misc_lab)
"bNM" = (
/obj/machinery/door/poddoor/preopen{
id = "justicechamber";
@@ -13153,6 +13202,24 @@
},
/turf/open/space,
/area/space/nearstation)
+"bSd" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/matches{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/service/bar)
"bSl" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/purple,
@@ -13422,6 +13489,22 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron/grimy,
/area/ai_monitored/turret_protected/aisat_interior)
+"bTz" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"bTB" = (
/obj/item/kirbyplants/random,
/obj/machinery/turretid{
@@ -15360,6 +15443,10 @@
},
/turf/open/floor/iron,
/area/hallway/primary/central/aft)
+"ccN" = (
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/science/misc_lab)
"ccU" = (
/obj/effect/spawner/randomsnackvend,
/obj/machinery/light/directional/west,
@@ -18387,6 +18474,12 @@
},
/turf/open/space,
/area/space/nearstation)
+"crF" = (
+/obj/structure/table/reinforced,
+/obj/item/screwdriver,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"crG" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
@@ -19906,16 +19999,6 @@
},
/turf/open/floor/iron,
/area/maintenance/disposal/incinerator)
-"cGu" = (
-/obj/machinery/airalarm/directional/north,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"cGJ" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Chapel Maintenance";
@@ -26188,77 +26271,6 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron/dark,
/area/science/genetics)
-"djF" = (
-/turf/closed/wall/r_wall,
-/area/science/nanite)
-"djG" = (
-/obj/machinery/computer/nanite_cloud_controller,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"djH" = (
-/obj/machinery/nanite_programmer,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"djI" = (
-/obj/machinery/computer/nanite_chamber_control,
-/obj/structure/sign/poster/random{
- pixel_y = 32
- },
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"djJ" = (
-/obj/machinery/nanite_chamber,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"djK" = (
-/turf/closed/wall,
-/area/science/nanite)
"djL" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -26670,57 +26682,6 @@
},
/turf/open/floor/iron/dark,
/area/science/genetics)
-"dlt" = (
-/obj/machinery/power/apc/auto_name/west,
-/obj/structure/cable,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"dlu" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"dlv" = (
-/obj/machinery/light/directional/east,
-/obj/machinery/light_switch/directional/east,
-/obj/effect/turf_decal/loading_area{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"dlz" = (
/obj/structure/sign/warning/nosmoking,
/turf/closed/wall,
@@ -26898,70 +26859,6 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/iron/dark,
/area/science/genetics)
-"dmF" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/science/nanite)
-"dmG" = (
-/obj/machinery/nanite_program_hub,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"dmH" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"dmI" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"dmJ" = (
-/obj/item/kirbyplants/random,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"dmL" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/stripes/line{
@@ -27783,55 +27680,6 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron/dark,
/area/science/genetics)
-"dqo" = (
-/obj/structure/table/reinforced,
-/obj/item/nanite_scanner{
- pixel_x = -4;
- pixel_y = -4
- },
-/obj/item/nanite_scanner{
- pixel_x = 4;
- pixel_y = -4
- },
-/obj/item/nanite_remote{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/nanite_remote{
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"dqr" = (
-/obj/structure/disposalpipe/trunk{
- dir = 1
- },
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"dqu" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -28078,65 +27926,6 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron/dark,
/area/science/genetics)
-"drM" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/box/disks_nanite{
- pixel_x = 4;
- pixel_y = -4
- },
-/obj/item/storage/box/disks_nanite{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/machinery/camera{
- c_tag = "Research Division - Nanite Lab";
- dir = 4;
- name = "science camera";
- network = list("ss13","rd")
- },
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"drN" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"drO" = (
-/obj/machinery/light/directional/east,
-/obj/machinery/status_display/evac/directional/east,
-/obj/effect/turf_decal/loading_area,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"drP" = (
/turf/closed/wall/r_wall,
/area/science/mixing)
@@ -28493,22 +28282,6 @@
},
/turf/open/floor/iron/dark/telecomms,
/area/tcommsat/server)
-"dtg" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"dti" = (
/obj/structure/closet/bombcloset,
/obj/effect/turf_decal/stripes/line{
@@ -28815,57 +28588,6 @@
},
/turf/open/floor/carpet,
/area/command/bridge)
-"duz" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"duD" = (
-/obj/structure/chair/office/light{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"duE" = (
-/obj/machinery/computer/nanite_chamber_control{
- dir = 8
- },
-/obj/structure/sign/poster/random{
- pixel_x = 32
- },
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"duF" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -29104,6 +28826,12 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron,
/area/science/mixing)
+"dwo" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/science/misc_lab)
"dwt" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
@@ -32780,6 +32508,13 @@
heat_capacity = 1e+006
},
/area/maintenance/port/aft)
+"dMi" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/iron/white,
+/area/science/misc_lab)
"dMt" = (
/obj/structure/closet/firecloset,
/obj/machinery/light/small/directional/south,
@@ -33764,23 +33499,6 @@
},
/turf/open/floor/iron,
/area/medical/virology)
-"dQV" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"dQW" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -37262,12 +36980,6 @@
},
/turf/open/floor/iron,
/area/commons/fitness/recreation)
-"ehi" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/iron,
-/area/science/misc_lab)
"ehq" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/neutral{
@@ -38529,20 +38241,6 @@
},
/turf/open/floor/iron/dark,
/area/science/xenobiology)
-"eAB" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"eAI" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral,
@@ -38643,13 +38341,6 @@
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron,
/area/hallway/primary/central/aft)
-"eCk" = (
-/obj/machinery/status_display/evac/directional/south,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/engineering/atmos/upper)
"eCl" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
@@ -40672,13 +40363,6 @@
},
/turf/open/floor/iron,
/area/engineering/atmos/upper)
-"faO" = (
-/obj/effect/landmark/event_spawn,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/iron,
-/area/science/misc_lab)
"faY" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -41072,6 +40756,13 @@
},
/turf/open/floor/iron,
/area/service/bar/atrium)
+"ffG" = (
+/obj/structure/table/reinforced,
+/obj/machinery/recharger,
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/south,
+/turf/open/floor/iron/white,
+/area/science/misc_lab)
"ffH" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
@@ -41380,27 +41071,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/turf/open/floor/engine,
/area/engineering/supermatter/room)
-"fkO" = (
-/obj/structure/table/reinforced,
-/obj/machinery/camera{
- c_tag = "Bar - Fore";
- dir = 4;
- name = "service camera"
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/displaycase/forsale/kitchen,
-/obj/machinery/status_display/evac/directional/west,
-/turf/open/floor/iron/dark,
-/area/service/bar)
"fkP" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/tile/purple,
@@ -41711,6 +41381,22 @@
},
/turf/open/floor/iron/grimy,
/area/service/theater/abandoned)
+"foP" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/table/reinforced,
+/obj/item/mmi,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"fph" = (
/turf/open/floor/engine/vacuum,
/area/engineering/atmos/upper)
@@ -42076,29 +41762,6 @@
},
/turf/open/floor/iron,
/area/engineering/atmos/upper)
-"fuF" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/research{
- name = "Nanite Lab";
- req_access_txt = "47"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"fuJ" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/obj/structure/cable,
@@ -42874,6 +42537,30 @@
},
/turf/open/floor/iron/dark,
/area/engineering/storage/tech)
+"fGC" = (
+/obj/machinery/door/airlock/research{
+ name = "Research Testing Range";
+ req_access_txt = "47"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/science/misc_lab)
"fGF" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -44251,6 +43938,10 @@
},
/turf/open/floor/iron,
/area/security/prison)
+"geO" = (
+/obj/machinery/rnd/experimentor,
+/turf/open/floor/engine,
+/area/science/misc_lab)
"geT" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
@@ -44893,22 +44584,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/hallway/secondary/service)
-"gpg" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/obj/machinery/door/window/brigdoor{
- dir = 4;
- name = "Test Range"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/iron,
-/area/science/misc_lab)
"gpk" = (
/obj/structure/chair/stool/directional/south,
/obj/effect/turf_decal/tile/red{
@@ -45165,12 +44840,6 @@
},
/turf/open/floor/engine/co2,
/area/engineering/atmos)
-"gsi" = (
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/south,
-/obj/structure/filingcabinet/chestdrawer,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"gsn" = (
/obj/machinery/door/airlock/command{
name = "Chief Medical Officer's Office";
@@ -45346,6 +45015,27 @@
"guL" = (
/turf/closed/wall/r_wall,
/area/security/interrogation)
+"guN" = (
+/obj/structure/table/reinforced,
+/obj/machinery/camera{
+ c_tag = "Bar - Fore";
+ dir = 4;
+ name = "service camera"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/displaycase/forsale/kitchen,
+/obj/machinery/status_display/evac/directional/west,
+/turf/open/floor/iron/dark,
+/area/service/bar)
"guW" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/bot,
@@ -45385,6 +45075,16 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"gve" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/iron,
+/area/science/misc_lab)
"gvf" = (
/obj/effect/turf_decal/trimline/yellow/filled/warning{
dir = 4
@@ -45418,14 +45118,6 @@
/obj/machinery/newscaster/directional/east,
/turf/open/floor/iron/dark,
/area/ai_monitored/command/storage/eva)
-"gvD" = (
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/machinery/module_duplicator,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"gvH" = (
/obj/structure/mirror/directional/west,
/obj/effect/turf_decal/tile/red{
@@ -46043,24 +45735,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/central/aft)
-"gFZ" = (
-/obj/machinery/nanite_program_hub,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"gGK" = (
/obj/machinery/modular_computer/console/preset/id{
dir = 8
@@ -46167,27 +45841,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"gIn" = (
-/obj/structure/table,
-/obj/item/paper_bin,
-/obj/item/pen,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/flasher/directional/east{
- id = "hopflash";
- pixel_x = 0;
- pixel_y = 26
- },
-/turf/open/floor/iron/dark,
-/area/hallway/primary/central/fore)
"gIw" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 5
@@ -46532,10 +46185,6 @@
},
/turf/open/floor/iron/grimy,
/area/commons/vacant_room/office)
-"gOd" = (
-/obj/structure/sign/nanotrasen,
-/turf/closed/wall,
-/area/service/bar)
"gOp" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -47741,30 +47390,6 @@
},
/turf/open/floor/iron/white,
/area/hallway/primary/central/aft)
-"hgS" = (
-/obj/machinery/door/airlock/research{
- name = "Circuits Testing Lab";
- req_access_txt = "47"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/door/firedoor,
-/obj/structure/cable,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/science/misc_lab)
"hgT" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -48354,6 +47979,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/carpet,
/area/commons/dorms)
+"hpL" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/misc_lab)
"hpM" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/effect/turf_decal/delivery,
@@ -48480,6 +48109,23 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron,
/area/security/office)
+"hrL" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"hrT" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -50028,12 +49674,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"hOV" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"hOZ" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -50708,6 +50348,21 @@
},
/turf/open/floor/iron,
/area/hallway/primary/port)
+"hWj" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Atmospherics - Testing Room";
+ name = "atmospherics camera"
+ },
+/obj/machinery/electrolyzer,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron,
+/area/engineering/atmos/upper)
"hWu" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/turf/open/floor/plating,
@@ -52002,22 +51657,6 @@
/obj/machinery/power/apc/auto_name/west,
/turf/open/floor/iron,
/area/cargo/sorting)
-"imL" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"imN" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/neutral{
@@ -52111,6 +51750,16 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/command/gateway)
+"iod" = (
+/obj/structure/table/reinforced,
+/obj/machinery/camera{
+ c_tag = "Science - Experimentation Lab";
+ name = "science camera";
+ network = list("ss13","rd")
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"iog" = (
/obj/item/clothing/suit/hazardvest{
desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";
@@ -52871,6 +52520,10 @@
},
/turf/open/floor/iron/dark,
/area/security/interrogation)
+"iyK" = (
+/obj/effect/turf_decal/tile/purple,
+/turf/closed/wall/r_wall,
+/area/science/misc_lab)
"iyX" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -53571,6 +53224,23 @@
/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/iron,
/area/engineering/supermatter/room)
+"iJw" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/hidden{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "External Waste Ports to Filter"
+ },
+/turf/open/floor/iron,
+/area/engineering/atmos)
"iJD" = (
/obj/machinery/holopad,
/obj/structure/disposalpipe/segment{
@@ -53654,6 +53324,10 @@
},
/turf/open/floor/iron,
/area/cargo/qm)
+"iKP" = (
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall,
+/area/service/bar)
"iKS" = (
/obj/structure/table/wood,
/obj/item/storage/fancy/candle_box{
@@ -53918,18 +53592,6 @@
/obj/machinery/power/apc/auto_name/east,
/turf/open/floor/iron,
/area/cargo/miningoffice)
-"iNP" = (
-/obj/structure/sign/poster/official/build{
- pixel_y = -32
- },
-/obj/structure/table/reinforced,
-/obj/machinery/recharger,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"iNS" = (
/obj/structure/chair/office{
dir = 4
@@ -54442,6 +54104,25 @@
},
/turf/open/floor/iron/white,
/area/science/research)
+"iTT" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/west,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = 3
+ },
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"iUx" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -54840,8 +54521,10 @@
/obj/structure/cable,
/turf/open/floor/iron/grimy,
/area/command/heads_quarters/hos)
-"jcg" = (
-/obj/structure/table/reinforced,
+"jca" = (
+/obj/machinery/light/directional/east,
+/obj/machinery/light_switch/directional/east,
+/obj/effect/turf_decal/loading_area,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -54852,13 +54535,8 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/item/lighter{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/lighter,
/turf/open/floor/iron/dark,
-/area/service/bar)
+/area/science/misc_lab)
"jcj" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 4
@@ -55579,20 +55257,6 @@
},
/turf/open/floor/carpet,
/area/commons/dorms)
-"jmM" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/service/bar)
"jmU" = (
/obj/effect/landmark/start/station_engineer,
/turf/open/floor/engine,
@@ -56103,6 +55767,25 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/iron,
/area/hallway/primary/central/aft)
+"jvd" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/lighter{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/lighter,
+/turf/open/floor/iron/dark,
+/area/service/bar)
"jvy" = (
/obj/structure/sign/warning/securearea,
/turf/closed/wall,
@@ -56797,6 +56480,10 @@
},
/turf/open/floor/iron/grimy,
/area/command/heads_quarters/captain)
+"jER" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"jES" = (
/obj/structure/table/reinforced,
/obj/item/folder/yellow,
@@ -57046,19 +56733,6 @@
/obj/item/pen,
/turf/open/floor/iron/grimy,
/area/command/bridge)
-"jHZ" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
-/obj/effect/landmark/xeno_spawn,
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/iron,
-/area/science/misc_lab)
"jId" = (
/obj/structure/table/wood,
/obj/item/lipstick/random{
@@ -59295,15 +58969,6 @@
},
/turf/open/floor/engine/n2,
/area/engineering/atmos)
-"kon" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/turf/open/floor/iron,
-/area/science/misc_lab)
"kot" = (
/obj/structure/sign/warning/securearea,
/turf/closed/wall,
@@ -60234,6 +59899,20 @@
},
/turf/open/floor/iron,
/area/engineering/break_room)
+"kzS" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"kAa" = (
/obj/structure/table/wood/poker,
/obj/item/storage/box/matches{
@@ -62023,6 +61702,10 @@
},
/turf/open/floor/iron,
/area/service/bar/atrium)
+"kYl" = (
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/iron/white,
+/area/science/misc_lab)
"kYo" = (
/obj/effect/turf_decal/bot,
/obj/machinery/firealarm/directional/north,
@@ -63847,6 +63530,29 @@
/obj/structure/reagent_dispensers/peppertank/directional/west,
/turf/open/floor/iron/dark,
/area/command/heads_quarters/hos)
+"luI" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research{
+ name = "Circuits Lab";
+ req_access_txt = "47"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/science/misc_lab)
"lvk" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock{
@@ -63896,6 +63602,20 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
+"lvX" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"lvY" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green,
@@ -65213,6 +64933,22 @@
},
/turf/open/floor/iron,
/area/cargo/office)
+"lPk" = (
+/obj/machinery/camera{
+ c_tag = "Science - Firing Range";
+ name = "science camera";
+ network = list("ss13","rd")
+ },
+/obj/structure/table/reinforced,
+/obj/item/clothing/ears/earmuffs,
+/obj/item/clothing/ears/earmuffs,
+/obj/item/gun/energy/laser/practice,
+/obj/item/gun/energy/laser/practice{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/turf/open/floor/iron/white,
+/area/science/misc_lab)
"lPn" = (
/obj/structure/chair/comfy/brown{
buildstackamount = 0;
@@ -66631,6 +66367,11 @@
},
/turf/open/floor/plating,
/area/service/abandoned_gambling_den)
+"mhV" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/science/misc_lab)
"mhX" = (
/obj/machinery/camera{
c_tag = "Art Gallery";
@@ -67650,6 +67391,12 @@
},
/turf/open/floor/wood,
/area/commons/vacant_room/office)
+"muj" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/iron,
+/area/science/misc_lab)
"muI" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/brown{
@@ -68490,6 +68237,9 @@
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/wood,
/area/service/library/abandoned)
+"mHE" = (
+/turf/open/floor/engine,
+/area/science/misc_lab)
"mHH" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/kirbyplants/random,
@@ -68863,21 +68613,6 @@
},
/turf/open/floor/iron,
/area/commons/vacant_room/commissary)
-"mLZ" = (
-/obj/structure/closet/crate,
-/obj/item/target/alien,
-/obj/item/target/alien,
-/obj/item/target/clown,
-/obj/item/target/clown,
-/obj/item/target/syndicate,
-/obj/item/gun/energy/laser/practice,
-/obj/item/gun/energy/laser/practice,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"mMg" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/green,
@@ -69077,18 +68812,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/commons/toilet/restrooms)
-"mPh" = (
-/obj/structure/table/reinforced,
-/obj/item/clothing/ears/earmuffs,
-/obj/item/clothing/ears/earmuffs,
-/obj/item/gun/energy/laser/practice,
-/obj/item/gun/energy/laser/practice{
- pixel_x = 3;
- pixel_y = -3
- },
-/obj/structure/window/reinforced,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"mPo" = (
/obj/machinery/research/explosive_compressor,
/obj/effect/turf_decal/bot,
@@ -69322,23 +69045,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/wood,
/area/command/meeting_room/council)
-"mSq" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/door/window/southright{
- name = "Bar Door";
- req_one_access_txt = "25;28"
- },
-/turf/open/floor/iron/dark,
-/area/service/bar)
"mSA" = (
/obj/structure/window/reinforced{
dir = 8
@@ -70532,23 +70238,6 @@
},
/turf/open/floor/iron,
/area/maintenance/port)
-"ngP" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/hidden{
- dir = 8
- },
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 1;
- name = "External Waste Ports to Filter"
- },
-/turf/open/floor/iron,
-/area/engineering/atmos)
"ngQ" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -70850,6 +70539,35 @@
},
/turf/open/floor/iron/dark,
/area/command/heads_quarters/hos)
+"nku" = (
+/obj/structure/table/reinforced,
+/obj/machinery/camera{
+ c_tag = "Research Division - Circuits Lab";
+ dir = 4;
+ name = "science camera";
+ network = list("ss13","rd")
+ },
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/multitool{
+ pixel_x = -4;
+ pixel_y = -2
+ },
+/obj/item/multitool{
+ pixel_x = 4;
+ pixel_y = 2
+ },
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"nkz" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp,
@@ -71492,6 +71210,13 @@
},
/turf/open/floor/iron/dark,
/area/service/electronic_marketing_den)
+"nuU" = (
+/obj/machinery/status_display/evac/directional/south,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/engineering/atmos/upper)
"nuW" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot_white,
@@ -72971,6 +72696,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/engineering/atmos/upper)
+"nNa" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"nNm" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/filingcabinet/filingcabinet,
@@ -73472,37 +73201,6 @@
/obj/structure/sign/warning/radiation,
/turf/closed/wall/r_wall,
/area/engineering/gravity_generator)
-"nTq" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/door/airlock/research{
- name = "Genetics Lab";
- req_access_txt = "9"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 8
- },
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"nTx" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -73716,18 +73414,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/maintenance/port/fore)
-"nUV" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/table/reinforced,
-/obj/item/multitool/circuit{
- pixel_x = 7
- },
-/obj/item/multitool/circuit,
-/obj/item/multitool/circuit{
- pixel_x = -8
- },
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"nUZ" = (
/obj/machinery/holopad,
/obj/structure/cable,
@@ -74408,6 +74094,27 @@
"ods" = (
/turf/open/floor/wood,
/area/command/heads_quarters/hop)
+"odz" = (
+/obj/structure/table,
+/obj/item/paper_bin,
+/obj/item/pen,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/flasher/directional/east{
+ id = "hopflash";
+ pixel_x = 0;
+ pixel_y = 26
+ },
+/turf/open/floor/iron/dark,
+/area/hallway/primary/central/fore)
"odF" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -75093,10 +74800,6 @@
},
/turf/open/floor/iron/white,
/area/hallway/primary/central/aft)
-"oly" = (
-/obj/machinery/modular_computer/console/preset/civilian,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"olC" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -75415,6 +75118,24 @@
},
/turf/open/floor/iron/dark,
/area/engineering/atmos)
+"ooQ" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high,
+/obj/structure/table/reinforced,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"ooT" = (
/obj/effect/spawner/randomsnackvend,
/obj/effect/turf_decal/tile/red{
@@ -75470,6 +75191,22 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/cargo/sorting)
+"ops" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/table/reinforced,
+/obj/item/controller,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"opA" = (
/obj/effect/turf_decal/tile/yellow{
dir = 4
@@ -75920,6 +75657,15 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron,
/area/hallway/primary/central/fore)
+"owI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/electrolyzer,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/engineering/atmos/upper)
"owY" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
@@ -76283,6 +76029,11 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/security/prison)
+"oBr" = (
+/obj/machinery/light/directional/north,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/turf/open/floor/iron/white,
+/area/science/misc_lab)
"oBs" = (
/turf/closed/wall,
/area/cargo/qm)
@@ -76580,6 +76331,29 @@
},
/turf/open/floor/iron,
/area/maintenance/starboard/fore)
+"oFz" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/west,
+/obj/item/multitool/circuit{
+ pixel_x = 7
+ },
+/obj/item/multitool/circuit{
+ pixel_x = -8
+ },
+/obj/item/multitool/circuit,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"oFE" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral,
@@ -78451,6 +78225,20 @@
},
/turf/open/floor/iron,
/area/engineering/main)
+"pbQ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"pcq" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock/maintenance_hatch{
@@ -78874,6 +78662,21 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/command)
+"pkr" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/component_printer,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"pkx" = (
/obj/effect/turf_decal/tile/green,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -80788,32 +80591,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/hallway/primary/port)
-"pLc" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"pLf" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -81095,6 +80872,28 @@
},
/turf/open/floor/iron/dark/corner,
/area/maintenance/disposal/incinerator)
+"pPE" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"pPX" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/landmark/start/hangover,
@@ -81242,6 +81041,19 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/service/abandoned_gambling_den)
+"pRL" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"pRW" = (
/obj/machinery/computer/slot_machine,
/obj/effect/decal/cleanable/dirt,
@@ -82198,25 +82010,6 @@
},
/turf/open/floor/iron,
/area/science/research)
-"qdJ" = (
-/obj/machinery/nanite_programmer,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"qdO" = (
/obj/machinery/light/directional/south,
/obj/structure/table/reinforced,
@@ -83728,15 +83521,6 @@
/obj/machinery/light_switch/directional/east,
/turf/open/floor/circuit/green,
/area/engineering/main)
-"qyo" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/science/misc_lab)
"qyu" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -83861,15 +83645,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/medical/surgery)
-"qzv" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/electrolyzer,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/engineering/atmos/upper)
"qzE" = (
/turf/open/floor/engine,
/area/engineering/supermatter)
@@ -84417,10 +84192,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/hallway/secondary/entry)
-"qGq" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/turf/open/floor/iron,
-/area/science/misc_lab)
"qGs" = (
/obj/machinery/light/directional/west,
/obj/machinery/camera{
@@ -84697,6 +84468,12 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/engineering/main)
+"qKy" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/science/misc_lab)
"qKC" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -85500,22 +85277,6 @@
},
/turf/open/floor/iron,
/area/cargo/storage)
-"qUc" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"qUh" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -88538,18 +88299,6 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/iron,
/area/science/research)
-"rKf" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/rack,
-/obj/item/controller,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/item/compact_remote,
-/obj/item/compact_remote,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"rKh" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -88824,6 +88573,17 @@
dir = 1
},
/area/hallway/secondary/entry)
+"rMT" = (
+/obj/structure/closet/crate,
+/obj/item/target/alien,
+/obj/item/target/alien,
+/obj/item/target/clown,
+/obj/item/target/clown,
+/obj/item/target/syndicate,
+/obj/item/gun/energy/laser/practice,
+/obj/item/gun/energy/laser/practice,
+/turf/open/floor/iron/white,
+/area/science/misc_lab)
"rMV" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
@@ -88938,6 +88698,10 @@
},
/turf/open/floor/iron,
/area/cargo/storage)
+"rOQ" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"rPb" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/tile/neutral{
@@ -89768,19 +89532,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white,
/area/medical/medbay/central)
-"saJ" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/toolbox/electrical{
- pixel_y = 5
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"saQ" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/virology{
@@ -90529,6 +90280,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/hallway/secondary/entry)
+"sle" = (
+/obj/structure/sign/poster/random{
+ pixel_x = 32
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
"slt" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -92592,21 +92349,6 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/plating,
/area/service/library/abandoned)
-"sKv" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/camera{
- c_tag = "Atmospherics - Testing Room";
- name = "atmospherics camera"
- },
-/obj/machinery/electrolyzer,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron,
-/area/engineering/atmos/upper)
"sKy" = (
/obj/structure/table/glass,
/obj/item/storage/box/beakers{
@@ -92677,15 +92419,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white,
/area/medical/virology)
-"sKO" = (
-/obj/structure/sign/poster/official/random{
- pixel_y = 32
- },
-/obj/structure/rack,
-/obj/item/integrated_circuit/loaded/speech_relay,
-/obj/item/integrated_circuit/loaded/hello_world,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"sKP" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron,
@@ -93003,6 +92736,20 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"sPX" = (
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"sQk" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/tile/yellow{
@@ -93177,6 +92924,12 @@
},
/turf/open/floor/iron,
/area/maintenance/starboard/aft)
+"sSW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/science/misc_lab)
"sTm" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -93462,6 +93215,26 @@
},
/turf/open/floor/iron,
/area/security/office)
+"sWs" = (
+/obj/structure/sign/poster/random{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/rack,
+/obj/item/integrated_circuit/loaded/speech_relay,
+/obj/item/integrated_circuit/loaded/hello_world,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"sWu" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -93559,6 +93332,21 @@
},
/turf/open/floor/iron,
/area/cargo/miningoffice)
+"sXf" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"sXh" = (
/obj/structure/transit_tube/horizontal,
/obj/effect/turf_decal/tile/neutral{
@@ -95218,13 +95006,6 @@
},
/turf/open/floor/iron,
/area/maintenance/starboard/fore)
-"tuj" = (
-/obj/structure/chair/office/light{
- dir = 1;
- pixel_y = 3
- },
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"tuq" = (
/obj/effect/landmark/event_spawn,
/obj/effect/turf_decal/tile/red{
@@ -95748,21 +95529,6 @@
},
/turf/open/floor/iron,
/area/maintenance/starboard/aft)
-"tCD" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/landmark/start/hangover,
-/turf/open/floor/iron/dark,
-/area/service/bar)
"tCG" = (
/obj/effect/turf_decal/bot,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -96790,6 +96556,37 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
+"tNB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock/research{
+ name = "Genetics Lab";
+ req_access_txt = "9"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"tNO" = (
/obj/structure/table/wood,
/obj/item/taperecorder,
@@ -98469,6 +98266,23 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/engineering/main)
+"umc" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/door/window/southright{
+ name = "Bar Door";
+ req_one_access_txt = "25;28"
+ },
+/turf/open/floor/iron/dark,
+/area/service/bar)
"ume" = (
/obj/machinery/door/window/brigdoor{
dir = 1;
@@ -98760,6 +98574,25 @@
},
/turf/open/floor/iron,
/area/hallway/primary/central/fore)
+"uqk" = (
+/obj/machinery/power/apc/auto_name/west,
+/obj/structure/cable,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/table/reinforced,
+/obj/item/compact_remote,
+/obj/item/compact_remote,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"uqr" = (
/obj/structure/table/wood,
/obj/item/newspaper{
@@ -99784,6 +99617,13 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron/grimy,
/area/command/heads_quarters/hos)
+"uCC" = (
+/obj/structure/sign/poster/official/random{
+ pixel_y = 32
+ },
+/obj/structure/rack,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"uCT" = (
/obj/structure/table/reinforced,
/obj/machinery/door/firedoor,
@@ -100183,24 +100023,6 @@
},
/turf/open/floor/iron,
/area/security/prison)
-"uHW" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/box/matches{
- pixel_x = -3;
- pixel_y = 5
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/service/bar)
"uIe" = (
/obj/machinery/door/airlock{
id_tag = "AuxCabinB";
@@ -100256,6 +100078,21 @@
},
/turf/open/floor/iron,
/area/command/heads_quarters/ce)
+"uIy" = (
+/obj/effect/landmark/start/scientist,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"uID" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -100327,10 +100164,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/closed/wall/r_wall,
/area/ai_monitored/turret_protected/ai)
-"uJJ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"uJK" = (
/obj/machinery/button/crematorium{
id = "cremawheat";
@@ -100506,6 +100339,20 @@
heat_capacity = 1e+006
},
/area/commons/fitness/recreation)
+"uMh" = (
+/obj/effect/landmark/xeno_spawn,
+/obj/machinery/door/window/brigdoor{
+ dir = 4;
+ name = "Test Range"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/science/misc_lab)
"uMi" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -101132,6 +100979,10 @@
},
/turf/open/floor/iron,
/area/cargo/storage)
+"uWD" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/science/misc_lab)
"uWH" = (
/obj/structure/table/wood,
/obj/item/storage/photo_album,
@@ -101557,18 +101408,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/wood,
/area/command/heads_quarters/captain)
-"veb" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 1
- },
-/obj/machinery/light/directional/south,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"vec" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/tank_holder/emergency_oxygen,
@@ -102411,6 +102250,21 @@
},
/turf/open/floor/iron,
/area/cargo/miningoffice)
+"voj" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/module_duplicator,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"voq" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/purple{
@@ -102872,20 +102726,6 @@
},
/turf/open/floor/iron,
/area/service/hydroponics)
-"vwU" = (
-/obj/effect/landmark/start/scientist,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"vxa" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -103761,13 +103601,6 @@
/obj/machinery/atmospherics/pipe/layer_manifold/cyan/visible,
/turf/open/floor/iron,
/area/engineering/supermatter/room)
-"vJu" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Nanite Lab Maintenance";
- req_access_txt = "47"
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
"vJB" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/morgue{
@@ -104662,6 +104495,13 @@
},
/turf/open/floor/iron,
/area/cargo/sorting)
+"vUT" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Circuits Lab Maintenance";
+ req_access_txt = "47"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"vVc" = (
/obj/structure/lattice/catwalk,
/turf/open/space/basic,
@@ -105197,28 +105037,6 @@
},
/turf/open/floor/carpet,
/area/service/chapel/office)
-"wbX" = (
-/obj/structure/table/reinforced,
-/obj/machinery/cell_charger,
-/obj/item/stock_parts/cell/high/plus{
- pixel_x = 5;
- pixel_y = 10
- },
-/obj/item/stock_parts/cell/high/plus,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/machinery/camera{
- c_tag = "Research Division - Circuits";
- dir = 4;
- name = "science camera";
- network = list("ss13","rd")
- },
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"wcg" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/xeno_spawn,
@@ -105704,23 +105522,6 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/aisat/exterior)
-"wjF" = (
-/obj/structure/chair/office/light{
- dir = 1;
- pixel_y = 3
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"wjG" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/delivery,
@@ -107187,6 +106988,20 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/command/meeting_room/council)
+"wEH" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/service/bar)
"wEL" = (
/obj/structure/window/reinforced{
dir = 8
@@ -107426,6 +107241,9 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/aisat/exterior)
+"wId" = (
+/turf/open/floor/plating,
+/area/science/misc_lab)
"wIn" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -107640,6 +107458,11 @@
dir = 1
},
/area/engineering/atmos)
+"wMH" = (
+/obj/structure/table/reinforced,
+/obj/machinery/cell_charger,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"wMU" = (
/obj/machinery/button/flasher{
id = "Cell 5";
@@ -108047,22 +107870,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/maintenance/starboard)
-"wTa" = (
-/obj/machinery/computer/nanite_cloud_controller,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"wTb" = (
/obj/machinery/vending/cigarette,
/obj/effect/turf_decal/tile/neutral{
@@ -108298,26 +108105,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/engineering/storage)
-"wVN" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"wWd" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
/obj/effect/turf_decal/tile/yellow{
@@ -108537,6 +108324,23 @@
},
/turf/open/floor/iron,
/area/maintenance/solars/port/aft)
+"wZp" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"wZs" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
@@ -109496,28 +109300,6 @@
},
/turf/open/floor/iron,
/area/service/hydroponics)
-"xot" = (
-/obj/structure/disposalpipe/junction{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"xox" = (
/obj/effect/turf_decal/tile/yellow{
dir = 8
@@ -109527,17 +109309,6 @@
},
/turf/open/floor/iron/dark/corner,
/area/engineering/atmos)
-"xoY" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/delivery,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"xpb" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -109805,6 +109576,14 @@
},
/turf/open/floor/iron/grimy,
/area/service/chapel/office)
+"xsp" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_one_access_txt = "12;47"
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"xsP" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment{
@@ -111002,6 +110781,14 @@
},
/turf/open/floor/iron,
/area/command/heads_quarters/rd)
+"xKi" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/science/misc_lab)
"xKt" = (
/obj/structure/filingcabinet/employment,
/obj/machinery/airalarm/directional/east,
@@ -111051,9 +110838,6 @@
/obj/machinery/atmospherics/components/binary/thermomachine/freezer,
/turf/open/floor/iron,
/area/science/mixing)
-"xLa" = (
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"xLd" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/tile/neutral{
@@ -112142,32 +111926,6 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/command)
-"ybh" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"ybi" = (
/turf/open/floor/iron/grimy,
/area/command/heads_quarters/hos)
@@ -112610,6 +112368,21 @@
"yhJ" = (
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"yhN" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/landmark/start/hangover,
+/turf/open/floor/iron/dark,
+/area/service/bar)
"yhU" = (
/obj/structure/table/wood,
/obj/item/taperecorder{
@@ -112801,6 +112574,23 @@
},
/turf/open/floor/iron,
/area/command/heads_quarters/cmo)
+"ykV" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/paper_bin,
+/obj/item/pen,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"ykY" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow{
@@ -137534,11 +137324,11 @@ exk
swm
pfQ
tCh
+crF
+rOQ
+gSi
map
vGv
-vGv
-vGv
-vGv
lmF
gSi
dul
@@ -137791,10 +137581,10 @@ ced
wXQ
moY
tCh
+iod
+qKy
+gSi
mLI
-xKO
-xKO
-xKO
bfJ
aST
gSi
@@ -137990,7 +137780,7 @@ sBH
bUP
qAf
qhK
-ngP
+iJw
glG
yjF
kPH
@@ -138048,11 +137838,11 @@ cMY
ceb
moY
tCh
+wMH
+nNa
+gSi
uRm
-qGq
-ehi
-ehi
-faO
+xKO
aST
gSi
dlg
@@ -138305,11 +138095,11 @@ cMY
cea
kEw
tCh
+nNa
+nNa
+gSi
mLI
xKO
-xKO
-xKO
-ehi
mGu
gSi
dum
@@ -138561,12 +138351,12 @@ dcb
cMY
cea
laE
-tCh
-kon
-qyo
-qyo
-qyo
-jHZ
+xsp
+jER
+muj
+gSi
+mLI
+sSW
aST
gSi
yjc
@@ -138819,11 +138609,11 @@ cMY
deX
aiu
tCh
-nUV
-saJ
-wbX
-mPh
-gpg
+nNa
+dwo
+gSi
+gve
+uMh
nGU
gSi
dun
@@ -139076,12 +138866,12 @@ cMY
deX
joJ
tCh
-oly
-tuj
-xLa
-xLa
-xoY
-gsi
+mhV
+ccN
+gSi
+lPk
+xKi
+ffG
gSi
duo
dmu
@@ -139333,12 +139123,12 @@ cMY
deY
oAw
tCh
-bLH
-bly
-xLa
-uJJ
+wId
+xKO
+gSi
+oBr
ifR
-veb
+dMi
gSi
dup
dlg
@@ -139590,12 +139380,12 @@ cMY
cjp
hST
tCh
-cGu
-hOV
-hOV
-hOV
+wId
+wId
+gSi
+kYl
oox
-iNP
+bNG
gSi
duq
dlh
@@ -139847,11 +139637,11 @@ cMY
deZ
joJ
tCh
-sKO
-rKf
-gvD
-mLZ
-dQV
+uCC
+uWD
+iyK
+rMT
+oox
qhk
gSi
dur
@@ -140023,10 +139813,10 @@ wLZ
nXp
twf
awb
-sKv
-qzv
+hWj
+owI
xpD
-eCk
+nuU
awb
ipq
fsB
@@ -140108,7 +139898,7 @@ tCh
tCh
gSi
sUT
-hgS
+fGC
gSi
gSi
dus
@@ -142674,16 +142464,16 @@ cNd
cOM
dgt
cMY
-djF
-djF
-djF
-nTq
-djF
-djF
-djF
-djF
-djF
-djF
+gSi
+gSi
+gSi
+tNB
+gSi
+gSi
+gSi
+gSi
+gSi
+gSi
cxO
oFE
caE
@@ -142931,16 +142721,16 @@ ddR
cNd
cNd
cMY
-djG
-dlt
-dmG
-ybh
-dqo
-drM
-gFZ
-duz
-wTa
-djF
+foP
+uqk
+ops
+aNy
+oFz
+iTT
+nku
+ooQ
+ykV
+gSi
dzp
pxk
caE
@@ -143188,16 +142978,16 @@ vHZ
vHZ
vHZ
cMY
-djH
-dlu
-dmH
-pLc
-drN
-vwU
-dtg
-dtg
-dtg
-vJu
+voj
+sXf
+kzS
+aNy
+pRL
+uIy
+bTz
+bTz
+bTz
+vUT
cxN
wJa
dBY
@@ -143445,16 +143235,16 @@ cNd
cON
eAA
cMY
-djI
-wjF
-dmI
-wVN
-eAB
-imL
-drN
-duD
-qUc
-djF
+sWs
+pRL
+pbQ
+aCt
+lvX
+wZp
+mHE
+geO
+mHE
+gSi
dzo
oks
exk
@@ -143702,16 +143492,16 @@ ddR
cNd
cNd
cMY
-djJ
-dlv
-dmJ
-xot
-dqr
-drO
-djJ
-duE
-qdJ
-djF
+pkr
+jca
+sPX
+pPE
+hrL
+aEM
+mHE
+sle
+mHE
+gSi
tbn
cjq
dBZ
@@ -143959,16 +143749,16 @@ cNc
cMY
cMY
dhU
-djK
-djK
-dmF
-fuF
-dmF
-djF
-djF
-djF
-djF
-djF
+tCh
+tCh
+hpL
+luI
+hpL
+gSi
+gSi
+gSi
+gSi
+gSi
drP
drP
drP
@@ -148030,7 +147820,7 @@ sKa
pTo
kcH
wpW
-gIn
+odz
wIy
oxN
lgC
@@ -149533,7 +149323,7 @@ aXI
hFM
wtr
unM
-fkO
+guN
stu
pqt
ofO
@@ -149790,7 +149580,7 @@ aXI
vWE
xXQ
hXi
-jcg
+jvd
jOV
ofO
qUo
@@ -150047,7 +149837,7 @@ aXI
wrg
euO
vsR
-jmM
+wEH
jOV
bDy
gJj
@@ -150304,7 +150094,7 @@ aXI
kUs
iJD
mvD
-uHW
+bSd
gbz
ofO
gJj
@@ -150561,7 +150351,7 @@ aXI
ude
euO
unM
-tCD
+yhN
jOV
ofO
gJj
@@ -150818,7 +150608,7 @@ aXI
dZu
jNP
krF
-jmM
+wEH
bBg
ofO
tuq
@@ -151075,7 +150865,7 @@ aXI
mvi
qMY
snN
-mSq
+umc
fqv
mMT
ofO
@@ -151332,7 +151122,7 @@ aXI
aXI
aXI
aXI
-gOd
+iKP
ncV
ncV
uZJ
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
index ae831f5881a..8a59befed37 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -1656,6 +1656,10 @@
/obj/structure/table,
/turf/open/floor/iron/showroomfloor,
/area/security/warden)
+"ahT" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/closed/wall,
+/area/maintenance/fore/secondary)
"ahU" = (
/obj/structure/closet{
name = "Evidence Closet"
@@ -2484,6 +2488,23 @@
/obj/item/trash/can,
/turf/open/floor/iron,
/area/security/prison)
+"akE" = (
+/obj/structure/sign/warning/deathsposal{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/delivery,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/disposal/bin,
+/obj/structure/cable,
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"akF" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 10
@@ -3360,6 +3381,12 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/security/courtroom)
+"anD" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"anE" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -3695,6 +3722,13 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"aoL" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"aoM" = (
/turf/open/floor/plating,
/area/maintenance/solars/starboard/fore)
@@ -3834,6 +3868,29 @@
/obj/machinery/meter/atmos/layer4,
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"apw" = (
+/obj/effect/landmark/blobstart,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apx" = (
+/obj/machinery/door/airlock/atmos{
+ name = "Atmospherics Maintenance";
+ req_access_txt = "12;24"
+ },
+/obj/effect/mapping_helpers/airlock/abandoned,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apy" = (
+/obj/item/wrench,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"apz" = (
/obj/machinery/hydroponics/soil,
/obj/item/shovel/spade,
@@ -4011,6 +4068,34 @@
/obj/structure/reagent_dispensers/servingdish,
/turf/open/floor/iron,
/area/security/prison)
+"aqp" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/fire/firefighter,
+/obj/item/tank/internals/oxygen,
+/obj/item/clothing/mask/gas,
+/obj/item/extinguisher,
+/obj/item/clothing/head/hardhat/red,
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/binary/pump/on/general/visible/layer4{
+ dir = 4;
+ name = "Air In"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqq" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"aqt" = (
/obj/structure/toilet/greyscale{
dir = 8;
@@ -7699,14 +7784,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/hallway/primary/central)
-"aOB" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"aOE" = (
/obj/effect/turf_decal/tile/blue{
dir = 8
@@ -7895,20 +7972,6 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/entry)
-"aQx" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"aQy" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"aQB" = (
/obj/structure/sign/warning/securearea{
pixel_x = 32
@@ -8013,6 +8076,16 @@
icon_state = "damaged2"
},
/area/icemoon/surface/outdoors)
+"aRs" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/flora/rock/pile/icy{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"aRK" = (
/turf/open/floor/iron,
/area/command/heads_quarters/ce)
@@ -8950,12 +9023,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/hallway/primary/starboard)
-"baz" = (
-/obj/item/cigbutt,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"baC" = (
/obj/docking_port/stationary/random/icemoon{
dir = 8;
@@ -9706,6 +9773,16 @@
},
/turf/open/floor/iron,
/area/hallway/primary/central)
+"bfs" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"bfv" = (
/turf/closed/wall/r_wall,
/area/ai_monitored/turret_protected/ai_upload)
@@ -10183,6 +10260,9 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/science/lab)
+"bia" = (
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"bic" = (
/obj/item/radio/intercom/directional/north,
/obj/structure/table/glass,
@@ -12862,16 +12942,6 @@
/obj/item/clothing/shoes/winterboots,
/turf/open/floor/plating,
/area/maintenance/starboard)
-"bwt" = (
-/obj/structure/table,
-/obj/item/stock_parts/cell/high,
-/obj/machinery/cell_charger{
- pixel_y = 5
- },
-/turf/open/floor/iron/white/corner{
- dir = 4
- },
-/area/science/misc_lab)
"bwv" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -13205,6 +13275,13 @@
},
/turf/open/floor/plating,
/area/maintenance/disposal/incinerator)
+"byw" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"byL" = (
/obj/structure/chair/office{
dir = 1
@@ -13215,6 +13292,14 @@
},
/turf/open/floor/iron,
/area/security/checkpoint/supply)
+"byO" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"byP" = (
/obj/structure/sign/warning/securearea{
pixel_y = 32
@@ -13309,6 +13394,13 @@
/obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible,
/turf/open/floor/plating/snowed/icemoon,
/area/icemoon/surface/outdoors)
+"bzr" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -28
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"bzs" = (
/turf/closed/wall,
/area/maintenance/aft)
@@ -13379,6 +13471,12 @@
},
/turf/open/floor/iron/dark,
/area/science/genetics)
+"bzQ" = (
+/obj/item/cigbutt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"bzS" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
@@ -13827,6 +13925,13 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"bCf" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"bCq" = (
/turf/closed/wall,
/area/maintenance/port/aft)
@@ -14267,6 +14372,11 @@
},
/turf/open/floor/iron,
/area/maintenance/disposal/incinerator)
+"bEy" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/electrolyzer,
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"bEC" = (
/turf/closed/wall/r_wall,
/area/science/mixing)
@@ -17323,10 +17433,6 @@
},
/turf/open/floor/iron,
/area/science/misc_lab)
-"cbe" = (
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"cbh" = (
/obj/structure/table,
/obj/item/folder/white,
@@ -17806,11 +17912,38 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/maintenance/port/aft)
+"chm" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/machinery/airalarm/all_access{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"chw" = (
/obj/structure/table/wood,
/obj/item/storage/fancy/donut_box,
/turf/open/floor/carpet,
/area/command/heads_quarters/captain)
+"chC" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = 5
+ },
+/turf/open/floor/iron/white/side{
+ dir = 1
+ },
+/area/science/misc_lab)
"chH" = (
/obj/structure/closet/firecloset,
/turf/open/floor/plating,
@@ -18725,6 +18858,12 @@
"cuf" = (
/turf/closed/wall/r_wall,
/area/ai_monitored/turret_protected/aisat/service)
+"cuh" = (
+/obj/structure/rack,
+/obj/item/wrench,
+/obj/item/crowbar/red,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
"cui" = (
/obj/machinery/atmospherics/components/tank/air,
/turf/open/floor/plating,
@@ -18747,6 +18886,10 @@
/obj/machinery/recharge_station,
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat/service)
+"cuq" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
"cur" = (
/obj/structure/showcase/cyborg/old{
dir = 4;
@@ -18825,6 +18968,10 @@
/obj/machinery/holopad/secure,
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/aisat/service)
+"cuL" = (
+/obj/structure/cable,
+/turf/open/floor/iron/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
"cuN" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -18835,6 +18982,13 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/aisat/atmos)
+"cuO" = (
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
"cuQ" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/hatch{
@@ -21213,6 +21367,12 @@
/obj/item/reagent_containers/food/drinks/flask/gold,
/turf/open/floor/carpet,
/area/command/heads_quarters/captain)
+"dky" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"dkZ" = (
/obj/machinery/light/small/directional/west,
/mob/living/simple_animal/mouse/brown/tom,
@@ -21752,12 +21912,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/cafeteria,
/area/service/kitchen)
-"dFk" = (
-/obj/machinery/nanite_program_hub,
-/obj/effect/turf_decal/bot,
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"dFo" = (
/obj/effect/turf_decal/trimline/blue/corner{
dir = 8
@@ -22430,9 +22584,6 @@
},
/turf/open/floor/plating/snowed/icemoon,
/area/icemoon/surface/outdoors)
-"dYq" = (
-/turf/closed/wall,
-/area/science/nanite)
"dYC" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -22762,13 +22913,6 @@
},
/turf/open/floor/iron,
/area/commons/dorms)
-"eja" = (
-/obj/effect/turf_decal/bot,
-/obj/machinery/computer/nanite_chamber_control{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"ejg" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -22993,12 +23137,6 @@
},
/turf/open/floor/iron/dark,
/area/medical/virology)
-"epI" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"epN" = (
/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
dir = 4
@@ -23018,6 +23156,16 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/ai_monitored/command/nuke_storage)
+"epW" = (
+/obj/machinery/door/airlock/external{
+ name = "Atmospherics External Airlock";
+ req_access_txt = "24"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
"eqa" = (
/obj/machinery/atmospherics/components/trinary/mixer{
dir = 8
@@ -23074,6 +23222,10 @@
/obj/machinery/light_switch/directional/east,
/turf/open/floor/iron,
/area/security/processing)
+"esv" = (
+/obj/machinery/module_duplicator,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"esy" = (
/obj/structure/table/wood,
/obj/item/paper_bin{
@@ -23099,10 +23251,6 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/engine/n2,
/area/engineering/atmos)
-"eta" = (
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plating,
-/area/ai_monitored/turret_protected/aisat/atmos)
"etg" = (
/obj/structure/chair/stool/directional/south,
/obj/effect/turf_decal/tile/red{
@@ -23301,6 +23449,12 @@
},
/turf/open/floor/iron,
/area/engineering/main)
+"eAd" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"eAh" = (
/obj/machinery/airalarm/directional/east,
/obj/machinery/light/directional/east,
@@ -23478,6 +23632,15 @@
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/iron,
/area/maintenance/port/fore)
+"eGA" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"eGU" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 8
@@ -23723,10 +23886,6 @@
},
/turf/open/floor/engine,
/area/engineering/supermatter/room)
-"eOa" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/closed/wall,
-/area/maintenance/fore/secondary)
"eOk" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -23943,6 +24102,13 @@
/obj/machinery/light/small/directional/east,
/turf/open/openspace/icemoon,
/area/security/execution/transfer)
+"eXz" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"eXP" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -24089,11 +24255,6 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/command/nuke_storage)
-"faQ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/electrolyzer,
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"faR" = (
/obj/effect/loot_site_spawner,
/turf/open/floor/plating{
@@ -24103,6 +24264,10 @@
"fbm" = (
/turf/open/floor/iron,
/area/command/heads_quarters/rd)
+"fbx" = (
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/dark,
+/area/science/research)
"fbH" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -24133,6 +24298,12 @@
},
/turf/open/floor/plating,
/area/engineering/storage/tech)
+"fcy" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"fdf" = (
/obj/machinery/power/apc/auto_name/west,
/obj/machinery/camera{
@@ -24608,6 +24779,17 @@
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat/maint)
+"frS" = (
+/obj/structure/table,
+/obj/machinery/requests_console/directional/east{
+ department = "Circuits Lab";
+ departmentType = 2;
+ name = "Circuits Lab Requests Console";
+ receive_ore_updates = 1
+ },
+/obj/item/clothing/shoes/wheelys/skishoes,
+/turf/open/floor/iron/dark,
+/area/science/research)
"frW" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -25849,6 +26031,16 @@
/obj/item/trash/semki,
/turf/open/floor/iron,
/area/maintenance/port/fore)
+"gaD" = (
+/obj/structure/table,
+/obj/item/stock_parts/cell/high,
+/obj/machinery/cell_charger{
+ pixel_y = 5
+ },
+/turf/open/floor/iron/white/corner{
+ dir = 4
+ },
+/area/science/misc_lab)
"gaT" = (
/obj/structure/table,
/obj/item/paper_bin{
@@ -26265,15 +26457,6 @@
"gnP" = (
/turf/closed/wall,
/area/cargo/storage)
-"gnX" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/structure/chair/office/light{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"gor" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -26532,25 +26715,6 @@
},
/turf/open/floor/iron,
/area/ai_monitored/command/storage/eva)
-"gwd" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/science/nanite)
-"gwm" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 10
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"gxp" = (
/obj/machinery/light_switch/directional/north,
/obj/structure/cable,
@@ -26876,6 +27040,19 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/commons/fitness)
+"gHf" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/statue/snow/snowman{
+ pixel_x = 6
+ },
+/obj/item/toy/snowball{
+ pixel_x = 16;
+ pixel_y = 4
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"gHj" = (
/obj/effect/turf_decal/tile/purple{
dir = 1
@@ -27029,12 +27206,6 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/plating,
/area/security/prison/safe)
-"gLd" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"gLf" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -27318,6 +27489,17 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/science/robotics/lab)
+"gTG" = (
+/obj/structure/statue/snow/snowman,
+/obj/item/toy/snowball{
+ pixel_x = -10;
+ pixel_y = 4
+ },
+/obj/item/food/snowcones/pwrgame{
+ pixel_x = 12
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"gTH" = (
/obj/structure/rack,
/obj/item/clothing/shoes/magboots,
@@ -27992,6 +28174,11 @@
},
/turf/open/floor/iron/freezer,
/area/maintenance/starboard/fore)
+"hrr" = (
+/obj/structure/table,
+/obj/item/food/grown/carrot,
+/turf/open/floor/iron/dark,
+/area/science/research)
"hrF" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
@@ -28245,6 +28432,18 @@
/obj/effect/turf_decal/loading_area,
/turf/open/floor/iron,
/area/engineering/main)
+"hze" = (
+/obj/machinery/light/small/directional/west,
+/obj/structure/chair/stool/directional/north,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/binary/pump/on/general/visible/layer4{
+ dir = 8;
+ name = "Air Out"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"hzs" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/techstorage/tcomms,
@@ -28292,11 +28491,6 @@
},
/turf/open/floor/iron,
/area/ai_monitored/command/storage/eva)
-"hAK" = (
-/obj/structure/table,
-/obj/item/storage/box/disks_nanite,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"hBg" = (
/obj/effect/turf_decal/delivery,
/obj/structure/disposalpipe/segment,
@@ -29169,9 +29363,6 @@
/obj/structure/grille,
/turf/closed/wall/r_wall,
/area/engineering/atmos)
-"hZk" = (
-/turf/open/floor/iron,
-/area/science/nanite)
"hZo" = (
/obj/structure/sign/warning/securearea,
/turf/closed/wall/r_wall,
@@ -29238,11 +29429,6 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/iron/white,
/area/science/mixing)
-"ibG" = (
-/obj/machinery/nanite_programmer,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"ibP" = (
/obj/machinery/door/airlock/external{
name = "External Access";
@@ -29273,10 +29459,6 @@
},
/turf/open/floor/engine,
/area/engineering/supermatter/room)
-"icS" = (
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/iron,
-/area/science/nanite)
"icU" = (
/obj/machinery/status_display/evac/directional/east,
/obj/effect/turf_decal/tile/red{
@@ -29548,6 +29730,11 @@
/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/iron/dark,
/area/hallway/primary/aft)
+"ini" = (
+/obj/effect/turf_decal/loading_area,
+/obj/machinery/light_switch/directional/west,
+/turf/open/floor/iron/dark,
+/area/science/research)
"ink" = (
/obj/effect/turf_decal/tile/purple{
dir = 8
@@ -29859,6 +30046,10 @@
"iwd" = (
/turf/open/floor/carpet,
/area/service/chapel/main)
+"iwz" = (
+/obj/structure/flora/tree/dead,
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"iwH" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -31125,6 +31316,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/engineering/atmos)
+"jiO" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "rnd2";
+ name = "research lab shutters"
+ },
+/turf/open/floor/plating,
+/area/science/research)
"jjv" = (
/turf/open/floor/iron/freezer,
/area/commons/toilet/locker)
@@ -32090,15 +32289,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/science/mixing)
-"jKN" = (
-/obj/structure/table,
-/obj/item/storage/toolbox/electrical{
- pixel_y = 5
- },
-/turf/open/floor/iron/white/side{
- dir = 1
- },
-/area/science/misc_lab)
"jLf" = (
/obj/structure/cable,
/turf/closed/wall/r_wall,
@@ -32786,6 +32976,12 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/cargo/storage)
+"kfx" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"kfV" = (
/obj/structure/sink/kitchen{
pixel_y = 28
@@ -32907,14 +33103,6 @@
},
/turf/open/floor/wood,
/area/service/library)
-"kja" = (
-/obj/machinery/door/airlock/atmos{
- name = "Atmospherics Maintenance";
- req_access_txt = "12;24"
- },
-/obj/effect/mapping_helpers/airlock/abandoned,
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
"kjD" = (
/obj/machinery/light/directional/north,
/obj/effect/turf_decal/tile/brown{
@@ -33354,14 +33542,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/cargo/qm)
-"kvA" = (
-/obj/item/wrench,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible,
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
"kwf" = (
/turf/open/floor/iron,
/area/command/gateway)
@@ -33388,6 +33568,15 @@
/obj/structure/closet/wardrobe/mixed,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"kwD" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/north,
+/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"kxf" = (
/obj/structure/cable,
/mob/living/simple_animal/sloth/paperwork,
@@ -33443,15 +33632,6 @@
},
/turf/open/floor/iron/white,
/area/science/genetics)
-"kxK" = (
-/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,
-/turf/open/floor/iron/white/corner{
- dir = 1
- },
-/area/science/misc_lab)
"kyo" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -33999,6 +34179,10 @@
},
/turf/open/floor/iron,
/area/commons/dorms)
+"kPz" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"kPF" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -34318,6 +34502,11 @@
/obj/structure/table/wood,
/turf/open/floor/carpet,
/area/command/heads_quarters/hos)
+"kYW" = (
+/obj/structure/table,
+/obj/item/clothing/shoes/wheelys/skishoes,
+/turf/open/floor/iron/dark,
+/area/science/research)
"kZi" = (
/obj/machinery/air_sensor/atmos/nitrogen_tank,
/turf/open/floor/engine/n2,
@@ -34704,15 +34893,6 @@
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
/area/engineering/engine_smes)
-"llI" = (
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/bot,
-/obj/structure/cable,
-/obj/machinery/light_switch/directional/north,
-/obj/structure/closet/radiation,
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"llU" = (
/obj/structure/table,
/obj/item/camera_film,
@@ -35618,13 +35798,6 @@
},
/turf/open/floor/plating,
/area/engineering/atmos)
-"lLp" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/science/nanite)
"lLw" = (
/obj/effect/landmark/blobstart,
/obj/effect/landmark/blobstart,
@@ -35639,6 +35812,16 @@
/obj/item/crowbar,
/turf/open/floor/iron,
/area/command/teleporter)
+"lLD" = (
+/obj/machinery/door/airlock/security{
+ name = "Interrogation";
+ req_access_txt = "63"
+ },
+/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/dark,
+/area/security/interrogation)
"lMe" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -35795,28 +35978,6 @@
},
/turf/open/floor/iron,
/area/cargo/sorting)
-"lQm" = (
-/obj/machinery/camera{
- c_tag = "Nanite Lab";
- dir = 4;
- network = list("ss13","rd")
- },
-/obj/machinery/computer/nanite_cloud_controller,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
-"lQq" = (
-/obj/machinery/light/small/directional/west,
-/obj/structure/chair/stool/directional/north,
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/obj/machinery/atmospherics/components/binary/pump/on/general/visible/layer4{
- dir = 8;
- name = "Air Out"
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
"lQz" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/security{
@@ -36216,13 +36377,6 @@
"lYu" = (
/turf/open/floor/iron,
/area/commons/locker)
-"lZb" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4,
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
"lZm" = (
/obj/machinery/washing_machine,
/obj/machinery/light/directional/south,
@@ -37199,15 +37353,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
-"mBm" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"mBy" = (
/obj/structure/urinal/directional/north,
/turf/open/floor/iron/freezer,
@@ -37369,6 +37514,14 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/hallway/primary/starboard)
+"mFt" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"mFv" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -37414,14 +37567,6 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/command/nuke_storage)
-"mGC" = (
-/obj/machinery/power/apc/auto_name/west,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"mGX" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -38110,16 +38255,6 @@
/obj/item/wirecutters,
/turf/open/floor/plating,
/area/engineering/storage/tech)
-"mYX" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/secure_closet/atmospherics,
-/obj/effect/turf_decal/bot,
-/obj/structure/cable,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"mYY" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -38304,12 +38439,6 @@
/obj/effect/landmark/start/shaft_miner,
/turf/open/floor/iron,
/area/cargo/miningdock)
-"nee" = (
-/obj/machinery/light/directional/south,
-/obj/machinery/nanite_program_hub,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"nes" = (
/obj/machinery/light/directional/east,
/obj/item/radio/intercom/directional/east,
@@ -38436,11 +38565,6 @@
/obj/item/book/manual/wiki/security_space_law,
/turf/open/floor/iron,
/area/security/office)
-"nhP" = (
-/obj/effect/turf_decal/loading_area,
-/obj/machinery/light_switch/directional/west,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"nhQ" = (
/turf/open/floor/carpet,
/area/service/library)
@@ -38457,16 +38581,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/engineering/supermatter/room)
-"niE" = (
-/obj/machinery/door/airlock/external{
- name = "Atmospherics External Airlock";
- req_access_txt = "24"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/engineering/atmos)
"njb" = (
/obj/effect/turf_decal/trimline/green/filled/corner,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -39397,6 +39511,12 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/service/bar)
+"nIs" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/simple/dark/visible,
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"nIt" = (
/obj/machinery/porta_turret/ai{
dir = 4;
@@ -39445,12 +39565,6 @@
/obj/structure/closet/crate/maint,
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
-"nKl" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/simple/dark/visible,
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"nKz" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible,
@@ -39952,15 +40066,6 @@
},
/turf/open/floor/iron/dark,
/area/engineering/supermatter/room)
-"oaD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/camera{
- c_tag = "Incinerator";
- dir = 4
- },
-/obj/machinery/atmospherics/components/tank/toxins,
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"obi" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible,
@@ -40002,6 +40107,15 @@
icon_state = "platingdmg1"
},
/area/maintenance/port/fore)
+"ocR" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Incinerator";
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/tank/toxins,
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"odh" = (
/obj/structure/chair{
dir = 8
@@ -40425,10 +40539,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/security/office)
-"oqr" = (
-/obj/machinery/module_duplicator,
-/turf/open/floor/iron,
-/area/science/misc_lab)
"oqA" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -41153,6 +41263,15 @@
},
/turf/open/floor/iron,
/area/ai_monitored/command/storage/eva)
+"oLK" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/bot,
+/obj/structure/cable,
+/obj/machinery/light_switch/directional/north,
+/obj/structure/closet/radiation,
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"oLZ" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 1;
@@ -41189,12 +41308,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/commons/storage/tools)
-"oMN" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"oMZ" = (
/obj/item/radio/intercom/directional/south,
/obj/effect/landmark/event_spawn,
@@ -41558,13 +41671,6 @@
/obj/structure/cable,
/turf/open/floor/iron/freezer,
/area/commons/toilet/locker)
-"oYU" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"oZj" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -41778,6 +41884,14 @@
/obj/machinery/light/directional/north,
/turf/open/floor/iron,
/area/command/teleporter)
+"peS" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/frame/computer{
+ anchored = 1;
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"pfQ" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/button/crematorium{
@@ -42121,18 +42235,24 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/security/office)
+"pnZ" = (
+/obj/machinery/power/apc/auto_name/west,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/dark,
+/area/science/research)
+"poa" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/iron/dark,
+/area/science/research)
"ppl" = (
/obj/effect/landmark/xeno_spawn,
/obj/structure/cable,
/turf/open/floor/plating,
/area/engineering/storage/tech)
-"ppD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"ppE" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -42562,13 +42682,6 @@
/obj/structure/cable,
/turf/open/floor/carpet,
/area/command/heads_quarters/hos)
-"pAq" = (
-/obj/effect/landmark/blobstart,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
"pAx" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -42734,11 +42847,6 @@
},
/turf/open/floor/iron/white,
/area/medical/virology)
-"pDu" = (
-/obj/machinery/computer/nanite_cloud_controller,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"pEc" = (
/obj/structure/extinguisher_cabinet/directional/east,
/obj/effect/turf_decal/tile/blue{
@@ -42829,6 +42937,10 @@
/obj/structure/disposalpipe/segment,
/turf/closed/wall,
/area/cargo/office)
+"pFJ" = (
+/obj/structure/flora/grass/brown,
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"pFO" = (
/obj/machinery/camera{
c_tag = "Holodeck - Fore";
@@ -43078,15 +43190,6 @@
},
/turf/open/floor/plating/icemoon,
/area/security/execution/transfer)
-"pMx" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/north,
-/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"pMA" = (
/obj/machinery/light/directional/west,
/turf/open/floor/iron/dark,
@@ -43174,6 +43277,18 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/carpet,
/area/service/library)
+"pOq" = (
+/obj/machinery/camera{
+ c_tag = "Circuits Lab";
+ dir = 4;
+ network = list("ss13","rd")
+ },
+/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"pOt" = (
/obj/structure/chair/comfy/black{
dir = 4
@@ -43236,10 +43351,6 @@
dir = 4
},
/area/service/chapel/main)
-"pPU" = (
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/ai_monitored/turret_protected/aisat/atmos)
"pQf" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -43813,15 +43924,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/ai_monitored/command/storage/eva)
-"qea" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"qek" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/tile/blue,
@@ -43870,15 +43972,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/wood,
/area/command/heads_quarters/captain)
-"qeQ" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"qfA" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -44282,24 +44375,6 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron/cafeteria,
/area/service/kitchen)
-"qtz" = (
-/obj/machinery/power/terminal{
- dir = 1
- },
-/obj/machinery/airalarm/all_access{
- dir = 8;
- pixel_x = 24
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 10
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"qtI" = (
/obj/structure/closet/toolcloset,
/turf/open/floor/plating,
@@ -44614,12 +44689,6 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay)
-"qGG" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"qGO" = (
/obj/structure/window/reinforced{
dir = 8
@@ -45388,6 +45457,15 @@
},
/turf/open/floor/plating,
/area/maintenance/aft)
+"rcN" = (
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/bot,
+/obj/structure/frame/computer{
+ anchored = 1;
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"ren" = (
/obj/machinery/light_switch/directional/west,
/obj/machinery/autolathe,
@@ -46013,13 +46091,6 @@
/obj/item/assembly/flash/handheld,
/turf/open/floor/iron,
/area/security/office)
-"rxM" = (
-/obj/machinery/ai_slipper{
- uses = 10
- },
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/ai_monitored/turret_protected/aisat/atmos)
"rxV" = (
/obj/machinery/power/rad_collector/anchored,
/obj/structure/window/plasma/reinforced{
@@ -46586,14 +46657,6 @@
/obj/machinery/airalarm/directional/south,
/turf/open/floor/iron/white,
/area/medical/medbay/lobby)
-"rIN" = (
-/obj/machinery/light/directional/east,
-/obj/effect/turf_decal/bot,
-/obj/machinery/computer/nanite_chamber_control{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"rIW" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
@@ -46790,6 +46853,15 @@
/obj/machinery/light_switch/directional/west,
/turf/open/floor/wood,
/area/commons/vacant_room/office)
+"rOb" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"rOc" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -47053,6 +47125,10 @@
dir = 9
},
/area/science/research)
+"rXF" = (
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/iron/dark,
+/area/science/research)
"rXH" = (
/obj/item/radio/intercom/directional/east,
/obj/effect/turf_decal/tile/red,
@@ -47467,10 +47543,6 @@
/obj/machinery/light/directional/north,
/turf/open/floor/circuit,
/area/ai_monitored/command/nuke_storage)
-"sjr" = (
-/obj/effect/turf_decal/loading_area,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"sjv" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 5
@@ -47876,13 +47948,6 @@
},
/turf/open/floor/plating,
/area/security/office)
-"suU" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/science/nanite)
"suY" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/wood,
@@ -48153,12 +48218,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine/vacuum,
/area/science/mixing/chamber)
-"sDW" = (
-/obj/structure/extinguisher_cabinet/directional/west,
-/obj/machinery/nanite_chamber,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"sEt" = (
/obj/machinery/power/rad_collector/anchored,
/obj/structure/window/plasma/reinforced{
@@ -48767,6 +48826,12 @@
},
/turf/open/floor/iron/white,
/area/science/xenobiology)
+"sVf" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"sVk" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/delivery,
@@ -49138,16 +49203,6 @@
},
/turf/open/floor/iron,
/area/science/xenobiology)
-"tgl" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/chair/office/light{
- dir = 8
- },
-/obj/effect/landmark/start/scientist,
-/turf/open/floor/iron,
-/area/science/nanite)
"tgF" = (
/obj/structure/table,
/obj/item/wrench,
@@ -50442,17 +50497,6 @@
},
/turf/open/floor/iron/showroomfloor,
/area/security/warden)
-"tTk" = (
-/obj/structure/table,
-/obj/item/nanite_remote,
-/obj/machinery/requests_console/directional/east{
- department = "Nanite Lab";
- departmentType = 2;
- name = "Nanite Lab Requests Console";
- receive_ore_updates = 1
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"tTm" = (
/obj/structure/chair{
dir = 8
@@ -50486,16 +50530,6 @@
},
/turf/open/floor/plating,
/area/cargo/storage)
-"tTU" = (
-/obj/machinery/door/airlock/security{
- name = "Interrogation";
- req_access_txt = "63"
- },
-/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/dark,
-/area/security/interrogation)
"tUg" = (
/obj/machinery/light/directional/north,
/obj/effect/turf_decal/tile/blue{
@@ -51028,6 +51062,16 @@
/obj/structure/table/wood,
/turf/open/floor/carpet,
/area/command/heads_quarters/captain)
+"uhT" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/secure_closet/atmospherics,
+/obj/effect/turf_decal/bot,
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"uhY" = (
/obj/machinery/conveyor{
dir = 4;
@@ -51075,6 +51119,14 @@
},
/turf/open/floor/carpet,
/area/command/heads_quarters/captain)
+"uji" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/airalarm/directional/south,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"ujx" = (
/obj/structure/cable,
/obj/structure/sign/poster/random{
@@ -51796,12 +51848,6 @@
},
/turf/open/floor/iron/cafeteria,
/area/command/heads_quarters/rd)
-"uzl" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"uzt" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/drinks/mug/coco{
@@ -51893,6 +51939,15 @@
/obj/structure/sign/warning/electricshock,
/turf/closed/wall/r_wall,
/area/engineering/main)
+"uBX" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"uBY" = (
/obj/machinery/power/apc/auto_name/north,
/obj/structure/cable,
@@ -51959,16 +52014,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/carpet,
/area/service/library)
-"uDL" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"uDP" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -52688,6 +52733,17 @@
dir = 8
},
/area/science/research)
+"vdD" = (
+/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 = 6
+ },
+/turf/open/floor/iron/white/side{
+ dir = 9
+ },
+/area/science/misc_lab)
"vdE" = (
/obj/structure/chair/office{
dir = 1
@@ -52742,12 +52798,6 @@
},
/turf/open/floor/iron,
/area/command/bridge)
-"vfj" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
"vfk" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -52998,17 +53048,6 @@
},
/turf/open/floor/plating,
/area/maintenance/aft)
-"vqd" = (
-/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 = 6
- },
-/turf/open/floor/iron/white/side{
- dir = 9
- },
-/area/science/misc_lab)
"vqt" = (
/obj/structure/window/reinforced,
/obj/structure/table/wood,
@@ -53456,23 +53495,6 @@
/obj/effect/turf_decal/tile/red,
/turf/open/floor/iron,
/area/hallway/primary/fore)
-"vBX" = (
-/obj/structure/sign/warning/deathsposal{
- pixel_y = 32
- },
-/obj/effect/turf_decal/delivery,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/disposal/bin,
-/obj/structure/cable,
-/obj/structure/disposalpipe/trunk,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 10
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"vCa" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -53738,6 +53760,16 @@
},
/turf/open/floor/iron/dark,
/area/command/gateway)
+"vIe" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"vIi" = (
/obj/structure/extinguisher_cabinet/directional/east,
/obj/effect/turf_decal/tile/red{
@@ -53760,6 +53792,10 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/service/hydroponics)
+"vKo" = (
+/obj/structure/flora/grass/green,
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"vKs" = (
/obj/machinery/modular_computer/console/preset/civilian{
dir = 4
@@ -54711,14 +54747,6 @@
/obj/item/assembly/timer,
/turf/open/floor/iron,
/area/security/office)
-"wkN" = (
-/obj/effect/spawner/structure/window,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "rnd2";
- name = "research lab shutters"
- },
-/turf/open/floor/plating,
-/area/science/nanite)
"wld" = (
/turf/open/floor/iron,
/area/commons/fitness)
@@ -54795,23 +54823,6 @@
},
/turf/open/floor/iron,
/area/commons/fitness)
-"wmG" = (
-/obj/structure/rack,
-/obj/item/clothing/suit/fire/firefighter,
-/obj/item/tank/internals/oxygen,
-/obj/item/clothing/mask/gas,
-/obj/item/extinguisher,
-/obj/item/clothing/head/hardhat/red,
-/obj/item/clothing/glasses/meson,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/obj/machinery/atmospherics/components/binary/pump/on/general/visible/layer4{
- dir = 4;
- name = "Air In"
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
"wmO" = (
/obj/structure/janitorialcart,
/turf/open/floor/iron,
@@ -54910,11 +54921,6 @@
/obj/item/trash/cheesie,
/turf/open/floor/plating,
/area/maintenance/port)
-"wpH" = (
-/obj/effect/turf_decal/bot,
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"wpS" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/securearea{
@@ -54948,11 +54954,6 @@
/obj/item/storage/box/lights/mixed,
/turf/open/floor/plating,
/area/commons/storage/emergency/port)
-"wqH" = (
-/obj/machinery/nanite_chamber,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"wqZ" = (
/obj/machinery/field/generator,
/turf/open/floor/plating,
@@ -55551,17 +55552,19 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
-"wMs" = (
-/obj/machinery/portable_atmospherics/canister/air,
-/obj/effect/turf_decal/stripes/line{
- dir = 6
+"wLA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 5
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4,
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 1
+/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
+ dir = 10
},
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"wME" = (
/obj/structure/disposalpipe/segment,
/obj/structure/disposalpipe/segment,
@@ -55576,6 +55579,16 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/science/mixing)
+"wMX" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/item/stack/sheet/mineral/snow{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"wNj" = (
/obj/structure/sign/warning/securearea{
pixel_x = -32
@@ -56126,12 +56139,6 @@
icon_state = "panelscorched"
},
/area/maintenance/starboard/aft)
-"xcf" = (
-/obj/structure/rack,
-/obj/item/wrench,
-/obj/item/crowbar/red,
-/turf/open/floor/plating,
-/area/ai_monitored/turret_protected/aisat/atmos)
"xct" = (
/obj/machinery/holopad,
/turf/open/floor/iron,
@@ -56215,6 +56222,14 @@
},
/turf/open/floor/iron/white,
/area/science/genetics)
+"xeS" = (
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"xfb" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -56367,6 +56382,16 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/maintenance/starboard/aft)
+"xje" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/flora/grass/both{
+ pixel_x = -4;
+ pixel_y = -4
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"xju" = (
/obj/structure/chair/office{
dir = 1
@@ -56894,13 +56919,6 @@
/obj/machinery/holopad/secure,
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/ai)
-"xwc" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/warning/nosmoking{
- pixel_x = -28
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"xwi" = (
/obj/effect/turf_decal/trimline/green/filled/line{
dir = 6
@@ -57200,11 +57218,6 @@
},
/turf/open/floor/iron,
/area/commons/storage/primary)
-"xEM" = (
-/obj/structure/table,
-/obj/item/nanite_scanner,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"xFn" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -57235,6 +57248,15 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
+"xGt" = (
+/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,
+/turf/open/floor/iron/white/corner{
+ dir = 1
+ },
+/area/science/misc_lab)
"xGS" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/light/directional/west,
@@ -58243,16 +58265,6 @@
/obj/machinery/power/apc/auto_name/east,
/turf/open/floor/iron/white,
/area/medical/medbay/lobby)
-"yiW" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"yjo" = (
/obj/machinery/camera{
c_tag = "Chapel South";
@@ -84422,7 +84434,7 @@ hOb
msq
jAh
dUA
-tTU
+lLD
ajA
akp
agj
@@ -92913,7 +92925,7 @@ anc
anc
bkV
fXZ
-vfj
+anD
vqW
baY
lXa
@@ -93169,9 +93181,9 @@ ahn
tFJ
anF
ahn
-eOa
-kja
-eOa
+ahT
+apx
+ahT
baY
iAf
wld
@@ -93426,9 +93438,9 @@ ahn
ahn
anE
ahn
-lQq
-pAq
-wmG
+hze
+apw
+aqp
baY
eNF
wld
@@ -93683,9 +93695,9 @@ boP
ahn
anG
ahn
-lZb
-kvA
-wMs
+aoL
+apy
+aqq
baY
yiO
wld
@@ -94537,7 +94549,7 @@ nQw
puJ
pss
nxB
-niE
+epW
pjX
pjX
pjX
@@ -95562,11 +95574,11 @@ thh
thh
tQo
bxo
-pMx
-xwc
-oaD
-ppD
-faQ
+kwD
+bzr
+ocR
+bCf
+bEy
bxo
boP
boP
@@ -95590,10 +95602,10 @@ boP
boP
pjX
ctZ
-xcf
-eta
+cuh
+cuq
bmL
-pPU
+cuL
cuY
cvj
mYE
@@ -95818,8 +95830,8 @@ gAK
gAK
gAK
tQo
-llI
-aOB
+oLK
+byO
cjr
ods
suK
@@ -95848,9 +95860,9 @@ boP
boP
ctZ
cui
-eta
+cuq
bmL
-rxM
+cuO
bmL
cvP
kiC
@@ -96076,7 +96088,7 @@ xxZ
eaP
tQo
mXd
-oYU
+byw
cjr
bAQ
bDX
@@ -96332,8 +96344,8 @@ gAK
hLx
kXW
tQo
-mYX
-oYU
+uhT
+byw
bzB
bBg
bEu
@@ -96590,8 +96602,8 @@ xJc
hiM
kev
bxE
-uDL
-baz
+bfs
+bzQ
bEL
bEL
bEL
@@ -96846,9 +96858,9 @@ pHc
cGN
cdO
tQo
-vBX
-gwm
-nKl
+akE
+wLA
+nIs
bBl
bEv
bEV
@@ -97104,7 +97116,7 @@ gAK
gAK
tQo
cga
-qtz
+chm
mMs
bBo
qxz
@@ -104038,7 +104050,7 @@ pby
tJy
uWL
hFE
-bwt
+gaD
bQZ
bTC
uTB
@@ -104295,7 +104307,7 @@ dov
dov
wgT
dov
-jKN
+chC
bQZ
mIV
iLm
@@ -104551,8 +104563,8 @@ eOr
fZt
caW
nPK
-vqd
-kxK
+vdD
+xGt
gWT
qJG
jsw
@@ -105036,13 +105048,13 @@ boB
qaX
jrH
sve
-dYq
-dYq
-dYq
-wkN
-wkN
-wkN
-dYq
+bhA
+bhA
+bhA
+jiO
+jiO
+jiO
+bhA
bhA
xtW
ovK
@@ -105064,7 +105076,7 @@ bPN
uOi
cba
gZY
-oqr
+esv
bQZ
nlW
xIk
@@ -105293,13 +105305,13 @@ iEK
bpZ
uIv
bta
-mGC
-nhP
-sDW
-eja
-hAK
-ibG
-lQm
+pnZ
+ini
+xeS
+peS
+hrr
+eXz
+pOq
bEC
bEC
bGc
@@ -105550,13 +105562,13 @@ bng
boQ
brx
bro
-aQx
-suU
-qeQ
-tgl
-qGG
-oMN
-wpH
+uBX
+kfx
+dky
+dky
+gHf
+aRs
+poa
bEC
umY
uej
@@ -105807,13 +105819,13 @@ boA
bpZ
bqf
bBD
-gLd
-qea
-hZk
-hZk
-hZk
-icS
-nee
+sVf
+eGA
+pFJ
+bia
+bia
+kPz
+mFt
pLE
nCs
gLx
@@ -106064,13 +106076,13 @@ bnk
bpo
bqk
bBD
-gLd
-gwd
-hZk
-hZk
-hZk
-icS
-dFk
+sVf
+eAd
+iwz
+gTG
+vKo
+kPz
+uji
pLE
ont
eeA
@@ -106321,13 +106333,13 @@ biW
bpZ
bth
brn
-aQy
-lLp
-mBm
-gnX
-epI
-uzl
-cbe
+rOb
+xje
+fcy
+fcy
+fcy
+wMX
+fbx
pLE
kdp
dFZ
@@ -106578,13 +106590,13 @@ bnl
bpq
vdl
kXt
-yiW
-sjr
-wqH
-rIN
-xEM
-tTk
-pDu
+vIe
+rXF
+eXz
+rcN
+kYW
+frS
+eXz
pLE
tZf
mqf
@@ -106840,8 +106852,8 @@ bpE
bpE
bpE
bpE
-dYq
-dYq
+boB
+boB
pLE
qSi
sql
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index 73939e16189..c80ee5f72eb 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -5023,6 +5023,15 @@
icon_state = "platingdmg1"
},
/area/maintenance/starboard/fore)
+"aow" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/obj/machinery/bounty_board/directional/north,
+/turf/open/floor/iron/dark,
+/area/science/research)
"aox" = (
/turf/closed/wall,
/area/maintenance/central)
@@ -5780,6 +5789,11 @@
/obj/machinery/power/apc/auto_name/north,
/turf/open/floor/carpet,
/area/medical/psychology)
+"aqQ" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/item/stack/sheet/glass,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
"aqR" = (
/obj/machinery/door/airlock/maintenance{
name = "morgue maintenance";
@@ -11572,6 +11586,9 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/hallway/primary/fore)
+"aNt" = (
+/turf/open/floor/iron/showroomfloor,
+/area/command/heads_quarters/rd)
"aNu" = (
/turf/closed/wall,
/area/medical/morgue)
@@ -15445,15 +15462,6 @@
/obj/structure/tank_dispenser,
/turf/open/floor/iron/dark,
/area/science/mixing)
-"aXE" = (
-/obj/machinery/nanite_chamber,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/research)
"aXH" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -15603,23 +15611,6 @@
"aXW" = (
/turf/closed/wall/rust,
/area/maintenance/starboard/fore)
-"aXX" = (
-/obj/structure/chair/office/light{
- dir = 1;
- pixel_y = 3
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/research)
"aXY" = (
/obj/effect/turf_decal/tile/purple{
dir = 4
@@ -15866,21 +15857,6 @@
icon_state = "panelscorched"
},
/area/maintenance/central)
-"aYN" = (
-/obj/machinery/nanite_program_hub,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/science/research)
"aYO" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/highsecurity{
@@ -15904,58 +15880,6 @@
},
/turf/open/floor/iron/showroomfloor,
/area/science/research)
-"aYR" = (
-/obj/machinery/computer/nanite_cloud_controller,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/research)
-"aYS" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/research)
-"aYT" = (
-/obj/machinery/nanite_programmer,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/research)
-"aYU" = (
-/obj/machinery/nanite_program_hub,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/research)
"aYY" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -16167,21 +16091,6 @@
dir = 1
},
/area/hallway/primary/fore)
-"aZt" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/bot,
-/obj/machinery/holopad,
-/turf/open/floor/iron/dark,
-/area/science/research)
"aZu" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -16482,23 +16391,6 @@
/obj/structure/cable,
/turf/open/floor/iron/showroomfloor,
/area/medical/medbay/central)
-"aZX" = (
-/obj/effect/turf_decal/bot,
-/obj/machinery/computer/nanite_chamber_control{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/research)
"aZZ" = (
/obj/effect/turf_decal/tile/purple{
dir = 1
@@ -16989,17 +16881,6 @@
"bbi" = (
/turf/closed/wall/r_wall,
/area/science/mixing/chamber)
-"bbj" = (
-/obj/structure/table,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/item/storage/box/disks_nanite{
- pixel_y = 4
- },
-/obj/item/hand_labeler,
-/turf/open/floor/iron/dark,
-/area/science/research)
"bbk" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -17162,17 +17043,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/hallway/primary/starboard)
-"bbJ" = (
-/obj/machinery/computer/nanite_cloud_controller,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/research)
"bbK" = (
/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior,
/obj/effect/mapping_helpers/airlock/locked,
@@ -17181,17 +17051,6 @@
},
/turf/open/floor/engine,
/area/science/mixing/chamber)
-"bbL" = (
-/obj/machinery/nanite_chamber,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/research)
"bbN" = (
/turf/closed/wall,
/area/science/mixing)
@@ -18182,23 +18041,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/dark,
/area/science/research)
-"beE" = (
-/obj/structure/chair/office/light{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/landmark/start/scientist,
-/turf/open/floor/iron/dark,
-/area/science/research)
"beI" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/effect/turf_decal/bot,
@@ -31610,6 +31452,37 @@
},
/turf/open/floor/plating,
/area/security/prison)
+"cfs" = (
+/obj/structure/cable,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/solar_assembly,
+/obj/item/stack/sheet/glass/fifty,
+/obj/structure/closet/crate/engineering/electrical,
+/obj/structure/sign/warning/xeno_mining{
+ pixel_x = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
"cft" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -37018,24 +36891,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/port/aft)
-"cxk" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/obj/structure/sign/warning/vacuum/external{
- pixel_x = -32
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/obj/structure/frame/computer{
- anchored = 1;
- dir = 4
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/maintenance/solars/port/aft)
"cxl" = (
/obj/structure/sign/warning/nosmoking{
pixel_x = 30
@@ -37803,6 +37658,14 @@
/obj/machinery/power/apc/auto_name/west,
/turf/open/floor/iron/dark,
/area/security/processing)
+"czz" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple,
+/turf/open/floor/iron/showroomfloor,
+/area/command/heads_quarters/rd)
"czA" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -41006,24 +40869,6 @@
/obj/structure/cable,
/turf/open/floor/engine,
/area/engineering/supermatter/room)
-"cYO" = (
-/obj/structure/chair/office/light{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/landmark/start/research_director,
-/turf/open/floor/iron/showroomfloor,
-/area/command/heads_quarters/rd)
"cYR" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -41496,6 +41341,22 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/command/heads_quarters/hos)
+"dkL" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/north,
+/obj/machinery/camera{
+ c_tag = "Toxins Launch Site";
+ name = "science camera";
+ network = list("ss13","rd")
+ },
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/module_duplicator,
+/turf/open/floor/iron/dark,
+/area/science/test_area)
"dkX" = (
/obj/structure/sign/poster/contraband/random,
/turf/closed/wall/rust,
@@ -42005,18 +41866,6 @@
/obj/effect/landmark/start/bartender,
/turf/open/floor/wood,
/area/service/bar)
-"dyq" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/contraband/rebels_unite{
- pixel_x = -32;
- pixel_y = 32
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner,
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 1
- },
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"dyu" = (
/obj/structure/flora/grass/jungle{
icon_state = "bushb1"
@@ -42897,6 +42746,24 @@
dir = 1
},
/area/service/chapel/main)
+"dWe" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/obj/structure/frame/computer{
+ anchored = 1;
+ dir = 4
+ },
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/solars/port/aft)
"dWo" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -43363,14 +43230,6 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/security/prison)
-"ehM" = (
-/mob/living/simple_animal/hostile/carp{
- environment_smash = 0;
- name = "Tuna";
- real_name = "Tuna"
- },
-/turf/open/floor/plating/asteroid/airless,
-/area/space/nearstation)
"eih" = (
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -43819,6 +43678,23 @@
},
/turf/open/floor/engine,
/area/engineering/supermatter)
+"erH" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/landmark/start/research_director,
+/turf/open/floor/iron/showroomfloor,
+/area/command/heads_quarters/rd)
"erO" = (
/obj/effect/turf_decal/tile/yellow{
dir = 4
@@ -44839,6 +44715,24 @@
/obj/effect/landmark/start/cook,
/turf/open/floor/iron/showroomfloor,
/area/service/kitchen)
+"eML" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Research Hallway";
+ name = "science camera";
+ network = list("ss13","rd")
+ },
+/obj/machinery/status_display/evac/directional/north,
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"eNm" = (
/obj/effect/turf_decal/tile/blue{
dir = 8
@@ -46447,6 +46341,23 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/maintenance/disposal/incinerator)
+"fxL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/contraband/rebels_unite{
+ pixel_x = -32;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 8
+ },
+/obj/item/toy/plush/plasmamanplushie{
+ name = "Dianion XV"
+ },
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
"fyi" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
@@ -47506,19 +47417,6 @@
/obj/structure/cable,
/turf/open/floor/iron/showroomfloor,
/area/engineering/break_room)
-"fRy" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/computer/rdconsole{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/command/heads_quarters/rd)
"fSn" = (
/turf/closed/wall/r_wall/rust,
/area/medical/psychology)
@@ -48952,6 +48850,27 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron/dark,
/area/service/library)
+"gCO" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 1
+ },
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
+"gCQ" = (
+/obj/machinery/computer/robotics{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/iron/dark,
+/area/command/heads_quarters/rd)
"gDl" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -49299,6 +49218,11 @@
/obj/machinery/light_switch/directional/west,
/turf/open/floor/iron/dark,
/area/service/chapel/main)
+"gOl" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/purple/filled/line,
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
"gOw" = (
/obj/structure/sign/warning/fire,
/turf/closed/wall/r_wall,
@@ -49993,22 +49917,6 @@
luminosity = 2
},
/area/engineering/storage/tech)
-"hdL" = (
-/obj/structure/chair/office/light,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/landmark/start/research_director,
-/turf/open/floor/iron/showroomfloor,
-/area/command/heads_quarters/rd)
"hdT" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -50071,11 +49979,6 @@
/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/iron/dark,
/area/engineering/supermatter/room)
-"heK" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/item/stack/sheet/glass,
-/turf/open/floor/plating/airless,
-/area/space/nearstation)
"hfo" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/neutral{
@@ -50286,6 +50189,16 @@
/obj/structure/sign/departments/custodian,
/turf/closed/wall/rust,
/area/service/janitor)
+"hiG" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/structure/chair/office/light,
+/obj/effect/landmark/start/research_director,
+/turf/open/floor/iron/showroomfloor,
+/area/command/heads_quarters/rd)
"hjs" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -50502,27 +50415,6 @@
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/engine,
/area/engineering/supermatter/room)
-"hop" = (
-/obj/structure/table,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/item/clipboard,
-/obj/item/nanite_remote{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/item/nanite_scanner{
- pixel_x = 4
- },
-/obj/machinery/airalarm/directional/north,
-/obj/machinery/light/directional/east,
-/obj/effect/turf_decal/stripes/corner,
-/turf/open/floor/iron/dark,
-/area/science/research)
"hoE" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -50653,6 +50545,11 @@
},
/turf/open/floor/iron/dark,
/area/science/xenobiology)
+"hsn" = (
+/obj/effect/turf_decal/box,
+/obj/structure/cable,
+/turf/open/floor/iron/solarpanel/airless,
+/area/solars/starboard/aft)
"hsu" = (
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible,
/turf/closed/wall/rust,
@@ -50765,6 +50662,22 @@
/obj/machinery/bounty_board/directional/north,
/turf/open/floor/iron/dark,
/area/medical/storage)
+"hwx" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/food/drinks/mug/coco,
+/turf/open/floor/iron/showroomfloor,
+/area/command/heads_quarters/rd)
"hwB" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/mining/glass{
@@ -52939,6 +52852,12 @@
},
/turf/open/floor/iron/dark,
/area/security/office)
+"ivb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/command/heads_quarters/rd)
"ivj" = (
/obj/structure/sign/warning/electricshock,
/turf/closed/wall/r_wall,
@@ -52983,21 +52902,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/cargo/warehouse)
-"iwO" = (
-/obj/effect/turf_decal/stripes/corner,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 9
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/machinery/research/explosive_compressor,
-/turf/open/floor/iron/showroomfloor,
-/area/science/test_area)
"iwW" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -54415,6 +54319,19 @@
/obj/machinery/light/directional/east,
/turf/open/floor/iron/dark,
/area/engineering/atmos)
+"iYZ" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/item/kirbyplants/potty,
+/turf/open/floor/iron/showroomfloor,
+/area/command/heads_quarters/rd)
"iZc" = (
/obj/structure/chair/sofa{
color = "#c45c57"
@@ -54465,6 +54382,20 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/maintenance/starboard)
+"jaC" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/computer/rdconsole{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/dark,
+/area/command/heads_quarters/rd)
"jaD" = (
/obj/effect/turf_decal/delivery,
/obj/machinery/space_heater,
@@ -56164,37 +56095,6 @@
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/iron/dark,
/area/engineering/supermatter/room)
-"jPh" = (
-/obj/structure/cable,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/stack/sheet/glass/fifty,
-/obj/structure/closet/crate/engineering/electrical,
-/obj/structure/sign/warning/xeno_mining{
- pixel_x = 32
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/obj/machinery/light/small/directional/north,
-/turf/open/floor/plating,
-/area/maintenance/solars/starboard/aft)
"jPk" = (
/obj/structure/table/glass,
/obj/item/storage/box/rxglasses{
@@ -58111,27 +58011,6 @@
},
/turf/open/floor/engine,
/area/engineering/supermatter/room)
-"kzj" = (
-/obj/effect/turf_decal/bot,
-/obj/machinery/computer/nanite_chamber_control,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/machinery/camera{
- c_tag = "Nanite Lab";
- name = "science camera";
- network = list("ss13","rd")
- },
-/obj/machinery/status_display/evac/directional/north,
-/turf/open/floor/iron/dark,
-/area/science/research)
"kzk" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/decal/cleanable/dirt,
@@ -60780,6 +60659,23 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/command/heads_quarters/hop)
+"lGH" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/contraband/rebels_unite{
+ pixel_x = 32;
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 4
+ },
+/obj/item/toy/plush/plasmamanplushie{
+ name = "Lithium II"
+ },
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
"lGO" = (
/obj/structure/lattice/catwalk,
/obj/structure/railing{
@@ -64258,6 +64154,16 @@
icon_state = "panelscorched"
},
/area/maintenance/disposal/incinerator)
+"njW" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"nlh" = (
/obj/structure/frame/machine,
/obj/effect/turf_decal/stripes/line{
@@ -65411,20 +65317,6 @@
/obj/effect/mapping_helpers/airlock/abandoned,
/turf/open/floor/iron/dark,
/area/cargo/warehouse)
-"nOe" = (
-/obj/machinery/computer/aifixer{
- dir = 4
- },
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/iron/dark,
-/area/command/heads_quarters/rd)
"nOQ" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
@@ -65572,6 +65464,18 @@
},
/turf/open/floor/engine,
/area/engineering/storage/tech)
+"nRi" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/contraband/rebels_unite{
+ pixel_x = -32;
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner,
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 1
+ },
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
"nRr" = (
/obj/machinery/power/solar{
id = "aftstarboard";
@@ -68729,6 +68633,26 @@
icon_state = "platingdmg1"
},
/area/maintenance/disposal/incinerator)
+"pid" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable,
+/obj/machinery/computer/shuttle/mining/common,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/commons/fitness/recreation)
"pie" = (
/obj/machinery/power/port_gen/pacman,
/obj/structure/sign/warning/electricshock{
@@ -69113,11 +69037,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/ai_monitored/command/storage/eva)
-"pqf" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/purple/filled/line,
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"pqg" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -70923,6 +70842,11 @@
},
/turf/open/floor/iron/dark,
/area/cargo/miningoffice)
+"pZk" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/electrolyzer,
+/turf/open/floor/iron/dark,
+/area/maintenance/disposal/incinerator)
"pZn" = (
/obj/effect/turf_decal/delivery,
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
@@ -72090,23 +72014,6 @@
/obj/machinery/vending/drugs,
/turf/open/floor/iron/showroomfloor,
/area/medical/surgery)
-"qBh" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/contraband/rebels_unite{
- pixel_x = 32;
- pixel_y = 32
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 4
- },
-/obj/item/toy/plush/plasmamanplushie{
- name = "Lithium II"
- },
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"qCn" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -72880,6 +72787,18 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/exit/departure_lounge)
+"qRl" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/iron/dark,
+/area/science/research)
"qRs" = (
/obj/effect/turf_decal/bot,
/obj/machinery/conveyor{
@@ -73487,6 +73406,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/maintenance/disposal/incinerator)
+"rhC" = (
+/obj/structure/lattice/catwalk,
+/obj/item/stack/sheet/glass,
+/turf/open/space/basic,
+/area/solars/port/aft)
"rhG" = (
/obj/structure/table,
/obj/effect/turf_decal/tile/neutral{
@@ -74194,11 +74118,6 @@
},
/turf/open/floor/iron/dark/corner,
/area/hallway/primary/port)
-"rtX" = (
-/obj/effect/turf_decal/box,
-/obj/structure/cable,
-/turf/open/floor/iron/solarpanel/airless,
-/area/solars/starboard/aft)
"rtZ" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
@@ -74244,6 +74163,20 @@
dir = 4
},
/area/service/chapel/main)
+"rvF" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/holopad,
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"rwo" = (
/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
dir = 4
@@ -75021,6 +74954,26 @@
"rPt" = (
/turf/closed/wall/r_wall/rust,
/area/command/heads_quarters/captain)
+"rPu" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/command/heads_quarters/rd)
"rQj" = (
/obj/effect/turf_decal/arrows/white{
dir = 4
@@ -76020,27 +75973,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/port/aft)
-"smq" = (
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 10
- },
-/obj/effect/landmark/start/research_director,
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/turf/open/floor/iron/showroomfloor,
-/area/command/heads_quarters/rd)
"sns" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -78220,11 +78152,6 @@
/obj/structure/noticeboard/directional/north,
/turf/open/floor/iron/dark,
/area/security/office)
-"toP" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/electrolyzer,
-/turf/open/floor/iron/dark,
-/area/maintenance/disposal/incinerator)
"toV" = (
/obj/effect/turf_decal/bot,
/obj/structure/closet/secure_closet/hydroponics,
@@ -79461,10 +79388,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/commons/fitness/recreation)
-"tMV" = (
-/obj/item/circuitboard/computer/solar_control,
-/turf/open/floor/plating/asteroid/airless,
-/area/space/nearstation)
"tNa" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/delivery,
@@ -79478,6 +79401,21 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/exit/departure_lounge)
+"tNe" = (
+/obj/effect/turf_decal/stripes/corner,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/machinery/research/explosive_compressor,
+/turf/open/floor/iron/showroomfloor,
+/area/science/test_area)
"tNt" = (
/turf/open/floor/plating,
/area/maintenance/disposal/incinerator)
@@ -79631,19 +79569,6 @@
},
/turf/open/floor/iron,
/area/engineering/break_room)
-"tOW" = (
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 10
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron/showroomfloor,
-/area/command/heads_quarters/rd)
"tPt" = (
/obj/structure/bookcase/random/fiction,
/turf/open/floor/wood,
@@ -79976,20 +79901,6 @@
/obj/structure/flora/ausbushes/ywflowers,
/turf/open/floor/grass,
/area/service/chapel/main)
-"tWx" = (
-/obj/machinery/computer/robotics{
- dir = 4
- },
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/iron/dark,
-/area/command/heads_quarters/rd)
"tXc" = (
/obj/machinery/holopad,
/turf/open/floor/iron,
@@ -81384,15 +81295,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/cargo/warehouse)
-"uBq" = (
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
-/turf/open/floor/iron/showroomfloor,
-/area/command/heads_quarters/rd)
"uBS" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -82477,6 +82379,21 @@
icon_state = "platingdmg3"
},
/area/maintenance/starboard/aft)
+"vbD" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/structure/table,
+/obj/structure/sign/poster/contraband/rebels_unite{
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/purple/filled/corner,
+/obj/item/flashlight/lamp,
+/turf/open/floor/plating/plasma/rust,
+/area/maintenance/space_hut/plasmaman)
"vbO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 8
@@ -82592,11 +82509,6 @@
},
/turf/open/floor/iron/showroomfloor,
/area/security/warden)
-"vcT" = (
-/obj/structure/lattice/catwalk,
-/obj/item/stack/sheet/glass,
-/turf/open/space/basic,
-/area/solars/port/aft)
"vdd" = (
/obj/effect/landmark/event_spawn,
/obj/effect/landmark/start/hangover,
@@ -83312,22 +83224,6 @@
},
/turf/open/floor/iron/dark,
/area/science/mixing)
-"vse" = (
-/obj/structure/table,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/item/folder,
-/obj/item/nanite_scanner{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/nanite_remote,
-/obj/machinery/light/directional/east,
-/obj/machinery/bounty_board/directional/north,
-/turf/open/floor/iron/dark,
-/area/science/research)
"vsF" = (
/obj/machinery/light/directional/north,
/obj/effect/spawner/structure/window/hollow/reinforced/middle{
@@ -83523,22 +83419,6 @@
},
/turf/open/floor/iron/dark,
/area/security/office)
-"vxi" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/light/small/directional/north,
-/obj/machinery/camera{
- c_tag = "Toxins Launch Site";
- name = "science camera";
- network = list("ss13","rd")
- },
-/obj/structure/cable,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/module_duplicator,
-/turf/open/floor/iron/dark,
-/area/science/test_area)
"vxD" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -83671,13 +83551,6 @@
dir = 1
},
/area/maintenance/aft)
-"vzj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 1
- },
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"vzr" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -85152,21 +85025,6 @@
},
/turf/open/floor/iron/dark,
/area/commons/storage/primary)
-"wiR" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/tank/internals/plasmaman/belt/full,
-/obj/structure/table,
-/obj/structure/sign/poster/contraband/rebels_unite{
- pixel_x = 32;
- pixel_y = -32
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner,
-/obj/item/flashlight/lamp,
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"wje" = (
/obj/structure/table/glass,
/obj/machinery/computer/med_data/laptop,
@@ -85509,6 +85367,12 @@
icon_state = "platingdmg1"
},
/area/security/office)
+"woi" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"woB" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "ceprivate";
@@ -85530,6 +85394,14 @@
/obj/machinery/status_display/evac/directional/east,
/turf/open/floor/iron/showroomfloor,
/area/medical/medbay/central)
+"woH" = (
+/mob/living/simple_animal/hostile/carp{
+ environment_smash = 0;
+ name = "Tuna";
+ real_name = "Tuna"
+ },
+/turf/open/floor/plating/asteroid/airless,
+/area/space/nearstation)
"woL" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
@@ -87098,26 +86970,6 @@
},
/turf/open/floor/iron,
/area/maintenance/disposal/incinerator)
-"wYW" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 10
- },
-/obj/structure/cable,
-/obj/machinery/computer/shuttle/mining/common,
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/commons/fitness/recreation)
"wZx" = (
/obj/machinery/light/small/directional/south,
/obj/effect/turf_decal/sand/plating,
@@ -87451,6 +87303,10 @@
/obj/machinery/airalarm/directional/south,
/turf/open/floor/iron/dark,
/area/science/test_area)
+"xfU" = (
+/obj/item/circuitboard/computer/solar_control,
+/turf/open/floor/plating/asteroid/airless,
+/area/space/nearstation)
"xgo" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -87804,6 +87660,20 @@
},
/turf/open/floor/iron/dark,
/area/engineering/atmos)
+"xoq" = (
+/obj/machinery/computer/aifixer{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/iron/dark,
+/area/command/heads_quarters/rd)
"xoK" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/obj/effect/turf_decal/delivery,
@@ -89359,23 +89229,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark,
/area/command/heads_quarters/ce)
-"xUP" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/contraband/rebels_unite{
- pixel_x = -32;
- pixel_y = -32
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 8
- },
-/obj/item/toy/plush/plasmamanplushie{
- name = "Dianion XV"
- },
-/turf/open/floor/plating/plasma/rust,
-/area/maintenance/space_hut/plasmaman)
"xUW" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -89512,6 +89365,18 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron/dark,
/area/service/bar)
+"xYR" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/science/research)
"xZt" = (
/obj/structure/chair/stool/directional/north,
/obj/structure/cable,
@@ -102346,7 +102211,7 @@ tnI
oUy
aau
aeU
-heK
+aqQ
jOe
jOe
jOe
@@ -102862,7 +102727,7 @@ asO
cmU
cmU
foo
-vcT
+rhC
foo
foo
foo
@@ -104337,7 +104202,7 @@ aeu
aeU
aeU
coy
-ehM
+woH
aDS
nBm
bFI
@@ -104662,7 +104527,7 @@ acK
cmU
aeU
aUz
-tMV
+xfU
aeU
cnS
cuU
@@ -105437,7 +105302,7 @@ vIb
cnO
kuW
cuZ
-cxk
+dWe
cnN
aeu
aeU
@@ -107714,7 +107579,7 @@ wrV
wrV
wrV
ich
-wYW
+pid
ney
vqR
qlh
@@ -115736,7 +115601,7 @@ vAc
dCE
pwM
rFl
-toP
+pZk
ute
qeZ
wvg
@@ -127992,12 +127857,12 @@ ifJ
rYN
aWW
aZv
-vse
-aXE
+aow
+aXI
+aXI
aXI
-aYR
beD
-bbj
+woi
aOi
bep
aZi
@@ -128250,10 +128115,10 @@ iOj
vlS
rJG
rJG
-kzj
-aXX
-aYS
-aZt
+eML
+xYR
+xYR
+rvF
bbl
aOi
cmg
@@ -128508,10 +128373,10 @@ ltR
mjr
vlS
vlS
-aYN
-aYT
-aYS
-bbJ
+vlS
+vlS
+njW
+bbl
aOo
bgj
aYe
@@ -128763,11 +128628,11 @@ aww
wtC
uNr
lov
-nOe
+iYZ
+hwx
+xoq
vlS
-vlS
-aYU
-beE
+njW
bbl
aOi
aRp
@@ -129020,12 +128885,12 @@ aWU
iOj
hea
hRI
-cYO
-tWx
+aNt
+hiG
+gCQ
vlS
-vlS
-aZX
-bbL
+njW
+bbl
aOi
bep
baU
@@ -129277,12 +129142,12 @@ baJ
iOj
pvu
xsN
-uBq
-hdL
+ivb
+czz
eSG
vlS
rJG
-hop
+qRl
aOr
aRB
aSJ
@@ -129533,8 +129398,8 @@ fsn
bcH
iOj
tGO
-smq
-tOW
+rPu
+erH
dPy
fPK
qOj
@@ -129792,7 +129657,7 @@ iOj
iOj
pgF
swx
-fRy
+jaC
oAb
tJP
vlS
@@ -129867,7 +129732,7 @@ erS
deb
aeu
ckU
-jPh
+cfs
cGv
cGV
clb
@@ -131920,10 +131785,10 @@ aeu
aUz
cmU
nRr
-rtX
-rtX
-rtX
-rtX
+hsn
+hsn
+hsn
+hsn
kuv
nRr
nRr
@@ -132435,15 +132300,15 @@ aeU
cmU
nRr
nRr
-rtX
-rtX
-rtX
+hsn
+hsn
+hsn
kuv
nRr
nRr
nRr
-rtX
-rtX
+hsn
+hsn
acm
aeo
acm
@@ -132629,7 +132494,7 @@ bbi
caT
xpL
pbn
-iwO
+tNe
xEu
xEu
gVX
@@ -132884,7 +132749,7 @@ cbk
aOU
kRX
qoN
-vxi
+dkL
sln
cHQ
sLE
@@ -132948,7 +132813,7 @@ aeU
cmU
nRr
nRr
-rtX
+hsn
nRr
nRr
xOh
@@ -133464,12 +133329,12 @@ nRr
nRr
nRr
nRr
-rtX
+hsn
xOh
kuv
xOh
-rtX
-rtX
+hsn
+hsn
nRr
nRr
nRr
@@ -133981,9 +133846,9 @@ nRr
nRr
nRr
kuv
-rtX
-rtX
-rtX
+hsn
+hsn
+hsn
nRr
nRr
acm
@@ -139831,8 +139696,8 @@ aaa
aeo
aaa
pFC
-dyq
-xUP
+nRi
+fxL
pFC
viq
aaa
@@ -140088,8 +139953,8 @@ aaa
aaQ
aaa
pFC
-pqf
-vzj
+gOl
+gCO
pFC
viq
aaa
@@ -140345,8 +140210,8 @@ aaa
aeo
aaa
pFC
-qBh
-wiR
+lGH
+vbD
pFC
viq
aaa
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 85f3805a5fb..164edfdd93a 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -1405,6 +1405,37 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/cargo/sorting)
+"ajN" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research{
+ name = "Xenobiology Entrance";
+ req_access_txt = "47"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/science/research)
"ajO" = (
/obj/structure/closet,
/obj/item/clothing/gloves/color/fyellow,
@@ -4745,16 +4776,6 @@
icon_state = "platingdmg1"
},
/area/maintenance/port/fore)
-"aLn" = (
-/obj/structure/table,
-/obj/machinery/microwave,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/machinery/light/small/directional/east,
-/turf/open/floor/iron,
-/area/science/nanite)
"aLs" = (
/obj/structure/sign/plaques/kiddie{
pixel_y = 32
@@ -6017,21 +6038,6 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/entry)
-"aXh" = (
-/obj/machinery/door/window/northleft{
- name = "Nanite Lab"
- },
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/science/nanite)
"aXm" = (
/obj/effect/turf_decal/siding/wood,
/obj/structure/disposalpipe/segment{
@@ -7069,6 +7075,21 @@
},
/turf/open/floor/iron,
/area/security/brig)
+"bih" = (
+/obj/structure/chair/comfy{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/effect/landmark/start/scientist,
+/turf/open/floor/iron,
+/area/science/research)
"bio" = (
/obj/machinery/camera{
c_tag = "AI Chamber - Aft";
@@ -7279,20 +7300,6 @@
},
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
-"bkv" = (
-/obj/structure/window/reinforced/tinted{
- dir = 1
- },
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"bkB" = (
/obj/item/extinguisher,
/turf/open/floor/plating,
@@ -7531,14 +7538,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/starboard)
-"bmT" = (
-/obj/machinery/nanite_program_hub,
-/obj/machinery/requests_console/directional/north{
- department = "Nanite Lab";
- name = "Nanite Lab Requests Console"
- },
-/turf/open/floor/circuit/green,
-/area/science/nanite)
"bmX" = (
/obj/effect/turf_decal/tile/blue,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -7820,6 +7819,21 @@
},
/turf/open/floor/iron,
/area/security/checkpoint/customs)
+"bpx" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/structure/disposalpipe/junction/flip{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/science/research)
"bpF" = (
/obj/structure/toilet{
pixel_y = 8
@@ -8409,17 +8423,6 @@
/obj/item/radio/intercom/directional/west,
/turf/open/floor/iron/dark,
/area/medical/storage)
-"bwo" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/smart/simple/violet/visible{
- dir = 6
- },
-/obj/machinery/atmospherics/components/binary/thermomachine/heater{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"bwN" = (
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
@@ -8853,6 +8856,17 @@
/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible,
/turf/open/floor/iron/dark,
/area/engineering/atmos)
+"bDe" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/smart/simple/violet/visible{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/binary/thermomachine/heater{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"bDt" = (
/obj/structure/cable,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -10773,6 +10787,14 @@
/obj/machinery/atmospherics/components/unary/cryo_cell,
/turf/open/floor/iron/dark/textured,
/area/medical/cryo)
+"cah" = (
+/obj/item/radio/intercom/directional/west,
+/obj/structure/frame/computer{
+ anchored = 1;
+ dir = 4
+ },
+/turf/open/floor/circuit/green/off,
+/area/science/research)
"car" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -12864,9 +12886,6 @@
},
/turf/open/floor/engine,
/area/engineering/supermatter/room)
-"ctL" = (
-/turf/closed/wall/r_wall,
-/area/science/nanite)
"ctU" = (
/obj/machinery/door/airlock/security/glass{
name = "Security Post - Cargo";
@@ -12899,6 +12918,23 @@
},
/turf/open/floor/wood,
/area/cargo/qm)
+"cui" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/science/research)
"cuj" = (
/obj/machinery/camera{
c_tag = "Supermatter Chamber";
@@ -14225,6 +14261,18 @@
},
/turf/open/floor/iron,
/area/security/checkpoint/science)
+"cHh" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/item/reagent_containers/food/drinks/britcup{
+ pixel_y = 2
+ },
+/turf/open/floor/iron,
+/area/science/research)
"cHu" = (
/obj/structure/cable,
/obj/machinery/camera{
@@ -15500,6 +15548,22 @@
},
/turf/open/space/basic,
/area/space)
+"cTr" = (
+/obj/structure/chair/comfy{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Science Break Room";
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/west,
+/obj/machinery/light_switch/directional/south,
+/turf/open/floor/iron,
+/area/science/research)
"cTz" = (
/obj/structure/table,
/obj/item/paper_bin{
@@ -15524,13 +15588,6 @@
/obj/machinery/space_heater,
/turf/open/floor/plating,
/area/maintenance/department/science/xenobiology)
-"cTN" = (
-/obj/structure/sign/warning/securearea,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/closed/wall,
-/area/science/nanite)
"cTU" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/north,
@@ -16543,6 +16600,17 @@
/obj/machinery/duct,
/turf/open/floor/plating,
/area/maintenance/fore)
+"dhj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/science/research)
"dhn" = (
/obj/structure/table,
/obj/item/poster/random_contraband,
@@ -16800,6 +16868,26 @@
/obj/structure/disposalpipe/trunk,
/turf/open/floor/iron,
/area/science/lab)
+"dkc" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 1;
+ sortType = 28
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/science/research)
"dki" = (
/obj/machinery/atmospherics/pipe/smart/simple/supply/visible,
/turf/closed/wall/r_wall,
@@ -18547,16 +18635,6 @@
},
/turf/open/floor/iron/white,
/area/medical/pharmacy)
-"dMl" = (
-/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/iron,
-/area/science/nanite)
"dMw" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/status_display/evac/directional/south,
@@ -19113,6 +19191,17 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/service/bar)
+"dWO" = (
+/obj/structure/chair/comfy{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/iron,
+/area/science/research)
"dWU" = (
/obj/machinery/disposal/bin,
/obj/effect/turf_decal/bot,
@@ -19614,44 +19703,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/science/mixing)
-"efA" = (
-/obj/structure/closet/crate/secure/weapon{
- desc = "A secure clothing crate.";
- name = "formal uniform crate";
- req_access_txt = "3"
- },
-/obj/item/clothing/under/rank/security/officer/formal,
-/obj/item/clothing/under/rank/security/officer/formal,
-/obj/item/clothing/under/rank/security/officer/formal,
-/obj/item/clothing/under/rank/security/officer/formal,
-/obj/item/clothing/under/rank/security/officer/formal,
-/obj/item/clothing/under/rank/security/officer/formal,
-/obj/item/clothing/suit/security/officer,
-/obj/item/clothing/suit/security/officer,
-/obj/item/clothing/suit/security/officer,
-/obj/item/clothing/suit/security/officer,
-/obj/item/clothing/suit/security/officer,
-/obj/item/clothing/suit/security/officer,
-/obj/item/clothing/under/rank/security/warden/formal,
-/obj/item/clothing/suit/security/warden,
-/obj/item/clothing/under/rank/security/head_of_security/formal,
-/obj/item/clothing/suit/security/hos,
-/obj/item/clothing/head/beret/sec/navyofficer,
-/obj/item/clothing/head/beret/sec/navyofficer,
-/obj/item/clothing/head/beret/sec/navyofficer,
-/obj/item/clothing/head/beret/sec/navyofficer,
-/obj/item/clothing/head/beret/sec/navyofficer,
-/obj/item/clothing/head/beret/sec/navyofficer,
-/obj/item/clothing/head/beret/sec/navywarden,
-/obj/item/clothing/head/hos/beret/navyhos,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/obj/structure/extinguisher_cabinet/directional/east,
-/obj/effect/turf_decal/tile/blue,
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/security/office)
"efD" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -22019,20 +22070,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"eQK" = (
-/obj/structure/table/glass,
-/obj/item/storage/box/disks_nanite{
- pixel_x = -5;
- pixel_y = 6
- },
-/obj/item/storage/box/disks_nanite{
- pixel_x = 6;
- pixel_y = 3
- },
-/obj/machinery/light_switch/directional/north,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"eRa" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 10
@@ -22456,6 +22493,17 @@
},
/turf/open/floor/iron/dark,
/area/command/bridge)
+"eWT" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
+/obj/machinery/duct,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 9
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/white,
+/area/medical/cryo)
"eWV" = (
/obj/structure/table,
/obj/item/paper/fluff/holodeck/disclaimer,
@@ -22758,17 +22806,6 @@
/obj/item/shard,
/turf/open/space/basic,
/area/space/nearstation)
-"fde" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"fdq" = (
/obj/structure/chair/stool/directional/north,
/obj/structure/disposalpipe/segment{
@@ -25061,15 +25098,6 @@
},
/turf/open/floor/iron/white,
/area/science/mixing)
-"fQU" = (
-/obj/structure/table,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/structure/extinguisher_cabinet/directional/south,
-/turf/open/floor/iron,
-/area/science/nanite)
"fRh" = (
/obj/item/radio/intercom/directional/west,
/obj/structure/table/glass,
@@ -25323,6 +25351,18 @@
/obj/item/pen/invisible,
/turf/open/floor/engine/cult,
/area/service/library)
+"fVN" = (
+/obj/structure/cable,
+/obj/machinery/light/directional/north,
+/obj/machinery/power/apc/auto_name/north,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/mob/living/simple_animal/pet/dog/corgi/puppy/void{
+ dir = 4
+ },
+/turf/open/floor/grass,
+/area/science/research)
"fWg" = (
/obj/structure/chair,
/obj/machinery/computer/security/telescreen/interrogation{
@@ -25360,6 +25400,20 @@
},
/turf/open/floor/circuit/green,
/area/science/robotics/mechbay)
+"fXt" = (
+/obj/structure/cable,
+/obj/item/food/cracker,
+/obj/item/food/cracker{
+ pixel_x = 9;
+ pixel_y = 9
+ },
+/obj/item/trash/boritos{
+ desc = "Why does it look like boritos? Nobody would feed unhealthy snacks to pets, right?";
+ name = "cracker bag";
+ pixel_x = -14
+ },
+/turf/open/floor/grass,
+/area/science/research)
"fXC" = (
/obj/structure/window/reinforced{
dir = 8
@@ -25721,11 +25775,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard)
-"gdG" = (
-/obj/machinery/computer/nanite_cloud_controller,
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/circuit/green,
-/area/science/nanite)
"gdY" = (
/obj/machinery/photocopier{
pixel_y = 3
@@ -25912,6 +25961,12 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
+"ghY" = (
+/mob/living/simple_animal/pet/penguin/baby{
+ dir = 8
+ },
+/turf/open/floor/grass,
+/area/science/research)
"gib" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/disposalpipe/segment,
@@ -26666,6 +26721,14 @@
},
/turf/open/floor/iron/freezer,
/area/security/prison)
+"gvE" = (
+/obj/machinery/light_switch/directional/north,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/mob/living/simple_animal/pet/dog/corgi/puppy/slime,
+/turf/open/floor/grass,
+/area/science/research)
"gvH" = (
/obj/structure/lattice/catwalk,
/obj/item/barcodescanner,
@@ -26915,37 +26978,6 @@
},
/turf/open/floor/engine,
/area/science/xenobiology)
-"gAI" = (
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/research{
- name = "Nanite Laboratory";
- req_access_txt = "47"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/science/nanite)
"gAP" = (
/obj/structure/sign/departments/cargo,
/turf/closed/wall,
@@ -27444,6 +27476,10 @@
/obj/effect/landmark/start/hangover/closet,
/turf/open/floor/iron/dark,
/area/commons/locker)
+"gHY" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/aft)
"gId" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 4
@@ -27584,32 +27620,6 @@
},
/turf/open/floor/iron/dark,
/area/science/mixing)
-"gLm" = (
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/obj/machinery/door/airlock/research{
- name = "Xenobiology Space Bridge";
- req_access_txt = "55"
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/door/poddoor/preopen{
- id = "xeno_blastdoor";
- name = "biohazard containment door"
- },
-/turf/open/floor/iron/white,
-/area/science/nanite)
"gMj" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
@@ -27856,6 +27866,31 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/plating,
/area/engineering/main)
+"gTG" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research{
+ name = "Xenobiology Access";
+ req_access_txt = "47"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/white,
+/area/science/research)
"gTQ" = (
/obj/machinery/light/directional/east,
/obj/structure/disposalpipe/segment,
@@ -28141,6 +28176,13 @@
/obj/effect/spawner/lootdrop/glowstick,
/turf/open/floor/iron/white,
/area/medical/abandoned)
+"gZq" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/grass,
+/area/science/research)
"gZM" = (
/obj/structure/sign/warning/pods,
/turf/closed/wall/r_wall,
@@ -30792,17 +30834,6 @@
},
/turf/open/floor/iron,
/area/service/hydroponics)
-"hXe" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/machinery/camera{
- c_tag = "Science Maintenance Corridor";
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/science/nanite)
"hXg" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/cable,
@@ -30997,14 +31028,6 @@
/obj/structure/cable,
/turf/open/floor/wood,
/area/command/heads_quarters/captain/private)
-"iay" = (
-/obj/effect/turf_decal/trimline/blue/filled/corner{
- dir = 8
- },
-/obj/machinery/light/directional/south,
-/obj/machinery/module_duplicator,
-/turf/open/floor/iron/white,
-/area/science/misc_lab)
"iaC" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -31761,18 +31784,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/commons/dorms)
-"inN" = (
-/obj/structure/window/reinforced/tinted{
- dir = 1
- },
-/obj/item/kirbyplants/random,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/machinery/light/small/directional/east,
-/turf/open/floor/iron,
-/area/science/nanite)
"inS" = (
/obj/item/radio/intercom/directional/south,
/obj/effect/turf_decal/tile/neutral{
@@ -31799,23 +31810,6 @@
/obj/effect/turf_decal/trimline/brown/warning,
/turf/open/floor/iron/white,
/area/hallway/primary/central)
-"iog" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"iov" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -31938,6 +31932,18 @@
},
/turf/open/floor/engine/plasma,
/area/engineering/atmos)
+"iqC" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/iron,
+/area/science/research)
"iqL" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/yellow{
@@ -33344,6 +33350,18 @@
},
/turf/open/floor/iron,
/area/service/hydroponics/garden)
+"iQR" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron,
+/area/science/research)
"iQX" = (
/obj/machinery/porta_turret/ai,
/obj/machinery/flasher/directional/north{
@@ -33742,6 +33760,16 @@
"iXC" = (
/turf/open/floor/engine/air,
/area/engineering/atmos)
+"iXU" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/iron,
+/area/science/research)
"iYi" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -35345,6 +35373,10 @@
},
/turf/open/floor/iron,
/area/service/hydroponics)
+"jBe" = (
+/obj/effect/decal/cleanable/garbage,
+/turf/open/floor/iron/white,
+/area/science/research)
"jBf" = (
/obj/structure/table/glass,
/obj/item/paper_bin{
@@ -35729,6 +35761,19 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/hallway/secondary/service)
+"jJh" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/science/research)
"jJq" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
@@ -38618,6 +38663,21 @@
},
/turf/open/floor/iron,
/area/hallway/primary/starboard)
+"kId" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/iron/white,
+/area/science/research)
"kIj" = (
/obj/machinery/airalarm/directional/east,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
@@ -39486,6 +39546,12 @@
},
/turf/open/floor/iron,
/area/cargo/miningoffice)
+"kXQ" = (
+/obj/structure/frame/machine{
+ anchored = 1
+ },
+/turf/open/floor/circuit/green/off,
+/area/science/research)
"kYe" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -40809,13 +40875,6 @@
},
/turf/open/floor/iron/white,
/area/science/storage)
-"lta" = (
-/obj/machinery/computer/nanite_chamber_control{
- dir = 4
- },
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/circuit/green,
-/area/science/nanite)
"ltg" = (
/obj/machinery/door/airlock/grunge{
name = "Prison Workshop"
@@ -43561,6 +43620,10 @@
/obj/effect/spawner/lootdrop/gross_decal_spawner,
/turf/open/floor/iron/white,
/area/medical/abandoned)
+"mpa" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall,
+/area/science/research)
"mph" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/circuit,
@@ -43951,6 +44014,12 @@
/obj/structure/cable,
/turf/open/floor/wood,
/area/service/lawoffice)
+"mvj" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/grass,
+/area/science/research)
"mvv" = (
/obj/machinery/light/small/directional/south,
/obj/effect/decal/cleanable/cobweb,
@@ -44288,6 +44357,20 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"mAN" = (
+/obj/machinery/door/window/northleft{
+ name = "Petting Zoo"
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/science/research)
"mBw" = (
/obj/structure/cable,
/obj/structure/disposalpipe/junction{
@@ -44414,6 +44497,13 @@
/obj/machinery/light_switch/directional/west,
/turf/open/floor/iron,
/area/commons/dorms)
+"mCH" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/structure/flora/ausbushes/stalkybush,
+/turf/open/floor/grass,
+/area/science/research)
"mDk" = (
/obj/machinery/power/rad_collector/anchored,
/obj/structure/window/plasma/reinforced{
@@ -45200,13 +45290,6 @@
/obj/machinery/libraryscanner,
/turf/open/floor/wood,
/area/service/library)
-"mQQ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/obj/effect/turf_decal/siding/green{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"mQU" = (
/obj/structure/plasticflaps,
/obj/structure/window/reinforced{
@@ -46394,6 +46477,24 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/carpet,
/area/command/heads_quarters/hos)
+"niR" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/turf/open/floor/iron,
+/area/science/research)
"niS" = (
/obj/machinery/light/directional/east,
/obj/structure/disposalpipe/segment,
@@ -46489,11 +46590,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/commons/storage/primary)
-"nkS" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"nkV" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/white/line{
@@ -46711,31 +46807,6 @@
},
/turf/open/floor/iron/dark,
/area/service/chapel/main)
-"noS" = (
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/research{
- name = "Nanite and Xenobiology Access";
- req_access_txt = "47"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/structure/cable,
-/turf/open/floor/iron/white,
-/area/science/research)
"noT" = (
/obj/structure/table/glass,
/obj/item/food/chips{
@@ -46933,20 +47004,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/starboard)
-"nsC" = (
-/obj/machinery/door/window/northright{
- name = "Nanite Lab"
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/science/nanite)
"nsG" = (
/obj/machinery/hydroponics/soil,
/obj/machinery/camera{
@@ -48008,17 +48065,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/grimy,
/area/service/chapel/office)
-"nIx" = (
-/obj/structure/chair/comfy{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/iron,
-/area/science/nanite)
"nID" = (
/obj/machinery/door/airlock/maintenance{
name = "Genetics Maintenance";
@@ -48113,6 +48159,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/hallway/primary/port)
+"nJl" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/structure/flora/ausbushes/grassybush,
+/turf/open/floor/grass,
+/area/science/research)
"nJN" = (
/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable,
@@ -49152,6 +49205,17 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"obj" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/machinery/camera{
+ c_tag = "Science Maintenance Corridor";
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/science/research)
"obv" = (
/obj/structure/sign/poster/contraband/random{
pixel_x = 32
@@ -49553,6 +49617,44 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"ohR" = (
+/obj/structure/closet/crate/secure/weapon{
+ desc = "A secure clothing crate.";
+ name = "formal uniform crate";
+ req_access_txt = "3"
+ },
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/suit/security/officer,
+/obj/item/clothing/suit/security/officer,
+/obj/item/clothing/suit/security/officer,
+/obj/item/clothing/suit/security/officer,
+/obj/item/clothing/suit/security/officer,
+/obj/item/clothing/suit/security/officer,
+/obj/item/clothing/under/rank/security/warden/formal,
+/obj/item/clothing/suit/security/warden,
+/obj/item/clothing/under/rank/security/head_of_security/formal,
+/obj/item/clothing/suit/security/hos,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navywarden,
+/obj/item/clothing/head/hos/beret/navyhos,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/cable,
+/turf/open/floor/iron/dark,
+/area/security/office)
"ohX" = (
/obj/machinery/camera{
c_tag = "Bar - Backroom"
@@ -49791,17 +49893,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/hallway/primary/port)
-"onG" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
-/obj/machinery/duct,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 9
- },
-/obj/structure/cable,
-/turf/open/floor/iron/white,
-/area/medical/cryo)
"onR" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/medical/glass{
@@ -50088,20 +50179,6 @@
},
/turf/open/floor/iron,
/area/security/brig)
-"orG" = (
-/obj/effect/landmark/blobstart,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/science/nanite)
"orL" = (
/obj/machinery/biogenerator,
/obj/effect/decal/cleanable/dirt,
@@ -50732,18 +50809,6 @@
/obj/item/radio/intercom/directional/west,
/turf/open/floor/iron/white,
/area/medical/medbay/central)
-"oDK" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Medbay Maintenance";
- req_access_txt = "5"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
-/area/maintenance/aft)
"oDQ" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -51423,15 +51488,6 @@
/obj/structure/cable/multilayer/connected,
/turf/open/floor/iron/dark,
/area/ai_monitored/aisat/exterior)
-"oOD" = (
-/obj/structure/chair/office/light{
- dir = 4
- },
-/obj/effect/turf_decal/siding/green{
- dir = 5
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"oOF" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -51714,6 +51770,10 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/iron/dark,
/area/command/heads_quarters/hos)
+"oTI" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/grass,
+/area/science/research)
"oTJ" = (
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -51754,11 +51814,6 @@
dir = 1
},
/area/hallway/primary/central)
-"oTY" = (
-/obj/machinery/holopad,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"oUb" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/purple{
@@ -52607,6 +52662,21 @@
},
/turf/open/floor/plating,
/area/maintenance/aft)
+"pgi" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/west,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/science/research)
"pgt" = (
/obj/machinery/light/small/directional/west,
/obj/effect/decal/cleanable/dirt,
@@ -54528,16 +54598,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard)
-"pPZ" = (
-/obj/structure/chair/office/light{
- dir = 8
- },
-/obj/structure/cable,
-/obj/effect/turf_decal/siding/green{
- dir = 9
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"pQi" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 4
@@ -54932,6 +54992,10 @@
},
/turf/open/floor/iron,
/area/science/robotics/lab)
+"pWO" = (
+/obj/structure/sign/warning/biohazard,
+/turf/closed/wall/r_wall,
+/area/science/research)
"pWR" = (
/obj/machinery/ai_slipper{
uses = 10
@@ -54970,6 +55034,20 @@
/obj/machinery/light_switch/directional/south,
/turf/open/floor/iron/dark,
/area/engineering/storage/tech)
+"pXA" = (
+/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/science/research)
"pXT" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -56663,20 +56741,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/security/office)
-"qCP" = (
-/obj/structure/chair/comfy{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/machinery/airalarm/directional/south,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"qCQ" = (
/obj/structure/window/reinforced{
dir = 1;
@@ -57228,22 +57292,6 @@
/obj/structure/grille,
/turf/closed/wall/r_wall,
/area/engineering/atmos)
-"qMf" = (
-/obj/structure/chair/comfy{
- dir = 4
- },
-/obj/machinery/camera{
- c_tag = "Science Break Room";
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/machinery/light/small/directional/west,
-/obj/machinery/light_switch/directional/south,
-/turf/open/floor/iron,
-/area/science/nanite)
"qMr" = (
/turf/closed/wall,
/area/service/kitchen/coldroom)
@@ -58267,14 +58315,6 @@
icon_state = "platingdmg3"
},
/area/solars/port/fore)
-"rdZ" = (
-/obj/structure/cable,
-/obj/effect/landmark/start/scientist,
-/obj/effect/turf_decal/siding/green{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"rec" = (
/obj/docking_port/stationary/random{
dir = 4;
@@ -58857,16 +58897,6 @@
/obj/machinery/atmospherics/pipe/smart/simple/dark/visible,
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
-"rnM" = (
-/obj/machinery/computer/nanite_chamber_control{
- dir = 8
- },
-/obj/machinery/camera{
- c_tag = "Science Nanites Lab";
- dir = 8
- },
-/turf/open/floor/circuit/green,
-/area/science/nanite)
"rnV" = (
/obj/structure/sign/warning/securearea,
/turf/closed/wall/r_wall,
@@ -59039,26 +59069,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard)
-"rqN" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 8
- },
-/obj/structure/disposalpipe/sorting/mail{
- dir = 1;
- sortType = 28
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/science/nanite)
"rqO" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -59073,6 +59083,17 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/security/brig)
+"rqT" = (
+/obj/machinery/camera{
+ c_tag = "Science Petting Zoo";
+ dir = 8
+ },
+/obj/structure/frame/computer{
+ anchored = 1;
+ dir = 8
+ },
+/turf/open/floor/circuit/green/off,
+/area/science/research)
"rrj" = (
/obj/machinery/door/airlock/maintenance{
name = "Storage Room";
@@ -59237,19 +59258,6 @@
},
/turf/open/floor/iron,
/area/engineering/break_room)
-"rsu" = (
-/obj/structure/window/reinforced/tinted{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"rtc" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -61185,10 +61193,6 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/wood,
/area/command/heads_quarters/captain/private)
-"rYp" = (
-/obj/structure/closet/firecloset,
-/turf/open/floor/plating,
-/area/maintenance/aft)
"rYC" = (
/turf/open/floor/plating{
icon_state = "platingdmg2"
@@ -61323,6 +61327,14 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/command)
+"sbQ" = (
+/obj/machinery/airalarm/directional/north,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/flora/ausbushes/brflowers,
+/turf/open/floor/grass,
+/area/science/research)
"sbW" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
@@ -62153,6 +62165,20 @@
"soZ" = (
/turf/open/floor/wood,
/area/command/corporate_showroom)
+"spa" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/science/research)
"spg" = (
/obj/machinery/light/small/directional/west,
/turf/open/floor/plating,
@@ -62183,10 +62209,6 @@
dir = 1
},
/area/engineering/atmos)
-"spG" = (
-/obj/structure/sign/warning/biohazard,
-/turf/closed/wall/r_wall,
-/area/science/nanite)
"spT" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -62882,6 +62904,16 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/science/robotics/mechbay)
+"sBX" = (
+/obj/structure/table,
+/obj/machinery/microwave,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/iron,
+/area/science/research)
"sCb" = (
/obj/machinery/door/airlock/command{
name = "Command Desk";
@@ -62951,6 +62983,12 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
+"sDy" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/grass,
+/area/science/research)
"sDL" = (
/obj/effect/turf_decal/tile/blue,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -66691,21 +66729,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/command/bridge)
-"tOv" = (
-/obj/structure/window/reinforced/tinted{
- dir = 1
- },
-/obj/item/kirbyplants/random,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/machinery/light/small/directional/west,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"tOw" = (
/obj/structure/sink{
dir = 8;
@@ -66955,6 +66978,11 @@
/obj/effect/turf_decal/bot_white,
/turf/open/floor/iron/dark,
/area/science/storage)
+"tSb" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/electrolyzer,
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"tSf" = (
/obj/structure/closet/secure_closet/courtroom,
/obj/machinery/light_switch/directional/north,
@@ -67616,23 +67644,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/science/robotics/mechbay)
-"ueO" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"ueU" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -68660,6 +68671,13 @@
},
/turf/open/floor/iron,
/area/commons/locker)
+"uuh" = (
+/obj/structure/sign/warning/securearea,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/science/research)
"uui" = (
/obj/structure/cable,
/obj/effect/turf_decal/stripes/line{
@@ -68747,6 +68765,32 @@
},
/turf/open/floor/iron,
/area/engineering/gravity_generator)
+"uvd" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/door/airlock/research{
+ name = "Xenobiology Space Bridge";
+ req_access_txt = "55"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "xeno_blastdoor";
+ name = "biohazard containment door"
+ },
+/turf/open/floor/iron/white,
+/area/science/research)
"uvj" = (
/obj/structure/closet/lasertag/blue,
/obj/effect/turf_decal/tile/neutral{
@@ -68894,21 +68938,6 @@
},
/turf/open/floor/iron/dark,
/area/science/genetics)
-"uxi" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/cable,
-/obj/machinery/light/small/directional/west,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/turf/open/floor/iron/white,
-/area/science/nanite)
"uxy" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -69213,6 +69242,11 @@
/obj/machinery/light_switch/directional/east,
/turf/open/floor/iron/dark,
/area/ai_monitored/security/armory)
+"uDl" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/grass,
+/area/science/research)
"uDq" = (
/obj/structure/sign/poster/contraband/random{
pixel_x = -32
@@ -69325,18 +69359,6 @@
},
/turf/open/floor/plating,
/area/engineering/supermatter/room)
-"uFU" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/science/nanite)
"uFV" = (
/obj/item/kirbyplants/random,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -69353,10 +69375,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/science/robotics/lab)
-"uFZ" = (
-/obj/machinery/nanite_programmer,
-/turf/open/floor/circuit/green,
-/area/science/nanite)
"uGc" = (
/obj/structure/girder,
/obj/structure/grille,
@@ -69721,6 +69739,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/engineering/main)
+"uML" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
"uMZ" = (
/obj/machinery/computer/security/telescreen/entertainment/directional/north,
/turf/open/floor/wood,
@@ -69746,14 +69772,6 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron/white/smooth_large,
/area/medical/treatment_center)
-"uNj" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
-/area/maintenance/aft)
"uNx" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/techstorage/security,
@@ -69868,6 +69886,19 @@
},
/turf/open/floor/iron/dark,
/area/command/gateway)
+"uPi" = (
+/obj/machinery/door/window/northright{
+ name = "Petting Zoo"
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/science/research)
"uPD" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -70581,10 +70612,6 @@
},
/turf/open/floor/iron/white,
/area/science/research)
-"uZY" = (
-/obj/machinery/nanite_chamber,
-/turf/open/floor/circuit/green,
-/area/science/nanite)
"vaD" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -71571,21 +71598,6 @@
icon_state = "wood-broken5"
},
/area/service/library)
-"vqp" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/cable,
-/obj/machinery/light/small/directional/west,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/structure/disposalpipe/junction/flip{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/science/nanite)
"vqw" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
@@ -72848,11 +72860,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
/turf/open/floor/iron/white,
/area/science/xenobiology)
-"vMe" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/electrolyzer,
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"vMx" = (
/obj/machinery/light/small/directional/east,
/obj/effect/turf_decal/stripes/line{
@@ -73210,6 +73217,18 @@
},
/turf/open/floor/iron/white,
/area/science/cytology)
+"vSv" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Medbay Maintenance";
+ req_access_txt = "5"
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
"vSJ" = (
/obj/item/radio/intercom/directional/north,
/obj/machinery/camera{
@@ -74015,10 +74034,6 @@
},
/turf/open/floor/iron,
/area/security/warden)
-"whv" = (
-/obj/structure/sign/warning/securearea,
-/turf/closed/wall,
-/area/science/nanite)
"whB" = (
/obj/effect/turf_decal/trimline/blue/filled/line,
/turf/open/floor/iron/white,
@@ -75416,20 +75431,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/engineering/gravity_generator)
-"wHW" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"wHY" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/blue{
@@ -76731,6 +76732,14 @@
/obj/effect/landmark/start/research_director,
/turf/open/floor/iron/dark,
/area/command/heads_quarters/rd)
+"xev" = (
+/obj/effect/turf_decal/trimline/blue/filled/corner{
+ dir = 8
+ },
+/obj/machinery/light/directional/south,
+/obj/machinery/module_duplicator,
+/turf/open/floor/iron/white,
+/area/science/misc_lab)
"xeO" = (
/obj/machinery/door/airlock/engineering{
name = "Starboard Quarter Solar Access";
@@ -77236,12 +77245,6 @@
/obj/effect/landmark/start/hangover/closet,
/turf/open/floor/iron/dark,
/area/commons/locker)
-"xmN" = (
-/obj/effect/turf_decal/siding/green{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"xmT" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{
@@ -77439,10 +77442,6 @@
/obj/effect/landmark/start/chaplain,
/turf/open/floor/iron/dark,
/area/service/chapel/main)
-"xrs" = (
-/obj/effect/decal/cleanable/garbage,
-/turf/open/floor/iron/white,
-/area/science/nanite)
"xrA" = (
/obj/machinery/air_sensor/atmos/carbon_tank,
/turf/open/floor/engine/co2,
@@ -78595,30 +78594,6 @@
},
/turf/open/floor/iron,
/area/maintenance/department/science/xenobiology)
-"xJV" = (
-/obj/item/nanite_scanner{
- pixel_x = -4;
- pixel_y = -4
- },
-/obj/item/nanite_scanner{
- pixel_x = 4;
- pixel_y = -4
- },
-/obj/item/nanite_remote{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/nanite_remote{
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/effect/turf_decal/bot,
-/obj/structure/table/glass,
-/obj/structure/cable,
-/obj/machinery/light/directional/north,
-/obj/machinery/power/apc/auto_name/north,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"xJX" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/external{
@@ -79734,6 +79709,20 @@
},
/turf/open/floor/iron/dark,
/area/security/brig)
+"ydr" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/science/research)
"ydE" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
@@ -79776,12 +79765,6 @@
/obj/structure/lattice/catwalk,
/turf/open/space/basic,
/area/solars/port/aft)
-"yeh" = (
-/obj/effect/turf_decal/siding/green{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"yej" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -100818,7 +100801,7 @@ bLd
css
lUJ
olq
-onG
+eWT
tqf
aiX
mRw
@@ -103164,8 +103147,8 @@ dqj
cEP
cFS
cGN
-oDK
-uNj
+vSv
+uML
cJr
qqO
cLd
@@ -103422,7 +103405,7 @@ wEy
tfh
fTw
tay
-rYp
+gHY
diR
aQv
pfR
@@ -108712,7 +108695,7 @@ aaa
fwb
aaa
fNA
-efA
+ohR
ruv
gOP
nYI
@@ -113932,7 +113915,7 @@ yjC
lGi
eAF
xAx
-iay
+xev
nhL
oLk
kYe
@@ -116255,7 +116238,7 @@ cIg
cIg
cIg
dpV
-noS
+gTG
dpV
nOc
bjK
@@ -116511,9 +116494,9 @@ xZW
eZf
gXs
wmS
-vqp
-rqN
-uxi
+bpx
+dkc
+kId
gkv
uhC
fsL
@@ -116768,9 +116751,9 @@ dwL
cmY
ifi
ovj
-hXe
-orG
-xrs
+obj
+pXA
+jBe
dvY
kQY
lFg
@@ -117022,12 +117005,12 @@ ovj
ovj
ovj
dwL
-ctL
-ctL
-ctL
-cTN
-gAI
-whv
+cgo
+cgo
+cgo
+uuh
+ajN
+mpa
nOc
dyc
bjK
@@ -117278,14 +117261,14 @@ myQ
xZF
gGR
nGT
-ctL
-uFZ
-lta
-uZY
-tOv
-ueO
-qMf
-ctL
+cgo
+kXQ
+cah
+kXQ
+pgi
+cui
+cTr
+cgo
cEz
bjK
dyc
@@ -117535,14 +117518,14 @@ ovj
cpJ
ten
ovj
-ctL
-xJV
-pPZ
-xmN
-rsu
-ueO
-fQU
-ctL
+cgo
+fVN
+gZq
+mCH
+jJh
+cui
+cHh
+cgo
qfG
jTf
xaN
@@ -117792,14 +117775,14 @@ cos
dxh
hPn
crZ
-ctL
-bmT
-rdZ
-nkS
-aXh
-iog
-qCP
-ctL
+cgo
+mvj
+fXt
+uDl
+mAN
+niR
+bih
+cgo
vPM
ciL
sgX
@@ -118049,14 +118032,14 @@ cot
cnb
cra
csa
-ctL
-gdG
-mQQ
-oTY
-nsC
-uFU
-nIx
-ctL
+cgo
+sbQ
+ghY
+oTI
+uPi
+iQR
+dWO
+cgo
dww
cFu
dyc
@@ -118306,14 +118289,14 @@ nbv
nbv
cou
csb
-ctL
-eQK
-oOD
-yeh
-bkv
-wHW
-dMl
-ctL
+cgo
+gvE
+sDy
+nJl
+spa
+ydr
+iXU
+cgo
dvY
dvY
dvY
@@ -118563,14 +118546,14 @@ mhf
nbv
rYC
csc
-ctL
-uFZ
-rnM
-uZY
-inN
-fde
-aLn
-ctL
+cgo
+kXQ
+rqT
+kXQ
+iqC
+dhj
+sBX
+cgo
aaa
aaa
aaa
@@ -118821,13 +118804,13 @@ cpK
cwG
pPA
dwL
-ctL
-ctL
-ctL
-spG
-gLm
-spG
-ctL
+cgo
+cgo
+cgo
+pWO
+uvd
+pWO
+cgo
aaa
aaa
aaa
@@ -119578,11 +119561,11 @@ qUk
apc
qYi
nuA
-vMe
+tSb
adk
afQ
ejw
-bwo
+bDe
oeB
bGV
uAj
diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm
index 066fffbf7e2..adaecc5ce3e 100644
--- a/_maps/map_files/debug/runtimestation.dmm
+++ b/_maps/map_files/debug/runtimestation.dmm
@@ -1472,10 +1472,6 @@
},
/turf/open/floor/plating,
/area/cargo/storage)
-"fd" = (
-/obj/structure/sign/departments/nanites,
-/turf/closed/wall/r_wall,
-/area/construction)
"fe" = (
/obj/machinery/computer/cargo{
dir = 8
@@ -2053,11 +2049,9 @@
/turf/open/floor/iron,
/area/hallway/primary/central)
"kp" = (
-/obj/machinery/computer/rdconsole{
- dir = 1
- },
+/obj/structure/server,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"kQ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 8
@@ -2092,7 +2086,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"nq" = (
/obj/effect/turf_decal/stripes/corner{
dir = 8
@@ -2136,12 +2130,6 @@
/obj/machinery/door/airlock,
/turf/open/floor/plating,
/area/engineering/atmos)
-"qd" = (
-/obj/machinery/airalarm/unlocked{
- pixel_y = 23
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"qQ" = (
/turf/open/floor/engine,
/area/cargo/miningoffice)
@@ -2164,10 +2152,9 @@
/turf/open/floor/iron,
/area/hallway/primary/central)
"sr" = (
-/obj/machinery/public_nanite_chamber,
-/obj/effect/turf_decal/stripes/box,
-/turf/open/floor/iron,
-/area/hallway/secondary/entry)
+/obj/machinery/door/airlock/shell,
+/turf/open/floor/iron/dark,
+/area/construction)
"sE" = (
/obj/machinery/power/rtg/advanced,
/obj/structure/cable,
@@ -2178,6 +2165,10 @@
/obj/item/storage/box/shipping,
/turf/open/floor/iron,
/area/commons/storage/primary)
+"tE" = (
+/obj/machinery/door/airlock/research,
+/turf/open/floor/iron/dark,
+/area/construction)
"tG" = (
/obj/docking_port/stationary/random{
id = "pod_lavaland";
@@ -2185,6 +2176,10 @@
},
/turf/open/space/basic,
/area/space)
+"tV" = (
+/obj/structure/bot,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"uf" = (
/obj/structure/fans/tiny/invisible,
/obj/effect/turf_decal/stripes/line{
@@ -2212,14 +2207,25 @@
/turf/open/floor/iron,
/area/commons/storage/primary)
"uQ" = (
-/obj/machinery/nanite_programmer,
/obj/machinery/light/directional/west,
+/obj/structure/table,
+/obj/item/compact_remote,
+/obj/item/compact_remote,
+/obj/item/compact_remote{
+ pixel_x = -5
+ },
+/obj/item/controller{
+ pixel_x = 5
+ },
+/obj/item/controller{
+ pixel_x = 5
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"vm" = (
-/obj/machinery/computer/nanite_cloud_controller,
+/mob/living/circuit_drone,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"vv" = (
/obj/machinery/door/airlock,
/turf/open/floor/plating,
@@ -2272,7 +2278,7 @@
/area/hallway/primary/central)
"wU" = (
/turf/closed/wall/r_wall,
-/area/science/nanite)
+/area/science/misc_lab)
"yK" = (
/obj/structure/fans/tiny/invisible,
/obj/effect/turf_decal/stripes/line{
@@ -2286,9 +2292,11 @@
/turf/open/floor/iron,
/area/engineering/atmos)
"AE" = (
-/obj/item/disk/tech_disk/debug,
+/obj/machinery/airalarm/unlocked{
+ pixel_y = 23
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"AP" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 8
@@ -2326,11 +2334,9 @@
/turf/open/floor/iron,
/area/cargo/miningoffice)
"CT" = (
-/obj/machinery/computer/nanite_chamber_control{
- dir = 8
- },
+/obj/machinery/component_printer,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"CV" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
/obj/structure/cable,
@@ -2338,9 +2344,11 @@
/area/medical/chemistry)
"Df" = (
/obj/machinery/light/directional/east,
-/mob/living/carbon/human,
+/obj/item/integrated_circuit/loaded/hello_world,
+/obj/item/integrated_circuit/loaded/speech_relay,
+/obj/structure/rack,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"DW" = (
/obj/effect/turf_decal/tile/blue{
dir = 8
@@ -2397,7 +2405,7 @@
"Ir" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
-/area/science/nanite)
+/area/science/misc_lab)
"Iy" = (
/obj/structure/closet/secure_closet/research_director{
locked = 0
@@ -2444,13 +2452,13 @@
/turf/open/floor/iron/dark,
/area/medical/chemistry)
"LH" = (
-/obj/machinery/door/airlock,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 4
},
-/turf/open/floor/plating,
-/area/science/nanite)
+/obj/machinery/door/airlock/research,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"LW" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron,
@@ -2471,9 +2479,9 @@
/turf/open/floor/iron,
/area/engineering/atmos)
"Nb" = (
-/obj/machinery/nanite_chamber,
+/obj/machinery/bci_implanter,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"Nc" = (
/obj/machinery/chem_recipe_debug,
/turf/open/floor/iron,
@@ -2488,9 +2496,13 @@
/turf/open/floor/iron,
/area/science)
"Ov" = (
-/obj/machinery/nanite_program_hub,
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/bluespace,
+/obj/item/stock_parts/cell/bluespace,
+/obj/item/stock_parts/cell/bluespace,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"OU" = (
/obj/item/disk/tech_disk/debug,
/turf/open/floor/iron,
@@ -2574,7 +2586,7 @@
dir = 4
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"Vy" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -2605,6 +2617,10 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/engineering/gravity_generator)
+"WK" = (
+/obj/structure/money_bot,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"WT" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
@@ -2634,16 +2650,17 @@
/area/science)
"XN" = (
/obj/structure/table,
-/obj/item/nanite_remote{
- pixel_x = -4;
- pixel_y = 4
+/obj/item/organ/cyberimp/bci{
+ pixel_y = 5
},
-/obj/item/nanite_scanner{
- pixel_x = 4;
- pixel_y = -4
+/obj/item/organ/cyberimp/bci{
+ pixel_y = 5
+ },
+/obj/item/organ/cyberimp/bci{
+ pixel_y = 5
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"XR" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 9
@@ -2661,9 +2678,15 @@
/area/commons/storage/primary)
"Ym" = (
/obj/structure/table,
-/obj/item/storage/box/disks_nanite,
+/obj/item/storage/toolbox/electrical,
+/obj/item/multitool/circuit{
+ pixel_x = -4
+ },
+/obj/item/multitool{
+ pixel_x = 4
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"Yy" = (
/obj/machinery/light/directional/north,
/obj/machinery/rnd/production/circuit_imprinter/department,
@@ -2677,7 +2700,7 @@
/area/engineering/atmos)
"ZP" = (
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
(1,1,1) = {"
aa
@@ -5851,7 +5874,7 @@ eh
eh
eh
rn
-sr
+eh
eh
ge
aa
@@ -6125,11 +6148,11 @@ dn
dn
dn
dL
-ef
+sr
nn
ZP
ZP
-ZP
+WK
Ir
aa
aa
@@ -6217,7 +6240,7 @@ dn
dn
dn
dL
-ef
+cN
AE
kp
XN
@@ -6309,11 +6332,11 @@ dn
dn
dn
dL
-cN
-qd
+tE
ZP
ZP
ZP
+tV
Ir
aa
aa
@@ -6401,7 +6424,7 @@ dn
dn
dn
dL
-fd
+cN
ZP
Df
Nb
diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm
index eaa524601cc..8a40af6c2c0 100644
--- a/_maps/map_files/tramstation/tramstation.dmm
+++ b/_maps/map_files/tramstation/tramstation.dmm
@@ -332,16 +332,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/port)
-"abe" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 5
- },
-/obj/effect/turf_decal/trimline/green/filled/warning{
- dir = 5
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/hallway/primary/port)
"abg" = (
/obj/machinery/door/airlock/external{
name = "Port Docking Bay 1";
@@ -350,16 +340,6 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plating,
/area/hallway/secondary/entry)
-"abi" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 9
- },
-/obj/effect/turf_decal/trimline/green/filled/warning{
- dir = 9
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/hallway/primary/port)
"abj" = (
/obj/effect/decal/cleanable/cobweb,
/obj/effect/turf_decal/trimline/neutral/filled/line{
@@ -565,10 +545,6 @@
/obj/machinery/duct,
/turf/open/floor/iron/freezer,
/area/security/prison)
-"abP" = (
-/obj/item/assembly/igniter,
-/turf/closed/mineral/random/stationside/asteroid,
-/area/maintenance/department/medical)
"abU" = (
/obj/effect/turf_decal/trimline/green/filled/corner,
/obj/effect/turf_decal/trimline/green/filled/line{
@@ -613,16 +589,6 @@
/obj/structure/ladder,
/turf/open/floor/iron/dark,
/area/ai_monitored/command/nuke_storage)
-"ace" = (
-/obj/effect/turf_decal/trimline/green/filled/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/green/filled/line{
- dir = 5
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/security/courtroom)
"acg" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -1673,11 +1639,6 @@
},
/turf/open/floor/iron,
/area/security/courtroom)
-"afR" = (
-/obj/structure/table/wood,
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/wood,
-/area/service/library)
"afU" = (
/obj/structure/table/wood,
/obj/item/paper_bin,
@@ -2556,12 +2517,6 @@
/obj/machinery/airalarm/directional/south,
/turf/open/floor/iron,
/area/command/gateway)
-"ajj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/plating,
-/area/commons/vacant_room/commissary)
"ajk" = (
/obj/structure/closet/secure_closet/quartermaster,
/obj/effect/turf_decal/trimline/brown/filled/line{
@@ -2758,25 +2713,6 @@
/obj/structure/closet/wardrobe/mixed,
/turf/open/floor/iron/cafeteria,
/area/commons/locker)
-"ajT" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/item/kirbyplants/random,
-/obj/effect/landmark/start/hangover,
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron/dark,
-/area/hallway/primary/port)
"ajU" = (
/obj/structure/railing/corner,
/turf/open/floor/glass,
@@ -3295,17 +3231,6 @@
},
/turf/open/floor/iron,
/area/maintenance/tram/mid)
-"alu" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"alx" = (
/obj/machinery/vending/coffee,
/obj/effect/turf_decal/stripes/line{
@@ -3734,17 +3659,6 @@
dir = 8
},
/area/service/chapel)
-"anf" = (
-/obj/machinery/computer/nanite_chamber_control,
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 1
- },
-/obj/machinery/requests_console/directional/north{
- department = "Nanite Lab";
- name = "Nanite Lab Requests Console"
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"anj" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
@@ -4779,11 +4693,6 @@
},
/turf/open/floor/iron,
/area/security/brig)
-"aqf" = (
-/obj/structure/table/wood,
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/wood,
-/area/service/library)
"aqg" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 1
@@ -4836,13 +4745,6 @@
/obj/machinery/power/apc/auto_name/north,
/turf/open/floor/carpet,
/area/security/detectives_office)
-"aqo" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 1
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/hallway/primary/tram/left)
"aqp" = (
/obj/effect/turf_decal/tile/red{
dir = 4
@@ -5782,14 +5684,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/iron/dark,
/area/service/bar)
-"asL" = (
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 1
- },
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/north,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"asM" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -6250,22 +6144,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/command/gateway)
-"auc" = (
-/obj/structure/table,
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 8
- },
-/obj/item/storage/box/disks_nanite{
- pixel_x = -5;
- pixel_y = 6
- },
-/obj/item/storage/box/disks_nanite{
- pixel_x = 6;
- pixel_y = 3
- },
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"auf" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -6585,13 +6463,6 @@
/obj/item/stamp/hos,
/turf/open/floor/carpet,
/area/command/heads_quarters/hos)
-"avj" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 4
- },
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/iron,
-/area/hallway/primary/tram/left)
"avk" = (
/obj/effect/turf_decal/trimline/white/filled/line{
dir = 1
@@ -6815,29 +6686,11 @@
},
/turf/open/floor/iron,
/area/hallway/primary/tram/center)
-"avX" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 4
- },
-/obj/structure/disposalpipe/segment,
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/iron,
-/area/hallway/primary/tram/center)
"avY" = (
/obj/structure/ladder,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/hallway/primary/tram/right)
-"awe" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 8
- },
-/obj/structure/disposalpipe/junction{
- dir = 1
- },
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/iron,
-/area/hallway/primary/tram/right)
"awf" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner,
/obj/structure/disposalpipe/segment{
@@ -7149,10 +7002,6 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/iron,
/area/engineering/break_room)
-"awX" = (
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/wood,
-/area/service/lawoffice)
"awY" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -7710,9 +7559,6 @@
/obj/machinery/light/directional/north,
/turf/open/floor/iron,
/area/service/kitchen)
-"ayQ" = (
-/turf/closed/wall/r_wall,
-/area/science/nanite)
"ayR" = (
/obj/effect/turf_decal/trimline/purple/filled/line{
dir = 4
@@ -7724,6 +7570,15 @@
/obj/structure/cable,
/turf/open/floor/iron/grimy,
/area/security/detectives_office)
+"ayT" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/turf_decal/trimline/yellow/filled/corner{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/electrolyzer,
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"ayU" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner{
dir = 1
@@ -8180,16 +8035,6 @@
/obj/item/radio/intercom,
/turf/open/floor/iron,
/area/security/courtroom)
-"aAs" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 9
- },
-/obj/structure/reagent_dispensers/water_cooler,
-/obj/machinery/firealarm/directional/north,
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/iron/dark,
-/area/security/courtroom)
"aAt" = (
/obj/effect/turf_decal/trimline/green/filled/line,
/obj/effect/turf_decal/trimline/green/filled/line{
@@ -8595,15 +8440,6 @@
/obj/effect/turf_decal/trimline/neutral/filled/arrow_ccw,
/turf/open/floor/iron,
/area/hallway/primary/tram/center)
-"aBS" = (
-/obj/structure/chair/office{
- dir = 1
- },
-/obj/effect/landmark/start/lawyer,
-/obj/machinery/firealarm/directional/south,
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/wood,
-/area/service/lawoffice)
"aBU" = (
/obj/effect/turf_decal/caution/stand_clear,
/obj/machinery/door/poddoor/shutters{
@@ -8953,13 +8789,6 @@
},
/turf/open/floor/wood,
/area/service/library)
-"aCU" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 8
- },
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/iron,
-/area/hallway/primary/tram/left)
"aDa" = (
/obj/structure/bed,
/obj/item/bedsheet/dorms,
@@ -9009,23 +8838,6 @@
},
/turf/open/floor/carpet,
/area/security/detectives_office)
-"aDo" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/iron,
-/area/hallway/primary/tram/center)
-"aDp" = (
-/obj/structure/chair/comfy/beige{
- dir = 8
- },
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/iron/grimy,
-/area/hallway/secondary/entry)
"aDq" = (
/obj/structure/sign/warning/vacuum/external{
pixel_y = 32
@@ -9359,20 +9171,6 @@
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/iron,
/area/hallway/primary/tram/left)
-"aEo" = (
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/iron/dark,
-/area/service/chapel)
-"aEp" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/iron,
-/area/hallway/primary/tram/right)
"aEq" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner,
/obj/effect/turf_decal/trimline/neutral/filled/line{
@@ -9496,12 +9294,6 @@
"aEJ" = (
/turf/closed/wall,
/area/construction/mining/aux_base)
-"aEK" = (
-/obj/effect/turf_decal/trimline/red/filled/line,
-/obj/effect/turf_decal/trimline/neutral/filled/warning,
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/iron,
-/area/hallway/primary/tram/left)
"aEL" = (
/obj/effect/turf_decal/trimline/yellow/warning,
/obj/effect/turf_decal/trimline/neutral/filled/corner{
@@ -10421,16 +10213,6 @@
/obj/item/canvas/twentythree_twentythree,
/turf/open/floor/iron,
/area/commons/storage/art)
-"aHM" = (
-/obj/structure/table/wood,
-/obj/machinery/computer/med_data/laptop,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 9
- },
-/obj/machinery/firealarm/directional/west,
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron/white,
-/area/medical/psychology)
"aHN" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 8
@@ -10621,18 +10403,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/tram/left)
-"aIs" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 2
- },
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 5
- },
-/obj/machinery/light_switch/directional/east,
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"aIu" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
@@ -10711,6 +10481,11 @@
name = "Holodeck Projector Floor"
},
/area/holodeck/rec_center)
+"aIK" = (
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/machinery/vending/drugs,
+/turf/open/floor/iron/dark,
+/area/medical/storage)
"aIL" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -10757,14 +10532,6 @@
name = "Holodeck Projector Floor"
},
/area/holodeck/rec_center)
-"aIT" = (
-/obj/structure/filingcabinet,
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 6
- },
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"aIU" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 10
@@ -12897,6 +12664,15 @@
/obj/item/stack/package_wrap,
/turf/open/floor/iron,
/area/commons/storage/primary)
+"aWS" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/landmark/start/lawyer,
+/obj/machinery/firealarm/directional/south,
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/wood,
+/area/service/lawoffice)
"aWV" = (
/obj/machinery/vending/wardrobe/chap_wardrobe,
/turf/open/floor/iron/grimy,
@@ -13286,29 +13062,16 @@
},
/turf/open/floor/plating/airless,
/area/mine/explored)
-"bap" = (
-/obj/structure/table,
-/obj/effect/turf_decal/trimline/purple/filled/line{
+"bav" = (
+/obj/structure/table/wood,
+/obj/machinery/computer/med_data/laptop,
+/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 9
},
-/obj/item/nanite_scanner{
- pixel_x = -4;
- pixel_y = -4
- },
-/obj/item/nanite_scanner{
- pixel_x = 4;
- pixel_y = -4
- },
-/obj/item/nanite_remote{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/nanite_remote{
- pixel_x = 4;
- pixel_y = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron/white,
+/area/medical/psychology)
"baB" = (
/obj/structure/girder,
/obj/effect/decal/cleanable/dirt,
@@ -13357,14 +13120,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/hallway/primary/tram/right)
-"baY" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"bbb" = (
/obj/machinery/door/airlock/maintenance_hatch{
req_one_access_txt = "12"
@@ -13484,6 +13239,20 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/exit)
+"bdd" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron/dark,
+/area/service/bar)
"bdh" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 4
@@ -14311,10 +14080,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/hallway/secondary/exit/departure_lounge)
-"bsR" = (
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"bsW" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
dir = 4
@@ -14338,14 +14103,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/tcommsat/computer)
-"btO" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "rnd2";
- name = "research lab shutters"
- },
-/turf/open/floor/plating,
-/area/science/nanite)
"btP" = (
/obj/effect/turf_decal/trimline/green/filled/corner{
dir = 1
@@ -14365,6 +14122,17 @@
},
/turf/open/floor/iron/dark,
/area/service/hydroponics)
+"bum" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron/dark,
+/area/service/bar)
"bup" = (
/obj/effect/turf_decal/trimline/yellow/filled/corner{
dir = 8
@@ -14587,14 +14355,6 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/plating,
/area/engineering/atmos)
-"byG" = (
-/obj/machinery/biogenerator,
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 6
- },
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/iron,
-/area/service/hydroponics/garden)
"byJ" = (
/obj/structure/table/glass,
/obj/machinery/light/directional/west,
@@ -14687,6 +14447,14 @@
/obj/structure/cable,
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
+"bAL" = (
+/obj/machinery/vending/cigarette,
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 5
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/engineering/break_room)
"bAS" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/robot_debris,
@@ -14926,15 +14694,6 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron,
/area/commons/storage/art)
-"bFL" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"bFS" = (
/obj/structure/grille,
/obj/effect/decal/cleanable/dirt,
@@ -15194,11 +14953,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/commons/storage/tools)
-"bKr" = (
-/obj/structure/extinguisher_cabinet/directional/south,
-/obj/machinery/vending/drugs,
-/turf/open/floor/iron/dark,
-/area/medical/storage)
"bKx" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -15337,23 +15091,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/port)
-"bMh" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 8
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/white,
-/area/science/research)
-"bMz" = (
-/obj/machinery/nanite_programmer,
-/obj/structure/window/reinforced{
- dir = 1
- },
-/turf/open/floor/circuit/green,
-/area/science/nanite)
"bMC" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -15550,6 +15287,15 @@
},
/turf/open/floor/iron,
/area/hallway/primary/tram/center)
+"bQd" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/camera{
+ c_tag = "Civilian - Library Back Room";
+ dir = 5
+ },
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/iron/grimy,
+/area/service/library)
"bQC" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 8
@@ -16183,21 +15929,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible,
/turf/open/floor/iron/dark,
/area/science/xenobiology)
-"cdt" = (
-/obj/effect/turf_decal/trimline/blue/filled/line,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/iron/white,
-/area/medical/medbay/central)
"cdu" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/effect/decal/cleanable/dirt,
@@ -17245,6 +16976,14 @@
},
/turf/open/floor/iron/white,
/area/science/research)
+"czW" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/iron,
+/area/hallway/primary/tram/center)
"cAa" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -17292,13 +17031,6 @@
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating,
/area/maintenance/central/secondary)
-"cAT" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"cAU" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -17611,17 +17343,6 @@
/obj/effect/spawner/lootdrop/food_packaging,
/turf/open/floor/plating,
/area/maintenance/central)
-"cII" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable,
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron/dark,
-/area/service/bar)
"cIN" = (
/obj/structure/rack,
/obj/item/stack/sheet/iron/ten,
@@ -18330,13 +18051,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/command/heads_quarters/ce)
-"cWg" = (
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 10
- },
-/obj/machinery/module_duplicator,
-/turf/open/floor/iron,
-/area/science/misc_lab)
"cWr" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -18543,18 +18257,6 @@
},
/turf/open/floor/iron/dark,
/area/science/xenobiology)
-"dbl" = (
-/obj/machinery/nanite_chamber,
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 1
- },
-/obj/machinery/camera{
- c_tag = "Science - Nanite Lab";
- dir = 6;
- network = list("ss13","science")
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"dbr" = (
/obj/machinery/door/airlock/medical/glass{
name = "Treatment Center";
@@ -18910,6 +18612,10 @@
},
/turf/open/floor/iron,
/area/security/checkpoint/medical)
+"djm" = (
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/wood,
+/area/service/lawoffice)
"djI" = (
/obj/machinery/recharge_station,
/obj/effect/turf_decal/delivery,
@@ -18925,16 +18631,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/central/secondary)
-"dkt" = (
-/obj/machinery/computer/atmos_alert{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 8
- },
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/iron/dark,
-/area/engineering/engine_smes)
"dku" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 8
@@ -20035,13 +19731,6 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/central)
-"dFo" = (
-/obj/structure/chair/office/light{
- dir = 1
- },
-/obj/effect/landmark/start/scientist,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"dFv" = (
/obj/effect/spawner/lootdrop/food_packaging,
/obj/effect/decal/cleanable/dirt,
@@ -21115,6 +20804,16 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
+"dZf" = (
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron/white,
+/area/science/lab)
"dZO" = (
/obj/machinery/light/directional/west,
/obj/machinery/camera/motion{
@@ -21751,15 +21450,6 @@
},
/turf/open/floor/iron,
/area/security/prison)
-"emO" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/camera{
- c_tag = "Civilian - Library Back Room";
- dir = 5
- },
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/iron/grimy,
-/area/service/library)
"emS" = (
/obj/machinery/light/small/directional/south,
/obj/machinery/button/door/directional/west{
@@ -22345,6 +22035,13 @@
/obj/item/clothing/shoes/sneakers/orange,
/turf/open/floor/iron/cafeteria,
/area/security/prison)
+"ewP" = (
+/obj/effect/spawner/randomcolavend,
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/iron/cafeteria{
+ dir = 5
+ },
+/area/science/breakroom)
"ewQ" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner{
dir = 1
@@ -22617,6 +22314,16 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"eCL" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 8
+ },
+/obj/structure/disposalpipe/junction{
+ dir = 1
+ },
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/iron,
+/area/hallway/primary/tram/right)
"eCN" = (
/obj/effect/landmark/start/depsec/supply,
/obj/structure/chair/office{
@@ -23446,6 +23153,10 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/exit)
+"eWl" = (
+/obj/item/assembly/igniter,
+/turf/closed/mineral/random/stationside/asteroid,
+/area/mine/explored)
"eWn" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -23653,13 +23364,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/starboard/secondary)
-"fat" = (
-/obj/effect/spawner/randomcolavend,
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/iron/cafeteria{
- dir = 5
- },
-/area/science/breakroom)
"fay" = (
/obj/machinery/modular_computer/console/preset/engineering{
dir = 4
@@ -23859,6 +23563,14 @@
"ffq" = (
/turf/open/floor/iron,
/area/hallway/secondary/command)
+"ffr" = (
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/cargo/miningdock)
"ffs" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -25296,20 +25008,6 @@
},
/turf/open/floor/iron,
/area/maintenance/tram/mid)
-"fIg" = (
-/obj/effect/turf_decal/siding/thinplating{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/cable,
-/obj/machinery/light/directional/west,
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/iron,
-/area/commons/dorms)
"fIp" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/decal/cleanable/oil/slippery,
@@ -26481,9 +26179,6 @@
/obj/machinery/status_display/evac/directional/north,
/turf/open/floor/iron/white,
/area/science/research)
-"gfd" = (
-/turf/open/floor/circuit/green,
-/area/science/nanite)
"gfe" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible,
/obj/effect/turf_decal/trimline/red/filled/corner{
@@ -26610,6 +26305,16 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"ghR" = (
+/obj/effect/turf_decal/trimline/green/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/green/filled/line{
+ dir = 5
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/security/courtroom)
"ghY" = (
/obj/effect/turf_decal/trimline/yellow/warning,
/obj/machinery/light/small/directional/north,
@@ -26962,6 +26667,16 @@
},
/turf/open/floor/plating,
/area/maintenance/tram/mid)
+"gqH" = (
+/obj/machinery/computer/atmos_alert{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 8
+ },
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/iron/dark,
+/area/engineering/engine_smes)
"gqQ" = (
/obj/machinery/door/airlock/virology{
name = "Break Room";
@@ -27732,6 +27447,27 @@
/obj/item/flashlight/lamp/green,
/turf/open/floor/carpet,
/area/commons/vacant_room/office)
+"gGs" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 9
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/disposal/bin,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/engineering/main)
+"gGD" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/green/filled/warning{
+ dir = 9
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/hallway/primary/port)
"gGM" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -28616,14 +28352,6 @@
/obj/structure/cable,
/turf/open/floor/engine,
/area/engineering/supermatter/room)
-"gXR" = (
-/obj/machinery/vending/cigarette,
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 5
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/engineering/break_room)
"gYh" = (
/obj/machinery/computer/operating{
dir = 8
@@ -28955,6 +28683,13 @@
/obj/structure/cable,
/turf/open/floor/engine/hull/reinforced,
/area/space/nearstation)
+"hdD" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 4
+ },
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/iron,
+/area/hallway/primary/tram/left)
"hdK" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 9
@@ -29758,26 +29493,6 @@
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/iron,
/area/maintenance/disposal/incinerator)
-"hqq" = (
-/obj/machinery/door/airlock/research{
- name = "Nanite Laboratory";
- req_one_access_txt = "7"
- },
-/obj/machinery/door/firedoor,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"hqr" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/trimline/neutral/filled/line{
@@ -30989,19 +30704,6 @@
},
/turf/open/floor/iron,
/area/cargo/office)
-"hPF" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"hPX" = (
/obj/machinery/light/small/directional/east,
/obj/effect/decal/cleanable/dirt,
@@ -31524,17 +31226,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/hallway/primary/port)
-"idv" = (
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/portables_connector/visible,
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/machinery/airalarm/directional/north,
-/obj/machinery/light/directional/west,
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/iron,
-/area/engineering/atmos)
"idX" = (
/obj/machinery/door/airlock/maintenance_hatch{
req_one_access_txt = "12"
@@ -31809,6 +31500,19 @@
},
/turf/open/floor/iron,
/area/engineering/main)
+"iiG" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/light/directional/east,
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/iron,
+/area/commons/dorms)
"iiH" = (
/turf/open/openspace,
/area/science/research)
@@ -32191,18 +31895,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/grimy,
/area/service/chapel/office)
-"ist" = (
-/obj/structure/table,
-/obj/item/stack/sheet/iron/fifty,
-/obj/item/stack/sheet/iron/fifty,
-/obj/item/stack/sheet/iron/fifty,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/stack/sheet/plasteel{
- amount = 15
- },
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/iron/dark,
-/area/science/robotics/lab)
"isF" = (
/obj/effect/turf_decal/siding/thinplating/dark/corner{
dir = 1
@@ -32433,18 +32125,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/command/bridge)
-"ixu" = (
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 1
- },
-/obj/machinery/camera{
- c_tag = "Science - Lower Main South";
- dir = 6;
- network = list("ss13","science")
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron/white,
-/area/science/research)
"ixB" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -33302,6 +32982,21 @@
/obj/item/radio/intercom/directional/south,
/turf/open/floor/iron,
/area/hallway/secondary/exit/departure_lounge)
+"iLM" = (
+/obj/effect/turf_decal/trimline/blue/filled/line,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/newscaster/directional/south,
+/turf/open/floor/iron/white,
+/area/medical/medbay/central)
"iLW" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/camera{
@@ -33940,15 +33635,16 @@
},
/turf/open/floor/iron/dark,
/area/medical/psychology)
-"iWO" = (
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/turf_decal/trimline/yellow/filled/corner{
- dir = 8
+"iWB" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 9
},
-/obj/machinery/firealarm/directional/west,
-/obj/machinery/electrolyzer,
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/machinery/firealarm/directional/north,
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/iron/dark,
+/area/security/courtroom)
"iWV" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -34807,13 +34503,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white,
/area/science/explab)
-"jqL" = (
-/obj/machinery/nanite_program_hub,
-/obj/structure/window/reinforced{
- dir = 4
- },
-/turf/open/floor/circuit/green,
-/area/science/nanite)
"jqQ" = (
/turf/open/floor/engine,
/area/engineering/supermatter/room)
@@ -34946,6 +34635,12 @@
},
/turf/open/floor/iron/white,
/area/medical/treatment_center)
+"jtT" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/plating,
+/area/commons/vacant_room/commissary)
"jtY" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/cafeteria{
@@ -35373,6 +35068,13 @@
"jCF" = (
/turf/open/floor/iron,
/area/command/heads_quarters/ce)
+"jCN" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 8
+ },
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/iron,
+/area/hallway/primary/tram/left)
"jDb" = (
/obj/structure/table,
/obj/item/paper/pamphlet/radstorm,
@@ -35780,6 +35482,27 @@
},
/turf/open/floor/iron,
/area/service/hydroponics/garden)
+"jKG" = (
+/obj/machinery/requests_console/directional/north{
+ announcementConsole = 1;
+ department = "Head of Personnel's Desk";
+ departmentType = 5;
+ name = "Head of Personnel's Requests Console"
+ },
+/obj/structure/table/wood,
+/obj/item/storage/secure/briefcase{
+ pixel_x = -2;
+ pixel_y = 6
+ },
+/obj/item/storage/box/silver_ids{
+ pixel_x = 5;
+ pixel_y = 3
+ },
+/obj/item/assembly/flash/handheld{
+ pixel_x = -8
+ },
+/turf/open/floor/wood,
+/area/command/heads_quarters/hop)
"jKR" = (
/obj/machinery/light/directional/west,
/obj/effect/turf_decal/trimline/white/line{
@@ -37010,6 +36733,19 @@
/obj/machinery/light_switch/directional/west,
/turf/open/floor/iron,
/area/science/misc_lab)
+"kgy" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 9
+ },
+/obj/machinery/requests_console/directional/north{
+ department = "Medbay";
+ departmentType = 1;
+ name = "Medbay Requests Console"
+ },
+/obj/structure/closet/l3closet,
+/turf/open/floor/iron/white,
+/area/medical/storage)
"kgP" = (
/obj/effect/turf_decal/trimline/yellow/filled/line{
dir = 1
@@ -38081,11 +37817,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
/area/command/teleporter)
-"kzT" = (
-/obj/machinery/holopad,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"kzW" = (
/obj/effect/spawner/lootdrop/garbage_spawner,
/obj/effect/decal/cleanable/dirt,
@@ -38272,13 +38003,6 @@
},
/turf/closed/wall/r_wall,
/area/engineering/supermatter)
-"kDj" = (
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 1
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron/white,
-/area/medical/medbay/central)
"kDm" = (
/obj/structure/chair/plastic{
dir = 1
@@ -38372,6 +38096,16 @@
},
/turf/open/floor/engine/vacuum,
/area/engineering/atmos)
+"kEQ" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/commons/lounge)
"kFd" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/north,
@@ -39258,14 +38992,6 @@
},
/turf/open/floor/engine,
/area/engineering/supermatter/room)
-"kXA" = (
-/obj/structure/filingcabinet,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 9
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/cargo/qm)
"kXD" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -41007,6 +40733,13 @@
},
/turf/open/floor/iron,
/area/cargo/storage)
+"lCz" = (
+/obj/structure/chair/comfy/beige{
+ dir = 8
+ },
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/iron/grimy,
+/area/hallway/secondary/entry)
"lCG" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -41119,6 +40852,18 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/security/prison)
+"lGl" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/storage/toolbox/electrical,
+/obj/item/clothing/head/welding,
+/obj/item/clothing/glasses/welding,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron/dark,
+/area/science/robotics/lab)
"lGw" = (
/obj/machinery/door/airlock/security{
name = "Permanent Cell 5"
@@ -43021,6 +42766,25 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"mvS" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/item/kirbyplants/random,
+/obj/effect/landmark/start/hangover,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron/dark,
+/area/hallway/primary/port)
"mvV" = (
/obj/effect/turf_decal/trimline/purple/filled/corner,
/obj/effect/landmark/start/geneticist,
@@ -44715,6 +44479,14 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"nie" = (
+/obj/machinery/biogenerator,
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 6
+ },
+/obj/machinery/newscaster/directional/south,
+/turf/open/floor/iron,
+/area/service/hydroponics/garden)
"niO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 10
@@ -44728,16 +44500,6 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/aisat_interior)
-"nju" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/commons/lounge)
"njM" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 4
@@ -44761,21 +44523,6 @@
/obj/structure/cable,
/turf/open/floor/iron/cafeteria,
/area/commons/locker)
-"nkz" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"nkC" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -44889,6 +44636,18 @@
},
/turf/open/floor/iron/dark,
/area/command/bridge)
+"nnC" = (
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Science - Lower Main South";
+ dir = 6;
+ network = list("ss13","science")
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron/white,
+/area/science/research)
"nnQ" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Tunnel Access";
@@ -45066,6 +44825,11 @@
/obj/effect/landmark/start/scientist,
/turf/open/floor/iron,
/area/science/lab)
+"nrv" = (
+/obj/structure/table/wood,
+/obj/machinery/newscaster/directional/south,
+/turf/open/floor/wood,
+/area/service/library)
"nrF" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/event_spawn,
@@ -47389,6 +47153,20 @@
},
/turf/open/floor/iron,
/area/ai_monitored/command/storage/eva)
+"ond" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/light/directional/west,
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/iron,
+/area/commons/dorms)
"one" = (
/turf/closed/wall/r_wall,
/area/engineering/atmos)
@@ -48769,6 +48547,19 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/starboard/central)
+"oPN" = (
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 6
+ },
+/obj/structure/rack,
+/obj/machinery/light/directional/south,
+/obj/item/controller,
+/obj/item/compact_remote,
+/obj/item/integrated_circuit/loaded/hello_world,
+/obj/item/integrated_circuit/loaded/speech_relay,
+/obj/item/compact_remote,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"oPY" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/trimline/neutral/filled/line{
@@ -49056,20 +48847,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/security/brig)
-"oUr" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron/dark,
-/area/service/bar)
"oUw" = (
/obj/structure/table,
/obj/item/stock_parts/scanning_module{
@@ -49634,11 +49411,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/engineering/atmospherics_engine)
-"pfi" = (
-/obj/effect/turf_decal/trimline/purple/filled/corner,
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"pfo" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 1
@@ -49808,6 +49580,13 @@
/obj/effect/mapping_helpers/airlock/abandoned,
/turf/open/floor/plating,
/area/maintenance/central/secondary)
+"pie" = (
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 10
+ },
+/obj/machinery/module_duplicator,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"pil" = (
/obj/structure/railing/corner{
dir = 1
@@ -51358,6 +51137,16 @@
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
/area/maintenance/central)
+"pNm" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/iron,
+/area/hallway/primary/tram/center)
"pNt" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -51722,6 +51511,13 @@
},
/turf/open/floor/iron,
/area/hallway/primary/tram/left)
+"pTk" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron/white,
+/area/medical/medbay/central)
"pTG" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner{
dir = 1
@@ -51746,10 +51542,6 @@
},
/turf/open/floor/iron/dark,
/area/security/brig)
-"pUB" = (
-/obj/machinery/computer/nanite_cloud_controller,
-/turf/open/floor/circuit/green,
-/area/science/nanite)
"pUM" = (
/obj/effect/turf_decal/trimline/red/filled/line,
/turf/open/floor/iron,
@@ -52007,16 +51799,6 @@
},
/turf/open/floor/iron,
/area/security/prison)
-"qab" = (
-/obj/structure/cable,
-/obj/machinery/light_switch/directional/north{
- pixel_x = 12
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron/cafeteria{
- dir = 5
- },
-/area/command/heads_quarters/rd)
"qan" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -52054,6 +51836,23 @@
/obj/effect/spawner/lootdrop/food_packaging,
/turf/open/floor/plating,
/area/maintenance/starboard/central)
+"qbv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 1
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/hallway/secondary/construction/engineering)
"qbC" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 1
@@ -52206,6 +52005,24 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
+"qeq" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/multitool,
+/obj/machinery/camera/emp_proof{
+ c_tag = "Secure - Telecomms Control Room";
+ dir = 6
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/tcommsat/computer)
"qes" = (
/obj/effect/turf_decal/trimline/blue/filled/corner,
/obj/effect/turf_decal/trimline/blue/filled/corner{
@@ -52358,14 +52175,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating/airless,
/area/mine/explored)
-"qiA" = (
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/cargo/miningdock)
"qiW" = (
/turf/open/floor/iron,
/area/security/processing)
@@ -53616,6 +53425,16 @@
},
/turf/open/floor/iron/dark,
/area/tcommsat/computer)
+"qJo" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/science/research)
"qJp" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/chair,
@@ -54386,13 +54205,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible,
/turf/open/floor/iron/white,
/area/science/mixing)
-"rbD" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"rbI" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 4
@@ -55434,26 +55246,6 @@
},
/turf/open/floor/iron,
/area/security/office)
-"rwO" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/table,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"rwY" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 10
@@ -58876,6 +58668,20 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/construction/engineering)
+"sPg" = (
+/obj/structure/disposalpipe/junction/flip{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/science/research)
"sPj" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -61359,12 +61165,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/maintenance/disposal)
-"tJq" = (
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"tJC" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -61700,16 +61500,6 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
-"tOO" = (
-/obj/machinery/door/airlock/research{
- name = "Nanite Laboratory";
- req_one_access_txt = "7"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/purple/filled/line,
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"tOS" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 4
@@ -61844,17 +61634,6 @@
},
/turf/open/floor/iron,
/area/service/hydroponics/garden)
-"tRs" = (
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 9
- },
-/obj/structure/disposalpipe/trunk{
- dir = 4
- },
-/obj/machinery/disposal/bin,
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/engineering/main)
"tRt" = (
/obj/effect/turf_decal/trimline/green/filled/corner{
dir = 4
@@ -62762,19 +62541,6 @@
},
/turf/open/floor/vault,
/area/hallway/primary/tram/center)
-"uhs" = (
-/obj/effect/turf_decal/siding/thinplating{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/light/directional/east,
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/iron,
-/area/commons/dorms)
"uht" = (
/turf/closed/wall,
/area/medical/treatment_center)
@@ -62812,6 +62578,17 @@
},
/turf/open/floor/iron,
/area/maintenance/tram/right)
+"uiu" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/light/directional/west,
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/iron,
+/area/engineering/atmos)
"uiJ" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/trimline/brown/filled/line{
@@ -63083,6 +62860,16 @@
/obj/structure/railing,
/turf/open/floor/plating,
/area/maintenance/tram/right)
+"uoz" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/iron,
+/area/hallway/primary/tram/right)
"uoJ" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/trimline/purple/filled/corner{
@@ -63373,6 +63160,16 @@
},
/turf/open/floor/carpet,
/area/service/library)
+"utD" = (
+/obj/structure/cable,
+/obj/machinery/light_switch/directional/north{
+ pixel_x = 12
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron/cafeteria{
+ dir = 5
+ },
+/area/command/heads_quarters/rd)
"utP" = (
/obj/structure/fluff/tram_rail/end{
dir = 8
@@ -63734,19 +63531,6 @@
"uEX" = (
/turf/closed/wall,
/area/security/checkpoint/escape)
-"uFJ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 9
- },
-/obj/machinery/requests_console/directional/north{
- department = "Medbay";
- departmentType = 1;
- name = "Medbay Requests Console"
- },
-/obj/structure/closet/l3closet,
-/turf/open/floor/iron/white,
-/area/medical/storage)
"uFL" = (
/obj/structure/closet,
/obj/effect/decal/cleanable/dirt,
@@ -64084,16 +63868,6 @@
/obj/item/clothing/mask/breath,
/turf/open/floor/iron,
/area/engineering/atmos)
-"uLU" = (
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron/white,
-/area/science/lab)
"uLZ" = (
/obj/effect/turf_decal/trimline/red/corner,
/obj/effect/turf_decal/trimline/red/filled/line{
@@ -64314,20 +64088,6 @@
"uQe" = (
/turf/open/floor/plating,
/area/science/mixing)
-"uQm" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"uQq" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -64337,24 +64097,11 @@
},
/turf/open/floor/plating,
/area/science/xenobiology)
-"uQs" = (
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 9
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
-/obj/structure/rack,
-/obj/item/storage/toolbox/mechanical{
- pixel_x = -2;
- pixel_y = -1
- },
-/obj/item/multitool,
-/obj/machinery/camera/emp_proof{
- c_tag = "Secure - Telecomms Control Room";
- dir = 6
- },
+"uQv" = (
+/obj/structure/table/wood,
/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/tcommsat/computer)
+/turf/open/floor/wood,
+/area/service/library)
"uQB" = (
/obj/machinery/door/airlock/medical/glass{
name = "Medical Freezer";
@@ -64412,14 +64159,6 @@
icon_state = "wood-broken3"
},
/area/maintenance/central)
-"uRy" = (
-/obj/structure/filingcabinet,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/purple/filled/line,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"uRU" = (
/obj/effect/turf_decal/siding/thinplating/corner{
dir = 1
@@ -64431,6 +64170,28 @@
/obj/machinery/duct,
/turf/open/floor/iron,
/area/commons/dorms)
+"uRZ" = (
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/neutral/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/neutral/filled/corner{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/obj/effect/turf_decal/bot,
+/obj/machinery/camera{
+ c_tag = "Civilian - Lounge South";
+ dir = 6
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/commons/lounge)
"uSn" = (
/obj/machinery/door/airlock/hatch,
/obj/effect/decal/cleanable/dirt,
@@ -65042,10 +64803,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/starboard/central)
-"vfl" = (
-/obj/machinery/light/directional/west,
-/turf/open/floor/circuit/green,
-/area/science/nanite)
"vfo" = (
/obj/effect/turf_decal/trimline/brown/filled/corner{
dir = 4
@@ -65689,6 +65446,16 @@
/obj/structure/table,
/turf/open/floor/iron/dark,
/area/security/interrogation)
+"vqD" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/green/filled/warning{
+ dir = 5
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/hallway/primary/port)
"vrc" = (
/obj/machinery/telecomms/bus/preset_two,
/turf/open/floor/iron/dark/telecomms,
@@ -65764,19 +65531,6 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/iron/dark,
/area/maintenance/starboard/secondary)
-"vux" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"vuO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
@@ -65812,27 +65566,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/central/secondary)
-"vxi" = (
-/obj/machinery/requests_console/directional/north{
- announcementConsole = 1;
- department = "Head of Personnel's Desk";
- departmentType = 5;
- name = "Head of Personnel's Requests Console"
- },
-/obj/structure/table/wood,
-/obj/item/storage/secure/briefcase{
- pixel_x = -2;
- pixel_y = 6
- },
-/obj/item/storage/box/silver_ids{
- pixel_x = 5;
- pixel_y = 3
- },
-/obj/item/assembly/flash/handheld{
- pixel_x = -8
- },
-/turf/open/floor/wood,
-/area/command/heads_quarters/hop)
"vxz" = (
/obj/structure/disposalpipe/segment,
/obj/effect/landmark/start/hangover,
@@ -66150,20 +65883,6 @@
/obj/machinery/status_display/evac/directional/west,
/turf/open/floor/iron,
/area/hallway/secondary/exit/departure_lounge)
-"vDR" = (
-/obj/structure/disposalpipe/junction/flip{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 1
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/science/research)
"vDX" = (
/obj/structure/grille,
/obj/effect/decal/cleanable/dirt,
@@ -67637,18 +67356,6 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/central)
-"wdt" = (
-/obj/structure/rack,
-/obj/item/storage/toolbox/mechanical{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/storage/toolbox/electrical,
-/obj/item/clothing/head/welding,
-/obj/item/clothing/glasses/welding,
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron/dark,
-/area/science/robotics/lab)
"wdJ" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -67757,23 +67464,6 @@
/obj/effect/landmark/start/shaft_miner,
/turf/open/floor/iron,
/area/cargo/miningdock)
-"wfD" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 1
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/hallway/secondary/construction/engineering)
"wfN" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 9
@@ -68152,6 +67842,12 @@
/obj/effect/landmark/blobstart,
/turf/open/floor/iron,
/area/hallway/secondary/entry)
+"wmU" = (
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/effect/turf_decal/trimline/neutral/filled/warning,
+/obj/machinery/newscaster/directional/south,
+/turf/open/floor/iron,
+/area/hallway/primary/tram/left)
"wnM" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -68559,6 +68255,13 @@
},
/turf/open/floor/iron/dark,
/area/service/hydroponics)
+"wuT" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 1
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/hallway/primary/tram/left)
"wuW" = (
/obj/effect/turf_decal/trimline/red/filled/corner{
dir = 1
@@ -69750,6 +69453,10 @@
/obj/effect/turf_decal/trimline/yellow/filled/line,
/turf/open/floor/iron,
/area/tcommsat/computer)
+"wOc" = (
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/iron/dark,
+/area/service/chapel)
"wOm" = (
/obj/structure/table,
/obj/machinery/light/directional/north,
@@ -70641,28 +70348,6 @@
},
/turf/open/floor/plating/airless,
/area/mine/explored)
-"xib" = (
-/obj/effect/turf_decal/siding/thinplating/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/thinplating/corner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/neutral/filled/corner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/neutral/filled/corner{
- dir = 4
- },
-/obj/machinery/holopad,
-/obj/effect/turf_decal/bot,
-/obj/machinery/camera{
- c_tag = "Civilian - Lounge South";
- dir = 6
- },
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/iron,
-/area/commons/lounge)
"xif" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
@@ -72525,6 +72210,18 @@
},
/turf/open/floor/iron,
/area/hallway/primary/tram/right)
+"xQT" = (
+/obj/structure/table,
+/obj/item/stack/sheet/iron/fifty,
+/obj/item/stack/sheet/iron/fifty,
+/obj/item/stack/sheet/iron/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/plasteel{
+ amount = 15
+ },
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/iron/dark,
+/area/science/robotics/lab)
"xQU" = (
/obj/effect/turf_decal/trimline/red/filled/corner{
dir = 1
@@ -72551,19 +72248,6 @@
},
/turf/open/floor/iron/white,
/area/medical/virology)
-"xRv" = (
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 6
- },
-/obj/structure/rack,
-/obj/machinery/light/directional/south,
-/obj/item/controller,
-/obj/item/compact_remote,
-/obj/item/integrated_circuit/loaded/hello_world,
-/obj/item/integrated_circuit/loaded/speech_relay,
-/obj/item/compact_remote,
-/turf/open/floor/iron,
-/area/science/misc_lab)
"xRE" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -72937,6 +72621,14 @@
},
/turf/open/floor/iron,
/area/engineering/atmos)
+"xXj" = (
+/obj/structure/filingcabinet,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 9
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/iron,
+/area/cargo/qm)
"xXn" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 8
@@ -88974,7 +88666,7 @@ aCa
arm
aqW
awG
-emO
+bQd
aeB
bfh
jIX
@@ -91796,7 +91488,7 @@ fyx
ahI
lmq
aCa
-aqf
+uQv
rBn
dQU
ahj
@@ -91806,7 +91498,7 @@ ufR
aeQ
dQU
jBt
-afR
+nrv
aCa
rCB
fNa
@@ -92548,7 +92240,7 @@ aXi
aXi
aXi
aej
-oUr
+bdd
aLM
aej
aae
@@ -94362,7 +94054,7 @@ aMK
ldH
aNF
aOP
-nju
+kEQ
jAa
aQb
aQy
@@ -95411,7 +95103,7 @@ aOP
aOP
aOP
aOP
-xib
+uRZ
itG
arc
aUD
@@ -98202,7 +97894,7 @@ aam
aam
aam
aej
-cII
+bum
aLM
aej
cIH
@@ -100284,7 +99976,7 @@ awp
ann
cRi
ain
-aEo
+wOc
axc
axc
axc
@@ -100553,7 +100245,7 @@ nSi
guA
xBP
sXN
-uQs
+qeq
tYP
pcR
tnM
@@ -103372,7 +103064,7 @@ awy
awy
awy
aUb
-dkt
+gqH
aln
kZF
aIG
@@ -103633,7 +103325,7 @@ aUb
aUb
aUb
aIG
-tRs
+gGs
iTQ
nsJ
lAN
@@ -105164,7 +104856,7 @@ ahg
dCy
iiQ
afB
-wfD
+qbv
aim
iXL
ntM
@@ -105915,7 +105607,7 @@ aBM
aBM
aBM
aiF
-ajj
+jtT
cuP
akO
alh
@@ -106195,7 +105887,7 @@ afB
fxN
gcl
iXL
-gXR
+bAL
gOs
kSp
vNq
@@ -106720,7 +106412,7 @@ uYT
imM
viG
otN
-idv
+uiu
pJF
pVU
kIo
@@ -112131,7 +111823,7 @@ rzp
tWb
jbA
diU
-iWO
+ayT
jyz
jaO
eDs
@@ -115403,7 +115095,7 @@ aae
aae
aae
sHb
-qiA
+ffr
svb
bWH
aht
@@ -115441,7 +115133,7 @@ adS
vkh
ifA
xaQ
-fat
+ewP
uJg
gJC
awJ
@@ -116481,7 +116173,7 @@ bJd
bJd
bJd
bJd
-ixu
+nnC
vyG
fls
aRL
@@ -119580,7 +119272,7 @@ xVI
omI
kgw
nAo
-cWg
+pie
der
mkm
czI
@@ -119837,7 +119529,7 @@ pft
ixB
utS
vVw
-xRv
+oPN
der
der
der
@@ -155534,7 +155226,7 @@ dDP
koi
jKC
aGt
-byG
+nie
abG
yee
yee
@@ -156037,7 +155729,7 @@ oev
aBa
erb
tjo
-aDp
+lCz
tpy
aFB
tjo
@@ -158084,7 +157776,7 @@ ahu
ahu
ahu
aak
-ajT
+mvS
akz
alV
iZU
@@ -158869,7 +158561,7 @@ azw
axV
axV
aEX
-aCU
+jCN
aEx
anG
iSC
@@ -159607,7 +159299,7 @@ aae
aae
aak
aak
-abe
+vqD
act
adf
adK
@@ -159655,7 +159347,7 @@ wBq
sXx
sXx
vkV
-uhs
+iiG
kGg
uRU
aOb
@@ -159888,7 +159580,7 @@ aGY
auf
aGY
aGY
-aqo
+wuT
auY
awK
axX
@@ -161954,7 +161646,7 @@ qbg
axX
aBH
bxq
-aEK
+wmU
aJV
aJV
pwy
@@ -162177,7 +161869,7 @@ aae
aae
aak
aak
-abi
+gGD
acv
adl
adM
@@ -162225,7 +161917,7 @@ kqJ
qhf
qhf
kqJ
-fIg
+ond
iiX
dGK
aOb
@@ -162973,7 +162665,7 @@ ptd
aZQ
aZQ
ara
-avj
+hdD
aEn
axZ
aYE
@@ -163462,7 +163154,7 @@ aae
aae
aae
aFF
-aAs
+iWB
epC
bTH
wQD
@@ -163475,7 +163167,7 @@ aFF
api
doY
aep
-aBS
+aWS
abW
ahu
ahu
@@ -164760,7 +164452,7 @@ aFF
aJc
aBE
ahv
-awX
+djm
abW
aae
aae
@@ -165004,7 +164696,7 @@ aae
ccM
ccM
aFF
-ace
+ghR
aSe
jiB
oXV
@@ -167628,7 +167320,7 @@ gkW
xZF
bsl
ofE
-uFJ
+kgy
tOs
oeG
rIE
@@ -168403,7 +168095,7 @@ mJp
nEg
mhz
ozN
-bKr
+aIK
snA
aae
aae
@@ -169149,7 +168841,7 @@ iBv
ibO
ayf
aFa
-aDo
+pNm
iUK
avn
avn
@@ -170200,7 +169892,7 @@ aIk
uYR
uht
uht
-kDj
+pTk
dJz
xCV
jyn
@@ -171446,7 +171138,7 @@ vGu
iEx
jgJ
vGu
-vxi
+jKG
dUE
vGR
qWH
@@ -172244,7 +171936,7 @@ nbz
nbz
aHr
eLP
-cdt
+iLM
uht
uht
qch
@@ -173253,7 +172945,7 @@ bhS
aLX
xyy
atB
-avX
+czW
aEy
ayn
uZH
@@ -173787,7 +173479,7 @@ rKf
kdk
vKS
eVQ
-aHM
+bav
adD
hVT
aez
@@ -176633,7 +176325,7 @@ agq
lbM
jwN
sYs
-agq
+aae
aae
aae
aae
@@ -176890,7 +176582,7 @@ jOR
wEN
fwP
fwP
-agq
+aae
aae
aae
aae
@@ -177135,7 +176827,7 @@ aae
aae
aae
aae
-agq
+aae
lbM
agq
xCz
@@ -177146,8 +176838,8 @@ fwP
jOR
aEg
lAc
-agq
-agq
+aae
+aae
aae
aae
aae
@@ -177383,7 +177075,7 @@ aBM
aae
aae
dyg
-ist
+xQT
hHc
ooo
cVj
@@ -177403,8 +177095,8 @@ wWv
jOR
aEg
hYK
-abP
-agq
+eWl
+aae
aae
aae
aae
@@ -177652,16 +177344,16 @@ aae
lbM
tAu
sYs
-agq
-agq
+aae
+aae
wEN
oWE
lbM
jOR
-agq
-agq
-agq
-agq
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -177908,14 +177600,14 @@ dyg
aae
lbM
lbM
-ayQ
-ayQ
-ayQ
-ayQ
-ayQ
-ayQ
-ayQ
-ayQ
+aae
+aae
+aae
+aae
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -178154,7 +177846,7 @@ wbP
akA
bdB
gIt
-wdt
+lGl
tuP
aPX
kvX
@@ -178165,14 +177857,14 @@ dyg
aae
aae
aae
-ayQ
-bap
-auc
-alu
-bMz
-vfl
-pUB
-ayQ
+aae
+aae
+aae
+aae
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -178422,14 +178114,14 @@ dyg
aae
aae
aae
-ayQ
-anf
-dFo
-cAT
-vux
-uQm
-gfd
-ayQ
+aae
+aae
+aae
+aae
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -178679,14 +178371,14 @@ dyg
der
der
der
-ayQ
-dbl
-kzT
-cAT
-rwO
-vux
-jqL
-ayQ
+der
+aae
+aae
+aae
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -178936,14 +178628,14 @@ dyg
bwc
dCn
pto
-ayQ
-asL
-bsR
-hPF
-baY
-bFL
-uRy
-ayQ
+der
+aae
+aae
+aae
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -179193,13 +178885,13 @@ dyg
lSU
wtF
jhg
-ayQ
-aIs
-rbD
-nkz
-pfi
-tJq
-aIT
+der
+aae
+aae
+aae
+aae
+aae
+aae
lQG
lQG
lQG
@@ -179408,7 +179100,7 @@ gJG
okm
jZN
bSv
-kXA
+xXj
ari
scx
tEA
@@ -179421,7 +179113,7 @@ vfE
uEE
oDL
atP
-awe
+eCL
aEE
ayw
hlI
@@ -179450,13 +179142,13 @@ dyg
der
jFq
der
-ayQ
-ayQ
-btO
-hqq
-tOO
-btO
-ayQ
+der
+der
+der
+der
+der
+der
+der
lQG
dGu
dGu
@@ -179710,8 +179402,8 @@ ydX
eaF
eaF
eaF
-vDR
-bMh
+sPg
+qJo
fgV
czV
lQG
@@ -180733,7 +180425,7 @@ yju
hIG
jrL
vmv
-qab
+utD
lev
lev
lev
@@ -182008,7 +181700,7 @@ ojc
ngB
buy
kvg
-uLU
+dZf
vLU
kkY
ply
@@ -183541,7 +183233,7 @@ aAS
ayA
ayA
aFi
-aEp
+uoz
aGb
aod
dCt
diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm
index 6495c88136e..855e4d72427 100644
--- a/code/__DEFINES/atom_hud.dm
+++ b/code/__DEFINES/atom_hud.dm
@@ -38,8 +38,6 @@
#define GLAND_HUD "17"
#define SENTIENT_DISEASE_HUD "18"
#define AI_DETECT_HUD "19"
-#define NANITE_HUD "20"
-#define DIAG_NANITE_FULL_HUD "21"
/// Displays launchpads' targeting reticle
#define DIAG_LAUNCHPAD_HUD "22"
//for antag huds. these are used at the /mob level
diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm
index e256f65ab54..e3ab85a2a13 100644
--- a/code/__DEFINES/dcs/signals.dm
+++ b/code/__DEFINES/dcs/signals.dm
@@ -1107,49 +1107,6 @@
///(customer, container) venue signal sent when a venue sells an item. source is the thing sold, which can be a datum, so we send container for location checks
#define COMSIG_ITEM_SOLD_TO_CUSTOMER "item_sold_to_customer"
-//Nanites
-
-///() returns TRUE if nanites are found
-#define COMSIG_HAS_NANITES "has_nanites"
-///() returns TRUE if nanites have stealth
-#define COMSIG_NANITE_IS_STEALTHY "nanite_is_stealthy"
-///() deletes the nanite component
-#define COMSIG_NANITE_DELETE "nanite_delete"
-///(list/nanite_programs) - makes the input list a copy the nanites' program list
-#define COMSIG_NANITE_GET_PROGRAMS "nanite_get_programs"
-///(amount) Returns nanite amount
-#define COMSIG_NANITE_GET_VOLUME "nanite_get_volume"
-///(amount) Sets current nanite volume to the given amount
-#define COMSIG_NANITE_SET_VOLUME "nanite_set_volume"
-///(amount) Adjusts nanite volume by the given amount
-#define COMSIG_NANITE_ADJUST_VOLUME "nanite_adjust"
-///(amount) Sets maximum nanite volume to the given amount
-#define COMSIG_NANITE_SET_MAX_VOLUME "nanite_set_max_volume"
-///(amount(0-100)) Sets cloud ID to the given amount
-#define COMSIG_NANITE_SET_CLOUD "nanite_set_cloud"
-///(method) Modify cloud sync status. Method can be toggle, enable or disable
-#define COMSIG_NANITE_SET_CLOUD_SYNC "nanite_set_cloud_sync"
-///(amount) Sets safety threshold to the given amount
-#define COMSIG_NANITE_SET_SAFETY "nanite_set_safety"
-///(amount) Sets regeneration rate to the given amount
-#define COMSIG_NANITE_SET_REGEN "nanite_set_regen"
-///(code(1-9999)) Called when sending a nanite signal to a mob.
-#define COMSIG_NANITE_SIGNAL "nanite_signal"
-///(comm_code(1-9999), comm_message) Called when sending a nanite comm signal to a mob.
-#define COMSIG_NANITE_COMM_SIGNAL "nanite_comm_signal"
-///(mob/user, full_scan) - sends to chat a scan of the nanites to the user, returns TRUE if nanites are detected
-#define COMSIG_NANITE_SCAN "nanite_scan"
-///(list/data, scan_level) - adds nanite data to the given data list - made for ui_data procs
-#define COMSIG_NANITE_UI_DATA "nanite_ui_data"
-///(datum/nanite_program/new_program, datum/nanite_program/source_program) Called when adding a program to a nanite component
-#define COMSIG_NANITE_ADD_PROGRAM "nanite_add_program"
- ///Installation successful
- #define COMPONENT_PROGRAM_INSTALLED (1<<0)
- ///Installation failed, but there are still nanites
- #define COMPONENT_PROGRAM_NOT_INSTALLED (1<<1)
-///(datum/component/nanites, full_overwrite, copy_activation) Called to sync the target's nanites to a given nanite component
-#define COMSIG_NANITE_SYNC "nanite_sync"
-
// /datum/component/storage signals
///() - returns bool.
diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm
index 863c65f05ce..755f30e908a 100644
--- a/code/__DEFINES/logging.dm
+++ b/code/__DEFINES/logging.dm
@@ -14,7 +14,6 @@
#define INVESTIGATE_HALLUCINATIONS "hallucinations"
#define INVESTIGATE_RADIATION "radiation"
#define INVESTIGATE_EXONET "exonet"
-#define INVESTIGATE_NANITES "nanites"
#define INVESTIGATE_PRESENTS "presents"
#define INVESTIGATE_HYPERTORUS "hypertorus"
#define INVESTIGATE_ACCESSCHANGES "id_card_changes"
diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm
index 0958d7472ce..6e47918df52 100644
--- a/code/__DEFINES/machines.dm
+++ b/code/__DEFINES/machines.dm
@@ -41,7 +41,6 @@
#define BIOGENERATOR (1<<4) //Uses biomass
#define LIMBGROWER (1<<5) //Uses synthetic flesh
#define SMELTER (1<<6) //uses various minerals
-#define NANITE_COMPILER (1<<7) //Prints nanite disks
/// Protolathes for offstation roles. More limited tech tree.
#define AWAY_LATHE (1<<8)
/// Imprinters for offstation roles. More limited tech tree.
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index 50fa8e13b8e..6cc07276f5b 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -485,7 +485,6 @@ GLOBAL_LIST_INIT(pda_styles, sortList(list(MONO, VT, ORBITRON, SHARE)))
#define VOMIT_TOXIC 1
#define VOMIT_PURPLE 2
-#define VOMIT_NANITE 3
//chem grenades defines
#define GRENADE_EMPTY 1
diff --git a/code/__DEFINES/nanites.dm b/code/__DEFINES/nanites.dm
deleted file mode 100644
index abd2327dd52..00000000000
--- a/code/__DEFINES/nanites.dm
+++ /dev/null
@@ -1,53 +0,0 @@
-#define NANITE_SYNC_DELAY 300
-
-#define NANITE_SHOCK_IMMUNE 1
-#define NANITE_EMP_IMMUNE 2
-
-#define NANITE_PROGRAM_LIMIT 20
-
-
-#define NANITE_BASE_RESEARCH 3.5
-
-#define NANITE_CLOUD_TOGGLE 1
-#define NANITE_CLOUD_DISABLE 2
-#define NANITE_CLOUD_ENABLE 3
-
-//Nanite excess thresholds
-#define NANITE_EXCESS_MINOR 25
-#define NANITE_EXCESS_VOMIT 100
-#define NANITE_EXCESS_BURST 350
-
-///Nanite Protocol types
-#define NANITE_PROTOCOL_REPLICATION "nanite_replication"
-#define NANITE_PROTOCOL_STORAGE "nanite_storage"
-
-///Nanite extra settings types: used to help uis know what type an extra setting is
-#define NESTYPE_TEXT "text"
-#define NESTYPE_NUMBER "number"
-#define NESTYPE_TYPE "type"
-#define NESTYPE_BOOLEAN "boolean"
-
-///Nanite Extra Settings - Note that these will also be the names displayed in the UI
-#define NES_SENT_CODE "Sent Code"
-#define NES_DELAY "Delay"
-#define NES_MODE "Mode"
-#define NES_COMM_CODE "Comm Code"
-#define NES_RELAY_CHANNEL "Relay Channel"
-#define NES_HEALTH_PERCENT "Health Percent"
-#define NES_DIRECTION "Direction"
-#define NES_NANITE_PERCENT "Nanite Percent"
-#define NES_DAMAGE_TYPE "Damage Type"
-#define NES_DAMAGE "Damage"
-#define NES_SENTENCE "Sentence"
-#define NES_MESSAGE "Message"
-#define NES_DIRECTIVE "Directive"
-#define NES_INCLUSIVE_MODE "Inclusive Mode"
-#define NES_RACE "Race"
-#define NES_HALLUCINATION_TYPE "Hallucination Type"
-#define NES_HALLUCINATION_DETAIL "Hallucination Detail"
-#define NES_MOOD_MESSAGE "Mood Message"
-#define NES_PROGRAM_OVERWRITE "Program Overwrite"
-#define NES_CLOUD_OVERWRITE "Cloud Overwrite"
-#define NES_SCAN_TYPE "Scan Type"
-#define NES_BUTTON_NAME "Button Name"
-#define NES_ICON "Icon"
diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm
index d8db678bc29..a43053e262c 100644
--- a/code/__DEFINES/research.dm
+++ b/code/__DEFINES/research.dm
@@ -22,14 +22,12 @@
//! Techweb names for new point types. Can be used to define specific point values for specific types of research (science, security, engineering, etc.)
#define TECHWEB_POINT_TYPE_GENERIC "General Research"
-#define TECHWEB_POINT_TYPE_NANITES "Nanite Research"
#define TECHWEB_POINT_TYPE_DEFAULT TECHWEB_POINT_TYPE_GENERIC
//! Associative names for techweb point values, see: [all_nodes][code/modules/research/techweb/all_nodes.dm]
#define TECHWEB_POINT_TYPE_LIST_ASSOCIATIVE_NAMES list(\
TECHWEB_POINT_TYPE_GENERIC = "General Research",\
- TECHWEB_POINT_TYPE_NANITES = "Nanite Research"\
)
/// Amount of cash you can get from a maxcap
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 4c740d88bb5..c499c088f23 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -293,8 +293,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_PERMANENTLY_ONFIRE "permanently_onfire"
/// Galactic Common Sign Language
#define TRAIT_SIGN_LANG "sign_language"
-/// The mob's nanites are sending a monitoring signal visible on diag HUD
-#define TRAIT_NANITE_MONITORING "nanite_monitoring"
/// nobody can use martial arts on this mob
#define TRAIT_MARTIAL_ARTS_IMMUNE "martial_arts_immune"
/// You've been cursed with a living duffelbag, and can't have more added
@@ -598,7 +596,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define GENETICS_SPELL "genetics_spell"
#define EYES_COVERED "eyes_covered"
#define HYPNOCHAIR_TRAIT "hypnochair"
-#define NANITES_TRAIT "nanites"
#define FLASHLIGHT_EYES "flashlight_eyes"
#define IMPURE_OCULINE "impure_oculine"
#define BLINDFOLD_TRAIT "blindfolded"
diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm
index 5669eba92aa..1ccd4a338e0 100644
--- a/code/_globalvars/lists/mobs.dm
+++ b/code/_globalvars/lists/mobs.dm
@@ -39,7 +39,6 @@ GLOBAL_LIST_EMPTY(spidermobs) //all sentient spider mobs
GLOBAL_LIST_EMPTY(bots_list)
GLOBAL_LIST_EMPTY(aiEyes)
GLOBAL_LIST_EMPTY(suit_sensors_list) //all people with suit sensors on
-GLOBAL_LIST_EMPTY(nanite_sensors_list) //app people with nanite monitoring program
/// All alive mobs with clients.
GLOBAL_LIST_EMPTY(alive_player_list)
diff --git a/code/controllers/subsystem/processing/nanites.dm b/code/controllers/subsystem/processing/nanites.dm
deleted file mode 100644
index b8109a904af..00000000000
--- a/code/controllers/subsystem/processing/nanites.dm
+++ /dev/null
@@ -1,22 +0,0 @@
-PROCESSING_SUBSYSTEM_DEF(nanites)
- name = "Nanites"
- flags = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT
- wait = 1 SECONDS
-
- var/list/datum/nanite_cloud_backup/cloud_backups = list()
- var/list/mob/living/nanite_monitored_mobs = list()
- var/list/datum/nanite_program/relay/nanite_relays = list()
- var/neural_network_count = 0
-
-/datum/controller/subsystem/processing/nanites/proc/check_hardware(datum/nanite_cloud_backup/backup)
- if(QDELETED(backup.storage) || (backup.storage.machine_stat & (NOPOWER|BROKEN)))
- return FALSE
- return TRUE
-
-/datum/controller/subsystem/processing/nanites/proc/get_cloud_backup(cloud_id, force = FALSE)
- for(var/I in cloud_backups)
- var/datum/nanite_cloud_backup/backup = I
- if(!force && !check_hardware(backup))
- return
- if(backup.cloud_id == cloud_id)
- return backup
diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm
deleted file mode 100644
index 4004e1b0a12..00000000000
--- a/code/datums/components/nanites.dm
+++ /dev/null
@@ -1,479 +0,0 @@
-#define HARMONIC_REGEN_BOOST 0.1
-
-/datum/component/nanites
- dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
-
- var/mob/living/host_mob
- var/nanite_volume = 100 //amount of nanites in the system, used as fuel for nanite programs
- var/max_nanites = 500 //maximum amount of nanites in the system
- var/regen_rate = 0.5 //nanites generated per second
- var/safety_threshold = 50 //how low nanites will get before they stop processing/triggering
- var/cloud_id = 0 //0 if not connected to the cloud, 1-100 to set a determined cloud backup to draw from
- var/cloud_active = TRUE //if false, won't sync to the cloud
- var/next_sync = 0
- var/list/datum/nanite_program/programs = list()
- var/max_programs = NANITE_PROGRAM_LIMIT
-
- var/list/datum/nanite_program/protocol/protocols = list() ///Separate list of protocol programs, to avoid looping through the whole programs list when cheking for conflicts
- var/start_time = 0 ///Timestamp to when the nanites were first inserted in the host
- var/stealth = FALSE //if TRUE, does not appear on HUDs and health scans
- var/diagnostics = FALSE //if TRUE, displays program list when scanned by nanite scanners
-
-/datum/component/nanites/Initialize(amount = 100, cloud = 0)
- if(!isliving(parent) && !istype(parent, /datum/nanite_cloud_backup))
- return COMPONENT_INCOMPATIBLE
-
- nanite_volume = amount
- cloud_id = cloud
-
- //Nanites without hosts are non-interactive through normal means
- if(isliving(parent))
- host_mob = parent
-
- if(!(host_mob.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD))) //Shouldn't happen, but this avoids HUD runtimes in case a silicon gets them somehow.
- return COMPONENT_INCOMPATIBLE
-
- start_time = world.time
-
- host_mob.hud_set_nanite_indicator()
- START_PROCESSING(SSnanites, src)
-
- if(cloud_id && cloud_active)
- cloud_sync()
-
-/datum/component/nanites/RegisterWithParent()
- RegisterSignal(parent, COMSIG_HAS_NANITES, .proc/confirm_nanites)
- RegisterSignal(parent, COMSIG_NANITE_IS_STEALTHY, .proc/check_stealth)
- RegisterSignal(parent, COMSIG_NANITE_DELETE, .proc/delete_nanites)
- RegisterSignal(parent, COMSIG_NANITE_UI_DATA, .proc/nanite_ui_data)
- RegisterSignal(parent, COMSIG_NANITE_GET_PROGRAMS, .proc/get_programs)
- RegisterSignal(parent, COMSIG_NANITE_SET_VOLUME, .proc/set_volume)
- RegisterSignal(parent, COMSIG_NANITE_ADJUST_VOLUME, .proc/adjust_nanites)
- RegisterSignal(parent, COMSIG_NANITE_SET_MAX_VOLUME, .proc/set_max_volume)
- RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD, .proc/set_cloud)
- RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD_SYNC, .proc/set_cloud_sync)
- RegisterSignal(parent, COMSIG_NANITE_SET_SAFETY, .proc/set_safety)
- RegisterSignal(parent, COMSIG_NANITE_SET_REGEN, .proc/set_regen)
- RegisterSignal(parent, COMSIG_NANITE_ADD_PROGRAM, .proc/add_program)
- RegisterSignal(parent, COMSIG_NANITE_SCAN, .proc/nanite_scan)
- RegisterSignal(parent, COMSIG_NANITE_SYNC, .proc/sync)
-
- if(isliving(parent))
- RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp)
- RegisterSignal(parent, COMSIG_LIVING_DEATH, .proc/on_death)
- RegisterSignal(parent, COMSIG_MOB_ALLOWED, .proc/check_access)
- RegisterSignal(parent, COMSIG_LIVING_ELECTROCUTE_ACT, .proc/on_shock)
- RegisterSignal(parent, COMSIG_LIVING_MINOR_SHOCK, .proc/on_minor_shock)
- RegisterSignal(parent, COMSIG_SPECIES_GAIN, .proc/check_viable_biotype)
- RegisterSignal(parent, COMSIG_NANITE_SIGNAL, .proc/receive_signal)
- RegisterSignal(parent, COMSIG_NANITE_COMM_SIGNAL, .proc/receive_comm_signal)
-
-/datum/component/nanites/UnregisterFromParent()
- UnregisterSignal(parent, list(COMSIG_HAS_NANITES,
- COMSIG_NANITE_IS_STEALTHY,
- COMSIG_NANITE_DELETE,
- COMSIG_NANITE_UI_DATA,
- COMSIG_NANITE_GET_PROGRAMS,
- COMSIG_NANITE_SET_VOLUME,
- COMSIG_NANITE_ADJUST_VOLUME,
- COMSIG_NANITE_SET_MAX_VOLUME,
- COMSIG_NANITE_SET_CLOUD,
- COMSIG_NANITE_SET_CLOUD_SYNC,
- COMSIG_NANITE_SET_SAFETY,
- COMSIG_NANITE_SET_REGEN,
- COMSIG_NANITE_ADD_PROGRAM,
- COMSIG_NANITE_SCAN,
- COMSIG_NANITE_SYNC,
- COMSIG_ATOM_EMP_ACT,
- COMSIG_LIVING_DEATH,
- COMSIG_MOB_ALLOWED,
- COMSIG_LIVING_ELECTROCUTE_ACT,
- COMSIG_LIVING_MINOR_SHOCK,
- COMSIG_MOVABLE_HEAR,
- COMSIG_SPECIES_GAIN,
- COMSIG_NANITE_SIGNAL,
- COMSIG_NANITE_COMM_SIGNAL))
-
-/datum/component/nanites/Destroy()
- STOP_PROCESSING(SSnanites, src)
- QDEL_LIST(programs)
- if(host_mob)
- set_nanite_bar(TRUE)
- host_mob.hud_set_nanite_indicator()
- host_mob = null
- return ..()
-
-/datum/component/nanites/InheritComponent(datum/component/nanites/new_nanites, i_am_original, amount, cloud)
- if(new_nanites)
- adjust_nanites(null, new_nanites.nanite_volume)
- else
- adjust_nanites(null, amount) //just add to the nanite volume
-
-/datum/component/nanites/process(delta_time)
- if(!IS_IN_STASIS(host_mob))
- adjust_nanites(null, (regen_rate + (SSresearch.science_tech.researched_nodes["nanite_harmonic"] ? HARMONIC_REGEN_BOOST : 0)) * delta_time)
- add_research()
- for(var/X in programs)
- var/datum/nanite_program/NP = X
- NP.on_process()
- if(cloud_id && cloud_active && world.time > next_sync)
- cloud_sync()
- next_sync = world.time + NANITE_SYNC_DELAY
- set_nanite_bar()
-
-///Deletes nanites!
-/datum/component/nanites/proc/delete_nanites()
- SIGNAL_HANDLER
-
- qdel(src)
-
-///Syncs the nanite component to another, making it so programs are the same with the same programming (except activation status)
-/datum/component/nanites/proc/sync(datum/signal_source, datum/component/nanites/source, full_overwrite = TRUE, copy_activation = FALSE)
- SIGNAL_HANDLER
-
- var/list/programs_to_remove = programs.Copy()
- var/list/programs_to_add = source.programs.Copy()
- for(var/X in programs)
- var/datum/nanite_program/NP = X
- for(var/Y in programs_to_add)
- var/datum/nanite_program/SNP = Y
- if(NP.type == SNP.type)
- programs_to_remove -= NP
- programs_to_add -= SNP
- SNP.copy_programming(NP, copy_activation)
- break
- if(full_overwrite)
- for(var/X in programs_to_remove)
- qdel(X)
- for(var/X in programs_to_add)
- var/datum/nanite_program/SNP = X
- add_program(null, SNP.copy())
-
-///Syncs the nanites to their assigned cloud copy, if it is available. If it is not, there is a small chance of a software error instead.
-/datum/component/nanites/proc/cloud_sync()
- if(cloud_id)
- var/datum/nanite_cloud_backup/backup = SSnanites.get_cloud_backup(cloud_id)
- if(backup)
- var/datum/component/nanites/cloud_copy = backup.nanites
- if(cloud_copy)
- sync(null, cloud_copy)
- return
- //Without cloud syncing nanites can accumulate errors and/or defects
- if(prob(8) && programs.len)
- var/datum/nanite_program/NP = pick(programs)
- NP.software_error()
-
-///Adds a nanite program, replacing existing unique programs of the same type. A source program can be specified to copy its programming onto the new one.
-/datum/component/nanites/proc/add_program(datum/source, datum/nanite_program/new_program, datum/nanite_program/source_program)
- SIGNAL_HANDLER
-
- for(var/X in programs)
- var/datum/nanite_program/NP = X
- if(NP.unique && NP.type == new_program.type)
- qdel(NP)
- if(programs.len >= max_programs)
- return COMPONENT_PROGRAM_NOT_INSTALLED
- if(source_program)
- source_program.copy_programming(new_program)
- programs += new_program
- new_program.on_add(src)
- return COMPONENT_PROGRAM_INSTALLED
-
-/datum/component/nanites/proc/consume_nanites(amount, force = FALSE)
- if(!force && safety_threshold && (nanite_volume - amount < safety_threshold))
- return FALSE
- adjust_nanites(null, -amount)
- return (nanite_volume > 0)
-
-///Modifies the current nanite volume, then checks if the nanites are depleted or exceeding the maximum amount
-/datum/component/nanites/proc/adjust_nanites(datum/source, amount)
- SIGNAL_HANDLER
-
- nanite_volume += amount
- if(nanite_volume > max_nanites)
- reject_excess_nanites()
- if(nanite_volume <= 0) //oops we ran out
- qdel(src)
-
-/**
- * Handles how nanites leave the host's body if they find out that they're currently exceeding the maximum supported amount
- *
- * IC explanation:
- * Normally nanites simply discard excess volume by slowing replication or 'sweating' it out in imperceptible amounts,
- * but if there is a large excess volume, likely due to a programming change that leaves them unable to support their current volume,
- * the nanites attempt to leave the host as fast as necessary to prevent nanite poisoning. This can range from minor oozing to nanites
- * rapidly bursting out from every possible pathway, causing temporary inconvenience to the host.
- */
-/datum/component/nanites/proc/reject_excess_nanites()
- var/excess = nanite_volume - max_nanites
- nanite_volume = max_nanites
-
- switch(excess)
- if(0 to NANITE_EXCESS_MINOR) //Minor excess amount, the extra nanites are quietly expelled without visible effects
- return
- if((NANITE_EXCESS_MINOR + 0.1) to NANITE_EXCESS_VOMIT) //Enough nanites getting rejected at once to be visible to the naked eye
- host_mob.visible_message(span_warning("A grainy grey slurry starts oozing out of [host_mob]."), span_warning("A grainy grey slurry starts oozing out of your skin."), null, 4);
- if((NANITE_EXCESS_VOMIT + 0.1) to NANITE_EXCESS_BURST) //Nanites getting rejected in massive amounts, but still enough to make a semi-orderly exit through vomit
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- host_mob.visible_message(span_warning("[host_mob] vomits a grainy grey slurry!"), span_warning("You suddenly vomit a metallic-tasting grainy grey slurry!"), null);
- C.vomit(0, FALSE, TRUE, FLOOR(excess / 100, 1), FALSE, VOMIT_NANITE, FALSE, TRUE, 0)
- else
- host_mob.visible_message(span_warning("A metallic grey slurry bursts out of [host_mob]'s skin!"), span_userdanger("A metallic grey slurry violently bursts out of your skin!"), null);
- if(isturf(host_mob.drop_location()))
- var/turf/T = host_mob.drop_location()
- T.add_vomit_floor(host_mob, VOMIT_NANITE, 0)
- if((NANITE_EXCESS_BURST + 0.1) to INFINITY) //Way too many nanites, they just leave through the closest exit before they harm/poison the host
- host_mob.visible_message(span_warning("A torrent of metallic grey slurry violently bursts out of [host_mob]'s face and floods out of [host_mob.p_their()] skin!"),
- span_userdanger("A torrent of metallic grey slurry violently bursts out of your eyes, ears, and mouth, and floods out of your skin!"));
-
- host_mob.blind_eyes(15) //nanites coming out of your eyes
- host_mob.Paralyze(120)
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- var/obj/item/organ/ears/ears = C.getorganslot(ORGAN_SLOT_EARS)
- if(ears)
- ears.adjustEarDamage(0, 30) //nanites coming out of your ears
- C.vomit(0, FALSE, TRUE, 2, FALSE, VOMIT_NANITE, FALSE, TRUE, 0) //nanites coming out of your mouth
-
- //nanites everywhere
- if(isturf(host_mob.drop_location()))
- var/turf/T = host_mob.drop_location()
- T.add_vomit_floor(host_mob, VOMIT_NANITE, 0)
- for(var/turf/adjacent_turf in oview(host_mob, 1))
- if(adjacent_turf.density || !adjacent_turf.Adjacent(T))
- continue
- adjacent_turf.add_vomit_floor(host_mob, VOMIT_NANITE, 0)
-
-///Updates the nanite volume bar visible in diagnostic HUDs
-/datum/component/nanites/proc/set_nanite_bar(remove = FALSE)
- var/image/holder = host_mob.hud_list[DIAG_NANITE_FULL_HUD]
- var/icon/I = icon(host_mob.icon, host_mob.icon_state, host_mob.dir)
- holder.pixel_y = I.Height() - world.icon_size
- holder.icon_state = null
- if(remove || stealth)
- return //bye icon
- var/nanite_percent = (nanite_volume / max_nanites) * 100
- nanite_percent = clamp(CEILING(nanite_percent, 10), 10, 100)
- holder.icon_state = "nanites[nanite_percent]"
-
-/datum/component/nanites/proc/on_emp(datum/source, severity)
- SIGNAL_HANDLER
-
- nanite_volume *= (rand(60, 90) * 0.01) //Lose 10-40% of nanites
- adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume
- if(prob(40/severity))
- cloud_id = 0
- for(var/X in programs)
- var/datum/nanite_program/NP = X
- NP.on_emp(severity)
-
-
-/datum/component/nanites/proc/on_shock(datum/source, shock_damage, siemens_coeff = 1, flags = NONE)
- SIGNAL_HANDLER
-
- if(flags & SHOCK_ILLUSION || shock_damage < 1)
- return
-
- if(!HAS_TRAIT_NOT_FROM(host_mob, TRAIT_SHOCKIMMUNE, "nanites"))//Another shock protection must protect nanites too, but nanites protect only host
- nanite_volume *= (rand(45, 80) * 0.01) //Lose 20-55% of nanites
- adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume
- for(var/X in programs)
- var/datum/nanite_program/NP = X
- NP.on_shock(shock_damage)
-
-/datum/component/nanites/proc/on_minor_shock(datum/source)
- SIGNAL_HANDLER
-
- adjust_nanites(null, -(rand(5, 15))) //Lose 5-15 flat nanite volume
- for(var/X in programs)
- var/datum/nanite_program/NP = X
- NP.on_minor_shock()
-
-/datum/component/nanites/proc/check_stealth(datum/source)
- SIGNAL_HANDLER
-
- return stealth
-
-/datum/component/nanites/proc/on_death(datum/source, gibbed)
- SIGNAL_HANDLER
-
- for(var/X in programs)
- var/datum/nanite_program/NP = X
- NP.on_death(gibbed)
-
-/datum/component/nanites/proc/receive_signal(datum/source, code, source = "an unidentified source")
- SIGNAL_HANDLER
-
- for(var/X in programs)
- var/datum/nanite_program/NP = X
- NP.receive_signal(code, source)
-
-/datum/component/nanites/proc/receive_comm_signal(datum/source, comm_code, comm_message, comm_source = "an unidentified source")
- SIGNAL_HANDLER
-
- for(var/X in programs)
- if(istype(X, /datum/nanite_program/comm))
- var/datum/nanite_program/comm/NP = X
- NP.receive_comm_signal(comm_code, comm_message, comm_source)
-
-/datum/component/nanites/proc/check_viable_biotype()
- SIGNAL_HANDLER
-
- if(!(host_mob.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD)))
- qdel(src) //bodytype no longer sustains nanites
-
-/datum/component/nanites/proc/check_access(datum/source, obj/O)
- SIGNAL_HANDLER
-
- for(var/datum/nanite_program/access/access_program in programs)
- if(access_program.activated)
- return O.check_access_list(access_program.access)
- else
- return FALSE
- return FALSE
-
-/datum/component/nanites/proc/set_volume(datum/source, amount)
- SIGNAL_HANDLER
-
- nanite_volume = clamp(amount, 0, max_nanites)
-
-/datum/component/nanites/proc/set_max_volume(datum/source, amount)
- SIGNAL_HANDLER
-
- max_nanites = max(1, amount)
-
-/datum/component/nanites/proc/set_cloud(datum/source, amount)
- SIGNAL_HANDLER
-
- cloud_id = clamp(amount, 0, 100)
-
-/datum/component/nanites/proc/set_cloud_sync(datum/source, method)
- SIGNAL_HANDLER
-
- switch(method)
- if(NANITE_CLOUD_TOGGLE)
- cloud_active = !cloud_active
- if(NANITE_CLOUD_DISABLE)
- cloud_active = FALSE
- if(NANITE_CLOUD_ENABLE)
- cloud_active = TRUE
-
-/datum/component/nanites/proc/set_safety(datum/source, amount)
- SIGNAL_HANDLER
-
- safety_threshold = clamp(amount, 0, max_nanites)
-
-/datum/component/nanites/proc/set_regen(datum/source, amount)
- SIGNAL_HANDLER
-
- regen_rate = amount
-
-/datum/component/nanites/proc/confirm_nanites()
- SIGNAL_HANDLER
-
- return TRUE //yup i exist
-
-/datum/component/nanites/proc/get_programs(datum/source, list/nanite_programs)
- SIGNAL_HANDLER
-
- nanite_programs |= programs
-
-/datum/component/nanites/proc/add_research()
- var/research_value = NANITE_BASE_RESEARCH
- if(!ishuman(host_mob))
- if(!iscarbon(host_mob))
- research_value *= 0.4
- else
- research_value *= 0.8
- if(!host_mob.client)
- research_value *= 0.5
- if(host_mob.stat == DEAD)
- research_value *= 0.75
- SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_NANITES = research_value))
-
-/datum/component/nanites/proc/nanite_scan(datum/source, mob/user, full_scan)
- SIGNAL_HANDLER
-
- if(!full_scan)
- if(!stealth)
- to_chat(user, span_notice("Nanites Detected"))
- to_chat(user, span_notice("Saturation: [nanite_volume]/[max_nanites]"))
- return TRUE
- else
- to_chat(user, span_info("NANITES DETECTED"))
- to_chat(user, span_info("================"))
- to_chat(user, span_info("Saturation: [nanite_volume]/[max_nanites]"))
- to_chat(user, span_info("Safety Threshold: [safety_threshold]"))
- to_chat(user, span_info("Cloud ID: [cloud_id ? cloud_id : "None"]"))
- to_chat(user, span_info("Cloud Sync: [cloud_active ? "Active" : "Disabled"]"))
- to_chat(user, span_info("================"))
- to_chat(user, span_info("Program List:"))
- if(!diagnostics)
- to_chat(user, span_alert("Nanite debugging disabled."))
- else
- for(var/X in programs)
- var/datum/nanite_program/NP = X
- to_chat(user, span_info("[NP.name] | [NP.activated ? "Active" : "Inactive"]"))
- return TRUE
-
-/datum/component/nanites/proc/nanite_ui_data(datum/source, list/data, scan_level)
- SIGNAL_HANDLER
-
- data["has_nanites"] = TRUE
- data["nanite_volume"] = nanite_volume
- data["regen_rate"] = regen_rate + (SSresearch.science_tech.researched_nodes["nanite_harmonic"] ? HARMONIC_REGEN_BOOST : 0)
- data["safety_threshold"] = safety_threshold
- data["cloud_id"] = cloud_id
- data["cloud_active"] = cloud_active
- var/list/mob_programs = list()
- var/id = 1
- for(var/X in programs)
- var/datum/nanite_program/P = X
- var/list/mob_program = list()
- mob_program["name"] = P.name
- mob_program["desc"] = P.desc
- mob_program["id"] = id
-
- if(scan_level >= 2)
- mob_program["activated"] = P.activated
- mob_program["use_rate"] = P.use_rate
- mob_program["can_trigger"] = P.can_trigger
- mob_program["trigger_cost"] = P.trigger_cost
- mob_program["trigger_cooldown"] = P.trigger_cooldown / 10
-
- if(scan_level >= 3)
- mob_program["timer_restart"] = P.timer_restart / 10
- mob_program["timer_shutdown"] = P.timer_shutdown / 10
- mob_program["timer_trigger"] = P.timer_trigger / 10
- mob_program["timer_trigger_delay"] = P.timer_trigger_delay / 10
- var/list/extra_settings = P.get_extra_settings_frontend()
- mob_program["extra_settings"] = extra_settings
- if(LAZYLEN(extra_settings))
- mob_program["has_extra_settings"] = TRUE
- else
- mob_program["has_extra_settings"] = FALSE
-
- if(scan_level >= 4)
- mob_program["activation_code"] = P.activation_code
- mob_program["deactivation_code"] = P.deactivation_code
- mob_program["kill_code"] = P.kill_code
- mob_program["trigger_code"] = P.trigger_code
- var/list/rules = list()
- var/rule_id = 1
- for(var/Z in P.rules)
- var/datum/nanite_rule/nanite_rule = Z
- var/list/rule = list()
- rule["display"] = nanite_rule.display()
- rule["program_id"] = id
- rule["id"] = rule_id
- rules += list(rule)
- rule_id++
- mob_program["rules"] = rules
- if(LAZYLEN(rules))
- mob_program["has_rules"] = TRUE
- id++
- mob_programs += list(mob_program)
- data["mob_programs"] = mob_programs
-
-#undef HARMONIC_REGEN_BOOST
diff --git a/code/datums/diseases/advance/symptoms/nanites.dm b/code/datums/diseases/advance/symptoms/nanites.dm
deleted file mode 100644
index 1ca11b28e27..00000000000
--- a/code/datums/diseases/advance/symptoms/nanites.dm
+++ /dev/null
@@ -1,71 +0,0 @@
-/datum/symptom/nano_boost
- name = "Nano-symbiosis"
- desc = "The virus reacts to nanites in the host's bloodstream by enhancing their replication cycle."
- stealth = 0
- resistance = 2
- stage_speed = 2
- transmittable = -1
- level = 7
- severity = 0
- symptom_delay_min = 1
- symptom_delay_max = 1
- var/reverse_boost = FALSE
- threshold_descs = list(
- "Transmission 5" = "Increases the virus' growth rate while nanites are present.",
- "Stage Speed 7" = "Increases the replication boost."
- )
-
-/datum/symptom/nano_boost/Start(datum/disease/advance/A)
- . = ..()
- if(!.)
- return
- if(A.totalTransmittable() >= 5) //reverse boost
- reverse_boost = TRUE
- if(A.totalStageSpeed() >= 7) //more nanites
- power = 2
-
-/datum/symptom/nano_boost/Activate(datum/disease/advance/A)
- . = ..()
- if(!.)
- return
- var/mob/living/carbon/M = A.affected_mob
- SEND_SIGNAL(M, COMSIG_NANITE_ADJUST_VOLUME, 0.5 * power)
- if(reverse_boost && SEND_SIGNAL(M, COMSIG_HAS_NANITES))
- if(prob(A.stage_prob))
- A.stage = min(A.stage + 1,A.max_stages)
-
-/datum/symptom/nano_destroy
- name = "Silicolysis"
- desc = "The virus reacts to nanites in the host's bloodstream by attacking and consuming them."
- stealth = 0
- resistance = 4
- stage_speed = -1
- transmittable = 1
- level = 7
- severity = 0
- symptom_delay_min = 1
- symptom_delay_max = 1
- var/reverse_boost = FALSE
- threshold_descs = list(
- "Stage Speed 5" = "Increases the virus' growth rate while nanites are present.",
- "Resistance 7" = "Severely increases the rate at which the nanites are destroyed."
- )
-
-/datum/symptom/nano_destroy/Start(datum/disease/advance/A)
- . = ..()
- if(!.)
- return
- if(A.totalStageSpeed() >= 5) //reverse boost
- reverse_boost = TRUE
- if(A.totalResistance() >= 7) //more nanites
- power = 3
-
-/datum/symptom/nano_destroy/Activate(datum/disease/advance/A)
- . = ..()
- if(!.)
- return
- var/mob/living/carbon/M = A.affected_mob
- SEND_SIGNAL(M, COMSIG_NANITE_ADJUST_VOLUME, -0.4 * power)
- if(reverse_boost && SEND_SIGNAL(M, COMSIG_HAS_NANITES))
- if(prob(A.stage_prob))
- A.stage = min(A.stage + 1,A.max_stages)
diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm
index cb6774ee6b6..b9e02d4a074 100644
--- a/code/datums/mood_events/generic_negative_events.dm
+++ b/code/datums/mood_events/generic_negative_events.dm
@@ -279,13 +279,6 @@
description = "THEY'RE CUTTING ME OPEN!!\n"
mood_change = -8
-/datum/mood_event/nanite_sadness
- description = "+++++++HAPPINESS SUPPRESSION+++++++\n"
- mood_change = -7
-
-/datum/mood_event/nanite_sadness/add_effects(message)
- description = "+++++++[message]+++++++\n"
-
/datum/mood_event/bald
description = "I need something to cover my head...\n"
mood_change = -3
diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm
index 5be193843ed..ef8db10eefa 100644
--- a/code/datums/mood_events/generic_positive_events.dm
+++ b/code/datums/mood_events/generic_positive_events.dm
@@ -186,13 +186,6 @@
description = "What a peculiar emblem. It makes me feel hopeful for my future.\n"
mood_change = 10
-/datum/mood_event/nanite_happiness
- description = "+++++++HAPPINESS ENHANCEMENT+++++++\n"
- mood_change = 7
-
-/datum/mood_event/nanite_happiness/add_effects(message)
- description = "+++++++[message]+++++++\n"
-
/datum/mood_event/area
description = "" //Fill this out in the area
mood_change = 0
diff --git a/code/game/area/space_station_13_areas.dm b/code/game/area/space_station_13_areas.dm
index 967bcb5255b..307ddf61fe0 100644
--- a/code/game/area/space_station_13_areas.dm
+++ b/code/game/area/space_station_13_areas.dm
@@ -1413,10 +1413,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "abandoned_sci"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
-/area/science/nanite
- name = "Nanite Lab"
- icon_state = "nanite"
-
// Telecommunications Satellite
/area/tcommsat
diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index 50b0770604b..5da00a215bd 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -18,7 +18,7 @@
/datum/atom_hud/data
/datum/atom_hud/data/human/medical
- hud_icons = list(STATUS_HUD, HEALTH_HUD, NANITE_HUD)
+ hud_icons = list(STATUS_HUD, HEALTH_HUD)
/datum/atom_hud/data/human/medical/basic
@@ -47,7 +47,7 @@
hud_icons = list(ID_HUD)
/datum/atom_hud/data/human/security/advanced
- hud_icons = list(ID_HUD, IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD, WANTED_HUD, NANITE_HUD)
+ hud_icons = list(ID_HUD, IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD, WANTED_HUD)
/datum/atom_hud/data/human/fan_hud
hud_icons = list(FAN_HUD)
@@ -55,10 +55,10 @@
/datum/atom_hud/data/diagnostic
/datum/atom_hud/data/diagnostic/basic
- hud_icons = list(DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_CIRCUIT_HUD, DIAG_TRACK_HUD, DIAG_AIRLOCK_HUD, DIAG_NANITE_FULL_HUD, DIAG_LAUNCHPAD_HUD)
+ hud_icons = list(DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_CIRCUIT_HUD, DIAG_TRACK_HUD, DIAG_AIRLOCK_HUD, DIAG_LAUNCHPAD_HUD)
/datum/atom_hud/data/diagnostic/advanced
- hud_icons = list(DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_CIRCUIT_HUD, DIAG_TRACK_HUD, DIAG_AIRLOCK_HUD, DIAG_NANITE_FULL_HUD, DIAG_LAUNCHPAD_HUD, DIAG_PATH_HUD)
+ hud_icons = list(DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_CIRCUIT_HUD, DIAG_TRACK_HUD, DIAG_AIRLOCK_HUD, DIAG_LAUNCHPAD_HUD, DIAG_PATH_HUD)
/datum/atom_hud/data/bot_path
hud_icons = list(DIAG_PATH_HUD)
@@ -300,14 +300,6 @@ Security HUDs! Basic mode shows only the job.
Diagnostic HUDs!
************************************************/
-/mob/living/proc/hud_set_nanite_indicator()
- var/image/holder = hud_list[NANITE_HUD]
- var/icon/I = icon(icon, icon_state, dir)
- holder.pixel_y = I.Height() - world.icon_size
- holder.icon_state = null
- if(HAS_TRAIT(src, TRAIT_NANITE_MONITORING))
- holder.icon_state = "nanite_ping"
-
//For Diag health and cell bars!
/proc/RoundDiagBar(value)
switch(value * 100)
diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm
index 4ad557c379f..8978260532e 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -189,9 +189,9 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
return data_by_z["[z]"]
var/list/results = list()
- for(var/tracked_mob in GLOB.suit_sensors_list | GLOB.nanite_sensors_list)
+ for(var/tracked_mob in GLOB.suit_sensors_list)
if(!tracked_mob)
- stack_trace("Null entry in suit sensors or nanite sensors list.")
+ stack_trace("Null entry in suit sensors list.")
continue
var/mob/living/tracked_living_mob = tracked_mob
@@ -208,31 +208,25 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
if(pos.z != z && (!is_station_level(pos.z) || !is_station_level(z)))
continue
- var/sensor_mode
+ var/mob/living/carbon/human/tracked_human = tracked_living_mob
- // Set sensor level based on whether we're in the nanites list or the suit sensor list.
- if(tracked_living_mob in GLOB.nanite_sensors_list)
- sensor_mode = SENSOR_COORDS
- else
- var/mob/living/carbon/human/tracked_human = tracked_living_mob
+ // Check their humanity.
+ if(!ishuman(tracked_human))
+ stack_trace("Non-human mob is in suit_sensors_list: [tracked_living_mob] ([tracked_living_mob.type])")
+ continue
- // Check their humanity.
- if(!ishuman(tracked_human))
- stack_trace("Non-human mob is in suit_sensors_list: [tracked_living_mob] ([tracked_living_mob.type])")
- continue
+ // Check they have a uniform
+ var/obj/item/clothing/under/uniform = tracked_human.w_uniform
+ if (!istype(uniform))
+ stack_trace("Human without a suit sensors compatible uniform is in suit_sensors_list: [tracked_human] ([tracked_human.type]) ([uniform?.type])")
+ continue
- // Check they have a uniform
- var/obj/item/clothing/under/uniform = tracked_human.w_uniform
- if (!istype(uniform))
- stack_trace("Human without a suit sensors compatible uniform is in suit_sensors_list: [tracked_human] ([tracked_human.type]) ([uniform?.type])")
- continue
+ // Check if their uniform is in a compatible mode.
+ if((uniform.has_sensor <= NO_SENSORS) || !uniform.sensor_mode)
+ stack_trace("Human without active suit sensors is in suit_sensors_list: [tracked_human] ([tracked_human.type]) ([uniform.type])")
+ continue
- // Check if their uniform is in a compatible mode.
- if((uniform.has_sensor <= NO_SENSORS) || !uniform.sensor_mode)
- stack_trace("Human without active suit sensors is in suit_sensors_list: [tracked_human] ([tracked_human.type]) ([uniform.type])")
- continue
-
- sensor_mode = uniform.sensor_mode
+ var/sensor_mode = uniform.sensor_mode
// The entry for this human
var/list/entry = list(
diff --git a/code/game/machinery/scan_gate.dm b/code/game/machinery/scan_gate.dm
index 9fd3f0d8519..c052f69fe77 100644
--- a/code/game/machinery/scan_gate.dm
+++ b/code/game/machinery/scan_gate.dm
@@ -1,6 +1,5 @@
#define SCANGATE_NONE "Off"
#define SCANGATE_MINDSHIELD "Mindshield"
-#define SCANGATE_NANITES "Nanites"
#define SCANGATE_DISEASE "Disease"
#define SCANGATE_GUNS "Guns"
#define SCANGATE_WANTED "Wanted"
@@ -36,8 +35,6 @@
var/scangate_mode = SCANGATE_NONE
///Is searching for a disease, what severity is enough to trigger the gate?
var/disease_threshold = DISEASE_SEVERITY_MINOR
- ///If scanning for a nanite strain, what cloud is it looking for?
- var/nanite_cloud = 1
///If scanning for a specific species, what species is it looking for?
var/detect_species = SCANGATE_HUMAN
///Flips all scan results for inverse scanning. Signals if scan returns false.
@@ -134,14 +131,6 @@
if(SCANGATE_MINDSHIELD)
if(HAS_TRAIT(M, TRAIT_MINDSHIELD))
beep = TRUE
- if(SCANGATE_NANITES)
- if(SEND_SIGNAL(M, COMSIG_HAS_NANITES))
- if(nanite_cloud)
- var/datum/component/nanites/nanites = M.GetComponent(/datum/component/nanites)
- if(nanites && nanites.cloud_id == nanite_cloud)
- beep = TRUE
- else
- beep = TRUE
if(SCANGATE_DISEASE)
if(iscarbon(M))
var/mob/living/carbon/C = M
@@ -227,7 +216,6 @@
data["locked"] = locked
data["scan_mode"] = scangate_mode
data["reverse"] = reverse
- data["nanite_cloud"] = nanite_cloud
data["disease_threshold"] = disease_threshold
data["target_species"] = detect_species
data["target_nutrition"] = detect_nutrition
@@ -254,10 +242,6 @@
var/new_threshold = params["new_threshold"]
disease_threshold = new_threshold
. = TRUE
- if("set_nanite_cloud")
- var/new_cloud = text2num(params["new_cloud"])
- nanite_cloud = clamp(round(new_cloud, 1), 1, 100)
- . = TRUE
//Some species are not scannable, like abductors (too unknown), androids (too artificial) or skeletons (too magic)
if("set_target_species")
var/new_species = params["new_species"]
@@ -279,7 +263,6 @@
#undef SCANGATE_NONE
#undef SCANGATE_MINDSHIELD
-#undef SCANGATE_NANITES
#undef SCANGATE_DISEASE
#undef SCANGATE_GUNS
#undef SCANGATE_WANTED
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 9e52d8279dc..9bf1f1ed282 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -489,11 +489,6 @@
/obj/item/circuitboard/computer/teleporter,
/obj/item/circuitboard/machine/destructive_analyzer,
/obj/item/circuitboard/computer/rdconsole,
- /obj/item/circuitboard/computer/nanite_chamber_control,
- /obj/item/circuitboard/computer/nanite_cloud_controller,
- /obj/item/circuitboard/machine/nanite_chamber,
- /obj/item/circuitboard/machine/nanite_programmer,
- /obj/item/circuitboard/machine/nanite_program_hub,
/obj/item/circuitboard/computer/scan_consolenew,
/obj/item/circuitboard/machine/dnascanner
)
diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm
index 6c01db3872d..b37d5c7d87c 100644
--- a/code/game/objects/items/circuitboards/computer_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm
@@ -364,16 +364,6 @@
greyscale_colors = CIRCUIT_COLOR_SCIENCE
build_path = /obj/machinery/computer/mecha
-/obj/item/circuitboard/computer/nanite_chamber_control
- name = "Nanite Chamber Control (Computer Board)"
- greyscale_colors = CIRCUIT_COLOR_SCIENCE
- build_path = /obj/machinery/computer/nanite_chamber_control
-
-/obj/item/circuitboard/computer/nanite_cloud_controller
- name = "Nanite Cloud Control (Computer Board)"
- greyscale_colors = CIRCUIT_COLOR_SCIENCE
- build_path = /obj/machinery/computer/nanite_cloud_controller
-
/obj/item/circuitboard/computer/rdconsole
name = "R&D Console (Computer Board)"
greyscale_colors = CIRCUIT_COLOR_SCIENCE
diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm
index 9a8c25187b3..a43f6bd92fe 100644
--- a/code/game/objects/items/circuitboards/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm
@@ -885,32 +885,6 @@
/obj/item/stock_parts/manipulator = 1)
needs_anchored = FALSE
-/obj/item/circuitboard/machine/nanite_chamber
- name = "Nanite Chamber (Machine Board)"
- greyscale_colors = CIRCUIT_COLOR_SCIENCE
- build_path = /obj/machinery/nanite_chamber
- req_components = list(
- /obj/item/stock_parts/scanning_module = 2,
- /obj/item/stock_parts/micro_laser = 2,
- /obj/item/stock_parts/manipulator = 1)
-
-/obj/item/circuitboard/machine/nanite_program_hub
- name = "Nanite Program Hub (Machine Board)"
- greyscale_colors = CIRCUIT_COLOR_SCIENCE
- build_path = /obj/machinery/nanite_program_hub
- req_components = list(
- /obj/item/stock_parts/matter_bin = 1,
- /obj/item/stock_parts/manipulator = 1)
-
-/obj/item/circuitboard/machine/nanite_programmer
- name = "Nanite Programmer (Machine Board)"
- greyscale_colors = CIRCUIT_COLOR_SCIENCE
- build_path = /obj/machinery/nanite_programmer
- req_components = list(
- /obj/item/stock_parts/manipulator = 2,
- /obj/item/stock_parts/micro_laser = 2,
- /obj/item/stock_parts/scanning_module = 1)
-
/obj/item/circuitboard/machine/processor/slime
name = "Slime Processor (Machine Board)"
greyscale_colors = CIRCUIT_COLOR_SCIENCE
@@ -921,27 +895,6 @@
greyscale_colors = CIRCUIT_COLOR_SCIENCE
build_path = /obj/machinery/rnd/production/protolathe/department/science
-/obj/item/circuitboard/machine/public_nanite_chamber
- name = "Public Nanite Chamber (Machine Board)"
- greyscale_colors = CIRCUIT_COLOR_SCIENCE
- build_path = /obj/machinery/public_nanite_chamber
- var/cloud_id = 1
- req_components = list(
- /obj/item/stock_parts/micro_laser = 2,
- /obj/item/stock_parts/manipulator = 1)
-
-/obj/item/circuitboard/machine/public_nanite_chamber/multitool_act(mob/living/user)
- . = ..()
- var/new_cloud = input("Set the public nanite chamber's Cloud ID (1-100).", "Cloud ID", cloud_id) as num|null
- if(!new_cloud || (loc != user))
- to_chat(user, span_warning("You must hold the circuitboard to change its Cloud ID!"))
- return
- cloud_id = clamp(round(new_cloud, 1), 1, 100)
-
-/obj/item/circuitboard/machine/public_nanite_chamber/examine(mob/user)
- . = ..()
- . += "Cloud ID is currently set to [cloud_id]."
-
/obj/item/circuitboard/machine/quantumpad
name = "Quantum Pad (Machine Board)"
greyscale_colors = CIRCUIT_COLOR_SCIENCE
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 5b76faea2f2..183022b1712 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -6,7 +6,6 @@ T-RAY
HEALTH ANALYZER
GAS ANALYZER
SLIME SCANNER
-NANITE SCANNER
GENE SCANNER
*/
@@ -412,7 +411,6 @@ GENE SCANNER
render_list += "Detected cybernetic modifications:\n"
render_list += "[cyberimp_detect]\n"
- SEND_SIGNAL(M, COMSIG_NANITE_SCAN, user, FALSE)
to_chat(user, jointext(render_list, ""), trailing_newline = FALSE) // we handled the last
so we don't need handholding
/proc/chemscan(mob/living/user, mob/living/M)
@@ -778,35 +776,6 @@ GENE SCANNER
\n[span_notice("Progress in core mutation: [T.applied] / [SLIME_EXTRACT_CROSSING_REQUIRED]")]"
to_chat(user, to_render + "\n========================")
-
-/obj/item/nanite_scanner
- name = "nanite scanner"
- icon = 'icons/obj/device.dmi'
- icon_state = "nanite_scanner"
- inhand_icon_state = "electronic"
- worn_icon_state = "electronic"
- lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
- desc = "A hand-held body scanner able to detect nanites and their programming."
- flags_1 = CONDUCT_1
- item_flags = NOBLUDGEON
- slot_flags = ITEM_SLOT_BELT
- throwforce = 3
- w_class = WEIGHT_CLASS_TINY
- throw_speed = 3
- throw_range = 7
- custom_materials = list(/datum/material/iron=200)
-
-/obj/item/nanite_scanner/attack(mob/living/M, mob/living/carbon/human/user)
- user.visible_message(span_notice("[user] analyzes [M]'s nanites."), \
- span_notice("You analyze [M]'s nanites."))
-
- add_fingerprint(user)
-
- var/response = SEND_SIGNAL(M, COMSIG_NANITE_SCAN, user, TRUE)
- if(!response)
- to_chat(user, span_info("No nanites detected in the subject."))
-
/obj/item/sequence_scanner
name = "genetic sequence scanner"
icon = 'icons/obj/device.dmi'
diff --git a/code/game/objects/items/implants/implant_deathrattle.dm b/code/game/objects/items/implants/implant_deathrattle.dm
index dd41812cb5c..a7afe701c2a 100644
--- a/code/game/objects/items/implants/implant_deathrattle.dm
+++ b/code/game/objects/items/implants/implant_deathrattle.dm
@@ -68,7 +68,7 @@
if(implant.imp_in == owner || !implant.imp_in)
continue
- // Deliberately the same message framing as nanite message + ghost deathrattle
+ // Deliberately the same message framing as ghost deathrattle
var/mob/living/recipient = implant.imp_in
to_chat(recipient, "You hear a strange, robotic voice in your head... \"[span_robot("[name] has died at [area].")]\"")
recipient.playsound_local(get_turf(recipient), sound, vol = 75, vary = FALSE, pressure_affected = FALSE, use_reverb = FALSE)
diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm
index 072dc87cbd1..53b65285c80 100644
--- a/code/game/objects/items/pinpointer.dm
+++ b/code/game/objects/items/pinpointer.dm
@@ -100,8 +100,6 @@
var/turf/here = get_turf(src)
var/turf/there = get_turf(H)
if(here && there && (there.z == here.z || (is_station_level(here.z) && is_station_level(there.z)))) // Device and target should be on the same level or different levels of the same station
- if (H in GLOB.nanite_sensors_list)
- return TRUE
if (istype(H.w_uniform, /obj/item/clothing/under))
var/obj/item/clothing/under/U = H.w_uniform
if(U.has_sensor && (U.sensor_mode >= SENSOR_COORDS || ignore_suit_sensor_level)) // Suit sensors must be on maximum or a contractor pinpointer
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index 1faabc352f4..3dd39d019a7 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -105,14 +105,6 @@
for(var/i in 1 to 7)
new /obj/item/disk/data(src)
-/obj/item/storage/box/disks_nanite
- name = "nanite program disks box"
- illustration = "disk_kit"
-
-/obj/item/storage/box/disks_nanite/PopulateContents()
- for(var/i in 1 to 7)
- new /obj/item/disk/nanite_program(src)
-
// Ordinary survival box
/obj/item/storage/box/survival
name = "survival box"
diff --git a/code/game/objects/structures/signs/signs_departments.dm b/code/game/objects/structures/signs/signs_departments.dm
index 0483fd5f579..222c2dc2733 100644
--- a/code/game/objects/structures/signs/signs_departments.dm
+++ b/code/game/objects/structures/signs/signs_departments.dm
@@ -77,13 +77,6 @@
icon_state = "xenobio"
is_editable = TRUE
-/obj/structure/sign/departments/nanites
- name = "\improper Nanite Lab sign"
- sign_change_name = "Department - Science: Nanites"
- desc = "A sign labelling an area where testing and development of nanites is performed."
- icon_state = "nanites"
- is_editable = TRUE
-
///////SERVICE
/obj/structure/sign/departments/botany
diff --git a/code/game/turfs/open/floor/plating/asteroid.dm b/code/game/turfs/open/floor/plating/asteroid.dm
index 10fc2bda648..6b9bc4ff1e1 100644
--- a/code/game/turfs/open/floor/plating/asteroid.dm
+++ b/code/game/turfs/open/floor/plating/asteroid.dm
@@ -214,3 +214,7 @@
/turf/open/floor/plating/asteroid/snow/atmosphere
initial_gas_mix = FROZEN_ATMOS
planetary_atmos = FALSE
+
+/turf/open/floor/plating/asteroid/snow/standard_air
+ initial_gas_mix = OPENTURF_DEFAULT_ATMOS
+ planetary_atmos = FALSE
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index f51dd30bbf3..01d33e4f330 100755
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -586,10 +586,6 @@ GLOBAL_LIST_EMPTY(station_turfs)
V.icon_state = "vomitpurp_[pick(1,4)]"
else if (toxvomit == VOMIT_TOXIC)
V.icon_state = "vomittox_[pick(1,4)]"
- else if (toxvomit == VOMIT_NANITE)
- V.name = "metallic slurry"
- V.desc = "A puddle of metallic slurry that looks vaguely like very fine sand. It almost seems like it's moving..."
- V.icon_state = "vomitnanite_[pick(1,4)]"
if (purge_ratio && iscarbon(M))
clear_reagents_to_vomit_pool(M, V, purge_ratio)
diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm
index ee1a3e97325..9bd7304a622 100644
--- a/code/modules/admin/admin_investigate.dm
+++ b/code/modules/admin/admin_investigate.dm
@@ -10,7 +10,7 @@
if(!holder)
return
- var/list/investigates = list(INVESTIGATE_RESEARCH, INVESTIGATE_EXONET, INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS, INVESTIGATE_RADIATION, INVESTIGATE_NANITES, INVESTIGATE_PRESENTS, INVESTIGATE_HYPERTORUS, INVESTIGATE_ACCESSCHANGES)
+ var/list/investigates = list(INVESTIGATE_RESEARCH, INVESTIGATE_EXONET, INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS, INVESTIGATE_RADIATION, INVESTIGATE_PRESENTS, INVESTIGATE_HYPERTORUS, INVESTIGATE_ACCESSCHANGES)
var/list/logs_present = list("notes, memos, watchlist")
var/list/logs_missing = list("---")
diff --git a/code/modules/antagonists/disease/disease_abilities.dm b/code/modules/antagonists/disease/disease_abilities.dm
index 527969b9b34..21459ce28ce 100644
--- a/code/modules/antagonists/disease/disease_abilities.dm
+++ b/code/modules/antagonists/disease/disease_abilities.dm
@@ -23,8 +23,6 @@ new /datum/disease_ability/symptom/powerful/narcolepsy,
new /datum/disease_ability/symptom/medium/fever,
new /datum/disease_ability/symptom/medium/chills,
new /datum/disease_ability/symptom/medium/headache,
-new /datum/disease_ability/symptom/medium/nano_boost,
-new /datum/disease_ability/symptom/medium/nano_destroy,
new /datum/disease_ability/symptom/medium/viraladaptation,
new /datum/disease_ability/symptom/medium/viralevolution,
new /datum/disease_ability/symptom/medium/disfiguration,
@@ -362,12 +360,6 @@ new /datum/disease_ability/symptom/powerful/youth
/datum/disease_ability/symptom/medium/headache
symptoms = list(/datum/symptom/headache)
-/datum/disease_ability/symptom/medium/nano_boost
- symptoms = list(/datum/symptom/nano_boost)
-
-/datum/disease_ability/symptom/medium/nano_destroy
- symptoms = list(/datum/symptom/nano_destroy)
-
/datum/disease_ability/symptom/medium/viraladaptation
symptoms = list(/datum/symptom/viraladaptation)
short_desc = "Cause your infection to become more resistant to detection and eradication."
diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm
index aed8644a728..52df098bfd1 100644
--- a/code/modules/antagonists/slaughter/slaughter.dm
+++ b/code/modules/antagonists/slaughter/slaughter.dm
@@ -282,7 +282,7 @@
if(new_stat == DEAD)
return
- // Someone we've eaten has spontaneously revived; maybe nanites, maybe a changeling
+ // Someone we've eaten has spontaneously revived; maybe regen coma, maybe a changeling
victim.forceMove(get_turf(src))
victim.exit_blood_effect()
victim.visible_message(span_warning("[victim] falls out of the air, covered in blood, with a confused look on their face."))
diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm
index 5fe2c1c8b04..ae9f0da5472 100644
--- a/code/modules/mob/living/carbon/alien/alien.dm
+++ b/code/modules/mob/living/carbon/alien/alien.dm
@@ -128,10 +128,6 @@ Des: Removes all infected images from the alien.
new_xeno.real_name = real_name
if(mind)
mind.transfer_to(new_xeno)
- var/datum/component/nanites/nanites = GetComponent(/datum/component/nanites)
- if(nanites)
- new_xeno.AddComponent(/datum/component/nanites, nanites.nanite_volume)
- SEND_SIGNAL(new_xeno, COMSIG_NANITE_SYNC, nanites)
qdel(src)
/mob/living/carbon/alien/can_hold_items(obj/item/I)
diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm
index 3bddf261130..e4e68a0e566 100644
--- a/code/modules/mob/living/carbon/carbon_defines.dm
+++ b/code/modules/mob/living/carbon/carbon_defines.dm
@@ -2,7 +2,7 @@
blood_volume = BLOOD_VOLUME_NORMAL
gender = MALE
pressure_resistance = 15
- hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,GLAND_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD)
+ hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,GLAND_HUD)
has_limbs = 1
held_items = list(null, null)
num_legs = 0 //Populated on init through list/bodyparts
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index f32122e7336..f96ad786f29 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -5,7 +5,7 @@
icon = 'icons/mob/human.dmi'
icon_state = "human_basic"
appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE
- hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD, NANITE_HUD, DIAG_NANITE_FULL_HUD,ANTAG_HUD,GLAND_HUD,SENTIENT_DISEASE_HUD,FAN_HUD)
+ hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,ANTAG_HUD,GLAND_HUD,SENTIENT_DISEASE_HUD,FAN_HUD)
hud_type = /datum/hud/human
pressure_resistance = 25
can_buckle = TRUE
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index b02137ca51d..2455a6c3dc4 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -240,14 +240,6 @@
spare.domutcheck()
spare.Move(get_step(H.loc, pick(NORTH,SOUTH,EAST,WEST)))
-
- var/datum/component/nanites/owner_nanites = H.GetComponent(/datum/component/nanites)
- if(owner_nanites)
- //copying over nanite programs/cloud sync with 50% saturation in host and spare
- owner_nanites.nanite_volume *= 0.5
- spare.AddComponent(/datum/component/nanites, owner_nanites.nanite_volume)
- SEND_SIGNAL(spare, COMSIG_NANITE_SYNC, owner_nanites, TRUE, TRUE) //The trues are to copy activation as well
-
H.blood_volume *= 0.45
H.notransform = 0
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index baee489db08..68a60f2e013 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -2,7 +2,7 @@
see_invisible = SEE_INVISIBLE_LIVING
sight = 0
see_in_dark = 2
- hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD)
+ hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD)
pressure_resistance = 10
hud_type = /datum/hud/living
diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm
index dfc87f87121..46f017044eb 100644
--- a/code/modules/mob/living/simple_animal/slime/powers.dm
+++ b/code/modules/mob/living/simple_animal/slime/powers.dm
@@ -175,7 +175,6 @@
var/list/babies = list()
var/new_nutrition = round(nutrition * 0.9)
var/new_powerlevel = round(powerlevel / 4)
- var/datum/component/nanites/original_nanites = GetComponent(/datum/component/nanites)
var/turf/drop_loc = drop_location()
for(var/i=1,i<=4,i++)
@@ -198,10 +197,6 @@
M.mutation_chance = clamp(mutation_chance+(rand(5,-5)),0,100)
SSblackbox.record_feedback("tally", "slime_babies_born", 1, M.colour)
- if(original_nanites)
- M.AddComponent(/datum/component/nanites, original_nanites.nanite_volume*0.25)
- SEND_SIGNAL(M, COMSIG_NANITE_SYNC, original_nanites, TRUE, TRUE) //The trues are to copy activation as well
-
var/mob/living/simple_animal/slime/new_slime = pick(babies)
new_slime.set_combat_mode(TRUE)
if(src.mind)
diff --git a/code/modules/modular_computers/file_system/programs/radar.dm b/code/modules/modular_computers/file_system/programs/radar.dm
index f7abfc7a63f..4b14a611527 100644
--- a/code/modules/modular_computers/file_system/programs/radar.dm
+++ b/code/modules/modular_computers/file_system/programs/radar.dm
@@ -243,8 +243,6 @@
if(!humanoid || !istype(humanoid))
return FALSE
if(..())
- if (humanoid in GLOB.nanite_sensors_list)
- return TRUE
if (istype(humanoid.w_uniform, /obj/item/clothing/under))
var/obj/item/clothing/under/uniform = humanoid.w_uniform
if(uniform.has_sensor && uniform.sensor_mode >= SENSOR_COORDS) // Suit sensors must be on maximum
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index ac6172b62c2..effbeb88c47 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -27,7 +27,7 @@ other types of metals and chemistry for reagents).
var/desc = "Desc"
/// The ID of the design. Used for quick reference. Alphanumeric, lower-case, no symbols
var/id = DESIGN_ID_IGNORE
- /// Bitflags indicating what machines this design is compatable with. ([IMPRINTER]|[AWAY_IMPRINTER]|[PROTOLATHE]|[AWAY_LATHE]|[AUTOLATHE]|[MECHFAB]|[BIOGENERATOR]|[LIMBGROWER]|[SMELTER]|[NANITE_COMPILER])
+ /// Bitflags indicating what machines this design is compatable with. ([IMPRINTER]|[AWAY_IMPRINTER]|[PROTOLATHE]|[AWAY_LATHE]|[AUTOLATHE]|[MECHFAB]|[BIOGENERATOR]|[LIMBGROWER]|[SMELTER])
var/build_type = null
/// List of materials required to create one unit of the product. Format is (typepath or caregory) -> amount
var/list/materials = list()
diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm
index 94d8224da8e..3d1d0b998fa 100644
--- a/code/modules/research/designs/comp_board_designs.dm
+++ b/code/modules/research/designs/comp_board_designs.dm
@@ -275,22 +275,6 @@
category = list("Computer Boards")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
-/datum/design/board/nanite_chamber_control
- name = "Computer Design (Nanite Chamber Control)"
- desc = "Allows for the construction of circuit boards used to build a new nanite chamber control console."
- id = "nanite_chamber_control"
- build_path = /obj/item/circuitboard/computer/nanite_chamber_control
- category = list("Computer Boards")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/nanite_cloud_control
- name = "Computer Design (Nanite Cloud Control)"
- desc = "Allows for the construction of circuit boards used to build a new nanite cloud control console."
- id = "nanite_cloud_control"
- build_path = /obj/item/circuitboard/computer/nanite_cloud_controller
- category = list("Computer Boards")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
/datum/design/board/advanced_camera
name = "Computer Design (Advanced Camera Console)"
desc = "Allows for the construction of circuit boards used to build advanced camera consoles."
diff --git a/code/modules/research/designs/electronics_designs.dm b/code/modules/research/designs/electronics_designs.dm
index 7706a3053d6..7cb94cfda0e 100644
--- a/code/modules/research/designs/electronics_designs.dm
+++ b/code/modules/research/designs/electronics_designs.dm
@@ -33,40 +33,6 @@
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-///////////////////////////////////
-//////////Nanite Devices///////////
-///////////////////////////////////
-/datum/design/nanite_remote
- name = "Nanite Remote"
- desc = "Allows for the construction of a nanite remote."
- id = "nanite_remote"
- build_type = PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/glass = 500, /datum/material/iron = 500)
- build_path = /obj/item/nanite_remote
- category = list("Electronics")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/nanite_comm_remote
- name = "Nanite Communication Remote"
- desc = "Allows for the construction of a nanite communication remote."
- id = "nanite_comm_remote"
- build_type = PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/glass = 500, /datum/material/iron = 500)
- build_path = /obj/item/nanite_remote/comm
- category = list("Electronics")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/nanite_scanner
- name = "Nanite Scanner"
- desc = "Allows for the construction of a nanite scanner."
- id = "nanite_scanner"
- build_type = PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/glass = 500, /datum/material/iron = 500)
- build_path = /obj/item/nanite_scanner
- category = list("Electronics")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-
////////////////////////////////////////
//////////Disk Construction Disks///////
////////////////////////////////////////
@@ -99,13 +65,3 @@
build_path = /obj/item/disk/tech_disk
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/nanite_disk
- name = "Nanite Program Disk"
- desc = "Stores nanite programs."
- id = "nanite_disk"
- build_type = PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/iron = 300, /datum/material/glass = 100)
- build_path = /obj/item/disk/nanite_program
- category = list("Electronics")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index a1a81a566ea..742809a2a43 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -298,38 +298,6 @@
category = list("Research Machinery")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-/datum/design/board/nanite_chamber
- name = "Machine Design (Nanite Chamber Board)"
- desc = "The circuit board for a Nanite Chamber."
- id = "nanite_chamber"
- build_path = /obj/item/circuitboard/machine/nanite_chamber
- category = list("Research Machinery")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/public_nanite_chamber
- name = "Machine Design (Public Nanite Chamber Board)"
- desc = "The circuit board for a Public Nanite Chamber."
- id = "public_nanite_chamber"
- build_path = /obj/item/circuitboard/machine/public_nanite_chamber
- category = list("Research Machinery")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/nanite_programmer
- name = "Machine Design (Nanite Programmer Board)"
- desc = "The circuit board for a Nanite Programmer."
- id = "nanite_programmer"
- build_path = /obj/item/circuitboard/machine/nanite_programmer
- category = list("Research Machinery")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/nanite_program_hub
- name = "Machine Design (Nanite Program Hub Board)"
- desc = "The circuit board for a Nanite Program Hub."
- id = "nanite_program_hub"
- build_path = /obj/item/circuitboard/machine/nanite_program_hub
- category = list("Research Machinery")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
/datum/design/board/dnascanner
name = "Machine Design (DNA Scanner)"
desc = "The circuit board for a DNA Scanner."
diff --git a/code/modules/research/designs/nanite_designs.dm b/code/modules/research/designs/nanite_designs.dm
deleted file mode 100644
index d1e61c86b09..00000000000
--- a/code/modules/research/designs/nanite_designs.dm
+++ /dev/null
@@ -1,573 +0,0 @@
-/datum/design/nanites
- name = "None"
- desc = "Warn a coder if you see this."
- id = "default_nanites"
- build_type = NANITE_COMPILER
- construction_time = 50
- category = list()
- research_icon = 'icons/obj/device.dmi'
- research_icon_state = "nanite_program"
- var/program_type = /datum/nanite_program
-
-////////////////////UTILITY NANITES//////////////////////////////////////
-
-/datum/design/nanites/metabolic_synthesis
- name = "Metabolic Synthesis"
- desc = "The nanites use the metabolic cycle of the host to speed up their replication rate, using their extra nutrition as fuel."
- id = "metabolic_nanites"
- program_type = /datum/nanite_program/metabolic_synthesis
- category = list("Utility Nanites")
-
-/datum/design/nanites/viral
- name = "Viral Replica"
- desc = "The nanites constantly send encrypted signals attempting to forcefully copy their own programming into other nanite clusters."
- id = "viral_nanites"
- program_type = /datum/nanite_program/viral
- category = list("Utility Nanites")
-
-/datum/design/nanites/monitoring
- name = "Monitoring"
- desc = "The nanites monitor the host's vitals and location, sending them to the suit sensor network."
- id = "monitoring_nanites"
- program_type = /datum/nanite_program/monitoring
- category = list("Utility Nanites")
-
-/datum/design/nanites/self_scan
- name = "Host Scan"
- desc = "The nanites display a detailed readout of a body scan to the host."
- id = "selfscan_nanites"
- program_type = /datum/nanite_program/self_scan
- category = list("Utility Nanites")
-
-/datum/design/nanites/dermal_button
- name = "Dermal Button"
- desc = "Displays a button on the host's skin, which can be used to send a signal to the nanites."
- id = "dermal_button_nanites"
- program_type = /datum/nanite_program/dermal_button
- category = list("Utility Nanites")
-
-/datum/design/nanites/stealth
- name = "Stealth"
- desc = "The nanites hide their activity and programming from superficial scans."
- id = "stealth_nanites"
- program_type = /datum/nanite_program/stealth
- category = list("Utility Nanites")
-
-/datum/design/nanites/nanite_debugging
- name = "Nanite Debugging"
- desc = "Enables various high-cost diagnostics in the nanites, making them able to communicate their program list to portable scanners. \
- Doing so uses some power, slightly decreasing their replication speed."
- id = "debugging_nanites"
- program_type = /datum/nanite_program/nanite_debugging
- category = list("Utility Nanites")
-
-/datum/design/nanites/access
- name = "Subdermal ID"
- desc = "The nanites store the host's ID access rights in a subdermal magnetic strip. Updates when triggered, copying the host's current access."
- id = "access_nanites"
- program_type = /datum/nanite_program/access
- category = list("Utility Nanites")
-
-/datum/design/nanites/relay
- name = "Relay"
- desc = "The nanites receive and relay long-range nanite signals."
- id = "relay_nanites"
- program_type = /datum/nanite_program/relay
- category = list("Utility Nanites")
-
-/datum/design/nanites/repeater
- name = "Signal Repeater"
- desc = "When triggered, sends another signal to the nanites, optionally with a delay."
- id = "repeater_nanites"
- program_type = /datum/nanite_program/sensor/repeat
- category = list("Utility Nanites")
-
-/datum/design/nanites/relay_repeater
- name = "Relay Signal Repeater"
- desc = "When triggered, sends another signal to a relay channel, optionally with a delay."
- id = "relay_repeater_nanites"
- program_type = /datum/nanite_program/sensor/relay_repeat
- category = list("Utility Nanites")
-
-/datum/design/nanites/emp
- name = "Electromagnetic Resonance"
- desc = "The nanites cause an electromagnetic pulse around the host when triggered. Will corrupt other nanite programs!"
- id = "emp_nanites"
- program_type = /datum/nanite_program/emp
- category = list("Utility Nanites")
-
-/datum/design/nanites/spreading
- name = "Infective Exo-Locomotion"
- desc = "The nanites gain the ability to survive for brief periods outside of the human body, as well as the ability to start new colonies without an integration process; \
- resulting in an extremely infective strain of nanites."
- id = "spreading_nanites"
- program_type = /datum/nanite_program/spreading
- category = list("Utility Nanites")
-
-/datum/design/nanites/nanite_sting
- name = "Nanite Sting"
- desc = "When triggered, projects a nearly invisible spike of nanites that attempts to infect a nearby non-host with a copy of the host's nanites cluster."
- id = "nanite_sting_nanites"
- program_type = /datum/nanite_program/nanite_sting
- category = list("Utility Nanites")
-
-/datum/design/nanites/mitosis
- name = "Mitosis"
- desc = "The nanites gain the ability to self-replicate, using bluespace to power the process, instead of drawing from a template. This rapidly speeds up the replication rate,\
- but it causes occasional software errors due to faulty copies."
- id = "mitosis_nanites"
- program_type = /datum/nanite_program/mitosis
- category = list("Utility Nanites")
-
-////////////////////MEDICAL NANITES//////////////////////////////////////
-/datum/design/nanites/regenerative
- name = "Accelerated Regeneration"
- desc = "The nanites boost the host's natural regeneration, increasing their healing speed."
- id = "regenerative_nanites"
- program_type = /datum/nanite_program/regenerative
- category = list("Medical Nanites")
-
-/datum/design/nanites/regenerative_advanced
- name = "Bio-Reconstruction"
- desc = "The nanites manually repair and replace organic cells, acting much faster than normal regeneration. \
- However, this program cannot detect the difference between harmed and unharmed, causing it to consume nanites even if it has no effect."
- id = "regenerative_plus_nanites"
- program_type = /datum/nanite_program/regenerative_advanced
- category = list("Medical Nanites")
-
-/datum/design/nanites/temperature
- name = "Temperature Adjustment"
- desc = "The nanites adjust the host's internal temperature to an ideal level."
- id = "temperature_nanites"
- program_type = /datum/nanite_program/temperature
- category = list("Medical Nanites")
-
-/datum/design/nanites/purging
- name = "Blood Purification"
- desc = "The nanites purge toxins and chemicals from the host's bloodstream."
- id = "purging_nanites"
- program_type = /datum/nanite_program/purging
- category = list("Medical Nanites")
-
-/datum/design/nanites/purging_advanced
- name = "Selective Blood Purification"
- desc = "The nanites purge toxins and dangerous chemicals from the host's bloodstream, while ignoring beneficial chemicals. \
- The added processing power required to analyze the chemicals severely increases the nanite consumption rate."
- id = "purging_plus_nanites"
- program_type = /datum/nanite_program/purging_advanced
- category = list("Medical Nanites")
-
-/datum/design/nanites/brain_heal
- name = "Neural Regeneration"
- desc = "The nanites fix neural connections in the host's brain, reversing brain damage and minor traumas."
- id = "brainheal_nanites"
- program_type = /datum/nanite_program/brain_heal
- category = list("Medical Nanites")
-
-/datum/design/nanites/brain_heal_advanced
- name = "Neural Reimaging"
- desc = "The nanites are able to backup and restore the host's neural connections, potentially replacing entire chunks of missing or damaged brain matter."
- id = "brainheal_plus_nanites"
- program_type = /datum/nanite_program/brain_heal_advanced
- category = list("Medical Nanites")
-
-/datum/design/nanites/blood_restoring
- name = "Blood Regeneration"
- desc = "The nanites stimulate and boost blood cell production in the host."
- id = "bloodheal_nanites"
- program_type = /datum/nanite_program/blood_restoring
- category = list("Medical Nanites")
-
-/datum/design/nanites/repairing
- name = "Mechanical Repair"
- desc = "The nanites fix damage in the host's mechanical limbs."
- id = "repairing_nanites"
- program_type = /datum/nanite_program/repairing
- category = list("Medical Nanites")
-
-/datum/design/nanites/defib
- name = "Defibrillation"
- desc = "The nanites, when triggered, send a defibrillating shock to the host's heart."
- id = "defib_nanites"
- program_type = /datum/nanite_program/defib
- category = list("Medical Nanites")
-
-
-////////////////////AUGMENTATION NANITES//////////////////////////////////////
-
-/datum/design/nanites/nervous
- name = "Nerve Support"
- desc = "The nanites act as a secondary nervous system, reducing the amount of time the host is stunned."
- id = "nervous_nanites"
- program_type = /datum/nanite_program/nervous
- category = list("Augmentation Nanites")
-
-/datum/design/nanites/hardening
- name = "Dermal Hardening"
- desc = "The nanites form a mesh under the host's skin, protecting them from melee and bullet impacts."
- id = "hardening_nanites"
- program_type = /datum/nanite_program/hardening
- category = list("Augmentation Nanites")
-
-/datum/design/nanites/refractive
- name = "Dermal Refractive Surface"
- desc = "The nanites form a membrane above the host's skin, reducing the effect of laser and energy impacts."
- id = "refractive_nanites"
- program_type = /datum/nanite_program/refractive
- category = list("Augmentation Nanites")
-
-/datum/design/nanites/coagulating
- name = "Vein Repressurization"
- desc = "The nanites re-route circulating blood away from open wounds, dramatically reducing bleeding rate."
- id = "coagulating_nanites"
- program_type = /datum/nanite_program/coagulating
- category = list("Augmentation Nanites")
-
-/datum/design/nanites/conductive
- name = "Electric Conduction"
- desc = "The nanites act as a grounding rod for electric shocks, protecting the host. Shocks can still damage the nanites themselves."
- id = "conductive_nanites"
- program_type = /datum/nanite_program/conductive
- category = list("Augmentation Nanites")
-
-/datum/design/nanites/mindshield
- name = "Mental Barrier"
- desc = "The nanites form a protective membrane around the host's brain, shielding them from abnormal influences while they're active."
- id = "mindshield_nanites"
- program_type = /datum/nanite_program/mindshield
- category = list("Augmentation Nanites")
-
-////////////////////DEFECTIVE NANITES//////////////////////////////////////
-
-/datum/design/nanites/glitch
- name = "Glitch"
- desc = "A heavy software corruption that causes nanites to gradually break down."
- id = "glitch_nanites"
- program_type = /datum/nanite_program/glitch
- category = list("Defective Nanites")
-
-/datum/design/nanites/necrotic
- name = "Necrosis"
- desc = "The nanites attack internal tissues indiscriminately, causing widespread damage."
- id = "necrotic_nanites"
- program_type = /datum/nanite_program/necrotic
- category = list("Defective Nanites")
-
-/datum/design/nanites/toxic
- name = "Toxin Buildup"
- desc = "The nanites cause a slow but constant toxin buildup inside the host."
- id = "toxic_nanites"
- program_type = /datum/nanite_program/toxic
- category = list("Defective Nanites")
-
-/datum/design/nanites/suffocating
- name = "Hypoxemia"
- desc = "The nanites prevent the host's blood from absorbing oxygen efficiently."
- id = "suffocating_nanites"
- program_type = /datum/nanite_program/suffocating
- category = list("Defective Nanites")
-
-/datum/design/nanites/brain_misfire
- name = "Brain Misfire"
- desc = "The nanites interfere with neural pathways, causing minor psychological disturbances."
- id = "brainmisfire_nanites"
- program_type = /datum/nanite_program/brain_misfire
- category = list("Defective Nanites")
-
-/datum/design/nanites/skin_decay
- name = "Dermalysis"
- desc = "The nanites attack skin cells, causing irritation, rashes, and minor damage."
- id = "skindecay_nanites"
- program_type = /datum/nanite_program/skin_decay
- category = list("Defective Nanites")
-
-/datum/design/nanites/nerve_decay
- name = "Nerve Decay"
- desc = "The nanites attack the host's nerves, causing lack of coordination and short bursts of paralysis."
- id = "nervedecay_nanites"
- program_type = /datum/nanite_program/nerve_decay
- category = list("Defective Nanites")
-
-/datum/design/nanites/brain_decay
- name = "Brain-Eating Nanites"
- desc = "Damages brain cells, gradually decreasing the host's cognitive functions."
- id = "braindecay_nanites"
- program_type = /datum/nanite_program/brain_decay
- category = list("Defective Nanites")
-
-////////////////////WEAPONIZED NANITES/////////////////////////////////////
-
-/datum/design/nanites/flesh_eating
- name = "Cellular Breakdown"
- desc = "The nanites destroy cellular structures in the host's body, causing brute damage."
- id = "flesheating_nanites"
- program_type = /datum/nanite_program/flesh_eating
- category = list("Weaponized Nanites")
-
-/datum/design/nanites/poison
- name = "Poisoning"
- desc = "The nanites deliver poisonous chemicals to the host's internal organs, causing toxin damage and vomiting."
- id = "poison_nanites"
- program_type = /datum/nanite_program/poison
- category = list("Weaponized Nanites")
-
-/datum/design/nanites/memory_leak
- name = "Memory Leak"
- desc = "This program invades the memory space used by other programs, causing frequent corruptions and errors."
- id = "memleak_nanites"
- program_type = /datum/nanite_program/memory_leak
- category = list("Weaponized Nanites")
-
-/datum/design/nanites/aggressive_replication
- name = "Aggressive Replication"
- desc = "Nanites will consume organic matter to improve their replication rate, damaging the host."
- id = "aggressive_nanites"
- program_type = /datum/nanite_program/aggressive_replication
- category = list("Weaponized Nanites")
-
-/datum/design/nanites/meltdown
- name = "Meltdown"
- desc = "Causes an internal meltdown inside the nanites, causing internal burns inside the host as well as rapidly destroying the nanite population.\
- Sets the nanites' safety threshold to 0 when activated."
- id = "meltdown_nanites"
- program_type = /datum/nanite_program/meltdown
- category = list("Weaponized Nanites")
-
-/datum/design/nanites/cryo
- name = "Cryogenic Treatment"
- desc = "The nanites rapidly skin heat through the host's skin, lowering their temperature."
- id = "cryo_nanites"
- program_type = /datum/nanite_program/cryo
- category = list("Weaponized Nanites")
-
-/datum/design/nanites/pyro
- name = "Sub-Dermal Combustion"
- desc = "The nanites cause buildup of flammable fluids under the host's skin, then ignites them."
- id = "pyro_nanites"
- program_type = /datum/nanite_program/pyro
- category = list("Weaponized Nanites")
-
-/datum/design/nanites/heart_stop
- name = "Heart-Stopper"
- desc = "Stops the host's heart when triggered; restarts it if triggered again."
- id = "heartstop_nanites"
- program_type = /datum/nanite_program/heart_stop
- category = list("Weaponized Nanites")
-
-/datum/design/nanites/explosive
- name = "Chain Detonation"
- desc = "Blows up all the nanites inside the host in a chain reaction when triggered."
- id = "explosive_nanites"
- program_type = /datum/nanite_program/explosive
- category = list("Weaponized Nanites")
-
-/datum/design/nanites/mind_control
- name = "Mind Control"
- desc = "The nanites imprint an absolute directive onto the host's brain while they're active."
- id = "mindcontrol_nanites"
- program_type = /datum/nanite_program/comm/mind_control
- category = list("Weaponized Nanites")
-
-////////////////////SUPPRESSION NANITES//////////////////////////////////////
-
-/datum/design/nanites/shock
- name = "Electric Shock"
- desc = "The nanites shock the host when triggered. Destroys a large amount of nanites!"
- id = "shock_nanites"
- program_type = /datum/nanite_program/shocking
- category = list("Suppression Nanites")
-
-/datum/design/nanites/stun
- name = "Neural Shock"
- desc = "The nanites pulse the host's nerves when triggered, inapacitating them for a short period."
- id = "stun_nanites"
- program_type = /datum/nanite_program/stun
- category = list("Suppression Nanites")
-
-/datum/design/nanites/sleepy
- name = "Sleep Induction"
- desc = "The nanites cause rapid narcolepsy when triggered."
- id = "sleep_nanites"
- program_type = /datum/nanite_program/sleepy
- category = list("Suppression Nanites")
-
-/datum/design/nanites/paralyzing
- name = "Paralysis"
- desc = "The nanites actively suppress nervous pulses, effectively paralyzing the host."
- id = "paralyzing_nanites"
- program_type = /datum/nanite_program/paralyzing
- category = list("Suppression Nanites")
-
-/datum/design/nanites/fake_death
- name = "Death Simulation"
- desc = "The nanites induce a death-like coma into the host, able to fool most medical scans."
- id = "fakedeath_nanites"
- program_type = /datum/nanite_program/fake_death
- category = list("Suppression Nanites")
-
-/datum/design/nanites/pacifying
- name = "Pacification"
- desc = "The nanites suppress the aggression center of the brain, preventing the host from causing direct harm to others."
- id = "pacifying_nanites"
- program_type = /datum/nanite_program/pacifying
- category = list("Suppression Nanites")
-
-/datum/design/nanites/blinding
- name = "Blindness"
- desc = "The nanites suppress the host's ocular nerves, blinding them while they're active."
- id = "blinding_nanites"
- program_type = /datum/nanite_program/blinding
- category = list("Suppression Nanites")
-
-/datum/design/nanites/mute
- name = "Mute"
- desc = "The nanites suppress the host's speech, making them mute while they're active."
- id = "mute_nanites"
- program_type = /datum/nanite_program/mute
- category = list("Suppression Nanites")
-
-/datum/design/nanites/voice
- name = "Skull Echo"
- desc = "The nanites echo a synthesized message inside the host's skull."
- id = "voice_nanites"
- program_type = /datum/nanite_program/comm/voice
- category = list("Suppression Nanites")
-
-/datum/design/nanites/speech
- name = "Forced Speech"
- desc = "The nanites force the host to say a pre-programmed sentence when triggered."
- id = "speech_nanites"
- program_type = /datum/nanite_program/comm/speech
- category = list("Suppression Nanites")
-
-/datum/design/nanites/hallucination
- name = "Hallucination"
- desc = "The nanites make the host see and hear things that aren't real."
- id = "hallucination_nanites"
- program_type = /datum/nanite_program/comm/hallucination
- category = list("Suppression Nanites")
-
-/datum/design/nanites/good_mood
- name = "Happiness Enhancer"
- desc = "The nanites synthesize serotonin inside the host's brain, creating an artificial sense of happiness."
- id = "good_mood_nanites"
- program_type = /datum/nanite_program/good_mood
- category = list("Suppression Nanites")
-
-/datum/design/nanites/bad_mood
- name = "Happiness Suppressor"
- desc = "The nanites suppress the production of serotonin inside the host's brain, creating an artificial state of depression."
- id = "bad_mood_nanites"
- program_type = /datum/nanite_program/bad_mood
- category = list("Suppression Nanites")
-
-////////////////////SENSOR NANITES//////////////////////////////////////
-
-/datum/design/nanites/sensor_health
- name = "Health Sensor"
- desc = "The nanites receive a signal when the host's health is above/below a certain percentage."
- id = "sensor_health_nanites"
- program_type = /datum/nanite_program/sensor/health
- category = list("Sensor Nanites")
-
-/datum/design/nanites/sensor_damage
- name = "Damage Sensor"
- desc = "The nanites receive a signal when a host's specific damage type is above/below a target value."
- id = "sensor_damage_nanites"
- program_type = /datum/nanite_program/sensor/damage
- category = list("Sensor Nanites")
-
-/datum/design/nanites/sensor_crit
- name = "Critical Health Sensor"
- desc = "The nanites receive a signal when the host first reaches critical health."
- id = "sensor_crit_nanites"
- program_type = /datum/nanite_program/sensor/crit
- category = list("Sensor Nanites")
-
-/datum/design/nanites/sensor_death
- name = "Death Sensor"
- desc = "The nanites receive a signal when they detect the host is dead."
- id = "sensor_death_nanites"
- program_type = /datum/nanite_program/sensor/death
- category = list("Sensor Nanites")
-
-/datum/design/nanites/sensor_voice
- name = "Voice Sensor"
- desc = "Sends a signal when the nanites hear a determined word or sentence."
- id = "sensor_voice_nanites"
- program_type = /datum/nanite_program/sensor/voice
- category = list("Sensor Nanites")
-
-/datum/design/nanites/sensor_nanite_volume
- name = "Nanite Volume Sensor"
- desc = "The nanites receive a signal when the nanite supply is above/below a certain percentage."
- id = "sensor_nanite_volume"
- program_type = /datum/nanite_program/sensor/nanite_volume
- category = list("Sensor Nanites")
-
-/datum/design/nanites/sensor_species
- name = "Species Sensor"
- desc = "When triggered, the nanites scan the host to determine their species and output a signal depending on the conditions set in the settings."
- id = "sensor_species_nanites"
- program_type = /datum/nanite_program/sensor/species
- category = list("Sensor Nanites")
-
-////////////////////NANITE PROTOCOLS//////////////////////////////////////
-//Note about the category name: The UI cuts the last 8 characters from the category name to remove the " Nanites" in the other categories
-//Because of this, Protocols was getting cut down to "P", so i had to add some padding
-/datum/design/nanites/kickstart
- name = "Kickstart Protocol"
- desc = "Replication Protocol: the nanites focus on early growth, heavily boosting replication rate for a few minutes after the initial implantation."
- id = "kickstart_nanites"
- program_type = /datum/nanite_program/protocol/kickstart
- category = list("Protocols_Nanites")
-
-/datum/design/nanites/factory
- name = "Factory Protocol"
- desc = "Replication Protocol: the nanites build a factory matrix within the host, gradually increasing replication speed over time. The factory decays if the protocol is not active."
- id = "factory_nanites"
- program_type = /datum/nanite_program/protocol/factory
- category = list("Protocols_Nanites")
-
-/datum/design/nanites/pyramid
- name = "Pyramid Protocol"
- desc = "Replication Protocol: the nanites implement an alternate cooperative replication protocol that is more efficient as long as the saturation level is above 80%."
- id = "pyramid_nanites"
- program_type = /datum/nanite_program/protocol/pyramid
- category = list("Protocols_Nanites")
-
-/datum/design/nanites/offline
- name = "Eclipse Protocol"
- desc = "Replication Protocol: while the host is asleep or otherwise unconcious, the nanites exploit the reduced interference to replicate more quickly."
- id = "offline_nanites"
- program_type = /datum/nanite_program/protocol/offline
- category = list("Protocols_Nanites")
-
-/datum/design/nanites/hive
- name = "Hive Protocol"
- desc = "Storage Protocol: the nanites use a more efficient grid arrangment for volume storage, increasing maximum volume in a host."
- id = "hive_nanites"
- program_type = /datum/nanite_program/protocol/hive
- category = list("Protocols_Nanites")
-
-/datum/design/nanites/zip
- name = "Zip Protocol"
- desc = "Storage Protocol: the nanites are disassembled and compacted when unused, greatly increasing the maximum volume while in a host. However, the process slows down the replication rate slightly."
- id = "zip_nanites"
- program_type = /datum/nanite_program/protocol/zip
- category = list("Protocols_Nanites")
-
-/datum/design/nanites/free_range
- name = "Free-range Protocol"
- desc = "Storage Protocol: the nanites discard their default storage protocols in favour of a cheaper and more organic approach. Reduces maximum volume, but increases the replication rate."
- id = "free_range_nanites"
- program_type = /datum/nanite_program/protocol/free_range
- category = list("Protocols_Nanites")
-
-/datum/design/nanites/unsafe_storage
- name = "S.L.O. Protocol"
- desc = "Storage Protocol: 'S.L.O.P.', or Storage Level Override Protocol, completely disables the safety measures normally present in nanites,\
- allowing them to reach much higher saturation levels, but at the risk of causing internal damage to the host."
- id = "unsafe_storage_nanites"
- program_type = /datum/nanite_program/protocol/unsafe_storage
- category = list("Protocols_Nanites")
diff --git a/code/modules/research/nanites/extra_settings/_extra_setting.dm b/code/modules/research/nanites/extra_settings/_extra_setting.dm
deleted file mode 100644
index b3bef77eb40..00000000000
--- a/code/modules/research/nanites/extra_settings/_extra_setting.dm
+++ /dev/null
@@ -1,20 +0,0 @@
-/datum/nanite_extra_setting
- var/setting_type
- var/value
-
-/datum/nanite_extra_setting/proc/get_value()
- return value
-
-/datum/nanite_extra_setting/proc/set_value(value)
- src.value = value
-
-/datum/nanite_extra_setting/proc/get_copy()
- return
-
-//I made the choice to send the name as part of the parameter instead of storing it directly on
-//this datum as a way of avoiding duplication of data between the containing assoc list
-//and this datum.
-//Also make sure to double wrap the list when implementing this as
-//+= is interpreted as a combine on lists, so the outer list gets unwrapped
-/datum/nanite_extra_setting/proc/get_frontend_list(name)
- return
diff --git a/code/modules/research/nanites/extra_settings/boolean.dm b/code/modules/research/nanites/extra_settings/boolean.dm
deleted file mode 100644
index 7d66eb988ea..00000000000
--- a/code/modules/research/nanites/extra_settings/boolean.dm
+++ /dev/null
@@ -1,27 +0,0 @@
-/datum/nanite_extra_setting/boolean
- setting_type = NESTYPE_BOOLEAN
- var/true_text
- var/false_text
-
-/datum/nanite_extra_setting/boolean/New(initial, true_text, false_text)
- value = initial
- src.true_text = true_text
- src.false_text = false_text
-
-/datum/nanite_extra_setting/boolean/set_value(value)
- if(isnull(value))
- src.value = !src.value
- return
- . = ..()
-
-/datum/nanite_extra_setting/boolean/get_copy()
- return new /datum/nanite_extra_setting/boolean(value, true_text, false_text)
-
-/datum/nanite_extra_setting/boolean/get_frontend_list(name)
- return list(list(
- "name" = name,
- "type" = setting_type,
- "value" = value,
- "true_text" = true_text,
- "false_text" = false_text
- ))
diff --git a/code/modules/research/nanites/extra_settings/number.dm b/code/modules/research/nanites/extra_settings/number.dm
deleted file mode 100644
index 75489635f55..00000000000
--- a/code/modules/research/nanites/extra_settings/number.dm
+++ /dev/null
@@ -1,32 +0,0 @@
-/datum/nanite_extra_setting/number
- setting_type = NESTYPE_NUMBER
- var/min
- var/max
- var/unit = ""
-
-/datum/nanite_extra_setting/number/New(initial, min, max, unit)
- value = initial
- src.min = min
- src.max = max
- if(unit)
- src.unit = unit
-
-/datum/nanite_extra_setting/number/set_value(value)
- if(istext(value))
- value = text2num(value)
- if(!value || !isnum(value))
- return
- src.value = clamp(value, min, max)
-
-/datum/nanite_extra_setting/number/get_copy()
- return new /datum/nanite_extra_setting/number(value, min, max, unit)
-
-/datum/nanite_extra_setting/number/get_frontend_list(name)
- return list(list(
- "name" = name,
- "type" = setting_type,
- "value" = value,
- "min" = min,
- "max" = max,
- "unit" = unit
- ))
diff --git a/code/modules/research/nanites/extra_settings/text.dm b/code/modules/research/nanites/extra_settings/text.dm
deleted file mode 100644
index d3cad27bcf5..00000000000
--- a/code/modules/research/nanites/extra_settings/text.dm
+++ /dev/null
@@ -1,21 +0,0 @@
-/datum/nanite_extra_setting/text
- setting_type = NESTYPE_TEXT
-
-/datum/nanite_extra_setting/text/New(initial)
- value = initial
-
-/datum/nanite_extra_setting/text/set_value(value)
- src.value = trim(value)
-
-/datum/nanite_extra_setting/text/get_copy()
- return new /datum/nanite_extra_setting/text(value)
-
-/datum/nanite_extra_setting/text/get_value()
- return html_encode(value)
-
-/datum/nanite_extra_setting/text/get_frontend_list(name)
- return list(list(
- "name" = name,
- "type" = setting_type,
- "value" = value
- ))
diff --git a/code/modules/research/nanites/extra_settings/type.dm b/code/modules/research/nanites/extra_settings/type.dm
deleted file mode 100644
index 2085ba510c4..00000000000
--- a/code/modules/research/nanites/extra_settings/type.dm
+++ /dev/null
@@ -1,18 +0,0 @@
-/datum/nanite_extra_setting/type
- setting_type = NESTYPE_TYPE
- var/list/types
-
-/datum/nanite_extra_setting/type/New(initial, types)
- value = initial
- src.types = types
-
-/datum/nanite_extra_setting/type/get_copy()
- return new /datum/nanite_extra_setting/type(value, types)
-
-/datum/nanite_extra_setting/type/get_frontend_list(name)
- return list(list(
- "name" = name,
- "type" = setting_type,
- "value" = value,
- "types" = types
- ))
diff --git a/code/modules/research/nanites/nanite_chamber.dm b/code/modules/research/nanites/nanite_chamber.dm
deleted file mode 100644
index c35f4705000..00000000000
--- a/code/modules/research/nanites/nanite_chamber.dm
+++ /dev/null
@@ -1,213 +0,0 @@
-/obj/machinery/nanite_chamber
- name = "nanite chamber"
- desc = "A device that can scan, reprogram, and inject nanites."
- circuit = /obj/item/circuitboard/machine/nanite_chamber
- icon = 'icons/obj/machines/nanite_chamber.dmi'
- icon_state = "nanite_chamber"
- base_icon_state = "nanite_chamber"
- layer = ABOVE_WINDOW_LAYER
- use_power = IDLE_POWER_USE
- anchored = TRUE
- density = TRUE
- obj_flags = NO_BUILD // Becomes undense when the door is open
- idle_power_usage = 50
- active_power_usage = 300
-
- var/locked = FALSE
- var/breakout_time = 1200
- var/scan_level
- var/busy = FALSE
- var/busy_icon_state
- var/busy_message
- var/message_cooldown = 0
-
-/obj/machinery/nanite_chamber/Initialize()
- . = ..()
- occupant_typecache = GLOB.typecache_living
-
-/obj/machinery/nanite_chamber/RefreshParts()
- scan_level = 0
- for(var/obj/item/stock_parts/scanning_module/P in component_parts)
- scan_level += P.rating
-
-/obj/machinery/nanite_chamber/examine(mob/user)
- . = ..()
- if(in_range(user, src) || isobserver(user))
- . += span_notice("The status display reads: Scanning module has been upgraded to level [scan_level].")
-
-/obj/machinery/nanite_chamber/proc/set_busy(status, message, working_icon)
- busy = status
- busy_message = message
- busy_icon_state = working_icon
- update_appearance()
-
-/obj/machinery/nanite_chamber/proc/set_safety(threshold)
- if(!occupant)
- return
- SEND_SIGNAL(occupant, COMSIG_NANITE_SET_SAFETY, threshold)
-
-/obj/machinery/nanite_chamber/proc/set_cloud(cloud_id)
- if(!occupant)
- return
- SEND_SIGNAL(occupant, COMSIG_NANITE_SET_CLOUD, cloud_id)
-
-/obj/machinery/nanite_chamber/proc/inject_nanites()
- if(machine_stat & (NOPOWER|BROKEN))
- return
- if((machine_stat & MAINT) || panel_open)
- return
- if(!occupant || busy)
- return
-
- var/locked_state = locked
- locked = TRUE
-
- //TODO OMINOUS MACHINE SOUNDS
- set_busy(TRUE, "Initializing injection protocol...", "[initial(icon_state)]_raising")
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Analyzing host bio-structure...", "[initial(icon_state)]_active"),20)
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Priming nanites...", "[initial(icon_state)]_active"),40)
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Injecting...", "[initial(icon_state)]_active"),70)
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Activating nanites...", "[initial(icon_state)]_falling"),110)
- addtimer(CALLBACK(src, .proc/complete_injection, locked_state),130)
-
-/obj/machinery/nanite_chamber/proc/complete_injection(locked_state)
- //TODO MACHINE DING
- locked = locked_state
- set_busy(FALSE)
- if(!occupant)
- return
- occupant.AddComponent(/datum/component/nanites, 100)
-
-/obj/machinery/nanite_chamber/proc/remove_nanites(datum/nanite_program/NP)
- if(machine_stat & (NOPOWER|BROKEN))
- return
- if((machine_stat & MAINT) || panel_open)
- return
- if(!occupant || busy)
- return
-
- var/locked_state = locked
- locked = TRUE
-
- //TODO OMINOUS MACHINE SOUNDS
- set_busy(TRUE, "Initializing cleanup protocol...", "[initial(icon_state)]_raising")
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Analyzing host bio-structure...", "[initial(icon_state)]_active"),20)
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Pinging nanites...", "[initial(icon_state)]_active"),40)
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Initiating graceful self-destruct sequence...", "[initial(icon_state)]_active"),70)
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Removing debris...", "[initial(icon_state)]_falling"),110)
- addtimer(CALLBACK(src, .proc/complete_removal, locked_state),130)
-
-/obj/machinery/nanite_chamber/proc/complete_removal(locked_state)
- //TODO MACHINE DING
- locked = locked_state
- set_busy(FALSE)
- if(!occupant)
- return
- SEND_SIGNAL(occupant, COMSIG_NANITE_DELETE)
-
-/obj/machinery/nanite_chamber/update_icon_state()
- //running and someone in there
- if(occupant)
- icon_state = busy ? busy_icon_state : "[base_icon_state]_occupied"
- return ..()
- //running
- icon_state = "[base_icon_state][state_open ? "_open" : null]"
- return ..()
-
-/obj/machinery/nanite_chamber/update_overlays()
- . = ..()
-
- if((machine_stat & MAINT) || panel_open)
- . += "maint"
- return
-
- if(machine_stat & (NOPOWER|BROKEN))
- return
-
- if(busy || locked)
- . += "red"
- if(locked)
- . += "bolted"
- return
-
- . += "green"
-
-/obj/machinery/nanite_chamber/proc/toggle_open(mob/user)
- if(panel_open)
- to_chat(user, span_notice("Close the maintenance panel first."))
- return
-
- if(state_open)
- close_machine()
- return
-
- else if(locked)
- to_chat(user, span_notice("The bolts are locked down, securing the door shut."))
- return
-
- open_machine()
-
-/obj/machinery/nanite_chamber/container_resist_act(mob/living/user)
- if(!locked)
- open_machine()
- return
- if(busy)
- return
- user.changeNext_move(CLICK_CD_BREAKOUT)
- user.last_special = world.time + CLICK_CD_BREAKOUT
- user.visible_message(span_notice("You see [user] kicking against the door of [src]!"), \
- span_notice("You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)"), \
- span_hear("You hear a metallic creaking from [src]."))
- if(do_after(user,(breakout_time), target = src))
- if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked || busy)
- return
- locked = FALSE
- user.visible_message(span_warning("[user] successfully broke out of [src]!"), \
- span_notice("You successfully break out of [src]!"))
- open_machine()
-
-/obj/machinery/nanite_chamber/close_machine(mob/living/carbon/user)
- if(!state_open)
- return FALSE
-
- ..(user)
- return TRUE
-
-/obj/machinery/nanite_chamber/open_machine()
- if(state_open)
- return FALSE
-
- ..()
-
- return TRUE
-
-/obj/machinery/nanite_chamber/relaymove(mob/living/user, direction)
- if(user.stat || locked)
- if(message_cooldown <= world.time)
- message_cooldown = world.time + 50
- to_chat(user, span_warning("[src]'s door won't budge!"))
- return
- open_machine()
-
-/obj/machinery/nanite_chamber/attackby(obj/item/I, mob/user, params)
- if(!occupant && default_deconstruction_screwdriver(user, icon_state, icon_state, I))//sent icon_state is irrelevant...
- update_appearance()//..since we're updating the icon here, since the scanner can be unpowered when opened/closed
- return
-
- if(default_pry_open(I))
- return
-
- if(default_deconstruction_crowbar(I))
- return
-
- return ..()
-
-/obj/machinery/nanite_chamber/interact(mob/user)
- toggle_open(user)
-
-/obj/machinery/nanite_chamber/MouseDrop_T(mob/target, mob/user)
- if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || !Adjacent(target) || !user.Adjacent(target) || !iscarbon(target))
- return
- if(close_machine(target))
- log_combat(user, target, "inserted", null, "into [src].")
- add_fingerprint(user)
diff --git a/code/modules/research/nanites/nanite_chamber_computer.dm b/code/modules/research/nanites/nanite_chamber_computer.dm
deleted file mode 100644
index c18364de1a2..00000000000
--- a/code/modules/research/nanites/nanite_chamber_computer.dm
+++ /dev/null
@@ -1,108 +0,0 @@
-/obj/machinery/computer/nanite_chamber_control
- name = "nanite chamber control console"
- desc = "Controls a connected nanite chamber. Can inoculate nanites, load programs, and analyze existing nanite swarms."
- var/obj/machinery/nanite_chamber/chamber
- icon_screen = "nanite_chamber_control"
- circuit = /obj/item/circuitboard/computer/nanite_chamber_control
-
-/obj/machinery/computer/nanite_chamber_control/Initialize()
- . = ..()
- find_chamber()
-
-/obj/machinery/computer/nanite_chamber_control/proc/find_chamber()
- for(var/direction in GLOB.cardinals)
- var/C = locate(/obj/machinery/nanite_chamber, get_step(src, direction))
- if(C)
- var/obj/machinery/nanite_chamber/NC = C
- set_connected_chamber(NC)
-
-/obj/machinery/computer/nanite_chamber_control/interact()
- if(!chamber)
- find_chamber()
- ..()
-
-/obj/machinery/computer/nanite_chamber_control/ui_interact(mob/user, datum/tgui/ui)
- ui = SStgui.try_update_ui(user, src, ui)
- if(!ui)
- ui = new(user, src, "NaniteChamberControl", name)
- ui.open()
-
-/obj/machinery/computer/nanite_chamber_control/ui_data()
- var/list/data = list()
-
- if(!chamber)
- data["status_msg"] = "No chamber detected."
- return data
-
- if(!chamber.occupant)
- data["status_msg"] = "No occupant detected."
- return data
-
- var/mob/living/L = chamber.occupant
-
- if(!(L.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD)))
- data["status_msg"] = "Occupant not compatible with nanites."
- return data
-
- if(chamber.busy)
- data["status_msg"] = chamber.busy_message
- return data
-
- data["status_msg"] = null
- data["scan_level"] = chamber.scan_level
- data["locked"] = chamber.locked
- data["occupant_name"] = chamber.occupant.name
-
- SEND_SIGNAL(L, COMSIG_NANITE_UI_DATA, data, chamber.scan_level)
-
- return data
-
-/obj/machinery/computer/nanite_chamber_control/ui_act(action, params)
- . = ..()
- if(.)
- return
- switch(action)
- if("toggle_lock")
- chamber.locked = !chamber.locked
- chamber.update_appearance()
- . = TRUE
- if("set_safety")
- var/threshold = text2num(params["value"])
- if(!isnull(threshold))
- chamber.set_safety(clamp(round(threshold, 1),0,500))
- playsound(src, "terminal_type", 25, FALSE)
- chamber.occupant.investigate_log("'s nanites' safety threshold was set to [threshold] by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES)
- . = TRUE
- if("set_cloud")
- var/cloud_id = text2num(params["value"])
- if(!isnull(cloud_id))
- chamber.set_cloud(clamp(round(cloud_id, 1),0,100))
- playsound(src, "terminal_type", 25, FALSE)
- chamber.occupant.investigate_log("'s nanites' cloud id was set to [cloud_id] by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES)
- . = TRUE
- if("connect_chamber")
- find_chamber()
- . = TRUE
- if("remove_nanites")
- playsound(src, 'sound/machines/terminal_prompt.ogg', 25, FALSE)
- chamber.remove_nanites()
- log_combat(usr, chamber.occupant, "cleared nanites from", null, "via [src]")
- chamber.occupant.investigate_log("'s nanites were cleared by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES)
- . = TRUE
- if("nanite_injection")
- playsound(src, 'sound/machines/terminal_prompt.ogg', 25, FALSE)
- chamber.inject_nanites()
- log_combat(usr, chamber.occupant, "injected", null, "with nanites via [src]")
- chamber.occupant.investigate_log("was injected with nanites by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES)
- . = TRUE
-
-/obj/machinery/computer/nanite_chamber_control/proc/set_connected_chamber(new_chamber)
- if(chamber)
- UnregisterSignal(chamber, COMSIG_PARENT_QDELETING)
- chamber = new_chamber
- if(chamber)
- RegisterSignal(chamber, COMSIG_PARENT_QDELETING, .proc/react_to_chamber_del)
-
-/obj/machinery/computer/nanite_chamber_control/proc/react_to_chamber_del(datum/source)
- SIGNAL_HANDLER
- set_connected_chamber(null)
diff --git a/code/modules/research/nanites/nanite_cloud_controller.dm b/code/modules/research/nanites/nanite_cloud_controller.dm
deleted file mode 100644
index fcfe181c607..00000000000
--- a/code/modules/research/nanites/nanite_cloud_controller.dm
+++ /dev/null
@@ -1,261 +0,0 @@
-/obj/machinery/computer/nanite_cloud_controller
- name = "nanite cloud controller"
- desc = "Stores and controls nanite cloud backups."
- icon = 'icons/obj/machines/research.dmi'
- icon_state = "nanite_cloud_controller"
- circuit = /obj/item/circuitboard/computer/nanite_cloud_controller
- icon_screen = "nanite_cloud_controller_screen"
- icon_keyboard = null
-
- var/obj/item/disk/nanite_program/disk
- var/list/datum/nanite_cloud_backup/cloud_backups = list()
- var/current_view = 0 //0 is the main menu, any other number is the page of the backup with that ID
- var/new_backup_id = 1
-
-/obj/machinery/computer/nanite_cloud_controller/Destroy()
- QDEL_LIST(cloud_backups) //rip backups
- eject()
- return ..()
-
-/obj/machinery/computer/nanite_cloud_controller/attackby(obj/item/I, mob/user)
- if(istype(I, /obj/item/disk/nanite_program))
- var/obj/item/disk/nanite_program/N = I
- if (user.transferItemToLoc(N, src))
- to_chat(user, span_notice("You insert [N] into [src]."))
- playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
- if(disk)
- eject(user)
- disk = N
- else
- ..()
-
-/obj/machinery/computer/nanite_cloud_controller/AltClick(mob/user)
- if(disk && user.canUseTopic(src, !issilicon(user)))
- to_chat(user, span_notice("You take out [disk] from [src]."))
- eject(user)
- return
-
-/obj/machinery/computer/nanite_cloud_controller/proc/eject(mob/living/user)
- if(!disk)
- return
- if(!istype(user) || !Adjacent(user) ||!user.put_in_active_hand(disk))
- disk.forceMove(drop_location())
- disk = null
-
-/obj/machinery/computer/nanite_cloud_controller/proc/get_backup(cloud_id)
- for(var/I in cloud_backups)
- var/datum/nanite_cloud_backup/backup = I
- if(backup.cloud_id == cloud_id)
- return backup
-
-/obj/machinery/computer/nanite_cloud_controller/proc/generate_backup(cloud_id, mob/user)
- if(SSnanites.get_cloud_backup(cloud_id, TRUE))
- to_chat(user, span_warning("Cloud ID already registered."))
- return
-
- var/datum/nanite_cloud_backup/backup = new(src)
- var/datum/component/nanites/cloud_copy = backup.AddComponent(/datum/component/nanites)
- backup.cloud_id = cloud_id
- backup.nanites = cloud_copy
- investigate_log("[key_name(user)] created a new nanite cloud backup with id #[cloud_id]", INVESTIGATE_NANITES)
-
-/obj/machinery/computer/nanite_cloud_controller/ui_interact(mob/user, datum/tgui/ui)
- ui = SStgui.try_update_ui(user, src, ui)
- if(!ui)
- ui = new(user, src, "NaniteCloudControl", name)
- ui.open()
-
-/obj/machinery/computer/nanite_cloud_controller/ui_data()
- var/list/data = list()
-
- if(disk)
- data["has_disk"] = TRUE
- var/list/disk_data = list()
- var/datum/nanite_program/P = disk.program
- if(P)
- data["has_program"] = TRUE
- disk_data["name"] = P.name
- disk_data["desc"] = P.desc
- disk_data["use_rate"] = P.use_rate
- disk_data["can_trigger"] = P.can_trigger
- disk_data["trigger_cost"] = P.trigger_cost
- disk_data["trigger_cooldown"] = P.trigger_cooldown / 10
-
- disk_data["activated"] = P.activated
- disk_data["activation_code"] = P.activation_code
- disk_data["deactivation_code"] = P.deactivation_code
- disk_data["kill_code"] = P.kill_code
- disk_data["trigger_code"] = P.trigger_code
- disk_data["timer_restart"] = P.timer_restart / 10
- disk_data["timer_shutdown"] = P.timer_shutdown / 10
- disk_data["timer_trigger"] = P.timer_trigger / 10
- disk_data["timer_trigger_delay"] = P.timer_trigger_delay / 10
-
- var/list/extra_settings = P.get_extra_settings_frontend()
- disk_data["extra_settings"] = extra_settings
- if(LAZYLEN(extra_settings))
- disk_data["has_extra_settings"] = TRUE
- if(istype(P, /datum/nanite_program/sensor))
- var/datum/nanite_program/sensor/sensor = P
- if(sensor.can_rule)
- disk_data["can_rule"] = TRUE
- data["disk"] = disk_data
- else
- data["has_disk"] = FALSE
-
- data["new_backup_id"] = new_backup_id
-
- data["current_view"] = current_view
- if(current_view)
- var/datum/nanite_cloud_backup/backup = get_backup(current_view)
- if(backup)
- var/datum/component/nanites/nanites = backup.nanites
- data["cloud_backup"] = TRUE
- var/list/cloud_programs = list()
- var/id = 1
- for(var/datum/nanite_program/P in nanites.programs)
- var/list/cloud_program = list()
- cloud_program["name"] = P.name
- cloud_program["desc"] = P.desc
- cloud_program["id"] = id
- cloud_program["use_rate"] = P.use_rate
- cloud_program["can_trigger"] = P.can_trigger
- cloud_program["trigger_cost"] = P.trigger_cost
- cloud_program["trigger_cooldown"] = P.trigger_cooldown / 10
- cloud_program["activated"] = P.activated
- cloud_program["timer_restart"] = P.timer_restart / 10
- cloud_program["timer_shutdown"] = P.timer_shutdown / 10
- cloud_program["timer_trigger"] = P.timer_trigger / 10
- cloud_program["timer_trigger_delay"] = P.timer_trigger_delay / 10
-
- cloud_program["activation_code"] = P.activation_code
- cloud_program["deactivation_code"] = P.deactivation_code
- cloud_program["kill_code"] = P.kill_code
- cloud_program["trigger_code"] = P.trigger_code
- var/list/rules = list()
- var/rule_id = 1
- for(var/X in P.rules)
- var/datum/nanite_rule/nanite_rule = X
- var/list/rule = list()
- rule["display"] = nanite_rule.display()
- rule["program_id"] = id
- rule["id"] = rule_id
- rules += list(rule)
- rule_id++
- cloud_program["rules"] = rules
- if(LAZYLEN(rules))
- cloud_program["has_rules"] = TRUE
- cloud_program["all_rules_required"] = P.all_rules_required
-
- var/list/extra_settings = P.get_extra_settings_frontend()
- cloud_program["extra_settings"] = extra_settings
- if(LAZYLEN(extra_settings))
- cloud_program["has_extra_settings"] = TRUE
- id++
- cloud_programs += list(cloud_program)
- data["cloud_programs"] = cloud_programs
- else
- var/list/backup_list = list()
- for(var/X in cloud_backups)
- var/datum/nanite_cloud_backup/backup = X
- var/list/cloud_backup = list()
- cloud_backup["cloud_id"] = backup.cloud_id
- backup_list += list(cloud_backup)
- data["cloud_backups"] = backup_list
- return data
-
-/obj/machinery/computer/nanite_cloud_controller/ui_act(action, params)
- . = ..()
- if(.)
- return
- switch(action)
- if("eject")
- eject(usr)
- . = TRUE
- if("set_view")
- current_view = text2num(params["view"])
- . = TRUE
- if("update_new_backup_value")
- var/backup_value = text2num(params["value"])
- new_backup_id = backup_value
- if("create_backup")
- var/cloud_id = new_backup_id
- if(!isnull(cloud_id))
- playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE)
- cloud_id = clamp(round(cloud_id, 1),1,100)
- generate_backup(cloud_id, usr)
- . = TRUE
- if("delete_backup")
- var/datum/nanite_cloud_backup/backup = get_backup(current_view)
- if(backup)
- playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE)
- qdel(backup)
- investigate_log("[key_name(usr)] deleted the nanite cloud backup #[current_view]", INVESTIGATE_NANITES)
- . = TRUE
- if("upload_program")
- if(disk?.program)
- var/datum/nanite_cloud_backup/backup = get_backup(current_view)
- if(backup)
- playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE)
- var/datum/component/nanites/nanites = backup.nanites
- nanites.add_program(null, disk.program.copy())
- investigate_log("[key_name(usr)] uploaded program [disk.program.name] to cloud #[current_view]", INVESTIGATE_NANITES)
- . = TRUE
- if("remove_program")
- var/datum/nanite_cloud_backup/backup = get_backup(current_view)
- if(backup)
- playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE)
- var/datum/component/nanites/nanites = backup.nanites
- var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])]
- investigate_log("[key_name(usr)] deleted program [P.name] from cloud #[current_view]", INVESTIGATE_NANITES)
- qdel(P)
- . = TRUE
- if("add_rule")
- if(disk && disk.program && istype(disk.program, /datum/nanite_program/sensor))
- var/datum/nanite_program/sensor/rule_template = disk.program
- if(!rule_template.can_rule)
- return
- var/datum/nanite_cloud_backup/backup = get_backup(current_view)
- if(backup)
- playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
- var/datum/component/nanites/nanites = backup.nanites
- var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])]
- var/datum/nanite_rule/rule = rule_template.make_rule(P)
-
- investigate_log("[key_name(usr)] added rule [rule.display()] to program [P.name] in cloud #[current_view]", INVESTIGATE_NANITES)
- . = TRUE
- if("remove_rule")
- var/datum/nanite_cloud_backup/backup = get_backup(current_view)
- if(backup)
- playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
- var/datum/component/nanites/nanites = backup.nanites
- var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])]
- var/datum/nanite_rule/rule = P.rules[text2num(params["rule_id"])]
- rule.remove()
-
- investigate_log("[key_name(usr)] removed rule [rule.display()] from program [P.name] in cloud #[current_view]", INVESTIGATE_NANITES)
- . = TRUE
- if("toggle_rule_logic")
- var/datum/nanite_cloud_backup/backup = get_backup(current_view)
- if(backup)
- playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE)
- var/datum/component/nanites/nanites = backup.nanites
- var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])]
- P.all_rules_required = !P.all_rules_required
- investigate_log("[key_name(usr)] edited rule logic for program [P.name] into [P.all_rules_required ? "All" : "Any"] in cloud #[current_view]", INVESTIGATE_NANITES)
- . = TRUE
-
-/datum/nanite_cloud_backup
- var/cloud_id = 0
- var/datum/component/nanites/nanites
- var/obj/machinery/computer/nanite_cloud_controller/storage
-
-/datum/nanite_cloud_backup/New(obj/machinery/computer/nanite_cloud_controller/_storage)
- storage = _storage
- storage.cloud_backups += src
- SSnanites.cloud_backups += src
-
-/datum/nanite_cloud_backup/Destroy()
- storage.cloud_backups -= src
- SSnanites.cloud_backups -= src
- return ..()
diff --git a/code/modules/research/nanites/nanite_hijacker.dm b/code/modules/research/nanites/nanite_hijacker.dm
deleted file mode 100644
index 8b137891791..00000000000
--- a/code/modules/research/nanites/nanite_hijacker.dm
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/code/modules/research/nanites/nanite_misc_items.dm b/code/modules/research/nanites/nanite_misc_items.dm
deleted file mode 100644
index 6837543d111..00000000000
--- a/code/modules/research/nanites/nanite_misc_items.dm
+++ /dev/null
@@ -1,9 +0,0 @@
-/obj/item/nanite_injector
- name = "nanite injector (FOR TESTING)"
- desc = "Injects nanites into the user."
- w_class = WEIGHT_CLASS_SMALL
- icon = 'icons/obj/device.dmi'
- icon_state = "nanite_remote"
-
-/obj/item/nanite_injector/attack_self(mob/user)
- user.AddComponent(/datum/component/nanites, 150)
diff --git a/code/modules/research/nanites/nanite_program_hub.dm b/code/modules/research/nanites/nanite_program_hub.dm
deleted file mode 100644
index 3039dea9704..00000000000
--- a/code/modules/research/nanites/nanite_program_hub.dm
+++ /dev/null
@@ -1,149 +0,0 @@
-/obj/machinery/nanite_program_hub
- name = "nanite program hub"
- desc = "Compiles nanite programs from the techweb servers and downloads them into disks."
- icon = 'icons/obj/machines/research.dmi'
- icon_state = "nanite_program_hub"
- use_power = IDLE_POWER_USE
- anchored = TRUE
- density = TRUE
- circuit = /obj/item/circuitboard/machine/nanite_program_hub
-
- var/obj/item/disk/nanite_program/disk
- var/datum/techweb/linked_techweb
- var/current_category = "Main"
- var/detail_view = TRUE
- var/categories = list(
- list(name = "Utility Nanites"),
- list(name = "Medical Nanites"),
- list(name = "Sensor Nanites"),
- list(name = "Augmentation Nanites"),
- list(name = "Suppression Nanites"),
- list(name = "Weaponized Nanites"),
- list(name = "Protocols"),
- )
-
-/obj/machinery/nanite_program_hub/Initialize()
- . = ..()
- linked_techweb = SSresearch.science_tech
-
-/obj/machinery/nanite_program_hub/update_overlays()
- . = ..()
- if((machine_stat & (NOPOWER|MAINT|BROKEN)) || panel_open)
- return
- . += mutable_appearance(icon, "nanite_program_hub_on")
- . += emissive_appearance(icon, "nanite_program_hub_on")
-
-/obj/machinery/nanite_program_hub/attackby(obj/item/I, mob/user)
- if(istype(I, /obj/item/disk/nanite_program))
- var/obj/item/disk/nanite_program/N = I
- if(user.transferItemToLoc(N, src))
- to_chat(user, span_notice("You insert [N] into [src]."))
- playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
- if(disk)
- eject(user)
- disk = N
- else
- ..()
-
-/obj/machinery/nanite_program_hub/screwdriver_act(mob/living/user, obj/item/I)
- if(..())
- return TRUE
-
- return default_deconstruction_screwdriver(user, "nanite_program_hub_t", "nanite_program_hub", I)
-
-/obj/machinery/nanite_program_hub/crowbar_act(mob/living/user, obj/item/I)
- if(..())
- return TRUE
-
- return default_deconstruction_crowbar(I)
-
-/obj/machinery/nanite_program_hub/proc/eject(mob/living/user)
- if(!disk)
- return
- if(!istype(user) || !Adjacent(user) || !user.put_in_active_hand(disk))
- disk.forceMove(drop_location())
- disk = null
-
-/obj/machinery/nanite_program_hub/AltClick(mob/user)
- if(disk && user.canUseTopic(src, !issilicon(user)))
- to_chat(user, span_notice("You take out [disk] from [src]."))
- eject(user)
- return
-
-/obj/machinery/nanite_program_hub/ui_interact(mob/user, datum/tgui/ui)
- ui = SStgui.try_update_ui(user, src, ui)
- if(!ui)
- ui = new(user, src, "NaniteProgramHub", name)
- ui.open()
-
-/obj/machinery/nanite_program_hub/ui_data()
- var/list/data = list()
- if(disk)
- data["has_disk"] = TRUE
- var/list/disk_data = list()
- var/datum/nanite_program/P = disk.program
- if(P)
- data["has_program"] = TRUE
- disk_data["name"] = P.name
- disk_data["desc"] = P.desc
- data["disk"] = disk_data
- else
- data["has_disk"] = FALSE
-
- data["detail_view"] = detail_view
-
- return data
-
-/obj/machinery/nanite_program_hub/ui_static_data(mob/user)
- var/list/data = list()
- data["programs"] = list()
- for(var/i in linked_techweb.researched_designs)
- var/datum/design/nanites/D = SSresearch.techweb_design_by_id(i)
- if(!istype(D))
- continue
- var/cat_name = D.category[1] //just put them in the first category fuck it
- if(isnull(data["programs"][cat_name]))
- data["programs"][cat_name] = list()
- var/list/program_design = list()
- program_design["id"] = D.id
- program_design["name"] = D.name
- program_design["desc"] = D.desc
- data["programs"][cat_name] += list(program_design)
-
- if(!length(data["programs"]))
- data["programs"] = null
-
- return data
-
-/obj/machinery/nanite_program_hub/ui_act(action, params)
- . = ..()
- if(.)
- return
- switch(action)
- if("eject")
- eject(usr)
- . = TRUE
- if("download")
- if(!disk)
- return
- var/datum/design/nanites/downloaded = linked_techweb.isDesignResearchedID(params["program_id"]) //check if it's a valid design
- if(!istype(downloaded))
- return
- if(disk.program)
- qdel(disk.program)
- disk.program = new downloaded.program_type
- disk.name = "[initial(disk.name)] \[[disk.program.name]\]"
- playsound(src, 'sound/machines/terminal_prompt.ogg', 25, FALSE)
- . = TRUE
- if("refresh")
- update_static_data(usr)
- . = TRUE
- if("toggle_details")
- detail_view = !detail_view
- . = TRUE
- if("clear")
- if(disk?.program)
- qdel(disk.program)
- disk.program = null
- disk.name = initial(disk.name)
- . = TRUE
diff --git a/code/modules/research/nanites/nanite_programmer.dm b/code/modules/research/nanites/nanite_programmer.dm
deleted file mode 100644
index f06c21aa79f..00000000000
--- a/code/modules/research/nanites/nanite_programmer.dm
+++ /dev/null
@@ -1,175 +0,0 @@
-/obj/machinery/nanite_programmer
- name = "nanite programmer"
- desc = "A device that can edit nanite program disks to adjust their functionality."
- var/obj/item/disk/nanite_program/disk
- var/datum/nanite_program/program
- icon = 'icons/obj/machines/research.dmi'
- icon_state = "nanite_programmer"
- use_power = IDLE_POWER_USE
- anchored = TRUE
- density = TRUE
- circuit = /obj/item/circuitboard/machine/nanite_programmer
-
-/obj/machinery/nanite_programmer/Initialize()
- . = ..()
- become_hearing_sensitive(trait_source = ROUNDSTART_TRAIT)
-
-/obj/machinery/nanite_programmer/update_overlays()
- . = ..()
- if((machine_stat & (NOPOWER|MAINT|BROKEN)) || panel_open)
- return
- . += mutable_appearance(icon, "nanite_programmer_on")
- . += emissive_appearance(icon, "nanite_programmer_on")
-
-/obj/machinery/nanite_programmer/attackby(obj/item/I, mob/user)
- if(istype(I, /obj/item/disk/nanite_program))
- var/obj/item/disk/nanite_program/N = I
- if(user.transferItemToLoc(N, src))
- to_chat(user, span_notice("You insert [N] into [src]"))
- playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
- if(disk)
- eject(user)
- disk = N
- program = N.program
- else
- ..()
-
-/obj/machinery/nanite_programmer/screwdriver_act(mob/living/user, obj/item/I)
- if(..())
- return TRUE
-
- return default_deconstruction_screwdriver(user, "nanite_programmer_t", "nanite_programmer", I)
-
-/obj/machinery/nanite_programmer/crowbar_act(mob/living/user, obj/item/I)
- if(..())
- return TRUE
-
- return default_deconstruction_crowbar(I)
-
-/obj/machinery/nanite_programmer/proc/eject(mob/living/user)
- if(!disk)
- return
- if(!istype(user) || !Adjacent(user) || !user.put_in_active_hand(disk))
- disk.forceMove(drop_location())
- disk = null
- program = null
-
-/obj/machinery/nanite_programmer/AltClick(mob/user)
- if(disk && user.canUseTopic(src, !issilicon(user)))
- to_chat(user, span_notice("You take out [disk] from [src]."))
- eject(user)
- return
-
-/obj/machinery/nanite_programmer/ui_interact(mob/user, datum/tgui/ui)
- ui = SStgui.try_update_ui(user, src, ui)
- if(!ui)
- ui = new(user, src, "NaniteProgrammer", name)
- ui.open()
-
-/obj/machinery/nanite_programmer/ui_data()
- var/list/data = list()
- data["has_disk"] = istype(disk)
- data["has_program"] = istype(program)
- if(program)
- data["name"] = program.name
- data["desc"] = program.desc
- data["use_rate"] = program.use_rate
- data["can_trigger"] = program.can_trigger
- data["trigger_cost"] = program.trigger_cost
- data["trigger_cooldown"] = program.trigger_cooldown / 10
-
- data["activated"] = program.activated
- data["activation_code"] = program.activation_code
- data["deactivation_code"] = program.deactivation_code
- data["kill_code"] = program.kill_code
- data["trigger_code"] = program.trigger_code
- data["timer_restart"] = program.timer_restart / 10
- data["timer_shutdown"] = program.timer_shutdown / 10
- data["timer_trigger"] = program.timer_trigger / 10
- data["timer_trigger_delay"] = program.timer_trigger_delay / 10
-
- var/list/extra_settings = program.get_extra_settings_frontend()
- data["extra_settings"] = extra_settings
- if(LAZYLEN(extra_settings))
- data["has_extra_settings"] = TRUE
-
- return data
-
-/obj/machinery/nanite_programmer/ui_act(action, params)
- . = ..()
- if(.)
- return
- switch(action)
- if("eject")
- eject(usr)
- . = TRUE
- if("toggle_active")
- playsound(src, "terminal_type", 25, FALSE)
- program.activated = !program.activated //we don't use the activation procs since we aren't in a mob
- investigate_log("[key_name(usr)] edited [program.name]'s initial activation status into [program.activated ? "Activated" : "Deactivated"]", INVESTIGATE_NANITES)
- . = TRUE
- if("set_code")
- var/new_code = text2num(params["code"])
- playsound(src, "terminal_type", 25, FALSE)
- var/target_code = params["target_code"]
- switch(target_code)
- if("activation")
- program.activation_code = clamp(round(new_code, 1),0,9999)
- investigate_log("[key_name(usr)] edited [program.name]'s activation code into [program.activation_code]", INVESTIGATE_NANITES)
- if("deactivation")
- program.deactivation_code = clamp(round(new_code, 1),0,9999)
- investigate_log("[key_name(usr)] edited [program.name]'s deactivation code into [program.deactivation_code]", INVESTIGATE_NANITES)
- if("kill")
- program.kill_code = clamp(round(new_code, 1),0,9999)
- investigate_log("[key_name(usr)] edited [program.name]'s kill code into [program.kill_code]", INVESTIGATE_NANITES)
- if("trigger")
- program.trigger_code = clamp(round(new_code, 1),0,9999)
- investigate_log("[key_name(usr)] edited [program.name]'s trigger code into [program.trigger_code]", INVESTIGATE_NANITES)
- . = TRUE
- if("set_extra_setting")
- program.set_extra_setting(params["target_setting"], params["value"])
- investigate_log("[key_name(usr)] edited [program.name]'s extra setting '[params["target_setting"]]' into [params["value"]]", INVESTIGATE_NANITES)
- playsound(src, "terminal_type", 25, FALSE)
- . = TRUE
- if("set_restart_timer")
- var/timer = text2num(params["delay"])
- if(!isnull(timer))
- playsound(src, "terminal_type", 25, FALSE)
- timer = clamp(round(timer, 1), 0, 3600)
- timer *= 10 //convert to deciseconds
- program.timer_restart = timer
- investigate_log("[key_name(usr)] edited [program.name]'s restart timer into [timer/10] s", INVESTIGATE_NANITES)
- . = TRUE
- if("set_shutdown_timer")
- var/timer = text2num(params["delay"])
- if(!isnull(timer))
- playsound(src, "terminal_type", 25, FALSE)
- timer = clamp(round(timer, 1), 0, 3600)
- timer *= 10 //convert to deciseconds
- program.timer_shutdown = timer
- investigate_log("[key_name(usr)] edited [program.name]'s shutdown timer into [timer/10] s", INVESTIGATE_NANITES)
- . = TRUE
- if("set_trigger_timer")
- var/timer = text2num(params["delay"])
- if(!isnull(timer))
- playsound(src, "terminal_type", 25, FALSE)
- timer = clamp(round(timer, 1), 0, 3600)
- timer *= 10 //convert to deciseconds
- program.timer_trigger = timer
- investigate_log("[key_name(usr)] edited [program.name]'s trigger timer into [timer/10] s", INVESTIGATE_NANITES)
- . = TRUE
- if("set_timer_trigger_delay")
- var/timer = text2num(params["delay"])
- if(!isnull(timer))
- playsound(src, "terminal_type", 25, FALSE)
- timer = clamp(round(timer, 1), 0, 3600)
- timer *= 10 //convert to deciseconds
- program.timer_trigger_delay = timer
- investigate_log("[key_name(usr)] edited [program.name]'s trigger delay timer into [timer/10] s", INVESTIGATE_NANITES)
- . = TRUE
-
-/obj/machinery/nanite_programmer/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, list/message_mods = list())
- . = ..()
- var/static/regex/when = regex("(?:^\\W*when|when\\W*$)", "i") //starts or ends with when
- if(findtext(raw_message, when) && !istype(speaker, /obj/machinery/nanite_programmer))
- say("When you code it!!")
diff --git a/code/modules/research/nanites/nanite_programs.dm b/code/modules/research/nanites/nanite_programs.dm
deleted file mode 100644
index 0b26b4e79f0..00000000000
--- a/code/modules/research/nanites/nanite_programs.dm
+++ /dev/null
@@ -1,335 +0,0 @@
-/datum/nanite_program
- var/name = "Generic Nanite Program"
- var/desc = "Warn a coder if you can read this."
-
- var/datum/component/nanites/nanites
- var/mob/living/host_mob
-
- var/use_rate = 0 //Amount of nanites used while active
- var/unique = TRUE //If there can be more than one copy in the same nanites
- var/can_trigger = FALSE //If the nanites have a trigger function (used for the programming UI)
- var/trigger_cost = 0 //Amount of nanites required to trigger
- var/trigger_cooldown = 50 //Deciseconds required between each trigger activation
- var/next_trigger = 0 //World time required for the next trigger activation
-
- var/program_flags = NONE
- var/passive_enabled = FALSE //If the nanites have an on/off-style effect, it's tracked by this var
-
- var/list/rogue_types = list(/datum/nanite_program/glitch) //What this can turn into if it glitches.
- //As a rule of thumb, these should be:
- //A: simpler
- //B: negative
- //C: affecting the same parts of the body, roughly
- //B is mostly a consequence of A: it's always going to be simpler to cause damage than to repair it, so a software bug will not randomly make the flesh eating
- //nanites learn how to repair cells.
- //Given enough glitch-swapping you'll end up with stuff like necrotic or toxic nanites, which are very simple as they just try to eat what's in front of them
- //or just lie around polluting the blood
-
-
- //The following vars are customizable
- var/activated = TRUE //If FALSE, the program won't process, disables passive effects, can't trigger and doesn't consume nanites
-
- var/timer_restart = 0 //When deactivated, the program will wait X deciseconds before self-reactivating. Also works if the program begins deactivated.
- var/timer_shutdown = 0 //When activated, the program will wait X deciseconds before self-deactivating. Also works if the program begins activated.
- var/timer_trigger = 0 //[Trigger only] While active, the program will attempt to trigger once every x deciseconds.
- var/timer_trigger_delay = 0 //[Trigger only] While active, the program will delay trigger signals by X deciseconds.
-
- //Indicates the next world.time tick where these timers will act
- var/timer_restart_next = 0
- var/timer_shutdown_next = 0
- var/timer_trigger_next = 0
- var/timer_trigger_delay_next = 0
-
- //Signal codes, these handle remote input to the nanites. If set to 0 they'll ignore signals.
- var/activation_code = 0 //Code that activates the program [1-9999]
- var/deactivation_code = 0 //Code that deactivates the program [1-9999]
- var/kill_code = 0 //Code that permanently removes the program [1-9999]
- var/trigger_code = 0 //Code that triggers the program (if available) [1-9999]
-
- //Extra settings
- ///Don't ever override this or I will come to your house and stand menacingly behind a bush
- VAR_FINAL/list/extra_settings = list()
-
- //Rules
- //Rules that automatically manage if the program's active without requiring separate sensor programs
- var/list/datum/nanite_rule/rules = list()
- var/all_rules_required = TRUE //Whether all rules are required for positive condition or any of specified
-
-/datum/nanite_program/New()
- . = ..()
- register_extra_settings()
-
-/datum/nanite_program/Destroy()
- extra_settings = null
- if(host_mob)
- if(activated)
- deactivate()
- if(passive_enabled)
- disable_passive_effect()
- on_mob_remove()
- if(nanites)
- nanites.programs -= src
- for(var/datum/nanite_rule/rule as anything in rules)
- rule.remove()
- rules.Cut()
- return ..()
-
-/datum/nanite_program/proc/copy()
- var/datum/nanite_program/new_program = new type()
- copy_programming(new_program, TRUE)
-
- return new_program
-
-/datum/nanite_program/proc/copy_programming(datum/nanite_program/target, copy_activated = TRUE)
- if(copy_activated)
- target.activated = activated
- target.timer_restart = timer_restart
- target.timer_shutdown = timer_shutdown
- target.timer_trigger = timer_trigger
- target.timer_trigger_delay = timer_trigger_delay
- target.activation_code = activation_code
- target.deactivation_code = deactivation_code
- target.kill_code = kill_code
- target.trigger_code = trigger_code
-
- target.rules = list()
- for(var/R in rules)
- var/datum/nanite_rule/rule = R
- rule.copy_to(target)
- target.all_rules_required = all_rules_required
-
- if(istype(target,src))
- copy_extra_settings_to(target)
-
-/// Register extra settings by overriding this.
-///
-/// `extra_settings[name] = new typepath()` for each extra setting.
-/datum/nanite_program/proc/register_extra_settings()
- return
-
-///You can override this if you need to have special behavior after setting certain settings.
-/datum/nanite_program/proc/set_extra_setting(setting, value)
- var/datum/nanite_extra_setting/ES = extra_settings[setting]
- return ES.set_value(value)
-
-///You probably shouldn't be overriding this one, but I'm not a cop.
-/datum/nanite_program/proc/get_extra_setting_value(setting)
- var/datum/nanite_extra_setting/ES = extra_settings[setting]
- return ES.get_value()
-
-///Used for getting information about the extra settings to the frontend
-/datum/nanite_program/proc/get_extra_settings_frontend()
- var/list/out = list()
- for(var/name in extra_settings)
- var/datum/nanite_extra_setting/ES = extra_settings[name]
- out += ES.get_frontend_list(name)
- return out
-
-///Copy of the list instead of direct reference for obvious reasons
-/datum/nanite_program/proc/copy_extra_settings_to(datum/nanite_program/target)
- var/list/copy_list = list()
- for(var/ns_name in extra_settings)
- var/datum/nanite_extra_setting/extra_setting = extra_settings[ns_name]
- copy_list[ns_name] = extra_setting.get_copy()
- target.extra_settings = copy_list
-
-/datum/nanite_program/proc/on_add(datum/component/nanites/_nanites)
- nanites = _nanites
- if(nanites.host_mob)
- on_mob_add()
-
-/datum/nanite_program/proc/on_mob_add()
- host_mob = nanites.host_mob
- if(activated) //apply activation effects depending on initial status; starts the restart and shutdown timers
- activate()
- else
- deactivate()
-
-/datum/nanite_program/proc/on_mob_remove()
- return
-
-/datum/nanite_program/proc/toggle()
- if(!activated)
- activate()
- else
- deactivate()
-
-/datum/nanite_program/proc/activate()
- activated = TRUE
- if(timer_shutdown)
- timer_shutdown_next = world.time + timer_shutdown
-
-/datum/nanite_program/proc/deactivate()
- if(passive_enabled)
- disable_passive_effect()
- activated = FALSE
- if(timer_restart)
- timer_restart_next = world.time + timer_restart
-
-/datum/nanite_program/proc/on_process()
- if(!activated)
- if(timer_restart_next && world.time > timer_restart_next)
- activate()
- timer_restart_next = 0
- return
-
- if(timer_shutdown_next && world.time > timer_shutdown_next)
- deactivate()
- timer_shutdown_next = 0
- return
-
- if(timer_trigger && world.time > timer_trigger_next)
- trigger()
- timer_trigger_next = world.time + timer_trigger
- return
-
- if(timer_trigger_delay_next && world.time > timer_trigger_delay_next)
- trigger(delayed = TRUE)
- timer_trigger_delay_next = 0
- return
-
- if(check_conditions() && consume_nanites(use_rate))
- if(!passive_enabled)
- enable_passive_effect()
- active_effect()
- else
- if(passive_enabled)
- disable_passive_effect()
-
-//If false, disables active, passive effects, and triggers without consuming nanites
-//Can be used to avoid consuming nanites for nothing
-/datum/nanite_program/proc/check_conditions()
- if (!LAZYLEN(rules))
- return TRUE
- for(var/R in rules)
- var/datum/nanite_rule/rule = R
- if(!all_rules_required && rule.check_rule())
- return TRUE
- if(all_rules_required && !rule.check_rule())
- return FALSE
- return all_rules_required ? TRUE : FALSE
-
-//Constantly procs as long as the program is active
-/datum/nanite_program/proc/active_effect()
- return
-
-//Procs once when the program activates
-/datum/nanite_program/proc/enable_passive_effect()
- passive_enabled = TRUE
-
-//Procs once when the program deactivates
-/datum/nanite_program/proc/disable_passive_effect()
- passive_enabled = FALSE
-
-//Checks conditions then fires the nanite trigger effect
-/datum/nanite_program/proc/trigger(delayed = FALSE, comm_message)
- if(!can_trigger)
- return
- if(!activated)
- return
- if(timer_trigger_delay && !delayed)
- timer_trigger_delay_next = world.time + timer_trigger_delay
- return
- if(world.time < next_trigger)
- return
- if(!check_conditions())
- return
- if(!consume_nanites(trigger_cost))
- return
- next_trigger = world.time + trigger_cooldown
- on_trigger(comm_message)
-
-//Nanite trigger effect, requires can_trigger to be used
-/datum/nanite_program/proc/on_trigger(comm_message)
- return
-
-/datum/nanite_program/proc/consume_nanites(amount, force = FALSE)
- return nanites.consume_nanites(amount, force)
-
-/datum/nanite_program/proc/on_emp(severity)
- if(program_flags & NANITE_EMP_IMMUNE)
- return
- if(prob(80 / severity))
- host_mob.investigate_log("[src] nanite program received a software error due to emp.", INVESTIGATE_NANITES)
- software_error()
-
-/datum/nanite_program/proc/on_shock(shock_damage)
- if(!(program_flags & NANITE_SHOCK_IMMUNE))
- if(prob(10))
- host_mob.investigate_log("[src] nanite program received a software error due to shock.", INVESTIGATE_NANITES)
- software_error()
- else if(prob(33))
- host_mob.investigate_log("[src] nanite program was deleted due to shock.", INVESTIGATE_NANITES)
- qdel(src)
-
-/datum/nanite_program/proc/on_minor_shock()
- if(!(program_flags & NANITE_SHOCK_IMMUNE))
- if(prob(10))
- host_mob.investigate_log("[src] nanite program received a software error due to minor shock.", INVESTIGATE_NANITES)
- software_error()
-
-/datum/nanite_program/proc/on_death()
- return
-
-/datum/nanite_program/proc/software_error(type)
- if(!type)
- type = rand(1,5)
- switch(type)
- if(1)
- host_mob.investigate_log("[src] nanite program was deleted by software error.", INVESTIGATE_NANITES)
- qdel(src) //kill switch
- return
- if(2) //deprogram codes
- host_mob.investigate_log("[src] nanite program was de-programmed by software error.", INVESTIGATE_NANITES)
- activation_code = 0
- deactivation_code = 0
- kill_code = 0
- trigger_code = 0
- if(3)
- host_mob.investigate_log("[src] nanite program was toggled by software error.", INVESTIGATE_NANITES)
- toggle() //enable/disable
- if(4)
- if(can_trigger)
- host_mob.investigate_log("[src] nanite program was triggered by software error.", INVESTIGATE_NANITES)
- trigger()
- if(5) //Program is scrambled and does something different
- var/rogue_type = pick(rogue_types)
- var/datum/nanite_program/rogue = new rogue_type
- host_mob.investigate_log("[src] nanite program was converted into [rogue.name] by software error.", INVESTIGATE_NANITES)
- nanites.add_program(null, rogue, src)
- qdel(src)
-
-/datum/nanite_program/proc/receive_signal(code, source)
- if(activation_code && code == activation_code && !activated)
- activate()
- host_mob.investigate_log("'s [name] nanite program was activated by [source] with code [code].", INVESTIGATE_NANITES)
- else if(deactivation_code && code == deactivation_code && activated)
- deactivate()
- host_mob.investigate_log("'s [name] nanite program was deactivated by [source] with code [code].", INVESTIGATE_NANITES)
- if(can_trigger && trigger_code && code == trigger_code)
- trigger()
- host_mob.investigate_log("'s [name] nanite program was triggered by [source] with code [code].", INVESTIGATE_NANITES)
- if(kill_code && code == kill_code)
- host_mob.investigate_log("'s [name] nanite program was deleted by [source] with code [code].", INVESTIGATE_NANITES)
- qdel(src)
-
-///A nanite program containing a behaviour protocol. Only one protocol of each class can be active at once.
-/datum/nanite_program/protocol
- name = "Nanite Protocol"
- var/protocol_class = NONE
-
-/datum/nanite_program/protocol/check_conditions()
- . = ..()
- for(var/protocol in nanites.protocols)
- var/datum/nanite_program/protocol/P = protocol
- if(P != src && P.activated && P.protocol_class == protocol_class)
- return FALSE
-
-/datum/nanite_program/protocol/on_add(datum/component/nanites/_nanites)
- ..()
- nanites.protocols += src
-
-/datum/nanite_program/protocol/Destroy()
- if(nanites)
- nanites.protocols -= src
- return ..()
diff --git a/code/modules/research/nanites/nanite_programs/buffing.dm b/code/modules/research/nanites/nanite_programs/buffing.dm
deleted file mode 100644
index 5987105a08e..00000000000
--- a/code/modules/research/nanites/nanite_programs/buffing.dm
+++ /dev/null
@@ -1,111 +0,0 @@
-//Programs that buff the host in generally passive ways.
-
-/datum/nanite_program/nervous
- name = "Nerve Support"
- desc = "The nanites act as a secondary nervous system, reducing the amount of time the host is stunned."
- use_rate = 1.5
- rogue_types = list(/datum/nanite_program/nerve_decay)
-
-/datum/nanite_program/nervous/enable_passive_effect()
- . = ..()
- if(ishuman(host_mob))
- var/mob/living/carbon/human/H = host_mob
- H.physiology.stun_mod *= 0.5
-
-/datum/nanite_program/nervous/disable_passive_effect()
- . = ..()
- if(ishuman(host_mob))
- var/mob/living/carbon/human/H = host_mob
- H.physiology.stun_mod *= 2
-
-/datum/nanite_program/hardening
- name = "Dermal Hardening"
- desc = "The nanites form a mesh under the host's skin, protecting them from melee and bullet impacts."
- use_rate = 0.5
- rogue_types = list(/datum/nanite_program/skin_decay)
-
-//TODO on_hit effect that turns skin grey for a moment
-
-/datum/nanite_program/hardening/enable_passive_effect()
- . = ..()
- if(ishuman(host_mob))
- var/mob/living/carbon/human/H = host_mob
- H.physiology.armor.melee += 25
- H.physiology.armor.bullet += 20
-
-/datum/nanite_program/hardening/disable_passive_effect()
- . = ..()
- if(ishuman(host_mob))
- var/mob/living/carbon/human/H = host_mob
- H.physiology.armor.melee -= 25
- H.physiology.armor.bullet -= 20
-
-/datum/nanite_program/refractive
- name = "Dermal Refractive Surface"
- desc = "The nanites form a membrane above the host's skin, reducing the effect of laser and energy impacts."
- use_rate = 0.50
- rogue_types = list(/datum/nanite_program/skin_decay)
-
-/datum/nanite_program/refractive/enable_passive_effect()
- . = ..()
- if(ishuman(host_mob))
- var/mob/living/carbon/human/H = host_mob
- H.physiology.armor.laser += 25
- H.physiology.armor.energy += 20
-
-/datum/nanite_program/refractive/disable_passive_effect()
- . = ..()
- if(ishuman(host_mob))
- var/mob/living/carbon/human/H = host_mob
- H.physiology.armor.laser -= 25
- H.physiology.armor.energy -= 20
-
-/datum/nanite_program/coagulating
- name = "Vein Repressurization"
- desc = "The nanites re-route circulating blood away from open wounds, dramatically reducing bleeding rate."
- use_rate = 0.20
- rogue_types = list(/datum/nanite_program/suffocating)
-
-/datum/nanite_program/coagulating/enable_passive_effect()
- . = ..()
- if(ishuman(host_mob))
- var/mob/living/carbon/human/H = host_mob
- H.physiology.bleed_mod *= 0.5
-
-/datum/nanite_program/coagulating/disable_passive_effect()
- . = ..()
- if(ishuman(host_mob))
- var/mob/living/carbon/human/H = host_mob
- H.physiology.bleed_mod *= 2
-
-/datum/nanite_program/conductive
- name = "Electric Conduction"
- desc = "The nanites act as a grounding rod for electric shocks, protecting the host. Shocks can still damage the nanites themselves."
- use_rate = 0.20
- program_flags = NANITE_SHOCK_IMMUNE
- rogue_types = list(/datum/nanite_program/nerve_decay)
-
-/datum/nanite_program/conductive/enable_passive_effect()
- . = ..()
- ADD_TRAIT(host_mob, TRAIT_SHOCKIMMUNE, NANITES_TRAIT)
-
-/datum/nanite_program/conductive/disable_passive_effect()
- . = ..()
- REMOVE_TRAIT(host_mob, TRAIT_SHOCKIMMUNE, NANITES_TRAIT)
-
-/datum/nanite_program/mindshield
- name = "Mental Barrier"
- desc = "The nanites form a protective membrane around the host's brain, shielding them from abnormal influences while they're active."
- use_rate = 0.40
- rogue_types = list(/datum/nanite_program/brain_decay, /datum/nanite_program/brain_misfire)
-
-/datum/nanite_program/mindshield/enable_passive_effect()
- . = ..()
- if(!host_mob.mind.has_antag_datum(/datum/antagonist/rev, TRUE)) //won't work if on a rev, to avoid having implanted revs.
- ADD_TRAIT(host_mob, TRAIT_MINDSHIELD, NANITES_TRAIT)
- host_mob.sec_hud_set_implants()
-
-/datum/nanite_program/mindshield/disable_passive_effect()
- . = ..()
- REMOVE_TRAIT(host_mob, TRAIT_MINDSHIELD, NANITES_TRAIT)
- host_mob.sec_hud_set_implants()
diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm
deleted file mode 100644
index 6356026121a..00000000000
--- a/code/modules/research/nanites/nanite_programs/healing.dm
+++ /dev/null
@@ -1,230 +0,0 @@
-//Programs that heal the host in some way.
-
-/datum/nanite_program/regenerative
- name = "Accelerated Regeneration"
- desc = "The nanites boost the host's natural regeneration, increasing their healing speed. Will not consume nanites while the host is unharmed."
- use_rate = 0.5
- rogue_types = list(/datum/nanite_program/necrotic)
-
-/datum/nanite_program/regenerative/check_conditions()
- if(!host_mob.getBruteLoss() && !host_mob.getFireLoss())
- return FALSE
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- var/list/parts = C.get_damaged_bodyparts(TRUE,TRUE, status = BODYPART_ORGANIC)
- if(!parts.len)
- return FALSE
- return ..()
-
-/datum/nanite_program/regenerative/active_effect()
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- var/list/parts = C.get_damaged_bodyparts(TRUE,TRUE, status = BODYPART_ORGANIC)
- if(!parts.len)
- return
- for(var/obj/item/bodypart/L in parts)
- if(L.heal_damage(0.5/parts.len, 0.5/parts.len, null, BODYPART_ORGANIC))
- host_mob.update_damage_overlays()
- else
- host_mob.adjustBruteLoss(-0.5, TRUE)
- host_mob.adjustFireLoss(-0.5, TRUE)
-
-/datum/nanite_program/temperature
- name = "Temperature Adjustment"
- desc = "The nanites adjust the host's internal temperature to an ideal level. Will not consume nanites while the host is at a normal body temperature."
- use_rate = 3.5
- rogue_types = list(/datum/nanite_program/skin_decay)
-
-/datum/nanite_program/temperature/check_conditions()
- if(host_mob.bodytemperature > (host_mob.get_body_temp_normal(apply_change=FALSE) - 30) && host_mob.bodytemperature < (host_mob.get_body_temp_normal(apply_change=FALSE) + 30))
- return FALSE
- return ..()
-
-/datum/nanite_program/temperature/active_effect()
- var/target_temp = host_mob.get_body_temp_normal(apply_change=FALSE)
- if(host_mob.bodytemperature > target_temp)
- host_mob.adjust_bodytemperature(-40 * TEMPERATURE_DAMAGE_COEFFICIENT, target_temp)
- else if(host_mob.bodytemperature < (target_temp + 1))
- host_mob.adjust_bodytemperature(40 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, target_temp)
-
-/datum/nanite_program/purging
- name = "Blood Purification"
- desc = "The nanites purge toxins and chemicals from the host's bloodstream. Consumes nanites even if it has no effect."
- use_rate = 1
- rogue_types = list(/datum/nanite_program/suffocating, /datum/nanite_program/necrotic)
-
-/datum/nanite_program/purging/check_conditions()
- . = ..()
- if(!. || !host_mob.reagents)
- return FALSE // No trying to purge simple mobs
-
-/datum/nanite_program/purging/active_effect()
- host_mob.adjustToxLoss(-1)
- for(var/datum/reagent/R in host_mob.reagents.reagent_list)
- host_mob.reagents.remove_reagent(R.type,1)
-
-/datum/nanite_program/brain_heal
- name = "Neural Regeneration"
- desc = "The nanites fix neural connections in the host's brain, reversing brain damage and minor traumas. Will not consume nanites while it would not have an effect."
- use_rate = 1.5
- rogue_types = list(/datum/nanite_program/brain_decay)
-
-/datum/nanite_program/brain_heal/check_conditions()
- if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN) > 0)
- return ..()
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- if ( C.has_trauma_type( resilience = TRAUMA_RESILIENCE_BASIC) )
- return ..()
- return FALSE
-
-/datum/nanite_program/brain_heal/active_effect()
- host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1)
- if(iscarbon(host_mob) && prob(10))
- var/mob/living/carbon/C = host_mob
- C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC)
-
-/datum/nanite_program/blood_restoring
- name = "Blood Regeneration"
- desc = "The nanites stimulate and boost blood cell production in the host. Will not consume nanites while the host has a safe blood level."
- use_rate = 1
- rogue_types = list(/datum/nanite_program/suffocating)
-
-/datum/nanite_program/blood_restoring/check_conditions()
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- if(C.blood_volume >= BLOOD_VOLUME_SAFE)
- return FALSE
- else
- return FALSE
- return ..()
-
-/datum/nanite_program/blood_restoring/active_effect()
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- C.blood_volume += 2
-
-/datum/nanite_program/repairing
- name = "Mechanical Repair"
- desc = "The nanites fix damage in the host's mechanical limbs. Will not consume nanites while the host's mechanical limbs are undamaged, or while the host has no mechanical limbs."
- use_rate = 0.5
- rogue_types = list(/datum/nanite_program/necrotic)
-
-/datum/nanite_program/repairing/check_conditions()
- if(!host_mob.getBruteLoss() && !host_mob.getFireLoss())
- return FALSE
-
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- var/list/parts = C.get_damaged_bodyparts(TRUE, TRUE, status = BODYPART_ROBOTIC)
- if(!parts.len)
- return FALSE
- else
- if(!(host_mob.mob_biotypes & MOB_ROBOTIC))
- return FALSE
- return ..()
-
-/datum/nanite_program/repairing/active_effect(mob/living/M)
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- var/list/parts = C.get_damaged_bodyparts(TRUE, TRUE, status = BODYPART_ROBOTIC)
- if(!parts.len)
- return
- var/update = FALSE
- for(var/obj/item/bodypart/L in parts)
- if(L.heal_damage(1/parts.len, 1/parts.len, null, BODYPART_ROBOTIC)) //much faster than organic healing
- update = TRUE
- if(update)
- host_mob.update_damage_overlays()
- else
- host_mob.adjustBruteLoss(-1, TRUE)
- host_mob.adjustFireLoss(-1, TRUE)
-
-/datum/nanite_program/purging_advanced
- name = "Selective Blood Purification"
- desc = "The nanites purge toxins and dangerous chemicals from the host's bloodstream, while ignoring beneficial chemicals. \
- The added processing power required to analyze the chemicals severely increases the nanite consumption rate. Consumes nanites even if it has no effect."
- use_rate = 2
- rogue_types = list(/datum/nanite_program/suffocating, /datum/nanite_program/necrotic)
-
-/datum/nanite_program/purging_advanced/check_conditions()
- . = ..()
- if(!. || !host_mob.reagents)
- return FALSE
-
-/datum/nanite_program/purging_advanced/active_effect()
- host_mob.adjustToxLoss(-1)
- for(var/datum/reagent/toxin/R in host_mob.reagents.reagent_list)
- host_mob.reagents.remove_reagent(R.type,1)
-
-/datum/nanite_program/regenerative_advanced
- name = "Bio-Reconstruction"
- desc = "The nanites manually repair and replace organic cells, acting much faster than normal regeneration. \
- However, this program cannot detect the difference between harmed and unharmed, causing it to consume nanites even if it has no effect."
- use_rate = 5.5
- rogue_types = list(/datum/nanite_program/suffocating, /datum/nanite_program/necrotic)
-
-/datum/nanite_program/regenerative_advanced/active_effect()
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- var/list/parts = C.get_damaged_bodyparts(TRUE,TRUE, status = BODYPART_ORGANIC)
- if(!parts.len)
- return
- var/update = FALSE
- for(var/obj/item/bodypart/L in parts)
- if(L.heal_damage(2/parts.len, 2/parts.len, null, BODYPART_ORGANIC))
- update = TRUE
- if(update)
- host_mob.update_damage_overlays()
- else
- host_mob.adjustBruteLoss(-2, TRUE)
- host_mob.adjustFireLoss(-2, TRUE)
-
-/datum/nanite_program/brain_heal_advanced
- name = "Neural Reimaging"
- desc = "The nanites are able to backup and restore the host's neural connections, potentially replacing entire chunks of missing or damaged brain matter. Consumes nanites even if it has no effect."
- use_rate = 3
- rogue_types = list(/datum/nanite_program/brain_decay, /datum/nanite_program/brain_misfire)
-
-/datum/nanite_program/brain_heal_advanced/active_effect()
- host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -2)
- if(iscarbon(host_mob) && prob(10))
- var/mob/living/carbon/C = host_mob
- C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_LOBOTOMY)
-
-/datum/nanite_program/defib
- name = "Defibrillation"
- desc = "The nanites shock the host's heart when triggered, bringing them back to life if the body can sustain it."
- can_trigger = TRUE
- trigger_cost = 25
- trigger_cooldown = 120
- rogue_types = list(/datum/nanite_program/shocking)
-
-/datum/nanite_program/defib/on_trigger(comm_message)
- host_mob.notify_ghost_cloning("Your heart is being defibrillated by nanites. Re-enter your corpse if you want to be revived!")
- addtimer(CALLBACK(src, .proc/zap), 50)
-
-/datum/nanite_program/defib/proc/check_revivable()
- if(!iscarbon(host_mob)) //nonstandard biology
- return FALSE
- var/mob/living/carbon/C = host_mob
- if(C.get_ghost())
- return FALSE
- return C.can_defib() == DEFIB_POSSIBLE
-
-/datum/nanite_program/defib/proc/zap()
- var/mob/living/carbon/C = host_mob
- playsound(C, 'sound/machines/defib_charge.ogg', 50, FALSE)
- sleep(30)
- playsound(C, 'sound/machines/defib_zap.ogg', 50, FALSE)
- if(check_revivable())
- playsound(C, 'sound/machines/defib_success.ogg', 50, FALSE)
- C.set_heartattack(FALSE)
- C.revive(full_heal = FALSE, admin_revive = FALSE)
- C.emote("gasp")
- C.Jitter(100)
- SEND_SIGNAL(C, COMSIG_LIVING_MINOR_SHOCK)
- log_game("[C] has been successfully defibrillated by nanites.")
- else
- playsound(C, 'sound/machines/defib_failed.ogg', 50, FALSE)
-
diff --git a/code/modules/research/nanites/nanite_programs/protocols.dm b/code/modules/research/nanites/nanite_programs/protocols.dm
deleted file mode 100644
index c0198f67a74..00000000000
--- a/code/modules/research/nanites/nanite_programs/protocols.dm
+++ /dev/null
@@ -1,277 +0,0 @@
-//Replication Protocols
-/datum/nanite_program/protocol/kickstart
- name = "Kickstart Protocol"
- desc = "Replication Protocol: the nanites focus on early growth, heavily boosting replication rate for a few minutes after the initial implantation, \
- resulting in an additional 420 nanite volume being produced during the first two minutes."
- use_rate = 0
- rogue_types = list(/datum/nanite_program/necrotic)
- protocol_class = NANITE_PROTOCOL_REPLICATION
- var/boost_duration = 1200
-
-/datum/nanite_program/protocol/kickstart/check_conditions()
- if(!(world.time < nanites.start_time + boost_duration))
- return FALSE
- return ..()
-
-/datum/nanite_program/protocol/kickstart/active_effect()
- nanites.adjust_nanites(null, 3.5)
-
-/datum/nanite_program/protocol/factory
- name = "Factory Protocol"
- desc = "Replication Protocol: the nanites build a factory matrix within the host, gradually increasing replication speed over time, \
- granting a maximum of 2 additional nanite production after roughly 17 minutes. \
- The factory decays if the protocol is not active, or if the nanites are disrupted by shocks or EMPs."
- use_rate = 0
- rogue_types = list(/datum/nanite_program/necrotic)
- protocol_class = NANITE_PROTOCOL_REPLICATION
- var/factory_efficiency = 0
- var/max_efficiency = 1000 //Goes up to 2 bonus regen per tick after 16 minutes and 40 seconds
-
-/datum/nanite_program/protocol/factory/on_process()
- if(!activated || !check_conditions())
- factory_efficiency = max(0, factory_efficiency - 5)
- ..()
-
-/datum/nanite_program/protocol/factory/on_emp(severity)
- ..()
- factory_efficiency = max(0, factory_efficiency - 300)
-
-/datum/nanite_program/protocol/factory/on_shock(shock_damage)
- ..()
- factory_efficiency = max(0, factory_efficiency - 200)
-
-/datum/nanite_program/protocol/factory/on_minor_shock()
- ..()
- factory_efficiency = max(0, factory_efficiency - 100)
-
-/datum/nanite_program/protocol/factory/active_effect()
- factory_efficiency = min(factory_efficiency + 1, max_efficiency)
- nanites.adjust_nanites(null, round(0.002 * factory_efficiency, 0.1))
-
-/datum/nanite_program/protocol/pyramid
- name = "Pyramid Protocol"
- desc = "Replication Protocol: the nanites implement an alternate cooperative replication protocol that is active as long as the nanite saturation level is above 80%, \
- resulting in an additional volume production of 1.2 per second."
- use_rate = 0
- rogue_types = list(/datum/nanite_program/necrotic)
- protocol_class = NANITE_PROTOCOL_REPLICATION
- var/boost = 1.2
-
-/datum/nanite_program/protocol/pyramid/check_conditions()
- if((nanites.nanite_volume / nanites.max_nanites) < 0.8)
- return FALSE
-
- return ..()
-
-/datum/nanite_program/protocol/pyramid/active_effect()
- nanites.adjust_nanites(null, boost)
-
-/datum/nanite_program/protocol/offline
- name = "Eclipse Protocol"
- desc = "Replication Protocol: while the host is asleep or otherwise unconcious, the nanites exploit the reduced interference to replicate more quickly."
- use_rate = 0
- rogue_types = list(/datum/nanite_program/necrotic)
- protocol_class = NANITE_PROTOCOL_REPLICATION
- var/boost = 3
-
-
-/datum/nanite_program/protocol/offline/check_conditions()
- if(nanites.host_mob.stat == CONSCIOUS)
- return FALSE
- return ..()
-
-
-/datum/nanite_program/protocol/offline/active_effect()
- nanites.adjust_nanites(null, boost)
-
-/datum/nanite_program/protocol/hive
- name = "Hive Protocol"
- desc = "Storage Protocol: the nanites use a more efficient grid arrangment for volume storage, increasing maximum volume to 750."
- use_rate = 0
- rogue_types = list(/datum/nanite_program/necrotic)
- protocol_class = NANITE_PROTOCOL_STORAGE
- var/extra_volume = 250
-
-/datum/nanite_program/protocol/hive/enable_passive_effect()
- . = ..()
- nanites.set_max_volume(null, nanites.max_nanites + extra_volume)
-
-/datum/nanite_program/protocol/hive/disable_passive_effect()
- . = ..()
- nanites.set_max_volume(null, nanites.max_nanites - extra_volume)
-
-/datum/nanite_program/protocol/zip
- name = "Zip Protocol"
- desc = "Storage Protocol: the nanites are disassembled and compacted when unused, increasing the maximum volume to 1000. However, the process slows down their replication rate slightly."
- use_rate = 0.2
- rogue_types = list(/datum/nanite_program/necrotic)
- protocol_class = NANITE_PROTOCOL_STORAGE
- var/extra_volume = 500
-
-/datum/nanite_program/protocol/zip/enable_passive_effect()
- . = ..()
- nanites.set_max_volume(null, nanites.max_nanites + extra_volume)
-
-/datum/nanite_program/protocol/zip/disable_passive_effect()
- . = ..()
- nanites.set_max_volume(null, nanites.max_nanites - extra_volume)
-
-/datum/nanite_program/protocol/free_range
- name = "Free-range Protocol"
- desc = "Storage Protocol: the nanites discard their default storage protocols in favour of a cheaper and more organic approach. Reduces maximum volume to 250, but increases the replication rate by 0.5."
- use_rate = 0
- rogue_types = list(/datum/nanite_program/necrotic)
- protocol_class = NANITE_PROTOCOL_STORAGE
- var/boost = 0.5
- var/extra_volume = -250
-
-/datum/nanite_program/protocol/free_range/enable_passive_effect()
- . = ..()
- nanites.set_max_volume(null, nanites.max_nanites + extra_volume)
-
-/datum/nanite_program/protocol/free_range/disable_passive_effect()
- . = ..()
- nanites.set_max_volume(null, nanites.max_nanites - extra_volume)
-
-/datum/nanite_program/protocol/free_range/active_effect()
- nanites.adjust_nanites(null, boost)
-
-/datum/nanite_program/protocol/unsafe_storage
- name = "S.L.O. Protocol"
- desc = "Storage Protocol: 'S.L.O.P.', or Storage Level Override Protocol, completely disables the safety measures normally present in nanites, \
- allowing them to reach a whopping maximum volume level of 2000, but at the risk of causing damage to the host at nanite concentrations above the standard limit of 500."
- use_rate = 0
- rogue_types = list(/datum/nanite_program/necrotic)
- protocol_class = NANITE_PROTOCOL_STORAGE
- var/extra_volume = 1500
- var/next_warning = 0
- var/min_warning_cooldown = 120
- var/max_warning_cooldown = 350
- var/volume_warnings_stage_1 = list("You feel a dull pain in your abdomen.",
- "You feel a tickling sensation in your abdomen.")
- var/volume_warnings_stage_2 = list("You feel a dull pain in your stomach.",
- "You feel a dull pain when breathing.",
- "Your stomach grumbles.",
- "You feel a tickling sensation in your throat.",
- "You feel a tickling sensation in your lungs.",
- "You feel a tickling sensation in your stomach.",
- "Your lungs feel stiff.")
- var/volume_warnings_stage_3 = list("You feel a dull pain in your chest.",
- "You hear a faint buzzing coming from nowhere.",
- "You hear a faint buzzing inside your head.",
- "Your head aches.")
- var/volume_warnings_stage_4 = list("You feel a dull pain in your ears.",
- "You feel a dull pain behind your eyes.",
- "You hear a loud, echoing buzz inside your ears.",
- "You feel dizzy.",
- "You feel an itch coming from behind your eyes.",
- "Your eardrums itch.",
- "You see tiny grey motes drifting in your field of view.")
- var/volume_warnings_stage_5 = list("You feel sick.",
- "You feel a dull pain from every part of your body.",
- "You feel nauseous.")
- var/volume_warnings_stage_6 = list("Your skin itches and burns.",
- "Your muscles ache.",
- "You feel tired.",
- "You feel something skittering under your skin.",)
-
-/datum/nanite_program/protocol/unsafe_storage/enable_passive_effect()
- . = ..()
- nanites.set_max_volume(null, nanites.max_nanites + extra_volume)
-
-/datum/nanite_program/protocol/unsafe_storage/disable_passive_effect()
- . = ..()
- nanites.set_max_volume(null, nanites.max_nanites - extra_volume)
-
-/datum/nanite_program/protocol/unsafe_storage/active_effect()
- if(!iscarbon(host_mob))
- if(prob(10))
- host_mob.adjustBruteLoss(((max(nanites.nanite_volume - 450, 0) / 450) ** 2 ) * 0.5) // 0.5 -> 2 -> 4.5 -> 8 damage per successful tick
- return
-
- var/mob/living/carbon/C = host_mob
-
- if(nanites.nanite_volume < 500)
- return
-
- var/current_stage = 0
- if(nanites.nanite_volume > 500) //Liver is the main hub of nanite replication and the first to be threatened by excess volume
- if(prob(10))
- var/obj/item/organ/liver/liver = C.getorganslot(ORGAN_SLOT_LIVER)
- if(liver)
- liver.applyOrganDamage(0.6)
- current_stage++
- if(nanites.nanite_volume > 750) //Extra volume spills out in other central organs
- if(prob(10))
- var/obj/item/organ/stomach/stomach = C.getorganslot(ORGAN_SLOT_STOMACH)
- if(stomach)
- stomach.applyOrganDamage(0.75)
- if(prob(10))
- var/obj/item/organ/lungs/lungs = C.getorganslot(ORGAN_SLOT_LUNGS)
- if(lungs)
- lungs.applyOrganDamage(0.75)
- current_stage++
- if(nanites.nanite_volume > 1000) //Extra volume spills out in more critical organs
- if(prob(10))
- var/obj/item/organ/heart/heart = C.getorganslot(ORGAN_SLOT_HEART)
- if(heart)
- heart.applyOrganDamage(0.75)
- if(prob(10))
- var/obj/item/organ/brain/brain = C.getorganslot(ORGAN_SLOT_BRAIN)
- if(brain)
- brain.applyOrganDamage(0.75)
- current_stage++
- if(nanites.nanite_volume > 1250) //Excess nanites start invading smaller organs for more space, including sensory organs
- if(prob(13))
- var/obj/item/organ/eyes/eyes = C.getorganslot(ORGAN_SLOT_EYES)
- if(eyes)
- eyes.applyOrganDamage(0.75)
- if(prob(13))
- var/obj/item/organ/ears/ears = C.getorganslot(ORGAN_SLOT_EARS)
- if(ears)
- ears.applyOrganDamage(0.75)
- current_stage++
- if(nanites.nanite_volume > 1500) //Nanites start spilling into the bloodstream, causing toxicity
- if(prob(15))
- C.adjustToxLoss(0.5, TRUE, forced = TRUE) //Not healthy for slimepeople either
- current_stage++
- if(nanites.nanite_volume > 1750) //Nanites have almost reached their physical limit, and the pressure itself starts causing tissue damage
- if(prob(15))
- C.adjustBruteLoss(0.75, TRUE)
- current_stage++
-
- volume_warning(current_stage)
-
-/datum/nanite_program/protocol/unsafe_storage/proc/volume_warning(tier)
- if(world.time < next_warning)
- return
-
- var/list/main_warnings
- var/list/extra_warnings
-
- switch(tier)
- if(1)
- main_warnings = volume_warnings_stage_1
- extra_warnings = null
- if(2)
- main_warnings = volume_warnings_stage_2
- extra_warnings = volume_warnings_stage_1
- if(3)
- main_warnings = volume_warnings_stage_3
- extra_warnings = volume_warnings_stage_1 + volume_warnings_stage_2
- if(4)
- main_warnings = volume_warnings_stage_4
- extra_warnings = volume_warnings_stage_1 + volume_warnings_stage_2 + volume_warnings_stage_3
- if(5)
- main_warnings = volume_warnings_stage_5
- extra_warnings = volume_warnings_stage_1 + volume_warnings_stage_2 + volume_warnings_stage_3 + volume_warnings_stage_4
- if(6)
- main_warnings = volume_warnings_stage_6
- extra_warnings = volume_warnings_stage_1 + volume_warnings_stage_2 + volume_warnings_stage_3 + volume_warnings_stage_4 + volume_warnings_stage_5
-
- if(prob(35))
- to_chat(host_mob, span_warning("[pick(main_warnings)]"))
- next_warning = world.time + rand(min_warning_cooldown, max_warning_cooldown)
- else if(islist(extra_warnings))
- to_chat(host_mob, span_warning("[pick(extra_warnings)]"))
- next_warning = world.time + rand(min_warning_cooldown, max_warning_cooldown)
diff --git a/code/modules/research/nanites/nanite_programs/rogue.dm b/code/modules/research/nanites/nanite_programs/rogue.dm
deleted file mode 100644
index c9e5efa9419..00000000000
--- a/code/modules/research/nanites/nanite_programs/rogue.dm
+++ /dev/null
@@ -1,119 +0,0 @@
-//Programs generated through degradation of other complex programs.
-//They generally cause minor damage or annoyance.
-
-//Last stop of the error train
-/datum/nanite_program/glitch
- name = "Glitch"
- desc = "A heavy software corruption that causes nanites to gradually break down."
- use_rate = 1.5
- unique = FALSE
- rogue_types = list()
-
-//Generic body-affecting programs will decay into this
-/datum/nanite_program/necrotic
- name = "Necrosis"
- desc = "The nanites attack internal tissues indiscriminately, causing widespread damage."
- use_rate = 0.75
- unique = FALSE
- rogue_types = list(/datum/nanite_program/glitch)
-
-/datum/nanite_program/necrotic/active_effect()
- host_mob.adjustBruteLoss(0.75, TRUE)
- if(prob(1))
- to_chat(host_mob, span_warning("You feel a mild ache from somewhere inside you."))
-
-//Programs that don't directly interact with the body will decay into this
-/datum/nanite_program/toxic
- name = "Toxin Buildup"
- desc = "The nanites cause a slow but constant toxin buildup inside the host."
- use_rate = 0.25
- unique = FALSE
- rogue_types = list(/datum/nanite_program/glitch)
-
-/datum/nanite_program/toxic/active_effect()
- host_mob.adjustToxLoss(0.5)
- if(prob(1))
- to_chat(host_mob, span_warning("You feel a bit sick."))
-
-//Generic blood-affecting programs will decay into this
-/datum/nanite_program/suffocating
- name = "Hypoxemia"
- desc = "The nanites prevent the host's blood from absorbing oxygen efficiently."
- use_rate = 0.75
- unique = FALSE
- rogue_types = list(/datum/nanite_program/glitch)
-
-/datum/nanite_program/suffocating/active_effect()
- host_mob.adjustOxyLoss(3, 0)
- if(prob(1))
- to_chat(host_mob, span_warning("You feel short of breath."))
-
-//Generic brain-affecting programs will decay into this
-/datum/nanite_program/brain_decay
- name = "Neuro-Necrosis"
- desc = "The nanites seek and attack brain cells, causing extensive neural damage to the host."
- use_rate = 0.75
- unique = FALSE
- rogue_types = list(/datum/nanite_program/necrotic)
-
-/datum/nanite_program/brain_decay/active_effect()
- if(prob(4))
- host_mob.hallucination = min(15, host_mob.hallucination)
- host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1)
-
-//Generic brain-affecting programs can also decay into this
-/datum/nanite_program/brain_misfire
- name = "Brain Misfire"
- desc = "The nanites interfere with neural pathways, causing minor psychological disturbances."
- use_rate = 0.50
- unique = FALSE
- rogue_types = list(/datum/nanite_program/brain_decay)
-
-/datum/nanite_program/brain_misfire/active_effect()
- if(prob(10))
- switch(rand(1,4))
- if(1)
- host_mob.hallucination += 15
- if(2)
- host_mob.add_confusion(10)
- if(3)
- host_mob.drowsyness += 10
- if(4)
- host_mob.slurring += 10
-
-//Generic skin-affecting programs will decay into this
-/datum/nanite_program/skin_decay
- name = "Dermalysis"
- desc = "The nanites attack skin cells, causing irritation, rashes, and minor damage."
- use_rate = 0.25
- unique = FALSE
- rogue_types = list(/datum/nanite_program/necrotic)
-
-/datum/nanite_program/skin_decay/active_effect()
- host_mob.adjustBruteLoss(0.25)
- if(prob(5)) //itching
- var/picked_bodypart = pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)
- var/obj/item/bodypart/bodypart = host_mob.get_bodypart(picked_bodypart)
- var/can_scratch = !host_mob.incapacitated() && get_location_accessible(host_mob, picked_bodypart)
-
- host_mob.visible_message("[can_scratch ? span_warning("[host_mob] scratches [host_mob.p_their()] [bodypart.name].") : ""]",\
- span_warning("Your [bodypart.name] itches. [can_scratch ? " You scratch it." : ""]"))
-
-//Generic nerve-affecting programs will decay into this
-/datum/nanite_program/nerve_decay
- name = "Nerve Decay"
- desc = "The nanites attack the host's nerves, causing lack of coordination and short bursts of paralysis."
- use_rate = 1
- unique = FALSE
- rogue_types = list(/datum/nanite_program/necrotic)
-
-/datum/nanite_program/nerve_decay/active_effect()
- if(prob(5))
- to_chat(host_mob, span_warning("You feel unbalanced!"))
- host_mob.add_confusion(10)
- else if(prob(4))
- to_chat(host_mob, span_warning("You can't feel your hands!"))
- host_mob.drop_all_held_items()
- else if(prob(4))
- to_chat(host_mob, span_warning("You can't feel your legs!"))
- host_mob.Paralyze(30)
diff --git a/code/modules/research/nanites/nanite_programs/sensor.dm b/code/modules/research/nanites/nanite_programs/sensor.dm
deleted file mode 100644
index 458c32b00b2..00000000000
--- a/code/modules/research/nanites/nanite_programs/sensor.dm
+++ /dev/null
@@ -1,314 +0,0 @@
-/datum/nanite_program/sensor
- name = "Sensor Nanites"
- desc = "These nanites send a signal code when a certain condition is met."
- unique = FALSE
- var/can_rule = FALSE
-
-/datum/nanite_program/sensor/register_extra_settings()
- extra_settings[NES_SENT_CODE] = new /datum/nanite_extra_setting/number(0, 1, 9999)
-
-/datum/nanite_program/sensor/proc/check_event()
- return FALSE
-
-/datum/nanite_program/sensor/proc/send_code()
- if(activated)
- var/datum/nanite_extra_setting/ES = extra_settings[NES_SENT_CODE]
- SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, ES.value, "a [name] program")
-
-/datum/nanite_program/sensor/active_effect()
- if(check_event())
- send_code()
-
-/datum/nanite_program/sensor/proc/make_rule(datum/nanite_program/target)
- return
-
-/datum/nanite_program/sensor/repeat
- name = "Signal Repeater"
- desc = "When triggered, sends another signal to the nanites, optionally with a delay."
- can_trigger = TRUE
- trigger_cost = 0
- trigger_cooldown = 10
- var/spent = FALSE
-
-/datum/nanite_program/sensor/repeat/register_extra_settings()
- . = ..()
- extra_settings[NES_DELAY] = new /datum/nanite_extra_setting/number(0, 0, 3600, "s")
-
-/datum/nanite_program/sensor/repeat/on_trigger(comm_message)
- var/datum/nanite_extra_setting/ES = extra_settings[NES_DELAY]
- addtimer(CALLBACK(src, .proc/send_code), ES.get_value() * 10)
-
-/datum/nanite_program/sensor/relay_repeat
- name = "Relay Signal Repeater"
- desc = "When triggered, sends another signal to a relay channel, optionally with a delay."
- can_trigger = TRUE
- trigger_cost = 0
- trigger_cooldown = 10
- var/spent = FALSE
-
-/datum/nanite_program/sensor/relay_repeat/register_extra_settings()
- . = ..()
- extra_settings[NES_RELAY_CHANNEL] = new /datum/nanite_extra_setting/number(1, 1, 9999)
- extra_settings[NES_DELAY] = new /datum/nanite_extra_setting/number(0, 0, 3600, "s")
-
-/datum/nanite_program/sensor/relay_repeat/on_trigger(comm_message)
- var/datum/nanite_extra_setting/ES = extra_settings[NES_DELAY]
- addtimer(CALLBACK(src, .proc/send_code), ES.get_value() * 10)
-
-/datum/nanite_program/sensor/relay_repeat/send_code()
- var/datum/nanite_extra_setting/relay = extra_settings[NES_RELAY_CHANNEL]
- if(activated && relay.get_value())
- for(var/X in SSnanites.nanite_relays)
- var/datum/nanite_program/relay/N = X
- var/datum/nanite_extra_setting/code = extra_settings[NES_SENT_CODE]
- N.relay_signal(code.get_value(), relay.get_value(), "a [name] program")
-
-/datum/nanite_program/sensor/health
- name = "Health Sensor"
- desc = "The nanites receive a signal when the host's health is above/below a target percentage."
- can_rule = TRUE
- var/spent = FALSE
-
-/datum/nanite_program/sensor/health/register_extra_settings()
- . = ..()
- extra_settings[NES_HEALTH_PERCENT] = new /datum/nanite_extra_setting/number(50, -99, 100, "%")
- extra_settings[NES_DIRECTION] = new /datum/nanite_extra_setting/boolean(TRUE, "Above", "Below")
-
-/datum/nanite_program/sensor/health/check_event()
- var/health_percent = host_mob.health / host_mob.maxHealth * 100
- var/datum/nanite_extra_setting/percent = extra_settings[NES_HEALTH_PERCENT]
- var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION]
- var/detected = FALSE
- if(direction.get_value())
- if(health_percent >= percent.get_value())
- detected = TRUE
- else
- if(health_percent < percent.get_value())
- detected = TRUE
-
- if(detected)
- if(!spent)
- spent = TRUE
- return TRUE
- return FALSE
- else
- spent = FALSE
- return FALSE
-
-/datum/nanite_program/sensor/health/make_rule(datum/nanite_program/target)
- var/datum/nanite_rule/health/rule = new(target)
- var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION]
- var/datum/nanite_extra_setting/percent = extra_settings[NES_HEALTH_PERCENT]
- rule.above = direction.get_value()
- rule.threshold = percent.get_value()
- return rule
-
-/datum/nanite_program/sensor/crit
- name = "Critical Health Sensor"
- desc = "The nanites receive a signal when the host first reaches critical health."
- can_rule = TRUE
- var/spent = FALSE
-
-/datum/nanite_program/sensor/crit/check_event()
- if(HAS_TRAIT(host_mob, TRAIT_CRITICAL_CONDITION))
- if(spent)
- return FALSE
- spent = TRUE
- return TRUE
- spent = FALSE
- return FALSE
-
-
-/datum/nanite_program/sensor/crit/make_rule(datum/nanite_program/target)
- var/datum/nanite_rule/crit/rule = new(target)
- return rule
-
-/datum/nanite_program/sensor/death
- name = "Death Sensor"
- desc = "The nanites receive a signal when they detect the host is dead."
- can_rule = TRUE
- var/spent = FALSE
-
-/datum/nanite_program/sensor/death/on_death()
- send_code()
-
-/datum/nanite_program/sensor/death/make_rule(datum/nanite_program/target)
- var/datum/nanite_rule/death/rule = new(target)
- return rule
-
-/datum/nanite_program/sensor/nanite_volume
- name = "Nanite Volume Sensor"
- desc = "The nanites receive a signal when the nanite supply is above/below a certain percentage."
- can_rule = TRUE
- var/spent = FALSE
-
-/datum/nanite_program/sensor/nanite_volume/register_extra_settings()
- . = ..()
- extra_settings[NES_NANITE_PERCENT] = new /datum/nanite_extra_setting/number(50, -99, 100, "%")
- extra_settings[NES_DIRECTION] = new /datum/nanite_extra_setting/boolean(TRUE, "Above", "Below")
-
-/datum/nanite_program/sensor/nanite_volume/check_event()
- var/nanite_percent = (nanites.nanite_volume - nanites.safety_threshold)/(nanites.max_nanites - nanites.safety_threshold)*100
- var/datum/nanite_extra_setting/percent = extra_settings[NES_NANITE_PERCENT]
- var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION]
- var/detected = FALSE
- if(direction.get_value())
- if(nanite_percent >= percent.get_value())
- detected = TRUE
- else
- if(nanite_percent < percent.get_value())
- detected = TRUE
-
- if(detected)
- if(!spent)
- spent = TRUE
- return TRUE
- return FALSE
- else
- spent = FALSE
- return FALSE
-
-/datum/nanite_program/sensor/nanite_volume/make_rule(datum/nanite_program/target)
- var/datum/nanite_rule/nanites/rule = new(target)
- var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION]
- var/datum/nanite_extra_setting/percent = extra_settings[NES_NANITE_PERCENT]
- rule.above = direction.get_value()
- rule.threshold = percent.get_value()
- return rule
-
-/datum/nanite_program/sensor/damage
- name = "Damage Sensor"
- desc = "The nanites receive a signal when a host's specific damage type is above/below a target value."
- can_rule = TRUE
- var/spent = FALSE
-
-/datum/nanite_program/sensor/damage/register_extra_settings()
- . = ..()
- extra_settings[NES_DAMAGE_TYPE] = new /datum/nanite_extra_setting/type(BRUTE, list(BRUTE, BURN, TOX, OXY, CLONE))
- extra_settings[NES_DAMAGE] = new /datum/nanite_extra_setting/number(50, 0, 500)
- extra_settings[NES_DIRECTION] = new /datum/nanite_extra_setting/boolean(TRUE, "Above", "Below")
-
-/datum/nanite_program/sensor/damage/check_event()
- var/reached_threshold = FALSE
- var/datum/nanite_extra_setting/type = extra_settings[NES_DAMAGE_TYPE]
- var/datum/nanite_extra_setting/damage = extra_settings[NES_DAMAGE]
- var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION]
- var/check_above = direction.get_value()
- var/damage_amt = 0
- switch(type.get_value())
- if(BRUTE)
- damage_amt = host_mob.getBruteLoss()
- if(BURN)
- damage_amt = host_mob.getFireLoss()
- if(TOX)
- damage_amt = host_mob.getToxLoss()
- if(OXY)
- damage_amt = host_mob.getOxyLoss()
- if(CLONE)
- damage_amt = host_mob.getCloneLoss()
-
- if(check_above)
- if(damage_amt >= damage.get_value())
- reached_threshold = TRUE
- else
- if(damage_amt < damage.get_value())
- reached_threshold = TRUE
-
- if(reached_threshold)
- if(!spent)
- spent = TRUE
- return TRUE
- return FALSE
- else
- spent = FALSE
- return FALSE
-
-/datum/nanite_program/sensor/damage/make_rule(datum/nanite_program/target)
- var/datum/nanite_rule/damage/rule = new(target)
- var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION]
- var/datum/nanite_extra_setting/damage_type = extra_settings[NES_DAMAGE_TYPE]
- var/datum/nanite_extra_setting/damage = extra_settings[NES_DAMAGE]
- rule.above = direction.get_value()
- rule.threshold = damage.get_value()
- rule.damage_type = damage_type.get_value()
- return rule
-
-/datum/nanite_program/sensor/voice
- name = "Voice Sensor"
- desc = "The nanites receive a signal when they detect a specific, preprogrammed word or phrase being said."
-
-/datum/nanite_program/sensor/voice/register_extra_settings()
- . = ..()
- extra_settings[NES_SENTENCE] = new /datum/nanite_extra_setting/text("")
- extra_settings[NES_INCLUSIVE_MODE] = new /datum/nanite_extra_setting/boolean(TRUE, "Inclusive", "Exclusive")
-
-/datum/nanite_program/sensor/voice/on_mob_add()
- . = ..()
- RegisterSignal(host_mob, COMSIG_MOVABLE_HEAR, .proc/on_hear)
-
-/datum/nanite_program/sensor/voice/on_mob_remove()
- UnregisterSignal(host_mob, COMSIG_MOVABLE_HEAR)
-
-/datum/nanite_program/sensor/voice/proc/on_hear(datum/source, list/hearing_args)
- SIGNAL_HANDLER
- var/datum/nanite_extra_setting/sentence = extra_settings[NES_SENTENCE]
- var/datum/nanite_extra_setting/inclusive = extra_settings[NES_INCLUSIVE_MODE]
- if(!sentence.get_value())
- return
- if(inclusive.get_value())
- if(findtext(hearing_args[HEARING_RAW_MESSAGE], sentence.get_value()))
- send_code()
- else
- if(lowertext(hearing_args[HEARING_RAW_MESSAGE]) == lowertext(sentence.get_value()))
- send_code()
-
-/datum/nanite_program/sensor/species
- name = "Species Sensor"
- desc = "When triggered, the nanites scan the host to determine their species and receive a signal depending on the conditions set in the settings."
- can_trigger = TRUE
- trigger_cost = 0
- trigger_cooldown = 5
-
- var/list/static/allowed_species = list(
- "Human" = /datum/species/human,
- "Lizard" = /datum/species/lizard,
- "Moth" = /datum/species/moth,
- "Ethereal" = /datum/species/ethereal,
- "Pod" = /datum/species/pod,
- "Fly" = /datum/species/fly,
- "Felinid" = /datum/species/human/felinid,
- "Jelly" = /datum/species/jelly,
- )
-
-/datum/nanite_program/sensor/species/register_extra_settings()
- . = ..()
- var/list/species_types = list()
- for(var/name in allowed_species)
- species_types += name
- species_types += "Other"
- extra_settings[NES_RACE] = new /datum/nanite_extra_setting/type("Human", species_types)
- extra_settings[NES_MODE] = new /datum/nanite_extra_setting/boolean(TRUE, "Is", "Is Not")
-
-/datum/nanite_program/sensor/species/on_trigger(comm_message)
- var/datum/nanite_extra_setting/species_type = extra_settings[NES_RACE]
- var/species = allowed_species[species_type.get_value()]
- var/species_match = FALSE
-
- if(species)
- if(is_species(host_mob, species))
- species_match = TRUE
- else //this is the check for the "Other" option
- species_match = TRUE
- for(var/name in allowed_species)
- var/species_other = allowed_species[name]
- if(is_species(host_mob, species_other))
- species_match = FALSE
- break
-
- var/datum/nanite_extra_setting/mode = extra_settings[NES_MODE]
- if(mode.get_value())
- if(species_match)
- send_code()
- else
- if(!species_match)
- send_code()
diff --git a/code/modules/research/nanites/nanite_programs/suppression.dm b/code/modules/research/nanites/nanite_programs/suppression.dm
deleted file mode 100644
index aa8643eafdc..00000000000
--- a/code/modules/research/nanites/nanite_programs/suppression.dm
+++ /dev/null
@@ -1,309 +0,0 @@
-//Programs that are generally useful for population control and non-harmful suppression.
-
-/datum/nanite_program/sleepy
- name = "Sleep Induction"
- desc = "The nanites induce rapid narcolepsy when triggered."
- can_trigger = TRUE
- trigger_cost = 15
- trigger_cooldown = 1200
- rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay)
-
-/datum/nanite_program/sleepy/on_trigger(comm_message)
- to_chat(host_mob, span_warning("You start to feel very sleepy..."))
- host_mob.drowsyness += 20
- addtimer(CALLBACK(host_mob, /mob/living.proc/Sleeping, 200), rand(60,200))
-
-/datum/nanite_program/paralyzing
- name = "Paralysis"
- desc = "The nanites force muscle contraction, effectively paralyzing the host."
- use_rate = 3
- rogue_types = list(/datum/nanite_program/nerve_decay)
-
-/datum/nanite_program/paralyzing/active_effect()
- host_mob.Stun(40)
-
-/datum/nanite_program/paralyzing/enable_passive_effect()
- . = ..()
- to_chat(host_mob, span_warning("Your muscles seize! You can't move!"))
-
-/datum/nanite_program/paralyzing/disable_passive_effect()
- . = ..()
- to_chat(host_mob, span_notice("Your muscles relax, and you can move again."))
-
-/datum/nanite_program/shocking
- name = "Electric Shock"
- desc = "The nanites shock the host when triggered. Destroys a large amount of nanites!"
- can_trigger = TRUE
- trigger_cost = 10
- trigger_cooldown = 300
- program_flags = NANITE_SHOCK_IMMUNE
- rogue_types = list(/datum/nanite_program/toxic)
-
-/datum/nanite_program/shocking/on_trigger(comm_message)
- host_mob.electrocute_act(rand(5,10), "shock nanites", 1, SHOCK_NOGLOVES)
-
-/datum/nanite_program/stun
- name = "Neural Shock"
- desc = "The nanites pulse the host's nerves when triggered, inapacitating them for a short period."
- can_trigger = TRUE
- trigger_cost = 4
- trigger_cooldown = 300
- rogue_types = list(/datum/nanite_program/shocking, /datum/nanite_program/nerve_decay)
-
-/datum/nanite_program/stun/on_trigger(comm_message)
- playsound(host_mob, "sparks", 75, TRUE, -1, SHORT_RANGE_SOUND_EXTRARANGE)
- host_mob.Paralyze(80)
-
-/datum/nanite_program/pacifying
- name = "Pacification"
- desc = "The nanites suppress the aggression center of the brain, preventing the host from causing direct harm to others."
- use_rate = 1
- rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay)
-
-/datum/nanite_program/pacifying/enable_passive_effect()
- . = ..()
- ADD_TRAIT(host_mob, TRAIT_PACIFISM, NANITES_TRAIT)
-
-/datum/nanite_program/pacifying/disable_passive_effect()
- . = ..()
- REMOVE_TRAIT(host_mob, TRAIT_PACIFISM, NANITES_TRAIT)
-
-/datum/nanite_program/blinding
- name = "Blindness"
- desc = "The nanites suppress the host's ocular nerves, blinding them while they're active."
- use_rate = 1.5
- rogue_types = list(/datum/nanite_program/nerve_decay)
-
-/datum/nanite_program/blinding/enable_passive_effect()
- . = ..()
- host_mob.become_blind(NANITES_TRAIT)
-
-/datum/nanite_program/blinding/disable_passive_effect()
- . = ..()
- host_mob.cure_blind(NANITES_TRAIT)
-
-/datum/nanite_program/mute
- name = "Mute"
- desc = "The nanites suppress the host's speech, making them mute while they're active."
- use_rate = 0.75
- rogue_types = list(/datum/nanite_program/brain_decay, /datum/nanite_program/brain_misfire)
-
-/datum/nanite_program/mute/enable_passive_effect()
- . = ..()
- ADD_TRAIT(host_mob, TRAIT_MUTE, NANITES_TRAIT)
-
-/datum/nanite_program/mute/disable_passive_effect()
- . = ..()
- REMOVE_TRAIT(host_mob, TRAIT_MUTE, NANITES_TRAIT)
-
-/datum/nanite_program/fake_death
- name = "Death Simulation"
- desc = "The nanites induce a death-like coma into the host, able to fool most medical scans."
- use_rate = 3.5
- rogue_types = list(/datum/nanite_program/nerve_decay, /datum/nanite_program/necrotic, /datum/nanite_program/brain_decay)
-
-/datum/nanite_program/fake_death/enable_passive_effect()
- . = ..()
- host_mob.emote("deathgasp")
- host_mob.fakedeath("nanites")
-
-/datum/nanite_program/fake_death/disable_passive_effect()
- . = ..()
- host_mob.cure_fakedeath("nanites")
-
-//Can receive transmissions from a nanite communication remote for customized messages
-/datum/nanite_program/comm
- can_trigger = TRUE
- var/comm_message = ""
-
-/datum/nanite_program/comm/register_extra_settings()
- extra_settings[NES_COMM_CODE] = new /datum/nanite_extra_setting/number(0, 0, 9999)
-
-/datum/nanite_program/comm/proc/receive_comm_signal(signal_comm_code, comm_message, comm_source)
- var/datum/nanite_extra_setting/comm_code = extra_settings[NES_COMM_CODE]
- if(!activated || !comm_code.get_value())
- return
- if(signal_comm_code == comm_code.get_value())
- host_mob.investigate_log("'s [name] nanite program was messaged by [comm_source] with comm code [signal_comm_code] and message '[comm_message]'.", INVESTIGATE_NANITES)
- trigger(FALSE, comm_message)
-
-/datum/nanite_program/comm/speech
- name = "Forced Speech"
- desc = "The nanites force the host to say a pre-programmed sentence when triggered."
- unique = FALSE
- trigger_cost = 3
- trigger_cooldown = 20
- rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay)
- var/static/list/blacklist = list(
- "*surrender",
- "*collapse",
- "*faint",
- )
-
-/datum/nanite_program/comm/speech/register_extra_settings()
- . = ..()
- extra_settings[NES_SENTENCE] = new /datum/nanite_extra_setting/text("")
-
-/datum/nanite_program/comm/speech/on_trigger(comm_message)
- var/sent_message = comm_message
- if(!comm_message)
- var/datum/nanite_extra_setting/sentence = extra_settings[NES_SENTENCE]
- sent_message = sentence.get_value()
- if(sent_message in blacklist)
- return
- if(host_mob.stat == DEAD)
- return
- to_chat(host_mob, span_warning("You feel compelled to speak..."))
- host_mob.say(sent_message, forced = "nanite speech")
-
-/datum/nanite_program/comm/voice
- name = "Skull Echo"
- desc = "The nanites echo a synthesized message inside the host's skull."
- unique = FALSE
- trigger_cost = 1
- trigger_cooldown = 20
- rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay)
-
-/datum/nanite_program/comm/voice/register_extra_settings()
- . = ..()
- extra_settings[NES_MESSAGE] = new /datum/nanite_extra_setting/text("")
-
-/datum/nanite_program/comm/voice/on_trigger(comm_message)
- var/sent_message = comm_message
- if(!comm_message)
- var/datum/nanite_extra_setting/message_setting = extra_settings[NES_MESSAGE]
- sent_message = message_setting.get_value()
- if(host_mob.stat == DEAD)
- return
- to_chat(host_mob, "You hear a strange, robotic voice in your head... \"[span_robot("[html_encode(sent_message)]")]\"")
-
-/datum/nanite_program/comm/hallucination
- name = "Hallucination"
- desc = "The nanites make the host hallucinate something when triggered."
- trigger_cost = 4
- trigger_cooldown = 80
- unique = FALSE
- rogue_types = list(/datum/nanite_program/brain_misfire)
-
-/datum/nanite_program/comm/hallucination/register_extra_settings()
- . = ..()
- var/list/options = list(
- "Message",
- "Battle",
- "Sound",
- "Weird Sound",
- "Station Message",
- "Health",
- "Alert",
- "Fire",
- "Shock",
- "Plasma Flood",
- "Random"
- )
- extra_settings[NES_HALLUCINATION_TYPE] = new /datum/nanite_extra_setting/type("Message", options)
- extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/text("")
-
-/datum/nanite_program/comm/hallucination/on_trigger(comm_message)
- var/datum/nanite_extra_setting/hal_setting = extra_settings[NES_HALLUCINATION_TYPE]
- var/hal_type = hal_setting.get_value()
- var/datum/nanite_extra_setting/hal_detail_setting = extra_settings[NES_HALLUCINATION_DETAIL]
- var/hal_details = hal_detail_setting.get_value()
- if(comm_message && (hal_type != "Message")) //Triggered via comm remote, but not set to a message hallucination
- return
- var/sent_message = comm_message //Comm remotes can send custom hallucination messages for the chat hallucination
- if(!sent_message)
- sent_message = hal_details
-
- if(!iscarbon(host_mob))
- return
- var/mob/living/carbon/C = host_mob
- if(hal_details == "random")
- hal_details = null
- if(hal_type == "Random")
- C.hallucination += 15
- else
- switch(hal_type)
- if("Message")
- new /datum/hallucination/chat(C, TRUE, null, sent_message)
- if("Battle")
- new /datum/hallucination/battle(C, TRUE, hal_details)
- if("Sound")
- new /datum/hallucination/sounds(C, TRUE, hal_details)
- if("Weird Sound")
- new /datum/hallucination/weird_sounds(C, TRUE, hal_details)
- if("Station Message")
- new /datum/hallucination/stationmessage(C, TRUE, hal_details)
- if("Health")
- switch(hal_details)
- if("critical")
- hal_details = SCREWYHUD_CRIT
- if("dead")
- hal_details = SCREWYHUD_DEAD
- if("healthy")
- hal_details = SCREWYHUD_HEALTHY
- new /datum/hallucination/hudscrew(C, TRUE, hal_details)
- if("Alert")
- new /datum/hallucination/fake_alert(C, TRUE, hal_details)
- if("Fire")
- new /datum/hallucination/fire(C, TRUE)
- if("Shock")
- new /datum/hallucination/shock(C, TRUE)
- if("Plasma Flood")
- new /datum/hallucination/fake_flood(C, TRUE)
-
-/datum/nanite_program/comm/hallucination/set_extra_setting(setting, value)
- . = ..()
- if(setting == NES_HALLUCINATION_TYPE)
- switch(value)
- if("Message")
- extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/text("")
- if("Battle")
- extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","laser","disabler","esword","gun","stunprod","harmbaton","bomb"))
- if("Sound")
- extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","airlock","airlock pry","console","explosion","far explosion","mech","glass","alarm","beepsky","mech","wall decon","door hack"))
- if("Weird Sound")
- extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","phone","hallelujah","highlander","laughter","hyperspace","game over","creepy","tesla"))
- if("Station Message")
- extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","ratvar","shuttle dock","blob alert","malf ai","meteors","supermatter"))
- if("Health")
- extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","critical","dead","healthy"))
- if("Alert")
- extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","not_enough_oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","too_much_tox","newlaw","nutrition","charge","gravity","fire","locked","hacked","temphot","tempcold","pressure"))
- else
- extra_settings.Remove(NES_HALLUCINATION_DETAIL)
-
-/datum/nanite_program/good_mood
- name = "Happiness Enhancer"
- desc = "The nanites synthesize serotonin inside the host's brain, creating an artificial sense of happiness."
- use_rate = 0.1
- rogue_types = list(/datum/nanite_program/brain_decay)
-
-/datum/nanite_program/good_mood/register_extra_settings()
- . = ..()
- extra_settings[NES_MOOD_MESSAGE] = new /datum/nanite_extra_setting/text("HAPPINESS ENHANCEMENT")
-
-/datum/nanite_program/good_mood/enable_passive_effect()
- . = ..()
- SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_happy", /datum/mood_event/nanite_happiness, get_extra_setting_value(NES_MOOD_MESSAGE))
-
-/datum/nanite_program/good_mood/disable_passive_effect()
- . = ..()
- SEND_SIGNAL(host_mob, COMSIG_CLEAR_MOOD_EVENT, "nanite_happy")
-
-/datum/nanite_program/bad_mood
- name = "Happiness Suppressor"
- desc = "The nanites suppress the production of serotonin inside the host's brain, creating an artificial state of depression."
- use_rate = 0.1
- rogue_types = list(/datum/nanite_program/brain_decay)
-
-/datum/nanite_program/bad_mood/register_extra_settings()
- . = ..()
- extra_settings[NES_MOOD_MESSAGE] = new /datum/nanite_extra_setting/text("HAPPINESS SUPPRESSION")
-
-/datum/nanite_program/bad_mood/enable_passive_effect()
- . = ..()
- SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_sadness", /datum/mood_event/nanite_sadness, get_extra_setting_value(NES_MOOD_MESSAGE))
-
-/datum/nanite_program/bad_mood/disable_passive_effect()
- . = ..()
- SEND_SIGNAL(host_mob, COMSIG_CLEAR_MOOD_EVENT, "nanite_sadness")
diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm
deleted file mode 100644
index 19ef4c9cce3..00000000000
--- a/code/modules/research/nanites/nanite_programs/utility.dm
+++ /dev/null
@@ -1,311 +0,0 @@
-//Programs that interact with other programs or nanites directly, or have other special purposes.
-/datum/nanite_program/viral
- name = "Viral Replica"
- desc = "The nanites constantly send encrypted signals attempting to forcefully copy their own programming into other nanite clusters, also overriding or disabling their cloud sync."
- use_rate = 0.5
- rogue_types = list(/datum/nanite_program/toxic)
- var/pulse_cooldown = 0
-
-/datum/nanite_program/viral/register_extra_settings()
- extra_settings[NES_PROGRAM_OVERWRITE] = new /datum/nanite_extra_setting/type("Add To", list("Overwrite", "Add To", "Ignore"))
- extra_settings[NES_CLOUD_OVERWRITE] = new /datum/nanite_extra_setting/number(0, 0, 100)
-
-/datum/nanite_program/viral/active_effect()
- if(world.time < pulse_cooldown)
- return
- var/datum/nanite_extra_setting/program = extra_settings[NES_PROGRAM_OVERWRITE]
- var/datum/nanite_extra_setting/cloud = extra_settings[NES_CLOUD_OVERWRITE]
- for(var/mob/M in orange(host_mob, 5))
- if(SEND_SIGNAL(M, COMSIG_NANITE_IS_STEALTHY))
- continue
- switch(program.get_value())
- if("Overwrite")
- SEND_SIGNAL(M, COMSIG_NANITE_SYNC, nanites, TRUE)
- if("Add To")
- SEND_SIGNAL(M, COMSIG_NANITE_SYNC, nanites, FALSE)
- SEND_SIGNAL(M, COMSIG_NANITE_SET_CLOUD, cloud.get_value())
- pulse_cooldown = world.time + 75
-
-/datum/nanite_program/monitoring
- name = "Monitoring"
- desc = "The nanites monitor the host's vitals and location, sending them to the suit sensor network."
- rogue_types = list(/datum/nanite_program/toxic)
-
-/datum/nanite_program/monitoring/enable_passive_effect()
- . = ..()
- ADD_TRAIT(host_mob, TRAIT_NANITE_MONITORING, NANITES_TRAIT) //Shows up in diagnostic and medical HUDs as a small blinking icon
- if(ishuman(host_mob))
- GLOB.nanite_sensors_list |= host_mob
- host_mob.hud_set_nanite_indicator()
-
-/datum/nanite_program/monitoring/disable_passive_effect()
- . = ..()
- REMOVE_TRAIT(host_mob, TRAIT_NANITE_MONITORING, "nanites")
- if(ishuman(host_mob))
- GLOB.nanite_sensors_list -= host_mob
-
- host_mob.hud_set_nanite_indicator()
-
-/datum/nanite_program/self_scan
- name = "Host Scan"
- desc = "The nanites display a detailed readout of a body scan to the host."
- unique = FALSE
- can_trigger = TRUE
- trigger_cost = 3
- trigger_cooldown = 50
- rogue_types = list(/datum/nanite_program/toxic)
-
-/datum/nanite_program/self_scan/register_extra_settings()
- extra_settings[NES_SCAN_TYPE] = new /datum/nanite_extra_setting/type("Medical", list("Medical", "Chemical", "Wound", "Nanite"))
-
-/datum/nanite_program/self_scan/on_trigger(comm_message)
- if(host_mob.stat == DEAD)
- return
- var/datum/nanite_extra_setting/NS = extra_settings[NES_SCAN_TYPE]
- switch(NS.get_value())
- if("Medical")
- healthscan(host_mob, host_mob)
- if("Chemical")
- chemscan(host_mob, host_mob)
- if("Wound")
- woundscan(host_mob, host_mob)
- if("Nanite")
- SEND_SIGNAL(host_mob, COMSIG_NANITE_SCAN, host_mob, TRUE)
-
-/datum/nanite_program/stealth
- name = "Stealth"
- desc = "The nanites mask their activity from superficial scans, becoming undetectable by HUDs and non-specialized scanners."
- rogue_types = list(/datum/nanite_program/toxic)
- use_rate = 0.2
-
-/datum/nanite_program/stealth/enable_passive_effect()
- . = ..()
- nanites.stealth = TRUE
-
-/datum/nanite_program/stealth/disable_passive_effect()
- . = ..()
- nanites.stealth = FALSE
-
-/datum/nanite_program/nanite_debugging
- name = "Nanite Debugging"
- desc = "Enables various high-cost diagnostics in the nanites, making them able to communicate their program list to portable scanners. \
- Doing so uses some power, slightly decreasing their replication speed."
- rogue_types = list(/datum/nanite_program/toxic)
- use_rate = 0.1
-
-/datum/nanite_program/nanite_debugging/enable_passive_effect()
- . = ..()
- nanites.diagnostics = TRUE
-
-/datum/nanite_program/nanite_debugging/disable_passive_effect()
- . = ..()
- nanites.diagnostics = FALSE
-
-/datum/nanite_program/relay
- name = "Relay"
- desc = "The nanites receive and relay long-range nanite signals."
- rogue_types = list(/datum/nanite_program/toxic)
-
-/datum/nanite_program/relay/register_extra_settings()
- extra_settings[NES_RELAY_CHANNEL] = new /datum/nanite_extra_setting/number(1, 1, 9999)
-
-/datum/nanite_program/relay/enable_passive_effect()
- . = ..()
- SSnanites.nanite_relays |= src
-
-/datum/nanite_program/relay/disable_passive_effect()
- . = ..()
- SSnanites.nanite_relays -= src
-
-/datum/nanite_program/relay/proc/relay_signal(code, relay_code, source)
- if(!activated)
- return
- if(!host_mob)
- return
- var/datum/nanite_extra_setting/NS = extra_settings[NES_RELAY_CHANNEL]
- if(relay_code != NS.get_value())
- return
- SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, code, source)
-
-/datum/nanite_program/relay/proc/relay_comm_signal(comm_code, relay_code, comm_message)
- if(!activated)
- return
- if(!host_mob)
- return
- var/datum/nanite_extra_setting/NS = extra_settings[NES_RELAY_CHANNEL]
- if(relay_code != NS.get_value())
- return
- SEND_SIGNAL(host_mob, COMSIG_NANITE_COMM_SIGNAL, comm_code, comm_message)
-
-/datum/nanite_program/metabolic_synthesis
- name = "Metabolic Synthesis"
- desc = "The nanites use the metabolic cycle of the host to speed up their replication rate, using their extra nutrition as fuel."
- use_rate = -0.5 //generates nanites
- rogue_types = list(/datum/nanite_program/toxic)
-
-/datum/nanite_program/metabolic_synthesis/check_conditions()
- if(!iscarbon(host_mob))
- return FALSE
- var/mob/living/carbon/C = host_mob
- if(C.nutrition <= NUTRITION_LEVEL_WELL_FED)
- return FALSE
- return ..()
-
-/datum/nanite_program/metabolic_synthesis/active_effect()
- host_mob.adjust_nutrition(-0.5)
-
-/datum/nanite_program/access
- name = "Subdermal ID"
- desc = "The nanites store the host's ID access rights in a subdermal magnetic strip. Updates when triggered, copying the host's current access."
- can_trigger = TRUE
- trigger_cost = 3
- trigger_cooldown = 30
- rogue_types = list(/datum/nanite_program/skin_decay)
- var/access = list()
-
-//Syncs the nanites with the cumulative current mob's access level. Can potentially wipe existing access.
-/datum/nanite_program/access/on_trigger(comm_message)
- var/list/potential_items = list()
-
- potential_items += host_mob.get_active_held_item()
- potential_items += host_mob.get_inactive_held_item()
- potential_items += host_mob.pulling
-
- if(ishuman(host_mob))
- var/mob/living/carbon/human/H = host_mob
- potential_items += H.wear_id
- else if(isanimal(host_mob))
- var/mob/living/simple_animal/A = host_mob
- potential_items += A.access_card
-
- var/list/new_access = list()
- for(var/obj/item/I in potential_items)
- new_access += I.GetAccess()
-
- access = new_access
-
-/datum/nanite_program/spreading
- name = "Infective Exo-Locomotion"
- desc = "The nanites gain the ability to survive for brief periods outside of the human body, as well as the ability to start new colonies without an integration process; \
- resulting in an extremely infective strain of nanites."
- use_rate = 1.50
- rogue_types = list(/datum/nanite_program/aggressive_replication, /datum/nanite_program/necrotic)
- var/spread_cooldown = 0
-
-/datum/nanite_program/spreading/active_effect()
- if(world.time < spread_cooldown)
- return
- spread_cooldown = world.time + 50
- var/list/mob/living/target_hosts = list()
- for(var/mob/living/L in oview(5, host_mob))
- if(!prob(25))
- continue
- if(!(L.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD)))
- continue
- target_hosts += L
- if(!target_hosts.len)
- return
- var/mob/living/infectee = pick(target_hosts)
- if(prob(100 - (infectee.get_permeability_protection() * 100)))
- //this will potentially take over existing nanites!
- infectee.AddComponent(/datum/component/nanites, 10)
- SEND_SIGNAL(infectee, COMSIG_NANITE_SYNC, nanites)
- SEND_SIGNAL(infectee, COMSIG_NANITE_SET_CLOUD, nanites.cloud_id)
- infectee.investigate_log("was infected by spreading nanites with cloud ID [nanites.cloud_id] by [key_name(host_mob)] at [AREACOORD(infectee)].", INVESTIGATE_NANITES)
-
-/datum/nanite_program/nanite_sting
- name = "Nanite Sting"
- desc = "When triggered, projects a nearly invisible spike of nanites that attempts to infect a nearby non-host with a copy of the host's nanites cluster."
- can_trigger = TRUE
- trigger_cost = 5
- trigger_cooldown = 100
- rogue_types = list(/datum/nanite_program/glitch, /datum/nanite_program/toxic)
-
-/datum/nanite_program/nanite_sting/on_trigger(comm_message)
- var/list/mob/living/target_hosts = list()
- for(var/mob/living/L in oview(1, host_mob))
- if(!(L.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD)) || SEND_SIGNAL(L, COMSIG_HAS_NANITES) || !L.Adjacent(host_mob))
- continue
- target_hosts += L
- if(!target_hosts.len)
- consume_nanites(-5)
- return
- var/mob/living/infectee = pick(target_hosts)
- if(prob(100 - (infectee.get_permeability_protection() * 100)))
- //unlike with Infective Exo-Locomotion, this can't take over existing nanites, because Nanite Sting only targets non-hosts.
- infectee.AddComponent(/datum/component/nanites, 5)
- SEND_SIGNAL(infectee, COMSIG_NANITE_SYNC, nanites)
- SEND_SIGNAL(infectee, COMSIG_NANITE_SET_CLOUD, nanites.cloud_id)
- infectee.investigate_log("was infected by a nanite cluster with cloud ID [nanites.cloud_id] by [key_name(host_mob)] at [AREACOORD(infectee)].", INVESTIGATE_NANITES)
- to_chat(infectee, span_warning("You feel a tiny prick."))
-
-/datum/nanite_program/mitosis
- name = "Mitosis"
- desc = "The nanites gain the ability to self-replicate, using bluespace to power the process. Becomes more effective the more nanites are already in the host; \
- For every 50 nanite volume in the host, the production rate is increased by 0.5. The replication has also a chance to corrupt the nanite programming \
- due to copy faults - constant cloud sync is highly recommended."
- use_rate = 0
- rogue_types = list(/datum/nanite_program/toxic)
-
-/datum/nanite_program/mitosis/active_effect()
- var/rep_rate = round(nanites.nanite_volume / 50, 1) //0.5 per 50 nanite volume
- rep_rate *= 0.5
- nanites.adjust_nanites(null, rep_rate)
- if(prob(rep_rate))
- var/datum/nanite_program/fault = pick(nanites.programs)
- if(fault == src)
- return
- fault.software_error()
- host_mob.investigate_log("[fault] nanite program received a software error due to Mitosis program.", INVESTIGATE_NANITES)
-
-/datum/nanite_program/dermal_button
- name = "Dermal Button"
- desc = "Displays a button on the host's skin, which can be used to send a signal to the nanites."
- unique = FALSE
- var/datum/action/innate/nanite_button/button
-
-/datum/nanite_program/dermal_button/register_extra_settings()
- extra_settings[NES_SENT_CODE] = new /datum/nanite_extra_setting/number(1, 1, 9999)
- extra_settings[NES_BUTTON_NAME] = new /datum/nanite_extra_setting/text("Button")
- extra_settings[NES_ICON] = new /datum/nanite_extra_setting/type("power", list("blank","one","two","three","four","five","plus","minus","exclamation","question","cross","info","heart","skull","brain","brain_damage","injection","blood","shield","reaction","network","power","radioactive","electricity","magnetism","scan","repair","id","wireless","say","sleep","bomb"))
-
-/datum/nanite_program/dermal_button/enable_passive_effect()
- . = ..()
- var/datum/nanite_extra_setting/bn_name = extra_settings[NES_BUTTON_NAME]
- var/datum/nanite_extra_setting/bn_icon = extra_settings[NES_ICON]
- if(!button)
- button = new(src, bn_name.get_value(), bn_icon.get_value())
- button.target = host_mob
- button.Grant(host_mob)
-
-/datum/nanite_program/dermal_button/disable_passive_effect()
- . = ..()
- if(button)
- button.Remove(host_mob)
-
-/datum/nanite_program/dermal_button/on_mob_remove()
- . = ..()
- QDEL_NULL(button)
-
-/datum/nanite_program/dermal_button/proc/press()
- if(activated)
- host_mob.visible_message(span_notice("[host_mob] presses a button on [host_mob.p_their()] forearm."),
- span_notice("You press the nanite button on your forearm."), null, 2)
- var/datum/nanite_extra_setting/sent_code = extra_settings[NES_SENT_CODE]
- SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, sent_code.get_value(), "a [name] program")
-
-/datum/action/innate/nanite_button
- name = "Button"
- icon_icon = 'icons/mob/actions/actions_items.dmi'
- check_flags = AB_CHECK_HANDS_BLOCKED|AB_CHECK_IMMOBILE|AB_CHECK_CONSCIOUS
- button_icon_state = "nanite_power"
- var/datum/nanite_program/dermal_button/program
-
-/datum/action/innate/nanite_button/New(datum/nanite_program/dermal_button/_program, _name, _icon)
- ..()
- program = _program
- name = _name
- button_icon_state = "nanite_[_icon]"
-
-/datum/action/innate/nanite_button/Activate()
- program.press()
diff --git a/code/modules/research/nanites/nanite_programs/weapon.dm b/code/modules/research/nanites/nanite_programs/weapon.dm
deleted file mode 100644
index 84b70a65f01..00000000000
--- a/code/modules/research/nanites/nanite_programs/weapon.dm
+++ /dev/null
@@ -1,186 +0,0 @@
-//Programs specifically engineered to cause harm to either the user or its surroundings (as opposed to ones that only do it due to broken programming)
-//Very dangerous!
-
-/datum/nanite_program/flesh_eating
- name = "Cellular Breakdown"
- desc = "The nanites destroy cellular structures in the host's body, causing brute damage."
- use_rate = 1.5
- rogue_types = list(/datum/nanite_program/necrotic)
-
-/datum/nanite_program/flesh_eating/active_effect()
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- C.take_bodypart_damage(1, 0, 0)
- else
- host_mob.adjustBruteLoss(1, TRUE)
- if(prob(3))
- to_chat(host_mob, span_warning("You feel a stab of pain from somewhere inside you."))
-
-/datum/nanite_program/poison
- name = "Poisoning"
- desc = "The nanites deliver poisonous chemicals to the host's internal organs, causing toxin damage and vomiting."
- use_rate = 1.5
- rogue_types = list(/datum/nanite_program/toxic)
-
-/datum/nanite_program/poison/active_effect()
- host_mob.adjustToxLoss(1)
- if(prob(2))
- to_chat(host_mob, span_warning("You feel nauseous."))
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- C.vomit(20)
-
-/datum/nanite_program/memory_leak
- name = "Memory Leak"
- desc = "This program invades the memory space used by other programs, causing frequent corruptions and errors."
- use_rate = 0
- rogue_types = list(/datum/nanite_program/toxic)
-
-/datum/nanite_program/memory_leak/active_effect()
- if(prob(6))
- var/datum/nanite_program/target = pick(nanites.programs)
- if(target == src)
- return
- target.software_error()
- host_mob.investigate_log("[target] nanite program received a software error due to Memory Leak program.", INVESTIGATE_NANITES)
-
-/datum/nanite_program/aggressive_replication
- name = "Aggressive Replication"
- desc = "Nanites will consume organic matter to improve their replication rate, damaging the host. The efficiency increases with the volume of nanites, requiring 200 to break even, \
- and scaling linearly for a net positive of 0.1 production rate per 20 nanite volume beyond that."
- use_rate = 1
- rogue_types = list(/datum/nanite_program/necrotic)
-
-/datum/nanite_program/aggressive_replication/active_effect()
- var/extra_regen = round(nanites.nanite_volume / 200, 0.1)
- nanites.adjust_nanites(null, extra_regen)
- host_mob.adjustBruteLoss(extra_regen / 2, TRUE)
-
-/datum/nanite_program/meltdown
- name = "Meltdown"
- desc = "Causes an internal meltdown inside the nanites, causing internal burns inside the host as well as rapidly destroying the nanite population.\
- Sets the nanites' safety threshold to 0 when activated."
- use_rate = 10
- rogue_types = list(/datum/nanite_program/glitch)
-
-/datum/nanite_program/meltdown/active_effect()
- host_mob.adjustFireLoss(3.5)
-
-/datum/nanite_program/meltdown/enable_passive_effect()
- . = ..()
- to_chat(host_mob, span_userdanger("Your blood is burning!"))
- nanites.safety_threshold = 0
-
-/datum/nanite_program/meltdown/disable_passive_effect()
- . = ..()
- to_chat(host_mob, span_warning("Your blood cools down, and the pain gradually fades."))
-
-/datum/nanite_program/explosive
- name = "Chain Detonation"
- desc = "Detonates all the nanites inside the host in a chain reaction when triggered."
- can_trigger = TRUE
- trigger_cost = 25 //plus every idle nanite left afterwards
- trigger_cooldown = 100 //Just to avoid double-triggering
- rogue_types = list(/datum/nanite_program/toxic)
-
-/datum/nanite_program/explosive/on_trigger(comm_message)
- host_mob.visible_message(span_warning("[host_mob] starts emitting a high-pitched buzzing, and [host_mob.p_their()] skin begins to glow..."),\
- span_userdanger("You start emitting a high-pitched buzzing, and your skin begins to glow..."))
- addtimer(CALLBACK(src, .proc/boom), clamp((nanites.nanite_volume * 0.35), 25, 150))
-
-/datum/nanite_program/explosive/proc/boom()
- dyn_explosion(host_mob, nanites.nanite_volume / 50)
- qdel(nanites)
-
-//TODO make it defuse if triggered again
-
-/datum/nanite_program/heart_stop
- name = "Heart-Stopper"
- desc = "Stops the host's heart when triggered; restarts it if triggered again."
- can_trigger = TRUE
- trigger_cost = 12
- trigger_cooldown = 10
- rogue_types = list(/datum/nanite_program/nerve_decay)
-
-/datum/nanite_program/heart_stop/on_trigger(comm_message)
- if(iscarbon(host_mob))
- var/mob/living/carbon/C = host_mob
- var/obj/item/organ/heart/heart = C.getorganslot(ORGAN_SLOT_HEART)
- if(heart)
- if(heart.beating)
- heart.Stop()
- else
- heart.Restart()
-
-/datum/nanite_program/emp
- name = "Electromagnetic Resonance"
- desc = "The nanites cause an electromagnetic pulse around the host when triggered. Will corrupt other nanite programs!"
- can_trigger = TRUE
- trigger_cost = 10
- trigger_cooldown = 50
- program_flags = NANITE_EMP_IMMUNE
- rogue_types = list(/datum/nanite_program/toxic)
-
-/datum/nanite_program/emp/on_trigger(comm_message)
- empulse(host_mob, 1, 2)
-
-/datum/nanite_program/pyro
- name = "Sub-Dermal Combustion"
- desc = "The nanites cause buildup of flammable fluids under the host's skin, then ignites them."
- use_rate = 4
- rogue_types = list(/datum/nanite_program/skin_decay, /datum/nanite_program/cryo)
-
-/datum/nanite_program/pyro/check_conditions()
- if(host_mob.fire_stacks >= 10 && host_mob.on_fire)
- return FALSE
- return ..()
-
-/datum/nanite_program/pyro/active_effect()
- host_mob.adjust_fire_stacks(1)
- host_mob.IgniteMob()
-
-/datum/nanite_program/cryo
- name = "Cryogenic Treatment"
- desc = "The nanites rapidly sink heat through the host's skin, lowering their temperature."
- use_rate = 1
- rogue_types = list(/datum/nanite_program/skin_decay, /datum/nanite_program/pyro)
-
-/datum/nanite_program/cryo/check_conditions()
- if(host_mob.bodytemperature <= 70)
- return FALSE
- return ..()
-
-/datum/nanite_program/cryo/active_effect()
- host_mob.adjust_bodytemperature(-rand(15,25), 50)
-
-/datum/nanite_program/comm/mind_control
- name = "Mind Control"
- desc = "The nanites imprint an absolute directive onto the host's brain for one minute when triggered."
- trigger_cost = 30
- trigger_cooldown = 1800
- rogue_types = list(/datum/nanite_program/brain_decay, /datum/nanite_program/brain_misfire)
-
-/datum/nanite_program/comm/mind_control/register_extra_settings()
- . = ..()
- extra_settings[NES_DIRECTIVE] = new /datum/nanite_extra_setting/text("...")
-
-/datum/nanite_program/comm/mind_control/on_trigger(comm_message)
- if(host_mob.stat == DEAD)
- return
- var/sent_directive = comm_message
- if(!comm_message)
- var/datum/nanite_extra_setting/ES = extra_settings[NES_DIRECTIVE]
- sent_directive = ES.get_value()
- brainwash(host_mob, sent_directive)
- log_game("A mind control nanite program brainwashed [key_name(host_mob)] with the objective '[sent_directive]'.")
- host_mob.log_message("has been brainwashed with the objective '[sent_directive]' triggered by a mind control nanite program.", LOG_ATTACK)
- addtimer(CALLBACK(src, .proc/end_brainwashing), 600)
-
-/datum/nanite_program/comm/mind_control/proc/end_brainwashing()
- if(host_mob.mind && host_mob.mind.has_antag_datum(/datum/antagonist/brainwashed))
- host_mob.mind.remove_antag_datum(/datum/antagonist/brainwashed)
- log_game("[key_name(host_mob)] is no longer brainwashed by nanites.")
-
-/datum/nanite_program/comm/mind_control/disable_passive_effect()
- . = ..()
- end_brainwashing()
diff --git a/code/modules/research/nanites/nanite_remote.dm b/code/modules/research/nanites/nanite_remote.dm
deleted file mode 100644
index cc7389520f0..00000000000
--- a/code/modules/research/nanites/nanite_remote.dm
+++ /dev/null
@@ -1,236 +0,0 @@
-#define REMOTE_MODE_OFF "Off"
-#define REMOTE_MODE_SELF "Local"
-#define REMOTE_MODE_TARGET "Targeted"
-#define REMOTE_MODE_AOE "Area"
-#define REMOTE_MODE_RELAY "Relay"
-
-/obj/item/nanite_remote
- name = "nanite remote control"
- desc = "A device that can remotely control active nanites through wireless signals."
- w_class = WEIGHT_CLASS_SMALL
- req_access = list(ACCESS_ROBOTICS)
- icon = 'icons/obj/device.dmi'
- icon_state = "nanite_remote"
- item_flags = NOBLUDGEON
- var/locked = FALSE //Can be locked, so it can be given to users with a set code and mode
- var/mode = REMOTE_MODE_OFF
- var/list/saved_settings = list()
- var/last_id = 0
- var/code = 0
- var/relay_code = 0
- var/current_program_name = "Program"
-
-/obj/item/nanite_remote/examine(mob/user)
- . = ..()
- if(locked)
- . += span_notice("Alt-click to unlock.")
-
-/obj/item/nanite_remote/AltClick(mob/user)
- . = ..()
- if(!user.canUseTopic(src, BE_CLOSE))
- return
- if(locked)
- if(allowed(user))
- to_chat(user, span_notice("You unlock [src]."))
- locked = FALSE
- update_appearance()
- else
- to_chat(user, span_warning("Access denied."))
-
-/obj/item/nanite_remote/emag_act(mob/user)
- if(obj_flags & EMAGGED)
- return
- to_chat(user, span_warning("You override [src]'s ID lock."))
- obj_flags |= EMAGGED
- if(locked)
- locked = FALSE
- update_appearance()
-
-/obj/item/nanite_remote/update_overlays()
- . = ..()
- if(obj_flags & EMAGGED)
- . += "nanite_remote_emagged"
- if(locked)
- . += "nanite_remote_locked"
-
-/obj/item/nanite_remote/afterattack(atom/target, mob/user, etc)
- switch(mode)
- if(REMOTE_MODE_OFF)
- return
- if(REMOTE_MODE_SELF)
- to_chat(user, span_notice("You activate [src], signaling the nanites in your bloodstream."))
- signal_mob(user, code, key_name(user))
- if(REMOTE_MODE_TARGET)
- if(isliving(target) && (get_dist(target, get_turf(src)) <= 7))
- to_chat(user, span_notice("You activate [src], signaling the nanites inside [target]."))
- signal_mob(target, code, key_name(user))
- if(REMOTE_MODE_AOE)
- to_chat(user, span_notice("You activate [src], signaling the nanites inside every host around you."))
- for(var/mob/living/L in view(user, 7))
- signal_mob(L, code, key_name(user))
- if(REMOTE_MODE_RELAY)
- to_chat(user, span_notice("You activate [src], signaling all connected relay nanites."))
- signal_relay(code, relay_code, key_name(user))
-
-/obj/item/nanite_remote/proc/signal_mob(mob/living/M, code, source)
- SEND_SIGNAL(M, COMSIG_NANITE_SIGNAL, code, source)
-
-/obj/item/nanite_remote/proc/signal_relay(code, relay_code, source)
- for(var/X in SSnanites.nanite_relays)
- var/datum/nanite_program/relay/N = X
- N.relay_signal(code, relay_code, source)
-
-/obj/item/nanite_remote/ui_state(mob/user)
- return GLOB.hands_state
-
-/obj/item/nanite_remote/ui_interact(mob/user, datum/tgui/ui)
- ui = SStgui.try_update_ui(user, src, ui)
- if(!ui)
- ui = new(user, src, "NaniteRemote", name)
- ui.open()
-
-/obj/item/nanite_remote/ui_data()
- var/list/data = list()
- data["code"] = code
- data["relay_code"] = relay_code
- data["mode"] = mode
- data["locked"] = locked
- data["saved_settings"] = saved_settings
- data["program_name"] = current_program_name
- return data
-
-/obj/item/nanite_remote/ui_act(action, params)
- . = ..()
- if(.)
- return
- switch(action)
- if("set_code")
- if(locked)
- return
- var/new_code = text2num(params["code"])
- if(!isnull(new_code))
- new_code = clamp(round(new_code, 1),0,9999)
- code = new_code
- . = TRUE
- if("set_relay_code")
- if(locked)
- return
- var/new_code = text2num(params["code"])
- if(!isnull(new_code))
- new_code = clamp(round(new_code, 1),0,9999)
- relay_code = new_code
- . = TRUE
- if("update_name")
- current_program_name = params["name"]
- . = TRUE
- if("save")
- if(locked)
- return
- var/new_save = list()
- new_save["id"] = last_id + 1
- last_id++
- new_save["name"] = current_program_name
- new_save["code"] = code
- new_save["mode"] = mode
- new_save["relay_code"] = relay_code
-
- saved_settings += list(new_save)
- . = TRUE
- if("load")
- var/code_id = params["save_id"]
- var/list/setting
- for(var/list/X in saved_settings)
- if(X["id"] == text2num(code_id))
- setting = X
- break
- if(setting)
- code = setting["code"]
- mode = setting["mode"]
- relay_code = setting["relay_code"]
- . = TRUE
- if("remove_save")
- if(locked)
- return
- var/code_id = params["save_id"]
- for(var/list/setting in saved_settings)
- if(setting["id"] == text2num(code_id))
- saved_settings -= list(setting)
- break
- . = TRUE
- if("select_mode")
- if(locked)
- return
- mode = params["mode"]
- . = TRUE
- if("lock")
- if(!(obj_flags & EMAGGED))
- locked = TRUE
- update_appearance()
- . = TRUE
-
-
-/obj/item/nanite_remote/comm
- name = "nanite communication remote"
- desc = "A device that can send text messages to specific programs."
- icon_state = "nanite_comm_remote"
- var/comm_message = ""
-
-/obj/item/nanite_remote/comm/afterattack(atom/target, mob/user, etc)
- switch(mode)
- if(REMOTE_MODE_OFF)
- return
- if(REMOTE_MODE_SELF)
- to_chat(user, span_notice("You activate [src], signaling the nanites in your bloodstream."))
- signal_mob(user, code, key_name(user))
- if(REMOTE_MODE_TARGET)
- if(isliving(target) && (get_dist(target, get_turf(src)) <= 7))
- to_chat(user, span_notice("You activate [src], signaling the nanites inside [target]."))
- signal_mob(target, code, key_name(user))
- if(REMOTE_MODE_AOE)
- to_chat(user, span_notice("You activate [src], signaling the nanites inside every host around you."))
- for(var/mob/living/L in view(user, 7))
- signal_mob(L, code, key_name(user))
- if(REMOTE_MODE_RELAY)
- to_chat(user, span_notice("You activate [src], signaling all connected relay nanites."))
- signal_relay(code, relay_code, key_name(user))
-
-/obj/item/nanite_remote/comm/signal_mob(mob/living/M, code, source)
- SEND_SIGNAL(M, COMSIG_NANITE_COMM_SIGNAL, code, comm_message, source)
-
-/obj/item/nanite_remote/comm/signal_relay(code, relay_code, source)
- for(var/X in SSnanites.nanite_relays)
- var/datum/nanite_program/relay/N = X
- N.relay_comm_signal(code, relay_code, comm_message)
-
-/obj/item/nanite_remote/comm/ui_data()
- var/list/data = list()
- data["comms"] = TRUE
- data["code"] = code
- data["relay_code"] = relay_code
- data["message"] = comm_message
- data["mode"] = mode
- data["locked"] = locked
- data["saved_settings"] = saved_settings
- data["program_name"] = current_program_name
-
- return data
-
-/obj/item/nanite_remote/comm/ui_act(action, params)
- . = ..()
- if(.)
- return
- switch(action)
- if("set_message")
- if(locked)
- return
- var/new_message = html_encode(params["value"])
- if(!new_message)
- return
- comm_message = new_message
- . = TRUE
-
-#undef REMOTE_MODE_OFF
-#undef REMOTE_MODE_SELF
-#undef REMOTE_MODE_TARGET
-#undef REMOTE_MODE_AOE
-#undef REMOTE_MODE_RELAY
diff --git a/code/modules/research/nanites/program_disks.dm b/code/modules/research/nanites/program_disks.dm
deleted file mode 100644
index 02f6d7cc280..00000000000
--- a/code/modules/research/nanites/program_disks.dm
+++ /dev/null
@@ -1,133 +0,0 @@
-//Names are intentionally all the same - track your nanites, or use a hand labeler
-//This also means that you can give flesh melting nanites to your victims if you feel like it
-
-/obj/item/disk/nanite_program
- name = "nanite program disk"
- desc = "A disk capable of storing nanite programs. Can be customized using a Nanite Programming Console."
- var/program_type
- var/datum/nanite_program/program
-
-/obj/item/disk/nanite_program/Initialize()
- . = ..()
- if(program_type)
- program = new program_type
-
-/obj/item/disk/nanite_program/aggressive_replication
- program_type = /datum/nanite_program/aggressive_replication
-
-/obj/item/disk/nanite_program/metabolic_synthesis
- program_type = /datum/nanite_program/metabolic_synthesis
-
-/obj/item/disk/nanite_program/viral
- program_type = /datum/nanite_program/viral
-
-/obj/item/disk/nanite_program/meltdown
- program_type = /datum/nanite_program/meltdown
-
-/obj/item/disk/nanite_program/monitoring
- program_type = /datum/nanite_program/monitoring
-
-/obj/item/disk/nanite_program/relay
- program_type = /datum/nanite_program/relay
-
-/obj/item/disk/nanite_program/emp
- program_type = /datum/nanite_program/emp
-
-/obj/item/disk/nanite_program/spreading
- program_type = /datum/nanite_program/spreading
-
-/obj/item/disk/nanite_program/regenerative
- program_type = /datum/nanite_program/regenerative
-
-/obj/item/disk/nanite_program/regenerative_advanced
- program_type = /datum/nanite_program/regenerative_advanced
-
-/obj/item/disk/nanite_program/temperature
- program_type = /datum/nanite_program/temperature
-
-/obj/item/disk/nanite_program/purging
- program_type = /datum/nanite_program/purging
-
-/obj/item/disk/nanite_program/purging_advanced
- program_type = /datum/nanite_program/purging_advanced
-
-/obj/item/disk/nanite_program/brain_heal
- program_type = /datum/nanite_program/brain_heal
-
-/obj/item/disk/nanite_program/brain_heal_advanced
- program_type = /datum/nanite_program/brain_heal_advanced
-
-/obj/item/disk/nanite_program/blood_restoring
- program_type = /datum/nanite_program/blood_restoring
-
-/obj/item/disk/nanite_program/repairing
- program_type = /datum/nanite_program/repairing
-
-/obj/item/disk/nanite_program/nervous
- program_type = /datum/nanite_program/nervous
-
-/obj/item/disk/nanite_program/hardening
- program_type = /datum/nanite_program/hardening
-
-/obj/item/disk/nanite_program/coagulating
- program_type = /datum/nanite_program/coagulating
-
-/obj/item/disk/nanite_program/necrotic
- program_type = /datum/nanite_program/necrotic
-
-/obj/item/disk/nanite_program/brain_decay
- program_type = /datum/nanite_program/brain_decay
-
-/obj/item/disk/nanite_program/pyro
- program_type = /datum/nanite_program/pyro
-
-/obj/item/disk/nanite_program/cryo
- program_type = /datum/nanite_program/cryo
-
-/obj/item/disk/nanite_program/toxic
- program_type = /datum/nanite_program/toxic
-
-/obj/item/disk/nanite_program/suffocating
- program_type = /datum/nanite_program/suffocating
-
-/obj/item/disk/nanite_program/heart_stop
- program_type = /datum/nanite_program/heart_stop
-
-/obj/item/disk/nanite_program/explosive
- program_type = /datum/nanite_program/explosive
-
-/obj/item/disk/nanite_program/shock
- program_type = /datum/nanite_program/shocking
-
-/obj/item/disk/nanite_program/sleepy
- program_type = /datum/nanite_program/sleepy
-
-/obj/item/disk/nanite_program/paralyzing
- program_type = /datum/nanite_program/paralyzing
-
-/obj/item/disk/nanite_program/fake_death
- program_type = /datum/nanite_program/fake_death
-
-/obj/item/disk/nanite_program/pacifying
- program_type = /datum/nanite_program/pacifying
-
-/obj/item/disk/nanite_program/glitch
- program_type = /datum/nanite_program/glitch
-
-/obj/item/disk/nanite_program/brain_misfire
- program_type = /datum/nanite_program/pacifying
-
-/obj/item/disk/nanite_program/skin_decay
- program_type = /datum/nanite_program/pacifying
-
-/obj/item/disk/nanite_program/nerve_decay
- program_type = /datum/nanite_program/pacifying
-
-/obj/item/disk/nanite_program/refractive
- program_type = /datum/nanite_program/refractive
-
-/obj/item/disk/nanite_program/conductive
- program_type = /datum/nanite_program/pacifying
-
-/obj/item/disk/nanite_program/stun
- program_type = /datum/nanite_program/stun
diff --git a/code/modules/research/nanites/public_chamber.dm b/code/modules/research/nanites/public_chamber.dm
deleted file mode 100644
index 6194f4fa336..00000000000
--- a/code/modules/research/nanites/public_chamber.dm
+++ /dev/null
@@ -1,206 +0,0 @@
-/obj/machinery/public_nanite_chamber
- name = "public nanite chamber"
- desc = "A device that can rapidly implant cloud-synced nanites without an external operator."
- circuit = /obj/item/circuitboard/machine/public_nanite_chamber
- icon = 'icons/obj/machines/nanite_chamber.dmi'
- icon_state = "nanite_chamber"
- base_icon_state = "nanite_chamber"
- layer = ABOVE_WINDOW_LAYER
- use_power = IDLE_POWER_USE
- anchored = TRUE
- density = TRUE
- obj_flags = NO_BUILD // Becomes undense when the door is open
- idle_power_usage = 50
- active_power_usage = 300
-
- var/cloud_id = 1
- var/locked = FALSE
- var/breakout_time = 1200
- var/busy = FALSE
- var/busy_icon_state
- var/message_cooldown = 0
-
-/obj/machinery/public_nanite_chamber/Initialize()
- . = ..()
- occupant_typecache = GLOB.typecache_living
-
-/obj/machinery/public_nanite_chamber/RefreshParts()
- var/obj/item/circuitboard/machine/public_nanite_chamber/board = circuit
- if(board)
- cloud_id = board.cloud_id
-
-/obj/machinery/public_nanite_chamber/proc/set_busy(status, working_icon)
- busy = status
- busy_icon_state = working_icon
- update_appearance()
-
-/obj/machinery/public_nanite_chamber/proc/inject_nanites(mob/living/attacker)
- if(machine_stat & (NOPOWER|BROKEN))
- return
- if((machine_stat & MAINT) || panel_open)
- return
- if(!occupant || busy)
- return
-
- var/locked_state = locked
- locked = TRUE
-
- //TODO OMINOUS MACHINE SOUNDS
- set_busy(TRUE, "[initial(icon_state)]_raising")
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_active"),20)
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_falling"),60)
- addtimer(CALLBACK(src, .proc/complete_injection, locked_state, attacker),80)
-
-/obj/machinery/public_nanite_chamber/proc/complete_injection(locked_state, mob/living/attacker)
- //TODO MACHINE DING
- locked = locked_state
- set_busy(FALSE)
- if(!occupant)
- return
- if(attacker)
- occupant.investigate_log("was injected with nanites with cloud ID [cloud_id] by [key_name(attacker)] using [src] at [AREACOORD(src)].", INVESTIGATE_NANITES)
- log_combat(attacker, occupant, "injected", null, "with nanites via [src]")
- occupant.AddComponent(/datum/component/nanites, 75, cloud_id)
-
-/obj/machinery/public_nanite_chamber/proc/change_cloud(mob/living/attacker)
- if(machine_stat & (NOPOWER|BROKEN))
- return
- if((machine_stat & MAINT) || panel_open)
- return
- if(!occupant || busy)
- return
-
- var/locked_state = locked
- locked = TRUE
-
- set_busy(TRUE, "[initial(icon_state)]_raising")
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_active"),20)
- addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_falling"),40)
- addtimer(CALLBACK(src, .proc/complete_cloud_change, locked_state, attacker),60)
-
-/obj/machinery/public_nanite_chamber/proc/complete_cloud_change(locked_state, mob/living/attacker)
- locked = locked_state
- set_busy(FALSE)
- if(!occupant)
- return
- if(attacker)
- occupant.investigate_log("had their nanite cloud ID changed into [cloud_id] by [key_name(attacker)] using [src] at [AREACOORD(src)].", INVESTIGATE_NANITES)
- SEND_SIGNAL(occupant, COMSIG_NANITE_SET_CLOUD, cloud_id)
-
-/obj/machinery/public_nanite_chamber/update_icon_state()
- //running and someone in there
- if(occupant)
- icon_state = busy ? busy_icon_state : "[base_icon_state]_occupied"
- return ..()
- //running
- icon_state = "[base_icon_state][state_open ? "_open" : null]"
- return ..()
-
-/obj/machinery/public_nanite_chamber/update_overlays()
- . = ..()
- if((machine_stat & MAINT) || panel_open)
- . += "maint"
- return
- if(machine_stat & (NOPOWER|BROKEN))
- return
-
- if(busy || locked)
- . += "red"
- if(locked)
- . += "bolted"
- return
- . += "green"
-
-/obj/machinery/public_nanite_chamber/proc/toggle_open(mob/user)
- if(panel_open)
- to_chat(user, span_notice("Close the maintenance panel first."))
- return
-
- if(state_open)
- close_machine(null, user)
- return
-
- else if(locked)
- to_chat(user, span_notice("The bolts are locked down, securing the door shut."))
- return
-
- open_machine()
-
-/obj/machinery/public_nanite_chamber/container_resist_act(mob/living/user)
- if(!locked)
- open_machine()
- return
- if(busy)
- return
- user.changeNext_move(CLICK_CD_BREAKOUT)
- user.last_special = world.time + CLICK_CD_BREAKOUT
- user.visible_message(span_notice("You see [user] kicking against the door of [src]!"), \
- span_notice("You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)"), \
- span_hear("You hear a metallic creaking from [src]."))
- if(do_after(user,(breakout_time), target = src))
- if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked || busy)
- return
- locked = FALSE
- user.visible_message(span_warning("[user] successfully broke out of [src]!"), \
- span_notice("You successfully break out of [src]!"))
- open_machine()
-
-/obj/machinery/public_nanite_chamber/close_machine(mob/living/carbon/user, mob/living/attacker)
- if(!state_open)
- return FALSE
-
- ..()
-
- . = TRUE
-
- addtimer(CALLBACK(src, .proc/try_inject_nanites, attacker), 30) //If someone is shoved in give them a chance to get out before the injection starts
-
-/obj/machinery/public_nanite_chamber/proc/try_inject_nanites(mob/living/attacker)
- if(occupant)
- var/mob/living/L = occupant
- if(SEND_SIGNAL(L, COMSIG_HAS_NANITES))
- var/datum/component/nanites/nanites = L.GetComponent(/datum/component/nanites)
- if(nanites && nanites.cloud_id != cloud_id)
- change_cloud(attacker)
- return
- if(L.mob_biotypes & (MOB_ORGANIC | MOB_UNDEAD))
- inject_nanites(attacker)
-
-/obj/machinery/public_nanite_chamber/open_machine()
- if(state_open)
- return FALSE
-
- ..()
-
- return TRUE
-
-/obj/machinery/public_nanite_chamber/relaymove(mob/living/user, direction)
- if(user.stat || locked)
- if(message_cooldown <= world.time)
- message_cooldown = world.time + 50
- to_chat(user, span_warning("[src]'s door won't budge!"))
- return
- open_machine()
-
-/obj/machinery/public_nanite_chamber/attackby(obj/item/I, mob/user, params)
- if(!occupant && default_deconstruction_screwdriver(user, icon_state, icon_state, I))//sent icon_state is irrelevant...
- update_appearance()//..since we're updating the icon here, since the scanner can be unpowered when opened/closed
- return
-
- if(default_pry_open(I))
- return
-
- if(default_deconstruction_crowbar(I))
- return
-
- return ..()
-
-/obj/machinery/public_nanite_chamber/interact(mob/user)
- toggle_open(user)
-
-/obj/machinery/public_nanite_chamber/MouseDrop_T(mob/target, mob/user)
- if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || !Adjacent(target) || !user.Adjacent(target) || !iscarbon(target))
- return
- if(close_machine(target, user))
- log_combat(user, target, "inserted", null, "into [src].")
- add_fingerprint(user)
diff --git a/code/modules/research/nanites/rules.dm b/code/modules/research/nanites/rules.dm
deleted file mode 100644
index 7eb793cd832..00000000000
--- a/code/modules/research/nanites/rules.dm
+++ /dev/null
@@ -1,150 +0,0 @@
-/datum/nanite_rule
- var/name = "Generic Condition"
- var/desc = "When triggered, the program is active"
- var/datum/nanite_program/program
-
-/datum/nanite_rule/New(datum/nanite_program/new_program)
- program = new_program
- if(LAZYLEN(new_program.rules) <= 5) //Avoid infinite stacking rules
- new_program.rules += src
- else
- qdel(src)
-
-/datum/nanite_rule/proc/remove()
- program.rules -= src
- program = null
- qdel(src)
-
-/datum/nanite_rule/proc/check_rule()
- return TRUE
-
-/datum/nanite_rule/proc/display()
- return name
-
-/datum/nanite_rule/proc/copy_to(datum/nanite_program/new_program)
- new type(new_program)
-
-/datum/nanite_rule/health
- name = "Health"
- desc = "Checks the host's health status."
-
- var/threshold = 50
- var/above = TRUE
-
-/datum/nanite_rule/health/check_rule()
- var/health_percent = program.host_mob.health / program.host_mob.maxHealth * 100
- if(above)
- if(health_percent >= threshold)
- return TRUE
- else
- if(health_percent < threshold)
- return TRUE
- return FALSE
-
-/datum/nanite_rule/health/display()
- return "[name] [above ? ">" : "<"] [threshold]%"
-
-/datum/nanite_rule/health/copy_to(datum/nanite_program/new_program)
- var/datum/nanite_rule/health/rule = new(new_program)
- rule.above = above
- rule.threshold = threshold
-
-//TODO allow inversion
-/datum/nanite_rule/crit
- name = "Crit"
- desc = "Checks if the host is in critical condition."
-
-/datum/nanite_rule/crit/check_rule()
- return HAS_TRAIT(program.host_mob, TRAIT_CRITICAL_CONDITION)
-
-
-/datum/nanite_rule/death
- name = "Death"
- desc = "Checks if the host is dead."
-
-/datum/nanite_rule/death/check_rule()
- if(program.host_mob.stat == DEAD || HAS_TRAIT(program.host_mob, TRAIT_FAKEDEATH))
- return TRUE
- return FALSE
-
-/datum/nanite_rule/cloud_sync
- name = "Cloud Sync"
- desc = "Checks if the nanites have cloud sync enabled or disabled."
- var/check_type = "Enabled"
-
-/datum/nanite_rule/cloud_sync/check_rule()
- if(check_type == "Enabled")
- return program.nanites.cloud_active
- else
- return !program.nanites.cloud_active
-
-/datum/nanite_rule/cloud_sync/copy_to(datum/nanite_program/new_program)
- var/datum/nanite_rule/cloud_sync/rule = new(new_program)
- rule.check_type = check_type
-
-/datum/nanite_rule/cloud_sync/display()
- return "[name]:[check_type]"
-
-/datum/nanite_rule/nanites
- name = "Nanite Volume"
- desc = "Checks the host's nanite volume."
-
- var/threshold = 50
- var/above = TRUE
-
-/datum/nanite_rule/nanites/check_rule()
- var/nanite_percent = (program.nanites.nanite_volume - program.nanites.safety_threshold)/(program.nanites.max_nanites - program.nanites.safety_threshold)*100
- if(above)
- if(nanite_percent >= threshold)
- return TRUE
- else
- if(nanite_percent < threshold)
- return TRUE
- return FALSE
-
-/datum/nanite_rule/nanites/copy_to(datum/nanite_program/new_program)
- var/datum/nanite_rule/nanites/rule = new(new_program)
- rule.above = above
- rule.threshold = threshold
-
-/datum/nanite_rule/nanites/display()
- return "[name] [above ? ">" : "<"] [threshold]%"
-
-/datum/nanite_rule/damage
- name = "Damage"
- desc = "Checks the host's damage."
-
- var/threshold = 50
- var/above = TRUE
- var/damage_type = BRUTE
-
-/datum/nanite_rule/damage/check_rule()
- var/damage_amt = 0
- switch(damage_type)
- if(BRUTE)
- damage_amt = program.host_mob.getBruteLoss()
- if(BURN)
- damage_amt = program.host_mob.getFireLoss()
- if(TOX)
- damage_amt = program.host_mob.getToxLoss()
- if(OXY)
- damage_amt = program.host_mob.getOxyLoss()
- if(CLONE)
- damage_amt = program.host_mob.getCloneLoss()
-
- if(above)
- if(damage_amt >= threshold)
- return TRUE
- else
- if(damage_amt < threshold)
- return TRUE
- return FALSE
-
-/datum/nanite_rule/damage/copy_to(datum/nanite_program/new_program)
- var/datum/nanite_rule/damage/rule = new(new_program)
- rule.above = above
- rule.threshold = threshold
- rule.damage_type = damage_type
-
-/datum/nanite_rule/damage/display()
- return "[damage_type] [above ? ">" : "<"] [threshold]"
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 1ff47f3f5c3..62d9dba92db 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -1689,188 +1689,6 @@
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
-/////////////////////////Nanites/////////////////////////
-/datum/techweb_node/nanite_base
- id = "nanite_base"
- display_name = "Basic Nanite Programming"
- description = "The basics of nanite construction and programming."
- prereq_ids = list("datatheory")
- design_ids = list(
- "access_nanites",
- "debugging_nanites",
- "monitoring_nanites",
- "nanite_chamber",
- "nanite_chamber_control",
- "nanite_cloud_control",
- "nanite_comm_remote",
- "nanite_disk",
- "nanite_program_hub",
- "nanite_programmer",
- "nanite_remote",
- "nanite_scanner",
- "public_nanite_chamber",
- "relay_nanites",
- "relay_repeater_nanites",
- "repairing_nanites",
- "repeater_nanites",
- "sensor_nanite_volume",
- )
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000)
-
-/datum/techweb_node/nanite_smart
- id = "nanite_smart"
- display_name = "Smart Nanite Programming"
- description = "Nanite programs that require nanites to perform complex actions, act independently, roam or seek targets."
- prereq_ids = list("nanite_base","robotics")
- design_ids = list(
- "memleak_nanites",
- "metabolic_nanites",
- "purging_nanites",
- "sensor_voice_nanites",
- "stealth_nanites",
- "voice_nanites",
- )
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500, TECHWEB_POINT_TYPE_NANITES = 500)
-
-/datum/techweb_node/nanite_mesh
- id = "nanite_mesh"
- display_name = "Mesh Nanite Programming"
- description = "Nanite programs that require static structures and membranes."
- prereq_ids = list("nanite_base","engineering")
- design_ids = list(
- "conductive_nanites",
- "cryo_nanites",
- "dermal_button_nanites",
- "emp_nanites",
- "hardening_nanites",
- "refractive_nanites",
- "shock_nanites",
- "temperature_nanites",
- )
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500, TECHWEB_POINT_TYPE_NANITES = 500)
-
-/datum/techweb_node/nanite_bio
- id = "nanite_bio"
- display_name = "Biological Nanite Programming"
- description = "Nanite programs that require complex biological interaction."
- prereq_ids = list("nanite_base","biotech")
- design_ids = list(
- "bloodheal_nanites",
- "coagulating_nanites",
- "flesheating_nanites",
- "poison_nanites",
- "regenerative_nanites",
- "sensor_crit_nanites",
- "sensor_damage_nanites",
- "sensor_death_nanites",
- "sensor_health_nanites",
- "sensor_species_nanites",
- )
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500, TECHWEB_POINT_TYPE_NANITES = 500)
-
-/datum/techweb_node/nanite_neural
- id = "nanite_neural"
- display_name = "Neural Nanite Programming"
- description = "Nanite programs affecting nerves and brain matter."
- prereq_ids = list("nanite_bio")
- design_ids = list(
- "bad_mood_nanites",
- "brainheal_nanites",
- "good_mood_nanites",
- "nervous_nanites",
- "paralyzing_nanites",
- "selfscan_nanites",
- "stun_nanites",
- )
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000, TECHWEB_POINT_TYPE_NANITES = 1000)
-
-/datum/techweb_node/nanite_synaptic
- id = "nanite_synaptic"
- display_name = "Synaptic Nanite Programming"
- description = "Nanite programs affecting mind and thoughts."
- prereq_ids = list("nanite_neural","neural_programming")
- design_ids = list(
- "blinding_nanites",
- "hallucination_nanites",
- "mindshield_nanites",
- "mute_nanites",
- "pacifying_nanites",
- "sleep_nanites",
- "speech_nanites",
- )
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000, TECHWEB_POINT_TYPE_NANITES = 1000)
-
-/datum/techweb_node/nanite_harmonic
- id = "nanite_harmonic"
- display_name = "Harmonic Nanite Programming"
- description = "Nanite programs that require seamless integration between nanites and biology. Passively increases nanite regeneration rate for all clouds upon researching."
- prereq_ids = list("nanite_bio","nanite_smart","nanite_mesh")
- design_ids = list(
- "aggressive_nanites",
- "brainheal_plus_nanites",
- "defib_nanites",
- "fakedeath_nanites",
- "purging_plus_nanites",
- "regenerative_plus_nanites",
- )
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000, TECHWEB_POINT_TYPE_NANITES = 3000)
-
-/datum/techweb_node/nanite_combat
- id = "nanite_military"
- display_name = "Military Nanite Programming"
- description = "Nanite programs that perform military-grade functions."
- prereq_ids = list("nanite_harmonic", "syndicate_basic")
- design_ids = list(
- "explosive_nanites",
- "meltdown_nanites",
- "nanite_sting_nanites",
- "pyro_nanites",
- "viral_nanites",
- )
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500, TECHWEB_POINT_TYPE_NANITES = 2500)
-
-/datum/techweb_node/nanite_hazard
- id = "nanite_hazard"
- display_name = "Hazard Nanite Programs"
- description = "Extremely advanced Nanite programs with the potential of being extremely dangerous."
- prereq_ids = list("nanite_harmonic", "alientech")
- design_ids = list(
- "mindcontrol_nanites",
- "mitosis_nanites",
- "spreading_nanites",
- )
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000, TECHWEB_POINT_TYPE_NANITES = 4000)
-
-/datum/techweb_node/nanite_replication_protocols
- id = "nanite_replication_protocols"
- display_name = "Nanite Replication Protocols"
- description = "Protocols that overwrite the default nanite replication routine to achieve more efficiency in certain circumstances."
- prereq_ids = list("nanite_smart")
- design_ids = list(
- "factory_nanites",
- "kickstart_nanites",
- "offline_nanites",
- "pyramid_nanites",
- )
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000, TECHWEB_POINT_TYPE_NANITES = 2500)
- hidden = TRUE
- experimental = TRUE
-
-/datum/techweb_node/nanite_storage_protocols
- id = "nanite_storage_protocols"
- display_name = "Nanite Storage Protocols"
- description = "Protocols that overwrite the default nanite storage routine to achieve more efficiency or greater capacity."
- prereq_ids = list("nanite_smart")
- design_ids = list(
- "free_range_nanites",
- "hive_nanites",
- "unsafe_storage_nanites",
- "zip_nanites",
- )
- research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000, TECHWEB_POINT_TYPE_NANITES = 2500)
- hidden = TRUE
- experimental = TRUE
-
////////////////////////Alien technology////////////////////////
/datum/techweb_node/alientech //AYYYYYYYYLMAOO tech
id = "alientech"
diff --git a/code/modules/unit_tests/designs.dm b/code/modules/unit_tests/designs.dm
index 7ef6658959e..2867eeee369 100644
--- a/code/modules/unit_tests/designs.dm
+++ b/code/modules/unit_tests/designs.dm
@@ -3,11 +3,10 @@
/datum/unit_test/designs/Run()
//Can't use allocate because of bug with certain datums
var/datum/design/default_design = new /datum/design()
- var/datum/design/nanites/default_design_nanites = new /datum/design/nanites()
var/datum/design/surgery/default_design_surgery = new /datum/design/surgery()
for(var/path in subtypesof(/datum/design))
- if (ispath(path, /datum/design/nanites) || ispath(path, /datum/design/surgery)) //We are checking nanites and surgery design separatly later since they work differently
+ if (ispath(path, /datum/design/surgery)) //We are checking surgery design separatly later since they work differently
continue
var/datum/design/current_design = new path //Create an instance of each design
if (current_design.id == DESIGN_ID_IGNORE) //Don't check designs with ignore ID
@@ -20,11 +19,6 @@
else if (!isnull(current_design.build_path) || !isnull(current_design.build_path)) // //Design requires no materials but creates stuff
Fail("Design [current_design.type] requires NO materials but has build_path or make_reagents set")
- for(var/path in subtypesof(/datum/design/nanites))
- var/datum/design/nanites/current_design = new path //Create an instance of each design
- if (isnull(current_design.program_type) || current_design.program_type == default_design_nanites.program_type) //Check if the Nanite design provides a program
- Fail("Nanite Design [current_design.type] does not have have any program_type set")
-
for(var/path in subtypesof(/datum/design/surgery))
var/datum/design/surgery/current_design = new path //Create an instance of each design
if (isnull(current_design.id) || current_design.id == default_design_surgery.id) //Check if ID was not set
diff --git a/code/modules/wiremod/shell/brain_computer_interface.dm b/code/modules/wiremod/shell/brain_computer_interface.dm
index a97b6dad692..74af8daa69a 100644
--- a/code/modules/wiremod/shell/brain_computer_interface.dm
+++ b/code/modules/wiremod/shell/brain_computer_interface.dm
@@ -133,13 +133,13 @@
/obj/item/circuit_component/bci_action/proc/update_action()
bci_action.name = button_name.input_value
- bci_action.button_icon_state = "nanite_[replacetextEx(lowertext(current_option), " ", "_")]"
+ bci_action.button_icon_state = "bci_[replacetextEx(lowertext(current_option), " ", "_")]"
/datum/action/innate/bci_action
name = "Action"
icon_icon = 'icons/mob/actions/actions_items.dmi'
check_flags = AB_CHECK_CONSCIOUS
- button_icon_state = "nanite_power"
+ button_icon_state = "bci_power"
var/obj/item/circuit_component/bci_action/circuit_component
@@ -317,9 +317,9 @@
name = "brain-computer interface manipulation chamber"
desc = "A machine that, when given a brain-computer interface, will implant it into an occupant. Otherwise, will remove any brain-computer interfaces they already have."
circuit = /obj/item/circuitboard/machine/bci_implanter
- icon = 'icons/obj/machines/nanite_chamber.dmi'
- icon_state = "nanite_chamber"
- base_icon_state = "nanite_chamber"
+ icon = 'icons/obj/machines/bci_implanter.dmi'
+ icon_state = "bci_implanter"
+ base_icon_state = "bci_implanter"
layer = ABOVE_WINDOW_LAYER
use_power = IDLE_POWER_USE
anchored = TRUE
diff --git a/icons/mob/actions/actions_items.dmi b/icons/mob/actions/actions_items.dmi
index 9242e1f02ae..5e947b4c8a2 100644
Binary files a/icons/mob/actions/actions_items.dmi and b/icons/mob/actions/actions_items.dmi differ
diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi
index 08c63adc04f..366d8ae2a38 100644
Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ
diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi
index b25bb95c1c3..effab4e60a7 100644
Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ
diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi
index 535232587d4..c3c2c6a7028 100644
Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index 303035439b8..191b6ca5ccc 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/icons/obj/machines/nanite_chamber.dmi b/icons/obj/machines/bci_implanter.dmi
similarity index 96%
rename from icons/obj/machines/nanite_chamber.dmi
rename to icons/obj/machines/bci_implanter.dmi
index f42dcd48485..2b76bfb508a 100644
Binary files a/icons/obj/machines/nanite_chamber.dmi and b/icons/obj/machines/bci_implanter.dmi differ
diff --git a/icons/obj/machines/research.dmi b/icons/obj/machines/research.dmi
index d7ba433ce3e..dc7f0c24e79 100644
Binary files a/icons/obj/machines/research.dmi and b/icons/obj/machines/research.dmi differ
diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi
index b3443c0119c..9d62d4cc580 100755
Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ
diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi
index 69f25391090..5349d33e721 100644
Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ
diff --git a/strings/cas_white.txt b/strings/cas_white.txt
index 9429f88bcc2..644ffdf21cf 100644
--- a/strings/cas_white.txt
+++ b/strings/cas_white.txt
@@ -304,7 +304,7 @@ The vomitgoose.
Ziptie hogtying.
Defeating a changeling by sticking your hand down its pants.
A crateful of fresh organs.
-The primal, nerve-slapping sex that nanites are having inside you.
+The primal, nerve-slapping sex that nanites were having inside you.
Calling a shuttle because I broke a toenail.
Chunks of dead flyperson.
Curse of the Barnyard.
diff --git a/strings/locations.json b/strings/locations.json
index 27bba0ba6c1..0696718e198 100644
--- a/strings/locations.json
+++ b/strings/locations.json
@@ -58,7 +58,6 @@
"Mining Office",
"Morgue",
"Morgue Maintenance",
- "Nanite Lab",
"Primary Tool Storage",
"Prison Wing",
"Prisoner Education Chamber",
diff --git a/tgstation.dme b/tgstation.dme
index d0b9246fe11..bdbb450267e 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -101,7 +101,6 @@
#include "code\__DEFINES\move_force.dm"
#include "code\__DEFINES\movement.dm"
#include "code\__DEFINES\movespeed_modification.dm"
-#include "code\__DEFINES\nanites.dm"
#include "code\__DEFINES\networks.dm"
#include "code\__DEFINES\nitrile.dm"
#include "code\__DEFINES\obj_flags.dm"
@@ -386,7 +385,6 @@
#include "code\controllers\subsystem\processing\fields.dm"
#include "code\controllers\subsystem\processing\fluids.dm"
#include "code\controllers\subsystem\processing\instruments.dm"
-#include "code\controllers\subsystem\processing\nanites.dm"
#include "code\controllers\subsystem\processing\networks.dm"
#include "code\controllers\subsystem\processing\obj.dm"
#include "code\controllers\subsystem\processing\processing.dm"
@@ -544,7 +542,6 @@
#include "code\datums\components\mirage_border.dm"
#include "code\datums\components\mirv.dm"
#include "code\datums\components\mood.dm"
-#include "code\datums\components\nanites.dm"
#include "code\datums\components\ntnet_interface.dm"
#include "code\datums\components\omen.dm"
#include "code\datums\components\orbiter.dm"
@@ -674,7 +671,6 @@
#include "code\datums\diseases\advance\symptoms\headache.dm"
#include "code\datums\diseases\advance\symptoms\heal.dm"
#include "code\datums\diseases\advance\symptoms\itching.dm"
-#include "code\datums\diseases\advance\symptoms\nanites.dm"
#include "code\datums\diseases\advance\symptoms\narcolepsy.dm"
#include "code\datums\diseases\advance\symptoms\oxygen.dm"
#include "code\datums\diseases\advance\symptoms\sensory.dm"
@@ -3288,7 +3284,6 @@
#include "code\modules\research\designs\medical_designs.dm"
#include "code\modules\research\designs\mining_designs.dm"
#include "code\modules\research\designs\misc_designs.dm"
-#include "code\modules\research\designs\nanite_designs.dm"
#include "code\modules\research\designs\power_designs.dm"
#include "code\modules\research\designs\smelting_designs.dm"
#include "code\modules\research\designs\stock_parts_designs.dm"
@@ -3303,30 +3298,6 @@
#include "code\modules\research\machinery\departmental_techfab.dm"
#include "code\modules\research\machinery\protolathe.dm"
#include "code\modules\research\machinery\techfab.dm"
-#include "code\modules\research\nanites\nanite_chamber.dm"
-#include "code\modules\research\nanites\nanite_chamber_computer.dm"
-#include "code\modules\research\nanites\nanite_cloud_controller.dm"
-#include "code\modules\research\nanites\nanite_misc_items.dm"
-#include "code\modules\research\nanites\nanite_program_hub.dm"
-#include "code\modules\research\nanites\nanite_programmer.dm"
-#include "code\modules\research\nanites\nanite_programs.dm"
-#include "code\modules\research\nanites\nanite_remote.dm"
-#include "code\modules\research\nanites\program_disks.dm"
-#include "code\modules\research\nanites\public_chamber.dm"
-#include "code\modules\research\nanites\rules.dm"
-#include "code\modules\research\nanites\extra_settings\_extra_setting.dm"
-#include "code\modules\research\nanites\extra_settings\boolean.dm"
-#include "code\modules\research\nanites\extra_settings\number.dm"
-#include "code\modules\research\nanites\extra_settings\text.dm"
-#include "code\modules\research\nanites\extra_settings\type.dm"
-#include "code\modules\research\nanites\nanite_programs\buffing.dm"
-#include "code\modules\research\nanites\nanite_programs\healing.dm"
-#include "code\modules\research\nanites\nanite_programs\protocols.dm"
-#include "code\modules\research\nanites\nanite_programs\rogue.dm"
-#include "code\modules\research\nanites\nanite_programs\sensor.dm"
-#include "code\modules\research\nanites\nanite_programs\suppression.dm"
-#include "code\modules\research\nanites\nanite_programs\utility.dm"
-#include "code\modules\research\nanites\nanite_programs\weapon.dm"
#include "code\modules\research\techweb\__techweb_helpers.dm"
#include "code\modules\research\techweb\_techweb.dm"
#include "code\modules\research\techweb\_techweb_node.dm"
diff --git a/tgui/packages/tgui/interfaces/NaniteChamberControl.js b/tgui/packages/tgui/interfaces/NaniteChamberControl.js
deleted file mode 100644
index 28e62f15d5d..00000000000
--- a/tgui/packages/tgui/interfaces/NaniteChamberControl.js
+++ /dev/null
@@ -1,277 +0,0 @@
-import { useBackend } from '../backend';
-import { Box, Button, Collapsible, Grid, LabeledList, NoticeBox, NumberInput, Section } from '../components';
-import { Window } from '../layouts';
-
-export const NaniteChamberControl = (props, context) => {
- return (
-
-
-
-
-
- );
-};
-
-export const NaniteChamberControlContent = (props, context) => {
- const { act, data } = useBackend(context);
- const {
- status_msg,
- locked,
- occupant_name,
- has_nanites,
- nanite_volume,
- regen_rate,
- safety_threshold,
- cloud_id,
- scan_level,
- } = data;
-
- if (status_msg) {
- return (
-
- {status_msg}
-
- );
- }
-
- const mob_programs = data.mob_programs || [];
-
- return (
- act('toggle_lock')} />
- )}>
- {!has_nanites ? (
- <>
-
- No Nanites Detected
-
-
- );
-};
diff --git a/tgui/packages/tgui/interfaces/NaniteCloudControl.js b/tgui/packages/tgui/interfaces/NaniteCloudControl.js
deleted file mode 100644
index e679c36e40c..00000000000
--- a/tgui/packages/tgui/interfaces/NaniteCloudControl.js
+++ /dev/null
@@ -1,333 +0,0 @@
-import { useBackend } from '../backend';
-import { Box, Button, Collapsible, Grid, LabeledList, NoticeBox, NumberInput, Section } from '../components';
-import { Window } from '../layouts';
-
-export const NaniteDiskBox = (props, context) => {
- const { data } = useBackend(context);
- const {
- has_disk,
- has_program,
- disk,
- } = data;
- if (!has_disk) {
- return (
-
- No disk inserted
-
- );
- }
- if (!has_program) {
- return (
-
- Inserted disk has no program
-
- );
- }
- return (
-
- );
-};
-
-export const NaniteInfoBox = (props, context) => {
- const { program } = props;
- const {
- name,
- desc,
- activated,
- use_rate,
- can_trigger,
- trigger_cost,
- trigger_cooldown,
- activation_code,
- deactivation_code,
- kill_code,
- trigger_code,
- timer_restart,
- timer_shutdown,
- timer_trigger,
- timer_trigger_delay,
- } = program;
- const extra_settings = program.extra_settings || [];
- return (
-
- {activated ? 'Activated' : 'Deactivated'}
-
- )}>
-
-
- {desc}
-
-
-
-
- {use_rate}
-
- {!!can_trigger && (
- <>
-
- {trigger_cost}
-
-
- {trigger_cooldown}
-
- >
- )}
-
-
-
-
-
-
-
-
- {activation_code}
-
-
- {deactivation_code}
-
-
- {kill_code}
-
- {!!can_trigger && (
-
- {trigger_code}
-
- )}
-
-
-
-
-
-
-
- {timer_restart} s
-
-
- {timer_shutdown} s
-
- {!!can_trigger && (
- <>
-
- {timer_trigger} s
-
-
- {timer_trigger_delay} s
-
- >
- )}
-
-
-
-
-
-
- {extra_settings.map(setting => {
- const naniteTypesDisplayMap = {
- number: <>{setting.value}{setting.unit}>,
- text: setting.value,
- type: setting.value,
- boolean: (setting.value
- ? setting.true_text
- : setting.false_text),
- };
- return (
-
- {naniteTypesDisplayMap[setting.type]}
-
- );
- })}
-
-
-
- );
-};
-
-export const NaniteCloudBackupList = (props, context) => {
- const { act, data } = useBackend(context);
- const cloud_backups = data.cloud_backups || [];
- return cloud_backups.map(backup => (
-