Wikia

Wikihack

Source:NetHack 3.2.0/monst.c

2,032pages on
this wiki
Talk0

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

Around Wikia's network

Random Wiki