]> granicus.if.org Git - nethack/commitdiff
R1045 engulfing green slime was causing stoning not sliming
authornethack.allison <nethack.allison>
Tue, 13 Aug 2002 03:58:33 +0000 (03:58 +0000)
committernethack.allison <nethack.allison>
Tue, 13 Aug 2002 03:58:33 +0000 (03:58 +0000)
From a bug report,
August 12, 2002 at 11:37:10

When I am polymorphed into a purple worm (didn't check other forms)
and bite a green slime I turn to stone (not slime).

doc/fixes34.1
src/uhitm.c

index bf57062b1cfd797cc6d5ff1f4845bf2676e36fa3..9ca1bc443f2817e88c40789f8562cccb35b8cc66 100644 (file)
@@ -202,6 +202,7 @@ after forcefighting a concealed lurker, the lurker wouldn't fight back
 when polymorphed into a hider, cease hiding during level changes
 let mind flayer grow up into master mind flayer; also giant/sewer rat and
        cave/large spider
+engulfing green slime as a purple worm was causing stoning not sliming
 
 
 Platform- and/or Interface-Specific Fixes
index f32de01e8b1cd69b9b1862e9c0294fd6bfd52470..0b0f62757423a8e05ea8581a663fa24dcaf05a45 100644 (file)
@@ -1595,8 +1595,7 @@ register struct attack *mattk;
            for (otmp = mdef->minvent; otmp; otmp = otmp->nobj)
                (void) snuff_lit(otmp);
 
-           if((!touch_petrifies(mdef->data) || Stone_resistance) &&
-                   (Unchanging || mdef->data != &mons[PM_GREEN_SLIME])) {
+           if(!touch_petrifies(mdef->data) || Stone_resistance) {
 #ifdef LINT    /* static char msgbuf[BUFSZ]; */
                char msgbuf[BUFSZ];
 #else
@@ -1658,6 +1657,14 @@ register struct attack *mattk;
                                nomul(-tmp);
                                nomovemsg = msgbuf;
                            } else pline("%s", msgbuf);
+                           if (mdef->data == &mons[PM_GREEN_SLIME]) {
+                               Sprintf(msgbuf, "%s isn't sitting well with you.",
+                                       The(mdef->data->mname));
+                               if (!Unchanging) {
+                                       Slimed = 5L;
+                                       flags.botl = 1;
+                               }
+                           } else
                            exercise(A_CON, TRUE);
                        }
                        end_engulf();