fog cloud and aquatic monsters

<Someone> pointed out the inappropriate appearance of the 3.4.2 message when
fog clouds have you engulfed if you happen to be polymorphed into an aquatic
creature.  It does seem that a fog cloud should not cause added damage to
amphibious creatures, which includes breathless (but non-flaming) monsters.
I also thought another message was more appropriate for flaming creatures
(see on_fire()), and added a special case for that.
gulpum was missing symmetric code and I added it there too.
This commit is contained in:
cohrs
2003-09-26 01:03:46 +00:00
parent 929f9ce2c7
commit c72aafcd40
3 changed files with 21 additions and 6 deletions

View File

@@ -29,6 +29,7 @@ accept wish for "grey spell book" not just "grey spellbook"
do not double credit when putting gold into an unpaid container
manes are nonliving
poles and grappling hook worked thru walls when wearing Eyes of the Overworld
more tweaks to fog cloud behavior
Platform- and/or Interface-Specific Fixes

View File

@@ -1687,11 +1687,15 @@ gulpmu(mtmp, mattk) /* monster swallows you, or damage if u.uswallow */
}
break;
case AD_PHYS:
if (mtmp->data == &mons[PM_FOG_CLOUD])
You("are laden with moisture and can barely %s!",
!breathless(youmonst.data) ? "breathe" :
"stay conscious");
else {
if (mtmp->data == &mons[PM_FOG_CLOUD]) {
You("are laden with moisture and %s",
flaming(youmonst.data) ? "are smoldering out!" :
Breathless ? "find it mildly uncomfortable." :
amphibious(youmonst.data) ? "feel comforted." :
"can barely breathe!");
/* NB: Amphibious includes Breathless */
if (Amphibious && !flaming(youmonst.data)) tmp = 0;
} else {
You("are pummeled with debris!");
exercise(A_STR, FALSE);
}

View File

@@ -1827,7 +1827,17 @@ register struct attack *mattk;
end_engulf();
return(2);
case AD_PHYS:
pline("%s is pummeled with your debris!",Monnam(mdef));
if (youmonst.data == &mons[PM_FOG_CLOUD]) {
pline("%s is laden with your moisture.",
Monnam(mdef));
if (amphibious(mdef->data) &&
!flaming(mdef->data)) {
dam = 0;
pline("%s seems unharmed.", Monnam(mdef));
}
} else
pline("%s is pummeled with your debris!",
Monnam(mdef));
break;
case AD_ACID:
pline("%s is covered with your goo!", Monnam(mdef));