Mercurial > hg > early-roguelike
comparison arogue5/rogue.c @ 63:0ed67132cf10
Import Advanced Rogue 5.8 from the Roguelike Restoration Project (r1490)
| author | elwin |
|---|---|
| date | Thu, 09 Aug 2012 22:58:48 +0000 |
| parents | |
| children | a98834ce7e04 |
comparison
equal
deleted
inserted
replaced
| 62:0ef99244acb8 | 63:0ed67132cf10 |
|---|---|
| 1 /* | |
| 2 * global variable declaration | |
| 3 * | |
| 4 * Advanced Rogue | |
| 5 * Copyright (C) 1984, 1985 Michael Morgan, Ken Dalka and AT&T | |
| 6 * All rights reserved. | |
| 7 * | |
| 8 * Based on "Rogue: Exploring the Dungeons of Doom" | |
| 9 * Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman | |
| 10 * All rights reserved. | |
| 11 * | |
| 12 * See the file LICENSE.TXT for full copyright and licensing information. | |
| 13 */ | |
| 14 | |
| 15 #include <ctype.h> | |
| 16 #include "curses.h" | |
| 17 #include "rogue.h" | |
| 18 | |
| 19 /* | |
| 20 * Now all the global variables | |
| 21 */ | |
| 22 struct trap traps[MAXTRAPS]; | |
| 23 struct room rooms[MAXROOMS]; /* One for each room -- A level */ | |
| 24 struct room *oldrp; /* Roomin(&player.t_oldpos) */ | |
| 25 struct thing player; /* The rogue */ | |
| 26 struct object *cur_armor; /* What a well dresssed rogue wears */ | |
| 27 struct object *cur_ring[NUM_FINGERS]; /* Which rings are being worn */ | |
| 28 struct object *cur_misc[NUM_MM]; /* which MM's are in use */ | |
| 29 int cur_relic[MAXRELIC]; /* Currently used relics */ | |
| 30 struct linked_list *lvl_obj = NULL; | |
| 31 struct linked_list *mlist = NULL; | |
| 32 struct linked_list *tlist = NULL; /* list of monsters fallen down traps */ | |
| 33 struct linked_list *monst_dead = NULL; /* monster killed by monster */ | |
| 34 struct object *cur_weapon = NULL; | |
| 35 int char_type = -1; /* what type of character is player */ | |
| 36 int foodlev = 1; /* how fast he eats food */ | |
| 37 int ntraps; /* Number of traps on this level */ | |
| 38 int trader = 0; /* no. of purchases */ | |
| 39 int curprice = -1; /* current price of item */ | |
| 40 int no_move; /* Number of turns held in place */ | |
| 41 int seed; /* Random number seed */ | |
| 42 int dnum; /* Dungeon number */ | |
| 43 int max_level; /* Deepest player has gone ever */ | |
| 44 int cur_max; /* Deepest player has gone currently */ | |
| 45 int lost_dext; /* amount of lost dexterity */ | |
| 46 int mpos = 0; | |
| 47 int no_command = 0; | |
| 48 int level = 1; | |
| 49 int purse = 0; | |
| 50 int inpack = 0; | |
| 51 int total = 0; | |
| 52 int no_food = 0; /* how long has he gone with no food */ | |
| 53 int foods_this_level = 0; /* foods made per level */ | |
| 54 int count = 0; | |
| 55 int food_left = HUNGERTIME; | |
| 56 int group = 1; | |
| 57 int hungry_state = F_OKAY; | |
| 58 int infest_dam=0; | |
| 59 int lost_str=0; | |
| 60 int lastscore = -1; | |
| 61 int hold_count = 0; | |
| 62 int trap_tries = 0; | |
| 63 int pray_time = 0; | |
| 64 int spell_power = 0; | |
| 65 int turns = 0; /* Number of turns player has taken */ | |
| 66 int quest_item = 0; /* Item player is looking for */ | |
| 67 char nfloors = -1; /* Number of floors in this dungeon */ | |
| 68 char curpurch[15]; /* name of item ready to buy */ | |
| 69 char PLAYER = VPLAYER; /* what the player looks like */ | |
| 70 char take; /* Thing the rogue is taking */ | |
| 71 char prbuf[LINELEN*2]; /* Buffer for sprintfs */ | |
| 72 char outbuf[BUFSIZ]; /* Output buffer for stdout */ | |
| 73 char runch; /* Direction player is running */ | |
| 74 char *s_names[MAXSCROLLS]; /* Names of the scrolls */ | |
| 75 char *p_colors[MAXPOTIONS]; /* Colors of the potions */ | |
| 76 char *r_stones[MAXRINGS]; /* Stone settings of the rings */ | |
| 77 char *ws_made[MAXSTICKS]; /* What sticks are made of */ | |
| 78 char whoami[LINELEN]; /* Name of player */ | |
| 79 char fruit[LINELEN]; /* Favorite fruit */ | |
| 80 char huh[LINELEN]; /* The last message printed */ | |
| 81 char *s_guess[MAXSCROLLS]; /* Players guess at what scroll is */ | |
| 82 char *p_guess[MAXPOTIONS]; /* Players guess at what potion is */ | |
| 83 char *r_guess[MAXRINGS]; /* Players guess at what ring is */ | |
| 84 char *ws_guess[MAXSTICKS]; /* Players guess at what wand is */ | |
| 85 char *m_guess[MAXMM]; /* Players guess at what MM is */ | |
| 86 char *ws_type[MAXSTICKS]; /* Is it a wand or a staff */ | |
| 87 char file_name[LINELEN]; /* Save file name */ | |
| 88 char score_file[LINELEN]; /* Score file name */ | |
| 89 char home[LINELEN]; /* User's home directory */ | |
| 90 WINDOW *cw; /* Window that the player sees */ | |
| 91 WINDOW *hw; /* Used for the help command */ | |
| 92 WINDOW *mw; /* Used to store mosnters */ | |
| 93 WINDOW *msgw; /* Used to display messages */ | |
| 94 bool pool_teleport = FALSE; /* just teleported from a pool */ | |
| 95 bool inwhgt = FALSE; /* true if from wghtchk() */ | |
| 96 bool after; /* True if we want after daemons */ | |
| 97 bool waswizard; /* Was a wizard sometime */ | |
| 98 bool s_know[MAXSCROLLS]; /* Does he know what a scroll does */ | |
| 99 bool p_know[MAXPOTIONS]; /* Does he know what a potion does */ | |
| 100 bool r_know[MAXRINGS]; /* Does he know what a ring does */ | |
| 101 bool ws_know[MAXSTICKS]; /* Does he know what a stick does */ | |
| 102 bool m_know[MAXMM]; /* Does he know what a MM does */ | |
| 103 bool playing = TRUE; | |
| 104 bool running = FALSE; | |
| 105 bool wizard = FALSE; | |
| 106 bool notify = TRUE; | |
| 107 bool fight_flush = FALSE; | |
| 108 bool terse = FALSE; | |
| 109 bool auto_pickup = TRUE; | |
| 110 bool door_stop = FALSE; | |
| 111 bool jump = FALSE; | |
| 112 bool slow_invent = FALSE; | |
| 113 bool firstmove = FALSE; | |
| 114 bool askme = FALSE; | |
| 115 bool in_shell = FALSE; | |
| 116 bool daytime = TRUE; | |
| 117 coord delta; /* Change indicated to get_dir() */ | |
| 118 LEVTYPE levtype; /* type of level i'm on */ | |
| 119 | |
| 120 char *nothing = "Nothing seems to happen."; | |
| 121 char *spacemsg = "--Press space to continue--"; | |
| 122 char *morestr = "-- More --"; | |
| 123 char *retstr = "[Press return to continue]"; | |
| 124 | |
| 125 | |
| 126 /* | |
| 127 * NOTE: the ordering of the points in this array is critical. They MUST | |
| 128 * be listed in the following sequence: | |
| 129 * | |
| 130 * 7 4 6 | |
| 131 * 1 0 2 | |
| 132 * 5 3 8 | |
| 133 */ | |
| 134 | |
| 135 coord grid[9] = {{0,0}, | |
| 136 { 0,-1}, { 0, 1}, {-1, 0}, { 1, 0}, | |
| 137 {-1,-1}, { 1, 1}, { 1,-1}, {-1, 1} | |
| 138 }; | |
| 139 | |
| 140 struct death_type deaths[DEATHNUM] = { | |
| 141 { D_ARROW, "an arrow"}, | |
| 142 { D_DART, "a dart"}, | |
| 143 { D_BOLT, "a bolt"}, | |
| 144 { D_POISON, "poison"}, | |
| 145 { D_POTION, "a cursed potion"}, | |
| 146 { D_PETRIFY, "petrification"}, | |
| 147 { D_SUFFOCATION, "suffocation"}, | |
| 148 { D_INFESTATION, "a parasite"}, | |
| 149 { D_DROWN, "drowning"}, | |
| 150 { D_ROT, "body rot"}, | |
| 151 { D_CONSTITUTION, "poor health"}, | |
| 152 { D_STRENGTH, "being too weak"}, | |
| 153 { D_SIGNAL, "a bug"}, | |
| 154 { D_CHOKE, "dust of choking"}, | |
| 155 { D_STRANGLE, "strangulation"}, | |
| 156 { D_FALL, "a fall"}, | |
| 157 { D_RELIC, "an artifact's wrath"}, | |
| 158 }; | |
| 159 | |
| 160 | |
| 161 /* | |
| 162 * weapons and their attributes | |
| 163 */ | |
| 164 struct init_weps weaps[MAXWEAPONS] = { | |
| 165 { "mace", "2d4", "1d3", NONE, ISMETAL, 100, 8 }, | |
| 166 { "long sword", "1d12", "1d2", NONE, ISMETAL, 60, 18 }, | |
| 167 { "short bow", "1d1", "1d1", NONE, 0, 40, 15 }, | |
| 168 { "arrow", "1d1", "1d6", BOW, ISMANY|ISMISL, 5, 1 }, | |
| 169 { "dagger", "1d6", "1d4", NONE, ISMETAL|ISMISL|ISMANY, 10, 2 }, | |
| 170 { "rock", "1d2", "1d4", SLING, ISMANY|ISMISL, 5, 1 }, | |
| 171 { "two-handed sword","3d6", "1d2", NONE, ISMETAL, 250, 40 }, | |
| 172 { "sling", "0d0", "0d0", NONE, 0, 5, 1 }, | |
| 173 { "dart", "1d1", "1d3", NONE, ISMANY|ISMISL, 5, 1 }, | |
| 174 { "crossbow", "1d1", "1d1", NONE, 0, 100, 15 }, | |
| 175 { "crossbow bolt", "1d2", "1d12", CROSSBOW, ISMANY|ISMISL, 7, 1 }, | |
| 176 { "spear", "1d6", "1d8", NONE, ISMETAL|ISMISL, 50, 8 }, | |
| 177 { "trident", "3d4", "1d4", NONE, ISMETAL, 50, 20 }, | |
| 178 { "spetum", "2d6", "1d3", NONE, ISMETAL, 50, 20 }, | |
| 179 { "bardiche", "3d4", "1d2", NONE, ISMETAL, 125, 20 }, | |
| 180 { "pike", "1d12", "1d8", NONE, ISMETAL, 80, 18 }, | |
| 181 { "bastard sword", "2d8", "1d2", NONE, ISMETAL, 100, 30 }, | |
| 182 { "halberd", "2d6", "1d3", NONE, ISMETAL, 175, 10 }, | |
| 183 { "battle axe", "1d8", "1d3", NONE, ISMETAL, 80, 10 }, | |
| 184 }; | |
| 185 | |
| 186 struct init_armor armors[MAXARMORS] = { | |
| 187 { "leather armor", 11, 8, 70, 100 }, | |
| 188 { "ring mail", 22, 7, 50, 250 }, | |
| 189 { "studded leather armor", 33, 7, 50, 200 }, | |
| 190 { "scale mail", 45, 6, 70, 250 }, | |
| 191 { "padded armor", 57, 6, 150, 150 }, | |
| 192 { "chain mail", 69, 5, 100, 300 }, | |
| 193 { "splint mail", 80, 4, 150, 350 }, | |
| 194 { "banded mail", 90, 4, 150, 350 }, | |
| 195 { "plate mail", 96, 3, 400, 400 }, | |
| 196 { "plate armor", 100, 2, 650, 450 }, | |
| 197 }; | |
| 198 | |
| 199 struct magic_item things[NUMTHINGS] = { | |
| 200 { "potion", 260, 10 }, /* potion */ | |
| 201 { "scroll", 260, 30 }, /* scroll */ | |
| 202 { "food", 180, 20 }, /* food */ | |
| 203 { "weapon", 80, 0 }, /* weapon */ | |
| 204 { "armor", 80, 0 }, /* armor */ | |
| 205 { "ring", 50, 5 }, /* ring */ | |
| 206 { "stick", 60, 0 }, /* stick */ | |
| 207 { "miscellaneous magic", 30, 50 }, /* miscellaneous magic */ | |
| 208 { "artifact", 0, 10 }, /* artifact */ | |
| 209 }; | |
| 210 | |
| 211 struct magic_item s_magic[MAXSCROLLS] = { | |
| 212 { "monster confusion", 60, 125, 0, 0 }, | |
| 213 { "magic mapping", 50, 150, 0, 0 }, | |
| 214 { "light", 80, 100, 21, 15 }, | |
| 215 { "hold monster", 30, 200, 33, 20 }, | |
| 216 { "sleep", 30, 150, 20, 0 }, | |
| 217 { "enchantment", 180, 200, 9, 9 }, | |
| 218 { "identify", 200, 100, 0, 25 }, | |
| 219 { "scare monster", 40, 250, 27, 21 }, | |
| 220 { "gold detection", 30, 110, 0, 0 }, | |
| 221 { "teleportation", 60, 165, 10, 20 }, | |
| 222 { "create monster", 30, 75, 0, 0 }, | |
| 223 { "remove curse", 70, 120, 9, 15 }, | |
| 224 { "petrification", 10, 185, 0, 0 }, | |
| 225 { "genocide", 10, 300, 0, 0 }, | |
| 226 { "cure disease", 80, 160, 0, 0 }, | |
| 227 { "acquirement", 10, 400, 0, 0 }, | |
| 228 { "protection", 30, 190, 20, 0 }, | |
| 229 }; | |
| 230 | |
| 231 struct magic_item p_magic[MAXPOTIONS] = { | |
| 232 { "clear thought", 60, 180, 27, 10 }, | |
| 233 { "gain ability", 160, 210, 15, 15 }, | |
| 234 { "see invisible", 60, 150, 25, 15 }, | |
| 235 { "healing", 170, 130, 27, 27 }, | |
| 236 { "monster detection", 60, 120, 0, 0 }, | |
| 237 { "magic detection", 60, 105, 0, 0 }, | |
| 238 { "raise level", 20, 350, 11, 10 }, | |
| 239 { "haste self", 100, 180, 30, 5 }, | |
| 240 { "restore abilities", 160, 140, 0, 0 }, | |
| 241 { "phasing", 50, 210, 21, 20 }, | |
| 242 { "invisibility", 50, 230, 0, 15 }, | |
| 243 { "flying", 50, 130, 0, 20 }, | |
| 244 }; | |
| 245 | |
| 246 struct magic_item r_magic[MAXRINGS] = { | |
| 247 { "protection", 50, 200, 33, 25 }, | |
| 248 { "add strength", 60, 200, 33, 25 }, | |
| 249 { "sustain ability", 50, 500, 0, 0 }, | |
| 250 { "searching", 60, 400, 0, 0 }, | |
| 251 { "extra sight", 40, 350, 0, 0 }, | |
| 252 { "alertness", 40, 380, 0, 0 }, | |
| 253 { "aggravate monster", 30, 100, 100, 0 }, | |
| 254 { "dexterity", 60, 220, 33, 25 }, | |
| 255 { "increase damage", 60, 220, 33, 25 }, | |
| 256 { "regeneration", 40, 600, 0, 0 }, | |
| 257 { "slow digestion", 40, 240, 15, 15 }, | |
| 258 { "teleportation", 20, 100, 100, 0 }, | |
| 259 { "stealth", 40, 300, 0, 0 }, | |
| 260 { "add intelligence", 60, 240, 33, 25 }, | |
| 261 { "increase wisdom", 60, 220, 33, 25 }, | |
| 262 { "sustain health", 80, 500, 0, 0 }, | |
| 263 { "burden", 20, 100, 100, 0 }, | |
| 264 { "illumination", 30, 520, 0, 0 }, | |
| 265 { "delusion", 20, 100, 75, 0 }, | |
| 266 { "fear", 20, 100, 100, 0}, | |
| 267 { "heroism", 30, 390, 0, 0 }, | |
| 268 { "fire resistance", 40, 400, 0, 0 }, | |
| 269 { "warmth", 40, 400, 0, 0 }, | |
| 270 { "vampiric regeneration", 10,1000, 0, 0}, | |
| 271 }; | |
| 272 | |
| 273 struct magic_item ws_magic[MAXSTICKS] = { | |
| 274 { "light", 90, 120, 20, 20 }, | |
| 275 { "striking", 60, 115, 0, 0 }, | |
| 276 { "lightning", 35, 200, 0, 0 }, | |
| 277 { "fire", 35, 200, 0, 0 }, | |
| 278 { "cold", 35, 200, 0, 0 }, | |
| 279 { "polymorph", 80, 150, 0, 0 }, | |
| 280 { "magic missile", 80, 170, 0, 0 }, | |
| 281 { "slow monster", 80, 220, 25, 20 }, | |
| 282 { "drain life", 90, 210, 20, 0 }, | |
| 283 { "charging", 80, 400, 0, 0 }, | |
| 284 { "teleport monster", 90, 140, 25, 20 }, | |
| 285 { "cancellation", 40, 130, 0, 0 }, | |
| 286 { "confuse monster", 35, 100, 15, 0}, | |
| 287 { "disintegration", 10, 300, 33, 0}, | |
| 288 { "petrification", 10, 300, 0, 0}, | |
| 289 { "paralyze monster", 30, 180, 15, 0}, | |
| 290 { "degenerate monster", 30, 250, 30, 0}, | |
| 291 { "curing", 10, 250, 25, 0}, | |
| 292 { "wonder", 50, 110, 0, 0}, | |
| 293 { "fear", 30, 180, 0, 0}, | |
| 294 }; | |
| 295 | |
| 296 /* | |
| 297 * WARNING: unique miscellaneous magic items must be put at the end | |
| 298 * of this list. They MUST be the last items. The function | |
| 299 * create_obj() in wizard.c depends on it. | |
| 300 */ | |
| 301 struct magic_item m_magic[MAXMM] = { | |
| 302 { "alchemy jug", 40, 240, 0, 0}, | |
| 303 { "beaker of potions", 60, 300, 0, 0}, | |
| 304 { "book of spells", 60, 300, 0, 0}, | |
| 305 { "boots of elvenkind", 50, 500, 0, 0}, | |
| 306 { "bracers of defense", 140, 100, 15, 0}, | |
| 307 { "chime of opening", 50, 250, 0, 0}, | |
| 308 { "chime of hunger", 50, 100,100, 0}, | |
| 309 { "cloak of displacement", 60, 500, 0, 0}, | |
| 310 { "cloak of protection", 70, 200, 15, 0}, | |
| 311 { "drums of panic", 40, 350, 0, 0}, | |
| 312 { "dust of disappearance", 40, 300, 0, 0}, | |
| 313 { "dust of choking", 30, 100,100, 0}, | |
| 314 { "gauntlets of dexterity", 30, 600, 25, 0}, | |
| 315 { "gauntlets of ogre power", 30, 600, 25, 0}, | |
| 316 { "jewel of attacks", 40, 150,100, 0}, | |
| 317 { "keoghtoms ointment", 50, 200, 0, 0}, | |
| 318 { "robe of powerlessness", 30, 100,100, 0}, | |
| 319 { "gauntlets of fumbling", 30, 100,100, 0}, | |
| 320 { "necklace of adaptation", 20, 500, 0, 0}, | |
| 321 { "necklace of strangulation",30, 110,100, 0}, | |
| 322 { "boots of dancing", 30, 120,100, 0}, | |
| 323 { "book of skills", 20, 650, 0, 0}, | |
| 324 }; | |
| 325 | |
| 326 | |
| 327 struct magic_item rel_magic[MAXRELIC] = { | |
| 328 { "Daggers of Musty Doit", 0, 50000, 0, 0}, | |
| 329 { "Cloak of Emori", 0, 50000, 0, 0}, | |
| 330 { "Ankh of Heil", 0, 50000, 0, 0}, | |
| 331 { "Staff of Ming", 0, 50000, 0, 0}, | |
| 332 { "Wand of Orcus", 0, 50000, 0, 0}, | |
| 333 { "Rod of Asmodeus", 0, 50000, 0, 0}, | |
| 334 { "Amulet of Yendor", 0, 50000, 0, 0}, | |
| 335 { "Mandolin of Brian", 0, 50000, 0, 0}, | |
| 336 { "Horn of Geryon", 0, 50000, 0, 0}, | |
| 337 { "Morning Star of Hruggek", 0, 50000, 0, 0}, | |
| 338 { "Flail of Yeenoghu", 0, 50000, 0, 0}, | |
| 339 }; | |
| 340 | |
| 341 /* | |
| 342 * these are the spells that a magic user can cast | |
| 343 */ | |
| 344 struct spells magic_spells[MAXSPELLS] = { | |
| 345 { P_TFIND, 3, TYP_POTION, 0 }, | |
| 346 { S_IDENT, 5, TYP_SCROLL, 0 }, | |
| 347 { S_LIGHT, 7, TYP_SCROLL, ISBLESSED }, | |
| 348 { S_REMOVE, 7, TYP_SCROLL, 0 }, | |
| 349 { S_CONFUSE, 10, TYP_SCROLL, 0 }, | |
| 350 { S_MAP, 10, TYP_SCROLL, 0 }, | |
| 351 { WS_MISSILE, 15, TYP_STICK, 0 }, | |
| 352 { P_CLEAR, 20, TYP_POTION, 0 }, | |
| 353 { S_TELEP, 20, TYP_SCROLL, 0 }, | |
| 354 { S_SLEEP, 20, TYP_SCROLL, 0 }, | |
| 355 { P_SEEINVIS, 20, TYP_POTION, 0 }, | |
| 356 { WS_COLD, 25, TYP_STICK, 0 }, | |
| 357 { WS_ELECT, 25, TYP_STICK, 0 }, | |
| 358 { WS_FIRE, 25, TYP_STICK, 0 }, | |
| 359 { P_HASTE, 30, TYP_POTION, 0 }, | |
| 360 { WS_CANCEL, 30, TYP_STICK, 0 }, | |
| 361 { P_PHASE, 40, TYP_POTION, 0 }, | |
| 362 { S_HOLD, 50, TYP_SCROLL, 0 }, | |
| 363 { S_PROTECT, 60, TYP_SCROLL, 0 }, | |
| 364 { S_ALLENCH, 70, TYP_SCROLL, 0 }, | |
| 365 }; | |
| 366 | |
| 367 /* | |
| 368 * these are the spells that a cleric can cast | |
| 369 */ | |
| 370 struct spells cleric_spells[MAXPRAYERS] = { | |
| 371 { P_MFIND, 3, TYP_POTION, 0 }, | |
| 372 { P_TFIND, 7, TYP_POTION, 0 }, | |
| 373 { S_IDENT, 15, TYP_SCROLL, 0 }, | |
| 374 { S_LIGHT, 15, TYP_SCROLL, ISBLESSED }, | |
| 375 { S_REMOVE, 20, TYP_SCROLL, 0 }, | |
| 376 { P_HEALING, 25, TYP_POTION, 0 }, | |
| 377 { S_CURING, 30, TYP_SCROLL, 0 }, | |
| 378 { S_MAP, 30, TYP_SCROLL, 0 }, | |
| 379 { P_CLEAR, 30, TYP_POTION, 0 }, | |
| 380 { P_SEEINVIS, 35, TYP_POTION, 0 }, | |
| 381 { P_RESTORE, 40, TYP_POTION, 0 }, | |
| 382 { P_PHASE, 40, TYP_POTION, 0 }, | |
| 383 { S_TELEP, 45, TYP_SCROLL, 0 }, | |
| 384 { WS_CURING, 50, TYP_STICK, ISBLESSED }, | |
| 385 { WS_DRAIN, 50, TYP_STICK, 0 }, | |
| 386 }; | |
| 387 | |
| 388 char *cnames[4][11] = { | |
| 389 { "Veteran", "Warrior", | |
| 390 "Swordsman", "Hero", | |
| 391 "Swashbuckler", "Myrmidon", | |
| 392 "Champion", "Superhero", | |
| 393 "Lord", "Lord", | |
| 394 "Lord" | |
| 395 }, | |
| 396 { "Prestidigitator", "Evoker", | |
| 397 "Conjurer", "Theurgist", | |
| 398 "Thaumaturgist", "Magician", | |
| 399 "Enchanter", "Warlock", | |
| 400 "Sorcerer", "Necromancer", | |
| 401 "Wizard" | |
| 402 }, | |
| 403 { "Acolyte", "Adept", | |
| 404 "Priest", "Curate", | |
| 405 "Prefect", "Canon", | |
| 406 "Lama", "Patriarch", | |
| 407 "High Priest", "High Priest", | |
| 408 "High Priest" | |
| 409 }, | |
| 410 { "Rogue", "Footpad", | |
| 411 "Cutpurse", "Robber", | |
| 412 "Burglar", "Filcher", | |
| 413 "Sharper", "Magsman", | |
| 414 "Thief", "Master Thief", | |
| 415 "Master Thief" | |
| 416 } | |
| 417 } ; | |
| 418 | |
| 419 struct h_list helpstr[] = { | |
| 420 '?', " prints help", | |
| 421 '/', " identify object", | |
| 422 'h', " left", | |
| 423 'j', " down", | |
| 424 'k', " up", | |
| 425 'l', " right", | |
| 426 'y', " up & left", | |
| 427 'u', " up & right", | |
| 428 'b', " down & left", | |
| 429 'n', " down & right", | |
| 430 'H', " run left", | |
| 431 'J', " run down", | |
| 432 'K', " run up", | |
| 433 'L', " run right", | |
| 434 'Y', " run up & left", | |
| 435 'U', " run up & right", | |
| 436 'B', " run down & left", | |
| 437 'N', " run down & right", | |
| 438 't', "<dir> throw something", | |
| 439 'f', "<dir> forward until find something", | |
| 440 'z', "<dir> zap a wand or staff", | |
| 441 '>', " go down a staircase", | |
| 442 '<', " go up a staircase", | |
| 443 's', " search for trap/secret door", | |
| 444 '.', " rest for a while", | |
| 445 'i', " inventory", | |
| 446 'I', " inventory single item", | |
| 447 'q', " quaff potion", | |
| 448 'r', " read paper", | |
| 449 'e', " eat food", | |
| 450 'w', " wield a weapon", | |
| 451 'W', " wear something", | |
| 452 'T', " take off something", | |
| 453 'd', " drop object", | |
| 454 'P', " pick up object(s)", | |
| 455 'c', " call object (generic)", | |
| 456 'm', " mark object (specific)", | |
| 457 'o', " examine/set options", | |
| 458 'C', " cast a spell", | |
| 459 'p', " pray", | |
| 460 'a', " affect the undead", | |
| 461 '^', " set a trap", | |
| 462 'G', " sense gold", | |
| 463 'D', " dip something (into a pool)", | |
| 464 CTRL('T'), "<dir> take (steal) from (direction)", | |
| 465 CTRL('U'), " use miscellaneous magic item", | |
| 466 CTRL('L'), " redraw screen", | |
| 467 CTRL('R'), " repeat last message", | |
| 468 ESCAPE, " cancel command", | |
| 469 'v', " print program version number", | |
| 470 '!', " shell escape", | |
| 471 'S', " save game", | |
| 472 'Q', " quit", | |
| 473 0, 0 | |
| 474 } ; | |
| 475 | |
| 476 struct h_list wiz_help[] = { | |
| 477 CTRL('A'), " system activity", | |
| 478 CTRL('C'), " move to another dungeon level", | |
| 479 CTRL('D'), " down 1 dungeon level", | |
| 480 CTRL('E'), " food remaining", | |
| 481 CTRL('F'), " display entire level", | |
| 482 CTRL('H'), " jump 9 experience levels", | |
| 483 CTRL('I'), " inventory of level", | |
| 484 CTRL('J'), " teleport", | |
| 485 CTRL('N'), " recharge staff", | |
| 486 CTRL('P'), " toggle wizard status", | |
| 487 CTRL('U'), " up 1 dungeon level", | |
| 488 CTRL('X'), " detect monsters", | |
| 489 CTRL('Z'), " identify", | |
| 490 'M', " make object", | |
| 491 0, 0 | |
| 492 }; | |
| 493 | |
| 494 | |
| 495 #define HPT(x) x | |
| 496 struct monster monsters[NUMMONST+1] = { | |
| 497 /* {"Name", | |
| 498 CARRY, NORMAL, WANDER, APPEAR, INTEL, | |
| 499 {ATTRIBUTES}, | |
| 500 "SUMMONED_CREATURE", NUMBER_SUMMONED, | |
| 501 ADDED_EXPERIENCE/HIT_POINT, | |
| 502 {str exp, level, "armor", hit_points, | |
| 503 "damage"}}, */ | |
| 504 {"unknown", | |
| 505 0, FALSE, FALSE, '\0', "", | |
| 506 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
| 507 0, | |
| 508 0, 0, | |
| 509 {10, 0, 0, 0, HPT(""), | |
| 510 ""}}, | |
| 511 {"bat", | |
| 512 0, TRUE, FALSE, 'b', "2-4", | |
| 513 {ISMEAN, ISHUH, CANDISEASE, ISFLY, ISHASTE}, | |
| 514 0, 0, | |
| 515 0, | |
| 516 {10, 5, 2, 1, HPT("1d4"), | |
| 517 "1d2"}}, | |
| 518 {"giant rat", | |
| 519 0, TRUE, TRUE, 'R', "2-4", | |
| 520 {ISMEAN, CANDISEASE}, | |
| 521 0, 0, | |
| 522 1, | |
| 523 {10, 7, 1, 7, HPT("1d4"), | |
| 524 "1d3"}}, | |
| 525 {"kobold", | |
| 526 10, TRUE, TRUE, 'K', "8", | |
| 527 {ISMEAN, CANSHOOT, CARRYWEAPON}, | |
| 528 0, 0, | |
| 529 1, | |
| 530 {9, 5, 1, 7, HPT("1d4"), | |
| 531 "1d4"}}, | |
| 532 {"gnome", | |
| 533 10, TRUE, TRUE, 'G', "11-12", | |
| 534 {CANSHOOT, CARRYPOTION, CARRYWEAPON}, | |
| 535 0, 0, | |
| 536 1, | |
| 537 {10, 8, 1, 5, HPT("1d6"), | |
| 538 "1d6"}}, | |
| 539 {"halfling", | |
| 540 10, TRUE, TRUE, 'H', "11-12", | |
| 541 {CANSHOOT, CARRYPOTION, CARRYWEAPON}, | |
| 542 0, 0, | |
| 543 1, | |
| 544 {8, 9, 1, 4, HPT("1d6"), | |
| 545 "1d6"}}, | |
| 546 {"dwarf", | |
| 547 15, TRUE, TRUE, 'D', "11-12", | |
| 548 {CANSHOOT, CARRYPOTION, CARRYWEAPON}, | |
| 549 0, 0, | |
| 550 1, | |
| 551 {14, 10, 1, 4, HPT("1d8"), | |
| 552 "1d8"}}, | |
| 553 {"orc", | |
| 554 15, TRUE, TRUE, 'O', "8", | |
| 555 {ISMEAN, CANSHOOT, CARRYGOLD, CARRYWEAPON}, | |
| 556 0, 0, | |
| 557 1, | |
| 558 {12, 10, 1, 6, HPT("1d8"), | |
| 559 "1d8"}}, | |
| 560 {"manes", | |
| 561 0, TRUE, TRUE, 'M', "2-4", | |
| 562 {ISMEAN, MAGICHIT, ISUNDEAD, TURNABLE}, | |
| 563 0, 0, | |
| 564 1, | |
| 565 {10, 18, 1, 7, HPT("1d8"), | |
| 566 "1d2/1d2/1d4"}}, | |
| 567 {"elf", | |
| 568 50, TRUE, TRUE, 'E', "13-20", | |
| 569 {CANSHOOT, CARRYPOTION, CARRYSCROLL, CARRYWEAPON}, | |
| 570 0, 0, | |
| 571 2, | |
| 572 {12, 20, 1, 5, HPT("1d8+1"), | |
| 573 "1d10"}}, | |
| 574 {"hobgoblin", | |
| 575 10, TRUE, TRUE, 'h', "8-10", | |
| 576 {ISMEAN, CANSHOOT, CARRYWEAPON}, | |
| 577 0, 0, | |
| 578 2, | |
| 579 {14, 20, 1, 5, HPT("1d8+1"), | |
| 580 "1d8"}}, | |
| 581 {"fire beetle", | |
| 582 0, TRUE, TRUE, 'B', "0", | |
| 583 {ISMEAN, HASFIRE}, | |
| 584 0, 0, | |
| 585 2, | |
| 586 {10, 20, 1, 4, HPT("1d8+2"), | |
| 587 "2d4"}}, | |
| 588 {"giant ant", | |
| 589 0, TRUE, TRUE, 'A', "1", | |
| 590 {ISMEAN, CANPOISON}, | |
| 591 0, 0, | |
| 592 3, | |
| 593 {10, 40, 2, 3, HPT("2d8"), | |
| 594 "1d6/1d6"}}, | |
| 595 {"zombie", | |
| 596 0, TRUE, TRUE, 'Z', "0", | |
| 597 {ISMEAN, ISUNDEAD, TURNABLE}, | |
| 598 0, 0, | |
| 599 2, | |
| 600 {10, 20, 2, 8, HPT("2d8"), | |
| 601 "1d8"}}, | |
| 602 {"ear seeker", | |
| 603 0, TRUE, TRUE, 'e', "0", | |
| 604 {ISMEAN, CANINFEST}, | |
| 605 0, 0, | |
| 606 0, | |
| 607 {10, 0, 1, 9, HPT("1d1"), | |
| 608 "0d0"}}, | |
| 609 {"shrieker", | |
| 610 0, TRUE, FALSE, 'S', "0", | |
| 611 {CANSHRIEK, NOMOVE, NOSTAB}, | |
| 612 0, 0, | |
| 613 1, | |
| 614 {10, 5, 3, 7, HPT("3d8"), | |
| 615 "0d0"}}, | |
| 616 {"stirge", | |
| 617 0, TRUE, TRUE, 's', "1", | |
| 618 {ISMEAN, CANDRAW, ISFLY}, | |
| 619 0, 0, | |
| 620 2, | |
| 621 {10, 36, 4, 8, HPT("1d8+1"), | |
| 622 "1d3"}}, | |
| 623 {"gas spore", | |
| 624 0, TRUE, FALSE, 'a', "0", | |
| 625 {ISMEAN, CANEXPLODE, CANINFEST, ISFLY}, | |
| 626 0, 0, | |
| 627 5, | |
| 628 {10, 90, 1, 9, HPT("1d1"), | |
| 629 "1d1"}}, | |
| 630 {"troglodyte", | |
| 631 5, TRUE, TRUE, 'T', "5-7", | |
| 632 {ISMEAN, CANSMELL, CANSHOOT, CARRYGOLD, CARRYWEAPON}, | |
| 633 0, 0, | |
| 634 2, | |
| 635 {10, 36, 2, 5, HPT("2d8"), | |
| 636 "1d3/1d3/2d5"}}, | |
| 637 {"lemure", | |
| 638 0, TRUE, FALSE, 'L', "2-4", | |
| 639 {ISMEAN, ISREGEN, MAGICHIT, ISUNDEAD, TURNABLE}, | |
| 640 0, 0, | |
| 641 3, | |
| 642 {10, 65, 3, 7, HPT("3d8"), | |
| 643 "1d3"}}, | |
| 644 {"bugbear", | |
| 645 5, TRUE, TRUE, 'b', "5-8", | |
| 646 {ISMEAN, CANSHOOT, CANSURPRISE, CARRYGOLD, CARRYPOTION, | |
| 647 CARRYWEAPON}, | |
| 648 0, 0, | |
| 649 4, | |
| 650 {16, 135, 3, 5, HPT("3d8+1"), | |
| 651 "2d4"}}, | |
| 652 {"wererat", | |
| 653 20, TRUE, TRUE, 'r', "11-12", | |
| 654 {ISMEAN, MAGICHIT, CARRYFOOD}, | |
| 655 0, 0, | |
| 656 4, | |
| 657 {10, 150, 3, 6, HPT("3d8+1"), | |
| 658 "1d8"}}, | |
| 659 {"ghoul", | |
| 660 0, TRUE, TRUE, 'g', "5-7", | |
| 661 {ISMEAN, CANPARALYZE, ISUNDEAD, TURNABLE}, | |
| 662 0, 0, | |
| 663 2, | |
| 664 {10, 65, 2, 6, HPT("2d8"), | |
| 665 "1d3/1d3/1d6"}}, | |
| 666 {"leprechaun", | |
| 667 100, TRUE, FALSE, 'l', "15-16", | |
| 668 {CARRYGOLD, STEALGOLD}, | |
| 669 0, 0, | |
| 670 1, | |
| 671 {10, 80, 6, 3, HPT("1d4+1"), | |
| 672 "0d0"}}, | |
| 673 {"ogre", | |
| 674 50, TRUE, TRUE, 'o', "5-7", | |
| 675 {ISMEAN, CARRYGOLD, CARRYWEAPON}, | |
| 676 0, 0, | |
| 677 5, | |
| 678 {18, 90, 4, 5, HPT("4d8+1"), | |
| 679 "1d10"}}, | |
| 680 {"centaur", | |
| 681 15, TRUE, TRUE, 'C', "5-10", | |
| 682 {CANSHOOT, CARRYPOTION, CARRYGOLD}, | |
| 683 0, 0, | |
| 684 4, | |
| 685 {10, 85, 4, 4, HPT("4d8"), | |
| 686 "1d6/1d6"}}, | |
| 687 {"nymph", | |
| 688 100, TRUE, FALSE, 'N', "15-16", | |
| 689 {STEALMAGIC, CARRYSCROLL, CARRYPOTION}, | |
| 690 0, 0, | |
| 691 3, | |
| 692 {10, 350, 4, 9, HPT("3d8"), | |
| 693 "0d0"}}, | |
| 694 {"violet fungi", | |
| 695 0, TRUE, FALSE, 'F', "0", | |
| 696 {ISMEAN, CANHOLD, NOMOVE, CANROT, NOSTAB}, | |
| 697 0, 0, | |
| 698 4, | |
| 699 {10, 135, 3, 7, HPT("3d8"), | |
| 700 "5d1"}}, | |
| 701 {"giant tick", | |
| 702 0, TRUE, TRUE, 't', "0", | |
| 703 {ISMEAN, CANDRAW, CANDISEASE}, | |
| 704 0, 0, | |
| 705 2, | |
| 706 {10, 105, 3, 3, HPT("3d8"), | |
| 707 "1d4"}}, | |
| 708 {"gelatinous cube", | |
| 709 90, TRUE, TRUE, 'c', "0", | |
| 710 {ISMEAN, ISSCAVENGE, CANPARALYZE, NOSTAB, CARRYFOOD}, | |
| 711 0, 0, | |
| 712 4, | |
| 713 {10, 150, 4, 8, HPT("4d8"), | |
| 714 "2d4"}}, | |
| 715 {"blink dog", | |
| 716 0, TRUE, TRUE, 'B', "8-10", | |
| 717 {ISMEAN, CANBLINK}, | |
| 718 0, 0, | |
| 719 5, | |
| 720 {10, 170, 4, 5, HPT("4d8"), | |
| 721 "1d6"}}, | |
| 722 {"very young dragon", | |
| 723 10, TRUE, FALSE, 'd', "15-16", | |
| 724 {ISMEAN, CANBRANDOM, ISGREED, CARRYGOLD, CARRYSTICK}, | |
| 725 0, 0, | |
| 726 9, | |
| 727 {10, 100, 9, -1, HPT("9d1"), | |
| 728 "1d4/1d4/2d4"}}, | |
| 729 {"rust monster", | |
| 730 0, TRUE, TRUE, 'R', "1", | |
| 731 {ISMEAN, CANRUST}, | |
| 732 0, 0, | |
| 733 4, | |
| 734 {10, 185, 5, 2, HPT("3d8"), | |
| 735 "0d0/0d0"}}, | |
| 736 {"ghast", | |
| 737 0, TRUE, TRUE, 'G', "11-12", | |
| 738 {CANPARALYZE, CANSTINK, ISMEAN, ISUNDEAD, TURNABLE}, | |
| 739 0, 0, | |
| 740 4, | |
| 741 {10, 190, 4, 4, HPT("4d8"), | |
| 742 "1d4/1d4/1d8"}}, | |
| 743 {"blindheim", | |
| 744 0, TRUE, FALSE, 'b', "1", | |
| 745 {CANBLIND, ISMEAN}, | |
| 746 0, 0, | |
| 747 4, | |
| 748 {8, 200, 2, 1, HPT("4d8+2"), | |
| 749 "1d8"}}, | |
| 750 {"shadow", | |
| 751 0, TRUE, TRUE, 'S', "5-7", | |
| 752 {ISSHADOW, ISMEAN, CANCHILL, ISUNDEAD, TURNABLE}, | |
| 753 0, 0, | |
| 754 4, | |
| 755 {10, 255, 3, 7, HPT("3d8+3"), | |
| 756 "1d4+1"}}, | |
| 757 {"gargoyle", | |
| 758 5, TRUE, TRUE, 'g', "5-7", | |
| 759 {ISMEAN, MAGICHIT, CARRYSTICK}, | |
| 760 0, 0, | |
| 761 5, | |
| 762 {10, 165, 4, 5, HPT("4d8+4"), | |
| 763 "1d3/1d3/1d6/1d4"}}, | |
| 764 {"su-monster", 10, TRUE, TRUE, 's', "8-10", | |
| 765 {ISMEAN, CARRYSCROLL, CARRYGOLD, CARRYFOOD}, | |
| 766 0, 0, | |
| 767 6, | |
| 768 {10, 225, 5, 6, HPT("5d8+5"), | |
| 769 "4d4/2d4"}}, | |
| 770 {"gray ooze", | |
| 771 50, TRUE, FALSE, 'o', "1", | |
| 772 {ISMEAN, NOMOVE, CANRUST, ISSCAVENGE, NOCOLD, NOFIRE, NOSTAB, | |
| 773 CARRYSTICK, CARRYFOOD}, | |
| 774 0, 0, | |
| 775 5, | |
| 776 {10, 200, 3, 8, HPT("3d8+3"), | |
| 777 "2d8"}}, | |
| 778 {"owlbear", | |
| 779 5, TRUE, TRUE, 'O', "5-7", | |
| 780 {ISMEAN, CANHUG, CARRYRING, CARRYFOOD}, | |
| 781 0, 0, | |
| 782 8, | |
| 783 {10, 225, 5, 5, HPT("5d8+2"), | |
| 784 "1d6/1d6/2d6"}}, | |
| 785 {"quasit", | |
| 786 30, TRUE, TRUE, 'Q', "5-7", | |
| 787 {ISMEAN, ISREGEN, MAGICHIT, CANSURPRISE, CANITCH, | |
| 788 CARRYSCROLL, CARRYGOLD, CARRYPOTION, NOCOLD, NOFIRE, NOBOLT}, | |
| 789 0, 0, | |
| 790 3, | |
| 791 {10, 325, 7, 2, HPT("3d8"), | |
| 792 "1d2/1d2/1d4"}}, | |
| 793 {"doppleganger", | |
| 794 0, TRUE, TRUE, 'D', "11-12", | |
| 795 {ISMEAN, CANSURPRISE}, | |
| 796 0, 0, | |
| 797 4, | |
| 798 {10, 330, 10, 5, HPT("4d8"), | |
| 799 "1d12"}}, | |
| 800 {"yeti", | |
| 801 30, TRUE, TRUE, 'Y', "8-10", | |
| 802 {ISMEAN, CANPARALYZE, CANHUG, NOCOLD, CANSURPRISE, | |
| 803 CARRYGOLD, CARRYPOTION}, | |
| 804 0, 0, | |
| 805 8, | |
| 806 {13, 500, 6, 6, HPT("4d8+4"), | |
| 807 "1d6/1d6"}}, | |
| 808 {"leucrotta", | |
| 809 0, TRUE, FALSE, 'L', "8-10", | |
| 810 {ISMEAN}, | |
| 811 0, 0, | |
| 812 8, | |
| 813 {10, 475, 6, 4, HPT("6d8+1"), | |
| 814 "3d6/1d6/1d6"}}, | |
| 815 {"imp", | |
| 816 25, TRUE, TRUE, 'I', "8-10", | |
| 817 {ISMEAN, ISREGEN, MAGICHIT, CANPOISON, CANSURPRISE, | |
| 818 CANTELEPORT, CARRYRING, CARRYSTICK, NOCOLD, NOBOLT, NOFIRE}, | |
| 819 0, 0, | |
| 820 3, | |
| 821 {10, 275, 2, 2, HPT("2d8+2"), | |
| 822 "1d4"}}, | |
| 823 {"cockatrice", | |
| 824 0, TRUE, TRUE, 'C', "1", | |
| 825 {ISMEAN, TOUCHSTONE}, | |
| 826 0, 0, | |
| 827 5, | |
| 828 {10, 315, 5, 6, HPT("5d8"), | |
| 829 "1d3"}}, | |
| 830 {"wight", | |
| 831 0, TRUE, TRUE, 'W', "8-10", | |
| 832 {ISMEAN, CANDRAIN, MAGICHIT, ISUNDEAD, TURNABLE}, | |
| 833 0, 0, | |
| 834 5, | |
| 835 {10, 540, 4, 5, HPT("4d8+3"), | |
| 836 "1d4"}}, | |
| 837 {"troll", | |
| 838 50, TRUE, FALSE, 'T', "5-7", | |
| 839 {ISMEAN, ISREGEN, CARRYFOOD, CARRYGOLD, CARRYSTICK}, | |
| 840 0, 0, | |
| 841 8, | |
| 842 {18, 600, 6, 4, HPT("6d8+6"), | |
| 843 "1d4+4/1d4+4/2d6"}}, | |
| 844 {"jackalwere", | |
| 845 50, TRUE, TRUE, 'J', "11-12", | |
| 846 {ISMEAN, CANSHOOT, CANSNORE, MAGICHIT, CARRYFOOD, CARRYGOLD, | |
| 847 CARRYSCROLL}, | |
| 848 0, 0, | |
| 849 4, | |
| 850 {10, 800, 4, 4, HPT("4d8"), | |
| 851 "2d4"}}, | |
| 852 {"wraith", | |
| 853 0, TRUE, TRUE, 'w', "11-12", | |
| 854 {ISMEAN, CANDRAIN, MAGICHIT, ISUNDEAD, TURNABLE}, | |
| 855 0, 0, | |
| 856 6, | |
| 857 {10, 575, 5, 4, HPT("5d8+3"), | |
| 858 "1d6"}}, | |
| 859 {"erinyes", | |
| 860 25, TRUE, TRUE, 'E', "8-10", | |
| 861 {ISMEAN, CANFRIGHTEN, CANSUMMON, TURNABLE, CANPAIN, CANSEE, | |
| 862 NOFIRE, CANTELEPORT, CARRYRING, CARRYSTICK}, | |
| 863 "ghoul", 3, | |
| 864 8, | |
| 865 {10, 875, 7, 2, HPT("6d8+6"), | |
| 866 "2d4"}}, | |
| 867 {"lava child", | |
| 868 0, TRUE, TRUE, 'l', "8-10", | |
| 869 {ISMEAN, NOMETAL}, | |
| 870 0, 0, | |
| 871 8, | |
| 872 {10, 950, 5, 4, HPT("5d8+1"), | |
| 873 "1d6/1d6/2d12"}}, | |
| 874 {"basilisk", | |
| 875 0, TRUE, FALSE, 'B', "1", | |
| 876 {ISMEAN, LOOKSTONE}, | |
| 877 0, 0, | |
| 878 8, | |
| 879 {10, 1000, 6, 4, HPT("6d8+1"), | |
| 880 "1d10"}}, | |
| 881 {"mummy", | |
| 882 20, TRUE, FALSE, 'm', "5-7", | |
| 883 {ISMEAN,CANINFEST, MAGICHIT, CANFRIGHTEN, HALFDAMAGE, ISUNDEAD, | |
| 884 TURNABLE, CARRYRING, CARRYSTICK}, | |
| 885 0, 0, | |
| 886 8, | |
| 887 {10, 1150, 6, 3, HPT("6d8+3"), | |
| 888 "1d12"}}, | |
| 889 {"otyugh", | |
| 890 0, TRUE, TRUE, 'o', "5-10", | |
| 891 {ISMEAN, CANDISEASE}, | |
| 892 0, 0, | |
| 893 8, | |
| 894 {10, 700, 7, 3, HPT("7d8"), | |
| 895 "1d8/1d8/1d4+1"}}, | |
| 896 {"adult dragon", | |
| 897 30, TRUE, FALSE, 'd', "15-16", | |
| 898 {ISMEAN, CANBRANDOM, ISGREED, CANFRIGHTEN, CARRYGOLD, | |
| 899 CARRYPOTION, CARRYSTICK}, | |
| 900 0, 0, | |
| 901 9, | |
| 902 {10, 1000, 9, -1, HPT("45d1"), | |
| 903 "1d6/1d6/2d6"}}, | |
| 904 {"invisible stalker", | |
| 905 0, TRUE, TRUE, 'i', "13-14", | |
| 906 {ISMEAN, ISINVIS}, | |
| 907 0, 0, | |
| 908 10, | |
| 909 {10, 1090, 8, 3, HPT("8d8"), | |
| 910 "4d4"}}, | |
| 911 {"xorn", | |
| 912 0, TRUE, TRUE, 'X', "8-10", | |
| 913 {ISMEAN, CANINWALL, NOCOLD, NOFIRE, CANSURPRISE, NOBOLT}, | |
| 914 0, 0, | |
| 915 10, | |
| 916 {10, 1275, 7, -2, HPT("7d8+7"), | |
| 917 "1d3/1d3/1d3/4d6"}}, | |
| 918 {"will-o-wisp", 100, TRUE, FALSE, 'W', "15-16", | |
| 919 {ISMEAN, CANSURPRISE, ISFLY, CARRYGOLD, CARRYMISC, NOBOLT}, | |
| 920 0, 0, | |
| 921 12, | |
| 922 {10, 2000, 9, -8, HPT("9d8"), | |
| 923 "2d8"}}, | |
| 924 {"chimera", | |
| 925 0, TRUE, FALSE, 'c', "2-4", | |
| 926 {ISMEAN, CANBFIRE, NOFIRE}, | |
| 927 0, 0, | |
| 928 12, | |
| 929 {10, 1000, 9, 6, HPT("9d8"), | |
| 930 "1d3/1d3/1d4/1d4/2d4/3d4"}}, | |
| 931 {"mimic", | |
| 932 20, TRUE, FALSE, 'M', "2-10", | |
| 933 {ISDISGUISE, CANHOLD, CARRYFOOD, CARRYRING, CARRYGOLD}, | |
| 934 0, 0, | |
| 935 12, | |
| 936 {10, 1300, 9, 7, HPT("9d8"), | |
| 937 "3d4"}}, | |
| 938 {"horned devil", | |
| 939 5, TRUE, TRUE, 'H', "13-14", | |
| 940 {ISMEAN, CANFRIGHTEN, CANINFEST, CANPOISON, MAGICHIT, CANSUMMON, | |
| 941 NOFIRE, CANTELEPORT, CARRYGOLD, CARRYRING, CARRYSTICK}, | |
| 942 "wight", 2, | |
| 943 6, | |
| 944 {10, 1320, 7, -3, HPT("5d8+5"), | |
| 945 "1d4/1d4/1d4+1/1d3"}}, | |
| 946 {"specter", | |
| 947 0, TRUE, TRUE, 'S', "13-14", | |
| 948 {ISMEAN, DOUBLEDRAIN, ISUNDEAD, TURNABLE}, | |
| 949 0, 0, | |
| 950 10, | |
| 951 {10, 1650, 7, 2, HPT("7d8+3"), | |
| 952 "1d8"}}, | |
| 953 {"lamia", | |
| 954 0, TRUE, TRUE, 'L', "13-14", | |
| 955 {ISMEAN, TAKEWISDOM}, | |
| 956 0, 0, | |
| 957 9, | |
| 958 {10, 1500, 9, 3, HPT("9d8"), | |
| 959 "1d4/1d4"}}, | |
| 960 {"neo-otyugh", | |
| 961 0, TRUE, TRUE, 'N', "10-12", | |
| 962 {ISMEAN, CANDISEASE}, | |
| 963 0, 0, | |
| 964 10, | |
| 965 {12, 1500, 10, 0, HPT("12d8"), | |
| 966 "2d6/2d6/1d3"}}, | |
| 967 {"barbed devil", | |
| 968 0, TRUE, TRUE, 'B', "11-12", | |
| 969 {TOUCHFEAR, CANSUMMON, ISMEAN, CANHOLD, TURNABLE, NOFIRE, | |
| 970 CANTELEPORT}, | |
| 971 "ghast", 4, | |
| 972 10, | |
| 973 {10, 1425, 8, 0, HPT("8d8"), | |
| 974 "2d4/2d4/3d4"}}, | |
| 975 {"vrock", | |
| 976 10, TRUE, TRUE, 'V', "5-7", | |
| 977 {ISMEAN, CANSUMMON, CANSEE, TURNABLE, CANTELEPORT, CARRYGOLD, | |
| 978 CARRYRING, CARRYSTICK}, | |
| 979 "erinyes", 2, | |
| 980 10, | |
| 981 {10, 1500, 8, 0, HPT("8d8"), | |
| 982 "1d4/1d4/1d8/1d8/1d6"}}, | |
| 983 {"shambling mound", | |
| 984 25, TRUE, TRUE, 's', "5-7", | |
| 985 {ISMEAN, CANSUFFOCATE, NOCOLD, NOFIRE, CANHOLD, CARRYGOLD, | |
| 986 CARRYFOOD, CARRYRING}, | |
| 987 0, 0, | |
| 988 10, | |
| 989 {10, 1800, 9, 0, HPT("9d8"), | |
| 990 "2d8/2d8"}}, | |
| 991 {"umber hulk", | |
| 992 40, TRUE, TRUE, 'U', "8-10", | |
| 993 {ISMEAN, CANHUH, CANINWALL, CANTUNNEL, CARRYSCROLL, | |
| 994 CARRYPOTION, CARRYFOOD}, | |
| 995 0, 0, | |
| 996 12, | |
| 997 {10, 1700, 8, 2, HPT("8d8+8"), | |
| 998 "3d4/3d4/2d5"}}, | |
| 999 {"ettin", | |
| 1000 0, TRUE, TRUE, 'e', "0", | |
| 1001 {ISMEAN, CANSHOOT}, | |
| 1002 0, 0, | |
| 1003 14, | |
| 1004 {10, 1950, 10, 3, HPT("10d8"), | |
| 1005 "2d8/3d6"}}, | |
| 1006 {"black pudding", | |
| 1007 30, TRUE, FALSE, 'P', "0", | |
| 1008 {ISMEAN, CANRUST, NOCOLD, BOLTDIVIDE, BLOWDIVIDE, ISSCAVENGE, | |
| 1009 NOSTAB, CARRYSCROLL, CARRYSTICK, CARRYPOTION, CARRYRING}, | |
| 1010 0, 0, | |
| 1011 14, | |
| 1012 {10, 2000, 10, 6, HPT("10d8"), | |
| 1013 "3d8"}}, | |
| 1014 {"hezrou", | |
| 1015 15, TRUE, TRUE, 'h', "5-7", | |
| 1016 {ISMEAN, CANFRIGHTEN, CANSEE, CANSUMMON, TURNABLE, CANTELEPORT, | |
| 1017 CARRYPOTION, CARRYRING, CARRYSTICK}, | |
| 1018 "wight", 3, | |
| 1019 12, | |
| 1020 {10, 2000, 9, -2, HPT("9d8"), | |
| 1021 "1d3/1d3/4d4"}}, | |
| 1022 {"glabrezu", | |
| 1023 25, TRUE, FALSE, 'G', "8-10", | |
| 1024 {ISMEAN, CANFRIGHTEN, CANSEE, CANSUMMON, TURNABLE, CANTELEPORT, | |
| 1025 CARRYSCROLL, CARRYPOTION, CARRYGOLD}, | |
| 1026 "wraith", 3, | |
| 1027 14, | |
| 1028 {10, 2400, 10, -4, HPT("10d8"), | |
| 1029 "2d6/2d6/1d3/1d3/1d4+1"}}, | |
| 1030 {"bone devil", | |
| 1031 0, TRUE, TRUE, 'b', "11-12", | |
| 1032 {ISMEAN, CANFRIGHTEN, CANSEE, CANSUMMON, CANSURPRISE, CANCHILL, | |
| 1033 TURNABLE, NOFIRE, NOCOLD, CANTELEPORT}, | |
| 1034 "ghast", 3, | |
| 1035 12, | |
| 1036 {10, 2800, 9, -1, HPT("9d8"), | |
| 1037 "2d4"}}, | |
| 1038 {"white pudding", | |
| 1039 30, TRUE, FALSE, 'w', "0", | |
| 1040 {ISMEAN, CANDISSOLVE, NOCOLD, BOLTDIVIDE, BLOWDIVIDE, | |
| 1041 ISSCAVENGE, NOSTAB, CARRYRING, CARRYSTICK, CARRYSCROLL, | |
| 1042 CARRYPOTION}, | |
| 1043 0, 0, | |
| 1044 14, | |
| 1045 {10, 2200, 9, 8, HPT("10d8"), | |
| 1046 "7d4"}}, | |
| 1047 {"vampire", | |
| 1048 20, TRUE, TRUE, 'v', "15-16", | |
| 1049 {ISMEAN, ISREGEN, CANSUCK, ISUNDEAD, TURNABLE, CARRYMISC}, | |
| 1050 0, 0, | |
| 1051 12, | |
| 1052 {20, 3800, 8, 1, HPT("8d8+3"), | |
| 1053 "1d6+4"}}, | |
| 1054 {"ghost", | |
| 1055 20, TRUE, FALSE, 'g', "13-14", | |
| 1056 {ISMEAN, CANFRIGHTEN, CANAGE, ISUNDEAD, TURNABLE, CARRYMISC, | |
| 1057 CMAGICHIT, CANINWALL}, | |
| 1058 0, 0, | |
| 1059 10, | |
| 1060 {13, 5000, 12, 0, HPT("10d8"), | |
| 1061 "1d12"}}, | |
| 1062 {"intellect devourer", | |
| 1063 0, TRUE, FALSE, 'D', HPT("11-12"), | |
| 1064 {ISMEAN, TAKEINTEL, CMAGICHIT, HALFDAMAGE, CANSURPRISE, NOFIRE, | |
| 1065 NOCOLD}, | |
| 1066 0, 0, | |
| 1067 9, | |
| 1068 {10, 5000, 7, 4, HPT("6d8+6"), | |
| 1069 "1d4/1d4/1d4/1d4"}}, | |
| 1070 {"ice devil", | |
| 1071 30, TRUE, FALSE, 'I', "13-14", | |
| 1072 {ISMEAN, CANSEE, ISREGEN, CANFRIGHTEN, CANSUMMON, CANBICE, | |
| 1073 NOCOLD, NOFIRE, CANSLOW, CANTELEPORT, CARRYSCROLL, CARRYRING, | |
| 1074 CARRYSTICK}, | |
| 1075 "bone devil", 2, | |
| 1076 16, | |
| 1077 {20, 4400, 11, -4, HPT("11d8"), | |
| 1078 "1d4/1d4/2d4/3d4"}}, | |
| 1079 {"purple worm", | |
| 1080 70, TRUE, TRUE, 'p', "0", | |
| 1081 {ISMEAN, CANPOISON, CANINWALL, CANTUNNEL, CARRYFOOD, CARRYGOLD}, | |
| 1082 0, 0, | |
| 1083 20, | |
| 1084 {10, 4900, 15, 6, HPT("15d8"), | |
| 1085 "2d12/2d4"}}, | |
| 1086 {"ancient brass dragon", | |
| 1087 70, TRUE, FALSE, 'r', "13-14", | |
| 1088 {CANBSGAS, CANBFGAS, ISGREED, CANSEE, NOSLEEP, NOFEAR, | |
| 1089 CARRYGOLD, CARRYRING}, | |
| 1090 0, 0, | |
| 1091 50, | |
| 1092 {10, 10000, 8, 2, HPT("0d8+64"), | |
| 1093 "1d4/1d4/4d4"}}, | |
| 1094 {"pit fiend", | |
| 1095 100, TRUE, TRUE, 'f', "15-16", | |
| 1096 {ISMEAN, CANSEE, BMAGICHIT, CANFRIGHTEN, CANHOLD, CANSUMMON, | |
| 1097 CANBFIRE, NOFIRE, CANTELEPORT, CARRYSTICK, HASFIRE}, | |
| 1098 "barbed devil", 3, | |
| 1099 18, | |
| 1100 {22, 10000, 13, -3, HPT("13d8"), | |
| 1101 "1d4+4/1d6+6"}}, | |
| 1102 {"ancient white dragon", | |
| 1103 70, TRUE, TRUE, 'W', "8-9", | |
| 1104 {ISMEAN, CANBICE, ISGREED, CANSEE, NOCOLD, CARRYGOLD, | |
| 1105 CARRYRING}, | |
| 1106 0, 0, | |
| 1107 50, | |
| 1108 {10, 15000, 7, 3, HPT("0d8+56"), | |
| 1109 "1d4/1d4/2d8"}}, | |
| 1110 {"ancient black dragon", | |
| 1111 70, TRUE, TRUE, 'a', "8-10", | |
| 1112 {ISMEAN, CANBACID, NOACID, ISGREED, CANSEE, CARRYGOLD, | |
| 1113 CARRYSTICK}, | |
| 1114 0, 0, | |
| 1115 50, | |
| 1116 {10, 20000, 8, 3, HPT("0d8+64"), | |
| 1117 "1d4/1d4/3d6"}}, | |
| 1118 {"lich", | |
| 1119 60, TRUE, TRUE, 'l', "19-20", | |
| 1120 {ISMEAN, CANDRAIN, CANSEE, CANPARALYZE, CANFRIGHTEN, MAGICHIT, | |
| 1121 ISUNDEAD, TURNABLE, NOBOLT, CANMISSILE, CANSUMMON, CARRYGOLD, | |
| 1122 CARRYSCROLL, CARRYPOTION, CARRYRING}, | |
| 1123 "specter", 2, | |
| 1124 16, | |
| 1125 {10, 20000, 17, 0, HPT("11d8"), | |
| 1126 "1d10"}}, | |
| 1127 {"titan", | |
| 1128 80, TRUE, FALSE, 't', "17-20", | |
| 1129 {ISSHADOW, CANSEE, CANMISSILE, CARRYRING, CARRYSTICK, | |
| 1130 CANTELEPORT}, | |
| 1131 0, 0, | |
| 1132 30, | |
| 1133 {13, 20000, 19, -3, HPT("22d8"), | |
| 1134 "8d6"}}, | |
| 1135 {"ancient copper dragon", | |
| 1136 70, TRUE, FALSE, 'c', "13-14", | |
| 1137 {CANBACID, NOACID, CANBSLGAS, ISGREED, CANSEE, NOSLOW, | |
| 1138 CARRYGOLD, CARRYSTICK}, | |
| 1139 0, 0, | |
| 1140 50, | |
| 1141 {10, 20000, 9, 1, HPT("0d8+72"), | |
| 1142 "1d4/1d4/5d4"}}, | |
| 1143 {"ancient green dragon", | |
| 1144 50, TRUE, TRUE, 'E', "10-12", | |
| 1145 {ISMEAN, CANBGAS, ISGREED, CANSEE, NOGAS, CARRYGOLD, | |
| 1146 CARRYRING, CARRYSTICK}, | |
| 1147 0, 0, | |
| 1148 50, | |
| 1149 {10, 20000, 9, 2, HPT("0d8+72"), | |
| 1150 "1d6/1d6/2d10"}}, | |
| 1151 {"ancient bronze dragon", | |
| 1152 50, TRUE, FALSE, 'L', "15-16", | |
| 1153 {CANBCGAS, CANBBOLT, CANBFGAS, ISGREED, CANSEE, NOFEAR, NOBOLT, | |
| 1154 ISCLEAR, CARRYGOLD, CARRYRING, CARRYSTICK}, | |
| 1155 0, 0, | |
| 1156 50, | |
| 1157 {10, 20000, 10, 0, HPT("0d8+80"), | |
| 1158 "1d6/1d6/4d6"}}, | |
| 1159 {"ancient blue dragon", | |
| 1160 50, TRUE, TRUE, 'u', "12-14", | |
| 1161 {ISMEAN, CANBBOLT, ISGREED, CANSEE, NOBOLT, CARRYGOLD, | |
| 1162 CARRYSCROLL, CARRYRING, CARRYSTICK}, | |
| 1163 0, 0, | |
| 1164 50, | |
| 1165 {10, 20000, 10, 2, HPT("0d8+80"), | |
| 1166 "1d6/1d6/3d8"}}, | |
| 1167 {"ancient silver dragon", | |
| 1168 40, TRUE, FALSE, 'S', "15-16", | |
| 1169 {CANBICE, CANBPGAS, ISGREED, CANSEE, CANMISSILE, NOCOLD, | |
| 1170 NOPARALYZE, CARRYGOLD, CARRYSCROLL, CARRYRING, CARRYSTICK}, | |
| 1171 0, 0, | |
| 1172 50, | |
| 1173 {10, 20000, 11, -1, HPT("0d8+88"), | |
| 1174 "1d6/1d6/5d6"}}, | |
| 1175 {"frost giant", | |
| 1176 50, TRUE, TRUE, 'F', "5-10", | |
| 1177 {ISMEAN, NOCOLD, CARRYGOLD, CARRYSTICK}, | |
| 1178 0, 0, | |
| 1179 40, | |
| 1180 {25, 20000, 15, 4, HPT("10d8+4"), | |
| 1181 "4d6"}}, | |
| 1182 {"ancient red dragon", | |
| 1183 40, TRUE, TRUE, 'R', "15-16", | |
| 1184 {ISMEAN, CANBFIRE, ISGREED, CANSEE, NOFIRE, CARRYGOLD, | |
| 1185 CARRYPOTION, CARRYRING, CARRYSTICK}, | |
| 1186 0, 0, | |
| 1187 50, | |
| 1188 {10, 20000, 11, -1, HPT("0d8+88"), | |
| 1189 "1d8/1d8/3d10"}}, | |
| 1190 {"ancient gold dragon", | |
| 1191 50, TRUE, TRUE, 'G', "17-18", | |
| 1192 {CANBFIRE, CANBGAS, ISGREED, CANSEE, CANMISSILE, NOFIRE, NOGAS, | |
| 1193 CARRYGOLD, CARRYPOTION, CARRYRING, CARRYSTICK, CANTELEPORT}, | |
| 1194 0, 0, | |
| 1195 50, | |
| 1196 {10, 20000, 12, -2, HPT("0d8+96"), | |
| 1197 "1d8/1d8/6d6"}}, | |
| 1198 {"fire giant", | |
| 1199 30, TRUE, TRUE, 'f', "6-10", | |
| 1200 {ISMEAN, CARRYGOLD, NOFIRE, CARRYSTICK}, | |
| 1201 0, 0, | |
| 1202 45, | |
| 1203 {27, 26000, 15, 4, HPT("11d8+5"), | |
| 1204 "5d6"}}, | |
| 1205 {"storm giant", | |
| 1206 30, TRUE, TRUE, 's', "8-10", | |
| 1207 {ISMEAN, NOBOLT, CANBBOLT, CARRYRING}, | |
| 1208 0, 0, | |
| 1209 50, | |
| 1210 {30, 30000, 15, 2, HPT("15d8+8"), | |
| 1211 "7d6"}}, | |
| 1212 {"dwarven thief (Musty Doit)", | |
| 1213 50, TRUE, TRUE, 'm', "16", | |
| 1214 {ISMEAN, ISUNIQUE, ISINVIS, NOFIRE, NOGAS, NOSTAB, STEALGOLD, | |
| 1215 STEALMAGIC, CANPAIN, ISFLY, CARRYGOLD, CANSURPRISE, CANSEE, | |
| 1216 CARRYDAGGER, CARRYMISC, CARRYPOTION, CANBSTAB, ISSCAVENGE}, | |
| 1217 0, 0, | |
| 1218 0, | |
| 1219 {11, 300000, 20, -5, HPT("0d8+95"), | |
| 1220 "6d4+70/6d4+70"}}, | |
| 1221 {"demon prince (Jubilex)", | |
| 1222 100, TRUE, FALSE, 'J', "18", | |
| 1223 {ISMEAN, ISUNIQUE, CANFRIGHTEN, ISREGEN, BMAGICHIT, ISSHADOW, | |
| 1224 CANHOLD, CANDISEASE, CANSUMMON, CANSEE, CANROT, CANINFEST, | |
| 1225 CANRUST, NOSTAB, CANTELEPORT, CARRYMISC}, | |
| 1226 "black pudding", 4, | |
| 1227 0, | |
| 1228 {10, 100000, 20, -7, HPT("0d8+88"), | |
| 1229 "4d10"}}, | |
| 1230 {"arch devil (Geryon)", | |
| 1231 100, TRUE, FALSE, 'g', "16", | |
| 1232 {ISMEAN, ISUNIQUE, BMAGICHIT, CANSEE, ISSHADOW, CANFRIGHTEN, | |
| 1233 CANHUH, CANPOISON, CANSUMMON, NOFIRE, CANTELEPORT, | |
| 1234 CARRYMISC, CARRYHORN}, | |
| 1235 "ice devil", 5, | |
| 1236 0, | |
| 1237 {13, 110000, 30, -3, HPT("0d8+133"), | |
| 1238 "3d6/3d6/2d4"}}, | |
| 1239 {"arch devil (Dispater)", | |
| 1240 100, TRUE, FALSE, 'd', "18", | |
| 1241 {ISMEAN, ISUNIQUE, CANSEE, CANFRIGHTEN, CANHUH, BMAGICHIT, | |
| 1242 CANSUMMON, NOFIRE, CANTELEPORT, CARRYMISC}, | |
| 1243 "ghost", 9, | |
| 1244 0, | |
| 1245 {10, 120000, 36, -2, HPT("0d8+144"), | |
| 1246 "4d6"}}, | |
| 1247 {"demon prince (Yeenoghu)", | |
| 1248 100, TRUE, FALSE, 'Y', "16", | |
| 1249 {ISMEAN, ISREGEN, ISUNIQUE, MAGICHIT, CANSEE, ISSHADOW, CANHOLD, | |
| 1250 CARRYFLAIL, CANFRIGHTEN, CANPARALYZE, CANSUMMON, CANHUH, | |
| 1251 CANMISSILE, CANTELEPORT, CARRYMISC}, | |
| 1252 "lich", 5, | |
| 1253 0, | |
| 1254 {10, 130000, 23, -5, HPT("0d8+100"), | |
| 1255 "3d6/3d6"}}, | |
| 1256 {"witch (Emori)", | |
| 1257 50, TRUE, FALSE, 'w', "18", | |
| 1258 {ISMEAN, CANMISSILE, ISINVIS, CANBBOLT, CANBFIRE, CANBICE, | |
| 1259 CANSEE, CANSUMMON, ISUNIQUE, CANSNORE, ISFLY, TAKEINTEL, | |
| 1260 CANDANCE, CANDISEASE, NOBOLT, NOCOLD, NOFIRE, CARRYCLOAK, | |
| 1261 ISCLEAR, CARRYSCROLL, CARRYSTICK, CANTELEPORT}, | |
| 1262 "shambling mound", 5, | |
| 1263 0, | |
| 1264 {11, 240000, 25, 6, HPT("0d8+102"), | |
| 1265 "1d4/1d4"}}, | |
| 1266 {"cleric of Thoth (Heil)", | |
| 1267 100, TRUE, FALSE, 'h', "16", | |
| 1268 {ISMEAN, CANSEE, NOFEAR, ISREGEN, CANHOLD, CANBFIRE, ISUNIQUE, | |
| 1269 DOUBLEDRAIN, CANSUMMON, NOFIRE, TOUCHFEAR, CANDISEASE, | |
| 1270 CANSEE, TAKEWISDOM, CARRYANKH, CARRYRING, ISINVIS, ISFLY}, | |
| 1271 "mummy", 9, | |
| 1272 0, | |
| 1273 {15, 295000, 20, -8, HPT("0d8+116"), | |
| 1274 "0d6+11"}}, | |
| 1275 {"magician (Tsoming Zen)", | |
| 1276 80, TRUE, FALSE, 'z', "18", | |
| 1277 {ISMEAN, ISUNIQUE, ISINVIS, ISREGEN, CANBFIRE, CANBICE, | |
| 1278 CANBBOLT, CANMISSILE, NOFIRE, CANHOLD, CANFRIGHTEN, CANDISEASE, | |
| 1279 CANPAIN, CANSUMMON, CANSEE, ISFLY, CANBLINK, CANTELEPORT, | |
| 1280 CARRYSTAFF, CARRYSTICK, NOSLOW, NOBOLT, NOCOLD}, | |
| 1281 "blink dog", 5, | |
| 1282 0, | |
| 1283 {16, 310000, 21, 0, HPT("0d8+125"), | |
| 1284 "2d4+1/2d4+1/2d4+1/2d4+1"}}, | |
| 1285 {"poet (Brian)", | |
| 1286 80, TRUE, TRUE, 'p', "16", | |
| 1287 {ISMEAN, ISUNIQUE, STEALGOLD, ISSHADOW, CANSUMMON, ISREGEN, | |
| 1288 CANDISEASE, NOCOLD, NOBOLT, NOFIRE, NOFEAR, CANTUNNEL, CANSEE, | |
| 1289 CANINWALL, ISCLEAR, CARRYMANDOLIN, CARRYPOTION, CARRYRING}, | |
| 1290 "umber hulk", 6, | |
| 1291 0, | |
| 1292 {19, 320000, 20, -2, HPT("0d8+153"), | |
| 1293 "8d8+48/4d4+36"}}, | |
| 1294 {"lesser god (Hruggek)", | |
| 1295 100, TRUE, FALSE, 'H', "17", | |
| 1296 {ISMEAN, CANSEE, ISUNIQUE, CANSUMMON, ISREGEN, | |
| 1297 CANTELEPORT, CARRYMISC, CARRYMSTAR}, | |
| 1298 "purple worm", 6, | |
| 1299 0, | |
| 1300 {19, 140000, 25, 0, HPT("0d8+221"), | |
| 1301 "2d8/2d8"}}, | |
| 1302 {"lesser god (Kurtulmak)", | |
| 1303 100, TRUE, TRUE, 'K', "19", | |
| 1304 {ISMEAN, CANFRIGHTEN, CANPOISON, CANSEE, ISUNIQUE, CANSUMMON, | |
| 1305 CANTELEPORT, CARRYMISC}, | |
| 1306 "lich", 3, | |
| 1307 0, | |
| 1308 {19, 150000, 27, 0, HPT("0d8+219"), | |
| 1309 "2d12/1d6"}}, | |
| 1310 {"demigod (Vaprak \"The Destroyer\")", | |
| 1311 100, TRUE, TRUE, 'v', "18", | |
| 1312 {ISMEAN, ISUNIQUE, ISREGEN, MAGICHIT, CANSEE, CANSUMMON, | |
| 1313 CANTELEPORT, CARRYMISC}, | |
| 1314 "troll", 9, | |
| 1315 0, | |
| 1316 {16, 160000, 26, 0, HPT("0d8+198"), | |
| 1317 "2d10/2d10/1d12"}}, | |
| 1318 {"platinum dragon (Bahamut)", | |
| 1319 100, TRUE, FALSE, 'P', "20", | |
| 1320 {ISUNIQUE, CANBICE, CANBGAS, CANBBOLT, CANBRANDOM, CANSEE, | |
| 1321 NOCOLD, NOBOLT, NOGAS, NOFIRE, NOFEAR, NOSLEEP, NOSLOW, | |
| 1322 NOPARALYZE, CANMISSILE, CANSONIC, CANFRIGHTEN, CANSUMMON, | |
| 1323 CARRYSTICK, CARRYMISC, CANTELEPORT}, | |
| 1324 "ancient gold dragon", 4, | |
| 1325 0, | |
| 1326 {10, 170000, 38, -3, HPT("0d8+168"), | |
| 1327 "2d6/2d6/6d8"}}, | |
| 1328 {"arch devil (Baalzebul)", | |
| 1329 100, TRUE, FALSE, 'B', "18", | |
| 1330 {ISMEAN, ISSHADOW, ISUNIQUE, BMAGICHIT, CANHOLD, CANPOISON, | |
| 1331 CANFRIGHTEN, CANHUH, CANSUMMON, CANSEE, NOFIRE, CANTELEPORT, | |
| 1332 CARRYMISC}, | |
| 1333 "horned devil", 9, | |
| 1334 0, | |
| 1335 {10, 180000, 37, -5, HPT("0d8+166"), | |
| 1336 "2d6"}}, | |
| 1337 {"chromatic dragon (Tiamat)", | |
| 1338 100, TRUE, FALSE, 'C', "18", | |
| 1339 {ISMEAN, ISUNIQUE, CANBFIRE, CANBACID, CANBBOLT, CANBICE, | |
| 1340 CANBGAS, CANBRANDOM, CANSEE, NOFIRE, NOBOLT, NOCOLD, NOACID, | |
| 1341 NOGAS, CANSUMMON, CANMISSILE, CANFRIGHTEN, CARRYMISC, | |
| 1342 CARRYRING, CANTELEPORT}, | |
| 1343 "ancient red dragon", 6, | |
| 1344 0, | |
| 1345 {10, 190000, 29, 0, HPT("0d8+128"), | |
| 1346 "2d8/3d6/2d10/3d8/3d10/1d6"}}, | |
| 1347 {"demon prince (Orcus)", | |
| 1348 100, TRUE, FALSE, 'O', "20", | |
| 1349 {ISMEAN, ISUNIQUE, BMAGICHIT, CANPOISON, CANFRIGHTEN, CANSEE, | |
| 1350 CANBBOLT, CANSUMMON, NOBOLT, CANTELEPORT, CARRYWAND, | |
| 1351 CARRYMISC, CANTELEPORT}, | |
| 1352 "vampire", 9, | |
| 1353 0, | |
| 1354 {13, 200000, 27, -6, HPT("0d8+120"), | |
| 1355 "1d10+3/2d4"}}, | |
| 1356 {"arch devil (Asmodeus)", | |
| 1357 100, TRUE, FALSE, 'A', "20", | |
| 1358 {ISMEAN, ISUNIQUE, CANSEE, ISSHADOW, CANHOLD, BMAGICHIT, | |
| 1359 CANFRIGHTEN, CANHUH, CANSLOW, CANSUMMON, NOFIRE, | |
| 1360 CANTELEPORT, CARRYROD, CARRYMISC}, | |
| 1361 "pit fiend", 5, | |
| 1362 0, | |
| 1363 {10, 210000, 45, -7, HPT("0d8+199"), | |
| 1364 "1d10+4"}}, | |
| 1365 {"demon prince (Demogorgon)", | |
| 1366 100, TRUE, FALSE, 'D', "20", | |
| 1367 {ISMEAN, CANHUH, BMAGICHIT, DOUBLEDRAIN, CANINFEST, CANSEE, | |
| 1368 CANFRIGHTEN, ISUNIQUE, CANSUMMON, CANROT, CANTELEPORT, | |
| 1369 CANDISEASE, CARRYMISC}, | |
| 1370 "glabrezu", 9, | |
| 1371 0, | |
| 1372 {10, 220000, 45, -8, HPT("0d8+200"), | |
| 1373 "1d6/1d6"}}, | |
| 1374 {"greater god (Maglubiyet)", | |
| 1375 100, TRUE, FALSE, 'M', "19", | |
| 1376 {ISMEAN, ISUNIQUE, CMAGICHIT, CANSEE, ISREGEN, CANSUMMON, | |
| 1377 CANTELEPORT, CARRYMISC}, | |
| 1378 "lich", 6, | |
| 1379 0, | |
| 1380 {10, 230000, 45, -1, HPT("0d8+350"), | |
| 1381 "4d10"}}, | |
| 1382 {"greater god (Gruumsh)", | |
| 1383 100, TRUE, FALSE, 'G', "19", | |
| 1384 {ISMEAN, ISUNIQUE, CMAGICHIT, CANSEE, ISREGEN, CANSUMMON, | |
| 1385 CANTELEPORT, CARRYMISC}, | |
| 1386 "lich", 9, | |
| 1387 0, | |
| 1388 {10, 240000, 45, -1, HPT("0d8+350"), | |
| 1389 "4d10"}}, | |
| 1390 {"lesser god (Thrym)", | |
| 1391 100, TRUE, FALSE, 'T', "16", | |
| 1392 {ISMEAN, NOCOLD, ISUNIQUE, ISREGEN, CMAGICHIT, CANSEE, | |
| 1393 CANSUMMON, CARRYMISC, CANTELEPORT}, | |
| 1394 "frost giant", 9, | |
| 1395 0, | |
| 1396 {25, 250000, 45, -2, HPT("0d8+300"), | |
| 1397 "4d10/4d10"}}, | |
| 1398 {"lesser god (Surtur)", | |
| 1399 100, TRUE, FALSE, 't', "19", | |
| 1400 {ISMEAN, NOFIRE, ISUNIQUE, ISREGEN, CMAGICHIT, CANSEE, | |
| 1401 CANSUMMON, CANMISSILE, CANTELEPORT, CARRYMISC}, | |
| 1402 "fire giant", 9, | |
| 1403 0, | |
| 1404 {25, 260000, 45, -2, HPT("0d8+380"), | |
| 1405 "5d10/5d10"}}, | |
| 1406 {"lesser god (Skoraeus Stonebones)", | |
| 1407 100, TRUE, FALSE, 'b', "19", | |
| 1408 {ISMEAN, ISUNIQUE, ISREGEN, CMAGICHIT, CANSEE, CANSUMMON, | |
| 1409 CANMISSILE, CANINWALL, CANTELEPORT, CARRYMISC, CARRYSTICK}, | |
| 1410 "storm giant", 9, | |
| 1411 0, | |
| 1412 {25, 270000, 45, -1, HPT("0d8+380"), | |
| 1413 "6d10/6d10"}}, | |
| 1414 {"ruler of greater titans (Yendor)", | |
| 1415 100, TRUE, TRUE, 'y', "25", | |
| 1416 {ISMEAN, CANINWALL, ISUNIQUE, ISREGEN, CMAGICHIT, | |
| 1417 CANSUMMON, CANMISSILE, CANFRIGHTEN, CANBFIRE, NOFIRE, | |
| 1418 CANHOLD, CARRYAMULET, CANSEE, CANDANCE, ISSHADOW, | |
| 1419 CANTELEPORT, CARRYMISC, CARRYRING, CARRYSTICK}, | |
| 1420 "titan", 15, | |
| 1421 0, | |
| 1422 {25, 300000, 45, -3, HPT("0d8+400"), | |
| 1423 "7d10/7d10"}}, | |
| 1424 {"quartermaster", | |
| 1425 50, FALSE, TRUE, 'q', "18", | |
| 1426 {CANSELL, CARRYPOTION, CARRYSCROLL, CARRYMISC, CARRYRING, | |
| 1427 CARRYSTICK, CANTELEPORT}, | |
| 1428 0, 0, | |
| 1429 2, | |
| 1430 {12, 20, 1, -4, HPT("1d8+1"), | |
| 1431 "1d10"}}, | |
| 1432 }; |
