testing for Vlad
Redo the check for whether a monster is Vlad when deciding whether to keep it out of a bones file. Use the new check in find_defensive() where Vlad won't waste a turn attempting to use a wand of digging when in his undiggable own tower. (Failing to check for vampshifted Vlad in the latter case wasn't actually a bug because if/when shifted, he's unable to use items so couldn't attempt to use wand of digging. Switch to the new check anyway.)
This commit is contained in:
@@ -381,7 +381,7 @@ can_make_bones(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* monster removed before saving a bones file,
|
||||
/* monster might need to be removed before saving a bones file,
|
||||
in case these characters are not in their home bases */
|
||||
static void
|
||||
remove_mon_from_bones(struct monst *mtmp)
|
||||
@@ -390,8 +390,7 @@ remove_mon_from_bones(struct monst *mtmp)
|
||||
|
||||
if (mtmp->iswiz || mptr == &mons[PM_MEDUSA]
|
||||
|| mptr->msound == MS_NEMESIS || mptr->msound == MS_LEADER
|
||||
|| mptr == &mons[PM_VLAD_THE_IMPALER]
|
||||
|| mtmp->cham == PM_VLAD_THE_IMPALER /* in case he's vampshifted */
|
||||
|| is_Vlad(mtmp) /* mptr == &mons[VLAD_THE_IMPALER] || cham == VLAD */
|
||||
|| (mptr == &mons[PM_ORACLE] && !fixuporacle(mtmp)))
|
||||
mongone(mtmp);
|
||||
}
|
||||
|
||||
@@ -621,8 +621,7 @@ find_defensive(struct monst *mtmp, boolean tryescape)
|
||||
&& !(levl[x][y].wall_info & W_NONDIGGABLE)
|
||||
&& !(Is_botlevel(&u.uz) || In_endgame(&u.uz))
|
||||
&& !(is_ice(x, y) || is_pool(x, y) || is_lava(x, y))
|
||||
&& !(mtmp->data == &mons[PM_VLAD_THE_IMPALER]
|
||||
&& In_V_tower(&u.uz))) {
|
||||
&& !(is_Vlad(mtmp) && In_V_tower(&u.uz))) {
|
||||
gm.m.defensive = obj;
|
||||
gm.m.has_defense = MUSE_WAN_DIGGING;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user