weapon/alternate-weapon/quiver pointer that could cause panic or crash
wielded/worn figurine which auto-transformed had same stale pointer bug
format names of not yet id'd artifacts such that obj type shows for non-weapons
+hero with lycanthropy is vulnerable to silver in human form as well as beast
Platform- and/or Interface-Specific Fixes
-/* SCCS Id: @(#)youprop.h 3.5 2006/09/01 */
+/* SCCS Id: @(#)youprop.h 3.5 2007/03/16 */
/* Copyright (c) 1989 Mike Threepoint */
/* NetHack may be freely redistributed. See license for details. */
#define Lifesaved u.uprops[LIFESAVED].extrinsic
+/*
+ * Some pseudo-properties.
+ */
+
/* unconscious() includes u.usleep but not is_fainted(); the multi test is
redundant but allows the function calls to be skipped most of the time */
#define Unaware (multi < 0 && (unconscious() || is_fainted()))
+#define Hate_silver (u.ulycn >= LOW_PM || hates_silver(youmonst.data))
+
#endif /* YOUPROP_H */
/* can pick it up unless you're totally non-synch'd with the artifact */
if (badclass && badalign && self_willed) {
if (yours) {
- if (obj->where != OBJ_INVENT)
+ if (!carried(obj))
pline("%s your grasp!", Tobjnam(obj, "evade"));
else
pline("%s beyond your control!", Tobjnam(obj, "are"));
if (touch_artifact(obj, &youmonst)) {
/* nothing to do if hero can successfully handle this object */
- if (!(objects[obj->otyp].oc_material == SILVER &&
- (u.ulycn >= LOW_PM || hates_silver(youmonst.data))))
+ if (!(objects[obj->otyp].oc_material == SILVER && Hate_silver))
return 1;
/* we didn't get "<obj> evades your grasp" message; give alt message */
You_cant("handle %s anymore!", thesimpleoname(obj));
#endif
if (Sleeping) enl_msg("You ", "fall", "fell", " asleep", "");
if (Hunger) enl_msg("You hunger", "", "ed", " rapidly", "");
+ if (Hate_silver) you_are("harmed by silver","");
/*** Vision and senses ***/
if (See_invisible) enl_msg(You_, "see", "saw", " invisible",
hitmsg(mtmp, mattk);
if (!dmg) break;
if (objects[otmp->otyp].oc_material == SILVER &&
- hates_silver(youmonst.data))
+ Hate_silver) {
pline_The("silver sears your flesh!");
+ exercise(A_CON, FALSE);
+ }
if (u.mh > 1 && u.mh > ((u.uac>0) ? dmg : dmg+u.uac) &&
objects[otmp->otyp].oc_material == IRON &&
(u.umonnum==PM_BLACK_PUDDING
-/* SCCS Id: @(#)mthrowu.c 3.5 2007/01/27 */
+/* SCCS Id: @(#)mthrowu.c 3.5 2007/03/17 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
else You("are almost hit by %s.", onm);
return(0);
} else {
- if(Blind || !flags.verbose) You("are hit!");
+ if (Blind || !flags.verbose) You("are hit%s", exclam(dam));
else You("are hit by %s%s", onm, exclam(dam));
- if (obj && objects[obj->otyp].oc_material == SILVER
- && hates_silver(youmonst.data)) {
+ if (obj && objects[obj->otyp].oc_material == SILVER &&
+ Hate_silver) {
/* extra damage already applied by dmgval() */
pline_The("silver sears your flesh!");
exercise(A_CON, FALSE);