Wikihack
Register
Advertisement

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

Top of file[]

1.    /*	SCCS Id: @(#)monst.c	3.4	2000/07/14	*/
2.    /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
The NetHack General Public License applies to screenshots, source code and other content from NetHack.
5.    #include "config.h"
6.    #include "permonst.h"
7.    #include "monsym.h"
8.    #include "dungeon.h"	/* prerequisite for eshk,vault,epri */
9.    #include "eshk.h"
10.   #include "vault.h"
11.   #include "epri.h"
12.   
13.   #define NO_ATTK {0,0,0,0}
14.   
15.   #define WT_ELF	   800
16.   #define WT_DRAGON 4500
17.   
18.   #ifdef C
19.   #undef C
20.   #endif
21.   #ifdef TEXTCOLOR
22.   #include "color.h"
23.   #define C(color)	color
24.   #define HI_DOMESTIC	CLR_WHITE	/* use for player + friendlies */
25.   #define HI_LORD		CLR_MAGENTA
26.   #else
27.   #define C(color)
28.   #endif
29.   
30.   void NDECL(monst_init);
31.   /*
32.    *	Entry Format:		(from permonst.h)
33.    *
34.    *	name, symbol (S_* defines),
35.    *	difficulty level, move rate, armor class, magic resistance,
36.    *	alignment, creation/geno flags (G_* defines),
37.    *	6 * attack structs ( type , damage-type, # dice, # sides ),
38.    *	weight (WT_* defines), nutritional value, extension length,
39.    *	sounds made (MS_* defines), physical size (MZ_* defines),
40.    *	resistances, resistances conferred (both MR_* defines),
41.    *	3 * flag bitmaps (M1_*, M2_*, and M3_* defines respectively)
42.    *	symbol color (C(x) macro)
43.    */
44.   #define MON(nam,sym,lvl,gen,atk,siz,mr1,mr2,flg1,flg2,flg3,col) \
45.   	   {nam,sym,lvl,gen,atk,siz,mr1,mr2,flg1,flg2,flg3,C(col)}
46.   /* LVL() and SIZ() collect several fields to cut down on # of args for MON() */
47.   #define LVL(lvl,mov,ac,mr,aln) lvl,mov,ac,mr,aln
48.   #define SIZ(wt,nut,pxl,snd,siz) wt,nut,pxl,snd,siz
49.   /* ATTK() and A() are to avoid braces and commas within args to MON() */
50.   #define ATTK(at,ad,n,d) {at,ad,n,d}
51.   #define A(a1,a2,a3,a4,a5,a6) {a1,a2,a3,a4,a5,a6}
52.   
53.   
54.   /*
55.    *	Rule #1:	monsters of a given class are contiguous in the
56.    *			mons[] array.
57.    *
58.    *	Rule #2:	monsters of a given class are presented in ascending
59.    *			order of strength.
60.    *
61.    *	Rule #3:	monster frequency is included in the geno mask;
62.    *			the frequency can be from 0 to 7.  0's will also
63.    *			be skipped during generation.
64.    *
65.    *	Rule #4:	monster subclasses (e.g. giants) should be kept
66.    *			together, unless it violates Rule 2.  NOGEN monsters
67.    *			won't violate Rule 2.
68.    *
69.    * Guidelines for color assignment:
70.    *
71.    *	* Use the same color for all `growth stages' of a monster (ex.
72.    *	  little dog/big dog, baby naga/full-grown naga.
73.    *
74.    *	* Use colors given in names wherever possible. If the class has `real'
75.    *	  members with strong color associations, use those.
76.    *
77.    *	* Favor `cool' colors for cold-resistent monsters, `warm' ones for
78.    *	  fire-resistent ones.
79.    *
80.    *	* Try to reserve purple (magenta) for powerful `ruler' monsters (queen
81.    *	  bee, kobold lord, &c.).
82.    *
83.    *	* Subject to all these constraints, try to use color to make as many
84.    *	  distinctions as the / command (that is, within a monster letter
85.    *	  distinct names should map to distinct colors).
86.    *
87.    * The aim in assigning colors is to be consistent enough so a player can
88.    * become `intuitive' about them, deducing some or all of these rules
89.    * unconsciously. Use your common sense.
90.    */
91.   
92.   #ifndef SPLITMON_2
93.   NEARDATA struct permonst mons[] = {

Ants[]

94.   /*
95.    * ants
96.    */
97.       MON("giant ant", S_ANT,
98.   	LVL(2, 18, 3, 0, 0), (G_GENO|G_SGROUP|3),
99.   	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
100.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
101.  	SIZ(10, 10, 0, MS_SILENT, MZ_TINY), 0, 0,
102.  	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
103.  	M2_HOSTILE, 0, CLR_BROWN),
104.      MON("killer bee", S_ANT,
105.  	LVL(1, 18, -1, 0, 0), (G_GENO|G_LGROUP|2),
106.  	A(ATTK(AT_STNG, AD_DRST, 1, 3),
107.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
108.  	SIZ(1, 5, 0, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
109.  	M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_POIS,
110.  	M2_HOSTILE|M2_FEMALE, 0, CLR_YELLOW),
111.      MON("soldier ant", S_ANT,
112.  	LVL(3, 18, 3, 0, 0), (G_GENO|G_SGROUP|2),
113.  	A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_STNG, AD_DRST, 3, 4),
114.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
115.  	SIZ(20, 5, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
116.  	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
117.  	M2_HOSTILE, 0, CLR_BLUE),
118.      MON("fire ant", S_ANT,
119.  	LVL(3, 18, 3, 10, 0), (G_GENO|G_SGROUP|1),
120.  	A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_BITE, AD_FIRE, 2, 4),
121.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
122.  	SIZ(30, 10, 0, MS_SILENT, MZ_TINY), MR_FIRE, MR_FIRE,
123.  	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
124.  	M2_HOSTILE, M3_INFRAVISIBLE, CLR_RED),
125.      MON("giant beetle", S_ANT,
126.  	LVL(5, 6, 4, 0, 0), (G_GENO|3),
127.  	A(ATTK(AT_BITE, AD_PHYS, 3, 6),
128.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
129.  	SIZ(10, 10, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
130.  	M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_CARNIVORE,
131.  	M2_HOSTILE, 0, CLR_BLACK),
132.      MON("queen bee", S_ANT,
133.  	LVL(9, 24, -4, 0, 0), (G_GENO|G_NOGEN),
134.  	A(ATTK(AT_STNG, AD_DRST, 1, 8),
135.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
136.  	SIZ(1, 5, 0, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
137.  	M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_OVIPAROUS|M1_POIS,
138.  	M2_HOSTILE|M2_FEMALE|M2_PRINCE, 0, HI_LORD),

Blobs[]

139.  /*
140.   * blobs
141.   */
142.      MON("acid blob", S_BLOB,
143.  	LVL(1, 3, 8, 0, 0), (G_GENO|2),
144.  	A(ATTK(AT_NONE, AD_ACID, 1, 8),
145.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
146.  	SIZ(30, 10, 0, MS_SILENT, MZ_TINY),
147.  	MR_SLEEP|MR_POISON|MR_ACID|MR_STONE, MR_STONE,
148.  	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
149.  	  M1_MINDLESS|M1_ACID,
150.  	M2_WANDER|M2_NEUTER, 0, CLR_GREEN),
151.      MON("quivering blob", S_BLOB,
152.  	LVL(5, 1, 8, 0, 0), (G_GENO|2),
153.  	A(ATTK(AT_TUCH, AD_PHYS, 1, 8),
154.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
155.  	SIZ(200, 100, 0, MS_SILENT, MZ_SMALL),
156.  	MR_SLEEP|MR_POISON, MR_POISON,
157.  	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
158.  	M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, CLR_WHITE),
159.      MON("gelatinous cube", S_BLOB,
160.  	LVL(6, 6, 8, 0, 0), (G_GENO|2),
161.  	A(ATTK(AT_TUCH, AD_PLYS, 2, 4), ATTK(AT_NONE, AD_PLYS, 1, 4),
162.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
163.  	SIZ(600, 150, 0, MS_SILENT, MZ_LARGE),
164.  	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_ACID|MR_STONE,
165.  	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP,
166.  	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_OMNIVORE|M1_ACID,
167.  	M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, CLR_CYAN),

Cockatrice[]

168.  /*
169.   * cockatrice
170.   */
171.      MON("chickatrice", S_COCKATRICE,
172.  	LVL(4, 4, 8, 30, 0), (G_GENO|G_SGROUP|1),
173.  	A(ATTK(AT_BITE, AD_PHYS, 1, 2), ATTK(AT_TUCH, AD_STON, 0, 0),
174.  	  ATTK(AT_NONE, AD_STON, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
175.  	SIZ(10, 10, 0, MS_HISS, MZ_TINY),
176.  	MR_POISON|MR_STONE, MR_POISON|MR_STONE,
177.  	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE, M2_HOSTILE,
178.  	M3_INFRAVISIBLE, CLR_BROWN),
179.      MON("cockatrice", S_COCKATRICE,
180.  	LVL(5, 6, 6, 30, 0), (G_GENO|5),
181.  	A(ATTK(AT_BITE, AD_PHYS, 1, 3), ATTK(AT_TUCH, AD_STON, 0, 0),
182.  	  ATTK(AT_NONE, AD_STON, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
183.  	SIZ(30, 30, 0, MS_HISS, MZ_SMALL),
184.  	MR_POISON|MR_STONE, MR_POISON|MR_STONE,
185.  	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE|M1_OVIPAROUS, M2_HOSTILE,
186.  	M3_INFRAVISIBLE, CLR_YELLOW),
187.      MON("pyrolisk", S_COCKATRICE, 
188.  	LVL(6, 6, 6, 30, 0), (G_GENO|1),
189.  	A(ATTK(AT_GAZE, AD_FIRE, 2, 6), NO_ATTK,
190.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), 
191.  	SIZ(30, 30, 0, MS_HISS, MZ_SMALL),
192.  	MR_POISON|MR_FIRE, MR_POISON|MR_FIRE,
193.  	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE|M1_OVIPAROUS, M2_HOSTILE,
194.  	M3_INFRAVISIBLE, CLR_RED),

Dogs and other canines[]

195.  /*
196.   * dogs & other canines
197.   */
198.      MON("jackal", S_DOG,
199.  	LVL(0, 12, 7, 0, 0), (G_GENO|G_SGROUP|3),
200.  	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
201.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
202.  	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
203.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
204.  	CLR_BROWN),
205.      MON("fox", S_DOG,
206.  	LVL(0, 15, 7, 0, 0), (G_GENO|1),
207.  	A(ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK,
208.  	  NO_ATTK, NO_ATTK, NO_ATTK),
209.  	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
210.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
211.  	CLR_RED),
212.      MON("coyote", S_DOG,
213.  	LVL(1, 12, 7, 0, 0), (G_GENO|G_SGROUP|1),
214.  	A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK,
215.  	  NO_ATTK, NO_ATTK, NO_ATTK),
216.  	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
217.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
218.  	CLR_BROWN),
219.      MON("werejackal", S_DOG,
220.  	LVL(2, 12, 7, 10, -7), (G_NOGEN|G_NOCORPSE),
221.  	A(ATTK(AT_BITE, AD_WERE, 1, 4), NO_ATTK, NO_ATTK,
222.  	  NO_ATTK, NO_ATTK, NO_ATTK),
223.  	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), MR_POISON, 0,
224.  	M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
225.  	M2_NOPOLY|M2_WERE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
226.      MON("little dog", S_DOG,
227.  	LVL(2, 18, 6, 0, 0), (G_GENO|1),
228.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
229.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
230.  	SIZ(150, 150, 0, MS_BARK, MZ_SMALL), 0, 0,
231.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
232.  	HI_DOMESTIC),
233.      MON("dog", S_DOG,
234.  	LVL(4, 16, 5, 0, 0), (G_GENO|1),
235.  	A(ATTK(AT_BITE, AD_PHYS, 1 ,6),
236.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
237.  	SIZ(400, 200, 0, MS_BARK, MZ_MEDIUM), 0, 0,
238.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
239.  	HI_DOMESTIC),
240.      MON("large dog", S_DOG,
241.  	LVL(6, 15, 4, 0, 0), (G_GENO|1),
242.  	A(ATTK(AT_BITE, AD_PHYS, 2, 4),
243.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
244.  	SIZ(800, 250, 0, MS_BARK, MZ_MEDIUM), 0, 0,
245.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
246.  	M2_STRONG|M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),
247.      MON("dingo", S_DOG,
248.  	LVL(4, 16, 5, 0, 0), (G_GENO|1),
249.  	A(ATTK(AT_BITE, AD_PHYS, 1 ,6),
250.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
251.  	SIZ(400, 200, 0, MS_BARK, MZ_MEDIUM), 0, 0,
252.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
253.  	CLR_YELLOW),
254.      MON("wolf", S_DOG,
255.  	LVL(5, 12, 4, 0, 0), (G_GENO|G_SGROUP|2),
256.  	A(ATTK(AT_BITE, AD_PHYS, 2, 4),
257.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
258.  	SIZ(500, 250, 0, MS_BARK, MZ_MEDIUM), 0, 0,
259.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
260.  	CLR_BROWN),
261.      MON("werewolf", S_DOG,
262.  	LVL(5, 12, 4, 20, -7), (G_NOGEN|G_NOCORPSE),
263.  	A(ATTK(AT_BITE, AD_WERE, 2, 6),
264.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
265.  	SIZ(500, 250, 0, MS_BARK, MZ_MEDIUM), MR_POISON, 0,
266.  	M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
267.  	M2_NOPOLY|M2_WERE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
268.      MON("warg", S_DOG,
269.  	LVL(7, 12, 4, 0, -5), (G_GENO|G_SGROUP|2),
270.  	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
271.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
272.  	SIZ(850, 350, 0, MS_BARK, MZ_MEDIUM), 0, 0,
273.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
274.  	CLR_BROWN),
275.      MON("winter wolf cub", S_DOG,
276.  	LVL(5, 12, 4, 0, -5), (G_NOHELL|G_GENO|G_SGROUP|2),
277.  	A(ATTK(AT_BITE, AD_PHYS, 1, 8), ATTK(AT_BREA, AD_COLD, 1, 8),
278.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
279.  	SIZ(250, 200, 0, MS_BARK, MZ_SMALL), MR_COLD, MR_COLD,
280.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_CYAN),
281.      MON("winter wolf", S_DOG,
282.  	LVL(7, 12, 4, 20, 0), (G_NOHELL|G_GENO|1),
283.  	A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_BREA, AD_COLD, 2, 6),
284.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
285.  	SIZ(700, 300, 0, MS_BARK, MZ_LARGE), MR_COLD, MR_COLD,
286.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
287.  	M2_HOSTILE|M2_STRONG, 0, CLR_CYAN),
288.      MON("hell hound pup", S_DOG,
289.  	LVL(7, 12, 4, 20, -5), (G_HELL|G_GENO|G_SGROUP|1),
290.  	A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_BREA, AD_FIRE, 2, 6),
291.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
292.  	SIZ(200, 200, 0, MS_BARK, MZ_SMALL), MR_FIRE, MR_FIRE,
293.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
294.  	CLR_RED),
295.      MON("hell hound", S_DOG,
296.  	LVL(12, 14, 2, 20, 0), (G_HELL|G_GENO|1),
297.  	A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_BREA, AD_FIRE, 3, 6),
298.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
299.  	SIZ(600, 300, 0, MS_BARK, MZ_MEDIUM), MR_FIRE, MR_FIRE,
300.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE|M2_STRONG,
301.  	M3_INFRAVISIBLE, CLR_RED),
302.  #ifdef CHARON
303.      MON("Cerberus", S_DOG,
304.  	LVL(12, 10, 2, 20, -7), (G_HELL|G_UNIQ|1),
305.  	A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_BITE, AD_PHYS, 3, 6),
306.  	  ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
307.  	SIZ(1000, 350, 0, MS_BARK, MZ_LARGE), MR_FIRE, MR_FIRE,
308.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
309.  	M2_NOPOLY|M2_HOSTILE|M2_STRONG|M2_PNAME|M2_MALE, M3_INFRAVISIBLE,
310.  	CLR_RED),

Eyes and Spheres[]

311.  #endif
312.  /*
313.   * eyes
314.   */
315.      MON("gas spore", S_EYE,
316.  	LVL(1, 3, 10, 0, 0), (G_NOCORPSE|G_GENO|1),
317.  	A(ATTK(AT_BOOM, AD_PHYS, 4, 6), NO_ATTK, NO_ATTK,
318.  	  NO_ATTK, NO_ATTK, NO_ATTK),
319.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
320.  	M1_FLY|M1_BREATHLESS|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
321.  	M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
322.      MON("floating eye", S_EYE,
323.  	LVL(2, 1, 9, 10, 0), (G_GENO|5),
324.  	A(ATTK(AT_NONE, AD_PLYS, 0,70),
325.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
326.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
327.  	M1_FLY|M1_AMPHIBIOUS|M1_NOLIMBS|M1_NOHEAD|M1_NOTAKE,
328.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_BLUE),
329.      MON("freezing sphere", S_EYE,
330.  	LVL(6, 13, 4, 0, 0), (G_NOCORPSE|G_NOHELL|G_GENO|2),
331.  	A(ATTK(AT_EXPL, AD_COLD, 4, 6),
332.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
333.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), MR_COLD, MR_COLD,
334.  	M1_FLY|M1_BREATHLESS|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
335.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_WHITE),
336.      MON("flaming sphere", S_EYE, 
337.  	LVL(6, 13, 4, 0, 0), (G_NOCORPSE|G_GENO|2),
338.  	A(ATTK(AT_EXPL, AD_FIRE, 4, 6), NO_ATTK, NO_ATTK,
339.  	    NO_ATTK, NO_ATTK, NO_ATTK),
340.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), MR_FIRE, MR_FIRE,
341.  	M1_FLY|M1_BREATHLESS|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
342.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_RED),
343.      MON("shocking sphere", S_EYE, 
344.  	LVL(6, 13, 4, 0, 0), (G_NOCORPSE|G_GENO|2),
345.  	A(ATTK(AT_EXPL, AD_ELEC, 4, 6), NO_ATTK, NO_ATTK,
346.  	  NO_ATTK, NO_ATTK, NO_ATTK),
347.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), MR_ELEC, MR_ELEC,
348.  	M1_FLY|M1_BREATHLESS|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
349.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, HI_ZAP),
350.  #if 0		/* not yet implemented */
351.      MON("beholder", S_EYE,
352.  	LVL(6, 3, 4, 0, -10), (G_GENO|2),
353.  	A(ATTK(AT_GAZE, AD_SLOW, 0, 0), ATTK(AT_GAZE, AD_SLEE, 2,25),
354.  	  ATTK(AT_GAZE, AD_DISN, 0, 0), ATTK(AT_GAZE, AD_STON, 0, 0),
355.  	  ATTK(AT_GAZE, AD_CNCL, 2, 4), ATTK(AT_BITE, AD_PHYS, 2, 4)),
356.  	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), MR_COLD, 0,
357.  	M1_FLY|M1_BREATHLESS|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
358.  	M2_NOPOLY|M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_BROWN),
359.  #endif

Felines[]

360.  /*
361.   * felines
362.   */
363.      MON("kitten", S_FELINE,
364.  	LVL(2, 18, 6, 0, 0), (G_GENO|1),
365.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
366.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
367.  	SIZ(150, 150, 0, MS_MEW, MZ_SMALL), 0, 0,
368.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
369.  	M2_WANDER|M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),
370.      MON("housecat", S_FELINE,
371.  	LVL(4, 16, 5, 0, 0), (G_GENO|1),
372.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
373.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
374.  	SIZ(200, 200, 0, MS_MEW, MZ_SMALL), 0, 0,
375.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
376.  	HI_DOMESTIC),
377.      MON("jaguar", S_FELINE,
378.  	LVL(4, 15, 6, 0, 0), (G_GENO|2),
379.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
380.  	  ATTK(AT_BITE, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
381.  	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), 0, 0,
382.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
383.  	CLR_BROWN),
384.      MON("lynx", S_FELINE, 
385.  	LVL(5, 15, 6, 0, 0), (G_GENO|1),
386.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
387.  	  ATTK(AT_BITE, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK),
388.  	SIZ(600, 300, 0, MS_GROWL, MZ_SMALL), 0, 0,
389.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,M2_HOSTILE, M3_INFRAVISIBLE,
390.  	CLR_CYAN),
391.      MON("panther", S_FELINE, 
392.  	LVL(5, 15, 6, 0, 0), (G_GENO|1),
393.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
394.  	  ATTK(AT_BITE, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK),
395.  	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), 0, 0,
396.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,M2_HOSTILE, M3_INFRAVISIBLE,
397.  	CLR_BLACK),
398.      MON("large cat", S_FELINE,
399.  	LVL(6, 15, 4, 0, 0), (G_GENO|1),
400.  	A(ATTK(AT_BITE, AD_PHYS, 2, 4),
401.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
402.  	SIZ(250, 250, 0, MS_MEW, MZ_SMALL), 0, 0,
403.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
404.  	M2_STRONG|M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),
405.      MON("tiger", S_FELINE,
406.  	LVL(6, 12, 6, 0, 0), (G_GENO|2),
407.  	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
408.  	  ATTK(AT_BITE, AD_PHYS, 1,10), NO_ATTK, NO_ATTK, NO_ATTK),
409.  	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), 0, 0,
410.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
411.  	CLR_YELLOW),

Gremlins and gargoyles[]

412.  /*
413.   * gremlins and gargoyles
414.   */
415.      MON("gremlin", S_GREMLIN,
416.  	LVL(5, 12, 2, 25, -9), (G_GENO|2),
417.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
418.  	  ATTK(AT_BITE, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_CURS, 0, 0),
419.  	  NO_ATTK, NO_ATTK),
420.  	SIZ(100, 20, 0, MS_LAUGH, MZ_SMALL), MR_POISON, MR_POISON,
421.  	M1_SWIM|M1_HUMANOID|M1_POIS, M2_STALK, M3_INFRAVISIBLE, CLR_GREEN),
422.      MON("gargoyle", S_GREMLIN,
423.  	LVL(6, 10, -4, 0, -9), (G_GENO|2),
424.  	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_PHYS, 2, 6),
425.  	  ATTK(AT_BITE, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
426.  	SIZ(1000, 200, 0, MS_GRUNT, MZ_HUMAN), MR_STONE, MR_STONE,
427.  	M1_HUMANOID|M1_THICK_HIDE|M1_BREATHLESS,
428.  	M2_HOSTILE|M2_STRONG, 0, CLR_BROWN),
429.      MON("winged gargoyle", S_GREMLIN,
430.  	LVL(9, 15, -2, 0, -12), (G_GENO|1),
431.  	A(ATTK(AT_CLAW, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 6),
432.  	  ATTK(AT_BITE, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
433.  	SIZ(1200, 300, 0, MS_GRUNT, MZ_HUMAN), MR_STONE, MR_STONE,
434.  	M1_FLY|M1_HUMANOID|M1_THICK_HIDE|M1_BREATHLESS|M1_OVIPAROUS,
435.  	M2_LORD|M2_HOSTILE|M2_STRONG|M2_MAGIC, 0, HI_LORD),

Humanoids[]

436.  /*
437.   * humanoids
438.   */
439.      MON("hobbit", S_HUMANOID,
440.  	LVL(1, 9, 10, 0, 6), (G_GENO|2),
441.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
442.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
443.  	SIZ(500, 200, 0, MS_HUMANOID, MZ_SMALL), 0, 0,
444.  	M1_HUMANOID|M1_OMNIVORE, M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION,
445.  	CLR_GREEN),
446.      MON("dwarf", S_HUMANOID,
447.  	LVL(2, 6, 10, 10, 4), (G_GENO|3),
448.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
449.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
450.  	SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
451.  	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
452.  	M2_NOPOLY|M2_DWARF|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
453.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
454.      MON("bugbear", S_HUMANOID,
455.  	LVL(3, 9, 5, 0, -6), (G_GENO|1),
456.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
457.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
458.  	SIZ(1250, 250, 0, MS_GROWL, MZ_LARGE), 0, 0,
459.  	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_COLLECT,
460.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
461.      MON("dwarf lord", S_HUMANOID,
462.  	LVL(4, 6, 10, 10, 5), (G_GENO|2),
463.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
464.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
465.  	SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
466.  	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
467.  	M2_DWARF|M2_STRONG|M2_LORD|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
468.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
469.      MON("dwarf king", S_HUMANOID,
470.  	LVL(6, 6, 10, 20, 6), (G_GENO|1),
471.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
472.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
473.  	SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
474.  	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
475.  	M2_DWARF|M2_STRONG|M2_PRINCE|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
476.  	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
477.      MON("mind flayer", S_HUMANOID,
478.  	LVL(9, 12, 5, 90, -8), (G_GENO|1),
479.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_TENT, AD_DRIN, 2, 1),
480.  	  ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1),
481.  	  NO_ATTK, NO_ATTK),
482.  	SIZ(1450, 400, 0, MS_HISS, MZ_HUMAN), 0, 0,
483.  	M1_HUMANOID|M1_FLY|M1_SEE_INVIS|M1_OMNIVORE,
484.  	M2_HOSTILE|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_COLLECT,
485.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_MAGENTA),
486.      MON("master mind flayer", S_HUMANOID,
487.  	LVL(13, 12, 0, 90, -8), (G_GENO|1),
488.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_TENT, AD_DRIN, 2, 1),
489.  	  ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1),
490.  	  ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1)),
491.  	SIZ(1450, 400, 0, MS_HISS, MZ_HUMAN), 0, 0,
492.  	M1_HUMANOID|M1_FLY|M1_SEE_INVIS|M1_OMNIVORE,
493.  	M2_HOSTILE|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_COLLECT,
494.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_MAGENTA),

Imps and other minor demons[]

495.  /*
496.   * imps & other minor demons/devils
497.   */
498.      MON("manes", S_IMP,
499.  	LVL(1, 3, 7, 0, -7), (G_GENO|G_LGROUP|G_NOCORPSE|1),
500.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
501.  	  ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
502.  	SIZ(100, 100, 0, MS_SILENT, MZ_SMALL), MR_SLEEP|MR_POISON, 0,
503.  	M1_POIS, M2_HOSTILE|M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
504.      MON("homunculus", S_IMP,
505.  	LVL(2, 12, 6, 10, -7), (G_GENO|2),
506.  	A(ATTK(AT_BITE, AD_SLEE, 1, 3),
507.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
508.  	SIZ(60, 100, 0, MS_SILENT, MZ_TINY),
509.  	MR_SLEEP|MR_POISON, MR_SLEEP|MR_POISON,
510.  	M1_FLY|M1_POIS, M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GREEN),
511.      MON("imp", S_IMP,
512.  	LVL(3, 12, 2, 20, -7), (G_GENO|1),
513.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 4),
514.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
515.  	SIZ(20, 10, 0, MS_CUSS, MZ_TINY), 0, 0,
516.  	M1_REGEN, M2_WANDER|M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
517.      MON("lemure", S_IMP,
518.  	LVL(3, 3, 7, 0, -7), (G_HELL|G_GENO|G_LGROUP|G_NOCORPSE|1),
519.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 3),
520.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
521.  	SIZ(150, 100, 0, MS_SILENT, MZ_MEDIUM),
522.  	MR_SLEEP|MR_POISON, MR_SLEEP, M1_POIS|M1_REGEN,
523.  	M2_HOSTILE|M2_WANDER|M2_STALK|M2_NEUTER,
524.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
525.      MON("quasit", S_IMP,
526.  	LVL(3, 15, 2, 20, -7), (G_GENO|2),
527.  	A(ATTK(AT_CLAW, AD_DRDX, 1, 2), ATTK(AT_CLAW, AD_DRDX, 1, 2),
528.  	  ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
529.  	SIZ(200, 200, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
530.  	M1_REGEN, M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
531.      MON("tengu", S_IMP,
532.  	LVL(6, 13, 5, 30, 7), (G_GENO|3),
533.  	A(ATTK(AT_BITE, AD_PHYS, 1, 7),
534.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
535.  	SIZ(300, 200, 0, MS_SQAWK, MZ_SMALL), MR_POISON, MR_POISON,
536.  	M1_TPORT|M1_TPORT_CNTRL, M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION,
537.  	CLR_CYAN),

Jellies[]

538.  /*
539.   * jellies
540.   */
541.      MON("blue jelly", S_JELLY,
542.  	LVL(4, 0, 8, 10, 0), (G_GENO|2),
543.  	A(ATTK(AT_NONE, AD_COLD, 0, 6),
544.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
545.  	SIZ(50, 20, 0, MS_SILENT, MZ_MEDIUM),
546.  	MR_COLD|MR_POISON, MR_COLD|MR_POISON,
547.  	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS
548.  	  |M1_NOTAKE,
549.  	M2_HOSTILE|M2_NEUTER, 0, CLR_BLUE),
550.      MON("spotted jelly", S_JELLY,
551.  	LVL(5, 0, 8, 10, 0), (G_GENO|1),
552.  	A(ATTK(AT_NONE, AD_ACID, 0, 6),
553.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
554.  	SIZ(50, 20, 0, MS_SILENT, MZ_MEDIUM), MR_ACID|MR_STONE, 0,
555.  	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
556.  	  M1_MINDLESS|M1_ACID|M1_NOTAKE,
557.  	M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
558.      MON("ochre jelly", S_JELLY,
559.  	LVL(6, 3, 8, 20, 0), (G_GENO|2),
560.  	A(ATTK(AT_ENGL, AD_ACID, 3, 6), ATTK(AT_NONE, AD_ACID, 3, 6),
561.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
562.  	SIZ(50, 20, 0, MS_SILENT, MZ_MEDIUM), MR_ACID|MR_STONE, 0,
563.  	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
564.  	  M1_MINDLESS|M1_ACID|M1_NOTAKE,
565.  	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),

Kobolds[]

566.  /*
567.   * kobolds
568.   */
569.      MON("kobold", S_KOBOLD,
570.  	LVL(0, 6, 10, 0, -2), (G_GENO|1),
571.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
572.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
573.  	SIZ(400, 100, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
574.  	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_COLLECT,
575.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
576.      MON("large kobold", S_KOBOLD,
577.  	LVL(1, 6, 10, 0, -3), (G_GENO|1),
578.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
579.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
580.  	SIZ(450, 150, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
581.  	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_COLLECT,
582.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
583.      MON("kobold lord", S_KOBOLD,
584.  	LVL(2, 6, 10, 0, -4), (G_GENO|1),
585.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
586.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
587.  	SIZ(500, 200, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
588.  	M1_HUMANOID|M1_POIS|M1_OMNIVORE,
589.  	M2_HOSTILE|M2_LORD|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION,
590.  	HI_LORD),
591.      MON("kobold shaman", S_KOBOLD,
592.  	LVL(2, 6, 6, 10, -4), (G_GENO|1),
593.  	A(ATTK(AT_MAGC, AD_SPEL, 0, 0),
594.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
595.  	SIZ(450, 150, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
596.  	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_MAGIC,
597.  	M3_INFRAVISIBLE|M3_INFRAVISION, HI_ZAP),

Leprechauns[]

598.  /*
599.   * leprechauns
600.   */
601.      MON("leprechaun", S_LEPRECHAUN,
602.  	LVL(5, 15, 8, 20, 0), (G_GENO|4),
603.  	A(ATTK(AT_CLAW, AD_SGLD, 1, 2),
604.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
605.  	SIZ(60, 30, 0, MS_LAUGH, MZ_TINY), 0, 0,
606.  	M1_HUMANOID|M1_TPORT, M2_HOSTILE|M2_GREEDY, M3_INFRAVISIBLE, CLR_GREEN),

Mimics[]

607.  /*
608.   * mimics
609.   */
610.      MON("small mimic", S_MIMIC,
611.  	LVL(7, 3, 7, 0, 0), (G_GENO|2),
612.  	A(ATTK(AT_CLAW, AD_PHYS, 3, 4),
613.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
614.  	SIZ(300, 200, 0, MS_SILENT, MZ_MEDIUM), MR_ACID, 0,
615.  	M1_BREATHLESS|M1_AMORPHOUS|M1_HIDE|M1_ANIMAL|M1_NOEYES|
616.  	  M1_NOHEAD|M1_NOLIMBS|M1_THICK_HIDE|M1_CARNIVORE,
617.  	M2_HOSTILE, 0, CLR_BROWN),
618.      MON("large mimic", S_MIMIC,
619.  	LVL(8, 3, 7, 10, 0), (G_GENO|1),
620.  	A(ATTK(AT_CLAW, AD_STCK, 3, 4),
621.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
622.  	SIZ(600, 400, 0, MS_SILENT, MZ_LARGE), MR_ACID, 0,
623.  	M1_CLING|M1_BREATHLESS|M1_AMORPHOUS|M1_HIDE|M1_ANIMAL|M1_NOEYES|
624.  	  M1_NOHEAD|M1_NOLIMBS|M1_THICK_HIDE|M1_CARNIVORE,
625.  	M2_HOSTILE|M2_STRONG, 0, CLR_RED),
626.      MON("giant mimic", S_MIMIC,
627.  	LVL(9, 3, 7, 20, 0), (G_GENO|1),
628.  	A(ATTK(AT_CLAW, AD_STCK, 3, 6), ATTK(AT_CLAW, AD_STCK, 3, 6),
629.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
630.  	SIZ(800, 500, 0, MS_SILENT, MZ_LARGE), MR_ACID, 0,
631.  	M1_CLING|M1_BREATHLESS|M1_AMORPHOUS|M1_HIDE|M1_ANIMAL|M1_NOEYES|
632.  	  M1_NOHEAD|M1_NOLIMBS|M1_THICK_HIDE|M1_CARNIVORE,
633.  	M2_HOSTILE|M2_STRONG, 0, HI_LORD),

Nymphs[]

634.  /*
635.   * nymphs
636.   */
637.      MON("wood nymph", S_NYMPH,
638.  	LVL(3, 12, 9, 20, 0), (G_GENO|2),
639.  	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0),
640.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
641.  	SIZ(600, 300, 0, MS_SEDUCE, MZ_HUMAN), 0, 0,
642.  	M1_HUMANOID|M1_TPORT, M2_HOSTILE|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
643.  	CLR_GREEN),
644.      MON("water nymph", S_NYMPH,
645.  	LVL(3, 12, 9, 20, 0), (G_GENO|2),
646.  	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0),
647.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
648.  	SIZ(600, 300, 0, MS_SEDUCE, MZ_HUMAN), 0, 0,
649.  	M1_HUMANOID|M1_TPORT|M1_SWIM,
650.  	M2_HOSTILE|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE, CLR_BLUE),
651.      MON("mountain nymph", S_NYMPH,
652.  	LVL(3, 12, 9, 20, 0), (G_GENO|2),
653.  	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0),
654.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
655.  	SIZ(600, 300, 0, MS_SEDUCE, MZ_HUMAN), 0, 0,
656.  	M1_HUMANOID|M1_TPORT, M2_HOSTILE|M2_FEMALE|M2_COLLECT,
657.  	M3_INFRAVISIBLE, CLR_BROWN),

Orcs[]

658.  /*
659.   * orcs
660.   */
661.      MON("goblin", S_ORC,
662.  	LVL(0, 6, 10, 0, -3), (G_GENO|2),
663.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
664.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
665.  	SIZ(400, 100, 0, MS_ORC, MZ_SMALL), 0, 0,
666.  	M1_HUMANOID|M1_OMNIVORE, M2_ORC|M2_COLLECT,
667.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
668.      MON("hobgoblin", S_ORC,
669.  	LVL(1, 9, 10, 0, -4), (G_GENO|2),
670.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
671.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
672.  	SIZ(1000, 200, 0, MS_ORC, MZ_HUMAN), 0, 0,
673.  	M1_HUMANOID|M1_OMNIVORE, M2_ORC|M2_STRONG|M2_COLLECT,
674.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
675.  	/* plain "orc" for zombie corpses only; not created at random
676.  	 */
677.      MON("orc", S_ORC,
678.  	LVL(1, 9, 10, 0, -3), (G_GENO|G_NOGEN|G_LGROUP),
679.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
680.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
681.  	SIZ(850, 150, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
682.  	M2_NOPOLY|M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
683.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
684.      MON("hill orc", S_ORC,
685.  	LVL(2, 9, 10, 0, -4), (G_GENO|G_LGROUP|2),
686.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
687.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
688.  	SIZ(1000, 200, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
689.  	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
690.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_YELLOW),
691.      MON("Mordor orc", S_ORC,
692.  	LVL(3, 5, 10, 0, -5), (G_GENO|G_LGROUP|1),
693.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
694.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
695.  	SIZ(1200, 200, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
696.  	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
697.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
698.      MON("Uruk-hai", S_ORC,
699.  	LVL(3, 7, 10, 0, -4), (G_GENO|G_LGROUP|1),
700.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
701.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
702.  	SIZ(1300, 300, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
703.  	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
704.  	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLACK),
705.      MON("orc shaman", S_ORC,
706.  	LVL(3, 9, 5, 10, -5), (G_GENO|1),
707.  	A(ATTK(AT_MAGC, AD_SPEL, 0, 0),
708.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
709.  	SIZ(1000, 300, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
710.  	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_MAGIC,
711.  	M3_INFRAVISIBLE|M3_INFRAVISION, HI_ZAP),
712.      MON("orc-captain", S_ORC,
713.  	LVL(5, 5, 10, 0, -5), (G_GENO|1),
714.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
715.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
716.  	SIZ(1350, 350, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
717.  	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
718.  	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),

Piercers[]

719.  /*
720.   * piercers
721.   */
722.      MON("rock piercer", S_PIERCER,
723.  	LVL(3, 1, 3, 0, 0), (G_GENO|4),
724.  	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
725.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
726.  	SIZ(200, 200, 0, MS_SILENT, MZ_SMALL), 0, 0,
727.  	M1_CLING|M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
728.  	M2_HOSTILE, 0, CLR_GRAY),
729.      MON("iron piercer", S_PIERCER,
730.  	LVL(5, 1, 0, 0, 0), (G_GENO|2),
731.  	A(ATTK(AT_BITE, AD_PHYS, 3, 6),
732.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
733.  	SIZ(400, 300, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
734.  	M1_CLING|M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
735.  	M2_HOSTILE, 0, CLR_CYAN),
736.      MON("glass piercer", S_PIERCER,
737.  	LVL(7, 1, 0, 0, 0), (G_GENO|1),
738.  	A(ATTK(AT_BITE, AD_PHYS, 4, 6), NO_ATTK, NO_ATTK,
739.  	  NO_ATTK, NO_ATTK, NO_ATTK),
740.  	SIZ(400, 300, 0, MS_SILENT, MZ_MEDIUM), MR_ACID, 0,
741.  	M1_CLING|M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
742.  	M2_HOSTILE, 0, CLR_WHITE),

Quadrupeds[]

743.  /*
744.   * quadrupeds
745.   */
746.      MON("rothe", S_QUADRUPED,
747.  	LVL(2, 9, 7, 0, 0), (G_GENO|G_SGROUP|4),
748.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_BITE, AD_PHYS, 1, 3),
749.  	  ATTK(AT_BITE, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
750.  	SIZ(400, 100, 0, MS_SILENT, MZ_LARGE), 0, 0,
751.  	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
752.  	CLR_BROWN),
753.      MON("mumak", S_QUADRUPED,
754.  	LVL(5, 9, 0, 0, -2), (G_GENO|1),
755.  	A(ATTK(AT_BUTT, AD_PHYS, 4,12), ATTK(AT_BITE, AD_PHYS, 2, 6),
756.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
757.  	SIZ(2500, 500, 0, MS_ROAR, MZ_LARGE), 0, 0,
758.  	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
759.  	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_GRAY),
760.      MON("leocrotta", S_QUADRUPED,
761.  	LVL(6, 18, 4, 10, 0), (G_GENO|2),
762.  	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_BITE, AD_PHYS, 2, 6),
763.  	  ATTK(AT_CLAW, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
764.  	SIZ(1200, 500, 0, MS_IMITATE, MZ_LARGE), 0, 0,
765.  	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE, M2_HOSTILE|M2_STRONG,
766.  	M3_INFRAVISIBLE, CLR_RED),
767.      MON("wumpus", S_QUADRUPED,
768.  	LVL(8, 3, 2, 10, 0), (G_GENO|1),
769.  	A(ATTK(AT_BITE, AD_PHYS, 3, 6),
770.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
771.  	SIZ(2500, 500, 0, MS_BURBLE, MZ_LARGE), 0, 0,
772.  	M1_CLING|M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE,
773.  	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_CYAN),
774.      MON("titanothere", S_QUADRUPED,
775.  	LVL(12, 12, 6, 0, 0), (G_GENO|2),
776.  	A(ATTK(AT_CLAW, AD_PHYS, 2, 8),
777.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
778.  	SIZ(2650, 650, 0, MS_SILENT, MZ_LARGE), 0, 0,
779.  	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
780.  	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_GRAY),
781.      MON("baluchitherium", S_QUADRUPED,
782.  	LVL(14, 12, 5, 0, 0), (G_GENO|2),
783.  	A(ATTK(AT_CLAW, AD_PHYS, 5, 4), ATTK(AT_CLAW, AD_PHYS, 5, 4),
784.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
785.  	SIZ(3800, 800, 0, MS_SILENT, MZ_LARGE), 0, 0,
786.  	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
787.  	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_GRAY),
788.      MON("mastodon", S_QUADRUPED,
789.  	LVL(20, 12, 5, 0, 0), (G_GENO|1),
790.  	A(ATTK(AT_BUTT, AD_PHYS, 4, 8), ATTK(AT_BUTT, AD_PHYS, 4, 8),
791.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
792.  	SIZ(3800, 800, 0, MS_SILENT, MZ_LARGE), 0, 0,
793.  	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
794.  	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_BLACK),

Rodents[]

795.  /*
796.   * rodents
797.   */
798.      MON("sewer rat", S_RODENT,
799.  	LVL(0, 12, 7, 0, 0), (G_GENO|G_SGROUP|1),
800.  	A(ATTK(AT_BITE, AD_PHYS, 1, 3),
801.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
802.  	SIZ(20, 12, 0, MS_SQEEK, MZ_TINY), 0, 0,
803.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
804.  	CLR_BROWN),
805.      MON("giant rat", S_RODENT,
806.  	LVL(1, 10, 7, 0, 0), (G_GENO|G_SGROUP|2),
807.  	A(ATTK(AT_BITE, AD_PHYS, 1, 3),
808.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
809.  	SIZ(30, 30, 0, MS_SQEEK, MZ_TINY), 0, 0,
810.  	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
811.  	CLR_BROWN),
812.      MON("rabid rat", S_RODENT,
813.  	LVL(2, 12, 6, 0, 0), (G_GENO|1),
814.  	A(ATTK(AT_BITE, AD_DRCO, 2, 4),
815.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
816.  	SIZ(30, 5, 0, MS_SQEEK, MZ_TINY), MR_POISON, 0,
817.  	M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
818.  	CLR_BROWN),
819.      MON("wererat", S_RODENT,
820.  	LVL(2, 12, 6, 10, -7), (G_NOGEN|G_NOCORPSE),
821.  	A(ATTK(AT_BITE, AD_WERE, 1, 4),
822.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
823.  	SIZ(40, 30, 0, MS_SQEEK, MZ_TINY), MR_POISON, 0,
824.  	M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
825.  	M2_NOPOLY|M2_WERE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
826.      MON("rock mole", S_RODENT,
827.  	LVL(3, 3, 0, 20, 0), (G_GENO|2),
828.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
829.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
830.  	SIZ(30, 30, 0, MS_SILENT, MZ_SMALL), 0, 0,
831.  	M1_TUNNEL|M1_ANIMAL|M1_NOHANDS|M1_METALLIVORE,
832.  	M2_HOSTILE|M2_GREEDY|M2_JEWELS|M2_COLLECT, M3_INFRAVISIBLE, CLR_GRAY),
833.      MON("woodchuck", S_RODENT,
834.  	LVL(3, 3, 0, 20, 0), (G_NOGEN|G_GENO),
835.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
836.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
837.  	SIZ(30, 30, 0, MS_SILENT, MZ_SMALL), 0, 0,
838.  	M1_TUNNEL/*LOGGING*/|M1_ANIMAL|M1_NOHANDS|M1_SWIM|M1_HERBIVORE,
839.  		/* In reality, they tunnel instead of cutting lumber.  Oh, well. */
840.  	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),

Spiders and scorpions[]

841.  /*
842.   * spiders & scorpions (keep webmaker() in sync if new critters are added)
843.   */
844.      MON("cave spider", S_SPIDER,
845.  	LVL(1, 12, 3, 0, 0), (G_GENO|G_SGROUP|2),
846.  	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
847.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
848.  	SIZ(50, 50, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
849.  	M1_CONCEAL|M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
850.  	M2_HOSTILE, 0, CLR_GRAY),
851.      MON("centipede", S_SPIDER, 
852.  	LVL(2, 4, 3, 0, 0), (G_GENO|1),
853.  	A(ATTK(AT_BITE, AD_DRST, 1, 3), NO_ATTK, NO_ATTK,
854.  	  NO_ATTK, NO_ATTK, NO_ATTK),
855.  	SIZ(50, 50, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
856.  	M1_CONCEAL|M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
857.  	M2_HOSTILE, 0, CLR_YELLOW),
858.      MON("giant spider", S_SPIDER,
859.  	LVL(5, 15, 4, 0, 0), (G_GENO|1),
860.  	A(ATTK(AT_BITE, AD_DRST, 2, 4),
861.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
862.  	SIZ(100, 100, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
863.  	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
864.  	M2_HOSTILE|M2_STRONG, 0, CLR_MAGENTA),
865.      MON("scorpion", S_SPIDER,
866.  	LVL(5, 15, 3, 0, 0), (G_GENO|2),
867.  	A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 2),
868.  	  ATTK(AT_STNG, AD_DRST, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
869.  	SIZ(50, 100, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
870.  	M1_CONCEAL|M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
871.  	M2_HOSTILE, 0, CLR_RED),

Trappers and lurkers[]

872.  /*
873.   * trappers, lurkers, &c
874.   */
875.      MON("lurker above", S_TRAPPER,
876.  	LVL(10, 3, 3, 0, 0), (G_GENO|2),
877.  	A(ATTK(AT_ENGL, AD_DGST, 1, 8),
878.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
879.  	SIZ(800, 350, 0, MS_SILENT, MZ_HUGE), 0, 0,
880.  	M1_HIDE|M1_FLY|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_CARNIVORE,
881.  	M2_HOSTILE|M2_STALK|M2_STRONG, 0, CLR_GRAY),
882.      MON("trapper", S_TRAPPER,
883.  	LVL(12, 3, 3, 0, 0), (G_GENO|2),
884.  	A(ATTK(AT_ENGL, AD_DGST, 1,10),
885.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
886.  	SIZ(800, 350, 0, MS_SILENT, MZ_HUGE), 0, 0,
887.  	M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_CARNIVORE,
888.  	M2_HOSTILE|M2_STALK|M2_STRONG, 0, CLR_GREEN),

Unicorns and horses[]

889.  /*
890.   * unicorns and horses
891.   */
892.      MON("white unicorn", S_UNICORN,
893.  	LVL(4, 24, 2, 70, 7), (G_GENO|2),
894.  	A(ATTK(AT_BUTT, AD_PHYS, 1,12), ATTK(AT_KICK, AD_PHYS, 1, 6),
895.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
896.  	SIZ(1300, 300, 0, MS_NEIGH, MZ_LARGE), MR_POISON, MR_POISON,
897.  	M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_JEWELS,
898.  	M3_INFRAVISIBLE, CLR_WHITE),
899.      MON("gray unicorn", S_UNICORN,
900.  	LVL(4, 24, 2, 70, 0), (G_GENO|1),
901.  	A(ATTK(AT_BUTT, AD_PHYS, 1,12), ATTK(AT_KICK, AD_PHYS, 1, 6),
902.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
903.  	SIZ(1300, 300, 0, MS_NEIGH, MZ_LARGE), MR_POISON, MR_POISON,
904.  	M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_JEWELS,
905.  	M3_INFRAVISIBLE, CLR_GRAY),
906.      MON("black unicorn", S_UNICORN,
907.  	LVL(4, 24, 2, 70, -7), (G_GENO|1),
908.  	A(ATTK(AT_BUTT, AD_PHYS, 1,12), ATTK(AT_KICK, AD_PHYS, 1, 6),
909.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
910.  	SIZ(1300, 300, 0, MS_NEIGH, MZ_LARGE), MR_POISON, MR_POISON,
911.  	M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_JEWELS,
912.  	M3_INFRAVISIBLE, CLR_BLACK),
913.      MON("pony", S_UNICORN,
914.  	LVL(3, 16, 6, 0, 0), (G_GENO|2),
915.  	A(ATTK(AT_KICK, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_PHYS, 1, 2),
916.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
917.  	SIZ(1300, 250, 0, MS_NEIGH, MZ_MEDIUM), 0, 0,
918.  	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_DOMESTIC,
919.  	M3_INFRAVISIBLE, CLR_BROWN),
920.      MON("horse", S_UNICORN,
921.  	LVL(5, 20, 5, 0, 0), (G_GENO|2),
922.  	A(ATTK(AT_KICK, AD_PHYS, 1, 8), ATTK(AT_BITE, AD_PHYS, 1, 3),
923.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
924.  	SIZ(1500, 300, 0, MS_NEIGH, MZ_LARGE), 0, 0,
925.  	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_DOMESTIC,
926.  	M3_INFRAVISIBLE, CLR_BROWN),
927.      MON("warhorse", S_UNICORN,
928.  	LVL(7, 24, 4, 0, 0), (G_GENO|2),
929.  	A(ATTK(AT_KICK, AD_PHYS, 1, 10), ATTK(AT_BITE, AD_PHYS, 1, 4),
930.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
931.  	SIZ(1800, 350, 0, MS_NEIGH, MZ_LARGE), 0, 0,
932.  	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_DOMESTIC,
933.  	M3_INFRAVISIBLE, CLR_BROWN),

Vortices[]

934.  /*
935.   * vortices
936.   */
937.      MON("fog cloud", S_VORTEX,
938.  	LVL(3, 1, 0, 0, 0), (G_GENO|G_NOCORPSE|2),
939.  	A(ATTK(AT_ENGL, AD_PHYS, 1, 6),
940.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
941.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_SLEEP|MR_POISON|MR_STONE, 0,
942.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
943.  	  M1_AMORPHOUS|M1_UNSOLID,
944.  	M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
945.      MON("dust vortex", S_VORTEX,
946.  	LVL(4, 20, 2, 30, 0), (G_GENO|G_NOCORPSE|2),
947.  	A(ATTK(AT_ENGL, AD_BLND, 2, 8),
948.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
949.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_SLEEP|MR_POISON|MR_STONE, 0,
950.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
951.  	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
952.      MON("ice vortex", S_VORTEX,
953.  	LVL(5, 20, 2, 30, 0), (G_NOHELL|G_GENO|G_NOCORPSE|1),
954.  	A(ATTK(AT_ENGL, AD_COLD, 1, 6),
955.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
956.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
957.  	MR_COLD|MR_SLEEP|MR_POISON|MR_STONE, 0,
958.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
959.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_CYAN),
960.      MON("energy vortex", S_VORTEX,
961.  	LVL(6, 20, 2, 30, 0), (G_GENO|G_NOCORPSE|1),
962.  	A(ATTK(AT_ENGL, AD_ELEC, 1, 6), ATTK(AT_ENGL, AD_DREN, 0, 0),
963.  	  ATTK(AT_NONE, AD_ELEC, 0, 4), NO_ATTK, NO_ATTK, NO_ATTK),
964.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
965.  	MR_ELEC|MR_SLEEP|MR_DISINT|MR_POISON|MR_STONE, 0,
966.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
967.  	  M1_UNSOLID,
968.  	M2_HOSTILE|M2_NEUTER, 0, HI_ZAP),
969.      MON("steam vortex", S_VORTEX,
970.  	LVL(7, 22, 2, 30, 0), (G_HELL|G_GENO|G_NOCORPSE|2),
971.  	A(ATTK(AT_ENGL, AD_FIRE, 1, 8),
972.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
973.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
974.  	MR_FIRE|MR_SLEEP|MR_POISON|MR_STONE, 0,
975.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
976.  	  M1_UNSOLID,
977.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_BLUE),
978.      MON("fire vortex", S_VORTEX,
979.  	LVL(8, 22, 2, 30, 0), (G_HELL|G_GENO|G_NOCORPSE|1),
980.  	A(ATTK(AT_ENGL, AD_FIRE, 1,10), ATTK(AT_NONE, AD_FIRE, 0, 4),
981.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
982.  	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
983.  	MR_FIRE|MR_SLEEP|MR_POISON|MR_STONE, 0,
984.  	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
985.  	  M1_UNSOLID,
986.  	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),

Worms[]

987.  /*
988.   * worms
989.   */
990.      MON("baby long worm", S_WORM,
991.  	LVL(8, 3, 5, 0, 0), G_GENO,
992.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
993.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
994.  	SIZ(600, 250, 0, MS_SILENT, MZ_LARGE), 0, 0,
995.  	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
996.  	M2_HOSTILE, 0, CLR_BROWN),
997.      MON("baby purple worm", S_WORM,
998.  	LVL(8, 3, 5, 0, 0), G_GENO,
999.  	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
1000. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1001. 	SIZ(600, 250, 0, MS_SILENT, MZ_LARGE), 0, 0,
1002. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_CARNIVORE, M2_HOSTILE,
1003. 	0, CLR_MAGENTA),
1004.     MON("long worm", S_WORM,
1005. 	LVL(8, 3, 5, 10, 0), (G_GENO|2),
1006. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1007. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1008. 	SIZ(1500, 500, 0, MS_SILENT, MZ_GIGANTIC), 0, 0,
1009. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_OVIPAROUS|M1_CARNIVORE|M1_NOTAKE,
1010. 	M2_HOSTILE|M2_STRONG|M2_NASTY, 0, CLR_BROWN),
1011.     MON("purple worm", S_WORM,
1012. 	LVL(15, 9, 6, 20, 0), (G_GENO|2),
1013. 	A(ATTK(AT_BITE, AD_PHYS, 2, 8), ATTK(AT_ENGL, AD_DGST, 1,10),
1014. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1015. 	SIZ(2700, 700, 0, MS_SILENT, MZ_GIGANTIC), 0, 0,
1016. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_OVIPAROUS|M1_CARNIVORE,
1017. 	M2_HOSTILE|M2_STRONG|M2_NASTY, 0, CLR_MAGENTA),

Xan and other mythical insects[]

1018. /*
1019.  * xan, &c
1020.  */
1021.     MON("grid bug", S_XAN,
1022. 	LVL(0, 12, 9, 0, 0), (G_GENO|G_SGROUP|G_NOCORPSE|3),
1023. 	A(ATTK(AT_BITE, AD_ELEC, 1, 1),
1024. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1025. 	SIZ(15, 10, 0, MS_BUZZ, MZ_TINY), MR_ELEC|MR_POISON, 0,
1026. 	M1_ANIMAL, M2_HOSTILE, M3_INFRAVISIBLE, CLR_MAGENTA),
1027.     MON("xan", S_XAN,
1028. 	LVL(7, 18, -4, 0, 0), (G_GENO|3),
1029. 	A(ATTK(AT_STNG, AD_LEGS, 1, 4),
1030. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1031. 	SIZ(300, 300, 0, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
1032. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_POIS, M2_HOSTILE, M3_INFRAVISIBLE,
1033. 	CLR_RED),

Lights[]

1034. /*
1035.  * lights
1036.  */
1037.     MON("yellow light", S_LIGHT,
1038. 	LVL(3, 15, 0, 0, 0), (G_NOCORPSE|G_GENO|4),
1039. 	A(ATTK(AT_EXPL, AD_BLND, 10,20),
1040. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1041. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL),
1042. 	MR_FIRE|MR_COLD|MR_ELEC|MR_DISINT|MR_SLEEP|MR_POISON|MR_ACID|
1043. 	  MR_STONE, 0,
1044. 	M1_FLY|M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1045. 	  M1_MINDLESS|M1_UNSOLID|M1_NOTAKE,
1046. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),
1047.     MON("black light", S_LIGHT,
1048. 	LVL(5, 15, 0, 0, 0), (G_NOCORPSE|G_GENO|2),
1049. 	A(ATTK(AT_EXPL, AD_HALU, 10,12),
1050. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1051. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL),
1052. 	MR_FIRE|MR_COLD|MR_ELEC|MR_DISINT|MR_SLEEP|MR_POISON|MR_ACID|
1053. 	  MR_STONE, 0,
1054. 	M1_FLY|M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1055. 	  M1_MINDLESS|M1_UNSOLID|M1_SEE_INVIS|M1_NOTAKE,
1056. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BLACK),

Zruty[]

1057. /*
1058.  * zruty
1059.  */
1060.     MON("zruty", S_ZRUTY,
1061. 	LVL(9, 8, 3, 0, 0), (G_GENO|2),
1062. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
1063. 	  ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1064. 	SIZ(1200, 600, 0, MS_SILENT, MZ_LARGE), 0, 0,
1065. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
1066. 	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_BROWN),

Angels and other divine creatures[]

1067. /*
1068.  * Angels and other lawful minions
1069.  */
1070.     MON("couatl", S_ANGEL,
1071. 	LVL(8, 10, 5, 30, 7), (G_NOHELL|G_SGROUP|G_NOCORPSE|1),
1072. 	A(ATTK(AT_BITE, AD_DRST, 2, 4), ATTK(AT_BITE, AD_PHYS, 1, 3),
1073. 	  ATTK(AT_HUGS, AD_WRAP, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
1074. 	SIZ(900, 400, 0, MS_HISS, MZ_LARGE), MR_POISON, 0,
1075. 	M1_FLY|M1_POIS,
1076. 	M2_MINION|M2_STALK|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
1077. 	CLR_GREEN),
1078.     MON("Aleax", S_ANGEL,
1079. 	LVL(10, 8, 0, 30, 7), (G_NOHELL|G_NOCORPSE|1),
1080. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
1081. 	  ATTK(AT_KICK, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
1082. 	SIZ(WT_HUMAN, 400, 0, MS_IMITATE, MZ_HUMAN),
1083. 	MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
1084. 	M1_HUMANOID|M1_SEE_INVIS,
1085. 	M2_MINION|M2_STALK|M2_NASTY|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION,
1086. 	CLR_YELLOW),
1087.     MON("Angel", S_ANGEL,
1088. 	LVL(14, 10, -4, 55, 12), (G_NOHELL|G_NOCORPSE|1),
1089. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6), 
1090. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_MAGC, AD_MAGM, 2, 6),
1091. 	  NO_ATTK, NO_ATTK),
1092. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_CUSS, MZ_HUMAN),
1093. 	MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
1094. 	M1_FLY|M1_HUMANOID|M1_SEE_INVIS,
1095. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_COLLECT,
1096. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_WHITE),
1097.     MON("ki-rin", S_ANGEL,
1098. 	LVL(16, 18, -5, 90, 15), (G_NOHELL|G_NOCORPSE|1),
1099. 	A(ATTK(AT_KICK, AD_PHYS, 2, 4), ATTK(AT_KICK, AD_PHYS, 2, 4),
1100. 	  ATTK(AT_BUTT, AD_PHYS, 3, 6), ATTK(AT_MAGC, AD_SPEL, 2, 6),
1101. 	  NO_ATTK, NO_ATTK),
1102. 	SIZ(WT_HUMAN, 400, 0, MS_NEIGH, MZ_LARGE), 0, 0,
1103. 	M1_FLY|M1_SEE_INVIS,
1104. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_LORD,
1105. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_GOLD),
1106.     MON("Archon", S_ANGEL,
1107. 	LVL(19, 16, -6, 80, 15), (G_NOHELL|G_NOCORPSE|1),
1108. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
1109. 	  ATTK(AT_GAZE, AD_BLND, 2, 6), ATTK(AT_CLAW, AD_PHYS, 1, 8),
1110. 	  ATTK(AT_MAGC, AD_SPEL, 4, 6), NO_ATTK),
1111. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE),
1112. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
1113. 	M1_FLY|M1_HUMANOID|M1_SEE_INVIS|M1_REGEN,
1114. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_LORD|
1115. 	  M2_COLLECT|M2_MAGIC,
1116. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),

Bats and birds[]

1117. /*
1118.  * Bats
1119.  */
1120.     MON("bat", S_BAT,
1121. 	LVL(0, 22, 8, 0, 0), (G_GENO|G_SGROUP|1),
1122. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1123. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1124. 	SIZ(20, 20, 0, MS_SQEEK, MZ_TINY), 0, 0,
1125. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_WANDER, M3_INFRAVISIBLE,
1126. 	CLR_BROWN),
1127.     MON("giant bat", S_BAT,
1128. 	LVL(2, 22, 7, 0, 0), (G_GENO|2),
1129. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
1130. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1131. 	SIZ(30, 30, 0, MS_SQEEK, MZ_SMALL), 0, 0,
1132. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
1133. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_RED),
1134.     MON("raven", S_BAT,
1135. 	LVL(4, 20, 6, 0, 0), (G_GENO|2),
1136. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_BLND, 1, 6),
1137. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1138. 	SIZ(40, 20, 0, MS_SQAWK, MZ_SMALL), 0, 0,
1139. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
1140. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BLACK),
1141.     MON("vampire bat", S_BAT,
1142. 	LVL(5, 20, 6, 0, 0), (G_GENO|2),
1143. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_DRST, 0, 0),
1144. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1145. 	SIZ(30, 20, 0, MS_SQEEK, MZ_SMALL), MR_SLEEP|MR_POISON, 0,
1146. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_REGEN|M1_OMNIVORE,
1147. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_BLACK),

Centaurs[]

1148. /*
1149.  * Centaurs
1150.  */
1151.     MON("plains centaur", S_CENTAUR,
1152. 	LVL(4, 18, 4, 0, 0), (G_GENO|1),
1153. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_KICK, AD_PHYS, 1, 6),
1154. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1155. 	SIZ(2500, 500, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
1156. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
1157. 	M3_INFRAVISIBLE, CLR_BROWN),
1158.     MON("forest centaur", S_CENTAUR,
1159. 	LVL(5, 18, 3, 10, -1), (G_GENO|1),
1160. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_KICK, AD_PHYS, 1, 6),
1161. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1162. 	SIZ(2550, 600, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
1163. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
1164. 	M3_INFRAVISIBLE, CLR_GREEN),
1165.     MON("mountain centaur", S_CENTAUR,
1166. 	LVL(6, 20, 2, 10, -3), (G_GENO|1),
1167. 	A(ATTK(AT_WEAP, AD_PHYS, 1,10), ATTK(AT_KICK, AD_PHYS, 1, 6),
1168. 	  ATTK(AT_KICK, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1169. 	SIZ(2550, 500, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
1170. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
1171. 	M3_INFRAVISIBLE, CLR_CYAN),

Dragons[]

1172. /*
1173.  * Dragons
1174.  */
1175. 	/* The order of the dragons is VERY IMPORTANT.  Quite a few
1176. 	 * pieces of code depend on gray being first and yellow being last.
1177. 	 * The code also depends on the *order* being the same as that for
1178. 	 * dragon scale mail and dragon scales in objects.c.  Baby dragons
1179. 	 * cannot confer intrinsics, to avoid polyself/egg abuse.
1180. 	 *
1181. 	 * As reptiles, dragons are cold-blooded and thus aren't seen
1182. 	 * with infravision.  Red dragons are the exception.
1183. 	 */
1184.     MON("baby gray dragon", S_DRAGON,
1185. 	LVL(12, 9, 2, 10, 0), G_GENO,
1186. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1187. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1188. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
1189. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1190. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_GRAY),
1191.     MON("baby silver dragon", S_DRAGON,
1192. 	LVL(12, 9, 2, 10, 0), G_GENO,
1193. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1194. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1195. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
1196. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1197. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, DRAGON_SILVER),
1198. #if 0	/* DEFERRED */
1199.     MON("baby shimmering dragon", S_DRAGON,
1200. 	LVL(12, 9, 2, 10, 0), G_GENO,
1201. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1202. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1203. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
1204. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1205. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_CYAN),
1206. #endif
1207.     MON("baby red dragon", S_DRAGON,
1208. 	LVL(12, 9, 2, 10, 0), G_GENO,
1209. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1210. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1211. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_FIRE, 0,
1212. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1213. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, M3_INFRAVISIBLE, CLR_RED),
1214.     MON("baby white dragon", S_DRAGON,
1215. 	LVL(12, 9, 2, 10, 0), G_GENO,
1216. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1217. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1218. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_COLD, 0,
1219. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1220. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_WHITE),
1221.     MON("baby orange dragon", S_DRAGON,
1222. 	LVL(12, 9, 2, 10, 0), G_GENO,
1223. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1224. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1225. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_SLEEP, 0,
1226. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1227. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_ORANGE),
1228.     MON("baby black dragon", S_DRAGON,
1229. 	LVL(12, 9, 2, 10, 0), G_GENO,
1230. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1231. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1232. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_DISINT, 0,
1233. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1234. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_BLACK),
1235.     MON("baby blue dragon", S_DRAGON,
1236. 	LVL(12, 9, 2, 10, 0), G_GENO,
1237. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1238. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1239. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_ELEC, 0,
1240. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
1241. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_BLUE),
1242.     MON("baby green dragon", S_DRAGON,
1243. 	LVL(12, 9, 2, 10, 0), G_GENO,
1244. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1245. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1246. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_POISON, 0,
1247. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_POIS,
1248. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_GREEN),
1249.     MON("baby yellow dragon", S_DRAGON,
1250. 	LVL(12, 9, 2, 10, 0), G_GENO,
1251. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
1252. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1253. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_ACID|MR_STONE, 0,
1254. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_ACID,
1255. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_YELLOW),
1256.     MON("gray dragon", S_DRAGON,
1257. 	LVL(15, 9, -1, 20, 4), (G_GENO|1),
1258. 	A(ATTK(AT_BREA, AD_MAGM, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1259. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1260. 	  NO_ATTK, NO_ATTK),
1261. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), 0, 0,
1262. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1263. 	  M1_CARNIVORE,
1264. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_GRAY),
1265.     MON("silver dragon", S_DRAGON,
1266. 	LVL(15, 9, -1, 20, 4), (G_GENO|1),
1267. 	A(ATTK(AT_BREA, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1268. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1269. 	  NO_ATTK, NO_ATTK),
1270. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_COLD, 0,
1271. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1272. 	  M1_CARNIVORE,
1273. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
1274. 	0, DRAGON_SILVER),
1275. #if 0	/* DEFERRED */
1276.     MON("shimmering dragon", S_DRAGON,
1277. 	LVL(15, 9, -1, 20, 4), (G_GENO|1),
1278. 	A(ATTK(AT_BREA, AD_MAGM, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1279. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1280. 	  NO_ATTK, NO_ATTK),
1281. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), 0, 0,
1282. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1283. 	  M1_CARNIVORE,
1284. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
1285. 	0, CLR_CYAN),
1286. #endif
1287.     MON("red dragon", S_DRAGON,
1288. 	LVL(15, 9, -1, 20, -4), (G_GENO|1),
1289. 	A(ATTK(AT_BREA, AD_FIRE, 6, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1290. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1291. 	  NO_ATTK, NO_ATTK),
1292. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_FIRE, MR_FIRE,
1293. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1294. 	  M1_CARNIVORE,
1295. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
1296. 	M3_INFRAVISIBLE, CLR_RED),
1297.     MON("white dragon", S_DRAGON,
1298. 	LVL(15, 9, -1, 20, -5), (G_GENO|1),
1299. 	A(ATTK(AT_BREA, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1300. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1301. 	  NO_ATTK, NO_ATTK),
1302. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_COLD, MR_COLD,
1303. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1304. 	  M1_CARNIVORE,
1305. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_WHITE),
1306.     MON("orange dragon", S_DRAGON,
1307. 	LVL(15, 9, -1, 20, 5), (G_GENO|1),
1308. 	A(ATTK(AT_BREA, AD_SLEE, 4,25), ATTK(AT_BITE, AD_PHYS, 3, 8),
1309. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1310. 	  NO_ATTK, NO_ATTK),
1311. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_SLEEP, MR_SLEEP,
1312. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1313. 	  M1_CARNIVORE,
1314. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
1315. 	0, CLR_ORANGE),
1316.     MON("black dragon", S_DRAGON,
1317. 	LVL(15, 9, -1, 20, -6), (G_GENO|1),
1318. 	A(ATTK(AT_BREA, AD_DISN, 4,10), ATTK(AT_BITE, AD_PHYS, 3, 8),
1319. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1320. 	  NO_ATTK, NO_ATTK),
1321. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_DISINT, MR_DISINT,
1322. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1323. 	  M1_CARNIVORE,
1324. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_BLACK),
1325.     MON("blue dragon", S_DRAGON,
1326. 	LVL(15, 9, -1, 20, -7), (G_GENO|1),
1327. 	A(ATTK(AT_BREA, AD_ELEC, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1328. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1329. 	  NO_ATTK, NO_ATTK),
1330. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_ELEC, MR_ELEC,
1331. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1332. 	  M1_CARNIVORE,
1333. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_BLUE),
1334.     MON("green dragon", S_DRAGON,
1335. 	LVL(15, 9, -1, 20, 6), (G_GENO|1),
1336. 	A(ATTK(AT_BREA, AD_DRST, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1337. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1338. 	  NO_ATTK, NO_ATTK),
1339. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_POISON, MR_POISON,
1340. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1341. 	  M1_CARNIVORE|M1_POIS,
1342. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_GREEN),
1343.     MON("yellow dragon", S_DRAGON,
1344. 	LVL(15, 9, -1, 20, 7), (G_GENO|1),
1345. 	A(ATTK(AT_BREA, AD_ACID, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
1346. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
1347. 	  NO_ATTK, NO_ATTK),
1348. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC),
1349. 	MR_ACID|MR_STONE, MR_STONE,
1350. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
1351. 	  M1_CARNIVORE|M1_ACID,
1352. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
1353. 	0, CLR_YELLOW),

Elementals[]

1354. /*
1355.  * Elementals
1356.  */
1357.     MON("stalker", S_ELEMENTAL,
1358. 	LVL(8, 12, 3, 0, 0), (G_GENO|3),
1359. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 4),
1360. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1361. 	SIZ(900, 400, 0, MS_SILENT, MZ_LARGE), 0, 0,
1362. 	M1_ANIMAL|M1_FLY|M1_SEE_INVIS,
1363. 	M2_WANDER|M2_STALK|M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_WHITE),
1364.     MON("air elemental", S_ELEMENTAL,
1365. 	LVL(8, 36, 2, 30, 0), (G_NOCORPSE|1),
1366. 	A(ATTK(AT_ENGL, AD_PHYS, 1, 10),
1367. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1368. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_POISON|MR_STONE, 0,
1369. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_UNSOLID|M1_FLY,
1370. 	M2_STRONG|M2_NEUTER, 0, CLR_CYAN),
1371.     MON("fire elemental", S_ELEMENTAL,
1372. 	LVL(8, 12, 2, 30, 0), (G_NOCORPSE|1),
1373. 	A(ATTK(AT_CLAW, AD_FIRE, 3, 6), ATTK(AT_NONE, AD_FIRE, 0, 4),
1374. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1375. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_FIRE|MR_POISON|MR_STONE, 0,
1376. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_UNSOLID|M1_FLY|M1_NOTAKE,
1377. 	M2_STRONG|M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),
1378.     MON("earth elemental", S_ELEMENTAL,
1379. 	LVL(8, 6, 2, 30, 0), (G_NOCORPSE|1),
1380. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 6),
1381. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1382. 	SIZ(2500, 0, 0, MS_SILENT, MZ_HUGE),
1383. 	MR_FIRE|MR_COLD|MR_POISON|MR_STONE, 0,
1384. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_BREATHLESS|
1385. 	  M1_WALLWALK|M1_THICK_HIDE,
1386. 	M2_STRONG|M2_NEUTER, 0, CLR_BROWN),
1387.     MON("water elemental", S_ELEMENTAL,
1388. 	LVL(8, 6, 2, 30, 0), (G_NOCORPSE|1),
1389. 	A(ATTK(AT_CLAW, AD_PHYS, 5, 6),
1390. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1391. 	SIZ(2500, 0, 0, MS_SILENT, MZ_HUGE), MR_POISON|MR_STONE, 0,
1392. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_AMPHIBIOUS|M1_SWIM,
1393. 	M2_STRONG|M2_NEUTER, 0, CLR_BLUE),

Fungi[]

1394. /*
1395.  * Fungi
1396.  */
1397.     MON("lichen", S_FUNGUS,
1398. 	LVL(0, 1, 9, 0, 0), (G_GENO|4),
1399. 	A(ATTK(AT_TUCH, AD_STCK, 0, 0),
1400. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1401. 	SIZ(20, 200, 0, MS_SILENT, MZ_SMALL), 0, 0,
1402. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
1403. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BRIGHT_GREEN),
1404.     MON("brown mold", S_FUNGUS,
1405. 	LVL(1, 0, 9, 0, 0), (G_GENO|1),
1406. 	A(ATTK(AT_NONE, AD_COLD, 0, 6),
1407. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1408. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL),
1409. 	MR_COLD|MR_POISON, MR_COLD|MR_POISON,
1410. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
1411. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
1412.     MON("yellow mold", S_FUNGUS,
1413. 	LVL(1, 0, 9, 0, 0), (G_GENO|2),
1414. 	A(ATTK(AT_NONE, AD_STUN, 0, 4),
1415. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1416. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
1417. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_POIS|M1_NOTAKE,
1418. 	M2_HOSTILE|M2_NEUTER, 0, CLR_YELLOW),
1419.     MON("green mold", S_FUNGUS,
1420. 	LVL(1, 0, 9, 0, 0), (G_GENO|1),
1421. 	A(ATTK(AT_NONE, AD_ACID, 0, 4),
1422. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1423. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL), MR_ACID|MR_STONE, MR_STONE,
1424. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_ACID|M1_NOTAKE,
1425. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
1426.     MON("red mold", S_FUNGUS,
1427. 	LVL(1, 0, 9, 0, 0), (G_GENO|1),
1428. 	A(ATTK(AT_NONE, AD_FIRE, 0, 4),
1429. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1430. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL),
1431. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
1432. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
1433. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_RED),
1434.     MON("shrieker", S_FUNGUS,
1435. 	LVL(3, 1, 7, 0, 0), (G_GENO|1),
1436. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1437. 	SIZ(100, 100, 0, MS_SHRIEK, MZ_SMALL), MR_POISON, MR_POISON,
1438. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
1439. 	M2_HOSTILE|M2_NEUTER, 0, CLR_MAGENTA),
1440.     MON("violet fungus", S_FUNGUS,
1441. 	LVL(3, 1, 7, 0, 0), (G_GENO|2),
1442. 	A(ATTK(AT_TUCH, AD_PHYS, 1, 4), ATTK(AT_TUCH, AD_STCK, 0, 0),
1443. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1444. 	SIZ(100, 100, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
1445. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
1446. 	M2_HOSTILE|M2_NEUTER, 0, CLR_MAGENTA),

Gnomes[]

1447. /*
1448.  * Gnomes
1449.  */
1450.     MON("gnome", S_GNOME,
1451. 	LVL(1, 6, 10, 4, 0), (G_GENO|G_SGROUP|1),
1452. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
1453. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1454. 	SIZ(650, 100, 0, MS_ORC, MZ_SMALL), 0, 0,
1455. 	M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_GNOME|M2_COLLECT,
1456. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
1457.     MON("gnome lord", S_GNOME,
1458. 	LVL(3, 8, 10, 4, 0), (G_GENO|2),
1459. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
1460. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1461. 	SIZ(700, 120, 0, MS_ORC, MZ_SMALL), 0, 0,
1462. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_LORD|M2_MALE|M2_COLLECT,
1463. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
1464.     MON("gnomish wizard", S_GNOME,
1465. 	LVL(3, 10, 4, 10, 0), (G_GENO|1),
1466. 	A(ATTK(AT_MAGC, AD_SPEL, 0, 0),
1467. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1468. 	SIZ(700, 120, 0, MS_ORC, MZ_SMALL), 0, 0,
1469. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_MAGIC,
1470. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_ZAP),
1471.     MON("gnome king", S_GNOME,
1472. 	LVL(5, 10, 10, 20, 0), (G_GENO|1),
1473. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
1474. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1475. 	SIZ(750, 150, 0, MS_ORC, MZ_SMALL), 0, 0,
1476. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_PRINCE|M2_MALE|M2_COLLECT,
1477. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
1478. #ifdef SPLITMON_1
1479. };
1480. #endif
1481. #endif /* !SPLITMON_2 */
1482. 
1483. /* horrible kludge alert:
1484.  * This is a compiler-specific kludge to allow the compilation of monst.o in
1485.  * two pieces, by defining first SPLITMON_1 and then SPLITMON_2. The
1486.  * resulting assembler files (monst1.s and monst2.s) are then run through
1487.  * sed to change local symbols, concatenated together, and assembled to
1488.  * produce monst.o. THIS ONLY WORKS WITH THE ATARI GCC, and should only
1489.  * be done if you don't have enough memory to compile monst.o the "normal"
1490.  * way.  --ERS
1491.  */
1492. 
1493. #ifndef SPLITMON_1
1494. #ifdef SPLITMON_2
1495. struct permonst _mons2[] = {
1496. #endif

Giant humanoids[]

1497. /*
1498.  * giant Humanoids
1499.  */
1500.     MON("giant", S_GIANT,
1501. 	LVL(6, 6, 0, 0, 2), (G_GENO|G_NOGEN|1),
1502. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
1503. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1504. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), 0, 0,
1505. 	M1_HUMANOID|M1_CARNIVORE,
1506. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1507. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
1508.     MON("stone giant", S_GIANT,
1509. 	LVL(6, 6, 0, 0, 2), (G_GENO|G_SGROUP|1),
1510. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
1511. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1512. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), 0, 0,
1513. 	M1_HUMANOID|M1_CARNIVORE,
1514. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1515. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
1516.     MON("hill giant", S_GIANT,
1517. 	LVL(8, 10, 6, 0, -2), (G_GENO|G_SGROUP|1),
1518. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8),
1519. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1520. 	SIZ(2200, 700, 0, MS_BOAST, MZ_HUGE), 0, 0,
1521. 	M1_HUMANOID|M1_CARNIVORE,
1522. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1523. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_CYAN),
1524.     MON("fire giant", S_GIANT,
1525. 	LVL(9, 12, 4, 5, 2), (G_GENO|G_SGROUP|1),
1526. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
1527. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1528. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_FIRE, MR_FIRE,
1529. 	M1_HUMANOID|M1_CARNIVORE,
1530. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1531. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_YELLOW),
1532.     MON("frost giant", S_GIANT,
1533. 	LVL(10, 12, 3, 10, -3), (G_NOHELL|G_GENO|G_SGROUP|1),
1534. 	A(ATTK(AT_WEAP, AD_PHYS, 2,12),
1535. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1536. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_COLD, MR_COLD,
1537. 	M1_HUMANOID|M1_CARNIVORE,
1538. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1539. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_WHITE),
1540.     MON("storm giant", S_GIANT,
1541. 	LVL(16, 12, 3, 10, -3), (G_GENO|G_SGROUP|1),
1542. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 12),
1543. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1544. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_ELEC, MR_ELEC,
1545. 	M1_HUMANOID|M1_CARNIVORE,
1546. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
1547. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
1548.     MON("ettin", S_GIANT,
1549. 	LVL(10, 12, 3, 0, 0), (G_GENO|1),
1550. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 3, 6),
1551. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1552. 	SIZ(1700, 500, 0, MS_GRUNT, MZ_HUGE), 0, 0,
1553. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
1554. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
1555. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
1556.     MON("titan", S_GIANT,
1557. 	LVL(16, 18, -3, 70, 9), (1),
1558. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_MAGC, AD_SPEL, 0, 0),
1559. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1560. 	SIZ(2300, 900, 0, MS_SPELL, MZ_HUGE), 0, 0,
1561. 	M1_FLY|M1_HUMANOID|M1_OMNIVORE,
1562. 	M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_MAGIC,
1563. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_MAGENTA),
1564.     MON("minotaur", S_GIANT,
1565. 	LVL(15, 15, 6, 0, 0), (G_GENO|G_NOGEN),
1566. 	A(ATTK(AT_CLAW, AD_PHYS, 3,10), ATTK(AT_CLAW, AD_PHYS, 3,10),
1567. 	  ATTK(AT_BUTT, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK),
1568. 	SIZ(1500, 700, 0, MS_SILENT, MZ_LARGE), 0, 0,
1569. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
1570. 	M2_HOSTILE|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
1571. 	CLR_BROWN),
1572. /* 'I' is a visual marker for all invisible monsters and must be unused */

Jabberwock[]

1573. /*
1574.  * Jabberwock
1575.  */
1576.     MON("jabberwock", S_JABBERWOCK,
1577. 	LVL(15, 12, -2, 50, 0), (G_GENO|1),
1578. 	A(ATTK(AT_BITE, AD_PHYS, 2,10), ATTK(AT_BITE, AD_PHYS, 2,10),
1579. 	  ATTK(AT_CLAW, AD_PHYS, 2,10), ATTK(AT_CLAW, AD_PHYS, 2,10),
1580. 	  NO_ATTK, NO_ATTK),
1581. 	SIZ(1300, 600, 0, MS_BURBLE, MZ_LARGE), 0, 0,
1582. 	M1_ANIMAL|M1_FLY|M1_CARNIVORE,
1583. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT, M3_INFRAVISIBLE, CLR_ORANGE),
1584. #if 0	/* DEFERRED */
1585.     MON("vorpal jabberwock", S_JABBERWOCK,       
1586. 	LVL(20, 12, -2, 50, 0), (G_GENO|1),
1587. 	A(ATTK(AT_BITE, AD_PHYS, 3, 10), ATTK(AT_BITE, AD_PHYS, 3, 10),
1588. 	  ATTK(AT_CLAW, AD_PHYS, 3, 10), ATTK(AT_CLAW, AD_PHYS, 3, 10),
1589. 	  NO_ATTK, NO_ATTK),
1590. 	SIZ(1300, 600, 0, MS_BURBLE, MZ_LARGE), 0, 0,
1591. 	M1_ANIMAL|M1_FLY|M1_CARNIVORE,
1592. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT, M3_INFRAVISIBLE, HI_LORD),
1593. #endif
1594. #ifdef KOPS

Kops[]

1595. /*
1596.  * Kops
1597.  */
1598.     MON("Keystone Kop", S_KOP,
1599. 	LVL(1, 6, 10, 10, 9), (G_GENO|G_LGROUP|G_NOGEN),
1600. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
1601. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1602. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
1603. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE,
1604. 	CLR_BLUE),
1605.     MON("Kop Sergeant", S_KOP,
1606. 	LVL(2, 8, 10, 10, 10), (G_GENO|G_SGROUP|G_NOGEN),
1607. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
1608. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1609. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
1610. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_MALE|M2_COLLECT,
1611. 	M3_INFRAVISIBLE, CLR_BLUE),
1612.     MON("Kop Lieutenant", S_KOP,
1613. 	LVL(3, 10, 10, 20, 11), (G_GENO|G_NOGEN),
1614. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
1615. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1616. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
1617. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_MALE|M2_COLLECT,
1618. 	M3_INFRAVISIBLE, CLR_CYAN),
1619.     MON("Kop Kaptain", S_KOP,
1620. 	LVL(4, 12, 10, 20, 12), (G_GENO|G_NOGEN),
1621. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
1622. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1623. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
1624. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_MALE|M2_COLLECT,
1625. 	M3_INFRAVISIBLE, HI_LORD),
1626. #endif

Liches[]

1627. /*
1628.  * Liches
1629.  */
1630.     MON("lich", S_LICH,
1631. 	LVL(11, 6, 0, 30, -9), (G_GENO|G_NOCORPSE|1),
1632. 	A(ATTK(AT_TUCH, AD_COLD, 1,10), ATTK(AT_MAGC, AD_SPEL, 0, 0),
1633. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1634. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
1635. 	MR_COLD|MR_SLEEP|MR_POISON, MR_COLD,
1636. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
1637. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_INFRAVISION, CLR_BROWN),
1638.     MON("demilich", S_LICH,
1639. 	LVL(14, 9, -2, 60, -12), (G_GENO|G_NOCORPSE|1),
1640. 	A(ATTK(AT_TUCH, AD_COLD, 3, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
1641. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1642. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
1643. 	MR_COLD|MR_SLEEP|MR_POISON, MR_COLD,
1644. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
1645. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_INFRAVISION, CLR_RED),
1646.     MON("master lich", S_LICH,
1647. 	LVL(17, 9, -4, 90, -15), (G_HELL|G_GENO|G_NOCORPSE|1),
1648. 	A(ATTK(AT_TUCH, AD_COLD, 3, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
1649. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1650. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
1651. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_POISON, MR_FIRE|MR_COLD,
1652. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
1653. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_WANTSBOOK|M3_INFRAVISION, HI_LORD),
1654.     MON("arch-lich", S_LICH,
1655. 	LVL(25, 9, -6, 90, -15), (G_HELL|G_GENO|G_NOCORPSE|1),
1656. 	A(ATTK(AT_TUCH, AD_COLD, 5, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
1657. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1658. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
1659. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_ELEC|MR_POISON, MR_FIRE|MR_COLD,
1660. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
1661. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_WANTSBOOK|M3_INFRAVISION, HI_LORD),

Mummies[]

1662. /*
1663.  * Mummies
1664.  */
1665.     MON("kobold mummy", S_MUMMY,
1666. 	LVL(3, 8, 6, 20, -2), (G_GENO|G_NOCORPSE|1),
1667. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4),
1668. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1669. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
1670. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1671. 	M2_UNDEAD|M2_HOSTILE, M3_INFRAVISION, CLR_BROWN),
1672.     MON("gnome mummy", S_MUMMY,
1673. 	LVL(4, 10, 6, 20, -3), (G_GENO|G_NOCORPSE|1),
1674. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
1675. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1676. 	SIZ(650, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
1677. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1678. 	M2_UNDEAD|M2_HOSTILE|M2_GNOME, M3_INFRAVISION, CLR_RED),
1679.     MON("orc mummy", S_MUMMY,
1680. 	LVL(5, 10, 5, 20, -4), (G_GENO|G_NOCORPSE|1),
1681. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
1682. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1683. 	SIZ(850, 75, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
1684. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1685. 	M2_UNDEAD|M2_HOSTILE|M2_ORC|M2_GREEDY|M2_JEWELS, M3_INFRAVISION,
1686. 	CLR_GRAY),
1687.     MON("dwarf mummy", S_MUMMY,
1688. 	LVL(5, 10, 5, 20, -4), (G_GENO|G_NOCORPSE|1),
1689. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
1690. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1691. 	SIZ(900, 150, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
1692. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1693. 	M2_UNDEAD|M2_HOSTILE|M2_DWARF|M2_GREEDY|M2_JEWELS, M3_INFRAVISION,
1694. 	CLR_RED),
1695.     MON("elf mummy", S_MUMMY,
1696. 	LVL(6, 12, 4, 30, -5), (G_GENO|G_NOCORPSE|1),
1697. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4),
1698. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1699. 	SIZ(WT_ELF, 175, 0, MS_SILENT, MZ_HUMAN),
1700. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
1701. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1702. 	M2_UNDEAD|M2_HOSTILE|M2_ELF, M3_INFRAVISION, CLR_GREEN),
1703.     MON("human mummy", S_MUMMY,
1704. 	LVL(6, 12, 4, 30, -5), (G_GENO|G_NOCORPSE|1),
1705. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
1706. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1707. 	SIZ(WT_HUMAN, 200, 0, MS_SILENT, MZ_HUMAN),
1708. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
1709. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1710. 	M2_UNDEAD|M2_HOSTILE, M3_INFRAVISION, CLR_GRAY),
1711.     MON("ettin mummy", S_MUMMY,
1712. 	LVL(7, 12, 4, 30, -6), (G_GENO|G_NOCORPSE|1),
1713. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_PHYS, 2, 6),
1714. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1715. 	SIZ(1700, 250, 0, MS_SILENT, MZ_HUGE),
1716. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
1717. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1718. 	M2_UNDEAD|M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_BLUE),
1719.     MON("giant mummy", S_MUMMY,
1720. 	LVL(8, 14, 3, 30, -7), (G_GENO|G_NOCORPSE|1),
1721. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
1722. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1723. 	SIZ(2050, 375, 0, MS_SILENT, MZ_HUGE),
1724. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
1725. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
1726. 	M2_UNDEAD|M2_HOSTILE|M2_GIANT|M2_STRONG|M2_JEWELS, M3_INFRAVISION,
1727. 	CLR_CYAN),

Nagas[]

1728. /*
1729.  * Nagas
1730.  */
1731.     MON("red naga hatchling", S_NAGA,
1732. 	LVL(3, 10, 6, 0, 0), G_GENO,
1733. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1734. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1735. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE),
1736. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
1737. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_NOTAKE|M1_OMNIVORE, M2_STRONG,
1738. 	M3_INFRAVISIBLE, CLR_RED),
1739.     MON("black naga hatchling", S_NAGA,
1740. 	LVL(3, 10, 6, 0, 0), G_GENO,
1741. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1742. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1743. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE),
1744. 	MR_POISON|MR_ACID|MR_STONE, MR_POISON|MR_STONE,
1745. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_ACID|M1_NOTAKE|M1_CARNIVORE,
1746. 	M2_STRONG, 0, CLR_BLACK),
1747.     MON("golden naga hatchling", S_NAGA,
1748. 	LVL(3, 10, 6, 0, 0), G_GENO,
1749. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1750. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1751. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE), MR_POISON, MR_POISON,
1752. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_NOTAKE|M1_OMNIVORE,
1753. 	M2_STRONG, 0, HI_GOLD),
1754.     MON("guardian naga hatchling", S_NAGA,
1755. 	LVL(3, 10, 6, 0, 0), G_GENO,
1756. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
1757. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1758. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE), MR_POISON, MR_POISON,
1759. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_NOTAKE|M1_OMNIVORE,
1760. 	M2_STRONG, 0, CLR_GREEN),
1761.     MON("red naga", S_NAGA,
1762. 	LVL(6, 12, 4, 0, -4), (G_GENO|1),
1763. 	A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_BREA, AD_FIRE, 2, 6),
1764. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1765. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE),
1766. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
1767. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_NOTAKE|M1_OMNIVORE,
1768. 	M2_STRONG, M3_INFRAVISIBLE, CLR_RED),
1769.     MON("black naga", S_NAGA,
1770. 	LVL(8, 14, 2, 10, 4), (G_GENO|1),
1771. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_SPIT, AD_ACID, 0, 0),
1772. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1773. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE),
1774. 	MR_POISON|MR_ACID|MR_STONE, MR_POISON|MR_STONE,
1775. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_ACID|M1_NOTAKE|
1776. 	  M1_CARNIVORE,
1777. 	M2_STRONG, 0, CLR_BLACK),
1778.     MON("golden naga", S_NAGA,
1779. 	LVL(10, 14, 2, 70, 5), (G_GENO|1),
1780. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_MAGC, AD_SPEL, 4, 6),
1781. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1782. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE), MR_POISON, MR_POISON,
1783. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_NOTAKE|M1_OMNIVORE,
1784. 	M2_STRONG, 0, HI_GOLD),
1785.     MON("guardian naga", S_NAGA,
1786. 	LVL(12, 16, 0, 50, 7), (G_GENO|1),
1787. 	A(ATTK(AT_BITE, AD_PLYS, 1, 6), ATTK(AT_SPIT, AD_DRST, 1, 6),
1788. 	  ATTK(AT_HUGS, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
1789. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE), MR_POISON, MR_POISON,
1790. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_POIS|M1_NOTAKE|
1791. 	  M1_OMNIVORE,
1792. 	M2_STRONG, 0, CLR_GREEN),

Ogres[]

1793. /*
1794.  * Ogres
1795.  */
1796.     MON("ogre", S_OGRE,
1797. 	LVL(5, 10, 5, 0, -3), (G_SGROUP|G_GENO|1),
1798. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 5),
1799. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1800. 	SIZ(1600, 500, 0, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID|M1_CARNIVORE,
1801. 	M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
1802. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
1803.     MON("ogre lord", S_OGRE,
1804. 	LVL(7, 12, 3, 30, -5), (G_GENO|2),
1805. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
1806. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1807. 	SIZ(1700, 700, 0, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID|M1_CARNIVORE,
1808. 	M2_STRONG|M2_LORD|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
1809. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
1810.     MON("ogre king", S_OGRE,
1811. 	LVL(9, 14, 4, 60, -7), (G_GENO|2),
1812. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 5),
1813. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1814. 	SIZ(1700, 750, 0, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID|M1_CARNIVORE,
1815. 	M2_STRONG|M2_PRINCE|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
1816. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),

Puddings[]

1817. /*
1818.  * Puddings
1819.  */
1820.     MON("gray ooze", S_PUDDING,
1821. 	LVL(3, 1, 8, 0, 0), (G_GENO|2),
1822. 	A(ATTK(AT_BITE, AD_RUST, 2, 8),
1823. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1824. 	SIZ(500, 250, 0, MS_SILENT, MZ_MEDIUM),
1825. 	MR_FIRE|MR_COLD|MR_POISON|MR_ACID|MR_STONE, MR_FIRE|MR_COLD|MR_POISON,
1826. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1827. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID,
1828. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
1829.     MON("brown pudding", S_PUDDING,
1830. 	LVL(5, 3, 8, 0, 0), (G_GENO|1),
1831. 	A(ATTK(AT_BITE, AD_DCAY, 0, 0),
1832. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1833. 	SIZ(500, 250, 0, MS_SILENT, MZ_MEDIUM),
1834. 	MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE, MR_COLD|MR_ELEC|MR_POISON,
1835. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1836. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID,
1837. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
1838.     MON("black pudding", S_PUDDING,
1839. 	LVL(10, 6, 6, 0, 0), (G_GENO|1),
1840. 	A(ATTK(AT_BITE, AD_CORR, 3, 8), ATTK(AT_NONE, AD_CORR, 0, 0),
1841. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1842. 	SIZ(900, 250, 0, MS_SILENT, MZ_LARGE),
1843. 	MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE, MR_COLD|MR_ELEC|MR_POISON,
1844. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1845. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID,
1846. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BLACK),
1847.     MON("green slime", S_PUDDING, 
1848. 	LVL(6, 6, 6, 0, 0), (G_HELL|G_GENO|1),
1849. 	A(ATTK(AT_TUCH, AD_SLIM, 1, 4), ATTK(AT_NONE, AD_SLIM, 0, 0),
1850. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1851. 	SIZ(400, 150, 0, MS_SILENT, MZ_LARGE),
1852. 	MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE, 0,
1853. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
1854. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID|M1_POIS,
1855. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),

Quantum mechanics[]

1856. /*
1857.  * Quantum mechanics
1858.  */
1859.     MON("quantum mechanic", S_QUANTMECH,
1860. 	LVL(7, 12, 3, 10, 0), (G_GENO|3),
1861. 	A(ATTK(AT_CLAW, AD_TLPT, 1, 4),
1862. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1863. 	SIZ(WT_HUMAN, 20, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
1864. 	M1_HUMANOID|M1_OMNIVORE|M1_POIS|M1_TPORT, M2_HOSTILE, M3_INFRAVISIBLE,
1865. 	CLR_CYAN),

Rust monsters and disenchanters[]

1866. /*
1867.  * Rust monster or disenchanter
1868.  */
1869.     MON("rust monster", S_RUSTMONST,
1870. 	LVL(5, 18, 2, 0, 0), (G_GENO|2),
1871. 	A(ATTK(AT_TUCH, AD_RUST, 0, 0), ATTK(AT_TUCH, AD_RUST, 0, 0),
1872. 	  ATTK(AT_NONE, AD_RUST, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
1873. 	SIZ(1000, 250, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
1874. 	M1_SWIM|M1_ANIMAL|M1_NOHANDS|M1_METALLIVORE, M2_HOSTILE,
1875. 	M3_INFRAVISIBLE, CLR_BROWN),
1876.     MON("disenchanter", S_RUSTMONST,
1877. 	LVL(12, 12, -10, 0, -3), (G_HELL|G_GENO|2),
1878. 	A(ATTK(AT_CLAW, AD_ENCH, 4, 4), ATTK(AT_NONE, AD_ENCH, 0, 0),
1879. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1880. 	SIZ(750, 200, 0, MS_GROWL, MZ_LARGE), 0, 0,
1881. 	M1_ANIMAL|M1_CARNIVORE, M2_HOSTILE,
1882. 	M3_INFRAVISIBLE, CLR_BLUE),

Snakes[]

1883. /*
1884.  * Snakes
1885.  */
1886.     MON("garter snake", S_SNAKE,
1887. 	LVL(1, 8, 8, 0, 0), (G_LGROUP|G_GENO|1),
1888. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
1889. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1890. 	SIZ(50, 60, 0, MS_HISS, MZ_TINY), 0, 0,
1891. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_OVIPAROUS|
1892. 	  M1_CARNIVORE|M1_NOTAKE,
1893. 	0, 0, CLR_GREEN),
1894.     MON("snake", S_SNAKE,
1895. 	LVL(4, 15, 3, 0, 0), (G_GENO|2),
1896. 	A(ATTK(AT_BITE, AD_DRST, 1, 6),
1897. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1898. 	SIZ(100, 80, 0, MS_HISS, MZ_SMALL), MR_POISON, MR_POISON,
1899. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
1900. 	  M1_OVIPAROUS|M1_CARNIVORE|M1_NOTAKE,
1901. 	M2_HOSTILE, 0, CLR_BROWN),
1902.     MON("water moccasin", S_SNAKE,
1903. 	LVL(4, 15, 3, 0, 0), (G_GENO|G_NOGEN|G_LGROUP),
1904. 	A(ATTK(AT_BITE, AD_DRST, 1, 6),
1905. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1906. 	SIZ(150, 80, 0, MS_HISS, MZ_SMALL), MR_POISON, MR_POISON,
1907. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
1908. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
1909. 	M2_HOSTILE, 0, CLR_RED),
1910.     MON("pit viper", S_SNAKE,
1911. 	LVL(6, 15, 2, 0, 0), (G_GENO|1),
1912. 	A(ATTK(AT_BITE, AD_DRST, 1, 4), ATTK(AT_BITE, AD_DRST, 1, 4),
1913. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1914. 	SIZ(100, 60, 0, MS_HISS, MZ_MEDIUM),
1915. 	MR_POISON, MR_POISON,
1916. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
1917. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
1918. 	M2_HOSTILE, M3_INFRAVISION, CLR_BLUE),
1919.     MON("python", S_SNAKE,
1920. 	LVL(6, 3, 5, 0, 0), (G_GENO|1),
1921. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4), ATTK(AT_TUCH, AD_PHYS, 0, 0),
1922. 	  ATTK(AT_HUGS, AD_WRAP, 1, 4), ATTK(AT_HUGS, AD_PHYS, 2, 4),
1923. 	  NO_ATTK, NO_ATTK),
1924. 	SIZ(250, 100, 0, MS_HISS, MZ_LARGE), 0, 0,
1925. 	M1_SWIM|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|
1926. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
1927. 	M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_MAGENTA),
1928.     MON("cobra", S_SNAKE,
1929. 	LVL(6, 18, 2, 0, 0), (G_GENO|1),
1930. 	A(ATTK(AT_BITE, AD_DRST, 2, 4), ATTK(AT_SPIT, AD_BLND, 0, 0),
1931. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1932. 	SIZ(250, 100, 0, MS_HISS, MZ_MEDIUM),
1933. 	MR_POISON, MR_POISON,
1934. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
1935. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
1936. 	M2_HOSTILE, 0, CLR_BLUE),

Trolls[]

1937. /*
1938.  * Trolls
1939.  */
1940.     MON("troll", S_TROLL,
1941. 	LVL(7, 12, 4, 0, -3), (G_GENO|2),
1942. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 2), ATTK(AT_CLAW, AD_PHYS, 4, 2),
1943. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1944. 	SIZ(800, 350, 0, MS_GRUNT, MZ_LARGE), 0, 0,
1945. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
1946. 	M2_STRONG|M2_STALK|M2_HOSTILE, M3_INFRAVISIBLE|M3_INFRAVISION,
1947. 	CLR_BROWN),
1948.     MON("ice troll", S_TROLL,
1949. 	LVL(9, 10, 2, 20, -3), (G_NOHELL|G_GENO|1),
1950. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_COLD, 2, 6),
1951. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1952. 	SIZ(1000, 300, 0, MS_GRUNT, MZ_LARGE), MR_COLD, MR_COLD,
1953. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
1954. 	M2_STRONG|M2_STALK|M2_HOSTILE, M3_INFRAVISIBLE|M3_INFRAVISION,
1955. 	CLR_WHITE),
1956.     MON("rock troll", S_TROLL,
1957. 	LVL(9, 12, 0, 0, -3), (G_GENO|1),
1958. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 2, 8),
1959. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1960. 	SIZ(1200, 300, 0, MS_GRUNT, MZ_LARGE), 0, 0,
1961. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
1962. 	M2_STRONG|M2_STALK|M2_HOSTILE|M2_COLLECT,
1963. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_CYAN),
1964.     MON("water troll", S_TROLL,
1965. 	LVL(11, 14, 4, 40, -3), (G_NOGEN|G_GENO),
1966. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
1967. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1968. 	SIZ(1200, 350, 0, MS_GRUNT, MZ_LARGE), 0, 0,
1969. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE|M1_SWIM,
1970. 	M2_STRONG|M2_STALK|M2_HOSTILE, M3_INFRAVISIBLE|M3_INFRAVISION,
1971. 	CLR_BLUE),
1972.     MON("Olog-hai", S_TROLL,
1973. 	LVL(13, 12, -4, 0, -7), (G_GENO|1),
1974. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 2, 8),
1975. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
1976. 	SIZ(1500, 400, 0, MS_GRUNT, MZ_LARGE), 0, 0,
1977. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
1978. 	M2_STRONG|M2_STALK|M2_HOSTILE|M2_COLLECT,
1979. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),

Umber hulk[]

1980. /*
1981.  * Umber hulk
1982.  */
1983.     MON("umber hulk", S_UMBER,
1984. 	LVL(9, 6, 2, 25, 0), (G_GENO|2),
1985. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
1986. 	  ATTK(AT_BITE, AD_PHYS, 2, 5), ATTK(AT_GAZE, AD_CONF, 0, 0),
1987. 	  NO_ATTK, NO_ATTK),
1988. 	SIZ(1200, 500, 0, MS_SILENT, MZ_LARGE), 0, 0,
1989. 	M1_TUNNEL|M1_CARNIVORE, M2_STRONG, M3_INFRAVISIBLE, CLR_BROWN),

Vampires[]

1990. /*
1991.  * Vampires
1992.  */
1993.     MON("vampire", S_VAMPIRE,
1994. 	LVL(10, 12, 1, 25, -8), (G_GENO|G_NOCORPSE|1),
1995. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_DRLI, 1, 6),
1996. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
1997. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON, 0,
1998. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
1999. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE,
2000. 	CLR_RED),
2001.     MON("vampire lord", S_VAMPIRE,
2002. 	LVL(12, 14, 0, 50, -9), (G_GENO|G_NOCORPSE|1),
2003. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_BITE, AD_DRLI, 1, 8),
2004. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2005. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON, 0,
2006. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
2007. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_LORD|M2_MALE,
2008. 	M3_INFRAVISIBLE, CLR_BLUE),
2009. #if 0	/* DEFERRED */
2010.     MON("vampire mage", S_VAMPIRE,
2011. 	LVL(20, 14, -4, 50, -9), (G_GENO|G_NOCORPSE|1),
2012. 	A(ATTK(AT_CLAW, AD_DRLI, 2, 8), ATTK(AT_BITE, AD_DRLI, 1, 8),
2013. 	  ATTK(AT_MAGC, AD_SPEL, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
2014. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON, 0,
2015. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
2016. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_LORD|M2_MALE|
2017. 	M2_MAGIC, M3_INFRAVISIBLE, HI_ZAP),
2018. #endif
2019.     MON("Vlad the Impaler", S_VAMPIRE,
2020. 	LVL(14, 18, -3, 80, -10), (G_NOGEN|G_NOCORPSE|G_UNIQ),
2021. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 10), ATTK(AT_BITE, AD_DRLI, 1, 10),
2022. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2023. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON, 0,
2024. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
2025. 	M2_NOPOLY|M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|
2026. 	  M2_NASTY|M2_PRINCE|M2_MALE,
2027. 	M3_WAITFORU|M3_WANTSCAND|M3_INFRAVISIBLE, HI_LORD),

Wraiths[]

2028. /*
2029.  * Wraiths
2030.  */
2031.     MON("barrow wight", S_WRAITH,
2032. 	LVL(3, 12, 5, 5, -3), (G_GENO|G_NOCORPSE|1),
2033. 	A(ATTK(AT_WEAP, AD_DRLI, 0, 0), ATTK(AT_MAGC, AD_SPEL, 0, 0),
2034. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
2035. 	SIZ(1200, 0, 0, MS_SPELL, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
2036. 	M1_BREATHLESS|M1_HUMANOID,
2037. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_COLLECT, 0, CLR_GRAY),
2038.     MON("wraith", S_WRAITH,
2039. 	LVL(6, 12, 4, 15, -6), (G_GENO|2),
2040. 	A(ATTK(AT_TUCH, AD_DRLI, 1, 6),
2041. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2042. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUMAN),
2043. 	MR_COLD|MR_SLEEP|MR_POISON|MR_STONE, 0,
2044. 	M1_BREATHLESS|M1_FLY|M1_HUMANOID|M1_UNSOLID,
2045. 	M2_UNDEAD|M2_STALK|M2_HOSTILE, 0, CLR_BLACK),
2046.     MON("Nazgul", S_WRAITH,
2047. 	LVL(13, 12, 0, 25, -17), (G_GENO|G_NOCORPSE|1),
2048. 	A(ATTK(AT_WEAP, AD_DRLI, 1, 4), ATTK(AT_BREA, AD_SLEE, 2,25),
2049. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2050. 	SIZ(WT_HUMAN, 0, 0, MS_SPELL, MZ_HUMAN),
2051. 	MR_COLD|MR_SLEEP|MR_POISON, 0, M1_BREATHLESS|M1_HUMANOID,
2052. 	M2_NOPOLY|M2_UNDEAD|M2_STALK|M2_STRONG|M2_HOSTILE|M2_MALE|M2_COLLECT,
2053. 	0, HI_LORD),

Xorn[]

2054. /*
2055.  * Xorn
2056.  */
2057.     MON("xorn", S_XORN,
2058. 	LVL(8, 9,-2, 20, 0), (G_GENO|1),
2059. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
2060. 	  ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_BITE, AD_PHYS, 4, 6),
2061. 	  NO_ATTK, NO_ATTK),
2062. 	SIZ(1200, 700, 0, MS_ROAR, MZ_MEDIUM),
2063. 	MR_FIRE|MR_COLD|MR_STONE, MR_STONE,
2064. 	M1_BREATHLESS|M1_WALLWALK|M1_THICK_HIDE|M1_METALLIVORE,
2065. 	M2_HOSTILE|M2_STRONG, 0, CLR_BROWN),

Apelike beasts[]

2066. /*
2067.  * Apelike beasts
2068.  */
2069.     MON("monkey", S_YETI,
2070. 	LVL(2, 12, 6, 0, 0), (G_GENO|1),
2071. 	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_BITE, AD_PHYS, 1, 3),
2072. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2073. 	SIZ(100, 50, 0, MS_GROWL, MZ_SMALL), 0, 0,
2074. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE, 0, M3_INFRAVISIBLE, CLR_GRAY),
2075.     MON("ape", S_YETI,
2076. 	LVL(4, 12, 6, 0, 0), (G_GENO|G_SGROUP|2),
2077. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
2078. 	  ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
2079. 	SIZ(1100, 500, 0, MS_GROWL, MZ_LARGE), 0, 0,
2080. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE, M2_STRONG, M3_INFRAVISIBLE,
2081. 	CLR_BROWN),
2082.     MON("owlbear", S_YETI,
2083. 	LVL(5, 12, 5, 0, 0), (G_GENO|3),
2084. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
2085. 	  ATTK(AT_HUGS, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK),
2086. 	SIZ(1700, 700, 0, MS_ROAR, MZ_LARGE), 0, 0,
2087. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
2088. 	M2_HOSTILE|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE, CLR_BROWN),
2089.     MON("yeti", S_YETI,
2090. 	LVL(5, 15, 6, 0, 0), (G_GENO|2),
2091. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
2092. 	  ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
2093. 	SIZ(1600, 700, 0, MS_GROWL, MZ_LARGE), MR_COLD, MR_COLD,
2094. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE, M2_HOSTILE|M2_STRONG,
2095. 	M3_INFRAVISIBLE, CLR_WHITE),
2096.     MON("carnivorous ape", S_YETI,
2097. 	LVL(6, 12, 6, 0, 0), (G_GENO|1),
2098. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2099. 	  ATTK(AT_HUGS, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
2100. 	SIZ(1250, 550, 0, MS_GROWL, MZ_LARGE), 0, 0,
2101. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE, M2_HOSTILE|M2_STRONG,
2102. 	M3_INFRAVISIBLE, CLR_BLACK),
2103.     MON("sasquatch", S_YETI,
2104. 	LVL(7, 15, 6, 0, 2), (G_GENO|1),
2105. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
2106. 	  ATTK(AT_KICK, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
2107. 	SIZ(1550, 750, 0, MS_GROWL, MZ_LARGE), 0, 0,
2108. 	M1_ANIMAL|M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE, M2_STRONG,
2109. 	M3_INFRAVISIBLE, CLR_GRAY),

Zombies[]

2110. /*
2111.  * Zombies
2112.  */
2113.     MON("kobold zombie", S_ZOMBIE,
2114. 	LVL(0, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
2115. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4),
2116. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2117. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
2118. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
2119. 	M2_UNDEAD|M2_STALK|M2_HOSTILE, M3_INFRAVISION, CLR_BROWN),
2120.     MON("gnome zombie", S_ZOMBIE,
2121. 	LVL(1, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
2122. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 5),
2123. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2124. 	SIZ(650, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
2125. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
2126. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_GNOME, M3_INFRAVISION, CLR_BROWN),
2127.     MON("orc zombie", S_ZOMBIE,
2128. 	LVL(2, 6, 9, 0, -3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
2129. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
2130. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2131. 	SIZ(850, 75, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
2132. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
2133. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_ORC, M3_INFRAVISION, CLR_GRAY),
2134.     MON("dwarf zombie", S_ZOMBIE,
2135. 	LVL(2, 6, 9, 0, -3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
2136. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
2137. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2138. 	SIZ(900, 150, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
2139. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
2140. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_DWARF, M3_INFRAVISION, CLR_RED),
2141.     MON("elf zombie", S_ZOMBIE,
2142. 	LVL(3, 6, 9, 0, -3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
2143. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 7),
2144. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2145. 	SIZ(WT_ELF, 175, 0, MS_SILENT, MZ_HUMAN),
2146. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
2147. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2148. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_ELF, M3_INFRAVISION, CLR_GREEN),
2149.     MON("human zombie", S_ZOMBIE,
2150. 	LVL(4, 6, 8, 0, -3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
2151. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 8),
2152. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2153. 	SIZ(WT_HUMAN, 200, 0, MS_SILENT, MZ_HUMAN),
2154. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
2155. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2156. 	M2_UNDEAD|M2_STALK|M2_HOSTILE, M3_INFRAVISION, HI_DOMESTIC),
2157.     MON("ettin zombie", S_ZOMBIE,
2158. 	LVL(6, 8, 6, 0, -4), (G_GENO|G_NOCORPSE|1),
2159. 	A(ATTK(AT_CLAW, AD_PHYS, 1,10), ATTK(AT_CLAW, AD_PHYS, 1,10),
2160. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2161. 	SIZ(1700, 250, 0, MS_SILENT, MZ_HUGE),
2162. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
2163. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2164. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_BLUE),
2165.     MON("giant zombie", S_ZOMBIE,
2166. 	LVL(8, 8, 6, 0, -4), (G_GENO|G_NOCORPSE|1),
2167. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
2168. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2169. 	SIZ(2050, 375, 0, MS_SILENT, MZ_HUGE),
2170. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
2171. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2172. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_GIANT|M2_STRONG, M3_INFRAVISION,
2173. 	CLR_CYAN),
2174.     MON("ghoul", S_ZOMBIE,
2175. 	LVL(3, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
2176. 	A(ATTK(AT_CLAW, AD_PLYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 3),
2177. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2178. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL),
2179. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
2180. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
2181. 	M2_UNDEAD|M2_WANDER|M2_HOSTILE, M3_INFRAVISION, CLR_BLACK),
2182.     MON("skeleton", S_ZOMBIE,
2183. 	LVL(12, 8, 4, 0, 0), (G_NOCORPSE|G_NOGEN),
2184. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_TUCH, AD_SLOW, 1, 6),
2185. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2186. 	SIZ(300, 5, 0, MS_BONES, MZ_HUMAN),
2187. 	MR_COLD|MR_SLEEP|MR_POISON|MR_STONE, 0,
2188. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2189. 	M2_UNDEAD|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_COLLECT|M2_NASTY,
2190. 	M3_INFRAVISION, CLR_WHITE),

Golems[]

2191. /*
2192.  * golems
2193.  */
2194.     MON("straw golem", S_GOLEM,
2195. 	LVL(3, 12, 10, 0, 0), (G_NOCORPSE|1),
2196. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 2),
2197. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2198. 	SIZ(400, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2199. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2200. 	M2_HOSTILE|M2_NEUTER, 0, CLR_YELLOW),
2201.     MON("paper golem", S_GOLEM,
2202. 	LVL(3, 12, 10, 0, 0), (G_NOCORPSE|1),
2203. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3),
2204. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2205. 	SIZ(400, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2206. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2207. 	M2_HOSTILE|M2_NEUTER, 0, HI_PAPER),
2208.     MON("rope golem", S_GOLEM,
2209. 	LVL(4, 9, 8, 0, 0), (G_NOCORPSE|1),
2210. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2211. 	  ATTK(AT_HUGS, AD_PHYS, 6, 1), NO_ATTK, NO_ATTK, NO_ATTK),
2212. 	SIZ(450, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2213. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2214. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
2215.     MON("gold golem", S_GOLEM,
2216. 	LVL(5, 9, 6, 0, 0), (G_NOCORPSE|1),
2217. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 3), ATTK(AT_CLAW, AD_PHYS, 2, 3),
2218. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2219. 	SIZ(450, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_ACID, 0,
2220. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2221. 	M2_HOSTILE|M2_NEUTER, 0, HI_GOLD),
2222.     MON("leather golem", S_GOLEM,
2223. 	LVL(6, 6, 6, 0, 0), (G_NOCORPSE|1),
2224. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
2225. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2226. 	SIZ(800, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2227. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2228. 	M2_HOSTILE|M2_NEUTER, 0, HI_LEATHER),
2229.     MON("wood golem", S_GOLEM,
2230. 	LVL(7, 3, 4, 0, 0), (G_NOCORPSE|1),
2231. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4),
2232. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2233. 	SIZ(900, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2234. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2235. 	M2_HOSTILE|M2_NEUTER, 0, HI_WOOD),
2236.     MON("flesh golem", S_GOLEM,
2237. 	LVL(9, 8, 9, 30, 0), (1),
2238. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
2239. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2240. 	SIZ(1400, 600, 0, MS_SILENT, MZ_LARGE),
2241. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON,
2242. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON,
2243. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
2244. 	M2_HOSTILE|M2_STRONG, 0, CLR_RED),
2245.     MON("clay golem", S_GOLEM,
2246. 	LVL(11, 7, 7, 40, 0), (G_NOCORPSE|1),
2247. 	A(ATTK(AT_CLAW, AD_PHYS, 3,10),
2248. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2249. 	SIZ(1550, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
2250. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2251. 	M2_HOSTILE|M2_STRONG, 0, CLR_BROWN),
2252.     MON("stone golem", S_GOLEM,
2253. 	LVL(14, 6, 5, 50, 0), (G_NOCORPSE|1),
2254. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 8),
2255. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2256. 	SIZ(1900, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_STONE, 0,
2257. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2258. 	M2_HOSTILE|M2_STRONG, 0, CLR_GRAY),
2259.     MON("glass golem", S_GOLEM,
2260. 	LVL(16, 6, 1, 50, 0), (G_NOCORPSE|1),
2261. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
2262. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2263. 	SIZ(1800, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_ACID, 0,
2264. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
2265. 	M2_HOSTILE|M2_STRONG, 0, CLR_CYAN),
2266.     MON("iron golem", S_GOLEM,
2267. 	LVL(18, 6, 3, 60, 0), (G_NOCORPSE|1),
2268. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_BREA, AD_DRST, 4, 6),
2269. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2270. 	SIZ(2000, 0, 0, MS_SILENT, MZ_LARGE),
2271. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
2272. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE|M1_POIS,
2273. 	M2_HOSTILE|M2_STRONG|M2_COLLECT, 0, HI_METAL),

Humans, elves and were-critters[]

2274. /*
2275.  * humans, including elves and were-critters
2276.  */
2277.     MON("human", S_HUMAN,
2278. 	LVL(0, 12, 10, 0, 0), G_NOGEN,		/* for corpses */
2279. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2280. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2281. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2282. 	M1_HUMANOID|M1_OMNIVORE,
2283. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT,
2284. 	M3_INFRAVISIBLE, HI_DOMESTIC),
2285.     MON("wererat", S_HUMAN,
2286. 	LVL(2, 12, 10, 10, -7), (1),
2287. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2288. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2289. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
2290. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
2291. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT, M3_INFRAVISIBLE,
2292. 	CLR_BROWN),
2293.     MON("werejackal", S_HUMAN,
2294. 	LVL(2, 12, 10, 10, -7), (1),
2295. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2296. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2297. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
2298. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
2299. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT, M3_INFRAVISIBLE,
2300. 	CLR_RED),
2301.     MON("werewolf", S_HUMAN,
2302. 	LVL(5, 12, 10, 20, -7), (1),
2303. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2304. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2305. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
2306. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
2307. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT,
2308. 	M3_INFRAVISIBLE, CLR_ORANGE),
2309.     MON("elf", S_HUMAN,
2310. 	LVL(10, 12, 10, 2, -3), G_NOGEN,		/* for corpses */
2311. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
2312. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2313. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2314. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2315. 	M2_NOPOLY|M2_ELF|M2_STRONG|M2_COLLECT, M3_INFRAVISION|M3_INFRAVISIBLE,
2316. 	HI_DOMESTIC),
2317.     MON("Woodland-elf", S_HUMAN,
2318. 	LVL(4, 12, 10, 10, -5), (G_GENO|G_SGROUP|2),
2319. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2320. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2321. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2322. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2323. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GREEN),
2324.     MON("Green-elf", S_HUMAN,
2325. 	LVL(5, 12, 10, 10, -6), (G_GENO|G_SGROUP|2),
2326. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2327. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2328. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2329. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2330. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BRIGHT_GREEN),
2331.     MON("Grey-elf", S_HUMAN,
2332. 	LVL(6, 12, 10, 10, -7), (G_GENO|G_SGROUP|2),
2333. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2334. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2335. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2336. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2337. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
2338.     MON("elf-lord", S_HUMAN,
2339. 	LVL(8, 12, 10, 20, -9), (G_GENO|G_SGROUP|2),
2340. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
2341. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2342. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2343. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2344. 	M2_ELF|M2_STRONG|M2_LORD|M2_MALE|M2_COLLECT,
2345. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BRIGHT_BLUE),
2346.     MON("Elvenking", S_HUMAN,
2347. 	LVL(9, 12, 10, 25, -10), (G_GENO|1),
2348. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
2349. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2350. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
2351. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
2352. 	M2_ELF|M2_STRONG|M2_PRINCE|M2_MALE|M2_COLLECT,
2353. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2354.     MON("doppelganger", S_HUMAN,
2355. 	LVL(9, 12, 5, 20, 0), (G_GENO|1),
2356. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 12),
2357. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2358. 	SIZ(WT_HUMAN, 400, 0, MS_IMITATE, MZ_HUMAN), MR_SLEEP, 0,
2359. 	M1_HUMANOID|M1_OMNIVORE,
2360. 	M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_COLLECT,
2361. 	M3_INFRAVISIBLE, HI_DOMESTIC),
2362.     MON("nurse", S_HUMAN,
2363. 	LVL(11, 6, 0, 0, 0), (G_GENO|3),
2364. 	A(ATTK(AT_CLAW, AD_HEAL, 2, 6),
2365. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2366. 	SIZ(WT_HUMAN, 400, 0, MS_NURSE, MZ_HUMAN), MR_POISON, MR_POISON,
2367. 	M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_HUMAN|M2_HOSTILE,
2368. 	M3_INFRAVISIBLE, HI_DOMESTIC),
2369.     MON("shopkeeper", S_HUMAN,
2370. 	LVL(12, 18, 0, 50, 0), G_NOGEN,
2371. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4),
2372. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2373. 	SIZ(WT_HUMAN, 400, sizeof(struct eshk), MS_SELL, MZ_HUMAN), 0, 0,
2374. 	M1_HUMANOID|M1_OMNIVORE,
2375. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
2376. 	M3_INFRAVISIBLE, HI_DOMESTIC),
2377.     MON("guard", S_HUMAN,
2378. 	LVL(12, 12, 10, 40, 10), G_NOGEN,
2379. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10),
2380. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2381. 	SIZ(WT_HUMAN, 400, sizeof(struct egd), MS_GUARD, MZ_HUMAN), 0, 0,
2382. 	M1_HUMANOID|M1_OMNIVORE,
2383. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
2384. 	M3_INFRAVISIBLE, CLR_BLUE),
2385.     MON("prisoner", S_HUMAN,
2386. 	LVL(12, 12, 10, 0, 0), G_NOGEN,          /* for special levels */
2387. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2388. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2389. 	SIZ(WT_HUMAN, 400, 0, MS_DJINNI, MZ_HUMAN), 0, 0,
2390. 	M1_HUMANOID|M1_OMNIVORE,
2391. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
2392. 	M3_INFRAVISIBLE|M3_CLOSE, HI_DOMESTIC),
2393.     MON("Oracle", S_HUMAN,
2394. 	LVL(12, 0, 0, 50, 0), (G_NOGEN|G_UNIQ),
2395. 	A(ATTK(AT_NONE, AD_MAGM, 0, 4),
2396. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2397. 	SIZ(WT_HUMAN, 400, 0, MS_ORACLE, MZ_HUMAN), 0, 0,
2398. 	M1_HUMANOID|M1_OMNIVORE,
2399. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_FEMALE, M3_INFRAVISIBLE, HI_ZAP),
2400.     MON("aligned priest", S_HUMAN,
2401. 	LVL(12, 12, 10, 50, 0), G_NOGEN,
2402. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_KICK, AD_PHYS, 1, 4),
2403. 	  ATTK(AT_MAGC, AD_CLRC, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
2404. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN),
2405. 	MR_ELEC, 0, M1_HUMANOID|M1_OMNIVORE,
2406. 	M2_NOPOLY|M2_HUMAN|M2_LORD|M2_PEACEFUL|M2_COLLECT, M3_INFRAVISIBLE,
2407. 	CLR_WHITE),
2408.     MON("high priest", S_HUMAN,
2409. 	LVL(25, 15, 7, 70, 0), (G_NOGEN|G_UNIQ),
2410. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_KICK, AD_PHYS, 2, 8),
2411. 	  ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8),
2412. 	  NO_ATTK, NO_ATTK),
2413. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN),
2414. 	MR_FIRE|MR_ELEC|MR_SLEEP|MR_POISON, 0,
2415. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
2416. 	M2_NOPOLY|M2_HUMAN|M2_MINION|M2_PRINCE|M2_NASTY|M2_COLLECT|M2_MAGIC,
2417. 	M3_INFRAVISIBLE, CLR_WHITE),
2418.     MON("soldier", S_HUMAN,
2419. 	LVL(6, 10, 10, 0, -2), (G_SGROUP|G_GENO|1),
2420. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
2421. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2422. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2423. 	M1_HUMANOID|M1_OMNIVORE,
2424. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
2425. 	M3_INFRAVISIBLE, CLR_GRAY),
2426.     MON("sergeant", S_HUMAN,
2427. 	LVL(8, 10, 10, 5, -3), (G_SGROUP|G_GENO|1),
2428. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
2429. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2430. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2431. 	M1_HUMANOID|M1_OMNIVORE,
2432. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
2433. 	M3_INFRAVISIBLE, CLR_RED),
2434.     MON("lieutenant", S_HUMAN,
2435. 	LVL(10, 10, 10, 15, -4), (G_GENO|1),
2436. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 3, 4),
2437. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2438. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2439. 	M1_HUMANOID|M1_OMNIVORE,
2440. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
2441. 	M3_INFRAVISIBLE, CLR_GREEN),
2442.     MON("captain", S_HUMAN,
2443. 	LVL(12, 10, 10, 15, -5), (G_GENO|1),
2444. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4),
2445. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2446. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2447. 	M1_HUMANOID|M1_OMNIVORE,
2448. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
2449. 	M3_INFRAVISIBLE, CLR_BLUE),
2450. 	/* Keep these separate - some of the mkroom code assumes that
2451. 	 * all the soldiers are contiguous.
2452. 	 */
2453.     MON("watchman", S_HUMAN,
2454. 	LVL(6, 10, 10, 0, -2), (G_SGROUP|G_NOGEN|G_GENO|1),
2455. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
2456. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2457. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2458. 	M1_HUMANOID|M1_OMNIVORE,
2459. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
2460. 	M3_INFRAVISIBLE, CLR_GRAY),
2461.     MON("watch captain", S_HUMAN,
2462. 	LVL(10, 10, 10, 15, -4), (G_NOGEN|G_GENO|1),
2463. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 3, 4),
2464. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2465. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
2466. 	M1_HUMANOID|M1_OMNIVORE,
2467. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
2468. 	M3_INFRAVISIBLE, CLR_GREEN),

Unique humans not tied to quests[]

2469. 	/* Unique humans not tied to quests.
2470. 	 */
2471.     MON("Medusa", S_HUMAN,
2472. 	LVL(20, 12, 2, 50, -15), (G_NOGEN|G_UNIQ),
2473. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 1, 8),
2474. 	  ATTK(AT_GAZE, AD_STON, 0, 0), ATTK(AT_BITE, AD_DRST, 1, 6),
2475. 	  NO_ATTK, NO_ATTK),
2476. 	SIZ(WT_HUMAN, 400, 0, MS_HISS, MZ_LARGE),
2477. 	MR_POISON|MR_STONE, MR_POISON|MR_STONE,
2478. 	M1_FLY|M1_SWIM|M1_AMPHIBIOUS|M1_HUMANOID|M1_POIS|M1_OMNIVORE,
2479. 	M2_NOPOLY|M2_HOSTILE|M2_STRONG|M2_PNAME|M2_FEMALE,
2480. 	M3_WAITFORU|M3_INFRAVISIBLE, CLR_BRIGHT_GREEN),
2481.     MON("Wizard of Yendor", S_HUMAN,
2482. 	LVL(30, 12, -8, 100, A_NONE), (G_NOGEN|G_UNIQ),
2483. 	A(ATTK(AT_CLAW, AD_SAMU, 2,12), ATTK(AT_MAGC, AD_SPEL, 0, 0),
2484. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2485. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_HUMAN),
2486. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
2487. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT|
2488. 	  M1_TPORT_CNTRL|M1_OMNIVORE,
2489. 	M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_NASTY|
2490. 	  M2_PRINCE|M2_MALE|M2_MAGIC,
2491. 	M3_COVETOUS|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
2492.     MON("Croesus", S_HUMAN,
2493. 	LVL(20, 15, 0, 40, 15), (G_UNIQ|G_NOGEN),
2494. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10),
2495. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2496. 	SIZ(WT_HUMAN, 400, 0, MS_GUARD, MZ_HUMAN), 0, 0,
2497. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
2498. 	M2_NOPOLY|M2_HUMAN|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_PNAME|
2499. 	  M2_PRINCE|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_MAGIC,
2500. 	M3_INFRAVISIBLE, HI_LORD),
2501. #ifdef CHARON
2502.     MON("Charon", S_HUMAN,
2503. 	LVL(76, 18, -5, 120, 0), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2504. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_TUCH, AD_PLYS, 1, 8),
2505. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2506. 	SIZ(WT_HUMAN, 400, 0, MS_FERRY, MZ_HUMAN),
2507. 	MR_FIRE|MR_COLD|MR_POISON|MR_STONE, 0,
2508. 	M1_BREATHLESS|M1_SEE_INVIS|M1_HUMANOID,
2509. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_PNAME|M2_MALE|M2_GREEDY|M2_COLLECT,
2510. 	M3_INFRAVISIBLE, CLR_WHITE),
2511. #endif

Ghosts[]

2512. /*
2513.  * ghosts
2514.  */
2515.     MON("ghost", S_GHOST,
2516. 	LVL(10, 3, -5, 50, -5), (G_NOCORPSE|G_NOGEN),
2517. 	A(ATTK(AT_TUCH, AD_PHYS, 1, 1),
2518. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2519. 	SIZ(WT_HUMAN, 0, 0, MS_SILENT, MZ_HUMAN),
2520. 	MR_COLD|MR_DISINT|MR_SLEEP|MR_POISON|MR_STONE, 0,
2521. 	M1_FLY|M1_BREATHLESS|M1_WALLWALK|M1_HUMANOID|M1_UNSOLID,
2522. 	M2_NOPOLY|M2_UNDEAD|M2_STALK|M2_HOSTILE, M3_INFRAVISION, CLR_GRAY),
2523.     MON("shade", S_GHOST,
2524. 	LVL(12, 10, 10, 0, 0), (G_NOCORPSE|G_NOGEN),
2525. 	A(ATTK(AT_TUCH, AD_PLYS, 2, 6), ATTK(AT_TUCH, AD_SLOW, 1, 6),
2526. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2527. 	SIZ(WT_HUMAN, 0, 0, MS_WAIL, MZ_HUMAN),
2528. 	MR_COLD|MR_DISINT|MR_SLEEP|MR_POISON|MR_STONE, 0,
2529. 	M1_FLY|M1_BREATHLESS|M1_WALLWALK|M1_HUMANOID|M1_UNSOLID|M1_SEE_INVIS,
2530. 	M2_NOPOLY|M2_UNDEAD|M2_WANDER|M2_STALK|M2_HOSTILE|M2_NASTY,
2531. 	M3_INFRAVISION, CLR_BLACK),

Major demons[]

2532. /*
2533.  * (major) demons
2534.  */
2535.     MON("water demon", S_DEMON,
2536. 	LVL(8, 12,-4, 30, -7), (G_NOCORPSE|G_NOGEN),
2537. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
2538. 	  ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK),
2539. 	SIZ(WT_HUMAN, 400, 0, MS_DJINNI, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2540. 	M1_HUMANOID|M1_POIS|M1_SWIM,
2541. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
2542. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
2543. 	/* standard demons & devils
2544. 	 */
2545.     MON("horned devil", S_DEMON,
2546. 	LVL(6, 9, -5, 50, 11), (G_HELL|G_NOCORPSE|2),
2547. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2548. 	  ATTK(AT_BITE, AD_PHYS, 2, 3), ATTK(AT_STNG, AD_PHYS, 1, 3),
2549. 	  NO_ATTK, NO_ATTK),
2550. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2551. 	M1_POIS|M1_THICK_HIDE,
2552. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
2553. 	CLR_BROWN),
2554. #ifdef SEDUCE
2555. # define SEDUCTION_ATTACKS \
2556. 	A(ATTK(AT_BITE, AD_SSEX, 0, 0), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
2557. 	  ATTK(AT_CLAW, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK)
2558. #else
2559. # define SEDUCTION_ATTACKS \
2560. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
2561. 	  ATTK(AT_BITE, AD_DRLI, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK)
2562. #endif
2563.     MON("succubus", S_DEMON,
2564. 	LVL(6, 12, 0, 70, -9), (G_NOCORPSE|1),
2565. 	SEDUCTION_ATTACKS,
2566. 	SIZ(WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2567. 	M1_HUMANOID|M1_FLY|M1_POIS,
2568. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE,
2569. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
2570.     MON("incubus", S_DEMON,
2571. 	LVL(6, 12, 0, 70, -9), (G_NOCORPSE|1),
2572. 	SEDUCTION_ATTACKS,
2573. 	SIZ(WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2574. 	M1_HUMANOID|M1_FLY|M1_POIS,
2575. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_MALE,
2576. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
2577. #undef SEDUCTION_ATTACKS
2578.     /* Used by AD&D for a type of demon, originally one of the Furies */
2579.     /* and spelled this way */
2580.     MON("erinys", S_DEMON,
2581. 	LVL(7, 12, 2, 30, 10), (G_HELL|G_NOCORPSE|G_SGROUP|2),
2582. 	A(ATTK(AT_WEAP, AD_DRST, 2, 4),
2583. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2584. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2585. 	M1_HUMANOID|M1_POIS,
2586. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_FEMALE|
2587. 	  M2_COLLECT,
2588. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2589.     MON("barbed devil", S_DEMON,
2590. 	LVL(8, 12, 0, 35, 8), (G_HELL|G_NOCORPSE|G_SGROUP|2),
2591. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
2592. 	  ATTK(AT_STNG, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
2593. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2594. 	M1_POIS|M1_THICK_HIDE, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
2595. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2596.     MON("marilith", S_DEMON,
2597. 	LVL(7, 12, -6, 80, -12), (G_HELL|G_NOCORPSE|1),
2598. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
2599. 	  ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
2600. 	  ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4)),
2601. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2602. 	M1_HUMANOID|M1_SLITHY|M1_SEE_INVIS|M1_POIS,
2603. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE|M2_COLLECT,
2604. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2605.     MON("vrock", S_DEMON,
2606. 	LVL(8, 12, 0, 50, -9), (G_HELL|G_NOCORPSE|G_SGROUP|2),
2607. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2608. 	  ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_CLAW, AD_PHYS, 1, 8),
2609. 	  ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK),
2610. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2611. 	M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
2612. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2613.     MON("hezrou", S_DEMON,
2614. 	LVL(9, 6, -2, 55, -10), (G_HELL|G_NOCORPSE|G_SGROUP|2),
2615. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
2616. 	  ATTK(AT_BITE, AD_PHYS, 4, 4), NO_ATTK, NO_ATTK, NO_ATTK),
2617. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2618. 	M1_HUMANOID|M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
2619. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2620.     MON("bone devil", S_DEMON,
2621. 	LVL(9, 15, -1, 40, -9), (G_HELL|G_NOCORPSE|G_SGROUP|2),
2622. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_STNG, AD_DRST, 2, 4),
2623. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2624. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2625. 	M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
2626. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
2627.     MON("ice devil", S_DEMON,
2628. 	LVL(11, 6, -4, 55, -12), (G_HELL|G_NOCORPSE|2),
2629. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2630. 	  ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_STNG, AD_COLD, 3, 4),
2631. 	  NO_ATTK, NO_ATTK),
2632. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE),
2633. 	MR_FIRE|MR_COLD|MR_POISON, 0, M1_SEE_INVIS|M1_POIS,
2634. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
2635. 	CLR_WHITE),
2636.     MON("nalfeshnee", S_DEMON,
2637. 	LVL(11, 9, -1, 65, -11), (G_HELL|G_NOCORPSE|1),
2638. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
2639. 	  ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
2640. 	  NO_ATTK, NO_ATTK),
2641. 	SIZ(WT_HUMAN, 400, 0, MS_SPELL, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2642. 	M1_HUMANOID|M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
2643. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2644.     MON("pit fiend", S_DEMON,
2645. 	LVL(13, 6, -3, 65, -13), (G_HELL|G_NOCORPSE|2),
2646. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 2), ATTK(AT_WEAP, AD_PHYS, 4, 2),
2647. 	  ATTK(AT_HUGS, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
2648. 	SIZ(WT_HUMAN, 400, 0, MS_GROWL, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2649. 	M1_SEE_INVIS|M1_POIS,
2650. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
2651. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
2652.     MON("balrog", S_DEMON,
2653. 	LVL(16, 5, -2, 75, -14), (G_HELL|G_NOCORPSE|1),
2654. 	A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
2655. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2656. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2657. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
2658. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
2659. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),

Named demon lords, princes and Arch-Devils[]

2660. 	/* Named demon lords & princes plus Arch-Devils.
2661. 	 * (their order matters; see minion.c)
2662. 	 */
2663.     MON("Juiblex", S_DEMON,
2664. 	LVL(50, 3, -7, 65, -15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2665. 	A(ATTK(AT_ENGL, AD_DISE, 4,10), ATTK(AT_SPIT, AD_ACID, 3, 6),
2666. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2667. 	SIZ(1500, 0, 0, MS_GURGLE, MZ_LARGE),
2668. 	MR_FIRE|MR_POISON|MR_ACID|MR_STONE, 0,
2669. 	M1_AMPHIBIOUS|M1_AMORPHOUS|M1_NOHEAD|M1_FLY|M1_SEE_INVIS|M1_ACID|
2670. 	  M1_POIS,
2671. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_LORD|
2672. 	  M2_MALE,
2673. 	M3_WAITFORU|M3_WANTSAMUL|M3_INFRAVISION, CLR_BRIGHT_GREEN),
2674.     MON("Yeenoghu", S_DEMON,
2675. 	LVL(56, 18, -5, 80, -15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2676. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_WEAP, AD_CONF, 2, 8),
2677. 	  ATTK(AT_CLAW, AD_PLYS, 1, 6), ATTK(AT_MAGC, AD_MAGM, 2, 6),
2678. 	  NO_ATTK, NO_ATTK),
2679. 	SIZ(900, 500, 0, MS_ORC, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2680. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
2681. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_LORD|
2682. 	  M2_MALE|M2_COLLECT,
2683. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2684.     MON("Orcus", S_DEMON,
2685. 	LVL(66, 9, -6, 85, -20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2686. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 4),
2687. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_MAGC, AD_SPEL, 8, 6),
2688. 	  ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK),
2689. 	SIZ(1500, 500, 0, MS_ORC, MZ_HUGE), MR_FIRE|MR_POISON, 0,
2690. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
2691. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_PRINCE|
2692. 	  M2_MALE|M2_COLLECT,
2693. 	M3_WAITFORU|M3_WANTSBOOK|M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION,
2694. 	HI_LORD),
2695.     MON("Geryon", S_DEMON,
2696. 	LVL(72, 3, -3, 75, 15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2697. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 6),
2698. 	  ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
2699. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUGE), MR_FIRE|MR_POISON, 0,
2700. 	M1_FLY|M1_SEE_INVIS|M1_POIS|M1_SLITHY,
2701. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
2702. 	  M2_PRINCE|M2_MALE,
2703. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2704.     MON("Dispater", S_DEMON,
2705. 	LVL(78, 15, -2, 80, 15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2706. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 6), ATTK(AT_MAGC, AD_SPEL, 6, 6),
2707. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2708. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
2709. 	M1_FLY|M1_SEE_INVIS|M1_POIS|M1_HUMANOID,
2710. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
2711. 	  M2_PRINCE|M2_MALE|M2_COLLECT,
2712. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2713.     MON("Baalzebub", S_DEMON,
2714. 	LVL(89, 9, -5, 85, 20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2715. 	A(ATTK(AT_BITE, AD_DRST, 2, 6), ATTK(AT_GAZE, AD_STUN, 2, 6),
2716. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2717. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_LARGE), MR_FIRE|MR_POISON, 0,
2718. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
2719. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
2720. 	  M2_PRINCE|M2_MALE,
2721. 	M3_WANTSAMUL|M3_WAITFORU|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2722.     MON("Asmodeus", S_DEMON,
2723. 	LVL(105, 12, -7, 90, 20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2724. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 4), ATTK(AT_MAGC, AD_COLD, 6, 6),
2725. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2726. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUGE), MR_FIRE|MR_COLD|MR_POISON, 0,
2727. 	M1_FLY|M1_SEE_INVIS|M1_HUMANOID|M1_POIS,
2728. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|
2729. 	  M2_NASTY|M2_PRINCE|M2_MALE,
2730. 	M3_WANTSAMUL|M3_WAITFORU|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2731.     MON("Demogorgon", S_DEMON,
2732. 	LVL(106, 15, -8, 95, -20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
2733. 	A(ATTK(AT_MAGC, AD_SPEL, 8, 6), ATTK(AT_STNG, AD_DRLI, 1, 4),
2734. 	  ATTK(AT_CLAW, AD_DISE, 1, 6), ATTK(AT_CLAW, AD_DISE, 1, 6),
2735. 	  NO_ATTK, NO_ATTK),
2736. 	SIZ(1500, 500, 0, MS_GROWL, MZ_HUGE), MR_FIRE|MR_POISON, 0,
2737. 	M1_FLY|M1_SEE_INVIS|M1_NOHANDS|M1_POIS,
2738. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
2739. 	  M2_PRINCE|M2_MALE,
2740. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),

Riders[]

2741. 	/* Riders -- the Four Horsemen of the Apocalypse ("War" == player)
2742. 	 */
2743.     MON("Death", S_DEMON,
2744. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
2745. 	A(ATTK(AT_TUCH, AD_DETH, 8, 8), ATTK(AT_TUCH, AD_DETH, 8, 8),
2746. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2747. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
2748. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
2749. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
2750. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
2751. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2752.     MON("Pestilence", S_DEMON,
2753. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
2754. 	A(ATTK(AT_TUCH, AD_PEST, 8, 8), ATTK(AT_TUCH, AD_PEST, 8, 8),
2755. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2756. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
2757. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
2758. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
2759. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
2760. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
2761.     MON("Famine", S_DEMON,
2762. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
2763. 	A(ATTK(AT_TUCH, AD_FAMN, 8, 8), ATTK(AT_TUCH, AD_FAMN, 8, 8),
2764. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2765. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
2766. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
2767. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
2768. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
2769. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),

Other demons[]

2770. 	/* other demons
2771. 	 */
2772. #ifdef MAIL
2773.     MON("mail daemon", S_DEMON,
2774. 	LVL(56, 24, 10, 127, 0), (G_NOGEN|G_NOCORPSE),
2775. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2776. 	SIZ(600, 300, 0, MS_SILENT, MZ_HUMAN),
2777. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
2778. 	M1_FLY|M1_SWIM|M1_BREATHLESS|M1_SEE_INVIS|M1_HUMANOID|M1_POIS,
2779. 	M2_NOPOLY|M2_STALK|M2_PEACEFUL, M3_INFRAVISIBLE|M3_INFRAVISION,
2780. 	CLR_BRIGHT_BLUE),
2781. #endif
2782.     MON("djinni", S_DEMON,
2783. 	LVL(7, 12, 4, 30, 0), (G_NOGEN|G_NOCORPSE),
2784. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8),
2785. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2786. 	SIZ(1500, 400, 0, MS_DJINNI, MZ_HUMAN), MR_POISON|MR_STONE, 0,
2787. 	M1_HUMANOID|M1_FLY|M1_POIS,
2788. 	M2_NOPOLY|M2_STALK|M2_COLLECT, M3_INFRAVISIBLE, CLR_YELLOW),
2789.     MON("sandestin", S_DEMON,
2790. 	LVL(13, 12, 4, 60, -5), (G_HELL|G_NOCORPSE|1),
2791. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
2792. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2793. 	SIZ(1500, 400, 0, MS_CUSS, MZ_HUMAN), MR_STONE, 0,
2794. 	M1_HUMANOID, M2_NOPOLY|M2_STALK|M2_STRONG|M2_COLLECT,
2795. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),

Sea monsters[]

2796. /*
2797.  * sea monsters
2798.  */
2799.     MON("jellyfish", S_EEL,
2800. 	LVL(3, 3, 6, 0, 0), (G_GENO|G_NOGEN),
2801. 	A(ATTK(AT_STNG, AD_DRST, 3, 3), NO_ATTK,
2802. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2803. 	SIZ(80, 20, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
2804. 	M1_SWIM|M1_AMPHIBIOUS|M1_SLITHY|M1_NOLIMBS|M1_NOTAKE|M1_POIS,
2805. 	M2_HOSTILE, 0, CLR_BLUE),
2806.     MON("piranha", S_EEL,
2807. 	LVL(5, 12, 4, 0, 0), (G_GENO|G_NOGEN|G_SGROUP),
2808. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK,
2809. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2810. 	SIZ(60, 30, 0, MS_SILENT, MZ_SMALL), 0, 0,
2811. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
2812. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
2813. 	M2_HOSTILE, 0, CLR_RED),
2814.     MON("shark", S_EEL,
2815. 	LVL(7, 12, 2, 0, 0), (G_GENO|G_NOGEN),
2816. 	A(ATTK(AT_BITE, AD_PHYS, 5, 6), NO_ATTK,
2817. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2818. 	SIZ(500, 350, 0, MS_SILENT, MZ_LARGE), 0, 0,
2819. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
2820. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_THICK_HIDE|M1_NOTAKE,
2821. 	M2_HOSTILE, 0, CLR_GRAY),
2822.     MON("giant eel", S_EEL,
2823. 	LVL(5, 9, -1, 0, 0), (G_GENO|G_NOGEN),
2824. 	A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_TUCH, AD_WRAP, 0, 0),
2825. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2826. 	SIZ(200, 250, 0, MS_SILENT, MZ_HUGE), 0, 0,
2827. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
2828. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
2829. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_CYAN),
2830.     MON("electric eel", S_EEL,
2831. 	LVL(7, 10, -3, 0, 0), (G_GENO|G_NOGEN),
2832. 	A(ATTK(AT_BITE, AD_ELEC, 4, 6), ATTK(AT_TUCH, AD_WRAP, 0, 0),
2833. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2834. 	SIZ(200, 250, 0, MS_SILENT, MZ_HUGE), MR_ELEC, MR_ELEC,
2835. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
2836. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
2837. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_BRIGHT_BLUE),
2838.     MON("kraken", S_EEL,
2839. 	LVL(20, 3, 6, 0, -3), (G_GENO|G_NOGEN),
2840. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
2841. 	  ATTK(AT_HUGS, AD_WRAP, 2, 6), ATTK(AT_BITE, AD_PHYS, 5, 4),
2842. 	  NO_ATTK, NO_ATTK),
2843. 	SIZ(1800, 1000, 0, MS_SILENT, MZ_HUGE), 0, 0,
2844. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
2845. 	M2_NOPOLY|M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_RED),

Lizards[]

2846. /*
2847.  * lizards, &c
2848.  */
2849.     MON("newt", S_LIZARD,
2850. 	LVL(0, 6, 8, 0, 0), (G_GENO|5),
2851. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
2852. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2853. 	SIZ(10, 20, 0, MS_SILENT, MZ_TINY), 0, 0,
2854. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
2855. 	M2_HOSTILE, 0, CLR_YELLOW),
2856.     MON("gecko", S_LIZARD,
2857. 	LVL(1, 6, 8, 0, 0), (G_GENO|5),
2858. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3),
2859. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2860. 	SIZ(10, 20, 0, MS_SQEEK, MZ_TINY), 0, 0,
2861. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_GREEN),
2862.     MON("iguana", S_LIZARD,
2863. 	LVL(2, 6, 7, 0, 0), (G_GENO|5),
2864. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
2865. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2866. 	SIZ(30, 30, 0, MS_SILENT, MZ_TINY), 0, 0,
2867. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_BROWN),
2868.     MON("baby crocodile", S_LIZARD,
2869. 	LVL(3, 6, 7, 0, 0), G_GENO,
2870. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
2871. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2872. 	SIZ(200, 200, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
2873. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
2874. 	M2_HOSTILE, 0, CLR_BROWN),
2875.     MON("lizard", S_LIZARD,
2876. 	LVL(5, 6, 6, 10, 0), (G_GENO|5),
2877. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
2878. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2879. 	SIZ(10, 40, 0, MS_SILENT, MZ_TINY), MR_STONE, MR_STONE,
2880. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_GREEN),
2881.     MON("chameleon", S_LIZARD,
2882. 	LVL(6, 5, 6, 10, 0), (G_GENO|2),
2883. 	A(ATTK(AT_BITE, AD_PHYS, 4, 2),
2884. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2885. 	SIZ(100, 100, 0, MS_SILENT, MZ_TINY), 0, 0,
2886. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_NOPOLY|M2_HOSTILE, 0, CLR_BROWN),
2887.     MON("crocodile", S_LIZARD,
2888. 	LVL(6, 9, 5, 0, 0), (G_GENO|1),
2889. 	A(ATTK(AT_BITE, AD_PHYS, 4, 2), ATTK(AT_CLAW, AD_PHYS, 1,12),
2890. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2891. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), 0, 0,
2892. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|
2893. 	  M1_OVIPAROUS|M1_CARNIVORE,
2894. 	M2_STRONG|M2_HOSTILE, 0, CLR_BROWN),
2895.     MON("salamander", S_LIZARD,
2896. 	LVL(8, 12, -1, 0, -9), (G_HELL|1),
2897. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_TUCH, AD_FIRE, 1, 6),
2898. 	  ATTK(AT_HUGS, AD_PHYS, 2, 6), ATTK(AT_HUGS, AD_FIRE, 3, 6),
2899. 	  NO_ATTK, NO_ATTK),
2900. 	SIZ(1500, 400, 0, MS_MUMBLE, MZ_HUMAN), MR_SLEEP|MR_FIRE, MR_FIRE,
2901. 	M1_HUMANOID|M1_SLITHY|M1_THICK_HIDE|M1_POIS,
2902. 	M2_STALK|M2_HOSTILE|M2_COLLECT|M2_MAGIC, M3_INFRAVISIBLE, CLR_ORANGE),
2903. 

Worm tail[]

2904. /*
2905.  * dummy monster needed for visual interface
2906.  */
2907. 	/* (marking it unique prevents figurines)
2908. 	 */
2909.     MON("long worm tail", S_WORM_TAIL,
2910. 	LVL(0, 0, 0, 0, 0), (G_NOGEN|G_NOCORPSE|G_UNIQ),
2911. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2912. 	SIZ(0, 0, 0, 0, 0), 0, 0, 0L, M2_NOPOLY, 0, CLR_BROWN),
2913. 
2914. 	/* Note:
2915. 	 * Worm tail must be between the normal monsters and the special
2916. 	 * quest & pseudo-character ones because an optimization in the
2917. 	 * random monster selection code assumes everything beyond here
2918. 	 * has the G_NOGEN and M2_NOPOLY attributes.
2919. 	 */
2920. 

Character classes[]

2921. /*
2922.  * character classes
2923.  */
2924.     MON("archeologist", S_HUMAN,
2925. 	LVL(10, 12, 10, 1, 3), G_NOGEN,
2926. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
2927. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2928. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2929. 	M1_HUMANOID|M1_TUNNEL|M1_NEEDPICK|M1_OMNIVORE,
2930. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
2931.     MON("barbarian", S_HUMAN,
2932. 	LVL(10, 12, 10, 1, 0), G_NOGEN,
2933. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
2934. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2935. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
2936. 	M1_HUMANOID|M1_OMNIVORE,
2937. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
2938.     MON("caveman", S_HUMAN,
2939. 	LVL(10, 12, 10, 0, 1), G_NOGEN,
2940. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2941. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2942. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2943. 	M1_HUMANOID|M1_OMNIVORE,
2944. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE,
2945. 	HI_DOMESTIC),
2946.     MON("cavewoman", S_HUMAN,
2947. 	LVL(10, 12, 10, 0, 1), G_NOGEN,
2948. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
2949. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2950. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2951. 	M1_HUMANOID|M1_OMNIVORE,
2952. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
2953. 	HI_DOMESTIC),
2954.     MON("healer", S_HUMAN,
2955. 	LVL(10, 12, 10, 1, 0), G_NOGEN,
2956. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2957. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2958. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
2959. 	M1_HUMANOID|M1_OMNIVORE,
2960. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
2961.     MON("knight", S_HUMAN,
2962. 	LVL(10, 12, 10, 1, 3), G_NOGEN,
2963. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
2964. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2965. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2966. 	M1_HUMANOID|M1_OMNIVORE,
2967. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
2968.     MON("monk", S_HUMAN, 
2969. 	LVL(10, 12, 10, 2, 0), G_NOGEN,
2970. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_KICK, AD_PHYS, 1, 8),
2971. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2972. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2973. 	M1_HUMANOID|M1_HERBIVORE,
2974. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT|M2_MALE,
2975. 	M3_INFRAVISIBLE, HI_DOMESTIC),
2976.     MON("priest", S_HUMAN,
2977. 	LVL(10, 12, 10, 2, 0), G_NOGEN,
2978. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2979. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2980. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2981. 	M1_HUMANOID|M1_OMNIVORE,
2982. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE,
2983. 	HI_DOMESTIC),
2984.     MON("priestess", S_HUMAN,
2985. 	LVL(10, 12, 10, 2, 0), G_NOGEN,
2986. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
2987. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2988. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2989. 	M1_HUMANOID|M1_OMNIVORE,
2990. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
2991. 	HI_DOMESTIC),
2992.     MON("ranger", S_HUMAN,
2993. 	LVL(10, 12, 10, 2, -3), G_NOGEN,
2994. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
2995. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
2996. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
2997. 	M1_HUMANOID|M1_OMNIVORE,
2998. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
2999. 	HI_DOMESTIC),
3000.     MON("rogue", S_HUMAN,
3001. 	LVL(10, 12, 10, 1, -3), G_NOGEN,
3002. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
3003. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3004. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
3005. 	M1_HUMANOID|M1_OMNIVORE,
3006. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
3007. 	M3_INFRAVISIBLE, HI_DOMESTIC),
3008.     MON("samurai", S_HUMAN,
3009. 	LVL(10, 12, 10, 1, 3), G_NOGEN,
3010. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
3011. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3012. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
3013. 	M1_HUMANOID|M1_OMNIVORE,
3014. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
3015. #ifdef TOURIST
3016.     MON("tourist", S_HUMAN,
3017. 	LVL(10, 12, 10, 1, 0), G_NOGEN,
3018. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
3019. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3020. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
3021. 	M1_HUMANOID|M1_OMNIVORE,
3022. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
3023. #endif
3024.     MON("valkyrie", S_HUMAN,
3025. 	LVL(10, 12, 10, 1, -1), G_NOGEN,
3026. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
3027. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3028. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_COLD, 0,
3029. 	M1_HUMANOID|M1_OMNIVORE,
3030. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
3031. 	HI_DOMESTIC),
3032.     MON("wizard", S_HUMAN,
3033. 	LVL(10, 12, 10, 3, 0), G_NOGEN,
3034. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3035. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3036. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
3037. 	M1_HUMANOID|M1_OMNIVORE,
3038. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT|M2_MAGIC, M3_INFRAVISIBLE,
3039. 	HI_DOMESTIC),

Quest leaders[]

3040. /*
3041.  * quest leaders
3042.  */
3043.     MON("Lord Carnarvon", S_HUMAN,
3044. 	LVL(20, 12, 0, 30, 20), (G_NOGEN|G_UNIQ),
3045. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3046. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3047. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3048. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
3049. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3050. 	  M2_COLLECT|M2_MAGIC,
3051. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3052.     MON("Pelias", S_HUMAN,
3053. 	LVL(20, 12, 0, 30, 0), (G_NOGEN|G_UNIQ),
3054. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3055. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3056. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_POISON, 0,
3057. 	M1_HUMANOID|M1_OMNIVORE,
3058. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3059. 	  M2_COLLECT|M2_MAGIC,
3060. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3061.     MON("Shaman Karnov", S_HUMAN,
3062. 	LVL(20, 12, 0, 30, 20), (G_NOGEN|G_UNIQ),
3063. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
3064. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3065. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3066. 	M1_HUMANOID|M1_OMNIVORE,
3067. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3068. 	  M2_COLLECT|M2_MAGIC,
3069. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3070. #if 0	/* OBSOLETE */
3071. 	/* Two for elves - one of each sex.
3072. 	 */
3073.     MON("Earendil", S_HUMAN,
3074. 	LVL(20, 12, 0, 50, -20), (G_NOGEN|G_UNIQ),
3075. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
3076. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3077. 	SIZ(WT_ELF, 350, 0, MS_LEADER, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
3078. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
3079. 	M2_NOPOLY|M2_ELF|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|
3080. 	  M2_MALE|M2_COLLECT|M2_MAGIC,
3081. 	M3_CLOSE|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
3082.     MON("Elwing", S_HUMAN,
3083. 	LVL(20, 12, 0, 50, -20), (G_NOGEN|G_UNIQ),
3084. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
3085. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3086. 	SIZ(WT_ELF, 350, 0, MS_LEADER, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
3087. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
3088. 	M2_NOPOLY|M2_ELF|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|
3089. 	  M2_FEMALE|M2_COLLECT|M2_MAGIC,
3090. 	M3_CLOSE|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
3091. #endif
3092.     MON("Hippocrates", S_HUMAN,
3093. 	LVL(20, 12, 0, 40, 0), (G_NOGEN|G_UNIQ),
3094. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3095. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3096. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_POISON, 0,
3097. 	M1_HUMANOID|M1_OMNIVORE,
3098. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3099. 	  M2_COLLECT|M2_MAGIC,
3100. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3101.     MON("King Arthur", S_HUMAN,
3102. 	LVL(20, 12, 0, 40, 20), (G_NOGEN|G_UNIQ),
3103. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
3104. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3105. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3106. 	M1_HUMANOID|M1_OMNIVORE,
3107. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3108. 	  M2_COLLECT|M2_MAGIC,
3109. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3110.     MON("Grand Master", S_HUMAN,
3111. 	LVL(25, 12, 0, 70, 0), (G_NOGEN|G_UNIQ),
3112. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 10), ATTK(AT_KICK, AD_PHYS, 2, 8),
3113. 	  ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8),
3114. 	  NO_ATTK, NO_ATTK),
3115. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN),
3116. 	MR_FIRE|MR_ELEC|MR_SLEEP|MR_POISON, 0,
3117. 	M1_HUMANOID|M1_SEE_INVIS|M1_HERBIVORE,
3118. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_NASTY|M2_MAGIC,
3119. 	M3_CLOSE|M3_INFRAVISIBLE, CLR_BLACK),
3120.     MON("Arch Priest", S_HUMAN,
3121. 	LVL(25, 12, 7, 70, 0), (G_NOGEN|G_UNIQ),
3122. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_KICK, AD_PHYS, 2, 8),
3123. 	  ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8),
3124. 	  NO_ATTK, NO_ATTK),
3125. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN),
3126. 	MR_FIRE|MR_ELEC|MR_SLEEP|MR_POISON, 0,
3127. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
3128. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
3129. 	M3_CLOSE|M3_INFRAVISIBLE, CLR_WHITE),
3130.     MON("Orion", S_HUMAN,
3131. 	LVL(20, 12, 0, 30, 0), (G_NOGEN|G_UNIQ),
3132. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3133. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3134. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3135. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS|M1_SWIM|M1_AMPHIBIOUS,
3136. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3137. 	  M2_COLLECT|M2_MAGIC,
3138. 	M3_CLOSE|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
3139. 	/* Note: Master of Thieves is also the Tourist's nemesis.
3140. 	 */
3141.     MON("Master of Thieves", S_HUMAN,
3142. 	LVL(20, 12, 0, 30, -20), (G_NOGEN|G_UNIQ),
3143. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
3144. 	  ATTK(AT_CLAW, AD_SAMU, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
3145. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_STONE, 0,
3146. 	M1_HUMANOID|M1_OMNIVORE,
3147. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_MALE|M2_GREEDY|
3148. 	  M2_JEWELS|M2_COLLECT|M2_MAGIC,
3149. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3150.     MON("Lord Sato", S_HUMAN,
3151. 	LVL(20, 12, 0, 30, 20), (G_NOGEN|G_UNIQ),
3152. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 6),
3153. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3154. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3155. 	M1_HUMANOID|M1_OMNIVORE,
3156. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3157. 	  M2_COLLECT|M2_MAGIC,
3158. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3159. #ifdef TOURIST
3160.     MON("Twoflower", S_HUMAN,
3161. 	LVL(20, 12, 10, 20, 0), (G_NOGEN|G_UNIQ),
3162. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
3163. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3164. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3165. 	M1_HUMANOID|M1_OMNIVORE,
3166. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
3167. 	  M2_COLLECT|M2_MAGIC,
3168. 	M3_CLOSE|M3_INFRAVISIBLE, HI_DOMESTIC),
3169. #endif
3170.     MON("Norn", S_HUMAN,
3171. 	LVL(20, 12, 0, 80, 0), (G_NOGEN|G_UNIQ),
3172. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 6),
3173. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3174. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_COLD, 0,
3175. 	M1_HUMANOID|M1_OMNIVORE,
3176. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_FEMALE|
3177. 	  M2_COLLECT|M2_MAGIC,
3178. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
3179.     MON("Neferet the Green", S_HUMAN,
3180. 	LVL(20, 12, 0, 60, 0), (G_NOGEN|G_UNIQ),
3181. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 2, 8),
3182. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3183. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
3184. 	M1_HUMANOID|M1_OMNIVORE,
3185. 	M2_NOPOLY|M2_HUMAN|M2_FEMALE|M2_PNAME|M2_PEACEFUL|
3186. 	  M2_STRONG|M2_COLLECT|M2_MAGIC,
3187. 	M3_CLOSE|M3_INFRAVISIBLE, CLR_GREEN),

Quest nemeses[]

3188. /*
3189.  * quest nemeses
3190.  */
3191.     MON("Minion of Huhetotl", S_DEMON,
3192. 	LVL(16, 12, -2, 75, -14), (G_NOCORPSE|G_NOGEN|G_UNIQ),
3193. 	A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
3194. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 2, 6),
3195. 	  NO_ATTK, NO_ATTK),
3196. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_LARGE),
3197. 	MR_FIRE|MR_POISON|MR_STONE, 0, M1_FLY|M1_SEE_INVIS|M1_POIS,
3198. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
3199. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, CLR_RED),
3200.     MON("Thoth Amon", S_HUMAN,
3201. 	LVL(16, 12, 0, 10, -14), (G_NOGEN|G_UNIQ|G_NOCORPSE),
3202. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
3203. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 1, 4),
3204. 	  NO_ATTK, NO_ATTK),
3205. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_POISON|MR_STONE, 0,
3206. 	M1_HUMANOID|M1_OMNIVORE,
3207. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_STRONG|M2_MALE|M2_STALK|M2_HOSTILE|
3208. 	  M2_NASTY|M2_COLLECT|M2_MAGIC,
3209. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
3210. 	/* Multi-headed, possessing the breath attacks of all the other dragons
3211. 	 * (selected at random when attacking).
3212. 	 */
3213.     MON("Chromatic Dragon", S_DRAGON,
3214. 	LVL(16, 12, 0, 30, -14), (G_NOGEN|G_UNIQ),
3215. 	A(ATTK(AT_BREA, AD_RBRE, 6, 8), ATTK(AT_MAGC, AD_SPEL, 0, 0),
3216. 	  ATTK(AT_CLAW, AD_SAMU, 2, 8), ATTK(AT_BITE, AD_PHYS, 4, 8),
3217. 	  ATTK(AT_BITE, AD_PHYS, 4, 8), ATTK(AT_STNG, AD_PHYS, 1, 6)),
3218. 	SIZ(WT_DRAGON, 1700, 0, MS_NEMESIS, MZ_GIGANTIC),
3219. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_DISINT|MR_ELEC|MR_POISON|MR_ACID|MR_STONE,
3220. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_DISINT|MR_ELEC|MR_POISON|MR_STONE,
3221. 	M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_SEE_INVIS|M1_POIS,
3222. 	M2_NOPOLY|M2_HOSTILE|M2_FEMALE|M2_STALK|M2_STRONG|M2_NASTY|
3223. 	  M2_GREEDY|M2_JEWELS|M2_MAGIC,
3224. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
3225. #if 0	/* OBSOLETE */
3226.     MON("Goblin King", S_ORC,
3227. 	LVL(15, 12, 10, 0, -15), (G_NOGEN|G_UNIQ),
3228. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
3229. 	  ATTK(AT_CLAW, AD_SAMU, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
3230. 	SIZ(750, 350, 0, MS_NEMESIS, MZ_HUMAN), 0, 0,
3231. 	M1_HUMANOID|M1_OMNIVORE,
3232. 	M2_NOPOLY|M2_ORC|M2_HOSTILE|M2_STRONG|M2_STALK|M2_NASTY|M2_MALE|
3233. 	  M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_MAGIC,
3234. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
3235. #endif
3236.     MON("Cyclops", S_GIANT,
3237. 	LVL(18, 12, 0, 0, -15), (G_NOGEN|G_UNIQ),
3238. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 8), ATTK(AT_WEAP, AD_PHYS, 4, 8),
3239. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
3240. 	SIZ(1900, 700, 0, MS_NEMESIS, MZ_HUGE), MR_STONE, 0,
3241. 	M1_HUMANOID|M1_OMNIVORE,
3242. 	M2_NOPOLY|M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_STALK|M2_HOSTILE|
3243. 	  M2_NASTY|M2_MALE|M2_JEWELS|M2_COLLECT,
3244. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, CLR_GRAY),
3245.     MON("Ixoth", S_DRAGON,
3246. 	LVL(15, 12, -1, 20, -14), (G_NOGEN|G_UNIQ),
3247. 	A(ATTK(AT_BREA, AD_FIRE, 8, 6), ATTK(AT_BITE, AD_PHYS, 4, 8),
3248. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_PHYS, 2, 4),
3249. 	  ATTK(AT_CLAW, AD_SAMU, 2, 4), NO_ATTK ),
3250. 	SIZ(WT_DRAGON, 1600, 0, MS_NEMESIS, MZ_GIGANTIC),
3251. 	MR_FIRE|MR_STONE, MR_FIRE,
3252. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_SEE_INVIS,
3253. 	M2_NOPOLY|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_STALK|
3254. 	  M2_GREEDY|M2_JEWELS|M2_MAGIC,
3255. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, CLR_RED),
3256.     MON("Master Kaen", S_HUMAN,
3257. 	LVL(25, 12, -10, 10, -20), (G_NOGEN|G_UNIQ),
3258. 	A(ATTK(AT_CLAW, AD_PHYS, 16, 2), ATTK(AT_CLAW, AD_PHYS, 16, 2),
3259. 	  ATTK(AT_MAGC, AD_CLRC, 0, 0), ATTK(AT_CLAW, AD_SAMU, 1, 4),
3260. 	  NO_ATTK, NO_ATTK),
3261. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN),
3262. 	MR_POISON|MR_STONE, MR_POISON,
3263. 	M1_HUMANOID|M1_HERBIVORE|M1_SEE_INVIS,
3264. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_NASTY|
3265. 	  M2_STALK|M2_COLLECT|M2_MAGIC,
3266. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
3267.     MON("Nalzok", S_DEMON,
3268. 	LVL(16, 12, -2, 85, -127), (G_NOGEN|G_UNIQ|G_NOCORPSE),
3269. 	A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
3270. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 2, 6),
3271. 	  NO_ATTK, NO_ATTK),
3272. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_LARGE),
3273. 	MR_FIRE|MR_POISON|MR_STONE, 0, M1_FLY|M1_SEE_INVIS|M1_POIS,
3274. 	M2_NOPOLY|M2_DEMON|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_STALK|
3275. 	  M2_NASTY|M2_COLLECT,
3276. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, CLR_RED),
3277.     MON("Scorpius", S_SPIDER,
3278. 	LVL(15, 12, 10, 0, -15), (G_NOGEN|G_UNIQ),
3279. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_SAMU, 2, 6),
3280. 	  ATTK(AT_STNG, AD_DISE, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
3281. 	SIZ(750, 350, 0, MS_NEMESIS, MZ_HUMAN), MR_POISON|MR_STONE, MR_POISON,
3282. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
3283. 	M2_NOPOLY|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_STALK|M2_NASTY|
3284. 	  M2_COLLECT|M2_MAGIC,
3285. 	M3_WANTSARTI|M3_WAITFORU, HI_LORD),
3286.     MON("Master Assassin", S_HUMAN,
3287. 	LVL(15, 12, 0, 30, 18), (G_NOGEN|G_UNIQ),
3288. 	A(ATTK(AT_WEAP, AD_DRST, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 8),
3289. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
3290. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_STONE, 0,
3291. 	M1_HUMANOID|M1_OMNIVORE,
3292. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_HOSTILE|M2_STALK|M2_NASTY|
3293. 	  M2_COLLECT|M2_MAGIC,
3294. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
3295. 	/* A renegade daimyo who led a 13 year civil war against the shogun
3296. 	 * of his time.
3297. 	 */
3298.     MON("Ashikaga Takauji", S_HUMAN,
3299. 	LVL(15, 12, 0, 40, -13), (G_NOGEN|G_UNIQ|G_NOCORPSE),
3300. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
3301. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
3302. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_STONE, 0,
3303. 	M1_HUMANOID|M1_OMNIVORE,
3304. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_STALK|
3305. 	  M2_NASTY|M2_MALE|M2_COLLECT|M2_MAGIC,
3306. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
3307. #ifdef TOURIST
3308. 	/*
3309. 	 * Note: the Master of Thieves was defined above.
3310. 	 */
3311. #endif
3312.     MON("Lord Surtur", S_GIANT,
3313. 	LVL(15, 12, 2, 50, 12), (G_NOGEN|G_UNIQ),
3314. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10), ATTK(AT_WEAP, AD_PHYS, 2,10),
3315. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
3316. 	SIZ(2250, 850, 0, MS_NEMESIS, MZ_HUGE), MR_FIRE|MR_STONE, MR_FIRE,
3317. 	M1_HUMANOID|M1_OMNIVORE,
3318. 	M2_NOPOLY|M2_GIANT|M2_MALE|M2_PNAME|M2_HOSTILE|M2_STALK|
3319. 	  M2_STRONG|M2_NASTY|M2_ROCKTHROW|M2_JEWELS|M2_COLLECT,
3320. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
3321.     MON("Dark One", S_HUMAN,
3322. 	LVL(15, 12, 0, 80, -10), (G_NOGEN|G_UNIQ|G_NOCORPSE),
3323. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
3324. 	  ATTK(AT_CLAW, AD_SAMU, 1, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
3325. 	  NO_ATTK, NO_ATTK),
3326. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_STONE, 0,
3327. 	M1_HUMANOID|M1_OMNIVORE,
3328. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_HOSTILE|M2_STALK|M2_NASTY|
3329. 	  M2_COLLECT|M2_MAGIC,
3330. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, CLR_BLACK),

Quest guardians[]

3331. /*
3332.  * quest "guardians"
3333.  */
3334.     MON("student", S_HUMAN,
3335. 	LVL(5, 12, 10, 10, 3), G_NOGEN,
3336. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3337. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3338. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3339. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
3340. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3341. 	HI_DOMESTIC),
3342.     MON("chieftain", S_HUMAN,
3343. 	LVL(5, 12, 10, 10, 0), G_NOGEN,
3344. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3345. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3346. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_POISON, 0,
3347. 	M1_HUMANOID|M1_OMNIVORE,
3348. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3349. 	HI_DOMESTIC),
3350.     MON("neanderthal", S_HUMAN,
3351. 	LVL(5, 12, 10, 10, 1), G_NOGEN,
3352. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
3353. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3354. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3355. 	M1_HUMANOID|M1_OMNIVORE,
3356. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3357. 	HI_DOMESTIC),
3358. #if 0	/* OBSOLETE */
3359.     MON("High-elf", S_HUMAN,
3360. 	LVL(5, 12, 10, 10, -7), G_NOGEN,
3361. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_MAGC, AD_CLRC, 0, 0),
3362. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3363. 	SIZ(WT_ELF, 350, 0, MS_GUARDIAN, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
3364. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
3365. 	M2_NOPOLY|M2_ELF|M2_PEACEFUL|M2_COLLECT,
3366. 	M3_INFRAVISION|M3_INFRAVISIBLE, HI_DOMESTIC),
3367. #endif
3368.     MON("attendant", S_HUMAN,
3369. 	LVL(5, 12, 10, 10, 3), G_NOGEN,
3370. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
3371. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3372. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_POISON, 0,
3373. 	M1_HUMANOID|M1_OMNIVORE,
3374. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3375. 	HI_DOMESTIC),
3376.     MON("page", S_HUMAN,
3377. 	LVL(5, 12, 10, 10, 3), G_NOGEN,
3378. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
3379. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3380. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3381. 	M1_HUMANOID|M1_OMNIVORE,
3382. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3383. 	HI_DOMESTIC),
3384.     MON("abbot", S_HUMAN, 
3385. 	LVL(5, 12, 10, 20, 0), G_NOGEN,
3386. 	A(ATTK(AT_CLAW, AD_PHYS, 8, 2), ATTK(AT_KICK, AD_STUN, 3, 2),
3387. 	  ATTK(AT_MAGC, AD_CLRC, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
3388. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3389. 	M1_HUMANOID|M1_HERBIVORE,
3390. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3391. 	HI_DOMESTIC),
3392.     MON("acolyte", S_HUMAN,
3393. 	LVL(5, 12, 10, 20, 0), G_NOGEN,
3394. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_CLRC, 0, 0),
3395. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3396. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3397. 	M1_HUMANOID|M1_OMNIVORE,
3398. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3399. 	HI_DOMESTIC),
3400.     MON("hunter", S_HUMAN,
3401. 	LVL(5, 12, 10, 10, -7), G_NOGEN,
3402. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
3403. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3404. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3405. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
3406. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
3407. 	M3_INFRAVISION|M3_INFRAVISIBLE, HI_DOMESTIC),
3408.     MON("thug", S_HUMAN,
3409. 	LVL(5, 12, 10, 10, -3), G_NOGEN,
3410. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
3411. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3412. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3413. 	M1_HUMANOID|M1_OMNIVORE,
3414. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_GREEDY|M2_COLLECT,
3415. 	M3_INFRAVISIBLE, HI_DOMESTIC),
3416.     MON("ninja", S_HUMAN,
3417. 	LVL(5, 12, 10, 10, 3), G_NOGEN,
3418. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
3419. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3420. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
3421. 	M1_HUMANOID|M1_OMNIVORE,
3422. 	M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3423. 	HI_DOMESTIC),
3424.     MON("roshi", S_HUMAN,
3425. 	LVL(5, 12, 10, 10, 3), G_NOGEN,
3426. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
3427. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3428. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3429. 	M1_HUMANOID|M1_OMNIVORE,
3430. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
3431. 	HI_DOMESTIC),
3432. #ifdef TOURIST
3433.     MON("guide", S_HUMAN,
3434. 	LVL(5, 12, 10, 20, 0), G_NOGEN,
3435. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
3436. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3437. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3438. 	M1_HUMANOID|M1_OMNIVORE,
3439. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL | M2_STRONG|M2_COLLECT|M2_MAGIC,
3440. 	M3_INFRAVISIBLE, HI_DOMESTIC),
3441. #endif
3442.     MON("warrior", S_HUMAN,
3443. 	LVL(5, 12, 10, 10, -1), G_NOGEN,
3444. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
3445. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3446. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3447. 	M1_HUMANOID|M1_OMNIVORE,
3448. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_FEMALE, M3_INFRAVISIBLE,
3449. 	HI_DOMESTIC),
3450.     MON("apprentice", S_HUMAN,
3451. 	LVL(5, 12, 10, 30, 0), G_NOGEN,
3452. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
3453. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3454. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
3455. 	M1_HUMANOID|M1_OMNIVORE,
3456. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
3457. 	M3_INFRAVISIBLE, HI_DOMESTIC),
3458. /*
3459.  * array terminator
3460.  */
3461.     MON("", 0,
3462. 	LVL(0, 0, 0, 0, 0), (0),
3463. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
3464. 	SIZ(0, 0, 0, 0, 0), 0, 0, 0L, 0L, 0, 0)
3465. };
3466. #endif /* !SPLITMON_1 */
3467. 
3468. #ifndef SPLITMON_1

monst_init[]

3469. /* dummy routine used to force linkage */
3470. void
3471. monst_init()
3472. {
3473.     return;
3474. }
3475. #endif
3476. 
3477. /*monst.c*/
Advertisement