From a28b24f149702527f3eb22f5c686f06c836f2f99 Mon Sep 17 00:00:00 2001 From: skoglol <33292112+kriskog@users.noreply.github.com> Date: Tue, 4 Feb 2020 22:04:06 +0100 Subject: [PATCH] Completely removes cloning (#48668) * Removed from code * Removes cloners from maps * Some more references, now compiles. * Reduces availability of replica pods * DNA scanner and tech disk rebranding * pubby door name, cargo pack description --- .../SpaceRuins/cloning_facility.dmm | 595 ----------- _maps/map_files/BoxStation/BoxStation.dmm | 377 ++++--- .../map_files/Deltastation/DeltaStation2.dmm | 920 ++++++------------ _maps/map_files/Donutstation/Donutstation.dmm | 104 +- _maps/map_files/KiloStation/KiloStation.dmm | 280 +++--- _maps/map_files/MetaStation/MetaStation.dmm | 246 ++--- _maps/map_files/PubbyStation/PubbyStation.dmm | 483 ++++----- _maps/map_files/debug/runtimestation.dmm | 21 +- _maps/shuttles/emergency_zeta.dmm | 18 +- code/__DEFINES/DNA.dm | 4 - code/__DEFINES/access.dm | 4 +- code/__DEFINES/machines.dm | 4 - code/_globalvars/lists/poll_ignore.dm | 2 - code/_onclick/observer.dm | 2 +- code/datums/brain_damage/brain_trauma.dm | 5 - code/datums/brain_damage/phobia.dm | 5 - code/datums/brain_damage/special.dm | 2 - code/datums/dna.dm | 4 +- .../mood_events/generic_negative_events.dm | 4 - code/datums/ruins/space.dm | 6 - code/datums/shuttles.dm | 2 +- code/datums/traits/_quirk.dm | 3 - code/datums/traits/negative.dm | 6 - code/game/area/Space_Station_13_areas.dm | 4 - code/game/machinery/cloning.dm | 572 ----------- code/game/machinery/computer/cloning.dm | 627 ------------ code/game/machinery/dna_scanner.dm | 25 +- code/game/machinery/exp_cloner.dm | 306 ------ code/game/objects/effects/countdown.dm | 13 - .../game/objects/effects/spawners/lootdrop.dm | 4 +- .../circuitboards/computer_circuitboards.dm | 10 - .../circuitboards/machine_circuitboards.dm | 19 +- code/game/objects/items/manuals.dm | 7 - code/game/objects/structures/morgue.dm | 6 +- code/game/objects/structures/showcase.dm | 2 +- .../revenant/revenant_abilities.dm | 3 - .../gasmixtures/immutable_mixtures.dm | 13 - code/modules/awaymissions/corpse.dm | 2 +- code/modules/cargo/packs.dm | 4 +- code/modules/clothing/head/misc_special.dm | 1 - code/modules/jobs/access.dm | 24 +- code/modules/jobs/job_types/chemist.dm | 2 +- .../jobs/job_types/chief_medical_officer.dm | 4 +- code/modules/jobs/job_types/geneticist.dm | 4 +- code/modules/jobs/job_types/medical_doctor.dm | 4 +- code/modules/jobs/job_types/paramedic.dm | 4 +- .../jobs/job_types/security_officer.dm | 2 +- code/modules/jobs/job_types/virologist.dm | 2 +- code/modules/library/lib_items.dm | 8 - code/modules/mob/living/brain/brain_item.dm | 3 - code/modules/mob/living/brain/posibrain.dm | 2 +- .../hostile/megafauna/colossus.dm | 2 +- .../mob/living/simple_animal/parrot.dm | 3 +- code/modules/paperwork/contract.dm | 16 +- .../research/designs/machine_designs.dm | 24 +- .../research/designs/medical_designs.dm | 6 +- code/modules/research/techweb/all_nodes.dm | 8 +- .../ruins/spaceruin_code/cloning_lab.dm | 35 - code/modules/shuttle/supply.dm | 1 - code/modules/vending/megaseed.dm | 17 +- icons/obj/machines/cloning.dmi | Bin 16713 -> 11455 bytes tgstation.dme | 4 - 62 files changed, 1047 insertions(+), 3843 deletions(-) delete mode 100644 _maps/RandomRuins/SpaceRuins/cloning_facility.dmm delete mode 100644 code/game/machinery/cloning.dm delete mode 100644 code/game/machinery/computer/cloning.dm delete mode 100644 code/game/machinery/exp_cloner.dm delete mode 100644 code/modules/ruins/spaceruin_code/cloning_lab.dm diff --git a/_maps/RandomRuins/SpaceRuins/cloning_facility.dmm b/_maps/RandomRuins/SpaceRuins/cloning_facility.dmm deleted file mode 100644 index 26bb9bf35af..00000000000 --- a/_maps/RandomRuins/SpaceRuins/cloning_facility.dmm +++ /dev/null @@ -1,595 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/template_noop, -/area/template_noop) -"b" = ( -/turf/closed/wall/r_wall, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"c" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"d" = ( -/turf/closed/wall/r_wall/rust, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"e" = ( -/obj/machinery/defibrillator_mount/loaded, -/turf/closed/wall/r_wall, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"f" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"g" = ( -/obj/structure/table, -/obj/item/flashlight/lamp, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"h" = ( -/obj/structure/table, -/obj/item/pen, -/obj/item/paper/fluff/ruins/exp_cloning/log, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"i" = ( -/obj/machinery/dna_scannernew, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"j" = ( -/obj/machinery/computer/prototype_cloning, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/paper/fluff/ruins/exp_cloning/manual, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"k" = ( -/obj/machinery/clonepod/experimental, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"l" = ( -/obj/effect/decal/cleanable/vomit/old, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"m" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"n" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"o" = ( -/obj/machinery/vending/snack/teal, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"p" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"q" = ( -/obj/structure/sign/directions/science{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"r" = ( -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"s" = ( -/obj/machinery/iv_drip, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"t" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"u" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"v" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"w" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"x" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"y" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"z" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"A" = ( -/obj/structure/sign/departments/science, -/turf/closed/wall, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"B" = ( -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"C" = ( -/turf/open/floor/plating/airless, -/area/space/nearstation) -"D" = ( -/obj/structure/chair/comfy{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"E" = ( -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"F" = ( -/obj/machinery/door/airlock/research/glass, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"G" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"H" = ( -/obj/machinery/door/airlock/research/glass, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"I" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"J" = ( -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"K" = ( -/obj/machinery/door/airlock/research/glass, -/turf/open/floor/plasteel/airless, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"L" = ( -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/space/nearstation) -"M" = ( -/obj/structure/fluff/broken_flooring{ - dir = 8; - icon_state = "plating"; - name = "broken plating" - }, -/turf/template_noop, -/area/space/nearstation) -"N" = ( -/obj/item/book/random/triple, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"O" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/bookcase/random/fiction, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"P" = ( -/obj/structure/table/glass, -/obj/machinery/light, -/obj/structure/bedsheetbin, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"Q" = ( -/obj/structure/table/glass, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"R" = ( -/obj/structure/table/glass, -/obj/item/storage/firstaid/regular, -/obj/item/healthanalyzer{ - desc = "A prototype hand-held body scanner able to distinguish vital signs of the subject."; - name = "prototype health analyzer" - }, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"S" = ( -/obj/structure/table/glass, -/obj/item/storage/box/syringes, -/turf/open/floor/plasteel/white, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"T" = ( -/turf/closed/wall, -/area/ruin/space/has_grav/powered/ancient_shuttle) -"U" = ( -/turf/open/floor/plating/airless{ - icon_state = "platingdmg2" - }, -/area/space/nearstation) -"V" = ( -/turf/closed/wall/r_wall/rust, -/area/space/nearstation) - -(1,1,1) = {" -a -a -a -a -a -a -a -a -a -"} -(2,1,1) = {" -a -a -a -a -a -a -a -a -a -"} -(3,1,1) = {" -a -a -c -c -c -c -c -a -a -"} -(4,1,1) = {" -a -a -c -r -D -N -c -a -a -"} -(5,1,1) = {" -a -a -c -s -E -E -c -a -a -"} -(6,1,1) = {" -a -a -d -t -E -O -d -a -a -"} -(7,1,1) = {" -a -a -d -b -F -d -d -a -a -"} -(8,1,1) = {" -a -a -a -b -G -b -a -a -a -"} -(9,1,1) = {" -a -a -d -d -H -b -b -a -a -"} -(10,1,1) = {" -a -b -b -u -I -I -c -a -a -"} -(11,1,1) = {" -a -c -g -v -J -J -c -a -a -"} -(12,1,1) = {" -a -c -h -w -J -J -d -a -a -"} -(13,1,1) = {" -a -d -i -x -J -P -b -a -a -"} -(14,1,1) = {" -a -b -j -y -J -Q -c -a -a -"} -(15,1,1) = {" -a -b -k -x -J -R -c -a -a -"} -(16,1,1) = {" -a -e -l -x -J -S -d -a -a -"} -(17,1,1) = {" -a -d -m -z -J -J -d -a -a -"} -(18,1,1) = {" -a -d -n -A -K -T -b -a -a -"} -(19,1,1) = {" -a -f -o -B -p -C -V -a -a -"} -(20,1,1) = {" -a -f -p -p -C -U -M -a -a -"} -(21,1,1) = {" -a -d -q -C -L -M -a -a -a -"} -(22,1,1) = {" -a -a -b -f -M -a -a -a -a -"} -(23,1,1) = {" -a -a -a -a -a -a -a -a -a -"} diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index b9c7ad8c711..829e86d99a0 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -25376,7 +25376,7 @@ "bmX" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/closed/wall/r_wall, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bmY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -26384,9 +26384,8 @@ /area/medical/pharmacy) "bpG" = ( /obj/machinery/power/apc{ - areastring = "/area/medical/genetics/cloning"; dir = 1; - name = "Cloning APC"; + name = "Ward APC"; pixel_y = 23 }, /obj/structure/cable, @@ -26394,21 +26393,14 @@ dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bpH" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/structure/closet/wardrobe/pjs, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bpI" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bpJ" = ( /obj/machinery/light{ dir = 1 @@ -26419,29 +26411,24 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/structure/chair/office/light{ - dir = 8 - }, +/obj/structure/closet/wardrobe/mixed, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bpK" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/structure/bed, -/obj/item/bedsheet/medical, +/obj/structure/closet/wardrobe/pjs, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bpL" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/structure/chair/office/light{ - dir = 8 - }, +/obj/structure/closet/wardrobe/mixed, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bpM" = ( /obj/structure/disposalpipe/segment, /obj/machinery/smartfridge/chemistry, @@ -26921,20 +26908,22 @@ /area/medical/medbay/central) "bqZ" = ( /obj/structure/cable, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "brb" = ( -/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/tile/blue, +/obj/structure/table, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "brc" = ( /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "brd" = ( /obj/effect/turf_decal/tile/blue, -/obj/structure/closet/secure_closet/personal/patient, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "brg" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -26970,7 +26959,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "brm" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -27407,18 +27396,18 @@ "bsu" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ - id_tag = "GeneticsDoor"; - name = "Genetics"; - req_access_txt = "5; 68" + name = "Ward"; + req_access_txt = "5" }, -/obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bsv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bsw" = ( /obj/machinery/door/airlock/research{ name = "Robotics Lab"; @@ -27467,12 +27456,6 @@ "bsL" = ( /turf/open/floor/plasteel/white, /area/science/genetics) -"bsN" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) "bsO" = ( /obj/structure/bodycontainer/morgue, /turf/open/floor/plasteel/dark, @@ -27584,17 +27567,10 @@ }, /turf/open/floor/plasteel/white, /area/science/research) -"btk" = ( -/obj/structure/closet/wardrobe/white, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) "btl" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/chair/office/light{ - dir = 8 - }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "btm" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 2; @@ -27603,7 +27579,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/science/research) "btn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -27624,7 +27600,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/science/research) "btp" = ( /turf/open/floor/plating, /area/maintenance/starboard) @@ -27925,7 +27901,7 @@ /area/medical/medbay/central) "bua" = ( /turf/closed/wall, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bub" = ( /obj/machinery/light, /obj/item/radio/intercom{ @@ -27999,19 +27975,21 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bum" = ( /obj/machinery/holopad, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bun" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "buo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -28019,12 +27997,11 @@ /turf/open/floor/plasteel/white, /area/science/research) "buq" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plating, -/area/medical/genetics/cloning) +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "bur" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28046,7 +28023,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "buu" = ( /obj/machinery/vending/wardrobe/gene_wardrobe, /obj/structure/disposalpipe/segment, @@ -28062,7 +28039,7 @@ /obj/structure/cable, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "buy" = ( /obj/structure/disposalpipe/sorting/mail{ sortType = 23 @@ -28070,7 +28047,7 @@ /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/science/research) "buz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -28122,19 +28099,16 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/door/airlock/research{ - name = "Genetics Research Access"; - req_access_txt = "9" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, /obj/structure/cable, +/obj/machinery/door/airlock/medical{ + name = "Ward"; + req_access_txt = "5" + }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "buH" = ( /obj/machinery/door/airlock/research{ - name = "Genetics Research Access"; + name = "Research Access"; req_access_txt = "47" }, /obj/structure/disposalpipe/segment{ @@ -28143,9 +28117,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, /obj/structure/cable, /turf/open/floor/plasteel/white, /area/science/research) @@ -28172,7 +28143,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/science/research) "buM" = ( /obj/machinery/keycard_auth{ pixel_x = -24 @@ -28393,25 +28364,18 @@ /turf/open/floor/plasteel/white, /area/medical/sleeper) "bvn" = ( -/obj/machinery/shower{ - pixel_y = 18 +/obj/item/twohanded/required/kirbyplants/random, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/obj/structure/window/reinforced{ - dir = 4; - layer = 2.9 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/research/interior/clonestorage) +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "bvo" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/structure/chair, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bvp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -28423,44 +28387,29 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bvs" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, +/obj/effect/turf_decal/tile/blue, +/obj/structure/bedsheetbin, +/obj/structure/table, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bvt" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Cloning Storage"; - req_access_txt = "5; 9" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bvu" = ( /obj/effect/turf_decal/tile/blue, -/obj/structure/bed, -/obj/item/bedsheet/medical, +/obj/machinery/light{ + dir = 4 + }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bvw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bvx" = ( /turf/closed/wall/r_wall, /area/science/research) "bvy" = ( -/obj/machinery/camera{ - c_tag = "Genetics Research"; - dir = 1; - network = list("ss13","medbay") - }, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -28469,8 +28418,9 @@ dir = 4 }, /obj/effect/turf_decal/tile/blue, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bvz" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -28479,14 +28429,14 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/science/research) "bvA" = ( /obj/structure/sign/warning/securearea, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall/r_wall, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bvB" = ( /obj/machinery/camera{ c_tag = "Genetics Access"; @@ -28498,7 +28448,7 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/science/research) "bvC" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -28911,12 +28861,6 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"bwL" = ( -/obj/machinery/door/window/eastleft{ - name = "Cloning Recovery" - }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) "bwM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -29339,12 +29283,6 @@ /obj/structure/cable, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) -"bxX" = ( -/obj/machinery/door/window/eastright{ - name = "Cloning Recovery" - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/research/interior/clonestorage) "bxY" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29403,9 +29341,10 @@ /turf/open/floor/plasteel, /area/quartermaster/qm) "bye" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/r_wall, -/area/medical/genetics/cloning) +/obj/structure/closet/wardrobe/white, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "byf" = ( /turf/closed/wall/r_wall, /area/science/server) @@ -29920,52 +29859,33 @@ /turf/open/floor/plating, /area/maintenance/aft) "bzl" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/computer/cloning{ - dir = 1 - }, /obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bzm" = ( +/obj/effect/turf_decal/tile/blue, /obj/structure/table, -/obj/item/storage/box/rxglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/bodybags, -/obj/item/pen, +/obj/effect/spawner/lootdrop/donkpockets, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"bzm" = ( /obj/machinery/firealarm{ - pixel_y = -24 + dir = 1; + pixel_y = -26 }, +/obj/structure/closet/wardrobe/white, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"bzn" = ( /obj/machinery/camera{ - c_tag = "Genetics Cloning Lab"; + c_tag = "Ward Port"; dir = 1; network = list("ss13","medbay") }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, /obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bzn" = ( -/obj/machinery/dna_scannernew, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ +/obj/structure/chair{ dir = 8 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bzo" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -29974,8 +29894,9 @@ /obj/machinery/light_switch{ pixel_y = -28 }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bzs" = ( /turf/closed/wall, /area/maintenance/aft) @@ -49610,6 +49531,12 @@ }, /turf/open/floor/plasteel/white, /area/medical/chemistry) +"fUn" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "fXM" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -49759,7 +49686,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "gLd" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -50676,7 +50603,7 @@ /area/medical/pharmacy) "ljx" = ( /turf/closed/wall/r_wall, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "lqJ" = ( /obj/structure/table/wood, /obj/item/flashlight/lantern, @@ -51009,6 +50936,11 @@ }, /turf/open/floor/plasteel/white, /area/medical/chemistry) +"mYY" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "ndR" = ( /obj/structure/cable, /obj/machinery/photocopier, @@ -51435,6 +51367,18 @@ }, /turf/open/space/basic, /area/space) +"oYY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "oZc" = ( /obj/machinery/camera{ c_tag = "Chapel South"; @@ -51449,6 +51393,12 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"pdB" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/table, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "pfj" = ( /obj/machinery/power/apc{ areastring = "/area/storage/tools"; @@ -51925,7 +51875,7 @@ dir = 4 }, /turf/closed/wall/r_wall, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "quT" = ( /obj/structure/lattice, /obj/structure/grille/broken, @@ -52394,7 +52344,7 @@ "tiO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "tjy" = ( /obj/machinery/holopad, /obj/structure/disposalpipe/segment{ @@ -52474,6 +52424,11 @@ /obj/item/storage/toolbox/emergency, /turf/open/floor/plasteel, /area/hallway/primary/port) +"tsM" = ( +/obj/effect/turf_decal/tile/blue, +/obj/item/twohanded/required/kirbyplants/random, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "tti" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -52797,13 +52752,15 @@ /turf/open/floor/plasteel, /area/vacant_room/commissary) "uTM" = ( -/obj/machinery/clonepod, -/obj/structure/window/reinforced{ - dir = 4; - layer = 2.9 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/obj/effect/turf_decal/tile/blue, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "uUy" = ( /turf/open/floor/plasteel, /area/science/mixing) @@ -52874,7 +52831,7 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "vjm" = ( /obj/structure/sign/warning/biohazard, /turf/closed/wall/r_wall, @@ -53178,6 +53135,15 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"wIs" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/camera{ + c_tag = "Ward Starboard"; + dir = 8; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "wJU" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -53381,6 +53347,11 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/science/xenobiology) +"xzI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "xzN" = ( /obj/machinery/door/airlock/external{ name = "Common Mining Shuttle Bay" @@ -92500,10 +92471,10 @@ bfL boo bqQ bhg -bua +tiO bvn -bwL -bxX +fUn +fUn uTM bua bBJ @@ -92758,7 +92729,7 @@ bom bIq bri bsu -brc +fUn brc bvo bzl @@ -93015,7 +92986,7 @@ boq boq brj tiO -btk +bvn bum vhn bzn @@ -93272,7 +93243,7 @@ tiO tiO tiO tiO -brb +fUn bul vhn bzm @@ -93526,12 +93497,12 @@ bhm bla qsH bpH -bpH -bpH -tiO -tiO +fUn +fUn +brc +brc buq -bvt +vhn bye ljx bBN @@ -93786,7 +93757,7 @@ bpG bqZ brk bsv -bsv +xzI bun bvr bzo @@ -94041,12 +94012,12 @@ cTO qsH bpJ brc -bsN +brc brc btl but bvw -brc +pdB ljx bBP bCZ @@ -94296,11 +94267,11 @@ bkc bfS blo qsH -bpI -brb -bvs -brb -bvs +bpH +brc +brc +brc +brc gHL vhn bvs @@ -94554,11 +94525,11 @@ bfS cTO qsH bpL +mYY brc -bsN +mYY brc -bsN -gHL +oYY vhn brb ljx @@ -94813,8 +94784,8 @@ qsH bpK brd bvu -brd -bvu +wIs +tsM bux bvy ljx diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index df3cde8f456..f1a358db777 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -63568,10 +63568,6 @@ /obj/structure/bookcase/random/reference, /turf/open/floor/wood, /area/library) -"cnP" = ( -/obj/structure/bookcase/manuals/medical, -/turf/open/floor/wood, -/area/library) "cnQ" = ( /obj/structure/bookcase/manuals/engineering, /turf/open/floor/wood, @@ -90756,18 +90752,18 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/maintenance/department/medical/central) +/area/medical/chemistry) "dlV" = ( /turf/closed/wall, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dlW" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dlX" = ( /obj/structure/sign/departments/medbay/alt, /turf/closed/wall, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dlY" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, @@ -91216,62 +91212,52 @@ }, /area/maintenance/department/medical/central) "dnl" = ( -/obj/machinery/clonepod, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/status_display/evac{ - pixel_x = -32 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "dnm" = ( -/obj/machinery/computer/cloning, /obj/machinery/light{ dir = 1 }, /obj/structure/sign/warning/nosmoking{ pixel_y = 32 }, -/obj/effect/turf_decal/tile/purple{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/structure/closet/wardrobe/mixed, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dnn" = ( -/obj/machinery/dna_scannernew, /obj/machinery/airalarm{ pixel_y = 22 }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/structure/closet/wardrobe/mixed, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dno" = ( /obj/item/twohanded/required/kirbyplants/random, -/obj/effect/turf_decal/tile/purple{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dnp" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/tile/blue{ - dir = 4 + dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dnq" = ( /obj/structure/table/glass, /obj/item/storage/box/bodybags{ @@ -91280,27 +91266,25 @@ }, /obj/item/storage/box/bodybags, /obj/item/pen, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dnr" = ( /obj/structure/table/glass, /obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/medical/genetics/cloning"; dir = 1; - name = "Cloning Lab APC"; + name = "Ward APC"; pixel_y = 23 }, /obj/item/folder/white, -/obj/item/book/manual/wiki/medical_cloning, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dns" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/blue{ @@ -92283,32 +92267,14 @@ /turf/open/floor/plasteel, /area/maintenance/department/medical/central) "dpm" = ( -/obj/machinery/door/window/eastleft, -/obj/structure/mirror{ - pixel_x = -28 - }, -/obj/machinery/shower{ - dir = 4; - name = "emergency shower" - }, -/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{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) -"dpn" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) +"dpn" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "dpo" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -92320,8 +92286,8 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "dpp" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -92336,8 +92302,8 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "dpq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -92352,28 +92318,24 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "dpr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dps" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ - id_tag = "cloningfoyer"; - name = "Cloning Lab"; + name = "Ward"; req_access_txt = "5" }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -92385,7 +92347,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dpt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -92816,6 +92778,7 @@ dir = 8; pixel_y = 1 }, +/obj/item/toy/figure/geneticist, /turf/open/floor/plasteel/dark, /area/science/genetics) "dqn" = ( @@ -93148,6 +93111,9 @@ /area/hallway/primary/aft) "dqU" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -93200,31 +93166,22 @@ }, /area/maintenance/department/medical/central) "dqZ" = ( -/obj/machinery/door/window/eastright, /obj/machinery/status_display/ai{ pixel_x = -32 }, -/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/light/small{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) -"dra" = ( -/obj/effect/turf_decal/tile/purple{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) +"dra" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "drb" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -93239,8 +93196,8 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "drc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -93255,8 +93212,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "drd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -93272,8 +93231,8 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "dre" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -93288,25 +93247,21 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "drf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "drg" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - id_tag = "cloningfoyer"; - name = "Cloning Lab"; - req_access_txt = "5" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -93316,8 +93271,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/door/airlock/medical/glass{ + name = "Ward"; + req_access_txt = "5" + }, /turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "drh" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -93863,96 +93822,57 @@ /area/maintenance/department/medical/central) "dsp" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/maintenance/department/medical/central) "dsq" = ( -/obj/structure/cable, /turf/open/floor/plating, /area/maintenance/department/medical/central) "dsr" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/blue, -/obj/structure/cable, /turf/open/floor/plasteel, /area/maintenance/department/medical/central) "dss" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/blue, -/obj/machinery/power/apc/auto_name/south, -/obj/structure/cable, +/obj/structure/girder, /turf/open/floor/plasteel, /area/maintenance/department/medical/central) "dst" = ( -/obj/structure/window/reinforced{ - dir = 4 +/obj/machinery/camera{ + c_tag = "Medbay - Ward"; + dir = 4; + name = "medbay camera"; + network = list("ss13","medbay") }, -/obj/item/radio/intercom{ - pixel_x = -26 - }, -/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/plasteel/dark, -/area/medical/genetics/cloning) -"dsu" = ( -/obj/structure/closet/secure_closet/personal/patient, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/structure/closet/wardrobe/pjs, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dsv" = ( -/obj/structure/closet/crate/freezer/surplus_limbs, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dsw" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dsx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dsy" = ( -/obj/item/twohanded/required/kirbyplants/random, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dsz" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 7; - pixel_y = -26 +/obj/machinery/light{ + dir = 4 }, -/obj/machinery/light, -/obj/machinery/light_switch{ - pixel_x = 7; - pixel_y = -38 +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/machinery/camera{ - c_tag = "Medbay - Cloning Lab"; - dir = 1; - name = "medbay camera"; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/tile/purple, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dsA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/purple{ @@ -94429,44 +94349,20 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "dtA" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Genetics Desk Maintenance"; - req_access_txt = "9" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/structure/cable, -/turf/open/floor/plasteel, +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder, +/turf/open/floor/plating, /area/maintenance/department/medical/central) "dtB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, /area/maintenance/department/medical/central) "dtC" = ( /turf/closed/wall/r_wall, -/area/medical/genetics/cloning) -"dtD" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/medical/genetics/cloning) -"dtE" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Cloning Storage"; - req_access_txt = "9, 5" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dtG" = ( /obj/machinery/power/apc{ areastring = "/area/medical/medbay/central"; @@ -95130,131 +95026,57 @@ "dvb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dvc" = ( -/turf/closed/wall, -/area/medical/genetics) +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/donkpockets, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/medical/central) "dvd" = ( -/obj/item/twohanded/required/kirbyplants/random, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 }, -/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/medical/genetics) -"dve" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/maintenance/department/medical/central) "dvf" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, /obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/medical/central) "dvg" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/department/medical/central) "dvh" = ( -/obj/structure/table/glass, -/obj/item/storage/box/beakers{ - pixel_x = 3; - pixel_y = 3 +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plating{ + icon_state = "platingdmg3" }, -/obj/item/storage/box/masks, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/maintenance/department/medical/central) "dvi" = ( /obj/machinery/status_display/evac, /turf/closed/wall/r_wall, -/area/medical/genetics/cloning) -"dvj" = ( -/obj/item/radio/intercom{ - pixel_y = 26 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/structure/bed, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dvk" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/closet/secure_closet/personal/patient{ - anchored = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dvm" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/structure/bed, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dvn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dvo" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/structure/closet/secure_closet/personal/patient{ - anchored = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dvp" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/structure/bed, +/obj/structure/closet/secure_closet/personal/patient, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dvq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "geneticslab"; - name = "Genetics Lab Shutters" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dvr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -95917,34 +95739,20 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 1; - name = "Genetics Junction"; - sortType = 23 +/obj/structure/disposalpipe/junction{ + dir = 1 }, -/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dwG" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Cloning Desk"; - req_access_txt = "9, 5" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/genetics) +/turf/closed/wall, +/area/maintenance/department/medical/central) "dwH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -95952,9 +95760,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/genetics) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/medical/central) "dwI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -95962,11 +95772,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder, +/turf/open/floor/plating{ + icon_state = "platingdmg3" }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/maintenance/department/medical/central) "dwJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -95985,8 +95796,9 @@ dir = 8 }, /obj/structure/cable, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/maintenance/department/medical/central) "dwK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -96002,33 +95814,24 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/maintenance/department/medical/central) "dwL" = ( -/obj/structure/table/glass, -/obj/item/clipboard, -/obj/item/toy/figure/geneticist, -/obj/machinery/power/apc{ - areastring = "/area/medical/genetics"; - dir = 4; - name = "Genetics Lab APC"; - pixel_x = 24 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel, +/area/maintenance/department/medical/central) "dwM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall/r_wall, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dwN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -96036,37 +95839,23 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dwO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dwP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dwQ" = ( -/obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dwR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dwS" = ( -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dwT" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dwV" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -96635,31 +96424,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"dyi" = ( -/obj/structure/table/glass, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/folder/white, -/obj/item/storage/box/disks, -/obj/machinery/camera{ - c_tag = "Medbay - Genetics Desk"; - dir = 4; - name = "medbay camera"; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) "dyj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ @@ -96676,8 +96440,11 @@ dir = 8 }, /obj/structure/cable, -/turf/open/floor/plasteel, -/area/medical/genetics) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/medical/central) "dyk" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -96695,9 +96462,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/maintenance/department/medical/central) "dyl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -96705,15 +96472,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/department/medical/central) "dym" = ( -/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -96726,15 +96488,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/structure/cable, -/obj/machinery/door/airlock/research{ - name = "Cloning Storage"; - req_access_txt = "9, 5" +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Ward Maintenance"; + req_access_txt = "5" }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dyn" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -96745,9 +96506,8 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dyo" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -96755,61 +96515,33 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dyp" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/secure_closet/personal/patient{ - anchored = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dyq" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/bed, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dyr" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dys" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/structure/closet/secure_closet/personal/patient{ - anchored = 1 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"dyv" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/medbay/zone2) "dyw" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -97456,48 +97188,21 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"dzM" = ( -/obj/structure/sign/departments/science{ - pixel_x = 32; - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) "dzN" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "geneticsdesk"; - name = "Genetics Desk Shutters" - }, -/obj/machinery/door/window/westright{ - dir = 4; - name = "Cloning Desk"; - req_access_txt = "9" - }, -/obj/machinery/door/window/westright{ - name = "Cloning Desk" - }, -/obj/item/folder/white, -/obj/item/pen, -/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/two, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/maintenance/department/medical/central) "dzO" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/maintenance/department/medical/central) "dzP" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -97513,8 +97218,9 @@ dir = 8 }, /obj/structure/cable, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/medical/genetics) +/area/maintenance/department/medical/central) "dzQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -97529,31 +97235,30 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"dzR" = ( -/obj/item/twohanded/required/kirbyplants/random, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"dzS" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "geneticslab"; - name = "Genetics Lab Shutters" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" }, -/turf/open/floor/plating, -/area/medical/genetics/cloning) +/area/maintenance/department/medical/central) +"dzR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/medical/central) "dzV" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dzY" = ( /obj/structure/disposalpipe/segment, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dAa" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ @@ -97967,65 +97672,39 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/science/robotics/lab) -"dAQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "geneticsdesk"; - name = "Genetics Desk Shutters" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/medical/genetics) "dAR" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/button/door{ - id = "geneticsdesk"; - name = "Genetics Desk Shutters"; - pixel_x = -26; - pixel_y = -26; - req_access_txt = "9" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" }, -/obj/structure/noticeboard{ - dir = 1; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/maintenance/department/medical/central) "dAS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, /obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/department/medical/central) "dAT" = ( /obj/item/radio/intercom{ pixel_y = -26 }, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/medical/central) "dAU" = ( -/obj/machinery/vending/wardrobe/gene_wardrobe, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/medical/central) "dAV" = ( /obj/machinery/status_display/ai, /turf/closed/wall/r_wall, -/area/medical/genetics/cloning) -"dAW" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/bed, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dAX" = ( /obj/structure/sign/warning/nosmoking{ pixel_y = -32 @@ -98037,7 +97716,7 @@ anchored = 1 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dAY" = ( /obj/structure/extinguisher_cabinet{ pixel_y = -32 @@ -98049,7 +97728,7 @@ anchored = 1 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dBa" = ( /obj/structure/mirror{ pixel_y = -33 @@ -98059,7 +97738,7 @@ }, /obj/machinery/light, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dBb" = ( /obj/machinery/newscaster{ pixel_y = -32 @@ -98072,27 +97751,22 @@ }, /obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dBc" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ dir = 8 }, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/genetics/cloning) +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "dBd" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "geneticslab"; - name = "Genetics Lab Shutters" - }, /obj/structure/sign/warning/electricshock{ pixel_y = -32 }, -/obj/structure/cable, /turf/open/floor/plating, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "dBe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/sign/poster/official/do_not_question{ @@ -114288,6 +113962,13 @@ "inw" = ( /turf/closed/wall, /area/maintenance/department/medical/central) +"iqc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "itc" = ( /obj/structure/lattice/catwalk, /obj/structure/disposalpipe/segment{ @@ -114400,6 +114081,14 @@ }, /turf/open/floor/plasteel, /area/medical/surgery/room_b) +"jac" = ( +/obj/machinery/power/apc/auto_name/east, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plating, +/area/maintenance/department/medical/central) "jdO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -116188,10 +115877,6 @@ }, /turf/open/floor/plasteel, /area/engine/gravity_generator) -"tHN" = ( -/obj/machinery/firealarm, -/turf/closed/wall/r_wall, -/area/medical/genetics/cloning) "tMk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -116278,6 +115963,11 @@ /obj/structure/cable, /turf/open/floor/plasteel/white, /area/medical/surgery/room_b) +"uqb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder, +/turf/open/floor/plasteel, +/area/maintenance/department/medical/central) "uCc" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 4; @@ -116447,6 +116137,10 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/storage_shared) +"vEx" = ( +/obj/machinery/firealarm, +/turf/closed/wall, +/area/medical/medbay/zone2) "vFc" = ( /turf/closed/wall, /area/medical/surgery/room_b) @@ -116760,6 +116454,12 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"xFp" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "xHZ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -148859,7 +148559,7 @@ chS cjt ckR cms -cnP +cqN cpu cqP cmt @@ -156096,7 +155796,7 @@ dtz dvb dwF dyh -dzM +dvb dvb dCx dDH @@ -156350,11 +156050,11 @@ dpg inw inw inw -dvc +inw dwG -dvc -din -dgR +inw +inw +inw dCy dCy dCy @@ -156601,17 +156301,17 @@ dcM dgU dip dba -inw +dcM dng dph dqU dso -inw +uqb dvd dwH dvc dzN -dAQ +dzR dCy dDI dER @@ -156858,15 +156558,15 @@ dfw dgV diq dkg -inw +dcM dnh dpi dqV dsp -inw -dve +dsp +dsp dwI -dyi +uqb dzO dAR dCy @@ -157115,7 +156815,7 @@ den dgW dir dkh -inw +dcM dni dpj dqW @@ -157629,12 +157329,12 @@ dfy dgY den dkj -inw +dcM dnk dpl dqY dss -inw +jac dvh dwL dyl @@ -157886,16 +157586,16 @@ dcS dgZ dcS dkk +dcM dlV dlV dlV -dlV -dlV +vEx dtC dvi dwM dym -dzS +dtC dAV dCB tGU @@ -158143,17 +157843,17 @@ dfz dha dit dkl -dlV +dcM dnl dpm dqZ dst -dtC -dvj +iqc +dpm dwN dyn dsw -dAW +dpm dCB dDN dEW @@ -158400,16 +158100,16 @@ dcM dhb diu dkm -dlV +dcM dnm dpn dra -dsu -dtC -dvk +dpn +dra +dpn dwO dyo -dwS +dra dAX dCB tGU @@ -158661,9 +158361,9 @@ dlV dnn dpo drb -dsv -tHN -dvo +dpn +dpn +dpn dwP dyp dzV @@ -158918,13 +158618,13 @@ dlW dno dpo drc -dsw -dtD -dvm -dwQ -dyq -dwS -dAW +dpn +dra +dpn +dra +dyo +dra +dpm dCB dDP dEX @@ -159176,11 +158876,11 @@ dnp dpp drd dsx -dtE -dvn -dwR +dsx +dsx +dsx dyr -dwS +dpn dBa dCB dDQ @@ -159432,10 +159132,10 @@ dlW dnq dpq dre -dsy -dtD -dvo -dwS +dpn +dra +dpn +dra dys dzY dBb @@ -159690,11 +159390,11 @@ dnr dpr drf dsz -dtC +xFp +dvp +dvp dvp -dwT dvp -dwT dBc dCC dDR @@ -159948,10 +159648,10 @@ dps drg dlW dtC -dvq -dvq -dvq -dvq +dlW +dlW +dlW +dlW dBd dCC dDS @@ -160207,7 +159907,7 @@ dsA dtG dsA dwV -dyv +dwV dsA dBe dCD diff --git a/_maps/map_files/Donutstation/Donutstation.dmm b/_maps/map_files/Donutstation/Donutstation.dmm index 859f8a96992..6510f4ace14 100644 --- a/_maps/map_files/Donutstation/Donutstation.dmm +++ b/_maps/map_files/Donutstation/Donutstation.dmm @@ -11787,14 +11787,14 @@ /area/medical/storage) "aFN" = ( /turf/closed/wall, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aFO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aFR" = ( /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aFT" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -11888,21 +11888,25 @@ /turf/open/floor/plasteel/white, /area/medical/storage) "aGf" = ( -/obj/machinery/dna_scannernew, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 }, +/obj/structure/bodycontainer/morgue{ + dir = 2 + }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aGg" = ( -/obj/machinery/computer/cloning, +/obj/structure/bodycontainer/morgue{ + dir = 2 + }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aGh" = ( -/obj/machinery/clonepod, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aGk" = ( /obj/structure/bed/roller, /obj/effect/turf_decal/bot, @@ -11973,7 +11977,7 @@ /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aGx" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -11991,7 +11995,7 @@ /obj/structure/disposalpipe/segment, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aGB" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -12013,7 +12017,7 @@ /obj/structure/disposalpipe/segment, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aGE" = ( /turf/closed/wall/r_wall, /area/medical/virology) @@ -12046,14 +12050,14 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aGK" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aGL" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -12065,26 +12069,18 @@ /area/medical/medbay/central) "aGM" = ( /obj/structure/table, -/obj/item/book/manual/wiki/medical_cloning{ - pixel_y = 6 - }, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 }, -/obj/machinery/requests_console{ - department = "Genetics"; - name = "Genetics Requests Console"; - pixel_y = -30 - }, /obj/machinery/camera{ - c_tag = "Medical - Cloning Bay"; + c_tag = "Medical - Corpse Disposal"; dir = 1; network = list("ss13","Medical") }, -/obj/item/toy/figure/geneticist, +/obj/item/storage/box/bodybags, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aGN" = ( /obj/structure/table, /obj/item/storage/box/donkpockets{ @@ -12443,8 +12439,9 @@ /area/medical/genetics) "aIa" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aIc" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -15354,12 +15351,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/maintenance/starboard) -"aQD" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) "aQE" = ( /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance, @@ -17817,7 +17808,7 @@ "aXy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "aXz" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -20531,7 +20522,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "bey" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -20544,12 +20535,8 @@ /area/medical/virology) "beA" = ( /obj/machinery/door/airlock/medical/glass{ - id_tag = "GeneticsDoor"; - name = "Genetics"; - req_access_txt = "5; 68" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 + name = "Corpse Disposal"; + req_access_txt = "5" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20559,7 +20546,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "beB" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -21986,6 +21973,10 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/item/toy/figure/geneticist{ + pixel_x = -6; + pixel_y = 3 + }, /turf/open/floor/plasteel/white, /area/medical/genetics) "bhV" = ( @@ -37105,12 +37096,6 @@ /obj/structure/closet/crate{ name = "Surplus Genetics Supplies" }, -/obj/item/book/manual/wiki/medical_cloning{ - pixel_y = 6 - }, -/obj/item/book/manual/wiki/medical_cloning{ - pixel_y = 6 - }, /obj/item/storage/box/rxglasses, /obj/item/storage/box/rxglasses, /turf/open/floor/plating, @@ -39363,7 +39348,7 @@ dir = 4 }, /turf/closed/wall, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "cbJ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 @@ -39372,7 +39357,7 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "cbK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 @@ -39382,7 +39367,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "cbL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 @@ -39392,7 +39377,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "cbM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 @@ -39460,7 +39445,7 @@ pixel_y = -32 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "cbS" = ( /obj/structure/closet/wardrobe/white, /obj/structure/disposalpipe/segment{ @@ -39470,7 +39455,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "cbT" = ( /obj/machinery/door/airlock/maintenance{ req_one_access_txt = "12;22;25;26;28;35;37;38;46" @@ -46599,6 +46584,10 @@ /obj/structure/cable, /turf/open/floor/plasteel, /area/security/processing) +"oLR" = ( +/obj/effect/landmark/start/geneticist, +/turf/open/floor/plasteel/white, +/area/medical/genetics) "oMf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/binary/pump{ @@ -47230,8 +47219,7 @@ "pYp" = ( /obj/structure/table, /obj/machinery/power/apc{ - areastring = "/area/medical/genetics/cloning"; - name = "Cloning Bay APC"; + name = "Corpse Disposal APC"; pixel_y = -23 }, /obj/structure/window/reinforced{ @@ -47243,7 +47231,7 @@ name = "Why can't I hold all these corpses? - Proper Corpse Disposal 101" }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/zone2) "pZA" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 5 @@ -74462,12 +74450,12 @@ aBe aJE bLU aKp -aBU +oLR aGn bhT aFO aGg -aQD +aFR cbK pYp aGR diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 4456001bb9c..c3b5dea38f4 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -6097,7 +6097,7 @@ dir = 8 }, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "ajZ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -6297,7 +6297,7 @@ /obj/structure/flora/junglebush/b, /obj/structure/flora/ausbushes/ppflowers, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "akr" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -8124,7 +8124,7 @@ /obj/effect/turf_decal/tile/neutral, /obj/structure/closet/secure_closet/personal/patient, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "ane" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -9930,7 +9930,7 @@ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "apX" = ( /turf/closed/wall/rust, /area/maintenance/central) @@ -10146,7 +10146,7 @@ /obj/structure/bed, /obj/item/bedsheet/medical, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aqp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, @@ -10469,7 +10469,7 @@ /obj/structure/cable, /obj/structure/closet/secure_closet/personal/patient, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aqQ" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -11531,7 +11531,7 @@ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "ast" = ( /obj/structure/chair/pew/left{ dir = 8 @@ -12428,7 +12428,7 @@ }, /obj/structure/cable, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "atN" = ( /obj/structure/flora/tree/jungle/small, /obj/structure/disposalpipe/segment{ @@ -12436,7 +12436,7 @@ }, /obj/structure/cable, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "atO" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -12465,7 +12465,7 @@ }, /obj/structure/cable, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "atR" = ( /obj/structure/flora/grass/jungle, /obj/structure/flora/ausbushes/fernybush, @@ -12475,11 +12475,11 @@ }, /obj/structure/cable, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "atS" = ( /obj/structure/cable, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "atT" = ( /turf/closed/wall/r_wall, /area/bridge) @@ -12905,7 +12905,7 @@ /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "auB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ @@ -13482,7 +13482,7 @@ }, /obj/structure/cable, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "avy" = ( /obj/structure/table/wood, /obj/item/clipboard, @@ -13516,7 +13516,7 @@ /obj/effect/turf_decal/delivery, /obj/structure/cable, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "avC" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -13542,7 +13542,7 @@ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "avD" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -13604,7 +13604,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "avH" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/delivery, @@ -13637,7 +13637,7 @@ /obj/structure/bed, /obj/item/bedsheet/medical, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "avJ" = ( /obj/machinery/door/firedoor, /obj/machinery/light/small{ @@ -13674,7 +13674,7 @@ dir = 4 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "avM" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral{ @@ -14554,7 +14554,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "awZ" = ( /turf/closed/wall/rust, /area/security/checkpoint/engineering) @@ -14586,7 +14586,6 @@ /obj/structure/disposalpipe/junction/yjunction{ dir = 4 }, -/obj/structure/cable, /turf/open/floor/plasteel/dark, /area/medical/morgue) "axe" = ( @@ -15887,12 +15886,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/machinery/door/airlock/medical/glass{ - name = "Cloning Storage"; - req_access_txt = "5; 9; 68" + name = "Ward"; + req_access_txt = "5" }, /obj/structure/cable, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "azg" = ( /obj/structure/table, /obj/item/hand_labeler, @@ -15913,7 +15912,6 @@ pixel_y = 2 }, /obj/structure/disposalpipe/segment, -/obj/structure/cable, /turf/open/floor/plasteel/dark, /area/medical/morgue) "azi" = ( @@ -16461,7 +16459,6 @@ req_access_txt = "5" }, /obj/structure/disposalpipe/segment, -/obj/structure/cable, /turf/open/floor/plasteel/dark, /area/medical/morgue) "aAa" = ( @@ -16970,9 +16967,8 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/structure/cable, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aAL" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -17012,20 +17008,14 @@ dir = 1 }, /obj/structure/closet/secure_closet/personal/patient, -/obj/machinery/power/apc/unlocked{ - areastring = "/area/medical/genetics/cloning"; - dir = 4; - name = "Cloning Lab APC"; - pixel_x = 24 - }, /obj/machinery/camera{ - c_tag = "Cloning Lab"; + c_tag = "Medbay Aux Storage"; name = "medical camera"; network = list("ss13","medical") }, -/obj/structure/cable, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aAP" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -17209,7 +17199,7 @@ "aBi" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aBj" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -17451,12 +17441,12 @@ dir = 8 }, /obj/effect/turf_decal/bot, -/obj/machinery/computer/cloning, /obj/item/radio/intercom{ pixel_y = 22 }, +/obj/structure/closet/wardrobe/pjs, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aBB" = ( /obj/structure/flora/grass/jungle, /obj/structure/beebox, @@ -18194,15 +18184,11 @@ dir = 8 }, /obj/machinery/door/airlock/medical/glass{ - id_tag = "CloningDoor"; - name = "Cloning Lab"; - req_access_txt = "5;68" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 + name = "Storage"; + req_access_txt = "5" }, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aCJ" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/blood/old, @@ -19575,7 +19561,7 @@ pixel_x = -23 }, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "aFc" = ( /turf/open/floor/engine/co2, /area/engine/atmos) @@ -19786,7 +19772,7 @@ dir = 4 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aFu" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ @@ -19824,7 +19810,7 @@ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aFy" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -22636,7 +22622,7 @@ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aJV" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -23331,7 +23317,7 @@ "aKV" = ( /obj/structure/flora/junglebush/c, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "aKW" = ( /obj/effect/turf_decal/bot, /obj/machinery/holopad, @@ -24033,7 +24019,7 @@ /obj/structure/bed, /obj/item/bedsheet/medical, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aMe" = ( /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ @@ -24405,16 +24391,13 @@ /area/engine/atmos) "aME" = ( /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, /obj/machinery/door/airlock/medical{ - name = "Cloning Lab"; - req_access_txt = "5;68" + name = "Storage"; + req_access_txt = "5" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aMF" = ( /obj/machinery/button/ignition{ id = "Incinerator"; @@ -24964,9 +24947,6 @@ /obj/structure/cable, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"aNt" = ( -/turf/closed/wall/r_wall/rust, -/area/medical/genetics/cloning) "aNu" = ( /turf/closed/wall, /area/medical/morgue) @@ -24975,10 +24955,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/delivery, -/obj/machinery/clonepod, +/obj/effect/turf_decal/bot, +/obj/structure/closet/wardrobe/pjs, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aNw" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -25087,9 +25067,6 @@ /obj/structure/cable, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"aNH" = ( -/turf/closed/wall/r_wall, -/area/medical/genetics/cloning) "aNI" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -25102,17 +25079,12 @@ pixel_x = -4; pixel_y = 4 }, -/obj/item/book/manual/wiki/medical_cloning{ - pixel_x = 4; - pixel_y = 6 - }, /obj/item/crowbar, -/obj/item/paper/guides/jobs/medical/cloning, /obj/machinery/light{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aNK" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -25133,9 +25105,6 @@ /obj/structure/cable, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"aNL" = ( -/turf/closed/wall, -/area/medical/genetics/cloning) "aNM" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -25152,17 +25121,10 @@ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aNN" = ( /turf/closed/wall/r_wall/rust, /area/medical/morgue) -"aNO" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/genetics/cloning) -"aNP" = ( -/turf/closed/wall/rust, -/area/medical/genetics/cloning) "aNQ" = ( /turf/closed/wall, /area/medical/cryo) @@ -25179,7 +25141,7 @@ /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aNT" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 9 @@ -25236,7 +25198,7 @@ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aNW" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -25294,11 +25256,11 @@ "aOa" = ( /obj/structure/flora/junglebush/b, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "aOb" = ( /obj/structure/flora/junglebush/large, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "aOc" = ( /obj/structure/flora/ausbushes/sparsegrass, /obj/structure/flora/ausbushes/grassybush, @@ -25307,7 +25269,7 @@ dir = 9 }, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "aOd" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -25434,7 +25396,7 @@ /obj/structure/bed, /obj/item/bedsheet/medical, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aOm" = ( /obj/item/toy/beach_ball{ pixel_y = 6 @@ -25443,7 +25405,7 @@ dir = 4 }, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "aOn" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -25501,7 +25463,7 @@ dir = 4 }, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "aOr" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -25621,7 +25583,7 @@ /obj/structure/bed, /obj/item/bedsheet/medical, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aOy" = ( /obj/machinery/door/airlock/maintenance{ name = "bar maintenance"; @@ -25698,12 +25660,12 @@ dir = 10 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aOC" = ( /obj/structure/flora/grass/jungle, /obj/structure/flora/ausbushes/lavendergrass, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "aOD" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/turf_decal/box/corners{ @@ -25724,7 +25686,7 @@ pixel_y = 5 }, /turf/open/floor/grass, -/area/medical/genetics/cloning) +/area/medical/storage) "aOF" = ( /obj/machinery/door/firedoor/heavy, /obj/effect/turf_decal/caution/stand_clear, @@ -25750,7 +25712,7 @@ dir = 8 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aOH" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -25773,7 +25735,7 @@ dir = 8 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aOI" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -25786,7 +25748,7 @@ }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aOJ" = ( /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ @@ -25812,7 +25774,7 @@ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aOM" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -26095,7 +26057,7 @@ dir = 6 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aPe" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -26112,7 +26074,7 @@ /obj/structure/bed, /obj/item/bedsheet/medical, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aPf" = ( /turf/closed/wall/rust, /area/medical/virology) @@ -26226,7 +26188,7 @@ dir = 8 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aPo" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -26275,8 +26237,9 @@ pixel_y = -26 }, /obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aPs" = ( /obj/structure/table, /obj/effect/turf_decal/tile/neutral, @@ -26322,7 +26285,7 @@ /obj/structure/bed, /obj/item/bedsheet/medical, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aPv" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -26489,7 +26452,7 @@ /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aPH" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -26612,7 +26575,7 @@ dir = 8 }, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aPP" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -26779,11 +26742,11 @@ /obj/structure/plasticflaps/opaque, /obj/effect/turf_decal/delivery, /obj/machinery/door/window/northleft{ - name = "Cloning Delivery Access"; + name = "Medbay Storage Access"; req_access_txt = "50" }, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aPY" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -30843,10 +30806,6 @@ /obj/effect/landmark/xeno_spawn, /turf/open/floor/engine/n2o, /area/engine/atmos) -"aVH" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall, -/area/medical/genetics/cloning) "aVI" = ( /obj/effect/turf_decal/delivery, /obj/machinery/suit_storage_unit/cmo, @@ -30873,12 +30832,12 @@ dir = 8 }, /obj/effect/turf_decal/bot, -/obj/machinery/dna_scannernew, /obj/machinery/airalarm{ pixel_y = 24 }, +/obj/structure/closet/secure_closet/personal/patient, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aVL" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -31008,11 +30967,11 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aVU" = ( /obj/structure/sign/departments/medbay/alt, /turf/closed/wall, -/area/medical/genetics/cloning) +/area/medical/storage) "aVV" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -31194,7 +31153,7 @@ /obj/structure/bed, /obj/item/bedsheet/medical, /turf/open/floor/plasteel/showroomfloor, -/area/medical/genetics/cloning) +/area/medical/storage) "aWg" = ( /obj/structure/bodycontainer/morgue{ dir = 8 @@ -31286,7 +31245,7 @@ pixel_y = 32 }, /turf/open/floor/plating, -/area/medical/genetics/cloning) +/area/medical/storage) "aWn" = ( /obj/structure/chair/sofa/right{ color = "#c45c57"; @@ -31312,8 +31271,9 @@ dir = 1 }, /obj/machinery/vending/clothing, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/area/medical/storage) "aWp" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ @@ -111673,11 +111633,11 @@ cxf cxw aar apY -aNL -aNL +aOZ +aOZ atL -aNP -aNL +aPy +aOZ aPA azU aAE @@ -111930,7 +111890,7 @@ cxf cxw cxN apZ -aNL +aOZ ajY atM aFb @@ -112187,7 +112147,7 @@ cwp cxx cxG aqa -aNP +aPy aOa atN aOC @@ -112444,7 +112404,7 @@ cwp cwq cwy aqb -aNL +aOZ aOb atQ aOE @@ -112701,7 +112661,7 @@ cwq cwp anP aqe -aNL +aOZ akq atR avx @@ -112958,11 +112918,11 @@ bgN cwp anQ ail -aNt +aPa aWm -aNO +aPx avB -aNO +aPx aPA abl agH @@ -113214,13 +113174,13 @@ ajI alb cwq anR -aNH -aNH +aPc +aPc aOl aPe avC aNM -aNO +aPx aNR aOj aOp @@ -113471,13 +113431,13 @@ cvv cvJ amh anV -aNH +aPc and apW aBi avG aNS -aNL +aOZ aOe aJW aOh @@ -113728,13 +113688,13 @@ cvk czM cwy anW -aNt +aPa and aqo aMd avI auA -aNP +aPy aOd aNT aPh @@ -113985,7 +113945,7 @@ arT cxA czL anX -aNt +aPa aqP ass atS @@ -114242,13 +114202,13 @@ cvI cxB cwp ajv -aNH -aNH +aPc +aPc aOx aPu aWf aNV -aNO +aPx aFr aNY aOv @@ -114505,12 +114465,12 @@ aNN asi aVj asi -aNH -aVH -aNO +aPc +aOW +aPx aCI -aNL -aNL +aOZ +aOZ aQd aQC aNn @@ -114762,12 +114722,12 @@ aVY aWe aIB aWu -aNL +aOZ aNv aOH aOB aJU -aNO +aPx aQh aQX aQb @@ -115019,12 +114979,12 @@ asv atU avT aWv -aNL +aOZ aBA aOI aOG aWo -aNP +aPy cJJ pSI aNn @@ -115276,12 +115236,12 @@ aVZ aWg avW aWw -aNP +aPy aVK aOK aFt aPr -aNL +aOZ aYB aYB aNn @@ -115533,8 +115493,8 @@ aWb aWh avX aWz -aNL -aNL +aOZ +aOZ aPd aFx aPG @@ -116306,10 +116266,10 @@ arM avK aWF aNu -aNL -aNP -aNL -aNL +aOZ +aPy +aOZ +aOZ aSx aQt aQr diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index bc337508006..d0048c09749 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -55468,6 +55468,16 @@ /mob/living/carbon/monkey, /turf/open/floor/grass, /area/science/genetics) +"cuu" = ( +/obj/machinery/camera{ + c_tag = "Morgue Fore"; + network = list("ss13","medbay") + }, +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) "cuv" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -55748,74 +55758,43 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"cvt" = ( -/turf/closed/wall, -/area/medical/genetics/cloning) "cvu" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/machinery/door/window/southleft{ - name = "Cloning Shower" - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/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{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/white, +/area/medical/medbay/aft) "cvv" = ( -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Cloning Shower" - }, -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "sink"; - pixel_y = 28 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plasteel/white, +/area/medical/medbay/aft) "cvw" = ( -/obj/machinery/clonepod{ - pixel_y = 2 - }, /obj/item/radio/intercom{ pixel_x = 29 }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/obj/effect/turf_decal/tile/blue, +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/white, +/area/medical/medbay/aft) "cvx" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/open/floor/grass, @@ -56144,58 +56123,34 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/aft) "cwv" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/light_switch{ - pixel_x = -23 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cww" = ( -/obj/effect/landmark/start/geneticist, /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cwx" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, -/obj/machinery/computer/cloning{ - dir = 8 - }, /obj/machinery/light{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cwF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/firealarm{ @@ -56480,7 +56435,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cxm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -56491,8 +56446,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cxn" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -56501,16 +56457,15 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cxo" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/dna_scannernew, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cxp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -56712,16 +56667,12 @@ "cxY" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ - id_tag = "CloningDoor"; - name = "Cloning Lab"; - req_access_txt = "5; 68" + name = "Storage"; + req_access_txt = "5" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -56734,7 +56685,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cxZ" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -56744,12 +56695,12 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cya" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cyb" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -56757,7 +56708,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cyc" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -57073,30 +57024,19 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cyW" = ( -/obj/effect/landmark/start/geneticist, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cyX" = ( -/obj/machinery/power/apc/unlocked{ - areastring = "/area/medical/genetics/cloning"; - dir = 4; - name = "Cloning Lab APC"; - pixel_x = 24 - }, /obj/machinery/camera{ - c_tag = "Genetics Cloning Lab"; + c_tag = "Medbay Aux Storage"; dir = 8; network = list("ss13","medbay") }, @@ -57104,12 +57044,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cyY" = ( /obj/structure/bodycontainer/morgue, /obj/machinery/light/small{ @@ -57447,15 +57384,10 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/aft) "czX" = ( -/obj/item/book/manual/wiki/medical_cloning{ - pixel_y = 6 - }, -/obj/item/paper, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 }, -/obj/structure/table/glass, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -57466,17 +57398,18 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/aft) "czY" = ( -/obj/item/storage/box/rxglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/bodybags, -/obj/item/pen, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/table/glass, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -57487,8 +57420,13 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/aft) "czZ" = ( /obj/structure/closet/secure_closet/personal/patient, /obj/machinery/airalarm{ @@ -57505,8 +57443,15 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/aft) "cAh" = ( /obj/machinery/airalarm{ dir = 4; @@ -57885,7 +57830,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, -/area/medical/genetics/cloning) +/area/medical/medbay/aft) "cBd" = ( /obj/structure/sign/directions/evac, /turf/closed/wall, @@ -58678,6 +58623,11 @@ /obj/item/radio/intercom{ pixel_x = 29 }, +/obj/machinery/camera{ + c_tag = "Morgue Aft"; + dir = 8; + network = list("ss13","medbay") + }, /turf/open/floor/plasteel/dark, /area/medical/morgue) "cCZ" = ( @@ -67341,16 +67291,6 @@ icon_state = "wood-broken6" }, /area/maintenance/port/aft) -"dbr" = ( -/obj/machinery/camera{ - c_tag = "Morgue"; - network = list("ss13","medbay") - }, -/obj/structure/bodycontainer/morgue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) "dbs" = ( /obj/machinery/light/small{ dir = 8 @@ -99880,13 +99820,13 @@ cmu csw cmu cmu -cvt -cvt +cxU +cxU cxl cxY -cvt -cvt -cvt +cxU +cxU +cxU cxU cCQ cDT @@ -100143,7 +100083,7 @@ cxm cxZ cyV czX -cvt +cxU cCb cCR cDU @@ -100657,7 +100597,7 @@ cxo cyb cyX czZ -cvt +cxU cCd cCT cDW @@ -101935,7 +101875,7 @@ uGS uGS csD cCe -dbr +cuu cCj tFJ acl @@ -101943,7 +101883,7 @@ cCj tFJ tFJ cCj -dbr +tFJ tFJ dDC tFJ diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index bbc849c80ee..dbe222442f5 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -24468,7 +24468,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Genetics Cloning Foyer"; + c_tag = "Ward Access"; network = list("ss13","medbay") }, /obj/machinery/atmospherics/components/unary/vent_pump/on, @@ -25333,12 +25333,12 @@ /area/maintenance/department/engine) "bnv" = ( /turf/closed/wall, -/area/medical/genetics) +/area/medical/medbay/zone2) "bnw" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ - name = "Cloning"; - req_one_access_txt = "5;9" + name = "Ward"; + req_one_access_txt = "5" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -25690,20 +25690,20 @@ /obj/structure/flora/ausbushes/brflowers, /obj/structure/flora/ausbushes/ywflowers, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bos" = ( /obj/structure/flora/junglebush/large, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bot" = ( /obj/structure/flora/junglebush, /obj/structure/flora/ausbushes/brflowers, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bou" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/medical/genetics) +/area/medical/medbay/zone2) "bov" = ( /obj/structure/closet/secure_closet/personal/patient, /obj/effect/turf_decal/tile/blue{ @@ -25712,8 +25712,11 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bow" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -25725,7 +25728,7 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "box" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -25739,7 +25742,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "boy" = ( /obj/structure/closet/wardrobe/mixed, /obj/effect/turf_decal/tile/blue{ @@ -25749,7 +25752,7 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "boz" = ( /obj/machinery/vending/clothing, /obj/machinery/firealarm{ @@ -25762,8 +25765,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "boA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/chair{ @@ -26140,11 +26144,11 @@ /obj/structure/flora/junglebush, /obj/structure/flora/ausbushes/sparsegrass, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bpw" = ( /obj/structure/flora/grass/jungle, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bpx" = ( /obj/structure/flora/ausbushes/lavendergrass, /obj/structure/flora/ausbushes/sparsegrass, @@ -26155,9 +26159,8 @@ /obj/structure/flora/junglebush, /obj/structure/flora/junglebush/large, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bpy" = ( -/obj/machinery/clonepod, /obj/item/radio/intercom{ frequency = 1485; name = "Station Intercom (Medbay)"; @@ -26166,42 +26169,39 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"bpz" = ( -/obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) +"bpz" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "bpA" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, /obj/structure/cable, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bpB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bpC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/spawner/structure/window, /turf/open/floor/plating, -/area/medical/genetics) +/area/medical/medbay/zone2) "bpD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -26827,37 +26827,30 @@ dir = 8 }, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bqU" = ( /obj/structure/sink/puddle, /obj/structure/flora/ausbushes/reedbush{ pixel_y = 6 }, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bqV" = ( /obj/structure/flora/grass/jungle/b, /obj/machinery/light/small{ dir = 4 }, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bqW" = ( -/obj/machinery/computer/cloning{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/genetics) +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "bqX" = ( /obj/machinery/holopad, /obj/structure/disposalpipe/segment{ @@ -26866,38 +26859,33 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bqY" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 8; - sortType = 23 - }, /obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bqZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) +"bqZ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "bra" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ - id_tag = "GeneticsDoor"; - name = "Cloning"; - req_one_access_txt = "5;9" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 + name = "Ward"; + req_one_access_txt = "5" }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "brb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -27476,7 +27464,7 @@ /obj/structure/flora/grass/jungle/b, /mob/living/simple_animal/butterfly, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bsp" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -27495,11 +27483,10 @@ /obj/structure/flora/ausbushes/ppflowers, /mob/living/simple_animal/pet/dog/corgi/puppy, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bsr" = ( -/obj/machinery/dna_scannernew, /obj/machinery/camera{ - c_tag = "Cloning Lab"; + c_tag = "Ward Fore"; dir = 4; network = list("ss13","medbay") }, @@ -27510,53 +27497,55 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/genetics) +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "bss" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bst" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bsu" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bsv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/chair/stool, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bsw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/effect/spawner/structure/window, /turf/open/floor/plating, -/area/medical/genetics) +/area/medical/medbay/zone2) "bsx" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -28136,71 +28125,41 @@ "btR" = ( /obj/structure/flora/ausbushes/brflowers, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "btS" = ( /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "btT" = ( /obj/structure/flora/junglebush, /obj/structure/flora/ausbushes/sunnybush, /turf/open/floor/grass, -/area/medical/genetics) -"btU" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "btV" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "btW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "btX" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/medical_cloning{ - pixel_y = 6 - }, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "btY" = ( /obj/structure/table, -/obj/item/storage/box/rxglasses{ - pixel_x = 3; - pixel_y = 3 - }, /obj/item/storage/box/bodybags, /obj/item/pen, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "btZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/blue{ @@ -28582,34 +28541,26 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "bvc" = ( -/turf/closed/wall/r_wall, -/area/medical/genetics) -"bvd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/structure/table, +/obj/item/storage/box/rxglasses{ + pixel_x = 3; + pixel_y = 3 }, +/obj/item/clothing/gloves/color/latex, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/door/airlock/medical/glass{ - id_tag = "GeneticsDoor"; - name = "Cloning"; - req_one_access_txt = "5;9" - }, /turf/open/floor/plasteel/white, -/area/medical/genetics) -"bve" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/medical/genetics) +/area/medical/medbay/zone2) +"bvd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable, +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "bvf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ @@ -29150,7 +29101,7 @@ "bwu" = ( /mob/living/simple_animal/pet/dog/corgi, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bwv" = ( /obj/machinery/airalarm{ pixel_y = 22 @@ -29167,56 +29118,25 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/structure/closet/wardrobe/pjs, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bwx" = ( -/obj/structure/bed, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bwy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) -"bwz" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bwA" = ( /obj/structure/table, /obj/item/storage/box/bodybags, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, /obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bwB" = ( /obj/machinery/requests_console{ department = "Medbay"; @@ -29887,7 +29807,7 @@ "byd" = ( /obj/structure/flora/junglebush/c, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bye" = ( /obj/structure/window/reinforced{ dir = 4; @@ -29897,7 +29817,7 @@ dir = 4 }, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "byf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -29908,8 +29828,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "byg" = ( /turf/closed/wall/r_wall, /area/science/genetics) @@ -29917,22 +29838,20 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "byi" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, /obj/structure/cable, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics) -"byj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "byk" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/latex, /obj/machinery/light{ dir = 4 }, @@ -29944,8 +29863,12 @@ dir = 4 }, /obj/effect/turf_decal/tile/blue, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "byl" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -24 @@ -30589,15 +30512,15 @@ dir = 8 }, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bzF" = ( /obj/machinery/door/window/eastleft{ - name = "Monkey Pen"; - req_one_access_txt = "9" + name = "Petting Garden"; + req_one_access_txt = null }, /mob/living/simple_animal/pet/dog/corgi/puppy, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bzG" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -30606,33 +30529,26 @@ dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzH" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bzI" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/structure/bed, -/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bzJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bzK" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bzL" = ( /obj/structure/sink{ dir = 8; @@ -30646,7 +30562,7 @@ }, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bzM" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-10" @@ -31099,14 +31015,14 @@ "bAN" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bAO" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, /obj/machinery/light/small, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bAP" = ( /obj/structure/window/reinforced{ dir = 4; @@ -31117,7 +31033,7 @@ }, /obj/structure/flora/ausbushes/palebush, /turf/open/floor/grass, -/area/medical/genetics) +/area/medical/medbay/zone2) "bAQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -31128,8 +31044,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bAR" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -31149,20 +31066,16 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bAT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, /obj/structure/cable, +/obj/structure/bed, +/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics) -"bAU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bAV" = ( /obj/machinery/shower{ dir = 8 @@ -31177,7 +31090,7 @@ }, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bAW" = ( /turf/closed/wall, /area/medical/virology) @@ -31681,46 +31594,43 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/structure/closet/wardrobe/pjs, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bCa" = ( -/obj/structure/bed, /obj/effect/turf_decal/tile/blue{ dir = 8 }, /obj/effect/turf_decal/tile/blue, -/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bCb" = ( /obj/machinery/camera{ - c_tag = "Genetics"; + c_tag = "Ward Aft"; dir = 1; network = list("ss13","medbay") }, -/obj/structure/bed, /obj/effect/turf_decal/tile/blue{ dir = 8 }, /obj/effect/turf_decal/tile/blue, -/obj/item/bedsheet/medical, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bCc" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue{ dir = 8 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bCd" = ( /obj/structure/cable, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bCe" = ( /obj/machinery/power/apc{ dir = 4; - name = "Genetics APC"; + name = "Ward APC"; pixel_x = 24 }, /obj/structure/cable, @@ -31729,7 +31639,7 @@ }, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bCf" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -32303,7 +32213,7 @@ dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bDm" = ( /obj/structure/closet/secure_closet/personal/patient, /obj/machinery/light, @@ -32316,7 +32226,7 @@ }, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bDn" = ( /obj/structure/closet/secure_closet/personal/patient, /obj/effect/turf_decal/tile/blue{ @@ -32327,7 +32237,7 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/medical/medbay/zone2) "bDo" = ( /obj/machinery/shower{ dir = 4 @@ -52700,6 +52610,9 @@ /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/open/floor/plating, /area/maintenance/department/cargo) +"lku" = ( +/turf/closed/wall/r_wall, +/area/medical/medbay/zone2) "lms" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -53947,6 +53860,16 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space) +"ofo" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "ofN" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue, @@ -55715,6 +55638,17 @@ }, /turf/open/floor/engine, /area/engine/supermatter) +"spo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants/random, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "spz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable, @@ -55977,15 +55911,6 @@ /obj/machinery/meter, /turf/open/floor/engine, /area/engine/engineering) -"sXb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/chair/office{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) "sXi" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -56659,6 +56584,14 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) +"urO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) "urP" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -82061,13 +81994,13 @@ bnv bou bnv bou -bvc +bnv bwv byf bzG bAQ bBZ -bvc +bnv bDi bEn bDi @@ -82317,14 +82250,14 @@ bov bpy bqW bsr -btU -bou +bqW +ofo bwx bpB -bzH +bjQ bAS bCa -bvc +bnv bEr bFH bEr @@ -82572,17 +82505,17 @@ bmi bjN bow bpz -sXb +bjQ bss btV -bou -bwx +bpz +bjQ byh bzI -bAS +urO bCb -bvc -bvc +bnv +lku bFI bGO bHU @@ -82833,13 +82766,13 @@ bqX bst btW bvd -bwy +btW byi bzJ bAT bCc bDl -bvc +lku bFJ bGP bHV @@ -83089,14 +83022,14 @@ bpB bqY bsu btX -bve -bwz -byj +btX +btX +btX bzK -bAU +btV bCd bDm -bvc +lku bFK bGQ bHX @@ -83342,7 +83275,7 @@ kSO bjL bjL boz -bpB +spo bqZ bsv btY @@ -83353,7 +83286,7 @@ bzL bAV bCe bDn -bvc +lku bFL bGR bHX @@ -83603,16 +83536,16 @@ bpC bra bsw bnv -bvc -bvc -bvc -bvc -bvc -bvc -bvc -bvc -bAW -bAW +bnv +bnv +bnv +bnv +bnv +bnv +bnv +lku +bEr +bEr bHY bGW bKn @@ -84647,7 +84580,7 @@ bKt qar bGW bNR -bAW +bEr bva bva pwj diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index af4fd9c60f9..b2b404f7289 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -826,7 +826,6 @@ /turf/open/floor/plasteel/cafeteria, /area/medical/medbay) "cK" = ( -/obj/machinery/dna_scannernew, /obj/effect/turf_decal/tile/blue{ dir = 8 }, @@ -1278,7 +1277,6 @@ /area/hallway/secondary/entry) "es" = ( /obj/machinery/light, -/obj/machinery/clonepod, /obj/effect/turf_decal/tile/blue{ dir = 4 }, @@ -1934,9 +1932,7 @@ pixel_x = 32 }, /obj/structure/cable, -/obj/machinery/computer/shuttle/mining{ - dir = 2 - }, +/obj/machinery/computer/shuttle/mining, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "gk" = ( @@ -2356,15 +2352,6 @@ }, /turf/open/floor/plasteel, /area/science) -"BB" = ( -/obj/machinery/computer/cloning{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner, -/area/medical/medbay) "BD" = ( /obj/structure/closet/secure_closet/CMO{ locked = 0 @@ -2471,8 +2458,8 @@ height = 5; id = "mining_home"; name = "mining shuttle bay"; - width = 7; - roundstart_template = /datum/map_template/shuttle/mining/box + roundstart_template = /datum/map_template/shuttle/mining/box; + width = 7 }, /turf/open/floor/engine, /area/quartermaster/miningoffice) @@ -8404,7 +8391,7 @@ by Qt by cm -BB +cK by cS cS diff --git a/_maps/shuttles/emergency_zeta.dmm b/_maps/shuttles/emergency_zeta.dmm index f2fa6efcda3..b07d3e0c16a 100644 --- a/_maps/shuttles/emergency_zeta.dmm +++ b/_maps/shuttles/emergency_zeta.dmm @@ -221,18 +221,6 @@ /obj/machinery/sleeper/survival_pod, /turf/open/floor/plating/abductor, /area/shuttle/escape) -"K" = ( -/obj/machinery/dna_scannernew, -/turf/open/floor/plating/abductor, -/area/shuttle/escape) -"L" = ( -/obj/machinery/computer/prototype_cloning, -/turf/open/floor/plating/abductor, -/area/shuttle/escape) -"M" = ( -/obj/machinery/clonepod/experimental, -/turf/open/floor/plating/abductor, -/area/shuttle/escape) "N" = ( /obj/machinery/abductor/pad{ desc = "A funky looking disc, built into the floor." @@ -591,7 +579,7 @@ l l l c -K +l l l Y @@ -614,7 +602,7 @@ l l l c -L +l l l l @@ -637,7 +625,7 @@ l q s b -M +l O S Z diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 228d9e9fa22..3719ec84df2 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -103,10 +103,6 @@ #define TR_KEEPSTUNS (1<<9) #define TR_KEEPREAGENTS (1<<10) - -#define CLONER_FRESH_CLONE "fresh" -#define CLONER_MATURE_CLONE "mature" - //species traits for mutantraces #define MUTCOLORS 1 #define HAIR 2 diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index f84bee5a5af..4d73369a318 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -26,7 +26,7 @@ #define ACCESS_AI_UPLOAD 16 #define ACCESS_TELEPORTER 17 #define ACCESS_EVA 18 -/// Bridge, EVA storage windoors, gateway shutters, AI integrity restorer, clone record deletion, comms console +/// Bridge, EVA storage windoors, gateway shutters, AI integrity restorer, comms console #define ACCESS_HEADS 19 #define ACCESS_CAPTAIN 20 #define ACCESS_ALL_PERSONAL_LOCKERS 21 @@ -77,8 +77,6 @@ #define ACCESS_WEAPONS 66 /// NTnet diagnostics/monitoring software #define ACCESS_NETWORK 67 -/// Cloning room and clone pod ejection -#define ACCESS_CLONING 68 /// Pharmacy access (Chemistry room in Medbay) #define ACCESS_PHARMACY 69 ///Nice. diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index 7781efc5eee..71ea98f9f0d 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -110,10 +110,6 @@ #define MACHINE_ELECTRIFIED_PERMANENT -1 #define MACHINE_DEFAULT_ELECTRIFY_TIME 30 -//cloning defines. These are flags. -#define CLONING_SUCCESS (1<<0) -#define CLONING_DELETE_RECORD (1<<1) - //these flags are used to tell the DNA modifier if a plant gene cannot be extracted or modified. #define PLANT_GENE_REMOVABLE (1<<0) #define PLANT_GENE_EXTRACTABLE (1<<1) diff --git a/code/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm index 580caa1ad49..98c801c1ff0 100644 --- a/code/_globalvars/lists/poll_ignore.dm +++ b/code/_globalvars/lists/poll_ignore.dm @@ -14,7 +14,6 @@ #define POLL_IGNORE_SWARMER "swarmer" #define POLL_IGNORE_DRONE "drone" #define POLL_IGNORE_FUGITIVE "fugitive" -#define POLL_IGNORE_DEFECTIVECLONE "defective_clone" #define POLL_IGNORE_PYROSLIME "slime" #define POLL_IGNORE_SHADE "shade" #define POLL_IGNORE_IMAGINARYFRIEND "imaginary_friend" @@ -38,7 +37,6 @@ GLOBAL_LIST_INIT(poll_ignore_desc, list( POLL_IGNORE_SWARMER = "Swarmer shells", POLL_IGNORE_DRONE = "Drone shells", POLL_IGNORE_FUGITIVE = "Fugitive Hunter", - POLL_IGNORE_DEFECTIVECLONE = "Defective clone", POLL_IGNORE_PYROSLIME = "Slime", POLL_IGNORE_SHADE = "Shade", POLL_IGNORE_IMAGINARYFRIEND = "Imaginary Friend", diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index 589109d45e6..4dc647b8cea 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -4,7 +4,7 @@ if(can_reenter_corpse && mind && mind.current) if(A == mind.current || (mind.current in A)) // double click your corpse or whatever holds it - reenter_corpse() // (cloning scanner, body bag, closet, mech, etc) + reenter_corpse() // (body bag, closet, mech, etc) return // seems legit. // Things you might plausibly want to follow diff --git a/code/datums/brain_damage/brain_trauma.dm b/code/datums/brain_damage/brain_trauma.dm index 1aa1341c9cf..ca63c5b3d66 100644 --- a/code/datums/brain_damage/brain_trauma.dm +++ b/code/datums/brain_damage/brain_trauma.dm @@ -14,7 +14,6 @@ var/can_gain = TRUE var/random_gain = TRUE //can this be gained through random traumas? var/resilience = TRAUMA_RESILIENCE_BASIC //how hard is this to cure? - var/clonable = TRUE // will this transfer if the brain is cloned? /datum/brain_trauma/Destroy() if(brain && brain.traumas) @@ -25,10 +24,6 @@ owner = null return ..() -/datum/brain_trauma/proc/on_clone() - if(clonable) - return new type - //Called on life ticks /datum/brain_trauma/proc/on_life() return diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index 80a1bd24704..12faa9ba365 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -31,11 +31,6 @@ trigger_species = SStraumas.phobia_species[phobia_type] ..() - -/datum/brain_trauma/mild/phobia/on_clone() - if(clonable) - return new type(phobia_type) - /datum/brain_trauma/mild/phobia/on_life() ..() if(HAS_TRAIT(owner, TRAIT_FEARLESS)) diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 9444795108d..c743bf200da 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -142,7 +142,6 @@ /datum/brain_trauma/special/psychotic_brawling/bath_salts name = "Chemical Violent Psychosis" - clonable = FALSE /datum/brain_trauma/special/tenacity name = "Tenacity" @@ -244,7 +243,6 @@ scan_desc = "criminal mind" gain_text = "Justice is coming for you." lose_text = "You were absolved for your crimes." - clonable = FALSE random_gain = FALSE var/obj/effect/hallucination/simple/securitron/beepsky diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 231fc1ec01f..d6db4de908f 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -11,7 +11,6 @@ var/list/temporary_mutations = list() //Temporary changes to the UE var/list/previous = list() //For temporary name/ui/ue/blood_type modifications var/mob/living/holder - var/delete_species = TRUE //Set to FALSE when a body is scanned by a cloner to fix #38875 var/mutation_index[DNA_MUTATION_BLOCKS] //List of which mutations this carbon has and its assigned block var/stability = 100 var/scrambled = FALSE //Did we take something like mutagen? In that case we cant get our genes scanned to instantly cheese all the powers. @@ -27,8 +26,7 @@ cholder.dna = null holder = null - if(delete_species) - QDEL_NULL(species) + QDEL_NULL(species) mutations.Cut() //This only references mutations, just dereference. temporary_mutations.Cut() //^ diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index b2aa5b95cbd..857fb6e45ed 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -213,10 +213,6 @@ timeout = 3 MINUTES //These are unused so far but I want to remember them to use them later -/datum/mood_event/cloned_corpse - description = "I recently saw my own corpse...\n" - mood_change = -6 - /datum/mood_event/surgery description = "HE'S CUTTING ME OPEN!!\n" mood_change = -8 diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 886cca8e8bb..d3465ca1476 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -270,12 +270,6 @@ description = "With heated debates over the legality of the catperson and their status in the workforce, there's always a place for the blackmarket to slip in for some cash. Whether the results \ are morally sound or not is another issue entirely." -/datum/map_template/ruin/space/cloning_facility - id = "cloning_facility" - suffix = "cloning_facility.dmm" - name = "Ancient Cloning Lab" - description = "An experimental cloning lab snapped off from an ancient ship. The cloner model inside lacks many modern functionalities and security measures." - /datum/map_template/ruin/space/hilbertresearchfacility id = "hilbert_facility" suffix = "hilbertshoteltestingsite.dmm" diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index df39eeb7763..047cf571892 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -478,7 +478,7 @@ name = "Tr%nPo2r& Z3TA" description = "A glitch appears on your monitor, flickering in and out of the options laid before you. \ It seems strange and alien, you may need a special technology to access the signal.." - admin_notes = "Has an on-board experimental cloner that creates copies of its user, alien surgery tools, and a void core that provides unlimited power." + admin_notes = "Has alien surgery tools, and a void core that provides unlimited power." credit_cost = 8000 /datum/map_template/shuttle/emergency/zeta/prerequisites_met() diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm index 9187d57d856..e27fd4d8009 100644 --- a/code/datums/traits/_quirk.dm +++ b/code/datums/traits/_quirk.dm @@ -56,9 +56,6 @@ /datum/quirk/proc/post_add() //for text, disclaimers etc. given after you spawn in with the trait /datum/quirk/proc/on_transfer() //code called when the trait is transferred to a new mob -/datum/quirk/proc/clone_data() //return additional data that should be remembered by cloning -/datum/quirk/proc/on_clone(data) //create the quirk from clone data - /datum/quirk/process() if(QDELETED(quirk_holder)) quirk_holder = null diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 3498514b44d..c0bb70677bc 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -203,12 +203,6 @@ SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "family_heirloom") SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "family_heirloom_missing", /datum/mood_event/family_heirloom_missing) -/datum/quirk/family_heirloom/clone_data() - return heirloom - -/datum/quirk/family_heirloom/on_clone(data) - heirloom = data - /datum/quirk/frail name = "Frail" desc = "Your bones might as well be made of glass! Your limbs can take less damage before they become disabled." diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index d34788fe68b..bbc117ec3f6 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -701,10 +701,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "Genetics Lab" icon_state = "genetics" -/area/medical/genetics/cloning - name = "Cloning Lab" - icon_state = "cloning" - /area/medical/sleeper name = "Medbay Treatment Center" icon_state = "exam_room" diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm deleted file mode 100644 index 97bb1eafdb3..00000000000 --- a/code/game/machinery/cloning.dm +++ /dev/null @@ -1,572 +0,0 @@ -//Cloning revival method. -//The pod handles the actual cloning while the computer manages the clone profiles - -//Potential replacement for genetics revives or something I dunno (?) - -#define CLONE_INITIAL_DAMAGE 150 //Clones in clonepods start with 150 cloneloss damage and 150 brainloss damage, thats just logical -#define MINIMUM_HEAL_LEVEL 40 - -#define SPEAK(message) radio.talk_into(src, message, radio_channel) - -/obj/machinery/clonepod - name = "cloning pod" - desc = "An electronically-lockable pod for growing organic tissue." - density = TRUE - icon = 'icons/obj/machines/cloning.dmi' - icon_state = "pod_0" - req_access = list(ACCESS_CLONING) //FOR PREMATURE UNLOCKING. - verb_say = "states" - circuit = /obj/item/circuitboard/machine/clonepod - - var/heal_level //The clone is released once its health reaches this level. - var/obj/machinery/computer/cloning/connected //So we remember the connected clone machine. - var/mess = FALSE //Need to clean out it if it's full of exploded clone. - var/attempting = FALSE //One clone attempt at a time thanks - var/speed_coeff - var/efficiency - - var/datum/mind/clonemind - var/grab_ghost_when = CLONER_MATURE_CLONE - - var/internal_radio = TRUE - var/obj/item/radio/radio - var/radio_key = /obj/item/encryptionkey/headset_med - var/radio_channel = RADIO_CHANNEL_MEDICAL - - var/obj/effect/countdown/clonepod/countdown - - var/list/unattached_flesh - var/flesh_number = 0 - var/datum/bank_account/current_insurance - fair_market_price = 5 // He nodded, because he knew I was right. Then he swiped his credit card to pay me for arresting him. - payment_department = ACCOUNT_MED -/obj/machinery/clonepod/Initialize() - . = ..() - - countdown = new(src) - - if(internal_radio) - radio = new(src) - radio.keyslot = new radio_key - radio.subspace_transmission = TRUE - radio.canhear_range = 0 - radio.recalculateChannels() - -/obj/machinery/clonepod/Destroy() - var/mob/living/mob_occupant = occupant - go_out() - if(mob_occupant) - log_cloning("[key_name(mob_occupant)] ejected from [src] at [AREACOORD(src)] due to Destroy().") - QDEL_NULL(radio) - QDEL_NULL(countdown) - if(connected) - connected.DetachCloner(src) - QDEL_LIST(unattached_flesh) - . = ..() - -/obj/machinery/clonepod/RefreshParts() - speed_coeff = 0 - efficiency = 0 - for(var/obj/item/stock_parts/scanning_module/S in component_parts) - efficiency += S.rating - for(var/obj/item/stock_parts/manipulator/P in component_parts) - speed_coeff += P.rating - heal_level = (efficiency * 15) + 10 - if(heal_level < MINIMUM_HEAL_LEVEL) - heal_level = MINIMUM_HEAL_LEVEL - if(heal_level > 100) - heal_level = 100 - -/obj/machinery/clonepod/attack_hand(mob/user) - . = ..() - if(.) - return - user.examinate(src) - -/obj/machinery/clonepod/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/clonepod/examine(mob/user) - . = ..() - . += "The linking device can be scanned with a multitool." - if(in_range(user, src) || isobserver(user)) - . += "The status display reads: Cloning speed at [speed_coeff*50]%.
Predicted amount of cellular damage: [100-heal_level]%.
" - if(efficiency > 5) - . += "Pod has been upgraded to support autoprocessing and apply beneficial mutations." - -//The return of data disks?? Just for transferring between genetics machine/cloning machine. -//TO-DO: Make the genetics machine accept them. -/obj/item/disk/data - name = "cloning data disk" - icon_state = "datadisk0" //Gosh I hope syndies don't mistake them for the nuke disk. - var/list/fields = list() - var/list/mutations = list() - var/max_mutations = 6 - var/read_only = FALSE //Well,it's still a floppy disk - -//Disk stuff. -/obj/item/disk/data/Initialize() - . = ..() - icon_state = "datadisk[rand(0,6)]" - add_overlay("datadisk_gene") - -/obj/item/disk/data/attack_self(mob/user) - read_only = !read_only - to_chat(user, "You flip the write-protect tab to [read_only ? "protected" : "unprotected"].") - -/obj/item/disk/data/examine(mob/user) - . = ..() - . += "The write-protect tab is set to [read_only ? "protected" : "unprotected"]." - - -//Clonepod - -/obj/machinery/clonepod/examine(mob/user) - . = ..() - var/mob/living/mob_occupant = occupant - if(mess) - . += "It's filled with blood and viscera. You swear you can see it moving..." - if(is_operational() && istype(mob_occupant)) - if(mob_occupant.stat != DEAD) - . += "Current clone cycle is [round(get_completion())]% complete." - -/obj/machinery/clonepod/return_air() - // We want to simulate the clone not being in contact with - // the atmosphere, so we'll put them in a constant pressure - // nitrogen. They don't need to breathe while cloning anyway. - var/static/datum/gas_mixture/immutable/cloner/GM //global so that there's only one instance made for all cloning pods - if(!GM) - GM = new - return GM - -/obj/machinery/clonepod/proc/get_completion() - . = FALSE - var/mob/living/mob_occupant = occupant - if(mob_occupant) - . = (100 * ((mob_occupant.health + 100) / (heal_level + 100))) - -/obj/machinery/clonepod/attack_ai(mob/user) - return examine(user) - -//Start growing a human clone in the pod! -/obj/machinery/clonepod/proc/growclone(clonename, ui, mutation_index, mindref, last_death, blood_type, datum/species/mrace, list/features, factions, list/quirks, datum/bank_account/insurance, list/traumas, empty) - if(panel_open) - return NONE - if(mess || attempting) - return NONE - - if(!empty) //Doesn't matter if we're just making a copy - clonemind = locate(mindref) in SSticker.minds - if(!istype(clonemind)) //not a mind - return NONE - if(clonemind.last_death != last_death) //The soul has advanced, the record has not. - return NONE - if(!QDELETED(clonemind.current)) - if(clonemind.current.stat != DEAD) //mind is associated with a non-dead body - return NONE - if(clonemind.current.suiciding) // Mind is associated with a body that is suiciding. - return NONE - if(!clonemind.active) - // get_ghost() will fail if they're unable to reenter their body - var/mob/dead/observer/G = clonemind.get_ghost() - if(!G) - return NONE - if(G.suiciding) // The ghost came from a body that is suiciding. - return NONE - if(clonemind.damnation_type) //Can't clone the damned. - INVOKE_ASYNC(src, .proc/horrifyingsound) - mess = TRUE - icon_state = "pod_g" - update_icon() - return NONE - current_insurance = insurance - attempting = TRUE //One at a time!! - countdown.start() - - var/mob/living/carbon/human/H = new /mob/living/carbon/human(src) - - if(!clonename) //to prevent null names - clonename = "clone ([rand(1,999)])" - H.real_name = clonename - - H.hardset_dna(ui, mutation_index, H.real_name, blood_type, mrace, features) - - if(!HAS_TRAIT(H, TRAIT_RADIMMUNE))//dont apply mutations if the species is Mutation proof. - if(efficiency > 2) - var/list/unclean_mutations = (GLOB.not_good_mutations|GLOB.bad_mutations) - H.dna.remove_mutation_group(unclean_mutations) - if(efficiency > 5 && prob(20)) - H.easy_randmut(POSITIVE) - if(efficiency < 3 && prob(50)) - var/mob/M = H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) - if(ismob(M)) - H = M - - H.silent = 20 //Prevents an extreme edge case where clones could speak if they said something at exactly the right moment. - occupant = H - - icon_state = "pod_1" - //Get the clone body ready - maim_clone(H) - ADD_TRAIT(H, TRAIT_STABLEHEART, CLONING_POD_TRAIT) - ADD_TRAIT(H, TRAIT_STABLELIVER, CLONING_POD_TRAIT) - ADD_TRAIT(H, TRAIT_EMOTEMUTE, CLONING_POD_TRAIT) - ADD_TRAIT(H, TRAIT_MUTE, CLONING_POD_TRAIT) - ADD_TRAIT(H, TRAIT_NOBREATH, CLONING_POD_TRAIT) - ADD_TRAIT(H, TRAIT_NOCRITDAMAGE, CLONING_POD_TRAIT) - H.Unconscious(80) - - if(!empty) - clonemind.transfer_to(H) - - if(grab_ghost_when == CLONER_FRESH_CLONE) - H.grab_ghost() - to_chat(H, "Consciousness slowly creeps over you as your body regenerates.
So this is what cloning feels like?
") - - if(grab_ghost_when == CLONER_MATURE_CLONE) - H.ghostize(TRUE) //Only does anything if they were still in their old body and not already a ghost - to_chat(H.get_ghost(TRUE), "Your body is beginning to regenerate in a cloning pod. You will become conscious when it is complete.") - - if(H) - H.faction |= factions - - for(var/V in quirks) - var/datum/quirk/Q = new V(H) - Q.on_clone(quirks[V]) - - for(var/t in traumas) - var/datum/brain_trauma/BT = t - var/datum/brain_trauma/cloned_trauma = BT.on_clone() - if(cloned_trauma) - H.gain_trauma(cloned_trauma, BT.resilience) - - H.set_cloned_appearance() - - H.set_suicide(FALSE) - attempting = FALSE - return CLONING_SUCCESS - -//Grow clones to maturity then kick them out. FREELOADERS -/obj/machinery/clonepod/process() - var/mob/living/mob_occupant = occupant - - if(!is_operational()) //Autoeject if power is lost - if(mob_occupant) - go_out() - log_cloning("[key_name(mob_occupant)] ejected from [src] at [AREACOORD(src)] due to power loss.") - - connected_message("Clone Ejected: Loss of power.") - - else if(mob_occupant && (mob_occupant.loc == src)) - if(SSeconomy.full_ancap) - if(!current_insurance) - go_out() - log_cloning("[key_name(mob_occupant)] ejected from [src] at [AREACOORD(src)] due to invalid bank account.") - connected_message("Clone Ejected: No bank account.") - if(internal_radio) - SPEAK("The cloning of [mob_occupant.real_name] has been terminated due to no bank account to draw payment from.") - else if(!current_insurance.adjust_money(-fair_market_price)) - go_out() - log_cloning("[key_name(mob_occupant)] ejected from [src] at [AREACOORD(src)] due to insufficient funds.") - connected_message("Clone Ejected: Out of Money.") - if(internal_radio) - SPEAK("The cloning of [mob_occupant.real_name] has been ended prematurely due to being unable to pay.") - else - var/datum/bank_account/D = SSeconomy.get_dep_account(payment_department) - if(D) - D.adjust_money(fair_market_price) - if(mob_occupant && (mob_occupant.stat == DEAD) || (mob_occupant.suiciding) || mob_occupant.hellbound) //Autoeject corpses and suiciding dudes. - connected_message("Clone Rejected: Deceased.") - if(internal_radio) - SPEAK("The cloning of [mob_occupant.real_name] has been \ - aborted due to unrecoverable tissue failure.") - go_out() - log_cloning("[key_name(mob_occupant)] ejected from [src] at [AREACOORD(src)] after suiciding.") - - else if(mob_occupant && mob_occupant.cloneloss > (100 - heal_level)) - mob_occupant.Unconscious(80) - var/dmg_mult = CONFIG_GET(number/damage_multiplier) - //Slowly get that clone healed and finished. - mob_occupant.adjustCloneLoss(-((speed_coeff / 2) * dmg_mult)) - var/progress = CLONE_INITIAL_DAMAGE - mob_occupant.getCloneLoss() - // To avoid the default cloner making incomplete clones - progress += (100 - MINIMUM_HEAL_LEVEL) - var/milestone = CLONE_INITIAL_DAMAGE / flesh_number - var/installed = flesh_number - unattached_flesh.len - - if((progress / milestone) >= installed) - // attach some flesh - var/obj/item/I = pick_n_take(unattached_flesh) - if(isorgan(I)) - var/obj/item/organ/O = I - O.organ_flags &= ~ORGAN_FROZEN - O.Insert(mob_occupant) - else if(isbodypart(I)) - var/obj/item/bodypart/BP = I - BP.attach_limb(mob_occupant) - - use_power(7500) //This might need tweaking. - - else if(mob_occupant && (mob_occupant.cloneloss <= (100 - heal_level))) - connected_message("Cloning Process Complete.") - if(internal_radio) - SPEAK("The cloning cycle of [mob_occupant.real_name] is complete.") - - // If the cloner is upgraded to debugging high levels, sometimes - // organs and limbs can be missing. - for(var/i in unattached_flesh) - if(isorgan(i)) - var/obj/item/organ/O = i - O.organ_flags &= ~ORGAN_FROZEN - O.Insert(mob_occupant) - else if(isbodypart(i)) - var/obj/item/bodypart/BP = i - BP.attach_limb(mob_occupant) - - go_out() - log_cloning("[key_name(mob_occupant)] completed cloning cycle in [src] at [AREACOORD(src)].") - - else if (!mob_occupant || mob_occupant.loc != src) - occupant = null - if (!mess && !panel_open) - icon_state = "pod_0" - use_power(200) - -//Let's unlock this early I guess. Might be too early, needs tweaking. -/obj/machinery/clonepod/attackby(obj/item/W, mob/user, params) - if(!(occupant || mess)) - if(default_deconstruction_screwdriver(user, "[icon_state]_maintenance", "[initial(icon_state)]",W)) - return - - if(default_deconstruction_crowbar(W)) - return - - if(W.tool_behaviour == TOOL_MULTITOOL) - if(!multitool_check_buffer(user, W)) - return - var/obj/item/multitool/P = W - - if(istype(P.buffer, /obj/machinery/computer/cloning)) - if(get_area(P.buffer) != get_area(src)) - to_chat(user, "-% Cannot link machines across power zones. Buffer cleared %-") - P.buffer = null - return - to_chat(user, "-% Successfully linked [P.buffer] with [src] %-") - var/obj/machinery/computer/cloning/comp = P.buffer - if(connected) - connected.DetachCloner(src) - comp.AttachCloner(src) - else - P.buffer = src - to_chat(user, "-% Successfully stored [REF(P.buffer)] [P.buffer.name] in buffer %-") - return - - var/mob/living/mob_occupant = occupant - if(W.GetID()) - if(!check_access(W)) - to_chat(user, "Access Denied.") - return - if(!(mob_occupant || mess)) - to_chat(user, "Error: Pod has no occupant.") - return - else - add_fingerprint(user) - connected_message("Emergency Ejection") - SPEAK("An emergency ejection of [clonemind.name] has occurred. Survival not guaranteed.") - to_chat(user, "You force an emergency ejection. ") - go_out() - log_cloning("[key_name(user)] manually ejected [key_name(mob_occupant)] from [src] at [AREACOORD(src)].") - log_combat(user, mob_occupant, "ejected", W, "from [src]") - else - return ..() - -/obj/machinery/clonepod/emag_act(mob/user) - if(!occupant) - return - to_chat(user, "You corrupt the genetic compiler.") - malfunction() - add_fingerprint(user) - log_cloning("[key_name(user)] emagged [src] at [AREACOORD(src)], causing it to malfunction.") - if(user) - log_combat(user, src, "emagged", null, occupant ? "[occupant] inside, killing them via malfunction." : null) - -//Put messages in the connected computer's temp var for display. -/obj/machinery/clonepod/proc/connected_message(message) - if ((isnull(connected)) || (!istype(connected, /obj/machinery/computer/cloning))) - return FALSE - if (!message) - return FALSE - - connected.temp = message - connected.updateUsrDialog() - return TRUE - -/obj/machinery/clonepod/proc/go_out() - countdown.stop() - var/mob/living/mob_occupant = occupant - var/turf/T = get_turf(src) - - if(mess) //Clean that mess and dump those gibs! - for(var/obj/fl in unattached_flesh) - fl.forceMove(T) - if(istype(fl, /obj/item/organ)) - var/obj/item/organ/O = fl - O.organ_flags &= ~ORGAN_FROZEN - unattached_flesh.Cut() - mess = FALSE - new /obj/effect/gibspawner/generic(get_turf(src), mob_occupant) - audible_message("You hear a splat.") - icon_state = "pod_0" - return - - if(!mob_occupant) - return - current_insurance = null - REMOVE_TRAIT(mob_occupant, TRAIT_STABLEHEART, CLONING_POD_TRAIT) - REMOVE_TRAIT(mob_occupant, TRAIT_STABLELIVER, CLONING_POD_TRAIT) - REMOVE_TRAIT(mob_occupant, TRAIT_EMOTEMUTE, CLONING_POD_TRAIT) - REMOVE_TRAIT(mob_occupant, TRAIT_MUTE, CLONING_POD_TRAIT) - REMOVE_TRAIT(mob_occupant, TRAIT_NOCRITDAMAGE, CLONING_POD_TRAIT) - REMOVE_TRAIT(mob_occupant, TRAIT_NOBREATH, CLONING_POD_TRAIT) - - if(grab_ghost_when == CLONER_MATURE_CLONE) - mob_occupant.grab_ghost() - to_chat(occupant, "There is a bright flash!
You feel like a new being.
") - mob_occupant.flash_act() - - occupant.forceMove(T) - icon_state = "pod_0" - mob_occupant.domutcheck(1) //Waiting until they're out before possible monkeyizing. The 1 argument forces powers to manifest. - for(var/fl in unattached_flesh) - qdel(fl) - unattached_flesh.Cut() - - occupant = null - clonemind = null - -/obj/machinery/clonepod/proc/malfunction() - var/mob/living/mob_occupant = occupant - if(mob_occupant) - connected_message("Critical Error!") - SPEAK("Critical error! Please contact a Thinktronic Systems \ - technician, as your warranty may be affected.") - mess = TRUE - maim_clone(mob_occupant) //Remove every bit that's grown back so far to drop later, also destroys bits that haven't grown yet - icon_state = "pod_g" - if(clonemind && mob_occupant.mind != clonemind) - clonemind.transfer_to(mob_occupant) - mob_occupant.grab_ghost() // We really just want to make you suffer. - flash_color(mob_occupant, flash_color="#960000", flash_time=100) - to_chat(mob_occupant, "Agony blazes across your consciousness as your body is torn apart.
Is this what dying is like? Yes it is.
") - playsound(src, 'sound/machines/warning-buzzer.ogg', 50) - SEND_SOUND(mob_occupant, sound('sound/hallucinations/veryfar_noise.ogg',0,1,50)) - log_cloning("[key_name(mob_occupant)] destroyed within [src] at [AREACOORD(src)] due to malfunction.") - QDEL_IN(mob_occupant, 40) - -/obj/machinery/clonepod/relaymove(mob/user) - container_resist(user) - -/obj/machinery/clonepod/container_resist(mob/living/user) - if(user.stat == CONSCIOUS) - go_out() - -/obj/machinery/clonepod/emp_act(severity) - . = ..() - if (!(. & EMP_PROTECT_SELF)) - var/mob/living/mob_occupant = occupant - if(mob_occupant && prob(100/(severity*efficiency))) - connected_message(Gibberish("EMP-caused Accidental Ejection")) - SPEAK(Gibberish("Exposure to electromagnetic fields has caused the ejection of [mob_occupant.real_name] prematurely.")) - go_out() - log_cloning("[key_name(mob_occupant)] ejected from [src] at [AREACOORD(src)] due to EMP pulse.") - -/obj/machinery/clonepod/ex_act(severity, target) - ..() - if(!QDELETED(src) && occupant) - var/mob/living/mob_occupant = occupant - go_out() - log_cloning("[key_name(mob_occupant)] ejected from [src] at [AREACOORD(src)] due to explosion.") - -/obj/machinery/clonepod/handle_atom_del(atom/A) - if(A == occupant) - occupant = null - countdown.stop() - -/obj/machinery/clonepod/proc/horrifyingsound() - for(var/i in 1 to 5) - playsound(src,pick('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg'), 100, (rand(95,105) * 0.01)) - sleep(1) - sleep(10) - playsound(src,'sound/hallucinations/wail.ogg', 100, TRUE) - -/obj/machinery/clonepod/deconstruct(disassembled = TRUE) - if(occupant) - var/mob/living/mob_occupant = occupant - go_out() - log_cloning("[key_name(mob_occupant)] ejected from [src] at [AREACOORD(src)] due to deconstruction.") - ..() - -/obj/machinery/clonepod/proc/maim_clone(mob/living/carbon/human/H) - if(!unattached_flesh) - unattached_flesh = list() - else - for(var/fl in unattached_flesh) - qdel(fl) - unattached_flesh.Cut() - - H.setCloneLoss(CLONE_INITIAL_DAMAGE) //Yeah, clones start with very low health, not with random, because why would they start with random health - // In addition to being cellularly damaged, they also have no limbs or internal organs. - // Applying brainloss is done when the clone leaves the pod, so application of traumas can happen - // based on the level of damage sustained. - - if(!HAS_TRAIT(H, TRAIT_NODISMEMBER)) - var/static/list/zones = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) - for(var/zone in zones) - var/obj/item/bodypart/BP = H.get_bodypart(zone) - if(BP) - BP.drop_limb() - BP.forceMove(src) - unattached_flesh += BP - - for(var/o in H.internal_organs) - var/obj/item/organ/organ = o - if(!istype(organ) || (organ.organ_flags & ORGAN_VITAL)) - continue - organ.organ_flags |= ORGAN_FROZEN - organ.Remove(H, special=TRUE) - organ.forceMove(src) - unattached_flesh += organ - - flesh_number = unattached_flesh.len - -/* - * Manual -- A big ol' manual. - */ - -/obj/item/paper/guides/jobs/medical/cloning - name = "paper - 'H-87 Cloning Apparatus Manual" - info = {"

Getting Started

- Congratulations, your station has purchased the H-87 industrial cloning device!
- Using the H-87 is almost as simple as brain surgery! Simply insert the target humanoid into the scanning chamber and select the scan option to create a new profile!
- That's all there is to it!
- Notice, cloning system cannot scan inorganic life or small primates. Scan may fail if subject has suffered extreme brain damage.
-

Clone profiles may be viewed through the profiles menu. Scanning implants a complementary HEALTH MONITOR IMPLANT into the subject, which may be viewed from each profile. - Profile Deletion has been restricted to \[Station Head\] level access.

-

Cloning from a profile

- Cloning is as simple as pressing the CLONE option at the bottom of the desired profile.
- Per your company's EMPLOYEE PRIVACY RIGHTS agreement, the H-87 has been blocked from cloning crewmembers while they are still alive.
-
-

The provided CLONEPOD SYSTEM will produce the desired clone. Standard clone maturation times (With SPEEDCLONE technology) are roughly 90 seconds. - The cloning pod may be unlocked early with any \[Medical Researcher\] ID after initial maturation is complete.


- Please note that resulting clones may have a small DEVELOPMENTAL DEFECT as a result of genetic drift.
-

Profile Management

-

The H-87 (as well as your station's standard genetics machine) can accept STANDARD DATA DISKETTES. - These diskettes are used to transfer genetic information between machines and profiles. - A load/save dialog will become available in each profile if a disk is inserted.


- A good diskette is a great way to counter aforementioned genetic drift!
-
- This technology produced under license from Thinktronic Systems, LTD."} - -#undef CLONE_INITIAL_DAMAGE -#undef SPEAK -#undef MINIMUM_HEAL_LEVEL diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm deleted file mode 100644 index a19bc6d3d23..00000000000 --- a/code/game/machinery/computer/cloning.dm +++ /dev/null @@ -1,627 +0,0 @@ -#define AUTOCLONING_MINIMAL_LEVEL 3 - -/obj/machinery/computer/cloning - name = "cloning console" - desc = "Used to clone people and manage DNA." - icon_screen = "dna" - icon_keyboard = "med_key" - circuit = /obj/item/circuitboard/computer/cloning - req_access = list(ACCESS_GENETICS) //for modifying records - var/obj/machinery/dna_scannernew/scanner //Linked scanner. For scanning. - var/list/pods //Linked cloning pods - var/temp = "Inactive" - var/scantemp_ckey - var/scantemp = "Ready to Scan" - var/menu = 1 //Which menu screen to display - var/list/records = list() - var/datum/data/record/active_record - var/obj/item/disk/data/diskette //Incompatible format to genetics machine - //select which parts of the diskette to load - var/include_se = FALSE //mutations - var/include_ui = FALSE //appearance - var/include_ue = FALSE //blood type, UE, and name - - var/loading = FALSE // Nice loading text - var/autoprocess = FALSE - - light_color = LIGHT_COLOR_BLUE - -/obj/machinery/computer/cloning/Initialize() - . = ..() - updatemodules(TRUE) - -/obj/machinery/computer/cloning/Destroy() - if(pods) - for(var/P in pods) - DetachCloner(P) - pods = null - return ..() - -/obj/machinery/computer/cloning/proc/GetAvailablePod(mind = null) - if(pods) - for(var/P in pods) - var/obj/machinery/clonepod/pod = P - if(pod.occupant && mind && pod.clonemind == mind) - return null - if(pod.is_operational() && !(pod.occupant || pod.mess)) - return pod - -/obj/machinery/computer/cloning/proc/HasEfficientPod() - if(pods) - for(var/P in pods) - var/obj/machinery/clonepod/pod = P - if(pod.is_operational() && pod.efficiency > 5) - return TRUE - -/obj/machinery/computer/cloning/proc/GetAvailableEfficientPod(mind = null) - if(pods) - for(var/P in pods) - var/obj/machinery/clonepod/pod = P - if(pod.occupant && pod.clonemind == mind) - return pod - else if(!. && pod.is_operational() && !(pod.occupant || pod.mess) && pod.efficiency > 5) - . = pod - -/proc/grow_clone_from_record(obj/machinery/clonepod/pod, datum/data/record/R, empty) - return pod.growclone(R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mindref"], R.fields["last_death"], R.fields["blood_type"], R.fields["mrace"], R.fields["features"], R.fields["factions"], R.fields["quirks"], R.fields["bank_account"], R.fields["traumas"], empty) - -/obj/machinery/computer/cloning/process() - if(!(scanner && LAZYLEN(pods) && autoprocess)) - return - - if(scanner.occupant && scanner.scan_level > 2) - scan_occupant(scanner.occupant) - - for(var/datum/data/record/R in records) - var/obj/machinery/clonepod/pod = GetAvailableEfficientPod(R.fields["mindref"]) - - if(!pod) - return - - if(pod.occupant) - break - - var/result = grow_clone_from_record(pod, R) - if(result & CLONING_SUCCESS) - temp = "[R.fields["name"]] => Cloning cycle in progress..." - log_cloning("Cloning of [key_name(R.fields["mindref"])] automatically started via autoprocess - [src] at [AREACOORD(src)]. Pod: [pod] at [AREACOORD(pod)].") - if(result & CLONING_DELETE_RECORD) - records -= R - - -/obj/machinery/computer/cloning/proc/updatemodules(findfirstcloner) - scanner = findscanner() - if(findfirstcloner && !LAZYLEN(pods)) - findcloner() - if(!autoprocess) - STOP_PROCESSING(SSmachines, src) - else - START_PROCESSING(SSmachines, src) - -/obj/machinery/computer/cloning/proc/findscanner() - var/obj/machinery/dna_scannernew/scannerf = null - - // Loop through every direction - for(var/direction in GLOB.cardinals) - - // Try to find a scanner in that direction - scannerf = locate(/obj/machinery/dna_scannernew, get_step(src, direction)) - - // If found and operational, return the scanner - if (!isnull(scannerf) && scannerf.is_operational()) - return scannerf - - // If no scanner was found, it will return null - return null - -/obj/machinery/computer/cloning/proc/findcloner() - var/obj/machinery/clonepod/podf = null - - for(var/direction in GLOB.cardinals) - - podf = locate(/obj/machinery/clonepod, get_step(src, direction)) - if (!isnull(podf) && podf.is_operational()) - AttachCloner(podf) - -/obj/machinery/computer/cloning/proc/AttachCloner(obj/machinery/clonepod/pod) - if(!pod.connected) - pod.connected = src - LAZYADD(pods, pod) - -/obj/machinery/computer/cloning/proc/DetachCloner(obj/machinery/clonepod/pod) - pod.connected = null - LAZYREMOVE(pods, pod) - -/obj/machinery/computer/cloning/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/disk/data)) //INSERT SOME DISKETTES - if (!diskette) - if (!user.transferItemToLoc(W,src)) - return - diskette = W - to_chat(user, "You insert [W].") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) - updateUsrDialog() - else if(W.tool_behaviour == TOOL_MULTITOOL) - if(!multitool_check_buffer(user, W)) - return - var/obj/item/multitool/P = W - - if(istype(P.buffer, /obj/machinery/clonepod)) - if(get_area(P.buffer) != get_area(src)) - to_chat(user, "-% Cannot link machines across power zones. Buffer cleared %-") - P.buffer = null - return - to_chat(user, "-% Successfully linked [P.buffer] with [src] %-") - var/obj/machinery/clonepod/pod = P.buffer - if(pod.connected) - pod.connected.DetachCloner(pod) - AttachCloner(pod) - else - P.buffer = src - to_chat(user, "-% Successfully stored [REF(P.buffer)] [P.buffer.name] in buffer %-") - return - else - return ..() - -/obj/machinery/computer/cloning/ui_interact(mob/user) - . = ..() - - updatemodules(TRUE) - - var/dat = "" - dat += "Refresh" - - if(scanner && HasEfficientPod() && scanner.scan_level >= AUTOCLONING_MINIMAL_LEVEL) - if(!autoprocess) - dat += "Autoprocess" - else - dat += "Stop autoprocess" - else - dat += "Autoprocess" - dat += "

