]> granicus.if.org Git - nethack/commitdiff
fog cloud and aquatic monsters
authorcohrs <cohrs>
Fri, 26 Sep 2003 01:03:46 +0000 (01:03 +0000)
committercohrs <cohrs>
Fri, 26 Sep 2003 01:03:46 +0000 (01:03 +0000)
<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.

doc/fixes34.3
src/mhitu.c
src/uhitm.c

index cfa67376e95d3e9c85f299e0b0165c8c7c143702..b68347c80eb7716b5e82dfc7fbb37af70815ba52 100644 (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
index dce914090bf39f8a80b02298f6ad877c741efa1b..d5fb64bfc87eb4b4fcb7dfe7068e16b3d437b5e1 100644 (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);
                    }
index 55231f3ff34b9f80bc5983693ba8aa4debd63480..e80b9b8f62c005296f465ce8a758dd45b1cc5e2c 100644 (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));