eating artifacts while poly'd

From the newsgroup:  if polymorphed into a metallivore, you could eat
artifacts that you couldn't touch with your hands.  Now you can't eat ones
which evade your grasp, and you take some damage from other touchy items
on--actually, prior to--the first bite.  (Those still "taste delicious" if
you survive; I'm not sure whether this ought to be changed.)
This commit is contained in:
nethack.rankin
2007-01-25 06:24:39 +00:00
parent 0bd89ff28d
commit c36712aabe
2 changed files with 5 additions and 2 deletions
+1
View File
@@ -294,6 +294,7 @@ can't arm bear traps or land mines on Planes of Air or Water
statues that "come to life" when trap activates shouldn't start out sleeping statues that "come to life" when trap activates shouldn't start out sleeping
shopkeepers and priests wouldn't step on graves put in their rooms by bones shopkeepers and priests wouldn't step on graves put in their rooms by bones
can't throw if poly'd into form which lacks hands can't throw if poly'd into form which lacks hands
can't eat an artifact you're unable to touch
Platform- and/or Interface-Specific Fixes Platform- and/or Interface-Specific Fixes
+4 -2
View File
@@ -1,4 +1,4 @@
/* SCCS Id: @(#)eat.c 3.5 2006/12/07 */ /* SCCS Id: @(#)eat.c 3.5 2007/01/24 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -2256,7 +2256,9 @@ doeat() /* generic "eat" command funtion (see cmd.c) */
* mails, players who polymorph back to human in the middle of their * mails, players who polymorph back to human in the middle of their
* metallic meal, etc.... * metallic meal, etc....
*/ */
if (!is_edible(otmp)) { if (otmp->oartifact && !touch_artifact(otmp, &youmonst)) {
return 1;
} else if (!is_edible(otmp)) {
You("cannot eat that!"); You("cannot eat that!");
return 0; return 0;
} else if ((otmp->owornmask & (W_ARMOR|W_TOOL|W_AMUL } else if ((otmp->owornmask & (W_ARMOR|W_TOOL|W_AMUL