home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume7 / nethack3 / patch4j < prev    next >
Internet Message Format  |  1989-10-02  |  47KB

  1. Path: uunet!zephyr.ens.tek.com!tekgen!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v08i046:  NetHack3 -  display oriented dungeons & dragons (Ver. 3.0), Patch4j
  5. Message-ID: <4636@tekred.CNA.TEK.COM>
  6. Date: 29 Sep 89 21:15:40 GMT
  7. Sender: nobody@tekred.CNA.TEK.COM
  8. Lines: 812
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
  12. Posting-number: Volume 8, Issue 46
  13. Archive-name: NetHack3/Patch4j
  14. Patch-To: NetHack3: Volume 7, Issue 56-93
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then unpack
  18. # it by saving it into a file and typing "sh file".  To overwrite existing
  19. # files, type "sh file -c".  You can also feed this as standard input via
  20. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  21. # will see the following message at the end:
  22. #        "End of archive 10 (of 11)."
  23. # Contents:  src/monst.c1
  24. # Wrapped by billr@saab on Fri Sep 29 13:11:26 1989
  25. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  26. if test -f 'src/monst.c1' -a "${1}" != "-c" ; then 
  27.   mv -f src/monst.c1 src/monst.c1.orig
  28. fi
  29. echo shar: Extracting \"'src/monst.c1'\" \(44627 characters\)
  30. sed "s/^X//" >'src/monst.c1' <<'END_OF_FILE'
  31. X/*      SCCS Id: @(#)monst.c    3.0     89/03/11
  32. X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  33. X/* NetHack may be freely redistributed.  See license for details. */
  34. X
  35. X/* since this file is also used in auxiliary programs, don't include all the
  36. X * function declarations for all of nethack
  37. X */
  38. X#define EXTERN_H
  39. X#include "config.h"
  40. X#include "permonst.h"
  41. X#include "monsym.h"
  42. X#include "eshk.h"
  43. X#include "vault.h"
  44. X#include "epri.h"
  45. X
  46. X#define NO_ATTK         { 0, 0, 0, 0 }
  47. X
  48. X#ifdef C
  49. X#undef C
  50. X#endif
  51. X#ifdef TEXTCOLOR
  52. X#include "decl.h"    /* for colors */
  53. X#define C(color)    color
  54. X#else
  55. X#define C(color)
  56. X#endif
  57. X
  58. X#ifndef SPLITMON_2
  59. Xstruct permonst playermon = {           /* used by weapons bonus code */
  60. X        "player", S_HUMAN, 1, 10, 10, 0, 0, G_GENO | G_NOGEN,
  61. X        { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  62. X        45, 400, PL_NSIZ, MS_SILENT, M1_HUMANOID | M1_COLLECT,
  63. X        M2_HUMAN | M2_STRONG | M2_NEEDPICK, C(HI_MON)
  64. X},      *uasmon = &playermon;
  65. X#endif /* SPLITMON_2 */
  66. X
  67. X/*
  68. X *      Rule #1:        monsters of a given class are contiguous in the
  69. X *                      mons[] array.
  70. X *
  71. X *      Rule #2:        monsters of a given class are presented in ascending
  72. X *                      order of strength.
  73. X *
  74. X *      Rule #3:        monster frequency is included in the geno mask;
  75. X *                      the frequency can be from 0 to 7.  0's will also
  76. X *                      be skipped during generation.
  77. X *
  78. X * Guidelines for color assignment:
  79. X *
  80. X *    * Use the same color for all `growth stages' of a monster (ex.
  81. X *      little dog/big dog, baby naga/full-grown naga. Other than this,
  82. X *      the combination of monster class and color should be unique!
  83. X *
  84. X *    * Use described color wherever possible. If the class has `real'
  85. X *      members with strong color associations, use those.
  86. X *
  87. X *    * Favor `cool' colors for cold-resistent monsters, `warm' ones for
  88. X *      fire-resistent ones.
  89. X *
  90. X *    * Try to reserve purple (magenta) for powerful `ruler' monsters (queen
  91. X *      bee, kobold lord, etc.).
  92. X *
  93. X * The aim in assigning colors is to be consistent enough so a player can
  94. X * become `intuitive' about them, deducing some or all of these rules
  95. X * unconsciously. Use your common sense.
  96. X */
  97. X
  98. X#ifndef SPLITMON_2
  99. Xstruct permonst mons[] = {
  100. X/*      ants    */
  101. X        { "giant ant",  S_ANT, 2, 18, 3, 0, 0, (G_GENO | G_SGROUP | 3),
  102. X          { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  103. X          1, 10, 0, MS_SILENT, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_EGGS,
  104. X          M2_HOSTILE | M2_CARNIVORE, C(BLACK) },
  105. X        { "soldier ant", S_ANT, 3, 18, 3, 0, 0, (G_GENO | G_SGROUP | 2),
  106. X          { { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_DRST, 3, 4 },
  107. X          NO_ATTK, NO_ATTK, NO_ATTK }, 2, 20, 0, MS_SILENT,
  108. X          M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES,
  109. X          M2_HOSTILE | M2_CARNIVORE, C(BLUE) },
  110. X        { "fire ant", S_ANT, 3, 18, 3, 10, 0, (G_GENO | G_SGROUP | 1),
  111. X          { { AT_BITE, AD_FIRE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  112. X          3, 30, 0, MS_SILENT, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_EGGS |
  113. X          M1_FIRE_RES, M2_HOSTILE | M2_CARNIVORE, C(RED) },
  114. X        { "giant beetle", S_ANT, 5, 6, 4, 0, 0, (G_GENO | 3),
  115. X          { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  116. X          1, 10, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_POIS |
  117. X          M1_POIS_RES, M2_HOSTILE | M2_CARNIVORE, C(BLACK) },
  118. X        { "killer bee", S_ANT, 1, 18, -4, 0, 0, (G_GENO | G_LGROUP | 2),
  119. X          { { AT_STNG, AD_DRST, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  120. X          1, 10, 0, MS_BUZZ, M1_VSMALL | M1_ANIMAL | M1_FLY | M1_NOHANDS |
  121. X          M1_POIS | M1_POIS_RES, M2_HOSTILE, C(YELLOW) },
  122. X        { "queen bee", S_ANT, 9, 24, -6, 0, 0, (G_GENO | G_NOGEN),
  123. X          { { AT_STNG, AD_DRST, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  124. X          1, 10, 0, MS_BUZZ, M1_VSMALL | M1_ANIMAL | M1_FLY | M1_NOHANDS |
  125. X          M1_POIS | M1_POIS_RES | M1_PRINCE, M2_HOSTILE, C(MAGENTA) },
  126. X/*      blobs   */
  127. X        { "acid blob", S_BLOB, 1, 3, 8, 0, 0, (G_GENO | 2),
  128. X          { { AT_NONE, AD_ACID, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  129. X          3, 30, 0, MS_SILENT, M1_VSMALL | M1_NOEYES | M1_NOHANDS |
  130. X          M1_POIS | M1_SLEE_RES | M1_STON_RES,
  131. X          M2_WANDER | M2_NOLIMBS | M2_AMORPHOUS, C(GREEN) },
  132. X        { "gelatinous cube", S_BLOB, 6, 6, 8, 0, 0, (G_GENO | 2),
  133. X          { { AT_TUCH, AD_PLYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  134. X          30, 300, 0, MS_SILENT, M1_BIG | M1_NOEYES | M1_NOHANDS |
  135. X          M1_FIRE_RES | M1_COLD_RES | M1_ELEC_RES | M1_SLEE_RES,
  136. X          M2_WANDER | M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, C(CYAN) },
  137. X        { "quivering blob", S_BLOB, 5, 1, 8, 0, 0, (G_GENO | 2),
  138. X          { { AT_TUCH, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  139. X          20, 200, 0, MS_SILENT, M1_NOEYES | M1_NOHANDS | M1_POIS_RES,
  140. X          M2_WANDER | M2_HOSTILE | M2_NOLIMBS, C(WHITE) },
  141. X/*      cockatrice      */
  142. X        { "cockatrice", S_COCKATRICE, 5, 6, 6, 30, 0, (G_GENO | 5),
  143. X          { { AT_BITE, AD_PHYS, 1, 3 }, { AT_TUCH, AD_STON, 0, 0 },
  144. X          NO_ATTK, NO_ATTK, NO_ATTK }, 3, 30, 0, MS_HISS, M1_VSMALL |
  145. X          M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS_RES | M1_STON_RES,
  146. X          M2_HOSTILE, C(YELLOW) },
  147. X/*      dog     */
  148. X        { "little dog", S_DOG, 2, 18, 6, 0, 0, (G_GENO | 1),
  149. X          { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  150. X          15, 150, 0, MS_BARK,
  151. X          M1_VSMALL | M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE, C(BLUE) },
  152. X        { "dog", S_DOG, 4, 16, 5, 0, 0, (G_GENO | 1),
  153. X          { { AT_BITE, AD_PHYS, 1 ,6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  154. X          20, 200, 0, MS_BARK, M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE,
  155. X      C(BLUE) },
  156. X        { "large dog", S_DOG, 6, 15, 4, 0, 0, G_GENO,
  157. X          { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  158. X          25, 250, 0, MS_BARK, M1_ANIMAL | M1_NOHANDS, 
  159. X          M2_STRONG | M2_CARNIVORE, C(BLUE) },
  160. X        { "jackal", S_DOG, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3),
  161. X          { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  162. X          25, 250, 0, MS_BARK, M1_VSMALL | M1_ANIMAL | M1_NOHANDS,
  163. X          M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  164. X        { "jackalwere", S_DOG, 2, 12, 7, 10, -7, G_NOGEN | G_NOCORPSE,
  165. X          { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  166. X          25, 250, 0, MS_BARK, M1_NOPOLY | M1_WERE | M1_NOHANDS | M1_POIS |
  167. X          M1_REGEN, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  168. X        { "wolf", S_DOG, 5, 12, 4, 0, 0, (G_GENO | G_SGROUP | 2),
  169. X          { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  170. X          25, 250, 0, MS_BARK,
  171. X          M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  172. X        { "wolfwere", S_DOG, 5, 12, 4, 20, -7, G_NOGEN | G_NOCORPSE,
  173. X          { { AT_BITE, AD_WERE, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  174. X          25, 250, 0, MS_BARK, M1_NOPOLY | M1_WERE | M1_NOHANDS | M1_POIS |
  175. X          M1_REGEN, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  176. X        { "winter wolf", S_DOG, 7, 12, 4, 0, 0, (G_GENO | 1),
  177. X          { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_COLD, 2, 6 },
  178. X          NO_ATTK, NO_ATTK, NO_ATTK, },
  179. X          30, 300, 0, MS_BARK, M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_COLD_RES,
  180. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(WHITE) },
  181. X        { "warg", S_DOG, 7, 12, 4, 0, -5, (G_GENO | G_SGROUP | 2),
  182. X          { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  183. X          35, 350, 0, MS_BARK, M1_ANIMAL | M1_NOHANDS,
  184. X          M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  185. X        { "hell hound pup", S_DOG, 7, 12, 4, 20, -5,
  186. X          (G_HELL | G_GENO | G_SGROUP | 1),
  187. X          { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_FIRE, 2, 6 },
  188. X          NO_ATTK, NO_ATTK, NO_ATTK },
  189. X          20, 200, 0, MS_BARK, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
  190. X          M2_HOSTILE | M2_CARNIVORE, C(RED) },
  191. X        { "hell hound", S_DOG, 12, 14, 2, 20, 0, (G_HELL | G_GENO | 1),
  192. X          { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BREA, AD_FIRE, 3, 6 },
  193. X          NO_ATTK, NO_ATTK, NO_ATTK, },
  194. X          30, 300, 0, MS_BARK, M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
  195. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
  196. X#ifdef CHARON
  197. X        { "Cerberus", S_DOG, 12, 10, 2, 20, -7, (G_HELL | G_UNIQ | 1),
  198. X          { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BITE, AD_PHYS, 3, 6 },
  199. X          { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK },
  200. X          50, 350, 0, MS_BARK, M1_NOPOLY | M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
  201. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
  202. X#endif
  203. X/*      eyes    */
  204. X        { "floating eye", S_EYE, 2, 1, 9, 10, 0, (G_GENO | 5),
  205. X          { { AT_NONE, AD_PLYS, 0, 70 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  206. X          1, 10, 0, MS_SILENT, M1_FLY | M1_NOHANDS, M2_HOSTILE | M2_NOLIMBS,
  207. X      C(BLUE)},
  208. X        { "freezing sphere", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 2),
  209. X          { { AT_EXPL, AD_COLD, 4, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  210. X          1, 10, 0, MS_SILENT, M1_FLY | M1_NOHANDS | M1_COLD_RES, M2_HOSTILE |
  211. X          M2_NOLIMBS, C(WHITE) },
  212. X/*      felines         */
  213. X        { "kitten", S_FELINE, 2, 18, 6, 0, 0, (G_GENO | 1),
  214. X          { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  215. X          15, 150, 0, MS_MEW, M1_VSMALL | M1_ANIMAL | M1_NOHANDS,
  216. X          M2_WANDER | M2_CARNIVORE, C(BLUE) },
  217. X        { "housecat", S_FELINE, 4, 16, 5, 0, 0, (G_GENO | 1),
  218. X          { { AT_BITE, AD_PHYS, 1 ,6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  219. X          20, 200, 0, MS_MEW, M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE, C(BLUE) },
  220. X        { "large cat", S_FELINE, 6, 15, 4, 0, 0, G_GENO,
  221. X          { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  222. X          25, 250, 0, MS_MEW, M1_BIG | M1_ANIMAL | M1_NOHANDS,
  223. X          M2_STRONG | M2_CARNIVORE, C(BLUE) },
  224. X        { "jaguar", S_FELINE, 5, 15, 6, 0, 0, (G_GENO | 2),
  225. X          { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_CLAW, AD_PHYS, 1, 8 },
  226. X            { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
  227. X          30, 300, 0, MS_GROWL, M1_ANIMAL | M1_NOHANDS,
  228. X          M2_HOSTILE | M2_CARNIVORE, C(YELLOW) },
  229. X/*      gremlins        */
  230. X        { "gremlin", S_GREMLIN, 5, 12, 2, 25, -9, (G_GENO | 2),
  231. X          { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  232. X          { AT_BITE, AD_PHYS, 1, 4 }, { AT_CLAW, AD_CURS, 0, 0 }, NO_ATTK },
  233. X          10, 30, 0, MS_LAUGH, M1_VSMALL | M1_SWIM | M1_HUMANOID | M1_POIS |
  234. X          M1_STALK, 0, C(GREEN) },
  235. X/*      humanoids       */
  236. X#ifdef TOLKIEN
  237. X        { "hobbit", S_HUMANOID, 1, 9, 7, 0, 6, (G_GENO | 2),
  238. X          { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  239. X          20, 200, 0, MS_HUMANOID, M1_HUMANOID | M1_COLLECT, 0, C(HI_MON) },
  240. X#endif
  241. X        { "bugbear", S_HUMANOID, 3, 9, 5, 0, -6, (G_GENO | 1),
  242. X          { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  243. X          25, 250, 0, MS_GROWL, M1_BIG | M1_HUMANOID | M1_COLLECT,
  244. X          M2_STRONG, C(BROWN) },
  245. X        { "dwarf", S_HUMANOID,  2, 6, 4, 10, 4, (G_GENO | 3),
  246. X          { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  247. X          30, 300, 0, MS_HUMANOID, M1_HUMANOID | M1_GREEDY | M1_JEWELS |
  248. X          M1_COLLECT, M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(HI_MON)},
  249. X        { "dwarf lord", S_HUMANOID,  4, 6, 4, 10, 5, (G_GENO | 2),
  250. X          { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  251. X            NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_HUMANOID,
  252. X          M1_HUMANOID | M1_LORD | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  253. X          M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(HI_MON) },
  254. X        { "dwarf king", S_HUMANOID,  6, 6, 4, 20, 6, (G_GENO | 1),
  255. X          { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 },
  256. X            NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_HUMANOID,
  257. X          M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT | M1_PRINCE,
  258. X          M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(MAGENTA) },
  259. X/*      imps & other minor demons/devils */
  260. X        { "manes", S_IMP, 1, 3, 7, 0, -7, (G_GENO | G_LGROUP | G_NOCORPSE | 1),
  261. X          { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  262. X            { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
  263. X          10, 100, 0, MS_JEER, M1_VSMALL | M1_POIS | M1_STALK, 0, C(RED) },
  264. X        { "homunculus", S_IMP, 2, 12, 6, 10, -7, (G_GENO | 2),
  265. X          { { AT_BITE, AD_SLEE, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  266. X          20, 200, 0, MS_SILENT, M1_VSMALL | M1_FLY | M1_POIS | M1_POIS_RES |
  267. X          M1_SLEE_RES | M1_STALK, 0, C(GREEN) },
  268. X        { "lemure", S_IMP, 3, 3, 7, 0, -7,
  269. X          (G_HELL | G_GENO | G_LGROUP | G_NOCORPSE | 1),
  270. X          { { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  271. X          10, 100, 0, MS_SILENT, M1_POIS | M1_SLEE_RES | M1_REGEN | M1_STALK,
  272. X          M2_HOSTILE | M2_WANDER, C(RED) },
  273. X        { "imp", S_IMP, 3, 12, 2, 20, -7, (G_GENO | 1),
  274. X          { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  275. X          1, 10, 0, MS_JEER, M1_VSMALL | M1_REGEN | M1_STALK,
  276. X          M2_WANDER, C(RED) },
  277. X        { "quasit", S_IMP, 3, 15, 2, 20, -7, (G_GENO | 2),
  278. X          { { AT_CLAW, AD_DRDX, 1, 2 }, { AT_CLAW, AD_DRDX, 1, 2 },
  279. X            { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
  280. X          20, 200, 0, MS_SILENT, M1_VSMALL | M1_POIS_RES | M1_REGEN | M1_STALK,
  281. X          0, C(RED) },
  282. X        { "tengu", S_IMP, 6, 13, 5, 30, 7, (G_GENO | 3),
  283. X          { { AT_BITE, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  284. X          30, 300, 0, MS_SQAWK, M1_VSMALL | M1_POIS_RES | M1_TPORT |
  285. X          M1_TPORT_CONTROL | M1_STALK, 0, C(CYAN) },
  286. X/*      j ??? */
  287. X/*      kobolds         */
  288. X        { "kobold", S_KOBOLD,  0, 6, 7, 0, -2, (G_GENO | 1),
  289. X          { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  290. X          10, 100, 0, MS_ORC, M1_HUMANOID | M1_POIS | M1_COLLECT,
  291. X          M2_HOSTILE, C(BROWN) },
  292. X        { "large kobold", S_KOBOLD,  1, 6, 6, 0, -3, (G_GENO | 1),
  293. X          { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  294. X          15, 150, 0, MS_ORC, M1_HUMANOID | M1_POIS | M1_COLLECT,
  295. X          M2_HOSTILE, C(BROWN) },
  296. X        { "kobold lord", S_KOBOLD,  2, 6, 5, 0, -4, (G_GENO | 1),
  297. X          { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  298. X          20, 200, 0, MS_ORC, M1_HUMANOID | M1_POIS | M1_COLLECT | M1_LORD,
  299. X          M2_HOSTILE, C(MAGENTA) },
  300. X        { "kobold shaman", S_KOBOLD, 1, 6, 6, 10, -4, (G_GENO | 1),
  301. X          { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  302. X          15, 150, 0, MS_ORC, M1_HUMANOID | M1_POIS | M1_MAGIC, M2_HOSTILE,
  303. X      C(BROWN) },
  304. X/*      liches   */
  305. X        { "lich", S_LICH, 11, 6, 0, 30, -9, (G_GENO | 1),
  306. X          { { AT_TUCH, AD_COLD, 1, 10 }, { AT_MAGC, AD_SPEL, 0, 0 },
  307. X            NO_ATTK, NO_ATTK, NO_ATTK },
  308. X          30, 100, 0, MS_MUMBLE, M1_HUMANOID | M1_UNDEAD | M1_POIS |
  309. X          M1_COLD_RES | M1_REGEN, M2_HOSTILE, C(BROWN) },
  310. X        { "demilich", S_LICH, 14, 9, -2, 60, -12, (G_GENO | 1),
  311. X          { { AT_TUCH, AD_COLD, 3, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
  312. X            NO_ATTK, NO_ATTK, NO_ATTK },
  313. X          30, 100, 0, MS_MUMBLE, M1_HUMANOID | M1_UNDEAD | M1_POIS |
  314. X          M1_COLD_RES | M1_REGEN, M2_HOSTILE, C(BROWN) },
  315. X        { "master lich", S_LICH, 17, 9, -4, 90, -15, (G_HELL | G_GENO | 1),
  316. X          { { AT_TUCH, AD_COLD, 3, 6 }, { AT_MAGC, AD_SPEL, 0, 0 },
  317. X            NO_ATTK, NO_ATTK, NO_ATTK },
  318. X          30, 100, 0, MS_MUMBLE, M1_HUMANOID | M1_UNDEAD | M1_POIS |
  319. X          M1_FIRE_RES | M1_COLD_RES | M1_REGEN, M2_HOSTILE, C(BROWN) },
  320. X/*      mimics  */
  321. X        { "small mimic", S_MIMIC, 7, 3, 7, 0, 0, (G_GENO | 2),
  322. X          { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  323. X          20, 200, 0, MS_SILENT, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
  324. X          M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(BROWN) },
  325. X        { "large mimic", S_MIMIC, 8, 3, 7, 10, 0, (G_GENO | 1),
  326. X          { { AT_CLAW, AD_STCK, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  327. X          40, 400, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
  328. X          M2_HOSTILE | M2_STRONG | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE,
  329. X      C(BROWN) },
  330. X        { "giant mimic", S_MIMIC, 9, 3, 7, 20, 0, (G_GENO | 1),
  331. X          { { AT_CLAW, AD_STCK, 3, 6 }, { AT_CLAW, AD_STCK, 3, 6 },
  332. X            NO_ATTK, NO_ATTK, NO_ATTK },
  333. X          60, 500, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
  334. X          M2_HOSTILE | M2_STRONG | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE,
  335. X      C(BROWN) },
  336. X/*      nagas   */
  337. X        { "red naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  338. X          { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  339. X          20, 100, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_POIS_RES |
  340. X          M1_FIRE_RES, M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(RED) },
  341. X        { "black naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  342. X          { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  343. X          20, 100, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_POIS_RES |
  344. X          M1_STON_RES, M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(BLACK) },
  345. X        { "golden naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  346. X          { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  347. X          20, 100, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_POIS_RES, M2_STRONG |
  348. X          M2_NOLIMBS | M2_THICK_HIDE, C(HI_GOLD) },
  349. X        { "guardian naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  350. X          { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  351. X          20, 100, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_POIS_RES, M2_STRONG |
  352. X          M2_NOLIMBS | M2_THICK_HIDE, C(GREEN) },
  353. X        { "red naga", S_NAGA, 6, 12, 4, 0, -4, (G_GENO | 1),
  354. X          { { AT_BITE, AD_PHYS, 2, 4 }, { AT_BREA, AD_FIRE, 2, 6 },
  355. X            NO_ATTK, NO_ATTK, NO_ATTK }, 60, 400, 0, MS_MUMBLE,
  356. X          M1_BIG | M1_NOHANDS | M1_EGGS | M1_POIS_RES | M1_FIRE_RES,
  357. X          M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(RED) },
  358. X        { "black naga", S_NAGA, 8, 14, 2, 10, 4, (G_GENO | 1),
  359. X          { { AT_BITE, AD_PHYS, 2, 6 }, { AT_SPIT, AD_ACID, 0, 0 },
  360. X            NO_ATTK, NO_ATTK, NO_ATTK }, 60, 400, 0, MS_MUMBLE,
  361. X          M1_BIG | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES | M1_STON_RES,
  362. X          M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(BLACK) },
  363. X        { "golden naga", S_NAGA, 10, 14, 2, 70, 5, (G_GENO | 1),
  364. X          { { AT_BITE, AD_PHYS, 2, 6 }, { AT_MAGC, AD_SPEL, 4, 6 },
  365. X            NO_ATTK, NO_ATTK, NO_ATTK },
  366. X          60, 400, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_EGGS | M1_POIS_RES,
  367. X          M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(HI_GOLD) },
  368. X        { "guardian naga", S_NAGA, 12, 16, 0, 50, 7, (G_GENO | 1),
  369. X          { { AT_BITE, AD_PLYS, 1, 6 }, { AT_HUGS, AD_PHYS, 2, 4 },
  370. X            { AT_SPIT, AD_ACID, 1, 6 }, NO_ATTK, NO_ATTK },
  371. X          60, 400, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_EGGS | M1_POIS_RES,
  372. X          M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(GREEN) },
  373. X/*      orcs    */
  374. X        { "goblin", S_ORC,  0, 6, 6, 0, -3, (G_GENO | 2),
  375. X          { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  376. X          10, 100, 0, MS_ORC, M1_HUMANOID | M1_COLLECT, M2_ORC, C(YELLOW) },
  377. X        { "hobgoblin", S_ORC,  1, 9, 6, 0, -4, (G_GENO | 2),
  378. X          { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  379. X          20, 200, 0, MS_ORC, M1_HUMANOID | M1_COLLECT, M2_ORC | M2_STRONG,
  380. X      C(RED)},
  381. X        /* "orc" for zombie corpses only; they don't get created at random */
  382. X        { "orc", S_ORC,  1, 9, 6, 0, -3, (G_GENO | G_NOGEN | G_LGROUP),
  383. X          { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  384. X          15, 150, 0, MS_ORC,
  385. X          M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  386. X          M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
  387. X        { "hill orc", S_ORC, 2, 9, 6, 0, -4, (G_GENO | G_LGROUP | 2),
  388. X          { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  389. X          20, 200, 0, MS_ORC,
  390. X          M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  391. X          M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
  392. X#ifdef TOLKIEN
  393. X        { "Mordor orc", S_ORC, 3, 5, 6, 0, -5, (G_GENO | G_LGROUP | 1),
  394. X          { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  395. X          20, 200, 0, MS_ORC,
  396. X          M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  397. X          M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
  398. X        { "Uruk-hai", S_ORC, 3, 7, 5, 0, -4, (G_GENO | G_LGROUP | 1),
  399. X          { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  400. X          30, 300, 0, MS_ORC,
  401. X          M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  402. X          M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
  403. X#endif
  404. X        { "orc shaman", S_ORC, 3, 9, 5, 10, -5, (G_GENO | 1),
  405. X          { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  406. X          30, 300, 0, MS_ORC, M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_MAGIC,
  407. X          M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
  408. X        { "orc-captain", S_ORC, 5, 5, 4, 0, -5, (G_GENO | 1),
  409. X          { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  410. X            NO_ATTK, NO_ATTK, NO_ATTK },
  411. X          35, 350, 0, MS_ORC,
  412. X          M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  413. X          M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
  414. X/*       piercers       */
  415. X        { "rock piercer", S_PIERCER, 3, 1, 3, 0, 0, (G_GENO | 2),
  416. X          { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  417. X          20, 200, 0, MS_SILENT, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
  418. X          M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
  419. X        { "iron piercer", S_PIERCER, 5, 1, 0, 0, 0, (G_GENO | 1),
  420. X          { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  421. X          40, 300, 0, MS_SILENT, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
  422. X          M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
  423. X/*      quadrupeds (generic)    */
  424. X        { "rothe", S_QUADRUPED, 2, 9, 7, 0, 0, (G_GENO | G_SGROUP | 4),
  425. X          { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 1, 3 },
  426. X            { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
  427. X          10, 100, 0, MS_SILENT, M1_ANIMAL | M1_NOHANDS,
  428. X          M2_HOSTILE | M2_CARNIVORE, C(WHITE) },
  429. X        { "osquip", S_QUADRUPED, 3, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3),
  430. X          { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  431. X          20, 200, 0, MS_SILENT, M1_ANIMAL | M1_NOHANDS,
  432. X          M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  433. X#ifdef TOLKIEN
  434. X        { "mumakil", S_QUADRUPED, 5, 9, 0, 0, -2, (G_GENO | 1),
  435. X          { { AT_BUTT, AD_PHYS, 4, 12 }, { AT_BITE, AD_PHYS, 2, 6 },
  436. X            NO_ATTK, NO_ATTK, NO_ATTK },
  437. X          70, 500, 0, MS_SILENT, M1_ANIMAL | M1_NOHANDS | M1_BIG,
  438. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) },
  439. X#endif
  440. X        { "leocrotta", S_QUADRUPED, 6, 18, 4, 10, 0, (G_GENO | 2),
  441. X          { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_BITE, AD_PHYS, 2, 6 },
  442. X            { AT_CLAW, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  443. X          50, 500, 0, MS_IMITATE, M1_BIG | M1_ANIMAL | M1_NOHANDS,
  444. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
  445. X        { "wumpus", S_QUADRUPED, 8, 3, 2, 10, 0, (G_GENO | 1),
  446. X          { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  447. X          50, 500, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOHANDS,
  448. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(HI_MON) },
  449. X        { "titanothere", S_QUADRUPED, 12, 12, 6, 0, 0, (G_GENO | 2),
  450. X          { { AT_CLAW, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  451. X          65, 650, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOHANDS,
  452. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) },
  453. X        { "baluchitherium", S_QUADRUPED, 14, 12, 5, 0, 0, (G_GENO | 2),
  454. X          { { AT_CLAW, AD_PHYS, 5, 4 }, { AT_CLAW, AD_PHYS, 5, 4 },
  455. X            NO_ATTK, NO_ATTK, NO_ATTK },
  456. X          80, 800, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOHANDS,
  457. X          M2_HOSTILE | M2_STRONG | M2_HERBIVORE | M2_THICK_HIDE, C(GRAY) },
  458. X/*      rodents         */
  459. X        { "sewer rat",  S_RODENT, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 1),
  460. X          { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  461. X          2, 20, 0, MS_SQEEK, M1_VSMALL | M1_ANIMAL | M1_NOHANDS,
  462. X          M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  463. X        { "giant rat",  S_RODENT, 1, 10, 7, 0, 0, (G_GENO | G_SGROUP | 2),
  464. X          { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  465. X          3, 30, 0, MS_SQEEK, M1_VSMALL | M1_ANIMAL | M1_NOHANDS,
  466. X          M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  467. X        { "rabid rat", S_RODENT, 2, 12, 6, 0, 0, (G_GENO | 1),
  468. X          { { AT_BITE, AD_DRCO, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  469. X          3, 10, 0, MS_SQEEK, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_POIS,
  470. X          M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  471. X        { "ratwere", S_RODENT, 2, 12, 6, 10, -7, G_NOGEN | G_NOCORPSE,
  472. X          { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  473. X          3, 30, 0, MS_SQEEK, M1_VSMALL | M1_WERE | M1_NOHANDS | M1_NOPOLY |
  474. X          M1_POIS | M1_REGEN, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  475. X        { "rock mole", S_RODENT, 3, 3, 0, 20, 0, (G_GENO | 2),
  476. X          { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  477. X          3, 30, 0, MS_SILENT, M1_VSMALL | M1_ANIMAL | M1_NOHANDS |
  478. X          M1_GREEDY | M1_JEWELS | M1_COLLECT, M2_HOSTILE | M2_TUNNEL, C(BROWN)},
  479. X/*      spiders and scorpions   */
  480. X        { "cave spider", S_SPIDER, 1, 12, 3, 0, 0, (G_GENO | G_SGROUP | 2),
  481. X          { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  482. X          5, 50, 0, MS_SILENT, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_EGGS |
  483. X          M1_POIS_RES, M2_HOSTILE | M2_CONCEAL | M2_CARNIVORE, C(WHITE) },
  484. X        { "scorpion", S_SPIDER, 5, 15, 3, 0, 0, (G_GENO | 2),
  485. X          { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 },
  486. X            { AT_STNG, AD_DRST, 1, 4 }, NO_ATTK, NO_ATTK },
  487. X          10, 100, 0, MS_SILENT, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_EGGS |
  488. X          M1_POIS, M2_HOSTILE | M2_CONCEAL | M2_CARNIVORE, C(RED) },
  489. X        { "giant spider", S_SPIDER, 5, 15, 4, 0, 0, (G_GENO | 1),
  490. X          { { AT_BITE, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  491. X          10, 100, 0, MS_SILENT,
  492. X          M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES,
  493. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(MAGENTA) },
  494. X/*      trappers, lurkers, etc...       */
  495. X        { "lurker above", S_TRAPPER, 10, 3, 3, 0, 0, (G_GENO | 2),
  496. X          { { AT_ENGL, AD_DGST, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  497. X          40, 350, 0, MS_SILENT,
  498. X          M1_BIG | M1_ANIMAL | M1_NOEYES | M1_NOHANDS | M1_STALK | M1_FLY,
  499. X          M2_HOSTILE | M2_STRONG | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
  500. X        { "trapper", S_TRAPPER, 12, 3, 3, 0, 0, (G_GENO | 2),
  501. X          { { AT_ENGL, AD_DGST, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  502. X          40, 350, 0, MS_SILENT,
  503. X          M1_BIG | M1_ANIMAL | M1_NOEYES | M1_NOHANDS | M1_STALK,
  504. X          M2_HOSTILE | M2_STRONG | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
  505. X/*      unicorns        */
  506. X        { "white unicorn", S_UNICORN, 4, 24, 2, 70, 7, (G_GENO | 2),
  507. X          { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  508. X            NO_ATTK, NO_ATTK, NO_ATTK },
  509. X          30, 300, 0, MS_NEIGH, M1_BIG | M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
  510. X          M2_WANDER | M2_STRONG | M2_HERBIVORE, C(WHITE) },
  511. X        { "gray unicorn", S_UNICORN, 4, 24, 2, 70, 0, (G_GENO | 1),
  512. X          { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  513. X            NO_ATTK, NO_ATTK, NO_ATTK },
  514. X          30, 300, 0, MS_NEIGH, M1_BIG | M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
  515. X          M2_WANDER | M2_STRONG | M2_HERBIVORE, C(GRAY) },
  516. X        { "black unicorn", S_UNICORN, 4, 24, 2, 70, -7, (G_GENO | 1),
  517. X          { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  518. X            NO_ATTK, NO_ATTK, NO_ATTK },
  519. X          30, 300, 0, MS_NEIGH, M1_BIG | M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
  520. X          M2_WANDER | M2_STRONG | M2_HERBIVORE, C(BLACK) },
  521. X/*      vortices        */
  522. X        { "fog cloud",  S_VORTEX, 3,  1, 0, 0, 0, (G_GENO | G_NOCORPSE | 2),
  523. X          { { AT_ENGL, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  524. X          10, 0, 0, MS_SILENT,
  525. X          M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES, M2_HOSTILE |
  526. X          M2_NOLIMBS, C(GRAY) },
  527. X        { "dust vortex", S_VORTEX, 4, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 2),
  528. X          { { AT_ENGL, AD_BLND, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  529. X          20, 0, 0, MS_SILENT,
  530. X          M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES, M2_HOSTILE |
  531. X          M2_NOLIMBS, C(BROWN) },
  532. X        { "energy vortex", S_VORTEX, 6, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
  533. X          { { AT_ENGL, AD_ELEC, 1, 6 }, { AT_ENGL, AD_DREN, 0, 0 },
  534. X            NO_ATTK, NO_ATTK, NO_ATTK }, 20, 0, 0, MS_SILENT,
  535. X          M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_ELEC_RES,
  536. X          M2_HOSTILE | M2_NOLIMBS, C(BLUE) },
  537. X        { "ice vortex", S_VORTEX, 5, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
  538. X          { { AT_ENGL, AD_COLD, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  539. X          30, 0, 0, MS_SILENT,
  540. X          M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_COLD_RES,
  541. X          M2_HOSTILE | M2_NOLIMBS, C(CYAN) },
  542. X        { "steam vortex", S_VORTEX, 7, 22, 2, 30, 0,
  543. X          (G_HELL | G_GENO | G_NOCORPSE | 2),
  544. X          { { AT_ENGL, AD_FIRE, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  545. X          30, 0, 0, MS_SILENT,
  546. X          M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FIRE_RES,
  547. X          M2_HOSTILE | M2_NOLIMBS, C(BRIGHT|BLUE) },
  548. X        { "fire vortex", S_VORTEX, 8, 22, 2, 30, 0,
  549. X          (G_HELL | G_GENO | G_NOCORPSE | 1),
  550. X          { { AT_ENGL, AD_FIRE, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  551. X          3, 0, 0, MS_SILENT,
  552. X          M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FIRE_RES,
  553. X          M2_HOSTILE | M2_NOLIMBS, C(YELLOW) },
  554. X/*      worms   */
  555. X#ifdef WORM
  556. X        { "baby long worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
  557. X          { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  558. X          25, 250, 0, MS_SILENT, M1_ANIMAL | M1_NOHANDS, M2_HOSTILE |
  559. X          M2_NOLIMBS | M2_CARNIVORE, C(BROWN) },
  560. X#endif
  561. X        { "baby purple worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
  562. X          { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  563. X          25, 250, 0, MS_SILENT, M1_ANIMAL | M1_NOHANDS, M2_HOSTILE |
  564. X          M2_NOLIMBS | M2_CARNIVORE, C(MAGENTA) },
  565. X#ifdef WORM
  566. X        { "long worm", S_WORM, 8, 3, 5, 10, 0, (G_GENO | 2),
  567. X          { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  568. X          50, 500, 0, MS_SILENT,
  569. X          M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_NOPOLY | M1_EGGS,
  570. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_NOLIMBS | M2_CARNIVORE,
  571. X      C(BROWN) },
  572. X#endif
  573. X        { "purple worm", S_WORM, 15, 9, 6, 20, 0, (G_GENO | 2),
  574. X          { { AT_BITE, AD_PHYS, 2, 8 }, { AT_ENGL, AD_DGST, 1, 10 },
  575. X            NO_ATTK, NO_ATTK, NO_ATTK }, 70, 700, 0, MS_SILENT,
  576. X          M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_EGGS,
  577. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_NOLIMBS | M2_CARNIVORE,
  578. X      C(MAGENTA)},
  579. X/*      xan     */
  580. X        { "xan", S_XAN, 7, 18, -4, 0, 0, (G_GENO | 3),
  581. X          { { AT_STNG, AD_LEGS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  582. X          30, 300, 0, MS_BUZZ, M1_VSMALL | M1_FLY | M1_ANIMAL | M1_NOHANDS |
  583. X          M1_POIS | M1_POIS_RES, M2_HOSTILE, C(RED) },
  584. X/*      yellow light    */
  585. X        { "yellow light", S_YLIGHT,  3, 15, 0, 0, 0, (G_GENO | 4),
  586. X          { { AT_EXPL, AD_BLND, 10, 20 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  587. X          1, 10, 0, MS_SILENT, M1_FLY | M1_NOHANDS, M2_HOSTILE | M2_NOLIMBS,
  588. X      C(BRIGHT|YELLOW)},
  589. X/*      zruty   */
  590. X        { "zruty", S_ZRUTY, 9, 8, 3, 0, 0, (G_GENO | 2),
  591. X          { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  592. X            { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK },
  593. X          60, 600, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_HUMANOID,
  594. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BROWN) },
  595. X/*      Apes    */
  596. X        { "ape", S_APE, 4, 12, 6, 0, 0, (G_GENO | G_SGROUP | 2),
  597. X          { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  598. X            { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK },
  599. X          50, 500, 0, MS_GROWL, M1_BIG | M1_ANIMAL | M1_HUMANOID,
  600. X          M2_STRONG | M2_CARNIVORE, C(BROWN) },
  601. X        { "carnivorous ape", S_APE, 5, 12, 6, 0, 0, (G_GENO | 1),
  602. X          { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  603. X            { AT_HUGS, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
  604. X          55, 550, 0, MS_GROWL, M1_BIG | M1_ANIMAL | M1_HUMANOID,
  605. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BROWN) },
  606. X/*      Bats    */
  607. X        { "bat", S_BAT, 0, 22, 8, 0, 0, (G_GENO | G_SGROUP | 1),
  608. X          { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  609. X          2, 20, 0, MS_SQEEK, M1_VSMALL | M1_FLY | M1_ANIMAL | M1_NOHANDS,
  610. X          M2_WANDER | M2_CARNIVORE, C(BLACK) },
  611. X        { "giant bat", S_BAT, 2, 22, 7, 0, 0, (G_GENO | 2),
  612. X          { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  613. X          3, 30, 0, MS_SQEEK, M1_FLY | M1_ANIMAL | M1_NOHANDS,
  614. X          M2_WANDER | M2_HOSTILE | M2_CARNIVORE, C(BLACK) },
  615. X        { "vampire bat", S_BAT, 5, 20, 6, 0, 0, (G_GENO | 2),
  616. X          { { AT_BITE, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRST, 0, 0 },
  617. X            NO_ATTK, NO_ATTK, NO_ATTK },
  618. X          3, 20, 0, MS_SQEEK, M1_VSMALL | M1_FLY | M1_ANIMAL | M1_UNDEAD |
  619. X          M1_NOHANDS | M1_POIS | M1_REGEN, M2_HOSTILE, C(BLACK) },
  620. X/*      Centaurs        */
  621. X        { "plains centaur", S_CENTAUR, 4, 18, 4, 0, 0, (G_GENO | 1),
  622. X          { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_KICK, AD_PHYS, 1, 6 },
  623. X            NO_ATTK, NO_ATTK, NO_ATTK},
  624. X          50, 500, 0, MS_SILENT, M1_BIG | M1_COLLECT | M1_GREEDY, M2_STRONG,
  625. X      C(BROWN)  },
  626. X        { "forest centaur", S_CENTAUR, 5, 18, 3, 10, -1, (G_GENO | 1),
  627. X          { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_KICK, AD_PHYS, 1, 6 },
  628. X            NO_ATTK, NO_ATTK, NO_ATTK},
  629. X          55, 600, 0, MS_SILENT, M1_BIG | M1_COLLECT | M1_GREEDY, M2_STRONG,
  630. X      C(GREEN)  },
  631. X        { "mountain centaur", S_CENTAUR, 6, 20, 2, 10, -3, (G_GENO | 1),
  632. X          { { AT_WEAP, AD_PHYS, 1, 10 }, { AT_KICK, AD_PHYS, 1, 6 },
  633. X            { AT_KICK, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK },
  634. X          55, 500, 0, MS_SILENT, M1_BIG | M1_COLLECT | M1_GREEDY, M2_STRONG,
  635. X      C(BROWN)},
  636. X/*      Dragons         */
  637. X        { "baby gray dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  638. X          { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  639. X          50, 500, 0, MS_ROAR,
  640. X          M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS,
  641. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) },
  642. X        { "baby red dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  643. X          { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  644. X          50, 500, 0, MS_ROAR,
  645. X          M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_FIRE_RES,
  646. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(RED) },
  647. X        { "baby white dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  648. X          { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  649. X          50, 500, 0, MS_ROAR,
  650. X          M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_COLD_RES,
  651. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(WHITE) },
  652. X        { "baby blue dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  653. X          { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  654. X          50, 500, 0, MS_ROAR,
  655. X          M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_ELEC_RES,
  656. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(BLUE) },
  657. X        { "baby green dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  658. X          { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  659. X          50, 500, 0, MS_ROAR,
  660. X          M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_POIS |
  661. X          M1_POIS_RES, M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE,
  662. X      C(GREEN)},
  663. X        { "baby orange dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  664. X          { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  665. X          50, 500, 0, MS_ROAR,
  666. X          M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_SLEE_RES,
  667. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE,
  668. X      C(ORANGE_COLORED) },
  669. X        { "baby black dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  670. X          { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  671. X          50, 500, 0, MS_ROAR,
  672. X          M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS,
  673. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(BLACK) },
  674. X        { "baby yellow dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  675. X          { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  676. X          50, 500, 0, MS_ROAR,
  677. X          M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS,
  678. X          M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(YELLOW) },
  679. X        { "gray dragon", S_DRAGON, 10, 9, -1, 20, 4, (G_GENO | 1),
  680. X          { { AT_BREA, AD_MAGM, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  681. X            { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  682. X          150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS |
  683. X          M1_EGGS | M1_GREEDY | M1_JEWELS | M1_MAGIC,
  684. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
  685. X      C(GRAY)},
  686. X        { "red dragon", S_DRAGON, 10, 9, -1, 20, -4, (G_GENO | 1),
  687. X          { { AT_BREA, AD_FIRE, 6, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  688. X            { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  689. X          150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS |
  690. X          M1_EGGS | M1_FIRE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
  691. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
  692. X      C(RED)},
  693. X        { "orange dragon", S_DRAGON, 10, 9, -1, 20, 5, (G_GENO | 1),
  694. X          { { AT_BREA, AD_SLEE, 4, 25 }, { AT_BITE, AD_PHYS, 3, 8 },
  695. X            { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  696. X          150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS |
  697. X          M1_EGGS | M1_SLEE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
  698. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
  699. X      C(ORANGE_COLORED)},
  700. X        { "white dragon", S_DRAGON, 10, 9, -1, 20, -5, (G_GENO | 1),
  701. X          { { AT_BREA, AD_COLD, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  702. X            { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  703. X          150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS |
  704. X          M1_EGGS | M1_COLD_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
  705. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
  706. X      C(WHITE)},
  707. X        { "black dragon", S_DRAGON, 10, 9, -1, 20, -6, (G_GENO | 1),
  708. X          { { AT_BREA, AD_DISN, 4, 10 }, { AT_BITE, AD_PHYS, 3, 8 },
  709. X            { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  710. X          150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS |
  711. X          M1_EGGS | M1_GREEDY | M1_JEWELS | M1_MAGIC,
  712. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
  713. X      C(BLACK)},
  714. X        { "blue dragon", S_DRAGON, 10, 9, -1, 20, -7, (G_GENO | 1),
  715. X          { { AT_BREA, AD_ELEC, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  716. X            { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  717. X          150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS |
  718. X          M1_EGGS | M1_ELEC_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
  719. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
  720. X      C(BLUE)},
  721. X        { "green dragon", S_DRAGON, 10, 9, -1, 20, 6, (G_GENO | 1),
  722. X          { { AT_BREA, AD_DRST, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  723. X            { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  724. X          150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS |
  725. X          M1_EGGS | M1_POIS | M1_POIS_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
  726. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
  727. X      C(GREEN)},
  728. X        { "yellow dragon", S_DRAGON, 10, 9, -1, 20, 7, (G_GENO | 1),
  729. X          { { AT_BREA, AD_ACID, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  730. X            { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  731. X          150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS |
  732. X          M1_EGGS | M1_POIS | M1_STON_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
  733. X          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
  734. X      C(YELLOW)},
  735. X/*      Elementals      */
  736. X        { "air elemental", S_ELEMENTAL, 8, 36, 2, 30, 0, (G_NOCORPSE | 1),
  737. X          { { AT_ENGL, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  738. X          5, 0, 0, MS_SILENT,
  739. X          M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FLY,
  740. X          M2_STRONG | M2_NOLIMBS, C(CYAN) },
  741. X        { "fire elemental", S_ELEMENTAL, 8, 12, 2, 30, 0, (G_NOCORPSE | 1),
  742. X          { { AT_CLAW, AD_FIRE, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  743. X          5, 0, 0, MS_SILENT,
  744. X          M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FLY | M1_FIRE_RES,
  745. X          M2_STRONG | M2_NOLIMBS, C(YELLOW) },
  746. X        { "earth elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
  747. X          { { AT_CLAW, AD_PHYS, 4, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  748. X          50, 0, 0, MS_SILENT,
  749. X          M1_BIG | M1_WALLWALK | M1_NOEYES | M1_NOHANDS | M1_POIS_RES |
  750. X          M1_STON_RES, M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(BROWN) },
  751. X        { "water elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
  752. X          { { AT_CLAW, AD_PHYS, 5, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  753. X          50, 0, 0, MS_SILENT,
  754. X          M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_SWIM,
  755. X          M2_STRONG | M2_NOLIMBS, C(BLUE) },
  756. X/*      Fungi   */
  757. X        { "violet fungus", S_FUNGUS, 3, 1, 7, 0, 0, (G_GENO | 2),
  758. X          { { AT_TUCH, AD_PHYS, 1, 4 }, { AT_TUCH, AD_STCK, 0, 0 },
  759. X            NO_ATTK, NO_ATTK, NO_ATTK }, 10, 100, 0, MS_SILENT, M1_VSMALL |
  760. X          M1_NOEYES | M1_NOHANDS | M1_POIS_RES,
  761. X          M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, C(MAGENTA) },
  762. X        { "brown mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  763. X          { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  764. X          5, 30, 0, MS_SILENT, M1_VSMALL | M1_NOEYES | M1_NOHANDS |
  765. X          M1_POIS_RES | M1_COLD_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
  766. X      C(BROWN)},
  767. X        { "yellow mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 2),
  768. X          { { AT_NONE, AD_STUN, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  769. X          5, 30, 0, MS_SILENT, M1_VSMALL | M1_NOEYES | M1_NOHANDS |
  770. X          M1_POIS | M1_POIS_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
  771. X      C(YELLOW)},
  772. X        { "green mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  773. X          { { AT_NONE, AD_ACID, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  774. X          5, 30, 0, MS_SILENT, M1_VSMALL | M1_NOEYES | M1_NOHANDS |
  775. X          M1_POIS | M1_STON_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
  776. X      C(GREEN)},
  777. X        { "red mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  778. X          { { AT_NONE, AD_FIRE, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  779. X          5, 30, 0, MS_SILENT, M1_VSMALL | M1_NOEYES | M1_NOHANDS |
  780. X          M1_POIS_RES | M1_FIRE_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
  781. X      C(RED)},
  782. X/*      Gnomes  */
  783. X        { "gnome", S_GNOME, 1, 6, 5, 4, 0, (G_GENO | G_SGROUP | 1),
  784. X          { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  785. X          10, 100, 0, MS_ORC, M1_HUMANOID | M1_COLLECT, 0, C(HI_MON) },
  786. X        { "gnome lord", S_GNOME, 3, 8, 4, 4, 0, (G_GENO | 2),
  787. X          { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  788. X          15, 120, 0, MS_ORC, M1_HUMANOID | M1_COLLECT | M1_LORD, 0, C(HI_MON) },
  789. X        { "gnome king", S_GNOME, 5, 10, 2, 20, 0, (G_GENO | 1),
  790. X          { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  791. X          20, 150, 0, MS_ORC, M1_HUMANOID | M1_COLLECT | M1_PRINCE, 0,
  792. X      C(MAGENTA)},
  793. X        { "gnomish wizard", S_GNOME, 3, 10, 4, 10, 0, (G_GENO | 1),
  794. X          { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  795. X          15, 120, 0, MS_ORC, M1_HUMANOID | M1_MAGIC, 0, C(HI_MON) },
  796. X#ifdef SPLITMON_1
  797. X};
  798. X#endif
  799. X#endif /* !SPLITMON_2 */
  800. X
  801. END_OF_FILE
  802. if test 44627 -ne `wc -c <'src/monst.c1'`; then
  803.     echo shar: \"'src/monst.c1'\" unpacked with wrong size!
  804. fi
  805. # end of 'src/monst.c1'
  806. echo shar: End of archive 10 \(of 11\).
  807. cp /dev/null ark10isdone
  808. MISSING=""
  809. for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
  810.     if test ! -f ark${I}isdone ; then
  811.     MISSING="${MISSING} ${I}"
  812.     fi
  813. done
  814. if test "${MISSING}" = "" ; then
  815.     echo You have unpacked all 11 archives.
  816.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  817. else
  818.     echo You still need to unpack the following archives:
  819.     echo "        " ${MISSING}
  820. fi
  821. ##  End of shell archive.
  822. exit 0
  823.