new character with OPTIONS=role:Valk,race:random yielded
"Shall I pick your Valkyrie's race and alignment for you?" instead
of honoring race:random without asking
+while in shop, undead turning at self causing carried, hero owned corpse to
+ resurrect claimed it belonged to shopkeeper
+while in shop, stone-to-flesh at self causing carried, hero owned figurine
+ or statue to animate claimed it belonged to shopkeeper
Fixes to Post-3.6.0 Problems that Were Exposed Via git Respository
-/* NetHack 3.6 shk.c $NHDT-Date: 1463620377 2016/05/19 01:12:57 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.131 $ */
+/* NetHack 3.6 shk.c $NHDT-Date: 1464138042 2016/05/25 01:00:42 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.132 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
}
obj->quan = 1L; /* fool xname() into giving singular */
pline("%s %ld %s %s %s%s.\"", buf, ltmp, currency(ltmp),
- (save_quan > 1L) ? "per" : (contentscount && !obj->unpaid)
- ? "for the contents of this"
- : "for this",
+ (save_quan > 1L) ? "per"
+ : (contentscount && !obj->unpaid)
+ ? "for the contents of this"
+ : "for this",
xname(obj),
(contentscount && obj->unpaid) ? and_its_contents : "");
obj->quan = save_quan;
-/* NetHack 3.6 trap.c $NHDT-Date: 1461568321 2016/04/25 07:12:01 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.268 $ */
+/* NetHack 3.6 trap.c $NHDT-Date: 1464138044 2016/05/25 01:00:44 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.272 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
which refers to "it" so needs to follow a message describing
the object ("the statue comes to life" one above) */
if (cause != ANIMATE_NORMAL && costly_spot(x, y)
+ && (carried(statue) ? statue->unpaid : !statue->no_charge)
&& (shkp = shop_keeper(*in_rooms(x, y, SHOPBASE))) != 0
/* avoid charging for Manlobbi's statue of Manlobbi
if stone-to-flesh is used on petrified shopkeep */
-/* NetHack 3.6 zap.c $NHDT-Date: 1463533826 2016/05/18 01:10:26 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.255 $ */
+/* NetHack 3.6 zap.c $NHDT-Date: 1464138044 2016/05/25 01:00:44 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.257 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
struct monst *shkp = 0;
x = corpse->ox, y = corpse->oy;
- if (costly_spot(x, y))
+ if (costly_spot(x, y)
+ && (carried(corpse) ? corpse->unpaid : !corpse->no_charge))
shkp = shop_keeper(*in_rooms(x, y, SHOPBASE));
if (cansee(x, y)) {
if (*u.ushops
&& *in_rooms(u.ux, u.uy, 0)
== *in_rooms(shkp->mx, shkp->my, 0)
- && !costly_spot(u.ux, u.uy))
+ && !costly_spot(u.ux, u.uy)) {
make_angry_shk(shkp, ox, oy);
- else {
+ } else {
pline("%s gets angry!", Monnam(shkp));
hot_pursuit(shkp);
}
{
int res = 1; /* affected object by default */
struct permonst *ptr;
- struct monst *mon;
+ struct monst *mon, *shkp;
struct obj *item;
xchar oox, ooy;
boolean smell = FALSE, golem_xform = FALSE;
break;
}
if (obj->otyp == STATUE) {
- /* animate_statue() forces all golems to become flesh golems
- */
+ /* animate_statue() forces all golems to become flesh golems */
mon = animate_statue(obj, oox, ooy, ANIMATE_SPELL, (int *) 0);
} else { /* (obj->otyp == FIGURINE) */
if (golem_xform)
ptr = &mons[PM_FLESH_GOLEM];
mon = makemon(ptr, oox, ooy, NO_MINVENT);
if (mon) {
- if (costly_spot(oox, ooy) && !obj->no_charge) {
- if (costly_spot(u.ux, u.uy))
- addtobill(obj, carried(obj), FALSE, FALSE);
- else
- stolen_value(obj, oox, ooy, TRUE, FALSE);
+ if (costly_spot(oox, ooy)
+ && (carried(obj) ? obj->unpaid : !obj->no_charge)) {
+ shkp = shop_keeper(*in_rooms(oox, ooy, SHOPBASE));
+ stolen_value(obj, oox, ooy,
+ (shkp && shkp->mpeaceful), FALSE);
}
if (obj->timed)
obj_stop_timers(obj);