vortexes and unsolid monsters need not avoid webs

Based on a bug report from beta testers in 2010. mintrap()
already had partial checks for this (now fire vortex also burns
a web, as per suggestion in the bug report) but mfndpos()
lacked checks so mintrap() code was almost never exercised.
This commit is contained in:
David Cohrs
2016-02-03 11:50:03 -08:00
parent ff9682b549
commit d01e45a6cc
3 changed files with 9 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 mon.c $NHDT-Date: 1453371163 2016/01/21 10:12:43 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.208 $ */
/* NetHack 3.6 mon.c $NHDT-Date: 1454528962 2016/02/03 19:49:22 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.210 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1368,7 +1368,8 @@ nexttry: /* eels prefer the water, but if there is no water nearby,
&& (ttmp->ttyp != FIRE_TRAP || !resists_fire(mon))
&& (ttmp->ttyp != SQKY_BOARD || !is_flyer(mdat))
&& (ttmp->ttyp != WEB
|| (!amorphous(mdat) && !webmaker(mdat)))
|| (!amorphous(mdat) && !webmaker(mdat)
&& !is_whirly(mdat) && !unsolid(mdat)))
&& (ttmp->ttyp != ANTI_MAGIC || !resists_magm(mon))) {
if (!(flag & ALLOW_TRAPS)) {
if (mon->mtrapseen & (1L << (ttmp->ttyp - 1)))

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 trap.c $NHDT-Date: 1452919834 2016/01/16 04:50:34 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.259 $ */
/* NetHack 3.6 trap.c $NHDT-Date: 1454528963 2016/02/03 19:49:23 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.261 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -2412,10 +2412,12 @@ register struct monst *mtmp;
break;
if (amorphous(mptr) || is_whirly(mptr) || unsolid(mptr)) {
if (acidic(mptr) || mptr == &mons[PM_GELATINOUS_CUBE]
|| mptr == &mons[PM_FIRE_ELEMENTAL]) {
|| mptr == &mons[PM_FIRE_ELEMENTAL]
|| mptr == &mons[PM_FIRE_VORTEX]) {
if (in_sight)
pline("%s %s %s spider web!", Monnam(mtmp),
(mptr == &mons[PM_FIRE_ELEMENTAL])
(mptr == &mons[PM_FIRE_ELEMENTAL]
|| mptr == &mons[PM_FIRE_VORTEX])
? "burns"
: "dissolves",
a_your[trap->madeby_u]);