From 10a5e6747846ff4f855de381a5f7572524937e68 Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Tue, 25 Nov 2025 21:05:22 +0000 Subject: [PATCH] Some types of shopkeeper start with a scroll of charging This is partially for the pun, and partially because the "wish for scrolls of charging to identify them" strategy has been nerfed in previous commits and this offers an opportunity to discover what scrolls of charging are without randomly encountering one. --- doc/fixes3-7-0.txt | 3 ++- src/shknam.c | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index d0a068fce..76b5eac0d 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -1,4 +1,4 @@ -NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1578 $ $NHDT-Date: 1764044196 2025/11/24 20:16:36 $ +NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1580 $ $NHDT-Date: 1764109066 2025/11/25 22:17:46 $ General Fixes and Modified Features ----------------------------------- @@ -1541,6 +1541,7 @@ on arboreal levels (Ranger quest) where STONE terrain is treated as TREE, an object at a tree location would be described as "embedded in stone" an item at an ordinary tree location, whether the level is arboreal or not, would be described as itself with no mention of the tree +some types of shopkeeper now start with a scroll of charging Fixes to 3.7.0-x General Problems Exposed Via git Repository diff --git a/src/shknam.c b/src/shknam.c index ecf12f938..657487ed8 100644 --- a/src/shknam.c +++ b/src/shknam.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 shknam.c $NHDT-Date: 1736530208 2025/01/10 09:30:08 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.82 $ */ +/* NetHack 3.7 shknam.c $NHDT-Date: 1764109114 2025/11/25 22:18:34 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.86 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2011. */ /* NetHack may be freely redistributed. See license for details. */ @@ -682,6 +682,10 @@ shkinit(const struct shclass *shp, struct mkroom *sroom) mkmonmoney(shk, 1000L + 30L * (long) rnd(100)); /* initial capital */ if (shp->shknms == shkrings) (void) mongets(shk, TOUCHSTONE); + if (shp->shknms == shktools || shp->shknms == shkwands || + (shp->shknms == shkrings && rn2(2)) || + (shp->shknms == shkgeneral && rn2(5))) + (void) mongets(shk, SCR_CHARGING); nameshk(shk, shp->shknms); return sh;