/mob/dead/observer/say(var/message)
message = trim(copytext(message, 1, MAX_MESSAGE_LEN))
if (!message)
return
if (src.client)
if(src.client.prefs.muted & MUTE_DEADCHAT)
to_chat(src, "You cannot talk in deadchat (muted).")
return
if (src.client.handle_spam_prevention(message,MUTE_DEADCHAT))
return
. = src.say_dead(message)
/mob/dead/observer/say_quote(var/text)
var/ending = copytext(text, length(text))
if (ending == "?")
return "[pick("moans", "gripes", "grumps", "murmurs", "mumbles", "bleats")], [text]";
else if (ending == "!")
return "[pick("screams", "screeches", "howls")], [text]";
return "[pick("whines", "cries", "spooks", "complains", "drones", "mutters")], [text]";
/mob/dead/observer/Hear(var/datum/speech/speech, var/rendered_speech="")
if (isnull(client) || !speech.speaker)
return
var/source = speech.speaker.GetSource()
var/source_turf = get_turf(source)
// Don't hear simple mobs without a client.
if (istype(source, /mob/living/simple_animal) && (get_dist(source_turf, src) > get_view_range()))
var/mob/living/simple_animal/animal = source
if (!animal.client)
return
say_testing(src, "/mob/dead/observer/Hear(): source=[source], frequency=[speech.frequency], source_turf=[formatJumpTo(source_turf)]")
if (get_dist(source_turf, src) <= get_view_range())
rendered_speech = "[rendered_speech]"
if (client?.prefs.get_pref(/datum/preference_setting/toggle/mob_chat_on_map) && (client.prefs.get_pref(/datum/preference_setting/toggle/obj_chat_on_map) || ismob(speech.speaker)))
create_chat_message(speech.speaker, speech.language, speech.message, speech.mode, speech.wrapper_classes)
else
if(client && client.prefs)
if (!speech.frequency)
if ((client.prefs.get_pref(/datum/preference_setting/binary_flag/toggles) & CHAT_GHOSTEARS) != CHAT_GHOSTEARS)
say_testing(src, "/mob/dead/observer/Hear(): CHAT_GHOSTEARS is disabled, blocking. ([client.prefs.get_pref(/datum/preference_setting/binary_flag/toggles)] & [CHAT_GHOSTEARS]) = [client.prefs.get_pref(/datum/preference_setting/binary_flag/toggles) & CHAT_GHOSTEARS]")
return
else
if ((client.prefs.get_pref(/datum/preference_setting/binary_flag/toggles) & CHAT_GHOSTRADIO) != CHAT_GHOSTRADIO)
say_testing(src, "/mob/dead/observer/Hear(): CHAT_GHOSTRADIO is disabled, blocking. ([client.prefs.get_pref(/datum/preference_setting/binary_flag/toggles)] & [CHAT_GHOSTRADIO]) = [client.prefs.get_pref(/datum/preference_setting/binary_flag/toggles) & CHAT_GHOSTRADIO]")
return
to_chat(src, "[formatFollow(source)] [rendered_speech]")