monkeys can't steal rings worn under cursed weapon
succubi will remove hero's gloves before taking worn ring; incubi will do
so before forcing ring to be put on
-mbodypart should return forehoof, not foreclaw, for horselike monsters
+mbodypart should return forehoof, not foreclaw, for horselike monsters;
+ rear paws instead of rear claws for feet of d, f, r, and owlbear;
+ hand, arm, leg, foot for yeti, sasquatch, monkey, ape, carnivorous ape
further digging of an existing hole finishes in a single turn
only prefix shopkeeper names with "Mr." or "Ms." when not a personal name
account for all attacks when determining max_passive_dmg
-/* NetHack 3.6 polyself.c $NHDT-Date: 1446604117 2015/11/04 02:28:37 $ $NHDT-Branch: master $:$NHDT-Revision: 1.102 $ */
+/* NetHack 3.6 polyself.c $NHDT-Date: 1448496566 2015/11/26 00:09:26 $ $NHDT-Branch: master $:$NHDT-Revision: 1.104 $ */
/* Copyright (C) 1987, 1988, 1989 by Ken Arromdee */
/* NetHack may be freely redistributed. See license for details. */
};
struct permonst *mptr = mon->data;
- if (part == HAND || part == HANDED) { /* some special cases */
- if (mptr->mlet == S_DOG || mptr->mlet == S_FELINE
- || mptr->mlet == S_YETI)
- return part == HAND ? "paw" : "pawed";
- if (humanoid(mptr) && attacktype(mptr, AT_CLAW)
- && !index(not_claws, mptr->mlet) && mptr != &mons[PM_STONE_GOLEM]
- && mptr != &mons[PM_INCUBUS] && mptr != &mons[PM_SUCCUBUS])
- return part == HAND ? "claw" : "clawed";
+ /* some special cases */
+ if (mptr->mlet == S_DOG || mptr->mlet == S_FELINE
+ || mptr->mlet == S_RODENT || mptr == &mons[PM_OWLBEAR]) {
+ switch (part) {
+ case HAND:
+ return "paw";
+ case HANDED:
+ return "pawed";
+ case FOOT:
+ return "rear paw";
+ case ARM:
+ case LEG:
+ return horse_parts[part]; /* "foreleg", "rear leg" */
+ default:
+ break; /* for other parts, use animal_parts[] below */
+ }
+ } else if (mptr->mlet == S_YETI) { /* excl. owlbear due to 'if' above */
+ /* opposable thumbs, hence "hands", "arms", "legs", &c */
+ return humanoid_parts[part]; /* yeti/sasquatch, monkey/ape */
}
+ if ((part == HAND || part == HANDED)
+ && (humanoid(mptr) && attacktype(mptr, AT_CLAW)
+ && !index(not_claws, mptr->mlet) && mptr != &mons[PM_STONE_GOLEM]
+ && mptr != &mons[PM_INCUBUS] && mptr != &mons[PM_SUCCUBUS]))
+ return (part == HAND) ? "claw" : "clawed";
if ((mptr == &mons[PM_MUMAK] || mptr == &mons[PM_MASTODON])
&& part == NOSE)
return "trunk";