fix github issue #511 - no death message when
level-drained below level 1. No "you die" or equivalent, just straight to being life-saved or to "do you want your possessions identifed?". Change it to issue "Goodbye level 1." The fact that it is has been fatal will become obvious. An issue comment on github pointed out where the fix was needed. Fixes #511
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 end.c $NHDT-Date: 1615304753 2021/03/09 15:45:53 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.222 $ */
|
||||
/* NetHack 3.7 end.c $NHDT-Date: 1621380392 2021/05/18 23:26:32 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.225 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -902,8 +902,13 @@ disclose(int how, boolean taken)
|
||||
static void
|
||||
savelife(int how)
|
||||
{
|
||||
int uhpmin = max(2 * u.ulevel, 10);
|
||||
int uhpmin;
|
||||
|
||||
/* life-drain/level-loss to experience level 0 kills without actually
|
||||
reducing ulevel below 1, but include this for bulletproofing */
|
||||
if (u.ulevel < 1)
|
||||
u.ulevel = 1;
|
||||
uhpmin = max(2 * u.ulevel, 10);
|
||||
if (u.uhpmax < uhpmin)
|
||||
u.uhpmax = uhpmin;
|
||||
u.uhp = u.uhpmax;
|
||||
|
||||
10
src/exper.c
10
src/exper.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 exper.c $NHDT-Date: 1596498167 2020/08/03 23:42:47 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.43 $ */
|
||||
/* NetHack 3.7 exper.c $NHDT-Date: 1621380393 2021/05/18 23:26:33 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.46 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2007. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -205,8 +205,14 @@ losexp(const char *drainer) /* cause of death, if drain should be fatal */
|
||||
else if (resists_drli(&g.youmonst))
|
||||
return;
|
||||
|
||||
/* level-loss message; "Goodbye level 1." is fatal; divine anger
|
||||
(drainer==NULL) resets a level 1 character to 0 experience points
|
||||
without reducing level and that isn't fatal so suppress the message
|
||||
in that situation */
|
||||
if (u.ulevel > 1 || drainer)
|
||||
pline("%s level %d.", Goodbye(), u.ulevel);
|
||||
if (u.ulevel > 1) {
|
||||
pline("%s level %d.", Goodbye(), u.ulevel--);
|
||||
u.ulevel -= 1;
|
||||
/* remove intrinsic abilities */
|
||||
adjabil(u.ulevel + 1, u.ulevel);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user