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