From a564c565f87bebaece2ab8a8edb577b55b0cee66 Mon Sep 17 00:00:00 2001 From: Geeves Date: Mon, 1 Mar 2021 17:41:04 +0200 Subject: [PATCH] Diona Listening (#11286) --- code/modules/mob/hear_say.dm | 32 +++++++++++++++++++++- html/changelogs/geeves-diona_listening.yml | 6 ++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/geeves-diona_listening.yml diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index bdfc789d98a..a19dc27b71b 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -1,7 +1,7 @@ // At minimum every mob has a hear_say proc. /mob/proc/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "",var/italics = 0, var/mob/speaker = null, var/sound/speech_sound, var/sound_vol) - if(!istype(src, /mob/living/test) && (!client && !vr_mob)) + if(!istype(src, /mob/living/test) && cant_hear()) return if(speaker && !istype(speaker, /mob/living/test) && (!speaker.client && istype(src,/mob/abstract/observer) && client.prefs.toggles & CHAT_GHOSTEARS && !(speaker in view(src)))) @@ -76,11 +76,41 @@ playsound_simple(source, speech_sound, sound_vol, use_random_freq = TRUE) return TRUE +/mob/proc/cant_hear() + if(!client && !vr_mob) + return TRUE + return FALSE + +/mob/living/carbon/cant_hear() + . = ..() + if(.) + var/datum/dionastats/DS = get_dionastats() + if(DS?.nym) + return FALSE + +/mob/living/carbon/alien/diona/cant_hear() + . = ..() + if(. && detached && gestalt) + return FALSE + /mob/proc/on_hear_say(var/message) to_chat(src, message) if(vr_mob) to_chat(vr_mob, message) +/mob/living/carbon/on_hear_say(var/message) + ..() + var/datum/dionastats/DS = get_dionastats() + if(DS?.nym) + var/mob/living/carbon/alien/diona/D = DS.nym.resolve() + if(D) + to_chat(D, message) + +/mob/living/carbon/alien/diona/on_hear_say(var/message) + to_chat(src, message) + if(detached && gestalt) + to_chat(gestalt, message) + /mob/living/silicon/on_hear_say(var/message) var/time = say_timestamp() to_chat(src, "[time] [message]") diff --git a/html/changelogs/geeves-diona_listening.yml b/html/changelogs/geeves-diona_listening.yml new file mode 100644 index 00000000000..a8240e739ea --- /dev/null +++ b/html/changelogs/geeves-diona_listening.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Diona now transmits heard messages between its detached nymph and its gestalt." \ No newline at end of file