swap places with pet onto boulder location
when co-located with a boulder you could sometimes swap places with pets of any size bg72
This commit is contained in:
@@ -19,6 +19,8 @@ glob shop interaction improved to handle more of the expected scenarios
|
|||||||
non-flying steed on Plane of Water would drown when air bubble moved hero
|
non-flying steed on Plane of Water would drown when air bubble moved hero
|
||||||
xans fly, but could not reach your feet if you flew
|
xans fly, but could not reach your feet if you flew
|
||||||
adjust vortex database entry to be consistent with fire and energy vortices
|
adjust vortex database entry to be consistent with fire and energy vortices
|
||||||
|
when co-located with a boulder you could sometimes swap places with pets of
|
||||||
|
any size
|
||||||
|
|
||||||
|
|
||||||
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
|
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
+12
-2
@@ -1354,7 +1354,8 @@ domove_core()
|
|||||||
xchar chainx = 0, chainy = 0,
|
xchar chainx = 0, chainy = 0,
|
||||||
ballx = 0, bally = 0; /* ball&chain new positions */
|
ballx = 0, bally = 0; /* ball&chain new positions */
|
||||||
int bc_control = 0; /* control for ball&chain */
|
int bc_control = 0; /* control for ball&chain */
|
||||||
boolean cause_delay = FALSE; /* dragging ball will skip a move */
|
boolean cause_delay = FALSE, /* dragging ball will skip a move */
|
||||||
|
u_with_boulder = (sobj_at(BOULDER, u.ux, u.uy) != 0);
|
||||||
|
|
||||||
if (context.travel) {
|
if (context.travel) {
|
||||||
if (!findtravelpath(FALSE))
|
if (!findtravelpath(FALSE))
|
||||||
@@ -1781,7 +1782,16 @@ domove_core()
|
|||||||
if (u.usteed)
|
if (u.usteed)
|
||||||
u.usteed->mx = u.ux, u.usteed->my = u.uy;
|
u.usteed->mx = u.ux, u.usteed->my = u.uy;
|
||||||
You("stop. %s can't move diagonally.", upstart(y_monnam(mtmp)));
|
You("stop. %s can't move diagonally.", upstart(y_monnam(mtmp)));
|
||||||
} else if (u.ux0 != x && u.uy0 != y && bad_rock(mtmp->data, x, u.uy0)
|
} else if (u_with_boulder
|
||||||
|
&& !(verysmall(mtmp->data)
|
||||||
|
&& (!mtmp->minvent || (curr_mon_load(mtmp) <= 600)))) {
|
||||||
|
/* can't swap places when pet won't fit there with the boulder */
|
||||||
|
u.ux = u.ux0, u.uy = u.uy0; /* didn't move after all */
|
||||||
|
if (u.usteed)
|
||||||
|
u.usteed->mx = u.ux, u.usteed->my = u.uy;
|
||||||
|
You("stop. %s won't fit into the same spot that you're at.",
|
||||||
|
upstart(y_monnam(mtmp)));
|
||||||
|
} else if (u.ux0 != x && u.uy0 != y && bad_rock(mtmp->data, x, u.uy0)
|
||||||
&& bad_rock(mtmp->data, u.ux0, y)
|
&& bad_rock(mtmp->data, u.ux0, y)
|
||||||
&& (bigmonst(mtmp->data) || (curr_mon_load(mtmp) > 600))) {
|
&& (bigmonst(mtmp->data) || (curr_mon_load(mtmp) > 600))) {
|
||||||
/* can't swap places when pet won't fit thru the opening */
|
/* can't swap places when pet won't fit thru the opening */
|
||||||
|
|||||||
Reference in New Issue
Block a user