diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 5b7387e5867..146b7b318ff 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -178,7 +178,6 @@ datum/mind
else
text += "EMPLOYEE|headrev|rev"
-
if(current && current.client && current.client.prefs.be_special & BE_REV)
text += "|Enabled in Prefs"
else
@@ -283,17 +282,14 @@ datum/mind
text += "
Objectives are empty! Randomize!"
else
text += "yes|NO"
+
+ if(src in ticker.mode.enthralled)
+ text += "YES|no"
+ else
+ text += "yes|NO"
+
/** Enthralled ***/
text += "
enthralled"
- if(src in ticker.mode.enthralled)
- text += " YES | no"
- else
- text += " yes | NO"
-
- if(current && current.client && current.client.prefs.be_special & BE_VAMPIRE)
- text += "|Enabled in Prefs"
- else
- text += "|Disabled in Prefs"
sections["vampire"] = text
diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm
index 876dca62e30..4a6a299f318 100644
--- a/code/game/jobs/job/medical.dm
+++ b/code/game/jobs/job/medical.dm
@@ -216,6 +216,8 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/psych(H), slot_w_uniform)
if("Psychologist")
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/psych/turtleneck(H), slot_w_uniform)
+ if("Therapist")
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
else
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(H), slot_wear_suit)
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index af5790222ed..9893665e225 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -23,10 +23,11 @@
universal_speak = 1
var/atom/movable/following = null
var/medHUD = 0
+ var/secHUD = 0
/mob/dead/observer/New(var/mob/body=null, var/flags=1)
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
- see_invisible = SEE_INVISIBLE_OBSERVER
+ see_invisible = SEE_INVISIBLE_OBSERVER_AI_EYE
see_in_dark = 100
verbs += /mob/dead/observer/proc/dead_tele
@@ -103,6 +104,8 @@ Works together with spawning an observer, noted above.
assess_targets(target_list, src)
if(medHUD)
process_medHUD(src)
+ if(secHUD)
+ process_secHUD(src)
/mob/dead/proc/process_medHUD(var/mob/M)
@@ -110,6 +113,13 @@ Works together with spawning an observer, noted above.
for(var/mob/living/carbon/human/patient in oview(M, 14))
C.images += patient.hud_list[HEALTH_HUD]
C.images += patient.hud_list[STATUS_HUD_OOC]
+
+/mob/dead/proc/process_secHUD(var/mob/M)
+ var/client/C = M.client
+ for(var/mob/living/carbon/human/target in oview(M, 14))
+ C.images += target.hud_list[IMPTRACK_HUD]
+ C.images += target.hud_list[IMPLOYAL_HUD]
+ C.images += target.hud_list[IMPCHEM_HUD]
/mob/dead/proc/assess_targets(list/target_list, mob/dead/observer/U)
var/client/C = U.client
@@ -257,8 +267,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/dead/observer/verb/toggle_medHUD()
set category = "Ghost"
- set name = "Toggle MedicHUD"
- set desc = "Toggles Medical HUD allowing you to see how everyone is doing"
+ set name = "Toggle HUD"
+ set desc = "Toggles the security and medical HUD."
if(!client)
return
if(medHUD)
@@ -450,14 +460,20 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
src << "\blue Heat Capacity: [round(environment.heat_capacity(),0.1)]"
-/mob/dead/observer/verb/toggle_darkness()
- set name = "Toggle Darkness"
+/mob/dead/observer/verb/toggle_sight()
+ set name = "Toggle Sight"
set category = "Ghost"
- if (see_invisible == SEE_INVISIBLE_OBSERVER_NOLIGHTING)
- see_invisible = SEE_INVISIBLE_OBSERVER
- else
- see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
+ switch(see_invisible)
+ if(SEE_INVISIBLE_OBSERVER_AI_EYE)
+ see_invisible = SEE_INVISIBLE_OBSERVER_NOOBSERVERS
+ usr << "You no longer see other observers or the AI eye."
+ if(SEE_INVISIBLE_OBSERVER_NOOBSERVERS)
+ see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
+ usr << "You no longer see darkness."
+ else
+ see_invisible = SEE_INVISIBLE_OBSERVER_AI_EYE
+ usr << "You again see everything."
/mob/dead/observer/verb/view_manfiest()
set name = "View Crew Manifest"
diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm
index 3d833c8de21..c2c23b02188 100644
--- a/code/modules/mob/living/silicon/ai/freelook/eye.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm
@@ -1,17 +1,19 @@
// AI EYE
//
-// An invisible (no icon) mob that the AI controls to look around the station with.
+// A mob that the AI controls to look around the station with.
// It streams chunks as it moves around, which will show it what the AI can and cannot see.
/mob/aiEye
name = "Inactive AI Eye"
- icon = 'icons/obj/status_display.dmi' // For AI friend secret shh :o
+ icon = 'icons/mob/AI.dmi'
+ icon_state = "eye"
+ alpha = 127
var/mob/living/silicon/ai/ai = null
density = 0
status_flags = GODMODE // You can't damage it.
mouse_opacity = 0
see_in_dark = 7
- invisibility = INVISIBILITY_MAXIMUM
+ invisibility = INVISIBILITY_AI_EYE
/mob/aiEye/New()
..()
diff --git a/code/setup.dm b/code/setup.dm
index 8584fbf24b4..ce7ec7b3d02 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -596,8 +596,11 @@ var/list/liftable_structures = list(\
#define INVISIBILITY_SPIRIT 50
#define SEE_SPIRITS 50
+#define SEE_INVISIBLE_OBSERVER_NOOBSERVERS 59
#define INVISIBILITY_OBSERVER 60
#define SEE_INVISIBLE_OBSERVER 60
+#define INVISIBILITY_AI_EYE 61
+#define SEE_INVISIBLE_OBSERVER_AI_EYE 61
#define INVISIBILITY_MAXIMUM 100
diff --git a/icons/mob/AI.dmi b/icons/mob/AI.dmi
index b8cb5064aae..c13a97fa50d 100644
Binary files a/icons/mob/AI.dmi and b/icons/mob/AI.dmi differ