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 }; |