decaying globs of {ooze,pudding,slime}

Globs never rotted away but did become tainted after a relatively
short while, which seemed like a contradiction.  Change them to never
be tainted but shrink by 1 unit of weight approximately every 25
turns.  An ordinary glob (one that hasn't combined with any others)
starts out weighing 20 units, so it takes about 500 turns to vanish.
That's roughly twice as long as a corpse takes to rot away.

Shrinking globs give feedback when in hero's invent or in a container
in hero's inventory, but rarely (when going from an exact multiple
of 20 weight units; that is, from integral number of N globs to
N-1 + 19/20, or if weight reduction triggers an encumbrance change).
When a glob goes away completely, there is feedback for those two
circumstances and also for seeing the glob vanish from the floor.

I haven't touched how much nutrition eating a glob confers.  I have
changed formatting of glob names to use "small", "medium", "large",
"very large" instead of "small", [no adjective], "large", &c.  You
still need to have at least five globs coalesced together for the
adjective to become "medium", same amount as before.

I don't think EDITLEVEL needs to be modified but have incremented it
anyway to play things safe.
This commit is contained in:
PatR
2021-11-06 18:24:36 -07:00
parent aa8fd3ab3c
commit e2ca016484
11 changed files with 293 additions and 59 deletions

View File

@@ -167,18 +167,21 @@ struct debug_flags {
#endif
};
/*
* Stuff that really isn't option or platform related and does not
* get saved and restored. They are set and cleared during the game
* to control the internal behaviour of various NetHack functions
* and probably warrant a structure of their own elsewhere some day.
*/
struct instance_flags {
/* stuff that really isn't option or platform related. They are
* set and cleared during the game to control the internal
* behaviour of various NetHack functions and probably warrant
* a structure of their own elsewhere some day.
*/
boolean lua_testing; /* doing lua tests */
boolean debug_fuzzer; /* fuzz testing */
boolean in_lua; /* executing a lua script */
boolean defer_plname; /* X11 hack: askname() might not set g.plname */
boolean herecmd_menu; /* use menu when mouseclick on yourself */
boolean invis_goldsym; /* gold symbol is ' '? */
boolean in_lua; /* executing a lua script */
boolean lua_testing; /* doing lua tests */
boolean partly_eaten_hack; /* extra flag for xname() used when it's called
* indirectly so we can't use xname_flags() */
boolean sad_feeling; /* unseen pet is dying */
int at_midnight; /* only valid during end of game disclosure */
int at_night; /* also only valid during end of game disclosure */