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:
@@ -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
|
not all cavemen are human, so avoid using human in quest messages
|
||||||
tengu is singular and plural, some rumors were incorrect
|
tengu is singular and plural, some rumors were incorrect
|
||||||
don't let leader or nemesis be renamed
|
don't let leader or nemesis be renamed
|
||||||
|
non-moving monster are not affected by liquid
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
11
src/mon.c
11
src/mon.c
@@ -380,7 +380,9 @@ register struct monst *mtmp;
|
|||||||
if (!is_clinger(mtmp->data) && !likes_lava(mtmp->data)) {
|
if (!is_clinger(mtmp->data) && !likes_lava(mtmp->data)) {
|
||||||
if (!resists_fire(mtmp)) {
|
if (!resists_fire(mtmp)) {
|
||||||
if (cansee(mtmp->mx,mtmp->my))
|
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);
|
mondead(mtmp);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -473,6 +475,13 @@ mcalcdistress()
|
|||||||
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
|
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
|
||||||
if (DEADMONSTER(mtmp)) continue;
|
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 */
|
/* regenerate hit points */
|
||||||
mon_regen(mtmp, FALSE);
|
mon_regen(mtmp, FALSE);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user