you can now get fat!

This commit is contained in:
Metis
2024-09-14 20:50:15 -04:00
parent a286ab8dc0
commit 77d4225990
11 changed files with 120 additions and 16 deletions
+1 -1
View File
@@ -64,7 +64,7 @@
#define MILK_EFFICIENCY 1
#define BUTT_SIZE_DEF 1
#define BUTT_SIZE_MAX 5 //butt genitals are special in that they have caps. if there's the event there's even bigger butt sprites, raise this number.
#define BUTT_SIZE_MAX 10 //butt genitals are special in that they have caps. if there's the event there's even bigger butt sprites, raise this number.
#define BELLY_SIZE_DEF 0
#define BELLY_SIZE_MAX 10
+18 -5
View File
@@ -99,10 +99,16 @@ Behavior that's still missing from this component that original food items had t
return
if(!CanConsume(eater, feeder))
return
var/fullness = eater.nutrition + 10 //The theoretical fullness of the person eating if they were to eat this
for(var/datum/reagent/consumable/C in eater.reagents.reagent_list) //we add the nutrition value of what we're currently digesting
fullness += C.nutriment_factor * C.volume / C.metabolization_rate
//GS13 Edit
var/mob/living/carbon/human/human_eater = eater
if(istype(human_eater))
fullness = human_eater.fullness
. = COMPONENT_ITEM_NO_ATTACK //Point of no return I suppose
if(eater == feeder)//If you're eating it yourself.
@@ -112,15 +118,15 @@ Behavior that's still missing from this component that original food items had t
if(junkiness && eater.satiety < -150 && eater.nutrition > NUTRITION_LEVEL_STARVING + 50 && !HAS_TRAIT(eater, TRAIT_VORACIOUS))
to_chat(eater, "<span class='warning'>You don't feel like eating any more junk food at the moment!</span>")
return
else if(fullness <= 50)
else if(fullness <= FULLNESS_LEVEL_HALF_FULL)
eater.visible_message("<span class='notice'>[eater] hungrily [eatverb]s \the [parent], gobbling it down!</span>", "<span class='notice'>You hungrily [eatverb] \the [parent], gobbling it down!</span>")
else if(fullness > 50 && fullness < 150)
else if(fullness > FULLNESS_LEVEL_HALF_FULL && fullness < FULLNESS_LEVEL_FILLED)
eater.visible_message("<span class='notice'>[eater] hungrily [eatverb]s \the [parent].</span>", "<span class='notice'>You hungrily [eatverb] \the [parent].</span>")
else if(fullness > 150 && fullness < 500)
else if(fullness > FULLNESS_LEVEL_FILLED && fullness < FULLNESS_LEVEL_BLOATED)
eater.visible_message("<span class='notice'>[eater] [eatverb]s \the [parent].</span>", "<span class='notice'>You [eatverb] \the [parent].</span>")
else if(fullness > 500 && fullness < 600)
else if(fullness > FULLNESS_LEVEL_BLOATED && fullness < FULLNESS_LEVEL_BEEG)
eater.visible_message("<span class='notice'>[eater] unwillingly [eatverb]s a bit of \the [parent].</span>", "<span class='notice'>You unwillingly [eatverb] a bit of \the [parent].</span>")
else if(fullness > (600 * (1 + eater.overeatduration / 2000))) // The more you eat - the more you can eat
else if(fullness > (FULLNESS_LEVEL_BEEG * (1 + eater.overeatduration / 2000))) // The more you eat - the more you can eat
eater.visible_message("<span class='warning'>[eater] cannot force any more of \the [parent] to go down [eater.p_their()] throat!</span>", "<span class='warning'>You cannot force any more of \the [parent] to go down your throat!</span>")
return
else //If you're feeding it to someone else.
@@ -153,6 +159,13 @@ Behavior that's still missing from this component that original food items had t
if(eater.satiety > -200)
eater.satiety -= junkiness
playsound(eater.loc,'sound/items/eatfood.ogg', rand(10,50), TRUE)
var/mob/living/carbon/human/human_eater = eater
if(istype(human_eater))
var/bitevolume = 1
if(HAS_TRAIT(human_eater, TRAIT_VORACIOUS))
bitevolume = bitevolume * 0.67
human_eater.fullness += bitevolume;
if(owner.reagents.total_volume)
SEND_SIGNAL(parent, COMSIG_FOOD_EATEN, eater, feeder)
var/fraction = min(bite_consumption / owner.reagents.total_volume, 1)
@@ -126,7 +126,8 @@
//BUTT BE HERE
/datum/sprite_accessory/butt
icon = 'icons/obj/genitals/butt_onmob.dmi'
//icon = 'icons/obj/genitals/butt_onmob.dmi' GS13 EDIT - ASS SPRITES
icon = 'hyperstation/icons/obj/genitals/butt.dmi'
icon_state = "butt"
name = "butt"
color_src = "butt_color"
+18 -7
View File
@@ -113,9 +113,14 @@ All foods are distributed among various categories. Use common sense.
if(!canconsume(M, user))
return FALSE
//GS13 EDIT, FULNESS
var/fullness = M.nutrition + 10
for(var/datum/reagent/consumable/C in M.reagents.reagent_list) //we add the nutrition value of what we're currently digesting
fullness += C.nutriment_factor * C.volume / C.metabolization_rate
//for(var/datum/reagent/consumable/C in M.reagents.reagent_list) //we add the nutrition value of what we're currently digesting
// fullness += C.nutriment_factor * C.volume / C.metabolization_rate
//GS13 Edit
var/mob/living/carbon/human/human_eater = M
if(istype(human_eater))
fullness = human_eater.fullness
if(M == user) //If you're eating it yourself.
if(junkiness && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
@@ -123,18 +128,18 @@ All foods are distributed among various categories. Use common sense.
return FALSE
else if(fullness <= 50)
user.visible_message("<span class='notice'>[user] hungrily takes a [eatverb] from \the [src], gobbling it down!</span>", "<span class='notice'>You hungrily take a [eatverb] from \the [src], gobbling it down!</span>")
else if(fullness > 50 && fullness < 150)
else if(fullness > FULLNESS_LEVEL_HALF_FULL && fullness < FULLNESS_LEVEL_FILLED)
user.visible_message("<span class='notice'>[user] hungrily takes a [eatverb] from \the [src].</span>", "<span class='notice'>You hungrily take a [eatverb] from \the [src].</span>")
else if(fullness > 150 && fullness < 500)
else if(fullness > FULLNESS_LEVEL_FILLED && fullness < FULLNESS_LEVEL_BLOATED)
user.visible_message("<span class='notice'>[user] takes a [eatverb] from \the [src].</span>", "<span class='notice'>You take a [eatverb] from \the [src].</span>")
else if(fullness > 500 && fullness < 600)
else if(fullness > FULLNESS_LEVEL_BLOATED && fullness < FULLNESS_LEVEL_BEEG)
user.visible_message("<span class='notice'>[user] unwillingly takes a [eatverb] of a bit of \the [src].</span>", "<span class='warning'>You unwillingly take a [eatverb] of a bit of \the [src].</span>")
else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
else if(fullness > (FULLNESS_LEVEL_BEEG * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
user.visible_message("<span class='warning'>[user] cannot force any more of \the [src] to go down [user.p_their()] throat!</span>", "<span class='danger'>You cannot force any more of \the [src] to go down your throat!</span>")
return FALSE
else
if(!isbrain(M)) //If you're feeding it to someone else.
if(fullness <= (600 * (1 + M.overeatduration / 1000)))
if(fullness <= (FULLNESS_LEVEL_BEEG * (1 + M.overeatduration / 1000)))
M.visible_message("<span class='danger'>[user] attempts to feed [M] [src].</span>", \
"<span class='userdanger'>[user] attempts to feed [M] [src].</span>")
else
@@ -156,6 +161,12 @@ 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)
var/bitevolume = 1
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
bitevolume = bitevolume * 0.67
if(istype(human_eater))
human_eater.fullness += bitevolume;
if(reagents.total_volume)
SEND_SIGNAL(src, COMSIG_FOOD_EATEN, M, user)
var/fraction = min(bitesize / reagents.total_volume, 1)
+36
View File
@@ -118,6 +118,42 @@
if(7 to INFINITY)
msg += "<span class='notice'><b><i>[t_He] [t_is] just absolutely fucked up, you can look again to take a closer look...</i></b></span>\n"
//GS13 EDIT FAT EXAMINE
switch(fullness)
if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG)
msg += "[t_He] look[p_s()] like [t_He] ate a bit too much.\n"
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ)
msg += "[t_His] stomach looks very round and very full.\n"
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)
msg += "[t_His] stomach has been stretched to enormous proportions.\n"
if(nutrition < NUTRITION_LEVEL_STARVING - 50)
msg += "[t_He] [t_is] severely malnourished.\n"
if(fatness >= FATNESS_LEVEL_BLOB)
msg += "[t_He] [t_is] completely engulfed in rolls upon rolls of flab. [t_His] head is poking out on top of [t_His] body, akin to a marble on top of a hill.\n"
else if(fatness >= FATNESS_LEVEL_IMMOBILE)
msg += "[t_His] body is buried in an overflowing surplus of adipose, and [t_His] legs are completely buried beneath layers of meaty, obese flesh.\n"
else if(fatness >= FATNESS_LEVEL_BARELYMOBILE)
msg += "[t_He] [t_is] as wide as [t_He] [t_is] tall, barely able to move [t_His] masssive body that seems to be overtaken with piles of flab.\n"
else if(fatness >= FATNESS_LEVEL_EXTREMELY_OBESE)
msg += "[t_He] [t_is] ripe with numerous rolls of fat, almost all of [t_His] body layered with adipose.\n"
else if(fatness >= FATNESS_LEVEL_MORBIDLY_OBESE)
msg += "[t_He] [t_is] utterly stuffed with abundant lard, [t_He] doesn't seem to be able to move much.\n"
else if(fatness >= FATNESS_LEVEL_OBESE)
msg += "[t_He] [t_is] engorged with fat, [t_His] body laden in rolls of fattened flesh.\n"
else if(fatness >= FATNESS_LEVEL_VERYFAT)
msg += "[t_He] [t_is] pleasantly plushy, [t_His] body gently wobbling whenever they move. \n"
else if(fatness >= FATNESS_LEVEL_FATTER)
msg += "[t_He] [t_is] soft and curvy, [t_His] belly looking like a small pillow.\n"
if(msg.len)
. += "<span class='warning'>[msg.Join("")]</span>"
@@ -1545,13 +1545,31 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
hunger_rate *= H.physiology.hunger_mod
H.adjust_nutrition(-hunger_rate)
/*
if (H.nutrition > NUTRITION_LEVEL_FULL)
if(H.overeatduration < 600) //capped so people don't take forever to unfat
H.overeatduration++
else
if(H.overeatduration > 1)
H.overeatduration -= 2 //doubled the unfat rate
*/
if (H.nutrition > NUTRITION_LEVEL_FULL)
// fatConversionRate is functionally useless. It seems under normal curcumstances, each tick only processes, at most, 1 nutrition anyway. reducing the value has no effect.
var/fatConversionRate = 100 //GS13 what percentage of the excess nutrition should go to fat (total nutrition to transfer can't be under 1)
var/nutritionThatBecomesFat = max((H.nutrition - NUTRITION_LEVEL_FULL)*(fatConversionRate / 100),1)
H.nutrition -= nutritionThatBecomesFat
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
H.overeatduration++
else
if(H.overeatduration > 1)
H.overeatduration -= 1 //doubled the unfat rate -- GS13 Nah, put it back
//metabolism change
if(H.nutrition > NUTRITION_LEVEL_FAT)