Merge pull request #16023 from lordpidey/hud_fix_lordpidey

[S] Removes edge cases of traitors seeing own antag hud upon body switch.
This commit is contained in:
Joan Lung
2016-03-15 21:30:30 -04:00
6 changed files with 16 additions and 12 deletions
+4 -4
View File
@@ -14,10 +14,10 @@ var/datum/atom_hud/huds = list( \
ANTAG_HUD_SHADOW = new/datum/atom_hud/antag(), \
ANTAG_HUD_HOG_BLUE = new/datum/atom_hud/antag(),\
ANTAG_HUD_HOG_RED = new/datum/atom_hud/antag(),\
ANTAG_HUD_TRAITOR = new/datum/atom_hud/antag(),\
ANTAG_HUD_NINJA = new/datum/atom_hud/antag(),\
ANTAG_HUD_CHANGELING = new/datum/atom_hud/antag(),\
ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag(),\
ANTAG_HUD_TRAITOR = new/datum/atom_hud/antag/hidden(),\
ANTAG_HUD_NINJA = new/datum/atom_hud/antag/hidden(),\
ANTAG_HUD_CHANGELING = new/datum/atom_hud/antag/hidden(),\
ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag/hidden(),\
)
/datum/atom_hud
+6 -2
View File
@@ -1,14 +1,18 @@
/datum/atom_hud/antag
hud_icons = list(ANTAG_HUD)
var/self_visible = 1
/datum/atom_hud/antag/proc/join_hud(mob/M, var/sees_hud = 1)
/datum/atom_hud/antag/hidden
self_visible = 0
/datum/atom_hud/antag/proc/join_hud(mob/M)
//sees_hud should be set to 0 if the mob does not get to see it's own hud type.
if(!istype(M))
CRASH("join_hud(): [M] ([M.type]) is not a mob!")
if(M.mind.antag_hud) //note: please let this runtime if a mob has no mind, as mindless mobs shouldn't be getting antagged
M.mind.antag_hud.leave_hud(M)
add_to_hud(M)
if(sees_hud)
if(self_visible)
add_hud_to(M)
M.mind.antag_hud = src
+1 -1
View File
@@ -504,7 +504,7 @@ var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mas
/datum/game_mode/proc/update_changeling_icons_added(datum/mind/changling_mind)
var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_CHANGELING]
hud.join_hud(changling_mind.current, 0)
hud.join_hud(changling_mind.current)
set_antag_hud(changling_mind.current, "changling")
/datum/game_mode/proc/update_changeling_icons_removed(datum/mind/changling_mind)
@@ -344,7 +344,7 @@
/datum/game_mode/proc/update_abductor_icons_added(datum/mind/alien_mind)
var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_ABDUCTOR]
hud.join_hud(alien_mind.current, 0)
hud.join_hud(alien_mind.current)
set_antag_hud(alien_mind.current, ((alien_mind in abductors) ? "abductor" : "abductee"))
/datum/game_mode/proc/update_abductor_icons_removed(datum/mind/alien_mind)
+1 -1
View File
@@ -377,7 +377,7 @@
/datum/game_mode/proc/update_traitor_icons_added(datum/mind/traitor_mind)
var/datum/atom_hud/antag/traitorhud = huds[ANTAG_HUD_TRAITOR]
traitorhud.join_hud(traitor_mind.current, 0)
traitorhud.join_hud(traitor_mind.current)
set_antag_hud(traitor_mind.current, "traitor")
/datum/game_mode/proc/update_traitor_icons_removed(datum/mind/traitor_mind)
+3 -3
View File
@@ -215,9 +215,9 @@ Contents:
return 1
/datum/game_mode/proc/update_ninja_icons_added(var/mob/living/carbon/human/ninja)
var/datum/atom_hud/antag/ninjahud = huds[ANTAG_HUD_TRAITOR]
ninjahud.join_hud(ninja, 0)
set_antag_hud(ninja, "traitor")
var/datum/atom_hud/antag/ninjahud = huds[ANTAG_HUD_NINJA]
ninjahud.join_hud(ninja)
set_antag_hud(ninja, "ninja")
/datum/game_mode/proc/update_ninja_icons_removed(datum/mind/ninja_mind)
var/datum/atom_hud/antag/ninjahud = huds[ANTAG_HUD_NINJA]