Food Reform

Vintermann's Food Reform proposal

Cross-posted from forum thread: https://crawl.develz.org/tavern/viewtopic.php?f=8&t=237&p=8105#p8105

Rationale: I don't like chunk hunting minigame. For strategical reasons that may or may not become important way later in the game (saving permafood), you eat lots of brown chunks. Usually it's a no-brainer decision, because sickness isn't serious, but it is a small and frequent annoyance. Making sickness serious isn't a fix, because in something that's nominally a heroic fantasy game, the most common decision shouldn't be “should I eat this or not?”

My overall vision: Reduce player hassle, without breaking food clock. Remove most food sickness except from acts of desperation (which are still meaningful tactically, unlike most of today's food choices). Tweak herbivore/carnivore/saprovore to make differences more meaningful and interesting - herbivores should have to dip into permafood more often (instead of just grabbing all 5 yak chunks as today), and carnivore should not be instant gourmand.

Carnivore mutation should be changed to a real gradient: just because you can eat meat doesn't have to mean you can totally stuff yourself with raw meat. One level of carnivore could let you eat until full, two levels until very full, three levels until satiated (as a single level allows today). Herbivorous mutation could work the other way; one level eat only at very hungry or less, two levels at near starving and should always give sickness (act of desperation!), three levels no meat at all. To compensate, herbivores should get more nutrition from non-meat food (I know they get a little more currently, but they'd need a good deal more), and slower digestion - the current benefit from slow digestion mutation should be split between itself and herbivore. Otherwise they'll be practically as dependent on permafood as spriggans, and that's going too far.

Brown chunks should not cause sickness, but count as one worse on this scale (with no mutations, you could eat them at “very hungry” or worse). They should also give less nutrition.

Saprovore could work slightly differently: with no levels, can eat rotted chunks at -1 quality level, but rotted food always gives sickness and 1/3 regular nutrition. With one level, can eat rotted as brown meat, brown as regular.. With two levels, eat rotted and brown chunks like regular. With three levels, brown or rotted count as one better on the quality scale (but still only one better if it's both).

Corpses should produce fewer chunks on max. That will make no difference to most, but will make it slightly harder for carnivore casters to be perpetually stuffed to their limit.

This is how I envision the races under the new system:

  • Orcs should have one saprovore like today (basically same digestive system as humans, but less picky!)
  • Kobolds should have two carnivore and two saprovore (they'll eat anything a dog will eat, but they don't have all that big stomaches)
  • Centaurs should get one level of herbivore instead of fast digestion. They have a horse's stomach, slow and efficient, but only their athrophied human stomach can handle meat at all (their spellcasting aptitude might be slightly increased for balance, as this change hurts food-hungering casters).
  • Ogres should get back one level of carnivore (that they lost when they merged with Ogre Mages) but lose saprovore - like old Ogre Mages, Ogres are a little picky. They can keep their slightly fast digestion.
  • Trolls and Spriggans should be as today: they're already at the far ends of the spectrum, we want to mess with their gameplay as little as possible. Maybe reduce troll hunger one point if corpses produce less chunks.
  • Ghouls are still a special case: they have 3 saprovore, and technically 3 carnivore but since they never reach full, it makes little difference from one or two.

Further comments by vintermann

Uh, that proposal isn't quite complete or consistent. I intend to work out the kinks in this system to make it consistent. Food suitability should be reduced to a simple function of four variables somehow:

  • basic quality (from worst to best: brown chunk, white chunk, permafood)
  • rotted status (yes or no)
  • meat/plant content (from most meaty to most planty: chunks, bacon, meat ration, pizza, honey, bread ration, fruit)
  • player mutations (carnivore-herbivore, saprovore)

this should return an integer. Depending on which range it falls in, result should be either:

  • Can't eat it.
  • Can eat as act of desperation at near starving or worse (guaranteed sickness, 1/3 nutrition).
  • Can eat at very hungry or worse for 2/3 nutrition.
  • Can eat at hungry or worse (default nutrition)
  • Can eat until full (default nutrition)
  • Can eat until very full (default nutrition)
  • Can eat until engorged(default nutrition)

… then increasing into

  • Can eat until engorged (some extra nutrition)
  • Can eat until engorged (extra nutrition)
  • Can eat until engorged (much extra nutrition)

The idea is that only permafood should push you into the extra nutrition range - carnivores have enough advantages in a replenishable food source.

Poisonous, mutagenic and rot-causing chunks should be handled as today, independently from all of this. Might let them give nutrition when giving their status effects, though - that makes them another act of desperation candidate, and such genuine decisions are fun!

Hear, hear. Passing up Kobold corpses when I am starving and holding a potion of healing makes little sense. This is more interesting.— jejorda2 2011-02-25 16:07

I also want to start working on a patch for this to try it out, unless someone tells me it has no chance of being accepted :) — vintermann 2011-02-25 09:33

