]> granicus.if.org Git - nethack/commitdiff
buglist: polymorphed into quantum mechanic
authornethack.allison <nethack.allison>
Fri, 24 Oct 2003 01:54:34 +0000 (01:54 +0000)
committernethack.allison <nethack.allison>
Fri, 24 Oct 2003 01:54:34 +0000 (01:54 +0000)
<email deleted> wrote:
- When polymorphed into a quantum mechanic, it is possible to jump in
  the water on a no teleport level and instinctively teleport.
- When an engulfing monster is teleported away on a no teleport level
  when the hero is polymorphed into a quantum mechanic, there is no
  message displayed like "You are no longer engulfed!" because
  u_teleport_mon is passed FALSE for give feedback. But maybe this is
  for a good reason...

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

index 21c022b325d3c178ebd16da4ab28043c57b11390..8d8eaf76f91f01269718fba955acd7bb2b8646da 100644 (file)
@@ -74,6 +74,10 @@ barbarians can become export in short sword skill
 samurai are now limited to master in martial arts skill; barbarians and
        cavemen are now limited to master in bare-handed combat skill
 tweak messages when werefoo summons help
+when polymorphed into a quantum mechanic, it was possible to jump into
+       the water on a no teleport level and instinctively teleport
+when polymorphed into a quantum mechanic on a no teleport level and swallowed,
+       no feedback was given when you teleported the swallower away
 
 
 Platform- and/or Interface-Specific Fixes
index 2084e93a063d4bdd018519d75d4cc1b715accab1..7ce31349c828040d6109e223a50bd9760efeae03 100644 (file)
@@ -2860,9 +2860,11 @@ drown()
        if ((Teleportation || can_teleport(youmonst.data)) &&
                    !u.usleep && (Teleport_control || rn2(3) < Luck+2)) {
                You("attempt a teleport spell.");       /* utcsri!carroll */
-               (void) dotele();
-               if(!is_pool(u.ux,u.uy))
-                       return(TRUE);
+               if (!level.flags.noteleport) {
+                       (void) dotele();
+                       if(!is_pool(u.ux,u.uy))
+                               return(TRUE);
+               } else pline_The("attempted teleport spell fails.");
        }
 #ifdef STEED
        if (u.usteed) {
index ebe8cebd52bca7ce1acbb3a962587b183eb287b6..d4233187757f78dcf9b4dab22d15d80abe9fe5eb 100644 (file)
@@ -1428,7 +1428,8 @@ register struct attack *mattk;
                if (tmp <= 0) tmp = 1;
                if (!negated && tmp < mdef->mhp) {
                    char nambuf[BUFSZ];
-                   boolean u_saw_mon = canseemon(mdef);
+                   boolean u_saw_mon = canseemon(mdef) ||
+                                       (u.uswallow && u.ustuck == mdef);
                    /* record the name before losing sight of monster */
                    Strcpy(nambuf, Monnam(mdef));
                    if (u_teleport_mon(mdef, FALSE) &&