OSDN Git Service

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