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:
@@ -30,6 +30,7 @@ do not double credit when putting gold into an unpaid container
|
||||
manes are nonliving
|
||||
poles and grappling hook worked thru walls when wearing Eyes of the Overworld
|
||||
more tweaks to fog cloud behavior
|
||||
when dismounting by choice and unimpaired, try not to land on a boulder
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific Fixes
|
||||
|
||||
@@ -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