From 3fef96e3d18dc250b8aae778ef97803dcb89815b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 26 Mar 2018 04:30:03 -0500 Subject: [PATCH] [MIRROR] Fixes ninja objectives remaining when ninja antag removed (#6105) * Merge pull request #36672 from YPOQ/objectivefix Fixes ninja objectives remaining when ninja antag removed * Fixes ninja objectives remaining when ninja antag removed --- .../modules/antagonists/_common/antag_datum.dm | 1 + .../antagonists/brainwashing/brainwashing.dm | 4 ---- code/modules/antagonists/brother/brother.dm | 1 - .../antagonists/changeling/changeling.dm | 1 - code/modules/antagonists/cult/cult.dm | 4 ---- .../modules/antagonists/greentext/greentext.dm | 4 ---- .../antagonists/highlander/highlander.dm | 4 ---- code/modules/antagonists/ninja/ninja.dm | 3 ++- code/modules/antagonists/official/official.dm | 2 +- .../antagonists/revenant/revenant_antag.dm | 4 ++-- .../traitor/IAA/internal_affairs.dm | 18 +++++++++--------- .../antagonists/traitor/datum_traitor.dm | 5 +---- .../antagonists/valentines/heartbreaker.dm | 4 ---- .../antagonists/valentines/valentine.dm | 3 --- code/modules/antagonists/wizard/wizard.dm | 2 -- 15 files changed, 16 insertions(+), 44 deletions(-) diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 1ea471a346..1e7d3303d6 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -95,6 +95,7 @@ GLOBAL_LIST_EMPTY(antagonists) LAZYREMOVE(owner.antag_datums, src) if(!silent && owner.current) farewell() + owner.objectives -= objectives var/datum/team/team = get_team() if(team) team.remove_member(owner) diff --git a/code/modules/antagonists/brainwashing/brainwashing.dm b/code/modules/antagonists/brainwashing/brainwashing.dm index 1bc14ec8b3..f1cff2bff4 100644 --- a/code/modules/antagonists/brainwashing/brainwashing.dm +++ b/code/modules/antagonists/brainwashing/brainwashing.dm @@ -36,10 +36,6 @@ owner.objectives |= objectives . = ..() -/datum/antagonist/brainwashed/on_removal() - owner.objectives -= objectives - . = ..() - /datum/antagonist/brainwashed/greet() to_chat(owner, "Your mind reels as it begins focusing on a single purpose...") to_chat(owner, "Follow the Directives, at any cost!") diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm index 9df812822c..9b30be5e69 100644 --- a/code/modules/antagonists/brother/brother.dm +++ b/code/modules/antagonists/brother/brother.dm @@ -26,7 +26,6 @@ /datum/antagonist/brother/on_removal() SSticker.mode.brothers -= owner - owner.objectives -= objectives if(owner.current) to_chat(owner.current,"You are no longer the [special_role]!") owner.special_role = null diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index afbe823354..dca2a364a9 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -85,7 +85,6 @@ B.vital = TRUE B.decoy_override = FALSE remove_changeling_powers() - owner.objectives -= objectives . = ..() /datum/antagonist/changeling/proc/remove_clownmut() diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index a31f29efe0..ae8bec2537 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -37,9 +37,6 @@ objectives |= cult_team.objectives owner.objectives |= objectives -/datum/antagonist/cult/proc/remove_objectives() - owner.objectives -= objectives - /datum/antagonist/cult/Destroy() QDEL_NULL(communion) QDEL_NULL(vote) @@ -130,7 +127,6 @@ current.clear_alert("bloodsense") /datum/antagonist/cult/on_removal() - remove_objectives() SSticker.mode.cult -= owner SSticker.mode.update_cult_icons_removed(owner) if(!silent) diff --git a/code/modules/antagonists/greentext/greentext.dm b/code/modules/antagonists/greentext/greentext.dm index 469eeb9882..ffaab71aca 100644 --- a/code/modules/antagonists/greentext/greentext.dm +++ b/code/modules/antagonists/greentext/greentext.dm @@ -13,7 +13,3 @@ /datum/antagonist/greentext/on_gain() forge_objectives() . = ..() - -/datum/antagonist/greentext/on_removal() - owner.objectives -= objectives - . = ..() \ No newline at end of file diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index aeca9c18bd..012527ff7b 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -12,10 +12,6 @@ var/mob/living/L = owner.current || mob_override L.remove_trait(TRAIT_NOGUNS, "highlander") -/datum/antagonist/highlander/on_removal() - owner.objectives -= objectives - . = ..() - /datum/antagonist/highlander/proc/forge_objectives() var/datum/objective/steal/steal_objective = new steal_objective.owner = owner diff --git a/code/modules/antagonists/ninja/ninja.dm b/code/modules/antagonists/ninja/ninja.dm index 385c9c5f47..f157bc6080 100644 --- a/code/modules/antagonists/ninja/ninja.dm +++ b/code/modules/antagonists/ninja/ninja.dm @@ -90,9 +90,9 @@ break var/datum/objective/O = new /datum/objective/survive() O.owner = owner + objectives += O owner.objectives |= objectives - /proc/remove_ninja(mob/living/L) if(!L || !L.mind) return FALSE @@ -109,6 +109,7 @@ to_chat(owner.current, "I am an elite mercenary assassin of the mighty Spider Clan. A SPACE NINJA!") to_chat(owner.current, "Surprise is my weapon. Shadows are my armor. Without them, I am nothing. (//initialize your suit by right clicking on it, to use abilities like stealth)!") to_chat(owner.current, "Officially, [helping_station?"Nanotrasen":"The Syndicate"] are my employer.") + owner.announce_objectives() return /datum/antagonist/ninja/on_gain() diff --git a/code/modules/antagonists/official/official.dm b/code/modules/antagonists/official/official.dm index 0182547d74..37260c3303 100644 --- a/code/modules/antagonists/official/official.dm +++ b/code/modules/antagonists/official/official.dm @@ -26,7 +26,7 @@ mission = missionobj objectives |= mission owner.objectives |= objectives - + /datum/antagonist/official/on_gain() forge_objectives() . = ..() diff --git a/code/modules/antagonists/revenant/revenant_antag.dm b/code/modules/antagonists/revenant/revenant_antag.dm index d50aed24e3..476db96fb8 100644 --- a/code/modules/antagonists/revenant/revenant_antag.dm +++ b/code/modules/antagonists/revenant/revenant_antag.dm @@ -17,5 +17,5 @@ owner.objectives |= objectives /datum/antagonist/revenant/on_gain() - forge_objectives() - . = ..() \ No newline at end of file + forge_objectives() + . = ..() diff --git a/code/modules/antagonists/traitor/IAA/internal_affairs.dm b/code/modules/antagonists/traitor/IAA/internal_affairs.dm index 9077b84dcd..605db9797d 100644 --- a/code/modules/antagonists/traitor/IAA/internal_affairs.dm +++ b/code/modules/antagonists/traitor/IAA/internal_affairs.dm @@ -1,4 +1,4 @@ -#define PINPOINTER_MINIMUM_RANGE 15 +#define PINPOINTER_MINIMUM_RANGE 15 #define PINPOINTER_EXTRA_RANDOM_RANGE 10 #define PINPOINTER_PING_TIME 40 #define PROB_ACTUAL_TRAITOR 20 @@ -18,7 +18,7 @@ var/syndicate = FALSE var/last_man_standing = FALSE var/list/datum/mind/targets_stolen - + /datum/antagonist/traitor/human/internal_affairs name = "Internal Affairs Agent" @@ -28,12 +28,12 @@ var/syndicate = FALSE var/last_man_standing = FALSE var/list/datum/mind/targets_stolen - - + + /datum/antagonist/traitor/human/internal_affairs/proc/give_pinpointer() if(owner && owner.current) owner.current.apply_status_effect(/datum/status_effect/agent_pinpointer) - + /datum/antagonist/traitor/human/internal_affairs/apply_innate_effects() .=..() //in case the base is used in future if(owner && owner.current) @@ -129,7 +129,7 @@ if(!(istype(objective_, /datum/objective/escape)||istype(objective_, /datum/objective/survive))) continue remove_objective(objective_) - + var/datum/objective/martyr/martyr_objective = new martyr_objective.owner = owner add_objective(martyr_objective) @@ -156,8 +156,8 @@ /datum/antagonist/traitor/proc/steal_targets(datum/mind/victim) var/datum/antagonist/traitor/human/internal_affairs/this = src //Should only use this if IAA - - if(!owner.current||owner.current.stat==DEAD) + + if(!owner.current||owner.current.stat==DEAD) return to_chat(owner.current, " Target eliminated: [victim.name]") for(var/objective_ in victim.objectives) @@ -254,7 +254,7 @@ owner.special_role = TRAITOR_AGENT_ROLE special_role = TRAITOR_AGENT_ROLE this.syndicate = TRUE - forge_single_objective() + forge_single_objective() else ..() // Give them standard objectives. diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index ffe31b68ce..e09b92a083 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -57,9 +57,6 @@ /datum/antagonist/traitor/on_removal() SSticker.mode.traitors -= owner - for(var/O in objectives) - owner.objectives -= O - objectives = list() if(!silent && owner.current) to_chat(owner.current," You are no longer the [special_role]! ") owner.special_role = null @@ -227,7 +224,7 @@ var/mob/living/silicon/ai/A = mob_override || owner.current if(istype(A)) A.hack_software = TRUE - + /datum/antagonist/traitor/AI/remove_innate_effects(mob/living/mob_override) . = ..() var/mob/living/silicon/ai/A = mob_override || owner.current diff --git a/code/modules/antagonists/valentines/heartbreaker.dm b/code/modules/antagonists/valentines/heartbreaker.dm index 8661151c93..4f228910d7 100644 --- a/code/modules/antagonists/valentines/heartbreaker.dm +++ b/code/modules/antagonists/valentines/heartbreaker.dm @@ -15,10 +15,6 @@ forge_objectives() . = ..() -/datum/antagonist/heartbreaker/on_removal() - owner.objectives -= objectives - . = ..() - /datum/antagonist/heartbreaker/greet() to_chat(owner, "You didn't get a date! They're all having fun without you! you'll show them though...") owner.announce_objectives() \ No newline at end of file diff --git a/code/modules/antagonists/valentines/valentine.dm b/code/modules/antagonists/valentines/valentine.dm index b29c4d6bf3..5d26c656b6 100644 --- a/code/modules/antagonists/valentines/valentine.dm +++ b/code/modules/antagonists/valentines/valentine.dm @@ -18,9 +18,6 @@ forge_objectives() . = ..() -/datum/antagonist/valentine/on_removal() - owner.objectives -= objectives - /datum/antagonist/valentine/greet() to_chat(owner, "You're on a date with [date.name]! Protect them at all costs. This takes priority over all other loyalties.") diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index ba89d2ed9f..146d79d413 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -109,8 +109,6 @@ /datum/antagonist/wizard/on_removal() unregister() - for(var/objective in objectives) - owner.objectives -= objective owner.RemoveAllSpells() // TODO keep track which spells are wizard spells which innate stuff return ..()