diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 8842b23e433..0126fde5384 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -24,3 +24,4 @@ #define ANTAG_HUD_OPS 7 #define ANTAG_HUD_GANG_A 8 #define ANTAG_HUD_GANG_B 9 +#define ANTAG_HUD_WIZ 10 \ No newline at end of file diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 63d2d719484..39d63400ddb 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -11,6 +11,7 @@ var/datum/atom_hud/huds = list( \ ANTAG_HUD_OPS = new/datum/atom_hud/antag(), \ ANTAG_HUD_GANG_A = new/datum/atom_hud/antag(), \ ANTAG_HUD_GANG_B = new/datum/atom_hud/antag(), \ + ANTAG_HUD_WIZ = new/datum/atom_hud/antag(), \ ) /datum/atom_hud diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm index 1791a7319c7..f2a2ca65f29 100644 --- a/code/game/gamemodes/antag_spawner.dm +++ b/code/game/gamemodes/antag_spawner.dm @@ -58,6 +58,8 @@ src.used = 1 var/client/C = pick(candidates) spawn_antag(C, get_turf(H.loc), href_list["school"]) + if(H.mind) + ticker.mode.update_wiz_icons_added(H.mind) else H << "Unable to reach your apprentice! You can either attack the spellbook with the contract to refund your points, or wait and try again later." @@ -103,6 +105,7 @@ M.mind.objectives += new_objective ticker.mode.traitors += M.mind M.mind.special_role = "apprentice" + ticker.mode.update_wiz_icons_added(M.mind) M << sound('sound/effects/magic.ogg') /obj/item/weapon/antag_spawner/contract/equip_antag(mob/target as mob) diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm index d89de5b4530..a7e376e4857 100644 --- a/code/game/gamemodes/wizard/raginmages.dm +++ b/code/game/gamemodes/wizard/raginmages.dm @@ -2,6 +2,7 @@ name = "ragin' mages" config_tag = "raginmages" required_players = 20 + use_huds = 1 var/max_mages = 0 var/making_mage = 0 var/mages_made = 1 diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 7fafb6f14f5..089e0cccf4c 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -9,7 +9,7 @@ required_enemies = 1 recommended_enemies = 1 pre_setup_before_jobs = 1 - + var/use_huds = 0 var/finished = 0 /datum/game_mode/wizard/announce() @@ -40,6 +40,8 @@ equip_wizard(wizard.current) name_wizard(wizard.current) greet_wizard(wizard) + if(use_huds) + update_wiz_icons_added(wizard) ..() return @@ -275,3 +277,15 @@ Made a proc so this is not repeated 14 (or more) times.*/ return 0 else return 1 + + +/datum/game_mode/proc/update_wiz_icons_added(datum/mind/wiz_mind) + var/datum/atom_hud/antag/wizhud = huds[ANTAG_HUD_WIZ] + wizhud.join_hud(wiz_mind.current) + set_antag_hud(wiz_mind.current, ((wiz_mind in wizards) ? "wizard" : "apprentice")) + + +/datum/game_mode/proc/update_wiz_icons_removed(datum/mind/wiz_mind) + var/datum/atom_hud/antag/wizhud = huds[ANTAG_HUD_WIZ] + wizhud.leave_hud(wiz_mind.current) + set_antag_hud(wiz_mind.current, null) diff --git a/code/modules/events/wizard/imposter.dm b/code/modules/events/wizard/imposter.dm index d12f57e3d7c..1a55876b8e8 100644 --- a/code/modules/events/wizard/imposter.dm +++ b/code/modules/events/wizard/imposter.dm @@ -45,6 +45,7 @@ protect_objective.target = W.mind protect_objective.explanation_text = "Protect [W.real_name], the wizard." I.mind.objectives += protect_objective + ticker.mode.update_wiz_icons_added(I.mind) I.attack_log += "\[[time_stamp()]\] Is an imposter!" I << "You are an imposter! Trick and confuse the crew to misdirect malice from your handsome original!" diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 12fe2bf8812..854b20608fc 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