////////////////////////////////////////////////////// ////////////////////SUBTLE COMMAND//////////////////// ////////////////////////////////////////////////////// /mob/proc/get_top_level_mob() if(istype(src.loc,/mob)&&src.loc!=src) var/mob/M=src.loc return M.get_top_level_mob() return src proc/get_top_level_mob(var/mob/S) if(istype(S.loc,/mob)&&S.loc!=S) var/mob/M=S.loc return M.get_top_level_mob() return S ///////////////// EMOTE CODE // Maybe making this as an emote is less messy? // It was - ktccd /datum/emote/living/subtle key = "subtle" key_third_person = "subtle" message = null mob_type_blacklist_typecache = list(/mob/living/brain) /datum/emote/living/subtle/proc/check_invalid(mob/user, input) if(stop_bad_mime.Find(input, 1, 1)) to_chat(user, "Invalid emote.") return TRUE return FALSE /datum/emote/living/subtle/run_emote(mob/user, params, type_override = null) if(jobban_isbanned(user, "emote")) to_chat(user, "You cannot send subtle emotes (banned).") return FALSE else if(user.client && user.client.prefs.muted & MUTE_IC) to_chat(user, "You cannot send IC messages (muted).") return FALSE else if(!params) var/subtle_emote = stripped_multiline_input_or_reflect(user, "Choose an emote to display.", "Subtle", null, MAX_MESSAGE_LEN) if(subtle_emote && !check_invalid(user, subtle_emote)) var/type = input("Is this a visible or hearable emote?") as null|anything in list("Visible", "Hearable") switch(type) if("Visible") emote_type = EMOTE_VISIBLE if("Hearable") emote_type = EMOTE_AUDIBLE else alert("Unable to use this emote, must be either hearable or visible.") return message = subtle_emote else return FALSE else message = params if(type_override) emote_type = type_override . = TRUE if(!can_run_emote(user)) return FALSE user.log_message(message, LOG_EMOTE) message = "[user] " + "[user.say_emphasis(message)]" for(var/mob/M in GLOB.dead_mob_list) if(!M.client || isnewplayer(M)) continue var/T = get_turf(src) if(M.stat == DEAD && M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTSIGHT) && !(M in viewers(T, null))) M.show_message(message) if(emote_type == EMOTE_AUDIBLE) user.audible_message(message=message,hearing_distance=1) else user.visible_message(message=message,self_message=message,vision_distance=1) ///////////////// SUBTLE 2: NO GHOST BOOGALOO /datum/emote/living/subtler key = "subtler" key_third_person = "subtler" message = null mob_type_blacklist_typecache = list(/mob/living/brain) /datum/emote/living/subtler/proc/check_invalid(mob/user, input) if(stop_bad_mime.Find(input, 1, 1)) to_chat(user, "Invalid emote.") return TRUE return FALSE /datum/emote/living/subtler/run_emote(mob/user, params, type_override = null) if(jobban_isbanned(user, "emote")) to_chat(user, "You cannot send subtle emotes (banned).") return FALSE else if(user.client && user.client.prefs.muted & MUTE_IC) to_chat(user, "You cannot send IC messages (muted).") return FALSE else if(!params) var/subtle_emote = stripped_multiline_input_or_reflect(user, "Choose an emote to display.", "Subtler" , null, MAX_MESSAGE_LEN) if(subtle_emote && !check_invalid(user, subtle_emote)) var/type = input("Is this a visible or hearable emote?") as null|anything in list("Visible", "Hearable") switch(type) if("Visible") emote_type = EMOTE_VISIBLE if("Hearable") emote_type = EMOTE_AUDIBLE else alert("Unable to use this emote, must be either hearable or visible.") return message = subtle_emote else return FALSE else message = params if(type_override) emote_type = type_override . = TRUE if(!can_run_emote(user)) return FALSE user.log_message(message, LOG_SUBTLER) message = "[user] " + "[user.say_emphasis(message)]" if(emote_type == EMOTE_AUDIBLE) user.audible_message(message=message,hearing_distance=1, ignored_mobs = GLOB.dead_mob_list) else user.visible_message(message=message,self_message=message,vision_distance=1, ignored_mobs = GLOB.dead_mob_list) ///////////////// VERB CODE /mob/living/proc/subtle_keybind() var/message = input(src, "", "subtle") as text|null if(!length(message)) return return subtle(message) /mob/living/verb/subtle() set name = "Subtle" set category = "IC" if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return usr.emote("subtle") ///////////////// VERB CODE 2 /mob/living/verb/subtler() set name = "Subtler Anti-Ghost" set category = "IC" if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return usr.emote("subtler")