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:
18
src/uhitm.c
18
src/uhitm.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 uhitm.c $NHDT-Date: 1432512769 2015/05/25 00:12:49 $ $NHDT-Branch: master $:$NHDT-Revision: 1.144 $ */
|
||||
/* NetHack 3.6 uhitm.c $NHDT-Date: 1445126430 2015/10/18 00:00:30 $ $NHDT-Branch: master $:$NHDT-Revision: 1.148 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -785,7 +785,7 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
|
||||
tmp = (obj->corpsenm >= LOW_PM ? mons[obj->corpsenm].msize
|
||||
: 0) + 1;
|
||||
break;
|
||||
case EGG: {
|
||||
|
||||
#define useup_eggs(o) \
|
||||
{ \
|
||||
if (thrown) \
|
||||
@@ -794,6 +794,7 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
|
||||
useupall(o); \
|
||||
o = (struct obj *) 0; \
|
||||
} /* now gone */
|
||||
case EGG: {
|
||||
long cnt = obj->quan;
|
||||
|
||||
tmp = 1; /* nominal physical damage */
|
||||
@@ -925,9 +926,13 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
|
||||
/* non-weapons can damage because of their weight */
|
||||
/* (but not too much) */
|
||||
tmp = obj->owt / 100;
|
||||
if (obj->otyp == TOWEL && obj->spe > 0) { /* wet towel */
|
||||
if (is_wet_towel(obj)) {
|
||||
/* wielded wet towel should probably use whip skill
|
||||
(but not by setting objects[TOWEL].oc_skill==P_WHIP
|
||||
because that would turn towel into a weptool) */
|
||||
tmp += obj->spe;
|
||||
obj->spe--;
|
||||
if (rn2(obj->spe + 1)) /* usually lose some wetness */
|
||||
dry_a_towel(obj, -1, TRUE);
|
||||
}
|
||||
if (tmp < 1)
|
||||
tmp = 1;
|
||||
@@ -1075,11 +1080,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
|
||||
monflee(mon, 10 * rnd(tmp), FALSE, FALSE);
|
||||
}
|
||||
if ((mdat == &mons[PM_BLACK_PUDDING] || mdat == &mons[PM_BROWN_PUDDING])
|
||||
&&
|
||||
/* pudding is alive and healthy enough to split */
|
||||
mon->mhp > 1 && !mon->mcan &&
|
||||
&& mon->mhp > 1 && !mon->mcan
|
||||
/* iron weapon using melee or polearm hit */
|
||||
obj && obj == uwep && objects[obj->otyp].oc_material == IRON
|
||||
&& obj && obj == uwep && objects[obj->otyp].oc_material == IRON
|
||||
&& hand_to_hand) {
|
||||
if (clone_mon(mon, 0, 0)) {
|
||||
pline("%s divides as you hit it!", Monnam(mon));
|
||||
|
||||
Reference in New Issue
Block a user