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