Falling through a hole or trap door will cause damage
This commit is contained in:
@@ -761,6 +761,7 @@ when already at level 30 and gaining another level--which doesn't increase
|
|||||||
level further but does add more HP and Pw--throttle the increases
|
level further but does add more HP and Pw--throttle the increases
|
||||||
don't stop running when next to a peaceful, unless it blocks the way
|
don't stop running when next to a peaceful, unless it blocks the way
|
||||||
mindless monsters shouldn't cringe stepping on squeaky boards
|
mindless monsters shouldn't cringe stepping on squeaky boards
|
||||||
|
falling down a hole or trapdoor will cause damage proportional to fall height
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
@@ -1302,6 +1302,8 @@ goto_level(
|
|||||||
struct monst *mtmp;
|
struct monst *mtmp;
|
||||||
char whynot[BUFSZ];
|
char whynot[BUFSZ];
|
||||||
char *annotation;
|
char *annotation;
|
||||||
|
int dist = newlevel->dlevel - dunlev(&u.uz);
|
||||||
|
boolean do_fall_dmg = FALSE;
|
||||||
|
|
||||||
if (dunlev(newlevel) > dunlevs_in_dungeon(newlevel))
|
if (dunlev(newlevel) > dunlevs_in_dungeon(newlevel))
|
||||||
newlevel->dlevel = dunlevs_in_dungeon(newlevel);
|
newlevel->dlevel = dunlevs_in_dungeon(newlevel);
|
||||||
@@ -1617,6 +1619,7 @@ goto_level(
|
|||||||
if (Punished)
|
if (Punished)
|
||||||
ballfall();
|
ballfall();
|
||||||
selftouch("Falling, you");
|
selftouch("Falling, you");
|
||||||
|
do_fall_dmg = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1782,6 +1785,15 @@ goto_level(
|
|||||||
|
|
||||||
/* assume this will always return TRUE when changing level */
|
/* assume this will always return TRUE when changing level */
|
||||||
(void) in_out_region(u.ux, u.uy);
|
(void) in_out_region(u.ux, u.uy);
|
||||||
|
|
||||||
|
/* fall damage? */
|
||||||
|
if (do_fall_dmg) {
|
||||||
|
int dmg = d(dist, 6);
|
||||||
|
|
||||||
|
dmg = Maybe_Half_Phys(dmg);
|
||||||
|
losehp(dmg, "falling down a mine shaft", KILLED_BY);
|
||||||
|
}
|
||||||
|
|
||||||
(void) pickup(1);
|
(void) pickup(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user