Cloning Pod Status

" - dat += "
[temp] 
" - switch(menu) - if(1) - // Modules - if (isnull(scanner) || !LAZYLEN(pods)) - dat += "

Modules

" - //dat += "Reload Modules" - if (isnull(scanner)) - dat += "ERROR: No Scanner detected!
" - if (!LAZYLEN(pods)) - dat += "ERROR: No Pod detected
" - - // Scanner - if (!isnull(scanner)) - var/mob/living/scanner_occupant = get_mob_or_brainmob(scanner.occupant) - - dat += "

Scanner Functions

" - - dat += "
" - if(!scanner_occupant) - dat += "Scanner Unoccupied" - else if(loading) - dat += "[scanner_occupant] => Scanning..." - else - if(scanner_occupant.ckey != scantemp_ckey) - scantemp = "Ready to Scan" - scantemp_ckey = scanner_occupant.ckey - dat += "[scanner_occupant] => [scantemp]" - dat += "
" - - if(scanner_occupant) - dat += "Start Scan" - dat += "Body-Only Scan" - dat += "
[scanner.locked ? "Unlock Scanner" : "Lock Scanner"]" - else - dat += "Start Scan" - - // Database - dat += "

Database Functions

" - if (records.len && records.len > 0) - dat += "View Records ([records.len])
" - else - dat += "View Records (0)
" - if (diskette) - dat += "Eject Disk
" - - - - if(2) - dat += "

