animating quest guardian statues
Also a related bug: the guard against animating a unique monster via tossing a statue onto a statue trap location, was causing stone to flesh to silently ignore any statue of a unique monster which seemed very uncharacteristic of the spell. After this patch, statues of quest guardians and statues of unique monsters will animate as shape-shifters posing as those monsters, not the monsters themselves.
This commit is contained in:
@@ -130,6 +130,8 @@ there was no check for iron bars in dokick() so it defaulted to "empty space"
|
|||||||
if you couldn't see the rat created in a sink for some reason other than
|
if you couldn't see the rat created in a sink for some reason other than
|
||||||
blindness, you would get "Eek there's it in the sink."
|
blindness, you would get "Eek there's it in the sink."
|
||||||
digging a pit while stuck in the floor should always free the player
|
digging a pit while stuck in the floor should always free the player
|
||||||
|
quest guardians can no longer be created via stone-to-flesh on their statue
|
||||||
|
stone-to-flesh no longer silently ignored by a statue of a unique monster
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
+11
-2
@@ -433,11 +433,20 @@ int *fail_reason;
|
|||||||
* [detected or guessed] location of a statue trap. Normally the
|
* [detected or guessed] location of a statue trap. Normally the
|
||||||
* uppermost statue is the one which would be activated.
|
* uppermost statue is the one which would be activated.
|
||||||
*/
|
*/
|
||||||
if (mptr->geno & G_UNIQ) {
|
if ((mptr->geno & G_UNIQ) && cause != ANIMATE_SPELL) {
|
||||||
if (fail_reason) *fail_reason = AS_MON_IS_UNIQUE;
|
if (fail_reason) *fail_reason = AS_MON_IS_UNIQUE;
|
||||||
return (struct monst *)0;
|
return (struct monst *)0;
|
||||||
}
|
}
|
||||||
mon = makemon(mptr, x, y, (cause == ANIMATE_SPELL) ?
|
if (cause == ANIMATE_SPELL &&
|
||||||
|
((mptr->geno & G_UNIQ) || mptr->msound == MS_GUARDIAN)) {
|
||||||
|
/* Statues of quest guardians or unique monsters
|
||||||
|
* will not stone-to-flesh as the real thing.
|
||||||
|
*/
|
||||||
|
mon = makemon(&mons[PM_DOPPELGANGER], x, y,
|
||||||
|
NO_MINVENT|MM_NOCOUNTBIRTH|MM_ADJACENTOK);
|
||||||
|
if (mon) (void) newcham(mon, mptr, FALSE, FALSE);
|
||||||
|
} else
|
||||||
|
mon = makemon(mptr, x, y, (cause == ANIMATE_SPELL) ?
|
||||||
(NO_MINVENT | MM_ADJACENTOK) : NO_MINVENT);
|
(NO_MINVENT | MM_ADJACENTOK) : NO_MINVENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user