more Wizard of Yendor
The earlier attempt to prevent the Wizard from immediately teleporting (and giving a vanishes and reappears message before the player has had a chance to see the level) when you arrive on the Plane of Earth ended up being worse. He just stayed put, so no vanish and reappear but no other activity either.
This commit is contained in:
+11
-10
@@ -455,8 +455,7 @@ has_aggravatables(struct monst *mon)
|
|||||||
continue;
|
continue;
|
||||||
if (in_w_tower != In_W_tower(mtmp->mx, mtmp->my, &u.uz))
|
if (in_w_tower != In_W_tower(mtmp->mx, mtmp->my, &u.uz))
|
||||||
continue;
|
continue;
|
||||||
if ((mtmp->mstrategy & STRAT_WAITFORU) != 0
|
if ((mtmp->mstrategy & STRAT_WAITFORU) != 0 || helpless(mtmp))
|
||||||
|| helpless(mtmp))
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -688,7 +687,8 @@ resurrect(void)
|
|||||||
mtmp = makemon(&mons[PM_WIZARD_OF_YENDOR], u.ux, u.uy, MM_NOWAIT);
|
mtmp = makemon(&mons[PM_WIZARD_OF_YENDOR], u.ux, u.uy, MM_NOWAIT);
|
||||||
/* affects experience; he's not coming back from a corpse
|
/* affects experience; he's not coming back from a corpse
|
||||||
but is subject to repeated killing like a revived corpse */
|
but is subject to repeated killing like a revived corpse */
|
||||||
if (mtmp) mtmp->mrevived = 1;
|
if (mtmp)
|
||||||
|
mtmp->mrevived = 1;
|
||||||
} else {
|
} else {
|
||||||
/* look for a migrating Wizard */
|
/* look for a migrating Wizard */
|
||||||
verb = "elude";
|
verb = "elude";
|
||||||
@@ -722,14 +722,15 @@ resurrect(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mtmp) {
|
if (mtmp) {
|
||||||
/* if wizard ended up far away because of conjestion, clear his
|
/* FIXME: when a new wizard is created by makemon(), it gives
|
||||||
wait-until-close flag; otherwise set that flag in case he just
|
a "<mon> appears" message, delivered after he's been placed
|
||||||
came off the migrating_mons list to prevent him from triggering
|
on the map; however, when an existing wizard comes off
|
||||||
"<mon> vanishes and reappears" on his first move */
|
migrating_mons, he ends up triggering "<mon> vanishes and
|
||||||
if (!couldsee(mtmp->mx, mtmp->my))
|
reappears" on his first move (tactics when hero is carrying
|
||||||
|
the Amulet); setting STRAT_WAITMASK suppresses that but then
|
||||||
|
he just sits wherever he is, "meditating", contradicting the
|
||||||
|
threatening message below */
|
||||||
mtmp->mstrategy &= ~STRAT_WAITMASK;
|
mtmp->mstrategy &= ~STRAT_WAITMASK;
|
||||||
else
|
|
||||||
mtmp->mstrategy |= STRAT_WAITMASK;
|
|
||||||
|
|
||||||
mtmp->mtame = 0, mtmp->mpeaceful = 0; /* paranoia */
|
mtmp->mtame = 0, mtmp->mpeaceful = 0; /* paranoia */
|
||||||
set_malign(mtmp);
|
set_malign(mtmp);
|
||||||
|
|||||||
Reference in New Issue
Block a user