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 => ( -