Source:NetHack 3.3.0/monst.c

From NetHackWiki
Jump to navigation Jump to search

Below is the full text to monst.c from the source code of NetHack 3.3.0. To link to a particular line, write [[NetHack 3.3.0/monst.c#line123]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.

1.    /*	SCCS Id: @(#)monst.c	3.3	99/01/04	*/
2.    /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
5.    #include "config.h"
6.    #include "permonst.h"
7.    #include "monsym.h"
8.    #include "dungeon.h"	/* prerequisite for eshk,vault,epri */
9.    #include "eshk.h"
10.   #include "vault.h"
11.   #include "epri.h"
12.   
13.   #define NO_ATTK {0,0,0,0}
14.   
15.   #define WT_ELF	   800
16.   #define WT_DRAGON 4500
17.   
18.   #ifdef C
19.   #undef C
20.   #endif
21.   #ifdef TEXTCOLOR
22.   #include "color.h"
23.   #define C(color)	color
24.   #define HI_DOMESTIC	CLR_WHITE	/* use for player + friendlies */
25.   #define HI_LORD		CLR_MAGENTA
26.   #else
27.   #define C(color)
28.   #endif
29.   
30.   void NDECL(monst_init);
31.   /*
32.    *	Entry Format:		(from permonst.h)
33.    *
34.    *	name, symbol (S_* defines),
35.    *	difficulty level, move rate, armor class, magic resistance,
36.    *	alignment, creation/geno flags (G_* defines),
37.    *	6 * attack structs ( type , damage-type, # dice, # sides ),
38.    *	weight (WT_* defines), nutritional value, extension length,
39.    *	sounds made (MS_* defines), physical size (MZ_* defines),
40.    *	resistances, resistances conferred (both MR_* defines),
41.    *	3 * flag bitmaps (M1_*, M2_*, and M3_* defines respectively)
42.    *	symbol color (C(x) macro)
43.    */
44.   #define MON(nam,sym,lvl,gen,atk,siz,mr1,mr2,flg1,flg2,flg3,col) \
45.   	   {nam,sym,lvl,gen,atk,siz,mr1,mr2,flg1,flg2,flg3,C(col)}
46.   /* LVL() and SIZ() collect several fields to cut down on # of args for MON() */
47.   #define LVL(lvl,mov,ac,mr,aln) lvl,mov,ac,mr,aln
48.   #define SIZ(wt,nut,pxl,snd,siz) wt,nut,pxl,snd,siz
49.   /* ATTK() and A() are to avoid braces and commas within args to MON() */
50.   #define ATTK(at,ad,n,d) {at,ad,n,d}
51.   #define A(a1,a2,a3,a4,a5,a6) {a1,a2,a3,a4,a5,a6}
52.   
53.   
54.   /*
55.    *	Rule #1:	monsters of a given class are contiguous in the
56.    *			mons[] array.
57.    *
58.    *	Rule #2:	monsters of a given class are presented in ascending
59.    *			order of strength.
60.    *
61.    *	Rule #3:	monster frequency is included in the geno mask;
62.    *			the frequency can be from 0 to 7.  0's will also
63.    *			be skipped during generation.
64.    *
65.    *	Rule #4:	monster subclasses (e.g. giants) should be kept
66.    *			together, unless it violates Rule 2.  NOGEN monsters
67.    *			won't violate Rule 2.
68.    *
69.    * Guidelines for color assignment:
70.    *
71.    *	* Use the same color for all `growth stages' of a monster (ex.
72.    *	  little dog/big dog, baby naga/full-grown naga.
73.    *
74.    *	* Use colors given in names wherever possible. If the class has `real'
75.    *	  members with strong color associations, use those.
76.    *
77.    *	* Favor `cool' colors for cold-resistent monsters, `warm' ones for
78.    *	  fire-resistent ones.
79.    *
80.    *	* Try to reserve purple (magenta) for powerful `ruler' monsters (queen
81.    *	  bee, kobold lord, &c.).
82.    *
83.    *	* Subject to all these constraints, try to use color to make as many
84.    *	  distinctions as the / command (that is, within a monster letter
85.    *	  distinct names should map to distinct colors).
86.    *
87.    * The aim in assigning colors is to be consistent enough so a player can
88.    * become `intuitive' about them, deducing some or all of these rules
89.    * unconsciously. Use your common sense.
90.    */
91.   
92.   #ifndef SPLITMON_2
93.   NEARDATA struct permonst mons[] = {
94.   /*
95.    * ants
96.    */
97.       MON("giant ant", S_ANT,
98.   	LVL(2, 18, 3, 0, 0), (G_GENO|G_SGROUP|3),
99.   	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
100.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
101.  	SIZ(10, 10, 0, MS_SILENT, MZ_TINY), 0, 0,
102.  	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
103.  	M2_HOSTILE, 0, CLR_BROWN),
104.      MON("killer bee", S_ANT,
105.  	LVL(1, 18, -1, 0, 0), (G_GENO|G_LGROUP|2),
106.  	A(ATTK(AT_STNG, AD_DRST, 1, 3),
107.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
108.  	SIZ(1, 5, 0, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
109.  	M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_POIS,
110.  	M2_HOSTILE|M2_FEMALE, 0, CLR_YELLOW),
111.      MON("soldier ant", S_ANT,
112.  	LVL(3, 18, 3, 0, 0), (G_GENO|G_SGROUP|2),
113.  	A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_STNG, AD_DRST, 3, 4),
114.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
115.  	SIZ(20, 5, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
116.  	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
117.  	M2_HOSTILE, 0, CLR_BLUE),
118.      MON("fire ant", S_ANT,
119.  	LVL(3, 18, 3, 10, 0), (G_GENO|G_SGROUP|1),
120.  	A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_BITE, AD_FIRE, 2, 4),
121.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
122.  	SIZ(30, 10, 0, MS_SILENT, MZ_TINY), MR_FIRE, MR_FIRE,
123.  	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
124.  	M2_HOSTILE, M3_INFRAVISIBLE, CLR_RED),
125.      MON("giant beetle", S_ANT,
126.  	LVL(5, 6, 4, 0, 0), (G_GENO|3),
127.  	A(ATTK(AT_BITE, AD_PHYS, 3, 6),
128.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
129.  	SIZ(10, 10, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
130.  	M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_CARNIVORE,
131.  	M2_HOSTILE, 0, CLR_BLACK),
132.      MON("queen bee", S_ANT,
133.  	LVL(9, 24, -4, 0, 0), (G_GENO|G_NOGEN),
134.  	A(ATTK(AT_STNG, AD_DRST, 1, 8),
135.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
136.  	SIZ(1, 5, 0, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
137.  	M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_OVIPAROUS|M1_POIS,
138.  	M2_HOSTILE|M2_FEMALE|M2_PRINCE, 0, HI_LORD),
139.  /*
140.   * blobs
141.   */
142.      MON("acid blob", S_BLOB,
143.  	LVL(1, 3, 8, 0, 0), (G_GENO|2),
144.  	A(ATTK(AT_NONE, AD_ACID, 1, 8),
145.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
146.  	SIZ(30, 10, 0, MS_SILENT, MZ_TINY),
147.  	MR_SLEEP|MR_POISON|MR_ACID|MR_STONE, MR_STONE,
148.  	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
149.  	  M1_MINDLESS|M1_ACID,
150.  	M2_WANDER|M2_NEUTER, 0, CLR_GREEN),
151.      MON("quivering blob", S_BLOB,
152.  	LVL(5, 1, 8, 0, 0), (G_GENO|2),
153.  	A(ATTK(AT_TUCH, AD_PHYS, 1, 8),
154.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
155.  	SIZ(200, 100, 0, MS_SILENT, MZ_SMALL),
156.  	MR_SLEEP|MR_POISON, MR_POISON,
157.  	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
158.  	M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, CLR_WHITE),
159.      MON("gelatinous cube", S_BLOB,
160.  	LVL(6, 6, 8, 0, 0), (G_GENO|2),
161.  	A(ATTK(AT_TUCH, AD_PLYS, 2, 4), ATTK(AT_NONE, AD_PLYS, 1, 4),
162.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
163.  	SIZ(600, 150, 0, MS_SILENT, MZ_LARGE),
164.  	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_ACID|MR_STONE,
165.  	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP,
166.  	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_OMNIVORE|M1_ACID,
167.  	M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, CLR_CYAN),
168.  /*
169.   * cockatrice
170.   */
171.      MON("chickatrice", S_COCKATRICE,
172.  	LVL(4, 4, 8, 30, 0), (G_GENO|G_SGROUP|1),
173.  	A(ATTK(AT_BITE, AD_PHYS, 1, 2), ATTK(AT_TUCH, AD_STON, 0, 0),
174.  	  ATTK(AT_NONE, AD_STON, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
175.  	SIZ(10, 10, 0, MS_HISS, MZ_TINY),
176.  	MR_POISON|MR_STONE, MR_POISON|MR_STONE,
177.  	M1_ANIMAL|M1_NOHANDS, M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
178.      MON("cockatrice", S_COCKATRICE,
179.  	LVL(5, 6, 6, 30, 0), (G_GENO|5),
180.  	A(ATTK(AT_BITE, AD_PHYS, 1, 3), ATTK(AT_TUCH, AD_STON, 0, 0),
181.  	  ATTK(AT_NONE, AD_STON, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
182.  	SIZ(30, 30, 0, MS_HISS, MZ_SMALL),
183.  	MR_POISON|MR_STONE, MR_POISON|MR_STONE,
184.  	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS, M2_HOSTILE, M3_INFRAVISIBLE,
185.  	CLR_YELLOW),
186.      MON("pyrolisk", S_COCKATRICE, 
187.  	LVL(6, 6, 6, 30, 0), (G_GENO|1),
188.  	A(ATTK(AT_GAZE, AD_FIRE, 2, 6), NO_ATTK,
189.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), 
190.  	SIZ(30, 30, 0, MS_HISS, MZ_SMALL),
191.  	MR_POISON|MR_FIRE, MR_POISON|MR_FIRE,
192.  	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS, M2_HOSTILE, M3_INFRAVISIBLE,
193.  	CLR_RED),
194.  /*
195.   * dogs & other canines
196.   */
197.      MON("jackal", S_DOG,
198.  	LVL(0, 12, 7, 0, 0), (G_GENO|G_SGROUP|3),
199.  	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
200.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
201.  	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
202.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
203.  	CLR_BROWN),
204.      MON("fox", S_DOG,
205.  	LVL(0, 15, 7, 0, 0), (G_GENO|1),
206.  	A(ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK,
207.  	  NO_ATTK, NO_ATTK, NO_ATTK),
208.  	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
209.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
210.  	CLR_RED),
211.      MON("coyote", S_DOG,
212.  	LVL(1, 12, 7, 0, 0), (G_GENO|G_SGROUP|1),
213.  	A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK,
214.  	  NO_ATTK, NO_ATTK, NO_ATTK),
215.  	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
216.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
217.  	CLR_BROWN),
218.      MON("werejackal", S_DOG,
219.  	LVL(2, 12, 7, 10, -7), (G_NOGEN|G_NOCORPSE),
220.  	A(ATTK(AT_BITE, AD_WERE, 1, 4), NO_ATTK, NO_ATTK,
221.  	  NO_ATTK, NO_ATTK, NO_ATTK),
222.  	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), MR_POISON, 0,
223.  	M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
224.  	M2_NOPOLY|M2_WERE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
225.      MON("little dog", S_DOG,
226.  	LVL(2, 18, 6, 0, 0), (G_GENO|1),
227.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
228.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
229.  	SIZ(150, 150, 0, MS_BARK, MZ_SMALL), 0, 0,
230.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
231.  	HI_DOMESTIC),
232.      MON("dog", S_DOG,
233.  	LVL(4, 16, 5, 0, 0), (G_GENO|1),
234.  	A(ATTK(AT_BITE, AD_PHYS, 1 ,6),
235.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
236.  	SIZ(400, 200, 0, MS_BARK, MZ_MEDIUM), 0, 0,
237.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
238.  	HI_DOMESTIC),
239.      MON("large dog", S_DOG,
240.  	LVL(6, 15, 4, 0, 0), (G_GENO|1),
241.  	A(ATTK(AT_BITE, AD_PHYS, 2, 4),
242.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
243.  	SIZ(800, 250, 0, MS_BARK, MZ_MEDIUM), 0, 0,
244.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
245.  	M2_STRONG|M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),
246.      MON("dingo", S_DOG,
247.  	LVL(4, 16, 5, 0, 0), (G_GENO|1),
248.  	A(ATTK(AT_BITE, AD_PHYS, 1 ,6),
249.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
250.  	SIZ(400, 200, 0, MS_BARK, MZ_MEDIUM), 0, 0,
251.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
252.  	CLR_YELLOW),
253.      MON("wolf", S_DOG,
254.  	LVL(5, 12, 4, 0, 0), (G_GENO|G_SGROUP|2),
255.  	A(ATTK(AT_BITE, AD_PHYS, 2, 4),
256.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
257.  	SIZ(500, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
258.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
259.  	CLR_BROWN),
260.      MON("werewolf", S_DOG,
261.  	LVL(5, 12, 4, 20, -7), (G_NOGEN|G_NOCORPSE),
262.  	A(ATTK(AT_BITE, AD_WERE, 2, 6),
263.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
264.  	SIZ(500, 250, 0, MS_BARK, MZ_MEDIUM), MR_POISON, 0,
265.  	M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
266.  	M2_NOPOLY|M2_WERE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
267.      MON("warg", S_DOG,
268.  	LVL(7, 12, 4, 0, -5), (G_GENO|G_SGROUP|2),
269.  	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
270.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
271.  	SIZ(850, 350, 0, MS_BARK, MZ_MEDIUM), 0, 0,
272.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
273.  	CLR_BROWN),
274.      MON("winter wolf cub", S_DOG,
275.  	LVL(5, 12, 4, 0, -5), (G_NOHELL|G_GENO|G_SGROUP|2),
276.  	A(ATTK(AT_BITE, AD_PHYS, 1, 8), ATTK(AT_BREA, AD_COLD, 1, 8),
277.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
278.  	SIZ(250, 200, 0, MS_BARK, MZ_SMALL), MR_COLD, MR_COLD,
279.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_CYAN),
280.      MON("winter wolf", S_DOG,
281.  	LVL(7, 12, 4, 20, 0), (G_NOHELL|G_GENO|1),
282.  	A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_BREA, AD_COLD, 2, 6),
283.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
284.  	SIZ(700, 300, 0, MS_BARK, MZ_LARGE), MR_COLD, MR_COLD,
285.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
286.  	M2_HOSTILE|M2_STRONG, 0, CLR_CYAN),
287.      MON("hell hound pup", S_DOG,
288.  	LVL(7, 12, 4, 20, -5), (G_HELL|G_GENO|G_SGROUP|1),
289.  	A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_BREA, AD_FIRE, 2, 6),
290.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
291.  	SIZ(200, 200, 0, MS_BARK, MZ_SMALL), MR_FIRE, MR_FIRE,
292.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
293.  	CLR_RED),
294.      MON("hell hound", S_DOG,
295.  	LVL(12, 14, 2, 20, 0), (G_HELL|G_GENO|1),
296.  	A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_BREA, AD_FIRE, 3, 6),
297.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
298.  	SIZ(600, 300, 0, MS_BARK, MZ_MEDIUM), MR_FIRE, MR_FIRE,
299.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE|M2_STRONG,
300.  	M3_INFRAVISIBLE, CLR_RED),
301.  #ifdef CHARON
302.      MON("Cerberus", S_DOG,
303.  	LVL(12, 10, 2, 20, -7), (G_HELL|G_UNIQ|1),
304.  	A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_BITE, AD_PHYS, 3, 6),
305.  	  ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
306.  	SIZ(1000, 350, 0, MS_BARK, MZ_LARGE), MR_FIRE, MR_FIRE,
307.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
308.  	M2_NOPOLY|M2_HOSTILE|M2_STRONG|M2_PNAME|M2_MALE, M3_INFRAVISIBLE,
309.  	CLR_RED),
310.  #endif
311.  /*
312.   * eyes
313.   */
314.      MON("gas spore", S_EYE,
315.  	LVL(1, 3, 10, 0, 0), (G_NOCORPSE|G_GENO|1),
316.  	A(ATTK(AT_BOOM, AD_PHYS, 4, 6), NO_ATTK, NO_ATTK,
317.  	  NO_ATTK, NO_ATTK, NO_ATTK),
318.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
319.  	M1_FLY|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
320.  	M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
321.      MON("floating eye", S_EYE,
322.  	LVL(2, 1, 9, 10, 0), (G_GENO|5),
323.  	A(ATTK(AT_NONE, AD_PLYS, 0,70),
324.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
325.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
326.  	M1_FLY|M1_AMPHIBIOUS|M1_NOLIMBS|M1_NOHEAD|M1_NOTAKE,
327.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_BLUE),
328.      MON("freezing sphere", S_EYE,
329.  	LVL(6, 13, 4, 0, 0), (G_NOHELL|G_GENO|2),
330.  	A(ATTK(AT_EXPL, AD_COLD, 4, 6),
331.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
332.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), MR_COLD, MR_COLD,
333.  	M1_FLY|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
334.  	M2_HOSTILE|M2_NEUTER, 0, CLR_WHITE),
335.      MON("flaming sphere", S_EYE, 
336.  	LVL(6, 13, 4, 0, 0), (G_NOCORPSE|G_GENO|2),
337.  	A(ATTK(AT_EXPL, AD_FIRE, 4, 6), NO_ATTK, NO_ATTK,
338.  	    NO_ATTK, NO_ATTK, NO_ATTK),
339.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), MR_FIRE, MR_FIRE,
340.  	M1_FLY|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
341.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_RED),
342.      MON("shocking sphere", S_EYE, 
343.  	LVL(6, 13, 4, 0, 0), (G_NOCORPSE|G_GENO|2),
344.  	A(ATTK(AT_EXPL, AD_ELEC, 4, 6), NO_ATTK, NO_ATTK,
345.  	  NO_ATTK, NO_ATTK, NO_ATTK),
346.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), MR_ELEC, MR_ELEC,
347.  	M1_FLY|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
348.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, HI_ZAP),
349.  #if 0		/* not yet implemented */
350.      MON("beholder", S_EYE,
351.  	LVL(6, 3, 4, 0, -10), (G_GENO|2),
352.  	A(ATTK(AT_GAZE, AD_SLOW, 0, 0), ATTK(AT_GAZE, AD_SLEE, 2,25),
353.  	  ATTK(AT_GAZE, AD_DISN, 0, 0), ATTK(AT_GAZE, AD_STON, 0, 0),
354.  	  ATTK(AT_GAZE, AD_CNCL, 2, 4), ATTK(AT_BITE, AD_PHYS, 2, 4)),
355.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), MR_COLD, 0,
356.  	M1_FLY|M1_BREATHLESS|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
357.  	M2_NOPOLY|M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_BROWN),
358.  #endif
359.  /*
360.   * felines
361.   */
362.      MON("kitten", S_FELINE,
363.  	LVL(2, 18, 6, 0, 0), (G_GENO|1),
364.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
365.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
366.  	SIZ(150, 150, 0, MS_MEW, MZ_SMALL), 0, 0,
367.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
368.  	M2_WANDER|M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),
369.      MON("housecat", S_FELINE,
370.  	LVL(4, 16, 5, 0, 0), (G_GENO|1),
371.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
372.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
373.  	SIZ(200, 200, 0, MS_MEW, MZ_SMALL), 0, 0,
374.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
375.  	HI_DOMESTIC),
376.      MON("jaguar", S_FELINE,
377.  	LVL(4, 15, 6, 0, 0), (G_GENO|2),
378.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
379.  	  ATTK(AT_BITE, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
380.  	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), 0, 0,
381.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
382.  	CLR_BROWN),
383.      MON("lynx", S_FELINE, 
384.  	LVL(5, 15, 6, 0, 0), (G_GENO|1),
385.  	A(ATTK(AT_CLAW, AD_COLD, 1, 4), ATTK(AT_CLAW, AD_COLD, 1, 4),
386.  	  ATTK(AT_BITE, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK),
387.  	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), 0, 0,
388.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,M2_HOSTILE, M3_INFRAVISIBLE,
389.  	CLR_CYAN),
390.      MON("panther", S_FELINE, 
391.  	LVL(5, 15, 6, 0, 0), (G_GENO|1),
392.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
393.  	  ATTK(AT_BITE, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK),
394.  	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), 0, 0,
395.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,M2_HOSTILE, M3_INFRAVISIBLE,
396.  	CLR_BLACK),
397.      MON("large cat", S_FELINE,
398.  	LVL(6, 15, 4, 0, 0), (G_GENO|1),
399.  	A(ATTK(AT_BITE, AD_PHYS, 2, 4),
400.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
401.  	SIZ(250, 250, 0, MS_MEW, MZ_SMALL), 0, 0,
402.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
403.  	M2_STRONG|M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),
404.      MON("tiger", S_FELINE,
405.  	LVL(6, 12, 6, 0, 0), (G_GENO|2),
406.  	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
407.  	  ATTK(AT_BITE, AD_PHYS, 1,10), NO_ATTK, NO_ATTK, NO_ATTK),
408.  	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), 0, 0,
409.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
410.  	CLR_YELLOW),
411.  /*
412.   * gremlins and gargoyles
413.   */
414.      MON("gremlin", S_GREMLIN,
415.  	LVL(5, 12, 2, 25, -9), (G_GENO|2),
416.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
417.  	  ATTK(AT_BITE, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_CURS, 0, 0),
418.  	  NO_ATTK, NO_ATTK),
419.  	SIZ(100, 20, 0, MS_LAUGH, MZ_SMALL), MR_POISON, MR_POISON,
420.  	M1_SWIM|M1_HUMANOID|M1_POIS, M2_STALK, M3_INFRAVISIBLE, CLR_GREEN),
421.      MON("gargoyle", S_GREMLIN,
422.  	LVL(6, 10, -4, 0, -9), (G_GENO|2),
423.  	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_PHYS, 2, 6),
424.  	  ATTK(AT_BITE, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
425.  	SIZ(1000, 200, 0, MS_GRUNT, MZ_HUMAN), MR_STONE, MR_STONE,
426.  	M1_HUMANOID|M1_THICK_HIDE|M1_BREATHLESS,
427.  	M2_HOSTILE|M2_STRONG, 0, CLR_BROWN),
428.      MON("winged gargoyle", S_GREMLIN,
429.  	LVL(9, 15, -2, 0, -12), (G_GENO|1),
430.  	A(ATTK(AT_CLAW, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 6),
431.  	  ATTK(AT_BITE, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
432.  	SIZ(1200, 300, 0, MS_GRUNT, MZ_HUMAN), MR_STONE, MR_STONE,
433.  	M1_FLY|M1_HUMANOID|M1_THICK_HIDE|M1_BREATHLESS|M1_OVIPAROUS,
434.  	M2_LORD|M2_HOSTILE|M2_STRONG|M2_MAGIC, 0, HI_LORD),
435.  /*
436.   * humanoids
437.   */
438.      MON("hobbit", S_HUMANOID,
439.  	LVL(1, 9, 10, 0, 6), (G_GENO|2),
440.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
441.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
442.  	SIZ(500, 200, 0, MS_HUMANOID, MZ_SMALL), 0, 0,
443.  	M1_HUMANOID|M1_OMNIVORE, M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION,
444.  	CLR_GREEN),
445.      MON("dwarf", S_HUMANOID,
446.  	LVL(2, 6, 10, 10, 4), (G_GENO|3),
447.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
448.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
449.  	SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
450.  	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
451.  	M2_DWARF|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
452.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
453.      MON("bugbear", S_HUMANOID,
454.  	LVL(3, 9, 5, 0, -6), (G_GENO|1),
455.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
456.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
457.  	SIZ(1250, 250, 0, MS_GROWL, MZ_LARGE), 0, 0,
458.  	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_COLLECT,
459.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
460.      MON("dwarf lord", S_HUMANOID,
461.  	LVL(4, 6, 10, 10, 5), (G_GENO|2),
462.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
463.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
464.  	SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
465.  	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
466.  	M2_DWARF|M2_STRONG|M2_LORD|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
467.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
468.      MON("dwarf king", S_HUMANOID,
469.  	LVL(6, 6, 10, 20, 6), (G_GENO|1),
470.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
471.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
472.  	SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
473.  	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
474.  	M2_DWARF|M2_STRONG|M2_PRINCE|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
475.  	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
476.      MON("mind flayer", S_HUMANOID,
477.  	LVL(9, 12, 5, 90, -8), (G_GENO|1),
478.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_TENT, AD_DRIN, 2, 1),
479.  	  ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1),
480.  	  ATTK(AT_TENT, AD_DRIN, 2, 1), NO_ATTK),
481.  	SIZ(1450, 400, 0, MS_HISS, MZ_HUMAN), 0, 0,
482.  	M1_HUMANOID|M1_FLY|M1_SEE_INVIS|M1_OMNIVORE,
483.  	M2_HOSTILE|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_COLLECT,
484.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_MAGENTA),
485.      MON("master mind flayer", S_HUMANOID,
486.  	LVL(13, 12, 0, 90, -8), (G_GENO|1),
487.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_TENT, AD_DRIN, 2, 1),
488.  	  ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1),
489.  	  ATTK(AT_TENT, AD_DRIN, 2, 1), NO_ATTK),
490.  	SIZ(1450, 400, 0, MS_HISS, MZ_HUMAN), 0, 0,
491.  	M1_HUMANOID|M1_FLY|M1_SEE_INVIS|M1_OMNIVORE,
492.  	M2_HOSTILE|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_COLLECT,
493.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_MAGENTA),
494.  /*
495.   * imps & other minor demons/devils
496.   */
497.      MON("manes", S_IMP,
498.  	LVL(1, 3, 7, 0, -7), (G_GENO|G_LGROUP|G_NOCORPSE|1),
499.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
500.  	  ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
501.  	SIZ(100, 100, 0, MS_SILENT, MZ_SMALL), MR_SLEEP|MR_POISON, 0,
502.  	M1_POIS, M2_HOSTILE|M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
503.      MON("homunculus", S_IMP,
504.  	LVL(2, 12, 6, 10, -7), (G_GENO|2),
505.  	A(ATTK(AT_BITE, AD_SLEE, 1, 3),
506.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
507.  	SIZ(60, 100, 0, MS_SILENT, MZ_TINY),
508.  	MR_SLEEP|MR_POISON, MR_SLEEP|MR_POISON,
509.  	M1_FLY|M1_POIS, M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GREEN),
510.      MON("imp", S_IMP,
511.  	LVL(3, 12, 2, 20, -7), (G_GENO|1),
512.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 4),
513.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
514.  	SIZ(20, 10, 0, MS_CUSS, MZ_TINY), 0, 0,
515.  	M1_REGEN, M2_WANDER|M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
516.      MON("lemure", S_IMP,
517.  	LVL(3, 3, 7, 0, -7), (G_HELL|G_GENO|G_LGROUP|G_NOCORPSE|1),
518.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 3),
519.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
520.  	SIZ(150, 100, 0, MS_SILENT, MZ_MEDIUM),
521.  	MR_SLEEP|MR_POISON, MR_SLEEP, M1_POIS|M1_REGEN,
522.  	M2_HOSTILE|M2_WANDER|M2_STALK|M2_NEUTER,
523.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
524.      MON("quasit", S_IMP,
525.  	LVL(3, 15, 2, 20, -7), (G_GENO|2),
526.  	A(ATTK(AT_CLAW, AD_DRDX, 1, 2), ATTK(AT_CLAW, AD_DRDX, 1, 2),
527.  	  ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
528.  	SIZ(200, 200, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
529.  	M1_REGEN, M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
530.      MON("tengu", S_IMP,
531.  	LVL(6, 13, 5, 30, 7), (G_GENO|3),
532.  	A(ATTK(AT_BITE, AD_PHYS, 1, 7),
533.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
534.  	SIZ(300, 200, 0, MS_SQAWK, MZ_SMALL), MR_POISON, MR_POISON,
535.  	M1_TPORT|M1_TPORT_CNTRL, M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION,
536.  	CLR_CYAN),
537.  /*
538.   * jellies
539.   */
540.      MON("blue jelly", S_JELLY,
541.  	LVL(4, 0, 8, 10, 0), (G_GENO|2),
542.  	A(ATTK(AT_NONE, AD_COLD, 0, 6),
543.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
544.  	SIZ(50, 20, 0, MS_SILENT, MZ_MEDIUM),
545.  	MR_COLD|MR_POISON, MR_COLD|MR_POISON,
546.  	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS
547.  	  |M1_NOTAKE,
548.  	M2_HOSTILE|M2_NEUTER, 0, CLR_BLUE),
549.      MON("spotted jelly", S_JELLY,
550.  	LVL(5, 0, 8, 10, 0), (G_GENO|1),
551.  	A(ATTK(AT_NONE, AD_ACID, 0, 6),
552.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
553.  	SIZ(50, 20, 0, MS_SILENT, MZ_MEDIUM), MR_ACID|MR_STONE, 0,
554.  	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
555.  	  M1_MINDLESS|M1_ACID|M1_NOTAKE,
556.  	M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
557.      MON("ochre jelly", S_JELLY,
558.  	LVL(6, 3, 8, 20, 0), (G_GENO|2),
559.  	A(ATTK(AT_ENGL, AD_ACID, 3, 6), ATTK(AT_NONE, AD_ACID, 3, 6),
560.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
561.  	SIZ(50, 20, 0, MS_SILENT, MZ_MEDIUM), MR_ACID|MR_STONE, 0,
562.  	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
563.  	  M1_MINDLESS|M1_ACID|M1_NOTAKE,
564.  	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
565.  /*
566.   * kobolds
567.   */
568.      MON("kobold", S_KOBOLD,
569.  	LVL(0, 6, 10, 0, -2), (G_GENO|1),
570.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
571.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
572.  	SIZ(400, 100, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
573.  	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_COLLECT,
574.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
575.      MON("large kobold", S_KOBOLD,
576.  	LVL(1, 6, 10, 0, -3), (G_GENO|1),
577.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
578.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
579.  	SIZ(450, 150, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
580.  	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_COLLECT,
581.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
582.      MON("kobold lord", S_KOBOLD,
583.  	LVL(2, 6, 10, 0, -4), (G_GENO|1),
584.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
585.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
586.  	SIZ(500, 200, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
587.  	M1_HUMANOID|M1_POIS|M1_OMNIVORE,
588.  	M2_HOSTILE|M2_LORD|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION,
589.  	HI_LORD),
590.      MON("kobold shaman", S_KOBOLD,
591.  	LVL(2, 6, 6, 10, -4), (G_GENO|1),
592.  	A(ATTK(AT_MAGC, AD_SPEL, 0, 0),
593.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
594.  	SIZ(450, 150, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
595.  	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_MAGIC,
596.  	M3_INFRAVISIBLE|M3_INFRAVISION, HI_ZAP),
597.  /*
598.   * leprechauns
599.   */
600.      MON("leprechaun", S_LEPRECHAUN,
601.  	LVL(5, 15, 8, 20, 0), (G_GENO|4),
602.  	A(ATTK(AT_CLAW, AD_SGLD, 1, 2),
603.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
604.  	SIZ(60, 30, 0, MS_LAUGH, MZ_TINY), 0, 0,
605.  	M1_HUMANOID|M1_TPORT, M2_HOSTILE|M2_GREEDY, M3_INFRAVISIBLE, CLR_GREEN),
606.  /*
607.   * mimics
608.   */
609.      MON("small mimic", S_MIMIC,
610.  	LVL(7, 3, 7, 0, 0), (G_GENO|2),
611.  	A(ATTK(AT_CLAW, AD_PHYS, 3, 4),
612.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
613.  	SIZ(300, 200, 0, MS_SILENT, MZ_MEDIUM), MR_ACID, 0,
614.  	M1_BREATHLESS|M1_AMORPHOUS|M1_HIDE|M1_ANIMAL|M1_NOEYES|
615.  	  M1_NOHEAD|M1_NOLIMBS|M1_THICK_HIDE|M1_CARNIVORE,
616.  	M2_HOSTILE, 0, CLR_BROWN),
617.      MON("large mimic", S_MIMIC,
618.  	LVL(8, 3, 7, 10, 0), (G_GENO|1),
619.  	A(ATTK(AT_CLAW, AD_STCK, 3, 4),
620.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
621.  	SIZ(600, 400, 0, MS_SILENT, MZ_LARGE), MR_ACID, 0,
622.  	M1_CLING|M1_BREATHLESS|M1_AMORPHOUS|M1_HIDE|M1_ANIMAL|M1_NOEYES|
623.  	  M1_NOHEAD|M1_NOLIMBS|M1_THICK_HIDE|M1_CARNIVORE,
624.  	M2_HOSTILE|M2_STRONG, 0, CLR_RED),
625.      MON("giant mimic", S_MIMIC,
626.  	LVL(9, 3, 7, 20, 0), (G_GENO|1),
627.  	A(ATTK(AT_CLAW, AD_STCK, 3, 6), ATTK(AT_CLAW, AD_STCK, 3, 6),
628.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
629.  	SIZ(800, 500, 0, MS_SILENT, MZ_LARGE), MR_ACID, 0,
630.  	M1_CLING|M1_BREATHLESS|M1_AMORPHOUS|M1_HIDE|M1_ANIMAL|M1_NOEYES|
631.  	  M1_NOHEAD|M1_NOLIMBS|M1_THICK_HIDE|M1_CARNIVORE,
632.  	M2_HOSTILE|M2_STRONG, 0, HI_LORD),
633.  /*
634.   * nymphs
635.   */
636.      MON("wood nymph", S_NYMPH,
637.  	LVL(3, 12, 9, 20, 0), (G_GENO|2),
638.  	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0),
639.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
640.  	SIZ(600, 300, 0, MS_SEDUCE, MZ_HUMAN), 0, 0,
641.  	M1_HUMANOID|M1_TPORT, M2_HOSTILE|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
642.  	CLR_GREEN),
643.      MON("water nymph", S_NYMPH,
644.  	LVL(3, 12, 9, 20, 0), (G_GENO|2),
645.  	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0),
646.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
647.  	SIZ(600, 300, 0, MS_SEDUCE, MZ_HUMAN), 0, 0,
648.  	M1_HUMANOID|M1_TPORT|M1_SWIM,
649.  	M2_HOSTILE|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE, CLR_BLUE),
650.      MON("mountain nymph", S_NYMPH,
651.  	LVL(3, 12, 9, 20, 0), (G_GENO|2),
652.  	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0),
653.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
654.  	SIZ(600, 300, 0, MS_SEDUCE, MZ_HUMAN), 0, 0,
655.  	M1_HUMANOID|M1_TPORT, M2_HOSTILE|M2_FEMALE|M2_COLLECT,
656.  	M3_INFRAVISIBLE, CLR_BROWN),
657.  /*
658.   * orcs
659.   */
660.      MON("goblin", S_ORC,
661.  	LVL(0, 6, 10, 0, -3), (G_GENO|2),
662.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
663.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
664.  	SIZ(400, 100, 0, MS_ORC, MZ_SMALL), 0, 0,
665.  	M1_HUMANOID|M1_OMNIVORE, M2_ORC|M2_COLLECT,
666.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
667.      MON("hobgoblin", S_ORC,
668.  	LVL(1, 9, 10, 0, -4), (G_GENO|2),
669.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
670.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
671.  	SIZ(1000, 200, 0, MS_ORC, MZ_HUMAN), 0, 0,
672.  	M1_HUMANOID|M1_OMNIVORE, M2_ORC|M2_STRONG|M2_COLLECT,
673.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
674.  	/* plain "orc" for zombie corpses only; not created at random
675.  	 */
676.      MON("orc", S_ORC,
677.  	LVL(1, 9, 10, 0, -3), (G_GENO|G_NOGEN|G_LGROUP),
678.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
679.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
680.  	SIZ(850, 150, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
681.  	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
682.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
683.      MON("hill orc", S_ORC,
684.  	LVL(2, 9, 10, 0, -4), (G_GENO|G_LGROUP|2),
685.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
686.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
687.  	SIZ(1000, 200, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
688.  	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
689.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_YELLOW),
690.      MON("Mordor orc", S_ORC,
691.  	LVL(3, 5, 10, 0, -5), (G_GENO|G_LGROUP|1),
692.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
693.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
694.  	SIZ(1200, 200, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
695.  	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
696.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
697.      MON("Uruk-hai", S_ORC,
698.  	LVL(3, 7, 10, 0, -4), (G_GENO|G_LGROUP|1),
699.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
700.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
701.  	SIZ(1300, 300, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
702.  	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
703.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLACK),
704.      MON("orc shaman", S_ORC,
705.  	LVL(3, 9, 5, 10, -5), (G_GENO|1),
706.  	A(ATTK(AT_MAGC, AD_SPEL, 0, 0),
707.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
708.  	SIZ(1000, 300, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
709.  	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_MAGIC,
710.  	M3_INFRAVISIBLE|M3_INFRAVISION, HI_ZAP),
711.      MON("orc-captain", S_ORC,
712.  	LVL(5, 5, 10, 0, -5), (G_GENO|1),
713.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
714.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
715.  	SIZ(1350, 350, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
716.  	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
717.  	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
718.  /*
719.   * piercers
720.   */
721.      MON("rock piercer", S_PIERCER,
722.  	LVL(3, 1, 3, 0, 0), (G_GENO|4),
723.  	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
724.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
725.  	SIZ(200, 200, 0, MS_SILENT, MZ_SMALL), 0, 0,
726.  	M1_CLING|M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
727.  	M2_HOSTILE, 0, CLR_GRAY),
728.      MON("iron piercer", S_PIERCER,
729.  	LVL(5, 1, 0, 0, 0), (G_GENO|2),
730.  	A(ATTK(AT_BITE, AD_PHYS, 3, 6),
731.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
732.  	SIZ(400, 300, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
733.  	M1_CLING|M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
734.  	M2_HOSTILE, 0, CLR_CYAN),
735.      MON("glass piercer", S_PIERCER,
736.  	LVL(7, 1, 0, 0, 0), (G_GENO|1),
737.  	A(ATTK(AT_BITE, AD_PHYS, 4, 6), NO_ATTK, NO_ATTK,
738.  	  NO_ATTK, NO_ATTK, NO_ATTK),
739.  	SIZ(400, 300, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
740.  	M1_CLING|M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
741.  	M2_HOSTILE, 0, CLR_WHITE),
742.  /*
743.   * quadrupeds
744.   */
745.      MON("rothe", S_QUADRUPED,
746.  	LVL(2, 9, 7, 0, 0), (G_GENO|G_SGROUP|4),
747.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_BITE, AD_PHYS, 1, 3),
748.  	  ATTK(AT_BITE, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
749.  	SIZ(400, 100, 0, MS_SILENT, MZ_LARGE), 0, 0,
750.  	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
751.  	CLR_BROWN),
752.      MON("mumak", S_QUADRUPED,
753.  	LVL(5, 9, 0, 0, -2), (G_GENO|1),
754.  	A(ATTK(AT_BUTT, AD_PHYS, 4,12), ATTK(AT_BITE, AD_PHYS, 2, 6),
755.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
756.  	SIZ(2500, 500, 0, MS_ROAR, MZ_LARGE), 0, 0,
757.  	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
758.  	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_GRAY),
759.      MON("leocrotta", S_QUADRUPED,
760.  	LVL(6, 18, 4, 10, 0), (G_GENO|2),
761.  	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_BITE, AD_PHYS, 2, 6),
762.  	  ATTK(AT_CLAW, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
763.  	SIZ(1200, 500, 0, MS_IMITATE, MZ_LARGE), 0, 0,
764.  	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE, M2_HOSTILE|M2_STRONG,
765.  	M3_INFRAVISIBLE, CLR_RED),
766.      MON("wumpus", S_QUADRUPED,
767.  	LVL(8, 3, 2, 10, 0), (G_GENO|1),
768.  	A(ATTK(AT_BITE, AD_PHYS, 3, 6),
769.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
770.  	SIZ(2500, 500, 0, MS_BURBLE, MZ_LARGE), 0, 0,
771.  	M1_CLING|M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE,
772.  	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_CYAN),
773.      MON("titanothere", S_QUADRUPED,
774.  	LVL(12, 12, 6, 0, 0), (G_GENO|2),
775.  	A(ATTK(AT_CLAW, AD_PHYS, 2, 8),
776.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
777.  	SIZ(2650, 650, 0, MS_SILENT, MZ_LARGE), 0, 0,
778.  	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
779.  	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_GRAY),
780.      MON("baluchitherium", S_QUADRUPED,
781.  	LVL(14, 12, 5, 0, 0), (G_GENO|2),
782.  	A(ATTK(AT_CLAW, AD_PHYS, 5, 4), ATTK(AT_CLAW, AD_PHYS, 5, 4),
783.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
784.  	SIZ(3800, 800, 0, MS_SILENT, MZ_LARGE), 0, 0,
785.  	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
786.  	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_GRAY),
787.      MON("mastodon", S_QUADRUPED,
788.  	LVL(20, 12, 5, 0, 0), (G_GENO|1),
789.  	A(ATTK(AT_BUTT, AD_PHYS, 4, 8), ATTK(AT_BUTT, AD_PHYS, 4, 8),
790.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
791.  	SIZ(3800, 800, 0, MS_SILENT, MZ_LARGE), 0, 0,
792.  	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
793.  	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_BLACK),
794.  /*
795.   * rodents
796.   */
797.      MON("sewer rat", S_RODENT,
798.  	LVL(0, 12, 7, 0, 0), (G_GENO|G_SGROUP|1),
799.  	A(ATTK(AT_BITE, AD_PHYS, 1, 3),
800.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
801.  	SIZ(20, 12, 0, MS_SQEEK, MZ_TINY), 0, 0,
802.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
803.  	CLR_BROWN),
804.      MON("giant rat", S_RODENT,
805.  	LVL(1, 10, 7, 0, 0), (G_GENO|G_SGROUP|2),
806.  	A(ATTK(AT_BITE, AD_PHYS, 1, 3),
807.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
808.  	SIZ(30, 30, 0, MS_SQEEK, MZ_TINY), 0, 0,
809.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
810.  	CLR_BROWN),
811.      MON("rabid rat", S_RODENT,
812.  	LVL(2, 12, 6, 0, 0), (G_GENO|1),
813.  	A(ATTK(AT_BITE, AD_DRCO, 2, 4),
814.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
815.  	SIZ(30, 5, 0, MS_SQEEK, MZ_TINY), MR_POISON, 0,
816.  	M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
817.  	CLR_BROWN),
818.      MON("wererat", S_RODENT,
819.  	LVL(2, 12, 6, 10, -7), (G_NOGEN|G_NOCORPSE),
820.  	A(ATTK(AT_BITE, AD_WERE, 1, 4),
821.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
822.  	SIZ(40, 30, 0, MS_SQEEK, MZ_TINY), MR_POISON, 0,
823.  	M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
824.  	M2_NOPOLY|M2_WERE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
825.      MON("rock mole", S_RODENT,
826.  	LVL(3, 3, 0, 20, 0), (G_GENO|2),
827.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
828.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
829.  	SIZ(30, 30, 0, MS_SILENT, MZ_SMALL), 0, 0,
830.  	M1_TUNNEL|M1_ANIMAL|M1_NOHANDS|M1_METALLIVORE,
831.  	M2_HOSTILE|M2_GREEDY|M2_JEWELS|M2_COLLECT, M3_INFRAVISIBLE, CLR_GRAY),
832.  	MON("woodchuck", S_RODENT,
833.  	LVL(3, 3, 0, 20, 0), (G_NOGEN|G_GENO),
834.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
835.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
836.  	SIZ(30, 30, 0, MS_SILENT, MZ_SMALL), 0, 0,
837.  	M1_TUNNEL/*LOGGING*/|M1_ANIMAL|M1_NOHANDS|M1_SWIM,
838.  		/* In reality, they tunnel instead of cutting lumber.  Oh, well. */
839.  	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
840.  /*
841.   * spiders & scorpions
842.   */
843.      MON("cave spider", S_SPIDER,
844.  	LVL(1, 12, 3, 0, 0), (G_GENO|G_SGROUP|2),
845.  	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
846.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
847.  	SIZ(50, 50, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
848.  	M1_CONCEAL|M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
849.  	M2_HOSTILE, 0, CLR_GRAY),
850.      MON("centipede", S_SPIDER, 
851.  	LVL(2, 4, 3, 0, 0), (G_GENO|1),
852.  	A(ATTK(AT_BITE, AD_DRST, 1, 3), NO_ATTK, NO_ATTK,
853.  	  NO_ATTK, NO_ATTK, NO_ATTK),
854.  	SIZ(50, 50, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
855.  	M1_CONCEAL|M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
856.  	M2_HOSTILE, 0, CLR_YELLOW),
857.      MON("giant spider", S_SPIDER,
858.  	LVL(5, 15, 4, 0, 0), (G_GENO|1),
859.  	A(ATTK(AT_BITE, AD_DRST, 2, 4),
860.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
861.  	SIZ(100, 100, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
862.  	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
863.  	M2_HOSTILE|M2_STRONG, 0, CLR_MAGENTA),
864.      MON("scorpion", S_SPIDER,
865.  	LVL(5, 15, 3, 0, 0), (G_GENO|2),
866.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 2),
867.  	  ATTK(AT_STNG, AD_DRST, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
868.  	SIZ(50, 100, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
869.  	M1_CONCEAL|M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
870.  	M2_HOSTILE, 0, CLR_RED),
871.  /*
872.   * trappers, lurkers, &c
873.   */
874.      MON("lurker above", S_TRAPPER,
875.  	LVL(10, 3, 3, 0, 0), (G_GENO|2),
876.  	A(ATTK(AT_ENGL, AD_DGST, 1, 8),
877.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
878.  	SIZ(800, 350, 0, MS_SILENT, MZ_HUGE), 0, 0,
879.  	M1_HIDE|M1_FLY|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_CARNIVORE,
880.  	M2_HOSTILE|M2_STALK|M2_STRONG, 0, CLR_GRAY),
881.      MON("trapper", S_TRAPPER,
882.  	LVL(12, 3, 3, 0, 0), (G_GENO|2),
883.  	A(ATTK(AT_ENGL, AD_DGST, 1,10),
884.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
885.  	SIZ(800, 350, 0, MS_SILENT, MZ_HUGE), 0, 0,
886.  	M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_CARNIVORE,
887.  	M2_HOSTILE|M2_STALK|M2_STRONG, 0, CLR_GREEN),
888.  /*
889.   * unicorns and horses
890.   */
891.      MON("white unicorn", S_UNICORN,
892.  	LVL(4, 24, 2, 70, 7), (G_GENO|2),
893.  	A(ATTK(AT_BUTT, AD_PHYS, 1,12), ATTK(AT_KICK, AD_PHYS, 1, 6),
894.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
895.  	SIZ(1300, 300, 0, MS_NEIGH, MZ_LARGE), MR_POISON, MR_POISON,
896.  	M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_JEWELS,
897.  	M3_INFRAVISIBLE, CLR_WHITE),
898.      MON("gray unicorn", S_UNICORN,
899.  	LVL(4, 24, 2, 70, 0), (G_GENO|1),
900.  	A(ATTK(AT_BUTT, AD_PHYS, 1,12), ATTK(AT_KICK, AD_PHYS, 1, 6),
901.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
902.  	SIZ(1300, 300, 0, MS_NEIGH, MZ_LARGE), MR_POISON, MR_POISON,
903.  	M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_JEWELS,
904.  	M3_INFRAVISIBLE, CLR_GRAY),
905.      MON("black unicorn", S_UNICORN,
906.  	LVL(4, 24, 2, 70, -7), (G_GENO|1),
907.  	A(ATTK(AT_BUTT, AD_PHYS, 1,12), ATTK(AT_KICK, AD_PHYS, 1, 6),
908.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
909.  	SIZ(1300, 300, 0, MS_NEIGH, MZ_LARGE), MR_POISON, MR_POISON,
910.  	M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_JEWELS,
911.  	M3_INFRAVISIBLE, CLR_BLACK),
912.      MON("pony", S_UNICORN,
913.  	LVL(3, 16, 6, 0, 0), (G_GENO|2),
914.  	A(ATTK(AT_KICK, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_PHYS, 1, 2),
915.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
916.  	SIZ(1300, 250, 0, MS_NEIGH, MZ_MEDIUM), 0, 0,
917.  	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_DOMESTIC,
918.  	M3_INFRAVISIBLE, CLR_BROWN),
919.      MON("horse", S_UNICORN,
920.  	LVL(5, 20, 5, 0, 0), (G_GENO|2),
921.  	A(ATTK(AT_KICK, AD_PHYS, 1, 8), ATTK(AT_BITE, AD_PHYS, 1, 3),
922.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
923.  	SIZ(1500, 300, 0, MS_NEIGH, MZ_LARGE), 0, 0,
924.  	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_DOMESTIC,
925.  	M3_INFRAVISIBLE, CLR_BROWN),
926.      MON("warhorse", S_UNICORN,
927.  	LVL(7, 24, 4, 0, 0), (G_GENO|2),
928.  	A(ATTK(AT_KICK, AD_PHYS, 1, 10), ATTK(AT_BITE, AD_PHYS, 1, 4),
929.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
930.  	SIZ(1800, 350, 0, MS_NEIGH, MZ_LARGE), 0, 0,
931.  	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_DOMESTIC,
932.  	M3_INFRAVISIBLE, CLR_BROWN),
933.  /*
934.   * vortices
935.   */
936.      MON("fog cloud", S_VORTEX,
937.  	LVL(3, 1, 0, 0, 0), (G_GENO|G_NOCORPSE|2),
938.  	A(ATTK(AT_ENGL, AD_PHYS, 1, 6),
939.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
940.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_SLEEP|MR_POISON|MR_STONE, 0,
941.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
942.  	  M1_AMORPHOUS|M1_UNSOLID,
943.  	M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
944.      MON("dust vortex", S_VORTEX,
945.  	LVL(4, 20, 2, 30, 0), (G_GENO|G_NOCORPSE|2),
946.  	A(ATTK(AT_ENGL, AD_BLND, 2, 8),
947.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
948.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_SLEEP|MR_POISON|MR_STONE, 0,
949.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
950.  	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
951.      MON("ice vortex", S_VORTEX,
952.  	LVL(5, 20, 2, 30, 0), (G_NOHELL|G_GENO|G_NOCORPSE|1),
953.  	A(ATTK(AT_ENGL, AD_COLD, 1, 6),
954.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
955.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
956.  	MR_COLD|MR_SLEEP|MR_POISON|MR_STONE, 0,
957.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
958.  	M2_HOSTILE|M2_NEUTER, 0, CLR_CYAN),
959.      MON("energy vortex", S_VORTEX,
960.  	LVL(6, 20, 2, 30, 0), (G_GENO|G_NOCORPSE|1),
961.  	A(ATTK(AT_ENGL, AD_ELEC, 1, 6), ATTK(AT_ENGL, AD_DREN, 0, 0),
962.  	  ATTK(AT_NONE, AD_ELEC, 0, 4), NO_ATTK, NO_ATTK, NO_ATTK),
963.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
964.  	MR_ELEC|MR_SLEEP|MR_DISINT|MR_POISON|MR_STONE, 0,
965.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
966.  	  M1_UNSOLID,
967.  	M2_HOSTILE|M2_NEUTER, 0, HI_ZAP),
968.      MON("steam vortex", S_VORTEX,
969.  	LVL(7, 22, 2, 30, 0), (G_HELL|G_GENO|G_NOCORPSE|2),
970.  	A(ATTK(AT_ENGL, AD_FIRE, 1, 8),
971.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
972.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
973.  	MR_FIRE|MR_SLEEP|MR_POISON|MR_STONE, 0,
974.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
975.  	  M1_UNSOLID,
976.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_BLUE),
977.      MON("fire vortex", S_VORTEX,
978.  	LVL(8, 22, 2, 30, 0), (G_HELL|G_GENO|G_NOCORPSE|1),
979.  	A(ATTK(AT_ENGL, AD_FIRE, 1,10), ATTK(AT_NONE, AD_FIRE, 0, 4),
980.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
981.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
982.  	MR_FIRE|MR_SLEEP|MR_POISON|MR_STONE, 0,
983.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
984.  	  M1_UNSOLID,
985.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),
986.  /*
987.   * worms
988.   */
989.      MON("baby long worm", S_WORM,
990.  	LVL(8, 3, 5, 0, 0), G_GENO,
991.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
992.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
993.  	SIZ(600, 250, 0, MS_SILENT, MZ_LARGE), 0, 0,
994.  	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
995.  	M2_HOSTILE, 0, CLR_BROWN),
996.      MON("baby purple worm", S_WORM,
997.  	LVL(8, 3, 5, 0, 0), G_GENO,
998.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
999.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1000. 	SIZ(600, 250, 0, MS_SILENT, MZ_LARGE), 0, 0,
1001. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_CARNIVORE, M2_HOSTILE,
1002. 	0, CLR_MAGENTA),
1003.     MON("long worm", S_WORM,
1004. 	LVL(8, 3, 5, 10, 0), (G_GENO|2),
1005. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1006. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1007. 	SIZ(1500, 500, 0, MS_SILENT, MZ_GIGANTIC), 0, 0,
1008. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_OVIPAROUS|M1_CARNIVORE|M1_NOTAKE,
1009. 	M2_HOSTILE|M2_STRONG|M2_NASTY, 0, CLR_BROWN),
1010.     MON("purple worm", S_WORM,
1011. 	LVL(15, 9, 6, 20, 0), (G_GENO|2),
1012. 	A(ATTK(AT_BITE, AD_PHYS, 2, 8), ATTK(AT_ENGL, AD_DGST, 1,10),
1013. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1014. 	SIZ(2700, 700, 0, MS_SILENT, MZ_GIGANTIC), 0, 0,
1015. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_OVIPAROUS|M1_CARNIVORE,
1016. 	M2_HOSTILE|M2_STRONG|M2_NASTY, 0, CLR_MAGENTA),
1017. /*
1018.  * xan, &c
1019.  */
1020.     MON("grid bug", S_XAN,
1021. 	LVL(0, 12, 9, 0, 0), (G_GENO|G_SGROUP|G_NOCORPSE|3),
1022. 	A(ATTK(AT_BITE, AD_ELEC, 1, 1),
1023. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1024. 	SIZ(15, 10, 0, MS_BUZZ, MZ_TINY), MR_ELEC|MR_POISON, 0,
1025. 	M1_ANIMAL, M2_HOSTILE, M3_INFRAVISIBLE, CLR_MAGENTA),
1026.     MON("xan", S_XAN,
1027. 	LVL(7, 18, -4, 0, 0), (G_GENO|3),
1028. 	A(ATTK(AT_STNG, AD_LEGS, 1, 4),
1029. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1030. 	SIZ(300, 300, 0, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
1031. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_POIS, M2_HOSTILE, M3_INFRAVISIBLE,
1032. 	CLR_RED),
1033. /*
1034.  * lights
1035.  */
1036.     MON("yellow light", S_LIGHT,
1037. 	LVL(3, 15, 0, 0, 0), (G_NOCORPSE|G_GENO|4),
1038. 	A(ATTK(AT_EXPL, AD_BLND, 10,20),
1039. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1040. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL),
1041. 	MR_FIRE|MR_COLD|MR_ELEC|MR_DISINT|MR_SLEEP|MR_POISON|MR_ACID|
1042. 	  MR_STONE, 0,
1043. 	M1_FLY|M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1044. 	  M1_MINDLESS|M1_UNSOLID|M1_NOTAKE,
1045. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),
1046.     MON("black light", S_LIGHT,
1047. 	LVL(5, 15, 0, 0, 0), (G_NOCORPSE|G_GENO|2),
1048. 	A(ATTK(AT_EXPL, AD_HALU, 10,12),
1049. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1050. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL),
1051. 	MR_FIRE|MR_COLD|MR_ELEC|MR_DISINT|MR_SLEEP|MR_POISON|MR_ACID|
1052. 	  MR_STONE, 0,
1053. 	M1_FLY|M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1054. 	  M1_MINDLESS|M1_UNSOLID|M1_SEE_INVIS|M1_NOTAKE,
1055. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BLACK),
1056. /*
1057.  * zruty
1058.  */
1059.     MON("zruty", S_ZRUTY,
1060. 	LVL(9, 8, 3, 0, 0), (G_GENO|2),
1061. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
1062. 	  ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1063. 	SIZ(1200, 600, 0, MS_SILENT, MZ_LARGE), 0, 0,
1064. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
1065. 	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_BROWN),
1066. /*
1067.  * Angels and other lawful minions
1068.  */
1069.     MON("couatl", S_ANGEL,
1070. 	LVL(8, 10, 5, 30, 7), (G_NOHELL|G_SGROUP|G_NOCORPSE|1),
1071. 	A(ATTK(AT_BITE, AD_DRST, 2, 4), ATTK(AT_BITE, AD_PHYS, 1, 3),
1072. 	  ATTK(AT_HUGS, AD_WRAP, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
1073. 	SIZ(900, 400, 0, MS_HISS, MZ_LARGE), MR_POISON, 0,
1074. 	M1_FLY|M1_POIS,
1075. 	M2_MINION|M2_STALK|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
1076. 	CLR_GREEN),
1077.     MON("Aleax", S_ANGEL,
1078. 	LVL(10, 8, 0, 30, 7), (G_NOHELL|G_NOCORPSE|1),
1079. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
1080. 	  ATTK(AT_KICK, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
1081. 	SIZ(WT_HUMAN, 400, 0, MS_IMITATE, MZ_HUMAN),
1082. 	MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
1083. 	M1_HUMANOID|M1_SEE_INVIS,
1084. 	M2_MINION|M2_STALK|M2_NASTY|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION,
1085. 	CLR_YELLOW),
1086.     MON("Angel", S_ANGEL,
1087. 	LVL(14, 10, -4, 55, 12), (G_NOHELL|G_NOCORPSE|1),
1088. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1089. 	  ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_MAGM, 2, 6),
1090. 	  NO_ATTK, NO_ATTK),
1091. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_CUSS, MZ_HUMAN),
1092. 	MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
1093. 	M1_HUMANOID|M1_SEE_INVIS,
1094. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_COLLECT,
1095. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_WHITE),
1096.     MON("ki-rin", S_ANGEL,
1097. 	LVL(16, 18, -5, 90, 15), (G_NOHELL|G_NOCORPSE|1),
1098. 	A(ATTK(AT_KICK, AD_PHYS, 2, 4), ATTK(AT_KICK, AD_BLND, 2, 4),
1099. 	  ATTK(AT_BUTT, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1100. 	SIZ(WT_HUMAN, 400, 0, MS_NEIGH, MZ_LARGE), 0, 0,
1101. 	M1_FLY|M1_SEE_INVIS,
1102. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_LORD,
1103. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_GOLD),
1104.     MON("Archon", S_ANGEL,
1105. 	LVL(19, 16, -6, 80, 15), (G_NOHELL|G_NOCORPSE|1),
1106. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_GAZE, AD_BLND, 2, 6),
1107. 	  ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 1, 8),
1108. 	  ATTK(AT_MAGC, AD_SPEL, 4, 6), NO_ATTK),
1109. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE),
1110. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
1111. 	M1_FLY|M1_HUMANOID|M1_SEE_INVIS|M1_REGEN,
1112. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_LORD|
1113. 	  M2_COLLECT|M2_MAGIC,
1114. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
1115. /*
1116.  * Bats
1117.  */
1118.     MON("bat", S_BAT,
1119. 	LVL(0, 22, 8, 0, 0), (G_GENO|G_SGROUP|1),
1120. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1121. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1122. 	SIZ(20, 20, 0, MS_SQEEK, MZ_TINY), 0, 0,
1123. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_WANDER, M3_INFRAVISIBLE,
1124. 	CLR_BROWN),
1125.     MON("giant bat", S_BAT,
1126. 	LVL(2, 22, 7, 0, 0), (G_GENO|2),
1127. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
1128. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1129. 	SIZ(30, 30, 0, MS_SQEEK, MZ_MEDIUM), 0, 0,
1130. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
1131. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_RED),
1132.     MON("raven", S_BAT,
1133. 	LVL(4, 20, 6, 0, 0), (G_GENO|2),
1134. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_BLND, 1, 6),
1135. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1136. 	SIZ(40, 20, 0, MS_SQAWK, MZ_MEDIUM), 0, 0,
1137. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
1138. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BLACK),
1139.     MON("vampire bat", S_BAT,
1140. 	LVL(5, 20, 6, 0, 0), (G_GENO|2),
1141. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_DRST, 0, 0),
1142. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1143. 	SIZ(30, 20, 0, MS_SQEEK, MZ_TINY), MR_SLEEP|MR_POISON, 0,
1144. 	M1_FLY|M1_BREATHLESS|M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_REGEN,
1145. 	M2_UNDEAD|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BLACK),
1146. /*
1147.  * Centaurs
1148.  */
1149.     MON("plains centaur", S_CENTAUR,
1150. 	LVL(4, 18, 4, 0, 0), (G_GENO|1),
1151. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_KICK, AD_PHYS, 1, 6),
1152. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1153. 	SIZ(2500, 500, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
1154. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
1155. 	M3_INFRAVISIBLE, CLR_BROWN),
1156.     MON("forest centaur", S_CENTAUR,
1157. 	LVL(5, 18, 3, 10, -1), (G_GENO|1),
1158. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_KICK, AD_PHYS, 1, 6),
1159. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1160. 	SIZ(2550, 600, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
1161. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
1162. 	M3_INFRAVISIBLE, CLR_GREEN),
1163.     MON("mountain centaur", S_CENTAUR,
1164. 	LVL(6, 20, 2, 10, -3), (G_GENO|1),
1165. 	A(ATTK(AT_WEAP, AD_PHYS, 1,10), ATTK(AT_KICK, AD_PHYS, 1, 6),
1166. 	  ATTK(AT_KICK, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1167. 	SIZ(2550, 500, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
1168. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
1169. 	M3_INFRAVISIBLE, CLR_CYAN),
1170. /*
1171.  * Dragons
1172.  */
1173. 	/* The order of the dragons is VERY IMPORTANT.  Quite a few
1174. 	 * pieces of code depend on gray being first and yellow being last.
1175. 	 * The code also depends on the *order* being the same as that for
1176. 	 * dragon scale mail and dragon scales in objects.c.  Baby dragons
1177. 	 * cannot confer intrinsics, to avoid polyself/egg abuse.
1178. 	 *
1179. 	 * As reptiles, dragons are cold-blooded and thus aren't seen
1180. 	 * with infravision.  Red dragons are the exception.
1181. 	 */
1182.     MON("baby gray dragon", S_DRAGON,
1183. 	LVL(12, 9, 2, 10, 0), G_GENO,
1184. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1185. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1186. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
1187. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1188. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, M3_INFRAVISIBLE, CLR_GRAY),
1189.     MON("baby silver dragon", S_DRAGON,
1190. 	LVL(12, 9, 2, 40, 0), G_GENO,
1191. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1192. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1193. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
1194. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1195. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_BRIGHT_CYAN),
1196. #if 0	/* DEFERRED */
1197.     MON("baby shimmering dragon", S_DRAGON,
1198. 	LVL(12, 9, 2, 10, 0), G_GENO,
1199. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1200. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1201. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
1202. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1203. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_CYAN),
1204. #endif
1205.     MON("baby red dragon", S_DRAGON,
1206. 	LVL(12, 9, 2, 10, 0), G_GENO,
1207. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1208. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1209. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_FIRE, 0,
1210. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1211. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, M3_INFRAVISIBLE, CLR_RED),
1212.     MON("baby white dragon", S_DRAGON,
1213. 	LVL(12, 9, 2, 10, 0), G_GENO,
1214. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1215. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1216. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_COLD, 0,
1217. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1218. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_WHITE),
1219.     MON("baby orange dragon", S_DRAGON,
1220. 	LVL(12, 9, 2, 10, 0), G_GENO,
1221. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1222. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1223. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_SLEEP, 0,
1224. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1225. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_ORANGE),
1226.     MON("baby black dragon", S_DRAGON,
1227. 	LVL(12, 9, 2, 10, 0), G_GENO,
1228. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1229. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1230. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_DISINT, 0,
1231. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1232. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_BLACK),
1233.     MON("baby blue dragon", S_DRAGON,
1234. 	LVL(12, 9, 2, 10, 0), G_GENO,
1235. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1236. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1237. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_ELEC, 0,
1238. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1239. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_BLUE),
1240.     MON("baby green dragon", S_DRAGON,
1241. 	LVL(12, 9, 2, 10, 0), G_GENO,
1242. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1243. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1244. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_POISON, 0,
1245. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_POIS,
1246. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_GREEN),
1247.     MON("baby yellow dragon", S_DRAGON,
1248. 	LVL(12, 9, 2, 10, 0), G_GENO,
1249. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1250. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1251. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_ACID|MR_STONE, 0,
1252. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_ACID,
1253. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_YELLOW),
1254.     MON("gray dragon", S_DRAGON,
1255. 	LVL(15, 9, -1, 20, 4), (G_GENO|1),
1256. 	A(ATTK(AT_BREA, AD_MAGM, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1257. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1258. 	  NO_ATTK, NO_ATTK),
1259. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), 0, 0,
1260. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1261. 	  M1_CARNIVORE,
1262. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_GRAY),
1263.     MON("silver dragon", S_DRAGON,
1264. 	LVL(15, 9, -1, 95, 4), (G_GENO|1),
1265. 	A(ATTK(AT_BREA, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1266. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1267. 	  NO_ATTK, NO_ATTK),
1268. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_COLD, 0,
1269. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1270. 	  M1_CARNIVORE,
1271. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
1272. 	0, CLR_BRIGHT_CYAN),
1273. #if 0	/* DEFERRED */
1274.     MON("shimmering dragon", S_DRAGON,
1275. 	LVL(15, 9, -1, 20, 4), (G_GENO|1),
1276. 	A(ATTK(AT_BREA, AD_MAGM, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1277. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1278. 	  NO_ATTK, NO_ATTK),
1279. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), 0, 0,
1280. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1281. 	  M1_CARNIVORE,
1282. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
1283. 	0, CLR_CYAN),
1284. #endif
1285.     MON("red dragon", S_DRAGON,
1286. 	LVL(15, 9, -1, 20, -4), (G_GENO|1),
1287. 	A(ATTK(AT_BREA, AD_FIRE, 6, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1288. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1289. 	  NO_ATTK, NO_ATTK),
1290. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_FIRE, MR_FIRE,
1291. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1292. 	  M1_CARNIVORE,
1293. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
1294. 	M3_INFRAVISIBLE, CLR_RED),
1295.     MON("white dragon", S_DRAGON,
1296. 	LVL(15, 9, -1, 20, -5), (G_GENO|1),
1297. 	A(ATTK(AT_BREA, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1298. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1299. 	  NO_ATTK, NO_ATTK),
1300. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_COLD, MR_COLD,
1301. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1302. 	  M1_CARNIVORE,
1303. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_WHITE),
1304.     MON("orange dragon", S_DRAGON,
1305. 	LVL(15, 9, -1, 20, 5), (G_GENO|1),
1306. 	A(ATTK(AT_BREA, AD_SLEE, 4,25), ATTK(AT_BITE, AD_PHYS, 3, 8),
1307. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1308. 	  NO_ATTK, NO_ATTK),
1309. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_SLEEP, MR_SLEEP,
1310. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1311. 	  M1_CARNIVORE,
1312. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
1313. 	0, CLR_ORANGE),
1314.     MON("black dragon", S_DRAGON,
1315. 	LVL(15, 9, -1, 20, -6), (G_GENO|1),
1316. 	A(ATTK(AT_BREA, AD_DISN, 4,10), ATTK(AT_BITE, AD_PHYS, 3, 8),
1317. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1318. 	  NO_ATTK, NO_ATTK),
1319. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_DISINT, MR_DISINT,
1320. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1321. 	  M1_CARNIVORE,
1322. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_BLACK),
1323.     MON("blue dragon", S_DRAGON,
1324. 	LVL(15, 9, -1, 20, -7), (G_GENO|1),
1325. 	A(ATTK(AT_BREA, AD_ELEC, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1326. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1327. 	  NO_ATTK, NO_ATTK),
1328. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_ELEC, MR_ELEC,
1329. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1330. 	  M1_CARNIVORE,
1331. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_BLUE),
1332.     MON("green dragon", S_DRAGON,
1333. 	LVL(15, 9, -1, 20, 6), (G_GENO|1),
1334. 	A(ATTK(AT_BREA, AD_DRST, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1335. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1336. 	  NO_ATTK, NO_ATTK),
1337. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_POISON, MR_POISON,
1338. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1339. 	  M1_CARNIVORE|M1_POIS,
1340. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_GREEN),
1341.     MON("yellow dragon", S_DRAGON,
1342. 	LVL(15, 9, -1, 20, 7), (G_GENO|1),
1343. 	A(ATTK(AT_BREA, AD_ACID, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1344. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1345. 	  NO_ATTK, NO_ATTK),
1346. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC),
1347. 	MR_ACID|MR_STONE, MR_STONE,
1348. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1349. 	  M1_CARNIVORE|M1_ACID,
1350. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
1351. 	0, CLR_YELLOW),
1352. /*
1353.  * Elementals
1354.  */
1355.     MON("stalker", S_ELEMENTAL,
1356. 	LVL(8, 12, 3, 0, 0), (G_GENO|3),
1357. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 4),
1358. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1359. 	SIZ(900, 400, 0, MS_SILENT, MZ_LARGE), 0, 0,
1360. 	M1_ANIMAL|M1_FLY|M1_SEE_INVIS,
1361. 	M2_WANDER|M2_STALK|M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_WHITE),
1362.     MON("air elemental", S_ELEMENTAL,
1363. 	LVL(8, 36, 2, 30, 0), (G_NOCORPSE|1),
1364. 	A(ATTK(AT_ENGL, AD_PHYS, 2,10),
1365. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1366. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_POISON|MR_STONE, 0,
1367. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_UNSOLID|M1_FLY,
1368. 	M2_STRONG|M2_NEUTER, 0, CLR_CYAN),
1369.     MON("fire elemental", S_ELEMENTAL,
1370. 	LVL(8, 12, 2, 30, 0), (G_NOCORPSE|1),
1371. 	A(ATTK(AT_CLAW, AD_FIRE, 3, 6), ATTK(AT_NONE, AD_FIRE, 0, 4),
1372. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1373. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_FIRE|MR_POISON|MR_STONE, 0,
1374. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_UNSOLID|M1_FLY|M1_NOTAKE,
1375. 	M2_STRONG|M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),
1376.     MON("earth elemental", S_ELEMENTAL,
1377. 	LVL(8, 6, 2, 30, 0), (G_NOCORPSE|1),
1378. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 6),
1379. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1380. 	SIZ(2500, 0, 0, MS_SILENT, MZ_HUGE),
1381. 	MR_FIRE|MR_COLD|MR_POISON|MR_STONE, 0,
1382. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_BREATHLESS|
1383. 	  M1_WALLWALK|M1_THICK_HIDE,
1384. 	M2_STRONG|M2_NEUTER, 0, CLR_BROWN),
1385.     MON("water elemental", S_ELEMENTAL,
1386. 	LVL(8, 6, 2, 30, 0), (G_NOCORPSE|1),
1387. 	A(ATTK(AT_CLAW, AD_PHYS, 5, 6),
1388. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1389. 	SIZ(2500, 0, 0, MS_SILENT, MZ_HUGE), MR_POISON|MR_STONE, 0,
1390. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_AMPHIBIOUS|M1_SWIM,
1391. 	M2_STRONG|M2_NEUTER, 0, CLR_BLUE),
1392. /*
1393.  * Fungi
1394.  */
1395.     MON("lichen", S_FUNGUS,
1396. 	LVL(0, 1, 9, 0, 0), (G_GENO|4),
1397. 	A(ATTK(AT_TUCH, AD_STCK, 0, 0),
1398. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1399. 	SIZ(20, 200, 0, MS_SILENT, MZ_SMALL), 0, 0,
1400. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
1401. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BRIGHT_GREEN),
1402.     MON("brown mold", S_FUNGUS,
1403. 	LVL(1, 0, 9, 0, 0), (G_GENO|1),
1404. 	A(ATTK(AT_NONE, AD_COLD, 0, 6),
1405. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1406. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL),
1407. 	MR_COLD|MR_POISON, MR_COLD|MR_POISON,
1408. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
1409. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
1410.     MON("yellow mold", S_FUNGUS,
1411. 	LVL(1, 0, 9, 0, 0), (G_GENO|2),
1412. 	A(ATTK(AT_NONE, AD_STUN, 0, 4),
1413. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1414. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
1415. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_POIS|M1_NOTAKE,
1416. 	M2_HOSTILE|M2_NEUTER, 0, CLR_YELLOW),
1417.     MON("green mold", S_FUNGUS,
1418. 	LVL(1, 0, 9, 0, 0), (G_GENO|1),
1419. 	A(ATTK(AT_NONE, AD_ACID, 0, 4),
1420. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1421. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL), MR_ACID|MR_STONE, MR_STONE,
1422. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_ACID|M1_NOTAKE,
1423. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
1424.     MON("red mold", S_FUNGUS,
1425. 	LVL(1, 0, 9, 0, 0), (G_GENO|1),
1426. 	A(ATTK(AT_NONE, AD_FIRE, 0, 4),
1427. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1428. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL),
1429. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
1430. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
1431. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_RED),
1432.     MON("shrieker", S_FUNGUS,
1433. 	LVL(3, 1, 7, 0, 0), (G_GENO|1),
1434. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1435. 	SIZ(100, 100, 0, MS_SHRIEK, MZ_SMALL), MR_POISON, MR_POISON,
1436. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
1437. 	M2_HOSTILE|M2_NEUTER, 0, CLR_MAGENTA),
1438.     MON("violet fungus", S_FUNGUS,
1439. 	LVL(3, 1, 7, 0, 0), (G_GENO|2),
1440. 	A(ATTK(AT_TUCH, AD_PHYS, 1, 4), ATTK(AT_TUCH, AD_STCK, 0, 0),
1441. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1442. 	SIZ(100, 100, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
1443. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
1444. 	M2_HOSTILE|M2_NEUTER, 0, CLR_MAGENTA),
1445. /*
1446.  * Gnomes
1447.  */
1448.     MON("gnome", S_GNOME,
1449. 	LVL(1, 6, 10, 4, 0), (G_GENO|G_SGROUP|1),
1450. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
1451. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1452. 	SIZ(650, 100, 0, MS_ORC, MZ_SMALL), 0, 0,
1453. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_COLLECT,
1454. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
1455.     MON("gnome lord", S_GNOME,
1456. 	LVL(3, 8, 10, 4, 0), (G_GENO|2),
1457. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
1458. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1459. 	SIZ(700, 120, 0, MS_ORC, MZ_SMALL), 0, 0,
1460. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_LORD|M2_MALE|M2_COLLECT,
1461. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
1462.     MON("gnomish wizard", S_GNOME,
1463. 	LVL(3, 10, 4, 10, 0), (G_GENO|1),
1464. 	A(ATTK(AT_MAGC, AD_SPEL, 0, 0),
1465. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1466. 	SIZ(700, 120, 0, MS_ORC, MZ_SMALL), 0, 0,
1467. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_MAGIC,
1468. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_ZAP),
1469.     MON("gnome king", S_GNOME,
1470. 	LVL(5, 10, 10, 20, 0), (G_GENO|1),
1471. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
1472. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1473. 	SIZ(750, 150, 0, MS_ORC, MZ_SMALL), 0, 0,
1474. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_PRINCE|M2_MALE|M2_COLLECT,
1475. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
1476. #ifdef SPLITMON_1
1477. };
1478. #endif
1479. #endif /* !SPLITMON_2 */
1480. 
1481. /* horrible kludge alert:
1482.  * This is a compiler-specific kludge to allow the compilation of monst.o in
1483.  * two pieces, by defining first SPLITMON_1 and then SPLITMON_2. The
1484.  * resulting assembler files (monst1.s and monst2.s) are then run through
1485.  * sed to change local symbols, concatenated together, and assembled to
1486.  * produce monst.o. THIS ONLY WORKS WITH THE ATARI GCC, and should only
1487.  * be done if you don't have enough memory to compile monst.o the "normal"
1488.  * way.  --ERS
1489.  */
1490. 
1491. #ifndef SPLITMON_1
1492. #ifdef SPLITMON_2
1493. struct permonst _mons2[] = {
1494. #endif
1495. /*
1496.  * giant Humanoids
1497.  */
1498.     MON("giant", S_GIANT,
1499. 	LVL(6, 6, 0, 0, 2), (G_GENO|G_NOGEN|1),
1500. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
1501. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1502. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), 0, 0,
1503. 	M1_HUMANOID|M1_CARNIVORE,
1504. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1505. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
1506.     MON("stone giant", S_GIANT,
1507. 	LVL(6, 6, 0, 0, 2), (G_GENO|G_SGROUP|1),
1508. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
1509. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1510. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), 0, 0,
1511. 	M1_HUMANOID|M1_CARNIVORE,
1512. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1513. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
1514.     MON("hill giant", S_GIANT,
1515. 	LVL(8, 10, 6, 0, -2), (G_GENO|G_SGROUP|1),
1516. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8),
1517. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1518. 	SIZ(2200, 700, 0, MS_BOAST, MZ_HUGE), 0, 0,
1519. 	M1_HUMANOID|M1_CARNIVORE,
1520. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1521. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_CYAN),
1522.     MON("fire giant", S_GIANT,
1523. 	LVL(9, 12, 4, 5, 2), (G_GENO|G_SGROUP|1),
1524. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
1525. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1526. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_FIRE, MR_FIRE,
1527. 	M1_HUMANOID|M1_CARNIVORE,
1528. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1529. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_YELLOW),
1530.     MON("frost giant", S_GIANT,
1531. 	LVL(10, 12, 3, 10, -3), (G_NOHELL|G_GENO|G_SGROUP|1),
1532. 	A(ATTK(AT_WEAP, AD_PHYS, 2,12),
1533. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1534. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_COLD, MR_COLD,
1535. 	M1_HUMANOID|M1_CARNIVORE,
1536. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1537. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_WHITE),
1538.     MON("storm giant", S_GIANT,
1539. 	LVL(16, 12, 3, 10, -3), (G_GENO|G_SGROUP|1),
1540. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 12),
1541. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1542. 	SIZ(2250, 750, 0, MS_SILENT, MZ_HUGE), MR_ELEC, MR_ELEC,
1543. 	M1_HUMANOID|M1_CARNIVORE,
1544. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1545. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
1546.     MON("ettin", S_GIANT,
1547. 	LVL(10, 12, 3, 0, 0), (G_GENO|1),
1548. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 3, 6),
1549. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1550. 	SIZ(1700, 500, 0, MS_GRUNT, MZ_HUGE), 0, 0,
1551. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
1552. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
1553. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
1554.     MON("titan", S_GIANT,
1555. 	LVL(16, 18, -3, 70, 9), (1),
1556. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_MAGC, AD_SPEL, 0, 0),
1557. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1558. 	SIZ(2300, 900, 0, MS_SPELL, MZ_HUGE), 0, 0,
1559. 	M1_FLY|M1_HUMANOID|M1_OMNIVORE,
1560. 	M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_MAGIC,
1561. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_MAGENTA),
1562.     MON("minotaur", S_GIANT,
1563. 	LVL(15, 15, 6, 0, 0), (G_GENO|G_NOGEN),
1564. 	A(ATTK(AT_CLAW, AD_PHYS, 3,10), ATTK(AT_CLAW, AD_PHYS, 3,10),
1565. 	  ATTK(AT_BUTT, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK),
1566. 	SIZ(1500, 700, 0, MS_SILENT, MZ_LARGE), 0, 0,
1567. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
1568. 	M2_HOSTILE|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
1569. 	CLR_BROWN),
1570. /* 'I' is a visual marker for all invisible monsters and must be unused */
1571. /*
1572.  * Jabberwock
1573.  */
1574.     MON("jabberwock", S_JABBERWOCK,
1575. 	LVL(15, 12, -2, 50, 0), (G_GENO|1),
1576. 	A(ATTK(AT_BITE, AD_PHYS, 2,10), ATTK(AT_BITE, AD_PHYS, 2,10),
1577. 	  ATTK(AT_CLAW, AD_PHYS, 2,10), ATTK(AT_CLAW, AD_PHYS, 2,10),
1578. 	  NO_ATTK, NO_ATTK),
1579. 	SIZ(1300, 600, 0, MS_BURBLE, MZ_LARGE), 0, 0,
1580. 	M1_ANIMAL|M1_FLY|M1_CARNIVORE,
1581. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT, M3_INFRAVISIBLE, CLR_ORANGE),
1582. #if 0	/* DEFERRED */
1583.     MON("vorpal jabberwock", S_JABBERWOCK,       
1584. 	LVL(20, 12, -2, 50, 0), (G_GENO|1),
1585. 	A(ATTK(AT_BITE, AD_PHYS, 3, 10), ATTK(AT_BITE, AD_PHYS, 3, 10),
1586. 	  ATTK(AT_CLAW, AD_PHYS, 3, 10), ATTK(AT_CLAW, AD_PHYS, 3, 10),
1587. 	  NO_ATTK, NO_ATTK),
1588. 	SIZ(1300, 600, 0, MS_BURBLE, MZ_LARGE), 0, 0,
1589. 	M1_ANIMAL|M1_FLY|M1_CARNIVORE,
1590. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT, M3_INFRAVISIBLE, HI_LORD),
1591. #endif
1592. #ifdef KOPS
1593. /*
1594.  * Kops
1595.  */
1596.     MON("Keystone Kop", S_KOP,
1597. 	LVL(1, 6, 10, 10, 9), (G_GENO|G_LGROUP|G_NOGEN),
1598. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
1599. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1600. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
1601. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE,
1602. 	CLR_BLUE),
1603.     MON("Kop Sergeant", S_KOP,
1604. 	LVL(2, 8, 10, 10, 10), (G_GENO|G_SGROUP|G_NOGEN),
1605. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
1606. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1607. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
1608. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_MALE|M2_COLLECT,
1609. 	M3_INFRAVISIBLE, CLR_BLUE),
1610.     MON("Kop Lieutenant", S_KOP,
1611. 	LVL(3, 10, 10, 20, 11), (G_GENO|G_NOGEN),
1612. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
1613. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1614. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
1615. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_MALE|M2_COLLECT,
1616. 	M3_INFRAVISIBLE, CLR_CYAN),
1617.     MON("Kop Kaptain", S_KOP,
1618. 	LVL(4, 12, 10, 20, 12), (G_GENO|G_NOGEN),
1619. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
1620. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1621. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
1622. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_MALE|M2_COLLECT,
1623. 	M3_INFRAVISIBLE, HI_LORD),
1624. #endif
1625. /*
1626.  * Liches
1627.  */
1628.     MON("lich", S_LICH,
1629. 	LVL(11, 6, 0, 30, -9), (G_GENO|G_NOCORPSE|1),
1630. 	A(ATTK(AT_TUCH, AD_COLD, 1,10), ATTK(AT_MAGC, AD_SPEL, 0, 0),
1631. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1632. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
1633. 	MR_COLD|MR_SLEEP|MR_POISON, MR_COLD,
1634. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
1635. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_INFRAVISION, CLR_BROWN),
1636.     MON("demilich", S_LICH,
1637. 	LVL(14, 9, -2, 60, -12), (G_GENO|G_NOCORPSE|1),
1638. 	A(ATTK(AT_TUCH, AD_COLD, 3, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
1639. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1640. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
1641. 	MR_COLD|MR_SLEEP|MR_POISON, MR_COLD,
1642. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
1643. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_INFRAVISION, CLR_RED),
1644.     MON("master lich", S_LICH,
1645. 	LVL(17, 9, -4, 90, -15), (G_HELL|G_GENO|G_NOCORPSE|1),
1646. 	A(ATTK(AT_TUCH, AD_COLD, 3, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
1647. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1648. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
1649. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_POISON, MR_FIRE|MR_COLD,
1650. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
1651. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_WANTSBOOK|M3_INFRAVISION, HI_LORD),
1652.     MON("arch-lich", S_LICH,
1653. 	LVL(25, 9, -6, 90, -15), (G_HELL|G_GENO|G_NOCORPSE|1),
1654. 	A(ATTK(AT_TUCH, AD_COLD, 5, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
1655. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1656. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
1657. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_ELEC|MR_POISON, MR_FIRE|MR_COLD,
1658. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
1659. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_WANTSBOOK|M3_INFRAVISION, HI_LORD),
1660. /*
1661.  * Mummies
1662.  */
1663.     MON("kobold mummy", S_MUMMY,
1664. 	LVL(3, 8, 6, 20, -2), (G_GENO|G_NOCORPSE|1),
1665. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4),
1666. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1667. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
1668. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1669. 	M2_UNDEAD|M2_HOSTILE, M3_INFRAVISION, CLR_BROWN),
1670.     MON("gnome mummy", S_MUMMY,
1671. 	LVL(4, 10, 6, 20, -3), (G_GENO|G_NOCORPSE|1),
1672. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
1673. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1674. 	SIZ(650, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
1675. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1676. 	M2_UNDEAD|M2_HOSTILE|M2_GNOME, M3_INFRAVISION, CLR_RED),
1677.     MON("orc mummy", S_MUMMY,
1678. 	LVL(5, 10, 5, 20, -4), (G_GENO|G_NOCORPSE|1),
1679. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
1680. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1681. 	SIZ(850, 75, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
1682. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1683. 	M2_UNDEAD|M2_HOSTILE|M2_ORC|M2_GREEDY|M2_JEWELS, M3_INFRAVISION,
1684. 	CLR_GRAY),
1685.     MON("dwarf mummy", S_MUMMY,
1686. 	LVL(5, 10, 5, 20, -4), (G_GENO|G_NOCORPSE|1),
1687. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
1688. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1689. 	SIZ(900, 150, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
1690. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1691. 	M2_UNDEAD|M2_HOSTILE|M2_DWARF|M2_GREEDY|M2_JEWELS, M3_INFRAVISION,
1692. 	CLR_RED),
1693.     MON("elf mummy", S_MUMMY,
1694. 	LVL(6, 12, 4, 30, -5), (G_GENO|G_NOCORPSE|1),
1695. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4),
1696. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1697. 	SIZ(WT_ELF, 175, 0, MS_SILENT, MZ_HUMAN),
1698. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
1699. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1700. 	M2_UNDEAD|M2_HOSTILE|M2_ELF, M3_INFRAVISION, CLR_GREEN),
1701.     MON("human mummy", S_MUMMY,
1702. 	LVL(6, 12, 4, 30, -5), (G_GENO|G_NOCORPSE|1),
1703. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
1704. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1705. 	SIZ(WT_HUMAN, 200, 0, MS_SILENT, MZ_HUMAN),
1706. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
1707. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1708. 	M2_UNDEAD|M2_HOSTILE, M3_INFRAVISION, CLR_GRAY),
1709.     MON("ettin mummy", S_MUMMY,
1710. 	LVL(7, 12, 4, 30, -6), (G_GENO|G_NOCORPSE|1),
1711. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_PHYS, 2, 6),
1712. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1713. 	SIZ(1700, 250, 0, MS_SILENT, MZ_HUGE),
1714. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
1715. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1716. 	M2_UNDEAD|M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_BLUE),
1717.     MON("giant mummy", S_MUMMY,
1718. 	LVL(8, 14, 3, 30, -7), (G_GENO|G_NOCORPSE|1),
1719. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
1720. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1721. 	SIZ(2050, 375, 0, MS_SILENT, MZ_HUGE),
1722. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
1723. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1724. 	M2_UNDEAD|M2_HOSTILE|M2_GIANT|M2_STRONG|M2_JEWELS, M3_INFRAVISION,
1725. 	CLR_CYAN),
1726. /*
1727.  * Nagas
1728.  */
1729.     MON("red naga hatchling", S_NAGA,
1730. 	LVL(3, 10, 6, 0, 0), G_GENO,
1731. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1732. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1733. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE),
1734. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
1735. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_NOTAKE, M2_STRONG,
1736. 	M3_INFRAVISIBLE, CLR_RED),
1737.     MON("black naga hatchling", S_NAGA,
1738. 	LVL(3, 10, 6, 0, 0), G_GENO,
1739. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1740. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1741. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE),
1742. 	MR_POISON|MR_ACID|MR_STONE, MR_POISON|MR_STONE,
1743. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_ACID|M1_NOTAKE,
1744. 	M2_STRONG, 0, CLR_BLACK),
1745.     MON("golden naga hatchling", S_NAGA,
1746. 	LVL(3, 10, 6, 0, 0), G_GENO,
1747. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1748. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1749. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE), MR_POISON, MR_POISON,
1750. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_NOTAKE, M2_STRONG, 0, HI_GOLD),
1751.     MON("guardian naga hatchling", S_NAGA,
1752. 	LVL(3, 10, 6, 0, 0), G_GENO,
1753. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1754. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1755. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE), MR_POISON, MR_POISON,
1756. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_NOTAKE, M2_STRONG, 0, CLR_GREEN),
1757.     MON("red naga", S_NAGA,
1758. 	LVL(6, 12, 4, 0, -4), (G_GENO|1),
1759. 	A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_BREA, AD_FIRE, 2, 6),
1760. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1761. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE),
1762. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
1763. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_NOTAKE,
1764. 	M2_STRONG, M3_INFRAVISIBLE, CLR_RED),
1765.     MON("black naga", S_NAGA,
1766. 	LVL(8, 14, 2, 10, 4), (G_GENO|1),
1767. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_SPIT, AD_ACID, 0, 0),
1768. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1769. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE),
1770. 	MR_POISON|MR_ACID|MR_STONE, MR_POISON|MR_STONE,
1771. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_ACID|M1_NOTAKE,
1772. 	M2_STRONG, 0, CLR_BLACK),
1773.     MON("golden naga", S_NAGA,
1774. 	LVL(10, 14, 2, 70, 5), (G_GENO|1),
1775. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_MAGC, AD_SPEL, 4, 6),
1776. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1777. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE), MR_POISON, MR_POISON,
1778. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_NOTAKE,
1779. 	M2_STRONG, 0, HI_GOLD),
1780.     MON("guardian naga", S_NAGA,
1781. 	LVL(12, 16, 0, 50, 7), (G_GENO|1),
1782. 	A(ATTK(AT_BITE, AD_PLYS, 1, 6), ATTK(AT_SPIT, AD_DRST, 1, 6),
1783. 	  ATTK(AT_HUGS, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
1784. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE), MR_POISON, MR_POISON,
1785. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_POIS|M1_NOTAKE,
1786. 	M2_STRONG, 0, CLR_GREEN),
1787. /*
1788.  * Ogres
1789.  */
1790.     MON("ogre", S_OGRE,
1791. 	LVL(5, 10, 5, 0, -3), (G_SGROUP|G_GENO|1),
1792. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 5),
1793. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1794. 	SIZ(1600, 500, 0, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID|M1_CARNIVORE,
1795. 	M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
1796. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
1797.     MON("ogre lord", S_OGRE,
1798. 	LVL(7, 12, 3, 30, -5), (G_GENO|2),
1799. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
1800. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1801. 	SIZ(1700, 700, 0, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID|M1_CARNIVORE,
1802. 	M2_STRONG|M2_LORD|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
1803. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
1804.     MON("ogre king", S_OGRE,
1805. 	LVL(9, 14, 4, 60, -7), (G_GENO|2),
1806. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 5),
1807. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1808. 	SIZ(1700, 750, 0, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID|M1_CARNIVORE,
1809. 	M2_STRONG|M2_PRINCE|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
1810. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
1811. /*
1812.  * Puddings
1813.  */
1814.     MON("gray ooze", S_PUDDING,
1815. 	LVL(3, 1, 8, 0, 0), (G_GENO|2),
1816. 	A(ATTK(AT_BITE, AD_RUST, 2, 8),
1817. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1818. 	SIZ(500, 250, 0, MS_SILENT, MZ_MEDIUM),
1819. 	MR_FIRE|MR_COLD|MR_POISON|MR_ACID|MR_STONE, MR_FIRE|MR_COLD|MR_POISON,
1820. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1821. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID,
1822. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
1823.     MON("brown pudding", S_PUDDING,
1824. 	LVL(5, 3, 8, 0, 0), (G_GENO|1),
1825. 	A(ATTK(AT_BITE, AD_DCAY, 0, 0),
1826. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1827. 	SIZ(500, 250, 0, MS_SILENT, MZ_MEDIUM),
1828. 	MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE, MR_COLD|MR_ELEC|MR_POISON,
1829. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1830. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID,
1831. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
1832.     MON("black pudding", S_PUDDING,
1833. 	LVL(10, 6, 6, 0, 0), (G_GENO|1),
1834. 	A(ATTK(AT_BITE, AD_RUST, 3, 8), ATTK(AT_NONE, AD_RUST, 0, 0),
1835. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1836. 	SIZ(900, 250, 0, MS_SILENT, MZ_LARGE),
1837. 	MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE, MR_COLD|MR_ELEC|MR_POISON,
1838. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1839. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID,
1840. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BLACK),
1841.     MON("green slime", S_PUDDING, 
1842. 	LVL(6, 6, 6, 0, 0), (G_HELL|G_GENO|1),
1843. 	A(ATTK(AT_TUCH, AD_SLIM, 1, 4), ATTK(AT_NONE, AD_SLIM, 0, 0),
1844. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1845. 	SIZ(400, 150, 0, MS_SILENT, MZ_LARGE),
1846. 	MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE, 0,
1847. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1848. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID|M1_POIS,
1849. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
1850. /*
1851.  * Quantum mechanics
1852.  */
1853.     MON("quantum mechanic", S_QUANTMECH,
1854. 	LVL(7, 12, 3, 10, 0), (G_GENO|3),
1855. 	A(ATTK(AT_CLAW, AD_TLPT, 1, 4),
1856. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1857. 	SIZ(WT_HUMAN, 20, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
1858. 	M1_HUMANOID|M1_OMNIVORE|M1_POIS|M1_TPORT, M2_HOSTILE, M3_INFRAVISIBLE,
1859. 	CLR_CYAN),
1860. /*
1861.  * Rust monster or disenchanter
1862.  */
1863.     MON("rust monster", S_RUSTMONST,
1864. 	LVL(5, 18, 2, 0, 0), (G_GENO|2),
1865. 	A(ATTK(AT_TUCH, AD_RUST, 0, 0), ATTK(AT_TUCH, AD_RUST, 0, 0),
1866. 	  ATTK(AT_NONE, AD_RUST, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
1867. 	SIZ(1000, 250, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
1868. 	M1_SWIM|M1_ANIMAL|M1_NOHANDS|M1_METALLIVORE, M2_HOSTILE,
1869. 	M3_INFRAVISIBLE, CLR_BROWN),
1870.     MON("disenchanter", S_RUSTMONST,
1871. 	LVL(12, 12, -10, 0, -3), (G_HELL|G_GENO|2),
1872. 	A(ATTK(AT_CLAW, AD_ENCH, 4, 4), ATTK(AT_NONE, AD_ENCH, 0, 0),
1873. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1874. 	SIZ(750, 200, 0, MS_GROWL, MZ_LARGE), 0, 0,
1875. 	M1_ANIMAL|M1_CARNIVORE, M2_HOSTILE,
1876. 	M3_INFRAVISIBLE, CLR_BLUE),
1877. /*
1878.  * Snakes
1879.  */
1880.     MON("garter snake", S_SNAKE,
1881. 	LVL(1, 8, 8, 0, 0), (G_LGROUP|G_GENO|1),
1882. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
1883. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1884. 	SIZ(50, 60, 0, MS_HISS, MZ_TINY), 0, 0,
1885. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_OVIPAROUS|
1886. 	  M1_CARNIVORE|M1_NOTAKE,
1887. 	0, 0, CLR_GREEN),
1888.     MON("snake", S_SNAKE,
1889. 	LVL(4, 15, 3, 0, 0), (G_GENO|2),
1890. 	A(ATTK(AT_BITE, AD_DRST, 1, 6),
1891. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1892. 	SIZ(100, 80, 0, MS_HISS, MZ_SMALL), MR_POISON, MR_POISON,
1893. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
1894. 	  M1_OVIPAROUS|M1_CARNIVORE|M1_NOTAKE,
1895. 	M2_HOSTILE, 0, CLR_BROWN),
1896.     MON("water moccasin", S_SNAKE,
1897. 	LVL(4, 15, 3, 0, 0), (G_GENO|G_NOGEN|G_LGROUP),
1898. 	A(ATTK(AT_BITE, AD_DRST, 1, 6),
1899. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1900. 	SIZ(150, 80, 0, MS_HISS, MZ_SMALL), MR_POISON, MR_POISON,
1901. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
1902. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
1903. 	M2_HOSTILE, 0, CLR_RED),
1904.     MON("pit viper", S_SNAKE,
1905. 	LVL(6, 15, 2, 0, 0), (G_GENO|1),
1906. 	A(ATTK(AT_BITE, AD_DRST, 1, 4), ATTK(AT_BITE, AD_DRST, 1, 4),
1907. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1908. 	SIZ(100, 60, 0, MS_HISS, MZ_MEDIUM),
1909. 	MR_POISON, MR_POISON,
1910. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
1911. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
1912. 	M2_HOSTILE, M3_INFRAVISION, CLR_BLUE),
1913.     MON("python", S_SNAKE,
1914. 	LVL(6, 3, 5, 0, 0), (G_GENO|1),
1915. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4), ATTK(AT_TUCH, AD_PHYS, 0, 0),
1916. 	  ATTK(AT_HUGS, AD_WRAP, 1, 4), ATTK(AT_HUGS, AD_PHYS, 2, 4),
1917. 	  NO_ATTK, NO_ATTK),
1918. 	SIZ(250, 100, 0, MS_HISS, MZ_LARGE), 0, 0,
1919. 	M1_SWIM|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
1920. 	M2_HOSTILE|M2_STRONG, 0, CLR_MAGENTA),
1921.     MON("cobra", S_SNAKE,
1922. 	LVL(6, 18, 2, 0, 0), (G_GENO|1),
1923. 	A(ATTK(AT_BITE, AD_DRST, 2, 4), ATTK(AT_SPIT, AD_BLND, 0, 0),
1924. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1925. 	SIZ(250, 100, 0, MS_HISS, MZ_MEDIUM),
1926. 	MR_POISON, MR_POISON,
1927. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
1928. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
1929. 	M2_HOSTILE, 0, CLR_BLUE),
1930. /*
1931.  * Trolls
1932.  */
1933.     MON("troll", S_TROLL,
1934. 	LVL(7, 12, 4, 0, -3), (G_GENO|2),
1935. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 2), ATTK(AT_WEAP, AD_PHYS, 4, 2),
1936. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1937. 	SIZ(800, 350, 0, MS_GRUNT, MZ_LARGE), 0, 0,
1938. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
1939. 	M2_STRONG|M2_STALK|M2_HOSTILE, M3_INFRAVISIBLE|M3_INFRAVISION,
1940. 	CLR_BROWN),
1941.     MON("ice troll", S_TROLL,
1942. 	LVL(9, 10, 2, 20, -3), (G_NOHELL|G_GENO|1),
1943. 	A(ATTK(AT_CLAW, AD_COLD, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
1944. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1945. 	SIZ(1000, 300, 0, MS_GRUNT, MZ_LARGE), MR_COLD, MR_COLD,
1946. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
1947. 	M2_STRONG|M2_STALK|M2_HOSTILE, M3_INFRAVISIBLE|M3_INFRAVISION,
1948. 	CLR_WHITE),
1949.     MON("rock troll", S_TROLL,
1950. 	LVL(9, 12, 0, 0, -3), (G_GENO|1),
1951. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 3, 6),
1952. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1953. 	SIZ(1200, 300, 0, MS_GRUNT, MZ_LARGE), 0, 0,
1954. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
1955. 	M2_STRONG|M2_STALK|M2_HOSTILE|M2_COLLECT,
1956. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_CYAN),
1957.     MON("water troll", S_TROLL,
1958. 	LVL(11, 14, 4, 40, -3), (G_NOGEN|G_GENO),
1959. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 2, 8),
1960. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1961. 	SIZ(1200, 350, 0, MS_GRUNT, MZ_LARGE), 0, 0,
1962. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE|M1_SWIM,
1963. 	M2_STRONG|M2_STALK|M2_HOSTILE, M3_INFRAVISIBLE|M3_INFRAVISION,
1964. 	CLR_BLUE),
1965.     MON("Olog-hai", S_TROLL,
1966. 	LVL(13, 12, -4, 0, -7), (G_GENO|1),
1967. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 3, 6),
1968. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1969. 	SIZ(1500, 400, 0, MS_GRUNT, MZ_LARGE), 0, 0,
1970. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
1971. 	M2_STRONG|M2_STALK|M2_HOSTILE|M2_COLLECT,
1972. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
1973. /*
1974.  * Umber hulk
1975.  */
1976.     MON("umber hulk", S_UMBER,
1977. 	LVL(9, 6, 2, 25, 0), (G_GENO|2),
1978. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
1979. 	  ATTK(AT_BITE, AD_PHYS, 2, 5), ATTK(AT_GAZE, AD_CONF, 0, 0),
1980. 	  NO_ATTK, NO_ATTK),
1981. 	SIZ(1200, 500, 0, MS_SILENT, MZ_LARGE), 0, 0,
1982. 	M1_TUNNEL|M1_CARNIVORE, M2_STRONG, M3_INFRAVISIBLE, CLR_BROWN),
1983. /*
1984.  * Vampires
1985.  */
1986.     MON("vampire", S_VAMPIRE,
1987. 	LVL(10, 12, 1, 25, -8), (G_GENO|1),
1988. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_DRLI, 1, 6),
1989. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1990. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON, 0,
1991. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
1992. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE,
1993. 	CLR_RED),
1994.     MON("vampire lord", S_VAMPIRE,
1995. 	LVL(12, 14, 0, 50, -9), (G_GENO|1),
1996. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_BITE, AD_DRLI, 1, 8),
1997. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1998. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON, 0,
1999. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
2000. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_LORD|M2_MALE,
2001. 	M3_INFRAVISIBLE, CLR_BLUE),
2002. #if 0	/* DEFERRED */
2003.     MON("vampire mage", S_VAMPIRE,
2004. 	LVL(20, 14, -4, 50, -9), (G_GENO|1),
2005. 	A(ATTK(AT_CLAW, AD_DRLI, 2, 8), ATTK(AT_BITE, AD_DRLI, 1, 8),
2006. 	  ATTK(AT_MAGC, AD_SPEL, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
2007. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON, 0,
2008. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
2009. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_LORD|M2_MALE|
2010. 	M2_MAGIC, M3_INFRAVISIBLE, HI_ZAP),
2011. #endif
2012.     MON("Vlad the Impaler", S_VAMPIRE,
2013. 	LVL(14, 18, -3, 80, -10), (G_NOGEN|G_NOCORPSE|G_UNIQ),
2014. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 10), ATTK(AT_BITE, AD_DRLI, 1, 10),
2015. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2016. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON, 0,
2017. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
2018. 	M2_NOPOLY|M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|
2019. 	  M2_NASTY|M2_PRINCE|M2_MALE,
2020. 	M3_WAITFORU|M3_WANTSBOOK|M3_INFRAVISIBLE, HI_LORD),
2021. /*
2022.  * Wraiths
2023.  */
2024.     MON("barrow wight", S_WRAITH,
2025. 	LVL(3, 12, 5, 5, -3), (G_GENO|G_NOCORPSE|1),
2026. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
2027. 	  ATTK(AT_WEAP, AD_DRLI, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
2028. 	SIZ(1200, 0, 0, MS_SPELL, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
2029. 	M1_BREATHLESS|M1_HUMANOID,
2030. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_COLLECT, 0, CLR_GRAY),
2031.     MON("wraith", S_WRAITH,
2032. 	LVL(6, 12, 4, 15, -6), (G_GENO|2),
2033. 	A(ATTK(AT_TUCH, AD_DRLI, 1, 6),
2034. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2035. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUMAN),
2036. 	MR_COLD|MR_SLEEP|MR_POISON|MR_STONE, 0,
2037. 	M1_BREATHLESS|M1_FLY|M1_HUMANOID|M1_UNSOLID,
2038. 	M2_UNDEAD|M2_STALK|M2_HOSTILE, 0, CLR_BLACK),
2039.     MON("Nazgul", S_WRAITH,
2040. 	LVL(13, 12, 0, 25, -17), (G_GENO|G_NOCORPSE|1),
2041. 	A(ATTK(AT_WEAP, AD_DRLI, 1, 4), ATTK(AT_BREA, AD_SLEE, 2,25),
2042. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2043. 	SIZ(WT_HUMAN, 0, 0, MS_SPELL, MZ_HUMAN),
2044. 	MR_COLD|MR_SLEEP|MR_POISON, 0, M1_BREATHLESS|M1_HUMANOID,
2045. 	M2_UNDEAD|M2_STALK|M2_STRONG|M2_HOSTILE|M2_MALE|M2_COLLECT,
2046. 	0, HI_LORD),
2047. /*
2048.  * Xorn
2049.  */
2050.     MON("xorn", S_XORN,
2051. 	LVL(8, 9,-2, 20, 0), (G_GENO|1),
2052. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
2053. 	  ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_BITE, AD_PHYS, 4, 6),
2054. 	  NO_ATTK, NO_ATTK),
2055. 	SIZ(1200, 700, 0, MS_SILENT, MZ_MEDIUM),
2056. 	MR_FIRE|MR_COLD|MR_STONE, MR_STONE,
2057. 	M1_BREATHLESS|M1_WALLWALK|M1_THICK_HIDE|M1_METALLIVORE,
2058. 	M2_HOSTILE|M2_STRONG, 0, CLR_BROWN),
2059. /*
2060.  * Yeti, apes and other large beasts
2061.  */
2062.     MON("monkey", S_YETI,
2063. 	LVL(2, 12, 6, 0, 0), (G_GENO|1),
2064. 	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_BITE, AD_PHYS, 1, 3),
2065. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2066. 	SIZ(100, 50, 0, MS_GROWL, MZ_SMALL), 0, 0,
2067. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE, 0, M3_INFRAVISIBLE, CLR_GRAY),
2068.     MON("ape", S_YETI,
2069. 	LVL(4, 12, 6, 0, 0), (G_GENO|G_SGROUP|2),
2070. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
2071. 	  ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
2072. 	SIZ(1100, 500, 0, MS_GROWL, MZ_LARGE), 0, 0,
2073. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE, M2_STRONG, M3_INFRAVISIBLE,
2074. 	CLR_BROWN),
2075.     MON("owlbear", S_YETI,
2076. 	LVL(5, 12, 5, 0, 0), (G_GENO|3),
2077. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
2078. 	  ATTK(AT_HUGS, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK),
2079. 	SIZ(1700, 700, 0, MS_ROAR, MZ_LARGE), 0, 0,
2080. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
2081. 	M2_HOSTILE|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE, CLR_BROWN),
2082.     MON("yeti", S_YETI,
2083. 	LVL(5, 15, 6, 0, 0), (G_GENO|2),
2084. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
2085. 	  ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
2086. 	SIZ(1600, 700, 0, MS_GROWL, MZ_LARGE), MR_COLD, MR_COLD,
2087. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE, M2_HOSTILE|M2_STRONG,
2088. 	M3_INFRAVISIBLE, CLR_WHITE),
2089.     MON("carnivorous ape", S_YETI,
2090. 	LVL(6, 12, 6, 0, 0), (G_GENO|1),
2091. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2092. 	  ATTK(AT_HUGS, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
2093. 	SIZ(1250, 550, 0, MS_GROWL, MZ_LARGE), 0, 0,
2094. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE, M2_HOSTILE|M2_STRONG,
2095. 	M3_INFRAVISIBLE, CLR_BLACK),
2096.     MON("sasquatch", S_YETI,
2097. 	LVL(7, 15, 6, 0, 2), (G_GENO|1),
2098. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
2099. 	  ATTK(AT_KICK, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
2100. 	SIZ(1550, 750, 0, MS_GROWL, MZ_LARGE), 0, 0,
2101. 	M1_ANIMAL|M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE, M2_STRONG,
2102. 	M3_INFRAVISIBLE, CLR_GRAY),
2103. /*
2104.  * Zombies
2105.  */
2106.     MON("kobold zombie", S_ZOMBIE,
2107. 	LVL(0, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
2108. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4),
2109. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2110. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
2111. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
2112. 	M2_UNDEAD|M2_STALK|M2_HOSTILE, M3_INFRAVISION, CLR_BROWN),
2113.     MON("gnome zombie", S_ZOMBIE,
2114. 	LVL(1, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
2115. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 5),
2116. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2117. 	SIZ(650, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
2118. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
2119. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_GNOME, M3_INFRAVISION, CLR_BROWN),
2120.     MON("orc zombie", S_ZOMBIE,
2121. 	LVL(2, 6, 9, 0, -3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
2122. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
2123. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2124. 	SIZ(850, 75, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
2125. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
2126. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_ORC, M3_INFRAVISION, CLR_GRAY),
2127.     MON("dwarf zombie", S_ZOMBIE,
2128. 	LVL(2, 6, 9, 0, -3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
2129. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
2130. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2131. 	SIZ(900, 150, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
2132. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
2133. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_DWARF, M3_INFRAVISION, CLR_RED),
2134.     MON("elf zombie", S_ZOMBIE,
2135. 	LVL(3, 6, 9, 0, -3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
2136. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 7),
2137. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2138. 	SIZ(WT_ELF, 175, 0, MS_SILENT, MZ_HUMAN),
2139. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
2140. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2141. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_ELF, M3_INFRAVISION, CLR_GREEN),
2142.     MON("human zombie", S_ZOMBIE,
2143. 	LVL(4, 6, 8, 0, -3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
2144. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 8),
2145. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2146. 	SIZ(WT_HUMAN, 200, 0, MS_SILENT, MZ_HUMAN),
2147. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
2148. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2149. 	M2_UNDEAD|M2_STALK|M2_HOSTILE, M3_INFRAVISION, HI_DOMESTIC),
2150.     MON("ettin zombie", S_ZOMBIE,
2151. 	LVL(6, 8, 6, 0, -4), (G_GENO|G_NOCORPSE|1),
2152. 	A(ATTK(AT_CLAW, AD_PHYS, 1,10), ATTK(AT_CLAW, AD_PHYS, 1,10),
2153. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2154. 	SIZ(1700, 250, 0, MS_SILENT, MZ_HUGE),
2155. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
2156. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2157. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_BLUE),
2158.     MON("giant zombie", S_ZOMBIE,
2159. 	LVL(8, 8, 6, 0, -4), (G_GENO|G_NOCORPSE|1),
2160. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
2161. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2162. 	SIZ(2050, 375, 0, MS_SILENT, MZ_HUGE),
2163. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
2164. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2165. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_GIANT|M2_STRONG, M3_INFRAVISION,
2166. 	CLR_CYAN),
2167.     MON("ghoul", S_ZOMBIE,
2168. 	LVL(3, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
2169. 	A(ATTK(AT_CLAW, AD_PLYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 3),
2170. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2171. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL),
2172. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
2173. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
2174. 	M2_UNDEAD|M2_WANDER|M2_HOSTILE, M3_INFRAVISION, CLR_BLACK),
2175.     MON("skeleton", S_ZOMBIE,
2176. 	LVL(12, 8, 4, 0, 0), (G_NOCORPSE|G_NOGEN),
2177. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_TUCH, AD_SLOW, 1, 6),
2178. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2179. 	SIZ(300, 5, 0, MS_BONES, MZ_HUMAN),
2180. 	MR_COLD|MR_SLEEP|MR_POISON|MR_STONE, 0,
2181. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2182. 	M2_UNDEAD|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_COLLECT|M2_NASTY,
2183. 	M3_INFRAVISION, CLR_WHITE),
2184. /*
2185.  * golems
2186.  */
2187.     MON("straw golem", S_GOLEM,
2188. 	LVL(3, 12, 10, 0, 0), (G_GENO|G_NOCORPSE|1),
2189. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 2),
2190. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2191. 	SIZ(400, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2192. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2193. 	M2_HOSTILE|M2_NEUTER, 0, CLR_YELLOW),
2194.     MON("paper golem", S_GOLEM,
2195. 	LVL(3, 12, 10, 0, 0), (G_GENO|G_NOCORPSE|1),
2196. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3),
2197. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2198. 	SIZ(400, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2199. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2200. 	M2_HOSTILE|M2_NEUTER, 0, HI_PAPER),
2201.     MON("rope golem", S_GOLEM,
2202. 	LVL(4, 9, 8, 0, 0), (G_GENO|G_NOCORPSE|1),
2203. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2204. 	  ATTK(AT_HUGS, AD_PHYS, 6, 1), NO_ATTK, NO_ATTK, NO_ATTK),
2205. 	SIZ(450, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2206. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2207. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
2208.     MON("gold golem", S_GOLEM,
2209. 	LVL(5, 9, 6, 0, 0), (G_GENO|G_NOCORPSE|1),
2210. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 3), ATTK(AT_CLAW, AD_PHYS, 2, 3),
2211. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2212. 	SIZ(450, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2213. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2214. 	M2_HOSTILE|M2_NEUTER, 0, HI_GOLD),
2215.     MON("leather golem", S_GOLEM,
2216. 	LVL(6, 6, 6, 0, 0), (G_GENO|G_NOCORPSE|1),
2217. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
2218. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2219. 	SIZ(800, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2220. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2221. 	M2_HOSTILE|M2_NEUTER, 0, HI_LEATHER),
2222.     MON("wood golem", S_GOLEM,
2223. 	LVL(7, 3, 4, 0, 0), (G_GENO|G_NOCORPSE|1),
2224. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4),
2225. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2226. 	SIZ(900, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2227. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2228. 	M2_HOSTILE|M2_NEUTER, 0, HI_WOOD),
2229.     MON("flesh golem", S_GOLEM,
2230. 	LVL(9, 8, 9, 30, 0), (G_GENO|1),
2231. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
2232. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2233. 	SIZ(1400, 600, 0, MS_SILENT, MZ_LARGE),
2234. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON,
2235. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON,
2236. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2237. 	M2_HOSTILE|M2_STRONG, 0, CLR_RED),
2238.     MON("clay golem", S_GOLEM,
2239. 	LVL(11, 7, 7, 40, 0), (G_GENO|G_NOCORPSE|1),
2240. 	A(ATTK(AT_CLAW, AD_PHYS, 3,10),
2241. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2242. 	SIZ(1550, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2243. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2244. 	M2_HOSTILE|M2_STRONG, 0, CLR_BROWN),
2245.     MON("stone golem", S_GOLEM,
2246. 	LVL(14, 6, 5, 50, 0), (G_GENO|G_NOCORPSE|1),
2247. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 8),
2248. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2249. 	SIZ(1900, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_STONE, 0,
2250. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2251. 	M2_HOSTILE|M2_STRONG, 0, CLR_GRAY),
2252.     MON("glass golem", S_GOLEM,
2253. 	LVL(16, 6, 1, 50, 0), (G_GENO|G_NOCORPSE|1),
2254. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
2255. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2256. 	SIZ(1800, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2257. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2258. 	M2_HOSTILE|M2_STRONG, 0, CLR_CYAN),
2259.     MON("iron golem", S_GOLEM,
2260. 	LVL(18, 6, 3, 60, 0), (G_GENO|G_NOCORPSE|1),
2261. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_BREA, AD_DRST, 4, 6),
2262. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2263. 	SIZ(2000, 0, 0, MS_SILENT, MZ_LARGE),
2264. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
2265. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE|M1_POIS,
2266. 	M2_HOSTILE|M2_STRONG|M2_COLLECT, 0, HI_METAL),
2267. /*
2268.  * humans, including elves and were-critters
2269.  */
2270.     MON("human", S_HUMAN,
2271. 	LVL(0, 12, 10, 0, 0), G_NOGEN,		/* for corpses */
2272. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2273. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2274. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2275. 	M1_HUMANOID|M1_OMNIVORE,
2276. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT,
2277. 	M3_INFRAVISIBLE, HI_DOMESTIC),
2278.     MON("wererat", S_HUMAN,
2279. 	LVL(2, 12, 10, 10, -7), (1),
2280. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2281. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2282. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
2283. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
2284. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT, M3_INFRAVISIBLE,
2285. 	CLR_BROWN),
2286.     MON("werejackal", S_HUMAN,
2287. 	LVL(2, 12, 10, 10, -7), (1),
2288. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2289. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2290. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
2291. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
2292. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT, M3_INFRAVISIBLE,
2293. 	CLR_RED),
2294.     MON("werewolf", S_HUMAN,
2295. 	LVL(5, 12, 10, 20, -7), (1),
2296. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2297. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2298. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
2299. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
2300. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT,
2301. 	M3_INFRAVISIBLE, CLR_ORANGE),
2302.     MON("elf", S_HUMAN,
2303. 	LVL(10, 12, 10, 2, -3), G_NOGEN,		/* for corpses */
2304. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
2305. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2306. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2307. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2308. 	M2_NOPOLY|M2_ELF|M2_STRONG|M2_COLLECT, M3_INFRAVISION|M3_INFRAVISIBLE,
2309. 	HI_DOMESTIC),
2310.     MON("Woodland-elf", S_HUMAN,
2311. 	LVL(4, 12, 10, 10, -5), (G_GENO|G_SGROUP|2),
2312. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2313. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2314. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2315. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2316. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GREEN),
2317.     MON("Green-elf", S_HUMAN,
2318. 	LVL(5, 12, 10, 10, -6), (G_GENO|G_SGROUP|2),
2319. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2320. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2321. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2322. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2323. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BRIGHT_GREEN),
2324.     MON("Grey-elf", S_HUMAN,
2325. 	LVL(6, 12, 10, 10, -7), (G_GENO|G_SGROUP|2),
2326. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2327. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2328. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2329. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2330. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
2331.     MON("elf-lord", S_HUMAN,
2332. 	LVL(8, 12, 10, 20, -9), (G_GENO|G_SGROUP|2),
2333. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
2334. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2335. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2336. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2337. 	M2_ELF|M2_STRONG|M2_LORD|M2_MALE|M2_COLLECT,
2338. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BRIGHT_BLUE),
2339.     MON("Elvenking", S_HUMAN,
2340. 	LVL(9, 12, 10, 25, -10), (G_GENO|1),
2341. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
2342. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2343. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2344. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2345. 	M2_ELF|M2_STRONG|M2_PRINCE|M2_MALE|M2_COLLECT,
2346. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2347.     MON("doppelganger", S_HUMAN,
2348. 	LVL(9, 10, 5, 20, 0), (G_GENO|1),
2349. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 12),
2350. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2351. 	SIZ(WT_HUMAN, 400, 0, MS_IMITATE, MZ_HUMAN), MR_SLEEP, 0,
2352. 	M1_HUMANOID|M1_OMNIVORE,
2353. 	M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_COLLECT,
2354. 	M3_INFRAVISIBLE, HI_DOMESTIC),
2355.     MON("nurse", S_HUMAN,
2356. 	LVL(11, 6, 0, 0, 0), (G_GENO|3),
2357. 	A(ATTK(AT_CLAW, AD_HEAL, 2, 6),
2358. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2359. 	SIZ(WT_HUMAN, 400, 0, MS_NURSE, MZ_HUMAN), MR_POISON, MR_POISON,
2360. 	M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_HUMAN|M2_HOSTILE,
2361. 	M3_INFRAVISIBLE, HI_DOMESTIC),
2362.     MON("shopkeeper", S_HUMAN,
2363. 	LVL(12, 18, 0, 50, 0), G_NOGEN,
2364. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4),
2365. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2366. 	SIZ(WT_HUMAN, 400, sizeof(struct eshk), MS_SELL, MZ_HUMAN), 0, 0,
2367. 	M1_HUMANOID|M1_OMNIVORE,
2368. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
2369. 	M3_INFRAVISIBLE, HI_DOMESTIC),
2370.     MON("guard", S_HUMAN,
2371. 	LVL(12, 12, 10, 40, 10), G_NOGEN,
2372. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10),
2373. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2374. 	SIZ(WT_HUMAN, 400, sizeof(struct egd), MS_GUARD, MZ_HUMAN), 0, 0,
2375. 	M1_HUMANOID|M1_OMNIVORE,
2376. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
2377. 	M3_INFRAVISIBLE, CLR_BLUE),
2378.     MON("prisoner", S_HUMAN,
2379. 	LVL(12, 12, 10, 0, 0), G_NOGEN,          /* for special levels */
2380. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2381. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2382. 	SIZ(WT_HUMAN, 400, 0, MS_DJINNI, MZ_HUMAN), 0, 0,
2383. 	M1_HUMANOID|M1_OMNIVORE,
2384. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
2385. 	M3_INFRAVISIBLE|M3_CLOSE, HI_DOMESTIC),
2386.     MON("Oracle", S_HUMAN,
2387. 	LVL(12, 0, 0, 50, 0), (G_NOGEN|G_UNIQ),
2388. 	A(ATTK(AT_NONE, AD_MAGM, 0, 4),
2389. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2390. 	SIZ(WT_HUMAN, 400, 0, MS_ORACLE, MZ_HUMAN), 0, 0,
2391. 	M1_HUMANOID|M1_OMNIVORE,
2392. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_FEMALE, M3_INFRAVISIBLE, HI_ZAP),
2393.     MON("aligned priest", S_HUMAN,
2394. 	LVL(12, 12, 10, 50, 0), G_NOGEN,
2395. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_KICK, AD_PHYS, 1, 4),
2396. 	  ATTK(AT_MAGC, AD_CLRC, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
2397. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN),
2398. 	MR_ELEC, 0, M1_HUMANOID|M1_OMNIVORE,
2399. 	M2_NOPOLY|M2_HUMAN|M2_LORD|M2_PEACEFUL|M2_COLLECT, M3_INFRAVISIBLE,
2400. 	CLR_WHITE),
2401.     MON("high priest", S_HUMAN,
2402. 	LVL(25, 15, 7, 70, 0), (G_NOGEN|G_UNIQ),
2403. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_KICK, AD_PHYS, 2, 8),
2404. 	  ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8),
2405. 	  NO_ATTK, NO_ATTK),
2406. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN),
2407. 	MR_FIRE|MR_ELEC|MR_SLEEP|MR_POISON, 0,
2408. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
2409. 	M2_NOPOLY|M2_HUMAN|M2_MINION|M2_PRINCE|M2_NASTY|M2_COLLECT|M2_MAGIC,
2410. 	M3_INFRAVISIBLE, CLR_WHITE),
2411.     MON("soldier", S_HUMAN,
2412. 	LVL(6, 4, 10, 0, -2), (G_SGROUP|G_GENO|1),
2413. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
2414. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2415. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2416. 	M1_HUMANOID|M1_OMNIVORE,
2417. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
2418. 	M3_INFRAVISIBLE, CLR_GRAY),
2419.     MON("sergeant", S_HUMAN,
2420. 	LVL(8, 4, 10, 5, -3), (G_SGROUP|G_GENO|1),
2421. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
2422. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2423. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2424. 	M1_HUMANOID|M1_OMNIVORE,
2425. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
2426. 	M3_INFRAVISIBLE, CLR_RED),
2427.     MON("lieutenant", S_HUMAN,
2428. 	LVL(10, 4, 10, 15, -4), (G_GENO|1),
2429. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 3, 4),
2430. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2431. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2432. 	M1_HUMANOID|M1_OMNIVORE,
2433. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
2434. 	M3_INFRAVISIBLE, CLR_GREEN),
2435.     MON("captain", S_HUMAN,
2436. 	LVL(12, 4, 10, 15, -5), (G_GENO|1),
2437. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4),
2438. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2439. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2440. 	M1_HUMANOID|M1_OMNIVORE,
2441. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
2442. 	M3_INFRAVISIBLE, CLR_BLUE),
2443. 	/* Keep these separate - some of the mkroom code assumes that
2444. 	 * all the soldiers are contiguous.
2445. 	 */
2446.     MON("watchman", S_HUMAN,
2447. 	LVL(6, 4, 10, 0, -2), (G_SGROUP|G_NOGEN|G_GENO|1),
2448. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
2449. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2450. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2451. 	M1_HUMANOID|M1_OMNIVORE,
2452. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
2453. 	M3_INFRAVISIBLE, CLR_GRAY),
2454.     MON("watch captain", S_HUMAN,
2455. 	LVL(10, 4, 10, 15, -4), (G_NOGEN|G_GENO|1),
2456. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 3, 4),
2457. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2458. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2459. 	M1_HUMANOID|M1_OMNIVORE,
2460. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
2461. 	M3_INFRAVISIBLE, CLR_GREEN),
2462. 	/* Unique humans not tied to quests.
2463. 	 */
2464.     MON("Medusa", S_HUMAN,
2465. 	LVL(20, 12, 2, 50, -15), (G_NOGEN|G_UNIQ),
2466. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_GAZE, AD_STON, 0, 0),
2467. 	  ATTK(AT_BITE, AD_DRST, 1, 6), ATTK(AT_WEAP, AD_PHYS, 2, 4),
2468. 	  NO_ATTK, NO_ATTK),
2469. 	SIZ(WT_HUMAN, 400, 0, MS_HISS, MZ_LARGE),
2470. 	MR_POISON|MR_STONE, MR_POISON|MR_STONE,
2471. 	M1_FLY|M1_SWIM|M1_AMPHIBIOUS|M1_HUMANOID|M1_POIS|M1_OMNIVORE,
2472. 	M2_NOPOLY|M2_HOSTILE|M2_STRONG|M2_PNAME|M2_FEMALE,
2473. 	M3_WAITFORU|M3_INFRAVISIBLE, CLR_BRIGHT_GREEN),
2474.     MON("Wizard of Yendor", S_HUMAN,
2475. 	LVL(30, 12, -8, 100, A_NONE), (G_NOGEN|G_UNIQ),
2476. 	A(ATTK(AT_CLAW, AD_SAMU, 2,12), ATTK(AT_MAGC, AD_SPEL, 0, 0),
2477. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2478. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_HUMAN),
2479. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
2480. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT|
2481. 	  M1_TPORT_CNTRL|M1_OMNIVORE,
2482. 	M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_NASTY|
2483. 	  M2_PRINCE|M2_MALE|M2_MAGIC,
2484. 	M3_COVETOUS|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
2485.     MON("Croesus", S_HUMAN,
2486. 	LVL(20, 15, 0, 40, 15), (G_UNIQ|G_NOGEN),
2487. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10),
2488. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2489. 	SIZ(WT_HUMAN, 400, 0, MS_GUARD, MZ_HUMAN), 0, 0,
2490. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
2491. 	M2_NOPOLY|M2_HUMAN|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_PNAME|
2492. 	  M2_PRINCE|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_MAGIC,
2493. 	M3_INFRAVISIBLE, HI_LORD),
2494. #ifdef CHARON
2495.     MON("Charon", S_HUMAN,
2496. 	LVL(76, 18, -5, 120, 0), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2497. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_TUCH, AD_PLYS, 1, 8),
2498. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2499. 	SIZ(WT_HUMAN, 400, 0, MS_FERRY, MZ_HUMAN),
2500. 	MR_FIRE|MR_COLD|MR_POISON|MR_STONE, 0,
2501. 	M1_BREATHLESS|M1_SEE_INVIS|M1_HUMANOID,
2502. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_PNAME|M2_MALE|M2_GREEDY|M2_COLLECT,
2503. 	M3_INFRAVISIBLE, CLR_WHITE),
2504. #endif
2505. /*
2506.  * ghosts
2507.  */
2508.     MON("ghost", S_GHOST,
2509. 	LVL(10, 3, -5, 50, -5), (G_NOCORPSE|G_NOGEN),
2510. 	A(ATTK(AT_TUCH, AD_PHYS, 1, 1),
2511. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2512. 	SIZ(WT_HUMAN, 0, 0, MS_SILENT, MZ_HUMAN),
2513. 	MR_COLD|MR_DISINT|MR_SLEEP|MR_POISON|MR_STONE, 0,
2514. 	M1_FLY|M1_BREATHLESS|M1_WALLWALK|M1_HUMANOID|M1_UNSOLID,
2515. 	M2_NOPOLY|M2_UNDEAD|M2_STALK|M2_HOSTILE, M3_INFRAVISION, CLR_GRAY),
2516.     MON("shade", S_GHOST,
2517. 	LVL(12, 10, 10, 0, 0), (G_NOCORPSE|G_NOGEN),
2518. 	A(ATTK(AT_TUCH, AD_PLYS, 2, 6), ATTK(AT_TUCH, AD_SLOW, 1, 6),
2519. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2520. 	SIZ(WT_HUMAN, 0, 0, MS_WAIL, MZ_HUMAN),
2521. 	MR_COLD|MR_DISINT|MR_SLEEP|MR_POISON|MR_STONE, 0,
2522. 	M1_FLY|M1_BREATHLESS|M1_WALLWALK|M1_HUMANOID|M1_UNSOLID|M1_SEE_INVIS,
2523. 	M2_NOPOLY|M2_UNDEAD|M2_WANDER|M2_STALK|M2_HOSTILE|M2_NASTY,
2524. 	M3_INFRAVISION, CLR_BLACK),
2525. /*
2526.  * (major) demons
2527.  */
2528.     MON("water demon", S_DEMON,
2529. 	LVL(8, 12,-4, 30, -7), (G_NOCORPSE|G_NOGEN),
2530. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
2531. 	  ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK),
2532. 	SIZ(WT_HUMAN, 400, 0, MS_DJINNI, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2533. 	M1_HUMANOID|M1_POIS|M1_SWIM,
2534. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
2535. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
2536. 	/* standard demons & devils
2537. 	 */
2538.     MON("horned devil", S_DEMON,
2539. 	LVL(6, 9, -5, 50, 11), (G_HELL|G_NOCORPSE|2),
2540. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2541. 	  ATTK(AT_BITE, AD_PHYS, 2, 3), ATTK(AT_STNG, AD_PHYS, 1, 3),
2542. 	  NO_ATTK, NO_ATTK),
2543. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2544. 	M1_POIS|M1_THICK_HIDE,
2545. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
2546. 	CLR_BROWN),
2547. #ifdef SEDUCE
2548. # define SEDUCTION_ATTACKS \
2549. 	A(ATTK(AT_BITE, AD_SSEX, 0, 0), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
2550. 	  ATTK(AT_CLAW, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK)
2551. #else
2552. # define SEDUCTION_ATTACKS \
2553. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
2554. 	  ATTK(AT_BITE, AD_DRLI, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK)
2555. #endif
2556.     MON("succubus", S_DEMON,
2557. 	LVL(6, 12, 0, 70, -9), (G_NOCORPSE|1),
2558. 	SEDUCTION_ATTACKS,
2559. 	SIZ(WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2560. 	M1_HUMANOID|M1_FLY|M1_POIS,
2561. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE,
2562. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
2563.     MON("incubus", S_DEMON,
2564. 	LVL(6, 12, 0, 70, -9), (G_NOCORPSE|1),
2565. 	SEDUCTION_ATTACKS,
2566. 	SIZ(WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2567. 	M1_HUMANOID|M1_FLY|M1_POIS,
2568. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_MALE,
2569. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
2570. #undef SEDUCTION_ATTACKS
2571.     /* Used by AD&D for a type of demon, originally one of the Furies */
2572.     /* and spelled this way */
2573.     MON("erinys", S_DEMON,
2574. 	LVL(7, 12, 2, 30, 10), (G_HELL|G_NOCORPSE|G_SGROUP|2),
2575. 	A(ATTK(AT_WEAP, AD_DRST, 2, 4),
2576. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2577. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2578. 	M1_HUMANOID|M1_POIS,
2579. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_FEMALE|M2_COLLECT,
2580. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2581.     MON("barbed devil", S_DEMON,
2582. 	LVL(8, 12, 0, 35, 8), (G_HELL|G_NOCORPSE|G_SGROUP|2),
2583. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
2584. 	  ATTK(AT_STNG, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
2585. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2586. 	M1_POIS|M1_THICK_HIDE, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
2587. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2588.     MON("marilith", S_DEMON,
2589. 	LVL(7, 12, -6, 80, -12), (G_HELL|G_NOCORPSE|1),
2590. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
2591. 	  ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
2592. 	  ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4)),
2593. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2594. 	M1_HUMANOID|M1_SLITHY|M1_SEE_INVIS|M1_POIS,
2595. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE|M2_COLLECT,
2596. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2597.     MON("vrock", S_DEMON,
2598. 	LVL(8, 12, 0, 50, -9), (G_HELL|G_NOCORPSE|G_SGROUP|2),
2599. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2600. 	  ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_CLAW, AD_PHYS, 1, 8),
2601. 	  ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK),
2602. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2603. 	M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
2604. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2605.     MON("hezrou", S_DEMON,
2606. 	LVL(9, 6, -2, 55, -10), (G_HELL|G_NOCORPSE|G_SGROUP|2),
2607. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
2608. 	  ATTK(AT_BITE, AD_PHYS, 4, 4), NO_ATTK, NO_ATTK, NO_ATTK),
2609. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2610. 	M1_HUMANOID|M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
2611. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2612.     MON("bone devil", S_DEMON,
2613. 	LVL(9, 15, -1, 40, -9), (G_HELL|G_NOCORPSE|G_SGROUP|2),
2614. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_STNG, AD_DRST, 2, 4),
2615. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2616. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2617. 	M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
2618. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
2619.     MON("ice devil", S_DEMON,
2620. 	LVL(11, 6, -4, 55, -12), (G_HELL|G_NOCORPSE|2),
2621. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2622. 	  ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_STNG, AD_COLD, 3, 4),
2623. 	  NO_ATTK, NO_ATTK),
2624. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE),
2625. 	MR_FIRE|MR_COLD|MR_POISON, 0, M1_SEE_INVIS|M1_POIS,
2626. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
2627. 	CLR_WHITE),
2628.     MON("nalfeshnee", S_DEMON,
2629. 	LVL(11, 9, -1, 65, -11), (G_HELL|G_NOCORPSE|1),
2630. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2631. 	  ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
2632. 	  NO_ATTK, NO_ATTK),
2633. 	SIZ(WT_HUMAN, 400, 0, MS_SPELL, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2634. 	M1_HUMANOID|M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
2635. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2636.     MON("pit fiend", S_DEMON,
2637. 	LVL(13, 6, -3, 65, -13), (G_HELL|G_NOCORPSE|2),
2638. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 2), ATTK(AT_WEAP, AD_PHYS, 4, 2),
2639. 	  ATTK(AT_HUGS, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
2640. 	SIZ(WT_HUMAN, 400, 0, MS_GROWL, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2641. 	M1_SEE_INVIS|M1_POIS,
2642. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
2643. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2644.     MON("balrog", S_DEMON,
2645. 	LVL(16, 5, -2, 75, -14), (G_HELL|G_NOCORPSE|1),
2646. 	A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
2647. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2648. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2649. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
2650. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
2651. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2652. 	/* Named demon lords & princes plus Arch-Devils.
2653. 	 * (their order matters; see minion.c)
2654. 	 */
2655.     MON("Juiblex", S_DEMON,
2656. 	LVL(50, 3, -7, 65, -15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2657. 	A(ATTK(AT_ENGL, AD_DISE, 4,10), ATTK(AT_SPIT, AD_ACID, 3, 6),
2658. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2659. 	SIZ(1500, 0, 0, MS_GURGLE, MZ_LARGE),
2660. 	MR_FIRE|MR_POISON|MR_ACID|MR_STONE, 0,
2661. 	M1_AMPHIBIOUS|M1_AMORPHOUS|M1_NOHEAD|M1_FLY|M1_SEE_INVIS|M1_ACID|
2662. 	  M1_POIS,
2663. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_LORD|
2664. 	  M2_MALE,
2665. 	M3_WAITFORU|M3_WANTSAMUL|M3_INFRAVISION, CLR_BRIGHT_GREEN),
2666.     MON("Yeenoghu", S_DEMON,
2667. 	LVL(56, 18, -5, 80, -15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2668. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_WEAP, AD_CONF, 2, 8),
2669. 	  ATTK(AT_WEAP, AD_PLYS, 1, 6), ATTK(AT_MAGC, AD_MAGM, 2, 6),
2670. 	  NO_ATTK, NO_ATTK),
2671. 	SIZ(900, 500, 0, MS_ORC, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2672. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
2673. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_LORD|
2674. 	  M2_MALE|M2_COLLECT,
2675. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2676.     MON("Orcus", S_DEMON,
2677. 	LVL(66, 9, -6, 85, -20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2678. 	A(ATTK(AT_MAGC, AD_SPEL, 8, 6), ATTK(AT_WEAP, AD_PHYS, 3, 6),
2679. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
2680. 	  ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK),
2681. 	SIZ(1500, 500, 0, MS_ORC, MZ_HUGE), MR_FIRE|MR_POISON, 0,
2682. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
2683. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_PRINCE|
2684. 	  M2_MALE|M2_COLLECT,
2685. 	M3_WAITFORU|M3_WANTSBOOK|M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION,
2686. 	HI_LORD),
2687.     MON("Geryon", S_DEMON,
2688. 	LVL(72, 3, -3, 75, 15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2689. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 6),
2690. 	  ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
2691. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUGE), MR_FIRE|MR_POISON, 0,
2692. 	M1_FLY|M1_SEE_INVIS|M1_POIS|M1_SLITHY,
2693. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
2694. 	  M2_PRINCE|M2_MALE,
2695. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2696.     MON("Dispater", S_DEMON,
2697. 	LVL(78, 15, -2, 80, 15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2698. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 6), ATTK(AT_MAGC, AD_SPEL, 6, 6),
2699. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2700. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2701. 	M1_FLY|M1_SEE_INVIS|M1_POIS|M1_HUMANOID,
2702. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
2703. 	  M2_PRINCE|M2_MALE|M2_COLLECT,
2704. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2705.     MON("Baalzebub", S_DEMON,
2706. 	LVL(89, 9, -5, 85, 20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2707. 	A(ATTK(AT_BITE, AD_DRST, 2, 6), ATTK(AT_GAZE, AD_STUN, 2, 6),
2708. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2709. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2710. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
2711. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
2712. 	  M2_PRINCE|M2_MALE,
2713. 	M3_WANTSAMUL|M3_WAITFORU|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2714.     MON("Asmodeus", S_DEMON,
2715. 	LVL(105, 12, -7, 90, 20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2716. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 4), ATTK(AT_MAGC, AD_COLD, 6, 6),
2717. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2718. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUGE), MR_FIRE|MR_COLD|MR_POISON, 0,
2719. 	M1_FLY|M1_SEE_INVIS|M1_HUMANOID|M1_POIS,
2720. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|
2721. 	  M2_NASTY|M2_PRINCE|M2_MALE,
2722. 	M3_WANTSAMUL|M3_WAITFORU|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2723.     MON("Demogorgon", S_DEMON,
2724. 	LVL(106, 15, -8, 95, -20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2725. 	A(ATTK(AT_MAGC, AD_SPEL, 8, 6), ATTK(AT_STNG, AD_DRLI, 1, 4),
2726. 	  ATTK(AT_CLAW, AD_DISE, 1, 6), ATTK(AT_CLAW, AD_DISE, 1, 6),
2727. 	  NO_ATTK, NO_ATTK),
2728. 	SIZ(1500, 500, 0, MS_GROWL, MZ_HUGE), MR_FIRE|MR_POISON, 0,
2729. 	M1_FLY|M1_SEE_INVIS|M1_NOHANDS|M1_POIS,
2730. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
2731. 	  M2_PRINCE|M2_MALE,
2732. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2733. 	/* Riders -- the Four Horsemen of the Apocalypse ("War" == player)
2734. 	 */
2735.     MON("Death", S_DEMON,
2736. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
2737. 	A(ATTK(AT_TUCH, AD_DETH, 8, 8), ATTK(AT_TUCH, AD_DETH, 8, 8),
2738. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2739. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
2740. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
2741. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
2742. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
2743. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2744.     MON("Pestilence", S_DEMON,
2745. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
2746. 	A(ATTK(AT_TUCH, AD_PEST, 8, 8), ATTK(AT_TUCH, AD_PEST, 8, 8),
2747. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2748. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
2749. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
2750. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
2751. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
2752. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2753.     MON("Famine", S_DEMON,
2754. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
2755. 	A(ATTK(AT_TUCH, AD_FAMN, 8, 8), ATTK(AT_TUCH, AD_FAMN, 8, 8),
2756. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2757. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
2758. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
2759. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
2760. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
2761. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2762. 	/* other demons
2763. 	 */
2764. #ifdef MAIL
2765.     MON("mail daemon", S_DEMON,
2766. 	LVL(56, 24, 10, 127, 0), (G_NOGEN|G_NOCORPSE),
2767. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2768. 	SIZ(600, 300, 0, MS_SILENT, MZ_HUMAN),
2769. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
2770. 	M1_FLY|M1_SWIM|M1_BREATHLESS|M1_SEE_INVIS|M1_HUMANOID|M1_POIS,
2771. 	M2_NOPOLY|M2_STALK|M2_PEACEFUL, M3_INFRAVISIBLE|M3_INFRAVISION,
2772. 	CLR_BRIGHT_BLUE),
2773. #endif
2774.     MON("djinni", S_DEMON,
2775. 	LVL(7, 12, 4, 30, 0), (G_NOGEN|G_NOCORPSE),
2776. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8),
2777. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2778. 	SIZ(1500, 400, 0, MS_DJINNI, MZ_HUMAN), MR_POISON|MR_STONE, 0,
2779. 	M1_HUMANOID|M1_FLY|M1_POIS,
2780. 	M2_NOPOLY|M2_STALK|M2_COLLECT, M3_INFRAVISIBLE, CLR_YELLOW),
2781.     MON("sandestin", S_DEMON,
2782. 	LVL(13, 12, 4, 60, -5), (G_HELL|G_NOCORPSE|1),
2783. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
2784. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2785. 	SIZ(1500, 400, 0, MS_CUSS, MZ_HUMAN), MR_STONE, 0,
2786. 	M1_HUMANOID, M2_NOPOLY|M2_STALK|M2_STRONG|M2_COLLECT,
2787. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
2788. /*
2789.  * sea monsters
2790.  */
2791.     MON("jellyfish", S_EEL,
2792. 	LVL(3, 3, 6, 0, 0), (G_GENO|G_NOGEN),
2793. 	A(ATTK(AT_STNG, AD_DRST, 3, 3), NO_ATTK,
2794. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2795. 	SIZ(80, 20, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
2796. 	M1_SWIM|M1_AMPHIBIOUS|M1_SLITHY|M1_NOLIMBS|M1_NOTAKE|M1_POIS,
2797. 	M2_HOSTILE, 0, CLR_BLUE),
2798.     MON("piranha", S_EEL,
2799. 	LVL(5, 12, 4, 0, 0), (G_GENO|G_NOGEN|G_SGROUP),
2800. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK,
2801. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2802. 	SIZ(60, 30, 0, MS_SILENT, MZ_SMALL), 0, 0,
2803. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
2804. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
2805. 	M2_HOSTILE, 0, CLR_RED),
2806.     MON("shark", S_EEL,
2807. 	LVL(7, 12, 2, 0, 0), (G_GENO|G_NOGEN),
2808. 	A(ATTK(AT_BITE, AD_PHYS, 5, 6), NO_ATTK,
2809. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2810. 	SIZ(500, 350, 0, MS_SILENT, MZ_LARGE), 0, 0,
2811. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
2812. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
2813. 	M2_HOSTILE, 0, CLR_GRAY),
2814.     MON("giant eel", S_EEL,
2815. 	LVL(5, 9, -1, 0, 0), (G_GENO|G_NOGEN),
2816. 	A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_TUCH, AD_WRAP, 0, 0),
2817. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2818. 	SIZ(200, 250, 0, MS_SILENT, MZ_HUGE), 0, 0,
2819. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
2820. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
2821. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_CYAN),
2822.     MON("electric eel", S_EEL,
2823. 	LVL(7, 10, -3, 0, 0), (G_GENO|G_NOGEN),
2824. 	A(ATTK(AT_BITE, AD_ELEC, 4, 6), ATTK(AT_TUCH, AD_WRAP, 0, 0),
2825. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2826. 	SIZ(200, 250, 0, MS_SILENT, MZ_HUGE), MR_ELEC, MR_ELEC,
2827. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
2828. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
2829. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_BRIGHT_BLUE),
2830.     MON("kraken", S_EEL,
2831. 	LVL(20, 3, 6, 0, -3), (G_GENO|G_NOGEN),
2832. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
2833. 	  ATTK(AT_HUGS, AD_WRAP, 2, 6), ATTK(AT_BITE, AD_PHYS, 5, 4),
2834. 	  NO_ATTK, NO_ATTK),
2835. 	SIZ(1800, 1000, 0, MS_SILENT, MZ_HUGE), 0, 0,
2836. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
2837. 	M2_NOPOLY|M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_RED),
2838. /*
2839.  * lizards, &c
2840.  */
2841.     MON("newt", S_LIZARD,
2842. 	LVL(0, 6, 8, 0, 0), (G_GENO|5),
2843. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
2844. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2845. 	SIZ(10, 20, 0, MS_SILENT, MZ_TINY), 0, 0,
2846. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
2847. 	M2_HOSTILE, 0, CLR_YELLOW),
2848.     MON("gecko", S_LIZARD,
2849. 	LVL(1, 6, 8, 0, 0), (G_GENO|5),
2850. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3),
2851. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2852. 	SIZ(10, 20, 0, MS_SQEEK, MZ_TINY), 0, 0,
2853. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_GREEN),
2854.     MON("iguana", S_LIZARD,
2855. 	LVL(2, 6, 7, 0, 0), (G_GENO|5),
2856. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
2857. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2858. 	SIZ(30, 30, 0, MS_SILENT, MZ_TINY), 0, 0,
2859. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_BROWN),
2860.     MON("baby crocodile", S_LIZARD,
2861. 	LVL(3, 6, 7, 0, 0), G_GENO,
2862. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
2863. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2864. 	SIZ(200, 200, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
2865. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
2866. 	M2_HOSTILE, 0, CLR_BROWN),
2867.     MON("lizard", S_LIZARD,
2868. 	LVL(5, 6, 6, 10, 0), (G_GENO|5),
2869. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
2870. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2871. 	SIZ(10, 40, 0, MS_SILENT, MZ_TINY), MR_STONE, MR_STONE,
2872. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_GREEN),
2873.     MON("chameleon", S_LIZARD,
2874. 	LVL(6, 5, 6, 10, 0), (G_GENO|2),
2875. 	A(ATTK(AT_BITE, AD_PHYS, 4, 2),
2876. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2877. 	SIZ(100, 100, 0, MS_SILENT, MZ_TINY), 0, 0,
2878. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_NOPOLY|M2_HOSTILE, 0, CLR_BROWN),
2879.     MON("crocodile", S_LIZARD,
2880. 	LVL(6, 9, 5, 0, 0), (G_GENO|1),
2881. 	A(ATTK(AT_BITE, AD_PHYS, 4, 2), ATTK(AT_CLAW, AD_PHYS, 1,12),
2882. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2883. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), 0, 0,
2884. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|
2885. 	  M1_OVIPAROUS|M1_CARNIVORE,
2886. 	M2_STRONG|M2_HOSTILE, 0, CLR_BROWN),
2887.     MON("salamander", S_LIZARD,
2888. 	LVL(8, 12, -1, 0, -9), (G_HELL|1),
2889. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_TUCH, AD_FIRE, 1, 6),
2890. 	  ATTK(AT_HUGS, AD_PHYS, 2, 6), ATTK(AT_HUGS, AD_FIRE, 3, 6),
2891. 	  NO_ATTK, NO_ATTK),
2892. 	SIZ(1500, 400, 0, MS_MUMBLE, MZ_HUMAN), MR_SLEEP|MR_FIRE, MR_FIRE,
2893. 	M1_HUMANOID|M1_SLITHY|M1_THICK_HIDE|M1_POIS,
2894. 	M2_STALK|M2_HOSTILE|M2_COLLECT|M2_MAGIC, M3_INFRAVISIBLE, CLR_ORANGE),
2895. 
2896. /*
2897.  * dummy monster needed for visual interface
2898.  */
2899. 	/* (marking it unique prevents figurines)
2900. 	 */
2901.     MON("long worm tail", S_WORM_TAIL,
2902. 	LVL(0, 0, 0, 0, 0), (G_NOGEN|G_NOCORPSE|G_UNIQ),
2903. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2904. 	SIZ(0, 0, 0, 0, 0), 0, 0, 0L, M2_NOPOLY, 0, CLR_BROWN),
2905. 
2906. 	/* Note:
2907. 	 * Worm tail must be between the normal monsters and the special
2908. 	 * quest & pseudo-character ones because an optimization in the
2909. 	 * random monster selection code assumes everything beyond here
2910. 	 * has the G_NOGEN and M2_NOPOLY attributes.
2911. 	 */
2912. 
2913. /*
2914.  * character classes
2915.  */
2916.     MON("archeologist", S_HUMAN,
2917. 	LVL(10, 10, 10, 1, 3), G_NOGEN,
2918. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2919. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2920. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2921. 	M1_HUMANOID|M1_TUNNEL|M1_NEEDPICK|M1_OMNIVORE,
2922. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
2923.     MON("barbarian", S_HUMAN,
2924. 	LVL(10, 10, 10, 1, 0), G_NOGEN,
2925. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2926. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2927. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
2928. 	M1_HUMANOID|M1_OMNIVORE,
2929. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
2930.     MON("caveman", S_HUMAN,
2931. 	LVL(10, 10, 10, 0, 1), G_NOGEN,
2932. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2933. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2934. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2935. 	M1_HUMANOID|M1_OMNIVORE,
2936. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE,
2937. 	HI_DOMESTIC),
2938.     MON("cavewoman", S_HUMAN,
2939. 	LVL(10, 10, 10, 0, 1), G_NOGEN,
2940. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2941. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2942. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2943. 	M1_HUMANOID|M1_OMNIVORE,
2944. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
2945. 	HI_DOMESTIC),
2946.     MON("healer", S_HUMAN,
2947. 	LVL(10, 10, 10, 1, 0), G_NOGEN,
2948. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2949. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2950. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
2951. 	M1_HUMANOID|M1_OMNIVORE,
2952. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
2953.     MON("knight", S_HUMAN,
2954. 	LVL(10, 10, 10, 1, 3), G_NOGEN,
2955. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2956. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2957. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2958. 	M1_HUMANOID|M1_OMNIVORE,
2959. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
2960.     MON("monk", S_HUMAN, 
2961. 	LVL(10, 10, 10, 2, 0), G_NOGEN,
2962. 	A(ATTK(AT_KICK, AD_PHYS, 1, 8),
2963. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2964. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2965. 	M1_HUMANOID|M1_OMNIVORE,
2966. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT|M2_MALE,
2967. 	M3_INFRAVISIBLE, HI_DOMESTIC),
2968.     MON("priest", S_HUMAN,
2969. 	LVL(10, 10, 10, 2, 0), G_NOGEN,
2970. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2971. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2972. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2973. 	M1_HUMANOID|M1_OMNIVORE,
2974. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE,
2975. 	HI_DOMESTIC),
2976.     MON("priestess", S_HUMAN,
2977. 	LVL(10, 10, 10, 2, 0), G_NOGEN,
2978. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2979. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2980. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2981. 	M1_HUMANOID|M1_OMNIVORE,
2982. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
2983. 	HI_DOMESTIC),
2984.     MON("ranger", S_HUMAN,
2985. 	LVL(10, 12, 10, 2, -3), G_NOGEN,
2986. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
2987. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2988. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2989. 	M1_HUMANOID|M1_OMNIVORE,
2990. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
2991. 	HI_DOMESTIC),
2992.     MON("rogue", S_HUMAN,
2993. 	LVL(10, 10, 10, 1, -3), G_NOGEN,
2994. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2995. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2996. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2997. 	M1_HUMANOID|M1_OMNIVORE,
2998. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
2999. 	M3_INFRAVISIBLE, HI_DOMESTIC),
3000.     MON("samurai", S_HUMAN,
3001. 	LVL(10, 10, 10, 1, 3), G_NOGEN,
3002. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
3003. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3004. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
3005. 	M1_HUMANOID|M1_OMNIVORE,
3006. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
3007. #ifdef TOURIST
3008.     MON("tourist", S_HUMAN,
3009. 	LVL(10, 10, 10, 1, 0), G_NOGEN,
3010. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3011. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3012. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
3013. 	M1_HUMANOID|M1_OMNIVORE,
3014. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
3015. #endif
3016.     MON("valkyrie", S_HUMAN,
3017. 	LVL(10, 10, 10, 1, -1), G_NOGEN,
3018. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
3019. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3020. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_COLD, 0,
3021. 	M1_HUMANOID|M1_OMNIVORE,
3022. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
3023. 	HI_DOMESTIC),
3024.     MON("wizard", S_HUMAN,
3025. 	LVL(10, 10, 10, 3, 0), G_NOGEN,
3026. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3027. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3028. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
3029. 	M1_HUMANOID|M1_OMNIVORE,
3030. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT|M2_MAGIC, M3_INFRAVISIBLE,
3031. 	HI_DOMESTIC),
3032. /*
3033.  * quest leaders
3034.  */
3035.     MON("Lord Carnarvon", S_HUMAN,
3036. 	LVL(20, 12, 0, 30, 20), (G_NOGEN|G_UNIQ),
3037. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3038. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3039. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3040. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
3041. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3042. 	  M2_COLLECT|M2_MAGIC,
3043. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3044.     MON("Pelias", S_HUMAN,
3045. 	LVL(20, 12, 0, 30, 0), (G_NOGEN|G_UNIQ),
3046. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3047. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3048. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_POISON, 0,
3049. 	M1_HUMANOID|M1_OMNIVORE,
3050. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3051. 	  M2_COLLECT|M2_MAGIC,
3052. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3053.     MON("Shaman Karnov", S_HUMAN,
3054. 	LVL(20, 12, 0, 30, 20), (G_NOGEN|G_UNIQ),
3055. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
3056. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3057. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3058. 	M1_HUMANOID|M1_OMNIVORE,
3059. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3060. 	  M2_COLLECT|M2_MAGIC,
3061. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3062. #if 0	/* OBSOLETE */
3063. 	/* Two for elves - one of each sex.
3064. 	 */
3065.     MON("Earendil", S_HUMAN,
3066. 	LVL(20, 15, 0, 50, -20), (G_NOGEN|G_UNIQ),
3067. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
3068. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3069. 	SIZ(WT_ELF, 350, 0, MS_LEADER, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
3070. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
3071. 	M2_NOPOLY|M2_ELF|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|
3072. 	  M2_MALE|M2_COLLECT|M2_MAGIC,
3073. 	M3_CLOSE|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
3074.     MON("Elwing", S_HUMAN,
3075. 	LVL(20, 15, 0, 50, -20), (G_NOGEN|G_UNIQ),
3076. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
3077. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3078. 	SIZ(WT_ELF, 350, 0, MS_LEADER, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
3079. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
3080. 	M2_NOPOLY|M2_ELF|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|
3081. 	  M2_FEMALE|M2_COLLECT|M2_MAGIC,
3082. 	M3_CLOSE|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
3083. #endif
3084.     MON("Hippocrates", S_HUMAN,
3085. 	LVL(20, 12, 0, 40, 0), (G_NOGEN|G_UNIQ),
3086. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3087. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3088. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_POISON, 0,
3089. 	M1_HUMANOID|M1_OMNIVORE,
3090. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3091. 	  M2_COLLECT|M2_MAGIC,
3092. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3093.     MON("King Arthur", S_HUMAN,
3094. 	LVL(20, 12, 0, 40, 20), (G_NOGEN|G_UNIQ),
3095. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3096. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3097. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3098. 	M1_HUMANOID|M1_OMNIVORE,
3099. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3100. 	  M2_COLLECT|M2_MAGIC,
3101. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3102.     MON("Grand Master", S_HUMAN,
3103. 	LVL(25, 15, 0, 70, 0), (G_NOGEN|G_UNIQ),
3104. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 10), ATTK(AT_KICK, AD_PHYS, 2, 8),
3105. 	  ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8),
3106. 	  NO_ATTK, NO_ATTK),
3107. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN),
3108. 	MR_FIRE|MR_ELEC|MR_SLEEP|MR_POISON, 0,
3109. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
3110. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_NASTY|M2_MAGIC,
3111. 	M3_CLOSE|M3_INFRAVISIBLE, CLR_BLACK),
3112.     MON("Arch Priest", S_HUMAN,
3113. 	LVL(25, 15, 7, 70, 0), (G_NOGEN|G_UNIQ),
3114. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_KICK, AD_PHYS, 2, 8),
3115. 	  ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8),
3116. 	  NO_ATTK, NO_ATTK),
3117. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN),
3118. 	MR_FIRE|MR_ELEC|MR_SLEEP|MR_POISON, 0,
3119. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
3120. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
3121. 	M3_CLOSE|M3_INFRAVISIBLE, CLR_WHITE),
3122.     MON("Orion", S_HUMAN,
3123. 	LVL(20, 12, 0, 30, 0), (G_NOGEN|G_UNIQ),
3124. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3125. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3126. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3127. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS|M1_SWIM|M1_AMPHIBIOUS,
3128. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3129. 	  M2_COLLECT|M2_MAGIC,
3130. 	M3_CLOSE|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
3131. 	/* Note: Master of Thieves is also the Tourist's nemesis.
3132. 	 */
3133.     MON("Master of Thieves", S_HUMAN,
3134. 	LVL(20, 15, 0, 30, -20), (G_NOGEN|G_UNIQ),
3135. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
3136. 	  ATTK(AT_CLAW, AD_SAMU, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
3137. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3138. 	M1_HUMANOID|M1_OMNIVORE,
3139. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_MALE|M2_GREEDY|
3140. 	  M2_JEWELS|M2_COLLECT|M2_MAGIC,
3141. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3142.     MON("Lord Sato", S_HUMAN,
3143. 	LVL(20, 15, 0, 30, 20), (G_NOGEN|G_UNIQ),
3144. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
3145. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3146. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3147. 	M1_HUMANOID|M1_OMNIVORE,
3148. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3149. 	  M2_COLLECT|M2_MAGIC,
3150. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3151. #ifdef TOURIST
3152.     MON("Twoflower", S_HUMAN,
3153. 	LVL(20, 10, 10, 20, 0), (G_NOGEN|G_UNIQ),
3154. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3155. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3156. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3157. 	M1_HUMANOID|M1_OMNIVORE,
3158. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3159. 	  M2_COLLECT|M2_MAGIC,
3160. 	M3_CLOSE|M3_INFRAVISIBLE, HI_DOMESTIC),
3161. #endif
3162.     MON("Norn", S_HUMAN,
3163. 	LVL(20, 15, 0, 80, 0), (G_NOGEN|G_UNIQ),
3164. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
3165. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3166. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_COLD, 0,
3167. 	M1_HUMANOID|M1_OMNIVORE,
3168. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_FEMALE|
3169. 	  M2_COLLECT|M2_MAGIC,
3170. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3171.     MON("Wizard of Balance", S_HUMAN,
3172. 	LVL(20, 12, 0, 60, 0), (G_NOGEN|G_UNIQ),
3173. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3174. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3175. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3176. 	M1_HUMANOID|M1_OMNIVORE,
3177. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
3178. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3179. /*
3180.  * quest nemeses
3181.  */
3182.     MON("Minion of Huhetotl", S_DEMON,
3183. 	LVL(16, 10, -2, 75, -14), (G_NOCORPSE|G_NOGEN|G_UNIQ),
3184. 	A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
3185. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 2, 6),
3186. 	  NO_ATTK, NO_ATTK),
3187. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_LARGE), MR_FIRE|MR_POISON, 0,
3188. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
3189. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
3190. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, CLR_RED),
3191.     MON("Thoth Amon", S_HUMAN,
3192. 	LVL(16, 10, 0, 10, -14), (G_NOGEN|G_UNIQ|G_NOCORPSE),
3193. 	A(ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_MAGC, AD_SPEL, 0, 0),
3194. 	  ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_SAMU, 1, 4),
3195. 	  NO_ATTK, NO_ATTK),
3196. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_POISON, 0,
3197. 	M1_HUMANOID|M1_OMNIVORE,
3198. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_STRONG|M2_MALE|M2_STALK|M2_HOSTILE|
3199. 	  M2_NASTY|M2_COLLECT|M2_MAGIC,
3200. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
3201. 	/* Multi-headed, possessing the breath attacks of all the other dragons
3202. 	 * (selected at random when attacking).
3203. 	 */
3204.     MON("Chromatic Dragon", S_DRAGON,
3205. 	LVL(16, 10, 0, 30, -14), (G_NOGEN|G_UNIQ),
3206. 	A(ATTK(AT_BREA, AD_RBRE, 6, 8), ATTK(AT_MAGC, AD_SPEL, 0, 0),
3207. 	  ATTK(AT_CLAW, AD_SAMU, 2, 8), ATTK(AT_BITE, AD_PHYS, 4, 8),
3208. 	  ATTK(AT_BITE, AD_PHYS, 4, 8), ATTK(AT_STNG, AD_PHYS, 1, 6)),
3209. 	SIZ(WT_DRAGON, 1700, 0, MS_NEMESIS, MZ_GIGANTIC),
3210. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_DISINT|MR_ELEC|MR_POISON|MR_ACID|MR_STONE,
3211. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_DISINT|MR_ELEC|MR_POISON|MR_STONE,
3212. 	M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_SEE_INVIS|M1_POIS,
3213. 	M2_NOPOLY|M2_HOSTILE|M2_FEMALE|M2_STALK|M2_STRONG|M2_NASTY|
3214. 	  M2_GREEDY|M2_JEWELS|M2_MAGIC,
3215. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
3216. #if 0	/* OBSOLETE */
3217.     MON("Goblin King", S_ORC,
3218. 	LVL(15, 10, 10, 0, -15), (G_NOGEN|G_UNIQ),
3219. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
3220. 	  ATTK(AT_CLAW, AD_SAMU, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
3221. 	SIZ(750, 350, 0, MS_NEMESIS, MZ_HUMAN), 0, 0,
3222. 	M1_HUMANOID|M1_OMNIVORE,
3223. 	M2_NOPOLY|M2_ORC|M2_HOSTILE|M2_STRONG|M2_STALK|M2_NASTY|M2_MALE|
3224. 	  M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_MAGIC,
3225. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
3226. #endif
3227.     MON("Cyclops", S_GIANT,
3228. 	LVL(18, 10, 0, 0, -15), (G_NOGEN|G_UNIQ),
3229. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 8), ATTK(AT_WEAP, AD_PHYS, 4, 8),
3230. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
3231. 	SIZ(1900, 700, 0, MS_NEMESIS, MZ_HUGE), 0, 0,
3232. 	M1_HUMANOID|M1_OMNIVORE,
3233. 	M2_NOPOLY|M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_STALK|M2_HOSTILE|
3234. 	  M2_NASTY|M2_MALE|M2_JEWELS|M2_COLLECT,
3235. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, CLR_GRAY),
3236.     MON("Ixoth", S_DRAGON,
3237. 	LVL(15, 9, -1, 20, -14), (G_NOGEN|G_UNIQ),
3238. 	A(ATTK(AT_BREA, AD_FIRE, 8, 6), ATTK(AT_BITE, AD_PHYS, 4, 8),
3239. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_PHYS, 2, 4),
3240. 	  ATTK(AT_CLAW, AD_SAMU, 2, 4), NO_ATTK ),
3241. 	SIZ(WT_DRAGON, 1600, 0, MS_NEMESIS, MZ_GIGANTIC), MR_FIRE, MR_FIRE,
3242. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_SEE_INVIS,
3243. 	M2_NOPOLY|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_STALK|
3244. 	  M2_GREEDY|M2_JEWELS|M2_MAGIC,
3245. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, CLR_RED),
3246.     MON("Master Kaen", S_HUMAN,
3247. 	LVL(25, 10, -10, 10, -20), (G_NOGEN|G_UNIQ),
3248. 	A(ATTK(AT_CLAW, AD_PHYS, 16, 2), ATTK(AT_CLAW, AD_PHYS, 16, 2),
3249. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 1, 4),
3250. 	  NO_ATTK, NO_ATTK),
3251. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_POISON, MR_POISON,
3252. 	M1_HUMANOID|M1_HERBIVORE|M1_SEE_INVIS,
3253. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_NASTY|
3254. 	  M2_STALK|M2_COLLECT|M2_MAGIC,
3255. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
3256.     MON("Nalzok", S_DEMON,
3257. 	LVL(16, 10, -2, 85, -127), (G_NOGEN|G_UNIQ|G_NOCORPSE),
3258. 	A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
3259. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 2, 6),
3260. 	  NO_ATTK, NO_ATTK),
3261. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_LARGE), MR_FIRE|MR_POISON, 0,
3262. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
3263. 	M2_NOPOLY|M2_DEMON|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_STALK|
3264. 	  M2_NASTY|M2_COLLECT,
3265. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, CLR_RED),
3266.     MON("Scorpius", S_SPIDER,
3267. 	LVL(15, 10, 10, 0, -15), (G_NOGEN|G_UNIQ),
3268. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_SAMU, 2, 6),
3269. 	  ATTK(AT_STNG, AD_DISE, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
3270. 	SIZ(750, 350, 0, MS_NEMESIS, MZ_HUMAN), MR_POISON, MR_POISON,
3271. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
3272. 	M2_NOPOLY|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_STALK|M2_NASTY|
3273. 	  M2_COLLECT|M2_MAGIC,
3274. 	M3_WANTSARTI|M3_WAITFORU, HI_LORD),
3275.     MON("Master Assassin", S_HUMAN,
3276. 	LVL(15, 15, 0, 30, 18), (G_NOGEN|G_UNIQ),
3277. 	A(ATTK(AT_WEAP, AD_DRST, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 8),
3278. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
3279. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), 0, 0,
3280. 	M1_HUMANOID|M1_OMNIVORE,
3281. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_HOSTILE|M2_STALK|M2_NASTY|
3282. 	  M2_COLLECT|M2_MAGIC,
3283. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
3284. 	/* A renegade daimyo who led a 13 year civil war against the shogun
3285. 	 * of his time.
3286. 	 */
3287.     MON("Ashikaga Takauji", S_HUMAN,
3288. 	LVL(15, 15, 0, 40, -13), (G_NOGEN|G_UNIQ|G_NOCORPSE),
3289. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
3290. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
3291. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), 0, 0,
3292. 	M1_HUMANOID|M1_OMNIVORE,
3293. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_STALK|
3294. 	  M2_NASTY|M2_MALE|M2_COLLECT|M2_MAGIC,
3295. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
3296. #ifdef TOURIST
3297. 	/*
3298. 	 * Note: the Master of Thieves was defined above.
3299. 	 */
3300. #endif
3301.     MON("Lord Surtur", S_GIANT,
3302. 	LVL(15, 12, 2, 50, 12), (G_NOGEN|G_UNIQ),
3303. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10), ATTK(AT_WEAP, AD_PHYS, 2,10),
3304. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
3305. 	SIZ(2250, 850, 0, MS_NEMESIS, MZ_HUGE), MR_FIRE, MR_FIRE,
3306. 	M1_HUMANOID|M1_OMNIVORE,
3307. 	M2_NOPOLY|M2_GIANT|M2_MALE|M2_PNAME|M2_HOSTILE|M2_STALK|
3308. 	  M2_STRONG|M2_NASTY|M2_ROCKTHROW|M2_JEWELS|M2_COLLECT,
3309. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
3310.     MON("Dark One", S_HUMAN,
3311. 	LVL(15, 10, 0, 80, -10), (G_NOGEN|G_UNIQ|G_NOCORPSE),
3312. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
3313. 	  ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_SAMU, 1, 4),
3314. 	  NO_ATTK, NO_ATTK),
3315. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), 0, 0,
3316. 	M1_HUMANOID|M1_OMNIVORE,
3317. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_HOSTILE|M2_STALK|M2_NASTY|
3318. 	  M2_COLLECT|M2_MAGIC,
3319. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, CLR_BLACK),
3320. /*
3321.  * quest "guardians"
3322.  */
3323.     MON("student", S_HUMAN,
3324. 	LVL(5, 10, 10, 10, 3), G_NOGEN,
3325. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3326. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3327. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3328. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
3329. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3330. 	HI_DOMESTIC),
3331.     MON("chieftain", S_HUMAN,
3332. 	LVL(5, 10, 10, 10, 0), G_NOGEN,
3333. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3334. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3335. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_POISON, 0,
3336. 	M1_HUMANOID|M1_OMNIVORE,
3337. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3338. 	HI_DOMESTIC),
3339.     MON("neanderthal", S_HUMAN,
3340. 	LVL(5, 10, 10, 10, 1), G_NOGEN,
3341. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
3342. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3343. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3344. 	M1_HUMANOID|M1_OMNIVORE,
3345. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3346. 	HI_DOMESTIC),
3347. #if 0	/* OBSOLETE */
3348.     MON("High-elf", S_HUMAN,
3349. 	LVL(5, 12, 10, 10, -7), G_NOGEN,
3350. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_MAGC, AD_CLRC, 0, 0),
3351. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3352. 	SIZ(WT_ELF, 350, 0, MS_GUARDIAN, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
3353. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
3354. 	M2_NOPOLY|M2_ELF|M2_PEACEFUL|M2_COLLECT,
3355. 	M3_INFRAVISION|M3_INFRAVISIBLE, HI_DOMESTIC),
3356. #endif
3357.     MON("attendant", S_HUMAN,
3358. 	LVL(5, 10, 10, 10, 3), G_NOGEN,
3359. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3360. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3361. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_POISON, 0,
3362. 	M1_HUMANOID|M1_OMNIVORE,
3363. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3364. 	HI_DOMESTIC),
3365.     MON("page", S_HUMAN,
3366. 	LVL(5, 10, 10, 10, 3), G_NOGEN,
3367. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3368. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3369. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3370. 	M1_HUMANOID|M1_OMNIVORE,
3371. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3372. 	HI_DOMESTIC),
3373.     MON("abbot", S_HUMAN, 
3374. 	LVL(5, 10, 10, 20, 0), G_NOGEN,
3375. 	A(ATTK(AT_CLAW, AD_PHYS, 8, 2), ATTK(AT_KICK, AD_STUN, 3, 2),
3376. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3377. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3378. 	M1_HUMANOID|M1_OMNIVORE,
3379. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3380. 	HI_DOMESTIC),
3381.     MON("acolyte", S_HUMAN,
3382. 	LVL(5, 10, 10, 20, 0), G_NOGEN,
3383. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_CLRC, 0, 0),
3384. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3385. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3386. 	M1_HUMANOID|M1_OMNIVORE,
3387. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3388. 	HI_DOMESTIC),
3389.     MON("hunter", S_HUMAN,
3390. 	LVL(5, 12, 10, 10, -7), G_NOGEN,
3391. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
3392. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3393. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3394. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
3395. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
3396. 	M3_INFRAVISION|M3_INFRAVISIBLE, HI_DOMESTIC),
3397.     MON("thug", S_HUMAN,
3398. 	LVL(5, 10, 10, 10, -3), G_NOGEN,
3399. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3400. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3401. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3402. 	M1_HUMANOID|M1_OMNIVORE,
3403. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_GREEDY|M2_COLLECT,
3404. 	M3_INFRAVISIBLE, HI_DOMESTIC),
3405.     MON("ninja", S_HUMAN,
3406. 	LVL(5, 10, 10, 10, 3), G_NOGEN,
3407. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
3408. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3409. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
3410. 	M1_HUMANOID|M1_OMNIVORE,
3411. 	M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3412. 	HI_DOMESTIC),
3413.     MON("roshi", S_HUMAN,
3414. 	LVL(5, 10, 10, 10, 3), G_NOGEN,
3415. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
3416. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3417. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3418. 	M1_HUMANOID|M1_OMNIVORE,
3419. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3420. 	HI_DOMESTIC),
3421. #ifdef TOURIST
3422.     MON("guide", S_HUMAN,
3423. 	LVL(5, 10, 10, 20, 0), G_NOGEN,
3424. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
3425. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3426. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3427. 	M1_HUMANOID|M1_OMNIVORE,
3428. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL | M2_STRONG|M2_COLLECT|M2_MAGIC,
3429. 	M3_INFRAVISIBLE, HI_DOMESTIC),
3430. #endif
3431.     MON("warrior", S_HUMAN,
3432. 	LVL(5, 10, 10, 10, -1), G_NOGEN,
3433. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
3434. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3435. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3436. 	M1_HUMANOID|M1_OMNIVORE,
3437. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3438. 	HI_DOMESTIC),
3439.     MON("apprentice", S_HUMAN,
3440. 	LVL(5, 10, 10, 30, 0), G_NOGEN,
3441. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
3442. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3443. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3444. 	M1_HUMANOID|M1_OMNIVORE,
3445. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
3446. 	M3_INFRAVISIBLE, HI_DOMESTIC),
3447. /*
3448.  * array terminator
3449.  */
3450.     MON("", 0,
3451. 	LVL(0, 0, 0, 0, 0), (0),
3452. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3453. 	SIZ(0, 0, 0, 0, 0), 0, 0, 0L, 0L, 0, 0)
3454. };
3455. #endif /* !SPLITMON_1 */
3456. 
3457. #ifndef SPLITMON_1
3458. /* dummy routine used to force linkage */
3459. void
3460. monst_init()
3461. {
3462.     return;
3463. }
3464. #endif
3465. 
3466. /*monst.c*/