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:
@@ -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
|
||||
|
||||
19
src/apply.c
19
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.");
|
||||
|
||||
Reference in New Issue
Block a user