diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index 4b7eebb5b9..ff5649f5fd 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -997,7 +997,7 @@ GLOBAL_LIST_EMPTY(possible_items_special)
return horded_item
/datum/objective/horde/proc/set_target(obj/item/I)
- if(item)
+ if(I)
horded_item = I
explanation_text = "Keep [I] on your person at all costs."
return horded_item
@@ -1023,7 +1023,7 @@ GLOBAL_LIST_EMPTY(possible_items_special)
/datum/objective/horde/heirloom
name = "steal heirloom"
-/datum/objective/horde/heirloom/proc/find_target()
+/datum/objective/horde/heirloom/find_target()
set_target(pick(GLOB.family_heirlooms))
GLOBAL_LIST_EMPTY(possible_sabotages)
diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm
index 4587a3c8ab..eafe4f4ec7 100644
--- a/code/modules/antagonists/_common/antag_datum.dm
+++ b/code/modules/antagonists/_common/antag_datum.dm
@@ -20,7 +20,7 @@ GLOBAL_LIST_EMPTY(antagonists)
var/show_in_antagpanel = TRUE //This will hide adding this antag type in antag panel, use only for internal subtypes that shouldn't be added directly but still show if possessed by mind
var/antagpanel_category = "Uncategorized" //Antagpanel will display these together, REQUIRED
var/show_name_in_check_antagonists = FALSE //Will append antagonist name in admin listings - use for categories that share more than one antag type
- var/list/quirk_blacklist = list("Pacifist","Mute") // Quirks that will be removed upon gaining this antag. Pacifist and mute are default.
+ var/list/blacklisted_quirks = list("Pacifist","Mute") // Quirks that will be removed upon gaining this antag. Pacifist and mute are default.
/datum/antagonist/New()
GLOB.antagonists += src
@@ -120,12 +120,14 @@ GLOBAL_LIST_EMPTY(antagonists)
SEND_SIGNAL(owner.current, COMSIG_CLEAR_MOOD_EVENT, "antag_moodlet")
/datum/antagonist/proc/remove_blacklisted_quirks()
- for(var/q in owner.roundstart_quirks)
- var/datum/quirk/Q = q
- if(Q.name in quirk_blacklist)
- if(Q.antag_removal_text)
- to_chat(owner, "[Q.antag_removal_text]")
- owner.remove_quirk(Q.type)
+ var/mob/living/L = owner
+ if(istype(L))
+ for(var/q in L.roundstart_quirks)
+ var/datum/quirk/Q = q
+ if(Q.name in blacklisted_quirks)
+ if(Q.antag_removal_text)
+ to_chat(L, "[Q.antag_removal_text]")
+ L.remove_quirk(Q.type)
//Returns the team antagonist belongs to if any.
/datum/antagonist/proc/get_team()
diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm
index 1388ba745c..22a343fb5f 100644
--- a/code/modules/antagonists/brother/brother.dm
+++ b/code/modules/antagonists/brother/brother.dm
@@ -110,14 +110,14 @@
for(var/datum/objective/objective in objectives)
if(objective.completable)
if(objective.check_completion())
- report += "Objective #[objective_count]: [objective.explanation_text] Success!"
+ parts += "Objective #[objective_count]: [objective.explanation_text] Success!"
else
- report += "Objective #[objective_count]: [objective.explanation_text] Fail."
+ parts += "Objective #[objective_count]: [objective.explanation_text] Fail."
win = FALSE
else
- report += "Objective #[objective_count]: [objective.explanation_text]"
+ parts += "Objective #[objective_count]: [objective.explanation_text]"
objective_count++
-if(win)
+ if(win)
parts += "The blood brothers were successful!"
else
parts += "The blood brothers have failed!"
diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm
index e76c0ed054..7d702ac25d 100644
--- a/code/modules/antagonists/changeling/changeling.dm
+++ b/code/modules/antagonists/changeling/changeling.dm
@@ -554,12 +554,12 @@
for(var/datum/objective/objective in objectives)
if(objective.completable)
if(objective.check_completion())
- report += "Objective #[count]: [objective.explanation_text] Success!"
+ parts += "Objective #[count]: [objective.explanation_text] Success!"
else
- report += "Objective #[count]: [objective.explanation_text] Fail."
- win = FALSE
+ parts += "Objective #[count]: [objective.explanation_text] Fail."
+ changelingwin = FALSE
else
- report += "Objective #[count]: [objective.explanation_text]"
+ parts += "Objective #[count]: [objective.explanation_text]"
count++
if(changelingwin)
diff --git a/code/modules/antagonists/survivalist/survivalist.dm b/code/modules/antagonists/survivalist/survivalist.dm
index 5334bb0f41..1b870ec389 100644
--- a/code/modules/antagonists/survivalist/survivalist.dm
+++ b/code/modules/antagonists/survivalist/survivalist.dm
@@ -22,18 +22,6 @@
/datum/antagonist/survivalist/guns
greet_message = "Your own safety matters above all else, and the only way to ensure your safety is to stockpile weapons! Grab as many guns as possible, and don't let anyone take them!"
-/datum/antagonist/survivalist/guns/forge_objectives()
- var/datum/objective/steal_five_of_type/summon_guns/guns = new
- guns.owner = owner
- objectives += guns
- ..()
-
/datum/antagonist/survivalist/magic
name = "Amateur Magician"
greet_message = "This magic stuff is... so powerful. You want more. More! They want your power. They can't have it! Don't let them have it!"
-
-/datum/antagonist/survivalist/magic/forge_objectives()
- var/datum/objective/steal_five_of_type/summon_magic/magic = new
- magic.owner = owner
- objectives += magic
- ..()
diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm
index 62fdf56b71..3385991116 100644
--- a/code/modules/antagonists/traitor/datum_traitor.dm
+++ b/code/modules/antagonists/traitor/datum_traitor.dm
@@ -385,12 +385,12 @@
for(var/datum/objective/objective in objectives)
if(objective.completable)
if(objective.check_completion())
- report += "Objective #[count]: [objective.explanation_text] Success!"
+ objectives_text += "Objective #[count]: [objective.explanation_text] Success!"
else
- report += "Objective #[count]: [objective.explanation_text] Fail."
+ objectives_text += "Objective #[count]: [objective.explanation_text] Fail."
traitorwin = FALSE
else
- report += "Objective #[count]: [objective.explanation_text]"
+ objectives_text += "Objective #[count]: [objective.explanation_text]"
count++
if(uplink_true)
diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm
index b73929fc44..996e2e3168 100644
--- a/code/modules/spells/spell_types/rightandwrong.dm
+++ b/code/modules/spells/spell_types/rightandwrong.dm
@@ -102,9 +102,9 @@ GLOBAL_VAR_INIT(summon_magic_triggered, FALSE)
var/gun_type = pick(GLOB.summoned_guns)
var/obj/item/gun/G = new gun_type(get_turf(H))
G.unlock()
- var/datum/antagonist/survalist/guns/our_antag_datum = has_antag_datum(/datum/antagonist/survivalist/guns)
+ var/datum/antagonist/survivalist/guns/our_antag_datum = H.mind.has_antag_datum(/datum/antagonist/survivalist/guns)
if(our_antag_datum)
- var/datum/objective/horde_item/O = new()
+ var/datum/objective/horde/O = new()
O.owner = H
O.set_target(G)
our_antag_datum.objectives += O
@@ -134,9 +134,9 @@ GLOBAL_VAR_INIT(summon_magic_triggered, FALSE)
var/obj/item/M = new magic_type(get_turf(H))
playsound(get_turf(H),'sound/magic/summon_magic.ogg', 50, 1)
- var/datum/antagonist/survalist/magic/our_antag_datum = has_antag_datum(/datum/antagonist/survivalist/magic)
- if(our_antag_datum)
- var/datum/objective/horde_item/O = new()
+ var/datum/antagonist/survivalist/magic/our_antag_datum = H.mind.has_antag_datum(/datum/antagonist/survivalist/magic)
+ if(istype(our_antag_datum))
+ var/datum/objective/horde/O = new()
O.owner = H
O.set_target(M)
our_antag_datum.objectives += O
diff --git a/tgstation.dme b/tgstation.dme
index 1c7d5112e7..1e881df6a7 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -567,6 +567,7 @@
#include "code\game\gamemodes\game_mode.dm"
#include "code\game\gamemodes\objective.dm"
#include "code\game\gamemodes\objective_items.dm"
+#include "code\game\gamemodes\objective_sabotage.dm"
#include "code\game\gamemodes\bloodsucker\bloodsucker.dm"
#include "code\game\gamemodes\bloodsucker\hunter.dm"
#include "code\game\gamemodes\brother\traitor_bro.dm"