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"