diff --git a/modular_citadel/code/modules/client/client_procs.dm b/modular_citadel/code/modules/client/client_procs.dm
index 3b91deb6e5..f20dd08a51 100644
--- a/modular_citadel/code/modules/client/client_procs.dm
+++ b/modular_citadel/code/modules/client/client_procs.dm
@@ -19,6 +19,12 @@
mentor_follow(M)
return TRUE
+ if(href_list["mentor_unfollow"])
+ var/mob/living/M = locate(href_list["mentor_follow"])
+ if(M && mentor_datum.following == M)
+ mentor_unfollow()
+ return TRUE
+
/client/proc/mentor_datum_set(admin)
mentor_datum = GLOB.mentor_datums[ckey]
if(!mentor_datum && check_rights_for(src, R_ADMIN,0)) // admin with no mentor datum?let's fix that
diff --git a/modular_citadel/code/modules/mentor/follow.dm b/modular_citadel/code/modules/mentor/follow.dm
index 6695155ad0..5da3ce4726 100644
--- a/modular_citadel/code/modules/mentor/follow.dm
+++ b/modular_citadel/code/modules/mentor/follow.dm
@@ -1,16 +1,18 @@
/client/proc/mentor_follow(mob/living/M)
if(!is_mentor())
return
- if(isnull(M))
- return
- if(!ismob(usr))
- return
- mentor_datum.following = M
- usr.reset_perspective(M)
- verbs += /client/proc/mentor_unfollow
- to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is now following [key_name(M)]")
- to_chat(usr, "Click the \"Stop Following\" button in the Mentor tab to stop following [key_name(M)].")
- log_mentor("[key_name(usr)] began following [key_name(M)]")
+ var/orbiting = TRUE
+ if(!isobserver(usr))
+ mentor_datum.following = M
+ usr.reset_perspective(M)
+ verbs += /client/proc/mentor_unfollow
+ to_chat(usr, "Click the \"Stop Following\" button here or in the Mentor tab to stop following [key_name(M)].")
+ orbiting = FALSE
+ else
+ var/mob/dead/observer/O = usr
+ O.ManualFollow(M)
+ to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is now [orbiting ? "orbiting" : "following"] [key_name(M)][key_name(M)][orbiting ? " as a ghost" : ""].")
+ log_mentor("[key_name(usr)] [orbiting ? "is now orbiting" : "began following"][key_name(M)][orbiting ? " as a ghost" : ""].")
/client/proc/mentor_unfollow()
set category = "Mentor"
@@ -21,6 +23,6 @@
return
usr.reset_perspective()
verbs -= /client/proc/mentor_unfollow
- to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is no longer following [key_name(mentor_datum.following)]")
- log_mentor("[key_name(usr)] stopped following [key_name(mentor_datum.following)]")
+ to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is no longer following [key_name(mentor_datum.following)].")
+ log_mentor("[key_name(usr)] stopped following [key_name(mentor_datum.following)].")
mentor_datum.following = null
\ No newline at end of file
diff --git a/modular_citadel/code/modules/mentor/mentorhelp.dm b/modular_citadel/code/modules/mentor/mentorhelp.dm
index 87b05a3f26..eb2b8546da 100644
--- a/modular_citadel/code/modules/mentor/mentorhelp.dm
+++ b/modular_citadel/code/modules/mentor/mentorhelp.dm
@@ -19,7 +19,7 @@
log_mentor("MENTORHELP: [key_name_mentor(src, 0, 0, 0, 0)]: [msg]")
for(var/client/X in GLOB.mentors | GLOB.admins)
- X << 'sound/items/bikehorn.ogg'
+ SEND_SOUND(X, 'sound/items/bikehorn.ogg')
to_chat(X, mentor_msg)
to_chat(src, "PM to-Mentors: [msg]")