diff --git a/modular_zubbers/code/datums/mood_events/_mood_event.dm b/modular_zubbers/code/datums/mood_events/_mood_event.dm
new file mode 100644
index 00000000000..45b8ae617d8
--- /dev/null
+++ b/modular_zubbers/code/datums/mood_events/_mood_event.dm
@@ -0,0 +1,19 @@
+/datum/mood/proc/get_mood_colour()
+ switch(mob_parent.mob_mood.sanity_level)
+ if (SANITY_LEVEL_GREAT)
+ . = "#2eeb9a"
+ if (SANITY_LEVEL_NEUTRAL)
+ . = "#86d656"
+ if (SANITY_LEVEL_DISTURBED)
+ . = "#4b96c4"
+ if (SANITY_LEVEL_UNSTABLE)
+ . = "#dfa65b"
+ if (SANITY_LEVEL_CRAZY)
+ . = "#f38943"
+ if (SANITY_LEVEL_INSANE)
+ . = "#f15d36"
+ if(HAS_TRAIT(mob_parent, TRAIT_MOOD_NOEXAMINE))
+
+ . = "#4b96c4"
+ return
+ return
diff --git a/modular_zubbers/code/modules/languages/empathy.dm b/modular_zubbers/code/modules/languages/empathy.dm
index 78602e83896..a4a4ecb751f 100644
--- a/modular_zubbers/code/modules/languages/empathy.dm
+++ b/modular_zubbers/code/modules/languages/empathy.dm
@@ -53,14 +53,30 @@
/obj/item/organ/tongue/shadekin/proc/actually_modify_speech(datum/source, list/speech_args)
var/message = speech_args[SPEECH_MESSAGE]
- var/mob/living/carbon/human/user = source
+ var/mob/living/carbon/human/user = owner
+ var/shadekin_mood = user.mob_mood.sanity_level
+ var/empathy_timer = 2 SECONDS
var/obj/item/organ/ears/shadekin/user_ears = user.get_organ_slot(ORGAN_SLOT_EARS)
var/mode = istype(user_ears)
user.balloon_alert_to_viewers("[mode ? "ears vibrate" : "shivers"]", "projecting thoughts...")
- if(!do_after(source, 2 SECONDS, source))
+ switch(shadekin_mood)
+ if(SANITY_LEVEL_GREAT)
+ empathy_timer = 0
+ if(SANITY_LEVEL_NEUTRAL)
+ empathy_timer = 1 SECONDS
+ if(SANITY_LEVEL_UNSTABLE)
+ empathy_timer = 4 SECONDS
+ if(SANITY_LEVEL_CRAZY)
+ empathy_timer = 5 SECONDS
+ message = stars(message)
+ if(SANITY_LEVEL_INSANE)
+ empathy_timer = 6 SECONDS
+ message = readable_corrupted_text(message)
+
+ if(empathy_timer && !do_after(source, empathy_timer, source))
message = full_capitalize(rot13(message))
- var/rendered = span_abductor("[user.real_name]: [message]")
+ var/rendered = ("[user.real_name]: [message]")
user.log_talk(message, LOG_SAY, tag="shadekin")
for(var/mob/living/carbon/human/living_mob in GLOB.alive_mob_list)
diff --git a/tgstation.dme b/tgstation.dme
index 84d8eb7a92e..76010330c6a 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -8826,6 +8826,7 @@
#include "modular_zubbers\code\datums\greyscale\config_types\greyscale_configs\pipe_carp.dm"
#include "modular_zubbers\code\datums\mapgen\Cavegens\moonstation.dm"
#include "modular_zubbers\code\datums\materials\basemats.dm"
+#include "modular_zubbers\code\datums\mood_events\_mood_event.dm"
#include "modular_zubbers\code\datums\mood_events\bloodsucker_events.dm"
#include "modular_zubbers\code\datums\mood_events\dominant_mood.dm"
#include "modular_zubbers\code\datums\mood_events\food_events.dm"