mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-29 23:17:02 +01:00
Fixes a bunch of things related to mindslaves (#12491)
This commit is contained in:
committed by
variableundefined
parent
b976302215
commit
0e3a484c42
+2
-3
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user