Here is the fixed version of the NetHack-- 3.1.3 Patch.  Use this
instead of the compressed tar version that I posted a few days ago. 
Sorry for the confusion.
NetHack-- is an unauthorised expansion to NetHack.  This patch will turn
your NetHack 3.1.3 source code into NetHack-- 3.1.3.
Binary versions are available for the Atari ST/TT/Falcon030, OS/2 2.x,
and DOS (386 or better); check your favourite ftp sites.
-------- 8< -------
#!/bin/sh
# This is NetHack--, a shell archive (produced by shar 3.49)
# To extract the files from this archive, save it to a file, remove
# everything above the "!/bin/sh" line above, and type "sh file_name".
#
# made 08/25/1993 17:31 UTC by cher...@semprini.tdkcs.waterloo.on.ca
# Source directory /usr/acct2/herborth/src/nh31c--patch
#
# existing files will NOT be overwritten unless -c is specified
# This format requires very little intelligence at unshar time.
# "if test", "cat", "rm", "echo", "true", and "sed" may be needed.
#
# This is part 1 of a multipart archive                                    
# do not concatenate these parts, unpack them in order with /bin/sh        
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#   3053 -rw------- HowToPatch
# 125277 -rw------- NH31C--.Patch
#   6938 -rw------- ReadMe.Too
#   2088 -rw------- blah
#
if test -r _shar_seq_.tmp; then
	echo 'Must unpack archives in sequence!'
	echo Please unpack part `cat _shar_seq_.tmp` next
	exit 1
fi
# ============= HowToPatch ==============
if test -f 'HowToPatch' -a X"$1" != X"-c"; then
	echo 'x - skipping HowToPatch (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting HowToPatch (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'HowToPatch' &&
