fuzzer vs lava, take III

Change dying in lava to attempt life-saving at most twice.  The first
time might be via amulet or via declining to die.  The second time
can only be via declining to die after failing to teleport to safety
the first time, but could happen in explore mode as well as in wizard
mode, either interactive or fuzzer.

If the hero dies twice without ending the game, confer temporary fire
resistance and water walking so that other actions can be attempted.
After 5 turns without getting away from the lava or doing something
to acquire those capabilities, the hero will be subject to falling in
again.

Then the whole cycle might repeat, even many times, but the fuzzer
will eventually choose ^V or #wizmakemap and escape.  Players in
explore mode will either figure out a way to get out of it or
eventually have to give up but can try as many times as they like,
not that much different than being cornered by a deadly monster.
This commit is contained in:
PatR
2023-05-08 15:21:03 -07:00
parent 3f4634211f
commit dd7d7f2eae
3 changed files with 64 additions and 24 deletions

View File

@@ -249,8 +249,9 @@
&& !BFlying)
/* May touch surface; does not override any others */
#define HWwalking u.uprops[WWALKING].intrinsic /* see lava_effects() */
#define EWwalking u.uprops[WWALKING].extrinsic
#define Wwalking (EWwalking && !Is_waterlevel(&u.uz))
#define Wwalking ((HWwalking || EWwalking) && !Is_waterlevel(&u.uz))
/* Don't get wet, can't go under water; overrides others except levitation */
/* Wwalking is meaningless on water level */