Adds more flavor to shadekin empathy (#3437)

## About The Pull Request
BASED ON SANITY SHADEKIN EMPATHY WILL:
-Take more or less time to send
-At lowest levels of sanity the message starts to break down some
-Be a different color in chat
## Why It's Good For The Game
Shadekin empathy is communication through FEELINGS so it being
better/worse based on how you're FEELING makes sense (to me)
## Proof Of Testing

![image](https://github.com/user-attachments/assets/2c539f7b-7edc-43c1-9c28-f8da4606dc17)
<details>
<summary>Screenshots/Videos</summary>

</details>

## Changelog
🆑
balance: shadekin empathy is better/worse based on mood
/🆑

---------

Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
This commit is contained in:
Odairu
2025-04-05 02:42:41 -04:00
committed by GitHub
parent 457754c461
commit e05fe31faa
3 changed files with 39 additions and 3 deletions

View File

@@ -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

View File

@@ -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("<b>[user.real_name]:</b> [message]")
var/rendered = ("<span style=color:[user.mob_mood.get_mood_colour()];><b>[user.real_name]:</b> [message]</span>")
user.log_talk(message, LOG_SAY, tag="shadekin")
for(var/mob/living/carbon/human/living_mob in GLOB.alive_mob_list)

View File

@@ -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"