dismounting next to a boulder
It makes sense that if you cannot normally move to a location containing a boulder, dismounting there should be avoided if possible. It seems that it should be possible to land there if there's no other choice. Perhaps doing so should result in damage, but that's not in this patch.
This commit is contained in:
@@ -424,7 +424,7 @@ int forceit;
|
||||
boolean found = FALSE;
|
||||
struct trap *t;
|
||||
|
||||
/* avoid known traps (i == 0), but allow them as a backup */
|
||||
/* avoid known traps (i == 0) and boulders, but allow them as a backup */
|
||||
if (reason != DISMOUNT_BYCHOICE || Stunned || Confusion || Fumbling) i = 1;
|
||||
for (; !found && i < 2; ++i) {
|
||||
for (x = u.ux-1; x <= u.ux+1; x++)
|
||||
@@ -436,7 +436,9 @@ int forceit;
|
||||
distance = distu(x,y);
|
||||
if (min_distance < 0 || distance < min_distance ||
|
||||
(distance == min_distance && rn2(2))) {
|
||||
if (i > 0 || (t = t_at(x, y)) == 0 || !t->tseen) {
|
||||
if (i > 0 || (((t = t_at(x, y)) == 0 || !t->tseen) &&
|
||||
(!sobj_at(BOULDER, x, y) ||
|
||||
throws_rocks(youmonst.data)))) {
|
||||
spot->x = x;
|
||||
spot->y = y;
|
||||
min_distance = distance;
|
||||
|
||||
Reference in New Issue
Block a user