Fixes a bunch of things related to mindslaves (#12491)

This commit is contained in:
SteelSlayer
2019-10-03 14:08:54 -04:00
committed by variableundefined
parent b976302215
commit 0e3a484c42
6 changed files with 19 additions and 15 deletions
+2 -3
View File
@@ -1666,9 +1666,8 @@
zealot_objective.target = missionary.mind
zealot_objective.owner = src
zealot_objective.explanation_text = "Obey every order from and protect [missionary.real_name], the [missionary.mind.assigned_role == missionary.mind.special_role ? (missionary.mind.special_role) : (missionary.mind.assigned_role)]."
var/datum/antagonist/mindslave/S = new()
S.add_objective(zealot_objective)
add_antag_datum(S)
objectives += zealot_objective
add_antag_datum(/datum/antagonist/mindslave)
var/datum/antagonist/traitor/T = missionary.mind.has_antag_datum(/datum/antagonist)
T.update_traitor_icons_added(missionary.mind)
+6 -2
View File
@@ -73,10 +73,14 @@
objective = "Make certain at least 80% of the station evacuates on the shuttle."
var/datum/objective/custom_objective = new(objective)
custom_objective.owner = N.mind
N.mind.objectives += custom_objective
var/datum/objective/escape/escape_objective = new
escape_objective.owner = N.mind
N.mind.objectives += escape_objective
var/datum/antagonist/traitor/T = new()
T.give_objectives = FALSE
T.add_objective(custom_objective)
T.add_objective(/datum/objective/escape)
N.mind.add_antag_datum(T)
to_chat(M, "<B>You have joined the ranks of the Syndicate and become a traitor to the station!</B>")
@@ -56,7 +56,6 @@
SSticker.mode.implanted.Add(mindslave_target.mind)
SSticker.mode.implanted[mindslave_target.mind] = user.mind
SSticker.mode.implanter[user.mind] = implanters
SSticker.mode.traitors += mindslave_target.mind
to_chat(mindslave_target, "<span class='warning'><B>You're now completely loyal to [user.name]!</B> You now must lay down your life to protect [user.p_them()] and assist in [user.p_their()] goals at any cost.</span>")
@@ -64,10 +63,8 @@
MS.owner = mindslave_target.mind
MS.target = user.mind
MS.explanation_text = "Obey every order from and protect [user.real_name], the [user.mind.assigned_role == user.mind.special_role ? (user.mind.special_role) : (user.mind.assigned_role)]."
var/datum/antagonist/mindslave/S = new()
S.add_objective(MS)
mindslave_target.mind.add_antag_datum(S)
mindslave_target.mind.objectives += MS
mindslave_target.mind.add_antag_datum(/datum/antagonist/mindslave)
var/datum/mindslaves/slaved = user.mind.som
mindslave_target.mind.som = slaved
+3
View File
@@ -502,6 +502,9 @@
if(SSticker.mode.traitors.len)
dat += check_role_table("Traitors", SSticker.mode.traitors)
if(SSticker.mode.implanted.len)
dat += check_role_table("Mindslaves", SSticker.mode.implanted)
if(SSticker.mode.shadows.len)
dat += check_role_table("Shadowlings", SSticker.mode.shadows)
+1 -1
View File
@@ -1985,9 +1985,9 @@
kill_objective.target = H.mind
kill_objective.owner = newtraitormind
kill_objective.explanation_text = "Assassinate [H.mind], the [H.mind.assigned_role]"
H.mind.objectives += kill_objective
var/datum/antagonist/traitor/T = new()
T.give_objectives = FALSE
T.add_objective(kill_objective)
to_chat(newtraitormind, "<span class='danger'>ATTENTION:</span> It is time to pay your debt to the Syndicate...")
to_chat(newtraitormind, "<B>Goal: <span class='danger'>KILL [H.real_name]</span>, currently in [get_area(H.loc)]</B>")
newtraitormind.add_antag_datum(T)
@@ -7,8 +7,9 @@
var/special_role = ROLE_MINDSLAVE
/datum/antagonist/mindslave/on_gain()
// Handling mindslave objectives on top of other antag objective sucks, so Im just gonna do it like this
to_chat(owner.current, "<b>New Objective:</b> [objectives[objectives.len].explanation_text]")
owner.special_role = special_role
// Will print the most recent objective which is probably going the mindslave objective
to_chat(owner.current, "<b>New Objective:</b> [owner.objectives[owner.objectives.len].explanation_text]")
update_mindslave_icons_added()
/datum/antagonist/mindslave/on_removal()
@@ -37,10 +38,10 @@
slave_mob.mutations.Add(CLUMSY)
/datum/antagonist/mindslave/proc/add_objective(datum/objective/O)
objectives += O
owner.objectives += O
/datum/antagonist/mindslave/proc/remove_objective(datum/objective/O)
objectives -= O
owner.objectives -= O
/datum/antagonist/mindslave/proc/update_mindslave_icons_added()
var/datum/atom_hud/antag/traitorhud = huds[ANTAG_HUD_TRAITOR]