From d34bc6fd735da531c71a62aca09495a2a6122d80 Mon Sep 17 00:00:00 2001 From: Sean Hunt Date: Wed, 18 Feb 2015 23:05:37 -0500 Subject: [PATCH] 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. --- src/trap.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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;