B14006 - monsters and lava

- water elementals now get a special message when they land in lava
- rather than track down all places where non-moving monsters can end up in
lava (or water, not that it currently matters), add a check to mcalcdistress
to catch all such cases, once per turn.
This commit is contained in:
cohrs
2002-12-12 04:28:28 +00:00
parent aec4a1aa8e
commit d013f95679
2 changed files with 11 additions and 1 deletions

View File

@@ -380,7 +380,9 @@ register struct monst *mtmp;
if (!is_clinger(mtmp->data) && !likes_lava(mtmp->data)) {
if (!resists_fire(mtmp)) {
if (cansee(mtmp->mx,mtmp->my))
pline("%s burns to a crisp.", Monnam(mtmp));
pline("%s %s.", Monnam(mtmp),
mtmp->data == &mons[PM_WATER_ELEMENTAL] ?
"boils aways" : "burns to a crisp");
mondead(mtmp);
}
else {
@@ -473,6 +475,13 @@ mcalcdistress()
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
if (DEADMONSTER(mtmp)) continue;
/* must check non-moving monsters once/turn in case
* they managed to end up in liquid */
if (mtmp->data->mmove == 0) {
if (vision_full_recalc) vision_recalc(0);
if (minliquid(mtmp)) continue;
}
/* regenerate hit points */
mon_regen(mtmp, FALSE);