From: nethack.allison Date: Sun, 19 Feb 2006 21:57:54 +0000 (+0000) Subject: anatomy bits X-Git-Tag: MOVE2GIT~1115 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3ea07e2ef03e42e8effc1472341fa4b702883c98;p=nethack anatomy bits Subject: Some problems to report! Date: Tue, 17 May 2005 07:01:40 -0700 ( Hi. I'm a sourcediver but not a source compiler. I use the Mac carbon port under Mac OS X. But enough about me; I noticed these things: Polyself/Anatomy Bugs: - Mimics are amorphous, so they should have jelly parts rather than animal parts. - Piercers, trappers and lurkers above have animal parts, including "head," but they are M1_NOHEAD. - All elementals have vortex body parts. This should only be the case for air elementals. (Remember: stalkers, unlike the other elementals, have heads.) - Krakens ought to have tentacles, like jellyfish. ("A gush of water hits the kraken's left fin!") - Worms have snake body parts, but they shouldn't have scales. [...] This patch: - adds worm_parts - gives krakens tentacles - ensures that stalkers have a head --- diff --git a/doc/fixes34.4 b/doc/fixes34.4 index 8e11c3792..d1c5283d1 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -191,6 +191,7 @@ ensure monsters cannot teleport to or be created outside nonpassable bounds of special levels candles should not be fireproof monsters could end up off the left side of the Ranger quest start level +worms don't have scales, krakens have tentacles, stalkers have a head Platform- and/or Interface-Specific Fixes diff --git a/src/polyself.c b/src/polyself.c index 687242abc..454a09380 100644 --- a/src/polyself.c +++ b/src/polyself.c @@ -1229,6 +1229,10 @@ int part; "large scale tip", "rear region", "scale gap", "scale gapped", "head", "rear region", "light headed", "neck", "length", "rear scale", "scales", "blood", "lung", "forked tongue", "stomach" }, + *worm_parts[] = { "anterior segment", "light sensitive cell", "clitellum", "setae", + "setae", "posterior segment", "segment", "segmented", + "anterior segment", "posterior", "over stretched", "clitellum", "length", + "posterior setae", "setae", "blood", "skin", "prostomium", "stomach" }, *fish_parts[] = { "fin", "eye", "premaxillary", "pelvic axillary", "pelvic fin", "anal fin", "pectoral fin", "finned", "head", "peduncle", "played out", "gills", "dorsal fin", "caudal fin", @@ -1258,8 +1262,9 @@ int part; return "trunk"; if (mptr == &mons[PM_SHARK] && part == HAIR) return "skin"; /* sharks don't have scales */ - if (mptr == &mons[PM_JELLYFISH] && (part == ARM || part == FINGER || - part == HAND || part == FOOT || part == TOE)) + if ((mptr == &mons[PM_JELLYFISH] || mptr == &mons[PM_KRAKEN]) && + (part == ARM || part == FINGER || + part == HAND || part == FOOT || part == TOE)) return "tentacle"; if (mptr == &mons[PM_FLOATING_EYE] && part == EYE) return "cornea"; @@ -1278,8 +1283,12 @@ int part; part == FINGERTIP || part == HAND) return "ray"; else return "beam"; } + if (mptr == &mons[PM_STALKER] && part == HEAD) + return "head"; if (mptr->mlet == S_EEL && mptr != &mons[PM_JELLYFISH]) return fish_parts[part]; + if (mptr->mlet == S_WORM) + return worm_parts[part]; if (slithy(mptr) || (mptr->mlet == S_DRAGON && part == HAIR)) return snake_parts[part]; if (mptr->mlet == S_EYE)