From 228870706b7ad412953aa67ec4cddad458f16e9b Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Thu, 29 May 2025 15:57:29 +0100 Subject: [PATCH] Balance fixes to monster/monster zombie creation attacks These were unbalancing the game a) in the Castle and b) if they woke up unique monsters (most notably the Wizard of Yendor). I considered adding a difficulty check, but this commit instead just directly fixes the symptoms. (It doesn't make sense for the Castle to contain a monster that would kill or be killed by its inhabitants: they should have died long before the hero arrived. So for liches/zombies to exist in the Castle at all, there must be a truce.) --- src/mon.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) 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; }