]> granicus.if.org Git - nethack/commitdiff
R363 - can't drown breathless monsters
authorcohrs <cohrs>
Mon, 1 Apr 2002 05:33:32 +0000 (05:33 +0000)
committercohrs <cohrs>
Mon, 1 Apr 2002 05:33:32 +0000 (05:33 +0000)
- if you're polymorphed into an eel, you were able to drown things like xorns
- also, fix the tombstone message when an eel drowns you, it was basing the
message on your location, not the eel's location

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

index dc1836f1258a4cad8898a858150ae3711d3f35fc..37e7b3841053f74b17218ee19fba78c892db35f5 100644 (file)
@@ -45,6 +45,7 @@ touch_artifact checks needed when snagging w/bullwhip and stealing
 cannot trip over submerged objects if you're water walking
 wand of striking was not identified if it activated a statue trap
 cannot sacrifice while you're swallowed
+player polymorphed into an eel cannot drown breathless/amphibious monsters
 
 
 Platform- and/or Interface-Specific Fixes
index 3f9dc3508dded353114fc388f6faa661d9b7cfe6..8ac2262fab49da0b71830c33cca716def1b2ce8a 100644 (file)
@@ -1158,8 +1158,9 @@ do_stone:
                    } else if(u.ustuck == mtmp) {
                        if (is_pool(mtmp->mx,mtmp->my) && !Swimming
                            && !Amphibious) {
-                           boolean moat = (levl[u.ux][u.uy].typ != POOL) &&
-                               (levl[u.ux][u.uy].typ != WATER) &&
+                           boolean moat =
+                               (levl[mtmp->mx][mtmp->my].typ != POOL) &&
+                               (levl[mtmp->mx][mtmp->my].typ != WATER) &&
                                !Is_medusa_level(&u.uz) &&
                                !Is_waterlevel(&u.uz);
 
index 4c322a0c5b963a44482bc527165e95af6c264bc4..929bb9f2591e4adfe89e7f90dbd7b6323a99ce55 100644 (file)
@@ -1417,7 +1417,8 @@ register struct attack *mattk;
                        }
                    } else if(u.ustuck == mdef) {
                        /* Monsters don't wear amulets of magical breathing */
-                       if (is_pool(u.ux,u.uy) && !is_swimmer(mdef->data)) {
+                       if (is_pool(u.ux,u.uy) && !is_swimmer(mdef->data) &&
+                           !amphibious(mdef->data)) {
                            You("drown %s...", mon_nam(mdef));
                            tmp = mdef->mhp;
                        } else if(mattk->aatyp == AT_HUGS)