]> granicus.if.org Git - nethack/commitdiff
steed, stethoscope, and a vortex
authornethack.allison <nethack.allison>
Sat, 19 Jul 2003 16:39:46 +0000 (16:39 +0000)
committernethack.allison <nethack.allison>
Sat, 19 Jul 2003 16:39:46 +0000 (16:39 +0000)
<email deleted> wrote in rgrn:
> Using a stethoscope while inside a monster (air elemental, vortex)
> and while riding a steed will not let you use the stethoscope
> on your steed. You'll only get the engulfer-monster's stats
> instead of your steeds.

Fix the reported but that prevented stethoscope application to your
steed while engulfed. While the inability to apply your stethoscope
to your steed while engulfed was a code oversight, I think it's a
feature that your ability to use the stethoscope is impacted in the
midst of a swirling, noisy vortex. Make it deliberate with a
two-in-3 chance of avoiding the interference (nine-in-10 chance if
you're a healer who is much more skilled at using a stethoscope).

doc/fixes34.2
src/apply.c

index 36e200d2e92b9fcd2c2817b7a289c36399bb6887..0efff61be8344779c67456f9f6be7c7f16144e80 100644 (file)
@@ -109,6 +109,8 @@ only charge for eating one stacked tin, not all at once
 add flag to makemon() to allow monster to be created adjacent to the supplied 
        coordinates if there is already a monster at the target location
 stone-to-flesh of spot with multiple statues can animate more than one
+use of stethoscope now deliberately impacted when hero is engulfed by whirly 
+       monster but fixed so it can sometimes work on your steed there too
 
 
 Platform- and/or Interface-Specific Fixes
index 56559316a1b26efd7abcf9846779b84e2858b225..eda64e283cc6c3a18893d5122b84f8f94f4595e4 100644 (file)
@@ -209,6 +209,8 @@ use_stethoscope(obj)
        struct monst *mtmp;
        struct rm *lev;
        int rx, ry, res;
+       boolean interference = (u.uswallow && is_whirly(u.ustuck->data) &&
+                               !rn2(Role_if(PM_HEALER) ? 10 : 3));
 
        if (nohands(youmonst.data)) {   /* should also check for no ears and/or deaf */
                You("have no hands!");  /* not `body_part(HAND)' */
@@ -224,14 +226,23 @@ use_stethoscope(obj)
        last_used_move = moves;
        last_used_movement = youmonst.movement;
 
+#ifdef STEED
+       if (u.usteed && u.dz > 0) {
+               if (interference) {
+                       pline("%s interferes.", Monnam(u.ustuck));
+                       mstatusline(u.ustuck);
+               } else
+                       mstatusline(u.usteed);
+               return res;
+       } else
+#endif
        if (u.uswallow && (u.dx || u.dy || u.dz)) {
                mstatusline(u.ustuck);
                return res;
-#ifdef STEED
-       } else if (u.usteed && u.dz > 0) {
-               mstatusline(u.usteed);
+       } else if (u.uswallow && interference) {
+               pline("%s interferes.", Monnam(u.ustuck));
+               mstatusline(u.ustuck);
                return res;
-#endif
        } else if (u.dz) {
                if (Underwater)
                    You_hear("faint splashing.");