wand/spell/breath killer reason
Extend "killed by the touch of death inflicted by <monster>" to buzz(). "Killed by a bolt of cold" becomes "killed by a bolt of cold zapped by <monster>" or "killed by a blast of cold" becomes "killed by a blast of cold exhaled by <monster>" and so forth. More work than expected; the zap code isn't passed enough context. BZ_M_WAND() was producing the wrong value for wands zapped by monsters.
This commit is contained in:
@@ -1659,19 +1659,27 @@ use_offensive(struct monst *mtmp)
|
||||
if (oseen)
|
||||
makeknown(otmp->otyp);
|
||||
gm.m_using = TRUE;
|
||||
gc.current_wand = otmp;
|
||||
gb.buzzer = mtmp;
|
||||
buzz(BZ_M_WAND(BZ_OFS_WAN(otmp->otyp)),
|
||||
(otmp->otyp == WAN_MAGIC_MISSILE) ? 2 : 6, mtmp->mx, mtmp->my,
|
||||
sgn(mtmp->mux - mtmp->mx), sgn(mtmp->muy - mtmp->my));
|
||||
gb.buzzer = 0;
|
||||
gc.current_wand = 0;
|
||||
gm.m_using = FALSE;
|
||||
return (DEADMONSTER(mtmp)) ? 1 : 2;
|
||||
case MUSE_FIRE_HORN:
|
||||
case MUSE_FROST_HORN:
|
||||
mplayhorn(mtmp, otmp, FALSE);
|
||||
gm.m_using = TRUE;
|
||||
gb.buzzer = mtmp;
|
||||
gc.current_wand = otmp; /* needed by zhitu() */
|
||||
buzz(BZ_M_WAND(BZ_OFS_AD((otmp->otyp == FROST_HORN) ? AD_COLD
|
||||
: AD_FIRE)),
|
||||
rn1(6, 6), mtmp->mx, mtmp->my, sgn(mtmp->mux - mtmp->mx),
|
||||
sgn(mtmp->muy - mtmp->my));
|
||||
gb.buzzer = 0;
|
||||
gc.current_wand = 0;
|
||||
gm.m_using = FALSE;
|
||||
return (DEADMONSTER(mtmp)) ? 1 : 2;
|
||||
case MUSE_WAN_TELEPORTATION:
|
||||
|
||||
Reference in New Issue
Block a user