steed, stethoscope, and a vortex

<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).
This commit is contained in:
nethack.allison
2003-07-19 16:39:46 +00:00
parent db4b55a6de
commit 2213732f1c
2 changed files with 17 additions and 4 deletions

View 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.");