Rust gauntlets when washing hands even if Glib

Make it so that washing your gloved hands in a fountain, pool, or sink
can still rust your gauntlets even if it successfully removes the grease
from your fingers.  There wasn't much logic behind the two effects being
mutually exclusive, since the oily fingers of the Glib effect don't
normally protect against water damage like the item being 'greased'
does, and this introduces a possible tradeoff that could make whether or
not to clear Glib by washing your hands a more interesting tactical
decision.
This commit is contained in:
Michael Meyer
2023-11-16 11:20:10 -05:00
committed by PatR
parent 697a85aa4a
commit abafc849e9

View File

@@ -551,18 +551,20 @@ wash_hands(void)
{
const char *hands = makeplural(body_part(HAND));
int res = ER_NOTHING;
boolean was_glib = !!Glib;
You("wash your %s%s in the %s.", uarmg ? "gloved " : "", hands,
hliquid("water"));
if (Glib) {
make_glib(0);
Your("%s are no longer slippery.", fingers_or_gloves(TRUE));
/* not what ER_GREASED is for, but the checks in dipfountain just
compare the result to ER_DESTROYED and ER_NOTHING, so it works */
res = ER_GREASED;
} else if (uarmg) {
res = water_damage(uarmg, (const char *) 0, TRUE);
}
if (uarmg)
res = water_damage(uarmg, (const char *) 0, TRUE);
/* not what ER_GREASED is for, but the checks in dipfountain just
compare the result to ER_DESTROYED and ER_NOTHING, so it works */
if (was_glib && res == ER_NOTHING)
res = ER_GREASED;
return res;
}