MCPcopy Create free account
hub / github.com/NetHack/NetHack / slippery_ice_fumbling

Function slippery_ice_fumbling

src/hack.c:2395–2415  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2393}
2394
2395staticfn void
2396slippery_ice_fumbling(void)
2397{
2398 boolean on_ice = !Levitation && is_ice(u.ux, u.uy);
2399 struct monst *iceskater = u.usteed ? u.usteed : &gy.youmonst;
2400
2401 if (on_ice) {
2402 if ((uarmf && objdescr_is(uarmf, "snow boots"))
2403 || resists_cold(iceskater) || Flying
2404 || is_floater(iceskater->data) || is_clinger(iceskater->data)
2405 || is_whirly(iceskater->data)) {
2406 on_ice = FALSE;
2407 } else if (!rn2(Cold_resistance ? 3 : 2)) {
2408 HFumbling |= FROMOUTSIDE;
2409 HFumbling &= ~TIMEOUT;
2410 HFumbling += 1; /* slip on next move */
2411 }
2412 }
2413 if (!on_ice && (HFumbling & FROMOUTSIDE))
2414 HFumbling &= ~FROMOUTSIDE;
2415}
2416
2417boolean
2418u_maybe_impaired(void)

Callers 1

domove_coreFunction · 0.85

Calls 3

is_iceFunction · 0.85
objdescr_isFunction · 0.85
rn2Function · 0.85

Tested by

no test coverage detected