diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm
index dbce0072..b5df5431 100644
--- a/code/datums/components/mood.dm
+++ b/code/datums/components/mood.dm
@@ -293,7 +293,8 @@
/datum/component/mood/proc/HandleNutrition(mob/living/L)
switch(L.nutrition)
if(NUTRITION_LEVEL_FULL to INFINITY)
- add_event(null, "nutrition", /datum/mood_event/fat)
+ if(!L.has_quirk(/datum/quirk/fat_enjoyer))
+ add_event(null, "nutrition", /datum/mood_event/fat)
if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL)
add_event(null, "nutrition", /datum/mood_event/wellfed)
if( NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED)
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index be09a91d..0055727b 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -109,14 +109,16 @@ All foods are distributed among various categories. Use common sense.
user.visible_message("[user] takes a [eatverb] from \the [src].", "You take a [eatverb] from \the [src].")
else if(fullness > 500 && fullness < 600)
user.visible_message("[user] unwillingly takes a [eatverb] of a bit of \the [src].", "You unwillingly take a [eatverb] of a bit of \the [src].")
- else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
+ else if(fullness > (600 * (1 + M.overeatduration / 2000))\
+ || (M.has_quirk(/datum/quirk/fat_enjoyer) && fullness < 780 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
user.visible_message("[user] cannot force any more of \the [src] to go down [user.p_their()] throat!", "You cannot force any more of \the [src] to go down your throat!")
return 0
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
M.changeNext_move(CLICK_CD_MELEE * 0.5) //nom nom nom
else
if(!isbrain(M)) //If you're feeding it to someone else.
- if(fullness <= (600 * (1 + M.overeatduration / 1000)))
+ if(fullness <= (600 * (1 + M.overeatduration / 1000))\
+ || (M.has_quirk(/datum/quirk/fat_enjoyer) && fullness <= 780 * (1 + M.overeatduration / 1000)))
M.visible_message("[user] attempts to feed [M] [src].", \
"[user] attempts to feed [M] [src].")
else
diff --git a/hyperstation/code/datums/traits/good.dm b/hyperstation/code/datums/traits/good.dm
index 672d8719..253b88b0 100644
--- a/hyperstation/code/datums/traits/good.dm
+++ b/hyperstation/code/datums/traits/good.dm
@@ -57,3 +57,10 @@
/datum/quirk/xenospeaker/remove()
if(quirk_holder)
quirk_holder.remove_language(/datum/language/ratvar)
+
+/datum/quirk/fat_enjoyer
+ name = "Fat Enjoyer"
+ desc = "You don't particularly mind being fat compared to some people, and have grown used to feeling a bit plump."
+ value = 1
+ gain_text = "You enjoy fat more than some people."
+ lose_text = "Your views towards being overweight has changed."
diff --git a/hyperstation/code/datums/traits/neutral.dm b/hyperstation/code/datums/traits/neutral.dm
index ba031c25..cad4e5be 100644
--- a/hyperstation/code/datums/traits/neutral.dm
+++ b/hyperstation/code/datums/traits/neutral.dm
@@ -34,3 +34,14 @@
mob_trait = TRAIT_HEAT
gain_text = "You body burns with the desire to be bred."
lose_text = "You feel more in control of your body and thoughts."
+
+/datum/quirk/overweight
+ name = "Overweight"
+ desc = "You're particularly fond of food, and join the round being overweight."
+ value = 0
+ gain_text = "You feel a bit chubby!"
+ //no lose_text cause why would there be?
+
+/datum/quirk/overweight/on_spawn()
+ var/mob/living/M = quirk_holder
+ M.nutrition = rand(NUTRITION_LEVEL_FAT + NUTRITION_LEVEL_START_MIN, NUTRITION_LEVEL_FAT + NUTRITION_LEVEL_START_MAX)