From 908cac5ac0472a85d08e478f8885c3f91af53593 Mon Sep 17 00:00:00 2001 From: ikarrus Date: Sun, 31 Aug 2014 19:27:41 -0600 Subject: [PATCH 1/4] Quick-Create Nuke Ops Actually Working - A nuke will actually spawn with them - The armory closet (pinpointers, etc) will actually spawn - Cleaned up code --- code/datums/mind.dm | 4 +- code/game/gamemodes/nuclear/nuclear.dm | 3 +- code/modules/admin/verbs/one_click_antag.dm | 46 ++++----------------- 3 files changed, 11 insertions(+), 42 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 089c9cb2cf1..d37b4ebebad 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -994,12 +994,12 @@ ticker.mode.finalize_traitor(src) ticker.mode.greet_traitor(src) -/datum/mind/proc/make_Nuke() +/datum/mind/proc/make_Nuke(var/nuke_code) 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) + ticker.mode.prepare_syndicate_leader(src,nuke_code) else current.real_name = "[syndicate_name()] Operative #[ticker.mode.syndicates.len-1]" special_role = "Syndicate" diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index aefcfc70c47..ba2b2112a66 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -151,8 +151,7 @@ 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 + P.loc = synd_mind.current.loc else var/mob/living/carbon/human/H = synd_mind.current P.loc = H.loc diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index b12a431043d..b4d04356dcf 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -256,53 +256,23 @@ 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) - continue + for(var/mob/c in chosen) + var/mob/living/carbon/human/new_character=makeBody(c) + new_character.mind.make_Nuke(nuke_code) - if (A.name == "Syndicate-Bomb") - new /obj/effect/spawner/newbomb/timer/syndicate(A.loc) - qdel(A) - continue - - 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/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 From 5e83e04ebe63673d88c332d44138efe3ab9a5293 Mon Sep 17 00:00:00 2001 From: ikarrus Date: Sun, 31 Aug 2014 19:33:48 -0600 Subject: [PATCH 2/4] Code actually working, too --- code/game/gamemodes/nuclear/nuclear.dm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index ba2b2112a66..dee7d125226 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -151,12 +151,10 @@ var/obj/item/weapon/paper/P = new P.info = "The nuclear authorization code is: [nuke_code]" P.name = "nuclear bomb code" - 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" From 9323f11d84c146632f070145b415eec9d81ec585 Mon Sep 17 00:00:00 2001 From: ikarrus Date: Sun, 31 Aug 2014 20:51:42 -0600 Subject: [PATCH 3/4] Syndicate Base Update - Only syndicate leaders spawn in the TC management area - TC management area locked to syndicate leader's ID card. - Shutters control button locked to syndicate leader's ID card - Added shuttle recall console to syndicate base for those left behind/AFK/spawned in late. --- _maps/map_files/tgstation.2.1.3.dmm | 21 +++-- code/game/gamemodes/nuclear/nuclear.dm | 11 +++ code/game/jobs/access.dm | 3 +- .../machinery/computer/syndicate_shuttle.dm | 91 ++++++++++--------- 4 files changed, 72 insertions(+), 54 deletions(-) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index ff49f8ed559..104dcc53ef0 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -5950,6 +5950,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) @@ -6097,6 +6098,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) @@ -7031,9 +7033,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) @@ -7055,10 +7057,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) @@ -9572,14 +9573,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/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index aefcfc70c47..d4493d2f97f 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -145,9 +145,20 @@ 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" 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 From 3e4378f75f30007f800127afb96828635e6eb651 Mon Sep 17 00:00:00 2001 From: ikarrus Date: Sun, 31 Aug 2014 21:27:32 -0600 Subject: [PATCH 4/4] - A leader will always be chosen - Nuke ops will all stop spawning on the same spawn location (TC management console) --- code/datums/mind.dm | 14 +++++++------- code/game/gamemodes/nuclear/nuclear.dm | 3 +-- code/modules/admin/verbs/one_click_antag.dm | 19 ++++++++++++++++++- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index d37b4ebebad..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(var/nuke_code) +/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,nuke_code) - 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 dee7d125226..2fa742a3e36 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) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index b4d04356dcf..21875856b58 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -268,9 +268,26 @@ client/proc/one_click_antag() if(closet_spawn) new /obj/structure/closet/syndicate/nuclear(closet_spawn.loc) + //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 + + var/leader_chosen + var/spawnpos = 1 //Decides where they'll spawn. 1=leader. + 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) - new_character.mind.make_Nuke(nuke_code) + 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++ ticker.mode.update_all_synd_icons()