"fix" github issue #475 - Trollsbane

Player's pet killed a troll with Trollsbane and the corpse later
revived.  He assumed that killing a troll with Trollsbane is what
prevents troll corpse revival but that is inhibited by the hero
be wielding Trollsbane at the time revival is attempted.

Having killed-by-Trollsbane be the reason for blocking revival
would be much better but looks like a lot of work for something
which was supposed to be a one-line enhancement to an under-used
artifact.  This extends revival inhibition to having anyone on
the level be wielding Trollsbane rather than just the hero.
Not a proper fix but I think it's better than nothing.

Closes #475
This commit is contained in:
PatR
2021-03-29 11:48:24 -07:00
parent d007decbe8
commit 3cd45b7c44
4 changed files with 25 additions and 2 deletions

View File

@@ -2176,4 +2176,25 @@ has_magic_key(struct monst *mon) /* if null, hero assumed */
return (struct obj *) 0;
}
/* True if anyone on the level is wielding Trollsbane, False otherwise;
used to prevent troll resurrection (FIXME: really ought to be inhibited
when killed by Trollsbane rather than whether anyone wields that) */
boolean
Trollsbane_wielded(void)
{
struct monst *mtmp;
struct obj *mw_tmp;
if (uwep && uwep->oartifact == ART_TROLLSBANE)
return TRUE;
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
if (DEADMONSTER(mtmp))
continue;
if ((mw_tmp = MON_WEP(mtmp)) != 0
&& mw_tmp->oartifact == ART_TROLLSBANE)
return TRUE;
}
return FALSE;
}
/*artifact.c*/