back_on_ground()

Replace a couple of hardcoded "back on solid ground" messages with
something more versatile.

Also, make life-saving handling for failed rescue from drowning
similar to that of failed rescue immolation by lava.  If there are
any cases where more than two tries is needed, they elude me.  The
new code doesn't confer temporary water walking if emergency teleport
fails; perhaps it should.
This commit is contained in:
PatR
2023-05-15 01:08:04 -07:00
parent b4f3a0fac2
commit 2646688e2d
3 changed files with 63 additions and 33 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.7 pray.c $NHDT-Date: 1683832328 2023/05/11 19:12:08 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.193 $ */
/* NetHack 3.7 pray.c $NHDT-Date: 1684138081 2023/05/15 08:08:01 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.194 $ */
/* Copyright (c) Benson I. Margulies, Mike Stephenson, Steve Linhart, 1989. */
/* NetHack may be freely redistributed. See license for details. */
@@ -383,10 +383,11 @@ fix_worst_trouble(int trouble)
gc.context.botl = 1;
break;
case TROUBLE_LAVA:
You("are back on solid ground.");
/* teleport should always succeed, but if not, just untrap them */
if (!safe_teleds(TELEDS_NO_FLAGS))
reset_utrap(TRUE);
back_on_ground(DISSOLVED); /* DISSOLVED: pending cause of death
* if trouble didn't get cured */
break;
case TROUBLE_STARVING:
/* temporarily lost strength recovery now handled by init_uhunger() */