Source:NetHack 3.6.1/src/monst.c

From NetHackWiki
(Redirected from Source:Monst.c)
Jump to: navigation, search

Below is the full text to monst.c from the source code of NetHack 3.6.1. To link to a particular line, write [[Source:NetHack 3.6.1/src/monst.c#line123]], for example.

Top of file

  1.  /* NetHack 3.6	monst.c	$NHDT-Date: 1510531569 2017/11/13 00:06:09 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.59 $ */
  2.  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  3.  /*-Copyright (c) Michael Allison, 2006. */
  4.  /* NetHack may be freely redistributed.  See license for details. */

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

monst_init

  1.  /* dummy routine used to force linkage */
  2.  void
  3.  monst_init()
  4.  {
  5.      return;
  6.  }
  7.  
  8.  struct attack sa_yes[NATTK] = SEDUCTION_ATTACKS_YES;
  9.  struct attack sa_no[NATTK] = SEDUCTION_ATTACKS_NO;
  10.  #endif
  11.  
  12.  /*monst.c*/