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

@@ -325,6 +325,7 @@ mimics that are detected but not seen should not display as their mimiced
not all cavemen are human, so avoid using human in quest messages
tengu is singular and plural, some rumors were incorrect
don't let leader or nemesis be renamed
non-moving monster are not affected by liquid
Platform- and/or Interface-Specific Fixes

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);