github issue #475 revisited - Trollsbane
Change Trollsbane versus troll corpse revival: instead of revival failing if Trollsbane is wielded at time of revival attempt, mark the corpse no-revive if killed by Trollsbane (whether by the hero or a monster). If a no-revive corpse is within view when time to revive occurs, give "the troll corpse twitches feebly" even when the hero isn't responsible. That used to only apply if the hero zapped the corpse with undead turning, which would have become inoperative because now being zapped by undead turning clears the no-revive flag and revives as normal. In other words, undead turning magic overrides killed-by-Trollsbane or non-ice troll having been in an ice box.
This commit is contained in:
@@ -961,6 +961,9 @@ struct instance_globals {
|
||||
int xmin, ymin, xmax, ymax; /* level boundaries */
|
||||
boolean ransacked;
|
||||
|
||||
/* mkobj.c */
|
||||
boolean mkcorpstat_norevive; /* for trolls */
|
||||
|
||||
/* mon.c */
|
||||
boolean vamp_rise_msg;
|
||||
boolean disintegested;
|
||||
|
||||
@@ -98,7 +98,6 @@ extern void retouch_equipment(int);
|
||||
extern void mkot_trap_warn(void);
|
||||
extern boolean is_magic_key(struct monst *, struct obj *);
|
||||
extern struct obj *has_magic_key(struct monst *);
|
||||
extern boolean Trollsbane_wielded(void);
|
||||
|
||||
/* ### attrib.c ### */
|
||||
|
||||
|
||||
@@ -210,6 +210,10 @@ struct monst {
|
||||
#define is_obj_mappear(mon,otyp) (M_AP_TYPE(mon) == M_AP_OBJECT \
|
||||
&& (mon)->mappearance == (otyp))
|
||||
|
||||
/* is mon m (presumably just killed) a troll and obj o Trollsbane? */
|
||||
#define troll_baned(m,o) \
|
||||
((m)->data->mlet == S_TROLL && (o) && (o)->oartifact == ART_TROLLSBANE)
|
||||
|
||||
/* Get the maximum difficulty monsters that can currently be generated,
|
||||
given the current level difficulty and the hero's level. */
|
||||
#define monmax_difficulty(levdif) (((levdif) + u.ulevel) / 2)
|
||||
|
||||
Reference in New Issue
Block a user