wet towel enhancements
Flesh out wet towels a bit: 1) wielding a wet towel--or a dry one which becomes wet--won't give a "you begin bashing with your wet towel" message when attacking; 2) if a formerly wet towel dries out completely while wielded, *do* give "you begin bashing with your towel" on the next attack; 3) successfully hitting with a wet towel no longer always loses wetness; 4) water damage to dry towel always confers at least 1 point of wetness; 5) taking fire damage (via burnarmor() which is used for most types of fire damage) has a chance to partially or fully dry a wet towel (regardless of whether it's wielded at the time; applies to monsters as well as hero; each towel being carried is checked until one is affected, then any others escape drying. Not done: -) attacking with a wielded wet towel perhaps ought to be treated as a weapon attack using whip skill rather than an augmented arbitrary- junk-by-weight attack; -) throwing a wet towel should probably ignore wetness--it's just a wet piece of cloth when not finishing with a whip snap; right now, it loses a point of wetness when thrown and usually--#3 above--another point if it hits...; -) hitting burning creatures is no different than hitting anything else; -) likewise for hitting wet creatures.
This commit is contained in:
13
src/objnam.c
13
src/objnam.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 objnam.c $NHDT-Date: 1444617222 2015/10/12 02:33:42 $ $NHDT-Branch: master $:$NHDT-Revision: 1.143 $ */
|
||||
/* NetHack 3.6 objnam.c $NHDT-Date: 1445126428 2015/10/18 00:00:28 $ $NHDT-Branch: master $:$NHDT-Revision: 1.148 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -308,7 +308,7 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
|
||||
case TOOL_CLASS:
|
||||
if (typ == LENSES)
|
||||
Strcpy(buf, "pair of ");
|
||||
else if (typ == TOWEL && obj->spe > 0)
|
||||
else if (is_wet_towel(obj))
|
||||
Strcpy(buf, (obj->spe < 3) ? "moist " : "wet ");
|
||||
|
||||
if (!dknown)
|
||||
@@ -323,10 +323,14 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
|
||||
Strcat(buf, dn ? dn : actualn);
|
||||
/* If we use an() here we'd have to remember never to use */
|
||||
/* it whenever calling doname() or xname(). */
|
||||
if (typ == FIGURINE && omndx != NON_PM)
|
||||
if (typ == FIGURINE && omndx != NON_PM) {
|
||||
Sprintf(eos(buf), " of a%s %s",
|
||||
index(vowels, *mons[omndx].mname) ? "n" : "",
|
||||
mons[omndx].mname);
|
||||
} else if (is_wet_towel(obj)) {
|
||||
if (wizard)
|
||||
Sprintf(eos(buf), " (%d)", obj->spe);
|
||||
}
|
||||
break;
|
||||
case ARMOR_CLASS:
|
||||
/* depends on order of the dragon scales objects */
|
||||
@@ -3285,7 +3289,8 @@ typfnd:
|
||||
}
|
||||
break;
|
||||
case TOWEL:
|
||||
if (wetness) otmp->spe = wetness;
|
||||
if (wetness)
|
||||
otmp->spe = wetness;
|
||||
break;
|
||||
case SLIME_MOLD:
|
||||
otmp->spe = ftype;
|
||||
|
||||
Reference in New Issue
Block a user