From c8b15fe8544760b143541f9cfe378667971c7747 Mon Sep 17 00:00:00 2001 From: PatR Date: Tue, 9 Jun 2026 13:00:22 -0700 Subject: [PATCH] pull request #1557 - erinyes level adjustments Pull request from youbo0: when hero's alignment gets low enough, the adjusted experience level for erinyes effetively dropped instead of increased. It was being capped at 50 which has a special meaning for monsters. Change the level limit to 49 which is as high as ordinary monsters go. Does not affect saved data. Fixes #1557 --- doc/fixes5-0-1.txt | 3 ++- src/mon.c | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/fixes5-0-1.txt b/doc/fixes5-0-1.txt index df0990233..9c3acac1f 100644 --- a/doc/fixes5-0-1.txt +++ b/doc/fixes5-0-1.txt @@ -1,4 +1,4 @@ -NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.20 $ $NHDT-Date: 1779581008 2026/05/24 00:03:28 $ +NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.36 $ $NHDT-Date: 1781062909 2026/06/09 19:41:49 $ General Fixes and Modified Features ----------------------------------- @@ -59,6 +59,7 @@ don't overflow svp.plname on restore (pr #1570 by chasonr) monsters (including pets) aren't scared of the Sokoban rolling boulder traps fix a bug in which steeds would continuously gain movement points while being ridden +when hero's behavior makes erinyes stronger, cap level at 49 rather than 50 Platform- and/or Interface-Specific Fixes diff --git a/src/mon.c b/src/mon.c index cc70c0453..a69a1aedf 100644 --- a/src/mon.c +++ b/src/mon.c @@ -1,4 +1,4 @@ -/* NetHack 5.0 mon.c $NHDT-Date: 1770949988 2026/02/12 18:33:08 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.621 $ */ +/* NetHack 5.0 mon.c $NHDT-Date: 1781062909 2026/06/09 19:41:49 $ $NHDT-Branch: NetHack-5.0 $:$NHDT-Revision: 1.634 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Derek S. Ray, 2015. */ /* NetHack may be freely redistributed. See license for details. */ @@ -5965,8 +5965,9 @@ adj_erinys(unsigned abuse) pm->mattk[2].damd = 4; } - /* also adjust level and difficulty */ - pm->mlevel = min(7 + u.ualign.abuse, 50); + /* also adjust level and difficulty; + mlevel >= 50 has a special meaning, so don't exceed 49 */ + pm->mlevel = min(7 + u.ualign.abuse, 49); pm->difficulty = min(10 + (u.ualign.abuse / 3), 25); }