XNetHack-- 3.1.3 - Patching Instructions                           August 20/93
X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
X
XHere are some instructions on how to patch NetHack 3.1.3 with the
XNetHack-- 3.1.3 patch.  The NetHack-- 3.1.3 patch adds over a hundred
Xmonsters, new artifacts, new items, new special rooms, and a list of
XGenocided monsters in your "Discovered Items" screen (when you press
X"\").
X
XNetHack-- 3.1.3 is an unauthorised modification of the NetHack 3.1.3
Xgame.  Any bugs introduced into NetHack due to this patch are my
Xproblem, not the Development Team's.
X
XHow to Patch
X
X 1. Get the NetHack 3.1.3 source code.  If you haven't got it, read the
X    rec.games.hack Frequently Asked Questions (FAQ) for a list of sites
X    that carry the NetHack 3.1.3 source code.
X
X 2. Unpack the NetHack 3.1.3 source code and be sure you've got
X    everything.  The Files file will list all of the files and
X    directories you should have.
X
X 3. Copy the files from the NetHack-- 3.1.3 patch into the root
X    directory of your NetHack 3.1.3 source directory.
X
X 4. To apply the main NetHack-- 3.1.3 patch, use:
X        patch -p1 < NH31C--.Patch
X    from the root of your NetHack source directory.
X
X 5. If all goes well, the patch will apply itself, modifying a whole bunch
X    of files.
X
X 6. To build NetHack-- 3.1.3, go into sys/{your computer here} and follow
X    the instructions in the Install.* file.
X
X 7. You should probably copy the ReadMe.Too file to your NetHack game
X    directory (ie, where all the .lev and other files end up) and rename
X    it news; you can also trim it down a bit.  This will warn people that
X    they're playing a modified version of NetHack (you should definitely
X    delete the artifact and monster lists so you don't ruin the surprise).
X
XIf you have any problems or find any bugs, I can be reached at:
X
Xcher...@semprini.tdkcs.waterloo.on.ca
Xher...@53iss6.waterloo.ncr.com
X
XA bug in the plain NetHack 3.1.3 source code should be reported to the
XDevelopment Team at:
X
Xnetha...@linc.cis.upenn.edu
X
XDon't bother the Development Team with bugs caused by the NetHack-- 3.1.3
Xpatch; it's my fault and not theirs.
X
XEnjoy!
X-Chris-
X
XBugs Fixed, While You Wait (and wait and wait...)
X~~~~~~~~~~~~~~~~~~~~~~~~~~
X    A few days after I announced the immenant release of the NetHack-- 3.1.3
X    patch to the world, I lost my patch archive.  Argh!
X
X    After rebuilding my patch archive from files living on my Atari (which
X    necessitated creating a nice Minix partition so I could use long
X    mixed-case filenames), I got a bug report; if you robbed a shop,
X    NetHack-- 3.1.3 would go into an infinite loop trying to create the
X    Keystone Kops.  Oops.
X
X    So, now, about a month later, I've got my act in gear, and I fixed the
X    bug.  Now NetHack-- 3.1.3 is ready for the public!
X
X    Remember, if you run into any bugs, check to see if you can reproduce
X    it under normal NetHack.  If you can, send a bug report to nethack-bugs.
X    If not, send one to me and I'll see if I can reproduce it.
X
X-Chris-
XAugust 20/93
SHAR_EOF
true || echo 'restore of HowToPatch failed'
rm -f _shar_wnt_.tmp
fi
# ============= NH31C--.Patch ==============
if test -f 'NH31C--.Patch' -a X"$1" != X"-c"; then
	echo 'x - skipping NH31C--.Patch (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting NH31C--.Patch (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'NH31C--.Patch' &&
Xdiff -c -r ../nh31c/dat/data.base ./dat/data.base
X*** ../nh31c/dat/data.base	Fri Jun 11 14:42:36 1993
X--- ./dat/data.base	Fri Aug 20 13:24:44 1993
X***************
X*** 188,193 ****
X--- 188,194 ----
X  				[ The Charwoman's Shadow, by Lord Dunsany. ]
X  gold
X  gold piece
X+ pile of gold
X  		A metal of characteristic yellow colour, the  most  precious
X  		metal  used as a common commercial medium of exchange.  Sym-
X  		bol, Au; at.  no. 79; at. wt. 197.2.  It is the most  malle-
Xdiff -c -r ../nh31c/include/artilist.h ./include/artilist.h
X*** ../nh31c/include/artilist.h	Thu Aug 05 10:26:24 1993
X--- ./include/artilist.h	Fri Aug 20 13:24:46 1993
X***************
X*** 135,140 ****
X--- 135,185 ----
X  	(SPFX_RESTR|SPFX_DFLAG2), 0, M2_UNDEAD,
X  	PHYS(5,0),	NO_DFNS,	NO_CARY,	0, A_LAWFUL,	 0  ),
X  
X+ /* NetHack-- Goodies */
X+ /* Axen */
X+ A( "Icebiter", BATTLE_AXE, (SPFX_RESTR | SPFX_ATTK | SPFX_DEFN), 0, 0,
X+    COLD(5,20), COLD(0,0), NO_CARY, 0, A_LAWFUL, 0 ),
X+ 
X+ A( "Firebiter", BATTLE_AXE, (SPFX_RESTR | SPFX_ATTK | SPFX_DEFN), 0, 0,
X+    FIRE(5,20), FIRE(0,0), NO_CARY, 0, A_LAWFUL, 0 ),
X+ 
X+ /* Swords */
X+ A( "Soultheif", RUNESWORD, (SPFX_RESTR | SPFX_ATTK | SPFX_DEFN | SPFX_DRLI),
X+    0, 0, DRLI(3,3), DRLI(0,0), NO_CARY, 0, A_CHAOTIC, 0 ),
X+ 
X+ A( "Equalizer", RUNESWORD, (SPFX_RESTR | SPFX_ATTK | SPFX_DEFN | SPFX_WARN),
X+    0, 0, DRLI(3,3), DRLI(0,0), NO_CARY, 0, A_NEUTRAL, 0 ),
X+ 
X+ A( "Kopkiller", LONG_SWORD, (SPFX_RESTR | SPFX_DCLAS), 0, S_KOP,
X+    PHYS(5,0), NO_DFNS, NO_CARY, 0, A_CHAOTIC, 0 ),
X+ 
X+ A( "Deathsword", LONG_SWORD, (SPFX_RESTR | SPFX_DCLAS), 0, S_HUMAN,
X+    PHYS(5,0), NO_DFNS, NO_CARY, 0, A_CHAOTIC, 0 ),
X+ 
X+ A( "Fungisword", LONG_SWORD, (SPFX_RESTR | SPFX_DCLAS), 0, S_FUNGUS,
X+    PHYS(5,0), NO_DFNS, NO_CARY, 0, A_NEUTRAL, 0 ),
X+ 
X+ /* Other weapons */
X+ A( "Liontamer", BULLWHIP, (SPFX_RESTR | SPFX_DCLAS), 0, S_FELINE,
X+    PHYS(5,15), NO_DFNS, NO_CARY, TAMING, A_LAWFUL, 'A' ),
X+ 
X+ A( "Dirk", DAGGER, 0, 0, 0, PHYS(0,5), NO_DFNS, NO_CARY, 0, A_LAWFUL, 0 ),
X+ 
X+ A( "Elfrist", TWO_HANDED_SWORD, SPFX_DFLAG2, 0, M2_ELF,
X+    PHYS(5,0), NO_DFNS, NO_CARY, 0, A_CHAOTIC, 0 ),
X+ 
X+ /* Extra goodies - Omega/AD&D [CJH] */
X+ /* Morning star with a ball of fire */
X+ A("Firestar", MORNING_STAR, (SPFX_RESTR | SPFX_ATTK | SPFX_DEFN),
X+     0, 0, FIRE(5,0), FIRE(0,0), NO_CARY, 0, A_NEUTRAL, 0),
X+ /* A Mace of Disruption for killing those nasty undead. */
X+ A("Disruptor", MACE, (SPFX_RESTR | SPFX_ATTK | SPFX_DEFN | SPFX_DFLAG2 ),
X+     0, M2_UNDEAD, PHYS(5,0), DRLI(0,0), NO_CARY, 0, A_LAWFUL, 'P'),
X+ /* Sacred staff of a great healer/priest-type guy. */
X+ A("Cuthbert's Cudgel", QUARTERSTAFF, (SPFX_RESTR | SPFX_ATTK | SPFX_DEFN |
X+     SPFX_WARN | SPFX_HALRES | SPFX_REGEN | SPFX_HSPDAM | SPFX_DALIGN),
X+     SPFX_WARN, 0, PHYS(5,0), DRLI(0,0), NO_CARY, 0, A_NEUTRAL, 'P'),
X+ 
X  #ifdef MULDGN
X  /*
X   *	The artifacts for the quest dungeon, all self-willed.
Xdiff -c -r ../nh31c/include/mkroom.h ./include/mkroom.h
X*** ../nh31c/include/mkroom.h	Tue Mar 09 12:45:32 1993
X--- ./include/mkroom.h	Fri Aug 20 13:24:48 1993
X***************
X*** 58,76 ****
X  #define ZOO		 8	/* floor covered with treasure and monsters */
X  #define DELPHI		 9	/* contains Oracle and peripherals */
X  #define TEMPLE		10	/* contains a shrine */
X! #define SHOPBASE	11	/* everything above this is a shop */
X! #define ARMORSHOP	12	/* specific shop defines for level compiler */
X! #define SCROLLSHOP	13
X! #define POTIONSHOP	14
X! #define WEAPONSHOP	15
X! #define FOODSHOP	16
X! #define RINGSHOP	17
X! #define WANDSHOP	18
X! #define TOOLSHOP	19
X! #define BOOKSHOP	20
X! #define UNIQUESHOP	21	/* shops here & above not randomly gen'd. */
X! #define CANDLESHOP	21
X! #define MAXRTYPE	21	/* maximum valid room type */
X  
X  /* Special type for search_special() */
X  #define ANY_TYPE	(-1)
X--- 58,83 ----
X  #define ZOO		 8	/* floor covered with treasure and monsters */
X  #define DELPHI		 9	/* contains Oracle and peripherals */
X  #define TEMPLE		10	/* contains a shrine */
X! #define WASPHIVE    11  /* [Tom] Wasp hive.. wasps and gems */
X! #define GIANTCOURT  12  /* [Tom] Court, but with giants */
X! #define LEPRECOURT  13  /* [Tom] Croesus' court */
X! #define BADFOODSHOP 14  /* [Tom] Where bad food goes to rest... */
X! #define REALZOO     15  /* [Tom] A zoo with zoo animals */
X! #define ANTHILL     16  /* [Tom] An anthill */
X! #define ROOMELEVEN  17  /* [Tom] The denizens of Room 11 */
X! #define SHOPBASE	18	/* everything above this is a shop */
X! #define ARMORSHOP	19	/* specific shop defines for level compiler */
X! #define SCROLLSHOP	20
X! #define POTIONSHOP	21
X! #define WEAPONSHOP	22
X! #define FOODSHOP	23
X! #define RINGSHOP	24
X! #define WANDSHOP	25
X! #define TOOLSHOP	26
X! #define BOOKSHOP	27
X! #define UNIQUESHOP	28	/* shops here & above not randomly gen'd. */
X! #define CANDLESHOP	28
X! #define MAXRTYPE	28	/* maximum valid room type */
X  
X  /* Special type for search_special() */
X  #define ANY_TYPE	(-1)
Xdiff -c -r ../nh31c/include/monsym.h ./include/monsym.h
X*** ../nh31c/include/monsym.h	Mon Jan 25 02:24:36 1993
X--- ./include/monsym.h	Fri Aug 20 13:24:50 1993
X***************
X*** 72,79 ****
X  #define S_WORM_TAIL	59
X  #define S_MIMIC_DEF	60
X  
X! #define MAXMCLASSES 61	/* number of monster classes */
X  
X  #if 0	/* moved to decl.h so that makedefs.c won't see them */
X  extern const char def_monsyms[MAXMCLASSES];	/* default class symbols */
X  extern uchar monsyms[MAXMCLASSES];		/* current class symbols */
X--- 72,82 ----
X  #define S_WORM_TAIL	59
X  #define S_MIMIC_DEF	60
X  
X! #define S_BADCOINS  61
X! #define S_BADLUNCH  62
X  
X+ #define MAXMCLASSES 63	/* number of monster classes */
X+ 
X  #if 0	/* moved to decl.h so that makedefs.c won't see them */
X  extern const char def_monsyms[MAXMCLASSES];	/* default class symbols */
X  extern uchar monsyms[MAXMCLASSES];		/* current class symbols */
X***************
X*** 145,150 ****
X--- 148,155 ----
X  #define DEF_WORM_TAIL	'~'
X  #define DEF_MIMIC_DEF	']'
X  
X+ #define DEF_BADCOINS    '$'
X+ #define DEF_BADLUNCH    '%'
X  
X  #define G_UNIQ		0x1000		/* generated only once */
X  #define G_NOHELL	0x0800		/* not generated in "hell" */
Xdiff -c -r ../nh31c/include/patchlevel.h ./include/patchlevel.h
X*** ../nh31c/include/patchlevel.h	Thu Aug 05 10:26:28 1993
X--- ./include/patchlevel.h	Fri Aug 20 13:59:16 1993
X***************
X*** 13,19 ****
X   * Incrementing EDITLEVEL can be used to force invalidation of old bones
X   * and save files.
X   */
X! #define EDITLEVEL	0
X  
X  /*
X   *  Patch 3, July 12, 1993
X--- 13,36 ----
X   * Incrementing EDITLEVEL can be used to force invalidation of old bones
X   * and save files.
X   */
X! #define EDITLEVEL	2
X! 
X! /*
X!  *  Patch 3, Edit Level 1, June 14, 1993
X!  *  - started folding in some of the NetHack-- changes (items, monsters,
X!  *    and special rooms; I'm leaving out the extra ~20 character classes
X!  *    because I don't want to create quest levels and artifacts for them
X!  *    all.  Yuval Oren and Tom Proudfoot were responsible for NetHack--,
X!  *    and I've added a bunch of monsters and a few artifacts. [CJH]
X!  *  - also carefully applied the patch to my patch by Dan Riley; it
X!  *    broke the code for 3.1.2 by just patching it in...  [CJH]
X!  *  - applied the fixed NetHack-- 3.1.2 patch to the new NetHack 3.1.3;
X!  *    no problems or complaints at all [CJH]
X!  *
X!  *  Patch 3, Edit Level 2, August 20, 1993
X!  *  - found and fixed a nasty shopkeeper bug
X!  *  - NetHack-- 3.1.3 should now be ready for release [CJH]
X!  */
X  
X  /*
X   *  Patch 3, July 12, 1993
Xdiff -c -r ../nh31c/src/do_wear.c ./src/do_wear.c
X*** ../nh31c/src/do_wear.c	Thu Aug 05 10:23:42 1993
X--- ./src/do_wear.c	Fri Aug 20 13:24:56 1993
X***************
X*** 226,231 ****
X--- 226,233 ----
X  	case ORCISH_CLOAK:
X  	case DWARVISH_CLOAK:
X  	case CLOAK_OF_MAGIC_RESISTANCE:
X+ 	case LAB_COAT:
X+ 	case EXPENSIVE_SUIT:
X  		break;
X  	case CLOAK_OF_INVISIBILITY:
X  		if (!oldprop && !See_invisible && !Blind) {
X***************
X*** 266,271 ****
X--- 268,279 ----
X  			return 0;
X  		}
X  		break;
X+     case LAB_COAT:
X+         pline("You feel less sterile.");
X+         break;
X+     case EXPENSIVE_SUIT:
X+         pline("You feel cheap.");
X+         break;
X  	default: impossible("Unknown type of cloak (%d)", uarmc->otyp);
X      }
X      setworn((struct obj *)0, W_ARMC);
X***************
X*** 629,634 ****
X--- 637,658 ----
X  			obj->known = TRUE;
X  		}
X  		break;
X+     case RIN_GAIN_INTELLIGENCE:
X+         ABON(A_INT) += obj->spe;
X+         flags.botl = 1;
X+         if(obj->spe || objects[RIN_GAIN_INTELLIGENCE].oc_name_known) {
X+             makeknown(RIN_GAIN_INTELLIGENCE);
X+             obj->known = TRUE;
X+         }
X+         break;
X+     case RIN_GAIN_DEXTERITY:
X+         ABON(A_DEX) += obj->spe;
X+         flags.botl = 1;
X+         if(obj->spe || objects[RIN_GAIN_DEXTERITY].oc_name_known) {
X+             makeknown(RIN_GAIN_DEXTERITY);
X+             obj->known = TRUE;
X+         }
X+         break;
X  	case RIN_INCREASE_DAMAGE:
X  		u.udaminc += obj->spe;
X  		break;
X***************
X*** 705,710 ****
X--- 729,742 ----
X  		break;
X  	case RIN_GAIN_STRENGTH:
X  		ABON(A_STR) -= obj->spe;
X+ 		flags.botl = 1;
X+ 		break;
X+ 	case RIN_GAIN_INTELLIGENCE:
X+ 		ABON(A_INT) -= obj->spe;
X+ 		flags.botl = 1;
X+ 		break;
X+ 	case RIN_GAIN_DEXTERITY:
X+ 		ABON(A_DEX) -= obj->spe;
X  		flags.botl = 1;
X  		break;
X  	case RIN_INCREASE_DAMAGE:
Xdiff -c -r ../nh31c/src/dokick.c ./src/dokick.c
X*** ../nh31c/src/dokick.c	Thu Aug 05 10:23:46 1993
X--- ./src/dokick.c	Fri Aug 20 13:25:00 1993
X***************
X*** 260,265 ****
X--- 260,267 ----
X  			   goldreqd = 500L;
X  			else if (mtmp->data == &mons[PM_CAPTAIN])
X  			   goldreqd = 750L;
X+ 			else if (mtmp->data == &mons[PM_GENERAL])
X+ 			   goldreqd = 1000L;
X  
X  			if (goldreqd) {
X  			   if (gold->quan > goldreqd +
Xdiff -c -r ../nh31c/src/drawing.c ./src/drawing.c
X*** ../nh31c/src/drawing.c	Fri Jun 11 14:36:22 1993
X--- ./src/drawing.c	Fri Aug 20 13:25:02 1993
X***************
X*** 152,157 ****
X--- 152,159 ----
X  	DEF_LIZARD,
X  	DEF_WORM_TAIL,
X  	DEF_MIMIC_DEF,		/* 60 */
X+ 	DEF_BADCOINS,
X+ 	DEF_BADLUNCH
X  };
X  
X  const char *monexplain[MAXMCLASSES] = {
X***************
X*** 178,184 ****
X  
X      "human",			"ghost",		"golem",
X      "demon",			"sea monster",		"lizard",
X!     "long worm tail",		"mimic"
X  };
X  
X  /*
X--- 180,187 ----
X  
X      "human",			"ghost",		"golem",
X      "demon",			"sea monster",		"lizard",
X!     "long worm tail",		"mimic",		"gold",
X!     "food"
X  };
X  
X  /*
Xdiff -c -r ../nh31c/src/engrave.c ./src/engrave.c
X*** ../nh31c/src/engrave.c	Thu Aug 05 10:23:56 1993
X--- ./src/engrave.c	Fri Aug 20 13:25:06 1993
X***************
X*** 865,871 ****
X  	    case ENGRAVE:
X  		multi = -(len/10);
X  		if ((otmp->oclass == WEAPON_CLASS) &&
X! 		    ((otmp->otyp != ATHAME) || otmp->cursed)) {
X  		    multi = -len;
X  		    maxelen = ((otmp->spe + 3) * 2) + 1;
X  			/* -2 = 3, -1 = 5, 0 = 7, +1 = 9, +2 = 11
X--- 865,872 ----
X  	    case ENGRAVE:
X  		multi = -(len/10);
X  		if ((otmp->oclass == WEAPON_CLASS) &&
X! 		    ((otmp->otyp != ATHAME) || otmp->cursed) &&
X!             ((otmp->otyp != SHARPENED_PENCIL) || otmp->cursed)) {
X  		    multi = -len;
X  		    maxelen = ((otmp->spe + 3) * 2) + 1;
X  			/* -2 = 3, -1 = 5, 0 = 7, +1 = 9, +2 = 11
Xdiff -c -r ../nh31c/src/hack.c ./src/hack.c
X*** ../nh31c/src/hack.c	Thu Aug 05 10:24:00 1993
X--- ./src/hack.c	Fri Aug 20 13:25:08 1993
X***************
X*** 1220,1226 ****
X  		    if(monstinroom(&mons[PM_SOLDIER], roomno) ||
X  			monstinroom(&mons[PM_SERGEANT], roomno) ||
X  			monstinroom(&mons[PM_LIEUTENANT], roomno) ||
X! 			monstinroom(&mons[PM_CAPTAIN], roomno))
X  			You("enter a military barracks!");
X  		    else 
X  			You("enter an abandoned barracks.");
X--- 1220,1227 ----
X  		    if(monstinroom(&mons[PM_SOLDIER], roomno) ||
X  			monstinroom(&mons[PM_SERGEANT], roomno) ||
X  			monstinroom(&mons[PM_LIEUTENANT], roomno) ||
X! 			monstinroom(&mons[PM_CAPTAIN], roomno) ||
X!             monstinroom(&mons[PM_GENERAL], roomno))
X  			You("enter a military barracks!");
X  		    else 
X  			You("enter an abandoned barracks.");
Xdiff -c -r ../nh31c/src/makemon.c ./src/makemon.c
X*** ../nh31c/src/makemon.c	Thu Aug 05 10:24:08 1993
X--- ./src/makemon.c	Fri Aug 20 13:25:12 1993
X***************
X*** 174,179 ****
X--- 174,180 ----
X  			  w1 = rn2(2) ? BROADSWORD : LONG_SWORD;
X  			  break;
X  			case PM_CAPTAIN:
X+ 			case PM_GENERAL:
X  #endif
X  			case PM_WATCH_CAPTAIN:
X  			  w1 = rn2(2) ? LONG_SWORD : SILVER_SABER;
X***************
X*** 404,409 ****
X--- 405,441 ----
X  			    (void) mongets(mtmp, LUCERN_HAMMER);
X  			else (void) mongets(mtmp, AKLYS);
X  			break;
X+ 			case 6:
X+ 			(void) mongets(mtmp, SPEAR);
X+ 			break;
X+ 			case 7:
X+ 			m_initthrow(mtmp, SPEAR, 3);
X+ 			break;
X+ 			case 8:
X+ 			(void) mongets(mtmp, SLING);
X+ 			m_initthrow(mtmp, ROCK, 12);
X+ 			break;
X+ 			case 9:
X+ 			(void) mongets(mtmp, CLUB);
X+ 			break;
X+ 			case 10:
X+ 			m_initthrow(mtmp, JAVELIN, 5);
X+ 			break;
X+ 			case 11:
X+ 			(void) mongets(mtmp, AXE);
X+ 			break;
X+ 			case 12:
X+ 			(void) mongets(mtmp, SHORT_SWORD);
X+ 			break;
X+ 			case 13:
X+ 		    (void) mongets(mtmp, MORNING_STAR);
X+ 		    break;
X+ 			case 14:
X+ 		    (void) mongets(mtmp, WAR_HAMMER);
X+ 		    break;
X+ 			case 15:
X+ 		    (void) mongets(mtmp, FLAIL);
X+ 		    break;
X  		    default:
X  			break;
X  		}
X***************
X*** 446,451 ****
X--- 478,484 ----
X  			case PM_SERGEANT: mac = 0; break;
X  			case PM_LIEUTENANT: mac = -2; break;
X  			case PM_CAPTAIN: mac = -3; break;
X+ 			case PM_GENERAL: mac = -5; break;
X  # endif
X  			case PM_WATCHMAN: mac = 3; break;
X  			case PM_WATCH_CAPTAIN: mac = -2; break;
X***************
X*** 691,696 ****
X--- 724,731 ----
X  		case S_EEL:
X  			mtmp->minvis = TRUE;
X  			break;
X+ 		case S_BADCOINS:
X+ 		case S_BADLUNCH:
X  		case S_LEPRECHAUN:
X  			mtmp->msleep = TRUE;
X  			break;
X***************
X*** 1337,1342 ****
X--- 1372,1378 ----
X  		case PM_CLAY_GOLEM: return 50;
X  		case PM_STONE_GOLEM: return 60;
X  		case PM_IRON_GOLEM: return 80;
X+ 		case PM_MIST_GOLEM: return 60;
X  		default: return 0;
X  	}
X  }
Xdiff -c -r ../nh31c/src/mhitu.c ./src/mhitu.c
X*** ../nh31c/src/mhitu.c	Thu Aug 05 10:24:12 1993
X--- ./src/mhitu.c	Fri Aug 20 13:25:16 1993
X***************
X*** 1671,1676 ****
X--- 1671,1682 ----
X  		    make_stunned(HStun + stun, TRUE);
X  		}
X  		break;
X+         case AD_TLPT:
X+         if(!mtmp->mcan && canseemon(mtmp) && mtmp->mcansee && rn2(5)) {
X+             pline("%s stares disconcertingly at you!", Monnam(mtmp));
X+             tele();
X+         }
X+         break;
X  	    case AD_BLND:
X  		if(!mtmp->mcan && canseemon(mtmp) && !defends(AD_BLND, uwep) &&
X  		   distu(mtmp->mx,mtmp->my) <= BOLT_LIM*BOLT_LIM) {
Xdiff -c -r ../nh31c/src/mklev.c ./src/mklev.c
X*** ../nh31c/src/mklev.c	Thu Aug 05 10:24:16 1993
X--- ./src/mklev.c	Fri Aug 20 13:25:18 1993
X***************
X*** 719,727 ****
X--- 719,733 ----
X  	else if(depth(&u.uz) > 4 && !rn2(6)) mkroom(COURT);
X  	else if(depth(&u.uz) > 6 && !rn2(7)) mkroom(ZOO);
X  	else if(depth(&u.uz) > 8 && !rn2(5)) mkroom(TEMPLE);
X+ 	else if(depth(&u.uz) > 8 && !rn2(8)) mkroom(REALZOO);
X+ 	else if(depth(&u.uz) > 8 && !rn2(7)) mkroom(BADFOODSHOP);
X+ 	else if(depth(&u.uz) > 7 && !rn2(7)) mkroom(ANTHILL);
X  	else if(depth(&u.uz) > 9 && !rn2(5) &&
X  	   !(mons[PM_KILLER_BEE].geno & (G_GENOD | G_EXTINCT))) mkroom(BEEHIVE);
X  	else if(depth(&u.uz) > 11 && !rn2(6)) mkroom(MORGUE);
X+ 	else if(depth(&u.uz) > 13 && !rn2(5)) mkroom(WASPHIVE);
X+ 	else if(depth(&u.uz) > 13 && !rn2(7)) mkroom(LEPRECOURT);
X+ 	else if(depth(&u.uz) > 14 && !rn2(5)) mkroom(GIANTCOURT);
X  	else
X  #ifdef ARMY
X  	if(depth(&u.uz) > 14 && !rn2(4) &&
Xdiff -c -r ../nh31c/src/mkroom.c ./src/mkroom.c
X*** ../nh31c/src/mkroom.c	Thu Aug 05 10:24:18 1993
X--- ./src/mkroom.c	Fri Aug 20 13:25:24 1993
X***************
X*** 22,27 ****
X--- 22,34 ----
X  static void NDECL(mktemple);
X  static coord * FDECL(shrine_pos, (int));
X  static struct permonst * NDECL(morguemon);
X+ static struct permonst * NDECL(waspmon);
X+ static struct permonst * NDECL(giantmon);
X+ static struct permonst * NDECL(lepremon);
X+ static struct permonst * NDECL(badfoodmon);
X+ static struct permonst * NDECL(realzoomon);
X+ static struct permonst * NDECL(roomelevenmon);
X+ static struct permonst * NDECL(anthillmon);
X  #ifdef ARMY
X  static struct permonst * NDECL(squadmon);
X  #endif
X***************
X*** 59,64 ****
X--- 66,78 ----
X  	case BARRACKS:	mkzoo(BARRACKS); break;
X  	case SWAMP:	mkswamp(); break;
X  	case TEMPLE:	mktemple(); break;
X+ 	case WASPHIVE:      mkzoo(WASPHIVE); break;
X+ 	case GIANTCOURT:    mkzoo(GIANTCOURT); break;
X+ 	case LEPRECOURT:    mkzoo(LEPRECOURT); break;
X+ 	case BADFOODSHOP:   mkzoo(BADFOODSHOP); break;
X+ 	case REALZOO:       mkzoo(REALZOO); break;
X+ 	case ROOMELEVEN:    mkzoo(ROOMELEVEN); break;
X+ 	case ANTHILL:       mkzoo(ANTHILL); break;
X  	default:	impossible("Tried to make a room of type %d.", roomtype);
X      }
X  }
X***************
X*** 227,232 ****
X--- 241,248 ----
X  
X  	sh = sroom->fdoor;
X  	switch(type) {
X+         case GIANTCOURT:
X+         case LEPRECOURT:
X  	    case COURT:
X  		if(level.flags.is_maze_lev) {
X  		    for(tx = sroom->lx; tx <= sroom->hx; tx++)
X***************
X*** 242,247 ****
X--- 258,264 ----
X  	    throne_placed:
X  		/* TODO: try to ensure the enthroned monster is an M2_PRINCE */
X  		break;
X+ 		case WASPHIVE:
X  	    case BEEHIVE:
X  		tx = sroom->lx + (sroom->hx - sroom->lx + 1)/2;
X  		ty = sroom->ly + (sroom->hy - sroom->ly + 1)/2;
X***************
X*** 277,286 ****
X--- 294,312 ----
X  		    continue;
X  		mon = makemon(
X  		    (type == COURT) ? courtmon() :
X+ 		    (type == GIANTCOURT) ? giantmon() :
X+ 		    (type == LEPRECOURT) ? lepremon() :
X  #ifdef ARMY
X  		    (type == BARRACKS) ? squadmon() :
X  #endif
X  		    (type == MORGUE) ? morguemon() :
X+ 		    (type == WASPHIVE) ? waspmon() :
X+ 		    (type == BADFOODSHOP) ? badfoodmon() :
X+ 		    (type == REALZOO) ? realzoomon() :
X+ 		    (type == ROOMELEVEN) ? roomelevenmon() :
X+ 		    (type == ANTHILL) ?
X+ 		    (sx == tx && sy == ty ? &mons[PM_QUEEN_ANT] :
X+ 		    anthillmon() ) :
X  		    (type == BEEHIVE) ?
X  			(sx == tx && sy == ty ? &mons[PM_QUEEN_BEE] : 
X  			 &mons[PM_KILLER_BEE]) :
X***************
X*** 294,299 ****
X--- 320,326 ----
X  			}
X  		}
X  		switch(type) {
X+ 		    case LEPRECOURT:
X  		    case ZOO:
X  			if(sroom->doorct)
X  			{
X***************
X*** 317,333 ****
X  			if(!rn2(3))
X  			    (void) mksobj_at(LUMP_OF_ROYAL_JELLY, sx, sy, TRUE);
X  			break;
X  #ifdef ARMY
X  		    case BARRACKS:
X  			if(!rn2(20))	/* the payroll and some loot */
X  			    (void) mksobj_at((rn2(3)) ? LARGE_BOX : CHEST,
X  					     sx, sy, TRUE);
X  			break;
X- #endif
X  		}
X  	    }
X  	switch (type) {
X  	      case COURT:
X  		  levl[tx][ty].typ = THRONE;
X  		  (void) somexy(sroom, &mm);
X  		  mkgold((long) rn1(50 * level_difficulty(),10), mm.x, mm.y);
X--- 344,366 ----
X  			if(!rn2(3))
X  			    (void) mksobj_at(LUMP_OF_ROYAL_JELLY, sx, sy, TRUE);
X  			break;
X+             case ROOMELEVEN:
X+             case ANTHILL:
X+             case REALZOO:
X+             case WASPHIVE:
X  #ifdef ARMY
X  		    case BARRACKS:
X+ #endif
X  			if(!rn2(20))	/* the payroll and some loot */
X  			    (void) mksobj_at((rn2(3)) ? LARGE_BOX : CHEST,
X  					     sx, sy, TRUE);
X  			break;
X  		}
X  	    }
X  	switch (type) {
X  	      case COURT:
X+ 	      case LEPRECOURT:
X+ 	      case GIANTCOURT:
X  		  levl[tx][ty].typ = THRONE;
X  		  (void) somexy(sroom, &mm);
X  		  mkgold((long) rn1(50 * level_difficulty(),10), mm.x, mm.y);
X***************
X*** 340,345 ****
X--- 373,379 ----
X  		  break;
X  #endif
X  	      case ZOO:
X+ 	      case REALZOO:
X  		  level.flags.has_zoo = 1;
X  		  break;
X  	      case MORGUE:
X***************
X*** 349,354 ****
X--- 383,390 ----
X  		  level.flags.has_swamp = 1;
X  		  break;
X  	      case BEEHIVE:
X+ 	      case WASPHIVE:
X+ 	      case ANTHILL:
X  		  level.flags.has_beehive = 1;
X  		  break;
X  	}
X***************
X*** 596,601 ****
X--- 632,653 ----
X  #endif /* OVL0 */
X  #ifdef OVLB
X  
X+ /* Giant Court */
X+ struct permonst *
X+ giantmon()
X+ {
X+     int     i = rn2(60) + rn2(3*level_difficulty());
X+     return(mkclass(S_GIANT,0));
X+ }
X+ 
X+ /* Leprechaun court; Croesus taken out because of Fort Luidos */
X+ struct permonst *
X+ lepremon()
X+ {
X+     int     i = rn2(60) + rn2(3*level_difficulty());
X+     return(mkclass(S_LEPRECHAUN,0));
X+ }
X+ 
X  struct permonst *
X  courtmon()
X  {
X***************
X*** 611,624 ****
X  	else			return(mkclass(S_KOBOLD,0));
X  }
X  
X  #ifdef ARMY
X! #define	    NSTYPES	(PM_CAPTAIN-PM_SOLDIER+1)
X  
X  static struct {
X      unsigned	pm;
X      unsigned	prob;
X  } squadprob[NSTYPES] = {
X!     {PM_SOLDIER, 80}, {PM_SERGEANT, 15}, {PM_LIEUTENANT, 4}, {PM_CAPTAIN, 1}
X  };
X  
X  static struct permonst *
X--- 663,735 ----
X  	else			return(mkclass(S_KOBOLD,0));
X  }
X  
X+ /* Real zoo; used Archaeologist instead of Zookeeper */
X+ struct permonst *
X+ realzoomon()
X+ {
X+ 	int     i = rn2(60) + rn2(3*level_difficulty());
X+ 	if (i > 125)       return(&mons[PM_JUMBO_THE_ELEPHANT]);
X+ 	else if (i > 100)       return(&mons[PM_MUMAK]);
X+ 	else if (i > 75)        return(&mons[PM_ARCHEOLOGIST]);
X+ 	else if (i > 60)        return(&mons[PM_TIGER]);
X+ 	else if (i > 50)        return(&mons[PM_APE]);
X+ 	else if (i > 45)        return(&mons[PM_PANTHER]);
X+ 	else if (i > 30)        return(&mons[PM_LEOPARD]);
X+ 	else if (i > 15)        return(&mons[PM_JAGUAR]);
X+ 	else                    return(&mons[PM_DOG]);
X+ }
X+ 
X+ /* Room Eleven */
X+ struct permonst *
X+ roomelevenmon()
X+ {
X+ 	int     i = rn2(60);
X+ 	if (i > 50)             return(&mons[PM_BUTCH]);
X+ 	else if (i > 40)        return(&mons[PM_YUVAL]);
X+ 	else if (i > 30)        return(&mons[PM_TOM]);
X+ 	else                    return(mkclass(S_FUNGUS,0));
X+ }
X+ 
X+ /* Anthill */
X+ struct permonst *
X+ anthillmon()
X+ {
X+ 	int     i = rn2(60) + rn2(3*level_difficulty());
X+ 	if (i > 125)            return(&mons[PM_QUEEN_ANT]);
X+ 	else if (i > 100)       return(&mons[PM_SOLDIER_ANT]);
X+ 	else if (i > 85)        return(&mons[PM_BLACK_ANT]);
X+ 	else if (i > 70)        return(&mons[PM_SNOW_ANT]);
X+ 	else if (i > 55)        return(&mons[PM_FIRE_ANT]);
X+ 	else                    return(&mons[PM_GIANT_ANT]);
X+ }
X+ 
X+ /* Wasp hive */
X+ struct permonst *
X+ waspmon()
X+ {
X+ 	int     i = rn2(60) + rn2(3*level_difficulty());
X+ 	if (i > 100)            return(&mons[PM_BLACK_WASP]);
X+ 	else if (i > 65)        return(&mons[PM_GIANT_WASP]);
X+ 	else                    return(&mons[PM_YELLOW_JACKET]);
X+ }
X+ 
X+ /* Bad food */
X+ struct permonst *       
X+ badfoodmon()
X+ {
X+ 	int     i = rn2(60) + rn2(3*level_difficulty());
X+ 	return(mkclass(S_BADLUNCH,0));
X+ }
X+ 
X  #ifdef ARMY
X! #define	    NSTYPES	(PM_GENERAL-PM_SOLDIER+1)
X  
X  static struct {
X      unsigned	pm;
X      unsigned	prob;
X  } squadprob[NSTYPES] = {
X!     {PM_SOLDIER, 80}, {PM_SERGEANT, 15}, {PM_LIEUTENANT, 4}, {PM_CAPTAIN, 1},
X!     {PM_GENERAL, 1}
X  };
X  
X  static struct permonst *
Xdiff -c -r ../nh31c/src/mon.c ./src/mon.c
X*** ../nh31c/src/mon.c	Thu Aug 05 10:24:20 1993
X--- ./src/mon.c	Fri Aug 20 13:25:26 1993
X***************
X*** 51,56 ****
X--- 51,74 ----
X  	int mndx = monsndx(mdat);
X  
X  	switch(mndx) {
X+ 	    case PM_KILLER_FOOD_RATION:
X+ 	        (void)mksobj_at(FOOD_RATION,x,y,TRUE);
X+ 	        goto default_1;
X+ 	    case PM_KILLER_TRIPE_RATION:
X+ 	        (void)mksobj_at(TRIPE_RATION,x,y,TRUE);
X+ 	        goto default_1;
X+ 	    case PM_RAVENOUS_CREAM_PIE:
X+ 	        (void)mksobj_at(CREAM_PIE,x,y,TRUE);
X+ 	        goto default_1;
X+ 	    case PM_TOM: /* NetHack-- "author" */
X+ 	        (void)mksobj_at(RIN_AGGRAVATE_MONSTER,x,y,FALSE);
X+ 	        (void)mksobj_at(SCR_MAGIC_MAPPING,x,y,FALSE);
X+ 	        (void)mksobj_at(SCR_MAGIC_MAPPING,x,y,FALSE);
X+ 	        (void)mksobj_at(POT_HALLUCINATION,x,y,FALSE);
X+ 	        goto default_1;
X+ 	    case PM_YUVAL:
X+ 	        (void)mksobj_at(BUGLE,x,y,FALSE);
X+ 	        goto default_1;
X  	    case PM_GRAY_DRAGON:
X  	    case PM_RED_DRAGON:
X  	    case PM_ORANGE_DRAGON:
X***************
X*** 153,158 ****
X--- 171,188 ----
X  			obj = mksobj_at(LEATHER_ARMOR, x, y, TRUE);
X  		mtmp->mnamelth = 0;
X  		break;
X+ 		case PM_PILE_OF_KILLER_GOLD_COINS:
X+ 		    mkgold(rnd(200),x,y);
X+ 		    /* fall through */
X+ 		case PM_PILE_OF_CREEPING_GOLD_COINS:
X+ 		    mkgold(rnd(100),x,y);
X+ 		    /* fall through */
X+ 		case PM_GOLD_MIMIC:
X+ 		    mkgold(rnd(50),x,y);
X+ 		    /* fall through */
X+ 		case PM_PILE_OF_SILVER_COINS:
X+ 		    mkgold(rnd(25),x,y);
X+ 		    break;
X  	    default_1:
X  	    default:
X  		if (mdat->geno & G_NOCORPSE)
Xdiff -c -r ../nh31c/src/mondata.c ./src/mondata.c
X*** ../nh31c/src/mondata.c	Thu Aug 05 10:24:22 1993
X--- ./src/mondata.c	Fri Aug 20 13:25:28 1993
X***************
X*** 359,364 ****
X--- 359,365 ----
X  	{PM_SOLDIER, PM_SERGEANT},
X  	{PM_SERGEANT, PM_LIEUTENANT},
X  	{PM_LIEUTENANT, PM_CAPTAIN},
X+ 	{PM_CAPTAIN, PM_GENERAL},
X  #endif
X  	{PM_WATCHMAN, PM_WATCH_CAPTAIN},
X  	{PM_BABY_CROCODILE, PM_CROCODILE},
Xdiff -c -r ../nh31c/src/monst.c ./src/monst.c
X*** ../nh31c/src/monst.c	Fri Jun 11 14:37:08 1993
X--- ./src/monst.c	Fri Aug 20 13:25:50 1993
X***************
X*** 123,128 ****
X--- 123,138 ----
X  	  30, 10, 0, MS_SILENT, MZ_TINY, MR_FIRE, MR_FIRE,
X  	  M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
X  	  M2_HOSTILE, 0, C(RED) },
X+     { "snow ant", S_ANT, 3, 18, 3, 10, 0, (G_GENO | G_SGROUP | 1),
X+       { { AT_BITE, AD_COLD, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       30, 10, 0, MS_SILENT, MZ_TINY, MR_COLD, MR_COLD,
X+       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
X+       M2_HOSTILE, 0, C(CYAN) },
X+     { "black ant", S_ANT, 3, 18, 3, 10, 0, (G_GENO | G_SGROUP | 1),
X+       { { AT_BITE, AD_ACID, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       30, 10, 0, MS_SILENT, MZ_TINY, MR_ACID, MR_ACID,
X+       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE | M1_ACID,
X+       M2_HOSTILE, 0, C(BLACK) },
X  	{ "giant beetle", S_ANT, 5, 6, 4, 0, 0, (G_GENO | 3),
X  	  { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK,
X  	    NO_ATTK, NO_ATTK, NO_ATTK },
X***************
X*** 135,140 ****
X--- 145,182 ----
X  	  1, 5, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
X  	  M1_ANIMAL | M1_FLY | M1_NOHANDS | M1_POIS,
X  	  M2_HOSTILE | M2_FEMALE | M2_PRINCE, 0, C(HI_LORD) },
X+ 	{ "queen ant", S_ANT, 11, 18, 3, 0, 0, (G_GENO | G_NOGEN),
X+ 	  { { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_DRST, 3, 4 },
X+ 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  20, 20, 0, MS_SILENT, MZ_TINY, MR_POISON, MR_POISON,
X+ 	  M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_OVIPAROUS | M1_CARNIVORE,
X+ 	  M2_HOSTILE | M2_FEMALE | M2_LORD, 0, C(HI_LORD) },
X+     { "yellow jacket", S_ANT, 3, 18, -1, 0, 0, (G_GENO | 1),
X+       { { AT_STNG, AD_DRST, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       10, 10, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
X+       M1_FLY | M1_CONCEAL | M1_NOHANDS | M1_ANIMAL | M1_OMNIVORE,
X+       M2_HOSTILE, 0, C(YELLOW) },
X+     { "killer beetle", S_ANT, 6, 6, 4, 0, 0, (G_GENO | 1),
X+       { { AT_BITE, AD_PHYS, 3, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       10, 10, 0, MS_SILENT, MZ_MEDIUM, MR_POISON, MR_POISON,
X+       M1_NOHANDS | M1_ANIMAL | M1_POIS | M1_OMNIVORE,
X+       M2_HOSTILE, 0, C(BLACK) },
X+     { "giant wasp", S_ANT, 6, 18, -1, 0, 0, (G_GENO | G_LGROUP | 1),
X+       { { AT_STNG, AD_DRST, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       10, 10, 0, MS_BUZZ, MZ_SMALL, MR_POISON, MR_POISON,
X+       M1_FLY | M1_CONCEAL | M1_NOHANDS | M1_ANIMAL | M1_OMNIVORE | M1_POIS,
X+       M2_HOSTILE, 0, C(RED) },
X+     { "black wasp", S_ANT, 9, 18, -1, 0, 0, (G_GENO | G_LGROUP | 2),
X+       { { AT_STNG, AD_DRST, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       10, 10, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
X+       M1_FLY | M1_CONCEAL | M1_NOHANDS | M1_ANIMAL | M1_OMNIVORE | M1_POIS,
X+       M2_HOSTILE, 0, C(BLACK) },
X+     { "the King Bee", S_ANT, 13, 18, -1, 0, 0, (G_UNIQ | G_NOCORPSE | 1),
X+       { { AT_STNG, AD_DRST, 1, 12 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       10, 10, 0, MS_BUZZ, MZ_SMALL, MR_POISON, MR_POISON,
X+       M1_FLY | M1_NOHANDS | M1_ANIMAL | M1_POIS | M1_OMNIVORE,
X+       M2_NOPOLY | M2_PRINCE | M2_MALE | M2_PNAME | M2_HOSTILE | M2_STALK,
X+       0, C(HI_LORD) },
X  /*	blobs	*/
X  	{ "acid blob", S_BLOB, 1, 3, 8, 0, 0, (G_GENO | 2),
X  	  { { AT_NONE, AD_ACID, 1, 8 }, NO_ATTK, NO_ATTK,
X***************
X*** 143,148 ****
X--- 185,207 ----
X  	  MR_SLEEP | MR_POISON | MR_ACID | MR_STONE, MR_SLEEP | MR_STONE,
X  	  M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
X  	  M1_MINDLESS | M1_ACID, M2_WANDER | M2_NEUTER, 0, C(GREEN) },
X+     { "red blob", S_BLOB, 1, 3, 8, 0, 0, (G_GENO | 1),
X+       { { AT_TUCH, AD_FIRE, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       30, 10, 0, MS_SILENT, MZ_TINY, MR_FIRE | MR_SLEEP, MR_FIRE,
X+       M1_AMORPHOUS | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
X+       M1_MINDLESS | M1_ACID, M2_WANDER | M2_NEUTER, 0, C(RED) },
X+     { "white blob", S_BLOB, 1, 3, 8, 0, 0, (G_GENO | 1),
X+       { { AT_TUCH, AD_SLEE, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       30, 10, 0, MS_SILENT, MZ_TINY, MR_COLD | MR_STONE | MR_SLEEP,
X+       MR_COLD | MR_STONE, M1_AMORPHOUS | M1_BREATHLESS | M1_NOEYES |
X+       M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_ACID, M2_WANDER | M2_NEUTER,
X+       0, C(WHITE) },
X+     { "blue blob", S_BLOB, 1, 3, 8, 0, 0, (G_GENO | 1),
X+       { { AT_TUCH, AD_ELEC, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       30, 10, 0, MS_SILENT, MZ_TINY, MR_ELEC | MR_STONE | MR_SLEEP,
X+       MR_ELEC | MR_STONE, M1_AMORPHOUS | M1_BREATHLESS | M1_NOEYES |
X+       M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_ACID, M2_WANDER | M2_NEUTER,
X+       0, C(BLUE) },
X  	{ "quivering blob", S_BLOB, 5, 1, 8, 0, 0, (G_GENO | 2),
X  	  { { AT_TUCH, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
X  	    NO_ATTK, NO_ATTK, NO_ATTK },
X***************
X*** 159,164 ****
X--- 218,242 ----
X  	  M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_OMNIVORE |
X  	  M1_ACID, M2_WANDER | M2_HOSTILE | M2_NEUTER,
X  	  0, C(CYAN) },
X+     { "poisonous blob", S_BLOB, 5, 6, 8, 0, 0, (G_GENO | 1),
X+       { { AT_TUCH, AD_DRST, 1, 12 }, { AT_SPIT, AD_DRST, 1, 4 },
X+       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       200, 200, 0, MS_SILENT, MZ_SMALL,
X+       MR_SLEEP | MR_POISON, MR_POISON,
X+       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_OMNIVORE |
X+       M1_POIS, M2_WANDER | M2_HOSTILE | M2_NEUTER, 0, C(BLACK) },
X+     { "gigantic blob", S_BLOB, 10, 1, 8, 0, 0, (G_GENO | 2),
X+       { { AT_ENGL, AD_DISE, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       200, 200, 0, MS_SILENT, MZ_SMALL,
X+       MR_SLEEP | MR_POISON, MR_POISON,
X+       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_OMNIVORE |
X+       M1_POIS, M2_WANDER | M2_HOSTILE | M2_NEUTER, 0, C(BLACK) },
X+     { "The Blob", S_BLOB, 16, 1, 8, 0, 0, (G_UNIQ | G_NOCORPSE | 1),
X+       { { AT_ENGL, AD_DISE, 1, 12 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+       200, 200, 0, MS_SILENT, MZ_SMALL,
X+       MR_SLEEP | MR_POISON, MR_POISON,
X+       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_OMNIVORE |
X+       M1_POIS, M2_NEUTER | M2_PNAME | M2_HOSTILE | M2_STALK, 0, C(RED) },
X  /*	cockatrice	*/
X  	{ "cockatrice", S_COCKATRICE, 5, 6, 6, 30, 0, (G_GENO | 5),
X  	  { { AT_BITE, AD_PHYS, 1, 3 }, { AT_TUCH, AD_STON, 0, 0 },
X***************
X*** 166,177 ****
X--- 244,271 ----
X  	  30, 30, 0, MS_HISS, MZ_SMALL,
X  	  MR_POISON | MR_STONE, MR_POISON | MR_STONE,
X  	  M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS, M2_HOSTILE, 0, C(YELLOW) },
X+ 	{ "chickatrice", S_COCKATRICE, 2, 3, 3, 15, 0, (G_GENO | G_SGROUP | 1),
X+ 	  { { AT_BITE, AD_PHYS, 1, 3 }, { AT_TUCH, AD_STON, 0, 0 },
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  30, 30, 0, MS_HISS, MZ_SMALL,
X+ 	  MR_POISON | MR_STONE, MR_POISON | MR_STONE,
X+ 	  M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS, M2_HOSTILE, 0, C(YELLOW) },
X  /*	dogs and other canines	*/
X  	{ "jackal", S_DOG, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3),
X  	  { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK,
X  	    NO_ATTK, NO_ATTK, NO_ATTK },
X  	  300, 250, 0, MS_BARK, MZ_SMALL, 0, 0,
X  	  M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
X+ 	{ "dingo", S_DOG, 0, 12, 6, 0, 0, (G_GENO | G_SGROUP | 1),
X+ 	  { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  250, 250, 0, MS_BARK, MZ_SMALL, 0, 0,
X+ 	  M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
X+ 	{ "coyote", S_DOG, 1, 12, 6, 0, 0, (G_GENO | G_SGROUP | 1),
X+ 	  { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  250, 250, 0, MS_BARK, MZ_SMALL, 0, 0,
X+ 	  M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
X  	{ "werejackal", S_DOG, 2, 12, 7, 10, -7, G_NOGEN | G_NOCORPSE,
X  	  { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK,
X  	    NO_ATTK, NO_ATTK, NO_ATTK },
X***************
X*** 219,224 ****
X--- 313,333 ----
X  	  700, 300, 0, MS_BARK, MZ_LARGE, MR_COLD, MR_COLD,
X  	  M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
X  	  M2_HOSTILE | M2_STRONG, 0, C(CYAN) },
X+ 	{ "pit bull", S_DOG, 9, 12, 4, 0, -5,
X+ 	  (G_GENO | G_SGROUP | 2),
X+ 	  { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  350, 350, 0, MS_BARK, MZ_MEDIUM,
X+ 	  0, 0, M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
X+ 	  M2_HOSTILE | M2_DOMESTIC, 0, C(BLACK) },
X+ 	{ "Wile E. Coyote", S_DOG, 10, 12, 6, 0, 0, (G_UNIQ | G_NOCORPSE | 1),
X+ 	  { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  WT_HUMAN, 250, 0, MS_LAUGH, MZ_HUMAN, 0, 0,
X+ 	  M1_HUMANOID | M1_CARNIVORE | M1_REGEN,
X+       M2_HOSTILE | M2_STALK | M2_PNAME | M2_MALE | M2_NOPOLY | M2_LORD |
X+       M2_GREEDY | M2_JEWELS | M2_COLLECT | M2_MAGIC,
X+       0, C(BROWN) },
X  	{ "hell hound pup", S_DOG, 7, 12, 4, 20, -5,
X  	  (G_HELL | G_GENO | G_SGROUP | 1),
X  	  { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_FIRE, 2, 6 },
X***************
X*** 248,259 ****
X--- 357,404 ----
X  	  10, 10, 0, MS_SILENT, MZ_SMALL, 0, 0,
X  	  M1_FLY | M1_AMPHIBIOUS | M1_NOLIMBS | M1_NOHEAD,
X  	  M2_HOSTILE | M2_NEUTER, 0, C(BLUE) },
X+ 	{ "burning eye", S_EYE, 2, 1, 9, 10, 0, (G_GENO | 1),
X+ 	  { { AT_NONE, AD_FIRE, 1, 6 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  10, 10, 0, MS_SILENT, MZ_SMALL, MR_FIRE, MR_FIRE,
X+ 	  M1_FLY | M1_AMPHIBIOUS | M1_NOLIMBS | M1_NOHEAD,
X+ 	  M2_HOSTILE | M2_NEUTER, 0, C(RED) },
X+ 	{ "glowing eye", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 1),
X+ 	  { { AT_GAZE, AD_BLND, 0, 0 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  10, 10, 0, MS_SILENT, MZ_SMALL, 0, 0,
X+ 	  M1_FLY | M1_AMPHIBIOUS | M1_NOLIMBS | M1_NOHEAD | M1_POIS,
X+ 	  M2_HOSTILE | M2_NEUTER, 0, C(GREEN) },
X  	{ "freezing sphere", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 2),
X  	  { { AT_EXPL, AD_COLD, 4, 6 }, NO_ATTK, NO_ATTK,
X  	    NO_ATTK, NO_ATTK, NO_ATTK },
X  	  10, 10, 0, MS_SILENT, MZ_SMALL, MR_COLD, MR_COLD,
X  	  M1_FLY | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
X  	  M2_HOSTILE | M2_NEUTER, 0, C(WHITE) },
X+ 	{ "flaming sphere", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 2),
X+ 	  { { AT_EXPL, AD_FIRE, 4, 6 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  10, 10, 0, MS_SILENT, MZ_SMALL, MR_FIRE, MR_FIRE,
X+ 	  M1_FLY | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
X+ 	  M2_HOSTILE | M2_NEUTER, 0, C(RED) },
X+ 	{ "bloodshot eye", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 1),
X+ 	  { { AT_NONE, AD_STUN, 0, 0 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  10, 10, 0, MS_SILENT, MZ_SMALL, 0, 0,
X+ 	  M1_FLY | M1_AMPHIBIOUS | M1_NOLIMBS | M1_NOHEAD | M1_POIS,
X+ 	  M2_HOSTILE | M2_NEUTER, 0, C(RED) },
X+ 	{ "blinking eye", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 1),
X+ 	  { { AT_GAZE, AD_TLPT, 0, 0 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  10, 10, 0, MS_SILENT, MZ_SMALL, 0, 0,
X+ 	  M1_FLY | M1_AMPHIBIOUS | M1_NOLIMBS | M1_NOHEAD | M1_POIS,
X+ 	  M2_HOSTILE | M2_NEUTER, 0, C(BROWN) },
X+ 	{ "beholder", S_EYE, 10, 13, 4, 0, 0, (G_GENO | 1),
X+ 	  { { AT_GAZE, AD_STUN, 0, 0 }, { AT_BITE, AD_PHYS, 3, 4 }, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  10, 10, 0, MS_SILENT, MZ_SMALL, 0, 0,
X+ 	  M1_FLY | M1_AMPHIBIOUS | M1_NOLIMBS | M1_NOHEAD | M1_TPORT,
X+ 	  M2_HOSTILE | M2_NEUTER, 0, C(HI_LORD) },
X  /*	felines 	*/
X  	{ "kitten", S_FELINE, 2, 18, 6, 0, 0, (G_GENO | 1),
X  	  { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
X***************
X*** 279,290 ****
X--- 424,465 ----
X  	  250, 250, 0, MS_MEW, MZ_SMALL, 0, 0,
X  	  M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
X  	  M2_STRONG | M2_DOMESTIC, 0, C(HI_DOMESTIC) },
X+ 	{ "leopard", S_FELINE, 4, 15, 6, 0, 0, (G_GENO | 2),
X+ 	  { { AT_BITE, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
X+         { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  300, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
X+ 	  M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
X+ 	  M2_HOSTILE, 0, C(YELLOW) },
X+ 	{ "panther", S_FELINE, 6, 12, 6, 0, 0, (G_GENO | 2),
X+ 	  { { AT_BITE, AD_PHYS, 1, 10 }, { AT_CLAW, AD_PHYS, 2, 4 },
X+         { AT_CLAW, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  300, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
X+ 	  M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
X+ 	  M2_HOSTILE, 0, C(BLACK) },
X  	{ "tiger", S_FELINE, 6, 12, 6, 0, 0, (G_GENO | 2),
X  	  { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
X  	    { AT_BITE, AD_PHYS, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK },
X  	  600, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
X  	  M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
X  	  M2_HOSTILE, 0, C(YELLOW) },
X+ 	{ "sabre-toothed cat", S_FELINE, 10, 12, 6, 0, 0, (G_GENO | 2),
X+ 	  { { AT_CLAW, AD_PHYS, 2, 3 }, { AT_CLAW, AD_PHYS, 2, 3 },
X+ 	    { AT_BITE, AD_PHYS, 3, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  600, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
X+ 	  M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
X+ 	  M2_HOSTILE, 0, C(YELLOW) },
X+ 	{ "hellcat", S_FELINE, 13, 15, 6, 0, 0, (G_GENO | 1),
X+ 	  { { AT_CLAW, AD_PHYS, 2, 3 }, { AT_CLAW, AD_PHYS, 2, 3 },
X+ 	    { AT_BITE, AD_PHYS, 3, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  600, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
X+ 	  M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
X+ 	  M2_HOSTILE, 0, C(BROWN) },
X+ 	{ "Rexfelis", S_FELINE, 16, 12, 6, 0, 0, (G_UNIQ | G_NOCORPSE | 1),
X+ 	  { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_CLAW, AD_PHYS, 2, 6 },
X+ 	    { AT_BITE, AD_PHYS, 3, 12 }, NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  600, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
X+ 	  M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
X+ 	  M2_HOSTILE | M2_NOPOLY | M2_PNAME | M2_STALK, 0, C(BROWN) },
X  /*	gremlins	*/
X  	{ "gremlin", S_GREMLIN, 5, 12, 2, 25, -9, (G_GENO | 2),
X  	  { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
X***************
X*** 292,303 ****
X--- 467,503 ----
X  	    NO_ATTK, NO_ATTK },
X  	  100, 20, 0, MS_LAUGH, MZ_SMALL, MR_POISON, 0,
X  	  M1_SWIM | M1_HUMANOID | M1_POIS, M2_STALK, 0, C(GREEN) },
X+ 	{ "gremlin leader", S_GREMLIN, 8, 12, 2, 25, -9, (G_GENO | 2),
X+ 	  { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_CLAW, AD_PHYS, 1, 8 },
X+ 	    { AT_BITE, AD_PHYS, 1, 6 }, { AT_CLAW, AD_CURS, 0, 0 },
X+ 	    NO_ATTK, NO_ATTK },
X+ 	  100, 30, 0, MS_LAUGH, MZ_SMALL, MR_POISON, 0,
X+ 	  M1_SWIM | M1_HUMANOID | M1_POIS, M2_STALK, 0, C(GREEN) },
X  /*	humanoids	*/
X  	{ "hobbit", S_HUMANOID, 1, 9, MARM(10,7), 0, 6, (G_GENO | 2),
X  	  { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
X  	    NO_ATTK, NO_ATTK, NO_ATTK },
X  	  500, 200, 0, MS_HUMANOID, MZ_SMALL, 0, 0,
X  	  M1_HUMANOID, M2_COLLECT, 0, C(GREEN) },
X+ 	{ "hobbit thief", S_HUMANOID, 2, 9, MARM(10,7), 0, 6, (G_GENO | 1),
X+ 	  { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_TUCH, AD_SGLD, 0, 0 }, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  300, 200, 0, MS_HUMANOID, MZ_SMALL, 0, 0,
X+ 	  M1_HUMANOID, M2_HOSTILE | M2_GREEDY | M2_COLLECT,
X+       0, C(GREEN) },
X+ 	{ "hobbit bandit", S_HUMANOID, 3, 9, MARM(10,7), 0, 6, (G_GENO | 1),
X+ 	  { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_TUCH, AD_SITM, 0, 0 }, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  200, 200, 0, MS_HUMANOID, MZ_SMALL, 0, 0,
X+ 	  M1_HUMANOID, M2_HOSTILE | M2_GREEDY | M2_COLLECT,
X+       0, C(GREEN) },
X+ 	{ "Bilbo", S_HUMANOID, 7, 9, MARM(10,7), 0, 6, (G_UNIQ | G_NOCORPSE | 1),
X+ 	  { { AT_WEAP, AD_PHYS, 3, 6 }, { AT_TUCH, AD_SITM, 0, 0 }, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  200, 200, 0, MS_HUMANOID, MZ_SMALL, 0, 0,
X+ 	  M1_HUMANOID,
X+       M2_NOPOLY | M2_HOSTILE | M2_GREEDY | M2_COLLECT | M2_PRINCE | M2_PNAME,
X+       0, C(GREEN) },
X  	{ "dwarf", S_HUMANOID,	2, 6, MARM(10,4), 10, 4, (G_GENO | 3),
X  	  { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
X  	    NO_ATTK, NO_ATTK, NO_ATTK },
X***************
X*** 310,315 ****
X--- 510,532 ----
X  	    NO_ATTK, NO_ATTK, NO_ATTK },
X  	  1250, 250, 0, MS_GROWL, MZ_LARGE, 0, 0,
X  	  M1_HUMANOID, M2_STRONG | M2_COLLECT, 0, C(BROWN) },
X+ 	{ "huge bugbear", S_HUMANOID, 5, 9, 4, 0, -6, (G_GENO | 1),
X+ 	  { { AT_WEAP, AD_PHYS, 2, 5 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  1350, 250, 0, MS_GROWL, MZ_LARGE, 0, 0,
X+ 	  M1_HUMANOID, M2_STRONG | M2_COLLECT, 0, C(BROWN) },
X+ 	{ "bugbear chieftan", S_HUMANOID, 7, 9, 3, 0, -6, (G_GENO | 1),
X+ 	  { { AT_WEAP, AD_PHYS, 2, 7 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  1450, 250, 0, MS_GROWL, MZ_LARGE, 0, 0,
X+ 	  M1_HUMANOID, M2_STRONG | M2_COLLECT, 0, C(BROWN) },
X+ 	{ "dwarven thief", S_HUMANOID,  4, 6, MARM(10,4), 10, 5, (G_GENO | 1),
X+ 	  { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_TUCH, AD_SITM, 0, 0 },
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  900, 300, 0, MS_HUMANOID, MZ_HUMAN,
X+ 	  0, 0, M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
X+ 	  M2_DWARF | M2_STRONG | M2_LORD | M2_MALE | M2_GREEDY | M2_JEWELS |
X+ 	  M2_COLLECT | M2_HOSTILE, 0, C(BLUE) },
X  	{ "dwarf lord", S_HUMANOID,  4, 6, MARM(10,4), 10, 5, (G_GENO | 2),
X  	  { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
X  	    NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X***************
X*** 317,322 ****
X--- 534,546 ----
X  	  0, 0, M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
X  	  M2_DWARF | M2_STRONG | M2_LORD | M2_MALE | M2_GREEDY | M2_JEWELS |
X  	  M2_COLLECT, 0, C(BLUE) },
X+ 	{ "duergar", S_HUMANOID,  5, 6, MARM(10,4), 10, -6, (G_GENO | 1),
X+ 	  { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  900, 300, 0, MS_HUMANOID, MZ_HUMAN,
X+ 	  0, 0, M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
X+ 	  M2_DWARF | M2_STRONG | M2_LORD | M2_MALE | M2_GREEDY | M2_JEWELS |
X+ 	  M2_COLLECT | M2_HOSTILE, 0, C(BLUE) },
X  	{ "dwarf king", S_HUMANOID,  6, 6, MARM(10,4), 20, 6, (G_GENO | 1),
X  	  { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 },
X  	    NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X***************
X*** 356,366 ****
X--- 580,600 ----
X  	  150, 100, 0, MS_SILENT, MZ_MEDIUM, MR_SLEEP | MR_POISON, MR_SLEEP,
X  	  M1_POIS | M1_REGEN, M2_HOSTILE | M2_WANDER | M2_STALK | M2_NEUTER,
X  	  0, C(BROWN) },
X+ 	{ "dretch", S_IMP, 3, 12, 2, 20, -7, (G_GENO | 1),
X+ 	  { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  10, 10, 0, MS_CUSS, MZ_TINY, 0, 0,
X+ 	  M1_REGEN, M2_WANDER | M2_STALK, 0, C(RED) },
X  	{ "quasit", S_IMP, 3, 15, 2, 20, -7, (G_GENO | 2),
X  	  { { AT_CLAW, AD_DRDX, 1, 2 }, { AT_CLAW, AD_DRDX, 1, 2 },
X  	    { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
X  	  200, 200, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
X  	  M1_REGEN, M2_STALK, 0, C(BLUE) },
X+ 	{ "rutterkin", S_IMP, 5, 15, 2, 20, -7, (G_GENO | 2),
X+ 	  { { AT_CLAW, AD_DRDX, 1, 2 }, { AT_CLAW, AD_DRDX, 1, 2 },
X+ 	    { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  200, 200, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
X+ 	  M1_REGEN, M2_STALK, 0, C(BROWN) },
X  	{ "tengu", S_IMP, 6, 13, 5, 30, 7, (G_GENO | 3),
X  	  { { AT_BITE, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK,
X  	    NO_ATTK, NO_ATTK, NO_ATTK },
X***************
X*** 374,379 ****
X--- 608,620 ----
X  	  MR_COLD | MR_POISON, MR_COLD | MR_POISON,
X  	  M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
X  	  M1_MINDLESS | M1_OMNIVORE, M2_HOSTILE | M2_NEUTER, 0, C(BLUE) },
X+ 	{ "red jelly", S_JELLY, 4, 0, 8, 10, 0, (G_GENO | 2),
X+ 	  { { AT_NONE, AD_FIRE, 0, 6 }, NO_ATTK, NO_ATTK,
X+ 	    NO_ATTK, NO_ATTK, NO_ATTK },
X+ 	  50, 20, 0, MS_SILENT, MZ_MEDIUM,
X+ 	  MR_FIRE | MR_POISON, MR_FIRE | MR_POISON,
X+ 	  M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
X+ 	  M1_MINDLESS | M1_OMNIVORE, M2_HOSTILE | M2_NEUTER, 0, C(RED) },
X  	{ "spotted jelly", S_JELLY, 5, 0, 8, 10, 0, (G_GENO | 1),
X  	  { { AT_NONE, AD_ACID, 0, 6 }, NO_ATTK, NO_ATTK,
X  	    NO_ATTK, NO_ATTK, NO_ATTK },
X***************
X*** 388,393 ****
X--- 629,642 ----
SHAR_EOF
true || echo 'restore of NH31C--.Patch failed'
fi
echo 'End of NetHack-- part 1'
echo 'File NH31C--.Patch is continued in part 2'
echo 2 > _shar_seq_.tmp
exit 0
-- 
-------------------========================================-------------------
                                       cher...@semprini.tdkcs.waterloo.on.ca
                                                                Chris Herborth