Current records

" - dat += "<< Back

" - for(var/datum/data/record/R in records) - dat += "

[R.fields["name"]]

Scan ID [R.fields["id"]] View Record" - if(3) - dat += "

Selected Record

" - dat += "<< Back
" - - if (!active_record) - dat += "Record not found." - else - var/body_only = active_record.fields["body_only"] - dat += "

[active_record.fields["name"]][body_only ? " - BODY-ONLY" : ""]

" - dat += "Scan ID [active_record.fields["id"]] \ - [!body_only ? "Clone" : "" ]\ - Empty Clone
" - - var/obj/item/implant/health/H = locate(active_record.fields["imp"]) - - if ((H) && (istype(H))) - dat += "Health Implant Data:
[H.sensehealth()]

" - else - dat += "Unable to locate Health Implant.

" - - dat += "Unique Identifier:
[active_record.fields["UI"]]
" - dat += "Structural Enzymes:
" - for(var/key in active_record.fields["SE"]) - if(key != RACEMUT) - var/val = active_record.fields["SE"][key] - var/alias = GLOB.all_mutations[key].alias - dat +="[alias]: [val]
" - - dat += "

" - - if(diskette && diskette.fields) - dat += "
" - dat += "

Inserted Disk

" - dat += "Contents: " - var/list/L = list() - if(diskette.fields["UI"]) - L += "Unique Identifier" - if(diskette.fields["UE"] && diskette.fields["name"] && diskette.fields["blood_type"]) - L += "Unique Enzymes" - if(diskette.fields["SE"]) - L += "Structural Enzymes" - dat += english_list(L, "Empty", " + ", " + ") - var/can_load = FALSE - var/obj/item/card/id/C = user.get_idcard(TRUE) - if(C) - if(check_access(C)) - can_load = TRUE - if(can_load) - dat += "
Load From Disk" - else - dat += "Cannot Load From Disk: Access Denied" - if(diskette.fields["SE"]) - if(!include_se) - dat += "
Currently Excluding SE" - else - dat += "
Currently Including SE" - if(diskette.fields["UI"]) - if(!include_ui) - dat += "
Currently Excluding UI" - else - dat += "
Currently Including UI" - if(diskette.fields["UE"]) - if(!include_ue) - dat += "
Currently Excluding UE" - else - dat += "
Currently Including UE" - - - dat += "
Save to Disk" - dat += "
" - - dat += "Delete Record" - - if(4) - if (!active_record) - menu = 2 - ui_interact(user) - return - dat += "Please confirm.
" - dat += "Cancel" - - var/datum/browser/popup = new(user, "cloning", "Cloning System Control") - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) - popup.open() - -/obj/machinery/computer/cloning/Topic(href, href_list) - if(..()) - return - - if(loading) - return - - if(href_list["task"]) - switch(href_list["task"]) - if("autoprocess") - if(scanner && HasEfficientPod() && scanner.scan_level >= AUTOCLONING_MINIMAL_LEVEL) - autoprocess = TRUE - START_PROCESSING(SSmachines, src) - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) - if("stopautoprocess") - autoprocess = FALSE - STOP_PROCESSING(SSmachines, src) - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - if("include_se") - include_se = TRUE - if("exclude_se") - include_se = FALSE - if("include_ui") - include_ui = TRUE - if("exclude_ui") - include_ui = FALSE - if("include_ue") - include_ue = TRUE - if("exclude_ue") - include_ue = FALSE - - else if ((href_list["scan"]) && !isnull(scanner) && scanner.is_operational()) - scantemp = "" - var/body_only = href_list["body_only"] - loading = TRUE - updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) - say("Initiating scan...") - - addtimer(CALLBACK(src, .proc/do_scan, usr, body_only), 2 SECONDS) - - //No locking an open scanner. - else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational()) - if ((!scanner.locked) && (scanner.occupant)) - scanner.locked = TRUE - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - else - scanner.locked = FALSE - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) - - else if(href_list["view_rec"]) - playsound(src, "terminal_type", 25, FALSE) - active_record = find_record("id", href_list["view_rec"], records) - if(active_record) - menu = 3 - else - temp = "Record missing." - - else if (href_list["del_rec"]) - if ((!active_record) || (menu < 3)) - return - if (menu == 3) //If we are viewing a record, confirm deletion - var/has_access = FALSE - if(ishuman(usr)) - var/mob/living/carbon/human/user = usr - var/obj/item/card/id/C = user.get_idcard(TRUE) - if(C) - if(check_access(C)) - has_access = TRUE - if(active_record.fields["body_only"]) //Body-only scans are not as important and can be deleted freely - has_access = TRUE - if(has_access) - temp = "Delete record?" - menu = 4 - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) - else - temp = "Access Denied" - menu = 2 - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - - - else if (menu == 4) - log_cloning("[key_name(usr)] deleted [key_name(active_record.fields["mindref"])]'s cloning records from [src] at [AREACOORD(src)].") - temp = "[active_record.fields["name"]] => Record deleted." - records.Remove(active_record) - active_record = null - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) - menu = 2 - - else if (href_list["disk"]) //Load or eject. - switch(href_list["disk"]) - if("load") - - - if (!diskette || !istype(diskette.fields)) - temp = "Load error." - updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - return - if (!active_record) - temp = "Record error." - menu = 1 - updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - return - - if(include_ue) - overwrite_field_if_available(active_record, diskette, "UE") - overwrite_field_if_available(active_record, diskette, "name") - overwrite_field_if_available(active_record, diskette, "blood_type") - if(include_ui) - overwrite_field_if_available(active_record, diskette, "UI") - if(include_se) - overwrite_field_if_available(active_record, diskette, "SE") - - log_cloning("[key_name(usr)] uploaded [key_name(active_record.fields["mindref"])]'s cloning records to [src] at [AREACOORD(src)] via [diskette].") - temp = "Load successful." - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) - - if("eject") - if(diskette) - diskette.forceMove(drop_location()) - diskette = null - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) - if("save") - if(!diskette || diskette.read_only || !active_record || !active_record.fields) - temp = "Save error." - updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - return - - log_cloning("[key_name(usr)] added [key_name(active_record.fields["mindref"])]'s cloning records to [diskette] via [src] at [AREACOORD(src)].") - diskette.fields = active_record.fields.Copy() - diskette.name = "data disk - '[diskette.fields["name"]]'" - temp = "Save successful." - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) - - else if (href_list["refresh"]) - updateUsrDialog() - playsound(src, "terminal_type", 25, FALSE) - - else if (href_list["clone"]) - var/datum/data/record/C = find_record("id", href_list["clone"], records) - var/empty = href_list["empty"] - //Look for that player! They better be dead! - if(C) - if(C.fields["body_only"] && !empty) - temp = "Cannot initiate regular cloning with body-only scans." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - var/obj/machinery/clonepod/pod = GetAvailablePod() - var/success = FALSE - //Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs. - if(!LAZYLEN(pods)) - temp = "No Clonepods detected." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - else if(!pod) - temp = "No Clonepods available." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - else if(!CONFIG_GET(flag/revival_cloning) && !empty) - temp = "Unable to initiate cloning cycle." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - else if(pod.occupant) - temp = "Cloning cycle already in progress." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - else - var/result = grow_clone_from_record(pod, C, empty) - if(result & CLONING_SUCCESS) - temp = "[C.fields["name"]] => Cloning cycle in progress..." - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) - if(active_record == C) - active_record = null - menu = 1 - success = TRUE - if(!empty) - log_cloning("[key_name(usr)] initiated cloning of [key_name(C.fields["mindref"])] via [src] at [AREACOORD(src)]. Pod: [pod] at [AREACOORD(pod)].") - else - log_cloning("[key_name(usr)] initiated EMPTY cloning of [key_name(C.fields["mindref"])] via [src] at [AREACOORD(src)]. Pod: [pod] at [AREACOORD(pod)].") - if(result & CLONING_DELETE_RECORD) - if(active_record == C) - active_record = null - menu = 1 - records -= C - - if(!success) - temp = "[C.fields["name"]] => Initialisation failure." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - - else - temp = "Data corruption." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - - else if (href_list["menu"]) - menu = text2num(href_list["menu"]) - playsound(src, "terminal_type", 25, FALSE) - - add_fingerprint(usr) - updateUsrDialog() - return - -/obj/machinery/computer/cloning/proc/do_scan(mob/user, body_only) - scan_occupant(scanner.occupant, user, body_only) - - loading = FALSE - updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) - -/obj/machinery/computer/cloning/proc/scan_occupant(occupant, mob/M, body_only) - var/mob/living/mob_occupant = get_mob_or_brainmob(occupant) - var/datum/dna/dna - var/datum/bank_account/has_bank_account - - // Do not use unless you know what they are. - var/mob/living/carbon/C = mob_occupant - var/mob/living/brain/B = mob_occupant - - if(ishuman(mob_occupant)) - dna = C.has_dna() - var/obj/item/card/id/I = C.get_idcard(TRUE) - if(I) - has_bank_account = I.registered_account - if(isbrain(mob_occupant)) - dna = B.stored_dna - - if(!istype(dna)) - scantemp = "Unable to locate valid genetic data." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - return - if(!body_only && (mob_occupant.suiciding || mob_occupant.hellbound)) - scantemp = "Subject's brain is not responding to scanning stimuli." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - return - if((HAS_TRAIT(mob_occupant, TRAIT_HUSK)) && (src.scanner.scan_level < 2)) - scantemp = "Subject's body is too damaged to scan properly." - playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE) - return - if(HAS_TRAIT(mob_occupant, TRAIT_BADDNA)) - scantemp = "Subject's DNA is damaged beyond any hope of recovery." - playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE) - return - if (!body_only && isnull(mob_occupant.mind)) - scantemp = "Mental interface failure." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - return - if(!body_only && SSeconomy.full_ancap) - if(!has_bank_account) - scantemp = "Subject is either missing an ID card with a bank account on it, or does not have an account to begin with. Please ensure the ID card is on the body before attempting to scan." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - return - var/datum/data/record/R = new() - if(dna.species) - // We store the instance rather than the path, because some - // species (abductors, slimepeople) store state in their - // species datums - dna.delete_species = FALSE - R.fields["mrace"] = dna.species - else - var/datum/species/rando_race = pick(GLOB.roundstart_races) - R.fields["mrace"] = rando_race.type - - R.fields["name"] = mob_occupant.real_name - R.fields["id"] = copytext_char(md5(mob_occupant.real_name), 2, 6) - R.fields["UE"] = dna.unique_enzymes - R.fields["UI"] = dna.uni_identity - R.fields["SE"] = dna.mutation_index - R.fields["blood_type"] = dna.blood_type - R.fields["features"] = dna.features - R.fields["factions"] = mob_occupant.faction - R.fields["quirks"] = list() - for(var/V in mob_occupant.roundstart_quirks) - var/datum/quirk/T = V - R.fields["quirks"][T.type] = T.clone_data() - - R.fields["traumas"] = list() - if(ishuman(mob_occupant)) - R.fields["traumas"] = C.get_traumas() - if(isbrain(mob_occupant)) - R.fields["traumas"] = B.get_traumas() - - R.fields["bank_account"] = has_bank_account - R.fields["mindref"] = "[REF(mob_occupant.mind)]" - R.fields["last_death"] = mob_occupant.stat == DEAD && mob_occupant.mind ? mob_occupant.mind.last_death : -1 - R.fields["body_only"] = body_only - - if(!body_only) - //Add an implant if needed - var/obj/item/implant/health/imp - for(var/obj/item/implant/health/HI in mob_occupant.implants) - imp = HI - break - if(!imp) - imp = new /obj/item/implant/health(mob_occupant) - imp.implant(mob_occupant) - R.fields["imp"] = "[REF(imp)]" - - var/datum/data/record/old_record = find_record("mindref", REF(mob_occupant.mind), records) - if(body_only) - old_record = find_record("UE", dna.unique_enzymes, records) //Body-only records cannot be identified by mind, so we use the DNA - if(old_record && ((old_record.fields["UI"] != dna.uni_identity) || (!old_record.fields["body_only"]))) //Never overwrite a mind-and-body record if it exists - old_record = null - if(old_record) - records -= old_record - scantemp = "Record updated." - else - scantemp = "Subject successfully scanned." - records += R - log_cloning("[M ? key_name(M) : "Autoprocess"] added the [body_only ? "body-only " : ""]record of [key_name(mob_occupant)] to [src] at [AREACOORD(src)].") - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50) diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index a3eea895387..8525b2063d0 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -8,7 +8,7 @@ idle_power_usage = 50 active_power_usage = 300 occupant_typecache = list(/mob/living, /obj/item/bodypart/head, /obj/item/organ/brain) - circuit = /obj/item/circuitboard/machine/clonescanner + circuit = /obj/item/circuitboard/machine/dnascanner var/locked = FALSE var/damage_coeff var/scan_level @@ -141,3 +141,26 @@ if(user.stat || (isliving(user) && (!(L.mobility_flags & MOBILITY_STAND) || !(L.mobility_flags & MOBILITY_UI))) || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) return close_machine(target) + + +//Just for transferring between genetics machines. +/obj/item/disk/data + name = "DNA data disk" + icon_state = "datadisk0" //Gosh I hope syndies don't mistake them for the nuke disk. + var/list/fields = list() + var/list/mutations = list() + var/max_mutations = 6 + var/read_only = FALSE //Well,it's still a floppy disk + +/obj/item/disk/data/Initialize() + . = ..() + icon_state = "datadisk[rand(0,6)]" + add_overlay("datadisk_gene") + +/obj/item/disk/data/attack_self(mob/user) + read_only = !read_only + to_chat(user, "You flip the write-protect tab to [read_only ? "protected" : "unprotected"].") + +/obj/item/disk/data/examine(mob/user) + . = ..() + . += "The write-protect tab is set to [read_only ? "protected" : "unprotected"]." diff --git a/code/game/machinery/exp_cloner.dm b/code/game/machinery/exp_cloner.dm deleted file mode 100644 index 3935d84631d..00000000000 --- a/code/game/machinery/exp_cloner.dm +++ /dev/null @@ -1,306 +0,0 @@ -//Experimental cloner; clones a body regardless of the owner's status, letting a ghost control it instead -/obj/machinery/clonepod/experimental - name = "experimental cloning pod" - desc = "An ancient cloning pod. It seems to be an early prototype of the experimental cloners used in Nanotrasen Stations." - icon = 'icons/obj/machines/cloning.dmi' - icon_state = "pod_0" - req_access = null - circuit = /obj/item/circuitboard/machine/clonepod/experimental - internal_radio = FALSE - -//Start growing a human clone in the pod! -/obj/machinery/clonepod/experimental/growclone(clonename, ui, mutation_index, mindref, last_death, blood_type, datum/species/mrace, list/features, factions, list/quirks, datum/bank_account/insurance) - if(panel_open) - return NONE - if(mess || attempting) - return NONE - - attempting = TRUE //One at a time!! - countdown.start() - - var/mob/living/carbon/human/H = new /mob/living/carbon/human(src) - - H.hardset_dna(ui, mutation_index, H.real_name, blood_type, mrace, features) - - if(efficiency > 2) - var/list/unclean_mutations = (GLOB.not_good_mutations|GLOB.bad_mutations) - H.dna.remove_mutation_group(unclean_mutations) - if(efficiency > 5 && prob(20)) - H.easy_randmut(POSITIVE) - if(efficiency < 3 && prob(50)) - var/mob/M = H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) - if(ismob(M)) - H = M - - H.silent = 20 //Prevents an extreme edge case where clones could speak if they said something at exactly the right moment. - occupant = H - - if(!clonename) //to prevent null names - clonename = "clone ([rand(1,999)])" - H.real_name = clonename - - icon_state = "pod_1" - //Get the clone body ready - maim_clone(H) - ADD_TRAIT(H, TRAIT_STABLEHEART, CLONING_POD_TRAIT) - ADD_TRAIT(H, TRAIT_STABLELIVER, CLONING_POD_TRAIT) - ADD_TRAIT(H, TRAIT_EMOTEMUTE, CLONING_POD_TRAIT) - ADD_TRAIT(H, TRAIT_MUTE, CLONING_POD_TRAIT) - ADD_TRAIT(H, TRAIT_NOBREATH, CLONING_POD_TRAIT) - ADD_TRAIT(H, TRAIT_NOCRITDAMAGE, CLONING_POD_TRAIT) - H.Unconscious(80) - - var/list/candidates = pollCandidatesForMob("Do you want to play as [clonename]'s defective clone?", null, null, null, 100, H, POLL_IGNORE_DEFECTIVECLONE) - if(LAZYLEN(candidates)) - var/mob/dead/observer/C = pick(candidates) - H.key = C.key - - if(grab_ghost_when == CLONER_FRESH_CLONE) - H.grab_ghost() - to_chat(H, "Consciousness slowly creeps over you as your body regenerates.
So this is what cloning feels like?
") - - if(grab_ghost_when == CLONER_MATURE_CLONE) - H.ghostize(TRUE) //Only does anything if they were still in their old body and not already a ghost - to_chat(H.get_ghost(TRUE), "Your body is beginning to regenerate in a cloning pod. You will become conscious when it is complete.") - - if(H) - H.faction |= factions - - H.set_cloned_appearance() - - H.set_suicide(FALSE) - attempting = FALSE - return CLONING_DELETE_RECORD | CLONING_SUCCESS //so that we don't spam clones with autoprocess unless we leave a body in the scanner - - -//Prototype cloning console, much more rudimental and lacks modern functions such as saving records, autocloning, or safety checks. -/obj/machinery/computer/prototype_cloning - name = "prototype cloning console" - desc = "Used to operate an experimental cloner." - icon_screen = "dna" - icon_keyboard = "med_key" - circuit = /obj/item/circuitboard/computer/prototype_cloning - var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning. - var/list/pods //Linked experimental cloning pods - var/temp = "Inactive" - var/scantemp = "Ready to Scan" - var/loading = FALSE // Nice loading text - - light_color = LIGHT_COLOR_BLUE - -/obj/machinery/computer/prototype_cloning/Initialize() - . = ..() - updatemodules(TRUE) - -/obj/machinery/computer/prototype_cloning/Destroy() - if(pods) - for(var/P in pods) - DetachCloner(P) - pods = null - return ..() - -/obj/machinery/computer/prototype_cloning/proc/GetAvailablePod(mind = null) - if(pods) - for(var/P in pods) - var/obj/machinery/clonepod/experimental/pod = P - if(pod.is_operational() && !(pod.occupant || pod.mess)) - return pod - -/obj/machinery/computer/prototype_cloning/proc/updatemodules(findfirstcloner) - scanner = findscanner() - if(findfirstcloner && !LAZYLEN(pods)) - findcloner() - -/obj/machinery/computer/prototype_cloning/proc/findscanner() - var/obj/machinery/dna_scannernew/scannerf = null - - // Loop through every direction - for(var/direction in GLOB.cardinals) - // Try to find a scanner in that direction - scannerf = locate(/obj/machinery/dna_scannernew, get_step(src, direction)) - // If found and operational, return the scanner - if (!isnull(scannerf) && scannerf.is_operational()) - return scannerf - - // If no scanner was found, it will return null - return null - -/obj/machinery/computer/prototype_cloning/proc/findcloner() - var/obj/machinery/clonepod/experimental/podf = null - for(var/direction in GLOB.cardinals) - podf = locate(/obj/machinery/clonepod/experimental, get_step(src, direction)) - if (!isnull(podf) && podf.is_operational()) - AttachCloner(podf) - -/obj/machinery/computer/prototype_cloning/proc/AttachCloner(obj/machinery/clonepod/experimental/pod) - if(!pod.connected) - pod.connected = src - LAZYADD(pods, pod) - -/obj/machinery/computer/prototype_cloning/proc/DetachCloner(obj/machinery/clonepod/experimental/pod) - pod.connected = null - LAZYREMOVE(pods, pod) - -/obj/machinery/computer/prototype_cloning/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_MULTITOOL) - if(!multitool_check_buffer(user, W)) - return - var/obj/item/multitool/P = W - - if(istype(P.buffer, /obj/machinery/clonepod/experimental)) - if(get_area(P.buffer) != get_area(src)) - to_chat(user, "-% Cannot link machines across power zones. Buffer cleared %-") - P.buffer = null - return - to_chat(user, "-% Successfully linked [P.buffer] with [src] %-") - var/obj/machinery/clonepod/experimental/pod = P.buffer - if(pod.connected) - pod.connected.DetachCloner(pod) - AttachCloner(pod) - else - P.buffer = src - to_chat(user, "-% Successfully stored [REF(P.buffer)] [P.buffer.name] in buffer %-") - return - else - return ..() - -/obj/machinery/computer/prototype_cloning/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/prototype_cloning/interact(mob/user) - user.set_machine(src) - add_fingerprint(user) - - if(..()) - return - - updatemodules(TRUE) - - var/dat = "" - dat += "Refresh" - - dat += "

