wand of polymorph vs monster inventory
From the newsgroup: inventory dropped by a monster killed by system shock when zapped by a wand of polymorph is protected against being poly'd by that same zap, but worn/wielded equipment that's forced to be dropped due to being unusable in a transformed monster's new form was not. Not mentioned in the newsgroup, but also fixed: boulders dropped when a giant turns into a non-giant were also subject to the zap instead of protected.
This commit is contained in:
@@ -842,6 +842,8 @@ declining to attack a peaceful monster via kicking woke nearby monsters and
|
|||||||
make hero be immune from stinking cloud damage during successful prayer
|
make hero be immune from stinking cloud damage during successful prayer
|
||||||
very fast hero would sometimes take two consecutive moves with very fast
|
very fast hero would sometimes take two consecutive moves with very fast
|
||||||
monsters then getting two moves, instead of interleaving the activity
|
monsters then getting two moves, instead of interleaving the activity
|
||||||
|
when a monster zapped by polymorph drops inventory because of its new form,
|
||||||
|
don't let that same zap hit the dropped item(s)
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
@@ -227,6 +227,11 @@ struct obj *otmp;
|
|||||||
it guard against involuntary polymorph attacks too... */
|
it guard against involuntary polymorph attacks too... */
|
||||||
shieldeff(mtmp->mx, mtmp->my);
|
shieldeff(mtmp->mx, mtmp->my);
|
||||||
} else if (!resist(mtmp, otmp->oclass, 0, NOTELL)) {
|
} else if (!resist(mtmp, otmp->oclass, 0, NOTELL)) {
|
||||||
|
/* dropped inventory (due to death by system shock,
|
||||||
|
or loss of wielded weapon and/or worn armor due to
|
||||||
|
limitations of new shape) won't be hit by this zap */
|
||||||
|
for (obj = mtmp->minvent; obj; obj = obj->nobj)
|
||||||
|
bypass_obj(obj);
|
||||||
/* natural shapechangers aren't affected by system shock
|
/* natural shapechangers aren't affected by system shock
|
||||||
(unless protection from shapechangers is interfering
|
(unless protection from shapechangers is interfering
|
||||||
with their metabolism...) */
|
with their metabolism...) */
|
||||||
@@ -235,9 +240,6 @@ struct obj *otmp;
|
|||||||
pline("%s shudders!", Monnam(mtmp));
|
pline("%s shudders!", Monnam(mtmp));
|
||||||
learn_it = TRUE;
|
learn_it = TRUE;
|
||||||
}
|
}
|
||||||
/* dropped inventory shouldn't be hit by this zap */
|
|
||||||
for (obj = mtmp->minvent; obj; obj = obj->nobj)
|
|
||||||
bypass_obj(obj);
|
|
||||||
/* context.bypasses = TRUE; ## for make_corpse() */
|
/* context.bypasses = TRUE; ## for make_corpse() */
|
||||||
/* no corpse after system shock */
|
/* no corpse after system shock */
|
||||||
xkilled(mtmp, 3);
|
xkilled(mtmp, 3);
|
||||||
|
|||||||
Reference in New Issue
Block a user