U189 - killing an engulfing monster over water allows waterwalking
- The code in xkilled failed to call spoteffects after killing the monster that was engulfing you. Being expelled already worked correctly. - While testing this, I discovered that removing a ring of levitation or similar while engulfed would call spoteffects when it shouldn't. Fixed that too.
This commit is contained in:
@@ -334,6 +334,9 @@ zapping undiggable trees with wand or spell of dig gave feedback about rock
|
|||||||
being able to see invisible shouldn't cause you to not notice when potion
|
being able to see invisible shouldn't cause you to not notice when potion
|
||||||
or spell of invisibility wears off
|
or spell of invisibility wears off
|
||||||
can't successfully bribe a demon who happens to be carrying the Amulet
|
can't successfully bribe a demon who happens to be carrying the Amulet
|
||||||
|
while over water, killing a monster that had engulfed you does not result
|
||||||
|
in the usual water effects
|
||||||
|
removing a ring of levitation while engulfed should not invoke spoteffects
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
@@ -1759,8 +1759,9 @@ xkilled(mtmp, dest)
|
|||||||
redisp = TRUE;
|
redisp = TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if(!accessible(x, y) && !is_pool(x, y)) {
|
if((!accessible(x, y) && !is_pool(x, y)) ||
|
||||||
/* might be mimic in wall or corpse in lava */
|
(x == u.ux && y == u.uy)) {
|
||||||
|
/* might be mimic in wall or corpse in lava or on player's spot */
|
||||||
redisp = TRUE;
|
redisp = TRUE;
|
||||||
if(wasinside) spoteffects(TRUE);
|
if(wasinside) spoteffects(TRUE);
|
||||||
} else if(x != u.ux || y != u.uy) {
|
} else if(x != u.ux || y != u.uy) {
|
||||||
|
|||||||
@@ -2154,6 +2154,11 @@ long hmask, emask; /* might cancel timeout */
|
|||||||
HLevitation &= ~hmask;
|
HLevitation &= ~hmask;
|
||||||
ELevitation &= ~emask;
|
ELevitation &= ~emask;
|
||||||
if(Levitation) return(0); /* maybe another ring/potion/boots */
|
if(Levitation) return(0); /* maybe another ring/potion/boots */
|
||||||
|
if(u.uswallow) {
|
||||||
|
You("float down, but you are still %s.",
|
||||||
|
is_animal(u.ustuck->data) ? "swallowed" : "engulfed");
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
if (Punished && !carried(uball) &&
|
if (Punished && !carried(uball) &&
|
||||||
(is_pool(uball->ox, uball->oy) ||
|
(is_pool(uball->ox, uball->oy) ||
|
||||||
|
|||||||
Reference in New Issue
Block a user