Check whether steed will slip on ice if mounted
If riding over ice, check whether the steed, rather than the hero, is cold-resistant or floating to determine whether it should slip, since it is the monster which would actually be in contact with the ice.
This commit is contained in:
@@ -2142,12 +2142,13 @@ static void
|
|||||||
slippery_ice_fumbling(void)
|
slippery_ice_fumbling(void)
|
||||||
{
|
{
|
||||||
boolean on_ice = !Levitation && is_ice(u.ux, u.uy);
|
boolean on_ice = !Levitation && is_ice(u.ux, u.uy);
|
||||||
|
struct monst *iceskater = u.usteed ? u.usteed : &gy.youmonst;
|
||||||
|
|
||||||
if (on_ice) {
|
if (on_ice) {
|
||||||
if ((uarmf && objdescr_is(uarmf, "snow boots"))
|
if ((uarmf && objdescr_is(uarmf, "snow boots"))
|
||||||
|| resists_cold(&gy.youmonst) || Flying
|
|| resists_cold(iceskater) || Flying
|
||||||
|| is_floater(gy.youmonst.data) || is_clinger(gy.youmonst.data)
|
|| is_floater(iceskater->data) || is_clinger(iceskater->data)
|
||||||
|| is_whirly(gy.youmonst.data)) {
|
|| is_whirly(iceskater->data)) {
|
||||||
on_ice = FALSE;
|
on_ice = FALSE;
|
||||||
} else if (!rn2(Cold_resistance ? 3 : 2)) {
|
} else if (!rn2(Cold_resistance ? 3 : 2)) {
|
||||||
HFumbling |= FROMOUTSIDE;
|
HFumbling |= FROMOUTSIDE;
|
||||||
|
|||||||
Reference in New Issue
Block a user