diff --git a/src/mon.c b/src/mon.c index 049d21d14..ade679695 100644 --- a/src/mon.c +++ b/src/mon.c @@ -2347,9 +2347,21 @@ mfndpos( staticfn long mm_2way_aggression(struct monst *magr, struct monst *mdef) { - /* zombies vs things that can be zombified */ + /* liches/zombies vs things that can be zombified + + Note: avoid this on the Castle level, partly for balance reasons + (the monster-versus-monster fights clear out significant portions of + the Castle and make it easier than it should be), partly for flavor + reasons (monsters who attacked other monsters to zombify them would + have been counterattacked to death long before the hero arried). + + Also don't include unique monsters in this, otherwise it leads to + them waking up early (e.g. because a zombie decided to attack the + Wizard of Yendor). */ if (zombie_maker(magr) && zombie_form(mdef->data) != NON_PM) - return (ALLOW_M | ALLOW_TM); + if (!Is_stronghold(&u.uz) && + !unique_corpstat(magr->data) && !unique_corpstat(mdef->data)) + return (ALLOW_M | ALLOW_TM); return 0; }