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

@@ -148,6 +148,7 @@ stolen_value, used when breaking shop items from outside the shop among other
times, could describe the shopkeeper as "it" when not seen
when two or more shopkeepers were visible at once, 'p' command could be used
to probe map for locations of other shopkeepers and arbitrary monsters
vortexes and other unsolid monsters need not avoid webs
Platform- and/or Interface-Specific Fixes

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]);