Cloning Pod Status

" - dat += "
[temp] 
" - - if (isnull(src.scanner) || !LAZYLEN(pods)) - dat += "

Modules

" - //dat += "Reload Modules" - if (isnull(src.scanner)) - dat += "ERROR: No Scanner detected!
" - if (!LAZYLEN(pods)) - dat += "ERROR: No Pod detected
" - - // Scan-n-Clone - if (!isnull(src.scanner)) - var/mob/living/scanner_occupant = get_mob_or_brainmob(scanner.occupant) - - dat += "

Cloning

" - - dat += "
" - if(!scanner_occupant) - dat += "Scanner Unoccupied" - else if(loading) - dat += "[scanner_occupant] => Scanning..." - else - scantemp = "Ready to Clone" - dat += "[scanner_occupant] => [scantemp]" - dat += "
" - - if(scanner_occupant) - dat += "Clone" - dat += "
[src.scanner.locked ? "Unlock Scanner" : "Lock Scanner"]" - else - dat += "Clone" - - var/datum/browser/popup = new(user, "cloning", "Prototype Cloning System Control") - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - -/obj/machinery/computer/prototype_cloning/Topic(href, href_list) - if(..()) - return - - if(loading) - return - - else if ((href_list["clone"]) && !isnull(scanner) && scanner.is_operational()) - scantemp = "" - - loading = TRUE - updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) - say("Initiating scan...") - - addtimer(CALLBACK(src, .proc/do_clone), 2 SECONDS) - - //No locking an open scanner. - else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational()) - if ((!scanner.locked) && (scanner.occupant)) - scanner.locked = TRUE - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - else - scanner.locked = FALSE - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) - - else if (href_list["refresh"]) - updateUsrDialog() - playsound(src, "terminal_type", 25, FALSE) - - add_fingerprint(usr) - updateUsrDialog() - return - -/obj/machinery/computer/prototype_cloning/proc/do_clone() - clone_occupant(scanner.occupant) - loading = FALSE - updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) - -/obj/machinery/computer/prototype_cloning/proc/clone_occupant(occupant) - var/mob/living/mob_occupant = get_mob_or_brainmob(occupant) - var/datum/dna/dna - if(ishuman(mob_occupant)) - var/mob/living/carbon/C = mob_occupant - dna = C.has_dna() - if(isbrain(mob_occupant)) - var/mob/living/brain/B = mob_occupant - dna = B.stored_dna - - if(!istype(dna)) - scantemp = "Unable to locate valid genetic data." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - return - if((HAS_TRAIT(mob_occupant, TRAIT_HUSK)) && (src.scanner.scan_level < 2)) - scantemp = "Subject's body is too damaged to scan properly." - playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE) - return - if(HAS_TRAIT(mob_occupant, TRAIT_BADDNA)) - scantemp = "Subject's DNA is damaged beyond any hope of recovery." - playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE) - return - - var/clone_species - if(dna.species) - clone_species = dna.species - else - var/datum/species/rando_race = pick(GLOB.roundstart_races) - clone_species = rando_race.type - - var/obj/machinery/clonepod/pod = GetAvailablePod() - //Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs. - if(!LAZYLEN(pods)) - temp = "No Clonepods detected." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - else if(!pod) - temp = "No Clonepods available." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - else if(pod.occupant) - temp = "Cloning cycle already in progress." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) - else - pod.growclone(mob_occupant.real_name, dna.uni_identity, dna.mutation_index, null, null, dna.blood_type, clone_species, dna.features, mob_occupant.faction) - temp = "[mob_occupant.real_name] => Cloning data sent to pod." - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) diff --git a/code/game/objects/effects/countdown.dm b/code/game/objects/effects/countdown.dm index b30289fbe47..af80f120153 100644 --- a/code/game/objects/effects/countdown.dm +++ b/code/game/objects/effects/countdown.dm @@ -90,19 +90,6 @@ else if(N.timing) return round(N.get_time_left(), 1) -/obj/effect/countdown/clonepod - name = "cloning pod countdown" - color = "#18d100" - text_size = 1 - -/obj/effect/countdown/clonepod/get_value() - var/obj/machinery/clonepod/C = attached_to - if(!istype(C)) - return - else if(C.occupant) - var/completion = round(C.get_completion()) - return completion - /obj/effect/countdown/supermatter name = "supermatter damage" text_size = 1 diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 1c0b5a55954..97461b7148c 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -339,14 +339,12 @@ /obj/effect/spawner/lootdrop/techstorage/medical name = "medical circuit board spawner" loot = list( - /obj/item/circuitboard/computer/cloning, - /obj/item/circuitboard/machine/clonepod, /obj/item/circuitboard/machine/chem_dispenser, /obj/item/circuitboard/computer/scan_consolenew, /obj/item/circuitboard/computer/med_data, /obj/item/circuitboard/machine/smoke_machine, /obj/item/circuitboard/machine/chem_master, - /obj/item/circuitboard/machine/clonescanner, + /obj/item/circuitboard/machine/dnascanner, /obj/item/circuitboard/computer/pandemic ) diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index dad83097f21..d78d4202c0c 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -268,11 +268,6 @@ //Medical -/obj/item/circuitboard/computer/cloning - name = "Cloning (Computer Board)" - icon_state = "medical" - build_path = /obj/machinery/computer/cloning - /obj/item/circuitboard/computer/crew name = "Crew Monitoring Console (Computer Board)" icon_state = "medical" @@ -293,11 +288,6 @@ icon_state = "medical" build_path = /obj/machinery/computer/pandemic -/obj/item/circuitboard/computer/prototype_cloning - name = "Prototype Cloning (Computer Board)" - icon_state = "medical" - build_path = /obj/machinery/computer/prototype_cloning - /obj/item/circuitboard/computer/scan_consolenew name = "DNA Machine (Computer Board)" icon_state = "medical" diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 139bccaf922..601fb794e74 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -654,23 +654,8 @@ else return ..() -/obj/item/circuitboard/machine/clonepod - name = "Clone Pod (Machine Board)" - icon_state = "medical" - build_path = /obj/machinery/clonepod - req_components = list( - /obj/item/stack/cable_coil = 2, - /obj/item/stock_parts/scanning_module = 2, - /obj/item/stock_parts/manipulator = 2, - /obj/item/stack/sheet/glass = 1) - -/obj/item/circuitboard/machine/clonepod/experimental - name = "Experimental Clone Pod (Machine Board)" - icon_state = "medical" - build_path = /obj/machinery/clonepod/experimental - -/obj/item/circuitboard/machine/clonescanner - name = "Cloning Scanner (Machine Board)" +/obj/item/circuitboard/machine/dnascanner + name = "DNA Scanner (Machine Board)" icon_state = "medical" build_path = /obj/machinery/dna_scannernew req_components = list( diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index 3b40e37ca8f..be7915f67f0 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -376,13 +376,6 @@ title = "Mentoring your Experiments" page_link = "Experimentor" -/obj/item/book/manual/wiki/medical_cloning - name = "Cloning techniques of the 26th century" - icon_state ="bookCloning" - author = "Medical Journal, volume 3" - title = "Cloning techniques of the 26th century" - page_link = "Guide_to_genetics#Cloning" - /obj/item/book/manual/wiki/cooking_to_serve_man name = "To Serve Man" desc = "It's a cookbook!" diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 27124c24671..bc1e54686c5 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -189,17 +189,17 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an for(var/mob/living/M in compiled) var/mob/living/mob_occupant = get_mob_or_brainmob(M) if(mob_occupant.client && !mob_occupant.suiciding && !(HAS_TRAIT(mob_occupant, TRAIT_BADDNA)) && !mob_occupant.hellbound) - icon_state = "morgue4" // Cloneable + icon_state = "morgue4" // Revivable if(mob_occupant.stat == DEAD && beeper) if(world.time > next_beep) - playsound(src, 'sound/weapons/gun/general/empty_alarm.ogg', 50, FALSE) //Clone them you blind fucks + playsound(src, 'sound/weapons/gun/general/empty_alarm.ogg', 50, FALSE) //Revive them you blind fucks next_beep = world.time + beep_cooldown break /obj/item/paper/guides/jobs/medical/morgue name = "morgue memo" - info = "Since this station's medbay never seems to fail to be staffed by the mindless monkeys meant for genetics experiments, I'm leaving a reminder here for anyone handling the pile of cadavers the quacks are sure to leave.

