Source:SLASH'EM 0.0.7E7F2/monst.c

From NetHackWiki
(Redirected from SLASH'EM 0.0.7E7F2/monst.c)
Jump to: navigation, search

Below is the full text to monst.c from the source code of SLASH'EM 0.0.7E7F2. To link to a particular line, write [[SLASH'EM 0.0.7E7F2/monst.c#line123]], for example.

The latest source code for vanilla NetHack is at Source code.


The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.

  1. /*	SCCS Id: @(#)monst.c	3.4	2000/07/14	*/
  2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5. #include "config.h"
  6. #include "permonst.h"
  7. #include "monsym.h"
  8. #include "dungeon.h"	/* prerequisite for eshk,vault,epri */
  9. #include "eshk.h"
  10. #include "vault.h"
  11. #include "epri.h"
  12. #include "egyp.h"
  13.  
  14.  
  15. /* #ifdef MUSE */
  16. #define MARM(x,y) x /* x is usually 10 */
  17. /* #else
  18. #define MARM(x,y) y
  19. #endif */
  20.  
  21. #define NO_ATTK {0,0,0,0}
  22.  
  23. #define WT_ELF	   800
  24. #define WT_DRAGON 4500
  25.  
  26. #ifdef C
  27. #undef C
  28. #endif
  29. #ifdef TEXTCOLOR
  30. #include "color.h"
  31. #define C(color)	color
  32. #define HI_DOMESTIC	CLR_WHITE	/* use for player + friendlies */
  33. #define HI_LORD		CLR_MAGENTA
  34. #else
  35. #define C(color)
  36. #endif
  37.  
  38. void NDECL(monst_init);
  39. /*
  40. *	Entry Format:		(from permonst.h)
  41. *
  42. *	name, symbol (S_* defines),
  43. *	difficulty level, move rate, armor class, magic resistance,
  44. *	alignment, creation/geno flags (G_* defines),
  45. *      6 * attack structs ATTK(type , damage-type, # dice, # sides),
  46. *	weight (WT_* defines), nutritional value, extension length,
  47. *	sounds made (MS_* defines), physical size (MZ_* defines),
  48. *	resistances, resistances conferred (both MR_* defines),
  49. *	3 * flag bitmaps (M1_*, M2_*, and M3_* defines respectively)
  50. *	symbol color (C(x) macro)
  51. */
  52. #define MON(nam,sym,lvl,gen,atk,siz,mr1,mr2,flg1,flg2,flg3,col) \
  53. 	   {nam,sym,lvl,gen,atk,siz,mr1,mr2,flg1,flg2,flg3,C(col)}
  54. /* LVL() and SIZ() collect several fields to cut down on # of args for MON() */
  55. #define LVL(lvl,mov,ac,mr,aln) lvl,mov,ac,mr,aln
  56. #define SIZ(wt,nut,pxl,snd,siz) wt,nut,pxl,snd,siz
  57. /* ATTK() and A() are to avoid braces and commas within args to MON() */
  58. #define ATTK(at,ad,n,d) {at,ad,n,d}
  59. #define A(a1,a2,a3,a4,a5,a6) {a1,a2,a3,a4,a5,a6}
  60.  
  61.  
  62. /*
  63. *	Rule #1:	monsters of a given class are contiguous in the
  64. *			mons[] array.
  65. *
  66. *	Rule #2:	monsters of a given class are presented in ascending
  67. *			order of strength.
  68. *
  69. *	Rule #3:	monster frequency is included in the geno mask;
  70. *			the frequency can be from 0 to 7.  0's will also
  71. *			be skipped during generation.
  72. *
  73. *	Rule #4:	monster subclasses (e.g. giants) should be kept
  74. *			together, unless it violates Rule 2.  NOGEN monsters
  75. *			won't violate Rule 2.
  76. *
  77. * Guidelines for color assignment:
  78. *
  79. *	* Use the same color for all `growth stages' of a monster (ex.
  80. *	  little dog/big dog, baby naga/full-grown naga.
  81. *
  82. *	* Use colors given in names wherever possible. If the class has `real'
  83. *	  members with strong color associations, use those.
  84. *
  85. *	* Favor `cool' colors for cold-resistent monsters, `warm' ones for
  86. *	  fire-resistent ones.
  87. *
  88. *	* Try to reserve purple (magenta) for powerful `ruler' monsters (queen
  89. *	  bee, kobold lord, &c.).
  90. *
  91. *	* Subject to all these constraints, try to use color to make as many
  92. *	  distinctions as the / command (that is, within a monster letter
  93. *	  distinct names should map to distinct colors).
  94. *
  95. * The aim in assigning colors is to be consistent enough so a player can
  96. * become `intuitive' about them, deducing some or all of these rules
  97. * unconsciously. Use your common sense.
  98. */
  99.  
  100. /* [Tom] I increased frequencies of all the "old" monsters, so the new ones
  101. *  are all that much more rare and special */
  102.  
  103. /* [Tom] I made many monsters NOHELL -- mostly natural animals and stuff */
  104.  
  105. #ifndef SPLITMON_2
  106. NEARDATA struct permonst mons[] = {
  107. /*
  108. * ants
  109. */
  110. MON("giant ant", S_ANT,
  111. 	LVL(2, 18, 3, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|4),
  112. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
  113. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  114. 	SIZ(10, 10, 0, MS_SILENT, MZ_TINY), 0, 0,
  115. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
  116. 	M2_HOSTILE, 0, CLR_BROWN),
  117. MON("giant tick", S_ANT,
  118. 	LVL(1, 12, 9, 0, 0), (G_GENO|G_SGROUP|G_HELL|G_NOGEN),
  119. 	A(ATTK(AT_BITE, AD_PHYS, 1, 1), ATTK(AT_MULTIPLY, 0, 0, 0),
  120. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  121. 	SIZ(5, 10, 0, MS_SILENT, MZ_TINY), 0, 0,
  122. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
  123. 	M2_HOSTILE, 0, CLR_GRAY),
  124. MON("killer bee", S_ANT,
  125. 	LVL(1, 18, -1, 0, 0), (G_NOHELL|G_GENO|G_LGROUP|3),
  126. 	A(ATTK(AT_STNG, AD_DRST, 1, 3),
  127. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  128. 	SIZ(1, 5, 0, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
  129. 	M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_POIS,
  130. 	M2_HOSTILE|M2_FEMALE, 0, CLR_YELLOW),
  131. MON("giant flea", S_ANT,
  132. 	LVL(3, 14, 8, 0, 0), (G_GENO|G_SGROUP|G_HELL|G_NOGEN),
  133. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2), ATTK(AT_BITE, AD_PHYS, 1, 2),
  134. 	  ATTK(AT_MULTIPLY, 0, 0, 0),
  135. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  136. 	SIZ(5, 10, 0, MS_SILENT, MZ_TINY), 0, 0,
  137. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
  138. 	M2_HOSTILE, 0, CLR_GRAY),
  139. MON("soldier ant", S_ANT,
  140. 	LVL(3, 18, 3, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|3),
  141. 	A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_STNG, AD_DRST, 3, 4),
  142. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  143. 	SIZ(20, 5, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
  144. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
  145. 	M2_HOSTILE, 0, CLR_BLUE),
  146. MON("fire ant", S_ANT,
  147. 	LVL(3, 18, 3, 10, 0), (G_GENO|G_SGROUP|3),
  148. 	A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_BITE, AD_FIRE, 2, 4),
  149. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  150. 	SIZ(30, 10, 0, MS_SILENT, MZ_TINY), MR_FIRE, MR_FIRE,
  151. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
  152. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_RED),
  153. MON("snow ant", S_ANT,
  154. 	LVL(3, 18, 3, 10, 0), (G_NOHELL|G_GENO|G_SGROUP|1),
  155. 	A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_BITE, AD_COLD, 2, 4),
  156. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  157. 	SIZ(30, 10, 0, MS_SILENT, MZ_TINY), MR_COLD, MR_COLD,
  158. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
  159. 	M2_HOSTILE, 0, CLR_CYAN),
  160. MON("giant beetle", S_ANT,
  161. 	LVL(5, 6, 4, 0, 0), (G_NOHELL|G_GENO|4),
  162. 	A(ATTK(AT_BITE, AD_PHYS, 3, 6),
  163. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  164. 	SIZ(10, 10, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
  165. 	M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_CARNIVORE,
  166. 	M2_HOSTILE, 0, CLR_BLACK),
  167. MON("giant louse", S_ANT,
  168. 	LVL(5, 16, 6, 0, 0), (G_GENO|G_SGROUP|G_HELL|G_NOGEN),
  169. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4), ATTK(AT_BITE, AD_PHYS, 1, 4),
  170. 	  ATTK(AT_MULTIPLY, 0, 0, 0),
  171. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  172. 	SIZ(10, 10, 0, MS_SILENT, MZ_TINY), 0, 0,
  173. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
  174. 	M2_HOSTILE, 0, CLR_GRAY),
  175. MON("tsetse fly", S_ANT, 
  176. 	LVL(3, 15, 0, 0, 0), (G_HELL|G_GENO|G_SGROUP|1),
  177. 	A(ATTK(AT_STNG, AD_SLEE, 1, 3), ATTK(AT_STNG, AD_PHYS, 1, 3), 
  178. 	  NO_ATTK,NO_ATTK, NO_ATTK, NO_ATTK),
  179. 	SIZ(1, 5, 0, MS_BUZZ, MZ_TINY), MR_POISON|MR_SLEEP, MR_POISON|MR_SLEEP,
  180. 	M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_POIS, 
  181. 	M2_HOSTILE|M2_NASTY, 0, CLR_GREEN),
  182. MON("migo drone", S_ANT,
  183. 	LVL(7, 12, 0, 10, -5), (G_GENO|G_LGROUP|2),
  184. 	A(ATTK(AT_STNG, AD_DRST, 1, 3),
  185. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  186. 	SIZ(500, 50, 0, MS_BUZZ, MZ_MEDIUM), MR_POISON, MR_POISON,
  187. 	M1_FLY|M1_POIS|M1_SEE_INVIS|M1_OMNIVORE,
  188. 	M2_NEUTER|M2_WANDER|M2_STRONG|M2_COLLECT|M2_MAGIC|M2_GREEDY|M2_JEWELS|M2_HOSTILE,
  189. 	M3_INFRAVISION|M3_TRAITOR,
  190. 	CLR_GREEN),
  191. MON("queen bee", S_ANT,
  192. 	LVL(9, 24, -4, 0, 0), (G_NOHELL|G_GENO|G_NOGEN),
  193. 	A(ATTK(AT_STNG, AD_DRST, 1, 8),
  194. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  195. 	SIZ(1, 5, 0, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
  196. 	M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_OVIPAROUS|M1_POIS,
  197. 	M2_HOSTILE|M2_FEMALE|M2_PRINCE, 0, HI_LORD),
  198. MON("yellow jacket", S_ANT,
  199. 	LVL(8, 15, 2, 0, 0), (G_NOHELL|G_GENO|G_LGROUP|1),
  200. 	A(ATTK(AT_STNG, AD_DRST, 1, 6), NO_ATTK, NO_ATTK,
  201. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  202. 	SIZ(30, 10, 0, MS_BUZZ, MZ_SMALL), MR_POISON, MR_POISON,
  203. 	M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_POIS, 
  204. 	M2_HOSTILE|M2_FEMALE, 0, CLR_YELLOW),
  205. MON("black wasp", S_ANT, 
  206. 	LVL(9, 15, 2, 0, 0), (G_NOHELL|G_GENO|G_LGROUP|1),
  207. 	A(ATTK(AT_STNG, AD_DRST, 2, 6), NO_ATTK, NO_ATTK,
  208. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  209. 	SIZ(300, 100, 0, MS_BUZZ, MZ_MEDIUM), MR_POISON, MR_POISON,
  210. 	M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_POIS, 
  211. 	M2_HOSTILE|M2_FEMALE, 0, CLR_YELLOW),
  212. MON("migo warrior", S_ANT,
  213. 	LVL(10, 18, -3, 30, -7), (G_GENO|G_SGROUP|1),
  214. 	A(ATTK(AT_STNG, AD_DRST, 1, 3),
  215. 	  ATTK(AT_BITE, AD_PHYS, 2, 4),
  216. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  217. 	SIZ(600, 50, 0, MS_BUZZ, MZ_MEDIUM), MR_POISON, MR_POISON,
  218. 	M1_FLY|M1_POIS|M1_SEE_INVIS|M1_OMNIVORE,
  219. 	M2_MALE|M2_STRONG|M2_COLLECT|M2_MAGIC|M2_HOSTILE,
  220. 	M3_INFRAVISION|M3_TRAITOR,
  221. 	CLR_YELLOW),
  222. MON("giant wasp", S_ANT, 
  223. 	LVL(12, 15, 2, 0, 0), (G_NOHELL|G_GENO|G_LGROUP|1),
  224. 	A(ATTK(AT_STNG, AD_DRST, 2, 8), NO_ATTK, NO_ATTK,
  225. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  226. 	SIZ(300, 100, 0, MS_BUZZ, MZ_MEDIUM), MR_POISON, MR_POISON,
  227. 	M1_ANIMAL|M1_FLY|M1_NOHANDS|M1_POIS, 
  228. 	M2_HOSTILE|M2_FEMALE, 0, CLR_BLACK),
  229. MON("spitting beetle", S_ANT, 
  230. 	LVL(14, 6, -4, 0, 0), (G_NOHELL|G_GENO|1),
  231. 	A(ATTK(AT_BITE, AD_PHYS, 4, 6), ATTK(AT_SPIT, AD_ACID, 2, 6),
  232. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  233. 	SIZ(100, 100, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
  234. 	M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_CARNIVORE,
  235. 	M2_HOSTILE, 0, CLR_BROWN),
  236. MON("migo queen", S_ANT,
  237. 	LVL(15, 15, -3, 50, -9), (G_GENO|G_NOGEN),
  238. 	A(ATTK(AT_STNG, AD_DRIN, 1, 3),
  239. 	  ATTK(AT_BITE, AD_PHYS, 6, 8),
  240. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  241. 	SIZ(1500, 100, 0, MS_BUZZ, MZ_LARGE), MR_POISON, MR_POISON,
  242. 	M1_FLY|M1_POIS|M1_SEE_INVIS|M1_OMNIVORE,
  243. 	M2_FEMALE|M2_STRONG|M2_COLLECT|M2_MAGIC|M2_HOSTILE,
  244. 	M3_INFRAVISION|M3_NOTAME,
  245. 	HI_LORD),
  246. MON("assassin bug", S_ANT, 
  247. 	LVL(10, 24, 4, 0, 0), (G_NOHELL|G_GENO|1),
  248. 	A(ATTK(AT_BITE, AD_DRST, 4, 6), NO_ATTK, NO_ATTK,
  249. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  250. 	SIZ(100, 100, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
  251. 	M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_CARNIVORE,
  252. 	M2_HOSTILE, M3_TRAITOR, CLR_BLACK),
  253. MON("killer beetle", S_ANT, 
  254. 	LVL(19, 6, -4, 0, 0), (G_NOHELL|G_GENO|1),
  255. 	A(ATTK(AT_BITE, AD_PHYS, 6, 6), NO_ATTK, NO_ATTK,
  256. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  257. 	SIZ(100, 100, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
  258. 	M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_CARNIVORE,
  259. 	M2_HOSTILE, 0, CLR_ORANGE),
  260. /*
  261. * blobs
  262. */
  263. MON("acid blob", S_BLOB,
  264. 	LVL(1, 3, 8, 0, 0), (G_NOHELL|G_GENO|3),
  265. 	A(ATTK(AT_NONE, AD_ACID, 1, 8),
  266. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  267. 	SIZ(30, 10, 0, MS_SILENT, MZ_TINY),
  268. 	MR_SLEEP|MR_POISON|MR_ACID|MR_STONE, MR_STONE,
  269. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  270. 	  M1_MINDLESS|M1_ACID,
  271. 	M2_WANDER|M2_NEUTER, 0, CLR_GREEN),
  272. MON("quivering blob", S_BLOB,
  273. 	LVL(5, 1, 8, 0, 0), (G_NOHELL|G_GENO|3),
  274. 	A(ATTK(AT_TUCH, AD_PHYS, 1, 8),
  275. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  276. 	SIZ(200, 100, 0, MS_SILENT, MZ_SMALL),
  277. 	MR_SLEEP|MR_POISON, MR_POISON,
  278. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  279. 	M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, CLR_WHITE),
  280. MON("gelatinous cube", S_BLOB,
  281. 	LVL(6, 6, 8, 0, 0), (G_NOHELL|G_GENO|3),
  282. 	A(ATTK(AT_TUCH, AD_PLYS, 2, 4), ATTK(AT_NONE, AD_PLYS, 1, 4),
  283. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  284. 	SIZ(600, 150, 0, MS_SILENT, MZ_LARGE),
  285. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_ACID|MR_STONE,
  286. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP,
  287. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_OMNIVORE|M1_ACID,
  288. 	M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, CLR_CYAN),
  289. MON("jiggling blob", S_BLOB, 
  290. 	LVL(10, 6, 8, 0, 0), (G_NOHELL|G_GENO|1),
  291. 	A(ATTK(AT_TUCH, AD_PHYS, 2, 8), ATTK(AT_NONE, AD_ACID, 2, 4),
  292. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  293. 	SIZ(200, 100, 0, MS_SILENT, MZ_LARGE),
  294. 	MR_SLEEP|MR_POISON, MR_POISON,
  295. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  296. 	M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, CLR_MAGENTA),
  297. MON("lava blob", S_BLOB, 
  298. 	LVL(10, 6, 8, 0, 0), (G_GENO|1),
  299. 	A(ATTK(AT_TUCH, AD_FIRE, 4, 4), ATTK(AT_NONE, AD_FIRE, 2, 6),
  300. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  301. 	SIZ(200, 100, 0, MS_SILENT, MZ_LARGE),
  302. 	MR_SLEEP|MR_FIRE, MR_FIRE,
  303. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  304. 	M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, CLR_RED),
  305. MON("static blob", S_BLOB, 
  306. 	LVL(12, 6, 8, 0, 0), (G_NOHELL|G_GENO|1),
  307. 	A(ATTK(AT_TUCH, AD_ELEC, 3, 8), ATTK(AT_NONE, AD_ELEC, 3, 4),
  308. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  309. 	SIZ(200, 100, 0, MS_SILENT, MZ_LARGE),
  310. 	MR_SLEEP|MR_POISON|MR_ELEC, MR_POISON|MR_ELEC,
  311. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  312. 	M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, HI_ZAP),
  313. MON("burbling blob", S_BLOB, 
  314. 	LVL(14, 6, 8, 0, 0), (G_NOHELL|G_GENO|1),
  315. 	A(ATTK(AT_TUCH, AD_PHYS, 2, 8), ATTK(AT_NONE, AD_ACID, 5, 4),
  316. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  317. 	SIZ(200, 100, 0, MS_SILENT, MZ_LARGE),
  318. 	MR_SLEEP|MR_POISON, MR_POISON,
  319. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  320. 	M2_WANDER|M2_HOSTILE|M2_NEUTER, 0, CLR_BLACK),
  321. /*
  322. * cockatrice
  323. */
  324. MON("chicken", S_COCKATRICE,
  325. 	LVL(2, 15, 8, 0, 0), (G_GENO|G_SGROUP|1),
  326. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK,
  327. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  328. 	SIZ(100, 50, 0, MS_CHICKEN, MZ_SMALL), 0, 0,
  329. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_DOMESTIC,
  330. 	M3_INFRAVISIBLE, CLR_BROWN),
  331. MON("cockatoo", S_COCKATRICE,
  332. 	LVL(3, 15, 6, 0, 0), (G_GENO|G_SGROUP|1),
  333. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK,
  334. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  335. 	SIZ(75, 30, 0, MS_PARROT, MZ_SMALL), 0, 0, 
  336. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_DOMESTIC,
  337. 	M3_INFRAVISIBLE, CLR_WHITE),
  338. MON("chickatrice", S_COCKATRICE,
  339. 	LVL(4, 4, 8, 30, 0), (G_GENO|G_SGROUP|1),
  340. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2), ATTK(AT_TUCH, AD_STON, 0, 0),
  341. 	  ATTK(AT_NONE, AD_STON, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  342. 	SIZ(10, 10, 0, MS_HISS, MZ_TINY),
  343. 	MR_POISON|MR_STONE, MR_POISON|MR_STONE,
  344. 	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE, M2_HOSTILE,
  345. 	M3_INFRAVISIBLE, CLR_BROWN),
  346. MON("cockatrice", S_COCKATRICE,
  347. 	LVL(5, 6, 6, 30, 0), (G_GENO|6),
  348. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3), ATTK(AT_TUCH, AD_STON, 0, 0),
  349. 	  ATTK(AT_NONE, AD_STON, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  350. 	SIZ(30, 30, 0, MS_HISS, MZ_SMALL),
  351. 	MR_POISON|MR_STONE|MR_HITASTWO, MR_POISON|MR_STONE,
  352. 	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE|M1_OVIPAROUS, M2_HOSTILE,
  353. 	M3_INFRAVISIBLE, CLR_YELLOW),
  354. MON("pyrolisk", S_COCKATRICE, 
  355. 	LVL(6, 6, 6, 30, 0), (G_GENO|1),
  356. 	A(ATTK(AT_GAZE, AD_FIRE, 2, 6), NO_ATTK,
  357. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), 
  358. 	SIZ(30, 30, 0, MS_HISS, MZ_SMALL),
  359. 	MR_POISON|MR_FIRE, MR_POISON|MR_FIRE,
  360. 	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE|M1_OVIPAROUS, M2_HOSTILE,
  361. 	M3_INFRAVISIBLE, CLR_RED),
  362. MON("parrot", S_COCKATRICE,
  363. 	LVL(7, 15, 6, 0, 0), (G_GENO|1),
  364. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK,
  365. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  366. 	SIZ(75, 30, 0, MS_PARROT, MZ_SMALL), 0, 0,
  367. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_DOMESTIC,
  368. 	M3_INFRAVISIBLE, CLR_GREEN),
  369. /*
  370. * dogs & other canines
  371. */
  372. MON("jackal", S_DOG,
  373. 	LVL(0, 12, 7, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|4),
  374. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
  375. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  376. 	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
  377. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  378. 	CLR_BROWN),
  379. MON("fox", S_DOG,
  380. 	LVL(0, 15, 7, 0, 0), (G_GENO|1),
  381. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK,
  382. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  383. 	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
  384. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  385. 	CLR_RED),
  386. MON("coyote", S_DOG,
  387. 	LVL(1, 12, 7, 0, 0), (G_GENO|G_SGROUP|1),
  388. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK,
  389. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  390. 	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
  391. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  392. 	CLR_BROWN),
  393. MON("werejackal", S_DOG,
  394. 	LVL(2, 12, 7, 10, -7), (G_NOGEN|G_NOCORPSE),
  395. 	A(ATTK(AT_BITE, AD_WERE, 1, 4), NO_ATTK, NO_ATTK,
  396. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  397. 	SIZ(300, 250, 0, MS_BARK, MZ_SMALL), MR_POISON|MR_HITASONE, 0,
  398. 	M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
  399. 	M2_NOPOLY|M2_WERE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
  400. MON("little dog", S_DOG,
  401. 	LVL(2, 18, 6, 0, 0), (G_NOHELL|G_GENO|7),
  402. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
  403. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  404. 	SIZ(150, 150, 0, MS_BARK, MZ_SMALL), 0, 0,
  405. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
  406. 	HI_DOMESTIC),
  407. MON("dog", S_DOG,
  408. 	LVL(4, 16, 5, 0, 0), (G_NOHELL|G_GENO|7),
  409. 	A(ATTK(AT_BITE, AD_PHYS, 1 ,6),
  410. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  411. 	SIZ(400, 200, 0, MS_BARK, MZ_MEDIUM), 0, 0,
  412. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
  413. 	HI_DOMESTIC),
  414. MON("large dog", S_DOG,
  415. 	LVL(6, 15, 4, 0, 0), (G_NOHELL|G_GENO|7),
  416. 	A(ATTK(AT_BITE, AD_PHYS, 2, 4),
  417. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  418. 	SIZ(800, 250, 0, MS_BARK, MZ_MEDIUM), 0, 0,
  419. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  420. 	M2_STRONG|M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),
  421. MON("pit bull", S_DOG, 
  422. 	LVL(11, 15, 4, 0, 0), (G_NOHELL|G_GENO|1),
  423. 	A(ATTK(AT_BITE, AD_PHYS, 4, 4), NO_ATTK, NO_ATTK,
  424. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  425. 	SIZ(800, 250, 0, MS_BARK, MZ_MEDIUM), 0, 0,
  426. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, 
  427. 	M2_STRONG|M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),    
  428. MON("dingo puppy", S_DOG,
  429. 	LVL(2, 18, 6, 0, 0), (G_NOHELL|G_GENO|1),
  430. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
  431. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  432. 	SIZ(150, 150, 0, MS_BARK, MZ_SMALL), 0, 0,
  433. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  434. 	CLR_YELLOW),
  435. MON("dingo", S_DOG,
  436. 	LVL(4, 16, 5, 0, 0), (G_GENO|1),
  437. 	A(ATTK(AT_BITE, AD_PHYS, 1 ,6),
  438. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  439. 	SIZ(400, 200, 0, MS_BARK, MZ_MEDIUM), 0, 0,
  440. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  441. 	CLR_YELLOW),
  442. MON("large dingo", S_DOG,
  443. 	LVL(6, 15, 4, 0, 0), (G_NOHELL|G_GENO|1),
  444. 	A(ATTK(AT_BITE, AD_PHYS, 2, 4),
  445. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  446. 	SIZ(800, 250, 0, MS_BARK, MZ_MEDIUM), 0, 0,
  447. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  448. 	M2_STRONG|M2_HOSTILE, M3_INFRAVISIBLE, CLR_YELLOW),
  449. MON("wolf", S_DOG,
  450. 	LVL(5, 12, 4, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|3),
  451. 	A(ATTK(AT_BITE, AD_PHYS, 2, 4),
  452. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  453. 	SIZ(500, 250, 0, MS_BARK, MZ_MEDIUM), 0, 0,
  454. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  455. 	CLR_BROWN),
  456. MON("death dog", S_DOG, 
  457. 	LVL(2, 12, 7, 0, 0), (G_HELL|G_GENO|G_SGROUP|1),
  458. 	A(ATTK(AT_BITE, AD_PHYS, 1, 10), ATTK(AT_BITE, AD_PHYS, 1, 10),
  459. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  460. 	SIZ(500, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
  461. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_TRAITOR, CLR_BLACK),
  462. MON("rabid wolf", S_DOG, 
  463. 	LVL(6, 12, 4, 0, 0), (G_NOHELL|G_GENO|1),
  464. 	A(ATTK(AT_BITE, AD_DRCO, 2, 4), NO_ATTK, NO_ATTK,
  465. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  466. 	SIZ(500, 250, 0, MS_BARK, MZ_SMALL), 0, 0,
  467. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 
  468. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_BROWN),
  469. MON("werewolf", S_DOG,
  470. 	LVL(5, 12, 4, 20, -7), (G_NOGEN|G_NOCORPSE),
  471. 	A(ATTK(AT_BITE, AD_WERE, 2, 6),
  472. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  473. 	SIZ(500, 250, 0, MS_BARK, MZ_MEDIUM), MR_POISON|MR_HITASTWO, 0,
  474. 	M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
  475. 	M2_NOPOLY|M2_WERE, M3_INFRAVISIBLE, CLR_BROWN),
  476. MON("warg", S_DOG,
  477. 	LVL(7, 12, 4, 0, -5), (G_NOHELL|G_GENO|G_SGROUP|3),
  478. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  479. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  480. 	SIZ(850, 350, 0, MS_BARK, MZ_MEDIUM), 0, 0,
  481. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  482. 	CLR_BROWN),
  483. MON("winter wolf cub", S_DOG,
  484. 	LVL(5, 12, 4, 0, -5), (G_NOHELL|G_GENO|G_SGROUP|2),
  485. 	A(ATTK(AT_BITE, AD_PHYS, 1, 8), ATTK(AT_BREA, AD_COLD, 1, 8),
  486. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  487. 	SIZ(250, 200, 0, MS_BARK, MZ_SMALL), MR_COLD, MR_COLD,
  488. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_CYAN),
  489. MON("winter wolf", S_DOG,
  490. 	LVL(7, 12, 4, 20, 0), (G_NOHELL|G_GENO|1),
  491. 	A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_BREA, AD_COLD, 3, 6),
  492. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  493. 	SIZ(700, 300, 0, MS_BARK, MZ_LARGE), MR_COLD, MR_COLD,
  494. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  495. 	M2_HOSTILE|M2_STRONG, 0, CLR_CYAN),
  496. MON("hell hound pup", S_DOG,
  497. 	LVL(7, 12, 4, 20, -5), (G_HELL|G_GENO|G_SGROUP|1),
  498. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_BREA, AD_FIRE, 2, 6),
  499. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  500. 	SIZ(200, 200, 0, MS_BARK, MZ_SMALL), MR_FIRE, MR_FIRE,
  501. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  502. 	CLR_RED),
  503. MON("wolverine", S_DOG, 
  504. 	LVL(9, 15, 4, 0, -8), (G_NOHELL|G_GENO|1),
  505. 	A(ATTK(AT_BITE, AD_PHYS, 4, 6), ATTK(AT_CLAW, AD_PHYS, 2, 6),
  506. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  507. 	SIZ(850, 350, 0, MS_BARK, MZ_MEDIUM), 0, 0,
  508. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  509. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_GRAY),
  510. MON("shadow wolf", S_DOG, 
  511. 	LVL(11, 15, 4, 0, -8), (G_GENO|G_SGROUP|1),
  512. 	A(ATTK(AT_BITE, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 2, 6),
  513. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  514. 	SIZ(850, 350, 0, MS_BARK, MZ_MEDIUM), MR_PLUSONE|MR_HITASTWO, 0,
  515. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  516. 	M2_HOSTILE, M3_TRAITOR, CLR_BLACK),
  517. MON("mist wolf", S_DOG, 
  518. 	LVL(12, 18, 4, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|1),
  519. 	A(ATTK(AT_BITE, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 2, 6),
  520. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  521. 	SIZ(850, 350, 0, MS_BARK, MZ_MEDIUM), MR_PLUSONE|MR_HITASTWO, 0,
  522. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  523. 	M2_HOSTILE, 0, CLR_GREEN),    
  524. MON("hell hound", S_DOG,
  525. 	LVL(12, 14, 2, 20, 0), (G_HELL|G_GENO|1),
  526. 	A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_BREA, AD_FIRE, 3, 6),
  527. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  528. 	SIZ(600, 300, 0, MS_BARK, MZ_MEDIUM), MR_FIRE, MR_FIRE,
  529. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE|M2_STRONG,
  530. 	M3_INFRAVISIBLE, CLR_RED),
  531. /* [DS] No longer tied to Charon, Lethe frees Kerberos. */
  532. /* #ifdef CHARON */
  533. MON("Cerberus", S_DOG,
  534. 	LVL(17, 16, 2, 50, -7), (G_HELL|G_UNIQ|1),
  535. 	A(ATTK(AT_BITE, AD_PHYS, 6, 8), ATTK(AT_BITE, AD_PHYS, 6, 8),
  536. 	  ATTK(AT_BITE, AD_PHYS, 4, 8), ATTK(AT_BREA, AD_FIRE, 3, 8),
  537. 	  NO_ATTK, NO_ATTK),
  538. 	SIZ(1000, 350, 0, MS_BARK, MZ_LARGE), MR_FIRE|MR_STONE|MR_POISON|MR_DISINT|MR_SLEEP, MR_FIRE,
  539. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  540. 	M2_NOPOLY|M2_HOSTILE|M2_STRONG|M2_PNAME|M2_MALE|M2_LORD,
  541. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_NOTAME,
  542. 	HI_LORD),
  543. /* #endif */
  544. /*
  545. * eyes
  546. */
  547. MON("gas spore", S_EYE,
  548. 	LVL(1, 3, 10, 0, 0), (G_NOCORPSE|G_GENO|1),
  549. 	A(ATTK(AT_BOOM, AD_PHYS, 4, 6), NO_ATTK, NO_ATTK,
  550. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  551. 	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
  552. 	M1_FLY|M1_BREATHLESS|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  553. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
  554. MON("floating eye", S_EYE,
  555. 	LVL(2, 1, 9, 10, 0), (G_NOHELL|G_GENO|6),
  556. 	A(ATTK(AT_NONE, AD_PLYS, 0,70),
  557. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  558. 	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
  559. 	M1_FLY|M1_AMPHIBIOUS|M1_NOLIMBS|M1_NOHEAD|M1_NOTAKE,
  560. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_BLUE),
  561. MON("glowing eye", S_EYE, 
  562. 	LVL(5, 3, 4, 0, 0), (G_NOHELL|G_GENO|1),
  563. 	A(ATTK(AT_GAZE, AD_BLND, 3, 4), NO_ATTK, NO_ATTK,
  564. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  565. 	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
  566. 	M1_FLY|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  567. 	M2_HOSTILE|M2_NEUTER, 0, CLR_YELLOW),
  568. MON("freezing sphere", S_EYE,
  569. 	LVL(6, 13, 4, 0, 0), (G_NOCORPSE|G_NOHELL|G_GENO|2),
  570. 	A(ATTK(AT_EXPL, AD_COLD, 4, 6),
  571. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  572. 	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_HITASTWO, MR_COLD,
  573. 	M1_FLY|M1_BREATHLESS|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
  574. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_WHITE),
  575. MON("flaming sphere", S_EYE, 
  576. 	LVL(6, 13, 4, 0, 0), (G_NOCORPSE|G_GENO|2),
  577. 	A(ATTK(AT_EXPL, AD_FIRE, 4, 6), NO_ATTK, NO_ATTK,
  578. 	    NO_ATTK, NO_ATTK, NO_ATTK),
  579. 	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), MR_FIRE, MR_FIRE,
  580. 	M1_FLY|M1_BREATHLESS|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  581. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_RED),
  582. MON("shocking sphere", S_EYE, 
  583. 	LVL(6, 13, 4, 0, 0), (G_NOCORPSE|G_GENO|2),
  584. 	A(ATTK(AT_EXPL, AD_ELEC, 4, 6), NO_ATTK, NO_ATTK,
  585. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  586. 	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), MR_ELEC, MR_ELEC,
  587. 	M1_FLY|M1_BREATHLESS|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  588. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, HI_ZAP),
  589. MON("bloodshot eye", S_EYE, 
  590. 	LVL(6, 3, 4, 0, 0), (G_NOHELL|G_GENO|1),
  591. 	A(ATTK(AT_GAZE, AD_STUN, 3, 4), NO_ATTK, NO_ATTK,
  592. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  593. 	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
  594. 	M1_FLY|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  595. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_RED),
  596. MON("blinking eye", S_EYE, 
  597. 	LVL(8, 12, 4, 0, 0), (G_NOHELL|G_GENO|1),
  598. 	A(ATTK(AT_GAZE, AD_TLPT, 0, 0), NO_ATTK, NO_ATTK,
  599. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  600. 	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
  601. 	M1_FLY|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_TPORT,
  602. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_CYAN),
  603. /*
  604. * felines
  605. */
  606. MON("kitten", S_FELINE,
  607. 	LVL(2, 18, 6, 0, 0), (G_NOHELL|G_GENO|7),
  608. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
  609. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  610. 	SIZ(150, 150, 0, MS_MEW, MZ_SMALL), 0, 0,
  611. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  612. 	M2_WANDER|M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),
  613. MON("housecat", S_FELINE,
  614. 	LVL(4, 16, 5, 0, 0), (G_NOHELL|G_GENO|7),
  615. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
  616. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  617. 	SIZ(200, 200, 0, MS_MEW, MZ_SMALL), 0, 0,
  618. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),
  619. MON("jaguar", S_FELINE,
  620. 	LVL(4, 15, 6, 0, 0), (G_NOHELL|G_GENO|2),
  621. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  622. 	  ATTK(AT_BITE, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  623. 	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), 0, 0,
  624. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  625. 	CLR_BROWN),
  626. MON("lynx", S_FELINE, 
  627. 	LVL(5, 15, 6, 0, 0), (G_GENO|1),
  628. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  629. 	  ATTK(AT_BITE, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK),
  630. 	SIZ(600, 300, 0, MS_GROWL, MZ_SMALL), 0, 0,
  631. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,M2_HOSTILE, M3_INFRAVISIBLE,
  632. 	CLR_CYAN),
  633. MON("panther", S_FELINE, 
  634. 	LVL(5, 15, 6, 0, 0), (G_GENO|1),
  635. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  636. 	  ATTK(AT_BITE, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK),
  637. 	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), 0, 0,
  638. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,M2_HOSTILE, M3_INFRAVISIBLE,
  639. 	CLR_BLACK),
  640. MON("werepanther", S_FELINE, 
  641. 	LVL(5, 15, 6, 20, -7), (G_NOGEN|G_NOCORPSE),
  642. 	A(ATTK(AT_BITE, AD_WERE, 1, 10), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  643. 	  ATTK(AT_CLAW, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  644. 	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), MR_POISON, 0,
  645. 	M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
  646. 	M2_NOPOLY|M2_WERE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BLACK),
  647. MON("large cat", S_FELINE,
  648. 	LVL(6, 15, 4, 0, 0), (G_NOHELL|G_GENO|7),
  649. 	A(ATTK(AT_BITE, AD_PHYS, 2, 4),
  650. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  651. 	SIZ(250, 250, 0, MS_MEW, MZ_SMALL), 0, 0,
  652. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  653. 	M2_STRONG|M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),
  654. MON("kamadan", S_FELINE, 
  655. 	LVL(4, 12, 4, 0, -3), (G_NOHELL|G_GENO|1),
  656. 	A(ATTK(AT_BREA, AD_SLEE, 1, 6), ATTK(AT_BITE, AD_PHYS, 1, 3),
  657. 	  ATTK(AT_BITE, AD_PHYS, 1, 3), ATTK(AT_BITE, AD_PHYS, 1, 3), 
  658. 	  NO_ATTK, NO_ATTK),
  659. 	SIZ(750, 400, 0, MS_GROWL, MZ_LARGE), MR_SLEEP, MR_SLEEP,
  660. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,M2_HOSTILE, M3_INFRAVISIBLE,
  661. 	CLR_ORANGE),
  662. MON("displacer beast", S_FELINE,
  663. 	LVL(12, 12, -10, 0, -3), (G_GENO|1),
  664. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 4), ATTK(AT_CLAW, AD_PHYS, 4, 4),
  665. 	  ATTK(AT_BITE, AD_PHYS, 2, 10), NO_ATTK, NO_ATTK, NO_ATTK),
  666. 	SIZ(750, 400, 0, MS_GROWL, MZ_LARGE), 0, 0,
  667. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE,
  668. 	M3_INFRAVISIBLE|M3_TRAITOR,
  669. 	CLR_BLUE),
  670. MON("caterwaul", S_FELINE, 
  671. 	LVL(6, 24, 4, 0, 0), (G_NOHELL|G_GENO|1),
  672. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  673. 	  ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  674. 	SIZ(300, 100, 0, MS_GROWL, MZ_HUMAN), 0, 0,
  675. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,M2_HOSTILE, M3_INFRAVISIBLE,
  676. 	CLR_GRAY),
  677. MON("tiger", S_FELINE,
  678. 	LVL(6, 12, 6, 0, 0), (G_NOHELL|G_GENO|2),
  679. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  680. 	  ATTK(AT_BITE, AD_PHYS, 1,10), NO_ATTK, NO_ATTK, NO_ATTK),
  681. 	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), 0, 0,
  682. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  683. 	CLR_YELLOW),
  684. MON("weretiger", S_FELINE, 
  685. 	LVL(7, 12, 6, 20, -7), (G_NOGEN|G_NOCORPSE),
  686. 	A(ATTK(AT_BITE, AD_WERE, 2, 6), ATTK(AT_CLAW, AD_PHYS, 2, 5),
  687. 	  ATTK(AT_CLAW, AD_PHYS, 2, 5), NO_ATTK, NO_ATTK, NO_ATTK),
  688. 	SIZ(600, 300, 0, MS_GROWL, MZ_LARGE), MR_POISON, 0,
  689. 	M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
  690. 	M2_NOPOLY|M2_WERE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_YELLOW),
  691. MON("sabre-toothed cat", S_FELINE, 
  692. 	LVL(9, 12, 6, 0, 0), (G_NOHELL|G_GENO|1),
  693. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 4), ATTK(AT_CLAW, AD_PHYS, 4, 4),
  694. 	  ATTK(AT_BITE, AD_PHYS, 2, 10), NO_ATTK, NO_ATTK, NO_ATTK),
  695. 	SIZ(800, 400, 0, MS_GROWL, MZ_LARGE), 0, 0,
  696. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,M2_HOSTILE, M3_INFRAVISIBLE,
  697. 	CLR_YELLOW),
  698. MON("hellcat", S_FELINE, 
  699. 	LVL(12, 12, 6, 0, 0), (G_HELL|G_GENO|1),
  700. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 4), ATTK(AT_CLAW, AD_PHYS, 4, 4),
  701. 	  ATTK(AT_BITE, AD_FIRE, 3, 10), NO_ATTK, NO_ATTK, NO_ATTK),
  702. 	SIZ(800, 400, 0, MS_GROWL, MZ_LARGE), 0, 0,
  703. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,M2_HOSTILE, M3_INFRAVISIBLE|M3_TRAITOR,
  704. 	CLR_RED),
  705. /*
  706. * gremlins and gargoyles
  707. */
  708. MON("gremlin", S_GREMLIN,
  709. 	LVL(5, 12, 2, 25, -9), (G_GENO|2),
  710. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  711. 	  ATTK(AT_BITE, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_CURS, 0, 0),
  712. 	  NO_ATTK, NO_ATTK),
  713. 	SIZ(100, 20, 0, MS_LAUGH, MZ_SMALL), MR_POISON, MR_POISON,
  714. 	M1_SWIM|M1_HUMANOID|M1_POIS, M2_STALK, M3_INFRAVISIBLE|M3_TRAITOR, CLR_GREEN),
  715. MON("gargoyle", S_GREMLIN,
  716. 	LVL(6, 10, -4, 0, -9), (G_GENO|2),
  717. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_PHYS, 2, 6),
  718. 	  ATTK(AT_BITE, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  719. 	SIZ(1000, 200, 0, MS_GRUNT, MZ_HUMAN), MR_STONE, MR_STONE,
  720. 	M1_HUMANOID|M1_THICK_HIDE|M1_BREATHLESS,
  721. 	M2_HOSTILE|M2_STRONG, M3_TRAITOR, CLR_BROWN),
  722. MON("winged gargoyle", S_GREMLIN,
  723. 	LVL(9, 15, -2, 0, -12), (G_GENO|1),
  724. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 6),
  725. 	  ATTK(AT_BITE, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  726. 	SIZ(1200, 300, 0, MS_GRUNT, MZ_HUMAN), MR_STONE, MR_STONE,
  727. 	M1_FLY|M1_HUMANOID|M1_THICK_HIDE|M1_BREATHLESS|M1_OVIPAROUS,
  728. 	M2_LORD|M2_HOSTILE|M2_STRONG|M2_MAGIC, M3_TRAITOR, HI_LORD),
  729. MON("statue gargoyle", S_GREMLIN,
  730. 	LVL(4, 9, 5, 0, 0), (G_NOHELL|G_GENO|G_NOCORPSE|1),
  731. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  732. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  733. 	SIZ(900, 0, 0, MS_SILENT, MZ_HUMAN),
  734. 	MR_DEATH|MR_SLEEP|MR_POISON|MR_STONE|MR_PLUSONE, 0,
  735. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  736. 	M2_HOSTILE, 0, CLR_GRAY),
  737. /*    MON("galltrit", S_GREMLIN, 
  738. 	LVL(3, 18, 2, 25, -9), (G_GENO|1),
  739. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  740. 	  ATTK(AT_BITE, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_CURS, 0, 0),
  741. 	  NO_ATTK, NO_ATTK),
  742. 	SIZ(100, 20, 0, MS_LAUGH, MZ_SMALL), MR_POISON, 0,
  743. 	M1_SWIM|M1_HUMANOID|M1_POIS, M2_STALK, 0, CLR_BLACK),
  744. MON("jermlaine", S_GREMLIN, 
  745. 	LVL(0, 15, 7, 0, -9), (G_NOHELL|G_GENO|G_VLGROUP|1),
  746. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 2), NO_ATTK, NO_ATTK, NO_ATTK,
  747. 	  NO_ATTK, NO_ATTK),
  748. 	SIZ(100, 20, 0, MS_LAUGH, MZ_SMALL), MR_POISON, 0,
  749. 	M1_HUMANOID|M1_POIS, M2_STALK, 0, CLR_GRAY),*/
  750. /*
  751. * humanoids
  752. */
  753. MON("hobbit", S_HUMANOID,
  754. 	LVL(1, 9, MARM(10,7), 0, 6), (G_NOHELL|G_GENO|4),
  755. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  756. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  757. 	SIZ(500, 200, 0, MS_HUMANOID, MZ_SMALL), 0, 0,
  758. 	M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_HOBBIT|M2_COLLECT,
  759. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GREEN),
  760. MON("dwarf", S_HUMANOID,
  761. 	LVL(2, 6, MARM(10,4), 10, 4), (G_NOHELL|G_GENO|5),
  762. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_WEAP, AD_PHYS, 1, 4),
  763. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  764. 	SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  765. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
  766. 	M2_NOPOLY|M2_DWARF|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  767. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  768. MON("dwarf thief", S_HUMANOID,  
  769. 	LVL(2, 6, MARM(10,4), 10, 4), (G_GENO|G_NOGEN),
  770. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_TUCH, AD_SITM, 0, 0), 
  771. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  772. 	SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  773. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
  774. 	M2_DWARF|M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  775. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  776. MON("bugbear", S_HUMANOID,
  777. 	LVL(3, 9, 5, 0, -6), (G_NOHELL|G_GENO|1),
  778. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  779. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  780. 	SIZ(1250, 250, 0, MS_GROWL, MZ_LARGE), 0, 0,
  781. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_COLLECT,
  782. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
  783. MON("dwarf lord", S_HUMANOID,
  784. 	LVL(4, 6, MARM(10,4), 10, 5), (G_NOHELL|G_GENO|3),
  785. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  786. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  787. 	SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  788. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
  789. 	M2_DWARF|M2_STRONG|M2_LORD|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  790. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
  791. MON("dwarf king", S_HUMANOID,
  792. 	LVL(6, 6, MARM(10,4), 20, 6), (G_NOHELL|G_GENO|1),
  793. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
  794. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  795. 	SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  796. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
  797. 	M2_DWARF|M2_STRONG|M2_PRINCE|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  798. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  799. MON("duergar", S_HUMANOID,  
  800. 	LVL(4, 6, MARM(10,2), 10, 5), (G_HELL|G_GENO|1),
  801. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  802. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  803. 	SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN),MR_HITASONE, 0, 
  804. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID,
  805. 	M2_DWARF|M2_STRONG|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT, 
  806. 	0, CLR_GRAY),
  807. MON("deep one", S_HUMANOID,
  808. 	LVL(7, 9, 5, 10, -5), (G_GENO|G_LGROUP|2),
  809. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  810. 	  ATTK(AT_BITE, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  811. 	SIZ(1500, 400, 0, MS_GURGLE, MZ_HUMAN), MR_COLD|MR_POISON, MR_POISON,
  812. 	M1_SWIM|M1_AMPHIBIOUS|M1_HUMANOID|M1_OMNIVORE|M1_POIS,
  813. M2_HOSTILE|M2_STALK|M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_MAGIC,
  814. M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR,
  815. 	CLR_GREEN),
  816. MON("mind flayer", S_HUMANOID,
  817. 	LVL(9, 12, 5, 90, -8), (G_GENO|1),
  818. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_TENT, AD_DRIN, 2, 1),
  819. 	  ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1),
  820. 	  ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1)),
  821. 	SIZ(1450, 400, 0, MS_HISS, MZ_HUMAN),MR_HITASTWO, 0,
  822. 	M1_HUMANOID|M1_FLY|M1_SEE_INVIS|M1_OMNIVORE,
  823. 	M2_HOSTILE|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  824. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_MAGENTA),
  825. MON("master mind flayer", S_HUMANOID,
  826. 	LVL(13, 12, 0, 90, -8), (G_GENO|1),
  827. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_TENT, AD_DRIN, 2, 1),
  828. 	  ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1),
  829. 	  NO_ATTK, NO_ATTK),
  830. 	SIZ(1450, 400, 0, MS_HISS, MZ_HUMAN), 0, 0,
  831. 	M1_HUMANOID|M1_FLY|M1_SEE_INVIS|M1_OMNIVORE,
  832. 	M2_HOSTILE|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  833. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_MAGENTA),
  834. MON("deeper one", S_HUMANOID,
  835. 	LVL(15,12, 0, 30, -7), (G_GENO|G_SGROUP|2),
  836. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  837. 	  ATTK(AT_BITE, AD_PHYS, 4, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  838. 	SIZ(2000, 500, 0, MS_GURGLE, MZ_LARGE), MR_COLD|MR_POISON, MR_POISON,
  839. 	M1_SWIM|M1_AMPHIBIOUS|M1_HUMANOID|M1_OMNIVORE|M1_POIS,
  840. M2_HOSTILE|M2_STALK|M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_LORD|M2_STRONG|M2_MAGIC,
  841. M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR,
  842. 	CLR_GREEN),
  843. MON("deepest one", S_HUMANOID,
  844. 	LVL(30, 15, -5, 70, -9), (G_GENO|1),
  845. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 6),
  846. 	  ATTK(AT_BITE, AD_PHYS, 5, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  847. 	SIZ(3000, 500, 0, MS_GURGLE, MZ_HUGE), MR_COLD|MR_POISON, MR_POISON,
  848. 	M1_SWIM|M1_AMPHIBIOUS|M1_HUMANOID|M1_OMNIVORE|M1_POIS|M1_THICK_HIDE,
  849. M2_HOSTILE|M2_STALK|M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_PRINCE|M2_STRONG|M2_MAGIC,
  850. M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR,
  851. 	HI_LORD),
  852. /*
  853. * imps & other minor demons/devils
  854. */
  855. MON("manes", S_IMP,
  856. 	LVL(1, 3, 7, 0, -7), (G_GENO|G_LGROUP|G_NOCORPSE|1),
  857. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  858. 	  ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  859. 	SIZ(100, 100, 0, MS_SILENT, MZ_SMALL), MR_SLEEP|MR_POISON|MR_HITASONE, 0,
  860. 	M1_POIS, M2_HOSTILE|M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  861. MON("homunculus", S_IMP,
  862. 	LVL(2, 12, 6, 10, -7), (G_GENO|2),
  863. 	A(ATTK(AT_BITE, AD_SLEE, 1, 3),
  864. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  865. 	SIZ(60, 100, 0, MS_SILENT, MZ_TINY),
  866. 	MR_SLEEP|MR_POISON|MR_HITASONE, MR_SLEEP|MR_POISON,
  867. 	M1_FLY|M1_POIS, M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GREEN),
  868. MON("dretch", S_IMP, 
  869. 	LVL(2, 12, 2, 20, -7), (G_GENO|1),
  870. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK,
  871. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  872. 	SIZ(20, 10, 0, MS_CUSS, MZ_TINY), 0, 0,
  873. 	M1_REGEN, M2_WANDER|M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_YELLOW),
  874. MON("imp", S_IMP,
  875. 	LVL(3, 12, 2, 20, -7), (G_GENO|1),
  876. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4),
  877. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  878. 	SIZ(20, 10, 0, MS_CUSS, MZ_TINY), 0, 0,
  879. 	M1_REGEN, M2_WANDER|M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  880. MON("lemure", S_IMP,
  881. 	LVL(3, 3, 7, 0, -7), (G_HELL|G_GENO|G_LGROUP|G_NOCORPSE|1),
  882. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3),
  883. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  884. 	SIZ(150, 100, 0, MS_SILENT, MZ_MEDIUM),
  885. 	MR_SLEEP|MR_POISON|MR_PLUSONE|MR_HITASONE, MR_SLEEP, M1_POIS|M1_REGEN,
  886. 	M2_HOSTILE|M2_WANDER|M2_STALK|M2_NEUTER,
  887. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
  888. MON("quasit", S_IMP,
  889. 	LVL(3, 15, 2, 20, -7), (G_GENO|2),
  890. 	A(ATTK(AT_CLAW, AD_DRDX, 1, 2), ATTK(AT_CLAW, AD_DRDX, 1, 2),
  891. 	  ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  892. 	SIZ(200, 200, 0, MS_SILENT, MZ_SMALL), MR_POISON|MR_HITASONE, MR_POISON,
  893. 	M1_REGEN, M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
  894. MON("rutterkin", S_IMP, 
  895. 	LVL(5, 12, 2, 20, -7), (G_GENO|1),
  896. 	A(ATTK(AT_CLAW, AD_DRST, 1, 4), NO_ATTK, NO_ATTK,
  897. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  898. 	SIZ(20, 10, 0, MS_CUSS, MZ_TINY), 0, 0,
  899. 	M1_REGEN, M2_WANDER|M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_ORANGE),
  900. MON("tengu", S_IMP,
  901. 	LVL(6, 13, 5, 30, 7), (G_GENO|3),
  902. 	A(ATTK(AT_BITE, AD_PHYS, 1, 7),
  903. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  904. 	SIZ(300, 200, 0, MS_SQAWK, MZ_SMALL), MR_POISON|MR_HITASONE, MR_POISON,
  905. 	M1_TPORT|M1_TPORT_CNTRL, M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION,
  906. 	CLR_CYAN),
  907. MON("nupperibo", S_IMP, 
  908. 	LVL(7, 12, 0, 20, -7), (G_GENO|1),
  909. 	A(ATTK(AT_CLAW, AD_DRST, 3, 4), NO_ATTK, NO_ATTK,
  910. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  911. 	SIZ(20, 10, 0, MS_CUSS, MZ_TINY), 0, 0,
  912. 	M1_REGEN, M2_WANDER|M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_GREEN),
  913. MON("blood imp", S_IMP, 
  914. 	LVL(9, 12, 0, 60, -7), (G_GENO|1),
  915. 	A(ATTK(AT_CLAW, AD_DRST, 3, 4), ATTK(AT_BITE, AD_PHYS, 3, 4),
  916. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  917. 	SIZ(20, 10, 0, MS_CUSS, MZ_TINY), 0, 0,
  918. 	M1_REGEN, M2_WANDER|M2_STALK, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  919. /*
  920. * jellies
  921. */
  922. MON("blue jelly", S_JELLY,
  923. 	LVL(4, 0, 8, 10, 0), (G_NOHELL|G_GENO|2),
  924. 	A(ATTK(AT_NONE, AD_COLD, 0, 6),
  925. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  926. 	SIZ(50, 20, 0, MS_SILENT, MZ_MEDIUM),
  927. 	MR_COLD|MR_POISON, MR_COLD|MR_POISON,
  928. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS
  929. 	  |M1_NOTAKE,
  930. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BLUE),
  931. MON("spotted jelly", S_JELLY,
  932. 	LVL(5, 0, 8, 10, 0), (G_NOHELL|G_GENO|1),
  933. 	A(ATTK(AT_NONE, AD_ACID, 0, 6),
  934. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  935. 	SIZ(50, 20, 0, MS_SILENT, MZ_MEDIUM), MR_ACID|MR_STONE, 0,
  936. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  937. 	  M1_MINDLESS|M1_ACID|M1_NOTAKE,
  938. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
  939. MON("clear jelly", S_JELLY, 
  940. 	LVL(6, 3, 8, 10, 0), (G_NOHELL|G_GENO|1),
  941. 	A(ATTK(AT_TUCH, AD_ACID, 3, 6), NO_ATTK, NO_ATTK,
  942. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  943. 	SIZ(50, 20, 0, MS_SILENT, MZ_MEDIUM),MR_COLD|MR_POISON, 
  944. 	MR_COLD|MR_POISON,
  945. 	M1_BREATHLESS|M1_CLING|M1_HIDE|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|
  946. 	M1_NOHEAD|M1_MINDLESS|M1_OMNIVORE, 
  947. 	M2_HOSTILE|M2_NEUTER, 0, CLR_CYAN),
  948. MON("ochre jelly", S_JELLY,
  949. 	LVL(6, 3, 8, 20, 0), (G_NOHELL|G_GENO|2),
  950. 	A(ATTK(AT_ENGL, AD_ACID, 3, 6), ATTK(AT_NONE, AD_ACID, 3, 6),
  951. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  952. 	SIZ(50, 20, 0, MS_SILENT, MZ_MEDIUM), MR_ACID|MR_STONE, 0,
  953. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  954. 	  M1_MINDLESS|M1_ACID|M1_NOTAKE,
  955. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
  956. MON("yellow jelly", S_JELLY, 
  957. 	LVL(8, 5, 8, 20, 0), (G_NOHELL|G_GENO|1),
  958. 	A(ATTK(AT_ENGL, AD_ACID, 3, 6), ATTK(AT_NONE, AD_STUN, 2, 6),
  959. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  960. 	SIZ(250, 220, 0, MS_SILENT, MZ_MEDIUM), MR_ACID|MR_STONE, 0,
  961. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  962. 	M1_MINDLESS|M1_ACID|M1_OMNIVORE, M2_HOSTILE|M2_NEUTER,
  963. 	0, CLR_YELLOW),
  964. MON("orange jelly", S_JELLY, 
  965. 	LVL(8, 5, 8, 20, 0), (G_NOHELL|G_GENO|1),
  966. 	A(ATTK(AT_ENGL, AD_ACID, 2, 8), ATTK(AT_NONE, AD_SLEE, 2, 6),
  967. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  968. 	SIZ(250, 220, 0, MS_SILENT, MZ_MEDIUM), MR_ACID|MR_STONE, 0,
  969. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  970. 	M1_MINDLESS|M1_ACID|M1_OMNIVORE, M2_HOSTILE|M2_NEUTER,
  971. 	0, CLR_ORANGE),
  972. MON("rancid jelly", S_JELLY, 
  973. 	LVL(12, 5, 8, 20, 0), (G_NOHELL|G_GENO|1),
  974. 	A(ATTK(AT_ENGL, AD_ACID, 4, 6), ATTK(AT_NONE, AD_ACID, 3, 6),
  975. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  976. 	SIZ(250, 220, 0, MS_SILENT, MZ_MEDIUM), MR_ACID|MR_STONE, 0,
  977. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  978. 	M1_MINDLESS|M1_ACID|M1_OMNIVORE, M2_HOSTILE|M2_NEUTER,
  979. 	0, CLR_BLACK),
  980. /*
  981. * kobolds
  982. */
  983. MON("kobold", S_KOBOLD,
  984. 	LVL(0, 6, MARM(10,7), 0, -2), (G_NOHELL|G_GENO|1),
  985. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
  986. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  987. 	SIZ(400, 100, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
  988. 	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_COLLECT,
  989. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BROWN),
  990. MON("large kobold", S_KOBOLD,
  991. 	LVL(1, 6, MARM(10,6), 0, -3), (G_NOHELL|G_GENO|1),
  992. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  993. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  994. 	SIZ(450, 150, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
  995. 	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_COLLECT,
  996. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_RED),
  997. MON("kobold lord", S_KOBOLD,
  998. 	LVL(2, 6, MARM(10,5), 0, -4), (G_NOHELL|G_GENO|1),
  999. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  1000. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1001. 	SIZ(500, 200, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
  1002. 	M1_HUMANOID|M1_POIS|M1_OMNIVORE,
  1003. 	M2_HOSTILE|M2_LORD|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR,
  1004. 	HI_LORD),
  1005. MON("kobold shaman", S_KOBOLD,
  1006. 	LVL(2, 6, 6, 10, -4), (G_GENO|1),
  1007. 	A(ATTK(AT_MAGC, AD_SPEL, 0, 0),
  1008. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1009. 	SIZ(450, 150, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
  1010. 	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_MAGIC,
  1011. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, HI_ZAP),
  1012. MON("swamp kobold", S_KOBOLD,  
  1013. 	LVL(3, 9, MARM(10,5), 0, -3), (G_NOHELL|G_GENO|1),
  1014. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK,
  1015. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1016. 	SIZ(450, 150, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
  1017. 	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_COLLECT, 
  1018. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_GREEN),
  1019. MON("rock kobold", S_KOBOLD,  
  1020. 	LVL(5, 9, MARM(10,5), 0, -3), (G_NOHELL|G_GENO|1),
  1021. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK,
  1022. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1023. 	SIZ(450, 150, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
  1024. 	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_COLLECT, 
  1025. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  1026. MON("kobold warrior", S_KOBOLD,  
  1027. 	LVL(7, 9, MARM(10,4), 0, -3), (G_NOHELL|G_GENO|1),
  1028. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK,
  1029. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1030. 	SIZ(450, 150, 0, MS_ORC, MZ_SMALL), MR_POISON, 0,
  1031. 	M1_HUMANOID|M1_POIS|M1_OMNIVORE, M2_HOSTILE|M2_COLLECT, 
  1032. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_GRAY),
  1033. MON("Kroo the Kobold King", S_KOBOLD, 
  1034. 	LVL(13, 9, MARM(10,0), 0, -3), (G_UNIQ|G_NOGEN|1),
  1035. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK,
  1036. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1037. 	SIZ(450, 150, 0, MS_ORC, MZ_SMALL), MR_POISON|MR_STONE, 0,
  1038. 	M1_HUMANOID|M1_POIS|M1_OMNIVORE,
  1039. 	M2_PNAME|M2_PRINCE|M2_MALE|M2_GREEDY|M2_STALK|
  1040. 	M2_HOSTILE|M2_NASTY|M2_NOPOLY|M2_JEWELS|M2_COLLECT|
  1041. 	M2_MAGIC, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, HI_LORD),
  1042. /*
  1043. * leprechauns
  1044. */
  1045. MON("leprechaun", S_LEPRECHAUN,
  1046. 	LVL(5, 15, 8, 20, 0), (G_NOHELL|G_GENO|4),
  1047. 	A(ATTK(AT_CLAW, AD_SGLD, 1, 2),
  1048. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1049. 	SIZ(60, 30, 0, MS_LAUGH, MZ_TINY), MR_HITASONE, 0,
  1050. 	M1_HUMANOID|M1_TPORT, M2_HOSTILE|M2_GREEDY, M3_INFRAVISIBLE, CLR_GREEN),
  1051. MON("leprechaun wizard", S_LEPRECHAUN, 
  1052. 	LVL(8, 15, 6, 20, 0), (G_NOHELL|G_GENO|1),
  1053. 	A(ATTK(AT_CLAW, AD_SGLD, 1, 2), ATTK(AT_MAGC, AD_SPEL, 0, 0), 
  1054. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1055. 	SIZ(60, 30, 0, MS_LAUGH, MZ_TINY), MR_HITASONE, 0,
  1056. 	M1_HUMANOID|M1_TPORT, M2_HOSTILE|M2_GREEDY|M2_MAGIC, 0, HI_ZAP),
  1057. /*
  1058. * mimics
  1059. */
  1060. MON("small mimic", S_MIMIC,
  1061. 	LVL(7, 3, 7, 0, 0), (G_GENO|2),
  1062. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4),
  1063. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1064. 	SIZ(300, 200, 0, MS_SILENT, MZ_MEDIUM), MR_ACID, 0,
  1065. 	M1_BREATHLESS|M1_AMORPHOUS|M1_HIDE|M1_ANIMAL|M1_NOEYES|
  1066. 	  M1_NOHEAD|M1_NOLIMBS|M1_THICK_HIDE|M1_CARNIVORE,
  1067. 	M2_HOSTILE, 0, CLR_BROWN),
  1068. MON("large mimic", S_MIMIC,
  1069. 	LVL(8, 3, 7, 10, 0), (G_GENO|1),
  1070. 	A(ATTK(AT_CLAW, AD_STCK, 3, 4),
  1071. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1072. 	SIZ(600, 400, 0, MS_SILENT, MZ_LARGE), MR_ACID, 0,
  1073. 	M1_CLING|M1_BREATHLESS|M1_AMORPHOUS|M1_HIDE|M1_ANIMAL|M1_NOEYES|
  1074. 	  M1_NOHEAD|M1_NOLIMBS|M1_THICK_HIDE|M1_CARNIVORE,
  1075. 	M2_HOSTILE|M2_STRONG, 0, CLR_RED),
  1076. MON("giant mimic", S_MIMIC,
  1077. 	LVL(9, 3, 7, 20, 0), (G_GENO|1),
  1078. 	A(ATTK(AT_CLAW, AD_STCK, 3, 6), ATTK(AT_CLAW, AD_STCK, 3, 6),
  1079. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1080. 	SIZ(800, 500, 0, MS_SILENT, MZ_LARGE), MR_ACID, 0,
  1081. 	M1_CLING|M1_BREATHLESS|M1_AMORPHOUS|M1_HIDE|M1_ANIMAL|M1_NOEYES|
  1082. 	  M1_NOHEAD|M1_NOLIMBS|M1_THICK_HIDE|M1_CARNIVORE,
  1083. 	M2_HOSTILE|M2_STRONG, 0, HI_LORD),
  1084. /*
  1085. * nymphs
  1086. */
  1087. MON("wood nymph", S_NYMPH,
  1088. 	LVL(3, 12, 9, 20, 0), (G_NOHELL|G_GENO|2),
  1089. 	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0),
  1090. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1091. 	SIZ(600, 300, 0, MS_SEDUCE, MZ_HUMAN), MR_HITASONE, 0,
  1092. 	M1_HUMANOID|M1_TPORT, M2_HOSTILE|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
  1093. 	CLR_GREEN),
  1094. MON("water nymph", S_NYMPH,
  1095. 	LVL(3, 12, 9, 20, 0), (G_NOHELL|G_GENO|2),
  1096. 	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0),
  1097. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1098. 	SIZ(600, 300, 0, MS_SEDUCE, MZ_HUMAN), MR_HITASONE, 0,
  1099. 	M1_HUMANOID|M1_TPORT|M1_SWIM,
  1100. 	M2_HOSTILE|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE, CLR_BLUE),
  1101. MON("mountain nymph", S_NYMPH,
  1102. 	LVL(3, 12, 9, 20, 0), (G_NOHELL|G_GENO|2),
  1103. 	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0),
  1104. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1105. 	SIZ(600, 300, 0, MS_SEDUCE, MZ_HUMAN), MR_HITASONE, 0,
  1106. 	M1_HUMANOID|M1_TPORT, M2_HOSTILE|M2_FEMALE|M2_COLLECT,
  1107. 	M3_INFRAVISIBLE, CLR_BROWN),
  1108. MON("pixie", S_NYMPH,
  1109. 	LVL(3, 15, 3, 20, 0), (G_NOHELL|G_GENO|1),
  1110. 	A(ATTK(AT_CLAW, AD_SITM, 1, 2), NO_ATTK, NO_ATTK,
  1111. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1112. 	SIZ(60, 30, 0, MS_LAUGH, MZ_TINY), MR_HITASONE, 0,
  1113. 	M1_HUMANOID|M1_SEE_INVIS, M2_HOSTILE|M2_GREEDY, 
  1114. 	M3_INFRAVISIBLE, CLR_CYAN),
  1115. MON("brownie", S_NYMPH,
  1116. 	LVL(8, 15, 3, 20, 0), (G_NOHELL|G_GENO|1),
  1117. 	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  1118. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1119. 	SIZ(60, 30, 0, MS_LAUGH, MZ_TINY), MR_HITASONE, 0,
  1120. 	M1_HUMANOID|M1_TPORT, M2_HOSTILE|M2_GREEDY|M2_MAGIC, 
  1121. 	M3_INFRAVISIBLE, CLR_BROWN),
  1122. MON("quickling", S_NYMPH,
  1123. 	LVL(3, 30, 10, 20, -10), (G_HELL|G_GENO|1),
  1124. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_SITM, 0, 0),
  1125. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1126. 	SIZ(60, 30, 0, MS_LAUGH, MZ_TINY), MR_HITASONE, 0,
  1127. 	M1_HUMANOID, M2_HOSTILE|M2_GREEDY|M2_NASTY, 
  1128. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_BLUE),
  1129. MON("Aphrodite", S_NYMPH,
  1130. 	LVL(10, 15, -5, 20, 0), (G_UNIQ|G_NOGEN|1),
  1131. 	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0),
  1132. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1133. 	SIZ(600, 300, 0, MS_SEDUCE, MZ_HUMAN), 0, 0, 
  1134. 	M1_HUMANOID|M1_TPORT,
  1135. 	M2_PNAME|M2_PRINCE|M2_FEMALE|M2_GREEDY|M2_STALK|M2_HOSTILE|
  1136. 	M2_NASTY|M2_NOPOLY|M2_JEWELS|M2_COLLECT|M2_MAGIC, 
  1137. 	M3_INFRAVISIBLE|M3_NOTAME, HI_LORD),
  1138. /*
  1139. * orcs
  1140. */
  1141. MON("goblin", S_ORC,
  1142. 	LVL(0, 6, MARM(10,6), 0, -3), (G_NOHELL|G_GENO|3),
  1143. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
  1144. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1145. 	SIZ(400, 100, 0, MS_ORC, MZ_SMALL), 0, 0,
  1146. 	M1_HUMANOID|M1_OMNIVORE, M2_ORC|M2_COLLECT,
  1147. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_GRAY),
  1148. MON("hobgoblin", S_ORC,
  1149. 	LVL(1, 9, MARM(10,6), 0, -4), (G_NOHELL|G_GENO|3),
  1150. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  1151. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1152. 	SIZ(1000, 200, 0, MS_ORC, MZ_HUMAN), 0, 0,
  1153. 	M1_HUMANOID|M1_OMNIVORE, M2_ORC|M2_STRONG|M2_COLLECT,
  1154. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BROWN),
  1155. 	/* plain "orc" for zombie corpses only; not created at random
  1156. 	 */
  1157. MON("orc", S_ORC,
  1158. 	LVL(1, 9, MARM(10,6), 0, -3), (G_NOGEN|G_GENO),
  1159. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  1160. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1161. 	SIZ(850, 150, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
  1162. 	M2_NOPOLY|M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  1163. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_RED),
  1164. MON("hill orc", S_ORC,
  1165. 	LVL(2, 9, MARM(10,6), 0, -4), (G_NOHELL|G_GENO|G_LGROUP|3),
  1166. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  1167. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1168. 	SIZ(1000, 200, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
  1169. 	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  1170. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_YELLOW),
  1171. MON("Mordor orc", S_ORC,
  1172. 	LVL(3, 5, MARM(10,6), 0, -5), (G_NOHELL|G_GENO|G_LGROUP|2),
  1173. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  1174. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1175. 	SIZ(1200, 200, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
  1176. 	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  1177. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BLUE),
  1178. MON("Uruk-hai", S_ORC,
  1179. 	LVL(3, 7, MARM(10,5), 0, -4), (G_NOHELL|G_GENO|G_LGROUP|1),
  1180. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  1181. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1182. 	SIZ(1300, 300, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
  1183. 	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  1184. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  1185. MON("orc shaman", S_ORC,
  1186. 	LVL(3, 9, 5, 10, -5), (G_NOHELL|G_GENO|1),
  1187. 	A(ATTK(AT_MAGC, AD_SPEL, 0, 0),
  1188. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1189. 	SIZ(1000, 300, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
  1190. 	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  1191. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, HI_ZAP),
  1192. MON("orc-captain", S_ORC,
  1193. 	LVL(5, 5, MARM(10,4), 0, -5), (G_NOHELL|G_GENO|1),
  1194. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  1195. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1196. 	SIZ(1350, 350, 0, MS_ORC, MZ_HUMAN), MR_HITASONE, 0, M1_HUMANOID|M1_OMNIVORE,
  1197. 	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  1198. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, HI_LORD),
  1199. MON("war orc", S_ORC, 
  1200. 	LVL(6, 7, MARM(10,3), 0, -4), (G_HELL|G_GENO|G_LGROUP|1),
  1201. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK,
  1202. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1203. 	SIZ(1300, 300, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
  1204. 	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  1205. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_GREEN),
  1206. MON("great orc", S_ORC, 
  1207. 	LVL(9, 7, MARM(10,2), 10, -4), (G_HELL|G_GENO|G_LGROUP|1),
  1208. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK,
  1209. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1210. 	SIZ(1300, 300, 0, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE,
  1211. 	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  1212. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BRIGHT_GREEN),
  1213. MON("Grund the Orc King", S_ORC, 
  1214. 	LVL(20, 7, MARM(10,0), 66, -4), (G_UNIQ|G_NOGEN|1),
  1215. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 8), NO_ATTK, NO_ATTK,
  1216. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1217. 	SIZ(1300, 300, 0, MS_ORC, MZ_HUMAN), MR_POISON, MR_POISON, 
  1218. 	M1_HUMANOID|M1_OMNIVORE,
  1219. 	M2_ORC|M2_STRONG|M2_PNAME|M2_PRINCE|M2_MALE|M2_GREEDY|M2_STALK|
  1220. 	M2_HOSTILE|M2_NASTY|M2_NOPOLY|M2_JEWELS|M2_COLLECT|M2_MAGIC, 
  1221. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_NOTAME, HI_LORD),
  1222. MON("snow orc", S_ORC, 
  1223. 	LVL(9, 12, MARM(10,-2), 10, -9), (G_NOHELL|G_GENO|G_LGROUP|1),
  1224. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK,
  1225. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1226. 	SIZ(1300, 300, 0, MS_ORC, MZ_HUMAN), MR_COLD, MR_COLD,
  1227. 	M1_HUMANOID|M1_OMNIVORE,
  1228. 	M2_ORC|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  1229. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_CYAN),
  1230. MON("demon orc", S_ORC, 
  1231. 	LVL(12, 12, MARM(10,-2), 10, -9), (G_HELL|G_GENO|G_LGROUP|1),
  1232. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK,
  1233. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1234. 	SIZ(1300, 300, 0, MS_ORC, MZ_HUMAN), MR_FIRE, MR_FIRE,
  1235. 	M1_HUMANOID|M1_OMNIVORE,
  1236. 	M2_ORC|M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  1237. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_ORANGE),
  1238. /*
  1239. * piercers
  1240. */
  1241. MON("rock piercer", S_PIERCER,
  1242. 	LVL(3, 1, 3, 0, 0), (G_GENO|4),
  1243. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  1244. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1245. 	SIZ(200, 200, 0, MS_SILENT, MZ_SMALL), 0, 0,
  1246. 	M1_CLING|M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
  1247. 	M2_HOSTILE, 0, CLR_GRAY),
  1248. MON("iron piercer", S_PIERCER,
  1249. 	LVL(5, 1, 0, 0, 0), (G_GENO|2),
  1250. 	A(ATTK(AT_BITE, AD_PHYS, 3, 6),
  1251. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1252. 	SIZ(400, 300, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
  1253. 	M1_CLING|M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
  1254. 	M2_HOSTILE, 0, CLR_CYAN),
  1255. MON("glass piercer", S_PIERCER,
  1256. 	LVL(7, 1, 0, 0, 0), (G_GENO|1),
  1257. 	A(ATTK(AT_BITE, AD_PHYS, 4, 6), NO_ATTK, NO_ATTK,
  1258. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1259. 	SIZ(400, 300, 0, MS_SILENT, MZ_MEDIUM), MR_ACID, 0,
  1260. 	M1_CLING|M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
  1261. 	M2_HOSTILE, 0, CLR_WHITE),
  1262. /*
  1263. * quadrupeds
  1264. */
  1265. MON("lamb", S_QUADRUPED,
  1266. 	LVL(1, 12, 10, 0, 0), (G_GENO|G_SGROUP|2),
  1267. 	A(ATTK(AT_BUTT, AD_PHYS, 1, 2), ATTK(AT_KICK, AD_PHYS, 1, 2),
  1268. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1269. 	SIZ(200, 50, 0, MS_SHEEP, MZ_SMALL), 0, 0,
  1270. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_DOMESTIC|M2_PEACEFUL,
  1271. 	M3_INFRAVISIBLE, CLR_WHITE),
  1272. MON("rothe", S_QUADRUPED,
  1273. 	LVL(2, 9, 7, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|4),
  1274. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_BITE, AD_PHYS, 1, 3),
  1275. 	  ATTK(AT_BITE, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  1276. 	SIZ(400, 100, 0, MS_SILENT, MZ_LARGE), 0, 0,
  1277. 	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE, M2_HOSTILE, 0, CLR_BROWN),
  1278. MON("giant badger", S_QUADRUPED, 
  1279. 	LVL(2, 12, 6, 0, 0), (G_NOHELL|G_GENO|1),
  1280. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 2),
  1281. 	  ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK),
  1282. 	SIZ(200, 50, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
  1283. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_BROWN),
  1284. MON("scramper", S_QUADRUPED, 
  1285. 	LVL(3, 9, 7, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|1),
  1286. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_BITE, AD_PHYS, 1, 3),
  1287. 	  ATTK(AT_BITE, AD_PHYS, 1, 8), ATTK(AT_STNG, AD_LEGS, 1, 6),
  1288. 	  NO_ATTK, NO_ATTK),
  1289. 	SIZ(400, 100, 0, MS_SILENT, MZ_LARGE), 0, 0,
  1290. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE|M1_POIS, M2_HOSTILE, 0, CLR_GREEN),
  1291. MON("sheep", S_QUADRUPED,
  1292. 	LVL(3, 12, 8, 0, 0), (G_GENO|G_SGROUP|2),
  1293. 	A(ATTK(AT_BUTT, AD_PHYS, 1, 4), ATTK(AT_KICK, AD_PHYS, 1, 3),
  1294. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1295. 	SIZ(700, 100, 0, MS_SHEEP, MZ_MEDIUM), 0, 0,
  1296. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_DOMESTIC|M2_PEACEFUL,
  1297. 	M3_INFRAVISIBLE, CLR_WHITE),
  1298. MON("goat", S_QUADRUPED,
  1299. 	LVL(4, 12, 6, 0, 0), (G_GENO|G_SGROUP|1),
  1300. 	A(ATTK(AT_BUTT, AD_PHYS, 2, 4), ATTK(AT_KICK, AD_PHYS, 1, 4),
  1301. 	  ATTK(AT_KICK, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  1302. 	SIZ(700, 75, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
  1303. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_DOMESTIC,
  1304. 	M3_INFRAVISIBLE, CLR_WHITE),
  1305. MON("squealer", S_QUADRUPED, 
  1306. 	LVL(4, 9, 7, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|1),
  1307. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_BITE, AD_PHYS, 1, 3),
  1308. 	  ATTK(AT_BITE, AD_PHYS, 1, 8), ATTK(AT_STNG, AD_LEGS, 1, 6),
  1309. 	  NO_ATTK, NO_ATTK),
  1310. 	SIZ(400, 100, 0, MS_SHRIEK, MZ_LARGE), 0, 0,
  1311. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE|M1_POIS, M2_HOSTILE, 0, CLR_MAGENTA),
  1312. MON("mumak", S_QUADRUPED,
  1313. 	LVL(5, 9, 0, 0, -2), (G_NOHELL|G_GENO|1),
  1314. 	A(ATTK(AT_BUTT, AD_PHYS, 4,12), ATTK(AT_BITE, AD_PHYS, 2, 6),
  1315. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1316. 	SIZ(2500, 500, 0, MS_ROAR, MZ_LARGE), 0, 0,
  1317. 	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
  1318. 	M2_HOSTILE|M2_STRONG, 0, CLR_GRAY),
  1319. MON("leocrotta", S_QUADRUPED,
  1320. 	LVL(6, 18, 4, 10, 0), (G_GENO|2),
  1321. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_BITE, AD_PHYS, 2, 6),
  1322. 	  ATTK(AT_CLAW, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  1323. 	SIZ(1200, 500, 0, MS_IMITATE, MZ_LARGE), MR_HITASTWO, 0,
  1324. 	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE, M2_HOSTILE|M2_STRONG, 0, CLR_RED),
  1325. MON("cow", S_QUADRUPED,
  1326. 	LVL(7, 9, 7, 0, 0), (G_GENO|2),
  1327. 	A(ATTK(AT_BUTT, AD_PHYS, 1, 8), ATTK(AT_KICK, AD_PHYS, 2, 4),
  1328. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1329. 	SIZ(2000, 300, 0, MS_COW, MZ_MEDIUM), 0, 0,
  1330. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_DOMESTIC|M2_PEACEFUL|
  1331. 	M2_FEMALE,M3_INFRAVISIBLE, CLR_WHITE),
  1332. MON("mangler", S_QUADRUPED, 
  1333. 	LVL(8, 9, 7, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|1),
  1334. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 3), ATTK(AT_CLAW, AD_PHYS, 3, 3),
  1335. 	  ATTK(AT_BITE, AD_PHYS, 3, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  1336. 	SIZ(400, 100, 0, MS_SILENT, MZ_LARGE), 0, 0,
  1337. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_TRAITOR, CLR_ORANGE),
  1338. MON("wumpus", S_QUADRUPED,
  1339. 	LVL(8, 3, 2, 10, 0), (G_NOHELL|G_GENO|1),
  1340. 	A(ATTK(AT_BITE, AD_PHYS, 3, 6),
  1341. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1342. 	SIZ(2500, 500, 0, MS_BURBLE, MZ_LARGE), MR_HITASONE, 0,
  1343. 	M1_CLING|M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE,
  1344. 	M2_HOSTILE|M2_STRONG, 0, CLR_CYAN),
  1345. MON("bull", S_QUADRUPED,
  1346. 	LVL(10, 15, 5, 0, 0), (G_GENO|1),
  1347. 	A(ATTK(AT_BUTT, AD_PHYS, 2, 8), ATTK(AT_KICK, AD_PHYS, 2, 4),
  1348. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1349. 	SIZ(3000, 500, 0, MS_COW, MZ_MEDIUM), 0, 0,
  1350. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_DOMESTIC|M2_HOSTILE|
  1351. 	M2_MALE,M3_INFRAVISIBLE, CLR_BLACK),
  1352. MON("titanothere", S_QUADRUPED,
  1353. 	LVL(12, 12, 6, 0, 0), (G_NOHELL|G_GENO|2),
  1354. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8),
  1355. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1356. 	SIZ(2650, 650, 0, MS_SILENT, MZ_LARGE), MR_HITASTWO, 0,
  1357. 	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
  1358. 	M2_HOSTILE|M2_STRONG, 0, CLR_GRAY),
  1359. MON("baluchitherium", S_QUADRUPED,
  1360. 	LVL(14, 12, 5, 0, 0), (G_NOHELL|G_GENO|2),
  1361. 	A(ATTK(AT_CLAW, AD_PHYS, 5, 4), ATTK(AT_CLAW, AD_PHYS, 5, 4),
  1362. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1363. 	SIZ(3800, 800, 0, MS_SILENT, MZ_LARGE), MR_HITASTHREE, 0,
  1364. 	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
  1365. 	M2_HOSTILE|M2_STRONG, 0, CLR_GRAY),
  1366. MON("mastodon", S_QUADRUPED,
  1367. 	LVL(20, 12, 5, 0, 0), (G_GENO|1),
  1368. 	A(ATTK(AT_BUTT, AD_PHYS, 4, 8), ATTK(AT_BUTT, AD_PHYS, 4, 8),
  1369. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1370. 	SIZ(3800, 800, 0, MS_SILENT, MZ_LARGE), 0, 0,
  1371. 	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
  1372. 	M2_HOSTILE|M2_STRONG, 0, CLR_BROWN),
  1373. MON("Jumbo the Elephant", S_QUADRUPED, 
  1374. 	LVL(30, 12, 5, 0, 0), (G_UNIQ|1),
  1375. 	A(ATTK(AT_BUTT, AD_PHYS, 6, 8), ATTK(AT_BUTT, AD_PHYS, 6, 8),
  1376. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1377. 	SIZ(3800, 800, 0, MS_SILENT, MZ_LARGE), MR_STONE, MR_STONE,
  1378. 	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
  1379. 	M2_STRONG|M2_PNAME|M2_PRINCE|M2_MALE|M2_STALK|
  1380. 	M2_HOSTILE|M2_NASTY|M2_NOPOLY, 0, HI_LORD),
  1381. MON("juggernaut", S_QUADRUPED, 
  1382. 	LVL(30, 9, 7, 0, 0), (G_NOHELL|G_GENO|G_NOCORPSE|1),
  1383. 	A(ATTK(AT_BUTT, AD_PHYS, 8, 8), NO_ATTK,
  1384. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1385. 	SIZ(3800, 800, 0, MS_SILENT, MZ_GIGANTIC), 0, 0,
  1386. 	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|M1_HERBIVORE,
  1387. 	M2_HOSTILE|M2_STRONG, 0, CLR_YELLOW),
  1388. MON("catoblepas", S_QUADRUPED, 
  1389. 	LVL(6, 6, 7, 10, 0), (G_NOGEN|G_UNIQ|G_GENO),
  1390. 	A(ATTK(AT_GAZE, AD_DETH, 2, 6), ATTK(AT_BITE, AD_PHYS, 1, 3),
  1391. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1392. 	SIZ(1200, 500, 0, MS_SILENT, MZ_LARGE), MR_HITASTWO, 0,
  1393. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE,
  1394. 	M2_HOSTILE|M2_NASTY|M2_STRONG, 0, CLR_BLACK),
  1395. /*
  1396. * rodents
  1397. */
  1398. MON("sewer rat", S_RODENT,
  1399. 	LVL(0, 12, 7, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|1),
  1400. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3),
  1401. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1402. 	SIZ(20, 12, 0, MS_SQEEK, MZ_TINY), 0, 0,
  1403. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  1404. 	CLR_BROWN),
  1405. MON("rabbit", S_RODENT, 
  1406. 	LVL(0, 15, 7, 0, 0), (G_NOHELL|G_GENO|2),
  1407. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK,
  1408. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1409. 	SIZ(20, 12, 0, MS_SQEEK, MZ_TINY), 0, 0,
  1410. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_HOSTILE, 
  1411. 	M3_INFRAVISIBLE, CLR_WHITE),
  1412. MON("black rat",  S_RODENT, 
  1413. 	LVL(0, 12, 7, 0, 0), (G_NOGEN|G_GENO),
  1414. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK,
  1415. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1416. 	SIZ(20, 12, 0, MS_SQEEK, MZ_TINY), 0, 0,
  1417. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 
  1418. 	M3_INFRAVISIBLE, CLR_BLACK),
  1419. MON("giant rat", S_RODENT,
  1420. 	LVL(1, 10, 7, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|2),
  1421. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3),
  1422. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1423. 	SIZ(30, 30, 0, MS_SQEEK, MZ_TINY), 0, 0,
  1424. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  1425. 	CLR_BROWN),
  1426. MON("rabid rat", S_RODENT,
  1427. 	LVL(2, 12, 6, 0, 0), (G_NOHELL|G_GENO|1),
  1428. 	A(ATTK(AT_BITE, AD_DRCO, 2, 4),
  1429. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1430. 	SIZ(30, 5, 0, MS_SQEEK, MZ_TINY), MR_POISON, 0,
  1431. 	M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  1432. 	CLR_BROWN),
  1433. MON("rabid rabbit", S_RODENT, 
  1434. 	LVL(3, 18, 7, 0, 0), (G_NOHELL|G_GENO|1),
  1435. 	A(ATTK(AT_BITE, AD_DRCO, 2, 6), NO_ATTK, NO_ATTK,
  1436. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1437. 	SIZ(20, 12, 0, MS_SQEEK, MZ_TINY), 0, 0,
  1438. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE,
  1439. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_WHITE),
  1440. MON("pack rat", S_RODENT, 
  1441. 	LVL(0, 12, 7, 0, 0), (G_NOGEN|G_GENO),
  1442. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3), ATTK(AT_TUCH, AD_SITM, 1, 1),
  1443. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1444. 	SIZ(20, 12, 0, MS_SQEEK, MZ_TINY), 0, 0,
  1445. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  1446. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_BLACK),
  1447. MON("wererat", S_RODENT,
  1448. 	LVL(2, 12, 6, 10, -7), (G_NOGEN|G_NOCORPSE),
  1449. 	A(ATTK(AT_BITE, AD_WERE, 1, 4),
  1450. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1451. 	SIZ(40, 30, 0, MS_SQEEK, MZ_TINY), MR_POISON, 0,
  1452. 	M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
  1453. 	M2_NOPOLY|M2_WERE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
  1454. MON("rock mole", S_RODENT,
  1455. 	LVL(3, 3, 0, 20, 0), (G_NOHELL|G_GENO|2),
  1456. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
  1457. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1458. 	SIZ(30, 30, 0, MS_SILENT, MZ_SMALL), 0, 0,
  1459. 	M1_TUNNEL|M1_ANIMAL|M1_NOHANDS|M1_METALLIVORE,
  1460. 	M2_HOSTILE|M2_GREEDY|M2_JEWELS|M2_COLLECT, M3_INFRAVISIBLE, CLR_GRAY),
  1461. MON("woodchuck", S_RODENT,
  1462. 	LVL(3, 3, 0, 20, 0), (G_NOGEN|G_GENO),
  1463. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
  1464. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1465. 	SIZ(30, 30, 0, MS_SILENT, MZ_SMALL), 0, 0,
  1466. 	M1_TUNNEL/*LOGGING*/|M1_ANIMAL|M1_NOHANDS|M1_SWIM|M1_HERBIVORE,
  1467. 		/* In reality, they tunnel instead of cutting lumber.  Oh, well. */
  1468. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
  1469. MON("hellrat", S_RODENT, 
  1470. 	LVL(5, 15, 7, 0, 0), (G_HELL|G_GENO|G_LGROUP|G_NOCORPSE|1),
  1471. 	A(ATTK(AT_BITE, AD_FIRE, 3, 3), NO_ATTK, NO_ATTK,
  1472. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1473. 	SIZ(20, 12, 0, MS_SQEEK, MZ_TINY), MR_FIRE, MR_FIRE,
  1474. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  1475. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_RED),
  1476. MON("the Rat King", S_RODENT, 
  1477. 	LVL(12, 15, 7, 0, 0), (G_UNIQ|1),
  1478. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_BITE, AD_PHYS, 2, 3), 
  1479. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1480. 	SIZ(200, 120, 0, MS_SQEEK, MZ_MEDIUM), MR_STONE, MR_STONE,
  1481. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  1482. 	M2_STRONG|M2_PNAME|M2_PRINCE|M2_MALE|M2_GREEDY|M2_STALK|
  1483. 	M2_HOSTILE|M2_NASTY|M2_NOPOLY|M2_JEWELS|M2_COLLECT|
  1484. 	M2_MAGIC, M3_INFRAVISIBLE|M3_NOTAME, HI_LORD),
  1485. /*
  1486. * spiders & scorpions (keep webmaker() in sync if new critters are added)
  1487. */
  1488. MON("cave spider", S_SPIDER,
  1489. 	LVL(1, 12, 3, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|3),
  1490. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
  1491. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1492. 	SIZ(50, 50, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
  1493. 	M1_CONCEAL|M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
  1494. 	M2_HOSTILE, 0, CLR_GRAY),
  1495. MON("centipede", S_SPIDER, 
  1496. 	LVL(2, 4, 3, 0, 0), (G_GENO|1),
  1497. 	A(ATTK(AT_BITE, AD_DRST, 1, 3), NO_ATTK, NO_ATTK,
  1498. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1499. 	SIZ(50, 50, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
  1500. 	M1_CONCEAL|M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
  1501. 	M2_HOSTILE, 0, CLR_YELLOW),
  1502. MON("recluse spider", S_SPIDER, 
  1503. 	LVL(3, 12, 3, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|1),
  1504. 	A(ATTK(AT_BITE, AD_DRST, 1, 4), NO_ATTK, NO_ATTK,
  1505. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1506. 	SIZ(50, 50, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
  1507. 	M1_CONCEAL|M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
  1508. 	M2_HOSTILE, 0, CLR_BROWN),
  1509. MON("giant spider", S_SPIDER,
  1510. 	LVL(5, 15, 4, 0, 0), (G_NOHELL|G_GENO|1),
  1511. 	A(ATTK(AT_BITE, AD_DRST, 2, 4),
  1512. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1513. 	SIZ(100, 100, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
  1514. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
  1515. 	M2_HOSTILE|M2_STRONG, 0, CLR_MAGENTA),
  1516. MON("barking spider", S_SPIDER, 
  1517. 	LVL(5, 15, 3, 0, 0), (G_NOHELL|G_GENO|1),
  1518. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2), ATTK(AT_BITE, AD_PHYS, 1, 2),
  1519. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1520. 	SIZ(100, 100, 0, MS_BARK, MZ_LARGE), MR_POISON, MR_POISON,
  1521. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|
  1522. 	M1_CARNIVORE, M2_HOSTILE, 0, CLR_ORANGE),
  1523. MON("scorpion", S_SPIDER,
  1524. 	LVL(5, 15, 3, 0, 0), (G_NOHELL|G_GENO|1),
  1525. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 2),
  1526. 	  ATTK(AT_STNG, AD_DRST, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  1527. 	SIZ(50, 100, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
  1528. 	M1_CONCEAL|M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
  1529. 	M2_HOSTILE, 0, CLR_RED),
  1530. MON("carrion crawler", S_SPIDER, 
  1531. 	LVL(3, 12, 3, 0, 0), (G_NOHELL|G_GENO|1),
  1532. 	A(ATTK(AT_TUCH, AD_PLYS, 1, 1), ATTK(AT_TUCH, AD_PLYS, 1, 1),
  1533. 	  ATTK(AT_TUCH, AD_PLYS, 1, 1), ATTK(AT_TUCH, AD_PLYS, 1, 1),
  1534. 	  ATTK(AT_TUCH, AD_PLYS, 1, 1), ATTK(AT_TUCH, AD_PLYS, 1, 1)),
  1535. 	SIZ(50, 100, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
  1536. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE, 
  1537. 	M2_HOSTILE|M2_NASTY, 0, CLR_GREEN),
  1538. MON("nickelpede", S_SPIDER, 
  1539. 	LVL(8, 4, 3, 0, 0), (G_NOHELL|G_GENO|1),
  1540. 	A(ATTK(AT_BITE, AD_DRST, 3, 4), NO_ATTK, NO_ATTK,
  1541. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1542. 	SIZ(150, 50, 0, MS_SILENT, MZ_MEDIUM), MR_POISON, MR_POISON,
  1543. 	M1_CONCEAL|M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_CARNIVORE,
  1544. 	M2_HOSTILE, 0, CLR_CYAN),
  1545. MON("giant scorpion", S_SPIDER, 
  1546. 	LVL(12, 15, 3, 0, 0), (G_NOHELL|G_GENO|1),
  1547. 	A(ATTK(AT_CLAW, AD_PHYS, 5, 2), ATTK(AT_CLAW, AD_PHYS, 5, 2),
  1548. 	  ATTK(AT_STNG, AD_DRST, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  1549. 	SIZ(500, 150, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
  1550. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE, 
  1551. 	M2_HOSTILE, 0, CLR_RED),
  1552. MON("Girtab", S_SPIDER, 
  1553. 	LVL(22, 15, 3, 0, 0), (G_UNIQ|G_NOGEN|1),
  1554. 	A(ATTK(AT_CLAW, AD_PHYS, 5, 4), ATTK(AT_CLAW, AD_PHYS, 5, 4),
  1555. 	  ATTK(AT_STNG, AD_DRST, 3, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  1556. 	SIZ(500, 150, 0, MS_SILENT, MZ_LARGE), MR_POISON|MR_STONE, MR_POISON,
  1557. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
  1558. 	M2_STRONG|M2_PNAME|M2_PRINCE|M2_FEMALE|M2_STALK|
  1559. 	M2_HOSTILE|M2_NASTY|M2_NOPOLY, M3_NOTAME, CLR_RED),
  1560. MON("Shelob", S_SPIDER, 
  1561. 	SIZ(26, 15, 3, 0, 0), (G_UNIQ|G_NOGEN|1),
  1562. 	A(ATTK(AT_BITE, AD_PHYS, 8, 4), ATTK(AT_BITE, AD_DRST, 5, 4),
  1563. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1564. 	SIZ(500, 150, 0, MS_SILENT, MZ_LARGE), MR_POISON|MR_STONE, MR_POISON,
  1565. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
  1566. 	M2_STRONG|M2_PNAME|M2_PRINCE|M2_FEMALE|M2_STALK|
  1567. 	M2_HOSTILE|M2_NASTY|M2_NOPOLY, M3_NOTAME, CLR_BLACK),
  1568. MON("phase spider", S_SPIDER, 
  1569. 	LVL(8, 12, 2, 0, -4), (G_GENO|1),
  1570. 	A(ATTK(AT_BITE, AD_DRST, 3, 4), NO_ATTK, NO_ATTK,
  1571. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1572. 	SIZ(100, 100, 0, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
  1573. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_TPORT|M1_CARNIVORE,
  1574. 	M2_HOSTILE|M2_STRONG, 0, CLR_BLUE),
  1575. MON("werespider", S_SPIDER, 
  1576. 	LVL(11, 15, 3, 0, 0), (G_GENO|G_NOGEN|1),
  1577. 	A(ATTK(AT_BITE, AD_WERE, 4, 4), NO_ATTK,
  1578. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1579. 	SIZ(100, 100, 0, MS_BARK, MZ_LARGE), MR_POISON, MR_POISON,
  1580. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE|M1_REGEN, 
  1581. 	M2_NOPOLY|M2_HOSTILE|M2_WERE, 0, CLR_BLACK),
  1582. /*
  1583. * trappers, lurkers, &c
  1584. */
  1585. MON("lurker above", S_TRAPPER,
  1586. 	LVL(10, 3, 3, 0, 0), (G_GENO|2),
  1587. 	A(ATTK(AT_ENGL, AD_DGST, 1, 8),
  1588. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1589. 	SIZ(800, 350, 0, MS_SILENT, MZ_HUGE), 0, 0,
  1590. 	M1_HIDE|M1_FLY|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_CARNIVORE,
  1591. 	M2_HOSTILE|M2_STALK|M2_STRONG, 0, CLR_GRAY),
  1592. MON("trapper", S_TRAPPER,
  1593. 	LVL(12, 3, 3, 0, 0), (G_GENO|2),
  1594. 	A(ATTK(AT_ENGL, AD_DGST, 1,10),
  1595. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1596. 	SIZ(800, 350, 0, MS_SILENT, MZ_HUGE), 0, 0,
  1597. 	M1_HIDE|M1_ANIMAL|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_CARNIVORE,
  1598. 	M2_HOSTILE|M2_STALK|M2_STRONG, 0, CLR_GREEN),
  1599. /*
  1600. * unicorns and horses
  1601. */
  1602. MON("white unicorn", S_UNICORN,
  1603. 	LVL(4, 24, 2, 70, 7), (G_NOHELL|G_GENO|4),
  1604. 	A(ATTK(AT_BUTT, AD_PHYS, 1,12), ATTK(AT_KICK, AD_PHYS, 1, 6),
  1605. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1606. 	SIZ(1300, 300, 0, MS_NEIGH, MZ_LARGE), MR_POISON|MR_HITASTWO, MR_POISON,
  1607. 	M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_JEWELS,
  1608. 	M3_INFRAVISIBLE, CLR_WHITE),
  1609. MON("gray unicorn", S_UNICORN,
  1610. 	LVL(4, 24, 2, 70, 0), (G_NOHELL|G_GENO|4),
  1611. 	A(ATTK(AT_BUTT, AD_PHYS, 1,12), ATTK(AT_KICK, AD_PHYS, 1, 6),
  1612. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1613. 	SIZ(1300, 300, 0, MS_NEIGH, MZ_LARGE), MR_POISON|MR_HITASTWO, MR_POISON,
  1614. 	M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_JEWELS,
  1615. 	M3_INFRAVISIBLE, CLR_GRAY),
  1616. MON("black unicorn", S_UNICORN,
  1617. 	LVL(4, 24, 2, 70, -7), (G_NOHELL|G_GENO|4),
  1618. 	A(ATTK(AT_BUTT, AD_PHYS, 1,12), ATTK(AT_KICK, AD_PHYS, 1, 6),
  1619. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1620. 	SIZ(1300, 300, 0, MS_NEIGH, MZ_LARGE), MR_POISON|MR_HITASTWO, MR_POISON,
  1621. 	M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_JEWELS,
  1622. 	M3_INFRAVISIBLE, CLR_BLACK),
  1623. MON("pony", S_UNICORN,
  1624. 	LVL(3, 16, 6, 0, 0), (G_GENO|2),
  1625. 	A(ATTK(AT_KICK, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_PHYS, 1, 2),
  1626. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1627. 	SIZ(1300, 250, 0, MS_NEIGH, MZ_MEDIUM), 0, 0,
  1628. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_DOMESTIC,
  1629. 	M3_INFRAVISIBLE, CLR_BROWN),
  1630. MON("horse", S_UNICORN,
  1631. 	LVL(5, 20, 5, 0, 0), (G_GENO|2),
  1632. 	A(ATTK(AT_KICK, AD_PHYS, 1, 8), ATTK(AT_BITE, AD_PHYS, 1, 3),
  1633. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1634. 	SIZ(1500, 300, 0, MS_NEIGH, MZ_LARGE), 0, 0,
  1635. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_DOMESTIC,
  1636. 	M3_INFRAVISIBLE, CLR_BROWN),
  1637. MON("warhorse", S_UNICORN,
  1638. 	LVL(7, 24, 4, 0, 0), (G_GENO|2),
  1639. 	A(ATTK(AT_KICK, AD_PHYS, 1, 10), ATTK(AT_BITE, AD_PHYS, 1, 4),
  1640. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1641. 	SIZ(1800, 350, 0, MS_NEIGH, MZ_LARGE), 0, 0,
  1642. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_DOMESTIC,
  1643. 	M3_INFRAVISIBLE, CLR_BROWN),
  1644. MON("Pegasus", S_UNICORN,
  1645. 	LVL(12, 24, 2, 70, 7), (G_NOGEN|G_UNIQ),
  1646. 	A(ATTK(AT_KICK, AD_PHYS, 2, 10), ATTK(AT_BITE, AD_PHYS, 1, 6),
  1647. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1648. 	SIZ(1500, 350, 0, MS_NEIGH, MZ_LARGE), 0, 0,
  1649. 	M1_ANIMAL|M1_NOHANDS|M1_FLY,
  1650. 	M2_NOPOLY|M2_PEACEFUL|M2_PNAME|M2_WANDER|M2_STRONG, 0, CLR_WHITE),
  1651. /*
  1652. * vortices
  1653. */
  1654. MON("fog cloud", S_VORTEX,
  1655. 	LVL(3, 1, 0, 0, 0), (G_GENO|G_NOCORPSE|2),
  1656. 	A(ATTK(AT_ENGL, AD_PHYS, 1, 6),
  1657. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1658. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_SLEEP|MR_POISON|MR_STONE, 0,
  1659. 	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
  1660. 	  M1_AMORPHOUS|M1_UNSOLID,
  1661. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
  1662. MON("dust vortex", S_VORTEX,
  1663. 	LVL(4, 20, 2, 30, 0), (G_GENO|G_NOCORPSE|2),
  1664. 	A(ATTK(AT_ENGL, AD_BLND, 2, 8),
  1665. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1666. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_SLEEP|MR_POISON|MR_STONE, 0,
  1667. 	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  1668. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
  1669. MON("ice vortex", S_VORTEX,
  1670. 	LVL(5, 20, 2, 30, 0), (G_NOHELL|G_GENO|G_NOCORPSE|1),
  1671. 	A(ATTK(AT_ENGL, AD_COLD, 1, 6),
  1672. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1673. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
  1674. 	MR_COLD|MR_SLEEP|MR_POISON|MR_STONE, 0,
  1675. 	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  1676. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_CYAN),
  1677. MON("energy vortex", S_VORTEX,
  1678. 	LVL(6, 20, 2, 30, 0), (G_NOHELL|G_GENO|G_NOCORPSE|1),
  1679. 	A(ATTK(AT_ENGL, AD_ELEC, 1, 6), ATTK(AT_ENGL, AD_DREN, 0, 0),
  1680. 	  ATTK(AT_NONE, AD_ELEC, 0, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  1681. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
  1682. 	MR_ELEC|MR_SLEEP|MR_DISINT|MR_POISON|MR_STONE, 0,
  1683. 	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
  1684. 	  M1_UNSOLID,
  1685. 	M2_HOSTILE|M2_NEUTER, 0, HI_ZAP),
  1686. MON("steam vortex", S_VORTEX,
  1687. 	LVL(7, 22, 2, 30, 0), (G_HELL|G_GENO|G_NOCORPSE|2),
  1688. 	A(ATTK(AT_ENGL, AD_FIRE, 1, 8),
  1689. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1690. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
  1691. 	MR_FIRE|MR_SLEEP|MR_POISON|MR_STONE|MR_PLUSONE, 0,
  1692. 	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
  1693. 	  M1_UNSOLID,
  1694. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_BLUE),
  1695. MON("fire vortex", S_VORTEX,
  1696. 	LVL(8, 22, 2, 30, 0), (G_HELL|G_GENO|G_NOCORPSE|1),
  1697. 	A(ATTK(AT_ENGL, AD_FIRE, 1,10), ATTK(AT_NONE, AD_FIRE, 0, 4),
  1698. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1699. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE),
  1700. 	MR_FIRE|MR_SLEEP|MR_POISON|MR_STONE|MR_PLUSONE, 0,
  1701. 	M1_FLY|M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
  1702. 	  M1_UNSOLID,
  1703. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),
  1704. /*
  1705. * worms
  1706. */
  1707. MON("larva", S_WORM, 
  1708. 	LVL(1, 6, 9, 0, 0), (G_GENO|G_SGROUP|2),
  1709. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2), NO_ATTK, NO_ATTK,
  1710. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1711. 	SIZ(150, 100, 0, MS_SILENT, MZ_MEDIUM), MR_SLEEP|MR_POISON,
  1712. 	MR_SLEEP, M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_POIS|M1_REGEN|M1_NOTAKE, 
  1713. 	M2_HOSTILE|M2_WANDER|M2_STALK|M2_NEUTER, 0, CLR_WHITE),
  1714. MON("maggot", S_WORM, 
  1715. 	LVL(2, 9, 5, 0, 0), (G_GENO|G_SGROUP|2),
  1716. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK,
  1717. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1718. 	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
  1719. 	M1_ANIMAL|M1_CONCEAL|M1_SLITHY|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
  1720. 	M2_HOSTILE, 0, CLR_WHITE),
  1721. MON("dung worm", S_WORM, 
  1722. 	LVL(3, 9, 5, 0, 0), (G_GENO|G_SGROUP|2),
  1723. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK,
  1724. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1725. 	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
  1726. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
  1727. 	M2_HOSTILE, 0, CLR_BLACK),
  1728. MON("acid worm", S_WORM, 
  1729. 	LVL(4, 9, 5, 0, 0), (G_GENO|G_SGROUP|1),
  1730. 	A(ATTK(AT_SPIT, AD_ACID, 2, 4), ATTK(AT_BITE, AD_DRST, 1, 4), 
  1731. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1732. 	SIZ(30, 30, 0, MS_SILENT, MZ_SMALL),
  1733. MR_ACID|MR_STONE, MR_STONE,
  1734. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_CARNIVORE|M1_ACID|M1_NOTAKE,
  1735. 	M2_HOSTILE, 0, CLR_GREEN),
  1736. MON("bloodworm", S_WORM, 
  1737. 	LVL(6, 9, 4, 0, 0), (G_NOHELL|G_GENO|1),
  1738. 	A(ATTK(AT_BITE, AD_DRST, 2, 4), NO_ATTK, NO_ATTK,
  1739. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1740. 	SIZ(30, 30, 0, MS_SILENT, MZ_SMALL), MR_ACID, 0,
  1741. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_CARNIVORE|M1_AMPHIBIOUS|M1_NOTAKE,
  1742. 	M2_HOSTILE, 0, CLR_BROWN),
  1743. MON("tunnel worm", S_WORM, 
  1744. 	LVL(7, 9, 5, 0, 0), (G_NOHELL|G_GENO|1),
  1745. 	A(ATTK(AT_BITE, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK,
  1746. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1747. 	SIZ(300, 200, 0, MS_SILENT, MZ_MEDIUM), MR_ACID, 0,
  1748. 	M1_ANIMAL|M1_SLITHY|M1_TUNNEL|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
  1749. 	M2_HOSTILE, 0, CLR_RED),
  1750. MON("baby long worm", S_WORM,
  1751. 	LVL(8, 3, 5, 0, 0), G_GENO,
  1752. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
  1753. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1754. 	SIZ(600, 250, 0, MS_SILENT, MZ_LARGE), 0, 0,
  1755. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_CARNIVORE|M1_NOTAKE,
  1756. 	M2_HOSTILE, 0, CLR_BROWN),
  1757. MON("baby purple worm", S_WORM,
  1758. 	LVL(8, 3, 5, 0, 0), G_GENO,
  1759. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
  1760. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1761. 	SIZ(600, 250, 0, MS_SILENT, MZ_LARGE), 0, 0,
  1762. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_CARNIVORE, M2_HOSTILE,
  1763. 	0, CLR_MAGENTA),
  1764. MON("long worm", S_WORM,
  1765. 	LVL(8, 3, 5, 10, 0), (G_NOHELL|G_GENO|2),
  1766. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
  1767. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1768. 	SIZ(1500, 500, 0, MS_SILENT, MZ_GIGANTIC), 0, 0,
  1769. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_OVIPAROUS|M1_CARNIVORE|M1_NOTAKE,
  1770. 	M2_HOSTILE|M2_STRONG|M2_NASTY, 0, CLR_BROWN),
  1771. MON("purple worm", S_WORM,
  1772. 	LVL(15, 9, 6, 20, 0), (G_NOHELL|G_GENO|2),
  1773. 	A(ATTK(AT_BITE, AD_PHYS, 2, 8), ATTK(AT_ENGL, AD_DGST, 1,10),
  1774. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1775. 	SIZ(2700, 700, 0, MS_SILENT, MZ_GIGANTIC), MR_HITASONE, 0,
  1776. 	M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|M1_OVIPAROUS|M1_CARNIVORE,
  1777. 	M2_HOSTILE|M2_STRONG|M2_NASTY, 0, CLR_MAGENTA),
  1778. MON("rot worm", S_WORM, 
  1779. 	LVL(1, 9, 5, 0, 0), (G_NOGEN|G_GENO),
  1780. 	A(ATTK(AT_BITE, AD_DISE, 1, 2), NO_ATTK, NO_ATTK,
  1781. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1782. 	SIZ(10, 10, 0, MS_SILENT, MZ_SMALL), 0, 0,
  1783. 	M1_ANIMAL|M1_CONCEAL|M1_SLITHY|M1_NOLIMBS|M1_CARNIVORE,
  1784. 	M2_NASTY|M2_HOSTILE, 0, CLR_GRAY),
  1785. /*
  1786. * xan, &c
  1787. */
  1788. MON("grid bug", S_XAN,
  1789. 	LVL(0, 12, 9, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|G_NOCORPSE|3),
  1790. 	A(ATTK(AT_BITE, AD_ELEC, 1, 1),
  1791. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1792. 	SIZ(15, 10, 0, MS_BUZZ, MZ_TINY), MR_ELEC|MR_POISON|MR_HITASONE, 0,
  1793. 	M1_ANIMAL, M2_HOSTILE, M3_INFRAVISIBLE, CLR_MAGENTA),
  1794. MON("spark bug", S_XAN, 
  1795. 	LVL(2, 12, 9, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|G_NOCORPSE|1),
  1796. 	A(ATTK(AT_BITE, AD_ELEC, 1, 3), NO_ATTK, NO_ATTK,
  1797. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1798. 	SIZ(15, 10, 0, MS_BUZZ, MZ_TINY), MR_ELEC|MR_POISON|MR_HITASONE, 0,
  1799. 	M1_ANIMAL, M2_HOSTILE, M3_INFRAVISIBLE, HI_ZAP),
  1800. MON("arc bug", S_XAN, 
  1801. 	LVL(4, 12, 9, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|G_NOCORPSE|1),
  1802. 	A(ATTK(AT_BITE, AD_ELEC, 2, 4), NO_ATTK, NO_ATTK,
  1803. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1804. 	SIZ(15, 10, 0, MS_BUZZ, MZ_TINY), MR_ELEC|MR_POISON|MR_HITASONE, 0,
  1805. 	M1_ANIMAL, M2_HOSTILE, M3_INFRAVISIBLE, CLR_ORANGE),
  1806. MON("lightning bug", S_XAN, 
  1807. 	LVL(6, 12, 9, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|G_NOCORPSE|1),
  1808. 	A(ATTK(AT_BITE, AD_ELEC, 2, 6), NO_ATTK, NO_ATTK,
  1809. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  1810. 	SIZ(15, 10, 0, MS_BUZZ, MZ_TINY), MR_ELEC|MR_POISON|MR_HITASONE, 0,
  1811. 	M1_ANIMAL, M2_HOSTILE, M3_INFRAVISIBLE, CLR_YELLOW),
  1812. MON("xan", S_XAN,
  1813. 	LVL(7, 18, -4, 0, 0), (G_GENO|3),
  1814. 	A(ATTK(AT_STNG, AD_LEGS, 1, 4),
  1815. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1816. 	SIZ(300, 300, 0, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
  1817. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_POIS, M2_HOSTILE, M3_INFRAVISIBLE,
  1818. 	CLR_RED),
  1819. /*
  1820. * lights
  1821. */
  1822. MON("yellow light", S_LIGHT,
  1823. 	LVL(3, 15, 0, 0, 0), (G_NOHELL|G_NOCORPSE|G_GENO|4),
  1824. 	A(ATTK(AT_EXPL, AD_BLND, 10,20),
  1825. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1826. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL),
  1827. 	MR_FIRE|MR_COLD|MR_ELEC|MR_DISINT|MR_SLEEP|MR_POISON|MR_ACID|
  1828. 	  MR_STONE, 0,
  1829. 	M1_FLY|M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  1830. 	  M1_MINDLESS|M1_UNSOLID|M1_NOTAKE,
  1831. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),
  1832. MON("black light", S_LIGHT,
  1833. 	LVL(5, 15, 0, 0, 0), (G_NOCORPSE|G_GENO|2),
  1834. 	A(ATTK(AT_EXPL, AD_HALU, 10,12),
  1835. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1836. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL),
  1837. 	MR_FIRE|MR_COLD|MR_ELEC|MR_DISINT|MR_SLEEP|MR_POISON|MR_ACID|
  1838. 	  MR_STONE, 0,
  1839. 	M1_FLY|M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  1840. 	  M1_MINDLESS|M1_UNSOLID|M1_SEE_INVIS|M1_NOTAKE,
  1841. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BLACK),
  1842. /*
  1843. * Zouthern animals
  1844. * (the zruty has been moved to Yeti)
  1845. */
  1846. #if 0
  1847. MON("zruty", S_ZRUTY,
  1848. 	LVL(9, 8, 3, 0, 0), (G_NOHELL|G_GENO|2),
  1849. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  1850. 	  ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  1851. 	SIZ(1200, 600, 0, MS_SILENT, MZ_LARGE), MR_HITASONE, 0,
  1852. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
  1853. 	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_BROWN),
  1854. #endif
  1855. #define M1_MARSUPIAL 0
  1856. 	/* Montronemes (egg-laying mammals)
  1857. 	 */
  1858. MON("echidna", S_ZOUTHERN,
  1859. 	LVL(2, 6, 9, 0, 0), (G_NOHELL|G_GENO|1),
  1860. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 2),
  1861. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1862. 	SIZ(15, 10, 0, MS_SILENT, MZ_TINY), 0, 0,
  1863. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE|M1_OVIPAROUS|M1_THICK_HIDE,
  1864. 	M2_WANDER, 0, CLR_BROWN),
  1865. MON("platypus", S_ZOUTHERN,
  1866. 	LVL(4, 8, 8, 0, 0), (G_NOHELL|G_GENO|1),
  1867. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_KICK, AD_DRST, 1, 4),
  1868. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1869. 	SIZ(20, 12, 0, MS_SILENT, MZ_TINY), 0, 0,
  1870. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE|M1_OVIPAROUS|M1_SWIM|M1_THICK_HIDE,
  1871. 	M2_WANDER, 0, CLR_GREEN),
  1872. 	/* ...males have a poisonous spur on their hind paws */
  1873. 	/* Bear-like marsupials
  1874. 	 */
  1875. MON("koala", S_ZOUTHERN,
  1876. 	LVL(7, 4, 9, 10, 0), (G_NOHELL|G_GENO|2),
  1877. 	A(ATTK(AT_TUCH, AD_CALM, 0, 0),
  1878. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1879. 	SIZ(150, 50, 0, MS_SQEEK, MZ_SMALL), MR_POISON, 0,
  1880. 	M1_ANIMAL|M1_HERBIVORE|M1_MARSUPIAL|M1_SEE_INVIS,
  1881. 	M2_DOMESTIC, 0, CLR_GRAY),
  1882. 	/* ...cute and fuzzy!  A tame koala versus a hostile monster (or vice
  1883. 	 * versa) will calm (AD_CALM) the other monster into peacefullness.
  1884. 	 * Certain monsters resist.
  1885. 	 * Koalas can only eat eucalyptus leaves.
  1886. 	 */
  1887. MON("wombat", S_ZOUTHERN,
  1888. 	LVL(5, 12, 5, 0, 0), (G_NOHELL|G_GENO|1),
  1889. 	A(ATTK(AT_KICK, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_PHYS, 1, 2),
  1890. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1891. 	SIZ(100, 40, 0, MS_GROWL, MZ_SMALL), 0, 0,
  1892. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE|M1_MARSUPIAL,
  1893. 	M2_DOMESTIC, 0, CLR_BROWN),
  1894. MON("Tasmanian devil", S_ZOUTHERN,
  1895. 	LVL(9, 12, 8, 0, 0), (G_NOHELL|G_GENO|1),
  1896. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  1897. 	  ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  1898. 	SIZ(500, 250, 0, MS_GROWL, MZ_SMALL), 0, 0,
  1899. 	M1_ANIMAL|M1_NOHANDS|M1_OMNIVORE|M1_MARSUPIAL,
  1900. 	M2_HOSTILE, 0, CLR_BLACK),
  1901. 	/* ...also eats organics (like gelatinous cube) */
  1902. 	/* Macropods (kangaroos)
  1903. 	 */
  1904. MON("wallaby", S_ZOUTHERN,
  1905. 	LVL(5, 16, 7, 0, 0), (G_NOHELL|G_GENO|1),
  1906. 	A(ATTK(AT_KICK, AD_PHYS, 2, 4), ATTK(AT_BITE, AD_PHYS, 1, 4),
  1907. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1908. 	SIZ(400, 150, 0, MS_SILENT, MZ_SMALL), 0, 0,
  1909. 	M1_ANIMAL|M1_HERBIVORE|M1_MARSUPIAL,
  1910. 	0, 0, CLR_BROWN),
  1911. MON("wallaroo", S_ZOUTHERN,
  1912. 	LVL(6, 20, 8, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|1),
  1913. 	A(ATTK(AT_KICK, AD_PHYS, 2, 6), ATTK(AT_BITE, AD_PHYS, 1, 6),
  1914. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  1915. 	SIZ(600, 300, 0, MS_SILENT, MZ_SMALL), 0, 0,
  1916. 	M1_ANIMAL|M1_HERBIVORE|M1_MARSUPIAL,
  1917. 	0, 0, CLR_RED),
  1918. MON("kangaroo", S_ZOUTHERN,
  1919. 	LVL(10, 24, 6, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|2),
  1920. 	A(ATTK(AT_KICK, AD_PHYS, 2, 8), ATTK(AT_KICK, AD_PHYS, 2, 8),
  1921. 	  ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  1922. 	SIZ(1000, 500, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
  1923. 	M1_ANIMAL|M1_HERBIVORE|M1_MARSUPIAL,
  1924. 	M2_NASTY, 0, CLR_GRAY),
  1925. /*
  1926. * Angels and other lawful minions
  1927. */
  1928. MON("couatl", S_ANGEL,
  1929. 	LVL(8, 10, 5, 30, 7), (G_NOHELL|G_NOHELL|G_SGROUP|G_NOCORPSE|1),
  1930. 	A(ATTK(AT_BITE, AD_DRST, 2, 4), ATTK(AT_BITE, AD_PHYS, 1, 3),
  1931. 	  ATTK(AT_HUGS, AD_WRAP, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  1932. 	SIZ(900, 400, 0, MS_HISS, MZ_LARGE), MR_POISON|MR_PLUSTWO, 0,
  1933. 	M1_FLY|M1_POIS,
  1934. 	M2_MINION|M2_STALK|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
  1935. 	CLR_GREEN),
  1936. MON("Aleax", S_ANGEL,
  1937. 	LVL(10, 8, 0, 30, 7), (G_NOHELL|G_NOCORPSE|1),
  1938. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  1939. 	  ATTK(AT_KICK, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  1940. 	SIZ(WT_HUMAN, 400, 0, MS_IMITATE, MZ_HUMAN),
  1941. 	MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_PLUSTWO, 0,
  1942. 	M1_HUMANOID|M1_SEE_INVIS,
  1943. 	M2_MINION|M2_STALK|M2_NASTY|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION,
  1944. 	CLR_YELLOW),
  1945. MON("movanic deva", S_ANGEL, 
  1946. 	LVL(12, 18, -5, 90, 15), (G_NOHELL|G_NOCORPSE|1),
  1947. 	A(ATTK(AT_WEAP, AD_FIRE, 3, 4), ATTK(AT_WEAP, AD_FIRE, 3, 4),
  1948. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_MAGC, AD_CLRC, 2, 6),
  1949. 	  NO_ATTK, NO_ATTK),
  1950. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_MEDIUM), MR_DEATH|MR_PLUSONE, 0,
  1951. 	M1_FLY|M1_HUMANOID|M1_SEE_INVIS,
  1952. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY,
  1953. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
  1954. MON("monadic deva", S_ANGEL, 
  1955. 	LVL(15, 18, -4, 90, 15), (G_NOHELL|G_NOCORPSE|1),
  1956. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 6, 4),
  1957. 	  ATTK(AT_MAGC, AD_CLRC, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  1958. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_MEDIUM), MR_DEATH|MR_PLUSONE, 0,
  1959. 	M1_FLY|M1_HUMANOID|M1_SEE_INVIS,
  1960. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY, 
  1961. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BRIGHT_CYAN),
  1962. MON("astral deva", S_ANGEL, 
  1963. 	LVL(18, 18, -6, 90, 15), (G_NOHELL|G_NOCORPSE|1),
  1964. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 12), ATTK(AT_WEAP, AD_STUN, 1, 4),
  1965. 	  ATTK(AT_MAGC, AD_CLRC, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  1966. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_MEDIUM), MR_DEATH|MR_PLUSONE, 0,
  1967. 	M1_FLY|M1_HUMANOID|M1_SEE_INVIS,
  1968. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY, 
  1969. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_WHITE),
  1970. MON("Angel", S_ANGEL,
  1971. 	LVL(14, 10, -4, 55, 12), (G_NOHELL|G_NOCORPSE|1),
  1972. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6), 
  1973. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_MAGC, AD_MAGM, 2, 6),
  1974. 	  NO_ATTK, NO_ATTK),
  1975. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_CUSS, MZ_HUMAN),
  1976. 	MR_DEATH|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_PLUSTHREE, 0,
  1977. 	M1_FLY|M1_HUMANOID|M1_SEE_INVIS,
  1978. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_COLLECT,
  1979. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_WHITE),
  1980. MON("ki-rin", S_ANGEL,
  1981. 	LVL(16, 18, -5, 90, 15), (G_NOHELL|G_NOCORPSE|1),
  1982. 	A(ATTK(AT_KICK, AD_PHYS, 2, 4), ATTK(AT_KICK, AD_PHYS, 2, 4),
  1983. 	  ATTK(AT_BUTT, AD_PHYS, 3, 6), ATTK(AT_MAGC, AD_SPEL, 2, 6),
  1984. 	  NO_ATTK, NO_ATTK),
  1985. 	SIZ(WT_HUMAN, 400, 0, MS_NEIGH, MZ_LARGE), MR_DEATH|MR_PLUSTHREE, 0,
  1986. 	M1_FLY|M1_SEE_INVIS,
  1987. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_LORD,
  1988. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_GOLD),
  1989. MON("Archon", S_ANGEL,
  1990. 	LVL(19, 16, -10, 80, 15), (G_NOHELL|G_NOCORPSE|1),
  1991. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  1992. 	  ATTK(AT_GAZE, AD_BLND, 2, 6), ATTK(AT_CLAW, AD_PHYS, 1, 8),
  1993. 	  ATTK(AT_MAGC, AD_SPEL, 4, 6), NO_ATTK),
  1994. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE),
  1995. 	MR_DEATH|MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_PLUSFOUR, 0,
  1996. 	M1_FLY|M1_HUMANOID|M1_SEE_INVIS|M1_REGEN,
  1997. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_LORD|
  1998. 	  M2_COLLECT|M2_MAGIC,
  1999. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  2000. MON("Planetar", S_ANGEL, 
  2001. 	LVL(29, 16, -10, 80, 15), (G_NOHELL|G_NOCORPSE |1),
  2002. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4),
  2003. 	  ATTK(AT_GAZE, AD_BLND, 3, 6), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  2004. 	  ATTK(AT_MAGC, AD_SPEL, 4, 6), NO_ATTK),
  2005. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE),
  2006. 	MR_DEATH|MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_PLUSFOUR,
  2007. 	0, M1_FLY|M1_HUMANOID|M1_SEE_INVIS|M1_REGEN,
  2008. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_LORD|
  2009. 	M2_COLLECT|M2_MAGIC, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_CYAN),
  2010. MON("Solar", S_ANGEL, 
  2011. 	LVL(39, 16, -10, 80, 15), (G_NOHELL|G_NOCORPSE |1),
  2012. 	A(ATTK(AT_WEAP, AD_PHYS, 5, 4), ATTK(AT_WEAP, AD_PHYS, 5, 4),
  2013. 	  ATTK(AT_GAZE, AD_BLND, 5, 6), ATTK(AT_CLAW, AD_PHYS, 5, 8),
  2014. 	  ATTK(AT_MAGC, AD_SPEL, 5, 6), NO_ATTK),
  2015. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE),
  2016. 	MR_DEATH|MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_PLUSFOUR,
  2017. 	0, M1_FLY|M1_HUMANOID|M1_SEE_INVIS|M1_REGEN,
  2018. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_LORD|
  2019. 	M2_COLLECT|M2_MAGIC, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
  2020. /*
  2021. * Bats and birds
  2022. */
  2023. MON("bat", S_BAT,
  2024. 	LVL(0, 22, 8, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|2),
  2025. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
  2026. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2027. 	SIZ(20, 20, 0, MS_SQEEK, MZ_TINY), 0, 0,
  2028. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_WANDER, M3_INFRAVISIBLE,
  2029. 	CLR_BROWN),
  2030. MON("giant bat", S_BAT,
  2031. 	LVL(2, 22, 7, 0, 0), (G_NOHELL|G_GENO|2),
  2032. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
  2033. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2034. 	SIZ(30, 30, 0, MS_SQEEK, MZ_SMALL), 0, 0,
  2035. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  2036. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_RED),
  2037. MON("rhumbat", S_BAT, 
  2038. 	LVL(3, 22, 7, 0, 0), (G_HELL|G_GENO|G_SGROUP|1),
  2039. 	A(ATTK(AT_BITE, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK,
  2040. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2041. 	SIZ(30, 30, 0, MS_SQEEK, MZ_MEDIUM), 0, 0,
  2042. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  2043. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_YELLOW),
  2044. MON("athol", S_BAT, 
  2045. 	LVL(2, 20, 7, 0, 0), (G_HELL|G_GENO|G_LGROUP|1),
  2046. 	A(ATTK(AT_BITE, AD_PHYS, 1, 5), NO_ATTK, NO_ATTK,
  2047. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2048. 	SIZ(30, 30, 0, MS_SQEEK, MZ_MEDIUM), 0, 0,
  2049. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  2050. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_GRAY),
  2051. MON("raven", S_BAT,
  2052. 	LVL(4, 20, 6, 0, 0), (G_GENO|2),
  2053. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  2054. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2055. 	SIZ(40, 20, 0, MS_SQAWK, MZ_SMALL), 0, 0,
  2056. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  2057. 	M2_WANDER|M2_HOSTILE, 0, CLR_BLACK),
  2058. MON("vampire bat", S_BAT,
  2059. 	LVL(5, 20, 6, 0, 0), (G_GENO|2),
  2060. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_DRST, 0, 0),
  2061. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2062. 	SIZ(30, 20, 0, MS_SQEEK, MZ_SMALL), MR_SLEEP|MR_POISON, 0,
  2063. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_POIS|M1_REGEN|M1_OMNIVORE,
  2064. 	M2_VAMPIRE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BLACK),
  2065. MON("hellbat", S_BAT, 
  2066. 	LVL(7, 22, 7, 0, 0), (G_HELL|G_GENO|G_SGROUP|G_NOCORPSE|1),
  2067. 	A(ATTK(AT_BITE, AD_FIRE, 1, 12), NO_ATTK, NO_ATTK,
  2068. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2069. 	SIZ(30, 30, 0, MS_SQEEK, MZ_MEDIUM), MR_FIRE, MR_FIRE,
  2070. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  2071. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_RED),
  2072. MON("mongbat", S_BAT,        
  2073. 	LVL(7, 22, 7, 0, 0), (G_HELL|G_GENO|G_SGROUP|1),
  2074. 	A(ATTK(AT_BITE, AD_PHYS, 1, 12), NO_ATTK, NO_ATTK,
  2075. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2076. 	SIZ(30, 30, 0, MS_SQEEK, MZ_MEDIUM), 0, 0,
  2077. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  2078. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_ORANGE),
  2079. MON("mobat", S_BAT, 
  2080. 	LVL(9, 22, 7, 0, 0), (G_HELL|G_GENO|G_LGROUP|1),
  2081. 	A(ATTK(AT_BITE, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK,
  2082. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2083. 	SIZ(30, 30, 0, MS_SHRIEK, MZ_MEDIUM), 0, 0,
  2084. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  2085. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BLACK),
  2086. MON("harpy", S_BAT, 
  2087. 	LVL(9, 17, 5, 0, -4), (G_HELL|G_GENO|G_SGROUP|1),
  2088. 	A(ATTK(AT_BITE, AD_PHYS, 1, 12), NO_ATTK, NO_ATTK,
  2089. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2090. 	SIZ(130, 130, 0, MS_SQEEK, MZ_MEDIUM), 0, 0,
  2091. 	M1_FLY|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  2092. 	M2_WANDER|M2_HOSTILE, M3_INFRAVISIBLE|M3_TRAITOR, CLR_GRAY),
  2093. MON("byakhee", S_BAT,
  2094. 	LVL(11, 20, 1, 25, -4), (G_GENO|2|G_SGROUP),
  2095. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  2096. 	  ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_STNG, AD_STUN, 1, 3), NO_ATTK, NO_ATTK),
  2097. 	SIZ(1600, 100, 0, MS_SQEEK, MZ_MEDIUM), MR_SLEEP|MR_POISON|MR_COLD, 0,
  2098. 	M1_FLY|M1_BREATHLESS|M1_POIS|M1_REGEN|M1_THICK_HIDE|M1_SEE_INVIS|M1_OMNIVORE,
  2099. 	M2_HOSTILE|M2_WANDER|M2_STALK|M2_STRONG|M2_COLLECT|M2_MAGIC,
  2100. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BROWN),
  2101. MON("nightgaunt", S_BAT,
  2102. 	LVL(15, 20, -2, 50, -6), (G_GENO|2|G_SGROUP),
  2103. 	A(ATTK(AT_CLAW, AD_TCKL, 1, 6), ATTK(AT_CLAW, AD_TCKL, 1, 6),
  2104. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2105. 	SIZ(1300, 100, 0, MS_SQEEK, MZ_MEDIUM), MR_SLEEP|MR_POISON|MR_COLD, MR_COLD,
  2106. 	M1_FLY|M1_BREATHLESS|M1_POIS|M1_REGEN|M1_THICK_HIDE|M1_SEE_INVIS|M1_OMNIVORE|M1_NOEYES,
  2107. 	M2_HOSTILE|M2_WANDER|M2_STALK|M2_STRONG|M2_COLLECT|M2_MAGIC,
  2108. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BROWN),
  2109.  
  2110. /*
  2111. * Centaurs
  2112. */
  2113. MON("plains centaur", S_CENTAUR,
  2114. 	LVL(4, 18, 4, 0, 0), (G_NOHELL|G_GENO|3),
  2115. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_KICK, AD_PHYS, 1, 6),
  2116. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2117. 	SIZ(2500, 500, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
  2118. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
  2119. 	M3_INFRAVISIBLE, CLR_BROWN),
  2120. MON("forest centaur", S_CENTAUR,
  2121. 	LVL(5, 18, 3, 10, -1), (G_NOHELL|G_GENO|3),
  2122. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_KICK, AD_PHYS, 1, 6),
  2123. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2124. 	SIZ(2550, 600, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
  2125. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
  2126. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_GREEN),
  2127. MON("mountain centaur", S_CENTAUR,
  2128. 	LVL(6, 20, 2, 10, -3), (G_NOHELL|G_GENO|3),
  2129. 	A(ATTK(AT_WEAP, AD_PHYS, 1,10), ATTK(AT_KICK, AD_PHYS, 1, 6),
  2130. 	  ATTK(AT_KICK, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  2131. 	SIZ(2550, 500, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
  2132. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
  2133. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_CYAN),
  2134. /*
  2135. * Dragons
  2136. */
  2137. 	/* The order of the dragons is VERY IMPORTANT.  Quite a few
  2138. 	 * pieces of code depend on gray being first and yellow being last.
  2139. 	 * The code also depends on the *order* being the same as that for
  2140. 	 * dragon scale mail and dragon scales in objects.c.  Baby dragons
  2141. 	 * cannot confer intrinsics, to avoid polyself/egg abuse.
  2142. 	 *
  2143. 	 * As reptiles, dragons are cold-blooded and thus aren't seen
  2144. 	 * with infravision.  Red dragons are the exception.
  2145. 	 */
  2146. MON("baby gray dragon", S_DRAGON,
  2147. 	LVL(4, 9, 2, 10, 0), (G_GENO|2),
  2148. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  2149. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2150. 	SIZ(500, 500, 0, MS_ROAR, MZ_HUGE), MR_HITASONE, 0,
  2151. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  2152. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_GRAY),
  2153. MON("baby silver dragon", S_DRAGON,
  2154. 	LVL(4, 9, 2, 40, 0), (G_GENO|2),
  2155. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  2156. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2157. 	SIZ(500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
  2158. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  2159. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, DRAGON_SILVER),
  2160. MON("baby shimmering dragon", S_DRAGON,
  2161. 	LVL(4, 9, -4, 10, 0), (G_GENO|2),
  2162. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  2163. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2164. 	SIZ(500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
  2165. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  2166. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_CYAN),
  2167. MON("baby deep dragon", S_DRAGON, 
  2168. 	LVL(4, 9, 0, 10, 0), (G_GENO|2),
  2169. 	A(ATTK(AT_BITE, AD_DRST, 2, 6), NO_ATTK, NO_ATTK,
  2170. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2171. 	SIZ(500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
  2172. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  2173. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_MAGENTA),
  2174. MON("baby red dragon", S_DRAGON,
  2175. 	LVL(4, 9, 2, 10, 0), (G_GENO|2),
  2176. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  2177. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2178. 	SIZ(500, 500, 0, MS_ROAR, MZ_HUGE), MR_FIRE|MR_HITASONE, 0,
  2179. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  2180. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, M3_INFRAVISIBLE, CLR_RED),
  2181. MON("baby white dragon", S_DRAGON,
  2182. 	LVL(4, 9, 2, 10, 0), (G_GENO|2),
  2183. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  2184. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2185. 	SIZ(500, 500, 0, MS_ROAR, MZ_HUGE), MR_COLD|MR_HITASONE, 0,
  2186. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  2187. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_WHITE),
  2188. MON("baby orange dragon", S_DRAGON,
  2189. 	LVL(4, 9, 2, 10, 0), (G_GENO|2),
  2190. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  2191. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2192. 	SIZ(500, 500, 0, MS_ROAR, MZ_HUGE), MR_SLEEP|MR_HITASONE, 0,
  2193. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  2194. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_ORANGE),
  2195. MON("baby black dragon", S_DRAGON,
  2196. 	LVL(4, 9, 2, 10, 0), (G_GENO|2),
  2197. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  2198. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2199. 	SIZ(500, 500, 0, MS_ROAR, MZ_HUGE), MR_DISINT|MR_HITASONE, 0,
  2200. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  2201. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_BLACK),
  2202. MON("baby blue dragon", S_DRAGON,
  2203. 	LVL(4, 9, 2, 10, 0), (G_GENO|2),
  2204. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  2205. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2206. 	SIZ(500, 500, 0, MS_ROAR, MZ_HUGE), MR_ELEC|MR_HITASONE, 0,
  2207. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  2208. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_BLUE),
  2209. MON("baby green dragon", S_DRAGON,
  2210. 	LVL(4, 9, 2, 10, 0), (G_GENO|2),
  2211. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  2212. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2213. 	SIZ(500, 500, 0, MS_ROAR, MZ_HUGE), MR_POISON|MR_HITASONE, 0,
  2214. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_POIS,
  2215. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_GREEN),
  2216. MON("baby yellow dragon", S_DRAGON,
  2217. 	LVL(4, 9, 2, 10, 0), (G_GENO|2),
  2218. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  2219. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2220. 	SIZ(500, 500, 0, MS_ROAR, MZ_HUGE), MR_ACID|MR_STONE|MR_HITASONE, 0,
  2221. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_ACID,
  2222. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_YELLOW),
  2223. MON("gray dragon", S_DRAGON,
  2224. 	LVL(18, 9, -4, 20, 4), (G_GENO|3),
  2225. 	A(ATTK(AT_BREA, AD_MAGM, 4, 6), ATTK(AT_BITE, AD_PHYS, 4, 8),
  2226. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  2227. 	  NO_ATTK, NO_ATTK),
  2228. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_HITASTHREE, 0,
  2229. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  2230. 	  M1_CARNIVORE,
  2231. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_GRAY),
  2232. MON("silver dragon", S_DRAGON,
  2233. 	LVL(18, 9, -1, 95, 4), (G_GENO|3),
  2234. 	A(ATTK(AT_BREA, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  2235. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  2236. 	  NO_ATTK, NO_ATTK),
  2237. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_COLD, 0,
  2238. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  2239. 	  M1_CARNIVORE,
  2240. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  2241. 	0, DRAGON_SILVER),
  2242. MON("shimmering dragon", S_DRAGON,
  2243. 	LVL(18, 9, -8, 20, 4), (G_GENO|3),
  2244. 	A(ATTK(AT_BREA, AD_MAGM, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  2245. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  2246. 	  NO_ATTK, NO_ATTK),
  2247. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), 0, 0,
  2248. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  2249. 	  M1_CARNIVORE,
  2250. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  2251. 	0, CLR_CYAN),
  2252. MON("deep dragon", S_DRAGON, 
  2253. 	LVL(18, 9, -4, 20, -6), (G_GENO|3),
  2254. 	A(ATTK(AT_BREA, AD_DRST, 4, 10), ATTK(AT_BITE, AD_DRLI, 4, 8),
  2255. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  2256. 	  NO_ATTK, NO_ATTK),
  2257. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC),
  2258. 	MR_DRAIN|MR_POISON|MR_HITASTHREE, MR_POISON,
  2259. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|M1_CARNIVORE|
  2260. 	  M1_POIS,
  2261. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  2262. 	M3_TRAITOR, CLR_MAGENTA),
  2263. MON("red dragon", S_DRAGON,
  2264. 	LVL(18, 9, -4, 20, -4), (G_GENO|3),
  2265. 	A(ATTK(AT_BREA, AD_FIRE, 6, 6), ATTK(AT_BITE, AD_PHYS, 4, 8),
  2266. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  2267. 	  NO_ATTK, NO_ATTK),
  2268. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_FIRE|MR_HITASTHREE, MR_FIRE,
  2269. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  2270. 	  M1_CARNIVORE,
  2271. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  2272. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_RED),
  2273. MON("white dragon", S_DRAGON,
  2274. 	LVL(18, 9, -4, 20, -5), (G_GENO|3),
  2275. 	A(ATTK(AT_BREA, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 4, 8),
  2276. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  2277. 	  NO_ATTK, NO_ATTK),
  2278. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_COLD|MR_HITASTHREE, MR_COLD,
  2279. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  2280. 	  M1_CARNIVORE,
  2281. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, M3_TRAITOR, CLR_WHITE),
  2282. MON("orange dragon", S_DRAGON,
  2283. 	LVL(18, 9, -4, 20, 5), (G_GENO|3),
  2284. 	A(ATTK(AT_BREA, AD_SLEE, 4,25), ATTK(AT_BITE, AD_PHYS, 4, 8),
  2285. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  2286. 	  NO_ATTK, NO_ATTK),
  2287. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_SLEEP|MR_HITASTHREE, MR_SLEEP,
  2288. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  2289. 	  M1_CARNIVORE,
  2290. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  2291. 	M3_TRAITOR, CLR_ORANGE),
  2292. MON("black dragon", S_DRAGON,
  2293. 	LVL(18, 9, -4, 20, -6), (G_GENO|3),
  2294. 	A(ATTK(AT_BREA, AD_DISN, 4,10), ATTK(AT_BITE, AD_PHYS, 4, 8),
  2295. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  2296. 	  NO_ATTK, NO_ATTK),
  2297. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_DISINT|MR_HITASTHREE, MR_DISINT,
  2298. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  2299. 	  M1_CARNIVORE,
  2300. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, M3_TRAITOR, CLR_BLACK),
  2301. MON("blue dragon", S_DRAGON,
  2302. 	LVL(18, 9, -4, 20, -7), (G_GENO|3),
  2303. 	A(ATTK(AT_BREA, AD_ELEC, 4, 6), ATTK(AT_BITE, AD_PHYS, 4, 8),
  2304. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  2305. 	  NO_ATTK, NO_ATTK),
  2306. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_ELEC|MR_HITASTHREE, MR_ELEC,
  2307. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  2308. 	  M1_CARNIVORE,
  2309. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, M3_TRAITOR, CLR_BLUE),
  2310. MON("green dragon", S_DRAGON,
  2311. 	LVL(18, 9, -4, 20, 6), (G_GENO|3),
  2312. 	A(ATTK(AT_BREA, AD_DRST, 4, 6), ATTK(AT_BITE, AD_PHYS, 4, 8),
  2313. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  2314. 	  NO_ATTK, NO_ATTK),
  2315. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_POISON|MR_HITASTHREE, MR_POISON,
  2316. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  2317. 	  M1_CARNIVORE|M1_POIS,
  2318. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_GREEN),
  2319. MON("yellow dragon", S_DRAGON,
  2320. 	LVL(18, 9, -4, 20, 7), (G_GENO|3),
  2321. 	A(ATTK(AT_BREA, AD_ACID, 4, 6), ATTK(AT_BITE, AD_PHYS, 4, 8),
  2322. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  2323. 	  NO_ATTK, NO_ATTK),
  2324. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC),
  2325. 	MR_ACID|MR_STONE|MR_HITASTHREE, MR_STONE,
  2326. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  2327. 	  M1_CARNIVORE|M1_ACID,
  2328. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  2329. 	0, CLR_YELLOW),
  2330. MON("wyvern", S_DRAGON, 
  2331. 	LVL(18, 9, -4, 20, 7), (G_GENO|1),
  2332. 	A(ATTK(AT_STNG, AD_DRST, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  2333. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2334. 	SIZ(WT_DRAGON, 500, 0, MS_ROAR, MZ_GIGANTIC),
  2335. 	MR_POISON|MR_STONE|MR_HITASTWO, MR_POISON,
  2336. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_CARNIVORE,
  2337. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  2338. 	0, CLR_BROWN),
  2339. MON("hydra", S_DRAGON, 
  2340. 	LVL(26, 9, -4, 20, 7), (G_GENO|1),
  2341. 	A(ATTK(AT_BITE, AD_PHYS, 2, 8), ATTK(AT_BITE, AD_PHYS, 2, 8),
  2342. 	  ATTK(AT_BITE, AD_PHYS, 2, 8), ATTK(AT_BITE, AD_PHYS, 2, 8),
  2343. 	  ATTK(AT_BITE, AD_PHYS, 2, 8), ATTK(AT_BITE, AD_PHYS, 2, 8)),
  2344. 	SIZ(WT_DRAGON, 500, 0, MS_ROAR, MZ_GIGANTIC),
  2345. 	MR_POISON|MR_STONE|MR_HITASTWO, MR_POISON,
  2346. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_CARNIVORE,
  2347. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  2348. 	0, CLR_BRIGHT_GREEN),
  2349. /*
  2350. * Elementals
  2351. */
  2352. MON("stalker", S_ELEMENTAL,
  2353. 	LVL(8, 12, 3, 0, 0), (G_GENO|3),
  2354. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 4),
  2355. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2356. 	SIZ(900, 400, 0, MS_SILENT, MZ_LARGE), 0, 0,
  2357. 	M1_ANIMAL|M1_FLY|M1_SEE_INVIS,
  2358. 	M2_WANDER|M2_STALK|M2_HOSTILE|M2_STRONG, M3_INFRAVISION|M3_TRAITOR, CLR_WHITE),
  2359. MON("air elemental", S_ELEMENTAL,
  2360. 	LVL(8, 36, 2, 30, 0), (G_NOHELL|G_NOCORPSE|2),
  2361. 	A(ATTK(AT_ENGL, AD_PHYS, 1, 10),
  2362. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2363. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_POISON|MR_STONE, 0,
  2364. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_UNSOLID|M1_FLY,
  2365. 	M2_STRONG|M2_NEUTER, 0, CLR_CYAN),
  2366. MON("fire elemental", S_ELEMENTAL,
  2367. 	LVL(8, 12, 2, 30, 0), (G_NOHELL|G_NOCORPSE|2),
  2368. 	A(ATTK(AT_CLAW, AD_FIRE, 3, 6), ATTK(AT_NONE, AD_FIRE, 0, 4),
  2369. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2370. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUGE), MR_FIRE|MR_POISON|MR_STONE, 0,
  2371. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_UNSOLID|M1_FLY|M1_NOTAKE,
  2372. 	M2_STRONG|M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),
  2373. MON("earth elemental", S_ELEMENTAL,
  2374. 	LVL(8, 6, 2, 30, 0), (G_NOHELL|G_NOCORPSE|2),
  2375. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 6),
  2376. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2377. 	SIZ(2500, 0, 0, MS_SILENT, MZ_HUGE),
  2378. 	MR_FIRE|MR_COLD|MR_POISON|MR_STONE, 0,
  2379. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_BREATHLESS|
  2380. 	  M1_WALLWALK|M1_THICK_HIDE,
  2381. 	M2_STRONG|M2_NEUTER, 0, CLR_BROWN),
  2382. MON("water elemental", S_ELEMENTAL,
  2383. 	LVL(8, 6, 2, 30, 0), (G_NOHELL|G_NOCORPSE|2),
  2384. 	A(ATTK(AT_CLAW, AD_PHYS, 5, 6),
  2385. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2386. 	SIZ(2500, 0, 0, MS_SILENT, MZ_HUGE), MR_POISON|MR_STONE, 0,
  2387. 	M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_AMPHIBIOUS|M1_SWIM,
  2388. 	M2_STRONG|M2_NEUTER, 0, CLR_BLUE),
  2389. /*
  2390. * Fungi
  2391. */
  2392. MON("lichen", S_FUNGUS,
  2393. 	LVL(0, 1, 9, 0, 0), (G_GENO|4),
  2394. 	A(ATTK(AT_TUCH, AD_STCK, 0, 0),
  2395. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2396. 	SIZ(20, 200, 0, MS_SILENT, MZ_SMALL), 0, 0,
  2397. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
  2398. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BRIGHT_GREEN),
  2399. MON("brown mold", S_FUNGUS,
  2400. 	LVL(1, 0, 9, 0, 0), (G_NOHELL|G_GENO|1),
  2401. 	A(ATTK(AT_NONE, AD_COLD, 0, 6),
  2402. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2403. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL),
  2404. 	MR_COLD|MR_POISON, MR_COLD|MR_POISON,
  2405. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
  2406. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
  2407. MON("yellow mold", S_FUNGUS,
  2408. 	LVL(1, 0, 9, 0, 0), (G_NOHELL|G_GENO|2),
  2409. 	A(ATTK(AT_NONE, AD_STUN, 0, 4),
  2410. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2411. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
  2412. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_POIS|M1_NOTAKE,
  2413. 	M2_HOSTILE|M2_NEUTER, 0, CLR_YELLOW),
  2414. MON("green mold", S_FUNGUS,
  2415. 	LVL(1, 0, 9, 0, 0), (G_NOHELL|G_GENO|1),
  2416. 	A(ATTK(AT_NONE, AD_ACID, 0, 4),
  2417. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2418. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL), MR_ACID|MR_STONE, MR_STONE,
  2419. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_ACID|M1_NOTAKE,
  2420. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
  2421. MON("red mold", S_FUNGUS,
  2422. 	LVL(1, 0, 9, 0, 0), (G_NOHELL|G_GENO|1),
  2423. 	A(ATTK(AT_NONE, AD_FIRE, 0, 4),
  2424. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2425. 	SIZ(50, 30, 0, MS_SILENT, MZ_SMALL),
  2426. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
  2427. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
  2428. 	M2_HOSTILE|M2_NEUTER, M3_INFRAVISIBLE, CLR_RED),
  2429. MON("shrieker", S_FUNGUS,
  2430. 	LVL(3, 1, 7, 0, 0), (G_NOHELL|G_GENO|2),
  2431. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2432. 	SIZ(100, 100, 0, MS_SHRIEK, MZ_SMALL), MR_DEATH|MR_POISON, MR_POISON,
  2433. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS,
  2434. 	M2_HOSTILE|M2_NEUTER, 0, CLR_MAGENTA),
  2435. MON("violet fungus", S_FUNGUS,
  2436. 	LVL(3, 1, 7, 0, 0), (G_NOHELL|G_GENO|2),
  2437. 	A(ATTK(AT_TUCH, AD_PHYS, 1, 4), ATTK(AT_TUCH, AD_STCK, 0, 0),
  2438. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2439. 	SIZ(100, 100, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
  2440. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|M1_NOTAKE,
  2441. 	M2_HOSTILE|M2_NEUTER, 0, CLR_MAGENTA),
  2442. MON("disgusting mold", S_FUNGUS,
  2443. 	LVL(5, 0, 7, 0, 0), (G_HELL|G_GENO|1),
  2444. 	A(ATTK(AT_NONE, AD_DRST, 1, 8), ATTK(AT_NONE, AD_ACID, 2, 4),
  2445. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2446. 	SIZ(100, 100, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
  2447. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
  2448. 	M1_OMNIVORE|M1_NOTAKE, M2_HOSTILE|M2_NEUTER, 0, CLR_CYAN),
  2449. MON("black mold", S_FUNGUS,
  2450. 	LVL(6, 0, 7, 0, 0), (G_HELL|G_GENO|1),
  2451. 	A(ATTK(AT_NONE, AD_DRST, 0, 4), ATTK(AT_NONE, AD_ACID, 1, 8),
  2452. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2453. 	SIZ(100, 100, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
  2454. 	M1_BREATHLESS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_MINDLESS|
  2455. 	M1_OMNIVORE|M1_NOTAKE, M2_HOSTILE|M2_NEUTER, 0, CLR_BLACK),
  2456. /*
  2457. * Gnomes
  2458. */
  2459. MON("gnome", S_GNOME,
  2460. 	LVL(1, 6, MARM(10,5), 4, 0), (G_NOHELL|G_GENO|G_SGROUP|4),
  2461. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  2462. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2463. 	SIZ(650, 100, 0, MS_ORC, MZ_SMALL), 0, 0,
  2464. 	M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_GNOME|M2_COLLECT,
  2465. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
  2466. MON("gnome thief", S_GNOME, 
  2467. 	LVL(1, 6, MARM(10,5), 4, 0), (G_GENO|G_NOGEN),
  2468. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_TUCH, AD_SITM, 0, 0), 
  2469. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2470. 	SIZ(650, 100, 0, MS_ORC, MZ_SMALL), 0, 0,
  2471. 	M1_HUMANOID|M1_OMNIVORE, M2_HOSTILE|M2_COLLECT,
  2472. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR,
  2473. 	CLR_BLACK),
  2474. MON("gnome lord", S_GNOME,
  2475. 	LVL(3, 8, MARM(10,4), 4, 0), (G_NOHELL|G_GENO|2),
  2476. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  2477. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2478. 	SIZ(700, 120, 0, MS_ORC, MZ_SMALL), 0, 0,
  2479. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_LORD|M2_MALE|M2_COLLECT,
  2480. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
  2481. MON("gnomish wizard", S_GNOME,
  2482. 	LVL(3, 10, 4, 10, 0), (G_NOHELL|G_GENO|2),
  2483. 	A(ATTK(AT_MAGC, AD_SPEL, 0, 0),
  2484. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2485. 	SIZ(700, 120, 0, MS_ORC, MZ_SMALL), 0, 0,
  2486. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_MAGIC,
  2487. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_ZAP),
  2488. MON("deep gnome", S_GNOME, 
  2489. 	LVL(5, 10, MARM(10,2), 20, 0), (G_HELL|G_GENO|1),
  2490. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK,
  2491. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2492. 	SIZ(750, 150, 0, MS_ORC, MZ_SMALL), MR_HITASONE, 0,
  2493. 	M1_HUMANOID|M1_OMNIVORE|M1_TUNNEL|M1_NEEDPICK, M2_MALE|M2_GREEDY|
  2494. 	M2_JEWELS|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
  2495. MON("gnome warrior", S_GNOME, 
  2496. 	LVL(5, 10, MARM(10,2), 20, 0), (G_HELL|G_GENO|1),
  2497. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK,
  2498. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2499. 	SIZ(750, 150, 0, MS_ORC, MZ_SMALL), MR_HITASONE, 0,
  2500. 	M1_HUMANOID|M1_OMNIVORE, M2_MALE|M2_COLLECT,
  2501. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  2502. MON("Ruggo the Gnome King", S_GNOME, 
  2503. 	LVL(16, 10, MARM(10,2), 10, -3), (G_UNIQ|1),
  2504. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK,
  2505. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2506. 	SIZ(750, 150, 0, MS_ORC, MZ_SMALL), MR_POISON|MR_STONE|MR_HITASONE, 0,
  2507. 	M1_HUMANOID|M1_OMNIVORE,
  2508. 	M2_PNAME|M2_PRINCE|M2_MALE|M2_COLLECT|M2_GREEDY|
  2509. 	M2_STALK|M2_HOSTILE|M2_NASTY|M2_NOPOLY|M2_JEWELS|M2_MAGIC,
  2510. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, HI_LORD),
  2511. MON("gnome king", S_GNOME,
  2512. 	LVL(5, 10, 10, 20, 0), (G_GENO|1),
  2513. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
  2514. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2515. 	SIZ(750, 150, 0, MS_ORC, MZ_SMALL), 0, 0,
  2516. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_PRINCE|M2_MALE|M2_COLLECT,
  2517. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  2518. /* [Lethe] Gnolls are no longer S_HUMANOID */
  2519. MON("gnoll", S_GNOME,
  2520. 	LVL(18, 12, 5, 10, -5), (G_GENO|G_HELL|1),
  2521. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6),  ATTK(AT_WEAP, AD_PHYS, 3, 6),
  2522. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2523. 	SIZ(1800, 100, 0, MS_ORC, MZ_LARGE), 0, 0,
  2524. 	M1_HIDE|M1_HUMANOID|M1_POIS|M1_SEE_INVIS|M1_OMNIVORE,
  2525. 	M2_NOPOLY|M2_HOSTILE|M2_COLLECT|M2_MAGIC|M2_GREEDY|M2_JEWELS,
  2526. 	M3_INFRAVISION|M3_TRAITOR, CLR_GRAY),
  2527. MON("gnoll warrior", S_GNOME,
  2528. 	LVL(24, 15, 0, 20, -6), (G_GENO|G_HELL|1),
  2529. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6),  ATTK(AT_WEAP, AD_PHYS, 3, 6),
  2530. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2531. 	SIZ(1800, 100, 0, MS_ORC, MZ_LARGE), 0, 0,
  2532. 	M1_HIDE|M1_HUMANOID|M1_POIS|M1_SEE_INVIS|M1_OMNIVORE,
  2533. 	M2_NOPOLY|M2_HOSTILE|M2_COLLECT|M2_MAGIC|M2_GREEDY|M2_JEWELS,
  2534. 	M3_INFRAVISION|M3_TRAITOR, CLR_WHITE),
  2535. MON("gnoll chieftain", S_GNOME,
  2536. 	LVL(30, 18, -5, 40, -8), (G_GENO|G_HELL|1),
  2537. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6),  ATTK(AT_WEAP, AD_PHYS, 3, 6),
  2538. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2539. 	SIZ(1800, 100, 0, MS_ORC, MZ_LARGE), 0, 0,
  2540. 	M1_HIDE|M1_HUMANOID|M1_POIS|M1_SEE_INVIS|M1_OMNIVORE,
  2541. 	M2_NOPOLY|M2_HOSTILE|M2_COLLECT|M2_MAGIC|M2_GREEDY|M2_JEWELS,
  2542. 	M3_INFRAVISION|M3_TRAITOR, CLR_MAGENTA),
  2543. MON("gnoll shaman", S_GNOME,
  2544. 	LVL(18, 15, 0, 60, -10), (G_GENO|G_HELL|1),
  2545. 	A(ATTK(AT_MAGC, AD_SPEL, 0, 0),  ATTK(AT_MAGC, AD_CLRC, 0, 0),
  2546. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2547. 	SIZ(1800, 100, 0, MS_ORC, MZ_LARGE), 0, 0,
  2548. 	M1_HIDE|M1_HUMANOID|M1_POIS|M1_SEE_INVIS|M1_OMNIVORE,
  2549. 	M2_NOPOLY|M2_HOSTILE|M2_COLLECT|M2_MAGIC|M2_GREEDY|M2_JEWELS,
  2550. 	M3_INFRAVISION|M3_TRAITOR, CLR_YELLOW),
  2551. #ifdef SPLITMON_1
  2552. };
  2553. #endif
  2554. #endif /* !SPLITMON_2 */
  2555.  
  2556. /* horrible kludge alert:
  2557. * This is a compiler-specific kludge to allow the compilation of monst.o in
  2558. * two pieces, by defining first SPLITMON_1 and then SPLITMON_2. The
  2559. * resulting assembler files (monst1.s and monst2.s) are then run through
  2560. * sed to change local symbols, concatenated together, and assembled to
  2561. * produce monst.o. THIS ONLY WORKS WITH THE ATARI GCC, and should only
  2562. * be done if you don't have enough memory to compile monst.o the "normal"
  2563. * way.  --ERS
  2564. */
  2565.  
  2566. #ifndef SPLITMON_1
  2567. #ifdef SPLITMON_2
  2568. struct permonst _mons2[] = {
  2569. #endif
  2570. /*
  2571. * giant Humanoids
  2572. */
  2573. MON("giant", S_GIANT,
  2574. 	LVL(6, 6, 0, 0, 2), (G_NOHELL|G_GENO|G_NOGEN),
  2575. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
  2576. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2577. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_HITASONE, 0,
  2578. 	M1_HUMANOID|M1_CARNIVORE,
  2579. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  2580. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  2581. MON("stone giant", S_GIANT,
  2582. 	LVL(6, 6, 0, 0, 2), (G_NOHELL|G_GENO|G_SGROUP|2),
  2583. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
  2584. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2585. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_HITASTWO, 0,
  2586. 	M1_HUMANOID|M1_CARNIVORE,
  2587. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  2588. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
  2589. MON("hill giant", S_GIANT,
  2590. 	LVL(8, 10, 6, 0, -2), (G_NOHELL|G_GENO|G_SGROUP|2),
  2591. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8),
  2592. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2593. 	SIZ(2200, 700, 0, MS_BOAST, MZ_HUGE), MR_HITASTWO, 0,
  2594. 	M1_HUMANOID|M1_CARNIVORE,
  2595. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  2596. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_CYAN),
  2597. MON("fire giant", S_GIANT,
  2598. 	LVL(9, 12, 4, 5, 2), (G_GENO|G_SGROUP|2),
  2599. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
  2600. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2601. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_FIRE|MR_HITASTWO, MR_FIRE,
  2602. 	M1_HUMANOID|M1_CARNIVORE,
  2603. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  2604. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_YELLOW),
  2605. MON("frost giant", S_GIANT,
  2606. 	LVL(10, 12, 3, 10, -3), (G_NOHELL|G_GENO|G_SGROUP|1),
  2607. 	A(ATTK(AT_WEAP, AD_PHYS, 2,12),
  2608. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2609. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_COLD|MR_HITASTWO, MR_COLD,
  2610. 	M1_HUMANOID|M1_CARNIVORE,
  2611. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  2612. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_WHITE),
  2613. MON("ettin", S_GIANT,
  2614. 	LVL(10, 12, 3, 0, 0), (G_NOHELL|G_GENO|1),
  2615. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 3, 6),
  2616. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2617. 	SIZ(1700, 500, 0, MS_GRUNT, MZ_HUGE), MR_HITASTWO, 0,
  2618. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
  2619. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
  2620. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
  2621. MON("titan", S_GIANT,
  2622. 	LVL(16, 18, -3, 70, 9), (G_NOHELL|G_GENO|1),
  2623. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  2624. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2625. 	SIZ(2300, 900, 0, MS_SPELL, MZ_HUGE), MR_DEATH, 0,
  2626. 	M1_FLY|M1_HUMANOID|M1_OMNIVORE,
  2627. 	M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_MAGIC,
  2628. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_MAGENTA),
  2629. MON("storm giant", S_GIANT,
  2630. 	LVL(16, 12, 3, 10, -3), (G_GENO|G_SGROUP|1),
  2631. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 12),
  2632. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2633. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_ELEC, MR_ELEC,
  2634. 	M1_HUMANOID|M1_CARNIVORE,
  2635. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  2636. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
  2637. MON("minotaur", S_GIANT,
  2638. 	LVL(15, 15, 6, 0, 0), (G_GENO|G_NOGEN),
  2639. 	A(ATTK(AT_CLAW, AD_PHYS, 3,10), ATTK(AT_CLAW, AD_PHYS, 3,10),
  2640. 	  ATTK(AT_BUTT, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  2641. 	SIZ(1500, 700, 0, MS_SILENT, MZ_LARGE), MR_DEATH|MR_HITASTWO, 0,
  2642. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,M2_MALE|M2_HOSTILE|M2_STRONG|
  2643. 	M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,CLR_BROWN),
  2644. MON("the Largest Giant", S_GIANT, 
  2645. 	LVL(26, 12, 0, 15, -3), (G_UNIQ|1),
  2646. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 10), NO_ATTK, NO_ATTK,
  2647. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2648. 	SIZ(2250, 750, 0, MS_SILENT, MZ_HUGE), MR_FIRE|MR_HITASTHREE|
  2649. 	MR_POISON|MR_STONE, MR_FIRE, M1_HUMANOID|M1_CARNIVORE,
  2650. 	M2_PNAME|M2_PRINCE|M2_MALE|M2_STALK|M2_HOSTILE|
  2651. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|
  2652. 	M2_NOPOLY|M2_MAGIC|M2_JEWELS, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, HI_LORD),
  2653. MON("Father Dagon", S_GIANT,
  2654. 	LVL(100, 15, -10, 90, -10), (G_UNIQ|G_NOGEN),
  2655. 	A(ATTK(AT_CLAW, AD_PHYS, 8, 10), ATTK(AT_CLAW, AD_PHYS, 8, 10),
  2656. 	  ATTK(AT_BITE, AD_PHYS, 6, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  2657. 	SIZ(5000, 500, 0, MS_GURGLE, MZ_GIGANTIC), MR_COLD|MR_POISON, MR_POISON,
  2658. 	M1_SWIM|M1_AMPHIBIOUS|M1_HUMANOID|M1_OMNIVORE|M1_POIS|M1_THICK_HIDE,
  2659. M2_NOPOLY|M2_HOSTILE|M2_STALK|M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_MINION|M2_STRONG|M2_ROCKTHROW|M2_PNAME|M2_MALE,
  2660. M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR|M3_NOTAME,
  2661. 	CLR_GREEN),
  2662. MON("Mother Hydra", S_GIANT,
  2663. 	LVL(102, 18, -12, 90, -10), (G_UNIQ|G_NOGEN),
  2664. 	A(ATTK(AT_CLAW, AD_PHYS, 8, 12), ATTK(AT_CLAW, AD_PHYS, 8, 10),
  2665. 	  ATTK(AT_BITE, AD_PHYS, 6, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  2666. 	SIZ(5000, 500, 0, MS_GURGLE, MZ_GIGANTIC), MR_COLD|MR_POISON, MR_POISON,
  2667. 	M1_SWIM|M1_AMPHIBIOUS|M1_HUMANOID|M1_OMNIVORE|M1_POIS|M1_THICK_HIDE,
  2668. M2_NOPOLY|M2_HOSTILE|M2_STALK|M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_MINION|M2_STRONG|M2_ROCKTHROW|M2_PNAME|M2_FEMALE,
  2669. M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR|M3_NOTAME,
  2670. 	CLR_GREEN),
  2671. /* 'I' is a visual marker for all invisible monsters and must be unused */
  2672. /*
  2673. * Jabberwock
  2674. */
  2675. MON("jabberwock", S_JABBERWOCK,
  2676. 	LVL(15, 12, -2, 50, 0), (G_NOHELL|G_GENO|1),
  2677. 	A(ATTK(AT_BITE, AD_PHYS, 2,10), ATTK(AT_BITE, AD_PHYS, 2,10),
  2678. 	  ATTK(AT_CLAW, AD_PHYS, 2,10), ATTK(AT_CLAW, AD_PHYS, 2,10),
  2679. 	  NO_ATTK, NO_ATTK),
  2680. 	SIZ(1300, 600, 0, MS_BURBLE, MZ_LARGE), MR_HITASONE, 0,
  2681. 	M1_ANIMAL|M1_FLY|M1_CARNIVORE,
  2682. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT, M3_INFRAVISIBLE, CLR_ORANGE),
  2683. MON("vorpal jabberwock", S_JABBERWOCK,       
  2684. 	LVL(20, 12, -2, 50, 0), (G_NOHELL|G_GENO|1),
  2685. 	A(ATTK(AT_BITE, AD_PHYS, 3, 10), ATTK(AT_BITE, AD_PHYS, 3, 10),
  2686. 	  ATTK(AT_CLAW, AD_PHYS, 3, 10), ATTK(AT_CLAW, AD_PHYS, 3, 10),
  2687. 	  NO_ATTK, NO_ATTK),
  2688. 	SIZ(1300, 600, 0, MS_BURBLE, MZ_LARGE), MR_HITASTHREE, 0,
  2689. 	M1_ANIMAL|M1_FLY|M1_CARNIVORE,
  2690. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT, M3_INFRAVISIBLE, HI_LORD),
  2691. #ifdef KOPS
  2692. /*
  2693. * Kops
  2694. */
  2695. MON("Keystone Kop", S_KOP,
  2696. 	LVL(1, 6, MARM(10,7), 10, 9), (G_GENO|G_LGROUP|G_NOGEN),
  2697. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
  2698. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2699. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
  2700. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE,
  2701. 	CLR_BLUE),
  2702. MON("Kop Sergeant", S_KOP,
  2703. 	LVL(2, 8, MARM(10,6), 10, 10), (G_GENO|G_SGROUP|G_NOGEN),
  2704. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  2705. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2706. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
  2707. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_MALE|M2_COLLECT,
  2708. 	M3_INFRAVISIBLE, CLR_BLUE),
  2709. MON("Kop Lieutenant", S_KOP,
  2710. 	LVL(3, 10, MARM(10,5), 20, 11), (G_GENO|G_NOGEN),
  2711. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  2712. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2713. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
  2714. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_MALE|M2_COLLECT,
  2715. 	M3_INFRAVISIBLE, CLR_CYAN),
  2716. MON("Kop Kaptain", S_KOP,
  2717. 	LVL(4, 12, MARM(10,4), 20, 12), (G_GENO|G_NOGEN),
  2718. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
  2719. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2720. 	SIZ(WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
  2721. 	M2_HUMAN|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_MALE|M2_COLLECT,
  2722. 	M3_INFRAVISIBLE, HI_LORD),
  2723. #endif
  2724. /*
  2725. * Liches
  2726. */
  2727. MON("lich", S_LICH,
  2728. 	LVL(11, 6, 0, 30, -9), (G_GENO|G_NOCORPSE|1),
  2729. 	A(ATTK(AT_TUCH, AD_COLD, 1,10), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  2730. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2731. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
  2732. 	MR_COLD|MR_SLEEP|MR_POISON|MR_PLUSTWO, MR_COLD,
  2733. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
  2734. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_INFRAVISION|M3_TRAITOR, CLR_BROWN),
  2735. MON("demilich", S_LICH,
  2736. 	LVL(14, 9, -2, 60, -12), (G_GENO|G_NOCORPSE|1),
  2737. 	A(ATTK(AT_TUCH, AD_COLD, 3, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  2738. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2739. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
  2740. 	MR_COLD|MR_SLEEP|MR_POISON|MR_PLUSTHREE, MR_COLD,
  2741. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
  2742. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_INFRAVISION|M3_TRAITOR, CLR_RED),
  2743. MON("master lich", S_LICH,
  2744. 	LVL(17, 9, -4, 90, -15), (G_HELL|G_GENO|G_NOCORPSE|1),
  2745. 	A(ATTK(AT_TUCH, AD_COLD, 3, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  2746. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2747. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
  2748. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_POISON|MR_PLUSTHREE, MR_FIRE|MR_COLD,
  2749. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
  2750. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_WANTSBOOK|M3_TRAITOR, HI_LORD),
  2751. MON("arch-lich", S_LICH,
  2752. 	LVL(25, 9, -6, 90, -15), (G_HELL|G_GENO|G_NOCORPSE|1),
  2753. 	A(ATTK(AT_TUCH, AD_COLD, 5, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  2754. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2755. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
  2756. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_ELEC|MR_POISON|MR_PLUSTHREE, MR_FIRE|MR_COLD,
  2757. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
  2758. 	M2_UNDEAD|M2_HOSTILE|M2_MAGIC, M3_WANTSBOOK|M3_INFRAVISION|M3_TRAITOR, HI_LORD),
  2759. /*
  2760. * Mummies
  2761. */
  2762. MON("kobold mummy", S_MUMMY,
  2763. 	LVL(3, 8, 6, 20, -2), (G_GENO|G_NOCORPSE|1),
  2764. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4),
  2765. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2766. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
  2767. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  2768. 	M2_UNDEAD|M2_HOSTILE, M3_INFRAVISION, CLR_BROWN),
  2769. MON("gnome mummy", S_MUMMY,
  2770. 	LVL(4, 10, 6, 20, -3), (G_GENO|G_NOCORPSE|1),
  2771. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
  2772. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2773. 	SIZ(650, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
  2774. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  2775. 	M2_UNDEAD|M2_HOSTILE|M2_GNOME, M3_INFRAVISION, CLR_RED),
  2776. MON("orc mummy", S_MUMMY,
  2777. 	LVL(5, 10, 5, 20, -4), (G_GENO|G_NOCORPSE|1),
  2778. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
  2779. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2780. 	SIZ(850, 75, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
  2781. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  2782. 	M2_UNDEAD|M2_HOSTILE|M2_ORC|M2_GREEDY|M2_JEWELS, M3_INFRAVISION,
  2783. 	CLR_GRAY),
  2784. MON("dwarf mummy", S_MUMMY,
  2785. 	LVL(5, 10, 5, 20, -4), (G_GENO|G_NOCORPSE|1),
  2786. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
  2787. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2788. 	SIZ(900, 150, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
  2789. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  2790. 	M2_UNDEAD|M2_HOSTILE|M2_DWARF|M2_GREEDY|M2_JEWELS, M3_INFRAVISION,
  2791. 	CLR_RED),
  2792. MON("elf mummy", S_MUMMY,
  2793. 	LVL(6, 12, 4, 30, 5), (G_GENO|G_NOCORPSE|1),
  2794. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4),
  2795. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2796. 	SIZ(WT_ELF, 175, 0, MS_SILENT, MZ_HUMAN),
  2797. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  2798. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  2799. 	M2_UNDEAD|M2_HOSTILE|M2_ELF, M3_INFRAVISION, CLR_GREEN),
  2800. MON("human mummy", S_MUMMY,
  2801. 	LVL(6, 12, 4, 30, -5), (G_GENO|G_NOCORPSE|1),
  2802. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  2803. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2804. 	SIZ(WT_HUMAN, 200, 0, MS_SILENT, MZ_HUMAN),
  2805. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  2806. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  2807. 	M2_UNDEAD|M2_HOSTILE, M3_INFRAVISION, CLR_GRAY),
  2808. MON("ettin mummy", S_MUMMY,
  2809. 	LVL(7, 12, 4, 30, -6), (G_GENO|G_NOCORPSE|1),
  2810. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_PHYS, 2, 6),
  2811. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2812. 	SIZ(1700, 250, 0, MS_SILENT, MZ_HUGE),
  2813. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  2814. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  2815. 	M2_UNDEAD|M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_BLUE),
  2816. MON("giant mummy", S_MUMMY,
  2817. 	LVL(8, 14, 3, 30, -7), (G_GENO|G_NOCORPSE|1),
  2818. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  2819. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2820. 	SIZ(2050, 375, 0, MS_SILENT, MZ_HUGE),
  2821. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  2822. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  2823. 	M2_UNDEAD|M2_HOSTILE|M2_GIANT|M2_STRONG|M2_JEWELS, M3_INFRAVISION,
  2824. 	CLR_CYAN),
  2825. MON("troll mummy", S_MUMMY, 
  2826. 	LVL(9, 14, 3, 30, -8), (G_GENO|G_NOCORPSE|1),
  2827. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  2828. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2829. 	SIZ(1500, 375, 0, MS_SILENT, MZ_HUGE),
  2830. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  2831. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  2832. 	M2_UNDEAD|M2_HOSTILE|M2_GIANT|M2_STRONG|M2_JEWELS,
  2833. 	0, CLR_BROWN),
  2834. /*
  2835. * Nagas
  2836. */
  2837. MON("red naga hatchling", S_NAGA,
  2838. 	LVL(3, 10, 6, 0, 0), G_GENO,
  2839. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
  2840. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2841. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE),
  2842. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
  2843. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_NOTAKE|M1_OMNIVORE, M2_STRONG,
  2844. 	M3_INFRAVISIBLE, CLR_RED),
  2845. MON("black naga hatchling", S_NAGA,
  2846. 	LVL(3, 10, 6, 0, 0), G_GENO,
  2847. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
  2848. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2849. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE),
  2850. 	MR_POISON|MR_ACID|MR_STONE, MR_POISON|MR_STONE,
  2851. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_ACID|M1_NOTAKE|M1_CARNIVORE,
  2852. 	M2_STRONG, 0, CLR_BLACK),
  2853. MON("golden naga hatchling", S_NAGA,
  2854. 	LVL(3, 10, 6, 0, 0), G_GENO,
  2855. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
  2856. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2857. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE), MR_POISON, MR_POISON,
  2858. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_NOTAKE|M1_OMNIVORE,
  2859. 	M2_STRONG, 0, HI_GOLD),
  2860. MON("guardian naga hatchling", S_NAGA,
  2861. 	LVL(3, 10, 6, 0, 0), G_GENO,
  2862. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
  2863. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2864. 	SIZ(500, 100, 0, MS_MUMBLE, MZ_LARGE), MR_POISON, MR_POISON,
  2865. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_NOTAKE|M1_OMNIVORE,
  2866. 	M2_STRONG, 0, CLR_GREEN),
  2867. MON("red naga", S_NAGA,
  2868. 	LVL(6, 12, 4, 0, -4), (G_NOHELL|G_GENO|1),
  2869. 	A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_BREA, AD_FIRE, 2, 6),
  2870. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2871. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE),
  2872. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
  2873. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_NOTAKE|M1_OMNIVORE,
  2874. 	M2_STRONG, M3_INFRAVISIBLE, CLR_RED),
  2875. MON("black naga", S_NAGA,
  2876. 	LVL(8, 14, 2, 10, 4), (G_NOHELL|G_GENO|1),
  2877. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_SPIT, AD_ACID, 0, 0),
  2878. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2879. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE),
  2880. 	MR_POISON|MR_ACID|MR_STONE, MR_POISON|MR_STONE,
  2881. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_ACID|M1_NOTAKE|
  2882. 	  M1_CARNIVORE,
  2883. 	M2_STRONG, 0, CLR_BLACK),
  2884. MON("golden naga", S_NAGA,
  2885. 	LVL(10, 14, 2, 70, 5), (G_NOHELL|G_GENO|1),
  2886. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_MAGC, AD_SPEL, 4, 6),
  2887. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2888. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE), MR_POISON|MR_HITASONE, MR_POISON,
  2889. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_NOTAKE|M1_OMNIVORE,
  2890. 	M2_STRONG, 0, HI_GOLD),
  2891. MON("guardian naga", S_NAGA,
  2892. 	LVL(12, 16, 0, 50, 7), (G_NOHELL|G_GENO|1),
  2893. 	A(ATTK(AT_BITE, AD_PLYS, 1, 6), ATTK(AT_SPIT, AD_DRST, 1, 6),
  2894. 	  ATTK(AT_HUGS, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  2895. 	SIZ(2600, 400, 0, MS_MUMBLE, MZ_HUGE), MR_POISON|MR_HITASONE, MR_POISON,
  2896. 	M1_NOLIMBS|M1_SLITHY|M1_THICK_HIDE|M1_OVIPAROUS|M1_POIS|M1_NOTAKE|
  2897. 	  M1_OMNIVORE,
  2898. 	M2_STRONG, 0, CLR_GREEN),
  2899. /*
  2900. * Ogres
  2901. */
  2902. MON("ogre", S_OGRE,
  2903. 	LVL(5, 10, 5, 0, -3), (G_NOHELL|G_SGROUP|G_GENO|2),
  2904. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 5),
  2905. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2906. 	SIZ(1600, 500, 0, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID|M1_CARNIVORE,
  2907. 	M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  2908. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BROWN),
  2909. MON("ogre lord", S_OGRE,
  2910. 	LVL(7, 12, 3, 30, -5), (G_NOHELL|G_GENO|1),
  2911. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
  2912. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2913. 	SIZ(1700, 700, 0, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID|M1_CARNIVORE,
  2914. 	M2_STRONG|M2_LORD|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  2915. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_RED),
  2916. MON("ogre mage", S_OGRE, 
  2917. 	LVL(7, 12, 3, 30, -5), (G_NOHELL|G_GENO),
  2918. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  2919. 	   NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2920. 	SIZ(1700, 700, 0, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID|M1_CARNIVORE,
  2921. 	M2_STRONG|M2_LORD|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  2922. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, HI_ZAP),
  2923. MON("ogre king", S_OGRE,
  2924. 	LVL(9, 14, 4, 60, -7), (G_GENO|2),
  2925. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 5),
  2926. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2927. 	SIZ(1700, 750, 0, MS_GRUNT, MZ_LARGE), MR_HITASONE, 0,
  2928. 	M1_HUMANOID|M1_CARNIVORE,
  2929. 	M2_STRONG|M2_PRINCE|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  2930. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, HI_LORD),
  2931. MON("shadow ogre", S_OGRE, 
  2932. 	LVL(10, 14, 0, 60, -7), (G_HELL|G_GENO),
  2933. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 5), ATTK(AT_TUCH, AD_DRLI, 3, 5), 
  2934. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2935. 	SIZ(1700, 750, 0, MS_GRUNT, MZ_LARGE), MR_PLUSONE, 0,
  2936. 	M1_HUMANOID|M1_CARNIVORE,
  2937. 	M2_STRONG|M2_PRINCE|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  2938. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  2939. /*
  2940. * Puddings
  2941. */
  2942. MON("gray ooze", S_PUDDING,
  2943. 	LVL(3, 1, 8, 0, 0), (G_NOHELL|G_GENO|3),
  2944. 	A(ATTK(AT_BITE, AD_RUST, 2, 8),
  2945. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2946. 	SIZ(500, 250, 0, MS_SILENT, MZ_MEDIUM),
  2947. 	MR_DEATH|MR_FIRE|MR_COLD|MR_POISON|MR_ACID|MR_STONE, MR_FIRE|MR_COLD|MR_POISON,
  2948. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  2949. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID,
  2950. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
  2951. MON("brown pudding", S_PUDDING,
  2952. 	LVL(5, 3, 8, 0, 0), (G_NOHELL|G_GENO|1),
  2953. 	A(ATTK(AT_BITE, AD_DCAY, 0, 0),
  2954. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2955. 	SIZ(500, 250, 0, MS_SILENT, MZ_MEDIUM),
  2956. 	MR_DEATH|MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE|MR_HITASONE, MR_COLD|MR_ELEC|MR_POISON,
  2957. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  2958. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID,
  2959. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
  2960. MON("moldy pudding", S_PUDDING, 
  2961. 	LVL(8, 3, 8, 0, 0), (G_NOHELL|G_GENO),
  2962. 	A(ATTK(AT_ENGL, AD_DCAY, 4, 4), NO_ATTK, NO_ATTK,
  2963. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  2964. 	SIZ(500, 250, 0, MS_SILENT, MZ_MEDIUM),
  2965. 	MR_DEATH|MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE|MR_HITASONE,
  2966. 	MR_COLD|MR_ELEC|MR_POISON,
  2967. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  2968. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID,
  2969. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
  2970. MON("black pudding", S_PUDDING,
  2971. 	LVL(10, 6, 6, 0, 0), (G_NOHELL|G_GENO|1),
  2972. 	A(ATTK(AT_BITE, AD_CORR, 3, 8), ATTK(AT_NONE, AD_CORR, 0, 0),
  2973. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2974. 	SIZ(900, 250, 0, MS_SILENT, MZ_LARGE),
  2975. 	MR_DEATH|MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE|MR_HITASTWO, MR_COLD|MR_ELEC|MR_POISON,
  2976. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  2977. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID,
  2978. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BLACK),
  2979. MON("green slime", S_PUDDING, 
  2980. 	LVL(6, 6, 6, 0, 0), (G_HELL|G_GENO|1),
  2981. 	A(ATTK(AT_TUCH, AD_SLIM, 1, 4), ATTK(AT_NONE, AD_SLIM, 0, 0),
  2982. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  2983. 	SIZ(400, 150, 0, MS_SILENT, MZ_LARGE),
  2984. 	MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE, 0,
  2985. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
  2986. 	  M1_MINDLESS|M1_OMNIVORE|M1_ACID|M1_POIS,
  2987. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
  2988. MON("shoggoth", S_PUDDING,
  2989. 	LVL(18, 15, -5, 25, -5), (G_GENO|1),
  2990. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 8), ATTK(AT_TUCH, AD_CORR, 0, 0),
  2991. 	  ATTK(AT_NONE, AD_CORR, 0, 0), ATTK(AT_ENGL, AD_ACID, 4, 8),
  2992. 	  NO_ATTK, NO_ATTK),
  2993. 	SIZ(2500, 500, 0, MS_SILENT, MZ_LARGE),
  2994. 	MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE, MR_COLD|MR_ELEC|MR_POISON,
  2995. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD
  2996. 	  |M1_OMNIVORE|M1_ACID|M1_HIDE|M1_REGEN|M1_METALLIVORE,
  2997. 	M2_HOSTILE|M2_NEUTER|M2_STALK|M2_NASTY|M2_STRONG|M2_COLLECT|M2_MAGIC, 
  2998. 	M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  2999. MON("giant shoggoth", S_PUDDING,
  3000. 	LVL(36, 20, -10, 50, -10), (G_GENO|1),
  3001. 	A(ATTK(AT_CLAW, AD_PHYS, 5, 10),    ATTK(AT_CLAW, AD_PHYS, 5, 10),
  3002. 	  ATTK(AT_TUCH, AD_CORR, 0, 0), ATTK(AT_TUCH, AD_CORR, 0, 0),
  3003. 	  ATTK(AT_NONE, AD_CORR, 0, 0),  ATTK(AT_ENGL, AD_ACID, 8, 10) ),
  3004. 	SIZ(2500, 500, 0, MS_SILENT, MZ_LARGE),
  3005. 	MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE, MR_COLD|MR_ELEC|MR_POISON,
  3006. 	M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|M1_TPORT
  3007. 	  |M1_OMNIVORE|M1_ACID|M1_HIDE|M1_REGEN|M1_METALLIVORE|M1_TPORT_CNTRL,
  3008. 	M2_HOSTILE|M2_NEUTER|M2_STALK|M2_NASTY|M2_STRONG|M2_COLLECT|M2_MAGIC, 
  3009. 	M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  3010. /*
  3011. * Quantum mechanics
  3012. */
  3013. MON("quantum mechanic", S_QUANTMECH,
  3014. 	LVL(7, 12, 3, 10, 0), (G_NOHELL|G_GENO|2),
  3015. 	A(ATTK(AT_CLAW, AD_TLPT, 1, 4),
  3016. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3017. 	SIZ(WT_HUMAN, 20, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON|MR_HITASONE, 0,
  3018. 	M1_HUMANOID|M1_OMNIVORE|M1_POIS|M1_TPORT, M2_HOSTILE, M3_INFRAVISIBLE,
  3019. 	CLR_CYAN),
  3020. MON("genetic engineer", S_QUANTMECH,
  3021. 	LVL(12, 12, 3, 10, 0), (G_HELL|G_GENO|1),
  3022. 	A(ATTK(AT_CLAW, AD_POLY, 1, 4),
  3023. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3024. 	SIZ(WT_HUMAN, 20, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
  3025. 	M1_HUMANOID|M1_OMNIVORE|M1_POIS|M1_TPORT, M2_HOSTILE, M3_INFRAVISIBLE,
  3026. 	CLR_GREEN),
  3027. MON("Doctor Frankenstein", S_QUANTMECH,
  3028. 	LVL(20, 12, -10, 75, 0), (G_NOGEN|G_UNIQ),
  3029. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_CLAW, AD_TLPT, 1, 4),
  3030. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3031. 	SIZ(WT_HUMAN, 20, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON|MR_ELEC|MR_SLEEP, 0,
  3032. 	M1_HUMANOID|M1_OMNIVORE|M1_POIS|M1_TPORT, 
  3033. 	M2_HOSTILE|M2_NOPOLY|M2_MALE|M2_PNAME, M3_INFRAVISIBLE|M3_NOTAME, HI_LORD),
  3034. /*
  3035. * Rust monster or disenchanter
  3036. */
  3037. MON("rust monster", S_RUSTMONST,
  3038. 	LVL(5, 18, 2, 0, 0), (G_NOHELL|G_GENO|2),
  3039. 	A(ATTK(AT_TUCH, AD_RUST, 0, 0), ATTK(AT_TUCH, AD_RUST, 0, 0),
  3040. 	  ATTK(AT_NONE, AD_RUST, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  3041. 	SIZ(1000, 250, 0, MS_SILENT, MZ_MEDIUM), MR_HITASONE, 0,
  3042. 	M1_SWIM|M1_ANIMAL|M1_NOHANDS|M1_METALLIVORE, M2_HOSTILE,
  3043. 	M3_INFRAVISIBLE, CLR_BROWN),
  3044. MON("disenchanter", S_RUSTMONST,
  3045. 	LVL(12, 12, -10, 0, -3), (G_HELL|G_GENO|2),
  3046. 	A(ATTK(AT_CLAW, AD_ENCH, 4, 4), ATTK(AT_NONE, AD_ENCH, 0, 0),
  3047. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3048. 	SIZ(750, 200, 0, MS_GROWL, MZ_LARGE), 0, 0,
  3049. 	M1_ANIMAL|M1_CARNIVORE, M2_HOSTILE,
  3050. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_BLUE),
  3051. /*
  3052. * Snakes
  3053. */
  3054. MON("garter snake", S_SNAKE,
  3055. 	LVL(1, 8, 8, 0, 0), (G_LGROUP|G_GENO|1),
  3056. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
  3057. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3058. 	SIZ(50, 60, 0, MS_HISS, MZ_TINY), 0, 0,
  3059. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_OVIPAROUS|
  3060. 	  M1_CARNIVORE|M1_NOTAKE,
  3061. 	0, 0, CLR_GREEN),
  3062. MON("snake", S_SNAKE,
  3063. 	LVL(4, 15, 3, 0, 0), (G_NOHELL|G_GENO|2),
  3064. 	A(ATTK(AT_BITE, AD_DRST, 1, 6),
  3065. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3066. 	SIZ(100, 80, 0, MS_HISS, MZ_SMALL), MR_POISON, MR_POISON,
  3067. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
  3068. 	  M1_OVIPAROUS|M1_CARNIVORE|M1_NOTAKE,
  3069. 	M2_HOSTILE, 0, CLR_BROWN),
  3070. MON("water moccasin", S_SNAKE,
  3071. 	LVL(4, 15, 3, 0, 0), (G_GENO|G_NOGEN|G_LGROUP),
  3072. 	A(ATTK(AT_BITE, AD_DRST, 1, 6),
  3073. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3074. 	SIZ(150, 80, 0, MS_HISS, MZ_SMALL), MR_POISON, MR_POISON,
  3075. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
  3076. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
  3077. 	M2_HOSTILE, 0, CLR_RED),
  3078. MON("pit viper", S_SNAKE,
  3079. 	LVL(6, 15, 2, 0, 0), (G_NOHELL|G_GENO|1),
  3080. 	A(ATTK(AT_BITE, AD_DRST, 1, 4), ATTK(AT_BITE, AD_DRST, 1, 4),
  3081. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3082. 	SIZ(100, 60, 0, MS_HISS, MZ_MEDIUM),
  3083. 	MR_POISON, MR_POISON,
  3084. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
  3085. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
  3086. 	M2_HOSTILE, M3_INFRAVISION, CLR_BLUE),
  3087. MON("python", S_SNAKE,
  3088. 	LVL(6, 3, 5, 0, 0), (G_NOHELL|G_GENO|1),
  3089. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4), ATTK(AT_TUCH, AD_PHYS, 0, 0),
  3090. 	  ATTK(AT_HUGS, AD_WRAP, 1, 4), ATTK(AT_HUGS, AD_PHYS, 2, 4),
  3091. 	  NO_ATTK, NO_ATTK),
  3092. 	SIZ(250, 100, 0, MS_HISS, MZ_LARGE), MR_POISON|MR_HITASONE, MR_POISON,
  3093. 	M1_SWIM|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|
  3094. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
  3095. 	M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_MAGENTA),
  3096. MON("cobra", S_SNAKE,
  3097. 	LVL(6, 18, 2, 0, 0), (G_NOHELL|G_GENO|1),
  3098. 	A(ATTK(AT_BITE, AD_DRST, 2, 4), ATTK(AT_SPIT, AD_BLND, 0, 0),
  3099. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3100. 	SIZ(250, 100, 0, MS_HISS, MZ_MEDIUM),
  3101. 	MR_POISON, MR_POISON,
  3102. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
  3103. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
  3104. 	M2_HOSTILE, 0, CLR_BLUE),
  3105. MON("king cobra", S_SNAKE, 
  3106. 	LVL(9, 15, 2, 0, 0), (G_NOHELL|G_GENO),
  3107. 	A(ATTK(AT_BITE, AD_DRST, 3, 4), ATTK(AT_BITE, AD_DRST, 3, 4),
  3108. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3109. 	SIZ(200, 120, 0, MS_HISS, MZ_MEDIUM), MR_POISON, MR_POISON,
  3110. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
  3111. 	M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE, M2_HOSTILE, 0, CLR_GRAY),
  3112. MON("weresnake", S_SNAKE, 
  3113. 	LVL(9, 12, 2, 20, -7), G_NOGEN|G_NOCORPSE,
  3114. 	A(ATTK(AT_BITE, AD_WERE, 3, 6), ATTK(AT_BITE, AD_DRST, 2, 6),
  3115. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3116. 	SIZ(300, 120, 0, MS_HISS, MZ_MEDIUM), MR_POISON, 0,
  3117. 	M1_NOLIMBS|M1_SWIM|M1_SLITHY|M1_POIS|M1_REGEN|M1_CARNIVORE,
  3118. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M1_NOTAKE, 0, CLR_BROWN),
  3119. MON("asphynx", S_SNAKE, 
  3120. 	LVL(8, 15, 3, 0, 0), (G_NOHELL|G_GENO|1),
  3121. 	A(ATTK(AT_BITE, AD_STON, 1, 6), ATTK(AT_NONE, AD_STON, 0, 0), 
  3122. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3123. 	SIZ(100, 80, 0, MS_HISS, MZ_SMALL), MR_POISON|MR_STONE, 
  3124. 	MR_POISON|MR_STONE,
  3125. 	M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
  3126. 	M1_OVIPAROUS|M1_CARNIVORE|M1_NOTAKE, M2_HOSTILE, 0, CLR_BLACK),
  3127. /*
  3128. * Trolls
  3129. */
  3130. MON("troll", S_TROLL,
  3131. 	LVL(7, 12, 4, 0, -3), (G_NOHELL|G_GENO|2),
  3132. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 2), ATTK(AT_CLAW, AD_PHYS, 4, 2),
  3133. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3134. 	SIZ(800, 350, 0, MS_GRUNT, MZ_LARGE), MR_HITASONE, 0,
  3135. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
  3136. 	M2_STRONG|M2_STALK|M2_HOSTILE, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR,
  3137. 	CLR_BROWN),
  3138. MON("ice troll", S_TROLL,
  3139. 	LVL(9, 10, 2, 20, -3), (G_NOHELL|G_GENO|1),
  3140. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_COLD, 2, 6),
  3141. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3142. 	SIZ(1000, 300, 0, MS_GRUNT, MZ_LARGE), MR_COLD|MR_HITASONE, MR_COLD,
  3143. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
  3144. 	M2_STRONG|M2_STALK|M2_HOSTILE, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR,
  3145. 	CLR_WHITE),
  3146. MON("rock troll", S_TROLL,
  3147. 	LVL(9, 12, 0, 0, -3), (G_NOHELL|G_GENO|1),
  3148. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  3149. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3150. 	SIZ(1200, 300, 0, MS_GRUNT, MZ_LARGE), MR_HITASTWO, 0,
  3151. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
  3152. 	M2_STRONG|M2_STALK|M2_HOSTILE|M2_COLLECT,
  3153. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_CYAN),
  3154. MON("two-headed troll", S_TROLL, 
  3155. 	LVL(10, 12, 8, 0, -3), (G_NOHELL|G_GENO|1),
  3156. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  3157. 	  ATTK(AT_BITE, AD_PHYS, 1, 10), ATTK(AT_BITE, AD_PHYS, 1, 10),
  3158. 	  NO_ATTK, NO_ATTK),
  3159. 	SIZ(1200, 300, 0, MS_GRUNT, MZ_LARGE), MR_HITASTWO, 0,
  3160. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
  3161. 	M2_STRONG|M2_STALK|M2_HOSTILE|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, 
  3162. 	CLR_GREEN),
  3163. MON("water troll", S_TROLL,
  3164. 	LVL(11, 14, 4, 40, -3), (G_NOGEN|G_GENO),
  3165. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  3166. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3167. 	SIZ(1200, 350, 0, MS_GRUNT, MZ_LARGE), MR_HITASTWO, 0,
  3168. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE|M1_SWIM,
  3169. 	M2_STRONG|M2_STALK|M2_HOSTILE, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR,
  3170. 	CLR_BLUE),
  3171. MON("Olog-hai", S_TROLL,
  3172. 	LVL(13, 12, -4, 0, -7), (G_NOHELL|G_GENO|1),
  3173. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  3174. 	  ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3175. 	SIZ(1500, 400, 0, MS_GRUNT, MZ_LARGE), MR_HITASTWO, 0,
  3176. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
  3177. 	M2_STRONG|M2_STALK|M2_HOSTILE|M2_COLLECT,
  3178. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, HI_LORD),
  3179. MON("black troll", S_TROLL, 
  3180. 	LVL(17, 12, -4, 0, -7), (G_HELL|G_GENO|1),
  3181. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 8),
  3182. 	  ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3183. 	SIZ(1500, 400, 0, MS_GRUNT, MZ_LARGE), MR_HITASTHREE, 0,
  3184. 	M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
  3185. 	M2_STRONG|M2_STALK|M2_HOSTILE|M2_COLLECT,
  3186. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  3187. /*
  3188. * Umber hulk
  3189. */
  3190. MON("umber hulk", S_UMBER,
  3191. 	LVL(9, 6, 2, 25, 0), (G_NOHELL|G_GENO|2),
  3192. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  3193. 	  ATTK(AT_BITE, AD_PHYS, 2, 5), ATTK(AT_GAZE, AD_CONF, 0, 0),
  3194. 	  NO_ATTK, NO_ATTK),
  3195. 	SIZ(1200, 500, 0, MS_SILENT, MZ_LARGE), MR_HITASONE, 0,
  3196. 	M1_TUNNEL|M1_CARNIVORE, M2_STRONG, M3_INFRAVISIBLE, CLR_BROWN),
  3197. MON("water hulk", S_UMBER, 
  3198. 	LVL(11, 6, 2, 25, 0), (G_HELL|G_GENO|1),
  3199. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  3200. 	  ATTK(AT_BITE, AD_PHYS, 2, 5), ATTK(AT_GAZE, AD_CONF, 0, 0),
  3201. 	  NO_ATTK, NO_ATTK),
  3202. 	SIZ(1200, 500, 0, MS_SILENT, MZ_LARGE), MR_HITASONE, 0,
  3203. 	M1_SWIM|M1_TUNNEL|M1_CARNIVORE, M2_STRONG, 0, CLR_GREEN),
  3204. /*
  3205. * Vampires
  3206. */
  3207. MON("vampire", S_VAMPIRE,
  3208. 	LVL(10, 12, 1, 25, -8), (G_GENO|G_NOCORPSE|2),
  3209. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_DRLI, 1, 6),
  3210. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3211. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON|MR_PLUSTWO, 0,
  3212. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN|M1_CARNIVORE,
  3213. 	M2_NOPOLY|M2_UNDEAD|M2_VAMPIRE|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY,
  3214. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_RED),
  3215. MON("vampire lord", S_VAMPIRE,
  3216. 	LVL(12, 14, 0, 50, -9), (G_GENO|G_NOCORPSE|2),
  3217. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_BITE, AD_DRLI, 1, 8),
  3218. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3219. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON|MR_PLUSTHREE, 0,
  3220. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN|M1_CARNIVORE,
  3221. 	M2_UNDEAD|M2_VAMPIRE|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_LORD|M2_MALE,
  3222. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_BLUE),
  3223. MON("fire vampire", S_VAMPIRE,
  3224. 	LVL(12, 24, 0, 50, -5), (G_GENO|G_NOCORPSE|1),
  3225. 	  A(ATTK(AT_CLAW, AD_FIRE, 2, 4), ATTK(AT_CLAW, AD_FIRE, 2, 4),
  3226. 	  ATTK(AT_BITE, AD_DRLI, 2, 4), ATTK(AT_TUCH, AD_DREN, 2, 4),
  3227. 	  ATTK(AT_MAGC, AD_FIRE, 2, 12), NO_ATTK),
  3228. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_SLEEP|MR_POISON|MR_COLD|MR_FIRE, 0,
  3229. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN|M1_CARNIVORE,
  3230. 	M2_VAMPIRE|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_NEUTER,
  3231. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_RED),
  3232. MON("star vampire", S_VAMPIRE,
  3233. 	LVL(18, 18, -5, 60, -5), (G_GENO|G_NOCORPSE|1),
  3234. 	A(ATTK(AT_TENT, AD_PHYS, 2, 6), ATTK(AT_TENT, AD_DRLI, 2, 6),
  3235. 	  ATTK(AT_TENT, AD_PHYS, 2, 6), ATTK(AT_TENT, AD_DRLI, 2, 6),
  3236. 	  ATTK(AT_TENT, AD_PHYS, 2, 6), ATTK(AT_TENT, AD_DRLI, 2, 6)),
  3237. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_COLD, 0,
  3238. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN|M1_CARNIVORE,
  3239. 	M2_VAMPIRE|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_NEUTER,
  3240. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_WHITE),
  3241. MON("vampire mage", S_VAMPIRE,
  3242. 	LVL(20, 14, -4, 50, -9), (G_GENO|G_NOCORPSE|1),
  3243. 	A(ATTK(AT_CLAW, AD_DRLI, 2, 8), ATTK(AT_BITE, AD_DRLI, 1, 8),
  3244. 	  ATTK(AT_MAGC, AD_SPEL, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3245. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON|
  3246. 	MR_PLUSTHREE, 0, M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN|M1_CARNIVORE, 
  3247. 	M2_UNDEAD|M2_VAMPIRE|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_LORD|M2_MALE|
  3248. 	M2_MAGIC, M3_INFRAVISIBLE|M3_TRAITOR, HI_ZAP),
  3249. MON("Vlad the Impaler", S_VAMPIRE,
  3250. 	LVL(14, 18, -3, 80, -10), (G_NOGEN|G_NOCORPSE|G_UNIQ),
  3251. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 10), ATTK(AT_BITE, AD_DRLI, 1, 10),
  3252. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3253. 	SIZ(WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP|MR_POISON|MR_PLUSTHREE, 0,
  3254. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN|M1_CARNIVORE,
  3255. 	M2_NOPOLY|M2_UNDEAD|M2_VAMPIRE|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|
  3256. 	  M2_NASTY|M2_PRINCE|M2_MALE,
  3257. 	M3_WAITFORU|M3_WANTSCAND|M3_INFRAVISIBLE, HI_LORD),
  3258. /*
  3259. * Wraiths
  3260. */
  3261. MON("barrow wight", S_WRAITH,
  3262. 	LVL(3, 12, 5, 5, -3), (G_GENO|G_NOCORPSE|1),
  3263. 	A(ATTK(AT_WEAP, AD_DRLI, 0, 0), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  3264. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  3265. 	SIZ(1200, 0, 0, MS_SPELL, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
  3266. 	M1_BREATHLESS|M1_HUMANOID,
  3267. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_COLLECT, 0, CLR_GRAY),
  3268. MON("wight", S_WRAITH, 
  3269. 	LVL(5, 12, 5, 5, -3), (G_NOCORPSE|G_GENO|1),
  3270. 	A(ATTK(AT_CLAW, AD_DRLI, 1, 4), ATTK(AT_BITE, AD_PHYS, 2, 3),
  3271. 	  ATTK(AT_CLAW, AD_DRLI, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  3272. 	SIZ(1200, 0, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
  3273. 	M1_BREATHLESS|M1_HUMANOID,
  3274. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_COLLECT, 0, CLR_GRAY),
  3275. MON("wraith", S_WRAITH,
  3276. 	LVL(6, 12, 4, 15, -6), (G_GENO|2),
  3277. 	A(ATTK(AT_TUCH, AD_DRLI, 1, 6),
  3278. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3279. 	SIZ(0, 0, 0, MS_SILENT, MZ_HUMAN),
  3280. 	MR_COLD|MR_SLEEP|MR_POISON|MR_STONE|MR_PLUSONE|MR_HITASTWO, 0,
  3281. 	M1_BREATHLESS|M1_FLY|M1_HUMANOID|M1_UNSOLID,
  3282. 	M2_UNDEAD|M2_STALK|M2_HOSTILE, 0, CLR_BLACK),
  3283. MON("Nazgul", S_WRAITH,
  3284. 	LVL(13, 12, 0, 25, -17), (G_GENO|G_NOCORPSE|1),
  3285. 	A(ATTK(AT_WEAP, AD_DRLI, 1, 4), ATTK(AT_BREA, AD_SLEE, 2,25),
  3286. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3287. 	SIZ(WT_HUMAN, 0, 0, MS_SPELL, MZ_HUMAN),
  3288. 	MR_COLD|MR_SLEEP|MR_POISON|MR_PLUSONE|MR_HITASTWO, 0, M1_BREATHLESS|M1_HUMANOID,
  3289. 	M2_NOPOLY|M2_UNDEAD|M2_STALK|M2_STRONG|M2_HOSTILE|M2_MALE|M2_COLLECT,
  3290. 	0, HI_LORD),
  3291. /*
  3292. * Xorn
  3293. */
  3294. MON("xorn", S_XORN,
  3295. 	LVL(8, 9,-2, 20, 0), (G_NOHELL|G_GENO|3),
  3296. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  3297. 	  ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_BITE, AD_PHYS, 4, 6),
  3298. 	  NO_ATTK, NO_ATTK),
  3299. 	SIZ(1200, 700, 0, MS_ROAR, MZ_MEDIUM),
  3300. 	MR_FIRE|MR_COLD|MR_STONE|MR_HITASTWO, MR_COLD|MR_FIRE|MR_STONE,
  3301. 	M1_BREATHLESS|M1_WALLWALK|M1_THICK_HIDE|M1_METALLIVORE,
  3302. 	M2_HOSTILE|M2_STRONG, 0, CLR_BROWN),
  3303. /*
  3304. * Apelike beasts
  3305. */
  3306. MON("monkey", S_YETI,
  3307. 	LVL(2, 12, 6, 0, 0), (G_GENO|1),
  3308. 	A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_BITE, AD_PHYS, 1, 3),
  3309. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3310. 	SIZ(100, 50, 0, MS_GROWL, MZ_SMALL), 0, 0,
  3311. 	M1_ANIMAL|M1_HUMANOID|M1_OMNIVORE, 0, M3_INFRAVISIBLE, CLR_GRAY),
  3312. MON("ape", S_YETI,
  3313. 	LVL(4, 12, 6, 0, 0), (G_NOHELL|G_GENO|G_SGROUP|2),
  3314. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  3315. 	  ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3316. 	SIZ(1100, 500, 0, MS_GROWL, MZ_LARGE), 0, 0,
  3317. 	M1_ANIMAL|M1_HUMANOID|M1_OMNIVORE, M2_STRONG, M3_INFRAVISIBLE,
  3318. 	CLR_BROWN),
  3319. MON("owlbear", S_YETI,
  3320. 	LVL(5, 12, 5, 0, 0), (G_NOHELL|G_GENO|3),
  3321. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  3322. 	  ATTK(AT_HUGS, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  3323. 	SIZ(1700, 700, 0, MS_ROAR, MZ_LARGE), MR_HITASONE, 0,
  3324. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
  3325. 	M2_HOSTILE|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE, CLR_BROWN),
  3326. MON("yeti", S_YETI,
  3327. 	LVL(5, 15, 6, 0, 0), (G_NOHELL|G_GENO|2),
  3328. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  3329. 	  ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  3330. 	SIZ(1600, 700, 0, MS_GROWL, MZ_LARGE), MR_COLD|MR_HITASONE, MR_COLD,
  3331. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE, M2_HOSTILE|M2_STRONG,
  3332. 	M3_INFRAVISIBLE, CLR_WHITE),
  3333. MON("carnivorous ape", S_YETI,
  3334. 	LVL(6, 12, 6, 0, 0), (G_NOHELL|G_GENO|1),
  3335. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  3336. 	  ATTK(AT_HUGS, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  3337. 	SIZ(1250, 550, 0, MS_GROWL, MZ_LARGE), 0, 0,
  3338. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE, M2_HOSTILE|M2_STRONG,
  3339. 	M3_INFRAVISIBLE, CLR_BLACK),
  3340. MON("sasquatch", S_YETI,
  3341. 	LVL(7, 15, 6, 0, 2), (G_NOHELL|G_GENO|1),
  3342. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  3343. 	  ATTK(AT_KICK, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  3344. 	SIZ(1550, 750, 0, MS_GROWL, MZ_LARGE), MR_HITASONE, 0,
  3345. 	M1_ANIMAL|M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE, M2_STRONG,
  3346. 	M3_INFRAVISIBLE, CLR_GRAY),
  3347. 	/* Moved from 'z' */
  3348. MON("zruty", S_YETI,
  3349. 	LVL(9, 8, 3, 0, 0), (G_NOHELL|G_GENO|2),
  3350. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  3351. 	  ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3352. 	SIZ(1200, 600, 0, MS_SILENT, MZ_LARGE), MR_HITASONE, 0,
  3353. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
  3354. 	M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_GREEN),
  3355. /*
  3356. * Zombies
  3357. */
  3358. MON("kobold zombie", S_ZOMBIE,
  3359. 	LVL(0, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
  3360. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4),
  3361. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3362. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
  3363. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  3364. 	M2_UNDEAD|M2_STALK|M2_HOSTILE, M3_INFRAVISION, CLR_BROWN),
  3365. MON("gnome zombie", S_ZOMBIE,
  3366. 	LVL(1, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
  3367. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 5),
  3368. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3369. 	SIZ(650, 50, 0, MS_SILENT, MZ_SMALL), MR_COLD|MR_SLEEP|MR_POISON, 0,
  3370. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  3371. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_GNOME, M3_INFRAVISION, CLR_BROWN),
  3372. MON("orc zombie", S_ZOMBIE,
  3373. 	LVL(2, 6, 9, 0, -3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
  3374. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
  3375. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3376. 	SIZ(850, 75, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
  3377. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  3378. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_ORC, M3_INFRAVISION, CLR_GRAY),
  3379. MON("dwarf zombie", S_ZOMBIE,
  3380. 	LVL(2, 6, 9, 0, -3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
  3381. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6),
  3382. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3383. 	SIZ(900, 150, 0, MS_SILENT, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
  3384. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
  3385. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_DWARF, M3_INFRAVISION, CLR_RED),
  3386. MON("elf zombie", S_ZOMBIE,
  3387. 	LVL(3, 6, 9, 0, 3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
  3388. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 7),
  3389. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3390. 	SIZ(WT_ELF, 175, 0, MS_SILENT, MZ_HUMAN),
  3391. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  3392. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3393. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_ELF, M3_INFRAVISION, CLR_GREEN),
  3394. MON("human zombie", S_ZOMBIE,
  3395. 	LVL(4, 6, 8, 0, -3), (G_GENO|G_SGROUP|G_NOCORPSE|1),
  3396. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 8),
  3397. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3398. 	SIZ(WT_HUMAN, 200, 0, MS_SILENT, MZ_HUMAN),
  3399. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  3400. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3401. 	M2_UNDEAD|M2_STALK|M2_HOSTILE, M3_INFRAVISION, HI_DOMESTIC),
  3402. MON("ghoul", S_ZOMBIE,
  3403. 	LVL(5, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
  3404. 	A(ATTK(AT_CLAW, AD_PLYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  3405. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3406. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL),
  3407. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  3408. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS|M1_CARNIVORE,
  3409. 	M2_UNDEAD|M2_WANDER|M2_HOSTILE, M3_INFRAVISION, CLR_BLACK),
  3410. MON("ghoul mage", S_ZOMBIE,
  3411. 	LVL(10, 12, 4, 10, -4), (G_GENO|G_NOCORPSE|1),
  3412. 	A(ATTK(AT_CLAW, AD_PLYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  3413. 	  ATTK(AT_MAGC, AD_SPEL, 6, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3414. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL),
  3415. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  3416. 	M1_HUMANOID|M1_POIS|M1_TUNNEL|M1_NEEDPICK|M1_CARNIVORE,
  3417. 	M2_UNDEAD|M2_WANDER|M2_HOSTILE|M2_COLLECT|M2_MAGIC,
  3418. 	M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  3419. MON("ettin zombie", S_ZOMBIE,
  3420. 	LVL(6, 8, 6, 0, -4), (G_GENO|G_NOCORPSE|1),
  3421. 	A(ATTK(AT_CLAW, AD_PHYS, 1,10), ATTK(AT_CLAW, AD_PHYS, 1,10),
  3422. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3423. 	SIZ(1700, 250, 0, MS_SILENT, MZ_HUGE),
  3424. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  3425. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3426. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_BLUE),
  3427. MON("ghast", S_ZOMBIE, 
  3428. 	LVL(4, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
  3429. 	A(ATTK(AT_CLAW, AD_PLYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  3430. 	  ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3431. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL),
  3432. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  3433. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS|M1_CARNIVORE,
  3434. 	M2_UNDEAD|M2_STALK|M2_HOSTILE, 0, CLR_MAGENTA),
  3435. MON("giant zombie", S_ZOMBIE,
  3436. 	LVL(8, 8, 6, 0, -4), (G_GENO|G_NOCORPSE|1),
  3437. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  3438. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3439. 	SIZ(2050, 375, 0, MS_SILENT, MZ_HUGE),
  3440. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  3441. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3442. 	M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_GIANT|M2_STRONG, M3_INFRAVISION,
  3443. 	CLR_CYAN),
  3444. MON("skeleton", S_ZOMBIE,
  3445. 	LVL(12, 8, 4, 0, 0), (G_NOCORPSE|G_NOGEN),
  3446. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_TUCH, AD_SLOW, 1, 6),
  3447. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3448. 	SIZ(300, 5, 0, MS_BONES, MZ_HUMAN),
  3449. 	MR_COLD|MR_SLEEP|MR_POISON|MR_STONE|MR_PLUSTWO, 0,
  3450. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  3451. 	M2_UNDEAD|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_COLLECT|M2_NASTY,
  3452. 	M3_INFRAVISION, CLR_WHITE),
  3453. MON("ghoul queen", S_ZOMBIE,
  3454. 	LVL(14, 12, 0, 30, -8), (G_GENO|G_NOCORPSE|G_NOGEN|1),
  3455. 	A(ATTK(AT_CLAW, AD_PLYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  3456. 	  ATTK(AT_MAGC, AD_SPEL, 4, 6), ATTK(AT_MAGC, AD_SPEL, 4, 6),
  3457. 	  NO_ATTK, NO_ATTK),
  3458. 	SIZ(400, 50, 0, MS_SILENT, MZ_SMALL),
  3459. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  3460. 	M1_HUMANOID|M1_POIS|M1_TUNNEL|M1_NEEDPICK|M1_CARNIVORE,
  3461. 	M2_UNDEAD|M2_WANDER|M2_HOSTILE|M2_FEMALE|M2_COLLECT|M2_MAGIC,
  3462. 	M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  3463. MON("gug", S_ZOMBIE,
  3464. 	LVL(15, 18, 5, 15, -4), (G_GENO|G_NOCORPSE|1|G_LGROUP),
  3465. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_PHYS, 2, 6),
  3466. 	  ATTK(AT_BITE, AD_PLYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  3467. 	SIZ(1800, 150, 0, MS_SILENT, MZ_MEDIUM),
  3468. 	MR_COLD|MR_SLEEP|MR_POISON, 0,
  3469. 	M1_HUMANOID|M1_POIS|M1_TUNNEL|M1_NEEDPICK|M1_THICK_HIDE|M1_CARNIVORE,
  3470. 	M2_UNDEAD|M2_WANDER|M2_HOSTILE|M2_STRONG|M2_STALK|M2_COLLECT|M2_MAGIC,
  3471. 	M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  3472. /*
  3473. * golems
  3474. */
  3475. MON("straw golem", S_GOLEM,
  3476. 	LVL(3, 12, 10, 0, 0), (G_NOCORPSE|1),
  3477. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 2),
  3478. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3479. 	SIZ(400, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_HITASONE, 0,
  3480. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3481. 	M2_HOSTILE|M2_NEUTER, 0, CLR_YELLOW),
  3482. MON("paper golem", S_GOLEM,
  3483. 	LVL(3, 12, 10, 0, 0), (G_NOCORPSE|1),
  3484. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3),
  3485. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3486. 	SIZ(400, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
  3487. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3488. 	M2_HOSTILE|M2_NEUTER, 0, HI_PAPER),
  3489. MON("wax golem", S_GOLEM,
  3490. 	LVL(3, 12, 9, 0, 0), (G_NOCORPSE|1),
  3491. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_TUCH, AD_FIRE, 1, 4),
  3492. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3493. 	SIZ(400, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
  3494. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3495. 	M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
  3496. MON("plastic golem", S_GOLEM,
  3497. 	LVL(4, 12, 9, 0, 0), (G_NOCORPSE|1),
  3498. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  3499. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3500. 	SIZ(400, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
  3501. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3502. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BLACK),
  3503. MON("rope golem", S_GOLEM,
  3504. 	LVL(4, 9, 8, 0, 0), (G_NOCORPSE|1),
  3505. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  3506. 	  ATTK(AT_HUGS, AD_PHYS, 6, 1), NO_ATTK, NO_ATTK, NO_ATTK),
  3507. 	SIZ(450, 0, 0, MS_SILENT, MZ_LARGE), MR_DEATH|MR_SLEEP|MR_POISON|MR_HITASONE, 0,
  3508. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3509. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
  3510. MON("gold golem", S_GOLEM,
  3511. 	LVL(5, 9, 6, 0, 0), (G_NOCORPSE|1),
  3512. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 3), ATTK(AT_CLAW, AD_PHYS, 2, 3),
  3513. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3514. 	SIZ(450, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_ACID, 0,
  3515. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  3516. 	M2_HOSTILE|M2_NEUTER, 0, HI_GOLD),
  3517. MON("leather golem", S_GOLEM,
  3518. 	LVL(6, 6, 6, 0, 0), (G_NOCORPSE|1),
  3519. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  3520. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3521. 	SIZ(800, 0, 0, MS_SILENT, MZ_LARGE), MR_DEATH|MR_SLEEP|MR_POISON|MR_HITASONE, 0,
  3522. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3523. 	M2_HOSTILE|M2_NEUTER, 0, HI_LEATHER),
  3524. MON("wood golem", S_GOLEM,
  3525. 	LVL(7, 3, 4, 0, 0), (G_NOCORPSE|1),
  3526. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4),
  3527. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3528. 	SIZ(900, 0, 0, MS_SILENT, MZ_LARGE), MR_DEATH|MR_SLEEP|MR_POISON|MR_HITASONE, 0,
  3529. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  3530. 	M2_HOSTILE|M2_NEUTER, 0, HI_WOOD),
  3531. MON("flesh golem", S_GOLEM,
  3532. 	LVL(9, 8, 9, 30, 0), (1),
  3533. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  3534. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3535. 	SIZ(1400, 600, 0, MS_SILENT, MZ_LARGE),
  3536. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_PLUSONE|MR_HITASTWO,
  3537. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON,
  3538. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3539. 	M2_HOSTILE|M2_STRONG, 0, CLR_RED),
  3540. MON("clay golem", S_GOLEM,
  3541. 	LVL(11, 7, 7, 40, 0), (G_NOCORPSE|1),
  3542. 	A(ATTK(AT_CLAW, AD_PHYS, 3,10),
  3543. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3544. 	SIZ(1550, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
  3545. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  3546. 	M2_HOSTILE|M2_STRONG, 0, CLR_BROWN),
  3547. MON("stone golem", S_GOLEM,
  3548. 	LVL(14, 6, 5, 50, 0), (G_NOCORPSE|1),
  3549. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 8),
  3550. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3551. 	SIZ(1900, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_STONE, 0,
  3552. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  3553. 	M2_HOSTILE|M2_STRONG, 0, CLR_GRAY),
  3554. MON("glass golem", S_GOLEM,
  3555. 	LVL(16, 6, 1, 50, 0), (G_NOCORPSE|1),
  3556. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  3557. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3558. 	SIZ(1800, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_ACID, 0,
  3559. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  3560. 	M2_HOSTILE|M2_STRONG, 0, CLR_CYAN),
  3561. MON("iron golem", S_GOLEM,
  3562. 	LVL(18, 6, 3, 60, 0), (G_NOCORPSE|1),
  3563. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_BREA, AD_DRST, 4, 6),
  3564. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3565. 	SIZ(2000, 0, 0, MS_SILENT, MZ_LARGE),
  3566. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  3567. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE|M1_POIS,
  3568. 	M2_HOSTILE|M2_STRONG|M2_COLLECT, 0, HI_METAL),
  3569. MON("Frankenstein's Monster", S_GOLEM,
  3570. 	LVL(20, 8, -5, 50, 0), (G_NOGEN|G_UNIQ),
  3571. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 8), ATTK(AT_CLAW, AD_PHYS, 3, 8),
  3572. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3573. 	SIZ(1400, 600, 0, MS_SILENT, MZ_LARGE),
  3574. 	MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON,
  3575. 	MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON,
  3576. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  3577. 	M2_HOSTILE|M2_STRONG|M2_UNDEAD|M2_NOPOLY|M2_MALE|M2_PNAME, 0, HI_LORD),
  3578. /* [Lethe] Greater golems */
  3579. MON("ruby golem", S_GOLEM,
  3580. 	LVL(24, 12, 3, 60, 0), (G_NOCORPSE|1),
  3581. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_BREA, AD_FIRE, 5, 6),
  3582. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3583. 	SIZ(2000, 0, 0, MS_SILENT, MZ_LARGE),
  3584. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  3585. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE|M1_POIS,
  3586. 	M2_HOSTILE|M2_STRONG|M2_COLLECT|M2_NEUTER, 0, CLR_RED),
  3587. MON("diamond golem", S_GOLEM,
  3588. 	LVL(26, 12, 3, 60, 0), (G_NOCORPSE|1),
  3589. 	A(ATTK(AT_WEAP, AD_PHYS, 5,10), ATTK(AT_BREA, AD_MAGM, 5, 6),
  3590. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3591. 	SIZ(2000, 0, 0, MS_SILENT, MZ_LARGE),
  3592. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  3593. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE|M1_POIS,
  3594. 	M2_HOSTILE|M2_STRONG|M2_COLLECT|M2_NEUTER, 0, CLR_WHITE),
  3595. MON("sapphire golem", S_GOLEM,
  3596. 	LVL(28, 12, 3, 60, 0), (G_NOCORPSE|1),
  3597. 	A(ATTK(AT_WEAP, AD_PHYS, 6,10), ATTK(AT_BREA, AD_ELEC, 5, 8),
  3598. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3599. 	SIZ(2000, 0, 0, MS_SILENT, MZ_LARGE),
  3600. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  3601. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE|M1_POIS,
  3602. 	M2_HOSTILE|M2_STRONG|M2_COLLECT|M2_NEUTER, 0, CLR_BRIGHT_CYAN),
  3603. MON("steel golem", S_GOLEM,
  3604. 	LVL(30, 15, 3, 60, 0), (G_NOCORPSE|1),
  3605. 	A(ATTK(AT_WEAP, AD_PHYS, 6,10), ATTK(AT_BREA, AD_COLD, 5, 8),
  3606. 	  ATTK(AT_NONE, AD_ENCH, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  3607. 	SIZ(2000, 0, 0, MS_SILENT, MZ_LARGE),
  3608. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  3609. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE|M1_POIS,
  3610. 	M2_HOSTILE|M2_STRONG|M2_COLLECT|M2_NEUTER, 0, CLR_BRIGHT_BLUE),
  3611. MON("crystal golem", S_GOLEM,
  3612. 	LVL(32, 15, 3, 60, 0), (G_NOCORPSE|1),
  3613. 	A(ATTK(AT_WEAP, AD_PHYS, 8,12), ATTK(AT_BREA, AD_RBRE, 6, 8),
  3614. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3615. 	SIZ(2000, 0, 0, MS_SILENT, MZ_LARGE),
  3616. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  3617. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE|M1_POIS,
  3618. 	M2_HOSTILE|M2_STRONG|M2_COLLECT|M2_NEUTER, 0, CLR_BRIGHT_BLUE),
  3619. /*
  3620. * humans, including elves and were-critters
  3621. */
  3622. MON("human", S_HUMAN,
  3623. 	LVL(0, 12, 10, 0, 0), G_NOGEN,		/* for corpses */
  3624. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 3), ATTK(AT_WEAP, AD_PHYS, 1, 3),
  3625. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3626. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  3627. 	M1_HUMANOID|M1_OMNIVORE,
  3628. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT,
  3629. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  3630. MON("wererat", S_HUMAN,
  3631. 	LVL(2, 12, 10, 10, -7), (1),
  3632. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  3633. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3634. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
  3635. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
  3636. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT, M3_INFRAVISIBLE,
  3637. 	CLR_BROWN),
  3638. MON("werejackal", S_HUMAN,
  3639. 	LVL(2, 12, 10, 10, -7), (1),
  3640. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  3641. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3642. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
  3643. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
  3644. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT, M3_INFRAVISIBLE,
  3645. 	CLR_RED),
  3646. MON("werewolf", S_HUMAN,
  3647. 	LVL(5, 12, 10, 20, -7), (1),
  3648. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  3649. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3650. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
  3651. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
  3652. 	M2_NOPOLY|M2_WERE|M2_HUMAN|M2_COLLECT,
  3653. 	M3_INFRAVISIBLE, CLR_ORANGE),
  3654. MON("werepanther", S_HUMAN, 
  3655. 	LVL(5, 15, MARM(10,6), 20, -7), (1),
  3656. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK,
  3657. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  3658. 	SIZ(WT_HUMAN, 400, 0, MS_GROWL, MZ_HUMAN), MR_POISON, 0,
  3659. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
  3660. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT,
  3661. 	M3_INFRAVISIBLE, CLR_BLACK),
  3662. MON("weretiger", S_HUMAN, 
  3663. 	LVL(7, 12, MARM(10,5), 20, -7), (1),
  3664. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK,
  3665. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  3666. 	SIZ(WT_HUMAN, 400, 0, MS_GROWL, MZ_HUMAN), MR_POISON, 0,
  3667. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
  3668. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT,
  3669. 	M3_INFRAVISIBLE, CLR_YELLOW),
  3670. MON("weresnake", S_HUMAN, 
  3671. 	LVL(9, 12, MARM(10,3), 20, -7), (0),
  3672. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK,
  3673. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  3674. 	SIZ(WT_HUMAN, 400, 0, MS_HISS, MZ_HUMAN), MR_POISON, 0,
  3675. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
  3676. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT,
  3677. 	0, CLR_BROWN),
  3678. MON("werespider", S_HUMAN, 
  3679. 	LVL(9, 12, MARM(10,3), 20, -7), (0),
  3680. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK,
  3681. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  3682. 	SIZ(WT_HUMAN, 400, 0, MS_HISS, MZ_HUMAN), MR_POISON, 0,
  3683. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
  3684. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT,
  3685. 	0, CLR_BLACK),
  3686. MON("gibberling", S_HUMAN, 
  3687. 	LVL(6, 12, 10, 0, -2), (G_HELL|G_GENO|G_VLGROUP|1),
  3688. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK,
  3689. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  3690. 	SIZ(WT_HUMAN, 400, 0, MS_WAIL, MZ_HUMAN), 0, 0, 
  3691. 	M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_HUMAN|M2_COLLECT, 
  3692. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_GRAY),
  3693. MON("grimlock", S_HUMAN, 
  3694. 	LVL(8, 12, 5, 0, -2), (G_HELL|G_GENO|G_VLGROUP|1),
  3695. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK,
  3696. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  3697. 	SIZ(WT_HUMAN, 400, 0, MS_GRUNT, MZ_HUMAN),
  3698. 	0, 0, M1_HUMANOID|M1_OMNIVORE|M1_NOEYES,
  3699. 	M2_NOPOLY|M2_HUMAN|M2_COLLECT, M3_INFRAVISIBLE|M3_TRAITOR, CLR_BLACK),
  3700. /* [ALI] Elves in the Slash'EM universe are based on Tolkien
  3701. * and are lawful rather than chaotic. To quote Elrond from the FotR:
  3702. *   "The Three were not made by Sauron, nor did he ever touch
  3703. *    them. But of them it is not permitted to speak. So much
  3704. *    only in this hour of doubt I may now say. They are not
  3705. *    idle. But they were not made as weapons of war or conquest:
  3706. *    that is not their power. Those who made them did not
  3707. *    desire strength or domination or hoarded wealth, but
  3708. *    understanding, making, and healing, to preserve all things
  3709. *    unstained. These things the Elves of Middle-earth have in
  3710. *    some measure gained, though with sorrow."
  3711. */
  3712. MON("elf", S_HUMAN,
  3713. 	LVL(10, 12, 10, 2, 3), G_NOGEN,		/* for corpses */
  3714. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_WEAP, AD_PHYS, 1, 4),
  3715. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3716. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  3717. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  3718. 	M2_NOPOLY|M2_ELF|M2_STRONG|M2_COLLECT, M3_INFRAVISION|M3_INFRAVISIBLE,
  3719. 	HI_DOMESTIC),
  3720. MON("Woodland-elf", S_HUMAN,
  3721. 	LVL(4, 12, 10, 10, 5), (G_GENO|G_SGROUP|3),
  3722. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  3723. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3724. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  3725. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  3726. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GREEN),
  3727. MON("Green-elf", S_HUMAN,
  3728. 	LVL(5, 12, 10, 10, 6), (G_GENO|G_SGROUP|3),
  3729. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  3730. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3731. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  3732. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  3733. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BRIGHT_GREEN),
  3734. MON("Grey-elf", S_HUMAN,
  3735. 	LVL(6, 12, 10, 10, 7), (G_GENO|G_SGROUP|3),
  3736. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  3737. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3738. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  3739. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  3740. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
  3741. MON("High-elf", S_HUMAN,
  3742. 	LVL(7, 12, 10, 10, 9), G_NOGEN,
  3743. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_MAGC, AD_CLRC, 2, 17),
  3744. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3745. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  3746. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  3747. 	M2_ELF|M2_STRONG|M2_COLLECT,
  3748. 	M3_INFRAVISION|M3_INFRAVISIBLE, CLR_WHITE),
  3749. MON("elf-lord", S_HUMAN,
  3750. 	LVL(8, 12, 10, 20, 9), (G_GENO|G_SGROUP|2),
  3751. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  3752. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3753. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  3754. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  3755. 	M2_ELF|M2_STRONG|M2_LORD|M2_MALE|M2_COLLECT,
  3756. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BRIGHT_BLUE),
  3757. MON("drow", S_HUMAN, 
  3758. 	LVL(6, 12, MARM(4,0), 60, -9), (G_GENO|G_SGROUP|1),
  3759. 	A(ATTK(AT_WEAP, AD_SLEE, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  3760. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3761. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  3762. 	M1_HUMANOID|M1_OMNIVORE,
  3763. 	M2_NOPOLY|M2_ELF|M2_STRONG|M2_LORD|M2_MALE|M2_COLLECT|M2_HOSTILE,
  3764. 	M3_TRAITOR, CLR_BLACK),
  3765. MON("Elvenking", S_HUMAN,
  3766. 	LVL(9, 12, 10, 25, 10), (G_GENO|1),
  3767. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  3768. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3769. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  3770. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  3771. 	M2_ELF|M2_STRONG|M2_PRINCE|M2_MALE|M2_COLLECT,
  3772. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  3773. MON("doppelganger", S_HUMAN,
  3774. 	LVL(9, 12, 5, 20, 0), (G_GENO|1),
  3775. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 12),
  3776. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3777. 	SIZ(WT_HUMAN, 400, 0, MS_IMITATE, MZ_HUMAN), MR_SLEEP, 0,
  3778. 	M1_HUMANOID|M1_OMNIVORE,
  3779. 	M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_COLLECT,
  3780. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  3781. MON("mugger", S_HUMAN, 
  3782. 	LVL(2, 12, MARM(10,7), 0, -8), (G_GENO|G_NOGEN),
  3783. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4), NO_ATTK,
  3784. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3785. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN),
  3786. 	0, 0, M1_HUMANOID|M1_OMNIVORE,
  3787. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_HOSTILE|M2_COLLECT, 
  3788. 	M3_INFRAVISIBLE|M3_TRAITOR, CLR_BLACK),
  3789. MON("nurse", S_HUMAN,
  3790. 	LVL(11, 6, 0, 0, 0), (G_GENO|3),
  3791. 	A(ATTK(AT_CLAW, AD_HEAL, 2, 6),
  3792. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3793. 	SIZ(WT_HUMAN, 400, 0, MS_NURSE, MZ_HUMAN), MR_POISON, MR_POISON,
  3794. 	M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_HUMAN|M2_HOSTILE,
  3795. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  3796. MON("gypsy", S_HUMAN,
  3797. 	LVL(20, 12, -2, 90, 0), (G_GENO|2),
  3798. 	A(ATTK(AT_CLAW, AD_CURS, 2,12), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  3799. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3800. 	SIZ(WT_HUMAN, 400, sizeof(struct egyp), MS_GYPSY, MZ_HUMAN),
  3801. 	MR_DEATH|MR_SLEEP|MR_POISON, 0,
  3802. 	M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT|M1_OMNIVORE,
  3803. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_GREEDY|M2_MAGIC,
  3804. 	M3_TRAITOR, HI_DOMESTIC),
  3805. MON("shopkeeper", S_HUMAN,
  3806. 	LVL(24, 18, -6, 50, 0), G_NOGEN,
  3807. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4),
  3808. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3809. 	SIZ(WT_HUMAN, 400, sizeof(struct eshk), MS_SELL, MZ_HUMAN), 0, 0,
  3810. 	M1_HUMANOID|M1_OMNIVORE,
  3811. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
  3812. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  3813. #ifdef BLACKMARKET
  3814. /* the black marketeer's speed (24) matches the speed boots he's wearing */
  3815. MON("black marketeer", S_HUMAN, 
  3816. 	LVL(25, 24, -8, 50, -2), G_NOGEN,
  3817. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 10), NO_ATTK, NO_ATTK,
  3818. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  3819. 	SIZ(WT_HUMAN, 400, sizeof(struct eshk), MS_SELL, MZ_HUMAN),
  3820. 	MR_DEATH|MR_FIRE|MR_COLD|MR_SLEEP|MR_ELEC|MR_STONE|MR_HITASFOUR,
  3821. 	MR_SLEEP, M1_HUMANOID|M1_OMNIVORE,
  3822. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|
  3823. 	M2_COLLECT|M2_MAGIC|M2_MALE, M3_INFRAVISIBLE, CLR_BLACK),
  3824. #endif /* BLACKMARKET */
  3825. MON("guard", S_HUMAN,
  3826. 	LVL(12, 12, 10, 40, 10), G_NOGEN,
  3827. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10),
  3828. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3829. 	SIZ(WT_HUMAN, 400, sizeof(struct egd), MS_GUARD, MZ_HUMAN), 0, 0,
  3830. 	M1_HUMANOID|M1_OMNIVORE,
  3831. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  3832. 	M3_INFRAVISIBLE, CLR_BLUE),
  3833. MON("prisoner", S_HUMAN,
  3834. 	LVL(12, 12, 10, 0, 0), G_NOGEN,          /* for special levels */
  3835. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  3836. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3837. 	SIZ(WT_HUMAN, 400, 0, MS_DJINNI, MZ_HUMAN), 0, 0,
  3838. 	M1_HUMANOID|M1_OMNIVORE,
  3839. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  3840. 	M3_INFRAVISIBLE|M3_CLOSE, HI_DOMESTIC),
  3841. MON("Oracle", S_HUMAN,
  3842. 	LVL(12, 0, 0, 50, 0), (G_NOGEN|G_UNIQ),
  3843. 	A(ATTK(AT_NONE, AD_MAGM, 0, 4),
  3844. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3845. 	SIZ(WT_HUMAN, 400, 0, MS_ORACLE, MZ_HUMAN), 0, 0,
  3846. 	M1_HUMANOID|M1_OMNIVORE,
  3847. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_FEMALE, M3_INFRAVISIBLE, HI_ZAP),
  3848. MON("aligned priest", S_HUMAN,
  3849. 	LVL(12, 12, 10, 50, 0), G_NOGEN,
  3850. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_KICK, AD_PHYS, 1, 4),
  3851. 	  ATTK(AT_MAGC, AD_CLRC, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  3852. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN),
  3853. 	MR_ELEC, 0, M1_HUMANOID|M1_OMNIVORE,
  3854. 	M2_NOPOLY|M2_HUMAN|M2_LORD|M2_PEACEFUL|M2_COLLECT, M3_INFRAVISIBLE,
  3855. 	CLR_WHITE),
  3856. MON("high priest", S_HUMAN,
  3857. 	LVL(25, 15, 7, 70, 0), (G_NOGEN|G_UNIQ),
  3858. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_KICK, AD_PHYS, 2, 8),
  3859. 	  ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8),
  3860. 	  NO_ATTK, NO_ATTK),
  3861. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN),
  3862. 	MR_FIRE|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  3863. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
  3864. 	M2_NOPOLY|M2_HUMAN|M2_MINION|M2_PRINCE|M2_NASTY|M2_COLLECT|M2_MAGIC,
  3865. 	M3_INFRAVISIBLE, CLR_WHITE),
  3866. /* #ifndef MUSE
  3867. MON("unarmored watchman", S_HUMAN, 
  3868. 	LVL(6, 4, 10, 0, -2), G_NOGEN,
  3869. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK,
  3870. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  3871. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN),
  3872. 	0, 0, M1_HUMANOID|M1_OMNIVORE,
  3873. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_PEACEFUL|M2_STRONG|
  3874. 	M2_COLLECT, M3_INFRAVISIBLE, CLR_BROWN),
  3875. #endif */
  3876. /* # ifndef MUSE
  3877. MON("unarmored soldier", S_HUMAN, 
  3878. 	LVL(6, 4, 10, 0, -2), G_NOGEN,
  3879. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK,
  3880. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  3881. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN),
  3882. 	0, 0, M1_HUMANOID|M1_OMNIVORE,
  3883. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|
  3884. 	M2_COLLECT, M3_INFRAVISIBLE, CLR_BROWN),
  3885. # endif */
  3886. MON("soldier", S_HUMAN,
  3887. 	LVL(6, 10, 10, 0, -2), (G_SGROUP|G_GENO|1),
  3888. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  3889. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3890. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  3891. 	M1_HUMANOID|M1_OMNIVORE,
  3892. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
  3893. 	M3_INFRAVISIBLE, CLR_GRAY),
  3894. MON("sergeant", S_HUMAN,
  3895. 	LVL(8, 10, 10, 5, -3), (G_SGROUP|G_GENO|1),
  3896. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
  3897. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3898. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  3899. 	M1_HUMANOID|M1_OMNIVORE,
  3900. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
  3901. 	M3_INFRAVISIBLE, CLR_RED),
  3902. MON("lieutenant", S_HUMAN,
  3903. 	LVL(10, 10, 10, 15, -4), (G_GENO|1),
  3904. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 3, 4),
  3905. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3906. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  3907. 	M1_HUMANOID|M1_OMNIVORE,
  3908. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
  3909. 	M3_INFRAVISIBLE, CLR_GREEN),
  3910. MON("captain", S_HUMAN,
  3911. 	LVL(12, 10, 10, 15, -5), (G_GENO|1),
  3912. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4),
  3913. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3914. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  3915. 	M1_HUMANOID|M1_OMNIVORE,
  3916. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
  3917. 	M3_INFRAVISIBLE, CLR_BLUE),
  3918. 	/* Keep these separate - some of the mkroom code assumes that
  3919. 	 * all the soldiers are contiguous.
  3920. 	 */
  3921. MON("watchman", S_HUMAN,
  3922. 	LVL(6, 10, 10, 0, -2), (G_SGROUP|G_NOGEN|G_GENO|1),
  3923. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  3924. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3925. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  3926. 	M1_HUMANOID|M1_OMNIVORE,
  3927. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  3928. 	M3_INFRAVISIBLE, CLR_GRAY),
  3929. MON("watch captain", S_HUMAN,
  3930. 	LVL(10, 10, 10, 15, -4), (G_NOGEN|G_GENO|1),
  3931. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 3, 4),
  3932. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3933. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  3934. 	M1_HUMANOID|M1_OMNIVORE,
  3935. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  3936. 	M3_INFRAVISIBLE, CLR_GREEN),
  3937. 	/* Unique humans not tied to quests.
  3938. 	 */
  3939. MON("Medusa", S_HUMAN,
  3940. 	LVL(20, 12, 2, 50, -15), (G_NOGEN|G_UNIQ),
  3941. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 1, 8),
  3942. 	  ATTK(AT_GAZE, AD_STON, 0, 0), ATTK(AT_BITE, AD_DRST, 1, 6),
  3943. 	  NO_ATTK, NO_ATTK),
  3944. 	SIZ(WT_HUMAN, 400, 0, MS_HISS, MZ_LARGE),
  3945. 	MR_POISON|MR_STONE, MR_POISON|MR_STONE,
  3946. 	M1_FLY|M1_SWIM|M1_AMPHIBIOUS|M1_HUMANOID|M1_POIS|M1_OMNIVORE,
  3947. 	M2_NOPOLY|M2_HOSTILE|M2_STRONG|M2_PNAME|M2_FEMALE,
  3948. 	M3_WAITFORU|M3_INFRAVISIBLE, CLR_BRIGHT_GREEN),
  3949. MON("Wizard of Yendor", S_HUMAN,
  3950. 	LVL(30, 12, -8, 100, A_NONE), (G_NOGEN|G_UNIQ),
  3951. 	A(ATTK(AT_CLAW, AD_SAMU, 2,12), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  3952. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3953. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_HUMAN),
  3954. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
  3955. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT|
  3956. 	  M1_TPORT_CNTRL|M1_OMNIVORE,
  3957. 	M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_NASTY|
  3958. 	  M2_PRINCE|M2_MALE|M2_MAGIC,
  3959. 	M3_COVETOUS|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
  3960. MON("Croesus", S_HUMAN,
  3961. 	LVL(20, 15, 0, 40, 15), (G_UNIQ|G_NOGEN),
  3962. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10),
  3963. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3964. 	SIZ(WT_HUMAN, 400, 0, MS_GUARD, MZ_HUMAN), 0, 0,
  3965. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
  3966. 	M2_NOPOLY|M2_HUMAN|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_PNAME|
  3967. 	  M2_PRINCE|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_MAGIC,
  3968. 	M3_INFRAVISIBLE, HI_LORD),
  3969. #ifdef CHARON
  3970. MON("Charon", S_HUMAN,
  3971. 	LVL(76, 18, -5, 120, 0), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  3972. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_TUCH, AD_PLYS, 1, 8),
  3973. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3974. 	SIZ(WT_HUMAN, 400, 0, MS_FERRY, MZ_HUMAN),
  3975. 	MR_FIRE|MR_COLD|MR_POISON|MR_STONE, 0,
  3976. 	M1_BREATHLESS|M1_SEE_INVIS|M1_HUMANOID,
  3977. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_PNAME|M2_MALE|M2_GREEDY|M2_COLLECT,
  3978. 	M3_INFRAVISIBLE, CLR_WHITE),
  3979. #endif
  3980. /*
  3981. * ghosts
  3982. */
  3983. MON("shadow", S_GHOST, 
  3984. 	LVL(4, 9, 4, 0, 0), (G_NOCORPSE|G_NOGEN),
  3985. 	A(ATTK(AT_TUCH, AD_DRST, 1, 4), ATTK(AT_TUCH, AD_COLD, 1, 4),
  3986. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3987. 	SIZ(WT_HUMAN, 0, 0, MS_WAIL, MZ_HUMAN),
  3988. 	MR_COLD|MR_DISINT|MR_SLEEP|MR_POISON|MR_STONE, 0,
  3989. 	M1_FLY|M1_BREATHLESS|M1_WALLWALK|M1_HUMANOID|M1_SEE_INVIS,
  3990. 	M2_NOPOLY|M2_UNDEAD|M2_WANDER|M2_HOSTILE|M2_NASTY,
  3991. 	0, CLR_BLACK),
  3992. MON("ghost", S_GHOST,
  3993. 	LVL(10, 3, -5, 50, -5), (G_NOCORPSE|G_NOGEN),
  3994. 	A(ATTK(AT_TUCH, AD_PHYS, 1, 1),
  3995. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  3996. 	SIZ(WT_HUMAN, 0, 0, MS_SILENT, MZ_HUMAN),
  3997. 	MR_COLD|MR_DISINT|MR_SLEEP|MR_POISON|MR_STONE, 0,
  3998. 	M1_FLY|M1_BREATHLESS|M1_WALLWALK|M1_HUMANOID|M1_UNSOLID,
  3999. 	M2_NOPOLY|M2_UNDEAD|M2_STALK|M2_HOSTILE, M3_INFRAVISION, CLR_GRAY),
  4000. MON("shade", S_GHOST,
  4001. 	LVL(12, 10, 10, 0, 0), (G_NOCORPSE|G_NOGEN),
  4002. 	A(ATTK(AT_TUCH, AD_PLYS, 2, 6), ATTK(AT_TUCH, AD_SLOW, 1, 6),
  4003. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4004. 	SIZ(WT_HUMAN, 0, 0, MS_WAIL, MZ_HUMAN),
  4005. 	MR_COLD|MR_DISINT|MR_SLEEP|MR_POISON|MR_STONE, 0,
  4006. 	M1_FLY|M1_BREATHLESS|M1_WALLWALK|M1_HUMANOID|M1_UNSOLID|M1_SEE_INVIS,
  4007. 	M2_NOPOLY|M2_UNDEAD|M2_WANDER|M2_STALK|M2_HOSTILE|M2_NASTY,
  4008. 	M3_INFRAVISION, CLR_BLACK),
  4009. /*
  4010. * (major) demons
  4011. */
  4012. MON("water demon", S_DEMON,
  4013. 	LVL(8, 12,-4, 30, -7), (G_NOCORPSE|G_NOGEN),
  4014. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  4015. 	  ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK),
  4016. 	SIZ(WT_HUMAN, 400, 0, MS_DJINNI, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  4017. 	M1_HUMANOID|M1_POIS|M1_SWIM,
  4018. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
  4019. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
  4020. 	/* standard demons & devils
  4021. 	 */
  4022. MON("horned devil", S_DEMON,
  4023. 	LVL(6, 9, -5, 50, 11), (G_HELL|G_NOCORPSE|2),
  4024. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  4025. 	  ATTK(AT_BITE, AD_PHYS, 2, 3), ATTK(AT_STNG, AD_PHYS, 1, 3),
  4026. 	  NO_ATTK, NO_ATTK),
  4027. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  4028. 	M1_POIS|M1_THICK_HIDE,
  4029. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR,
  4030. 	CLR_BROWN),
  4031. MON("spined devil", S_DEMON, 
  4032. 	LVL(5, 18, 1, 45, 7), (G_HELL|G_LGROUP|G_NOCORPSE|2),
  4033. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  4034. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4035. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN),
  4036. 	MR_DEATH|MR_FIRE|MR_POISON|MR_PLUSONE, 0, 
  4037. 	M1_FLY|M1_POIS|M1_THICK_HIDE,
  4038. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_TRAITOR, CLR_GREEN),
  4039. MON("bearded devil", S_DEMON, 
  4040. 	LVL(8, 15, 1, 45, 7), (G_HELL|G_NOCORPSE|1),
  4041. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 10), ATTK(AT_WEAP, AD_PHYS, 1, 10),
  4042. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4043. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN),
  4044. 	MR_DEATH|MR_FIRE|MR_POISON|MR_PLUSONE|MR_HITASTWO, 0, 
  4045. 	M1_POIS|M1_THICK_HIDE,
  4046. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_TRAITOR, CLR_BLACK),
  4047. #ifdef SEDUCE
  4048. # define SEDUCTION_ATTACKS \
  4049. 	A(ATTK(AT_BITE, AD_SSEX, 0, 0), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
  4050. 	  ATTK(AT_CLAW, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK)
  4051. #else
  4052. # define SEDUCTION_ATTACKS \
  4053. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
  4054. 	  ATTK(AT_BITE, AD_DRLI, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK)
  4055. #endif
  4056. MON("succubus", S_DEMON,
  4057. 	LVL(6, 12, 0, 70, -9), (G_NOCORPSE|2),
  4058. 	SEDUCTION_ATTACKS,
  4059. 	SIZ(WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  4060. 	M1_HUMANOID|M1_FLY|M1_POIS,
  4061. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE,
  4062. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_GRAY),
  4063. MON("incubus", S_DEMON,
  4064. 	LVL(6, 12, 0, 70, -9), (G_NOCORPSE|2),
  4065. 	SEDUCTION_ATTACKS,
  4066. 	SIZ(WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  4067. 	M1_HUMANOID|M1_FLY|M1_POIS,
  4068. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_MALE,
  4069. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_GRAY),
  4070. #undef SEDUCTION_ATTACKS
  4071. /* Used by AD&D for a type of demon, originally one of the Furies */
  4072. /* and spelled this way */
  4073. MON("erinys", S_DEMON,
  4074. 	LVL(7, 12, 2, 30, 10), (G_HELL|G_NOCORPSE|G_SGROUP|1),
  4075. 	A(ATTK(AT_WEAP, AD_DRST, 2, 4),
  4076. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4077. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  4078. 	M1_HUMANOID|M1_POIS,
  4079. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_FEMALE|
  4080. 	  M2_COLLECT,
  4081. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  4082. MON("barbed devil", S_DEMON,
  4083. 	LVL(8, 12, 0, 35, 8), (G_HELL|G_NOCORPSE|G_SGROUP|2),
  4084. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  4085. 	  ATTK(AT_STNG, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  4086. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  4087. 	M1_POIS|M1_THICK_HIDE, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
  4088. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_RED),
  4089. MON("marilith", S_DEMON,
  4090. 	LVL(7, 12, -6, 80, -12), (G_HELL|G_NOCORPSE|1),
  4091. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  4092. 	  ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  4093. 	  ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4)),
  4094. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  4095. 	M1_HUMANOID|M1_SLITHY|M1_SEE_INVIS|M1_POIS,
  4096. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE|M2_COLLECT,
  4097. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_RED),
  4098. MON("bar-lgura", S_DEMON, 
  4099. 	LVL(7, 15, -3, 45, -9), (G_HELL|G_NOCORPSE|G_SGROUP|1),
  4100. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  4101. 	  ATTK(AT_BITE, AD_PHYS, 2, 12), NO_ATTK, NO_ATTK, NO_ATTK),
  4102. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE),
  4103. 	MR_DEATH|MR_FIRE|MR_POISON|MR_PLUSONE|MR_HITASTWO, 0, M1_POIS,
  4104. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
  4105. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_ORANGE),
  4106. MON("chasme", S_DEMON, 
  4107. 	LVL(8, 21, -1, 40, -9), (G_HELL|G_NOCORPSE|G_SGROUP|1),
  4108. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_PHYS, 2, 6),
  4109. 	  ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_GAZE, AD_SLEE, 1, 6),
  4110. 	  NO_ATTK, NO_ATTK),
  4111. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_MEDIUM),
  4112. 	MR_DEATH|MR_FIRE|MR_POISON|MR_PLUSONE|MR_HITASTWO, 0, M1_POIS|M1_FLY,
  4113. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, 
  4114. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_CYAN),
  4115. MON("vrock", S_DEMON,
  4116. 	LVL(8, 12, 0, 50, -9), (G_HELL|G_NOCORPSE|G_SGROUP|2),
  4117. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  4118. 	  ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_CLAW, AD_PHYS, 1, 8),
  4119. 	  ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK),
  4120. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  4121. 	M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
  4122. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_RED),
  4123. MON("babau", S_DEMON, 
  4124. 	LVL(9, 15, -3, 50, -9), (G_HELL|G_NOCORPSE|G_SGROUP|1),
  4125. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  4126. 	  ATTK(AT_GAZE, AD_DRST, 1, 8), ATTK(AT_BITE, AD_PHYS, 1, 8),
  4127. 	  NO_ATTK, NO_ATTK),
  4128. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE),
  4129. 	MR_DEATH|MR_FIRE|MR_POISON|MR_PLUSONE|MR_HITASTWO, 0, M1_POIS,
  4130. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, 
  4131. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  4132. MON("hezrou", S_DEMON,
  4133. 	LVL(9, 6, -2, 55, -10), (G_HELL|G_NOCORPSE|G_SGROUP|2),
  4134. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  4135. 	  ATTK(AT_BITE, AD_PHYS, 4, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  4136. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  4137. 	M1_HUMANOID|M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
  4138. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_RED),
  4139. MON("bone devil", S_DEMON,
  4140. 	LVL(9, 15, -1, 40, -9), (G_HELL|G_NOCORPSE|G_SGROUP|2),
  4141. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_STNG, AD_DRST, 2, 4),
  4142. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4143. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  4144. 	M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
  4145. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_GRAY),
  4146. MON("ice devil", S_DEMON,
  4147. 	LVL(11, 6, -4, 55, -12), (G_HELL|G_NOCORPSE|2),
  4148. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  4149. 	  ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_STNG, AD_COLD, 3, 4),
  4150. 	  NO_ATTK, NO_ATTK),
  4151. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE),
  4152. 	MR_FIRE|MR_COLD|MR_POISON, 0, M1_SEE_INVIS|M1_POIS,
  4153. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR,
  4154. 	CLR_WHITE),
  4155. MON("nalfeshnee", S_DEMON,
  4156. 	LVL(11, 9, -1, 65, -11), (G_HELL|G_NOCORPSE|1),
  4157. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  4158. 	  ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  4159. 	  NO_ATTK, NO_ATTK),
  4160. 	SIZ(WT_HUMAN, 400, 0, MS_SPELL, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  4161. 	M1_HUMANOID|M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
  4162. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_RED),
  4163. MON("nabassu", S_DEMON, 
  4164. 	LVL(9, 15, -5, 50, -11), (G_HELL|G_NOCORPSE|1),
  4165. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  4166. 	  ATTK(AT_BITE, AD_DRLI, 3, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  4167. 	  NO_ATTK, NO_ATTK),
  4168. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE),
  4169. 	MR_DEATH|MR_FIRE|MR_POISON|MR_PLUSONE|MR_HITASTHREE, 0, 
  4170. 	M1_HUMANOID|M1_POIS|M1_FLY,
  4171. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, 
  4172. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_BLACK),
  4173. MON("pit fiend", S_DEMON,
  4174. 	LVL(13, 6, -3, 65, -13), (G_HELL|G_NOCORPSE|2),
  4175. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 2), ATTK(AT_WEAP, AD_PHYS, 4, 2),
  4176. 	  ATTK(AT_HUGS, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  4177. 	SIZ(WT_HUMAN, 400, 0, MS_GROWL, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  4178. 	M1_SEE_INVIS|M1_POIS,
  4179. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
  4180. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_RED),
  4181. MON("balrog", S_DEMON,
  4182. 	LVL(16, 5, -2, 75, -14), (G_HELL|G_NOCORPSE|1),
  4183. 	A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
  4184. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4185. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  4186. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
  4187. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
  4188. 	M3_INFRAVISIBLE|M3_INFRAVISION|M3_TRAITOR, CLR_RED),
  4189. 	/* Named demon lords & princes plus Arch-Devils.
  4190. 	 * (their order matters; see minion.c)
  4191. 	 */
  4192. MON("Juiblex", S_DEMON,
  4193. 	LVL(50, 3, -7, 65, -15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  4194. 	A(ATTK(AT_ENGL, AD_DISE, 4,10), ATTK(AT_SPIT, AD_ACID, 3, 6),
  4195. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4196. 	SIZ(1500, 0, 0, MS_GURGLE, MZ_LARGE),
  4197. 	MR_FIRE|MR_POISON|MR_ACID|MR_STONE, 0,
  4198. 	M1_AMPHIBIOUS|M1_AMORPHOUS|M1_NOHEAD|M1_FLY|M1_SEE_INVIS|M1_ACID|
  4199. 	  M1_POIS,
  4200. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_LORD|
  4201. 	  M2_MALE,
  4202. 	M3_WAITFORU|M3_WANTSAMUL|M3_INFRAVISION, CLR_BRIGHT_GREEN),
  4203. MON("Yeenoghu", S_DEMON,
  4204. 	LVL(56, 18, -5, 80, -15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  4205. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_WEAP, AD_CONF, 2, 8),
  4206. 	  ATTK(AT_CLAW, AD_PLYS, 1, 6), ATTK(AT_MAGC, AD_MAGM, 2, 6),
  4207. 	  NO_ATTK, NO_ATTK),
  4208. 	SIZ(900, 500, 0, MS_ORC, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  4209. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
  4210. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_LORD|
  4211. 	  M2_MALE|M2_COLLECT,
  4212. 	M3_WAITFORU|M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  4213. MON("Orcus", S_DEMON,
  4214. 	LVL(66, 9, -6, 85, -20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  4215. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  4216. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_MAGC, AD_SPEL, 8, 6),
  4217. 	  ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK),
  4218. 	SIZ(1500, 500, 0, MS_ORC, MZ_HUGE), MR_FIRE|MR_POISON, 0,
  4219. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
  4220. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_PRINCE|
  4221. 	  M2_MALE|M2_COLLECT,
  4222. 	M3_WAITFORU|M3_WANTSBOOK|M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION,
  4223. 	HI_LORD),
  4224. MON("Geryon", S_DEMON,
  4225. 	LVL(72, 3, -3, 75, 15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  4226. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 6),
  4227. 	  ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  4228. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUGE), MR_FIRE|MR_POISON, 0,
  4229. 	M1_FLY|M1_SEE_INVIS|M1_POIS|M1_SLITHY,
  4230. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
  4231. 	  M2_PRINCE|M2_MALE,
  4232. 	M3_WAITFORU|M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  4233. MON("Dispater", S_DEMON,
  4234. 	LVL(78, 15, -2, 80, 15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  4235. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 6), ATTK(AT_MAGC, AD_SPEL, 6, 6),
  4236. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4237. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  4238. 	M1_FLY|M1_SEE_INVIS|M1_POIS|M1_HUMANOID,
  4239. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
  4240. 	  M2_PRINCE|M2_MALE|M2_COLLECT,
  4241. 	M3_WAITFORU|M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  4242. MON("Baalzebub", S_DEMON,
  4243. 	LVL(89, 9, -5, 85, 20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  4244. 	A(ATTK(AT_BITE, AD_DRST, 2, 6), ATTK(AT_GAZE, AD_STUN, 2, 6),
  4245. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4246. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  4247. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
  4248. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
  4249. 	  M2_PRINCE|M2_MALE,
  4250. 	M3_WANTSAMUL|M3_WAITFORU|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  4251. MON("Asmodeus", S_DEMON,
  4252. 	LVL(105, 12, -7, 90, 20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  4253. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 4), ATTK(AT_MAGC, AD_COLD, 6, 6),
  4254. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4255. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUGE), MR_FIRE|MR_COLD|MR_POISON, 0,
  4256. 	M1_FLY|M1_SEE_INVIS|M1_HUMANOID|M1_POIS,
  4257. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|
  4258. 	  M2_NASTY|M2_PRINCE|M2_MALE,
  4259. 	M3_WANTSAMUL|M3_WAITFORU|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  4260. MON("Demogorgon", S_DEMON,
  4261. 	LVL(106, 15, -8, 95, -20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  4262. 	A(ATTK(AT_MAGC, AD_SPEL, 8, 6), ATTK(AT_STNG, AD_DRLI, 1, 4),
  4263. 	  ATTK(AT_CLAW, AD_DISE, 1, 6), ATTK(AT_CLAW, AD_DISE, 1, 6),
  4264. 	  NO_ATTK, NO_ATTK),
  4265. 	SIZ(1500, 500, 0, MS_GROWL, MZ_HUGE), MR_FIRE|MR_POISON, 0,
  4266. 	M1_FLY|M1_SEE_INVIS|M1_NOHANDS|M1_POIS,
  4267. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
  4268. 	  M2_PRINCE|M2_MALE,
  4269. 	M3_WAITFORU|M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  4270. /* Cthulhu MUST be placed after Demogorgon so he will not be summoned as a 
  4271. random demon lord or demon prince.  See minion.c */
  4272. MON("Cthulhu", S_DEMON,
  4273. LVL(106, 18, -15, 95, 0), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  4274. A(ATTK(AT_MAGC, AD_CLRC, 4, 6), ATTK(AT_CLAW, AD_PHYS, 6, 8),
  4275. ATTK(AT_BITE, AD_PHYS, 4, 10), ATTK(AT_HUGS, AD_PHYS, 6, 6),
  4276. ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_GAZE, AD_CONF, 0, 0)),
  4277. SIZ(3000, 500, 0, MS_ROAR, MZ_GIGANTIC), 
  4278. 	MR_POISON|MR_STONE|MR_DISINT|MR_SLEEP|MR_ACID, 0,
  4279. M1_SWIM|M1_AMPHIBIOUS|M1_BREATHLESS|M1_THICK_HIDE|M1_SEE_INVIS|
  4280. M1_NOHANDS|M1_POIS,
  4281. M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_STRONG|
  4282. M2_PRINCE|M2_NEUTER,
  4283. M3_WAITFORU|M3_INFRAVISION|M3_NOTAME, HI_LORD),
  4284. 	/* Riders -- the Four Horsemen of the Apocalypse ("War" == player)
  4285. 	 */
  4286. MON("Death", S_DEMON,
  4287. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
  4288. 	A(ATTK(AT_TUCH, AD_DETH, 8, 8), ATTK(AT_TUCH, AD_DETH, 8, 8),
  4289. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4290. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
  4291. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
  4292. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
  4293. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
  4294. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  4295. MON("Pestilence", S_DEMON,
  4296. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
  4297. 	A(ATTK(AT_TUCH, AD_PEST, 8, 8), ATTK(AT_TUCH, AD_PEST, 8, 8),
  4298. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4299. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
  4300. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
  4301. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
  4302. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
  4303. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  4304. MON("Famine", S_DEMON,
  4305. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
  4306. 	A(ATTK(AT_TUCH, AD_FAMN, 8, 8), ATTK(AT_TUCH, AD_FAMN, 8, 8),
  4307. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4308. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
  4309. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
  4310. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
  4311. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
  4312. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  4313. 	/* other demons
  4314. 	 */
  4315. #ifdef MAIL
  4316. MON("mail daemon", S_DEMON,
  4317. 	LVL(56, 24, 10, 127, 0), (G_NOGEN|G_NOCORPSE),
  4318. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4319. 	SIZ(600, 300, 0, MS_SILENT, MZ_HUMAN),
  4320. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
  4321. 	M1_FLY|M1_SWIM|M1_BREATHLESS|M1_SEE_INVIS|M1_HUMANOID|M1_POIS,
  4322. 	M2_NOPOLY|M2_STALK|M2_PEACEFUL, M3_INFRAVISIBLE|M3_INFRAVISION,
  4323. 	CLR_BRIGHT_BLUE),
  4324. /* Neither rain nor sleet nor gloom of night shall stay this courier... */
  4325. #endif
  4326. MON("djinni", S_DEMON,
  4327. 	LVL(7, 12, 4, 30, 0), (G_NOGEN|G_NOCORPSE),
  4328. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8),
  4329. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4330. 	SIZ(1500, 400, 0, MS_DJINNI, MZ_HUMAN), MR_POISON|MR_STONE, 0,
  4331. 	M1_HUMANOID|M1_FLY|M1_POIS,
  4332. 	M2_NOPOLY|M2_STALK|M2_COLLECT, M3_INFRAVISIBLE, CLR_YELLOW),
  4333. #if 0
  4334. 	/* KMH -- Redundant djinni types removed
  4335. 	 * These were causing problems with the djinni chances.  Since
  4336. 	 * they are basically different names for the same monster, why
  4337. 	 * should we keep them?
  4338. 	 */
  4339. MON("efreeti", S_DEMON, 
  4340. 	LVL(7, 12, 4, 30, 0), (G_NOGEN|G_NOCORPSE),
  4341. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK,
  4342. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4343. 	SIZ(1500, 400, 0, MS_DJINNI, MZ_HUMAN), MR_POISON|MR_STONE|
  4344. 	MR_FIRE|MR_ELEC, 0,
  4345. 	M1_HUMANOID|M1_FLY|M1_POIS,
  4346. 	M2_NOPOLY|M2_STALK|M2_COLLECT, 0, CLR_RED),
  4347. MON("dao", S_DEMON, 
  4348. 	LVL(7, 12, 4, 30, 0), (G_NOGEN|G_NOCORPSE),
  4349. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK,
  4350. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4351. 	SIZ(1500, 400, 0, MS_DJINNI, MZ_HUMAN), MR_POISON|MR_STONE, 0,
  4352. 	M1_HUMANOID|M1_FLY|M1_POIS,
  4353. 	M2_NOPOLY|M2_STALK|M2_COLLECT, 0, CLR_BROWN),
  4354. MON("marid", S_DEMON, 
  4355. 	LVL(7, 12, 4, 30, 0), (G_NOGEN|G_NOCORPSE),
  4356. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK,
  4357. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4358. 	SIZ(1500, 400, 0, MS_DJINNI, MZ_HUMAN), MR_COLD|MR_POISON|MR_STONE, 0,
  4359. 	M1_HUMANOID|M1_FLY|M1_POIS,
  4360. 	M2_NOPOLY|M2_STALK|M2_COLLECT, 0, CLR_BLUE),
  4361. #endif
  4362.  
  4363. MON("sandestin", S_DEMON,
  4364. 	LVL(13, 12, 4, 60, -5), (G_HELL|G_NOCORPSE|1),
  4365. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
  4366. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4367. 	SIZ(1500, 400, 0, MS_CUSS, MZ_HUMAN), MR_STONE, 0,
  4368. 	M1_HUMANOID, M2_NOPOLY|M2_STALK|M2_STRONG|M2_COLLECT,
  4369. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
  4370.  
  4371.  
  4372. /*
  4373. * sea monsters
  4374. */
  4375. MON("jellyfish", S_EEL,
  4376. 	LVL(3, 3, 6, 0, 0), (G_GENO|G_NOGEN),
  4377. 	A(ATTK(AT_STNG, AD_DRST, 3, 3), NO_ATTK,
  4378. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4379. 	SIZ(80, 20, 0, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
  4380. 	M1_SWIM|M1_AMPHIBIOUS|M1_SLITHY|M1_NOLIMBS|M1_NOTAKE|M1_POIS,
  4381. 	M2_HOSTILE, 0, CLR_BLUE),
  4382. MON("piranha", S_EEL,
  4383. 	LVL(5, 12, 4, 0, 0), (G_GENO|G_NOGEN|G_SGROUP),
  4384. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK,
  4385. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4386. 	SIZ(60, 30, 0, MS_SILENT, MZ_SMALL), 0, 0,
  4387. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
  4388. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
  4389. 	M2_HOSTILE, 0, CLR_RED),
  4390. MON("giant eel", S_EEL,
  4391. 	LVL(5, 9, -1, 0, 0), (G_GENO|G_NOGEN),
  4392. 	A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_TUCH, AD_WRAP, 0, 0),
  4393. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4394. 	SIZ(200, 250, 0, MS_SILENT, MZ_HUGE), 0, 0,
  4395. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
  4396. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
  4397. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_CYAN),
  4398. MON("shark", S_EEL,
  4399. 	LVL(7, 12, 2, 0, 0), (G_GENO|G_NOGEN),
  4400. 	A(ATTK(AT_BITE, AD_PHYS, 5, 6), NO_ATTK,
  4401. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4402. 	SIZ(500, 350, 0, MS_SILENT, MZ_LARGE), 0, 0,
  4403. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
  4404. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_THICK_HIDE|M1_NOTAKE,
  4405. 	M2_HOSTILE, 0, CLR_GRAY),
  4406. MON("giant crab", S_EEL, 
  4407. 	LVL(7, 12, 0, 0, 0), (G_GENO|G_NOGEN),
  4408. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 6),
  4409. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4410. 	SIZ(500, 350, 0, MS_SILENT, MZ_HUGE),
  4411. 	0, 0, M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_OVIPAROUS,
  4412. 	M2_HOSTILE, 0, CLR_GREEN),
  4413. MON("electric eel", S_EEL,
  4414. 	LVL(7, 10, -3, 0, 0), (G_GENO|G_NOGEN),
  4415. 	A(ATTK(AT_BITE, AD_ELEC, 4, 6), ATTK(AT_TUCH, AD_WRAP, 0, 0),
  4416. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4417. 	SIZ(200, 250, 0, MS_SILENT, MZ_HUGE), MR_ELEC, MR_ELEC,
  4418. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_SLITHY|M1_NOLIMBS|
  4419. 	  M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
  4420. 	M2_HOSTILE, M3_INFRAVISIBLE, CLR_BRIGHT_BLUE),
  4421. MON("kraken", S_EEL,
  4422. 	LVL(20, 3, 6, 0, -3), (G_GENO|G_NOGEN),
  4423. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  4424. 	  ATTK(AT_HUGS, AD_WRAP, 2, 6), ATTK(AT_BITE, AD_PHYS, 5, 4),
  4425. 	  NO_ATTK, NO_ATTK),
  4426. 	SIZ(1800, 1000, 0, MS_SILENT, MZ_HUGE), 0, 0,
  4427. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  4428. 	M2_NOPOLY|M2_HOSTILE|M2_STRONG, M3_INFRAVISIBLE, CLR_RED),
  4429. /*
  4430. * lizards, &c
  4431. */
  4432. MON("newt", S_LIZARD,
  4433. 	LVL(0, 6, 8, 0, 0), (G_GENO|5),
  4434. 	A(ATTK(AT_BITE, AD_PHYS, 1, 2),
  4435. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4436. 	SIZ(10, 20, 0, MS_SILENT, MZ_TINY), 0, 0,
  4437. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  4438. 	M2_HOSTILE, 0, CLR_YELLOW),
  4439. MON("gecko", S_LIZARD,
  4440. 	LVL(1, 6, 8, 0, 0), (G_GENO|5),
  4441. 	A(ATTK(AT_BITE, AD_PHYS, 1, 3),
  4442. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4443. 	SIZ(10, 20, 0, MS_SQEEK, MZ_TINY), 0, 0,
  4444. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_GREEN),
  4445. MON("iguana", S_LIZARD,
  4446. 	LVL(2, 6, 7, 0, 0), (G_GENO|5),
  4447. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
  4448. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4449. 	SIZ(30, 30, 0, MS_SILENT, MZ_TINY), 0, 0,
  4450. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_BROWN),
  4451. MON("baby crocodile", S_LIZARD,
  4452. 	LVL(3, 6, 7, 0, 0), G_GENO,
  4453. 	A(ATTK(AT_BITE, AD_PHYS, 1, 4),
  4454. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4455. 	SIZ(200, 200, 0, MS_SILENT, MZ_MEDIUM), 0, 0,
  4456. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
  4457. 	M2_HOSTILE, 0, CLR_BROWN),
  4458. MON("lizard", S_LIZARD,
  4459. 	LVL(5, 6, 6, 10, 0), (G_GENO|5),
  4460. 	A(ATTK(AT_BITE, AD_PHYS, 1, 6),
  4461. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4462. 	SIZ(10, 40, 0, MS_SILENT, MZ_TINY), MR_STONE, MR_STONE,
  4463. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_GREEN),
  4464. MON("gila monster", S_LIZARD, 
  4465. 	LVL(6, 6, 6, 10, 0), (G_NOHELL|G_GENO|1),
  4466. 	A(ATTK(AT_BITE, AD_DRST, 2, 6), NO_ATTK, NO_ATTK,
  4467. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4468. 	SIZ(10, 40, 0, MS_SILENT, MZ_TINY), MR_POISON, 0,
  4469. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_ORANGE),
  4470. MON("chameleon", S_LIZARD,
  4471. 	LVL(6, 5, 6, 10, 0), (G_GENO|2),
  4472. 	A(ATTK(AT_BITE, AD_PHYS, 4, 2),
  4473. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4474. 	SIZ(100, 100, 0, MS_SILENT, MZ_TINY), 0, 0,
  4475. 	M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_NOPOLY|M2_HOSTILE, 0, CLR_BROWN),
  4476. MON("crocodile", S_LIZARD,
  4477. 	LVL(6, 9, 5, 0, 0), (G_GENO|1),
  4478. 	A(ATTK(AT_BITE, AD_PHYS, 4, 2), ATTK(AT_CLAW, AD_PHYS, 1,12),
  4479. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4480. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), 0, 0,
  4481. 	M1_SWIM|M1_AMPHIBIOUS|M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|
  4482. 	  M1_OVIPAROUS|M1_CARNIVORE,
  4483. 	M2_STRONG|M2_HOSTILE, 0, CLR_BROWN),
  4484. MON("salamander", S_LIZARD,
  4485. 	LVL(8, 12, -1, 0, -9), (G_HELL|1),
  4486. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_TUCH, AD_FIRE, 1, 6),
  4487. 	  ATTK(AT_HUGS, AD_PHYS, 2, 6), ATTK(AT_HUGS, AD_FIRE, 3, 6),
  4488. 	  NO_ATTK, NO_ATTK),
  4489. 	SIZ(1500, 400, 0, MS_MUMBLE, MZ_HUMAN), MR_SLEEP|MR_FIRE, MR_FIRE,
  4490. 	M1_HUMANOID|M1_SLITHY|M1_THICK_HIDE|M1_POIS,
  4491. 	M2_STALK|M2_HOSTILE|M2_COLLECT|M2_MAGIC, M3_INFRAVISIBLE, CLR_ORANGE),
  4492. MON("rhaumbusun", S_LIZARD, 
  4493. 	LVL(2, 9, 5, 0, 0), (G_HELL|G_GENO|1),
  4494. 	A(ATTK(AT_GAZE, AD_PLYS, 1, 2), NO_ATTK,
  4495. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4496. 	SIZ(20, 40, 0, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
  4497. 	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|
  4498. 	M1_OVIPAROUS|M1_CARNIVORE, M2_NASTY|M2_HOSTILE, 0, CLR_MAGENTA),
  4499. MON("basilisk", S_LIZARD, 
  4500. 	LVL(8, 9, 5, 0, 0), (G_GENO|1),
  4501. 	A(ATTK(AT_BITE, AD_STON, 4, 2), ATTK(AT_NONE, AD_STON, 0, 0),
  4502. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4503. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_POISON|MR_STONE, 
  4504. 	MR_POISON|MR_STONE,
  4505. 	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|
  4506. 	M1_OVIPAROUS|M1_CARNIVORE, M2_STRONG|M2_HOSTILE, 0, CLR_BLACK),
  4507. MON("komodo dragon", S_LIZARD, 
  4508. 	LVL(9, 9, 5, 0, 0), (G_NOHELL|G_GENO|1),
  4509. 	A(ATTK(AT_BITE, AD_DRCO, 2, 6), ATTK(AT_CLAW, AD_PHYS, 1, 12),
  4510. 	  ATTK(AT_CLAW, AD_PHYS, 1, 12), NO_ATTK, NO_ATTK, NO_ATTK),
  4511. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), 0, 0,
  4512. 	M1_ANIMAL|M1_THICK_HIDE|M1_NOHANDS|
  4513. 	M1_OVIPAROUS|M1_CARNIVORE, M2_STRONG|M2_HOSTILE, 0, CLR_GREEN),
  4514. /*      evil food         */
  4515. /*      WAC moved Evil Food here - otherwise won't get generated */
  4516. MON("bad egg", S_BAD_FOOD, 
  4517. 	LVL(4, 9, 7, 0, 0), (G_NOHELL|G_GENO|G_NOCORPSE),
  4518. 	A(ATTK(AT_BITE, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK,
  4519. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4520. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL), 0, 0,
  4521. 	M1_BREATHLESS|M1_NOEYES|M1_NOHEAD|M1_MINDLESS|
  4522. 	M1_NOLIMBS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_WHITE),
  4523. MON("killer tripe ration", S_BAD_FOOD, 
  4524. 	LVL(7, 9, 7, 0, 0), (G_NOHELL|G_GENO|G_NOCORPSE),
  4525. 	A(ATTK(AT_BITE, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK,
  4526. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4527. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL), 0, 0,
  4528. 	M1_BREATHLESS|M1_NOEYES|M1_NOHEAD|M1_MINDLESS|
  4529. 	M1_NOLIMBS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_BROWN),
  4530. MON("killer food ration", S_BAD_FOOD, 
  4531. 	LVL(9, 9, 7, 0, 0), (G_NOHELL|G_GENO|G_NOCORPSE),
  4532. 	A(ATTK(AT_BITE, AD_PHYS, 2, 10), NO_ATTK, NO_ATTK,
  4533. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4534. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL), 0, 0,
  4535. 	M1_BREATHLESS|M1_NOEYES|M1_NOHEAD|M1_MINDLESS|
  4536. 	M1_NOLIMBS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_BROWN),
  4537. /*      evil coins        */
  4538. MON("pile of killer coins", S_BAD_COINS, 
  4539. 	LVL(6, 9, 7, 0, 0), (G_NOHELL|G_GENO|G_NOCORPSE),
  4540. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK,
  4541. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4542. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL), 0, 0,
  4543. 	M1_BREATHLESS|M1_NOEYES|M1_NOHEAD|M1_MINDLESS |
  4544. 	M1_NOLIMBS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_YELLOW),
  4545. MON("large pile of killer coins", S_BAD_COINS, 
  4546. 	LVL(9, 12, 7, 0, 0), (G_NOHELL|G_GENO|G_NOCORPSE),
  4547. 	A(ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK,
  4548. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4549. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL), 0, 0,
  4550. 	M1_BREATHLESS|M1_NOEYES|M1_NOHEAD|M1_MINDLESS|
  4551. 	M1_NOLIMBS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_YELLOW),
  4552. MON("huge pile of killer coins", S_BAD_COINS, 
  4553. 	LVL(11, 12, 7, 0, 0), (G_NOHELL|G_GENO|G_NOCORPSE),
  4554. 	A(ATTK(AT_BITE, AD_PHYS, 4, 6), NO_ATTK, NO_ATTK,
  4555. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4556. 	SIZ(0, 0, 0, MS_SILENT, MZ_SMALL), 0, 0,
  4557. 	M1_BREATHLESS|M1_NOEYES|M1_NOHEAD|M1_MINDLESS|
  4558. 	M1_NOLIMBS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_YELLOW),
  4559. /*
  4560. * dummy monster needed for visual interface
  4561. */
  4562. 	/* (marking it unique prevents figurines)
  4563. 	 */
  4564. MON("long worm tail", S_WORM_TAIL,
  4565. 	LVL(0, 0, 0, 0, 0), (G_NOGEN|G_NOCORPSE|G_UNIQ),
  4566. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4567. 	SIZ(0, 0, 0, 0, 0), 0, 0, 0L, M2_NOPOLY, 0, CLR_BROWN),
  4568.  
  4569. 	/* Note:
  4570. 	 * Worm tail must be between the normal monsters and the special
  4571. 	 * quest & pseudo-character ones because an optimization in the
  4572. 	 * random monster selection code assumes everything beyond here
  4573. 	 * has the G_NOGEN and M2_NOPOLY attributes.
  4574. 	 */
  4575.  
  4576. /*
  4577. * KMH -- Monsters of the aligned key quests
  4578. */
  4579. MON("Nightmare", S_UNICORN, 
  4580. 	LVL(12, 24, -2, 70, 15), (G_UNIQ|G_NOGEN|G_NOCORPSE),
  4581. 	A(ATTK(AT_BUTT, AD_PHYS, 3, 12), ATTK(AT_KICK, AD_PHYS, 3, 6),
  4582. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4583. 	SIZ(1500, 300, 0, MS_NEIGH, MZ_LARGE),
  4584. 	MR_POISON|MR_FIRE|MR_COLD|MR_ELEC|MR_HITASTWO,
  4585. 	MR_POISON|MR_FIRE|MR_COLD|MR_ELEC,
  4586. 	M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE,
  4587. 	M2_NOPOLY|M2_PNAME|M2_FEMALE|M2_HOSTILE|M2_NASTY|M2_STALK|
  4588. 	M2_WANDER|M2_STRONG,
  4589. 	M3_WAITFORU|M3_WANTSALL, CLR_RED),
  4590. MON("Beholder", S_EYE, 
  4591. 	LVL(15, 9, -4, 70, 0), (G_UNIQ|G_NOGEN|G_NOCORPSE),
  4592. 	A(ATTK(AT_GAZE, AD_DETH, 1, 4), ATTK(AT_GAZE, AD_PHYS, 3, 8),
  4593. 	  ATTK(AT_GAZE, AD_STUN, 1, 3), ATTK(AT_GAZE, AD_CONF, 1, 3),
  4594. 	  ATTK(AT_GAZE, AD_SLEE, 1, 4), NO_ATTK),
  4595. 	SIZ(500, 100, 0, MS_SILENT, MZ_LARGE),
  4596. 	0, 0,
  4597. 	M1_FLY|M1_NOLIMBS|M1_NOHEAD|M1_REGEN,
  4598. 	M2_NOPOLY|M2_NEUTER|M2_HOSTILE|M2_NASTY|M2_STALK,
  4599. 	M3_INFRAVISIBLE|M3_WAITFORU|M3_WANTSALL, CLR_GRAY),
  4600. MON("Vecna", S_LICH, 
  4601. 	LVL(49, 9, -8, 90, -15), (G_UNIQ|G_NOGEN|G_NOCORPSE),
  4602. 	A(ATTK(AT_TUCH, AD_COLD, 9, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  4603. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4604. 	SIZ(1200, 100, 0, MS_MUMBLE, MZ_HUMAN),
  4605. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_POISON|MR_STONE|MR_PLUSFOUR,
  4606. 	MR_FIRE|MR_COLD,
  4607. 	M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
  4608. 	M2_NOPOLY|M2_PNAME|M2_PRINCE|M2_MALE|M2_HOSTILE|M2_NASTY|M2_STALK|
  4609. 	M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_UNDEAD|M2_STRONG|M2_MAGIC,
  4610. 	M3_WAITFORU|M3_WANTSALL, HI_LORD),
  4611.  
  4612. /* WAC fixed so all classes have G_NOGEN only, level 10 */
  4613. /*
  4614. * character classes
  4615. */
  4616. MON("archeologist", S_HUMAN,
  4617. 	LVL(10, 12, 10, 1, 3), G_NOGEN,
  4618. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4619. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4620. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4621. 	M1_HUMANOID|M1_TUNNEL|M1_NEEDPICK|M1_OMNIVORE,
  4622. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
  4623. MON("barbarian", S_HUMAN,
  4624. 	LVL(10, 12, 10, 1, 0), G_NOGEN,
  4625. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4626. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4627. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
  4628. 	M1_HUMANOID|M1_OMNIVORE,
  4629. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
  4630. MON("caveman", S_HUMAN,
  4631. 	LVL(10, 12, 10, 0, 1), G_NOGEN,
  4632. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  4633. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4634. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4635. 	M1_HUMANOID|M1_OMNIVORE,
  4636. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE,
  4637. 	HI_DOMESTIC),
  4638. MON("cavewoman", S_HUMAN,
  4639. 	LVL(10, 12, 10, 0, 1), G_NOGEN,
  4640. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  4641. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4642. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4643. 	M1_HUMANOID|M1_OMNIVORE,
  4644. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
  4645. 	HI_DOMESTIC),
  4646. MON("flame mage", S_HUMAN, 
  4647. LVL(10, 12, 10, 3, 0), G_NOGEN,
  4648. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4649. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  4650. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4651. 	M1_HUMANOID|M1_OMNIVORE,
  4652. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT|M2_MAGIC|M2_HOSTILE,
  4653. 	M3_INFRAVISIBLE, CLR_RED),
  4654. MON("healer", S_HUMAN,
  4655. 	LVL(10, 12, 10, 1, 0), G_NOGEN,
  4656. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4657. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4658. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
  4659. 	M1_HUMANOID|M1_OMNIVORE,
  4660. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
  4661. MON("ice mage", S_HUMAN, 
  4662. LVL(10, 12, 10, 3, 0), G_NOGEN,
  4663. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4664. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  4665. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4666. 	M1_HUMANOID|M1_OMNIVORE,
  4667. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT|M2_MAGIC|M2_HOSTILE,
  4668. 	M3_INFRAVISIBLE, CLR_WHITE),
  4669. MON("knight", S_HUMAN,
  4670. 	LVL(10, 12, 10, 1, 3), G_NOGEN,
  4671. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4672. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4673. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4674. 	M1_HUMANOID|M1_OMNIVORE,
  4675. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
  4676. MON("monk", S_HUMAN, 
  4677. 	LVL(10, 12, 10, 2, 0), G_NOGEN,
  4678. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_KICK, AD_PHYS, 1, 8),
  4679. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4680. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4681. 	M1_HUMANOID|M1_HERBIVORE,
  4682. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT|M2_MALE,
  4683. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  4684. MON("necromancer", S_HUMAN, 
  4685. LVL(10, 12, 10, 3, 0), G_NOGEN,
  4686. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0), 
  4687. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4688. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4689. 	M1_HUMANOID|M1_OMNIVORE,
  4690. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT|M2_MAGIC|M2_HOSTILE,
  4691. 	M3_INFRAVISIBLE, CLR_BLACK),
  4692. MON("priest", S_HUMAN,
  4693. 	LVL(10, 12, 10, 2, 0), G_NOGEN,
  4694. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4695. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4696. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4697. 	M1_HUMANOID|M1_OMNIVORE,
  4698. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_MALE|M2_COLLECT, M3_INFRAVISIBLE,
  4699. 	HI_DOMESTIC),
  4700. MON("priestess", S_HUMAN,
  4701. 	LVL(10, 12, 10, 2, 0), G_NOGEN,
  4702. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4703. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4704. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4705. 	M1_HUMANOID|M1_OMNIVORE,
  4706. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
  4707. 	HI_DOMESTIC),
  4708. MON("ranger", S_HUMAN,
  4709. 	LVL(10, 12, 10, 2, -3), G_NOGEN,
  4710. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
  4711. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4712. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4713. 	M1_HUMANOID|M1_OMNIVORE,
  4714. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  4715. 	HI_DOMESTIC),
  4716. MON("rogue", S_HUMAN,
  4717. 	LVL(10, 12, 10, 1, -3), G_NOGEN,
  4718. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4719. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4720. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4721. 	M1_HUMANOID|M1_OMNIVORE,
  4722. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
  4723. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  4724. MON("samurai", S_HUMAN,
  4725. 	LVL(10, 12, 10, 1, 3), G_NOGEN,
  4726. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
  4727. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4728. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4729. 	M1_HUMANOID|M1_OMNIVORE,
  4730. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
  4731. #ifdef TOURIST
  4732. MON("tourist", S_HUMAN,
  4733. 	LVL(10, 12, 10, 1, 0), G_NOGEN,
  4734. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4735. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4736. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4737. 	M1_HUMANOID|M1_OMNIVORE,
  4738. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
  4739. #endif
  4740. MON("undead slayer", S_HUMAN, 
  4741. LVL(10, 10, 10, 1, -1), G_NOGEN,
  4742. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK,
  4743. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4744. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_DRAIN, 0,
  4745. 	M1_HUMANOID|M1_OMNIVORE,
  4746. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT|M2_HOSTILE,
  4747. 	M3_INFRAVISIBLE, CLR_BLACK),
  4748. MON("valkyrie", S_HUMAN,
  4749. 	LVL(10, 12, 10, 1, -1), G_NOGEN,
  4750. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
  4751. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4752. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_COLD, 0,
  4753. 	M1_HUMANOID|M1_OMNIVORE,
  4754. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
  4755. 	HI_DOMESTIC),
  4756. #ifdef YEOMAN
  4757. MON("yeoman", S_HUMAN,
  4758. 	LVL(10, 10, 10, 1, 3), G_NOGEN,
  4759. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4760. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4761. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4762. 	M1_HUMANOID|M1_OMNIVORE,
  4763. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  4764. 	HI_DOMESTIC),
  4765. #endif
  4766. 	/* Wizard should be last.  Sigh. */
  4767. MON("wizard", S_HUMAN,
  4768. 	LVL(10, 12, 10, 3, 0), G_NOGEN,
  4769. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4770. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4771. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  4772. 	M1_HUMANOID|M1_OMNIVORE,
  4773. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT|M2_MAGIC, M3_INFRAVISIBLE,
  4774. 	HI_DOMESTIC),
  4775. /*
  4776. * quest leaders
  4777. */
  4778. MON("Lord Carnarvon", S_HUMAN,
  4779. 	LVL(20, 12, 0, 30, 20), (G_NOGEN|G_UNIQ),
  4780. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4781. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4782. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
  4783. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
  4784. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4785. 	  M2_COLLECT|M2_MAGIC,
  4786. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
  4787. MON("Pelias", S_HUMAN,
  4788. 	LVL(20, 12, 0, 30, 0), (G_NOGEN|G_UNIQ),
  4789. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4790. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4791. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_POISON, 0,
  4792. 	M1_HUMANOID|M1_OMNIVORE,
  4793. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4794. 	  M2_COLLECT|M2_MAGIC,
  4795. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
  4796. MON("Shaman Karnov", S_HUMAN,
  4797. 	LVL(20, 12, 0, 30, 20), (G_NOGEN|G_UNIQ),
  4798. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  4799. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4800. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
  4801. 	M1_HUMANOID|M1_OMNIVORE,
  4802. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4803. 	  M2_COLLECT|M2_MAGIC,
  4804. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
  4805. #if 0	/* OBSOLETE */
  4806. MON("Master Shifter", S_HUMAN, 
  4807. 	LVL(20, 12, 0, 30, 0), (G_NOGEN|G_UNIQ),
  4808. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4), 
  4809. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4810. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_HITASFOUR, 0,
  4811. 	M1_HUMANOID|M1_OMNIVORE,
  4812. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4813. 	M2_COLLECT|M2_MAGIC,
  4814. 	M3_CLOSE, HI_LORD),
  4815. #ifdef DWARF
  4816. MON("Thorin", S_HUMANOID,
  4817. 	LVL(20, 12, 0, 30, 20), (G_NOGEN|G_UNIQ),
  4818. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), 
  4819. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4820. 	SIZ(900, 300, 0, MS_LEADER, MZ_HUMAN), 0, 0,
  4821. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
  4822. 	M2_DWARF|M2_STRONG|M2_NOPOLY|M2_PNAME|M2_MALE|M2_GREEDY|
  4823. 	  M2_JEWELS|M2_COLLECT|M2_MAGIC|M2_PEACEFUL,
  4824. 	M3_CLOSE, HI_LORD),
  4825. #endif
  4826. 	/* Two for elves - one of each sex.
  4827. 	 */
  4828. MON("Earendil", S_HUMAN,
  4829. 	LVL(20, 12, 0, 50, 20), (G_NOGEN|G_UNIQ),
  4830. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  4831. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4832. 	SIZ(WT_ELF, 350, 0, MS_LEADER, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  4833. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
  4834. 	M2_NOPOLY|M2_ELF|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|
  4835. 	  M2_MALE|M2_COLLECT|M2_MAGIC,
  4836. 	M3_CLOSE|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
  4837. MON("Elwing", S_HUMAN,
  4838. 	LVL(20, 12, 0, 50, 20), (G_NOGEN|G_UNIQ),
  4839. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  4840. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4841. 	SIZ(WT_ELF, 350, 0, MS_LEADER, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  4842. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
  4843. 	M2_NOPOLY|M2_ELF|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|
  4844. 	  M2_FEMALE|M2_COLLECT|M2_MAGIC,
  4845. 	M3_CLOSE|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
  4846. #endif	/* 0 */
  4847. MON("High Flame Mage", S_HUMAN, 
  4848. 	LVL(20, 12, 0, 40, 0), (G_NOGEN|G_UNIQ),
  4849. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4850. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  4851. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_POISON|MR_HITASFOUR, 
  4852. 	MR_POISON, M1_HUMANOID|M1_OMNIVORE,
  4853. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4854. 	M2_COLLECT|M2_MAGIC, M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
  4855. MON("Hippocrates", S_HUMAN,
  4856. 	LVL(20, 12, 0, 40, 0), (G_NOGEN|G_UNIQ),
  4857. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4858. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4859. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_POISON, 0,
  4860. 	M1_HUMANOID|M1_OMNIVORE,
  4861. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4862. 	  M2_COLLECT|M2_MAGIC,
  4863. 	M3_CLOSE, HI_LORD),
  4864. #if 0	/* OBSOLETE */
  4865. MON("Bilbo Baggins", S_HUMANOID,
  4866. 	LVL(20, 9, MARM(10,7), 0, 6), (G_NOGEN|G_UNIQ),
  4867. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  4868. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4869. 	SIZ(500, 200, 0, MS_LEADER, MZ_SMALL), 0, 0,
  4870. 	M1_HUMANOID|M1_OMNIVORE,
  4871. 	M2_NOPOLY|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|M2_COLLECT|M2_MAGIC|
  4872. 	M2_HOBBIT, M3_CLOSE, HI_LORD),
  4873. #endif	/* 0 */
  4874. MON("High Ice Mage", S_HUMAN, 
  4875. 	LVL(20, 12, 0, 40, 0), (G_NOGEN|G_UNIQ),
  4876. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4877. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  4878. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_POISON|MR_HITASFOUR, 
  4879. 	MR_POISON, M1_HUMANOID|M1_OMNIVORE,
  4880. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4881. 	M2_COLLECT|M2_MAGIC, M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
  4882. MON("King Arthur", S_HUMAN,
  4883. 	LVL(20, 12, 0, 40, 20), (G_NOGEN|G_UNIQ),
  4884. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4885. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4886. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
  4887. 	M1_HUMANOID|M1_OMNIVORE,
  4888. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4889. 	  M2_COLLECT|M2_MAGIC,
  4890. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
  4891. #if 0	/* OBSOLETE */
  4892. MON("High Lycanthrope", S_HUMAN, 
  4893. 	LVL(20, 12, 0, 40, -20), (G_NOGEN|G_UNIQ),
  4894. 	A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_BITE, AD_PHYS, 3, 6), 
  4895. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4896. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_POISON|MR_HITASFOUR, 
  4897. 	MR_POISON, M1_HUMANOID|M1_OMNIVORE,
  4898. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4899. 	M2_COLLECT|M2_MAGIC, M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
  4900. #endif	/* 0 */
  4901. MON("Grand Master", S_HUMAN,
  4902. 	LVL(25, 12, 0, 70, 0), (G_NOGEN|G_UNIQ),
  4903. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 10), ATTK(AT_KICK, AD_PHYS, 2, 8),
  4904. 	  ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8),
  4905. 	  NO_ATTK, NO_ATTK),
  4906. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN),
  4907. 	MR_FIRE|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  4908. 	M1_HUMANOID|M1_SEE_INVIS|M1_HERBIVORE,
  4909. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_NASTY|M2_MAGIC,
  4910. 	M3_CLOSE|M3_INFRAVISIBLE, CLR_BLACK),
  4911. MON("Dark Lord", S_HUMAN, 
  4912. 	LVL(20, 12, 0, 60, -20), (G_NOGEN|G_UNIQ),
  4913. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK,
  4914. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  4915. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_HITASFOUR, 0,
  4916. 	M1_HUMANOID|M1_OMNIVORE,
  4917. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|
  4918. 	M2_COLLECT|M2_MAGIC, M3_CLOSE, HI_LORD),
  4919. MON("Arch Priest", S_HUMAN,
  4920. 	LVL(25, 12, 7, 70, 0), (G_NOGEN|G_UNIQ),
  4921. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_KICK, AD_PHYS, 2, 8),
  4922. 	  ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8),
  4923. 	  NO_ATTK, NO_ATTK),
  4924. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN),
  4925. 	MR_FIRE|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  4926. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
  4927. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
  4928. 	M3_CLOSE|M3_INFRAVISIBLE, CLR_WHITE),
  4929. MON("Orion", S_HUMAN,
  4930. 	LVL(20, 12, 0, 30, 0), (G_NOGEN|G_UNIQ),
  4931. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4932. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4933. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
  4934. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS|M1_SWIM|M1_AMPHIBIOUS,
  4935. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4936. 	  M2_COLLECT|M2_MAGIC,
  4937. 	M3_CLOSE|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
  4938. 	/* Note: Master of Thieves is also the Tourist's nemesis.
  4939. 	 */
  4940. MON("Master of Thieves", S_HUMAN,
  4941. 	LVL(20, 12, 0, 30, -20), (G_NOGEN|G_UNIQ),
  4942. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
  4943. 	  ATTK(AT_CLAW, AD_SAMU, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  4944. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_STONE, 0,
  4945. 	M1_HUMANOID|M1_OMNIVORE,
  4946. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_MALE|M2_GREEDY|
  4947. 	  M2_JEWELS|M2_COLLECT|M2_MAGIC,
  4948. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
  4949. MON("Lord Sato", S_HUMAN,
  4950. 	LVL(20, 12, 0, 30, 20), (G_NOGEN|G_UNIQ),
  4951. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4952. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4953. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
  4954. 	M1_HUMANOID|M1_OMNIVORE,
  4955. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4956. 	  M2_COLLECT|M2_MAGIC,
  4957. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
  4958. #ifdef TOURIST
  4959. MON("Twoflower", S_HUMAN,
  4960. 	LVL(20, 12, 10, 20, 0), (G_NOGEN|G_UNIQ),
  4961. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4962. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4963. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
  4964. 	M1_HUMANOID|M1_OMNIVORE,
  4965. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4966. 	  M2_COLLECT|M2_MAGIC,
  4967. 	M3_CLOSE|M3_INFRAVISIBLE, HI_DOMESTIC),
  4968. #endif
  4969. MON("Van Helsing", S_HUMAN, 
  4970. 	LVL(20, 12, 0, 40, 20), (G_NOGEN|G_UNIQ),
  4971. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6), 
  4972. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4973. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_HITASFOUR, 0,
  4974. 	M1_HUMANOID|M1_OMNIVORE,
  4975. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
  4976. 	M2_COLLECT|M2_MAGIC, M3_CLOSE, HI_LORD),
  4977. MON("Norn", S_HUMAN,
  4978. 	LVL(20, 12, 0, 80, 0), (G_NOGEN|G_UNIQ),
  4979. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  4980. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4981. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_COLD, 0,
  4982. 	M1_HUMANOID|M1_OMNIVORE,
  4983. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_FEMALE|
  4984. 	  M2_COLLECT|M2_MAGIC,
  4985. 	M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
  4986. MON("Neferet the Green", S_HUMAN,
  4987. 	LVL(20, 12, 0, 60, 0), (G_NOGEN|G_UNIQ),
  4988. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 2, 8),
  4989. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  4990. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
  4991. 	M1_HUMANOID|M1_OMNIVORE,
  4992. 	M2_NOPOLY|M2_HUMAN|M2_FEMALE|M2_PNAME|M2_PEACEFUL|
  4993. 	  M2_STRONG|M2_COLLECT|M2_MAGIC,
  4994. 	M3_CLOSE|M3_INFRAVISIBLE, CLR_GREEN),
  4995. #if 0	/* OBSOLETE */
  4996. MON("Lolth", S_SPIDER, 
  4997. 	LVL(20, 15, 0, 50, -20), (G_NOGEN|G_UNIQ),
  4998. 	A(ATTK(AT_BITE, AD_DRST, 5, 8), NO_ATTK, NO_ATTK,
  4999. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  5000. 	SIZ(WT_ELF, 350, 0, MS_LEADER, MZ_HUMAN), MR_SLEEP|MR_HITASFOUR, 
  5001. 	MR_SLEEP, M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
  5002. 	M2_NOPOLY|M2_ELF|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|
  5003. 	M2_FEMALE|M2_COLLECT|M2_MAGIC, M3_CLOSE, HI_LORD),
  5004. #endif
  5005. #ifdef YEOMAN
  5006. MON("Chief Yeoman Warder", S_HUMAN,
  5007. 	LVL(20, 12, 0, 40, 20), (G_NOGEN|G_UNIQ),
  5008. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  5009. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5010. 	SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
  5011. 	M1_HUMANOID|M1_OMNIVORE,
  5012. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_MALE|M2_COLLECT|M2_MAGIC,
  5013. 	M3_CLOSE, HI_LORD),
  5014. #endif
  5015.  
  5016. /*
  5017. * quest nemeses
  5018. */
  5019. MON("Minion of Huhetotl", S_DEMON,
  5020. 	LVL(16, 12, -2, 75, -14), (G_NOCORPSE|G_NOGEN|G_UNIQ),
  5021. 	A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
  5022. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 2, 6),
  5023. 	  NO_ATTK, NO_ATTK),
  5024. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_LARGE),
  5025. 	MR_FIRE|MR_POISON|MR_STONE, 0, M1_FLY|M1_SEE_INVIS|M1_POIS,
  5026. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
  5027. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, CLR_RED),
  5028. MON("Thoth Amon", S_HUMAN,
  5029. 	LVL(16, 12, 0, 10, -14), (G_NOGEN|G_UNIQ|G_NOCORPSE),
  5030. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  5031. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 1, 4),
  5032. 	  NO_ATTK, NO_ATTK),
  5033. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_POISON|MR_STONE, 0,
  5034. 	M1_HUMANOID|M1_OMNIVORE,
  5035. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_STRONG|M2_MALE|M2_STALK|M2_HOSTILE|
  5036. 	  M2_NASTY|M2_COLLECT|M2_MAGIC,
  5037. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
  5038. 	/* Multi-headed, possessing the breath attacks of all the other dragons
  5039. 	 * (selected at random when attacking).
  5040. 	 */
  5041. MON("Chromatic Dragon", S_DRAGON,
  5042. 	LVL(16, 12, 0, 30, -14), (G_NOGEN|G_UNIQ),
  5043. 	A(ATTK(AT_BREA, AD_RBRE, 6, 8), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  5044. 	  ATTK(AT_CLAW, AD_SAMU, 2, 8), ATTK(AT_BITE, AD_PHYS, 4, 8),
  5045. 	  ATTK(AT_BITE, AD_PHYS, 4, 8), ATTK(AT_STNG, AD_PHYS, 1, 6)),
  5046. 	SIZ(WT_DRAGON, 1700, 0, MS_NEMESIS, MZ_GIGANTIC),
  5047. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_DISINT|MR_ELEC|MR_POISON|MR_ACID|MR_STONE,
  5048. 	MR_FIRE|MR_COLD|MR_SLEEP|MR_DISINT|MR_ELEC|MR_POISON|MR_STONE,
  5049. 	M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_SEE_INVIS|M1_POIS,
  5050. 	M2_NOPOLY|M2_HOSTILE|M2_FEMALE|M2_STALK|M2_STRONG|M2_NASTY|
  5051. 	  M2_GREEDY|M2_JEWELS|M2_MAGIC,
  5052. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
  5053. #if 0	/* OBSOLETE */
  5054. MON("Transmuter", S_HUMAN, 
  5055. 	LVL(25, 10, -10, 30, -20), (G_NOGEN|G_UNIQ),
  5056. 	A(ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  5057. 	  ATTK(AT_CLAW, AD_SAMU, 2, 8), ATTK(AT_CLAW, AD_SAMU, 2, 8),
  5058. 	  ATTK(AT_CLAW, AD_SAMU, 2, 8), ATTK(AT_CLAW, AD_SAMU, 2, 8)),
  5059. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN),
  5060. 	MR_DEATH|MR_FIRE|MR_COLD|MR_ELEC|MR_POISON|MR_HITASFOUR,
  5061. 	MR_FIRE|MR_COLD|MR_ELEC|MR_POISON,
  5062. 	M1_CARNIVORE|M1_SEE_INVIS,
  5063. 	M2_NOPOLY|M2_HOSTILE|M2_PNAME|M2_STALK|
  5064. 	M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  5065. 	M3_WANTSARTI|M3_WAITFORU, HI_LORD),
  5066. #ifdef DWARF
  5067. MON("Smaug", S_DRAGON,
  5068. 	LVL(16, 10, 0, 20, -14), (G_NOGEN|G_UNIQ),
  5069. 	A(ATTK(AT_BREA, AD_FIRE, 6, 8), ATTK(AT_BREA, AD_FIRE, 2, 6),
  5070. 	  ATTK(AT_CLAW, AD_SAMU, 2, 8), ATTK(AT_BITE, AD_PHYS, 1, 6),
  5071. 	  ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4)),
  5072. 	SIZ(WT_DRAGON, 1800, 0, MS_NEMESIS, MZ_GIGANTIC),
  5073. 	MR_FIRE, MR_FIRE,
  5074. 	M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_FLY,
  5075. 	M2_NOPOLY|M2_PNAME|M2_HOSTILE|M2_MALE|M2_STALK|M2_STRONG|M2_NASTY|
  5076. 	  M2_GREEDY|M2_JEWELS|M2_MAGIC,
  5077. 	M3_WANTSARTI|M3_WAITFORU, CLR_RED),
  5078. #endif
  5079. MON("Goblin King", S_ORC,
  5080. 	LVL(15, 12, 10, 0, -15), (G_NOGEN|G_UNIQ),
  5081. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
  5082. 	  ATTK(AT_CLAW, AD_SAMU, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  5083. 	SIZ(750, 350, 0, MS_NEMESIS, MZ_HUMAN), 0, 0,
  5084. 	M1_HUMANOID|M1_OMNIVORE,
  5085. 	M2_NOPOLY|M2_ORC|M2_HOSTILE|M2_STRONG|M2_STALK|M2_NASTY|M2_MALE|
  5086. 	  M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_MAGIC,
  5087. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
  5088. #endif	/* 0 */
  5089. MON("Water Mage", S_HUMAN, 
  5090. 	LVL(25, 10, -10, 10, 20), (G_NOGEN|G_UNIQ),
  5091. 	A(ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  5092. 	  ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_SAMU, 1, 4),
  5093. 	  NO_ATTK, NO_ATTK),
  5094. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_DEATH|MR_POISON|
  5095. 	MR_HITASFOUR, MR_POISON, M1_HUMANOID|M1_OMNIVORE,
  5096. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_STALK|M2_HOSTILE|M2_NASTY|
  5097. 	M2_COLLECT|M2_MAGIC, M3_WANTSARTI|M3_WAITFORU, HI_LORD),
  5098. #if 0	/* OBSOLETE */
  5099. MON("Lareth", S_HUMAN, 
  5100. 	LVL(25, 15, 0, 50, 20), (G_NOGEN|G_UNIQ),
  5101. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 8), ATTK(AT_WEAP, AD_SLEE, 2, 5),
  5102. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  5103. 	  NO_ATTK, NO_ATTK),
  5104. 	SIZ(WT_ELF, 350, 0, MS_NEMESIS, MZ_HUMAN), MR_SLEEP|MR_HITASFOUR|
  5105. 	MR_DEATH, MR_SLEEP, M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
  5106. 	M2_NOPOLY|M2_ELF|M2_HUMAN|M2_STRONG|M2_PNAME|M2_HOSTILE|M2_NASTY|
  5107. 	M2_MALE|M2_COLLECT|M2_JEWELS|M2_MAGIC|M2_STALK,
  5108. 	M3_WANTSARTI|M3_WAITFORU, CLR_BLACK),
  5109. #endif
  5110. MON("Cyclops", S_GIANT,
  5111. 	LVL(18, 12, 0, 0, -15), (G_NOGEN|G_UNIQ),
  5112. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 8), ATTK(AT_WEAP, AD_PHYS, 4, 8),
  5113. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  5114. 	SIZ(1900, 700, 0, MS_NEMESIS, MZ_HUGE), MR_STONE, 0,
  5115. 	M1_HUMANOID|M1_OMNIVORE,
  5116. 	M2_NOPOLY|M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_STALK|M2_HOSTILE|
  5117. 	  M2_NASTY|M2_MALE|M2_JEWELS|M2_COLLECT,
  5118. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, CLR_GRAY),
  5119. #if 0	/* OBSOLETE */
  5120. MON("Gollum", S_HUMANOID,
  5121. 	LVL(16, 10, -5, 0, -6), (G_NOGEN|G_UNIQ),
  5122. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  5123. 	  ATTK(AT_TUCH, AD_DRST, 1, 2), NO_ATTK, NO_ATTK, NO_ATTK),
  5124. 	SIZ(500, 200, 0, MS_NEMESIS, MZ_SMALL), MR_POISON, MR_POISON,
  5125. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS|M1_POIS,
  5126. 	M2_NOPOLY|M2_PNAME|M2_STRONG|M2_STALK|M2_HOSTILE|M2_NASTY|
  5127. 	M2_MALE|M2_COLLECT|M2_JEWELS|M2_MAGIC,
  5128. 	M3_WANTSARTI|M3_WAITFORU, CLR_BLACK),
  5129. #endif
  5130. MON("Earth Mage", S_HUMAN, 
  5131. 	LVL(25, 10, -10, 10, 20), (G_NOGEN|G_UNIQ),
  5132. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  5133. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 1, 4),
  5134. 	  NO_ATTK, NO_ATTK),
  5135. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_DEATH|MR_POISON|
  5136. 	MR_HITASFOUR, MR_POISON, M1_HUMANOID|M1_OMNIVORE,
  5137. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_STALK|M2_HOSTILE|M2_NASTY|
  5138. 	M2_COLLECT|M2_MAGIC, M3_WANTSARTI|M3_WAITFORU, HI_LORD),
  5139. MON("Ixoth", S_DRAGON,
  5140. 	LVL(15, 12, -1, 20, -14), (G_NOGEN|G_UNIQ),
  5141. 	A(ATTK(AT_BREA, AD_FIRE, 8, 6), ATTK(AT_BITE, AD_PHYS, 4, 8),
  5142. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  5143. 	  ATTK(AT_CLAW, AD_SAMU, 2, 4), NO_ATTK ),
  5144. 	SIZ(WT_DRAGON, 1600, 0, MS_NEMESIS, MZ_GIGANTIC),
  5145. 	MR_FIRE|MR_STONE, MR_FIRE,
  5146. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_SEE_INVIS,
  5147. 	M2_NOPOLY|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_STALK|
  5148. 	  M2_GREEDY|M2_JEWELS|M2_MAGIC,
  5149. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, CLR_RED),
  5150. #if 0	/* OBSOLETE */
  5151. MON("Sir Lorimar", S_HUMAN, 
  5152. 	LVL(25, 15, -10, 40, -20), (G_NOGEN|G_UNIQ),
  5153. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
  5154. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  5155. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_DEATH|MR_HITASFOUR, 0,
  5156. 	M1_HUMANOID|M1_OMNIVORE,
  5157. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_PNAME|M2_HOSTILE|M2_STALK|
  5158. 	M2_NASTY|M2_MALE|M2_COLLECT|M2_MAGIC,
  5159. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
  5160. #endif
  5161. MON("Master Kaen", S_HUMAN,
  5162. 	LVL(25, 12, -10, 10, -20), (G_NOGEN|G_UNIQ),
  5163. 	A(ATTK(AT_CLAW, AD_PHYS, 16, 2), ATTK(AT_CLAW, AD_PHYS, 16, 2),
  5164. 	  ATTK(AT_MAGC, AD_CLRC, 0, 0), ATTK(AT_CLAW, AD_SAMU, 1, 4),
  5165. 	  NO_ATTK, NO_ATTK),
  5166. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN),
  5167. 	MR_POISON|MR_STONE, MR_POISON,
  5168. 	M1_HUMANOID|M1_HERBIVORE|M1_SEE_INVIS,
  5169. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_NASTY|
  5170. 	  M2_STALK|M2_COLLECT|M2_MAGIC,
  5171. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
  5172. MON("Maugneshaagar", S_DEMON, 
  5173. 	LVL(16, 10, -10, 85, -20), (G_NOGEN|G_UNIQ|G_NOCORPSE),
  5174. 	A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
  5175. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 2, 6),
  5176. 	  NO_ATTK, NO_ATTK),
  5177. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_LARGE), MR_DEATH|MR_FIRE|
  5178. 	MR_POISON|MR_HITASFOUR, 0, M1_FLY|M1_SEE_INVIS|M1_POIS,
  5179. 	M2_NOPOLY|M2_DEMON|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_STALK|
  5180. 	M2_NASTY|M2_COLLECT, M3_WANTSARTI|M3_WAITFORU, CLR_BLACK),
  5181. MON("Nalzok", S_DEMON,
  5182. 	LVL(16, 12, -2, 85, -127), (G_NOGEN|G_UNIQ|G_NOCORPSE),
  5183. 	A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
  5184. 	  ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 2, 6),
  5185. 	  NO_ATTK, NO_ATTK),
  5186. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_LARGE),
  5187. 	MR_FIRE|MR_POISON|MR_STONE, 0, M1_FLY|M1_SEE_INVIS|M1_POIS,
  5188. 	M2_NOPOLY|M2_DEMON|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_STALK|
  5189. 	  M2_NASTY|M2_COLLECT,
  5190. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, CLR_RED),
  5191. MON("Scorpius", S_SPIDER,
  5192. 	LVL(15, 12, 10, 0, -15), (G_NOGEN|G_UNIQ),
  5193. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_SAMU, 2, 6),
  5194. 	  ATTK(AT_STNG, AD_DISE, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  5195. 	SIZ(750, 350, 0, MS_NEMESIS, MZ_HUMAN), MR_POISON|MR_STONE, MR_POISON,
  5196. 	M1_ANIMAL|M1_NOHANDS|M1_OVIPAROUS|M1_POIS|M1_CARNIVORE,
  5197. 	M2_NOPOLY|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_STALK|M2_NASTY|
  5198. 	  M2_COLLECT|M2_MAGIC,
  5199. 	M3_WANTSARTI|M3_WAITFORU, HI_LORD),
  5200. MON("Master Assassin", S_HUMAN,
  5201. 	LVL(15, 12, 0, 30, 18), (G_NOGEN|G_UNIQ),
  5202. 	A(ATTK(AT_WEAP, AD_DRST, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 8),
  5203. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  5204. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_STONE, 0,
  5205. 	M1_HUMANOID|M1_OMNIVORE,
  5206. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_HOSTILE|M2_STALK|M2_NASTY|
  5207. 	  M2_COLLECT|M2_MAGIC,
  5208. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
  5209. 	/* A renegade daimyo who led a 13 year civil war against the shogun
  5210. 	 * of his time.
  5211. 	 */
  5212. MON("Ashikaga Takauji", S_HUMAN,
  5213. 	LVL(15, 12, 0, 40, -13), (G_NOGEN|G_UNIQ|G_NOCORPSE),
  5214. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
  5215. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  5216. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_STONE, 0,
  5217. 	M1_HUMANOID|M1_OMNIVORE,
  5218. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_STALK|
  5219. 	  M2_NASTY|M2_MALE|M2_COLLECT|M2_MAGIC,
  5220. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
  5221. #ifdef TOURIST
  5222. 	/*
  5223. 	 * Note: the Master of Thieves was defined above.
  5224. 	 */
  5225. #endif
  5226. MON("Count Dracula", S_VAMPIRE, 
  5227. 	LVL(25, 18, -8, 80, -10), (G_NOGEN|G_NOCORPSE|G_UNIQ),
  5228. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
  5229. 	  ATTK(AT_BITE, AD_DRLI, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  5230. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN),
  5231. 	MR_SLEEP|MR_POISON|MR_HITASFOUR, 0,
  5232. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_POIS|M1_REGEN,
  5233. 	M2_NOPOLY|M2_UNDEAD|M2_VAMPIRE|M2_STALK|M2_HOSTILE|M2_PNAME|
  5234. 	  M2_STRONG|M2_NASTY|M2_PRINCE|M2_MALE,
  5235. 	M3_WAITFORU|M3_WANTSARTI, HI_LORD),
  5236. MON("Lord Surtur", S_GIANT,
  5237. 	LVL(15, 12, 2, 50, 12), (G_NOGEN|G_UNIQ),
  5238. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10), ATTK(AT_WEAP, AD_PHYS, 2,10),
  5239. 	  ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  5240. 	SIZ(2250, 850, 0, MS_NEMESIS, MZ_HUGE), MR_FIRE|MR_STONE, MR_FIRE,
  5241. 	M1_HUMANOID|M1_OMNIVORE,
  5242. 	M2_NOPOLY|M2_GIANT|M2_MALE|M2_PNAME|M2_HOSTILE|M2_STALK|
  5243. 	  M2_STRONG|M2_NASTY|M2_ROCKTHROW|M2_JEWELS|M2_COLLECT,
  5244. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
  5245. MON("Dark One", S_HUMAN,
  5246. 	LVL(15, 12, 0, 80, -10), (G_NOGEN|G_UNIQ|G_NOCORPSE),
  5247. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  5248. 	  ATTK(AT_CLAW, AD_SAMU, 1, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  5249. 	  NO_ATTK, NO_ATTK),
  5250. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_STONE, 0,
  5251. 	M1_HUMANOID|M1_OMNIVORE,
  5252. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_HOSTILE|M2_STALK|M2_NASTY|
  5253. 	  M2_COLLECT|M2_MAGIC,
  5254. 	M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISIBLE, CLR_BLACK),
  5255. #ifdef YEOMAN
  5256. MON("Colonel Blood", S_HUMAN,
  5257. 	LVL(20, 10, 5, 10, -10), (G_NOGEN|G_UNIQ),
  5258. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 6), ATTK(AT_WEAP, AD_PHYS, 4, 6),
  5259. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5260. 	SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_POISON, 0,
  5261. 	M1_HUMANOID|M1_OMNIVORE,
  5262. 	M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_STRONG|M2_MALE|M2_STALK|M2_HOSTILE|
  5263. 	  M2_NASTY|M2_COLLECT|M2_MAGIC,
  5264. 	M3_WANTSARTI|M3_WAITFORU, HI_LORD),
  5265. #endif
  5266.  
  5267. /*
  5268. * quest "guardians"
  5269. */
  5270. MON("student", S_HUMAN,
  5271. 	LVL(5, 12, 10, 10, 3), G_NOGEN,
  5272. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  5273. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5274. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5275. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
  5276. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  5277. 	HI_DOMESTIC),
  5278. MON("chieftain", S_HUMAN,
  5279. 	LVL(5, 12, 10, 10, 0), G_NOGEN,
  5280. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  5281. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5282. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_POISON, 0,
  5283. 	M1_HUMANOID|M1_OMNIVORE,
  5284. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  5285. 	HI_DOMESTIC),
  5286. MON("neanderthal", S_HUMAN,
  5287. 	LVL(5, 12, 10, 10, 1), G_NOGEN,
  5288. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  5289. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5290. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5291. 	M1_HUMANOID|M1_OMNIVORE,
  5292. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  5293. 	HI_DOMESTIC),
  5294. #if 0	/* OBSOLETE */
  5295. MON("shifter", S_HUMAN, 
  5296. 	LVL(5, 12, 0, 10, 0), G_NOGEN,
  5297. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  5298. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5299. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_HITASONE, 0,
  5300. 	M1_HUMANOID|M1_OMNIVORE,
  5301. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_COLLECT, 
  5302. 	M3_INFRAVISIBLE, CLR_GRAY),
  5303. #ifdef DWARF
  5304. MON("dwarf warrior", S_HUMANOID,
  5305. 	LVL(5, 10, 10, 10, 5), G_NOGEN,
  5306. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  5307. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5308. 	SIZ(900, 300, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5309. 	M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE,
  5310. 	M2_DWARF|M2_STRONG|M2_NOPOLY|M2_MALE|M2_GREEDY|M2_JEWELS|
  5311. 	  M2_COLLECT|M2_PEACEFUL,
  5312. 	M3_INFRAVISION|M3_INFRAVISIBLE, HI_DOMESTIC),
  5313. #endif
  5314. #endif
  5315. MON("igniter", S_HUMAN, 
  5316. 	LVL(5, 10, 10, 10, 3), G_NOGEN,
  5317. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  5318. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5319. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_POISON|MR_HITASONE, 
  5320. 	MR_POISON, M1_HUMANOID|M1_OMNIVORE,
  5321. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  5322. 	M3_INFRAVISIBLE, CLR_RED),
  5323. MON("froster", S_HUMAN, 
  5324. 	LVL(5, 10, 10, 10, 3), G_NOGEN,
  5325. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  5326. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5327. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_POISON|MR_HITASONE, 
  5328. 	MR_POISON, M1_HUMANOID|M1_OMNIVORE,
  5329. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  5330. 	M3_INFRAVISIBLE, CLR_WHITE),
  5331. #if 0	/* OBSOLETE */
  5332. MON("fiend", S_HUMAN, 
  5333. 	LVL(5, 10, 10, 10, 3), G_NOGEN,
  5334. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK,
  5335. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  5336. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_POISON|MR_HITASONE, 
  5337. 	MR_POISON, M1_HUMANOID|M1_OMNIVORE,
  5338. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  5339. 	M3_INFRAVISION|M3_INFRAVISIBLE, CLR_ORANGE),
  5340. #endif
  5341. MON("attendant", S_HUMAN,
  5342. 	LVL(5, 12, 10, 10, 3), G_NOGEN,
  5343. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  5344. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5345. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_POISON, 0,
  5346. 	M1_HUMANOID|M1_OMNIVORE,
  5347. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  5348. 	HI_DOMESTIC),
  5349. #if 0	/* OBSOLETE */
  5350. MON("proudfoot", S_HUMANOID,
  5351. 	LVL(5, 9, MARM(10,7), 0, 6), G_NOGEN,
  5352. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  5353. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5354. 	SIZ(500, 200, 0, MS_GUARDIAN, MZ_SMALL), 0, 0,
  5355. 	M1_HUMANOID|M1_OMNIVORE,
  5356. 	M2_NOPOLY|M2_PEACEFUL|M2_COLLECT|M2_HOBBIT, 
  5357. 	M3_INFRAVISION|M3_INFRAVISIBLE, HI_DOMESTIC),
  5358. MON("intern", S_HUMAN, 
  5359. 	LVL(5, 10, 10, 10, 3), G_NOGEN,
  5360. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK,
  5361. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  5362. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_POISON|MR_HITASONE, 
  5363. 	MR_POISON, M1_HUMANOID|M1_OMNIVORE,
  5364. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  5365. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  5366. #endif
  5367. MON("page", S_HUMAN,
  5368. 	LVL(5, 12, 10, 10, 3), G_NOGEN,
  5369. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  5370. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5371. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5372. 	M1_HUMANOID|M1_OMNIVORE,
  5373. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  5374. 	HI_DOMESTIC),
  5375. MON("abbot", S_HUMAN, 
  5376. 	LVL(5, 12, 10, 20, 0), G_NOGEN,
  5377. 	A(ATTK(AT_CLAW, AD_PHYS, 8, 2), ATTK(AT_KICK, AD_STUN, 3, 2),
  5378. 	  ATTK(AT_MAGC, AD_CLRC, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  5379. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5380. 	M1_HUMANOID|M1_HERBIVORE,
  5381. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  5382. 	HI_DOMESTIC),
  5383. MON("embalmer", S_HUMAN, 
  5384. 	LVL(5, 12, 10, 30, 0), G_NOGEN,
  5385. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  5386. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5387. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_HITASONE, 0,
  5388. 	M1_HUMANOID|M1_OMNIVORE,
  5389. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|
  5390. 	M2_COLLECT|M2_MAGIC, M3_INFRAVISIBLE, CLR_BLACK),
  5391. MON("acolyte", S_HUMAN,
  5392. 	LVL(5, 12, 10, 20, 0), G_NOGEN,
  5393. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_CLRC, 0, 0),
  5394. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5395. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5396. 	M1_HUMANOID|M1_OMNIVORE,
  5397. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  5398. 	HI_DOMESTIC),
  5399. MON("hunter", S_HUMAN,
  5400. 	LVL(5, 12, 10, 10, -7), G_NOGEN,
  5401. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
  5402. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5403. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5404. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
  5405. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  5406. 	M3_INFRAVISION|M3_INFRAVISIBLE, HI_DOMESTIC),
  5407. MON("thug", S_HUMAN,
  5408. 	LVL(5, 12, 10, 10, -3), G_NOGEN,
  5409. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  5410. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5411. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5412. 	M1_HUMANOID|M1_OMNIVORE,
  5413. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_GREEDY|M2_COLLECT,
  5414. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  5415. MON("ninja", S_HUMAN,
  5416. 	LVL(5, 12, 10, 10, 3), G_NOGEN,
  5417. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
  5418. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5419. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  5420. 	M1_HUMANOID|M1_OMNIVORE,
  5421. 	M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  5422. 	HI_DOMESTIC),
  5423. MON("roshi", S_HUMAN,
  5424. 	LVL(5, 12, 10, 10, 3), G_NOGEN,
  5425. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
  5426. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5427. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5428. 	M1_HUMANOID|M1_OMNIVORE,
  5429. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  5430. 	HI_DOMESTIC),
  5431. #ifdef TOURIST
  5432. MON("guide", S_HUMAN,
  5433. 	LVL(5, 12, 10, 20, 0), G_NOGEN,
  5434. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  5435. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5436. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5437. 	M1_HUMANOID|M1_OMNIVORE,
  5438. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
  5439. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  5440. #endif
  5441. MON("exterminator", S_HUMAN, 
  5442. 	LVL(8, 10, 10, 10, 10), G_NOGEN,
  5443. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK,
  5444. 	  NO_ATTK, NO_ATTK, NO_ATTK),
  5445. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), MR_HITASONE, 0,
  5446. 	M1_HUMANOID|M1_OMNIVORE,
  5447. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  5448. 	M3_INFRAVISIBLE, CLR_BLACK),
  5449. MON("warrior", S_HUMAN,
  5450. 	LVL(5, 12, 10, 10, -1), G_NOGEN,
  5451. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
  5452. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5453. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5454. 	M1_HUMANOID|M1_OMNIVORE,
  5455. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_FEMALE, M3_INFRAVISIBLE,
  5456. 	HI_DOMESTIC),
  5457. MON("apprentice", S_HUMAN,
  5458. 	LVL(5, 12, 10, 30, 0), G_NOGEN,
  5459. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  5460. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5461. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5462. 	M1_HUMANOID|M1_OMNIVORE,
  5463. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
  5464. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  5465. #ifdef YEOMAN
  5466. MON("Yeoman Warder", S_HUMAN,
  5467. 	LVL(5, 10, 10, 10, 3), G_NOGEN,
  5468. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  5469. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5470. 	SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  5471. 	M1_HUMANOID|M1_OMNIVORE,
  5472. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  5473. 	HI_DOMESTIC),
  5474. #endif
  5475.  
  5476. /*
  5477. * Other quest uniques
  5478. */
  5479. #if 0	/* OBSOLETE */
  5480. 	/* He's making a guest appearance from Angband. -RJ */
  5481. MON("Farmer Maggot", S_HUMANOID,
  5482. 	LVL(11, 9, 10, 0, 6), (G_NOGEN|G_UNIQ),
  5483. 	A(ATTK(/*AT_MOAN*/AT_NONE, AD_PHYS, 0, 0), ATTK(/*AT_MOAN*/AT_NONE, AD_PHYS, 0, 0),
  5484. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5485. 	SIZ(500, 200, 0, MS_HUMANOID, MZ_SMALL), 0, 0,
  5486. 	M1_HUMANOID|M1_OMNIVORE,
  5487. 	M2_NOPOLY|M2_PNAME|M2_HOSTILE|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
  5488. 	CLR_BROWN),
  5489. #endif
  5490.  
  5491. /*
  5492. * array terminator
  5493. */
  5494. MON("", 0,
  5495. 	LVL(0, 0, 0, 0, 0), (0),
  5496. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  5497. 	SIZ(0, 0, 0, 0, 0), 0, 0, 0L, 0L, 0, 0)
  5498. };
  5499. #endif /* !SPLITMON_1 */
  5500.  
  5501. #ifndef SPLITMON_1
  5502. /* dummy routine used to force linkage */
  5503. void
  5504. monst_init()
  5505. {
  5506. return;
  5507. }
  5508. #endif
  5509.  
  5510. /*monst.c*/