vampshifting via polymorph
When a vampire that's already in bat or fog form gets polymorphed, sometimes take on base vampire form instead of always toggling to fog or bat.
This commit is contained in:
@@ -4325,7 +4325,7 @@ decide_to_shapeshift(struct monst *mon, int shiftflags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
pickvampshape(struct monst* mon)
|
pickvampshape(struct monst *mon)
|
||||||
{
|
{
|
||||||
int mndx = mon->cham, wolfchance = 10;
|
int mndx = mon->cham, wolfchance = 10;
|
||||||
/* avoid picking monsters with lowercase display symbols ('d' for wolf
|
/* avoid picking monsters with lowercase display symbols ('d' for wolf
|
||||||
@@ -4350,7 +4350,11 @@ pickvampshape(struct monst* mon)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gm.mvitals[mndx].mvflags & G_GENOD)
|
/* return to base form if chosen poly target has been genocided
|
||||||
|
or randomly if already in an alternate form (to prevent always
|
||||||
|
switching back and forth between bat and fog) */
|
||||||
|
if ((gm.mvitals[mndx].mvflags & G_GENOD) != 0
|
||||||
|
|| (mon->data != &mons[mon->cham] && !rn2(4)))
|
||||||
return mon->cham;
|
return mon->cham;
|
||||||
|
|
||||||
return mndx;
|
return mndx;
|
||||||
|
|||||||
Reference in New Issue
Block a user