From 12f4d11f7e7f1d2145331b432f22b07b1baed9b8 Mon Sep 17 00:00:00 2001 From: Mike Long Date: Sat, 5 Mar 2016 00:52:59 -0500 Subject: [PATCH 1/6] Adds antag hud for traitors/changlings/abductors/abductees/ninjas Right now, it's admin only. Has not been tested. --- code/__DEFINES/hud.dm | 4 ++++ code/datums/mind.dm | 16 ++++++++++++++++ code/game/gamemodes/changeling/changeling.dm | 11 +++++++++++ .../miniantags/abduction/abduction.dm | 10 ++++++++++ .../abduction/machinery/experiment.dm | 1 + code/game/gamemodes/shadowling/shadowling.dm | 2 +- code/game/gamemodes/traitor/traitor.dm | 12 ++++++++++++ code/modules/ninja/ninja_event.dm | 12 +++++++++++- icons/mob/hud.dmi | Bin 9718 -> 10706 bytes 9 files changed, 66 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 0ac66f3092d..9ca921c0cda 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -32,3 +32,7 @@ #define ANTAG_HUD_SHADOW 10 #define ANTAG_HUD_HOG_BLUE 11 #define ANTAG_HUD_HOG_RED 12 +#define ANTAG_HUD_TRAITOR 13 +#define ANTAG_HUD_NINJA 14 +#define ANTAG_HUD_CHANGELING 15 +#define ANTAG_HUD_ABDUCTOR 16 diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 54e5b3138a8..8e1aac148fa 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -113,6 +113,7 @@ changeling = null special_role = null remove_antag_equip() + ticker.mode.update_changeling_icons_removed(src) /datum/mind/proc/remove_traitor() if(src in ticker.mode.traitors) @@ -126,6 +127,7 @@ qdel(A.malf_picker) special_role = null remove_antag_equip() + ticker.mode.update_traitor_icons_removed(src) /datum/mind/proc/remove_nukeop() if(src in ticker.mode.syndicates) @@ -198,6 +200,13 @@ remove_cultist() remove_rev() remove_gang() + ticker.mode.update_changeling_icons_removed(src) + ticker.mode.update_traitor_icons_removed(src) + ticker.mode.update_wiz_icons_removed(src) + ticker.mode.update_cult_icons_removed(src) + ticker.mode.update_rev_icons_removed(src) + gang_datum.remove_gang_hud(src) + /datum/mind/proc/show_memory(mob/recipient, window=1) if(!recipient) @@ -997,6 +1006,7 @@ remove_wizard() current << "You have been brainwashed! You are no longer a wizard!" log_admin("[key_name(usr)] has de-wizard'ed [current].") + ticker.mode.update_wiz_icons_removed(src) if("wizard") if(!(src in ticker.mode.wizards)) ticker.mode.wizards += src @@ -1005,6 +1015,7 @@ current << "You are the Space Wizard!" message_admins("[key_name_admin(usr)] has wizard'ed [current].") log_admin("[key_name(usr)] has wizard'ed [current].") + ticker.mode.update_wiz_icons_added(src) if("lair") current.loc = pick(wizardstart) if("dressup") @@ -1101,6 +1112,7 @@ current << "You have been brainwashed! You are no longer a traitor!" message_admins("[key_name_admin(usr)] has de-traitor'ed [current].") log_admin("[key_name(usr)] has de-traitor'ed [current].") + ticker.mode.update_traitor_icons_removed(src) if("traitor") if(!(src in ticker.mode.traitors)) @@ -1112,6 +1124,7 @@ if(isAI(current)) var/mob/living/silicon/ai/A = current ticker.mode.add_law_zero(A) + ticker.mode.update_traitor_icons_added(src) if("autoobjectives") ticker.mode.forge_traitor_objectives(src) @@ -1158,12 +1171,14 @@ switch(href_list["abductor"]) if("clear") usr << "Not implemented yet. Sorry!" + //ticker.mode.update_abductor_icons_removed(src) if("abductor") if(!ishuman(current)) usr << "This only works on humans!" return make_Abductor() log_admin("[key_name(usr)] turned [current] into abductor.") + ticker.mode.update_abductor_icons_added(src) if("equip") var/gear = alert("Agent or Scientist Gear","Gear","Agent","Scientist") if(gear) @@ -1330,6 +1345,7 @@ special_role = "Changeling" ticker.mode.forge_changeling_objectives(src) ticker.mode.greet_changeling(src) + ticker.mode.update_changeling_icons_added(src) /datum/mind/proc/make_Wizard() if(!(src in ticker.mode.wizards)) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 6a23763a639..fef8c63a29a 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -97,6 +97,7 @@ var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mas changeling.special_role = "Changeling" forge_changeling_objectives(changeling) greet_changeling(changeling) + ticker.mode.update_changeling_icons_added(changeling) ..() return @@ -500,3 +501,13 @@ var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mas newprofile.underwear = underwear newprofile.undershirt = undershirt newprofile.socks = socks + +/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) + set_antag_hud(changling_mind.current, "changling") + +/datum/game_mode/proc/update_changeling_icons_removed(datum/mind/changling_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_CHANGELING] + hud.leave_hud(changling_mind.current) + set_antag_hud(changling_mind.current, null) diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index bfb25e12699..3e602b824e4 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -342,6 +342,16 @@ return 0 return 0 +/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) + set_antag_hud(alien_mind.current, ((alien_mind in abductors) ? "abductor" : "abductee")) + +/datum/game_mode/proc/update_abductor_icons_removed(datum/mind/alien_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_ABDUCTOR] + hud.leave_hud(alien_mind.current) + set_antag_hud(alien_mind.current, null) + /datum/objective/abductee dangerrating = 5 completed = 1 diff --git a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm index 9458a61adc7..5dde76b4c00 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm @@ -164,6 +164,7 @@ for(var/datum/objective/objective in H.mind.objectives) H << "Objective #[obj_count]: [objective.explanation_text]" obj_count++ + ticker.mode.update_abductor_icons_added(H.mind) for(var/obj/item/organ/internal/gland/G in H.internal_organs) G.Start() diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index dfa6e09affd..64bd43c8bea 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -306,7 +306,7 @@ Made by Xhuis shadow_hud.join_hud(shadow_mind.current) set_antag_hud(shadow_mind.current, ((shadow_mind in shadows) ? "shadowling" : "thrall")) -/datum/game_mode/proc/update_shadow_icons_removed(datum/mind/shadow_mind) //This should never actually occur, but it's here anyway. +/datum/game_mode/proc/update_shadow_icons_removed(datum/mind/shadow_mind) var/datum/atom_hud/antag/shadow_hud = huds[ANTAG_HUD_SHADOW] shadow_hud.leave_hud(shadow_mind.current) set_antag_hud(shadow_mind.current, null) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 1ca929d9c03..04637d4f663 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -206,6 +206,7 @@ add_law_zero(traitor.current) else equip_traitor(traitor.current) + ticker.mode.update_traitor_icons_added(traitor) return @@ -373,3 +374,14 @@ where = "In your [equipped_slot]" mob << "

