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