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