Red lights mean there's a plain ol' dead body inside.

Yellow lights mean there's non-body objects inside.
Probably stuff pried off a corpse someone grabbed, or if you're lucky it's stashed booze.

Green lights mean the morgue system detects the body may be able to be cloned.

I don't know how that works, but keep it away from the kitchen and go yell at the geneticists.

- CentCom medical inspector" + info = "Since this station's medbay never seems to fail to be staffed by the mindless monkeys meant for genetics experiments, I'm leaving a reminder here for anyone handling the pile of cadavers the quacks are sure to leave.

Red lights mean there's a plain ol' dead body inside.

Yellow lights mean there's non-body objects inside.
Probably stuff pried off a corpse someone grabbed, or if you're lucky it's stashed booze.

Green lights mean the morgue system detects the body may be able to be brought back to life.

I don't know how that works, but keep it away from the kitchen and go yell at the geneticists.

- CentCom medical inspector" /* * Crematorium diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm index cdaaba70ed0..38758b381c3 100644 --- a/code/game/objects/structures/showcase.dm +++ b/code/game/objects/structures/showcase.dm @@ -82,7 +82,7 @@ /obj/structure/showcase/machinery/cloning_pod name = "cloning pod exhibit" - desc = "Signs describe how cloning pods like these ensure that every Nanotrasen employee can carry out their contracts in full, even in the unlikely event of their catastrophic death. Hopefully they aren't all made of cardboard, like this one." + desc = "Depicts a prototype from a failed attempt at reliable cloning technology. The technology was scrapped after reports of severe mutations, wiggly ear syndrome and spontaneous tail growth. The date 11.11.2558 is engraved on the base." icon = 'icons/obj/machines/cloning.dmi' icon_state = "pod_0" diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index 4b27def09e7..8c046970f43 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -310,9 +310,6 @@ if(prob(50)) new /obj/effect/temp_visual/revenant(thing.loc) thing.emag_act(null) - else - if(!istype(thing, /obj/machinery/clonepod)) //I hate everything but mostly the fact there's no better way to do this without just not affecting it at all - thing.emp_act(EMP_HEAVY) for(var/mob/living/silicon/robot/S in T) //Only works on cyborgs, not AI playsound(S, 'sound/machines/warning-buzzer.ogg', 50, TRUE) new /obj/effect/temp_visual/revenant(S.loc) diff --git a/code/modules/atmospherics/gasmixtures/immutable_mixtures.dm b/code/modules/atmospherics/gasmixtures/immutable_mixtures.dm index 7acd8625d45..dcea095d3cd 100644 --- a/code/modules/atmospherics/gasmixtures/immutable_mixtures.dm +++ b/code/modules/atmospherics/gasmixtures/immutable_mixtures.dm @@ -55,16 +55,3 @@ /datum/gas_mixture/immutable/space/remove_ratio() return copy() //we're always empty, so we can just return a copy. - - -//used by cloners -/datum/gas_mixture/immutable/cloner - initial_temperature = T20C - -/datum/gas_mixture/immutable/cloner/garbage_collect() - ..() - ADD_GAS(/datum/gas/nitrogen, gases) - gases[/datum/gas/nitrogen][MOLES] = MOLES_O2STANDARD + MOLES_N2STANDARD - -/datum/gas_mixture/immutable/cloner/heat_capacity() - return (MOLES_O2STANDARD + MOLES_N2STANDARD)*20 //specific heat of nitrogen is 20 diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 9a6ff97e3f1..5c684e7b1c3 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -43,7 +43,7 @@ return if(QDELETED(src) || QDELETED(user)) return - var/ghost_role = alert("Become [mob_name]? (Warning, You can no longer be cloned!)",,"Yes","No") + var/ghost_role = alert("Become [mob_name]? (Warning, You can no longer be revived!)",,"Yes","No") if(ghost_role == "No" || !loc) return log_game("[key_name(user)] became [mob_name]") diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 79834ac103d..e60fb620344 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1715,11 +1715,9 @@ /datum/supply_pack/organic/exoticseeds name = "Exotic Seeds Crate" - desc = "Any entrepreneuring botanist's dream. Contains fourteen different seeds, including three replica-pod seeds and two mystery seeds!" + desc = "Any entrepreneuring botanist's dream. Contains fourteen different seeds, including one replica-pod seed and two mystery seeds!" cost = 1500 contains = list(/obj/item/seeds/nettle, - /obj/item/seeds/replicapod, - /obj/item/seeds/replicapod, /obj/item/seeds/replicapod, /obj/item/seeds/plump, /obj/item/seeds/liberty, diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index d456879f582..b9a5f32479e 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -321,7 +321,6 @@ if(paranoia) QDEL_NULL(paranoia) paranoia = new() - paranoia.clonable = FALSE user.gain_trauma(paranoia, TRAUMA_RESILIENCE_MAGIC) to_chat(user, "As you don the foiled hat, an entire world of conspiracy theories and seemingly insane ideas suddenly rush into your mind. What you once thought unbelievable suddenly seems.. undeniable. Everything is connected and nothing happens just by accident. You know too much and now they're out to get you. ") diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index a7cec2c2a55..bfa336e2c27 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -132,17 +132,17 @@ /proc/get_all_accesses() return list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, - ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_MORGUE, ACCESS_RD, - ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_CHEMISTRY, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MAINT_TUNNELS, - ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, - ACCESS_TELEPORTER, ACCESS_EVA, ACCESS_HEADS, ACCESS_CAPTAIN, ACCESS_ALL_PERSONAL_LOCKERS, - ACCESS_TECH_STORAGE, ACCESS_CHAPEL_OFFICE, ACCESS_ATMOSPHERICS, ACCESS_KITCHEN, - ACCESS_BAR, ACCESS_JANITOR, ACCESS_CREMATORIUM, ACCESS_ROBOTICS, ACCESS_CARGO, ACCESS_CONSTRUCTION, - ACCESS_HYDROPONICS, ACCESS_LIBRARY, ACCESS_LAWYER, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_QM, ACCESS_SURGERY, - ACCESS_THEATRE, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_WEAPONS, + ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_MORGUE, ACCESS_RD, + ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_CHEMISTRY, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MAINT_TUNNELS, + ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, + ACCESS_TELEPORTER, ACCESS_EVA, ACCESS_HEADS, ACCESS_CAPTAIN, ACCESS_ALL_PERSONAL_LOCKERS, + ACCESS_TECH_STORAGE, ACCESS_CHAPEL_OFFICE, ACCESS_ATMOSPHERICS, ACCESS_KITCHEN, + ACCESS_BAR, ACCESS_JANITOR, ACCESS_CREMATORIUM, ACCESS_ROBOTICS, ACCESS_CARGO, ACCESS_CONSTRUCTION, + ACCESS_HYDROPONICS, ACCESS_LIBRARY, ACCESS_LAWYER, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_QM, ACCESS_SURGERY, + ACCESS_THEATRE, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_WEAPONS, ACCESS_MECH_MINING, ACCESS_MECH_ENGINE, ACCESS_MECH_SCIENCE, ACCESS_MECH_SECURITY, ACCESS_MECH_MEDICAL, - ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_PHARMACY, ACCESS_RC_ANNOUNCE, - ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_CLONING) + ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_PHARMACY, ACCESS_RC_ANNOUNCE, + ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK) /proc/get_all_centcom_access() return list(ACCESS_CENT_GENERAL, ACCESS_CENT_THUNDER, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE, ACCESS_CENT_TELEPORTER, ACCESS_CENT_CAPTAIN) @@ -170,7 +170,7 @@ if(2) //security return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_HOS) if(3) //medbay - return list(ACCESS_MEDICAL, ACCESS_CLONING, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_MECH_MEDICAL, ACCESS_CMO, ACCESS_PHARMACY) + return list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_MECH_MEDICAL, ACCESS_CMO, ACCESS_PHARMACY) if(4) //research return list(ACCESS_RESEARCH, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_GENETICS, ACCESS_ROBOTICS, ACCESS_XENOBIOLOGY, ACCESS_MECH_SCIENCE, ACCESS_MINISAT, ACCESS_RD, ACCESS_NETWORK) if(5) //engineering and maintenance @@ -321,8 +321,6 @@ return "Weapon Permit" if(ACCESS_NETWORK) return "Network Access" - if(ACCESS_CLONING) - return "Cloning Room" if(ACCESS_MECH_MINING) return "Mining Mech Access" if(ACCESS_MECH_MEDICAL) diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm index 1c519a0716a..e9368382b5d 100644 --- a/code/modules/jobs/job_types/chemist.dm +++ b/code/modules/jobs/job_types/chemist.dm @@ -13,7 +13,7 @@ outfit = /datum/outfit/job/chemist - access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_PHARMACY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM) + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_PHARMACY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_PHARMACY) paycheck = PAYCHECK_MEDIUM paycheck_department = ACCOUNT_MED diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm index 012715ffe26..d257958989d 100644 --- a/code/modules/jobs/job_types/chief_medical_officer.dm +++ b/code/modules/jobs/job_types/chief_medical_officer.dm @@ -18,10 +18,10 @@ outfit = /datum/outfit/job/cmo - access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_PHARMACY, ACCESS_HEADS, ACCESS_MINERAL_STOREROOM, + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_PHARMACY, ACCESS_HEADS, ACCESS_MINERAL_STOREROOM, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE, ACCESS_MECH_MEDICAL, ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS) - minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_PHARMACY, ACCESS_HEADS, ACCESS_MINERAL_STOREROOM, + minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_PHARMACY, ACCESS_HEADS, ACCESS_MINERAL_STOREROOM, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE, ACCESS_MECH_MEDICAL, ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS) paycheck = PAYCHECK_COMMAND diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm index 24dcb487b58..c0de94e6370 100644 --- a/code/modules/jobs/job_types/geneticist.dm +++ b/code/modules/jobs/job_types/geneticist.dm @@ -13,8 +13,8 @@ outfit = /datum/outfit/job/geneticist - access = list(ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MECH_MEDICAL, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_ROBOTICS, ACCESS_MINERAL_STOREROOM, ACCESS_TECH_STORAGE) - minimal_access = list(ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MECH_MEDICAL, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM) + access = list(ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_MECH_MEDICAL, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_ROBOTICS, ACCESS_MINERAL_STOREROOM, ACCESS_TECH_STORAGE) + minimal_access = list(ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_MECH_MEDICAL, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM) paycheck = PAYCHECK_MEDIUM paycheck_department = ACCOUNT_MED diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm index 4a76250f0eb..63c0d2376c3 100644 --- a/code/modules/jobs/job_types/medical_doctor.dm +++ b/code/modules/jobs/job_types/medical_doctor.dm @@ -11,8 +11,8 @@ outfit = /datum/outfit/job/doctor - access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_PHARMACY, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_VIROLOGY, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM) - minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_PHARMACY) + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_PHARMACY, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_VIROLOGY, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM) + minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_PHARMACY) paycheck = PAYCHECK_MEDIUM paycheck_department = ACCOUNT_MED diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm index 61fbfacee25..ebdcdf9e71d 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -11,8 +11,8 @@ outfit = /datum/outfit/job/paramedic - access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS, ACCESS_EVA, ACCESS_ENGINE, ACCESS_CARGO, ACCESS_HYDROPONICS, ACCESS_RESEARCH) - minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CLONING, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS, ACCESS_EVA, ACCESS_ENGINE, ACCESS_CARGO, ACCESS_HYDROPONICS, ACCESS_RESEARCH) + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_GENETICS, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS, ACCESS_EVA, ACCESS_ENGINE, ACCESS_CARGO, ACCESS_HYDROPONICS, ACCESS_RESEARCH) + minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS, ACCESS_EVA, ACCESS_ENGINE, ACCESS_CARGO, ACCESS_HYDROPONICS, ACCESS_RESEARCH) paycheck = PAYCHECK_MEDIUM paycheck_department = ACCOUNT_MED diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index a1cb6240825..af1b50da708 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -62,7 +62,7 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S accessory = /obj/item/clothing/accessory/armband/engine if(SEC_DEPT_MEDICAL) ears = /obj/item/radio/headset/headset_sec/alt/department/med - dep_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING) + dep_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY) destination = /area/security/checkpoint/medical spawn_point = locate(/obj/effect/landmark/start/depsec/medical) in GLOB.department_security_spawns accessory = /obj/item/clothing/accessory/armband/medblue diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm index a3bb23b05f9..d2da4cce80b 100644 --- a/code/modules/jobs/job_types/virologist.dm +++ b/code/modules/jobs/job_types/virologist.dm @@ -13,7 +13,7 @@ outfit = /datum/outfit/job/virologist - access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_MECH_MEDICAL, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM) + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_MECH_MEDICAL, ACCESS_GENETICS, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_MEDICAL, ACCESS_VIROLOGY, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM) paycheck = PAYCHECK_MEDIUM paycheck_department = ACCOUNT_MED diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index b00b2795049..15917aef063 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -145,14 +145,6 @@ else icon_state = "book-5" -/obj/structure/bookcase/manuals/medical - name = "medical manuals bookcase" - -/obj/structure/bookcase/manuals/medical/Initialize() - . = ..() - new /obj/item/book/manual/wiki/medical_cloning(src) - update_icon() - /obj/structure/bookcase/manuals/engineering name = "engineering manuals bookcase" diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index ee81be5e3d4..1156297e98b 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -86,9 +86,6 @@ C.dna.copy_dna(brainmob.stored_dna) if(HAS_TRAIT(L, TRAIT_BADDNA)) brainmob.status_traits[TRAIT_BADDNA] = L.status_traits[TRAIT_BADDNA] - var/obj/item/organ/zombie_infection/ZI = L.getorganslot(ORGAN_SLOT_ZOMBIE) - if(ZI) - brainmob.set_species(ZI.old_species) //For if the brain is cloned if(L.mind && L.mind.current) L.mind.transfer_to(brainmob) to_chat(brainmob, "You feel slightly disoriented. That's normal when you're just a brain.") diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index bbe28e6ccc2..49b9dcf4299 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -90,7 +90,7 @@ GLOBAL_VAR(posibrain_notify_cooldown) if(user.suiciding) //if they suicided, they're out forever. to_chat(user, "[src] fizzles slightly. Sadly it doesn't take those who suicided!") return - var/posi_ask = alert("Become a [name]? (Warning, You can no longer be cloned, and all past lives will be forgotten!)","Are you positive?","Yes","No") + var/posi_ask = alert("Become a [name]? (Warning, You can no longer be revived, and all past lives will be forgotten!)","Are you positive?","Yes","No") if(posi_ask == "No" || QDELETED(src)) return if(brainmob.suiciding) //clear suicide status if the old occupant suicided. diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index fd225c74e44..a98b9815d21 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -618,7 +618,7 @@ Difficulty: Very Hard if(.) return if(ready_to_deploy) - var/be_helper = alert("Become a Lightgeist? (Warning, You can no longer be cloned!)",,"Yes","No") + var/be_helper = alert("Become a Lightgeist? (Warning, You can no longer be revived!)",,"Yes","No") if(be_helper == "Yes" && !QDELETED(src) && isobserver(user)) var/mob/living/simple_animal/hostile/lightgeist/W = new /mob/living/simple_animal/hostile/lightgeist(get_turf(loc)) W.key = user.key diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index f931fc712e9..624db6c1178 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -93,11 +93,10 @@ var/obj/parrot_perch = null var/obj/desired_perches = list(/obj/structure/frame/computer, /obj/structure/displaycase, \ /obj/structure/filingcabinet, /obj/machinery/teleport, \ - /obj/machinery/computer, /obj/machinery/clonepod, \ /obj/machinery/dna_scannernew, /obj/machinery/telecomms, \ /obj/machinery/nuclearbomb, /obj/machinery/particle_accelerator, \ /obj/machinery/recharge_station, /obj/machinery/smartfridge, \ - /obj/machinery/suit_storage_unit) + /obj/machinery/computer, /obj/machinery/suit_storage_unit) //Parrots are kleptomaniacs. This variable ... stores the item a parrot is holding. var/obj/item/held_item = null diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index a285bee3a14..44d1d48acb1 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -112,56 +112,56 @@ info = "This shouldn't be seen. Error DEVIL:6" /obj/item/paper/contract/infernal/power/update_text(signature = "____________", blood = 0) - info = "
Contract for infernal power



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for power and physical strength. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " + info = "
Contract for infernal power



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for power and physical strength. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/paper/contract/infernal/wealth/update_text(signature = "____________", blood = 0) - info = "
Contract for unlimited wealth



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a pocket that never runs out of valuable resources. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " + info = "
Contract for unlimited wealth



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a pocket that never runs out of valuable resources. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/paper/contract/infernal/prestige/update_text(signature = "____________", blood = 0) - info = "
Contract for prestige



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for prestige and esteem among my peers. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " + info = "
Contract for prestige



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for prestige and esteem among my peers. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/paper/contract/infernal/magic/update_text(signature = "____________", blood = 0) - info = "
Contract for magic



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for arcane abilities beyond normal human ability. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " + info = "
Contract for magic



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for arcane abilities beyond normal human ability. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/paper/contract/infernal/revive/update_text(signature = "____________", blood = 0) - info = "
Contract for resurrection



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for resurrection and curing of all injuries. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " + info = "
Contract for resurrection



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for resurrection and curing of all injuries. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/paper/contract/infernal/knowledge/update_text(signature = "____________", blood = 0) - info = "
Contract for knowledge



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for boundless knowledge. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " + info = "
Contract for knowledge



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for boundless knowledge. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/paper/contract/infernal/friend/update_text(signature = "____________", blood = 0) - info = "
Contract for a friend



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a friend. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " + info = "
Contract for a friend



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a friend. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/paper/contract/infernal/unwilling/update_text(signature = "____________", blood = 0) - info = "
Contract for slave



