From f472588418dd435d215fcd48b0713365bb192098 Mon Sep 17 00:00:00 2001 From: explosivekitty Date: Sat, 25 Apr 2026 14:35:45 +0200 Subject: [PATCH] Adds a quirk thats let you not have character mood (#5486) ## About The Pull Request Adds a free quirk that locks you out of other mood quirks, hides judging mood face from your screen and moves hunger meter to where mood face was. All of the negative and positive bonuses are disabled with this quirk and mood slow down will be replaced with slow down if you are hungry ## Why It's Good For The Game I'm huge hater of this feature since the day i started playing this game and i absolutely despise seeing the mood face on my screen and with this quirk you will no longer have to worry about some arbitrary mood meter saying how your character feels like, you can roleplay how you are feeling like and do whatever you please. and no this is not turbo broken, the positive mood you can have has way more mechanic value than having mood always set to neutral so you are locking yourself out of the positives and negatives ## Proof Of Testing
Screenshots/Videos quirk equipped hungry quirk selection
## Changelog :cl: add: Added new quirk that lets you disable and hide your mood from your hud /:cl: --------- Co-authored-by: Copilot --- .../~~bubber_defines/traits/declarations.dm | 3 ++ .../subsystem/processing/quirks.dm | 5 ++ .../datums/quirks/neutral_quirks/nomood.dm | 50 +++++++++++++++++++ tgstation.dme | 1 + 4 files changed, 59 insertions(+) create mode 100644 modular_zubbers/code/datums/quirks/neutral_quirks/nomood.dm diff --git a/code/__DEFINES/~~bubber_defines/traits/declarations.dm b/code/__DEFINES/~~bubber_defines/traits/declarations.dm index c4761904e70..accd94cb6a7 100644 --- a/code/__DEFINES/~~bubber_defines/traits/declarations.dm +++ b/code/__DEFINES/~~bubber_defines/traits/declarations.dm @@ -65,5 +65,8 @@ /// The trait that determines if someone has the robotic limb reattachment quirk. #define TRAIT_ROBOTIC_LIMBATTACHMENT "trait_robotic_limbattachment" +/// Trait that removes mood and replaces it with hunger bar. +#define TRAIT_NOMOOD "trait_nomood" + /// Trait that gives your brain traumas more resilance #define TRAIT_RESILIENT_TRAUMAS "trait_resilient_traumas" diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 5aaaf203e45..0a4e41cc474 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -48,6 +48,11 @@ GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list( list(/datum/quirk/equipping/entombed, /datum/quirk/badback), list(/datum/quirk/unblinking, /datum/quirk/item_quirk/fluoride_stare), list(/datum/quirk/micro, /datum/quirk/micro/smaller, /datum/quirk/micro/smallest, /datum/quirk/oversized), + list(/datum/quirk/nomood, /datum/quirk/unstable), + list(/datum/quirk/nomood, /datum/quirk/alexithymia), + list(/datum/quirk/nomood, /datum/quirk/depression), + list(/datum/quirk/nomood, /datum/quirk/erratic), + list(/datum/quirk/nomood, /datum/quirk/hypersensitive), //BUBBER EDIT ADDITION END )) diff --git a/modular_zubbers/code/datums/quirks/neutral_quirks/nomood.dm b/modular_zubbers/code/datums/quirks/neutral_quirks/nomood.dm new file mode 100644 index 00000000000..ee79379bbe7 --- /dev/null +++ b/modular_zubbers/code/datums/quirks/neutral_quirks/nomood.dm @@ -0,0 +1,50 @@ +/datum/quirk/nomood + name = "No Mood" + desc = "You don't receive any moodlets, your mood status will be replaced with hunger bar and you will receive slowdown based on how hungry you are." + icon = FA_ICON_POWER_OFF + value = 0 + mob_trait = TRAIT_NOMOOD + gain_text = span_danger("Your mood is way behind the fourth-wall!") + lose_text = span_notice("Your mood is back to normal...") + medical_record_text = "Patient is incapable of feeling their own emotions." + var/previous_modifier = 1 + +/datum/quirk/nomood/post_add() + . = ..() + if(!quirk_holder.mob_mood) + return + ADD_TRAIT(quirk_holder, TRAIT_APATHETIC, QUIRK_TRAIT) + previous_modifier = quirk_holder.mob_mood.mood_modifier + quirk_holder.mob_mood.mood_modifier = 0 //personalities and anything mood related will just not count + toggle_mood(hide = TRUE) + +/datum/quirk/nomood/remove() + . = ..() + if(!quirk_holder.mob_mood) + return + REMOVE_TRAIT(quirk_holder, TRAIT_APATHETIC, QUIRK_TRAIT) + quirk_holder.mob_mood.mood_modifier = previous_modifier + toggle_mood(hide = FALSE) + +/datum/quirk/nomood/proc/toggle_mood(hide) + //hide the mood + var/datum/mood/mob_mood = quirk_holder.mob_mood + var/datum/hud/human/humanhud = quirk_holder.hud_used + + if(isnull(mob_mood) || isnull(humanhud)) + return + + var/atom/movable/screen/mood/mood_icon = mob_mood.mood_screen_object + var/atom/movable/screen/hunger/hunger_icon = humanhud.hunger + + if(isnull(mood_icon) || isnull(hunger_icon)) + return + + mood_icon.screen_loc = hide ? "EAST-1:-999,CENTER:21" : ui_mood //moves it off the screen so you cant see it + hunger_icon.screen_loc = hide ? ui_mood : ui_hunger + +//slowdown handled the same way it is handled when disable_human_mood is enabled +/obj/item/organ/stomach/handle_hunger(mob/living/carbon/human/human, seconds_per_tick) + . = ..() + if(HAS_TRAIT(human, TRAIT_NOMOOD)) + handle_hunger_slowdown(human) diff --git a/tgstation.dme b/tgstation.dme index a24913191ee..0ec80532ebb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -9045,6 +9045,7 @@ #include "modular_zubbers\code\datums\quirks\neutral_quirks\hypnotic.dm" #include "modular_zubbers\code\datums\quirks\neutral_quirks\lungs.dm" #include "modular_zubbers\code\datums\quirks\neutral_quirks\nameless.dm" +#include "modular_zubbers\code\datums\quirks\neutral_quirks\nomood.dm" #include "modular_zubbers\code\datums\quirks\neutral_quirks\perch.dm" #include "modular_zubbers\code\datums\quirks\neutral_quirks\pet_owner.dm" #include "modular_zubbers\code\datums\quirks\neutral_quirks\pseudo_respiration.dm"