From: Pasi Kallinen Date: Sun, 20 Feb 2022 10:23:00 +0000 (+0200) Subject: Thrown items can get stuck in webs X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a78419c52a96625228345f88091254906d49425c;p=nethack Thrown items can get stuck in webs --- diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index a83507506..7f22a6317 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -792,6 +792,7 @@ allow creating unhidden traps in special levels reading magic marker shows the specific red ink color imps and other creatures cussing hero wake up nearby monsters make ravens oviparous +thrown items can get stuck in webs Fixes to 3.7.0-x Problems that Were Exposed Via git Repository diff --git a/src/zap.c b/src/zap.c index efe8b0f43..9830c0b69 100644 --- a/src/zap.c +++ b/src/zap.c @@ -3405,6 +3405,7 @@ bhit(int ddx, int ddy, int range, /* direction and range */ { struct monst *mtmp, *result = (struct monst *) 0; struct obj *obj = *pobj; + struct trap *ttmp; uchar typ; boolean shopdoor = FALSE, point_blank = TRUE; boolean in_skip = FALSE, allow_skip = FALSE; @@ -3517,6 +3518,18 @@ bhit(int ddx, int ddy, int range, /* direction and range */ maybe_explode_trap(t_at(g.bhitpos.x, g.bhitpos.y), obj); mtmp = m_at(g.bhitpos.x, g.bhitpos.y); + ttmp = t_at(g.bhitpos.x, g.bhitpos.y); + + if (!mtmp && ttmp && (ttmp->ttyp == WEB) + && (weapon == THROWN_WEAPON || weapon == KICKED_WEAPON) + && !rn2(3)) { + if (cansee(g.bhitpos.x, g.bhitpos.y)) { + pline("%s gets stuck in a web!", Yname2(obj)); + ttmp->tseen = TRUE; + newsym(g.bhitpos.x, g.bhitpos.y); + } + break; + } /* * skipping rocks