Cataclysm-dda: Food with very high spoilage timers clutters inventory

Created on 21 Sep 2018  路  9Comments  路  Source: CleverRaven/Cataclysm-DDA

Describe the bug
I think it's time to address the elephant in the room.
Here's what my eat menu looks like after raiding a school and loading the loot into a cart (so, just things that were found there):
food1
food2
Keep in mind, #25429 happened - for example, the chocolate lasts 360 days, putting it just under a year, which shows up as 3 seasons, but it's really a year. Another thing to keep in mind is that even in worst conditions, this food would experience freezing during winter, and to some degree spring and autumn, meaning it would last even longer, even without efforts to preserve it.

To sum it up, these are food items that can last around two years on the ground, and possibly even more if tossed into the fridge. This makes them functionally immortal. They will simply never spoil during normal gameplay, and when they do, it will have no effect on the game. A survivor that makes it through to a second year isn't going to be affected by some chocolates spoiling, especially if they didn't eat them during the first year.

These timers, that affect a tiny minority of characters in a slight way, are a major inconvenience for any survivor raiding a school, to a lesser degree arcade, emptying several vendors, or any other place where lots of junk food can be found.

Eat menu becomes a nightmare to navigate with this baggage. Regular inventory gets pretty cluttered as well. If you try to filter the food and put all spoiling ones into the fridge, you will end up filling it with items that don't really need it, forcing you to either sift through all your food to filter out ones with long timers or fill your fridge space with junk.

I want to say that the timers on long-lasting food should just be removed, but that idea seems to not resonate well with people for some reason. I have no other ideas for fixing this at the moment and would like to start a discussion.

Info / User Interface Food / Vitamins

Most helpful comment

We should be able to merge display of these items in the affected menus based on time to spoil.

All 9 comments

We should be able to merge display of these items in the affected menus based on time to spoil.

I'm personally against removing nominal shelf life value from long lasting food, as it plays a role for example in a mechanic where before Cataclysm food has simulated value of good or bad storing conditions and date of production (+/- 20% rot bonus/malus).

I am however strongly for fixing the problem presented here via stacking mechanics. There are already issues proposing that, so in quick recap there are two different ways of doing it:

  • visual collapse - food with different rot values doesn't truly stack to retain individual rot, but in menus is presented in tiers, assuming ceteris paribus. Grouping tiers might be equal to existing visual tiers of food decay: fresh, still fresh, before midlife, past midlife, old soon, old. Any of the group could behave differently for example no visual stacking for old food.
  • true stacking (merging) - a stacking can take place when different individual food items have rot counter not further apart then x% of nominal shelf life - this scales with food longevity, so for food with very long shelf life will time durations in days or weeks, and can be also modified to not stack when we don't want it too, for example when relative rot is above certain value. Or even better - set stacking factor as relative to both nominal minus actual rot, so it stacking window is narrowed when "time left" goes down. When stacking happens I'd go either with roundin down to lowest actual rot, or averaging rot for both merged items. Perhaps the latter if it prevents unexpected stacking chains.

Merging would be nice, but still leaves open the problem with sorting items for putting them into fridge.

I'm personally against removing nominal shelf life value from long lasting food, as it plays a role for example in a mechanic where before Cataclysm food has simulated value of good or bad storing conditions and date of production (+/- 20% rot bonus/malus).

360 * 0.8 = 288. Expiration is still completely irrelevant.

Rimworld handles stacking of rotting items by averaging rot% on stack. It's not easily exploitable.

I would be very careful about implementing the same. In Rimworld, rot is in general a less important value and less of a problem than here - here stacking two items when both of them have rather short shelf life may mean depriving oneself of food in general by accident.

Anyone else notice that the first stack of toast-em's in second picture is 37 joy instead of 15 like the rest?

Also, Wouldn't stacking based on expiration date be messy with 2 items? What if i wanted powder candy sticks instead of peanut butter candy? So isn't it best to merge items with same name and when you eat from stack, you eat food with lowest expiration?

The idea from merging items with same name comes from trying to eat stuff from a vending machine, the Eat menu takes a while to open if there are multiple pages of food items which can easily happen when raiding vending machines. Since vending machine items usually have low calories, the loading time makes this a lengthy task.

The menu sorts food into two groups perishable (blue) and nonperishable (gray). I suggest adding a third grouping for food lasting a season or more. This way the shelflife of long lasting foods can be preserved while differentiating them from the stuff that needs to get eaten immediately.

@CoroNaut

Anyone else notice that the first stack of toast-em's in second picture is 37 joy instead of 15 like the rest?

Certain food items of the same name differ slightly in quality. For example, there are different brands of potato chips with slightly difference in joy the provide as well.

An option to toggle GUI/visual stacking could help? That's what I'd like anyhow.
So with long life stacking on, I can just grab ALL the Jerky... With long life stacking off, we get the current GUI stacking list so you can get the one that [in lore] smells/looks the most fresh.

Was this page helpful?
0 / 5 - 0 ratings