Most monsters no longer deathdrop comestibles other than their corpse

Playtesting has shown that there is too much permafood in the game
at present: in the late-game the only food-related problem is how
much to carry in order to avoid burdening yourself. In the early
game, food could previously have been a problem prior to
Minetown/Sokoban (thus the recent commit to add a guaranteed ration
in the upper dungeons), but past that point, there is easily enough
food generated on the ground. Additionally, the recent commits to
make healing sources more available in the early game reduce the
amount of time that needs to be spent waiting to heal, thus
further reducing food requirements.

The main purposes of food as a mechanic are to given an incentive
to press onwards and to discourage grinding. However, if monsters
are deathdropping non-corpse permafood, then beyond the very
early game, grinding actually generates more food than it uses up,
so the nutrition mechanic doesn't do its job properly.

Playtesting (including a full ascension!) has shown that there is
still plenty of food available even without deathdrops available
(my test game had 8 spare non-deathdrop food rations upon reaching
the Castle, at which point nutrition is no longer an issue due to
the Castle food stores and the huge numbers of C- and K-rations
dropped by the soldiers). I will address the potential problems
this causes for vegetarian Monks in a future commit.
This commit is contained in:
Alex Smith
2023-12-02 07:13:41 +00:00
parent e8ca614e5c
commit 39a7dc1c52
2 changed files with 12 additions and 1 deletions

View File

@@ -1302,6 +1302,9 @@ early dungeon (pre-Sokoban) generates extra useful survivability items
potion of healing is much more common, and has a unique price
alchemy may affect only a portion of the dipped potions if a large
stack is dipped (especially if that stack is diluted)
monster kills can no longer deathdrop comestibles (other than the
monster's corpse) unless the monster collects food or
generates with food
Fixes to 3.7.0-x General Problems Exposed Via git Repository

View File

@@ -3285,7 +3285,15 @@ xkilled(
otmp = mkobj(RANDOM_CLASS, TRUE);
/* don't create large objects from small monsters */
otyp = otmp->otyp;
if (mdat->msize < MZ_HUMAN && otyp != FIGURINE
if (otmp->oclass == FOOD_CLASS && !(mdat->mflags2 & M2_COLLECT) &&
!otmp->oartifact) {
/* don't drop newly created permafood from kills, unless
the monster collects food; it creates too much nutrition
in the late game and encourages grinding in the early
game; oartifact check is paranoia and will be redundant
until an artifact comestible is added */
delobj(otmp);
} else if (mdat->msize < MZ_HUMAN && otyp != FIGURINE
/* oc_big is also oc_bimanual and oc_bulky */
&& (otmp->owt > 30 || objects[otyp].oc_big)) {
if (otmp->oartifact) /* un-create */