diff --git a/doc/fixes34.2 b/doc/fixes34.2 index 36e200d2e..0efff61be 100644 --- a/doc/fixes34.2 +++ b/doc/fixes34.2 @@ -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 diff --git a/src/apply.c b/src/apply.c index 56559316a..eda64e283 100644 --- a/src/apply.c +++ b/src/apply.c @@ -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.");