From c7ae2db240c77faa81dec1bf7ee4aaf7616fe8d9 Mon Sep 17 00:00:00 2001 From: Alphas00 <154434082+Alphas00@users.noreply.github.com> Date: Sun, 26 May 2024 09:12:29 +0200 Subject: [PATCH] Voracious Trait fullness Voracious trait now also modifies fullness added values to make the eater able to eat/drink twice as much. Also makes fullness decay twice as fast --- GainStation13/code/mobs/chocoslime.dm | 2 ++ code/datums/traits/good.dm | 2 +- code/modules/food_and_drinks/drinks/drinks.dm | 5 ++++- code/modules/food_and_drinks/food/snacks.dm | 2 ++ code/modules/mob/living/carbon/human/species.dm | 2 ++ 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/GainStation13/code/mobs/chocoslime.dm b/GainStation13/code/mobs/chocoslime.dm index 8c83c1a8..c4e90e05 100644 --- a/GainStation13/code/mobs/chocoslime.dm +++ b/GainStation13/code/mobs/chocoslime.dm @@ -103,4 +103,6 @@ if(L.reagents) if(!L.is_mouth_covered(head_only = 1)) L.reagents.add_reagent(food_fed, food_per_feeding) + if(HAS_TRAIT(L, TRAIT_VORACIOUS)) + fullness_add = fullness_add * 0.67 L.fullness += (fullness_add) diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 72a77af9..d55abb7b 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -231,7 +231,7 @@ /datum/quirk/voracious name = "Voracious" - desc = "Nothing gets between you and your food. You eat twice as fast as everyone else!" + desc = "Nothing gets between you and your food. You eat twice as fast, get half as full and recover from stuffing twice as fast!" value = 1 category = CATEGORY_FOOD mob_trait = TRAIT_VORACIOUS diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 762fef40..39ec4a80 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -53,7 +53,10 @@ checkLiked(fraction, M) reagents.reaction(M, INGEST, fraction) reagents.trans_to(M, gulp_size) - M.fullness += min(gulp_size, reagents.total_volume) // GS13 drinks will fill your stomach + if(HAS_TRAIT(M, TRAIT_VORACIOUS)) + M.fullness += min(gulp_size * 0.67, reagents.total_volume * 0.67) + else + M.fullness += min(gulp_size, reagents.total_volume) // GS13 drinks will fill your stomach playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) return 1 diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 284b996a..f74a7f95 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -140,6 +140,8 @@ All foods are distributed among various categories. Use common sense. if(M.satiety > -200) M.satiety -= junkiness playsound(M.loc,'sound/items/eatfood.ogg', rand(10,50), 1) + if(HAS_TRAIT(M, TRAIT_VORACIOUS)) + bitevolume = bitevolume * 0.67 M.fullness += bitevolume; if(reagents.total_volume) SEND_SIGNAL(src, COMSIG_FOOD_EATEN, M, user) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index a3297521..08782217 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1502,6 +1502,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.adjust_fatness(nutritionThatBecomesFat, FATTENING_TYPE_FOOD) if(H.fullness > FULLNESS_LEVEL_EMPTY)//GS13 stomach-emptying routine var/ticksToEmptyStomach = 20 // GS13 how many ticks it takes to decrease the fullness by 1 + if(HAS_TRAIT(H, TRAIT_VORACIOUS)) + ticksToEmptyStomach = ticksToEmptyStomach * 0.5 H.fullness -= 1/ticksToEmptyStomach if (H.fullness > FULLNESS_LEVEL_BLOATED) //GS13 overeating depends on fullness now if(H.overeatduration < 5000) //capped so people don't take forever to unfat