I, [target], hereby offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename]. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " + info = "
Contract for slave



I, [target], hereby offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename]. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index f8660c76c3d..ee4bae4af32 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -178,28 +178,12 @@ category = list ("Medical Machinery") departmental_flags = DEPARTMENTAL_FLAG_ALL -/datum/design/board/clonecontrol - name = "Computer Design (Cloning Machine Console)" - desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console." - id = "clonecontrol" - build_path = /obj/item/circuitboard/computer/cloning - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - category = list("Medical Machinery") - -/datum/design/board/clonepod - name = "Machine Design (Clone Pod)" - desc = "Allows for the construction of circuit boards used to build a Cloning Pod." - id = "clonepod" - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - build_path = /obj/item/circuitboard/machine/clonepod - category = list("Medical Machinery") - -/datum/design/board/clonescanner - name = "Machine Design (Cloning Scanner)" +/datum/design/board/dnascanner + name = "Machine Design (DNA Scanner)" desc = "Allows for the construction of circuit boards used to build a Cloning Scanner." - id = "clonescanner" + id = "dnascanner" departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - build_path = /obj/item/circuitboard/machine/clonescanner + build_path = /obj/item/circuitboard/machine/dnascanner category = list("Medical Machinery") /datum/design/board/biogenerator diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index b0869a09160..92ecdbfa67b 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -81,10 +81,10 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE -/datum/design/cloning_disk - name = "Cloning Data Disk" +/datum/design/dna_disk + name = "Genetic Data Disk" desc = "Produce additional disks for storing genetic data." - id = "cloning_disk" + id = "dna_disk" build_type = PROTOLATHE materials = list(/datum/material/iron = 300, /datum/material/glass = 100, /datum/material/silver = 50) build_path = /obj/item/disk/data diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 3f3980bda22..06d0c3c54f0 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -467,12 +467,12 @@ export_price = 5000 ////////////////////////Medical//////////////////////// -/datum/techweb_node/cloning - id = "cloning" +/datum/techweb_node/genetics + id = "genetics" display_name = "Genetic Engineering" - description = "We have the technology to make him." + description = "We have the technology to change him." prereq_ids = list("biotech") - design_ids = list("clonecontrol", "clonepod", "clonescanner", "scan_console", "cloning_disk") + design_ids = list("dnascanner", "scan_console", "dna_disk") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 diff --git a/code/modules/ruins/spaceruin_code/cloning_lab.dm b/code/modules/ruins/spaceruin_code/cloning_lab.dm deleted file mode 100644 index 338f62ee779..00000000000 --- a/code/modules/ruins/spaceruin_code/cloning_lab.dm +++ /dev/null @@ -1,35 +0,0 @@ -/obj/item/paper/fluff/ruins/exp_cloning/manual - name = "paper - 'H-11 Cloning Apparatus Manual" - info = {"

