diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm
index deee80c7a91d..a6a844254a02 100644
--- a/code/__DEFINES/hud.dm
+++ b/code/__DEFINES/hud.dm
@@ -25,3 +25,9 @@
#define NOTIFY_JOIN_XENO "join_xeno"
#define NOTIFY_XENO_TACMAP "xeno_tacmap"
#define NOTIFY_USCM_TACMAP "uscm_tacmap"
+
+#define INHERENT_HUD_MEDICAL "med"
+#define INHERENT_HUD_SECURITY "sec"
+#define INHERENT_HUD_NEW_PLAYER "new"
+
+#define HUD_MENTOR_SIGHT "New Player Markers"
diff --git a/code/__DEFINES/mob_hud.dm b/code/__DEFINES/mob_hud.dm
index 97cbe0281924..a39160cc2247 100644
--- a/code/__DEFINES/mob_hud.dm
+++ b/code/__DEFINES/mob_hud.dm
@@ -27,6 +27,7 @@
#define HUNTER_CLAN "25" //Displays a colored icon to represent ingame Hunter Clans
#define HUNTER_HUD "26" //Displays various statuses on mobs for Hunters to identify targets
#define HOLOCARD_HUD "27" //Displays the holocards set by medical personnel
+#define NEW_PLAYER_HUD "29" //Makes it easy to see new players.
//data HUD (medhud, sechud) defines
#define MOB_HUD_SECURITY_BASIC 1
@@ -47,6 +48,7 @@
#define MOB_HUD_HUNTER 16
#define MOB_HUD_HUNTER_CLAN 17
#define MOB_HUD_EXECUTE 18
+#define MOB_HUD_NEW_PLAYER 19
//for SL/FTL/LZ targeting on locator huds
#define TRACKER_SL "track_sl"
diff --git a/code/datums/mob_hud.dm b/code/datums/mob_hud.dm
index 011dc8e25dba..64ad6e31280a 100644
--- a/code/datums/mob_hud.dm
+++ b/code/datums/mob_hud.dm
@@ -20,6 +20,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list(
MOB_HUD_HUNTER = new /datum/mob_hud/hunter_hud(),
MOB_HUD_HUNTER_CLAN = new /datum/mob_hud/hunter_clan(),
MOB_HUD_EXECUTE = new /datum/mob_hud/execute_hud(),
+ MOB_HUD_NEW_PLAYER = new /datum/mob_hud/new_player(),
))
/datum/mob_hud
@@ -161,6 +162,9 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list(
+/datum/mob_hud/new_player
+ hud_icons = list(NEW_PLAYER_HUD)
+
//Xeno status hud, for xenos
/datum/mob_hud/xeno
hud_icons = list(HEALTH_HUD_XENO, PLASMA_HUD, PHEROMONE_HUD, QUEEN_OVERWATCH_HUD, ARMOR_HUD_XENO, XENO_STATUS_HUD, XENO_BANISHED_HUD, HUNTER_HUD)
@@ -230,6 +234,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list(
if(istype(hud, /datum/mob_hud/xeno)) //this one is xeno only
continue
hud.add_to_hud(src)
+ hud_set_new_player()
/mob/living/carbon/xenomorph/add_to_all_mob_huds()
for(var/datum/mob_hud/hud in GLOB.huds)
@@ -667,6 +672,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list(
holder.overlays += image('icons/mob/hud/marine_hud.dmi', src, "hudmutineer")
return
+ hud_set_new_player()
F.modify_hud_holder(holder, src)
/mob/living/carbon/human/yautja/hud_set_squad()
@@ -689,11 +695,12 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list(
/mob/proc/hud_set_hunter()
return
-GLOBAL_DATUM(hud_icon_hunter_gear, /image)
-GLOBAL_DATUM(hud_icon_hunter_hunted, /image)
-GLOBAL_DATUM(hud_icon_hunter_dishonored, /image)
-GLOBAL_DATUM(hud_icon_hunter_honored, /image)
-GLOBAL_DATUM(hud_icon_hunter_thralled, /image)
+
+GLOBAL_DATUM_INIT(hud_icon_hunter_gear, /image, image('icons/mob/hud/hud_yautja.dmi', src, "hunter_gear"))
+GLOBAL_DATUM_INIT(hud_icon_hunter_hunted, /image, image('icons/mob/hud/hud_yautja.dmi', src, "hunter_hunted"))
+GLOBAL_DATUM_INIT(hud_icon_hunter_dishonored, /image, image('icons/mob/hud/hud_yautja.dmi', src, "hunter_dishonored"))
+GLOBAL_DATUM_INIT(hud_icon_hunter_honored, /image, image('icons/mob/hud/hud_yautja.dmi', src, "hunter_honored"))
+GLOBAL_DATUM_INIT(hud_icon_hunter_thralled, /image, image('icons/mob/hud/hud_yautja.dmi', src, "hunter_thralled"))
/mob/living/carbon/hud_set_hunter()
@@ -701,26 +708,16 @@ GLOBAL_DATUM(hud_icon_hunter_thralled, /image)
holder.icon_state = "hudblank"
holder.overlays.Cut()
if(hunter_data.hunted)
- if(!GLOB.hud_icon_hunter_hunted)
- GLOB.hud_icon_hunter_hunted = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_hunted")
holder.overlays += GLOB.hud_icon_hunter_hunted
if(hunter_data.dishonored)
- if(!GLOB.hud_icon_hunter_dishonored)
- GLOB.hud_icon_hunter_dishonored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_dishonored")
holder.overlays += GLOB.hud_icon_hunter_dishonored
else if(hunter_data.honored)
- if(!GLOB.hud_icon_hunter_honored)
- GLOB.hud_icon_hunter_honored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_honored")
holder.overlays += GLOB.hud_icon_hunter_honored
if(hunter_data.thralled)
- if(!GLOB.hud_icon_hunter_thralled)
- GLOB.hud_icon_hunter_thralled = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_thralled")
holder.overlays += GLOB.hud_icon_hunter_thralled
else if(hunter_data.gear)
- if(!GLOB.hud_icon_hunter_gear)
- GLOB.hud_icon_hunter_gear = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_gear")
holder.overlays += GLOB.hud_icon_hunter_gear
hud_list[HUNTER_HUD] = holder
@@ -731,17 +728,11 @@ GLOBAL_DATUM(hud_icon_hunter_thralled, /image)
holder.overlays.Cut()
holder.pixel_x = -18
if(hunter_data.hunted)
- if(!GLOB.hud_icon_hunter_hunted)
- GLOB.hud_icon_hunter_hunted = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_hunted")
holder.overlays += GLOB.hud_icon_hunter_hunted
if(hunter_data.dishonored)
- if(!GLOB.hud_icon_hunter_dishonored)
- GLOB.hud_icon_hunter_dishonored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_dishonored")
holder.overlays += GLOB.hud_icon_hunter_dishonored
else if(hunter_data.honored)
- if(!GLOB.hud_icon_hunter_honored)
- GLOB.hud_icon_hunter_honored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_honored")
holder.overlays += GLOB.hud_icon_hunter_honored
hud_list[HUNTER_HUD] = holder
@@ -750,25 +741,19 @@ GLOBAL_DATUM(hud_icon_hunter_thralled, /image)
/mob/proc/hud_set_order()
return
-GLOBAL_DATUM(hud_icon_hudmove, /image)
-GLOBAL_DATUM(hud_icon_hudhold, /image)
-GLOBAL_DATUM(hud_icon_hudfocus, /image)
+GLOBAL_DATUM_INIT(hud_icon_hudmove, /image, image('icons/mob/hud/marine_hud.dmi', src, "hudmove"))
+GLOBAL_DATUM_INIT(hud_icon_hudhold, /image, image('icons/mob/hud/marine_hud.dmi', src, "hudhold"))
+GLOBAL_DATUM_INIT(hud_icon_hudfocus, /image, image('icons/mob/hud/marine_hud.dmi', src, "hudfocus"))
// ORDER HUD
/mob/living/carbon/human/hud_set_order()
var/image/holder = hud_list[ORDER_HUD]
holder.icon_state = "hudblank"
holder.overlays.Cut()
if(mobility_aura)
- if(!GLOB.hud_icon_hudmove)
- GLOB.hud_icon_hudmove = image('icons/mob/hud/marine_hud.dmi', src, "hudmove")
holder.overlays += GLOB.hud_icon_hudmove
if(protection_aura)
- if(!GLOB.hud_icon_hudhold)
- GLOB.hud_icon_hudhold = image('icons/mob/hud/marine_hud.dmi', src, "hudhold")
holder.overlays += GLOB.hud_icon_hudhold
if(marksman_aura)
- if(!GLOB.hud_icon_hudfocus)
- GLOB.hud_icon_hudfocus = image('icons/mob/hud/marine_hud.dmi', src, "hudfocus")
holder.overlays += GLOB.hud_icon_hudfocus
hud_list[ORDER_HUD] = holder
@@ -839,3 +824,39 @@ GLOBAL_DATUM(hud_icon_hudfocus, /image)
var/freeze_found = HAS_TRAIT(src, TRAIT_IMMOBILIZED) && body_position == STANDING_UP && !buckled // Eligible targets are unable to move but can stand and aren't buckled (eg nested) - This is to convey that they are temporarily unable to move
if (freeze_found)
freeze_holder.overlays += image('icons/mob/hud/hud.dmi', src, "xeno_freeze")
+
+
+
+/mob/proc/hud_set_new_player()
+ return
+
+GLOBAL_DATUM_INIT(hud_icon_new_player_1, /image, image('icons/mob/hud/hud.dmi', src, "new_player_marker_1"))
+GLOBAL_DATUM_INIT(hud_icon_new_player_2, /image, image('icons/mob/hud/hud.dmi', src, "new_player_marker_2"))
+GLOBAL_DATUM_INIT(hud_icon_new_player_3, /image, image('icons/mob/hud/hud.dmi', src, "new_player_marker_3"))
+
+
+/mob/living/carbon/human/hud_set_new_player()
+ if(!client || !job)
+ return FALSE
+ var/image/holder = hud_list[NEW_PLAYER_HUD]
+ holder.icon_state = "hudblank"
+ holder.overlays.Cut()
+ holder.pixel_y = 8
+ var/total_time = client.get_total_human_playtime()
+ var/playtime = get_job_playtime(client, job)
+ var/marker = GLOB.hud_icon_new_player_3
+
+ var/low_time = FALSE
+ if(total_time < JOB_PLAYTIME_TIER_2)
+ marker = GLOB.hud_icon_new_player_2
+ low_time = TRUE
+
+ if(playtime <= JOB_PLAYTIME_TIER_1)
+ if(low_time)
+ marker = GLOB.hud_icon_new_player_1
+ else if(!low_time)
+ return FALSE
+
+ holder.overlays += marker
+ hud_list[NEW_PLAYER_HUD] = holder
+ return TRUE
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index de44899a97db..d2ea756405f4 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -318,6 +318,13 @@ GLOBAL_LIST_INIT(roundstart_mod_verbs, list(
/client/proc/toggle_ob_spawn
))
+GLOBAL_LIST_INIT(mentor_verbs, list(
+ /client/proc/cmd_mentor_say,
+ /datum/admins/proc/imaginary_friend,
+ /client/proc/toggle_newplayer_ghost_hud,
+ /client/proc/toggle_newplayer_ic_hud
+))
+
/client/proc/add_admin_verbs()
if(!admin_holder)
return
@@ -332,8 +339,7 @@ GLOBAL_LIST_INIT(roundstart_mod_verbs, list(
add_verb(src, GLOB.admin_verbs_admin)
add_verb(src, GLOB.admin_verbs_major_event)
if(CLIENT_HAS_RIGHTS(src, R_MENTOR))
- add_verb(src, /client/proc/cmd_mentor_say)
- add_verb(src, /datum/admins/proc/imaginary_friend)
+ add_verb(src, GLOB.mentor_verbs)
if(CLIENT_HAS_RIGHTS(src, R_BUILDMODE))
add_verb(src, /client/proc/togglebuildmodeself)
if(CLIENT_HAS_RIGHTS(src, R_SERVER))
diff --git a/code/modules/admin/tabs/admin_tab.dm b/code/modules/admin/tabs/admin_tab.dm
index 5f3bc220876c..cf8fe41b66d7 100644
--- a/code/modules/admin/tabs/admin_tab.dm
+++ b/code/modules/admin/tabs/admin_tab.dm
@@ -372,7 +372,7 @@
/client/proc/cmd_mentor_say(msg as text)
set name = "MentorSay"
- set category = "OOC"
+ set category = "Admin.Mentor"
set hidden = 0
if(!check_rights(R_MENTOR|R_MOD|R_ADMIN))
@@ -608,7 +608,7 @@
return
/datum/admins/proc/imaginary_friend()
- set category = "OOC.Mentor"
+ set category = "Admin.Mentor"
set name = "Imaginary Friend"
var/mob/user = usr
diff --git a/code/modules/admin/verbs/mentorhud.dm b/code/modules/admin/verbs/mentorhud.dm
new file mode 100644
index 000000000000..f03c4edecedd
--- /dev/null
+++ b/code/modules/admin/verbs/mentorhud.dm
@@ -0,0 +1,57 @@
+/client/proc/toggle_newplayer_ghost_hud()
+ set name = "Toggle Markers (Ghost)"
+ set category = "Admin.Mentor"
+ set desc = "Toggles observer pref for mentor markers."
+
+ if(!admin_holder || !(admin_holder.rights & R_MENTOR))
+ to_chat(src, "Only mentors may use this HUD!")
+ return FALSE
+
+ prefs.observer_huds[HUD_MENTOR_SIGHT] = !prefs.observer_huds[HUD_MENTOR_SIGHT]
+ prefs.save_preferences()
+
+ to_chat(src, SPAN_BOLDNOTICE("You toggled [HUD_MENTOR_SIGHT] to be [prefs.observer_huds[HUD_MENTOR_SIGHT] ? "ON" : "OFF"] by default when you are observer."))
+
+ if(!isobserver(usr))
+ return
+ var/mob/dead/observer/observer_user = usr
+ var/datum/mob_hud/the_hud
+ the_hud = GLOB.huds[MOB_HUD_NEW_PLAYER]
+
+ observer_user.HUD_toggled[HUD_MENTOR_SIGHT] = prefs.observer_huds[HUD_MENTOR_SIGHT]
+ if(observer_user.HUD_toggled[HUD_MENTOR_SIGHT])
+ the_hud.add_hud_to(observer_user, observer_user)
+ else
+ the_hud.remove_hud_from(observer_user, observer_user)
+
+/client/proc/toggle_newplayer_ic_hud(sea_forced = FALSE)
+ set category = "Admin.Mentor"
+ set name = "Toggle Markers (IC)"
+ set desc = "Toggles new player HUD while IC."
+
+ if(!admin_holder || !(admin_holder.rights & R_MENTOR))
+ if(!sea_forced)
+ to_chat(src, "Only mentors may use this HUD!")
+ return FALSE
+
+ var/mob/living/carbon/human/mentor = mob
+ if(!ishuman(mentor))
+ to_chat(src, SPAN_WARNING("You cannot use this power as a non-human!"))
+ return FALSE
+
+ if(!mentor.looc_overhead && !(mentor.inherent_huds_toggled[INHERENT_HUD_NEW_PLAYER]))
+ to_chat(src, SPAN_WARNING("You are not in a mentor role! (Overhead LOOC is disabled!)"))
+ return FALSE
+
+ var/datum/mob_hud/the_hud
+ the_hud = GLOB.huds[MOB_HUD_NEW_PLAYER]
+
+ if(mentor.inherent_huds_toggled[INHERENT_HUD_NEW_PLAYER])
+ mentor.inherent_huds_toggled[INHERENT_HUD_NEW_PLAYER] = FALSE
+ the_hud.remove_hud_from(mentor, mentor)
+ to_chat(mentor, SPAN_INFO("New Player Markers Disabled"))
+ else
+ mentor.inherent_huds_toggled[INHERENT_HUD_NEW_PLAYER] = TRUE
+ the_hud.add_hud_to(mentor, mentor)
+ to_chat(mentor, SPAN_INFO("New Player Markers Enabled"))
+ return TRUE
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 4cee48df1818..b694e32a80b4 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -76,7 +76,8 @@ GLOBAL_LIST_INIT(bgstate_options, list(
"Medical HUD" = FALSE,
"Security HUD" = FALSE,
"Squad HUD" = FALSE,
- "Xeno Status HUD" = FALSE
+ "Xeno Status HUD" = FALSE,
+ HUD_MENTOR_SIGHT = FALSE
)
var/ghost_vision_pref = GHOST_VISION_LEVEL_MID_NVG
var/ghost_orbit = GHOST_ORBIT_CIRCLE
@@ -551,7 +552,7 @@ GLOBAL_LIST_INIT(bgstate_options, list(
dat += "You do not have the whitelist for this role."
if(MENU_MENTOR)
if(owner.check_whitelist_status(WHITELIST_MENTOR))
- dat += "Nothing here. For now."
+ dat += "New Player Ghost HUD: [observer_huds[HUD_MENTOR_SIGHT] ? "Enabled" : "Disabled"]
"
else
dat += "You do not have the whitelist for this role."
if(MENU_SETTINGS)
@@ -1945,6 +1946,9 @@ GLOBAL_LIST_INIT(bgstate_options, list(
return
plane_master.backdrop(user?.client.mob)
+ if("newplayer_ghost_hud")
+ observer_huds[HUD_MENTOR_SIGHT] = !observer_huds[HUD_MENTOR_SIGHT]
+
if("auto_fit_viewport")
auto_fit_viewport = !auto_fit_viewport
if(auto_fit_viewport && owner)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index daab709ec5fa..a9eb080631ff 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -388,7 +388,7 @@
owner.typing_indicators = TRUE
if(!observer_huds)
- observer_huds = list("Medical HUD" = FALSE, "Security HUD" = FALSE, "Squad HUD" = FALSE, "Xeno Status HUD" = FALSE)
+ observer_huds = list("Medical HUD" = FALSE, "Security HUD" = FALSE, "Squad HUD" = FALSE, "Xeno Status HUD" = FALSE, HUD_MENTOR_SIGHT = FALSE)
return 1
diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm
index 71933997f8b1..6832900e752b 100644
--- a/code/modules/gear_presets/uscm_ship.dm
+++ b/code/modules/gear_presets/uscm_ship.dm
@@ -648,6 +648,7 @@
new_human.equip_to_slot_or_del(new /obj/item/device/whistle(new_human), WEAR_R_HAND)
/datum/equipment_preset/uscm_ship/sea/load_rank(mob/living/carbon/human/rankee, client/mob_client)
+ mob_client.toggle_newplayer_ic_hud(TRUE)
if(rankee?.client?.prefs?.pref_special_job_options[rank])
var/paygrade_choice = get_paygrade_id_by_name(rankee.client.prefs.pref_special_job_options[rank])
return paygrade_choice
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 7f52beac6073..51737c692663 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -376,35 +376,38 @@
if(!client || !client.prefs)
return
- var/datum/mob_hud/H
+ var/datum/mob_hud/the_hud
HUD_toggled = client.prefs.observer_huds
for(var/i in HUD_toggled)
if(HUD_toggled[i])
switch(i)
if("Medical HUD")
- H = GLOB.huds[MOB_HUD_MEDICAL_OBSERVER]
- H.add_hud_to(src, src)
+ the_hud = GLOB.huds[MOB_HUD_MEDICAL_OBSERVER]
+ the_hud.add_hud_to(src, src)
if("Security HUD")
- H = GLOB.huds[MOB_HUD_SECURITY_ADVANCED]
- H.add_hud_to(src, src)
+ the_hud= GLOB.huds[MOB_HUD_SECURITY_ADVANCED]
+ the_hud.add_hud_to(src, src)
if("Squad HUD")
- H = GLOB.huds[MOB_HUD_FACTION_OBSERVER]
- H.add_hud_to(src, src)
+ the_hud= GLOB.huds[MOB_HUD_FACTION_OBSERVER]
+ the_hud.add_hud_to(src, src)
if("Xeno Status HUD")
- H = GLOB.huds[MOB_HUD_XENO_STATUS]
- H.add_hud_to(src, src)
+ the_hud= GLOB.huds[MOB_HUD_XENO_STATUS]
+ the_hud.add_hud_to(src, src)
if("Faction UPP HUD")
- H = GLOB.huds[MOB_HUD_FACTION_UPP]
- H.add_hud_to(src, src)
+ the_hud= GLOB.huds[MOB_HUD_FACTION_UPP]
+ the_hud.add_hud_to(src, src)
if("Faction Wey-Yu HUD")
- H = GLOB.huds[MOB_HUD_FACTION_WY]
- H.add_hud_to(src, src)
+ the_hud= GLOB.huds[MOB_HUD_FACTION_WY]
+ the_hud.add_hud_to(src, src)
if("Faction TWE HUD")
- H = GLOB.huds[MOB_HUD_FACTION_TWE]
- H.add_hud_to(src, src)
+ the_hud= GLOB.huds[MOB_HUD_FACTION_TWE]
+ the_hud.add_hud_to(src, src)
if("Faction CLF HUD")
- H = GLOB.huds[MOB_HUD_FACTION_CLF]
- H.add_hud_to(src, src)
+ the_hud= GLOB.huds[MOB_HUD_FACTION_CLF]
+ the_hud.add_hud_to(src, src)
+ if(HUD_MENTOR_SIGHT)
+ the_hud= GLOB.huds[MOB_HUD_NEW_PLAYER]
+ the_hud.add_hud_to(src, src)
see_invisible = INVISIBILITY_OBSERVER
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index 0bb446bf5f02..37533e9c1a57 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -138,7 +138,7 @@
var/last_chew = 0
//taken from human.dm
- hud_possible = list(HEALTH_HUD, STATUS_HUD, STATUS_HUD_OOC, STATUS_HUD_XENO_INFECTION, STATUS_HUD_XENO_CULTIST, ID_HUD, WANTED_HUD, ORDER_HUD, XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE, XENO_EXECUTE, HUNTER_CLAN, HUNTER_HUD, FACTION_HUD, HOLOCARD_HUD)
+ hud_possible = list(HEALTH_HUD, STATUS_HUD, STATUS_HUD_OOC, STATUS_HUD_XENO_INFECTION, STATUS_HUD_XENO_CULTIST, ID_HUD, WANTED_HUD, ORDER_HUD, XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE, XENO_EXECUTE, HUNTER_CLAN, HUNTER_HUD, FACTION_HUD, HOLOCARD_HUD, NEW_PLAYER_HUD)
var/embedded_flag //To check if we've need to roll for damage on movement while an item is imbedded in us.
var/allow_gun_usage = TRUE
var/melee_allowed = TRUE
@@ -148,7 +148,7 @@
/// A list of all the shrapnel currently embedded in the human
var/list/atom/movable/embedded_items = list()
- var/list/synthetic_HUD_toggled = list(FALSE,FALSE)
+ var/list/inherent_huds_toggled = list(INHERENT_HUD_MEDICAL = FALSE, INHERENT_HUD_SECURITY = FALSE, INHERENT_HUD_NEW_PLAYER = FALSE)
var/default_lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE
diff --git a/code/modules/mob/living/carbon/human/powers/human_powers.dm b/code/modules/mob/living/carbon/human/powers/human_powers.dm
index 9ba7fc7c523b..8cb617397cf5 100644
--- a/code/modules/mob/living/carbon/human/powers/human_powers.dm
+++ b/code/modules/mob/living/carbon/human/powers/human_powers.dm
@@ -314,22 +314,22 @@
if(usr.is_mob_incapacitated())
return
- var/datum/mob_hud/H
- var/chosen_HUD = 1
+ var/datum/mob_hud/the_hud
+ var/chosen_HUD = INHERENT_HUD_MEDICAL
switch(hud_choice)
if("Medical HUD")
- H = GLOB.huds[MOB_HUD_MEDICAL_ADVANCED]
+ the_hud = GLOB.huds[MOB_HUD_MEDICAL_ADVANCED]
if("Security HUD")
- H = GLOB.huds[MOB_HUD_SECURITY_ADVANCED]
- chosen_HUD = 2
+ the_hud = GLOB.huds[MOB_HUD_SECURITY_ADVANCED]
+ chosen_HUD = INHERENT_HUD_SECURITY
else
return
- if(synthetic_HUD_toggled[chosen_HUD])
- synthetic_HUD_toggled[chosen_HUD] = FALSE
- H.remove_hud_from(src, src)
+ if(inherent_huds_toggled[chosen_HUD])
+ inherent_huds_toggled[chosen_HUD] = FALSE
+ the_hud.remove_hud_from(src, src)
to_chat(src, SPAN_INFO("[hud_choice] Disabled"))
else
- synthetic_HUD_toggled[chosen_HUD] = TRUE
- H.add_hud_to(src, src)
+ inherent_huds_toggled[chosen_HUD] = TRUE
+ the_hud.add_hud_to(src, src)
to_chat(src, SPAN_INFO("[hud_choice] Enabled"))
diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
index 686c15b5c380..1a10d6c70ddc 100644
--- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
@@ -45,7 +45,7 @@
see_in_dark = 12
recovery_constant = 1.5
see_invisible = SEE_INVISIBLE_LIVING
- hud_possible = list(HEALTH_HUD_XENO, PLASMA_HUD, PHEROMONE_HUD, QUEEN_OVERWATCH_HUD, ARMOR_HUD_XENO, XENO_STATUS_HUD, XENO_BANISHED_HUD, XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE, HUNTER_HUD)
+ hud_possible = list(HEALTH_HUD_XENO, PLASMA_HUD, PHEROMONE_HUD, QUEEN_OVERWATCH_HUD, ARMOR_HUD_XENO, XENO_STATUS_HUD, XENO_BANISHED_HUD, XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE, HUNTER_HUD, NEW_PLAYER_HUD)
unacidable = TRUE
rebounds = TRUE
faction = FACTION_XENOMORPH
diff --git a/colonialmarines.dme b/colonialmarines.dme
index 4961dda01bd1..3b7c9ecf812b 100644
--- a/colonialmarines.dme
+++ b/colonialmarines.dme
@@ -1468,6 +1468,7 @@
#include "code\modules\admin\verbs\getlogs.dm"
#include "code\modules\admin\verbs\load_event_level.dm"
#include "code\modules\admin\verbs\map_template_loadverb.dm"
+#include "code\modules\admin\verbs\mentorhud.dm"
#include "code\modules\admin\verbs\mob_verbs.dm"
#include "code\modules\admin\verbs\mooc.dm"
#include "code\modules\admin\verbs\noclip.dm"
diff --git a/icons/mob/hud/hud.dmi b/icons/mob/hud/hud.dmi
index 999afedb037b..1c943375216a 100644
Binary files a/icons/mob/hud/hud.dmi and b/icons/mob/hud/hud.dmi differ