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:
@@ -793,6 +793,9 @@ struct instance_globals_b {
|
||||
/* pickup.c */
|
||||
boolean bucx_filter;
|
||||
|
||||
/* zap.c */
|
||||
struct monst *buzzer; /* zapper/caster/breather who initiates buzz() */
|
||||
|
||||
boolean havestate;
|
||||
unsigned long magic; /* validate that structure layout is preserved */
|
||||
};
|
||||
|
||||
@@ -1322,6 +1322,7 @@ extern boolean usmellmon(struct permonst *);
|
||||
|
||||
extern int castmu(struct monst *, struct attack *, boolean, boolean);
|
||||
extern void touch_of_death(struct monst *);
|
||||
extern char *death_inflicted_by(char *, const char *, struct monst *);
|
||||
extern int buzzmu(struct monst *, struct attack *);
|
||||
|
||||
/* ### mdlib.c ### */
|
||||
|
||||
@@ -677,12 +677,12 @@ enum getobj_callback_returns {
|
||||
#define BZ_U_SPELL(bztyp) (10 + (bztyp))
|
||||
/* hero breathing as a monster */
|
||||
#define BZ_U_BREATH(bztyp) (20 + (bztyp))
|
||||
/* monster shooting a wand */
|
||||
#define BZ_M_WAND(bztyp) (-0 - (bztyp))
|
||||
/* monster casting a spell */
|
||||
#define BZ_M_SPELL(bztyp) (-10 - (bztyp))
|
||||
/* monster breathing */
|
||||
#define BZ_M_BREATH(bztyp) (-20 - (bztyp))
|
||||
/* monster shooting a wand */
|
||||
#define BZ_M_WAND(bztyp) (-30 - (bztyp))
|
||||
|
||||
/*
|
||||
* option setting restrictions
|
||||
|
||||
Reference in New Issue
Block a user