timebot() calls prior to the window port call to place the cursor
on the hero
magic traps can toggle intrinsic invisibility
+Death attacking a monster does drain life attack
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
/* mhitm */
int armpro = magic_negation(mdef);
boolean cancelled = magr->mcan || !(rn2(10) >= 3 * armpro);
-
- if (!cancelled && !rn2(3)
- && !(resists_drli(mdef) || defended(mdef, AD_DRLI))) {
- mhm->damage = d(2, 6); /* Stormbringer uses monhp_per_lvl (1d8) */
+ /* mhitm_ad_deth gets redirected here for Death's touch */
+ boolean is_death = (mattk->adtyp == AD_DETH);
+
+ if (is_death
+ || (!cancelled && !rn2(3)
+ && !(resists_drli(mdef) || defended(mdef, AD_DRLI)))) {
+ if (!is_death)
+ mhm->damage = d(2, 6); /* Stormbringer uses monhp_per_lvl (1d8) */
if (g.vis && canspotmon(mdef))
pline("%s becomes weaker!", Monnam(mdef));
if (mdef->mhpmax - mhm->damage > (int) mdef->m_lev) {
undead hero would; otherwise, just inflict the normal damage */
if (is_undead(pd) && mhm->damage > 1)
mhm->damage = rnd(mhm->damage / 2);
- /*
- * FIXME?
- * most monsters should be vulnerable to Death's touch
- * instead of only receiving ordinary damage, but is it
- * worth bothering with?
- */
+ /* simulate Death's touch with drain life attack */
+ mhitm_ad_drli(magr, mattk, mdef, mhm);
}
}