Great idea. A patch implementing this proposal definitely has a chance of being accepted, give it a try :) — galehar 2011-04-18 23:39
I think in most of the places where you use “satiated” you actually mean “engorged” (satiated is in between hungry and full, engorged is when you can't eat any more at all). But I like the general idea of the proposal, too, especially in terms of tweaking the carnivore/herbivore/saprovore mutations. I should point out that although sickness is mostly just a minor annoyance, it's somewhat relevant for Deep Dwarves at the very least - although it doesn't stop them regenerating health, they can't recover the stats they lose from it. — marvinpa 2011-02-25 16:53
Fixed, thanks! — vintermann 2011-03-08 12:01
I support this! Thanks for moving it over here. The idea to use mutations levels to indicate how far beyond not-hungry you can go is ingenious.
Some comments: the Sick status is interesting, but only tactically, of course. You sometimes see this in a game when you (probably foolishly) try to avoid digging into permafood in hostile territory and run around sickness, hunting for another chunk that might you get off (very) hungry. I like it that the above proposal keeps Sick as a potential food effect because players can get to know it that way. The obvious solution is that certain monster attacks should convey that status (more than now, that is). This will also keep Sick being relevant for Deep Dwarves, by the way. — dpeg 2011-02-27 00:25
Offtopic: sickness is already relevant to Deep Dwarves because they do not heal stat loss due to sickness. — jeffqyzt 2011-02-27 17:48
Just re-read it and I still like this a lot. vintermann, are you around?
The one thing I might disagree with is the Saprovore 1 → Carnivore 1 change for Ogres. The reason is that currently, Ogres fare better in a unique way, by being able to hold on longer with chunks from a single corpse. But that's a minor point. — dpeg 2011-04-18 23:36
There's a little problem with the new system and the berserk restriction. Previously, you couldn't berserk when hungry. When a Be was low on the satiated scale and found a chunk, it was better to rest until hungry to be able to eat the chunk rather than exploring and risking being ambushed when hungry. The problem was resolved by reducing the Berserk restriction to Very Hungry. In the new system, the problem will come back for Herbi 1, and normal diet in places where good chunks are rare (orc/elf). I don't think it's a huge problem, as it is quite restricted, but it would be better if we can address it. One possible fix would be to make the amount of nutrition provided by a chunk decay with time. That way, you gain nothing by waiting unless you also have slow digestion, but the gain is small and the case rare enough. It would also smoothen the rotting effect. Decaying is gradual instead of losing 2/3 nutrition value in a single turn. Would make sense if it also depends on the saprovore mutation. Like nutrition = 1000 - (3 - sapro_level) * k * age, for some value of k. — galehar 2011-07-20 17:04

The proposal

Chunks and permafood are treated differently. The bonuses for preferred permafood are much higher than currently; this is intentional. It is also intentional that the herbivore mutation is more effective.

The type of a given food item depends on the following parameters:

  • Mutations (racial and acquired): herbivore, carnivore, saprovore
  • Amulet of gourmand (affects only chunks!)
  • Base food type: brown chunk, white chunk, permafood (green/magenta give nutrition in addition to poison/mutagenic effects!)
  • rotted status — effect determined by saprovore mutation
  • meat/plant content:
    • [-2] chunks
    • [-1] meat ration, bacon, sausage
    • [0] pizza, honey
    • [1] bread ration
    • [2] fruit, porridge

Chunks

Level defaults taste can eat from/until nutrition sickness example
-4 inedible
-3 barely edible from Near Starving or worse 1/3 100%
-2 brown chunk strong dislike from Very Hungry or worse 2/3 20%
-1 white chunk mild dislike from Hungry or worse 1
0 no bias until Full 1
1 mild prefence until Very Full 1
2 strong preference until Engorged 1
Effect modifier to level condition
herbivore -1 for each level
carnivore +1 for each level
gourmand +1 if adapted to amulet
rotted chunk -1, sick, 1/3 nutrition if no saprovore mutation
green chunk poison, 1/2 nutrition unless rPois
magenta chunk mutation, 1/3 nutrition

Permafood types

Level taste can eat from/until nutrition example
-3 inedible
-2 strong dislike from Very Hungry or worse 2/3
-1 mild dislike from Hungry or worse 3/4
0 no bias (default) until Engorged 1
1 mild preference until Engorged 4/3
2 strong preference until Engorged 5/3
3 craves until Engorged 2
Effect modifier to level
herbivore -1 for each level
carnivore +1 for each level

Herbivore mutation

  • chunks: -1 to chunk level
  • plant permafood (bread rations, fruits, porridge, honey): +1 to permafood level
  • meat permafood (meat rations, bacon, sausages): -1 to permafood level
  • digestion speed multiplied by 4/5
  • nutrition is multiplied by [content]/4+1 (so halved for chunks and 150% for fruits)

Carnivore mutation

  • chunks: +1 to chunk level
  • meat permafood: +1 to permafood level
  • plant permafood: -1 to permafood level
  • nutrition is multiplied by 1-[content]/6

Saprovore mutation

Governs effect of rotted chunks.

  • No levels: -1 to chunk type; always gives Sick and only 1/3 nutrition
  • One level: can eat rotted as brown meat, brown as regular
  • Two levels: eat rotted and brown chunks like regular
  • Three levels: brown or rotted count as one better on the quality scale (but still only one better if it's both).

Innate racial mutations

  • Orc: Saprovore 1
  • Kobold: Carnivore 2, Saprovore 2
  • Centaur: Herbivore 1 (no more Hunger 1)
  • Ogre: Carnivore 1 (keep Hunger 1)
  • Troll: Carnivore 3, Saprovore 3, Hunger 3 (as now)
  • Spriggan: Herbivore 3, Slow Digestion 3 (as now)
  • Ghoul: Saprovore 3, Carnivore 3 (as now) but since they never reach full, Carnivore 1, 2, 3 is the same. They keep healing from rotting chunks.

Chunk generation

For a start: corpses which currently generate one chunk should keep doing so; corpses which generate (up to) eight chunks should give (up to) four — i.e. half chunk number, rounding up.

Interface

  • inedible: darkgrey in inventory, floor, shop (annotate with {inedible})
  • barely edible: darkgrey (annotate with {barely edible}; item description says that it is edible at (Near) Starving with low nutrition and guaranteed sickness)
  • strong dislike (can be eaten at Very Hungry or worse): brown (note that ordinarily brown chunks need not be brown, depending on mutations)
  • mild dislike: grey (as now)
  • can be eaten to engorged: yellow (unless the chunk is mutagenic or poisonous: green/magenta override)
  • everything else: white (distinguish between going to Full and Very Full by annotation)

Examples

The ' indicates powers (I couldn't use ^ for wiki table syntax reasons). Note that sausage = meat ration for all purposes.

mutation food type result formula comment
herbivore 3 apple 6.75 2*(6/4)'3 craves
bread 3.91 2*(5/4)'3 craves
honey 2.00 2*(4/4)'3 craves
sausage 0 inedible
any chunk 0 inedible
herbivore 2 apple 3.75 5/3*(6/4)'2 craves
bread 2.60 5/3*(5/4)'2 craves
honey 1.67 5/3*(4/4)'2 craves
sausage 0.38 2/3*(3/4)'2 strong dislike
white chunk 0.08 1/3*(2/4)'2 barely edible
brown chunk 0 inedible
herbivore 1 apple 2.00 4/3*(6/4)'1 craves
bread 1.67 4/3*(5/4)'1 craves
honey 1.33 4/3*(4/4)'1 craves
sausage 0.56 3/4*(3/4)'1 mild dislike
white chunk 0.38 3/4*(2/4)'1 strong dislike
brown chunk 0.17 1/3*(2/4)'1 barely edible
carnivore 1 apple 0.50 3/4*(4/6)'1 mild dislike
bread 0.63 3/4*(5/6)'1 mild dislike
honey 0.75 3/4*(6/6)'1 mild dislike
sausage 1.56 4/3*(7/6)'1 mild preference
white chunk 1.33 1*(8/6)'1 no bias
brown chunk 1.33 1*(8/6)'1 mild dislike
carnivore 2 apple 0.30 2/3*(4/6)'2 strong dislike
bread 0.46 2/3*(5/6)'2 strong dislike
honey 0.67 2/3*(6/6)'2 strong dislike
sausage 2.27 5/3*(7/6)'2 strong preference
white chunk 1.78 1*(8/6)'2 mild preference
brown chunk 1.78 1*(8/6)'2 no bias
carnivore 3 apple 0 inedible
bread 0 inedible
honey 0 inedible
sausage 3.17 2*(7/6)'3 craves
white chunk 2.37 1*(8/6)'3 mild preference
brown chunk 2.37 1*(8/6)'3 strong preference

First analysis: Herbivore 2 is much worse than Herbivore 1 (can eat chunks reasonably) or 3 (gets a lot of nutrition out of vegetarion food). Proposal by galehar (and supported by me): make the effect of Herbivore/Carnivore mutations constant (instead of exponential), i.e. apply the given factor if the mutation is present (no matter the level). Note that high levels of the mutations will allow to eat all day (i.e. until Engorged) with Carnivore 3 and have much slower digestion with Herbivore 3.
Another observation: Slow/Fast Digestion are less interesting than Herbivore/Carnivore. They might be removed. — dpeg 2011-09-29 00:01

I've made a spreadsheet to compare the current nutrition values with Vintermann's design and Ryak's implementation. I think the original proposal works pretty well. Herbi 2 is still harsh, but that's the point of a level 2 mutation. I think it meets the goal. — galehar 2011-09-30 15:36

Ryak's implementation

Patch at 4226.

There is only a single scale for food quality

Base values:

  • 2 for permafood
  • 3 for royal jellies
  • 0 for chunks

Modifiers:

  • +1 on chunks for amulet of gourmand
  • +1 on meat for each level of the carnivore mutation
  • -1 on meat for each level of the herbivore mutation
  • +1 on plants for each level of the herbivore mutation
  • -1 on plants for each level of the carnivore mutation

Special rules:

  • no eating of meat food at Herbivore 3
  • no eating of plant food at Carnivore 3

Effects of food quality:

Level can eat from/until nutrition example
-3 cannot eat at all herbivore 2 and dirty chunk
-2 from (Near) Starving 1/3 herbivore 1 and dirty chunk
-1 from Very Hungry or worse 2/3 dirty chunk
0 from Hungry or worse 1 clean chunk
1 until satiated 1 herbivore 1 and meat ration
2 until Full 6/5 permafood
3 until Engorged 7/5 carnivore 3 and clean chunk
4 until Engorged 8/5 carnivore 2 and meat ration
5 until Engorged 9/5 carnivore 3 and meat ration
Logged in as: Anonymous (VIEWER)
dcss/brainstorm/mutation/eating.txt · Last modified: 2011-12-22 00:19 by XuaXua
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki