From d5d4d9fdc1bd1fc79e272c0af66f0685a113c97d Mon Sep 17 00:00:00 2001 From: 4DPlanner <3combined@gmail.com> Date: Mon, 29 May 2017 00:02:37 +0100 Subject: [PATCH] Everyone is the traitor objectives removed properly, clears up duplicate code --- code/datums/antagonists/datum_traitor.dm | 4 +++- code/modules/admin/secrets.dm | 17 ++++------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/code/datums/antagonists/datum_traitor.dm b/code/datums/antagonists/datum_traitor.dm index 9d82bd63e9d..31fac55844a 100644 --- a/code/datums/antagonists/datum_traitor.dm +++ b/code/datums/antagonists/datum_traitor.dm @@ -27,7 +27,9 @@ A.verbs -= /mob/living/silicon/ai/proc/choose_modules A.malf_picker.remove_verbs(A) qdel(A.malf_picker) - owner.objectives -= objectives_given + for(var/O in objectives_given) + owner.objectives -= O + objectives_given = list() ..() /datum/antagonist/traitor/proc/add_objective(var/datum/objective/O) diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 555a701aace..a03038eb7ef 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -334,24 +334,15 @@ if(!objective) return SSblackbox.add_details("admin_secrets_fun_used","Traitor All ([objective])") - for(var/mob/living/carbon/human/H in GLOB.player_list) - if(H.stat == 2 || !H.client || !H.mind) continue + for(var/mob/living/H in GLOB.player_list) + if(!(istype(H, /mob/living/carbon/human)||istype(H, /mob/living/silicon/)) continue + if(H.stat == 2 || !H.client || !H.mind || ispAI(H)) continue if(is_special_character(H)) continue var/datum/antagonist/traitor/traitordatum = H.mind.add_antag_datum(ANTAG_DATUM_TRAITOR_CUSTOM) var/datum/objective/new_objective = new new_objective.owner = H new_objective.explanation_text = objective - H.mind.objectives += new_objective - traitordatum.greet() - for(var/mob/living/silicon/A in GLOB.player_list) - if(A.stat == 2 || !A.client || !A.mind) continue - if(ispAI(A)) continue - else if(is_special_character(A)) continue - var/datum/antagonist/traitor/traitordatum = A.mind.add_antag_datum(ANTAG_DATUM_TRAITOR_CUSTOM) - var/datum/objective/new_objective = new - new_objective.owner = A - new_objective.explanation_text = objective - A.mind.objectives += new_objective + traitordatum.add_objective(new_objective) traitordatum.greet() message_admins("[key_name_admin(usr)] used everyone is a traitor secret. Objective is [objective]") log_admin("[key_name(usr)] used everyone is a traitor secret. Objective is [objective]")