From 2d1f0dfc6f97d8677595c378085fe6c9e31e6a4a Mon Sep 17 00:00:00 2001 From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com> Date: Sat, 10 Jul 2021 14:23:06 +0200 Subject: [PATCH 1/9] Update traitor.dm --- code/game/gamemodes/traitor/traitor.dm | 45 ++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 65805fa2fde3..ab83881060fd 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -77,14 +77,15 @@ /datum/game_mode/traitor/post_setup() for(var/datum/mind/traitor in pre_traitors) var/datum/antagonist/traitor/new_antag = new antag_datum() - addtimer(CALLBACK(traitor, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(src, /datum/game_mode/traitor.proc/add_traitor_delayed, traitor), rand(2 MINUTES, (2 MINUTES + 10 SECONDS))) + if(!exchange_blue) exchange_blue = -1 //Block latejoiners from getting exchange objectives ..() //We're not actually ready until all traitors are assigned. gamemode_ready = FALSE - addtimer(VARSET_CALLBACK(src, gamemode_ready, TRUE), 101) + addtimer(VARSET_CALLBACK(src, gamemode_ready, TRUE), (2 MINUTES + 11 SECONDS)) return TRUE /datum/game_mode/traitor/make_antag_chance(mob/living/carbon/human/character) //Assigns traitor to latejoiners @@ -99,6 +100,46 @@ if(!(character.job in restricted_jobs)) add_latejoin_traitor(character.mind) +/datum/game_mode/traitor/proc/add_traitor_delayed(datum/mind/traitor) + if(!traitor) + create_new_traitor() + return + var/datum/antagonist/traitor/new_antag = new antag_datum() + traitor.add_antag_datum(new_antag) + +/datum/game_mode/traitor/proc/create_new_traitor() + var/list/potential_candidates = list() + for(var/mob/living/carbon/human/applicant in GLOB.player_list) + if(!applicant.client) + continue + if(!applicant.mind) + continue + if(!applicant.stat != CONSCIOUS) + continue + if(applicant.mind.assigned_role in protected_jobs) + continue + if(applicant.mind.assigned_role in restricted_jobs) + continue + if(applicant.mind.quiet_mode) + continue + if(HAS_TRAIT(applicant, TRAIT_MINDSHIELD)) + continue + if(is_banned_from(applicant.ckey, list(antag_flag, ROLE_SYNDICATE))) + continue + if(!(role in applicant.client.prefs.be_special)) + continue + if(!age_check(applicant.client)) + continue + potential_candidates += applicant + if(!potential_candidates) + return + var/mob/living/carbon/human/picked = pick(potential_candidates) + if(!picked || !picked.client) + return + var/datum/antagonist/traitor/new_antag = new antag_datum() + picked.mind.add_antag_datum(new_antag) + picked.mind.special_role = traitor_name + /datum/game_mode/traitor/proc/add_latejoin_traitor(datum/mind/character) var/datum/antagonist/traitor/new_antag = new antag_datum() character.add_antag_datum(new_antag) From 0f61bb0fbe7a14871f297f116d6c8d094440589a Mon Sep 17 00:00:00 2001 From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com> Date: Sat, 10 Jul 2021 14:25:32 +0200 Subject: [PATCH 2/9] Update traitor.dm --- code/game/gamemodes/traitor/traitor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index ab83881060fd..5878a2dd5667 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -101,7 +101,7 @@ add_latejoin_traitor(character.mind) /datum/game_mode/traitor/proc/add_traitor_delayed(datum/mind/traitor) - if(!traitor) + if(!traitor.current.client || (traitor.current.stat != CONSCIOUS)) create_new_traitor() return var/datum/antagonist/traitor/new_antag = new antag_datum() From e3d2a3de0f02638eced63b25d8d30fa320de0891 Mon Sep 17 00:00:00 2001 From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com> Date: Sat, 10 Jul 2021 22:07:10 +0200 Subject: [PATCH 3/9] Apply suggestions from code review --- code/game/gamemodes/traitor/traitor.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 5878a2dd5667..43ce58ac7749 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -76,7 +76,6 @@ /datum/game_mode/traitor/post_setup() for(var/datum/mind/traitor in pre_traitors) - var/datum/antagonist/traitor/new_antag = new antag_datum() addtimer(CALLBACK(src, /datum/game_mode/traitor.proc/add_traitor_delayed, traitor), rand(2 MINUTES, (2 MINUTES + 10 SECONDS))) if(!exchange_blue) @@ -120,13 +119,13 @@ continue if(applicant.mind.assigned_role in restricted_jobs) continue - if(applicant.mind.quiet_mode) + if(applicant.mind.quiet_round) continue if(HAS_TRAIT(applicant, TRAIT_MINDSHIELD)) continue if(is_banned_from(applicant.ckey, list(antag_flag, ROLE_SYNDICATE))) continue - if(!(role in applicant.client.prefs.be_special)) + if(!(antag_flag in applicant.client.prefs.be_special)) continue if(!age_check(applicant.client)) continue From 0b7336af93d39be2393828e231bb9dae28649c5f Mon Sep 17 00:00:00 2001 From: adamsong Date: Sun, 11 Jul 2021 12:40:22 -0400 Subject: [PATCH 4/9] Update code/game/gamemodes/traitor/traitor.dm --- code/game/gamemodes/traitor/traitor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 43ce58ac7749..0eb0c53fd86a 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -76,7 +76,7 @@ /datum/game_mode/traitor/post_setup() for(var/datum/mind/traitor in pre_traitors) - addtimer(CALLBACK(src, /datum/game_mode/traitor.proc/add_traitor_delayed, traitor), rand(2 MINUTES, (2 MINUTES + 10 SECONDS))) + addtimer(CALLBACK(src, /datum/game_mode/traitor.proc/add_traitor_delayed, traitor), rand(3 MINUTES, 5 MINUTES)) if(!exchange_blue) exchange_blue = -1 //Block latejoiners from getting exchange objectives From 879cb32c3aa47b57259c11763205480f797e5353 Mon Sep 17 00:00:00 2001 From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com> Date: Sun, 11 Jul 2021 19:57:39 +0200 Subject: [PATCH 5/9] Apply suggestions from code review --- code/game/gamemodes/traitor/traitor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 0eb0c53fd86a..43ce58ac7749 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -76,7 +76,7 @@ /datum/game_mode/traitor/post_setup() for(var/datum/mind/traitor in pre_traitors) - addtimer(CALLBACK(src, /datum/game_mode/traitor.proc/add_traitor_delayed, traitor), rand(3 MINUTES, 5 MINUTES)) + addtimer(CALLBACK(src, /datum/game_mode/traitor.proc/add_traitor_delayed, traitor), rand(2 MINUTES, (2 MINUTES + 10 SECONDS))) if(!exchange_blue) exchange_blue = -1 //Block latejoiners from getting exchange objectives From 285e591a0d545da2d544054817a6695ccc1a55dd Mon Sep 17 00:00:00 2001 From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com> Date: Sun, 11 Jul 2021 20:00:33 +0200 Subject: [PATCH 6/9] Apply suggestions from code review --- code/game/gamemodes/traitor/traitor.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 43ce58ac7749..4d190b9eab42 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -76,7 +76,7 @@ /datum/game_mode/traitor/post_setup() for(var/datum/mind/traitor in pre_traitors) - addtimer(CALLBACK(src, /datum/game_mode/traitor.proc/add_traitor_delayed, traitor), rand(2 MINUTES, (2 MINUTES + 10 SECONDS))) + addtimer(CALLBACK(src, /datum/game_mode/traitor.proc/add_traitor_delayed, traitor), rand(3 MINUTES, (5 MINUTES + 10 SECONDS))) if(!exchange_blue) exchange_blue = -1 //Block latejoiners from getting exchange objectives @@ -84,7 +84,7 @@ //We're not actually ready until all traitors are assigned. gamemode_ready = FALSE - addtimer(VARSET_CALLBACK(src, gamemode_ready, TRUE), (2 MINUTES + 11 SECONDS)) + addtimer(VARSET_CALLBACK(src, gamemode_ready, TRUE), (5 MINUTES + 11 SECONDS)) return TRUE /datum/game_mode/traitor/make_antag_chance(mob/living/carbon/human/character) //Assigns traitor to latejoiners From 67d7e80a8a888a856f196ef65fca1879ffe3d14a Mon Sep 17 00:00:00 2001 From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com> Date: Sun, 11 Jul 2021 20:31:35 +0200 Subject: [PATCH 7/9] Update code/game/gamemodes/traitor/traitor.dm --- code/game/gamemodes/traitor/traitor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 4d190b9eab42..ec3e3a727720 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -100,7 +100,7 @@ add_latejoin_traitor(character.mind) /datum/game_mode/traitor/proc/add_traitor_delayed(datum/mind/traitor) - if(!traitor.current.client || (traitor.current.stat != CONSCIOUS)) + if(!traitor || !traitor.current || !traitor.current.client || (traitor.current.stat != CONSCIOUS) || istype(traitor.current.loc, /obj/machinery/cryopod)) create_new_traitor() return var/datum/antagonist/traitor/new_antag = new antag_datum() From 6ab691e7c02b2bef1d98099fd215244a8c7aa250 Mon Sep 17 00:00:00 2001 From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com> Date: Sun, 11 Jul 2021 20:32:40 +0200 Subject: [PATCH 8/9] Update code/game/gamemodes/traitor/traitor.dm --- code/game/gamemodes/traitor/traitor.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index ec3e3a727720..6ac51f64b9ba 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -131,6 +131,7 @@ continue potential_candidates += applicant if(!potential_candidates) + message_admins("Failed to find new antag after original one left! Check the antag balance please.") return var/mob/living/carbon/human/picked = pick(potential_candidates) if(!picked || !picked.client) From 75e9fd8e1886b737fbb70f2f78352140296f02c4 Mon Sep 17 00:00:00 2001 From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com> Date: Sat, 14 Aug 2021 15:01:02 +0200 Subject: [PATCH 9/9] Update traitor.dm --- code/game/gamemodes/traitor/traitor.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 6ac51f64b9ba..11465204739e 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -119,6 +119,8 @@ continue if(applicant.mind.assigned_role in restricted_jobs) continue + if(!(applicant.mind.assigned_role in GLOB.command_positions + GLOB.engineering_positions + GLOB.medical_positions + GLOB.science_positions + GLOB.supply_positions + GLOB.civilian_positions + GLOB.security_positions + list("AI", "Cyborg"))) + continue if(applicant.mind.quiet_round) continue if(HAS_TRAIT(applicant, TRAIT_MINDSHIELD))