loiste-interactive / Obenseuer-Issues

17 stars 1 forks source link

[0.33.3] [suggestion] Better handling of excretion needs #1855

Open goc9000 opened 7 months ago

goc9000 commented 7 months ago

A particular situation that's been reported on Steam Discussions and I've also encountered quite often personally is that the player will gobble down a bowl of soup and suddenly find themselves with the "bowel/bladder" meter in the red, imminently risking disaster. I think this highlights two issues that should be addressed:

Issue 1. It seems that the current nutrition value of a food is what is used to increase the bowel/bladder stat (except for the laxative candies which have special handling). While this works for a while as a proxy, there are situations where the approximation breaks down. E.g. if you craft a good soup the nutrition value is much higher than normal, sometimes even in the 60s-70s; the daily soup you can steal from Deekula C is also often very nutritious. This causes a huge unexpected jump in bowel load if you are used to soups normally contributing a modest 20-30 nutrition.

It would make more sense to have a special, hidden, "digestive load" stat for each food type, that is not influenced by crafting/quality-induced variations in nutrition value. As a first approximation, it could even be copied from the standard nutrition stat, then maybe adjusted later for certain foods if we want something that is e.g. nutritious but not filling or viceversa.

Issue 2. It's unexpected and unrealistic to have instantaneous huge jumps in the excretion stat (except for special cases like laxatives or hot chili or something). In real life kidneys and the intestines take time to do their work and even if time in Obenseuer is accelerated, sometimes massively, I think it would be better for player experience to be a bit more realistic here.

What I propose is that the speed of change for the bowel/bladder stat to be limited, with a simple "target" system. When the player eats something, instead of something like:

BowelStat += BowelLoadForThatFood;  // probably times a constant etc.

we'd do:

BowelStatTarget += BowelLoadForThatFood;

and then on each game tick or whatever:

BowelStat += Min(BowelStatTarget - BowelStat, MaxBowelStatRateOfChange);

with the RateOfChange chosen such that it is quite fast but still gives the player enough time to realize they've eaten something heavy and start looking for a toilet fast.

When the player visits a toilet, both the BowelStat and BowelStatTarget would be immediately reset.

AFAICT the game seems to track urinary/fecal needs separately, but something similar should apply to both variables, perhaps with a different rate-of-change limit.

greensalt99 commented 7 months ago

or nutrition should not influence "brownies" size. i would say, food size (liters) should influence "brownies" size. so you eat bad soup low nutrition but still have same amount of "brownies" as good soup. in other words if you eat a horse you will sit on toilet for long, if you bite an apple you wont notice toilet need.