]> granicus.if.org Git - nethack/commitdiff
Blessed teleport scrolls now give a single controlled teleport
authorcopperwater <aosdict@gmail.com>
Mon, 30 Oct 2017 23:22:44 +0000 (19:22 -0400)
committerPasi Kallinen <paxed@alt.org>
Sun, 5 Apr 2020 13:08:22 +0000 (16:08 +0300)
This buffs the blessed effect of the teleport scroll by providing the
reader control over their destination even if they lack teleport
control. This seems like it makes the blessed/uncursed distinction
actually meaningful, rather than mostly pointless.

doc/fixes37.0
src/teleport.c

index 075f721d5e01c5044cacfe0aea8df39f2d29161e..1b8e2ae2becb1b8ca14d0dfa032822da404f3d66 100644 (file)
@@ -114,6 +114,7 @@ deliberate level teleporter activation ignores magic resistance
 auto-id scroll of remove curse when a known buc-state was changed
 demon lords hate Demonbane
 pets avoid eating shapeshifter corpses unless starving or nearly feral
+blessed scroll of teleportation gives a single controlled teleport
 
 
 Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
index 5404fcf8f6bdc793beb170af8fcb55e2a755c8c7..d1200e06c29970f8f20092ab1a81b5bfaaa108d0 100644 (file)
@@ -519,7 +519,8 @@ struct obj *scroll;
         if (!wizard || yn("Override?") != 'y')
             return FALSE;
     }
-    if ((Teleport_control && !Stunned) || wizard) {
+    if ((Teleport_control && !Stunned) || (scroll && scroll->blessed)
+         || wizard) {
         if (unconscious()) {
             pline("Being unconscious, you cannot control your teleport.");
         } else {
@@ -545,11 +546,6 @@ struct obj *scroll;
             pline("Sorry...");
             result = TRUE;
         }
-    } else if (scroll && scroll->blessed) {
-        /* (this used to be handled in seffects()) */
-        if (yn("Do you wish to teleport?") == 'n')
-            return TRUE;
-        result = TRUE;
     }
 
     g.telescroll = scroll;