diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm
index f7d5e53da47..4c7cd8eb4e8 100644
--- a/_maps/map_files/tgstation.2.1.3.dmm
+++ b/_maps/map_files/tgstation.2.1.3.dmm
@@ -5935,6 +5935,7 @@
"ckv" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office)
"ckw" = (/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/pill/kelotane{pixel_x = -3; pixel_y = -8},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office)
"ckx" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/closet/radiation,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering)
+"cky" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
"ckz" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/atmos)
"ckA" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id = "mair_in_meter"; name = "Mixed Air Tank In"},/turf/simulated/wall/r_wall,/area/atmos)
"ckB" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id = "mair_out_meter"; name = "Mixed Air Tank Out"},/turf/simulated/wall/r_wall,/area/atmos)
@@ -6076,6 +6077,7 @@
"cnn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/engineering)
"cno" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/engineering)
"cnp" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/engineering)
+"cnq" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "engine"},/area/syndicate_mothership)
"cnr" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"cns" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"cnt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
@@ -7006,9 +7008,9 @@
"cFm" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"cFn" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/syndicate_mothership)
"cFo" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership)
-"cFp" = (/turf/unsimulated/floor,/area/syndicate_mothership)
-"cFq" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor,/area/syndicate_mothership)
-"cFr" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/unsimulated/floor,/area/syndicate_mothership)
+"cFp" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"cFq" = (/turf/unsimulated/floor{icon_state = "engine"},/area/syndicate_mothership)
+"cFr" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/unsimulated/floor{icon_state = "engine"},/area/syndicate_mothership)
"cFs" = (/turf/space,/area/tdome/tdomeobserve)
"cFt" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
"cFu" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership)
@@ -7030,10 +7032,9 @@
"cFK" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
"cFL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
"cFM" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"cFN" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"cFN" = (/obj/machinery/computer/syndicate_station/recall,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"cFO" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
"cFP" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"cFQ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "150"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
"cFR" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
"cFS" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve)
"cFT" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
@@ -9544,14 +9545,14 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah
ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcDAcDBcDCcDDcDDcDDcDEcDBcDFcCPcCPcCPcCPcDicCPcDwcCQcDwcCQcCPcCRcCPcCRcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcDGcDGcDHcDIcDJcDKcDLcDGcDGcAlcCocCocCocCpcBFcBGcBHcAQcDxcDxcDxcDxcAQcDMcBxcBxcDNcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcDBcDOcDPcDQcDRcDScDTcDTcDBcDUcCPcCPcDwcCEcCEcDVcDWcCEcCEcDwcDXcDYcDwcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcDZcEacEbcEccEdcEecEbcEacDZcAlcCocEfcEgcEhcAlahlahlcAQcEicEicEjcEjcAQcBycBxcBxcDzcBAahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcDBcEkcDPcDPcElcDPcDPcDPcDBcDUcCPcEmcCEcCEcEncEocEocEncCEcCEcCEcCEcCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcEacEpcEqcEccEdcEecEqcErcEacAlcCocEscEtcEucAlahlahlcEvcBlcEwcEwcEwcEwcEwcEwcEwcBlcExahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
-ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcDBcEycDPcDPcDPcEzcDPcEAcDBcDUcDicEmcCEcEBcEBcEBcEBcEBcEBcEBcEBdpxdtdcEDcEEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcEFcEacEFcEccEdcEecEFcEacEFcAlcCocCocCocCocAlahlahlahlcEvcEGcEGcEGcEGcEGcEGcEGcExahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
+ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcDBcEycDPcDPcDPcEzcDPcEAcDBcDUcDicEmcCEcFNcEBcEBcEBcEBcEBcEBcEBdpxdtdcEDcEEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcEFcEacEFcEccEdcEecEFcEacEFcAlcCocCocCocCocAlahlahlahlcEvcEGcEGcEGcEGcEGcEGcEGcExahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcEHcDBcDBcDBcEIcDBcDBcDBcEJcCPcCPcEKcCEcELcEMcEMcEBcEBcEBcEBcEBcENcEOcEOcEOcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcEPcEacEacEccEdcEecEacEacEQcAlcERcEScEScETcAlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcDBcEUcDPcEVcDBcEWcDwcDwcDwcEXcCEcEBcEYcEZcEMcEBcEBcFacFbdpxcFccFdcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcFecFfcFfcEccEdcEecFgcFgcFhcAlcAlcFicAlcAlcAlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
-ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcDBcDPcDPcDPcDBcFjcFkcFkcDWcCEcCEcEBcFlcFmcEMcEBcEBcFacFncCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcDGcDGcDGcDGcEdcDGcDGcDGcDGcAlcApcApcApcApcAlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
-ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcDAcDBcDBcDBcDBcDBcDPcDPcDPcDBcFocFpcFpcFpcFqcFrcEBcEBcEBcEBcEBcEBcFacFncCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDGcEdcDGcFscFscFscApcApcApcApcApcAlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
-ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcDBcEAcDPcDPcFtcDBcDPcDPcDPcDBcFucFqcDVcDWcCEcCEcEBcEMcEMcEMcEBcEBcFacFvcCEcFwcFxcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDGcDGcDGcDGcDGcDGcDGcDGcDJcDGcDGcDGcDGcDGcDGcDGcDGcAlcAlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
+ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcDBcDPcDPcDPcDBcFjcFkcFkcFkcDWcCEcEBcFlcFmcEMcEBcEBcFacFncCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcDGcDGcDGcDGcEdcDGcDGcDGcDGcAlcApcApcApcApcAlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
+ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcDAcDBcDBcDBcDBcDBcDPcDPcDPcDBcFocFqcFqcFqcFqcFrcEBcEBcEBcEBcEBcEBcFacFncCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDGcEdcDGcFscFscFscApcApcApcApcApcAlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
+ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcDBcEAcDPcDPcFtcDBcDPcDPcDPcDBcFucnqcDVcFkcDWcCEcFpcEMcEMcEMcEBcEBcFacFvcCEcFwcFxcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDGcDGcDGcDGcDGcDGcDGcDGcDJcDGcDGcDGcDGcDGcDGcDGcDGcAlcAlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcDBcEAcDPcFycFzcDBcDPcDPcDPcDBcDBcFAcFBcDFcFCcCEcFDcFEcFFcFEcFEcEBcEBcEBcFGcFHcFHcFIcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDGcFJcFKcFKcFKcFKcFKcFJcFJcFJcFKcFKcFKcFKcFKcFJcDGahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
-ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcFLcCPcDBcEAcDPcFycFMcDBcDPcDPcDPcDBcDPcDPcDPcDBcEKcCEcFNcFOcFPcFOcFQcEBcEBcEBcCEcFRdtccFIcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcFScFJcFJcFJcFTcFJcFJcFJcFJcFJcFJcFJcFTcFJcFJcFJcFSahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
+ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcFLcCPcDBcEAcDPcFycFMcDBcDPcDPcDPcDBcDPcDPcDPcDBcEKcCEcFPcFOcFPcFPckycEBcEBcEBcCEcFRdtccFIcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcFScFJcFJcFJcFTcFJcFJcFJcFJcFJcFJcFJcFTcFJcFJcFJcFSahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcDBcEAcDPcDPcDPcFUcDPcDPcDPcFVcDPcDPcDPcDBcEmcCEcCEcFbcFWcFXcFYcCEcCEcCEcCEcCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDGcFJcFKcFKcFKcFKcFKcFJcFJcFJcFKcFKcFKcFKcFKcFJcDGahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcDBcEAcDPcDPcDPcFZcDPcDPcDPcGacDPcDPcGbcDBcGccFCcCEcCEcCEcCEcCEcCEahlahlahlahlahlahlahlahlahlcGdcGdcGdcGdcGdcGdcGdcGdcGdcGdcGdcGdahlahlahlahlahlahlahlahlahlahlcDGcDKcGecGecGecGecGecGecGecGecGecGecGecGecGecDIcDGahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcDAcDBcDBcDBcDBcDBcDBcGfcDPcDPcDBcDBcDBcDBcDBcDBcDFcFCcCEahlahlahlahlahlahlahlahlahlahlahlahlahlcGdcGgcGhcGicGjcGkcGlcGdcGmcGncGocGdahlahlcGpcGpcGpcGpcGpcGpcGpcGpcGpcGqcGrcGrcGrcGrcGrcGrcGrcGrcGrcGrcGrcGrcGrcGqcGpcGpcGpcGpcGpcGpcGpcGpcGpahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 089c9cb2cf1..c545231c37f 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -994,21 +994,16 @@
ticker.mode.finalize_traitor(src)
ticker.mode.greet_traitor(src)
-/datum/mind/proc/make_Nuke()
+/datum/mind/proc/make_Nuke(var/turf/spawnloc,var/nuke_code,var/leader=0)
if(!(src in ticker.mode.syndicates))
ticker.mode.syndicates += src
ticker.mode.update_synd_icons_added(src)
- if (ticker.mode.syndicates.len==1)
- ticker.mode.prepare_syndicate_leader(src)
- else
- current.real_name = "[syndicate_name()] Operative #[ticker.mode.syndicates.len-1]"
special_role = "Syndicate"
assigned_role = "MODE"
- current << "You are a [syndicate_name()] agent!"
ticker.mode.forge_syndicate_objectives(src)
ticker.mode.greet_syndicate(src)
- current.loc = get_turf(locate("landmark*Syndicate-Spawn"))
+ current.loc = spawnloc
var/mob/living/carbon/human/H = current
qdel(H.belt)
@@ -1023,6 +1018,11 @@
ticker.mode.equip_syndicate(current)
+ if (leader)
+ ticker.mode.prepare_syndicate_leader(src,nuke_code)
+ else
+ current.real_name = "[syndicate_name()] Operative #[ticker.mode.syndicates.len-1]"
+
/datum/mind/proc/make_Changling()
if(!(src in ticker.mode.changelings))
ticker.mode.changelings += src
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index aefcfc70c47..1f76f1eda96 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -100,7 +100,6 @@
for(var/obj/effect/landmark/A in landmarks_list)
if(A.name == "Syndicate-Spawn")
synd_spawn += get_turf(A)
- qdel(A)
continue
var/obj/effect/landmark/uplinklocker = locate("landmark*Syndicate-Uplink") //i will be rewriting this shortly
@@ -113,7 +112,7 @@
for(var/datum/mind/synd_mind in syndicates)
if(spawnpos > synd_spawn.len)
- spawnpos = 1
+ spawnpos = 2
synd_mind.current.loc = synd_spawn[spawnpos]
forge_syndicate_objectives(synd_mind)
@@ -145,19 +144,27 @@
spawn(1)
NukeNameAssign(nukelastname(synd_mind.current),syndicates) //allows time for the rest of the syndies to be chosen
synd_mind.current.real_name = "[syndicate_name()] [leader_title]"
+
+
if (nuke_code)
synd_mind.store_memory("Syndicate Nuclear Bomb Code: [nuke_code]", 0, 0)
synd_mind.current << "The nuclear authorization code is: [nuke_code]"
+
+ var/list/foundIDs = synd_mind.current.search_contents_for(/obj/item/weapon/card/id)
+
+ if(foundIDs.len)
+ for(var/obj/item/weapon/card/id/ID in foundIDs)
+ ID.access += access_syndicate_leader
+ else
+ message_admins("Warning: Nuke Ops spawned without access to leave their spawn area!")
+
var/obj/item/weapon/paper/P = new
P.info = "The nuclear authorization code is: [nuke_code]"
P.name = "nuclear bomb code"
- if (ticker.mode.config_tag=="nuclear")
- P.loc = synd_mind.current.loc
- else
- var/mob/living/carbon/human/H = synd_mind.current
- P.loc = H.loc
- H.equip_to_slot_or_del(P, slot_r_store, 0)
- H.update_icons()
+ var/mob/living/carbon/human/H = synd_mind.current
+ P.loc = H.loc
+ H.equip_to_slot_or_del(P, slot_r_store, 0)
+ H.update_icons()
else
nuke_code = "code will be provided later"
diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm
index a9ee8f00c16..77b0f22bb85 100644
--- a/code/game/jobs/access.dm
+++ b/code/game/jobs/access.dm
@@ -79,6 +79,7 @@
//The Syndicate
/var/const/access_syndicate = 150//General Syndicate Access
+/var/const/access_syndicate_leader = 151//Nuke Op Leader Access
/obj/var/list/req_access = null
/obj/var/req_access_txt = "0"
@@ -206,7 +207,7 @@
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)
/proc/get_all_syndicate_access()
- return list(access_syndicate)
+ return list(access_syndicate, access_syndicate)
/proc/get_region_accesses(var/code)
switch(code)
diff --git a/code/game/machinery/computer/syndicate_shuttle.dm b/code/game/machinery/computer/syndicate_shuttle.dm
index 6757442453e..2c2b34faf52 100644
--- a/code/game/machinery/computer/syndicate_shuttle.dm
+++ b/code/game/machinery/computer/syndicate_shuttle.dm
@@ -1,40 +1,45 @@
#define SYNDICATE_SHUTTLE_MOVE_TIME 240
#define SYNDICATE_SHUTTLE_COOLDOWN 200
+/var/area/synd_shuttle_curr_location
+/var/synd_shuttle_moving = 0
+/var/synd_shuttle_lastMove = 0
+
/obj/machinery/computer/syndicate_station
name = "syndicate shuttle terminal"
icon = 'icons/obj/computer.dmi'
icon_state = "syndishuttle"
req_access = list(access_syndicate)
- var/area/curr_location
- var/moving = 0
- var/lastMove = 0
+ var/recall_only = 0
+/obj/machinery/computer/syndicate_station/recall
+ name = "syndicate shuttle recall terminal"
+ recall_only = 1
/obj/machinery/computer/syndicate_station/New()
- curr_location= locate(/area/syndicate_station/start)
+ synd_shuttle_curr_location= locate(/area/syndicate_station/start)
/obj/machinery/computer/syndicate_station/proc/syndicate_move_to(area/destination as area)
- if(moving) return
- if(lastMove + SYNDICATE_SHUTTLE_COOLDOWN > world.time) return
+ if(synd_shuttle_moving) return
+ if(synd_shuttle_lastMove + SYNDICATE_SHUTTLE_COOLDOWN > world.time) return
var/area/dest_location = locate(destination)
- if(curr_location == dest_location) return
+ if(synd_shuttle_curr_location == dest_location) return
- moving = 1
- lastMove = world.time
+ synd_shuttle_moving = 1
+ synd_shuttle_lastMove = world.time
- if(curr_location.z != dest_location.z)
+ if(synd_shuttle_curr_location.z != dest_location.z)
var/area/transit_location = locate(/area/syndicate_station/transit)
- curr_location.move_contents_to(transit_location)
- curr_location = transit_location
- curr_location.has_gravity = 0
+ synd_shuttle_curr_location.move_contents_to(transit_location)
+ synd_shuttle_curr_location = transit_location
+ synd_shuttle_curr_location.has_gravity = 0
transit_location.has_gravity = 1
sleep(SYNDICATE_SHUTTLE_MOVE_TIME)
- curr_location.move_contents_to(dest_location)
- curr_location = dest_location
- moving = 0
+ synd_shuttle_curr_location.move_contents_to(dest_location)
+ synd_shuttle_curr_location = dest_location
+ synd_shuttle_moving = 0
return 1
/obj/machinery/computer/syndicate_station/attack_hand(mob/user as mob)
@@ -44,17 +49,18 @@
user.set_machine(src)
- var/dat = {"Location: [curr_location]
- Ready to move[max(lastMove + SYNDICATE_SHUTTLE_COOLDOWN - world.time, 0) ? " in [max(round((lastMove + SYNDICATE_SHUTTLE_COOLDOWN - world.time) * 0.1), 0)] seconds" : ": now"]
- Syndicate Space
- North West of SS13 |
- North of SS13 |
- North East of SS13
- South West of SS13 |
- South of SS13 |
- South East of SS13
- North East of the Mining Asteroid
- Close"}
+ var/dat = {"Location: [synd_shuttle_curr_location]
+ Ready to move[max(synd_shuttle_lastMove + SYNDICATE_SHUTTLE_COOLDOWN - world.time, 0) ? " in [max(round((synd_shuttle_lastMove + SYNDICATE_SHUTTLE_COOLDOWN - world.time) * 0.1), 0)] seconds" : ": now"]
+ Syndicate Space
"}
+ if(!recall_only)
+ dat += {"North West of SS13 |
+ North of SS13 |
+ North East of SS13
+ South West of SS13 |
+ South of SS13 |
+ South East of SS13
+ North East of the Mining Asteroid
+ Close"}
user << browse(dat, "window=computer;size=575x450")
onclose(user, "computer")
@@ -71,22 +77,21 @@
if(href_list["syndicate"])
syndicate_move_to(/area/syndicate_station/start)
- else if(href_list["station_nw"])
- syndicate_move_to(/area/syndicate_station/northwest)
- else if(href_list["station_n"])
- syndicate_move_to(/area/syndicate_station/north)
- else if(href_list["station_ne"])
- syndicate_move_to(/area/syndicate_station/northeast)
- else if(href_list["station_sw"])
- syndicate_move_to(/area/syndicate_station/southwest)
- else if(href_list["station_s"])
- syndicate_move_to(/area/syndicate_station/south)
- else if(href_list["station_se"])
- syndicate_move_to(/area/syndicate_station/southeast)
-// else if(href_list["commssat"])
-// syndicate_move_to(/area/syndicate_station/commssat)
- else if(href_list["mining"])
- syndicate_move_to(/area/syndicate_station/mining)
+ else if(!recall_only)
+ if(href_list["station_nw"])
+ syndicate_move_to(/area/syndicate_station/northwest)
+ else if(href_list["station_n"])
+ syndicate_move_to(/area/syndicate_station/north)
+ else if(href_list["station_ne"])
+ syndicate_move_to(/area/syndicate_station/northeast)
+ else if(href_list["station_sw"])
+ syndicate_move_to(/area/syndicate_station/southwest)
+ else if(href_list["station_s"])
+ syndicate_move_to(/area/syndicate_station/south)
+ else if(href_list["station_se"])
+ syndicate_move_to(/area/syndicate_station/southeast)
+ else if(href_list["mining"])
+ syndicate_move_to(/area/syndicate_station/mining)
updateUsrDialog()
return
\ No newline at end of file
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index b12a431043d..21875856b58 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -256,53 +256,40 @@ client/proc/one_click_antag()
//Making sure we have atleast 3 Nuke agents, because less than that is kinda bad
if(agentcount < 3)
return 0
- else
- for(var/mob/c in chosen)
- var/mob/living/carbon/human/new_character=makeBody(c)
- new_character.mind.make_Nuke()
-
- var/obj/effect/landmark/nuke_spawn = locate("landmark*Syndicate-Uplink")
- var/obj/effect/landmark/closet_spawn = locate("landmark*Nuclear-Closet")
+ var/obj/effect/landmark/nuke_spawn = locate("landmark*Nuclear-Bomb")
+ var/obj/effect/landmark/closet_spawn = locate("landmark*Syndicate-Uplink")
var/nuke_code = "[rand(10000, 99999)]"
if(nuke_spawn)
- var/obj/item/weapon/paper/P = new
- P.info = "Sadly, the Syndicate could not get you a nuclear bomb. We have, however, acquired the arming code for the station's onboard nuke. The nuclear authorization code is: [nuke_code]"
- P.name = "nuclear bomb code and instructions"
- P.loc = nuke_spawn.loc
+ var/obj/machinery/nuclearbomb/the_bomb = new /obj/machinery/nuclearbomb(nuke_spawn.loc)
+ the_bomb.r_code = nuke_code
if(closet_spawn)
new /obj/structure/closet/syndicate/nuclear(closet_spawn.loc)
- for (var/obj/effect/landmark/A in /area/syndicate_station/start)//Because that's the only place it can BE -Sieve
- if (A.name == "Syndicate-Gear-Closet")
- new /obj/structure/closet/syndicate/personal(A.loc)
- qdel(A)
+ //Let's find the spawn locations
+ var/list/turf/synd_spawn = list()
+ for(var/obj/effect/landmark/A in landmarks_list)
+ if(A.name == "Syndicate-Spawn")
+ synd_spawn += get_turf(A)
continue
- if (A.name == "Syndicate-Bomb")
- new /obj/effect/spawner/newbomb/timer/syndicate(A.loc)
- qdel(A)
- continue
+ var/leader_chosen
+ var/spawnpos = 1 //Decides where they'll spawn. 1=leader.
- for(var/datum/mind/synd_mind in ticker.mode.syndicates)
- if(synd_mind.current)
- if(synd_mind.current.client)
- for(var/image/I in synd_mind.current.client.images)
- if(I.icon_state == "synd")
- del(I)
+ for(var/mob/c in chosen)
+ if(spawnpos > synd_spawn.len)
+ spawnpos = 2 //Ran out of spawns. Let's loop back to the first non-leader position
+ var/mob/living/carbon/human/new_character=makeBody(c)
+ if(!leader_chosen)
+ leader_chosen = 1
+ new_character.mind.make_Nuke(synd_spawn[spawnpos],nuke_code,1)
+ else
+ new_character.mind.make_Nuke(synd_spawn[spawnpos],nuke_code)
+ spawnpos++
- for(var/datum/mind/synd_mind in ticker.mode.syndicates)
- if(synd_mind.current)
- if(synd_mind.current.client)
- for(var/datum/mind/synd_mind_1 in ticker.mode.syndicates)
- if(synd_mind_1.current)
- var/I = image('icons/mob/mob.dmi', loc = synd_mind_1.current, icon_state = "synd")
- synd_mind.current.client.images += I
-
- for (var/obj/machinery/nuclearbomb/bomb in world)
- bomb.r_code = nuke_code // All the nukes are set to this code.
+ ticker.mode.update_all_synd_icons()
return 1