CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.73k stars 4.21k forks source link

"Old" ingredients improperly affecting meal shelf life. #38384

Open sharkfinsouperman opened 4 years ago

sharkfinsouperman commented 4 years ago

Describe the bug

Using "old" ingredients that have a shelf life exceeding that of the resulting meal's is reducing the meal's resulting shelf life.

I used beans with "more than 3 weeks" and rice with "less than four weeks" to craft beans and rice, which has a shelf life of one week. The result was "old" beans and rice with less than 11 hours of shelf life remaining.

I witnessed this behaviour using other ingredients with long shelf life, such as old pasta making it so a serving of spaghetti made using fresh ingredients would rot by the end of the day.

Steps To Reproduce

Craft a meal using only "old" ingredients, or a meal using an "old" ingredient that will not spoil before the end of the meal's initial shelf life and fresh ingredients.

Expected behavior

Ingredients with shelf life remaining that is greater than the expected shelf life of the resulting meal should not be included in calculating the meal's final shelf life and reduce it's overall freshness.

I wouldn't expect the meal to be "fresh", but I certainly wouldn't expect it to be aged or on the verge of rotting either.

Versions and configuration

jkraybill commented 4 years ago

I think there is some intentional behavior here where the % oldness of the ingredients affects the % oldness of the output, but I agree that the consequences are frequently illogical. Can anyone make an argument for scenarios where aging ingredients should result in the output having a lifespan less than the ingredient output AND less than the default output lifespan?

sharkfinsouperman commented 4 years ago

There also appears to be some inconsistency to what makes the end product "old", "fresh", or neither.

I crafted flat bread using 9 parts "old" flour and 2 parts aging flour and got "old" flatbread as expected, but I got a "fresh" sandwich when I made a veggie sandwich using the bread.

JeanLucVanDamme commented 4 years ago

At first this sounded illogical as well, but with beans and rice this is true to real life. The cooked product would spoil in several hours without refrigeration. This is partly because of the moisture added by cooking. So, converting the product from uncooked (dried) to cooked (moist) actually does reduce shelf life.

At the same time, I don't see why it's lower than "the default output lifespan", as jkraybill pointed out.