I predicted and cooked a 16-different-food-type, 90 minute recipe today following this system. I have collect large amounts of data and it works in every case, every time.
Every meal you cook has a timer associated with it. As long as the timer >0, your stat alterations (see Effects) will remain, and the timer will count down. The time a meal will last is entirely predictable, using a simple equation and a lookup table.
If you get the message "You eat a bit of the food, but it has no effect" that means the timer was <= 0.
I do not know how the lookup table was created, nor do I care. It's a fundamental enough propery of cooking that if we just fill it out from trial and error, we can know how to cook long lasting recipes.
The equation to determine the length of a food is described first, and the lookup table is listed after.
NOTES:
This might already be known but I have done a little cooking and noticed the more servings you create, the longer the duration of 1 serving of food. I started by making 3 camels milk and 4 onions(30 seconds). 20 camels milk and 21 onions(55 seconds) then past that there was slight increase but not enough to make a real big difference. (100 camels milk and 101 onions was 61 seconds). But all this could be just coincidence. - Kalagaraz
That stands to reason with the formulas below, if duration is n*B/A (where A is the largest quantity item, and B is the next item, and n being some constant). with your figures, 20/21*n > 3/4*n for n>0 - Sabt-Pestnu
I will provide examples in indented text, like this. If you learn better from seeing how someone else does something, read these.
Take your meal, sum up all the duplicate entries of foods, and order them by amount of food. (In case of tie, order them by the = column in the tables, so that the ingredients pointed at are first. E.g, It's cabbage, carp, carrot. Or look it up in the Ingredient Order table). Assign the TYPE of each food to F1, F2, F3, F4, ..., Fn, and the NUMBER of each food to N1, N2, N3, N4, ..., Nn.
I am cooking "3 cabbage, 3 carrots, 6 perch, 6 carrots, 2 cabbage, 1 cabbage, 6 perch" (as a recipe)
I SUM and ORDER them to "12 perch, 9 carrots, 6 cabbage."
Now, F1=perch, F2=carrots, F3=cabbage, N1=12, N2=9, N3=6.
Using the lookup table as described below, plug the values into the following equation:
time_effect_will_last = SUM(from k=2 to k=n) of: (Nk/N1) * lookup_table(N(k-1), F(k-1), Nk, Fk)
I plug in my numbers to the equation:
time_effect_will_last =
(N2/N1) * lookup_table(N1, F1, N2, F2)
+ (N3/N1) * lookup_table(N2, F2, N3, F3)
=
(9/12) * (+8 min)
+ (6/12) * (-5 min)
(0.75*8 + 0.5*-5)min = 3.5min
210 seconds
Enjoy your food for the projected amount of time.
I then eat my food, and observe that (according to my timing, with lag, wallclock problems, etc), I get 213 seconds! An error of only 3 seconds!
HOW TO READ THE TABLE (important, please read)
note - the table is alphabetically sorted to save space and reduce confusion/errors (if abdju/chromis and chromis/abdju existed, with mirrored results, people might update one and not the other, which is a serious problem in data consistency)
1. Go to the row which has your two foods as the first two columns (sort them alphabetically)
2. If you put more of the first food (alphabetically) in, you will get the A>B as a result.
3. If you put more of the second food (alphabetically) in, you will get the A<B as a result.
4. If you put an equal amount of each food in, you will get to the result pointed at by the = column.
5. You may or may not get results noted in the "observed effects" list.
please keep in mind that some of the data to fill in this table was taken from the wiki, and has been observed as wrong. when noted, it is fixed, but until everything is verified, we can not be certain.
HOW TO VERIFY (important, please read)
Check the 3/4, 4/4, and 4/3 ratios for the food, and make sure that the equation above works out (that is, 0.75*lookup_table(food1, food2) = your result for 3/4, 0.75*lookup_table(food2, food1) = your result for 4/3, and that your result for 4/4 agrees with the indicated direction. (That is, you get the result you should get assuming the indicated value was returned)
Example: verifying carrots/perch.If you find something wrong, please see "how to update" below. note, being off by less than 15 seconds is NOT WRONG (due to inaccuracies in timing in so many different places/people, we must expect this -- WRONG means 15+ seconds, and if you're 15 seconds off on everything, it's probably just you :))
test: 4 carrots, 3 perch.
observed result: has no effect
verify: 0.75*(lookup_table(carrots, perch)) = 0.75*(-8:06) = -6m, which means has no effect. check!
test: 3 carrots, 4 perch.
observed result: lasts 5 minutes, almost exactly.
verify: 0.75*(lookup_table(perch, carrots)) = 0.75*(6:40) = 5m. check!
test: 4 carrots, 4 perch.
observed result: lasts 8 minutes, almost exactly.
verify: 1.00*(lookup_table(4, carrots, 4, perch)) = 1.00*(8:00) = 8m. check! (it returns 8m because that's where the "=" column points)
HOW TO UPDATE (important, please read)
If a spot is BLANK that means nobody has ever tested that before. If you have the resources and a kitchen (and the attention span to actually time things well:)), please test it and fill in the missing holes.
If you update, please do NOT verify it yourself. We want independant verifications, to make sure it wasn't a kitchen mistake or a misunderstanding about how the table is laid out.
If the spot says "~ - ~" that means the value is tested, and is KNOWN to be non-positive. Determining these values requires using 3-food bases with one known relationship:
EXAMPLE of how to find a "~ - ~" negative value --
finding lookup_table(carrots, perch):
Take 7 perch, 6 cabbage, 5 carrots. (Picking these values can be confusing - generally, pick a high-time combo + the unknown time combo).
Cook, Eat, Time. Observed Results: 14 seconds.
Do math:
(6/7)*(+8:15) + (5/7)*(x) = 14sec
==solve_for_x==>
x = (14s - (6/7)*(8:15))*(7/5) = -486sec = -8:06.
note -- I arrived at 8:06 by using 5 timings with different ratios, to attempt to hone in on the most accurate value. (esp. since 8:15 is estimated) this is not neccesary, as an estimate is good enough.
Thank you for reading and helping Egypt with cooking. Enjoy.
I'm keeping the actual table on a seperate page (so people can go directly do it to edit/update/view it, instead of having to scroll through these instructions/descriptions every time :)) -- enjoy!