From: Sean Hunt Date: Thu, 19 Feb 2015 04:05:37 +0000 (-0500) Subject: Destroy water walking boots on lava first. X-Git-Tag: NetHack-3.6.0_RC01~684 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d34bc6fd735da531c71a62aca09495a2a6122d80;p=nethack Destroy water walking boots on lava first. This avoids a player being left standing on lava if their boots are burned up and they survive the damage. This change is originally due to Steve Melenchuk, fixed up by Derrick Sund. --- diff --git a/src/trap.c b/src/trap.c index e0e4b38af..9522fe0fd 100644 --- a/src/trap.c +++ b/src/trap.c @@ -4708,14 +4708,24 @@ lava_effects() !obj_resists(obj, 0, 0)) /* for invocation items */ obj->in_use = TRUE; + /* Check whether we should burn away boots *first* so we know whether to + * make the player sink into the lava. Assumption: water walking only comes + * from boots. */ + if (Wwalking && uarmf && is_organic(uarmf) && !uarmf->oerodeproof) { + obj = uarmf; + pline("Your %s into flame!", aobjnam(obj, "burst")); + setequip(os_armf, NULL, em_silent); + useupall(obj); + } + if (!Fire_resistance) { - if(Wwalking) { + if(Wwalking) { pline_The("lava here burns you!"); if (usurvive) { losehp(dmg, lava_killer, KILLED_BY); /* lava damage */ goto burn_stuff; } - } else + } else You("fall into the lava!"); usurvive = Lifesaved || discover;