Wielding Trollsbane prevents trolls from reviving

This commit is contained in:
Pasi Kallinen
2016-10-15 19:47:04 +03:00
parent 35f46a0149
commit 14bd550481
3 changed files with 21 additions and 13 deletions
+1
View File
@@ -351,6 +351,7 @@ pets start with apport equal to your charisma
sometimes generate the random mazes with wide corridors, thick walls, sometimes generate the random mazes with wide corridors, thick walls,
or with dead ends changed to loops or with dead ends changed to loops
put throne room gold in the chest put throne room gold in the chest
wielding Trollsbane prevents trolls from reviving
Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository
+17 -12
View File
@@ -9,10 +9,12 @@
typedef void FDECL((*timeout_proc), (ANY_P *, long)); typedef void FDECL((*timeout_proc), (ANY_P *, long));
/* kind of timer */ /* kind of timer */
#define TIMER_LEVEL 0 /* event specific to level */ enum timer_type {
#define TIMER_GLOBAL 1 /* event follows current play */ TIMER_LEVEL = 0, /* event specific to level */
#define TIMER_OBJECT 2 /* event follows a object */ TIMER_GLOBAL, /* event follows current play */
#define TIMER_MONSTER 3 /* event follows a monster */ TIMER_OBJECT, /* event follows a object */
TIMER_MONSTER /* event follows a monster */
};
/* save/restore timer ranges */ /* save/restore timer ranges */
#define RANGE_LEVEL 0 /* save/restore timers staying on level */ #define RANGE_LEVEL 0 /* save/restore timers staying on level */
@@ -22,14 +24,17 @@ typedef void FDECL((*timeout_proc), (ANY_P *, long));
* Timeout functions. Add a define here, then put it in the table * Timeout functions. Add a define here, then put it in the table
* in timeout.c. "One more level of indirection will fix everything." * in timeout.c. "One more level of indirection will fix everything."
*/ */
#define ROT_ORGANIC 0 /* for buried organics */ enum timeout_types {
#define ROT_CORPSE 1 ROT_ORGANIC = 0, /* for buried organics */
#define REVIVE_MON 2 ROT_CORPSE,
#define BURN_OBJECT 3 REVIVE_MON,
#define HATCH_EGG 4 BURN_OBJECT,
#define FIG_TRANSFORM 5 HATCH_EGG,
#define MELT_ICE_AWAY 6 FIG_TRANSFORM,
#define NUM_TIME_FUNCS 7 MELT_ICE_AWAY,
NUM_TIME_FUNCS
};
/* used in timeout.c */ /* used in timeout.c */
typedef struct fe { typedef struct fe {
+3 -1
View File
@@ -748,7 +748,9 @@ boolean by_hero;
x = xy.x, y = xy.y; x = xy.x, y = xy.y;
} }
if (mons[montype].mlet == S_EEL && !IS_POOL(levl[x][y].typ)) { if ((mons[montype].mlet == S_EEL && !IS_POOL(levl[x][y].typ))
|| (mons[montype].mlet == S_TROLL
&& uwep && uwep->oartifact == ART_TROLLSBANE)) {
if (by_hero && cansee(x,y)) if (by_hero && cansee(x,y))
pline("%s twitches feebly.", pline("%s twitches feebly.",
upstart(corpse_xname(corpse, (const char *) 0, CXN_PFX_THE))); upstart(corpse_xname(corpse, (const char *) 0, CXN_PFX_THE)));