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

View File

@@ -351,6 +351,7 @@ pets start with apport equal to your charisma
sometimes generate the random mazes with wide corridors, thick walls,
or with dead ends changed to loops
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

View File

@@ -9,10 +9,12 @@
typedef void FDECL((*timeout_proc), (ANY_P *, long));
/* kind of timer */
#define TIMER_LEVEL 0 /* event specific to level */
#define TIMER_GLOBAL 1 /* event follows current play */
#define TIMER_OBJECT 2 /* event follows a object */
#define TIMER_MONSTER 3 /* event follows a monster */
enum timer_type {
TIMER_LEVEL = 0, /* event specific to level */
TIMER_GLOBAL, /* event follows current play */
TIMER_OBJECT, /* event follows a object */
TIMER_MONSTER /* event follows a monster */
};
/* save/restore timer ranges */
#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
* in timeout.c. "One more level of indirection will fix everything."
*/
#define ROT_ORGANIC 0 /* for buried organics */
#define ROT_CORPSE 1
#define REVIVE_MON 2
#define BURN_OBJECT 3
#define HATCH_EGG 4
#define FIG_TRANSFORM 5
#define MELT_ICE_AWAY 6
#define NUM_TIME_FUNCS 7
enum timeout_types {
ROT_ORGANIC = 0, /* for buried organics */
ROT_CORPSE,
REVIVE_MON,
BURN_OBJECT,
HATCH_EGG,
FIG_TRANSFORM,
MELT_ICE_AWAY,
NUM_TIME_FUNCS
};
/* used in timeout.c */
typedef struct fe {

View File

@@ -748,7 +748,9 @@ boolean by_hero;
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))
pline("%s twitches feebly.",
upstart(corpse_xname(corpse, (const char *) 0, CXN_PFX_THE)));