diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 56441fb3b1e..24f6b573355 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -8288,12 +8288,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
@@ -11776,17 +11770,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,
@@ -19925,16 +19908,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";
@@ -22875,6 +22848,9 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
/area/science/xenobiology)
+"cWY" = (
+/turf/open/floor/plating,
+/area/science/misc_lab)
"cXa" = (
/obj/structure/cable,
/obj/effect/turf_decal/delivery,
@@ -26228,11 +26204,7 @@
/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
@@ -26244,14 +26216,11 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/table/reinforced,
+/obj/item/mmi,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"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
},
@@ -26262,10 +26231,11 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/turf_decal/bot,
+/obj/machinery/module_duplicator,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"djI" = (
-/obj/machinery/computer/nanite_chamber_control,
/obj/structure/sign/poster/random{
pixel_y = 32
},
@@ -26280,10 +26250,12 @@
/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/nanite)
+/area/science/misc_lab)
"djJ" = (
-/obj/machinery/nanite_chamber,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -26294,11 +26266,10 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/component_printer,
+/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
-/area/science/nanite)
-"djK" = (
-/turf/closed/wall,
-/area/science/nanite)
+/area/science/misc_lab)
"djL" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -26724,8 +26695,11 @@
/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/nanite)
+/area/science/misc_lab)
"dlu" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/neutral{
@@ -26738,17 +26712,13 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
+/obj/effect/turf_decal/loading_area,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dlv" = (
/obj/machinery/light/directional/east,
/obj/machinery/light_switch/directional/east,
-/obj/effect/turf_decal/loading_area{
- dir = 1
- },
+/obj/effect/turf_decal/loading_area,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -26760,7 +26730,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dlz" = (
/obj/structure/sign/warning/nosmoking,
/turf/closed/wall,
@@ -26948,9 +26918,8 @@
"dmF" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
-/area/science/nanite)
+/area/science/misc_lab)
"dmG" = (
-/obj/machinery/nanite_program_hub,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -26962,13 +26931,12 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/table/reinforced,
+/obj/item/controller,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dmH" = (
/obj/structure/cable,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -26980,7 +26948,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dmI" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -26994,7 +26962,7 @@
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dmJ" = (
/obj/item/kirbyplants/random,
/obj/effect/turf_decal/tile/neutral{
@@ -27008,7 +26976,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dmL" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/stripes/line{
@@ -27832,22 +27800,6 @@
/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
@@ -27860,8 +27812,15 @@
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/nanite)
+/area/science/misc_lab)
"dqr" = (
/obj/structure/disposalpipe/trunk{
dir = 1
@@ -27878,7 +27837,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dqu" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -28127,20 +28086,6 @@
/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
@@ -28153,8 +28098,11 @@
dir = 8
},
/obj/item/radio/intercom/directional/west,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = 3
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"drN" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -28167,11 +28115,10 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"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
},
@@ -28182,8 +28129,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"drP" = (
/turf/closed/wall/r_wall,
/area/science/mixing)
@@ -28541,9 +28489,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
},
@@ -28554,8 +28499,11 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dti" = (
/obj/structure/closet/bombcloset,
/obj/effect/turf_decal/stripes/line{
@@ -28875,44 +28823,21 @@
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/nanite)
+/area/science/misc_lab)
"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)
+/obj/machinery/rnd/experimentor,
+/turf/open/floor/engine,
+/area/science/misc_lab)
"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)
+/turf/open/floor/engine,
+/area/science/misc_lab)
"duF" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -33811,23 +33736,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
@@ -37309,12 +37217,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{
@@ -38589,7 +38491,7 @@
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"eAI" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral,
@@ -40701,13 +40603,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
@@ -42088,7 +41983,7 @@
"fuF" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/research{
- name = "Nanite Lab";
+ name = "Circuits Lab";
req_access_txt = "47"
},
/obj/structure/disposalpipe/segment{
@@ -42107,7 +42002,7 @@
dir = 8
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/misc_lab)
"fuJ" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/obj/structure/cable,
@@ -44247,6 +44142,11 @@
},
/turf/open/floor/iron,
/area/hallway/primary/central/aft)
+"gdJ" = (
+/obj/structure/table/reinforced,
+/obj/machinery/cell_charger,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"gdO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 4
@@ -44924,18 +44824,16 @@
/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/effect/landmark/xeno_spawn,
/obj/machinery/door/window/brigdoor{
dir = 4;
name = "Test Range"
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 5
+/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)
@@ -45196,9 +45094,10 @@
/turf/open/floor/engine/co2,
/area/engineering/atmos)
"gsi" = (
+/obj/structure/table/reinforced,
+/obj/machinery/recharger,
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/south,
-/obj/structure/filingcabinet/chestdrawer,
/turf/open/floor/iron/white,
/area/science/misc_lab)
"gsn" = (
@@ -46084,11 +45983,14 @@
/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/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
},
@@ -46099,8 +46001,16 @@
/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/nanite)
+/area/science/misc_lab)
"gGK" = (
/obj/machinery/modular_computer/console/preset/id{
dir = 8
@@ -47773,7 +47683,7 @@
/area/hallway/primary/central/aft)
"hgS" = (
/obj/machinery/door/airlock/research{
- name = "Circuits Testing Lab";
+ name = "Research Testing Range";
req_access_txt = "47"
},
/obj/structure/disposalpipe/segment{
@@ -50059,9 +49969,7 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"hOV" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
+/obj/machinery/airalarm/directional/north,
/turf/open/floor/iron/white,
/area/science/misc_lab)
"hOZ" = (
@@ -52046,8 +51954,9 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"imN" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/neutral{
@@ -53942,11 +53851,6 @@
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)
"iNQ" = (
@@ -57062,13 +56966,6 @@
/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" = (
@@ -59294,12 +59191,7 @@
/turf/open/floor/engine/n2,
/area/engineering/atmos)
"kon" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/science/misc_lab)
"kot" = (
@@ -62988,6 +62880,10 @@
},
/turf/open/floor/iron,
/area/engineering/gravity_generator)
+"lkj" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"lkl" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/neutral,
@@ -68895,10 +68791,6 @@
/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" = (
@@ -69101,16 +68993,14 @@
/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{
+ dir = 4
},
-/obj/structure/window/reinforced,
-/turf/open/floor/iron/white,
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/iron,
/area/science/misc_lab)
"mPo" = (
/obj/machinery/research/explosive_compressor,
@@ -73491,7 +73381,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"nTx" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -73705,18 +73595,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,
@@ -75083,8 +74961,9 @@
/turf/open/floor/iron/white,
/area/hallway/primary/central/aft)
"oly" = (
-/obj/machinery/modular_computer/console/preset/civilian,
-/turf/open/floor/iron/white,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/girder,
+/turf/open/floor/plating,
/area/science/misc_lab)
"olC" = (
/obj/structure/disposalpipe/segment{
@@ -75405,12 +75284,8 @@
/turf/open/floor/iron/dark,
/area/engineering/atmos)
"ooN" = (
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
/obj/effect/turf_decal/tile/purple,
-/obj/machinery/module_duplicator,
-/turf/open/floor/iron/white,
+/turf/closed/wall/r_wall,
/area/science/misc_lab)
"ooT" = (
/obj/effect/spawner/randomsnackvend,
@@ -80802,32 +80677,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{
@@ -81093,6 +80942,12 @@
/obj/item/radio/intercom/directional/south,
/turf/open/floor/iron,
/area/cargo/miningoffice)
+"pOL" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/science/misc_lab)
"pPr" = (
/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{
dir = 8
@@ -82212,25 +82067,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,
@@ -83743,11 +83579,8 @@
/turf/open/floor/circuit/green,
/area/engineering/main)
"qyo" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 5
},
/turf/open/floor/iron,
/area/science/misc_lab)
@@ -84423,7 +84256,7 @@
/turf/open/floor/iron,
/area/hallway/secondary/entry)
"qGq" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/science/misc_lab)
"qGs" = (
@@ -85506,21 +85339,8 @@
/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)
+/turf/open/floor/engine,
+/area/science/misc_lab)
"qUh" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -88545,15 +88365,7 @@
/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,
+/turf/open/floor/plating,
/area/science/misc_lab)
"rKh" = (
/obj/effect/decal/cleanable/dirt,
@@ -89774,17 +89586,10 @@
/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{
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
},
-/turf/open/floor/iron/white,
+/turf/open/floor/iron,
/area/science/misc_lab)
"saQ" = (
/obj/machinery/door/firedoor,
@@ -91870,6 +91675,14 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron,
/area/engineering/atmos)
+"sBJ" = (
+/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)
"sBM" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
@@ -92271,6 +92084,12 @@
dir = 1
},
/area/engineering/break_room)
+"sFR" = (
+/obj/structure/table/reinforced,
+/obj/item/screwdriver,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"sGh" = (
/obj/structure/chair/office{
dir = 4
@@ -92683,9 +92502,7 @@
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,
+/turf/open/floor/iron,
/area/science/misc_lab)
"sKP" = (
/obj/effect/turf_decal/stripes/line,
@@ -95224,11 +95041,8 @@
/turf/open/floor/iron,
/area/maintenance/starboard/fore)
"tuj" = (
-/obj/structure/chair/office/light{
- dir = 1;
- pixel_y = 3
- },
-/turf/open/floor/iron/white,
+/obj/structure/girder,
+/turf/open/floor/plating,
/area/science/misc_lab)
"tuq" = (
/obj/effect/landmark/event_spawn,
@@ -100282,6 +100096,7 @@
/turf/closed/wall/r_wall,
/area/ai_monitored/turret_protected/ai)
"uJJ" = (
+/obj/machinery/light/directional/north,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron/white,
/area/science/misc_lab)
@@ -101530,11 +101345,6 @@
/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" = (
@@ -102875,8 +102685,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"vxa" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -103754,7 +103565,7 @@
/area/engineering/supermatter/room)
"vJu" = (
/obj/machinery/door/airlock/maintenance_hatch{
- name = "Nanite Lab Maintenance";
+ name = "Circuits Lab Maintenance";
req_access_txt = "47"
},
/turf/open/floor/plating,
@@ -105188,28 +104999,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,
@@ -105695,23 +105484,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,
@@ -108039,9 +107811,8 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"wTa" = (
-/obj/machinery/computer/nanite_cloud_controller,
+/obj/structure/table/reinforced,
/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -108052,8 +107823,10 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/item/paper_bin,
+/obj/item/pen,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"wTb" = (
/obj/machinery/vending/cigarette,
/obj/effect/turf_decal/tile/neutral{
@@ -108308,7 +108081,7 @@
dir = 1
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"wWd" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
/obj/effect/turf_decal/tile/yellow{
@@ -109508,7 +109281,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"xox" = (
/obj/effect/turf_decal/tile/yellow{
dir = 8
@@ -109524,9 +109297,6 @@
/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" = (
@@ -109534,6 +109304,16 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/command/gateway)
+"xpf" = (
+/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)
"xpg" = (
/obj/structure/closet/emcloset,
/obj/effect/turf_decal/tile/yellow,
@@ -111043,6 +110823,19 @@
/turf/open/floor/iron,
/area/science/mixing)
"xLa" = (
+/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)
"xLd" = (
@@ -112147,9 +111940,6 @@
dir = 4
},
/obj/structure/cable,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -112167,7 +111957,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"ybi" = (
/turf/open/floor/iron/grimy,
/area/command/heads_quarters/hos)
@@ -137534,11 +137324,11 @@ exk
swm
pfQ
tCh
+sFR
+lkj
+gSi
map
vGv
-vGv
-vGv
-vGv
lmF
gSi
dul
@@ -137791,10 +137581,10 @@ ced
wXQ
moY
tCh
+xpf
+pOL
+gSi
mLI
-xKO
-xKO
-xKO
bfJ
aST
gSi
@@ -138048,11 +137838,11 @@ cMY
ceb
moY
tCh
-uRm
+gdJ
qGq
-ehi
-ehi
-faO
+gSi
+uRm
+xKO
aST
gSi
dlg
@@ -138305,11 +138095,11 @@ cMY
cea
kEw
tCh
+qGq
+qGq
+gSi
mLI
xKO
-xKO
-xKO
-ehi
mGu
gSi
dum
@@ -138561,11 +138351,11 @@ dcb
cMY
cea
laE
-tCh
+sBJ
kon
qyo
-qyo
-qyo
+gSi
+mLI
jHZ
aST
gSi
@@ -138819,9 +138609,9 @@ cMY
deX
aiu
tCh
-nUV
+qGq
saJ
-wbX
+gSi
mPh
gpg
nGU
@@ -139078,7 +138868,7 @@ joJ
tCh
oly
tuj
-xLa
+gSi
xLa
xoY
gsi
@@ -139333,9 +139123,9 @@ cMY
deY
oAw
tCh
-bLH
-bly
-xLa
+cWY
+xKO
+gSi
uJJ
ifR
veb
@@ -139590,9 +139380,9 @@ cMY
cjp
hST
tCh
-cGu
-hOV
-hOV
+cWY
+cWY
+gSi
hOV
oox
iNP
@@ -139851,7 +139641,7 @@ sKO
rKf
ooN
mLZ
-dQV
+oox
qhk
gSi
dur
@@ -142674,16 +142464,16 @@ cNd
cOM
dgt
cMY
-djF
-djF
-djF
+gSi
+gSi
+gSi
nTq
-djF
-djF
-djF
-djF
-djF
-djF
+gSi
+gSi
+gSi
+gSi
+gSi
+gSi
cxO
oFE
caE
@@ -142940,7 +142730,7 @@ drM
gFZ
duz
wTa
-djF
+gSi
dzp
pxk
caE
@@ -143191,7 +142981,7 @@ cMY
djH
dlu
dmH
-pLc
+ybh
drN
vwU
dtg
@@ -143446,15 +143236,15 @@ cON
eAA
cMY
djI
-wjF
+drN
dmI
wVN
eAB
imL
-drN
+qUc
duD
qUc
-djF
+gSi
dzo
oks
exk
@@ -143708,10 +143498,10 @@ dmJ
xot
dqr
drO
-djJ
+qUc
duE
-qdJ
-djF
+qUc
+gSi
tbn
cjq
dBZ
@@ -143959,16 +143749,16 @@ cNc
cMY
cMY
dhU
-djK
-djK
+tCh
+tCh
dmF
fuF
dmF
-djF
-djF
-djF
-djF
-djF
+gSi
+gSi
+gSi
+gSi
+gSi
drP
drP
drP
diff --git a/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm b/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm
index cc847af9548..f443f12dcb5 100644
--- a/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm
@@ -7531,12 +7531,8 @@
/turf/open/floor/iron,
/area/security/prison)
"bhD" = (
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
/obj/effect/turf_decal/tile/purple,
-/obj/machinery/module_duplicator,
-/turf/open/floor/iron/white,
+/turf/closed/wall/r_wall,
/area/science/misc_lab)
"bhH" = (
/obj/machinery/light/small/directional/north,
@@ -7994,12 +7990,6 @@
/obj/effect/spawner/armory_spawn/shotguns,
/turf/open/floor/iron/dark,
/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
@@ -11510,17 +11500,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,
@@ -19743,16 +19722,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";
@@ -26071,11 +26040,7 @@
/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
@@ -26087,14 +26052,11 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/table/reinforced,
+/obj/item/mmi,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"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
},
@@ -26105,10 +26067,11 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/turf_decal/bot,
+/obj/machinery/module_duplicator,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"djI" = (
-/obj/machinery/computer/nanite_chamber_control,
/obj/structure/sign/poster/random{
pixel_y = 32
},
@@ -26123,10 +26086,12 @@
/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/nanite)
+/area/science/misc_lab)
"djJ" = (
-/obj/machinery/nanite_chamber,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -26137,11 +26102,10 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/component_printer,
+/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
-/area/science/nanite)
-"djK" = (
-/turf/closed/wall,
-/area/science/nanite)
+/area/science/misc_lab)
"djL" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -26567,8 +26531,11 @@
/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/nanite)
+/area/science/misc_lab)
"dlu" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/neutral{
@@ -26581,17 +26548,13 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
+/obj/effect/turf_decal/loading_area,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dlv" = (
/obj/machinery/light/directional/east,
/obj/machinery/light_switch/directional/east,
-/obj/effect/turf_decal/loading_area{
- dir = 1
- },
+/obj/effect/turf_decal/loading_area,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -26603,7 +26566,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dlz" = (
/obj/structure/sign/warning/nosmoking,
/turf/closed/wall,
@@ -26795,9 +26758,8 @@
"dmF" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
-/area/science/nanite)
+/area/science/misc_lab)
"dmG" = (
-/obj/machinery/nanite_program_hub,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -26809,13 +26771,12 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/table/reinforced,
+/obj/item/controller,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dmH" = (
/obj/structure/cable,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -26827,7 +26788,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dmI" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -26841,7 +26802,7 @@
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dmJ" = (
/obj/item/kirbyplants/random,
/obj/effect/turf_decal/tile/neutral{
@@ -26855,7 +26816,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dmL" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/stripes/line{
@@ -27683,22 +27644,6 @@
/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
@@ -27711,8 +27656,15 @@
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/nanite)
+/area/science/misc_lab)
"dqr" = (
/obj/structure/disposalpipe/trunk{
dir = 1
@@ -27729,7 +27681,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dqu" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -27978,20 +27930,6 @@
/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
@@ -28004,8 +27942,11 @@
dir = 8
},
/obj/item/radio/intercom/directional/west,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = 3
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"drN" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -28018,11 +27959,10 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"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
},
@@ -28033,8 +27973,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"drP" = (
/turf/closed/wall/r_wall,
/area/science/mixing)
@@ -28403,9 +28344,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
},
@@ -28416,8 +28354,11 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"dti" = (
/obj/structure/closet/bombcloset,
/obj/effect/turf_decal/stripes/line{
@@ -28737,44 +28678,21 @@
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/nanite)
+/area/science/misc_lab)
"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)
+/obj/machinery/rnd/experimentor,
+/turf/open/floor/engine,
+/area/science/misc_lab)
"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)
+/turf/open/floor/engine,
+/area/science/misc_lab)
"duF" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -33715,23 +33633,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
@@ -37232,12 +37133,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{
@@ -37950,6 +37845,12 @@
},
/turf/open/floor/iron,
/area/engineering/main)
+"eql" = (
+/obj/structure/table/reinforced,
+/obj/item/screwdriver,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"eqo" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -38524,7 +38425,7 @@
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"eAI" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral,
@@ -38804,6 +38705,14 @@
},
/turf/open/floor/iron,
/area/commons/toilet/restrooms)
+"eEm" = (
+/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)
"eEH" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -40706,13 +40615,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
@@ -42118,7 +42020,7 @@
"fuF" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/research{
- name = "Nanite Lab";
+ name = "Circuits Lab";
req_access_txt = "47"
},
/obj/structure/disposalpipe/segment{
@@ -42137,7 +42039,7 @@
dir = 8
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/misc_lab)
"fuJ" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/obj/structure/cable,
@@ -44998,18 +44900,16 @@
/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/effect/landmark/xeno_spawn,
/obj/machinery/door/window/brigdoor{
dir = 4;
name = "Test Range"
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
- dir = 5
+/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)
@@ -45270,9 +45170,10 @@
/turf/open/floor/engine/co2,
/area/engineering/atmos)
"gsi" = (
+/obj/structure/table/reinforced,
+/obj/machinery/recharger,
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/south,
-/obj/structure/filingcabinet/chestdrawer,
/turf/open/floor/iron/white,
/area/science/misc_lab)
"gsn" = (
@@ -46155,11 +46056,14 @@
/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/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
},
@@ -46170,8 +46074,16 @@
/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/nanite)
+/area/science/misc_lab)
"gGK" = (
/obj/machinery/modular_computer/console/preset/id{
dir = 8
@@ -47809,7 +47721,7 @@
/area/hallway/primary/central/aft)
"hgS" = (
/obj/machinery/door/airlock/research{
- name = "Circuits Testing Lab";
+ name = "Research Testing Range";
req_access_txt = "47"
},
/obj/structure/disposalpipe/segment{
@@ -50132,9 +50044,7 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"hOV" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 8
- },
+/obj/machinery/airalarm/directional/north,
/turf/open/floor/iron/white,
/area/science/misc_lab)
"hOZ" = (
@@ -52135,8 +52045,9 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"imN" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/neutral{
@@ -54067,11 +53978,6 @@
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" = (
@@ -56347,6 +56253,16 @@
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"jwz" = (
+/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)
"jwH" = (
/obj/effect/spawner/structure/window,
/obj/structure/curtain/cloth/fancy/mechanical{
@@ -57252,13 +57168,6 @@
/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" = (
@@ -59521,12 +59430,7 @@
/turf/open/floor/engine/n2,
/area/engineering/atmos)
"kon" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/science/misc_lab)
"kot" = (
@@ -69317,10 +69221,6 @@
/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" = (
@@ -69510,6 +69410,9 @@
},
/turf/open/floor/iron,
/area/engineering/break_room)
+"mOM" = (
+/turf/open/floor/plating,
+/area/science/misc_lab)
"mOU" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
@@ -69519,16 +69422,14 @@
/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{
+ dir = 4
},
-/obj/structure/window/reinforced,
-/turf/open/floor/iron/white,
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/iron,
/area/science/misc_lab)
"mPo" = (
/obj/machinery/research/explosive_compressor,
@@ -73947,7 +73848,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"nTx" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -74161,18 +74062,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,
@@ -75513,8 +75402,9 @@
/turf/open/floor/iron/white,
/area/hallway/primary/central/aft)
"oly" = (
-/obj/machinery/modular_computer/console/preset/civilian,
-/turf/open/floor/iron/white,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/girder,
+/turf/open/floor/plating,
/area/science/misc_lab)
"olC" = (
/obj/structure/disposalpipe/segment{
@@ -81351,32 +81241,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{
@@ -82786,25 +82650,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,
@@ -84311,11 +84156,8 @@
/turf/open/floor/circuit/green,
/area/engineering/main)
"qyo" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 5
},
/turf/open/floor/iron,
/area/science/misc_lab)
@@ -85007,7 +84849,7 @@
/turf/open/floor/iron,
/area/hallway/secondary/entry)
"qGq" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/science/misc_lab)
"qGs" = (
@@ -85962,6 +85804,11 @@
/obj/machinery/newscaster/directional/south,
/turf/open/floor/iron,
/area/engineering/storage/tech)
+"qTa" = (
+/obj/structure/table/reinforced,
+/obj/machinery/cell_charger,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"qTi" = (
/obj/structure/chair/stool/directional/east,
/obj/effect/turf_decal/tile/neutral{
@@ -86072,21 +85919,8 @@
/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)
+/turf/open/floor/engine,
+/area/science/misc_lab)
"qUg" = (
/obj/machinery/button/curtain{
id = "prisoncell11";
@@ -89199,15 +89033,7 @@
/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,
+/turf/open/floor/plating,
/area/science/misc_lab)
"rKh" = (
/turf/open/floor/iron,
@@ -90448,17 +90274,10 @@
/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{
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
},
-/turf/open/floor/iron/white,
+/turf/open/floor/iron,
/area/science/misc_lab)
"saQ" = (
/obj/machinery/door/firedoor,
@@ -93346,9 +93165,7 @@
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,
+/turf/open/floor/iron,
/area/science/misc_lab)
"sKP" = (
/obj/effect/turf_decal/stripes/line,
@@ -95962,11 +95779,8 @@
/turf/open/floor/iron,
/area/maintenance/starboard/fore)
"tuj" = (
-/obj/structure/chair/office/light{
- dir = 1;
- pixel_y = 3
- },
-/turf/open/floor/iron/white,
+/obj/structure/girder,
+/turf/open/floor/plating,
/area/science/misc_lab)
"tuq" = (
/obj/effect/landmark/event_spawn,
@@ -101171,6 +100985,7 @@
/turf/closed/wall/r_wall,
/area/ai_monitored/turret_protected/ai)
"uJJ" = (
+/obj/machinery/light/directional/north,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron/white,
/area/science/misc_lab)
@@ -102520,11 +102335,6 @@
/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" = (
@@ -103516,6 +103326,12 @@
/obj/structure/sign/departments/medbay/alt,
/turf/closed/wall/r_wall,
/area/command/heads_quarters/cmo)
+"vrw" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/science/misc_lab)
"vrR" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock{
@@ -103893,8 +103709,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"vxa" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -104200,6 +104017,10 @@
/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/iron,
/area/engineering/atmos/upper)
+"vBq" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"vBN" = (
/obj/structure/urinal/directional/north,
/obj/effect/decal/cleanable/dirt,
@@ -104800,7 +104621,7 @@
/area/engineering/supermatter/room)
"vJu" = (
/obj/machinery/door/airlock/maintenance_hatch{
- name = "Nanite Lab Maintenance";
+ name = "Circuits Lab Maintenance";
req_access_txt = "47"
},
/turf/open/floor/plating,
@@ -106287,28 +106108,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)
"wce" = (
/obj/effect/spawner/structure/window,
/obj/structure/curtain/cloth/fancy/mechanical{
@@ -106805,23 +106604,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,
@@ -109189,9 +108971,8 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"wTa" = (
-/obj/machinery/computer/nanite_cloud_controller,
+/obj/structure/table/reinforced,
/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -109202,8 +108983,10 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/item/paper_bin,
+/obj/item/pen,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"wTb" = (
/obj/machinery/vending/cigarette,
/obj/effect/turf_decal/tile/neutral{
@@ -109466,7 +109249,7 @@
dir = 1
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"wWd" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible,
/obj/effect/turf_decal/tile/yellow{
@@ -110707,7 +110490,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"xox" = (
/obj/effect/turf_decal/tile/yellow{
dir = 8
@@ -110723,9 +110506,6 @@
/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" = (
@@ -112272,6 +112052,19 @@
/turf/open/floor/iron,
/area/science/mixing)
"xLa" = (
+/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)
"xLd" = (
@@ -113411,9 +113204,6 @@
dir = 4
},
/obj/structure/cable,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -113431,7 +113221,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"ybi" = (
/turf/open/floor/iron/grimy,
/area/command/heads_quarters/hos)
@@ -138818,11 +138608,11 @@ exk
swm
pfQ
tCh
+eql
+vBq
+gSi
map
vGv
-vGv
-vGv
-vGv
lmF
gSi
dul
@@ -139075,10 +138865,10 @@ ced
wXQ
moY
tCh
+jwz
+vrw
+gSi
mLI
-xKO
-xKO
-xKO
bfJ
aST
gSi
@@ -139332,11 +139122,11 @@ cMY
ceb
moY
tCh
-uRm
+qTa
qGq
-ehi
-ehi
-faO
+gSi
+uRm
+xKO
aST
gSi
dlg
@@ -139589,11 +139379,11 @@ cMY
cea
kEw
tCh
+qGq
+qGq
+gSi
mLI
xKO
-xKO
-xKO
-ehi
mGu
gSi
dum
@@ -139845,11 +139635,11 @@ dcb
cMY
cea
laE
-tCh
+eEm
kon
qyo
-qyo
-qyo
+gSi
+mLI
jHZ
aST
gSi
@@ -140103,9 +139893,9 @@ cMY
deX
aiu
tCh
-nUV
+qGq
saJ
-wbX
+gSi
mPh
gpg
nGU
@@ -140362,7 +140152,7 @@ joJ
tCh
oly
tuj
-xLa
+gSi
xLa
xoY
gsi
@@ -140617,9 +140407,9 @@ cMY
deY
oAw
tCh
-bLH
-bly
-xLa
+mOM
+xKO
+gSi
uJJ
ifR
veb
@@ -140874,9 +140664,9 @@ cMY
cjp
hST
tCh
-cGu
-hOV
-hOV
+mOM
+mOM
+gSi
hOV
oox
iNP
@@ -141135,7 +140925,7 @@ sKO
rKf
bhD
mLZ
-dQV
+oox
qhk
gSi
dur
@@ -143958,16 +143748,16 @@ cNd
cOM
dgt
cMY
-djF
-djF
-djF
+gSi
+gSi
+gSi
nTq
-djF
-djF
-djF
-djF
-djF
-djF
+gSi
+gSi
+gSi
+gSi
+gSi
+gSi
cxO
oFE
caE
@@ -144224,7 +144014,7 @@ drM
gFZ
duz
wTa
-djF
+gSi
dzp
pxk
caE
@@ -144475,7 +144265,7 @@ cMY
djH
dlu
dmH
-pLc
+ybh
drN
vwU
dtg
@@ -144730,15 +144520,15 @@ cON
eAA
cMY
djI
-wjF
+drN
dmI
wVN
eAB
imL
-drN
+qUc
duD
qUc
-djF
+gSi
dzo
oks
exk
@@ -144992,10 +144782,10 @@ dmJ
xot
dqr
drO
-djJ
+qUc
duE
-qdJ
-djF
+qUc
+gSi
tbn
cjq
dBZ
@@ -145243,16 +145033,16 @@ cNc
cMY
cMY
dhU
-djK
-djK
+tCh
+tCh
dmF
fuF
dmF
-djF
-djF
-djF
-djF
-djF
+gSi
+gSi
+gSi
+gSi
+gSi
drP
drP
drP
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
index 7c98303ca89..064d5b37b85 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -7899,16 +7899,20 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"aQy" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"aQB" = (
/obj/structure/sign/warning/securearea{
pixel_x = 32
@@ -17343,7 +17347,7 @@
"cbe" = (
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"cbh" = (
/obj/structure/table,
/obj/item/folder/white,
@@ -21770,11 +21774,13 @@
/turf/open/floor/iron/cafeteria,
/area/service/kitchen)
"dFk" = (
-/obj/machinery/nanite_program_hub,
/obj/effect/turf_decal/bot,
/obj/machinery/airalarm/directional/south,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"dFo" = (
/obj/effect/turf_decal/trimline/blue/corner{
dir = 8
@@ -22429,9 +22435,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{
@@ -22763,11 +22766,12 @@
/area/commons/dorms)
"eja" = (
/obj/effect/turf_decal/bot,
-/obj/machinery/computer/nanite_chamber_control{
+/obj/structure/frame/computer{
+ anchored = 1;
dir = 4
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"ejg" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -22996,8 +23000,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"epN" = (
/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
dir = 4
@@ -26264,15 +26268,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,
@@ -26535,8 +26530,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"gwm" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment{
@@ -27033,7 +27028,7 @@
dir = 1
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"gLf" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -27754,6 +27749,10 @@
},
/turf/closed/wall,
/area/commons/vacant_room/commissary)
+"hiF" = (
+/obj/structure/flora/grass/brown,
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"hiM" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/cable,
@@ -28293,9 +28292,9 @@
/area/ai_monitored/command/storage/eva)
"hAK" = (
/obj/structure/table,
-/obj/item/storage/box/disks_nanite,
+/obj/item/food/grown/carrot,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"hBg" = (
/obj/effect/turf_decal/delivery,
/obj/structure/disposalpipe/segment,
@@ -29169,8 +29168,8 @@
/turf/closed/wall/r_wall,
/area/engineering/atmos)
"hZk" = (
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"hZo" = (
/obj/structure/sign/warning/securearea,
/turf/closed/wall/r_wall,
@@ -29237,11 +29236,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";
@@ -29274,8 +29268,8 @@
/area/engineering/supermatter/room)
"icS" = (
/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"icU" = (
/obj/machinery/status_display/evac/directional/east,
/obj/effect/turf_decal/tile/red{
@@ -31404,6 +31398,10 @@
/obj/item/reagent_containers/syringe,
/turf/open/floor/iron,
/area/medical/medbay/central)
+"jrC" = (
+/obj/structure/flora/grass/green,
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"jrH" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "rnd2";
@@ -35414,6 +35412,17 @@
dir = 6
},
/area/science/research)
+"lDt" = (
+/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)
"lDE" = (
/obj/machinery/conveyor/inverted{
dir = 6;
@@ -35621,9 +35630,12 @@
/obj/effect/turf_decal/stripes/line{
dir = 5
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/science/nanite)
+/obj/structure/flora/grass/both{
+ pixel_x = -4;
+ pixel_y = -4
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"lLw" = (
/obj/effect/landmark/blobstart,
/obj/effect/landmark/blobstart,
@@ -35796,14 +35808,16 @@
/area/cargo/sorting)
"lQm" = (
/obj/machinery/camera{
- c_tag = "Nanite Lab";
+ c_tag = "Circuits Lab";
dir = 4;
network = list("ss13","rd")
},
-/obj/machinery/computer/nanite_cloud_controller,
/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"lQq" = (
/obj/machinery/light/small/directional/west,
/obj/structure/chair/stool/directional/north,
@@ -37198,15 +37212,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,
@@ -37420,7 +37425,7 @@
},
/obj/structure/cable,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"mGX" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -37734,6 +37739,10 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/carpet,
/area/service/chapel/main)
+"mMD" = (
+/obj/structure/flora/tree/dead,
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"mMH" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 8
@@ -38305,10 +38314,12 @@
/area/cargo/miningdock)
"nee" = (
/obj/machinery/light/directional/south,
-/obj/machinery/nanite_program_hub,
/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"nes" = (
/obj/machinery/light/directional/east,
/obj/item/radio/intercom/directional/east,
@@ -38439,7 +38450,7 @@
/obj/effect/turf_decal/loading_area,
/obj/machinery/light_switch/directional/west,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"nhQ" = (
/turf/open/floor/carpet,
/area/service/library)
@@ -41192,8 +41203,12 @@
/obj/effect/turf_decal/stripes/line{
dir = 10
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/obj/structure/flora/rock/pile/icy{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"oMZ" = (
/obj/item/radio/intercom/directional/south,
/obj/effect/landmark/event_spawn,
@@ -42734,10 +42749,12 @@
/turf/open/floor/iron/white,
/area/medical/virology)
"pDu" = (
-/obj/machinery/computer/nanite_cloud_controller,
/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"pEc" = (
/obj/structure/extinguisher_cabinet/directional/east,
/obj/effect/turf_decal/tile/blue{
@@ -43819,8 +43836,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"qek" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/tile/blue,
@@ -43869,15 +43886,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
@@ -44617,8 +44625,15 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/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)
"qGO" = (
/obj/structure/window/reinforced{
dir = 8
@@ -46588,11 +46603,12 @@
"rIN" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/bot,
-/obj/machinery/computer/nanite_chamber_control{
+/obj/structure/frame/computer{
+ anchored = 1;
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"rIW" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
@@ -47469,7 +47485,7 @@
"sjr" = (
/obj/effect/turf_decal/loading_area,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"sjv" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 5
@@ -47879,9 +47895,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 9
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"suY" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/wood,
@@ -48154,10 +48169,12 @@
/area/science/mixing/chamber)
"sDW" = (
/obj/structure/extinguisher_cabinet/directional/west,
-/obj/machinery/nanite_chamber,
/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"sEt" = (
/obj/machinery/power/rad_collector/anchored,
/obj/structure/window/plasma/reinforced{
@@ -49141,12 +49158,8 @@
/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)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"tgF" = (
/obj/structure/table,
/obj/item/wrench,
@@ -50461,15 +50474,15 @@
/area/security/warden)
"tTk" = (
/obj/structure/table,
-/obj/item/nanite_remote,
/obj/machinery/requests_console/directional/east{
- department = "Nanite Lab";
+ department = "Circuits Lab";
departmentType = 2;
- name = "Nanite Lab Requests Console";
+ name = "Circuits Lab Requests Console";
receive_ore_updates = 1
},
+/obj/item/clothing/shoes/wheelys/skishoes,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"tTm" = (
/obj/structure/chair{
dir = 8
@@ -51817,8 +51830,12 @@
/obj/effect/turf_decal/stripes/line{
dir = 6
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/obj/item/stack/sheet/mineral/snow{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"uzt" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/drinks/mug/coco{
@@ -54718,7 +54735,7 @@
name = "research lab shutters"
},
/turf/open/floor/plating,
-/area/science/nanite)
+/area/science/research)
"wld" = (
/turf/open/floor/iron,
/area/commons/fitness)
@@ -54914,7 +54931,7 @@
/obj/effect/turf_decal/bot,
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"wpS" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/securearea{
@@ -54948,11 +54965,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,
@@ -57202,9 +57214,9 @@
/area/commons/storage/primary)
"xEM" = (
/obj/structure/table,
-/obj/item/nanite_scanner,
+/obj/item/clothing/shoes/wheelys/skishoes,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"xFn" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -58252,7 +58264,7 @@
dir = 1
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"yjo" = (
/obj/machinery/camera{
c_tag = "Chapel South";
@@ -105036,13 +105048,13 @@ boB
qaX
jrH
sve
-dYq
-dYq
-dYq
+bhA
+bhA
+bhA
wkN
wkN
wkN
-dYq
+bhA
bhA
xtW
ovK
@@ -105298,7 +105310,7 @@ nhP
sDW
eja
hAK
-ibG
+pDu
lQm
bEC
bEC
@@ -105552,7 +105564,7 @@ brx
bro
aQx
suU
-qeQ
+tgl
tgl
qGG
oMN
@@ -105809,7 +105821,7 @@ bqf
bBD
gLd
qea
-hZk
+hiF
hZk
hZk
icS
@@ -106066,9 +106078,9 @@ bqk
bBD
gLd
gwd
-hZk
-hZk
-hZk
+mMD
+lDt
+jrC
icS
dFk
pLE
@@ -106323,8 +106335,8 @@ bth
brn
aQy
lLp
-mBm
-gnX
+epI
+epI
epI
uzl
cbe
@@ -106580,7 +106592,7 @@ vdl
kXt
yiW
sjr
-wqH
+pDu
rIN
xEM
tTk
@@ -106840,8 +106852,8 @@ bpE
bpE
bpE
bpE
-dYq
-dYq
+boB
+boB
pLE
qSi
sql
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm b/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm
index b6020cabbbe..1eec5b94ab9 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation_skyrat.dmm
@@ -458,6 +458,17 @@
/obj/effect/turf_decal/delivery/blue,
/turf/open/floor/iron/dark,
/area/ai_monitored/security/armory)
+"abO" = (
+/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)
"abY" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/delivery/red,
@@ -7282,16 +7293,20 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"aQy" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"aQB" = (
/obj/structure/sign/warning/securearea{
pixel_x = 32
@@ -16998,7 +17013,7 @@
"cbe" = (
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"cbh" = (
/obj/structure/table,
/obj/item/folder/white,
@@ -21565,11 +21580,13 @@
/turf/open/floor/iron,
/area/security/prison)
"dFk" = (
-/obj/machinery/nanite_program_hub,
/obj/effect/turf_decal/bot,
/obj/machinery/airalarm/directional/south,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"dFn" = (
/obj/machinery/light/small/directional/west,
/obj/structure/chair/stool{
@@ -22304,9 +22321,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/hallway/primary/starboard)
-"dYq" = (
-/turf/closed/wall,
-/area/science/nanite)
"dYC" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -22654,11 +22668,12 @@
/area/commons/dorms)
"eja" = (
/obj/effect/turf_decal/bot,
-/obj/machinery/computer/nanite_chamber_control{
+/obj/structure/frame/computer{
+ anchored = 1;
dir = 4
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"ejg" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -22935,8 +22950,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"epQ" = (
/obj/machinery/camera/motion{
c_tag = "Vault";
@@ -26505,15 +26520,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,
@@ -26796,8 +26802,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"gwW" = (
/obj/structure/window/reinforced{
dir = 4
@@ -27310,7 +27316,7 @@
dir = 1
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"gLf" = (
/obj/machinery/door/poddoor/preopen{
id = "hosspace";
@@ -28679,9 +28685,9 @@
/area/ai_monitored/command/storage/eva)
"hAK" = (
/obj/structure/table,
-/obj/item/storage/box/disks_nanite,
+/obj/item/food/grown/carrot,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"hBg" = (
/obj/effect/turf_decal/delivery,
/obj/structure/disposalpipe/segment,
@@ -29583,8 +29589,8 @@
/turf/closed/wall/r_wall,
/area/engineering/atmos)
"hZk" = (
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"hZo" = (
/obj/structure/sign/warning/securearea,
/turf/closed/wall/r_wall,
@@ -29677,11 +29683,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";
@@ -29747,8 +29748,8 @@
/area/security/office)
"icS" = (
/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"icU" = (
/obj/machinery/status_display/evac/directional/east,
/obj/effect/turf_decal/tile/red{
@@ -32250,6 +32251,10 @@
},
/turf/open/floor/iron/dark,
/area/icemoon/surface/outdoors)
+"jwh" = (
+/obj/structure/flora/grass/brown,
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"jwi" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -36613,9 +36618,12 @@
/obj/effect/turf_decal/stripes/line{
dir = 5
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/science/nanite)
+/obj/structure/flora/grass/both{
+ pixel_x = -4;
+ pixel_y = -4
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"lLw" = (
/obj/effect/landmark/blobstart,
/obj/effect/landmark/blobstart,
@@ -36802,14 +36810,16 @@
/area/cargo/sorting)
"lQm" = (
/obj/machinery/camera{
- c_tag = "Nanite Lab";
+ c_tag = "Circuits Lab";
dir = 4;
network = list("ss13","rd")
},
-/obj/machinery/computer/nanite_cloud_controller,
/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"lQr" = (
/turf/open/floor/iron/dark/side{
dir = 4
@@ -38267,15 +38277,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,
@@ -38517,7 +38518,7 @@
},
/obj/structure/cable,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"mGX" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -39476,10 +39477,12 @@
/area/cargo/miningdock)
"nee" = (
/obj/machinery/light/directional/south,
-/obj/machinery/nanite_program_hub,
/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"neh" = (
/obj/structure/bed,
/obj/item/bedsheet/purple,
@@ -39631,7 +39634,7 @@
/obj/effect/turf_decal/loading_area,
/obj/machinery/light_switch/directional/west,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"nhQ" = (
/turf/open/floor/carpet,
/area/service/library)
@@ -42454,8 +42457,12 @@
/obj/effect/turf_decal/stripes/line{
dir = 10
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/obj/structure/flora/rock/pile/icy{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"oMZ" = (
/obj/item/radio/intercom/directional/south,
/obj/effect/landmark/event_spawn,
@@ -44025,10 +44032,12 @@
/turf/open/floor/iron/freezer,
/area/commons/toilet)
"pDu" = (
-/obj/machinery/computer/nanite_cloud_controller,
/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"pEc" = (
/obj/structure/extinguisher_cabinet/directional/east,
/obj/effect/turf_decal/tile/blue{
@@ -45131,8 +45140,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"qek" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/tile/blue,
@@ -45181,15 +45190,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
@@ -45981,8 +45981,15 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/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)
"qGO" = (
/obj/structure/window/reinforced{
dir = 8
@@ -47994,11 +48001,12 @@
"rIN" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/bot,
-/obj/machinery/computer/nanite_chamber_control{
+/obj/structure/frame/computer{
+ anchored = 1;
dir = 8
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"rIW" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
@@ -49023,7 +49031,7 @@
"sjr" = (
/obj/effect/turf_decal/loading_area,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"sjv" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 5
@@ -49466,9 +49474,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 9
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"suY" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/wood,
@@ -49786,10 +49793,12 @@
/area/science/mixing/chamber)
"sDW" = (
/obj/structure/extinguisher_cabinet/directional/west,
-/obj/machinery/nanite_chamber,
/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"sEh" = (
/obj/structure/chair/stool/directional/south,
/turf/open/floor/iron,
@@ -50889,12 +50898,8 @@
/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)
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"tgF" = (
/obj/structure/table,
/obj/item/wrench,
@@ -52297,15 +52302,15 @@
/area/security/warden)
"tTk" = (
/obj/structure/table,
-/obj/item/nanite_remote,
/obj/machinery/requests_console/directional/east{
- department = "Nanite Lab";
+ department = "Circuits Lab";
departmentType = 2;
- name = "Nanite Lab Requests Console";
+ name = "Circuits Lab Requests Console";
receive_ore_updates = 1
},
+/obj/item/clothing/shoes/wheelys/skishoes,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"tTm" = (
/obj/effect/spawner/structure/window,
/obj/structure/curtain/cloth/fancy/mechanical{
@@ -53724,8 +53729,12 @@
/obj/effect/turf_decal/stripes/line{
dir = 6
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/obj/item/stack/sheet/mineral/snow{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"uzt" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -54953,6 +54962,10 @@
},
/turf/open/floor/iron/freezer,
/area/commons/toilet)
+"vmv" = (
+/obj/structure/flora/tree/dead,
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"vnb" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/corner{
@@ -56838,7 +56851,7 @@
name = "research lab shutters"
},
/turf/open/floor/plating,
-/area/science/nanite)
+/area/science/research)
"wld" = (
/turf/open/floor/iron,
/area/commons/fitness)
@@ -57021,7 +57034,7 @@
/obj/effect/turf_decal/bot,
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"wpS" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/securearea{
@@ -57055,11 +57068,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,
@@ -59457,6 +59465,10 @@
},
/turf/open/floor/iron/dark,
/area/engineering/supermatter/room)
+"xCo" = (
+/obj/structure/flora/grass/green,
+/turf/open/floor/plating/asteroid/snow/standard_air,
+/area/science/research)
"xCR" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -59490,9 +59502,9 @@
/area/commons/storage/primary)
"xEM" = (
/obj/structure/table,
-/obj/item/nanite_scanner,
+/obj/item/clothing/shoes/wheelys/skishoes,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"xFn" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -60678,7 +60690,7 @@
dir = 1
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"yjo" = (
/obj/machinery/camera{
c_tag = "Chapel South";
@@ -107483,13 +107495,13 @@ boB
qaX
jrH
sve
-dYq
-dYq
-dYq
+bhA
+bhA
+bhA
wkN
wkN
wkN
-dYq
+bhA
bhA
xtW
ovK
@@ -107745,7 +107757,7 @@ nhP
sDW
eja
hAK
-ibG
+pDu
lQm
bEC
bEC
@@ -107999,7 +108011,7 @@ brx
bro
aQx
suU
-qeQ
+tgl
tgl
qGG
oMN
@@ -108256,7 +108268,7 @@ bqf
bBD
gLd
qea
-hZk
+jwh
hZk
hZk
icS
@@ -108513,9 +108525,9 @@ bqk
bBD
gLd
gwd
-hZk
-hZk
-hZk
+vmv
+abO
+xCo
icS
dFk
eSt
@@ -108770,8 +108782,8 @@ bth
brn
aQy
lLp
-mBm
-gnX
+epI
+epI
epI
uzl
cbe
@@ -109027,7 +109039,7 @@ vdl
kXt
yiW
sjr
-wqH
+pDu
rIN
xEM
tTk
@@ -109287,8 +109299,8 @@ bpE
bpE
bpE
bpE
-dYq
-dYq
+boB
+boB
eSt
qSi
sql
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index a6bae4a5c33..a4cccbc74b3 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -15445,15 +15445,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 +15594,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 +15840,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,56 +15863,14 @@
},
/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{
+/obj/structure/railing{
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" = (
@@ -16175,11 +16092,10 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
+/obj/machinery/holopad,
+/obj/structure/railing/corner{
dir = 4
},
-/obj/effect/turf_decal/bot,
-/obj/machinery/holopad,
/turf/open/floor/iron/dark,
/area/science/research)
"aZu" = (
@@ -16482,23 +16398,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
@@ -16990,14 +16889,9 @@
/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" = (
@@ -17162,17 +17056,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 +17064,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 +18054,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,
@@ -40783,6 +40638,22 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/iron/showroomfloor,
/area/service/library)
+"cSk" = (
+/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)
"cSJ" = (
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -41007,21 +40878,6 @@
/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" = (
@@ -47517,6 +47373,7 @@
/obj/machinery/computer/rdconsole{
dir = 8
},
+/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
/area/command/heads_quarters/rd)
"fSn" = (
@@ -49994,19 +49851,11 @@
},
/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" = (
@@ -50503,21 +50352,12 @@
/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,
@@ -51259,6 +51099,18 @@
icon_state = "panelscorched"
},
/area/engineering/supermatter/room)
+"hLD" = (
+/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)
"hLE" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
@@ -53425,6 +53277,20 @@
},
/turf/open/floor/iron/dark,
/area/construction/mining/aux_base)
+"iFx" = (
+/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)
"iFL" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
@@ -58097,24 +57963,21 @@
/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";
+ 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)
"kzk" = (
@@ -65413,18 +65276,17 @@
/turf/open/floor/iron/dark,
/area/cargo/warehouse)
"nOe" = (
-/obj/machinery/computer/aifixer{
- dir = 4
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
},
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
+/obj/effect/turf_decal/tile/purple{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/iron/dark,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/item/kirbyplants/potty,
+/turf/open/floor/iron/showroomfloor,
/area/command/heads_quarters/rd)
"nOQ" = (
/obj/effect/turf_decal/tile/brown,
@@ -76041,7 +75903,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 10
},
-/obj/effect/landmark/start/research_director,
/obj/structure/disposalpipe/segment{
dir = 10
},
@@ -79643,6 +79504,10 @@
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)
"tPt" = (
@@ -79978,18 +79843,14 @@
/turf/open/floor/grass,
/area/service/chapel/main)
"tWx" = (
-/obj/machinery/computer/robotics{
- dir = 4
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
},
-/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,
+/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)
"tXc" = (
/obj/machinery/holopad,
@@ -81386,9 +81247,6 @@
/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
},
@@ -82478,6 +82336,20 @@
icon_state = "platingdmg3"
},
/area/maintenance/starboard/aft)
+"vbu" = (
+/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)
"vbO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 8
@@ -83329,17 +83201,10 @@
/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,
@@ -127993,9 +127858,9 @@ rYN
aWW
aZv
vse
-aXE
aXI
-aYR
+aXI
+aXI
beD
bbj
aOi
@@ -128251,8 +128116,8 @@ vlS
rJG
rJG
kzj
-aXX
-aYS
+hLD
+hLD
aZt
bbl
aOi
@@ -128508,10 +128373,10 @@ ltR
mjr
vlS
vlS
-aYN
-aYT
+vlS
+vlS
aYS
-bbJ
+bbl
aOo
bgj
aYe
@@ -128764,10 +128629,10 @@ wtC
uNr
lov
nOe
+cSk
+vbu
vlS
-vlS
-aYU
-beE
+aYS
bbl
aOi
aRp
@@ -129022,10 +128887,10 @@ hea
hRI
cYO
tWx
+iFx
vlS
-vlS
-aZX
-bbL
+aYS
+bbl
aOi
bep
baU
diff --git a/_maps/map_files/KiloStation/KiloStation_skyrat.dmm b/_maps/map_files/KiloStation/KiloStation_skyrat.dmm
index 6802c16f35e..9b1145e1c31 100644
--- a/_maps/map_files/KiloStation/KiloStation_skyrat.dmm
+++ b/_maps/map_files/KiloStation/KiloStation_skyrat.dmm
@@ -15406,15 +15406,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{
@@ -15564,23 +15555,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
@@ -15827,21 +15801,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{
@@ -15865,56 +15824,14 @@
},
/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{
+/obj/structure/railing{
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" = (
@@ -16136,11 +16053,10 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
+/obj/machinery/holopad,
+/obj/structure/railing/corner{
dir = 4
},
-/obj/effect/turf_decal/bot,
-/obj/machinery/holopad,
/turf/open/floor/iron/dark,
/area/science/research)
"aZu" = (
@@ -16443,23 +16359,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
@@ -16951,14 +16850,9 @@
/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" = (
@@ -17123,17 +17017,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,
@@ -17142,17 +17025,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)
@@ -18146,23 +18018,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,
@@ -40960,21 +40815,6 @@
/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" = (
@@ -47477,6 +47317,7 @@
/obj/machinery/computer/rdconsole{
dir = 8
},
+/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
/area/command/heads_quarters/rd)
"fSn" = (
@@ -49996,19 +49837,11 @@
},
/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" = (
@@ -50501,21 +50334,12 @@
/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,
@@ -58123,24 +57947,21 @@
/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";
+ 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)
"kzk" = (
@@ -59690,6 +59511,20 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/cargo/qm)
+"leE" = (
+/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)
"lfm" = (
/obj/structure/sink{
dir = 8;
@@ -61615,6 +61450,18 @@
/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/iron/dark,
/area/ai_monitored/command/storage/eva)
+"lYr" = (
+/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)
"lYs" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -65487,18 +65334,17 @@
/turf/open/floor/iron/dark,
/area/cargo/warehouse)
"nOe" = (
-/obj/machinery/computer/aifixer{
- dir = 4
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
},
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
+/obj/effect/turf_decal/tile/purple{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/iron/dark,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/item/kirbyplants/potty,
+/turf/open/floor/iron/showroomfloor,
/area/command/heads_quarters/rd)
"nOQ" = (
/obj/effect/turf_decal/tile/brown,
@@ -73495,6 +73341,20 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/command/bridge)
+"rfX" = (
+/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)
"rgb" = (
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/neutral{
@@ -76113,7 +75973,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 10
},
-/obj/effect/landmark/start/research_director,
/obj/structure/disposalpipe/segment{
dir = 10
},
@@ -77745,6 +77604,22 @@
/obj/structure/cable,
/turf/open/floor/iron/showroomfloor,
/area/service/kitchen)
+"tbe" = (
+/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)
"tbE" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -79711,6 +79586,10 @@
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)
"tPt" = (
@@ -80046,18 +79925,14 @@
/turf/open/floor/grass,
/area/service/chapel/main)
"tWx" = (
-/obj/machinery/computer/robotics{
- dir = 4
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
},
-/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,
+/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)
"tXc" = (
/obj/machinery/holopad,
@@ -81485,9 +81360,6 @@
/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
},
@@ -83407,17 +83279,10 @@
/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,
@@ -128029,9 +127894,9 @@ rYN
aWW
aZv
vse
-aXE
aXI
-aYR
+aXI
+aXI
beD
bbj
aOi
@@ -128287,8 +128152,8 @@ vlS
rJG
rJG
kzj
-aXX
-aYS
+lYr
+lYr
aZt
bbl
aOi
@@ -128544,10 +128409,10 @@ ltR
mjr
vlS
vlS
-aYN
-aYT
+vlS
+vlS
aYS
-bbJ
+bbl
aOo
bgj
aYe
@@ -128800,10 +128665,10 @@ wtC
uNr
lov
nOe
+tbe
+rfX
vlS
-vlS
-aYU
-beE
+aYS
bbl
aOi
aRp
@@ -129058,10 +128923,10 @@ hea
hRI
cYO
tWx
+leE
vlS
-vlS
-aZX
-bbL
+aYS
+bbl
aOi
bep
baU
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index a0a2a19d8e3..e2b88c4e07a 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -4744,7 +4744,7 @@
},
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"aLs" = (
/obj/structure/sign/plaques/kiddie{
pixel_y = 32
@@ -6026,7 +6026,7 @@
/area/hallway/secondary/entry)
"aXh" = (
/obj/machinery/door/window/northleft{
- name = "Nanite Lab"
+ name = "Petting Zoo"
},
/obj/structure/cable,
/obj/effect/turf_decal/tile/purple,
@@ -6036,9 +6036,8 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"aXm" = (
/obj/effect/turf_decal/siding/wood,
/obj/structure/disposalpipe/segment{
@@ -7299,7 +7298,7 @@
dir = 8
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"bkB" = (
/obj/item/extinguisher,
/turf/open/floor/plating,
@@ -7546,13 +7545,11 @@
/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"
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
},
-/turf/open/floor/circuit/green,
-/area/science/nanite)
+/turf/open/floor/grass,
+/area/science/research)
"bmX" = (
/obj/effect/turf_decal/tile/blue,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -12880,9 +12877,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";
@@ -15524,7 +15518,7 @@
dir = 4
},
/turf/closed/wall,
-/area/science/nanite)
+/area/science/research)
"cTU" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/north,
@@ -18560,7 +18554,7 @@
},
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"dMw" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/status_display/evac/directional/south,
@@ -21993,19 +21987,13 @@
/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)
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/mob/living/simple_animal/pet/dog/corgi/puppy/slime,
+/turf/open/floor/grass,
+/area/science/research)
"eRa" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 10
@@ -22748,7 +22736,7 @@
dir = 1
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"fdq" = (
/obj/structure/chair/stool/directional/north,
/obj/structure/disposalpipe/segment{
@@ -25029,8 +25017,11 @@
dir = 1
},
/obj/structure/extinguisher_cabinet/directional/south,
+/obj/item/reagent_containers/food/drinks/britcup{
+ pixel_y = 2
+ },
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"fRh" = (
/obj/item/radio/intercom/directional/west,
/obj/structure/table/glass,
@@ -25683,10 +25674,13 @@
/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)
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/flora/ausbushes/brflowers,
+/turf/open/floor/grass,
+/area/science/research)
"gdY" = (
/obj/machinery/photocopier{
pixel_y = 3
@@ -26887,7 +26881,7 @@
},
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/research{
- name = "Nanite Laboratory";
+ name = "Xenobiology Entrance";
req_access_txt = "47"
},
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -26904,7 +26898,7 @@
dir = 8
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"gAP" = (
/obj/structure/sign/departments/cargo,
/turf/closed/wall,
@@ -27568,7 +27562,7 @@
name = "biohazard containment door"
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"gMj" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
@@ -30804,7 +30798,7 @@
dir = 4
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"hXg" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/cable,
@@ -31758,7 +31752,7 @@
},
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"inS" = (
/obj/item/radio/intercom/directional/south,
/obj/effect/turf_decal/tile/neutral{
@@ -31800,8 +31794,9 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 4
},
+/obj/machinery/holopad,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"iov" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -40899,12 +40894,13 @@
/turf/open/floor/iron/white,
/area/science/storage)
"lta" = (
-/obj/machinery/computer/nanite_chamber_control{
+/obj/item/radio/intercom/directional/west,
+/obj/structure/frame/computer{
+ anchored = 1;
dir = 4
},
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/circuit/green,
-/area/science/nanite)
+/turf/open/floor/circuit/green/off,
+/area/science/research)
"ltg" = (
/obj/machinery/door/airlock/grunge{
name = "Prison Workshop"
@@ -45332,12 +45328,11 @@
/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
+/mob/living/simple_animal/pet/penguin/baby{
+ dir = 8
},
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/turf/open/floor/grass,
+/area/science/research)
"mQU" = (
/obj/structure/plasticflaps,
/obj/structure/window/reinforced{
@@ -46614,9 +46609,9 @@
/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)
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/grass,
+/area/science/research)
"nkV" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/white/line{
@@ -46847,7 +46842,7 @@
},
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/research{
- name = "Nanite and Xenobiology Access";
+ name = "Xenobiology Access";
req_access_txt = "47"
},
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -47058,7 +47053,7 @@
/area/hallway/primary/starboard)
"nsC" = (
/obj/machinery/door/window/northright{
- name = "Nanite Lab"
+ name = "Petting Zoo"
},
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
@@ -47067,9 +47062,8 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"nsG" = (
/obj/machinery/hydroponics/soil,
/obj/machinery/camera{
@@ -48150,7 +48144,7 @@
},
/obj/item/radio/intercom/directional/south,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"nID" = (
/obj/machinery/door/airlock/maintenance{
name = "Genetics Maintenance";
@@ -50239,7 +50233,7 @@
dir = 8
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"orL" = (
/obj/machinery/biogenerator,
/obj/effect/decal/cleanable/dirt,
@@ -51545,14 +51539,11 @@
/turf/open/floor/iron/dark,
/area/ai_monitored/aisat/exterior)
"oOD" = (
-/obj/structure/chair/office/light{
+/obj/effect/turf_decal/siding/wood{
dir = 4
},
-/obj/effect/turf_decal/siding/green{
- dir = 5
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/turf/open/floor/grass,
+/area/science/research)
"oOF" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -51865,10 +51856,9 @@
},
/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)
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/grass,
+/area/science/research)
"oUb" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/purple{
@@ -54634,15 +54624,12 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"pPZ" = (
-/obj/structure/chair/office/light{
+/obj/structure/cable,
+/obj/effect/turf_decal/siding/wood{
dir = 8
},
-/obj/structure/cable,
-/obj/effect/turf_decal/siding/green{
- dir = 9
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/turf/open/floor/grass,
+/area/science/research)
"pQi" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 4
@@ -56752,8 +56739,9 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
+/obj/effect/landmark/start/scientist,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"qCQ" = (
/obj/structure/window/reinforced{
dir = 1;
@@ -57320,7 +57308,7 @@
/obj/machinery/light/small/directional/west,
/obj/machinery/light_switch/directional/south,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"qMr" = (
/turf/closed/wall,
/area/service/kitchen/coldroom)
@@ -58346,12 +58334,18 @@
/area/solars/port/fore)
"rdZ" = (
/obj/structure/cable,
-/obj/effect/landmark/start/scientist,
-/obj/effect/turf_decal/siding/green{
- dir = 1
+/obj/item/food/cracker,
+/obj/item/food/cracker{
+ pixel_x = 9;
+ pixel_y = 9
},
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/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)
"rec" = (
/obj/docking_port/stationary/random{
dir = 4;
@@ -58902,15 +58896,16 @@
/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";
+ c_tag = "Science Petting Zoo";
dir = 8
},
-/turf/open/floor/circuit/green,
-/area/science/nanite)
+/obj/structure/frame/computer{
+ anchored = 1;
+ dir = 8
+ },
+/turf/open/floor/circuit/green/off,
+/area/science/research)
"rnV" = (
/obj/structure/sign/warning/securearea,
/turf/closed/wall/r_wall,
@@ -59102,7 +59097,7 @@
dir = 8
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"rqO" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -59293,7 +59288,7 @@
dir = 4
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"rtc" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -62196,7 +62191,7 @@
"spG" = (
/obj/structure/sign/warning/biohazard,
/turf/closed/wall/r_wall,
-/area/science/nanite)
+/area/science/research)
"spT" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -66733,7 +66728,7 @@
dir = 4
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"tOw" = (
/obj/structure/sink{
dir = 8;
@@ -67645,7 +67640,7 @@
dir = 8
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"ueU" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -68921,7 +68916,7 @@
dir = 9
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"uxy" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -69343,7 +69338,7 @@
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"uFV" = (
/obj/item/kirbyplants/random,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -69360,10 +69355,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,
@@ -70581,9 +70572,11 @@
/turf/open/floor/iron/white,
/area/science/research)
"uZY" = (
-/obj/machinery/nanite_chamber,
-/turf/open/floor/circuit/green,
-/area/science/nanite)
+/obj/structure/frame/machine{
+ anchored = 1
+ },
+/turf/open/floor/circuit/green/off,
+/area/science/research)
"vaD" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -71584,7 +71577,7 @@
dir = 8
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"vqw" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
@@ -74023,7 +74016,7 @@
"whv" = (
/obj/structure/sign/warning/securearea,
/turf/closed/wall,
-/area/science/nanite)
+/area/science/research)
"whB" = (
/obj/effect/turf_decal/trimline/blue/filled/line,
/turf/open/floor/iron/white,
@@ -75434,7 +75427,7 @@
dir = 8
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"wHY" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/blue{
@@ -77225,11 +77218,12 @@
/turf/open/floor/iron/dark,
/area/commons/locker)
"xmN" = (
-/obj/effect/turf_decal/siding/green{
- dir = 8
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
},
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/obj/structure/flora/ausbushes/stalkybush,
+/turf/open/floor/grass,
+/area/science/research)
"xmT" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{
@@ -77430,7 +77424,7 @@
"xrs" = (
/obj/effect/decal/cleanable/garbage,
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"xrA" = (
/obj/machinery/air_sensor/atmos/carbon_tank,
/turf/open/floor/engine/co2,
@@ -78599,29 +78593,17 @@
/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)
+/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)
"xJX" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/external{
@@ -79770,11 +79752,12 @@
/turf/open/space/basic,
/area/solars/port/aft)
"yeh" = (
-/obj/effect/turf_decal/siding/green{
- dir = 4
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
},
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/obj/structure/flora/ausbushes/grassybush,
+/turf/open/floor/grass,
+/area/science/research)
"yej" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -117022,9 +117005,9 @@ ovj
ovj
ovj
dwL
-ctL
-ctL
-ctL
+cgo
+cgo
+cgo
cTN
gAI
whv
@@ -117278,14 +117261,14 @@ myQ
xZF
gGR
nGT
-ctL
-uFZ
+cgo
+uZY
lta
uZY
tOv
ueO
qMf
-ctL
+cgo
cEz
bjK
dyc
@@ -117535,14 +117518,14 @@ ovj
cpJ
ten
ovj
-ctL
+cgo
xJV
pPZ
xmN
rsu
ueO
fQU
-ctL
+cgo
qfG
jTf
xaN
@@ -117792,14 +117775,14 @@ cos
dxh
hPn
crZ
-ctL
+cgo
bmT
rdZ
nkS
aXh
iog
qCP
-ctL
+cgo
vPM
ciL
sgX
@@ -118049,14 +118032,14 @@ cot
cnb
cra
csa
-ctL
+cgo
gdG
mQQ
oTY
nsC
uFU
nIx
-ctL
+cgo
dww
cFu
dyc
@@ -118306,14 +118289,14 @@ nbv
nbv
cou
csb
-ctL
+cgo
eQK
oOD
yeh
bkv
wHW
dMl
-ctL
+cgo
dvY
dvY
dvY
@@ -118563,14 +118546,14 @@ mhf
nbv
rYC
csc
-ctL
-uFZ
+cgo
+uZY
rnM
uZY
inN
fde
aLn
-ctL
+cgo
aaa
aaa
aaa
@@ -118821,13 +118804,13 @@ cpK
cwG
pPA
dwL
-ctL
-ctL
-ctL
+cgo
+cgo
+cgo
spG
gLm
spG
-ctL
+cgo
aaa
aaa
aaa
diff --git a/_maps/map_files/MetaStation/MetaStation_skyrat.dmm b/_maps/map_files/MetaStation/MetaStation_skyrat.dmm
index 830b813d13f..7011b5f311e 100644
--- a/_maps/map_files/MetaStation/MetaStation_skyrat.dmm
+++ b/_maps/map_files/MetaStation/MetaStation_skyrat.dmm
@@ -4694,7 +4694,7 @@
},
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"aLs" = (
/obj/structure/sign/plaques/kiddie{
pixel_y = 32
@@ -5962,7 +5962,7 @@
/area/security/prison)
"aXh" = (
/obj/machinery/door/window/northleft{
- name = "Nanite Lab"
+ name = "Petting Zoo"
},
/obj/structure/cable,
/obj/effect/turf_decal/tile/purple,
@@ -5972,9 +5972,8 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"aXm" = (
/obj/effect/turf_decal/siding/wood,
/obj/structure/disposalpipe/segment{
@@ -7245,7 +7244,7 @@
dir = 8
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"bkB" = (
/obj/item/extinguisher,
/turf/open/floor/plating,
@@ -7478,13 +7477,11 @@
/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"
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
},
-/turf/open/floor/circuit/green,
-/area/science/nanite)
+/turf/open/floor/grass,
+/area/science/research)
"bmX" = (
/obj/effect/turf_decal/tile/blue,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -12772,9 +12769,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";
@@ -15367,7 +15361,7 @@
dir = 4
},
/turf/closed/wall,
-/area/science/nanite)
+/area/science/research)
"cTU" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/north,
@@ -18468,7 +18462,7 @@
},
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"dMw" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/status_display/evac/directional/south,
@@ -22009,19 +22003,13 @@
/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)
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/mob/living/simple_animal/pet/dog/corgi/puppy/slime,
+/turf/open/floor/grass,
+/area/science/research)
"eRa" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 10
@@ -22773,7 +22761,7 @@
dir = 1
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"fdq" = (
/obj/structure/chair/stool/directional/north,
/obj/structure/disposalpipe/segment{
@@ -25084,8 +25072,11 @@
dir = 1
},
/obj/structure/extinguisher_cabinet/directional/south,
+/obj/item/reagent_containers/food/drinks/britcup{
+ pixel_y = 2
+ },
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"fRh" = (
/obj/item/radio/intercom/directional/west,
/obj/structure/table/glass,
@@ -25742,10 +25733,13 @@
/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)
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/flora/ausbushes/brflowers,
+/turf/open/floor/grass,
+/area/science/research)
"gdY" = (
/obj/machinery/photocopier{
pixel_y = 3
@@ -26984,7 +26978,7 @@
},
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/research{
- name = "Nanite Laboratory";
+ name = "Xenobiology Entrance";
req_access_txt = "47"
},
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -27001,7 +26995,7 @@
dir = 8
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"gAP" = (
/obj/structure/sign/departments/cargo,
/turf/closed/wall,
@@ -27676,7 +27670,7 @@
name = "biohazard containment door"
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"gLr" = (
/turf/closed/wall/mineral/plastitanium,
/area/security/prison)
@@ -31021,7 +31015,7 @@
dir = 4
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"hXg" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/cable,
@@ -32015,7 +32009,7 @@
},
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"inS" = (
/obj/item/radio/intercom/directional/south,
/obj/effect/turf_decal/tile/neutral{
@@ -32057,8 +32051,9 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 4
},
+/obj/machinery/holopad,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"iov" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -41518,12 +41513,13 @@
/turf/open/floor/iron/white,
/area/science/storage)
"lta" = (
-/obj/machinery/computer/nanite_chamber_control{
+/obj/item/radio/intercom/directional/west,
+/obj/structure/frame/computer{
+ anchored = 1;
dir = 4
},
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/circuit/green,
-/area/science/nanite)
+/turf/open/floor/circuit/green/off,
+/area/science/research)
"ltg" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -46051,12 +46047,11 @@
/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
+/mob/living/simple_animal/pet/penguin/baby{
+ dir = 8
},
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/turf/open/floor/grass,
+/area/science/research)
"mQU" = (
/obj/structure/plasticflaps,
/obj/structure/window/reinforced{
@@ -47332,9 +47327,9 @@
/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)
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/grass,
+/area/science/research)
"nkV" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/white/line{
@@ -47560,7 +47555,7 @@
},
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/research{
- name = "Nanite and Xenobiology Access";
+ name = "Xenobiology Access";
req_access_txt = "47"
},
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -47781,7 +47776,7 @@
/area/hallway/primary/starboard)
"nsC" = (
/obj/machinery/door/window/northright{
- name = "Nanite Lab"
+ name = "Petting Zoo"
},
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
@@ -47790,9 +47785,8 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"nsN" = (
/obj/structure/statue/snow/snowman,
/turf/open/floor/grass/snow/safe,
@@ -48902,7 +48896,7 @@
},
/obj/item/radio/intercom/directional/south,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"nID" = (
/obj/machinery/door/airlock/maintenance{
name = "Genetics Maintenance";
@@ -50991,7 +50985,7 @@
dir = 8
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"orL" = (
/obj/effect/turf_decal/trimline/green/filled/line{
dir = 8
@@ -52286,14 +52280,11 @@
/turf/open/floor/iron/dark,
/area/ai_monitored/aisat/exterior)
"oOD" = (
-/obj/structure/chair/office/light{
+/obj/effect/turf_decal/siding/wood{
dir = 4
},
-/obj/effect/turf_decal/siding/green{
- dir = 5
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/turf/open/floor/grass,
+/area/science/research)
"oOF" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -52642,10 +52633,9 @@
},
/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)
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/grass,
+/area/science/research)
"oUb" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/purple{
@@ -55465,15 +55455,12 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"pPZ" = (
-/obj/structure/chair/office/light{
+/obj/structure/cable,
+/obj/effect/turf_decal/siding/wood{
dir = 8
},
-/obj/structure/cable,
-/obj/effect/turf_decal/siding/green{
- dir = 9
- },
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/turf/open/floor/grass,
+/area/science/research)
"pQi" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 4
@@ -57622,8 +57609,9 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
+/obj/effect/landmark/start/scientist,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"qCQ" = (
/obj/structure/window/reinforced{
dir = 1;
@@ -58193,7 +58181,7 @@
/obj/machinery/light/small/directional/west,
/obj/machinery/light_switch/directional/south,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"qMr" = (
/turf/closed/wall,
/area/service/kitchen/coldroom)
@@ -59259,12 +59247,18 @@
/area/solars/port/fore)
"rdZ" = (
/obj/structure/cable,
-/obj/effect/landmark/start/scientist,
-/obj/effect/turf_decal/siding/green{
- dir = 1
+/obj/item/food/cracker,
+/obj/item/food/cracker{
+ pixel_x = 9;
+ pixel_y = 9
},
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/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)
"rec" = (
/obj/docking_port/stationary/random{
dir = 4;
@@ -59884,15 +59878,16 @@
/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";
+ c_tag = "Science Petting Zoo";
dir = 8
},
-/turf/open/floor/circuit/green,
-/area/science/nanite)
+/obj/structure/frame/computer{
+ anchored = 1;
+ dir = 8
+ },
+/turf/open/floor/circuit/green/off,
+/area/science/research)
"rnV" = (
/obj/structure/sign/warning/securearea,
/turf/closed/wall/r_wall,
@@ -60093,7 +60088,7 @@
dir = 8
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"rqO" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -60285,7 +60280,7 @@
dir = 4
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"rtc" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -63213,7 +63208,7 @@
"spG" = (
/obj/structure/sign/warning/biohazard,
/turf/closed/wall/r_wall,
-/area/science/nanite)
+/area/science/research)
"spK" = (
/obj/structure/flora/ausbushes/sparsegrass{
pixel_x = 7;
@@ -67877,7 +67872,7 @@
dir = 4
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"tOw" = (
/obj/effect/turf_decal/trimline/green/filled/line{
dir = 4
@@ -68820,7 +68815,7 @@
dir = 8
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"ueU" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -70193,7 +70188,7 @@
dir = 9
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"uxy" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -70633,7 +70628,7 @@
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"uFV" = (
/obj/item/kirbyplants/random,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -70650,10 +70645,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,
@@ -71885,9 +71876,11 @@
/turf/open/floor/iron/white,
/area/science/research)
"uZY" = (
-/obj/machinery/nanite_chamber,
-/turf/open/floor/circuit/green,
-/area/science/nanite)
+/obj/structure/frame/machine{
+ anchored = 1
+ },
+/turf/open/floor/circuit/green/off,
+/area/science/research)
"vak" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 4
@@ -72942,7 +72935,7 @@
dir = 8
},
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"vqw" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
@@ -75528,7 +75521,7 @@
"whv" = (
/obj/structure/sign/warning/securearea,
/turf/closed/wall,
-/area/science/nanite)
+/area/science/research)
"whB" = (
/obj/effect/turf_decal/trimline/blue/filled/line,
/turf/open/floor/iron/white,
@@ -76972,7 +76965,7 @@
dir = 8
},
/turf/open/floor/iron,
-/area/science/nanite)
+/area/science/research)
"wHY" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/blue{
@@ -78805,11 +78798,12 @@
/turf/open/floor/iron/dark,
/area/commons/locker)
"xmN" = (
-/obj/effect/turf_decal/siding/green{
- dir = 8
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
},
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/obj/structure/flora/ausbushes/stalkybush,
+/turf/open/floor/grass,
+/area/science/research)
"xmT" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{
@@ -79027,7 +79021,7 @@
"xrs" = (
/obj/effect/decal/cleanable/garbage,
/turf/open/floor/iron/white,
-/area/science/nanite)
+/area/science/research)
"xrA" = (
/obj/machinery/air_sensor/atmos/carbon_tank,
/turf/open/floor/engine/co2,
@@ -80198,29 +80192,17 @@
/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)
+/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)
"xJW" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/purple,
@@ -81467,11 +81449,12 @@
/turf/open/space/basic,
/area/solars/port/aft)
"yeh" = (
-/obj/effect/turf_decal/siding/green{
- dir = 4
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
},
-/turf/open/floor/iron/dark,
-/area/science/nanite)
+/obj/structure/flora/ausbushes/grassybush,
+/turf/open/floor/grass,
+/area/science/research)
"yej" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -118726,9 +118709,9 @@ ovj
ovj
ovj
dwL
-ctL
-ctL
-ctL
+cgo
+cgo
+cgo
cTN
gAI
whv
@@ -118982,14 +118965,14 @@ myQ
xZF
gGR
nGT
-ctL
-uFZ
+cgo
+uZY
lta
uZY
tOv
ueO
qMf
-ctL
+cgo
cEz
bjK
dyc
@@ -119239,14 +119222,14 @@ ovj
cpJ
ten
ovj
-ctL
+cgo
xJV
pPZ
xmN
rsu
ueO
fQU
-ctL
+cgo
qfG
jTf
xaN
@@ -119496,14 +119479,14 @@ cos
dxh
hPn
crZ
-ctL
+cgo
bmT
rdZ
nkS
aXh
iog
qCP
-ctL
+cgo
vPM
ciL
sgX
@@ -119753,14 +119736,14 @@ cot
cnb
cra
csa
-ctL
+cgo
gdG
mQQ
oTY
nsC
uFU
nIx
-ctL
+cgo
dww
cFu
dyc
@@ -120010,14 +119993,14 @@ nbv
nbv
cou
csb
-ctL
+cgo
eQK
oOD
yeh
bkv
wHW
dMl
-ctL
+cgo
dvY
dvY
dvY
@@ -120267,14 +120250,14 @@ mhf
nbv
rYC
csc
-ctL
-uFZ
+cgo
+uZY
rnM
uZY
inN
fde
aLn
-ctL
+cgo
aaa
aaa
aaa
@@ -120525,13 +120508,13 @@ cpK
cwG
pPA
dwL
-ctL
-ctL
-ctL
+cgo
+cgo
+cgo
spG
gLm
spG
-ctL
+cgo
aaa
aaa
aaa
diff --git a/_maps/map_files/NSSJourney/NSSJourney.dmm b/_maps/map_files/NSSJourney/NSSJourney.dmm
index 30d01c28b5e..1ea5909e9d0 100644
--- a/_maps/map_files/NSSJourney/NSSJourney.dmm
+++ b/_maps/map_files/NSSJourney/NSSJourney.dmm
@@ -10369,16 +10369,20 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"aQy" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"aQz" = (
/obj/structure/chair{
dir = 1
@@ -27864,11 +27868,13 @@
/turf/open/floor/iron,
/area/science/storage)
"bUq" = (
-/obj/machinery/nanite_program_hub,
/obj/effect/turf_decal/bot,
/obj/machinery/airalarm/directional/south,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"bUt" = (
/obj/structure/cable,
/turf/open/floor/plating,
@@ -29743,7 +29749,7 @@
"cbe" = (
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"cbh" = (
/obj/structure/table,
/obj/item/folder/white,
@@ -37563,8 +37569,9 @@
/turf/open/floor/iron,
/area/hallway/primary/starboard)
"dYq" = (
-/turf/closed/wall,
-/area/science/nanite)
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/iron/dark,
+/area/science/research)
"dYx" = (
/obj/machinery/door/airlock/atmos{
name = "Prison Atmospherics Control";
@@ -37775,11 +37782,12 @@
/area/hallway/primary/fore)
"eja" = (
/obj/effect/turf_decal/bot,
-/obj/machinery/computer/nanite_chamber_control{
+/obj/structure/frame/computer{
+ anchored = 1;
dir = 4
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"ejL" = (
/obj/effect/turf_decal/tile/purple{
dir = 8
@@ -37883,12 +37891,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/cargo/storage)
-"epI" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/science/nanite)
"epT" = (
/obj/machinery/power/apc/auto_name/north,
/obj/structure/cable,
@@ -39300,16 +39302,13 @@
/turf/closed/wall,
/area/medical/medbay)
"fNH" = (
-/obj/machinery/light_switch{
- pixel_x = -20
- },
/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)
+/area/science/research)
"fNJ" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -39930,11 +39929,11 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/obj/structure/chair/office/light{
- dir = 4
+/obj/structure/chair/office{
+ dir = 8
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/eighties/red,
+/area/science/research)
"goT" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -40014,8 +40013,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/eighties/red,
+/area/science/research)
"gwl" = (
/obj/machinery/power/apc/auto_name/south,
/obj/structure/cable,
@@ -40305,7 +40304,7 @@
dir = 1
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"gLH" = (
/obj/machinery/door/airlock/external{
name = "External Access";
@@ -41120,11 +41119,6 @@
/obj/machinery/light/directional/north,
/turf/open/floor/iron/dark,
/area/command/heads_quarters/cmo)
-"hAK" = (
-/obj/structure/table,
-/obj/item/storage/box/disks_nanite,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"hAO" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -41686,8 +41680,8 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"hZk" = (
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/eighties/red,
+/area/science/research)
"hZD" = (
/obj/machinery/camera{
c_tag = "Security Office";
@@ -41723,11 +41717,6 @@
dir = 1
},
/area/service/kitchen/diner)
-"ibG" = (
-/obj/machinery/nanite_programmer,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"ibI" = (
/obj/machinery/camera{
c_tag = "Brig East"
@@ -41745,8 +41734,8 @@
/area/commons/dorms)
"icS" = (
/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/eighties/red,
+/area/science/research)
"icV" = (
/obj/effect/landmark/event_spawn,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
@@ -45029,20 +45018,14 @@
/turf/open/floor/wood,
/area/service/bar)
"lcg" = (
+/obj/machinery/light/directional/east,
/obj/effect/turf_decal/bot,
-/obj/machinery/computer/nanite_chamber_control{
+/obj/structure/frame/computer{
+ anchored = 1;
dir = 8
},
-/obj/machinery/requests_console{
- department = "Science";
- departmentType = 2;
- name = "Science Requests Console";
- pixel_x = 30;
- receive_ore_updates = 1
- },
-/obj/machinery/light/directional/east,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"lcp" = (
/obj/machinery/light/directional/north,
/turf/open/floor/iron,
@@ -45699,9 +45682,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 5
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/eighties/red,
+/area/science/research)
"lLM" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -45826,14 +45808,16 @@
/area/ai_monitored/security/armory)
"lQm" = (
/obj/machinery/camera{
- c_tag = "Nanite Lab";
+ c_tag = "Circuits Lab";
dir = 4;
network = list("ss13","rd")
},
-/obj/machinery/computer/nanite_cloud_controller,
/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"lQp" = (
/obj/effect/turf_decal/trimline/blue/filled/line,
/obj/machinery/holopad,
@@ -46504,11 +46488,8 @@
/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)
+/turf/open/floor/eighties/red,
+/area/science/research)
"mBv" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/cable,
@@ -48813,8 +48794,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 10
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/eighties/red,
+/area/science/research)
"oNd" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -49739,11 +49720,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/security/prison/safe)
-"pDu" = (
-/obj/machinery/computer/nanite_cloud_controller,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"pEr" = (
/obj/machinery/portable_atmospherics/canister/tier_1,
/turf/open/floor/iron,
@@ -49874,9 +49850,14 @@
/area/hallway/primary/fore)
"pKm" = (
/obj/structure/table,
-/obj/item/nanite_remote,
+/obj/machinery/requests_console/directional/east{
+ department = "Circuits Lab";
+ departmentType = 2;
+ name = "Circuits Lab Requests Console";
+ receive_ore_updates = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"pLk" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/delivery/red,
@@ -50360,17 +50341,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/turf/open/floor/iron,
-/area/science/nanite)
-"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)
+/turf/open/floor/eighties/red,
+/area/science/research)
"qff" = (
/obj/structure/bed/roller,
/obj/effect/turf_decal/trimline/darkblue/filled/line{
@@ -50844,8 +50816,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/eighties/red,
+/area/science/research)
"qHq" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/trash_pile,
@@ -52356,8 +52328,9 @@
/area/maintenance/aft)
"sjr" = (
/obj/effect/turf_decal/loading_area,
+/obj/machinery/light_switch/directional/west,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"sjK" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -52568,9 +52541,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 9
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/eighties/red,
+/area/science/research)
"sve" = (
/obj/machinery/door/firedoor/heavy,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -52636,6 +52608,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/medical/medbay/central)
+"sxV" = (
+/obj/effect/spawner/randomarcade{
+ dir = 4
+ },
+/turf/open/floor/eighties/red,
+/area/science/research)
"szh" = (
/obj/machinery/camera{
c_tag = " Prison - East Hallway";
@@ -53356,12 +53334,11 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
-/obj/structure/chair/office/light{
- dir = 8
+/obj/structure/chair/office{
+ dir = 4
},
-/obj/effect/landmark/start/scientist,
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/eighties/red,
+/area/science/research)
"tgp" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron/white/smooth_large,
@@ -54385,7 +54362,7 @@
/obj/effect/turf_decal/bot,
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"ubJ" = (
/obj/effect/landmark/start/medical_doctor,
/obj/effect/turf_decal/tile/blue{
@@ -54931,8 +54908,8 @@
/obj/effect/turf_decal/stripes/line{
dir = 6
},
-/turf/open/floor/iron,
-/area/science/nanite)
+/turf/open/floor/eighties/red,
+/area/science/research)
"uzo" = (
/obj/structure/rack,
/obj/item/tank/internals/plasmaman/belt{
@@ -55009,11 +54986,13 @@
},
/area/security/prison)
"uCO" = (
-/obj/machinery/nanite_program_hub,
-/obj/effect/turf_decal/bot,
/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"uDy" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -56847,7 +56826,7 @@
name = "research lab shutters"
},
/turf/open/floor/plating,
-/area/science/nanite)
+/area/science/research)
"wlB" = (
/obj/effect/turf_decal/siding/wood,
/obj/machinery/door/airlock{
@@ -56954,10 +56933,12 @@
/turf/open/floor/wood,
/area/maintenance/port/aft)
"wqH" = (
-/obj/machinery/nanite_chamber,
/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"wqP" = (
/turf/open/floor/carpet,
/area/command/heads_quarters/captain)
@@ -58071,10 +58052,11 @@
/turf/open/floor/iron/dark/textured_large,
/area/hallway/primary/central)
"xkP" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/cable,
-/turf/open/floor/plating,
-/area/command/gateway)
+/obj/effect/spawner/randomarcade{
+ dir = 8
+ },
+/turf/open/floor/eighties/red,
+/area/science/research)
"xlx" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/darkblue/filled/line{
@@ -58103,13 +58085,13 @@
/turf/open/floor/iron/white,
/area/medical/medbay)
"xmh" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = -27
- },
-/obj/machinery/nanite_chamber,
+/obj/structure/extinguisher_cabinet/directional/west,
/obj/effect/turf_decal/bot,
+/obj/structure/frame/machine{
+ anchored = 1
+ },
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"xnG" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -58419,9 +58401,8 @@
/area/maintenance/starboard/aft)
"xEM" = (
/obj/structure/table,
-/obj/item/nanite_scanner,
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"xFt" = (
/obj/effect/turf_decal/tile/yellow{
dir = 8
@@ -59138,7 +59119,7 @@
dir = 1
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/research)
"ykz" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -105847,13 +105828,13 @@ boB
qaX
jrH
sve
-dYq
-dYq
-dYq
+bhA
+bhA
+bhA
wkN
wkN
wkN
-dYq
+bhA
bhA
huA
kAK
@@ -106108,8 +106089,8 @@ fNH
sjr
xmh
eja
-hAK
-ibG
+xEM
+wqH
lQm
bEC
bEC
@@ -106363,7 +106344,7 @@ brx
bro
aQx
suU
-qeQ
+qGG
tgl
qGG
oMN
@@ -106621,7 +106602,7 @@ bBD
gLd
qea
hZk
-hZk
+xkP
hZk
icS
uCO
@@ -106878,7 +106859,7 @@ bBD
gLd
gwd
hZk
-hZk
+sxV
hZk
icS
bUq
@@ -107136,7 +107117,7 @@ aQy
lLp
mBm
gnX
-epI
+mBm
uzl
cbe
cUN
@@ -107390,12 +107371,12 @@ bpq
vdl
kXt
yiW
-sjr
+dYq
wqH
lcg
xEM
pKm
-pDu
+wqH
cUN
cKR
byu
@@ -107646,13 +107627,13 @@ rKc
xKN
vGb
xKN
-xkP
-xkP
-xkP
-xKN
-xkP
-xkP
-xkP
+bYi
+bYi
+bYi
+bYi
+bYi
+boB
+boB
cUN
pEr
vsA
diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm
index 066fffbf7e2..61e65fe3077 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)
@@ -2163,11 +2151,6 @@
/obj/structure/cable,
/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)
"sE" = (
/obj/machinery/power/rtg/advanced,
/obj/structure/cable,
@@ -2178,6 +2161,9 @@
/obj/item/storage/box/shipping,
/turf/open/floor/iron,
/area/commons/storage/primary)
+"te" = (
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"tG" = (
/obj/docking_port/stationary/random{
id = "pod_lavaland";
@@ -2206,20 +2192,35 @@
/obj/machinery/light/directional/north,
/turf/open/floor/plating,
/area/engineering/atmos)
+"uM" = (
+/obj/structure/bot,
+/turf/open/floor/iron/dark,
+/area/science/misc_lab)
"uO" = (
/obj/machinery/door/airlock/public/glass,
/obj/structure/cable,
/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 +2273,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 +2287,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 +2329,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 +2339,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 +2400,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 +2447,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 +2474,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,13 +2491,25 @@
/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,
/area/science)
+"Po" = (
+/obj/machinery/door/airlock/research,
+/turf/open/floor/iron/dark,
+/area/construction)
+"Qg" = (
+/obj/machinery/door/airlock/shell,
+/turf/open/floor/iron/dark,
+/area/construction)
"Qi" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
@@ -2574,7 +2589,7 @@
dir = 4
},
/turf/open/floor/iron/dark,
-/area/science/nanite)
+/area/science/misc_lab)
"Vy" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -2634,16 +2649,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 +2677,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,
@@ -2676,8 +2698,9 @@
/turf/open/floor/iron,
/area/engineering/atmos)
"ZP" = (
+/obj/structure/money_bot,
/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,10 +6148,10 @@ dn
dn
dn
dL
-ef
+Qg
nn
-ZP
-ZP
+te
+te
ZP
Ir
aa
@@ -6217,7 +6240,7 @@ dn
dn
dn
dL
-ef
+cN
AE
kp
XN
@@ -6309,11 +6332,11 @@ dn
dn
dn
dL
-cN
-qd
-ZP
-ZP
-ZP
+Po
+te
+te
+te
+uM
Ir
aa
aa
@@ -6401,8 +6424,8 @@ dn
dn
dn
dL
-fd
-ZP
+cN
+te
Df
Nb
CT
diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm
index 1be96e88235..aa867b4c498 100644
--- a/_maps/map_files/tramstation/tramstation.dmm
+++ b/_maps/map_files/tramstation/tramstation.dmm
@@ -548,7 +548,7 @@
"abP" = (
/obj/item/assembly/igniter,
/turf/closed/mineral/random/stationside/asteroid,
-/area/maintenance/department/medical)
+/area/mine/explored)
"abU" = (
/obj/effect/turf_decal/trimline/green/filled/corner,
/obj/effect/turf_decal/trimline/green/filled/line{
@@ -3235,17 +3235,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{
@@ -3674,17 +3663,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,
@@ -5710,14 +5688,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
@@ -6178,22 +6148,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,
@@ -7609,9 +7563,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
@@ -10456,18 +10407,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
@@ -10597,14 +10536,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
@@ -13126,29 +13057,6 @@
},
/turf/open/floor/plating/airless,
/area/mine/explored)
-"bap" = (
-/obj/structure/table,
-/obj/effect/turf_decal/trimline/purple/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)
"baB" = (
/obj/structure/girder,
/obj/effect/decal/cleanable/dirt,
@@ -13197,14 +13105,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"
@@ -14169,10 +14069,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
@@ -14196,14 +14092,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
@@ -14776,15 +14664,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,
@@ -15184,21 +15063,14 @@
/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,
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 8
+ },
/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{
@@ -17128,13 +17000,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,
@@ -18361,18 +18226,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";
@@ -19868,13 +19721,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,
@@ -26262,9 +26108,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{
@@ -29597,26 +29440,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{
@@ -30848,19 +30671,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,
@@ -34705,13 +34515,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)
"jqY" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -38033,11 +37836,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,
@@ -44759,21 +44557,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,
@@ -49641,11 +49424,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
@@ -51753,10 +51531,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,
@@ -54393,13 +54167,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
@@ -55454,26 +55221,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
@@ -61417,12 +61164,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{
@@ -61758,16 +61499,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
@@ -64349,20 +64080,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,
@@ -64429,14 +64146,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
@@ -65059,10 +64768,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
@@ -65800,19 +65505,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,
@@ -66169,14 +65861,14 @@
/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
},
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 8
+ },
/turf/open/floor/iron/white,
/area/science/research)
"vDX" = (
@@ -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
@@ -177404,7 +177096,7 @@ jOR
aEg
hYK
abP
-agq
+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
@@ -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
@@ -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
diff --git a/_maps/map_files/tramstation/tramstation_skyrat.dmm b/_maps/map_files/tramstation/tramstation_skyrat.dmm
index db5bd968477..04b1af09539 100644
--- a/_maps/map_files/tramstation/tramstation_skyrat.dmm
+++ b/_maps/map_files/tramstation/tramstation_skyrat.dmm
@@ -543,7 +543,7 @@
"abP" = (
/obj/item/assembly/igniter,
/turf/closed/mineral/random/stationside/asteroid,
-/area/maintenance/department/medical)
+/area/mine/explored)
"abU" = (
/obj/effect/turf_decal/trimline/green/filled/corner,
/obj/effect/turf_decal/trimline/green/filled/line{
@@ -3220,17 +3220,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{
@@ -3659,17 +3648,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,
@@ -5707,14 +5685,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
@@ -6175,22 +6145,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,
@@ -7606,9 +7560,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
@@ -10452,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
@@ -10593,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
@@ -13124,29 +13055,6 @@
},
/turf/open/floor/plating/airless,
/area/mine/explored)
-"bap" = (
-/obj/structure/table,
-/obj/effect/turf_decal/trimline/purple/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)
"baB" = (
/obj/structure/girder,
/obj/effect/decal/cleanable/dirt,
@@ -13195,14 +13103,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"
@@ -14163,10 +14063,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
@@ -14190,14 +14086,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
@@ -14770,15 +14658,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,
@@ -15178,21 +15057,14 @@
/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,
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 8
+ },
/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{
@@ -17135,13 +17007,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/effect/turf_decal/trimline/neutral/filled/corner,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
@@ -18376,18 +18241,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";
@@ -19900,13 +19753,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,
@@ -26306,9 +26152,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{
@@ -29636,26 +29479,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{
@@ -30881,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,
@@ -34697,13 +34507,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)
"jqY" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -38006,11 +37809,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,
@@ -44803,21 +44601,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,
@@ -49719,11 +49502,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
@@ -51843,10 +51621,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,
@@ -54484,13 +54258,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
@@ -55539,26 +55306,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
@@ -61546,12 +61293,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{
@@ -61895,16 +61636,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
@@ -64487,20 +64218,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,
@@ -64567,14 +64284,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
@@ -65206,10 +64915,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
@@ -65951,19 +65656,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,
@@ -66351,14 +66043,14 @@
/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
},
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 8
+ },
/turf/open/floor/iron/white,
/area/science/research)
"vDX" = (
@@ -176818,7 +176510,7 @@ agq
lbM
jwN
sYs
-agq
+aae
aae
aae
aae
@@ -177075,7 +176767,7 @@ jOR
wEN
fwP
fwP
-agq
+aae
aae
aae
aae
@@ -177320,7 +177012,7 @@ aae
aae
aae
aae
-agq
+aae
lbM
agq
xCz
@@ -177331,8 +177023,8 @@ fwP
jOR
aEg
lAc
-agq
-agq
+aae
+aae
aae
aae
aae
@@ -177589,7 +177281,7 @@ jOR
aEg
hYK
abP
-agq
+aae
aae
aae
aae
@@ -177837,16 +177529,16 @@ aae
lbM
tAu
sYs
-agq
-agq
+aae
+aae
wEN
oWE
lbM
jOR
-agq
-agq
-agq
-agq
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -178093,14 +177785,14 @@ dyg
aae
lbM
lbM
-ayQ
-ayQ
-ayQ
-ayQ
-ayQ
-ayQ
-ayQ
-ayQ
+aae
+aae
+aae
+aae
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -178350,14 +178042,14 @@ dyg
aae
aae
aae
-ayQ
-bap
-auc
-alu
-bMz
-vfl
-pUB
-ayQ
+aae
+aae
+aae
+aae
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -178607,14 +178299,14 @@ dyg
aae
aae
aae
-ayQ
-anf
-dFo
-cAT
-vux
-uQm
-gfd
-ayQ
+aae
+aae
+aae
+aae
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -178864,14 +178556,14 @@ dyg
der
der
der
-ayQ
-dbl
-kzT
-cAT
-rwO
-vux
-jqL
-ayQ
+der
+aae
+aae
+aae
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -179121,14 +178813,14 @@ dyg
bwc
dCn
pto
-ayQ
-asL
-bsR
-hPF
-baY
-bFL
-uRy
-ayQ
+der
+aae
+aae
+aae
+aae
+aae
+aae
+aae
aae
aae
aae
@@ -179378,13 +179070,13 @@ dyg
lSU
wtF
jhg
-ayQ
-aIs
-rbD
-nkz
-pfi
-tJq
-aIT
+der
+aae
+aae
+aae
+aae
+aae
+aae
lQG
lQG
lQG
@@ -179635,13 +179327,13 @@ dyg
der
jFq
der
-ayQ
-ayQ
-btO
-hqq
-tOO
-btO
-ayQ
+der
+der
+der
+der
+der
+der
+der
lQG
dGu
dGu
diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm
index 669ec8c4134..2363913ab65 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 816dd507022..13d485a34f3 100644
--- a/code/__DEFINES/dcs/signals.dm
+++ b/code/__DEFINES/dcs/signals.dm
@@ -1105,49 +1105,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 05c768e198d..5adebe3111b 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -484,7 +484,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 20ae86b1a50..ecf137c64ef 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 f6632bbd1c1..dfc1929506a 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
@@ -596,7 +594,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/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 b654cc1a710..752e404dc2c 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -193,9 +193,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
@@ -212,31 +212,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 b413cf5d187..dfaf0f11fc3 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"
@@ -52,8 +51,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.
@@ -151,14 +148,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
@@ -278,7 +267,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
@@ -306,10 +294,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"]
@@ -346,7 +330,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 9a469c9d336..ca4c2534452 100644
--- a/code/game/objects/items/circuitboards/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm
@@ -886,32 +886,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
@@ -922,27 +896,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 b492d6418c9..599bac2ecd8 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
*/
@@ -430,7 +429,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)
@@ -824,48 +822,7 @@ 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)
-
- //SKYRAT EDIT ADDITION BEGIN
- power_use_amount = POWER_CELL_USE_LOW
-
-/obj/item/nanite_scanner/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/cell)
- //SKYRAT EDIT END
-
-/obj/item/nanite_scanner/attack(mob/living/M, mob/living/carbon/human/user)
- //SKYRAT EDIT ADDITION
- if(!(item_use_power(power_use_amount, user) & COMPONENT_POWER_SUCCESS))
- return
- //SKYRAT EDIT END
- 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//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE
+/obj/item/sequence_scanner//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODUL
name = "genetic sequence scanner"
icon = 'icons/obj/device.dmi'
icon_state = "gene"
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 bb4690891be..43e364a8dc8 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 a400099d921..20f4b8ba48c 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -591,10 +591,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 b527d93de2b..9bd7304a622 100644
--- a/code/modules/admin/admin_investigate.dm
+++ b/code/modules/admin/admin_investigate.dm
@@ -10,10 +10,7 @@
if(!holder)
return
- // SKYRAT EDIT -- Added INVESTIGATE_CIRCUIT to the end
- 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, INVESTIGATE_CIRCUIT)
+ 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 8400a07223d..ae1f473de3c 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 a6e9f682e12..0d50b509d39 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -249,14 +249,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_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/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/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/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 ac539e3d410..f25712a0b6b 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -1753,188 +1753,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 05b2d17badc..191d6157276 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/modular_skyrat/modules/awaymissions_skyrat/mission_code/mothership_astrum.dm b/modular_skyrat/modules/awaymissions_skyrat/mission_code/mothership_astrum.dm
index fcd05523ebc..687fd2ab362 100644
--- a/modular_skyrat/modules/awaymissions_skyrat/mission_code/mothership_astrum.dm
+++ b/modular_skyrat/modules/awaymissions_skyrat/mission_code/mothership_astrum.dm
@@ -167,8 +167,6 @@
name = "lobotomite containment tube"
desc = "A pod containing a sleeping experiment, peering through the frost reveals a sleeping human."
mob_name = "Lobotomite"
- icon = 'icons/obj/machines/nanite_chamber.dmi'
- icon_state = "nanite_chamber_occupied"
density = TRUE
roundstart = FALSE
death = FALSE
@@ -313,11 +311,6 @@
use_power = NO_POWER_USE
flags_1 = NODECONSTRUCT_1
-/obj/machinery/scanner_gate/anti_nanite/perform_scan(mob/living/M)
- if(SEND_SIGNAL(M, COMSIG_HAS_NANITES))
- SEND_SIGNAL(M, COMSIG_NANITE_DELETE)
- to_chat(M, "You feel an electrical charge run throughout your entire body as your nanites are vaporized!")
-
/obj/machinery/scanner_gate/anti_nanite/emag_act(mob/user)
to_chat(user, "This gate has advanced security measures!")
return
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 4ca9cbfd246..f652fbe8b74 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"
@@ -422,7 +421,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"
@@ -580,7 +578,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"
@@ -710,7 +707,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"
@@ -3324,7 +3320,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"
@@ -3339,30 +3334,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 => (
-