[where] is a folder containing secret documents that another Syndicate group wants. We have set up a meeting with one of their agents on station to make an exchange. Exercise extreme caution as they cannot be trusted and may be hostile.
" mob.update_icons() + +/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) + set_antag_hud(traitor_mind.current, "traitor") + +/datum/game_mode/proc/update_traitor_icons_removed(datum/mind/traitor_mind) + var/datum/atom_hud/antag/traitorhud = huds[ANTAG_HUD_TRAITOR] + traitorhud.leave_hud(traitor_mind.current) + set_antag_hud(traitor_mind.current, null) + diff --git a/code/modules/ninja/ninja_event.dm b/code/modules/ninja/ninja_event.dm index 1ef8d0a23e0..058c0e54601 100644 --- a/code/modules/ninja/ninja_event.dm +++ b/code/modules/ninja/ninja_event.dm @@ -158,7 +158,7 @@ Contents: return Ninja << sound('sound/effects/ninja_greeting.ogg') //so ninja you probably wouldn't even know if you were made one - + ticker.mode.update_ninja_icons_added(Mind) success_spawn = 1 @@ -213,3 +213,13 @@ Contents: var/obj/item/weapon/implant/explosive/E = new/obj/item/weapon/implant/explosive(src) E.implant(src) 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) + set_antag_hud(ninja, "traitor") + +/datum/game_mode/proc/update_ninja_icons_removed(datum/mind/ninja_mind) + var/datum/atom_hud/antag/ninjahud = huds[ANTAG_HUD_NINJA] + ninjahud.leave_hud(ninja_mind.current) + set_antag_hud(ninja_mind.current, null) diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 8e7724e96e1891eb09071a4bc175929ee5306786..f0675db88a6ad8398e8da0a9b93451fe2999a24f 100644 GIT binary patch literal 10706 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 B8_fU! literal 9718 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 L(NV5^W*hZivLfB( From 8eb7267030480095bfef17e9888a281c4db44e32 Mon Sep 17 00:00:00 2001 From: Mike Long Date: Sat, 5 Mar 2016 01:55:58 -0500 Subject: [PATCH 2/6] Theoretically makes the new huds not runtime. In actuality, it just causes an UBSURD amount of runtimes on startup. No clue why. --- code/datums/hud.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 514c87c2baa..6c648d1f5b7 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -14,6 +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_CHANGELING = new/datum/atom_hud/antag(),\ + ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag(),\ + ANTAG_HUD_NINJA = new/datum/atom_hud/antag(),\ ) /datum/atom_hud From c0d678e18bf5a2c48c0732cdb2eb6ea5c05dac61 Mon Sep 17 00:00:00 2001 From: Mike Long Date: Sat, 5 Mar 2016 02:50:34 -0500 Subject: [PATCH 3/6] Fixes the inexplicable runtime errors. --- code/datums/hud.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 6c648d1f5b7..63b52de6377 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -15,9 +15,9 @@ var/datum/atom_hud/huds = list( \ 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_CHANGELING = new/datum/atom_hud/antag(),\ - ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag(),\ ANTAG_HUD_NINJA = new/datum/atom_hud/antag(),\ + ANTAG_HUD_CHANGLING = new/datum/atom_hud/antag(),\ + ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag(),\ ) /datum/atom_hud From 27e781e3cf165bad8cf09484fd3264ece83dbe4b Mon Sep 17 00:00:00 2001 From: Mike Long Date: Sat, 5 Mar 2016 03:12:00 -0500 Subject: [PATCH 4/6] Corrected mistake. It now works with changelings too. --- code/datums/hud.dm | 2 +- code/datums/mind.dm | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 63b52de6377..36cf5577192 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -16,7 +16,7 @@ var/datum/atom_hud/huds = list( \ 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_CHANGLING = new/datum/atom_hud/antag(),\ + ANTAG_HUD_CHANGELING = new/datum/atom_hud/antag(),\ ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag(),\ ) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 8e1aac148fa..1a8e401399b 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1041,6 +1041,7 @@ current << "Your powers are awoken. A flash of memory returns to us...we are [changeling.changelingID], a changeling!" message_admins("[key_name_admin(usr)] has changeling'ed [current].") log_admin("[key_name(usr)] has changeling'ed [current].") + ticker.mode.update_changeling_icons_added(src) if("autoobjectives") ticker.mode.forge_changeling_objectives(src) usr << "The objectives for changeling [key] have been generated. You can edit them and anounce manually." From cdd9fa5116461129a0d1410afca566b26dd0ea02 Mon Sep 17 00:00:00 2001 From: Mike Long Date: Sat, 5 Mar 2016 14:23:19 -0500 Subject: [PATCH 5/6] traitor/changeling/abductee/abductor/ninja no longer see their own huds. --- code/game/gamemodes/antag_hud.dm | 6 ++++-- code/game/gamemodes/changeling/changeling.dm | 2 +- code/game/gamemodes/miniantags/abduction/abduction.dm | 2 +- code/game/gamemodes/traitor/traitor.dm | 2 +- code/modules/ninja/ninja_event.dm | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/code/game/gamemodes/antag_hud.dm b/code/game/gamemodes/antag_hud.dm index 399d613a92b..c4a8c4da9a1 100644 --- a/code/game/gamemodes/antag_hud.dm +++ b/code/game/gamemodes/antag_hud.dm @@ -1,13 +1,15 @@ /datum/atom_hud/antag hud_icons = list(ANTAG_HUD) -/datum/atom_hud/antag/proc/join_hud(mob/M) +/datum/atom_hud/antag/proc/join_hud(mob/M, var/sees_hud = 1) + //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) - add_hud_to(M) + if(sees_hud) + add_hud_to(M) M.mind.antag_hud = src /datum/atom_hud/antag/proc/leave_hud(mob/M) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index fef8c63a29a..e324640e5d9 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -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) + hud.join_hud(changling_mind.current, 0) set_antag_hud(changling_mind.current, "changling") /datum/game_mode/proc/update_changeling_icons_removed(datum/mind/changling_mind) diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index 3e602b824e4..e787e88b95c 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -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) + hud.join_hud(alien_mind.current, 0) set_antag_hud(alien_mind.current, ((alien_mind in abductors) ? "abductor" : "abductee")) /datum/game_mode/proc/update_abductor_icons_removed(datum/mind/alien_mind) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 04637d4f663..8439ba2bd66 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -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) + traitorhud.join_hud(traitor_mind.current, 0) set_antag_hud(traitor_mind.current, "traitor") /datum/game_mode/proc/update_traitor_icons_removed(datum/mind/traitor_mind) diff --git a/code/modules/ninja/ninja_event.dm b/code/modules/ninja/ninja_event.dm index 058c0e54601..812607851f4 100644 --- a/code/modules/ninja/ninja_event.dm +++ b/code/modules/ninja/ninja_event.dm @@ -216,7 +216,7 @@ Contents: /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) + ninjahud.join_hud(ninja, 0) set_antag_hud(ninja, "traitor") /datum/game_mode/proc/update_ninja_icons_removed(datum/mind/ninja_mind) From daf13e0f1913eebe88e71f7df7355c69c56a0421 Mon Sep 17 00:00:00 2001 From: Mike Long Date: Sat, 5 Mar 2016 15:00:29 -0500 Subject: [PATCH 6/6] Now works with gangs too (provided the gang was created BEFORE antaghud was turned on) --- code/modules/admin/verbs/randomverbs.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index b8e13b38bb8..1f3482ed530 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -976,6 +976,10 @@ var/list/datum/outfit/custom_outfits = list() //Admin created outfits for(var/datum/atom_hud/H in huds) if(istype(H, /datum/atom_hud/antag) || istype(H, /datum/atom_hud/data/human/security/advanced)) (adding_hud) ? H.add_hud_to(usr) : H.remove_hud_from(usr) + + for(var/datum/gang/G in ticker.mode.gangs) + var/datum/atom_hud/antag/H = G.ganghud + (adding_hud) ? H.add_hud_to(usr) : H.remove_hud_from(usr) usr << "You toggled your admin antag HUD [adding_hud ? "ON" : "OFF"]." message_admins("[key_name_admin(usr)] toggled their admin antag HUD [adding_hud ? "ON" : "OFF"].")