OSDN Git Service

Initial Import
[nethackexpress/trunk.git] / src / monst.c
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
5 #include "config.h"
6 #include "permonst.h"
7 #include "monsym.h"
8 #include "dungeon.h"    /* prerequisite for eshk,vault,epri */
9 #include "eshk.h"
10 #include "vault.h"
11 #include "epri.h"
12
13 #define NO_ATTK {0,0,0,0}
14
15 #define WT_ELF     800
16 #define WT_DRAGON 4500
17
18 #ifdef C
19 #undef C
20 #endif
21 #ifdef TEXTCOLOR
22 #include "color.h"
23 #define C(color)        color
24 #define HI_DOMESTIC     CLR_WHITE       /* use for player + friendlies */
25 #define HI_LORD         CLR_MAGENTA
26 #else
27 #define C(color)
28 #endif
29
30 void NDECL(monst_init);
31 /*
32  *      Entry Format:           (from permonst.h)
33  *
34  *      name, symbol (S_* defines),
35  *      difficulty level, move rate, armor class, magic resistance,
36  *      alignment, creation/geno flags (G_* defines),
37  *      6 * attack structs ( type , damage-type, # dice, # sides ),
38  *      weight (WT_* defines), nutritional value, extension length,
39  *      sounds made (MS_* defines), physical size (MZ_* defines),
40  *      resistances, resistances conferred (both MR_* defines),
41  *      3 * flag bitmaps (M1_*, M2_*, and M3_* defines respectively)
42  *      symbol color (C(x) macro)
43  */
44 #define MON(nam,sym,lvl,gen,atk,siz,mr1,mr2,flg1,flg2,flg3,col) \
45            {nam,sym,lvl,gen,atk,siz,mr1,mr2,flg1,flg2,flg3,C(col)}
46 /* LVL() and SIZ() collect several fields to cut down on # of args for MON() */
47 #define LVL(lvl,mov,ac,mr,aln) lvl,mov,ac,mr,aln
48 #define SIZ(wt,nut,pxl,snd,siz) wt,nut,pxl,snd,siz
49 /* ATTK() and A() are to avoid braces and commas within args to MON() */
50 #define ATTK(at,ad,n,d) {at,ad,n,d}
51 #define A(a1,a2,a3,a4,a5,a6) {a1,a2,a3,a4,a5,a6}
52
53
54 /*
55  *      Rule #1:        monsters of a given class are contiguous in the
56  *                      mons[] array.
57  *
58  *      Rule #2:        monsters of a given class are presented in ascending
59  *                      order of strength.
60  *
61  *      Rule #3:        monster frequency is included in the geno mask;
62  *                      the frequency can be from 0 to 7.  0's will also
63  *                      be skipped during generation.
64  *
65  *      Rule #4:        monster subclasses (e.g. giants) should be kept
66  *                      together, unless it violates Rule 2.  NOGEN monsters
67  *                      won't violate Rule 2.
68  *
69  * Guidelines for color assignment:
70  *
71  *      * Use the same color for all `growth stages' of a monster (ex.
72  *        little dog/big dog, baby naga/full-grown naga.
73  *
74  *      * Use colors given in names wherever possible. If the class has `real'
75  *        members with strong color associations, use those.
76  *
77  *      * Favor `cool' colors for cold-resistent monsters, `warm' ones for
78  *        fire-resistent ones.
79  *
80  *      * Try to reserve purple (magenta) for powerful `ruler' monsters (queen
81  *        bee, kobold lord, &c.).
82  *
83  *      * Subject to all these constraints, try to use color to make as many
84  *        distinctions as the / command (that is, within a monster letter
85  *        distinct names should map to distinct colors).
86  *
87  * The aim in assigning colors is to be consistent enough so a player can
88  * become `intuitive' about them, deducing some or all of these rules
89  * unconsciously. Use your common sense.
90  */
91
92 #ifndef SPLITMON_2
93 NEARDATA struct permonst mons[] = {
94 /*
95  * ants
96  */
97     MON("giant ant", S_ANT,
98         LVL(2, 18, 3, 0, 0), (G_GENO|G_SGROUP|3),
99         A(ATTK(AT_BITE, AD_PHYS, 1, 4),
100           NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
101         SIZ(10, 10, 0, MS_SILENT, MZ_TINY), 0, 0,
102         M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
103         M2_HOSTILE, 0, CLR_BROWN),
104     MON("killer bee", S_ANT,
105         LVL(1, 18, -1, 0, 0), (G_GENO|G_LGROUP|2),
106         A(ATTK(AT_STNG, AD_DRST, 1, 3),
107           NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
108         SIZ(1, 5, 0, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
109         M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_POIS,
110         M2_HOSTILE|M2_FEMALE, 0, CLR_YELLOW),
111     MON("soldier ant", S_ANT,
112         LVL(3, 18, 3, 0, 0), (G_GENO|G_SGROUP|2),
113         A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_STNG, AD_DRST, 3, 4),
114           NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
115         SIZ(20, 5, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
116         M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
117         M2_HOSTILE, 0, CLR_BLUE),
118     MON("fire ant", S_ANT,
119         LVL(3, 18, 3, 10, 0), (G_GENO|G_SGROUP|1),
120         A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_BITE, AD_FIRE, 2, 4),
121           NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
122         SIZ(30, 10, 0, MS_SILENT, MZ_TINY), MR_FIRE, MR_FIRE,
123         M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
124         M2_HOSTILE, M3_INFRAVISIBLE, CLR_RED),
125     MON("giant beetle", S_ANT,
126         LVL(5, 6, 4, 0, 0), (G_GENO|3),
127         A(ATTK(AT_BITE, AD_PHYS, 3, 6),
128           NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
129         SIZ(10, 10, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
130         M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_CARNIVORE,
131         M2_HOSTILE, 0, CLR_BLACK),
132     MON("queen bee", S_ANT,
133         LVL(9, 24, -4, 0, 0), (G_GENO|G_NOGEN),
134         A(ATTK(AT_STNG, AD_DRST, 1, 8),
135           NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
136         SIZ(1, 5, 0, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
137         M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_OVIPAROUS|M1_POIS,
138         M2_HOSTILE|M2_FEMALE|M2_PRINCE, 0, HI_LORD),
139 /*
140  * blobs
141  */
142     MON("acid blob", S_BLOB,
143         LVL(1, 3, 8, 0, 0), (G_GENO|2),
144         A(ATTK(AT_NONE, AD_ACID, 1, 8),
145           NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
146         SIZ(30, 10, 0, MS_SILENT, MZ_TINY),
147         MR_SLEEP|MR_POISON|MR_ACID|MR_STONE, MR_STONE,
148         M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
149           M1_MINDLESS|M1_ACID,
150         M2_WANDER|M2_NEUTER, 0, CLR_GREEN),
151     MON("quivering blob", S_BLOB,
152         LVL(5, 1, 8, 0, 0), (G_GENO|2),
153         A(ATTK(AT_TUCH, AD_PHYS, 1, 8),
154           NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
155         SIZ(200, 100, 0, MS_SILENT, MZ_SMALL),
156         MR_SLEEP|MR_POISON, MR_POISON,
157         M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
158         M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, CLR_WHITE),
159     MON("gelatinous cube", S_BLOB,
160         LVL(6, 6, 8, 0, 0), (G_GENO|2),
161         A(ATTK(AT_TUCH, AD_PLYS, 2, 4), ATTK(AT_NONE, AD_PLYS, 1, 4),
162           NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
163         SIZ(600, 150, 0, MS_SILENT, MZ_LARGE),
164         MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_ACID|MR_STONE,
165         MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP,
166         M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_OMNIVORE|M1_ACID,
167         M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, CLR_CYAN),
168 /*
169  * cockatrice
170  */
171     MON("chickatrice", S_COCKATRICE,
172         LVL(4, 4, 8, 30, 0), (G_GENO|G_SGROUP|1),
173         A(ATTK(AT_BITE, AD_PHYS, 1, 2), ATTK(AT_TUCH, AD_STON, 0, 0),
174           ATTK(AT_NONE, AD_STON, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
175         SIZ(10, 10, 0, MS_HISS, MZ_TINY),
176         MR_POISON|MR_STONE, MR_POISON|MR_STONE,
177         M1_ANIMAL|M1_NOHANDS|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),
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),
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
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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
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 */
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
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
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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
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),
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),
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),
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),
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),
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),
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
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
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),
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),
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),
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
3469 /* dummy routine used to force linkage */
3470 void
3471 monst_init()
3472 {
3473     return;
3474 }
3475 #endif
3476
3477 /*monst.c*/