From 3e4378f75f30007f800127afb96828635e6eb651 Mon Sep 17 00:00:00 2001 From: ikarrus Date: Sun, 31 Aug 2014 21:27:32 -0600 Subject: [PATCH] - 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()