mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 18:11:47 +00:00
Refactors antag datum hud adding and removing procs (#47573)
* Refactors antag datum hud giving code * epic fail. this is a much better way to do it * reduces copy and paste for clown mutation * review additions * didn't mean to put that there * re-add check
This commit is contained in:
@@ -27,8 +27,6 @@ SUBSYSTEM_DEF(pai)
|
|||||||
|
|
||||||
card.setPersonality(pai)
|
card.setPersonality(pai)
|
||||||
|
|
||||||
SSticker.mode.update_cult_icons_removed(card.pai.mind)
|
|
||||||
|
|
||||||
candidates -= candidate
|
candidates -= candidate
|
||||||
usr << browse(null, "window=findPai")
|
usr << browse(null, "window=findPai")
|
||||||
|
|
||||||
|
|||||||
@@ -266,7 +266,6 @@
|
|||||||
/datum/mind/proc/remove_brother()
|
/datum/mind/proc/remove_brother()
|
||||||
if(src in SSticker.mode.brothers)
|
if(src in SSticker.mode.brothers)
|
||||||
remove_antag_datum(/datum/antagonist/brother)
|
remove_antag_datum(/datum/antagonist/brother)
|
||||||
SSticker.mode.update_brother_icons_removed(src)
|
|
||||||
|
|
||||||
/datum/mind/proc/remove_nukeop()
|
/datum/mind/proc/remove_nukeop()
|
||||||
var/datum/antagonist/nukeop/nuke = has_antag_datum(/datum/antagonist/nukeop,TRUE)
|
var/datum/antagonist/nukeop/nuke = has_antag_datum(/datum/antagonist/nukeop,TRUE)
|
||||||
@@ -305,7 +304,6 @@
|
|||||||
remove_wizard()
|
remove_wizard()
|
||||||
remove_cultist()
|
remove_cultist()
|
||||||
remove_rev()
|
remove_rev()
|
||||||
SSticker.mode.update_cult_icons_removed(src)
|
|
||||||
|
|
||||||
/datum/mind/proc/equip_traitor(employer = "The Syndicate", silent = FALSE, datum/antagonist/uplink_owner)
|
/datum/mind/proc/equip_traitor(employer = "The Syndicate", silent = FALSE, datum/antagonist/uplink_owner)
|
||||||
if(!current)
|
if(!current)
|
||||||
|
|||||||
@@ -65,13 +65,3 @@
|
|||||||
|
|
||||||
/datum/game_mode/traitor/bros/generate_report()
|
/datum/game_mode/traitor/bros/generate_report()
|
||||||
return "It's Syndicate recruiting season. Be alert for potential Syndicate infiltrators, but also watch out for disgruntled employees trying to defect. Unlike Nanotrasen, the Syndicate prides itself in teamwork and will only recruit pairs that share a brotherly trust."
|
return "It's Syndicate recruiting season. Be alert for potential Syndicate infiltrators, but also watch out for disgruntled employees trying to defect. Unlike Nanotrasen, the Syndicate prides itself in teamwork and will only recruit pairs that share a brotherly trust."
|
||||||
|
|
||||||
/datum/game_mode/proc/update_brother_icons_added(datum/mind/brother_mind)
|
|
||||||
var/datum/atom_hud/antag/brotherhud = GLOB.huds[ANTAG_HUD_BROTHER]
|
|
||||||
brotherhud.join_hud(brother_mind.current)
|
|
||||||
set_antag_hud(brother_mind.current, "brother")
|
|
||||||
|
|
||||||
/datum/game_mode/proc/update_brother_icons_removed(datum/mind/brother_mind)
|
|
||||||
var/datum/atom_hud/antag/brotherhud = GLOB.huds[ANTAG_HUD_BROTHER]
|
|
||||||
brotherhud.leave_hud(brother_mind.current)
|
|
||||||
set_antag_hud(brother_mind.current, null)
|
|
||||||
|
|||||||
@@ -120,21 +120,11 @@
|
|||||||
if(!cult_datum)
|
if(!cult_datum)
|
||||||
return FALSE
|
return FALSE
|
||||||
cult_datum.silent = silent
|
cult_datum.silent = silent
|
||||||
cult_datum.on_removal()
|
cult_mind.remove_antag_datum(cult_datum)
|
||||||
if(stun)
|
if(stun)
|
||||||
cult_mind.current.Unconscious(100)
|
cult_mind.current.Unconscious(100)
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/datum/game_mode/proc/update_cult_icons_added(datum/mind/cult_mind)
|
|
||||||
var/datum/atom_hud/antag/culthud = GLOB.huds[ANTAG_HUD_CULT]
|
|
||||||
culthud.join_hud(cult_mind.current)
|
|
||||||
set_antag_hud(cult_mind.current, "cult")
|
|
||||||
|
|
||||||
/datum/game_mode/proc/update_cult_icons_removed(datum/mind/cult_mind)
|
|
||||||
var/datum/atom_hud/antag/culthud = GLOB.huds[ANTAG_HUD_CULT]
|
|
||||||
culthud.leave_hud(cult_mind.current)
|
|
||||||
set_antag_hud(cult_mind.current, null)
|
|
||||||
|
|
||||||
/datum/game_mode/cult/proc/check_cult_victory()
|
/datum/game_mode/cult/proc/check_cult_victory()
|
||||||
return main_cult.check_cult_victory()
|
return main_cult.check_cult_victory()
|
||||||
|
|
||||||
|
|||||||
@@ -15,16 +15,6 @@
|
|||||||
else
|
else
|
||||||
objective.find_target()
|
objective.find_target()
|
||||||
|
|
||||||
/datum/game_mode/proc/update_devil_icons_added(datum/mind/devil_mind)
|
|
||||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_DEVIL]
|
|
||||||
hud.join_hud(devil_mind.current)
|
|
||||||
set_antag_hud(devil_mind.current, "devil")
|
|
||||||
|
|
||||||
/datum/game_mode/proc/update_devil_icons_removed(datum/mind/devil_mind)
|
|
||||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_DEVIL]
|
|
||||||
hud.leave_hud(devil_mind.current)
|
|
||||||
set_antag_hud(devil_mind.current, null)
|
|
||||||
|
|
||||||
/datum/game_mode/proc/update_soulless_icons_added(datum/mind/soulless_mind)
|
/datum/game_mode/proc/update_soulless_icons_added(datum/mind/soulless_mind)
|
||||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS]
|
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS]
|
||||||
hud.join_hud(soulless_mind.current)
|
hud.join_hud(soulless_mind.current)
|
||||||
@@ -34,6 +24,3 @@
|
|||||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS]
|
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS]
|
||||||
hud.leave_hud(soulless_mind.current)
|
hud.leave_hud(soulless_mind.current)
|
||||||
set_antag_hud(soulless_mind.current, null)
|
set_antag_hud(soulless_mind.current, null)
|
||||||
|
|
||||||
/proc/isdevil(mob/living/M)
|
|
||||||
return istype(M) && M.mind && M.mind.has_antag_datum(/datum/antagonist/devil)
|
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ GLOBAL_LIST_EMPTY(antagonists)
|
|||||||
var/antag_memory = ""//These will be removed with antag datum
|
var/antag_memory = ""//These will be removed with antag datum
|
||||||
var/antag_moodlet //typepath of moodlet that the mob will gain with their status
|
var/antag_moodlet //typepath of moodlet that the mob will gain with their status
|
||||||
var/can_hijack = HIJACK_NEUTRAL //If these antags are alone on shuttle hijack happens.
|
var/can_hijack = HIJACK_NEUTRAL //If these antags are alone on shuttle hijack happens.
|
||||||
|
var/antag_hud_type
|
||||||
|
var/antag_hud_name
|
||||||
|
|
||||||
//Antag panel properties
|
//Antag panel properties
|
||||||
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/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
|
||||||
@@ -59,6 +61,30 @@ GLOBAL_LIST_EMPTY(antagonists)
|
|||||||
/datum/antagonist/proc/remove_innate_effects(mob/living/mob_override)
|
/datum/antagonist/proc/remove_innate_effects(mob/living/mob_override)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
// Adds the specified antag hud to the player. Usually called in an antag datum file
|
||||||
|
/datum/antagonist/proc/add_antag_hud(antag_hud_type, antag_hud_name, mob/living/mob_override)
|
||||||
|
var/datum/atom_hud/antag/hud = GLOB.huds[antag_hud_type]
|
||||||
|
hud.join_hud(mob_override)
|
||||||
|
set_antag_hud(mob_override, antag_hud_name)
|
||||||
|
|
||||||
|
|
||||||
|
// Removes the specified antag hud from the player. Usually called in an antag datum file
|
||||||
|
/datum/antagonist/proc/remove_antag_hud(antag_hud_type, mob/living/mob_override)
|
||||||
|
var/datum/atom_hud/antag/hud = GLOB.huds[antag_hud_type]
|
||||||
|
hud.join_hud(mob_override)
|
||||||
|
set_antag_hud(mob_override, null)
|
||||||
|
|
||||||
|
// Handles adding and removing the clumsy mutation from clown antags. Gets called in apply/remove_innate_effects
|
||||||
|
/datum/antagonist/proc/handle_clown_mutation(mob/living/mob_override, message, removing = TRUE)
|
||||||
|
var/mob/living/carbon/human/H = mob_override
|
||||||
|
if(H && istype(H) && H.mind.assigned_role == "Clown")
|
||||||
|
if(removing) // They're a clown becoming an antag, remove clumsy
|
||||||
|
H.dna.remove_mutation(CLOWNMUT)
|
||||||
|
if(!silent && message)
|
||||||
|
to_chat(H, "<span class='boldnotice'>[message]</span>")
|
||||||
|
else
|
||||||
|
H.dna.add_mutation(CLOWNMUT) // We're removing their antag status, add back clumsy
|
||||||
|
|
||||||
//Assign default team and creates one for one of a kind team antagonists
|
//Assign default team and creates one for one of a kind team antagonists
|
||||||
/datum/antagonist/proc/create_team(datum/team/team)
|
/datum/antagonist/proc/create_team(datum/team/team)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
roundend_category = "abductors"
|
roundend_category = "abductors"
|
||||||
antagpanel_category = "Abductor"
|
antagpanel_category = "Abductor"
|
||||||
job_rank = ROLE_ABDUCTOR
|
job_rank = ROLE_ABDUCTOR
|
||||||
|
antag_hud_type = ANTAG_HUD_ABDUCTOR
|
||||||
|
antag_hud_name = "abductor"
|
||||||
show_in_antagpanel = FALSE //should only show subtypes
|
show_in_antagpanel = FALSE //should only show subtypes
|
||||||
var/datum/team/abductor_team/team
|
var/datum/team/abductor_team/team
|
||||||
var/sub_role
|
var/sub_role
|
||||||
@@ -76,7 +78,7 @@
|
|||||||
H.forceMove(LM.loc)
|
H.forceMove(LM.loc)
|
||||||
break
|
break
|
||||||
|
|
||||||
update_abductor_icons_added(owner,"abductor")
|
add_antag_hud(antag_hud_type, antag_hud_name, owner.current)
|
||||||
|
|
||||||
/datum/antagonist/abductor/scientist/on_gain()
|
/datum/antagonist/abductor/scientist/on_gain()
|
||||||
ADD_TRAIT(owner, TRAIT_ABDUCTOR_SCIENTIST_TRAINING, ABDUCTOR_ANTAGONIST)
|
ADD_TRAIT(owner, TRAIT_ABDUCTOR_SCIENTIST_TRAINING, ABDUCTOR_ANTAGONIST)
|
||||||
@@ -162,6 +164,8 @@
|
|||||||
name = "Abductee"
|
name = "Abductee"
|
||||||
roundend_category = "abductees"
|
roundend_category = "abductees"
|
||||||
antagpanel_category = "Abductee"
|
antagpanel_category = "Abductee"
|
||||||
|
antag_hud_type = ANTAG_HUD_ABDUCTOR
|
||||||
|
antag_hud_name = "abductee"
|
||||||
|
|
||||||
/datum/antagonist/abductee/on_gain()
|
/datum/antagonist/abductee/on_gain()
|
||||||
give_objective()
|
give_objective()
|
||||||
@@ -181,10 +185,12 @@
|
|||||||
objectives += O
|
objectives += O
|
||||||
|
|
||||||
/datum/antagonist/abductee/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/abductee/apply_innate_effects(mob/living/mob_override)
|
||||||
update_abductor_icons_added(mob_override ? mob_override.mind : owner,"abductee")
|
var/mob/living/M = mob_override || owner.current
|
||||||
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
|
|
||||||
/datum/antagonist/abductee/remove_innate_effects(mob/living/mob_override)
|
/datum/antagonist/abductee/remove_innate_effects(mob/living/mob_override)
|
||||||
update_abductor_icons_removed(mob_override ? mob_override.mind : owner)
|
var/mob/living/M = mob_override || owner.current
|
||||||
|
remove_antag_hud(antag_hud_type, M)
|
||||||
|
|
||||||
|
|
||||||
// LANDMARKS
|
// LANDMARKS
|
||||||
@@ -211,13 +217,3 @@
|
|||||||
if(E.team_number == T.team_number)
|
if(E.team_number == T.team_number)
|
||||||
return E.points >= target_amount
|
return E.points >= target_amount
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/datum/antagonist/proc/update_abductor_icons_added(datum/mind/alien_mind,hud_type)
|
|
||||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_ABDUCTOR]
|
|
||||||
hud.join_hud(alien_mind.current)
|
|
||||||
set_antag_hud(alien_mind.current, hud_type)
|
|
||||||
|
|
||||||
/datum/antagonist/proc/update_abductor_icons_removed(datum/mind/alien_mind)
|
|
||||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_ABDUCTOR]
|
|
||||||
hud.leave_hud(alien_mind.current)
|
|
||||||
set_antag_hud(alien_mind.current, null)
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
antagpanel_category = "Brother"
|
antagpanel_category = "Brother"
|
||||||
job_rank = ROLE_BROTHER
|
job_rank = ROLE_BROTHER
|
||||||
var/special_role = ROLE_BROTHER
|
var/special_role = ROLE_BROTHER
|
||||||
|
antag_hud_type = ANTAG_HUD_BROTHER
|
||||||
|
antag_hud_name = "brother"
|
||||||
var/datum/team/brother_team/team
|
var/datum/team/brother_team/team
|
||||||
antag_moodlet = /datum/mood_event/focused
|
antag_moodlet = /datum/mood_event/focused
|
||||||
can_hijack = HIJACK_HIJACKER
|
can_hijack = HIJACK_HIJACKER
|
||||||
@@ -31,6 +33,14 @@
|
|||||||
owner.special_role = null
|
owner.special_role = null
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/datum/antagonist/brother/apply_innate_effects(mob/living/mob_override)
|
||||||
|
var/mob/living/M = mob_override || owner.current
|
||||||
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
|
|
||||||
|
/datum/antagonist/brother/remove_innate_effects(mob/living/mob_override)
|
||||||
|
var/mob/living/M = mob_override || owner.current
|
||||||
|
remove_antag_hud(antag_hud_type, M)
|
||||||
|
|
||||||
/datum/antagonist/brother/antag_panel_data()
|
/datum/antagonist/brother/antag_panel_data()
|
||||||
return "Conspirators : [get_brother_names()]]"
|
return "Conspirators : [get_brother_names()]]"
|
||||||
|
|
||||||
@@ -60,7 +70,6 @@
|
|||||||
give_meeting_area()
|
give_meeting_area()
|
||||||
|
|
||||||
/datum/antagonist/brother/proc/finalize_brother()
|
/datum/antagonist/brother/proc/finalize_brother()
|
||||||
SSticker.mode.update_brother_icons_added(owner)
|
|
||||||
owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/tatoralert.ogg', 100, FALSE, pressure_affected = FALSE)
|
owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/tatoralert.ogg', 100, FALSE, pressure_affected = FALSE)
|
||||||
|
|
||||||
/datum/antagonist/brother/admin_add(datum/mind/new_owner,mob/admin)
|
/datum/antagonist/brother/admin_add(datum/mind/new_owner,mob/admin)
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
antagpanel_category = "Changeling"
|
antagpanel_category = "Changeling"
|
||||||
job_rank = ROLE_CHANGELING
|
job_rank = ROLE_CHANGELING
|
||||||
antag_moodlet = /datum/mood_event/focused
|
antag_moodlet = /datum/mood_event/focused
|
||||||
|
antag_hud_type = ANTAG_HUD_CHANGELING
|
||||||
|
antag_hud_name = "changeling"
|
||||||
|
|
||||||
var/you_are_greet = TRUE
|
var/you_are_greet = TRUE
|
||||||
var/give_objectives = TRUE
|
var/give_objectives = TRUE
|
||||||
@@ -88,7 +90,6 @@
|
|||||||
if(team_mode)
|
if(team_mode)
|
||||||
forge_team_objectives()
|
forge_team_objectives()
|
||||||
forge_objectives()
|
forge_objectives()
|
||||||
remove_clownmut()
|
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
/datum/antagonist/changeling/on_removal()
|
/datum/antagonist/changeling/on_removal()
|
||||||
@@ -102,13 +103,6 @@
|
|||||||
remove_changeling_powers()
|
remove_changeling_powers()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
/datum/antagonist/changeling/proc/remove_clownmut()
|
|
||||||
if (owner)
|
|
||||||
var/mob/living/carbon/human/H = owner.current
|
|
||||||
if(istype(H) && owner.assigned_role == "Clown")
|
|
||||||
to_chat(H, "<span class='boldnotice'>You have evolved beyond your clownish nature, allowing you to wield weapons without harming yourself.</span>")
|
|
||||||
H.dna.remove_mutation(CLOWNMUT)
|
|
||||||
|
|
||||||
/datum/antagonist/changeling/proc/reset_properties()
|
/datum/antagonist/changeling/proc/reset_properties()
|
||||||
changeling_speak = 0
|
changeling_speak = 0
|
||||||
chosen_sting = null
|
chosen_sting = null
|
||||||
@@ -353,7 +347,7 @@
|
|||||||
if(ishuman(C))
|
if(ishuman(C))
|
||||||
add_new_profile(C)
|
add_new_profile(C)
|
||||||
|
|
||||||
/datum/antagonist/changeling/apply_innate_effects()
|
/datum/antagonist/changeling/apply_innate_effects(mob/living/mob_override)
|
||||||
//Brains optional.
|
//Brains optional.
|
||||||
var/mob/living/carbon/C = owner.current
|
var/mob/living/carbon/C = owner.current
|
||||||
if(istype(C))
|
if(istype(C))
|
||||||
@@ -362,10 +356,14 @@
|
|||||||
B.organ_flags &= ~ORGAN_VITAL
|
B.organ_flags &= ~ORGAN_VITAL
|
||||||
B.decoy_override = TRUE
|
B.decoy_override = TRUE
|
||||||
RegisterSignal(C, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON), .proc/stingAtom)
|
RegisterSignal(C, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON), .proc/stingAtom)
|
||||||
update_changeling_icons_added()
|
var/mob/living/M = mob_override || owner.current
|
||||||
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
|
handle_clown_mutation(M, "You have evolved beyond your clownish nature, allowing you to wield weapons without harming yourself.")
|
||||||
|
|
||||||
/datum/antagonist/changeling/remove_innate_effects()
|
/datum/antagonist/changeling/remove_innate_effects(mob/living/mob_override)
|
||||||
update_changeling_icons_removed()
|
var/mob/living/M = mob_override || owner.current
|
||||||
|
remove_antag_hud(antag_hud_type, M)
|
||||||
|
handle_clown_mutation(M, removing = FALSE)
|
||||||
UnregisterSignal(owner.current, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON))
|
UnregisterSignal(owner.current, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON))
|
||||||
|
|
||||||
|
|
||||||
@@ -478,15 +476,6 @@
|
|||||||
objectives += identity_theft
|
objectives += identity_theft
|
||||||
escape_objective_possible = FALSE
|
escape_objective_possible = FALSE
|
||||||
|
|
||||||
/datum/antagonist/changeling/proc/update_changeling_icons_added()
|
|
||||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_CHANGELING]
|
|
||||||
hud.join_hud(owner.current)
|
|
||||||
set_antag_hud(owner.current, "changeling")
|
|
||||||
|
|
||||||
/datum/antagonist/changeling/proc/update_changeling_icons_removed()
|
|
||||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_CHANGELING]
|
|
||||||
hud.leave_hud(owner.current)
|
|
||||||
set_antag_hud(owner.current, null)
|
|
||||||
|
|
||||||
/datum/antagonist/changeling/admin_add(datum/mind/new_owner,mob/admin)
|
/datum/antagonist/changeling/admin_add(datum/mind/new_owner,mob/admin)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
show_in_antagpanel = TRUE
|
show_in_antagpanel = TRUE
|
||||||
antagpanel_category = "Other"
|
antagpanel_category = "Other"
|
||||||
job_rank = ROLE_OBSESSED
|
job_rank = ROLE_OBSESSED
|
||||||
|
antag_hud_type = ANTAG_HUD_OBSESSED
|
||||||
|
antag_hud_name = "obsessed"
|
||||||
show_name_in_check_antagonists = TRUE
|
show_name_in_check_antagonists = TRUE
|
||||||
roundend_category = "obsessed"
|
roundend_category = "obsessed"
|
||||||
silent = TRUE //not actually silent, because greet will be called by the trauma anyway.
|
silent = TRUE //not actually silent, because greet will be called by the trauma anyway.
|
||||||
@@ -37,11 +39,11 @@
|
|||||||
|
|
||||||
/datum/antagonist/obsessed/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/obsessed/apply_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_obsession_icons_added(M)
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
|
|
||||||
/datum/antagonist/obsessed/remove_innate_effects(mob/living/mob_override)
|
/datum/antagonist/obsessed/remove_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_obsession_icons_removed(M)
|
remove_antag_hud(antag_hud_type, M)
|
||||||
|
|
||||||
/datum/antagonist/obsessed/proc/forge_objectives(var/datum/mind/obsessionmind)
|
/datum/antagonist/obsessed/proc/forge_objectives(var/datum/mind/obsessionmind)
|
||||||
var/list/objectives_left = list("spendtime", "polaroid", "hug")
|
var/list/objectives_left = list("spendtime", "polaroid", "hug")
|
||||||
@@ -273,13 +275,3 @@
|
|||||||
explanation_text = "Steal [target.name]'s family heirloom, [steal_target] they cherish."
|
explanation_text = "Steal [target.name]'s family heirloom, [steal_target] they cherish."
|
||||||
else
|
else
|
||||||
explanation_text = "Free Objective"
|
explanation_text = "Free Objective"
|
||||||
|
|
||||||
/datum/antagonist/obsessed/proc/update_obsession_icons_added(var/mob/living/carbon/human/obsessed)
|
|
||||||
var/datum/atom_hud/antag/creephud = GLOB.huds[ANTAG_HUD_OBSESSED]
|
|
||||||
creephud.join_hud(obsessed)
|
|
||||||
set_antag_hud(obsessed, "obsessed")
|
|
||||||
|
|
||||||
/datum/antagonist/obsessed/proc/update_obsession_icons_removed(var/mob/living/carbon/human/obsessed)
|
|
||||||
var/datum/atom_hud/antag/creephud = GLOB.huds[ANTAG_HUD_OBSESSED]
|
|
||||||
creephud.leave_hud(obsessed)
|
|
||||||
set_antag_hud(obsessed, null)
|
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
var/datum/action/innate/cult/mastervote/vote = new
|
var/datum/action/innate/cult/mastervote/vote = new
|
||||||
var/datum/action/innate/cult/blood_magic/magic = new
|
var/datum/action/innate/cult/blood_magic/magic = new
|
||||||
job_rank = ROLE_CULTIST
|
job_rank = ROLE_CULTIST
|
||||||
|
antag_hud_type = ANTAG_HUD_CULT
|
||||||
|
antag_hud_name = "cult"
|
||||||
var/ignore_implant = FALSE
|
var/ignore_implant = FALSE
|
||||||
var/give_equipment = FALSE
|
var/give_equipment = FALSE
|
||||||
var/datum/team/cult/cult_team
|
var/datum/team/cult/cult_team
|
||||||
@@ -58,7 +60,6 @@
|
|||||||
if(give_equipment)
|
if(give_equipment)
|
||||||
equip_cultist(TRUE)
|
equip_cultist(TRUE)
|
||||||
SSticker.mode.cult += owner // Only add after they've been given objectives
|
SSticker.mode.cult += owner // Only add after they've been given objectives
|
||||||
SSticker.mode.update_cult_icons_added(owner)
|
|
||||||
current.log_message("has been converted to the cult of Nar'Sie!", LOG_ATTACK, color="#960000")
|
current.log_message("has been converted to the cult of Nar'Sie!", LOG_ATTACK, color="#960000")
|
||||||
|
|
||||||
if(cult_team.blood_target && cult_team.blood_target_image && current.client)
|
if(cult_team.blood_target && cult_team.blood_target_image && current.client)
|
||||||
@@ -69,9 +70,6 @@
|
|||||||
var/mob/living/carbon/H = owner.current
|
var/mob/living/carbon/H = owner.current
|
||||||
if(!istype(H))
|
if(!istype(H))
|
||||||
return
|
return
|
||||||
if (owner.assigned_role == "Clown")
|
|
||||||
to_chat(owner, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
|
|
||||||
H.dna.remove_mutation(CLOWNMUT)
|
|
||||||
. += cult_give_item(/obj/item/melee/cultblade/dagger, H)
|
. += cult_give_item(/obj/item/melee/cultblade/dagger, H)
|
||||||
if(metal)
|
if(metal)
|
||||||
. += cult_give_item(/obj/item/stack/sheet/runed_metal/ten, H)
|
. += cult_give_item(/obj/item/stack/sheet/runed_metal/ten, H)
|
||||||
@@ -102,6 +100,8 @@
|
|||||||
var/mob/living/current = owner.current
|
var/mob/living/current = owner.current
|
||||||
if(mob_override)
|
if(mob_override)
|
||||||
current = mob_override
|
current = mob_override
|
||||||
|
add_antag_hud(antag_hud_type, antag_hud_name, current)
|
||||||
|
handle_clown_mutation(current, mob_override ? null : "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
|
||||||
current.faction |= "cult"
|
current.faction |= "cult"
|
||||||
current.grant_language(/datum/language/narsie)
|
current.grant_language(/datum/language/narsie)
|
||||||
if(!cult_team.cult_master)
|
if(!cult_team.cult_master)
|
||||||
@@ -120,6 +120,8 @@
|
|||||||
var/mob/living/current = owner.current
|
var/mob/living/current = owner.current
|
||||||
if(mob_override)
|
if(mob_override)
|
||||||
current = mob_override
|
current = mob_override
|
||||||
|
remove_antag_hud(antag_hud_type, current)
|
||||||
|
handle_clown_mutation(current, removing = FALSE)
|
||||||
current.faction -= "cult"
|
current.faction -= "cult"
|
||||||
current.remove_language(/datum/language/narsie)
|
current.remove_language(/datum/language/narsie)
|
||||||
vote.Remove(current)
|
vote.Remove(current)
|
||||||
@@ -136,7 +138,6 @@
|
|||||||
|
|
||||||
/datum/antagonist/cult/on_removal()
|
/datum/antagonist/cult/on_removal()
|
||||||
SSticker.mode.cult -= owner
|
SSticker.mode.cult -= owner
|
||||||
SSticker.mode.update_cult_icons_removed(owner)
|
|
||||||
if(!silent)
|
if(!silent)
|
||||||
owner.current.visible_message("<span class='deconversion_message'>[owner.current] looks like [owner.current.p_theyve()] just reverted to [owner.current.p_their()] old faith!</span>", null, null, null, owner.current)
|
owner.current.visible_message("<span class='deconversion_message'>[owner.current] looks like [owner.current.p_theyve()] just reverted to [owner.current.p_their()] old faith!</span>", null, null, null, owner.current)
|
||||||
to_chat(owner.current, "<span class='userdanger'>An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.</span>")
|
to_chat(owner.current, "<span class='userdanger'>An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.</span>")
|
||||||
|
|||||||
@@ -89,6 +89,8 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
|
|||||||
roundend_category = "devils"
|
roundend_category = "devils"
|
||||||
antagpanel_category = "Devil"
|
antagpanel_category = "Devil"
|
||||||
job_rank = ROLE_DEVIL
|
job_rank = ROLE_DEVIL
|
||||||
|
antag_hud_type = ANTAG_HUD_DEVIL
|
||||||
|
antag_hud_name = "devil"
|
||||||
var/obligation
|
var/obligation
|
||||||
var/ban
|
var/ban
|
||||||
var/bane
|
var/bane
|
||||||
@@ -510,10 +512,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
|
|||||||
var/laws = list("You may not use violence to coerce someone into selling their soul.", "You may not directly and knowingly physically harm a devil, other than yourself.", GLOB.lawlorify[LAW][ban], GLOB.lawlorify[LAW][obligation], "Accomplish your objectives at all costs.")
|
var/laws = list("You may not use violence to coerce someone into selling their soul.", "You may not directly and knowingly physically harm a devil, other than yourself.", GLOB.lawlorify[LAW][ban], GLOB.lawlorify[LAW][obligation], "Accomplish your objectives at all costs.")
|
||||||
robot_devil.set_law_sixsixsix(laws)
|
robot_devil.set_law_sixsixsix(laws)
|
||||||
sleep(10)
|
sleep(10)
|
||||||
if(owner.assigned_role == "Clown" && ishuman(owner.current))
|
|
||||||
var/mob/living/carbon/human/S = owner.current
|
|
||||||
to_chat(S, "<span class='notice'>Your infernal nature has allowed you to overcome your clownishness.</span>")
|
|
||||||
S.dna.remove_mutation(CLOWNMUT)
|
|
||||||
.=..()
|
.=..()
|
||||||
|
|
||||||
/datum/antagonist/devil/on_removal()
|
/datum/antagonist/devil/on_removal()
|
||||||
@@ -522,6 +520,9 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
|
|||||||
|
|
||||||
/datum/antagonist/devil/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/devil/apply_innate_effects(mob/living/mob_override)
|
||||||
give_appropriate_spells()
|
give_appropriate_spells()
|
||||||
|
var/mob/living/M = mob_override || owner.current
|
||||||
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
|
handle_clown_mutation(M, mob_override ? null : "Your infernal nature has allowed you to overcome your clownishness.")
|
||||||
owner.current.grant_all_languages(TRUE)
|
owner.current.grant_all_languages(TRUE)
|
||||||
update_hud()
|
update_hud()
|
||||||
.=..()
|
.=..()
|
||||||
@@ -531,6 +532,9 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
|
|||||||
var/obj/effect/proc_holder/spell/S = X
|
var/obj/effect/proc_holder/spell/S = X
|
||||||
if(is_type_in_typecache(S, devil_spells))
|
if(is_type_in_typecache(S, devil_spells))
|
||||||
owner.RemoveSpell(S)
|
owner.RemoveSpell(S)
|
||||||
|
var/mob/living/M = mob_override || owner.current
|
||||||
|
remove_antag_hud(antag_hud_type, M)
|
||||||
|
handle_clown_mutation(M, removing = FALSE)
|
||||||
.=..()
|
.=..()
|
||||||
|
|
||||||
/datum/antagonist/devil/proc/printdevilinfo()
|
/datum/antagonist/devil/proc/printdevilinfo()
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
name = "sintouched"
|
name = "sintouched"
|
||||||
roundend_category = "sintouched"
|
roundend_category = "sintouched"
|
||||||
antagpanel_category = "Devil"
|
antagpanel_category = "Devil"
|
||||||
|
antag_hud_type = ANTAG_HUD_SINTOUCHED
|
||||||
|
antag_hud_name = "sintouched"
|
||||||
var/sin
|
var/sin
|
||||||
|
|
||||||
var/static/list/sins = list(SIN_ACEDIA,SIN_GLUTTONY,SIN_GREED,SIN_SLOTH,SIN_WRATH,SIN_ENVY,SIN_PRIDE)
|
var/static/list/sins = list(SIN_ACEDIA,SIN_GLUTTONY,SIN_GREED,SIN_SLOTH,SIN_WRATH,SIN_ENVY,SIN_PRIDE)
|
||||||
@@ -57,22 +59,13 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
/datum/antagonist/sintouched/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/sintouched/apply_innate_effects(mob/living/mob_override)
|
||||||
. = ..()
|
var/mob/living/M = mob_override || owner.current
|
||||||
add_hud()
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
|
|
||||||
/datum/antagonist/sintouched/remove_innate_effects(mob/living/mob_override)
|
/datum/antagonist/sintouched/remove_innate_effects(mob/living/mob_override)
|
||||||
remove_hud()
|
var/mob/living/M = mob_override || owner.current
|
||||||
. = ..()
|
remove_antag_hud(antag_hud_type, M)
|
||||||
|
|
||||||
/datum/antagonist/sintouched/proc/add_hud()
|
|
||||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SINTOUCHED]
|
|
||||||
hud.join_hud(owner.current)
|
|
||||||
set_antag_hud(owner.current, "sintouched")
|
|
||||||
|
|
||||||
/datum/antagonist/sintouched/proc/remove_hud()
|
|
||||||
var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SINTOUCHED]
|
|
||||||
hud.leave_hud(owner.current)
|
|
||||||
set_antag_hud(owner.current, null)
|
|
||||||
|
|
||||||
#undef SIN_ACEDIA
|
#undef SIN_ACEDIA
|
||||||
#undef SIN_ENVY
|
#undef SIN_ENVY
|
||||||
|
|||||||
@@ -5,17 +5,19 @@
|
|||||||
silent = TRUE //greet called by the event
|
silent = TRUE //greet called by the event
|
||||||
show_in_antagpanel = FALSE
|
show_in_antagpanel = FALSE
|
||||||
prevent_roundtype_conversion = FALSE
|
prevent_roundtype_conversion = FALSE
|
||||||
|
antag_hud_type = ANTAG_HUD_FUGITIVE
|
||||||
|
antag_hud_name = "fugitive"
|
||||||
var/datum/team/fugitive/fugitive_team
|
var/datum/team/fugitive/fugitive_team
|
||||||
var/is_captured = FALSE
|
var/is_captured = FALSE
|
||||||
var/backstory = "error"
|
var/backstory = "error"
|
||||||
|
|
||||||
/datum/antagonist/fugitive/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/fugitive/apply_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_fugitive_icons_added(M)
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
|
|
||||||
/datum/antagonist/fugitive/remove_innate_effects(mob/living/mob_override)
|
/datum/antagonist/fugitive/remove_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_fugitive_icons_removed(M)
|
remove_antag_hud(antag_hud_type, M)
|
||||||
|
|
||||||
/datum/antagonist/fugitive/on_gain()
|
/datum/antagonist/fugitive/on_gain()
|
||||||
forge_objectives()
|
forge_objectives()
|
||||||
@@ -89,13 +91,3 @@
|
|||||||
result += "<b>[printplayer(antag.owner)]</b>"
|
result += "<b>[printplayer(antag.owner)]</b>"
|
||||||
|
|
||||||
return result.Join("<br>")
|
return result.Join("<br>")
|
||||||
|
|
||||||
/datum/antagonist/fugitive/proc/update_fugitive_icons_added(var/mob/living/carbon/human/fugitive)
|
|
||||||
var/datum/atom_hud/antag/fughud = GLOB.huds[ANTAG_HUD_FUGITIVE]
|
|
||||||
fughud.join_hud(fugitive)
|
|
||||||
set_antag_hud(fugitive, "fugitive")
|
|
||||||
|
|
||||||
/datum/antagonist/fugitive/proc/update_fugitive_icons_removed(var/mob/living/carbon/human/fugitive)
|
|
||||||
var/datum/atom_hud/antag/fughud = GLOB.huds[ANTAG_HUD_FUGITIVE]
|
|
||||||
fughud.leave_hud(fugitive)
|
|
||||||
set_antag_hud(fugitive, null)
|
|
||||||
|
|||||||
@@ -5,16 +5,18 @@
|
|||||||
silent = TRUE //greet called by the spawn
|
silent = TRUE //greet called by the spawn
|
||||||
show_in_antagpanel = FALSE
|
show_in_antagpanel = FALSE
|
||||||
prevent_roundtype_conversion = FALSE
|
prevent_roundtype_conversion = FALSE
|
||||||
|
antag_hud_type = ANTAG_HUD_FUGITIVE
|
||||||
|
antag_hud_name = "fugitive_hunter"
|
||||||
var/datum/team/fugitive_hunters/hunter_team
|
var/datum/team/fugitive_hunters/hunter_team
|
||||||
var/backstory = "error"
|
var/backstory = "error"
|
||||||
|
|
||||||
/datum/antagonist/fugitive_hunter/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/fugitive_hunter/apply_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_fugitive_icons_added(M)
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
|
|
||||||
/datum/antagonist/fugitive_hunter/remove_innate_effects(mob/living/mob_override)
|
/datum/antagonist/fugitive_hunter/remove_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_fugitive_icons_removed(M)
|
remove_antag_hud(antag_hud_type, M)
|
||||||
|
|
||||||
/datum/antagonist/fugitive_hunter/on_gain()
|
/datum/antagonist/fugitive_hunter/on_gain()
|
||||||
forge_objectives()
|
forge_objectives()
|
||||||
@@ -168,13 +170,3 @@
|
|||||||
result += "</div>"
|
result += "</div>"
|
||||||
|
|
||||||
return result.Join("<br>")
|
return result.Join("<br>")
|
||||||
|
|
||||||
/datum/antagonist/fugitive_hunter/proc/update_fugitive_icons_added(var/mob/living/carbon/human/fugitive)
|
|
||||||
var/datum/atom_hud/antag/fughud = GLOB.huds[ANTAG_HUD_FUGITIVE]
|
|
||||||
fughud.join_hud(fugitive)
|
|
||||||
set_antag_hud(fugitive, "fugitive_hunter")
|
|
||||||
|
|
||||||
/datum/antagonist/fugitive_hunter/proc/update_fugitive_icons_removed(var/mob/living/carbon/human/fugitive)
|
|
||||||
var/datum/atom_hud/antag/fughud = GLOB.huds[ANTAG_HUD_FUGITIVE]
|
|
||||||
fughud.leave_hud(fugitive)
|
|
||||||
set_antag_hud(fugitive, null)
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
name = "Ninja"
|
name = "Ninja"
|
||||||
antagpanel_category = "Ninja"
|
antagpanel_category = "Ninja"
|
||||||
job_rank = ROLE_NINJA
|
job_rank = ROLE_NINJA
|
||||||
|
antag_hud_type = ANTAG_HUD_NINJA
|
||||||
|
antag_hud_name = "ninja"
|
||||||
show_name_in_check_antagonists = TRUE
|
show_name_in_check_antagonists = TRUE
|
||||||
antag_moodlet = /datum/mood_event/focused
|
antag_moodlet = /datum/mood_event/focused
|
||||||
var/helping_station = FALSE
|
var/helping_station = FALSE
|
||||||
@@ -15,11 +17,11 @@
|
|||||||
|
|
||||||
/datum/antagonist/ninja/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/ninja/apply_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_ninja_icons_added(M)
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
|
|
||||||
/datum/antagonist/ninja/remove_innate_effects(mob/living/mob_override)
|
/datum/antagonist/ninja/remove_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_ninja_icons_removed(M)
|
remove_antag_hud(antag_hud_type, M)
|
||||||
|
|
||||||
/datum/antagonist/ninja/proc/equip_space_ninja(mob/living/carbon/human/H = owner.current)
|
/datum/antagonist/ninja/proc/equip_space_ninja(mob/living/carbon/human/H = owner.current)
|
||||||
return H.equipOutfit(/datum/outfit/ninja)
|
return H.equipOutfit(/datum/outfit/ninja)
|
||||||
@@ -148,13 +150,3 @@
|
|||||||
new_owner.add_antag_datum(src)
|
new_owner.add_antag_datum(src)
|
||||||
message_admins("[key_name_admin(admin)] has [adj] ninja'ed [key_name_admin(new_owner)].")
|
message_admins("[key_name_admin(admin)] has [adj] ninja'ed [key_name_admin(new_owner)].")
|
||||||
log_admin("[key_name(admin)] has [adj] ninja'ed [key_name(new_owner)].")
|
log_admin("[key_name(admin)] has [adj] ninja'ed [key_name(new_owner)].")
|
||||||
|
|
||||||
/datum/antagonist/ninja/proc/update_ninja_icons_added(var/mob/living/carbon/human/ninja)
|
|
||||||
var/datum/atom_hud/antag/ninjahud = GLOB.huds[ANTAG_HUD_NINJA]
|
|
||||||
ninjahud.join_hud(ninja)
|
|
||||||
set_antag_hud(ninja, "ninja")
|
|
||||||
|
|
||||||
/datum/antagonist/ninja/proc/update_ninja_icons_removed(var/mob/living/carbon/human/ninja)
|
|
||||||
var/datum/atom_hud/antag/ninjahud = GLOB.huds[ANTAG_HUD_NINJA]
|
|
||||||
ninjahud.leave_hud(ninja)
|
|
||||||
set_antag_hud(ninja, null)
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
roundend_category = "syndicate operatives" //just in case
|
roundend_category = "syndicate operatives" //just in case
|
||||||
antagpanel_category = "NukeOp"
|
antagpanel_category = "NukeOp"
|
||||||
job_rank = ROLE_OPERATIVE
|
job_rank = ROLE_OPERATIVE
|
||||||
|
antag_hud_type = ANTAG_HUD_OPS
|
||||||
|
antag_hud_name = "synd"
|
||||||
antag_moodlet = /datum/mood_event/focused
|
antag_moodlet = /datum/mood_event/focused
|
||||||
var/datum/team/nuclear/nuke_team
|
var/datum/team/nuclear/nuke_team
|
||||||
var/always_new_team = FALSE //If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team.
|
var/always_new_team = FALSE //If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team.
|
||||||
@@ -10,24 +12,15 @@
|
|||||||
var/nukeop_outfit = /datum/outfit/syndicate
|
var/nukeop_outfit = /datum/outfit/syndicate
|
||||||
can_hijack = HIJACK_HIJACKER //Alternative way to wipe out the station.
|
can_hijack = HIJACK_HIJACKER //Alternative way to wipe out the station.
|
||||||
|
|
||||||
/datum/antagonist/nukeop/proc/update_synd_icons_added(mob/living/M)
|
|
||||||
var/datum/atom_hud/antag/opshud = GLOB.huds[ANTAG_HUD_OPS]
|
|
||||||
opshud.join_hud(M)
|
|
||||||
set_antag_hud(M, "synd")
|
|
||||||
|
|
||||||
/datum/antagonist/nukeop/proc/update_synd_icons_removed(mob/living/M)
|
|
||||||
var/datum/atom_hud/antag/opshud = GLOB.huds[ANTAG_HUD_OPS]
|
|
||||||
opshud.leave_hud(M)
|
|
||||||
set_antag_hud(M, null)
|
|
||||||
|
|
||||||
/datum/antagonist/nukeop/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/nukeop/apply_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_synd_icons_added(M)
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
ADD_TRAIT(owner, TRAIT_DISK_VERIFIER, NUKEOP_TRAIT)
|
ADD_TRAIT(owner, TRAIT_DISK_VERIFIER, NUKEOP_TRAIT)
|
||||||
|
|
||||||
/datum/antagonist/nukeop/remove_innate_effects(mob/living/mob_override)
|
/datum/antagonist/nukeop/remove_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_synd_icons_removed(M)
|
remove_antag_hud(antag_hud_type, M)
|
||||||
REMOVE_TRAIT(owner, TRAIT_DISK_VERIFIER, NUKEOP_TRAIT)
|
REMOVE_TRAIT(owner, TRAIT_DISK_VERIFIER, NUKEOP_TRAIT)
|
||||||
|
|
||||||
/datum/antagonist/nukeop/proc/equip_op()
|
/datum/antagonist/nukeop/proc/equip_op()
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
antagpanel_category = "Revolution"
|
antagpanel_category = "Revolution"
|
||||||
job_rank = ROLE_REV
|
job_rank = ROLE_REV
|
||||||
antag_moodlet = /datum/mood_event/revolution
|
antag_moodlet = /datum/mood_event/revolution
|
||||||
var/hud_type = "rev"
|
antag_hud_type = ANTAG_HUD_REV
|
||||||
|
antag_hud_name = "rev"
|
||||||
var/datum/team/revolution/rev_team
|
var/datum/team/revolution/rev_team
|
||||||
|
|
||||||
/datum/antagonist/rev/can_be_owned(datum/mind/new_owner)
|
/datum/antagonist/rev/can_be_owned(datum/mind/new_owner)
|
||||||
@@ -22,11 +23,13 @@
|
|||||||
|
|
||||||
/datum/antagonist/rev/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/rev/apply_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_rev_icons_added(M)
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
|
handle_clown_mutation(M, mob_override ? null : "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
|
||||||
|
|
||||||
/datum/antagonist/rev/remove_innate_effects(mob/living/mob_override)
|
/datum/antagonist/rev/remove_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_rev_icons_removed(M)
|
remove_antag_hud(antag_hud_type, M)
|
||||||
|
handle_clown_mutation(M, removing = FALSE)
|
||||||
|
|
||||||
/datum/antagonist/rev/proc/equip_rev()
|
/datum/antagonist/rev/proc/equip_rev()
|
||||||
return
|
return
|
||||||
@@ -147,7 +150,7 @@
|
|||||||
|
|
||||||
/datum/antagonist/rev/head
|
/datum/antagonist/rev/head
|
||||||
name = "Head Revolutionary"
|
name = "Head Revolutionary"
|
||||||
hud_type = "rev_head"
|
antag_hud_name = "rev_head"
|
||||||
var/remove_clumsy = FALSE
|
var/remove_clumsy = FALSE
|
||||||
var/give_flash = FALSE
|
var/give_flash = FALSE
|
||||||
var/give_hud = TRUE
|
var/give_hud = TRUE
|
||||||
@@ -155,16 +158,6 @@
|
|||||||
/datum/antagonist/rev/head/antag_listing_name()
|
/datum/antagonist/rev/head/antag_listing_name()
|
||||||
return ..() + "(Leader)"
|
return ..() + "(Leader)"
|
||||||
|
|
||||||
/datum/antagonist/rev/proc/update_rev_icons_added(mob/living/M)
|
|
||||||
var/datum/atom_hud/antag/revhud = GLOB.huds[ANTAG_HUD_REV]
|
|
||||||
revhud.join_hud(M)
|
|
||||||
set_antag_hud(M,hud_type)
|
|
||||||
|
|
||||||
/datum/antagonist/rev/proc/update_rev_icons_removed(mob/living/M)
|
|
||||||
var/datum/atom_hud/antag/revhud = GLOB.huds[ANTAG_HUD_REV]
|
|
||||||
revhud.leave_hud(M)
|
|
||||||
set_antag_hud(M, null)
|
|
||||||
|
|
||||||
/datum/antagonist/rev/proc/can_be_converted(mob/living/candidate)
|
/datum/antagonist/rev/proc/can_be_converted(mob/living/candidate)
|
||||||
if(!candidate.mind)
|
if(!candidate.mind)
|
||||||
return FALSE
|
return FALSE
|
||||||
@@ -238,10 +231,6 @@
|
|||||||
if(!ishuman(H) && !ismonkey(H))
|
if(!ishuman(H) && !ismonkey(H))
|
||||||
return
|
return
|
||||||
|
|
||||||
if(remove_clumsy && owner.assigned_role == "Clown")
|
|
||||||
to_chat(owner, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
|
|
||||||
H.dna.remove_mutation(CLOWNMUT)
|
|
||||||
|
|
||||||
if(give_flash)
|
if(give_flash)
|
||||||
var/obj/item/assembly/flash/T = new(H)
|
var/obj/item/assembly/flash/T = new(H)
|
||||||
var/list/slots = list (
|
var/list/slots = list (
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
antagpanel_category = "Traitor"
|
antagpanel_category = "Traitor"
|
||||||
job_rank = ROLE_TRAITOR
|
job_rank = ROLE_TRAITOR
|
||||||
antag_moodlet = /datum/mood_event/focused
|
antag_moodlet = /datum/mood_event/focused
|
||||||
|
antag_hud_type = ANTAG_HUD_TRAITOR
|
||||||
|
antag_hud_name = "traitor"
|
||||||
var/special_role = ROLE_TRAITOR
|
var/special_role = ROLE_TRAITOR
|
||||||
var/employer = "The Syndicate"
|
var/employer = "The Syndicate"
|
||||||
var/give_objectives = TRUE
|
var/give_objectives = TRUE
|
||||||
@@ -26,21 +28,7 @@
|
|||||||
forge_traitor_objectives()
|
forge_traitor_objectives()
|
||||||
finalize_traitor()
|
finalize_traitor()
|
||||||
RegisterSignal(owner.current, COMSIG_MOVABLE_HEAR, .proc/handle_hearing)
|
RegisterSignal(owner.current, COMSIG_MOVABLE_HEAR, .proc/handle_hearing)
|
||||||
..()
|
return ..()
|
||||||
|
|
||||||
/datum/antagonist/traitor/apply_innate_effects()
|
|
||||||
if(owner.assigned_role == "Clown")
|
|
||||||
var/mob/living/carbon/human/traitor_mob = owner.current
|
|
||||||
if(traitor_mob && istype(traitor_mob))
|
|
||||||
if(!silent)
|
|
||||||
to_chat(traitor_mob, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
|
|
||||||
traitor_mob.dna.remove_mutation(CLOWNMUT)
|
|
||||||
|
|
||||||
/datum/antagonist/traitor/remove_innate_effects()
|
|
||||||
if(owner.assigned_role == "Clown")
|
|
||||||
var/mob/living/carbon/human/traitor_mob = owner.current
|
|
||||||
if(traitor_mob && istype(traitor_mob))
|
|
||||||
traitor_mob.dna.add_mutation(CLOWNMUT)
|
|
||||||
|
|
||||||
/datum/antagonist/traitor/on_removal()
|
/datum/antagonist/traitor/on_removal()
|
||||||
//Remove malf powers.
|
//Remove malf powers.
|
||||||
@@ -55,7 +43,7 @@
|
|||||||
if(!silent && owner.current)
|
if(!silent && owner.current)
|
||||||
to_chat(owner.current,"<span class='userdanger'>You are no longer the [special_role]!</span>")
|
to_chat(owner.current,"<span class='userdanger'>You are no longer the [special_role]!</span>")
|
||||||
owner.special_role = null
|
owner.special_role = null
|
||||||
..()
|
return ..()
|
||||||
|
|
||||||
/datum/antagonist/traitor/proc/handle_hearing(datum/source, list/hearing_args)
|
/datum/antagonist/traitor/proc/handle_hearing(datum/source, list/hearing_args)
|
||||||
var/message = hearing_args[HEARING_MESSAGE]
|
var/message = hearing_args[HEARING_MESSAGE]
|
||||||
@@ -210,16 +198,6 @@
|
|||||||
if(should_give_codewords)
|
if(should_give_codewords)
|
||||||
give_codewords()
|
give_codewords()
|
||||||
|
|
||||||
/datum/antagonist/traitor/proc/update_traitor_icons_added(datum/mind/traitor_mind)
|
|
||||||
var/datum/atom_hud/antag/traitorhud = GLOB.huds[ANTAG_HUD_TRAITOR]
|
|
||||||
traitorhud.join_hud(owner.current)
|
|
||||||
set_antag_hud(owner.current, "traitor")
|
|
||||||
|
|
||||||
/datum/antagonist/traitor/proc/update_traitor_icons_removed(datum/mind/traitor_mind)
|
|
||||||
var/datum/atom_hud/antag/traitorhud = GLOB.huds[ANTAG_HUD_TRAITOR]
|
|
||||||
traitorhud.leave_hud(owner.current)
|
|
||||||
set_antag_hud(owner.current, null)
|
|
||||||
|
|
||||||
/datum/antagonist/traitor/proc/finalize_traitor()
|
/datum/antagonist/traitor/proc/finalize_traitor()
|
||||||
switch(traitor_kind)
|
switch(traitor_kind)
|
||||||
if(TRAITOR_AI)
|
if(TRAITOR_AI)
|
||||||
@@ -233,15 +211,19 @@
|
|||||||
|
|
||||||
/datum/antagonist/traitor/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/traitor/apply_innate_effects(mob/living/mob_override)
|
||||||
. = ..()
|
. = ..()
|
||||||
update_traitor_icons_added()
|
var/mob/living/M = mob_override || owner.current
|
||||||
var/mob/living/silicon/ai/A = mob_override || owner.current
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
|
handle_clown_mutation(M, mob_override ? null : "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
|
||||||
|
var/mob/living/silicon/ai/A = M
|
||||||
if(istype(A) && traitor_kind == TRAITOR_AI)
|
if(istype(A) && traitor_kind == TRAITOR_AI)
|
||||||
A.hack_software = TRUE
|
A.hack_software = TRUE
|
||||||
|
|
||||||
/datum/antagonist/traitor/remove_innate_effects(mob/living/mob_override)
|
/datum/antagonist/traitor/remove_innate_effects(mob/living/mob_override)
|
||||||
. = ..()
|
. = ..()
|
||||||
update_traitor_icons_removed()
|
var/mob/living/M = mob_override || owner.current
|
||||||
var/mob/living/silicon/ai/A = mob_override || owner.current
|
remove_antag_hud(antag_hud_type, M)
|
||||||
|
handle_clown_mutation(M, removing = FALSE)
|
||||||
|
var/mob/living/silicon/ai/A = M
|
||||||
if(istype(A) && traitor_kind == TRAITOR_AI)
|
if(istype(A) && traitor_kind == TRAITOR_AI)
|
||||||
A.hack_software = FALSE
|
A.hack_software = FALSE
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,7 @@
|
|||||||
return
|
return
|
||||||
if(!ishuman(M))//If target is not a human.
|
if(!ishuman(M))//If target is not a human.
|
||||||
return ..()
|
return ..()
|
||||||
if(!M.mind.hasSoul || isdevil(M))
|
if(!M.mind.hasSoul || is_devil(M))
|
||||||
to_chat(user, "<span class='warning'>This... thing has no soul! It's filled with evil!</span>")
|
to_chat(user, "<span class='warning'>This... thing has no soul! It's filled with evil!</span>")
|
||||||
return
|
return
|
||||||
if(iscultist(M))
|
if(iscultist(M))
|
||||||
@@ -249,8 +249,7 @@
|
|||||||
makeNewConstruct(/mob/living/simple_animal/hostile/construct/builder/noncult, A, user, 0, T.loc)
|
makeNewConstruct(/mob/living/simple_animal/hostile/construct/builder/noncult, A, user, 0, T.loc)
|
||||||
for(var/datum/mind/B in SSticker.mode.cult)
|
for(var/datum/mind/B in SSticker.mode.cult)
|
||||||
if(B == A.mind)
|
if(B == A.mind)
|
||||||
SSticker.mode.cult -= A.mind
|
SSticker.mode.remove_cultist(A.mind)
|
||||||
SSticker.mode.update_cult_icons_removed(A.mind)
|
|
||||||
qdel(T)
|
qdel(T)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -3,11 +3,12 @@
|
|||||||
roundend_category = "wizards/witches"
|
roundend_category = "wizards/witches"
|
||||||
antagpanel_category = "Wizard"
|
antagpanel_category = "Wizard"
|
||||||
job_rank = ROLE_WIZARD
|
job_rank = ROLE_WIZARD
|
||||||
|
antag_hud_type = ANTAG_HUD_WIZ
|
||||||
|
antag_hud_name = "wizard"
|
||||||
antag_moodlet = /datum/mood_event/focused
|
antag_moodlet = /datum/mood_event/focused
|
||||||
var/give_objectives = TRUE
|
var/give_objectives = TRUE
|
||||||
var/strip = TRUE //strip before equipping
|
var/strip = TRUE //strip before equipping
|
||||||
var/allow_rename = TRUE
|
var/allow_rename = TRUE
|
||||||
var/hud_version = "wizard"
|
|
||||||
var/datum/team/wizard/wiz_team //Only created if wizard summons apprentices
|
var/datum/team/wizard/wiz_team //Only created if wizard summons apprentices
|
||||||
var/move_to_lair = TRUE
|
var/move_to_lair = TRUE
|
||||||
var/outfit_type = /datum/outfit/wizard
|
var/outfit_type = /datum/outfit/wizard
|
||||||
@@ -49,7 +50,7 @@
|
|||||||
wiz_team = new(owner)
|
wiz_team = new(owner)
|
||||||
wiz_team.name = "[owner.current.real_name] team"
|
wiz_team.name = "[owner.current.real_name] team"
|
||||||
wiz_team.master_wizard = src
|
wiz_team.master_wizard = src
|
||||||
update_wiz_icons_added(owner.current)
|
add_antag_hud(antag_hud_type, antag_hud_name, owner.current)
|
||||||
|
|
||||||
/datum/antagonist/wizard/proc/send_to_lair()
|
/datum/antagonist/wizard/proc/send_to_lair()
|
||||||
if(!owner || !owner.current)
|
if(!owner || !owner.current)
|
||||||
@@ -152,12 +153,12 @@
|
|||||||
|
|
||||||
/datum/antagonist/wizard/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/wizard/apply_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_wiz_icons_added(M, wiz_team ? TRUE : FALSE) //Don't bother showing the icon if you're solo wizard
|
add_antag_hud(antag_hud_type, antag_hud_name, M)
|
||||||
M.faction |= ROLE_WIZARD
|
M.faction |= ROLE_WIZARD
|
||||||
|
|
||||||
/datum/antagonist/wizard/remove_innate_effects(mob/living/mob_override)
|
/datum/antagonist/wizard/remove_innate_effects(mob/living/mob_override)
|
||||||
var/mob/living/M = mob_override || owner.current
|
var/mob/living/M = mob_override || owner.current
|
||||||
update_wiz_icons_removed(M)
|
remove_antag_hud(antag_hud_type, M)
|
||||||
M.faction -= ROLE_WIZARD
|
M.faction -= ROLE_WIZARD
|
||||||
|
|
||||||
|
|
||||||
@@ -170,7 +171,7 @@
|
|||||||
|
|
||||||
/datum/antagonist/wizard/apprentice
|
/datum/antagonist/wizard/apprentice
|
||||||
name = "Wizard Apprentice"
|
name = "Wizard Apprentice"
|
||||||
hud_version = "apprentice"
|
antag_hud_name = "apprentice"
|
||||||
var/datum/mind/master
|
var/datum/mind/master
|
||||||
var/school = APPRENTICE_DESTRUCTION
|
var/school = APPRENTICE_DESTRUCTION
|
||||||
outfit_type = /datum/outfit/wizard/apprentice
|
outfit_type = /datum/outfit/wizard/apprentice
|
||||||
@@ -252,17 +253,6 @@
|
|||||||
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink(null))
|
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink(null))
|
||||||
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null))
|
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null))
|
||||||
|
|
||||||
/datum/antagonist/wizard/proc/update_wiz_icons_added(mob/living/wiz,join = TRUE)
|
|
||||||
var/datum/atom_hud/antag/wizhud = GLOB.huds[ANTAG_HUD_WIZ]
|
|
||||||
wizhud.join_hud(wiz)
|
|
||||||
set_antag_hud(wiz, hud_version)
|
|
||||||
|
|
||||||
/datum/antagonist/wizard/proc/update_wiz_icons_removed(mob/living/wiz)
|
|
||||||
var/datum/atom_hud/antag/wizhud = GLOB.huds[ANTAG_HUD_WIZ]
|
|
||||||
wizhud.leave_hud(wiz)
|
|
||||||
set_antag_hud(wiz, null)
|
|
||||||
|
|
||||||
|
|
||||||
/datum/antagonist/wizard/academy
|
/datum/antagonist/wizard/academy
|
||||||
name = "Academy Teacher"
|
name = "Academy Teacher"
|
||||||
outfit_type = /datum/outfit/wizard/academy
|
outfit_type = /datum/outfit/wizard/academy
|
||||||
|
|||||||
Reference in New Issue
Block a user