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]")