Getting Started

- Congratulations, you are testing the H-11 experimental cloning device!
- Using the H-11 is almost as simple as brain surgery! Simply insert the target humanoid into the scanning chamber and select the clone option to initiate cloning!
- That's all there is to it!
- Notice, cloning system cannot scan inorganic life or small primates. Scan may fail if subject has suffered extreme brain damage.
-

The provided CLONEPOD SYSTEM will produce the desired clone. Standard clone maturation times are roughly 90 seconds. - The cloning pod may be unlocked early after initial maturation is complete.


- Please note that resulting clones will have a DEVELOPMENTAL DEFECT as a result of genetic drift. We hope to reduce this through further testing.
- Clones may also experience memory loss and radical changes in personality as a result of the cloning process.

-
- This technology produced under license from Thinktronic Systems, LTD."} - -/obj/item/paper/fluff/ruins/exp_cloning/log - name = "experiment log" - info = {"

Day 1

- We are very excited to be part of the first crew of the SC Irmanda!
- This ship is made to test an innovative FTL technology. I had some concerns at first, \ - but the engineers assure me that it is safe and there is absolutely no risk of the external wings breaking off from the acceleration.
- We've been tasked with testing the latest model of the Thinktronic Cloning Pod. We'll stay in dock for a week before launching, but we're going to get started right away. \ - If the engine is as fast as they say, we might not have the time to run all the routine tests on the cloned subject!
-
-

