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