drum of earthquake causing deafness inappropriately
Address a drum of earthquake inconsistency reported 2017-03-23: "Drum of earthquake does not make you deaf. Leather drum or depleted drum of earthquake does." bug 1099
This commit is contained in:
@@ -135,6 +135,7 @@ gremlins seemed impervious to Sunsword's light yet a flash from a camera
|
|||||||
caused them to cry out in pain
|
caused them to cry out in pain
|
||||||
when objects migrate (fall down stairs) and invisible hero (w/o see invisible,
|
when objects migrate (fall down stairs) and invisible hero (w/o see invisible,
|
||||||
no-autopickup) descends, stairs get shown instead of object(s) on them
|
no-autopickup) descends, stairs get shown instead of object(s) on them
|
||||||
|
drum of earthquake was causing deafness but oddly enough only when used up
|
||||||
|
|
||||||
|
|
||||||
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
|
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
+22
-5
@@ -445,6 +445,11 @@ generic_lvl_desc()
|
|||||||
return "dungeon";
|
return "dungeon";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *beats[] = {
|
||||||
|
"stepper", "one drop", "slow two", "triple stroke roll",
|
||||||
|
"double shuffle", "half-time shuffle", "second line", "train"
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The player is trying to extract something from his/her instrument.
|
* The player is trying to extract something from his/her instrument.
|
||||||
*/
|
*/
|
||||||
@@ -454,6 +459,7 @@ struct obj *instr;
|
|||||||
{
|
{
|
||||||
int damage, mode, do_spec = !(Stunned || Confusion);
|
int damage, mode, do_spec = !(Stunned || Confusion);
|
||||||
struct obj itmp;
|
struct obj itmp;
|
||||||
|
boolean mundane = FALSE;
|
||||||
|
|
||||||
itmp = *instr;
|
itmp = *instr;
|
||||||
itmp.oextra = (struct oextra *) 0; /* ok on this copy as instr maintains
|
itmp.oextra = (struct oextra *) 0; /* ok on this copy as instr maintains
|
||||||
@@ -462,8 +468,10 @@ struct obj *instr;
|
|||||||
|
|
||||||
/* if won't yield special effect, make sound of mundane counterpart */
|
/* if won't yield special effect, make sound of mundane counterpart */
|
||||||
if (!do_spec || instr->spe <= 0)
|
if (!do_spec || instr->spe <= 0)
|
||||||
while (objects[itmp.otyp].oc_magic)
|
while (objects[itmp.otyp].oc_magic) {
|
||||||
itmp.otyp -= 1;
|
itmp.otyp -= 1;
|
||||||
|
mundane = TRUE;
|
||||||
|
}
|
||||||
#ifdef MAC
|
#ifdef MAC
|
||||||
mac_speaker(&itmp, "C");
|
mac_speaker(&itmp, "C");
|
||||||
#endif
|
#endif
|
||||||
@@ -579,6 +587,10 @@ struct obj *instr;
|
|||||||
exercise(A_DEX, TRUE);
|
exercise(A_DEX, TRUE);
|
||||||
break;
|
break;
|
||||||
case DRUM_OF_EARTHQUAKE: /* create several pits */
|
case DRUM_OF_EARTHQUAKE: /* create several pits */
|
||||||
|
/* a drum of earthquake does cause not cause deafness
|
||||||
|
while still magically functional, nor afterwards
|
||||||
|
when it invokes the LEATHER_DRUM case instead and
|
||||||
|
mundane is flagged */
|
||||||
consume_obj_charge(instr, TRUE);
|
consume_obj_charge(instr, TRUE);
|
||||||
|
|
||||||
You("produce a heavy, thunderous rolling!");
|
You("produce a heavy, thunderous rolling!");
|
||||||
@@ -589,10 +601,15 @@ struct obj *instr;
|
|||||||
makeknown(DRUM_OF_EARTHQUAKE);
|
makeknown(DRUM_OF_EARTHQUAKE);
|
||||||
break;
|
break;
|
||||||
case LEATHER_DRUM: /* Awaken monsters */
|
case LEATHER_DRUM: /* Awaken monsters */
|
||||||
You("beat a deafening row!");
|
if (!mundane) {
|
||||||
awaken_monsters(u.ulevel * 40);
|
You("beat a deafening row!");
|
||||||
incr_itimeout(&HDeaf, rn1(20, 30));
|
incr_itimeout(&HDeaf, rn1(20, 30));
|
||||||
exercise(A_WIS, FALSE);
|
exercise(A_WIS, FALSE);
|
||||||
|
} else
|
||||||
|
You("%s %s.",
|
||||||
|
rn2(2) ? "butcher" : rn2(2) ? "manage" : "pull off",
|
||||||
|
an(beats[rn2(SIZE(beats))]));
|
||||||
|
awaken_monsters(u.ulevel * (mundane ? 5 : 40));
|
||||||
context.botl = TRUE;
|
context.botl = TRUE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user