Source:NetHack 3.6.1/src/monst.c

From NetHackWiki
Jump to navigation Jump to search

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

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

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

Top of file

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

monst_init

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*/