Day 2

- We cloned an unknown corpse that was given to us by the medical crew. The genetic replication is good enough to let the subject survive outside of the pod, \ - but the cellular damage remains a concern for his long-term survival. For safety we will be keeping him in quarantine.
- We left him some books, but clearly we were too optimistic about his mental faculties. His brain seems to suffer from the same cloning decay that was caused by \ - the previous models. We will run further tests to see if there are improvements.
-

Day 4

- It seems we'll be launching even sooner than expected! Apparently the press is starting to lose interest, so we have to cut short the pre-flight checks \ - and give them something to talk about. Hopefully this will end up with increased funding...
- The crew has all been invited to the main hall, where we have seats for the initial FTL acceleration. Unfortunately the clone cannot leave the quarantine room \ - without risking infection, so we will strap him into the bed and hope for the best. We can grow another clone if anything goes wrong, anyway. -
- Professor Galen Linkovich"} diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index cace4bed55a..2819b9812f8 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -11,7 +11,6 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/machinery/teleport/station, /obj/machinery/teleport/hub, /obj/machinery/quantumpad, - /obj/machinery/clonepod, /obj/effect/mob_spawn, /obj/effect/hierophant, /obj/structure/receiving_pad, diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm index 0d5ac31d8c0..ab48ccb2921 100644 --- a/code/modules/vending/megaseed.dm +++ b/code/modules/vending/megaseed.dm @@ -29,7 +29,6 @@ /obj/item/seeds/potato = 3, /obj/item/seeds/poppy = 3, /obj/item/seeds/pumpkin = 3, - /obj/item/seeds/replicapod = 3, /obj/item/seeds/wheat/rice = 3, /obj/item/seeds/soya = 3, /obj/item/seeds/sugarcane = 3, @@ -42,14 +41,14 @@ /obj/item/seeds/wheat = 3, /obj/item/seeds/whitebeet = 3) contraband = list(/obj/item/seeds/amanita = 2, - /obj/item/seeds/glowshroom = 2, - /obj/item/seeds/liberty = 2, - /obj/item/seeds/nettle = 2, - /obj/item/seeds/plump = 2, - /obj/item/seeds/reishi = 2, - /obj/item/seeds/cannabis = 3, - /obj/item/seeds/starthistle = 2, - /obj/item/seeds/random = 2) + /obj/item/seeds/glowshroom = 2, + /obj/item/seeds/liberty = 2, + /obj/item/seeds/nettle = 2, + /obj/item/seeds/plump = 2, + /obj/item/seeds/reishi = 2, + /obj/item/seeds/cannabis = 3, + /obj/item/seeds/starthistle = 2, + /obj/item/seeds/random = 2) premium = list(/obj/item/reagent_containers/spray/waterflower = 1) refill_canister = /obj/item/vending_refill/hydroseeds default_price = 100 diff --git a/icons/obj/machines/cloning.dmi b/icons/obj/machines/cloning.dmi index de68060740e08bb09e0b17db4c8de9db2fad4dd7..a32fd11627b9c82339bf0ebb234384916d998e04 100644 GIT binary patch literal 11455 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 v$nszGvww_{*%i97pg3dUCH`W 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�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 Gg#JI#3elzj diff --git a/tgstation.dme b/tgstation.dme index d1f5933768d..589d8e2dd85 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -681,7 +681,6 @@ #include "code\game\machinery\Beacon.dm" #include "code\game\machinery\buttons.dm" #include "code\game\machinery\cell_charger.dm" -#include "code\game\machinery\cloning.dm" #include "code\game\machinery\constructable_frame.dm" #include "code\game\machinery\dance_machine.dm" #include "code\game\machinery\defibrillator_mount.dm" @@ -690,7 +689,6 @@ #include "code\game\machinery\dna_scanner.dm" #include "code\game\machinery\doppler_array.dm" #include "code\game\machinery\droneDispenser.dm" -#include "code\game\machinery\exp_cloner.dm" #include "code\game\machinery\fat_sucker.dm" #include "code\game\machinery\firealarm.dm" #include "code\game\machinery\flasher.dm" @@ -745,7 +743,6 @@ #include "code\game\machinery\computer\camera.dm" #include "code\game\machinery\computer\camera_advanced.dm" #include "code\game\machinery\computer\card.dm" -#include "code\game\machinery\computer\cloning.dm" #include "code\game\machinery\computer\communications.dm" #include "code\game\machinery\computer\crew.dm" #include "code\game\machinery\computer\dna_console.dm" @@ -2767,7 +2764,6 @@ #include "code\modules\ruins\spaceruin_code\bigderelict1.dm" #include "code\modules\ruins\spaceruin_code\caravanambush.dm" #include "code\modules\ruins\spaceruin_code\clericsden.dm" -#include "code\modules\ruins\spaceruin_code\cloning_lab.dm" #include "code\modules\ruins\spaceruin_code\crashedclownship.dm" #include "code\modules\ruins\spaceruin_code\crashedship.dm" #include "code\modules\ruins\spaceruin_code\deepstorage.dm"