Source:NetHack 3.6.0/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.0. To link to a particular line, write [[Source:NetHack 3.6.0/src/monst.c#line123]], for example.

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.

Top of file

  1.  /* NetHack 3.6	monst.c	$NHDT-Date: 1445556875 2015/10/22 23:34:35 $  $NHDT-Branch: master $:$NHDT-Revision: 1.53 $ */
  2.  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  3.  /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5.  #include "config.h"
  6.  #include "permonst.h"
  7.  #include "monsym.h"
  8.  
  9.  #define NO_ATTK    \
  10.      {              \
  11.          0, 0, 0, 0 \
  12.      }
  13.  
  14.  #define WT_ELF 800
  15.  #define WT_DRAGON 4500
  16.  
  17.  #ifdef C
  18.  #undef C
  19.  #endif
  20.  #ifdef TEXTCOLOR
  21.  #include "color.h"
  22.  #define C(color) color
  23.  #define HI_DOMESTIC CLR_WHITE /* use for player + friendlies */
  24.  #define HI_LORD CLR_MAGENTA
  25.  #else
  26.  #define C(color)
  27.  #endif
  28.  
  29.  void NDECL(monst_init);

Monster macros

  1.  /*
  2.   *	Entry Format:		(from permonst.h)
  3.   *
  4.   *	name, symbol (S_* defines),
  5.   *	difficulty level, move rate, armor class, magic resistance,
  6.   *	alignment, creation/geno flags (G_* defines),
  7.   *	6 * attack structs ( type , damage-type, # dice, # sides ),
  8.   *	weight (WT_* defines), nutritional value, extension length,
  9.   *	sounds made (MS_* defines), physical size (MZ_* defines),
  10.   *	resistances, resistances conferred (both MR_* defines),
  11.   *	3 * flag bitmaps (M1_*, M2_*, and M3_* defines respectively)
  12.   *	symbol color (C(x) macro)
  13.   */
  14.  #define MON(nam, sym, lvl, gen, atk, siz, mr1, mr2, flg1, flg2, flg3, col) \
  15.      {                                                                      \
  16.          nam, sym, lvl, gen, atk, siz, mr1, mr2, flg1, flg2, flg3, C(col)   \
  17.      }
  18.  /* LVL() and SIZ() collect several fields to cut down on # of args for MON()
  19.   */
  20.  #define LVL(lvl, mov, ac, mr, aln) lvl, mov, ac, mr, aln
  21.  #define SIZ(wt, nut, snd, siz) wt, nut, snd, siz
  22.  /* ATTK() and A() are to avoid braces and commas within args to MON() */
  23.  #define ATTK(at, ad, n, d) \
  24.      {                      \
  25.          at, ad, n, d       \
  26.      }
  27.  #define A(a1, a2, a3, a4, a5, a6) \
  28.      {                             \
  29.          a1, a2, a3, a4, a5, a6    \
  30.      }
  31.  
  32.  /*
  33.   *	Rule #1:	monsters of a given class are contiguous in the
  34.   *			mons[] array.
  35.   *
  36.   *	Rule #2:	monsters of a given class are presented in ascending
  37.   *			order of strength.
  38.   *
  39.   *	Rule #3:	monster frequency is included in the geno mask;
  40.   *			the frequency can be from 0 to 7.  0's will also
  41.   *			be skipped during generation.
  42.   *
  43.   *	Rule #4:	monster subclasses (e.g. giants) should be kept
  44.   *			together, unless it violates Rule 2.  NOGEN monsters
  45.   *			won't violate Rule 2.
  46.   *
  47.   * Guidelines for color assignment:
  48.   *
  49.   *	* Use the same color for all `growth stages' of a monster (ex.
  50.   *	  little dog/big dog, baby naga/full-grown naga.
  51.   *
  52.   *	* Use colors given in names wherever possible. If the class has `real'
  53.   *	  members with strong color associations, use those.
  54.   *
  55.   *	* Favor `cool' colors for cold-resistant monsters, `warm' ones for
  56.   *	  fire-resistant ones.
  57.   *
  58.   *	* Try to reserve purple (magenta) for powerful `ruler' monsters (queen
  59.   *	  bee, kobold lord, &c.).
  60.   *
  61.   *	* Subject to all these constraints, try to use color to make as many
  62.   *	  distinctions as the / command (that is, within a monster letter
  63.   *	  distinct names should map to distinct colors).
  64.   *
  65.   * The aim in assigning colors is to be consistent enough so a player can
  66.   * become `intuitive' about them, deducing some or all of these rules
  67.   * unconsciously. Use your common sense.
  68.   */
  69.  
  70.  #ifndef SPLITMON_2
  71.  NEARDATA struct permonst mons[] = {

Ants

  1.      /*
  2.       * ants
  3.       */
  4.      MON("giant ant", S_ANT, LVL(2, 18, 3, 0, 0), (G_GENO | G_SGROUP | 3),
  5.          A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(10, 10, MS_SILENT, MZ_TINY), 0, 0,
  8.          M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE, M2_HOSTILE, 0,
  9.          CLR_BROWN),
  10.      MON("killer bee", S_ANT, LVL(1, 18, -1, 0, 0), (G_GENO | G_LGROUP | 2),
  11.          A(ATTK(AT_STNG, AD_DRST, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(1, 5, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
  14.          M1_ANIMAL | M1_FLY | M1_NOHANDS | M1_POIS, M2_HOSTILE | M2_FEMALE, 0,
  15.          CLR_YELLOW),
  16.      MON("soldier ant", S_ANT, LVL(3, 18, 3, 0, 0), (G_GENO | G_SGROUP | 2),
  17.          A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_STNG, AD_DRST, 3, 4), NO_ATTK,
  18.            NO_ATTK, NO_ATTK, NO_ATTK),
  19.          SIZ(20, 5, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
  20.          M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS | M1_CARNIVORE,
  21.          M2_HOSTILE, 0, CLR_BLUE),
  22.      MON("fire ant", S_ANT, LVL(3, 18, 3, 10, 0), (G_GENO | G_SGROUP | 1),
  23.          A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_BITE, AD_FIRE, 2, 4), NO_ATTK,
  24.            NO_ATTK, NO_ATTK, NO_ATTK),
  25.          SIZ(30, 10, MS_SILENT, MZ_TINY), MR_FIRE, MR_FIRE,
  26.          M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE, M2_HOSTILE,
  27.          M3_INFRAVISIBLE, CLR_RED),
  28.      MON("giant beetle", S_ANT, LVL(5, 6, 4, 0, 0), (G_GENO | 3),
  29.          A(ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  30.            NO_ATTK),
  31.          SIZ(10, 10, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
  32.          M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_CARNIVORE, M2_HOSTILE, 0,
  33.          CLR_BLACK),
  34.      MON("queen bee", S_ANT, LVL(9, 24, -4, 0, 0), (G_GENO | G_NOGEN),
  35.          A(ATTK(AT_STNG, AD_DRST, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  36.            NO_ATTK),
  37.          SIZ(1, 5, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
  38.          M1_ANIMAL | M1_FLY | M1_NOHANDS | M1_OVIPAROUS | M1_POIS,
  39.          M2_HOSTILE | M2_FEMALE | M2_PRINCE, 0, HI_LORD),

Blobs

  1.      /*
  2.       * blobs
  3.       */
  4.      MON("acid blob", S_BLOB, LVL(1, 3, 8, 0, 0), (G_GENO | 2),
  5.          A(ATTK(AT_NONE, AD_ACID, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(30, 10, MS_SILENT, MZ_TINY),
  8.          MR_SLEEP | MR_POISON | MR_ACID | MR_STONE, MR_STONE,
  9.          M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  10.              | M1_MINDLESS | M1_ACID,
  11.          M2_WANDER | M2_NEUTER, 0, CLR_GREEN),
  12.      MON("quivering blob", S_BLOB, LVL(5, 1, 8, 0, 0), (G_GENO | 2),
  13.          A(ATTK(AT_TUCH, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  14.            NO_ATTK),
  15.          SIZ(200, 100, MS_SILENT, MZ_SMALL), MR_SLEEP | MR_POISON, MR_POISON,
  16.          M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
  17.          M2_WANDER | M2_HOSTILE | M2_NEUTER, 0, CLR_WHITE),
  18.      MON("gelatinous cube", S_BLOB, LVL(6, 6, 8, 0, 0), (G_GENO | 2),
  19.          A(ATTK(AT_TUCH, AD_PLYS, 2, 4), ATTK(AT_NONE, AD_PLYS, 1, 4), NO_ATTK,
  20.            NO_ATTK, NO_ATTK, NO_ATTK),
  21.          SIZ(600, 150, MS_SILENT, MZ_LARGE),
  22.          MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_ACID
  23.              | MR_STONE,
  24.          MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP,
  25.          M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_OMNIVORE
  26.              | M1_ACID,
  27.          M2_WANDER | M2_HOSTILE | M2_NEUTER, 0, CLR_CYAN),

Cockatrice

  1.      /*
  2.       * cockatrice
  3.       */
  4.      MON("chickatrice", S_COCKATRICE, LVL(4, 4, 8, 30, 0),
  5.          (G_GENO | G_SGROUP | 1),
  6.          A(ATTK(AT_BITE, AD_PHYS, 1, 2), ATTK(AT_TUCH, AD_STON, 0, 0),
  7.            ATTK(AT_NONE, AD_STON, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  8.          SIZ(10, 10, MS_HISS, MZ_TINY), MR_POISON | MR_STONE,
  9.          MR_POISON | MR_STONE, M1_ANIMAL | M1_NOHANDS | M1_OMNIVORE,
  10.          M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
  11.      MON("cockatrice", S_COCKATRICE, LVL(5, 6, 6, 30, 0), (G_GENO | 5),
  12.          A(ATTK(AT_BITE, AD_PHYS, 1, 3), ATTK(AT_TUCH, AD_STON, 0, 0),
  13.            ATTK(AT_NONE, AD_STON, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  14.          SIZ(30, 30, MS_HISS, MZ_SMALL), MR_POISON | MR_STONE,
  15.          MR_POISON | MR_STONE,
  16.          M1_ANIMAL | M1_NOHANDS | M1_OMNIVORE | M1_OVIPAROUS, M2_HOSTILE,
  17.          M3_INFRAVISIBLE, CLR_YELLOW),
  18.      MON("pyrolisk", S_COCKATRICE, LVL(6, 6, 6, 30, 0), (G_GENO | 1),
  19.          A(ATTK(AT_GAZE, AD_FIRE, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  20.            NO_ATTK),
  21.          SIZ(30, 30, MS_HISS, MZ_SMALL), MR_POISON | MR_FIRE,
  22.          MR_POISON | MR_FIRE,
  23.          M1_ANIMAL | M1_NOHANDS | M1_OMNIVORE | M1_OVIPAROUS, M2_HOSTILE,
  24.          M3_INFRAVISIBLE, CLR_RED),

Dogs and other canines

  1.      /*
  2.       * dogs & other canines
  3.       */
  4.      MON("jackal", S_DOG, LVL(0, 12, 7, 0, 0), (G_GENO | G_SGROUP | 3),
  5.          A(ATTK(AT_BITE, AD_PHYS, 1, 2), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(300, 250, MS_BARK, MZ_SMALL), 0, 0,
  8.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  9.          CLR_BROWN),
  10.      MON("fox", S_DOG, LVL(0, 15, 7, 0, 0), (G_GENO | 1),
  11.          A(ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(300, 250, MS_BARK, MZ_SMALL), 0, 0,
  14.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  15.          CLR_RED),
  16.      MON("coyote", S_DOG, LVL(1, 12, 7, 0, 0), (G_GENO | G_SGROUP | 1),
  17.          A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  18.            NO_ATTK),
  19.          SIZ(300, 250, MS_BARK, MZ_SMALL), 0, 0,
  20.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  21.          CLR_BROWN),
  22.      MON("werejackal", S_DOG, LVL(2, 12, 7, 10, -7), (G_NOGEN | G_NOCORPSE),
  23.          A(ATTK(AT_BITE, AD_WERE, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  24.            NO_ATTK),
  25.          SIZ(300, 250, MS_BARK, MZ_SMALL), MR_POISON, 0,
  26.          M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
  27.          M2_NOPOLY | M2_WERE | M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
  28.      MON("little dog", S_DOG, LVL(2, 18, 6, 0, 0), (G_GENO | 1),
  29.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  30.            NO_ATTK),
  31.          SIZ(150, 150, MS_BARK, MZ_SMALL), 0, 0,
  32.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
  33.          HI_DOMESTIC),
  34.      MON("dingo", S_DOG, LVL(4, 16, 5, 0, 0), (G_GENO | 1),
  35.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  36.            NO_ATTK),
  37.          SIZ(400, 200, MS_BARK, MZ_MEDIUM), 0, 0,
  38.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  39.          CLR_YELLOW),
  40.      MON("dog", S_DOG, LVL(4, 16, 5, 0, 0), (G_GENO | 1),
  41.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  42.            NO_ATTK),
  43.          SIZ(400, 200, MS_BARK, MZ_MEDIUM), 0, 0,
  44.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
  45.          HI_DOMESTIC),
  46.      MON("large dog", S_DOG, LVL(6, 15, 4, 0, 0), (G_GENO | 1),
  47.          A(ATTK(AT_BITE, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  48.            NO_ATTK),
  49.          SIZ(800, 250, MS_BARK, MZ_MEDIUM), 0, 0,
  50.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_STRONG | M2_DOMESTIC,
  51.          M3_INFRAVISIBLE, HI_DOMESTIC),
  52.      MON("wolf", S_DOG, LVL(5, 12, 4, 0, 0), (G_GENO | G_SGROUP | 2),
  53.          A(ATTK(AT_BITE, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  54.            NO_ATTK),
  55.          SIZ(500, 250, MS_BARK, MZ_MEDIUM), 0, 0,
  56.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  57.          CLR_BROWN),
  58.      MON("werewolf", S_DOG, LVL(5, 12, 4, 20, -7), (G_NOGEN | G_NOCORPSE),
  59.          A(ATTK(AT_BITE, AD_WERE, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  60.            NO_ATTK),
  61.          SIZ(500, 250, MS_BARK, MZ_MEDIUM), MR_POISON, 0,
  62.          M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
  63.          M2_NOPOLY | M2_WERE | M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
  64.      MON("winter wolf cub", S_DOG, LVL(5, 12, 4, 0, -5),
  65.          (G_NOHELL | G_GENO | G_SGROUP | 2),
  66.          A(ATTK(AT_BITE, AD_PHYS, 1, 8), ATTK(AT_BREA, AD_COLD, 1, 8), NO_ATTK,
  67.            NO_ATTK, NO_ATTK, NO_ATTK),
  68.          SIZ(250, 200, MS_BARK, MZ_SMALL), MR_COLD, MR_COLD,
  69.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, CLR_CYAN),
  70.      MON("warg", S_DOG, LVL(7, 12, 4, 0, -5), (G_GENO | G_SGROUP | 2),
  71.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  72.            NO_ATTK),
  73.          SIZ(850, 350, MS_BARK, MZ_MEDIUM), 0, 0,
  74.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  75.          CLR_BROWN),
  76.      MON("winter wolf", S_DOG, LVL(7, 12, 4, 20, 0), (G_NOHELL | G_GENO | 1),
  77.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_BREA, AD_COLD, 2, 6), NO_ATTK,
  78.            NO_ATTK, NO_ATTK, NO_ATTK),
  79.          SIZ(700, 300, MS_BARK, MZ_LARGE), MR_COLD, MR_COLD,
  80.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE | M2_STRONG, 0,
  81.          CLR_CYAN),
  82.      MON("hell hound pup", S_DOG, LVL(7, 12, 4, 20, -5),
  83.          (G_HELL | G_GENO | G_SGROUP | 1),
  84.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_BREA, AD_FIRE, 2, 6), NO_ATTK,
  85.            NO_ATTK, NO_ATTK, NO_ATTK),
  86.          SIZ(200, 200, MS_BARK, MZ_SMALL), MR_FIRE, MR_FIRE,
  87.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  88.          CLR_RED),
  89.      MON("hell hound", S_DOG, LVL(12, 14, 2, 20, 0), (G_HELL | G_GENO | 1),
  90.          A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_BREA, AD_FIRE, 3, 6), NO_ATTK,
  91.            NO_ATTK, NO_ATTK, NO_ATTK),
  92.          SIZ(600, 300, MS_BARK, MZ_MEDIUM), MR_FIRE, MR_FIRE,
  93.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE | M2_STRONG,
  94.          M3_INFRAVISIBLE, CLR_RED),
  95.  #ifdef CHARON
  96.      MON("Cerberus", S_DOG, LVL(12, 10, 2, 20, -7),
  97.          (G_NOGEN | G_UNIQ | G_HELL),
  98.          A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_BITE, AD_PHYS, 3, 6),
  99.            ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  100.          SIZ(1000, 350, MS_BARK, MZ_LARGE), MR_FIRE, MR_FIRE,
  101.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  102.          M2_NOPOLY | M2_HOSTILE | M2_STRONG | M2_PNAME | M2_MALE,
  103.          M3_INFRAVISIBLE, CLR_RED),
  104.  #endif

Eyes

  1.      /*
  2.       * eyes
  3.       */
  4.      MON("gas spore", S_EYE, LVL(1, 3, 10, 0, 0), (G_NOCORPSE | G_GENO | 1),
  5.          A(ATTK(AT_BOOM, AD_PHYS, 4, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(10, 10, MS_SILENT, MZ_SMALL), 0, 0,
  8.          M1_FLY | M1_BREATHLESS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
  9.          M2_HOSTILE | M2_NEUTER, 0, CLR_GRAY),
  10.      MON("floating eye", S_EYE, LVL(2, 1, 9, 10, 0), (G_GENO | 5),
  11.          A(ATTK(AT_NONE, AD_PLYS, 0, 70), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(10, 10, MS_SILENT, MZ_SMALL), 0, 0,
  14.          M1_FLY | M1_AMPHIBIOUS | M1_NOLIMBS | M1_NOHEAD | M1_NOTAKE,
  15.          M2_HOSTILE | M2_NEUTER, M3_INFRAVISIBLE, CLR_BLUE),
  16.      MON("freezing sphere", S_EYE, LVL(6, 13, 4, 0, 0),
  17.          (G_NOCORPSE | G_NOHELL | G_GENO | 2),
  18.          A(ATTK(AT_EXPL, AD_COLD, 4, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  19.            NO_ATTK),
  20.          SIZ(10, 10, MS_SILENT, MZ_SMALL), MR_COLD, MR_COLD,
  21.          M1_FLY | M1_BREATHLESS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS
  22.              | M1_NOTAKE,
  23.          M2_HOSTILE | M2_NEUTER, M3_INFRAVISIBLE, CLR_WHITE),
  24.      MON("flaming sphere", S_EYE, LVL(6, 13, 4, 0, 0),
  25.          (G_NOCORPSE | G_GENO | 2), A(ATTK(AT_EXPL, AD_FIRE, 4, 6), NO_ATTK,
  26.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  27.          SIZ(10, 10, MS_SILENT, MZ_SMALL), MR_FIRE, MR_FIRE,
  28.          M1_FLY | M1_BREATHLESS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS
  29.              | M1_NOTAKE,
  30.          M2_HOSTILE | M2_NEUTER, M3_INFRAVISIBLE, CLR_RED),
  31.      MON("shocking sphere", S_EYE, LVL(6, 13, 4, 0, 0),
  32.          (G_NOCORPSE | G_GENO | 2), A(ATTK(AT_EXPL, AD_ELEC, 4, 6), NO_ATTK,
  33.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  34.          SIZ(10, 10, MS_SILENT, MZ_SMALL), MR_ELEC, MR_ELEC,
  35.          M1_FLY | M1_BREATHLESS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS
  36.              | M1_NOTAKE,
  37.          M2_HOSTILE | M2_NEUTER, M3_INFRAVISIBLE, HI_ZAP),
  38.  #if 0 /* not yet implemented */
  39.      MON("beholder", S_EYE,
  40.  	LVL(6, 3, 4, 0, -10), (G_GENO | 2),
  41.  	A(ATTK(AT_GAZE, AD_SLOW, 0, 0), ATTK(AT_GAZE, AD_SLEE, 2,25),
  42.  	  ATTK(AT_GAZE, AD_DISN, 0, 0), ATTK(AT_GAZE, AD_STON, 0, 0),
  43.  	  ATTK(AT_GAZE, AD_CNCL, 2, 4), ATTK(AT_BITE, AD_PHYS, 2, 4)),
  44.  	SIZ(10, 10, MS_SILENT, MZ_SMALL), MR_COLD, 0,
  45.  	M1_FLY | M1_BREATHLESS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
  46.  	M2_NOPOLY | M2_HOSTILE | M2_NEUTER, M3_INFRAVISIBLE, CLR_BROWN),
  47.  #endif

Felines

  1.      /*
  2.       * felines
  3.       */
  4.      MON("kitten", S_FELINE, LVL(2, 18, 6, 0, 0), (G_GENO | 1),
  5.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(150, 150, MS_MEW, MZ_SMALL), 0, 0,
  8.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_WANDER | M2_DOMESTIC,
  9.          M3_INFRAVISIBLE, HI_DOMESTIC),
  10.      MON("housecat", S_FELINE, LVL(4, 16, 5, 0, 0), (G_GENO | 1),
  11.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(200, 200, MS_MEW, MZ_SMALL), 0, 0,
  14.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
  15.          HI_DOMESTIC),
  16.      MON("jaguar", S_FELINE, LVL(4, 15, 6, 0, 0), (G_GENO | 2),
  17.          A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  18.            ATTK(AT_BITE, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  19.          SIZ(600, 300, MS_GROWL, MZ_LARGE), 0, 0,
  20.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  21.          CLR_BROWN),
  22.      MON("lynx", S_FELINE, LVL(5, 15, 6, 0, 0), (G_GENO | 1),
  23.          A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  24.            ATTK(AT_BITE, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK),
  25.          SIZ(600, 300, MS_GROWL, MZ_SMALL), 0, 0,
  26.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  27.          CLR_CYAN),
  28.      MON("panther", S_FELINE, LVL(5, 15, 6, 0, 0), (G_GENO | 1),
  29.          A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  30.            ATTK(AT_BITE, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK),
  31.          SIZ(600, 300, MS_GROWL, MZ_LARGE), 0, 0,
  32.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  33.          CLR_BLACK),
  34.      MON("large cat", S_FELINE, LVL(6, 15, 4, 0, 0), (G_GENO | 1),
  35.          A(ATTK(AT_BITE, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  36.            NO_ATTK),
  37.          SIZ(250, 250, MS_MEW, MZ_SMALL), 0, 0,
  38.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_STRONG | M2_DOMESTIC,
  39.          M3_INFRAVISIBLE, HI_DOMESTIC),
  40.      MON("tiger", S_FELINE, LVL(6, 12, 6, 0, 0), (G_GENO | 2),
  41.          A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  42.            ATTK(AT_BITE, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK),
  43.          SIZ(600, 300, MS_GROWL, MZ_LARGE), 0, 0,
  44.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  45.          CLR_YELLOW),

Gremlins and gargoyles

  1.      /*
  2.       * gremlins and gargoyles
  3.       */
  4.      MON("gremlin", S_GREMLIN, LVL(5, 12, 2, 25, -9), (G_GENO | 2),
  5.          A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  6.            ATTK(AT_BITE, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_CURS, 0, 0), NO_ATTK,
  7.            NO_ATTK),
  8.          SIZ(100, 20, MS_LAUGH, MZ_SMALL), MR_POISON, MR_POISON,
  9.          M1_SWIM | M1_HUMANOID | M1_POIS, M2_STALK, M3_INFRAVISIBLE,
  10.          CLR_GREEN),
  11.      MON("gargoyle", S_GREMLIN, LVL(6, 10, -4, 0, -9), (G_GENO | 2),
  12.          A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_PHYS, 2, 6),
  13.            ATTK(AT_BITE, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  14.          SIZ(1000, 200, MS_GRUNT, MZ_HUMAN), MR_STONE, MR_STONE,
  15.          M1_HUMANOID | M1_THICK_HIDE | M1_BREATHLESS, M2_HOSTILE | M2_STRONG,
  16.          0, CLR_BROWN),
  17.      MON("winged gargoyle", S_GREMLIN, LVL(9, 15, -2, 0, -12), (G_GENO | 1),
  18.          A(ATTK(AT_CLAW, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 6),
  19.            ATTK(AT_BITE, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  20.          SIZ(1200, 300, MS_GRUNT, MZ_HUMAN), MR_STONE, MR_STONE,
  21.          M1_FLY | M1_HUMANOID | M1_THICK_HIDE | M1_BREATHLESS | M1_OVIPAROUS,
  22.          M2_LORD | M2_HOSTILE | M2_STRONG | M2_MAGIC, 0, HI_LORD),

Humanoids

  1.      /*
  2.       * humanoids
  3.       */
  4.      MON("hobbit", S_HUMANOID, LVL(1, 9, 10, 0, 6), (G_GENO | 2),
  5.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(500, 200, MS_HUMANOID, MZ_SMALL), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  8.          M2_COLLECT, M3_INFRAVISIBLE | M3_INFRAVISION, CLR_GREEN),
  9.      MON("dwarf", S_HUMANOID, LVL(2, 6, 10, 10, 4), (G_GENO | 3),
  10.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  11.            NO_ATTK),
  12.          SIZ(900, 300, MS_HUMANOID, MZ_HUMAN), 0, 0,
  13.          M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
  14.          M2_NOPOLY | M2_DWARF | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  15.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  16.      MON("bugbear", S_HUMANOID, LVL(3, 9, 5, 0, -6), (G_GENO | 1),
  17.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  18.            NO_ATTK),
  19.          SIZ(1250, 250, MS_GROWL, MZ_LARGE), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  20.          M2_STRONG | M2_COLLECT, M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BROWN),
  21.      MON("dwarf lord", S_HUMANOID, LVL(4, 6, 10, 10, 5), (G_GENO | 2),
  22.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK,
  23.            NO_ATTK, NO_ATTK, NO_ATTK),
  24.          SIZ(900, 300, MS_HUMANOID, MZ_HUMAN), 0, 0,
  25.          M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
  26.          M2_DWARF | M2_STRONG | M2_LORD | M2_MALE | M2_GREEDY | M2_JEWELS
  27.              | M2_COLLECT,
  28.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BLUE),
  29.      MON("dwarf king", S_HUMANOID, LVL(6, 6, 10, 20, 6), (G_GENO | 1),
  30.          A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6), NO_ATTK,
  31.            NO_ATTK, NO_ATTK, NO_ATTK),
  32.          SIZ(900, 300, MS_HUMANOID, MZ_HUMAN), 0, 0,
  33.          M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
  34.          M2_DWARF | M2_STRONG | M2_PRINCE | M2_MALE | M2_GREEDY | M2_JEWELS
  35.              | M2_COLLECT,
  36.          M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),
  37.      MON("mind flayer", S_HUMANOID, LVL(9, 12, 5, 90, -8), (G_GENO | 1),
  38.          A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_TENT, AD_DRIN, 2, 1),
  39.            ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1), NO_ATTK,
  40.            NO_ATTK),
  41.          SIZ(1450, 400, MS_HISS, MZ_HUMAN), 0, 0,
  42.          M1_HUMANOID | M1_FLY | M1_SEE_INVIS | M1_OMNIVORE,
  43.          M2_HOSTILE | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  44.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_MAGENTA),
  45.      MON("master mind flayer", S_HUMANOID, LVL(13, 12, 0, 90, -8),
  46.          (G_GENO | 1),
  47.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_TENT, AD_DRIN, 2, 1),
  48.            ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1),
  49.            ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1)),
  50.          SIZ(1450, 400, MS_HISS, MZ_HUMAN), 0, 0,
  51.          M1_HUMANOID | M1_FLY | M1_SEE_INVIS | M1_OMNIVORE,
  52.          M2_HOSTILE | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  53.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_MAGENTA),

Imps and other minor demons

  1.      /*
  2.       * imps & other minor demons/devils
  3.       */
  4.      MON("manes", S_IMP, LVL(1, 3, 7, 0, -7),
  5.          (G_GENO | G_LGROUP | G_NOCORPSE | 1),
  6.          A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  7.            ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  8.          SIZ(100, 100, MS_SILENT, MZ_SMALL), MR_SLEEP | MR_POISON, 0, M1_POIS,
  9.          M2_HOSTILE | M2_STALK, M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  10.      MON("homunculus", S_IMP, LVL(2, 12, 6, 10, -7), (G_GENO | 2),
  11.          A(ATTK(AT_BITE, AD_SLEE, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(60, 100, MS_SILENT, MZ_TINY), MR_SLEEP | MR_POISON,
  14.          MR_SLEEP | MR_POISON, M1_FLY | M1_POIS, M2_STALK,
  15.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_GREEN),
  16.      MON("imp", S_IMP, LVL(3, 12, 2, 20, -7), (G_GENO | 1),
  17.          A(ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  18.            NO_ATTK),
  19.          SIZ(20, 10, MS_CUSS, MZ_TINY), 0, 0, M1_REGEN, M2_WANDER | M2_STALK,
  20.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  21.      MON("lemure", S_IMP, LVL(3, 3, 7, 0, -7),
  22.          (G_HELL | G_GENO | G_LGROUP | G_NOCORPSE | 1),
  23.          A(ATTK(AT_CLAW, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  24.            NO_ATTK),
  25.          SIZ(150, 100, MS_SILENT, MZ_MEDIUM), MR_SLEEP | MR_POISON, MR_SLEEP,
  26.          M1_POIS | M1_REGEN, M2_HOSTILE | M2_WANDER | M2_STALK | M2_NEUTER,
  27.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BROWN),
  28.      MON("quasit", S_IMP, LVL(3, 15, 2, 20, -7), (G_GENO | 2),
  29.          A(ATTK(AT_CLAW, AD_DRDX, 1, 2), ATTK(AT_CLAW, AD_DRDX, 1, 2),
  30.            ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  31.          SIZ(200, 200, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON, M1_REGEN,
  32.          M2_STALK, M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BLUE),
  33.      MON("tengu", S_IMP, LVL(6, 13, 5, 30, 7), (G_GENO | 3),
  34.          A(ATTK(AT_BITE, AD_PHYS, 1, 7), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  35.            NO_ATTK),
  36.          SIZ(300, 200, MS_SQAWK, MZ_SMALL), MR_POISON, MR_POISON,
  37.          M1_TPORT | M1_TPORT_CNTRL, M2_STALK, M3_INFRAVISIBLE | M3_INFRAVISION,
  38.          CLR_CYAN),

Jellies

  1.      /*
  2.       * jellies
  3.       */
  4.      MON("blue jelly", S_JELLY, LVL(4, 0, 8, 10, 0), (G_GENO | 2),
  5.          A(ATTK(AT_NONE, AD_COLD, 0, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(50, 20, MS_SILENT, MZ_MEDIUM), MR_COLD | MR_POISON,
  8.          MR_COLD | MR_POISON,
  9.          M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  10.              | M1_MINDLESS | M1_NOTAKE,
  11.          M2_HOSTILE | M2_NEUTER, 0, CLR_BLUE),
  12.      MON("spotted jelly", S_JELLY, LVL(5, 0, 8, 10, 0), (G_GENO | 1),
  13.          A(ATTK(AT_NONE, AD_ACID, 0, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  14.            NO_ATTK),
  15.          SIZ(50, 20, MS_SILENT, MZ_MEDIUM), MR_ACID | MR_STONE, 0,
  16.          M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  17.              | M1_MINDLESS | M1_ACID | M1_NOTAKE,
  18.          M2_HOSTILE | M2_NEUTER, 0, CLR_GREEN),
  19.      MON("ochre jelly", S_JELLY, LVL(6, 3, 8, 20, 0), (G_GENO | 2),
  20.          A(ATTK(AT_ENGL, AD_ACID, 3, 6), ATTK(AT_NONE, AD_ACID, 3, 6), NO_ATTK,
  21.            NO_ATTK, NO_ATTK, NO_ATTK),
  22.          SIZ(50, 20, MS_SILENT, MZ_MEDIUM), MR_ACID | MR_STONE, 0,
  23.          M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  24.              | M1_MINDLESS | M1_ACID | M1_NOTAKE,
  25.          M2_HOSTILE | M2_NEUTER, 0, CLR_BROWN),

Kobolds

  1.      /*
  2.       * kobolds
  3.       */
  4.      MON("kobold", S_KOBOLD, LVL(0, 6, 10, 0, -2), (G_GENO | 1),
  5.          A(ATTK(AT_WEAP, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(400, 100, MS_ORC, MZ_SMALL), MR_POISON, 0,
  8.          M1_HUMANOID | M1_POIS | M1_OMNIVORE, M2_HOSTILE | M2_COLLECT,
  9.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BROWN),
  10.      MON("large kobold", S_KOBOLD, LVL(1, 6, 10, 0, -3), (G_GENO | 1),
  11.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(450, 150, MS_ORC, MZ_SMALL), MR_POISON, 0,
  14.          M1_HUMANOID | M1_POIS | M1_OMNIVORE, M2_HOSTILE | M2_COLLECT,
  15.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  16.      MON("kobold lord", S_KOBOLD, LVL(2, 6, 10, 0, -4), (G_GENO | 1),
  17.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  18.            NO_ATTK),
  19.          SIZ(500, 200, MS_ORC, MZ_SMALL), MR_POISON, 0,
  20.          M1_HUMANOID | M1_POIS | M1_OMNIVORE,
  21.          M2_HOSTILE | M2_LORD | M2_MALE | M2_COLLECT,
  22.          M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),
  23.      MON("kobold shaman", S_KOBOLD, LVL(2, 6, 6, 10, -4), (G_GENO | 1),
  24.          A(ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  25.            NO_ATTK),
  26.          SIZ(450, 150, MS_ORC, MZ_SMALL), MR_POISON, 0,
  27.          M1_HUMANOID | M1_POIS | M1_OMNIVORE, M2_HOSTILE | M2_MAGIC,
  28.          M3_INFRAVISIBLE | M3_INFRAVISION, HI_ZAP),

Leprechauns

  1.      /*
  2.       * leprechauns
  3.       */
  4.      MON("leprechaun", S_LEPRECHAUN, LVL(5, 15, 8, 20, 0), (G_GENO | 4),
  5.          A(ATTK(AT_CLAW, AD_SGLD, 1, 2), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(60, 30, MS_LAUGH, MZ_TINY), 0, 0, M1_HUMANOID | M1_TPORT,
  8.          M2_HOSTILE | M2_GREEDY, M3_INFRAVISIBLE, CLR_GREEN),

Mimics

  1.      /*
  2.       * mimics
  3.       */
  4.      MON("small mimic", S_MIMIC, LVL(7, 3, 7, 0, 0), (G_GENO | 2),
  5.          A(ATTK(AT_CLAW, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(300, 200, MS_SILENT, MZ_MEDIUM), MR_ACID, 0,
  8.          M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL | M1_NOEYES
  9.              | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE | M1_CARNIVORE,
  10.          M2_HOSTILE, 0, CLR_BROWN),
  11.      MON("large mimic", S_MIMIC, LVL(8, 3, 7, 10, 0), (G_GENO | 1),
  12.          A(ATTK(AT_CLAW, AD_STCK, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(600, 400, MS_SILENT, MZ_LARGE), MR_ACID, 0,
  15.          M1_CLING | M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL
  16.              | M1_NOEYES | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE
  17.              | M1_CARNIVORE,
  18.          M2_HOSTILE | M2_STRONG, 0, CLR_RED),
  19.      MON("giant mimic", S_MIMIC, LVL(9, 3, 7, 20, 0), (G_GENO | 1),
  20.          A(ATTK(AT_CLAW, AD_STCK, 3, 6), ATTK(AT_CLAW, AD_STCK, 3, 6), NO_ATTK,
  21.            NO_ATTK, NO_ATTK, NO_ATTK),
  22.          SIZ(800, 500, MS_SILENT, MZ_LARGE), MR_ACID, 0,
  23.          M1_CLING | M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL
  24.              | M1_NOEYES | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE
  25.              | M1_CARNIVORE,
  26.          M2_HOSTILE | M2_STRONG, 0, HI_LORD),

Nymphs

  1.      /*
  2.       * nymphs
  3.       */
  4.      MON("wood nymph", S_NYMPH, LVL(3, 12, 9, 20, 0), (G_GENO | 2),
  5.          A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0), NO_ATTK,
  6.            NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(600, 300, MS_SEDUCE, MZ_HUMAN), 0, 0, M1_HUMANOID | M1_TPORT,
  8.          M2_HOSTILE | M2_FEMALE | M2_COLLECT, M3_INFRAVISIBLE, CLR_GREEN),
  9.      MON("water nymph", S_NYMPH, LVL(3, 12, 9, 20, 0), (G_GENO | 2),
  10.          A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0), NO_ATTK,
  11.            NO_ATTK, NO_ATTK, NO_ATTK),
  12.          SIZ(600, 300, MS_SEDUCE, MZ_HUMAN), 0, 0,
  13.          M1_HUMANOID | M1_TPORT | M1_SWIM, M2_HOSTILE | M2_FEMALE | M2_COLLECT,
  14.          M3_INFRAVISIBLE, CLR_BLUE),
  15.      MON("mountain nymph", S_NYMPH, LVL(3, 12, 9, 20, 0), (G_GENO | 2),
  16.          A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_CLAW, AD_SEDU, 0, 0), NO_ATTK,
  17.            NO_ATTK, NO_ATTK, NO_ATTK),
  18.          SIZ(600, 300, MS_SEDUCE, MZ_HUMAN), 0, 0, M1_HUMANOID | M1_TPORT,
  19.          M2_HOSTILE | M2_FEMALE | M2_COLLECT, M3_INFRAVISIBLE, CLR_BROWN),

Orcs

  1.      /*
  2.       * orcs
  3.       */
  4.      MON("goblin", S_ORC, LVL(0, 6, 10, 0, -3), (G_GENO | 2),
  5.          A(ATTK(AT_WEAP, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(400, 100, MS_ORC, MZ_SMALL), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  8.          M2_ORC | M2_COLLECT, M3_INFRAVISIBLE | M3_INFRAVISION, CLR_GRAY),
  9.      MON("hobgoblin", S_ORC, LVL(1, 9, 10, 0, -4), (G_GENO | 2),
  10.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  11.            NO_ATTK),
  12.          SIZ(1000, 200, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  13.          M2_ORC | M2_STRONG | M2_COLLECT, M3_INFRAVISIBLE | M3_INFRAVISION,
  14.          CLR_BROWN),
  15.      /* plain "orc" for zombie corpses only; not created at random
  16.       */
  17.      MON("orc", S_ORC, LVL(1, 9, 10, 0, -3), (G_GENO | G_NOGEN | G_LGROUP),
  18.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  19.            NO_ATTK),
  20.          SIZ(850, 150, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  21.          M2_NOPOLY | M2_ORC | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  22.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  23.      MON("hill orc", S_ORC, LVL(2, 9, 10, 0, -4), (G_GENO | G_LGROUP | 2),
  24.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  25.            NO_ATTK),
  26.          SIZ(1000, 200, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  27.          M2_ORC | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  28.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_YELLOW),
  29.      MON("Mordor orc", S_ORC, LVL(3, 5, 10, 0, -5), (G_GENO | G_LGROUP | 1),
  30.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  31.            NO_ATTK),
  32.          SIZ(1200, 200, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  33.          M2_ORC | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  34.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BLUE),
  35.      MON("Uruk-hai", S_ORC, LVL(3, 7, 10, 0, -4), (G_GENO | G_LGROUP | 1),
  36.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  37.            NO_ATTK),
  38.          SIZ(1300, 300, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  39.          M2_ORC | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  40.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BLACK),
  41.      MON("orc shaman", S_ORC, LVL(3, 9, 5, 10, -5), (G_GENO | 1),
  42.          A(ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  43.            NO_ATTK),
  44.          SIZ(1000, 300, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  45.          M2_ORC | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  46.          M3_INFRAVISIBLE | M3_INFRAVISION, HI_ZAP),
  47.      MON("orc-captain", S_ORC, LVL(5, 5, 10, 0, -5), (G_GENO | 1),
  48.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK,
  49.            NO_ATTK, NO_ATTK, NO_ATTK),
  50.          SIZ(1350, 350, MS_ORC, MZ_HUMAN), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  51.          M2_ORC | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  52.          M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),

Piercers

  1.      /*
  2.       * piercers
  3.       */
  4.      MON("rock piercer", S_PIERCER, LVL(3, 1, 3, 0, 0), (G_GENO | 4),
  5.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(200, 200, MS_SILENT, MZ_SMALL), 0, 0,
  8.          M1_CLING | M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS | M1_CARNIVORE
  9.              | M1_NOTAKE,
  10.          M2_HOSTILE, 0, CLR_GRAY),
  11.      MON("iron piercer", S_PIERCER, LVL(5, 1, 0, 0, 0), (G_GENO | 2),
  12.          A(ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(400, 300, MS_SILENT, MZ_MEDIUM), 0, 0,
  15.          M1_CLING | M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS | M1_CARNIVORE
  16.              | M1_NOTAKE,
  17.          M2_HOSTILE, 0, CLR_CYAN),
  18.      MON("glass piercer", S_PIERCER, LVL(7, 1, 0, 0, 0), (G_GENO | 1),
  19.          A(ATTK(AT_BITE, AD_PHYS, 4, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  20.            NO_ATTK),
  21.          SIZ(400, 300, MS_SILENT, MZ_MEDIUM), MR_ACID, 0,
  22.          M1_CLING | M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS | M1_CARNIVORE
  23.              | M1_NOTAKE,
  24.          M2_HOSTILE, 0, CLR_WHITE),

Quadrupeds

  1.      /*
  2.       * quadrupeds
  3.       */
  4.      MON("rothe", S_QUADRUPED, LVL(2, 9, 7, 0, 0), (G_GENO | G_SGROUP | 4),
  5.          A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_BITE, AD_PHYS, 1, 3),
  6.            ATTK(AT_BITE, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(400, 100, MS_SILENT, MZ_LARGE), 0, 0,
  8.          M1_ANIMAL | M1_NOHANDS | M1_OMNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  9.          CLR_BROWN),
  10.      MON("mumak", S_QUADRUPED, LVL(5, 9, 0, 0, -2), (G_GENO | 1),
  11.          A(ATTK(AT_BUTT, AD_PHYS, 4, 12), ATTK(AT_BITE, AD_PHYS, 2, 6),
  12.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  13.          SIZ(2500, 500, MS_ROAR, MZ_LARGE), 0, 0,
  14.          M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_HERBIVORE,
  15.          M2_HOSTILE | M2_STRONG, M3_INFRAVISIBLE, CLR_GRAY),
  16.      MON("leocrotta", S_QUADRUPED, LVL(6, 18, 4, 10, 0), (G_GENO | 2),
  17.          A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_BITE, AD_PHYS, 2, 6),
  18.            ATTK(AT_CLAW, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  19.          SIZ(1200, 500, MS_IMITATE, MZ_LARGE), 0, 0,
  20.          M1_ANIMAL | M1_NOHANDS | M1_OMNIVORE, M2_HOSTILE | M2_STRONG,
  21.          M3_INFRAVISIBLE, CLR_RED),
  22.      MON("wumpus", S_QUADRUPED, LVL(8, 3, 2, 10, 0), (G_GENO | 1),
  23.          A(ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  24.            NO_ATTK),
  25.          SIZ(2500, 500, MS_BURBLE, MZ_LARGE), 0, 0,
  26.          M1_CLING | M1_ANIMAL | M1_NOHANDS | M1_OMNIVORE,
  27.          M2_HOSTILE | M2_STRONG, M3_INFRAVISIBLE, CLR_CYAN),
  28.      MON("titanothere", S_QUADRUPED, LVL(12, 12, 6, 0, 0), (G_GENO | 2),
  29.          A(ATTK(AT_CLAW, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  30.            NO_ATTK),
  31.          SIZ(2650, 650, MS_SILENT, MZ_LARGE), 0, 0,
  32.          M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_HERBIVORE,
  33.          M2_HOSTILE | M2_STRONG, M3_INFRAVISIBLE, CLR_GRAY),
  34.      MON("baluchitherium", S_QUADRUPED, LVL(14, 12, 5, 0, 0), (G_GENO | 2),
  35.          A(ATTK(AT_CLAW, AD_PHYS, 5, 4), ATTK(AT_CLAW, AD_PHYS, 5, 4), NO_ATTK,
  36.            NO_ATTK, NO_ATTK, NO_ATTK),
  37.          SIZ(3800, 800, MS_SILENT, MZ_LARGE), 0, 0,
  38.          M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_HERBIVORE,
  39.          M2_HOSTILE | M2_STRONG, M3_INFRAVISIBLE, CLR_GRAY),
  40.      MON("mastodon", S_QUADRUPED, LVL(20, 12, 5, 0, 0), (G_GENO | 1),
  41.          A(ATTK(AT_BUTT, AD_PHYS, 4, 8), ATTK(AT_BUTT, AD_PHYS, 4, 8), NO_ATTK,
  42.            NO_ATTK, NO_ATTK, NO_ATTK),
  43.          SIZ(3800, 800, MS_SILENT, MZ_LARGE), 0, 0,
  44.          M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_HERBIVORE,
  45.          M2_HOSTILE | M2_STRONG, M3_INFRAVISIBLE, CLR_BLACK),

Rodents

  1.      /*
  2.       * rodents
  3.       */
  4.      MON("sewer rat", S_RODENT, LVL(0, 12, 7, 0, 0), (G_GENO | G_SGROUP | 1),
  5.          A(ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(20, 12, MS_SQEEK, MZ_TINY), 0, 0,
  8.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  9.          CLR_BROWN),
  10.      MON("giant rat", S_RODENT, LVL(1, 10, 7, 0, 0), (G_GENO | G_SGROUP | 2),
  11.          A(ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(30, 30, MS_SQEEK, MZ_TINY), 0, 0,
  14.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
  15.          CLR_BROWN),
  16.      MON("rabid rat", S_RODENT, LVL(2, 12, 6, 0, 0), (G_GENO | 1),
  17.          A(ATTK(AT_BITE, AD_DRCO, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  18.            NO_ATTK),
  19.          SIZ(30, 5, MS_SQEEK, MZ_TINY), MR_POISON, 0,
  20.          M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_CARNIVORE, M2_HOSTILE,
  21.          M3_INFRAVISIBLE, CLR_BROWN),
  22.      MON("wererat", S_RODENT, LVL(2, 12, 6, 10, -7), (G_NOGEN | G_NOCORPSE),
  23.          A(ATTK(AT_BITE, AD_WERE, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  24.            NO_ATTK),
  25.          SIZ(40, 30, MS_SQEEK, MZ_TINY), MR_POISON, 0,
  26.          M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
  27.          M2_NOPOLY | M2_WERE | M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
  28.      MON("rock mole", S_RODENT, LVL(3, 3, 0, 20, 0), (G_GENO | 2),
  29.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  30.            NO_ATTK),
  31.          SIZ(30, 30, MS_SILENT, MZ_SMALL), 0, 0,
  32.          M1_TUNNEL | M1_ANIMAL | M1_NOHANDS | M1_METALLIVORE,
  33.          M2_HOSTILE | M2_GREEDY | M2_JEWELS | M2_COLLECT, M3_INFRAVISIBLE,
  34.          CLR_GRAY),
  35.      MON("woodchuck", S_RODENT, LVL(3, 3, 0, 20, 0), (G_NOGEN | G_GENO),
  36.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  37.            NO_ATTK),
  38.          SIZ(30, 30, MS_SILENT, MZ_SMALL), 0, 0,
  39.          M1_TUNNEL /*LOGGING*/ | M1_ANIMAL | M1_NOHANDS | M1_SWIM
  40.              | M1_HERBIVORE,
  41.          /* In reality, they tunnel instead of cutting lumber.  Oh, well. */
  42.          M2_WANDER | M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),

Spiders

  1.      /*
  2.       * spiders & scorpions (keep webmaker() in sync if new critters are added)
  3.       */
  4.      MON("cave spider", S_SPIDER, LVL(1, 12, 3, 0, 0), (G_GENO | G_SGROUP | 2),
  5.          A(ATTK(AT_BITE, AD_PHYS, 1, 2), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(50, 50, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
  8.          M1_CONCEAL | M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
  9.          M2_HOSTILE, 0, CLR_GRAY),
  10.      MON("centipede", S_SPIDER, LVL(2, 4, 3, 0, 0), (G_GENO | 1),
  11.          A(ATTK(AT_BITE, AD_DRST, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(50, 50, MS_SILENT, MZ_TINY), MR_POISON, MR_POISON,
  14.          M1_CONCEAL | M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
  15.          M2_HOSTILE, 0, CLR_YELLOW),
  16.      MON("giant spider", S_SPIDER, LVL(5, 15, 4, 0, 0), (G_GENO | 1),
  17.          A(ATTK(AT_BITE, AD_DRST, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  18.            NO_ATTK),
  19.          SIZ(100, 100, MS_SILENT, MZ_LARGE), MR_POISON, MR_POISON,
  20.          M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS | M1_CARNIVORE,
  21.          M2_HOSTILE | M2_STRONG, 0, CLR_MAGENTA),
  22.      MON("scorpion", S_SPIDER, LVL(5, 15, 3, 0, 0), (G_GENO | 2),
  23.          A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 2),
  24.            ATTK(AT_STNG, AD_DRST, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  25.          SIZ(50, 100, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
  26.          M1_CONCEAL | M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS
  27.              | M1_CARNIVORE,
  28.          M2_HOSTILE, 0, CLR_RED),

Trappers, lurkers, etc

  1.      /*
  2.       * trappers, lurkers, &c
  3.       */
  4.      MON("lurker above", S_TRAPPER, LVL(10, 3, 3, 0, 0), (G_GENO | 2),
  5.          A(ATTK(AT_ENGL, AD_DGST, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(800, 350, MS_SILENT, MZ_HUGE), 0, 0,
  8.          M1_HIDE | M1_FLY | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  9.              | M1_CARNIVORE,
  10.          M2_HOSTILE | M2_STALK | M2_STRONG, 0, CLR_GRAY),
  11.      MON("trapper", S_TRAPPER, LVL(12, 3, 3, 0, 0), (G_GENO | 2),
  12.          A(ATTK(AT_ENGL, AD_DGST, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(800, 350, MS_SILENT, MZ_HUGE), 0, 0,
  15.          M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  16.              | M1_CARNIVORE,
  17.          M2_HOSTILE | M2_STALK | M2_STRONG, 0, CLR_GREEN),

Unicorn and horses

  1.      /*
  2.       * unicorns and horses
  3.       */
  4.      MON("pony", S_UNICORN, LVL(3, 16, 6, 0, 0), (G_GENO | 2),
  5.          A(ATTK(AT_KICK, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_PHYS, 1, 2), NO_ATTK,
  6.            NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(1300, 250, MS_NEIGH, MZ_MEDIUM), 0, 0,
  8.          M1_ANIMAL | M1_NOHANDS | M1_HERBIVORE,
  9.          M2_WANDER | M2_STRONG | M2_DOMESTIC, M3_INFRAVISIBLE, CLR_BROWN),
  10.      MON("white unicorn", S_UNICORN, LVL(4, 24, 2, 70, 7), (G_GENO | 2),
  11.          A(ATTK(AT_BUTT, AD_PHYS, 1, 12), ATTK(AT_KICK, AD_PHYS, 1, 6),
  12.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  13.          SIZ(1300, 300, MS_NEIGH, MZ_LARGE), MR_POISON, MR_POISON,
  14.          M1_NOHANDS | M1_HERBIVORE, M2_WANDER | M2_STRONG | M2_JEWELS,
  15.          M3_INFRAVISIBLE, CLR_WHITE),
  16.      MON("gray unicorn", S_UNICORN, LVL(4, 24, 2, 70, 0), (G_GENO | 1),
  17.          A(ATTK(AT_BUTT, AD_PHYS, 1, 12), ATTK(AT_KICK, AD_PHYS, 1, 6),
  18.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  19.          SIZ(1300, 300, MS_NEIGH, MZ_LARGE), MR_POISON, MR_POISON,
  20.          M1_NOHANDS | M1_HERBIVORE, M2_WANDER | M2_STRONG | M2_JEWELS,
  21.          M3_INFRAVISIBLE, CLR_GRAY),
  22.      MON("black unicorn", S_UNICORN, LVL(4, 24, 2, 70, -7), (G_GENO | 1),
  23.          A(ATTK(AT_BUTT, AD_PHYS, 1, 12), ATTK(AT_KICK, AD_PHYS, 1, 6),
  24.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  25.          SIZ(1300, 300, MS_NEIGH, MZ_LARGE), MR_POISON, MR_POISON,
  26.          M1_NOHANDS | M1_HERBIVORE, M2_WANDER | M2_STRONG | M2_JEWELS,
  27.          M3_INFRAVISIBLE, CLR_BLACK),
  28.      MON("horse", S_UNICORN, LVL(5, 20, 5, 0, 0), (G_GENO | 2),
  29.          A(ATTK(AT_KICK, AD_PHYS, 1, 8), ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK,
  30.            NO_ATTK, NO_ATTK, NO_ATTK),
  31.          SIZ(1500, 300, MS_NEIGH, MZ_LARGE), 0, 0,
  32.          M1_ANIMAL | M1_NOHANDS | M1_HERBIVORE,
  33.          M2_WANDER | M2_STRONG | M2_DOMESTIC, M3_INFRAVISIBLE, CLR_BROWN),
  34.      MON("warhorse", S_UNICORN, LVL(7, 24, 4, 0, 0), (G_GENO | 2),
  35.          A(ATTK(AT_KICK, AD_PHYS, 1, 10), ATTK(AT_BITE, AD_PHYS, 1, 4),
  36.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  37.          SIZ(1800, 350, MS_NEIGH, MZ_LARGE), 0, 0,
  38.          M1_ANIMAL | M1_NOHANDS | M1_HERBIVORE,
  39.          M2_WANDER | M2_STRONG | M2_DOMESTIC, M3_INFRAVISIBLE, CLR_BROWN),

Vortices

  1.      /*
  2.       * vortices
  3.       */
  4.      MON("fog cloud", S_VORTEX, LVL(3, 1, 0, 0, 0), (G_GENO | G_NOCORPSE | 2),
  5.          A(ATTK(AT_ENGL, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(0, 0, MS_SILENT, MZ_HUGE), MR_SLEEP | MR_POISON | MR_STONE, 0,
  8.          M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  9.              | M1_MINDLESS | M1_AMORPHOUS | M1_UNSOLID,
  10.          M2_HOSTILE | M2_NEUTER, 0, CLR_GRAY),
  11.      MON("dust vortex", S_VORTEX, LVL(4, 20, 2, 30, 0),
  12.          (G_GENO | G_NOCORPSE | 2), A(ATTK(AT_ENGL, AD_BLND, 2, 8), NO_ATTK,
  13.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  14.          SIZ(0, 0, MS_SILENT, MZ_HUGE), MR_SLEEP | MR_POISON | MR_STONE, 0,
  15.          M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  16.              | M1_MINDLESS,
  17.          M2_HOSTILE | M2_NEUTER, 0, CLR_BROWN),
  18.      MON("ice vortex", S_VORTEX, LVL(5, 20, 2, 30, 0),
  19.          (G_NOHELL | G_GENO | G_NOCORPSE | 1),
  20.          A(ATTK(AT_ENGL, AD_COLD, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  21.            NO_ATTK),
  22.          SIZ(0, 0, MS_SILENT, MZ_HUGE),
  23.          MR_COLD | MR_SLEEP | MR_POISON | MR_STONE, 0,
  24.          M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  25.              | M1_MINDLESS,
  26.          M2_HOSTILE | M2_NEUTER, M3_INFRAVISIBLE, CLR_CYAN),
  27.      MON("energy vortex", S_VORTEX, LVL(6, 20, 2, 30, 0),
  28.          (G_GENO | G_NOCORPSE | 1),
  29.          A(ATTK(AT_ENGL, AD_ELEC, 1, 6), ATTK(AT_ENGL, AD_DREN, 4, 6),
  30.            ATTK(AT_NONE, AD_ELEC, 0, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  31.          SIZ(0, 0, MS_SILENT, MZ_HUGE),
  32.          MR_ELEC | MR_SLEEP | MR_DISINT | MR_POISON | MR_STONE, 0,
  33.          M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  34.              | M1_MINDLESS | M1_UNSOLID,
  35.          M2_HOSTILE | M2_NEUTER, 0, HI_ZAP),
  36.      MON("steam vortex", S_VORTEX, LVL(7, 22, 2, 30, 0),
  37.          (G_HELL | G_GENO | G_NOCORPSE | 2),
  38.          A(ATTK(AT_ENGL, AD_FIRE, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  39.            NO_ATTK),
  40.          SIZ(0, 0, MS_SILENT, MZ_HUGE),
  41.          MR_FIRE | MR_SLEEP | MR_POISON | MR_STONE, 0,
  42.          M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  43.              | M1_MINDLESS | M1_UNSOLID,
  44.          M2_HOSTILE | M2_NEUTER, M3_INFRAVISIBLE, CLR_BLUE),
  45.      MON("fire vortex", S_VORTEX, LVL(8, 22, 2, 30, 0),
  46.          (G_HELL | G_GENO | G_NOCORPSE | 1),
  47.          A(ATTK(AT_ENGL, AD_FIRE, 1, 10), ATTK(AT_NONE, AD_FIRE, 0, 4),
  48.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  49.          SIZ(0, 0, MS_SILENT, MZ_HUGE),
  50.          MR_FIRE | MR_SLEEP | MR_POISON | MR_STONE, 0,
  51.          M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  52.              | M1_MINDLESS | M1_UNSOLID,
  53.          M2_HOSTILE | M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),

Worms

  1.      /*
  2.       * worms
  3.       */
  4.      MON("baby long worm", S_WORM, LVL(5, 3, 5, 0, 0), G_GENO,
  5.          A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(600, 250, MS_SILENT, MZ_LARGE), 0, 0,
  8.          M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_CARNIVORE | M1_NOTAKE,
  9.          M2_HOSTILE, 0, CLR_BROWN),
  10.      MON("baby purple worm", S_WORM, LVL(8, 3, 5, 0, 0), G_GENO,
  11.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(600, 250, MS_SILENT, MZ_LARGE), 0, 0,
  14.          M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_CARNIVORE, M2_HOSTILE, 0,
  15.          CLR_MAGENTA),
  16.      MON("long worm", S_WORM, LVL(9, 3, 5, 10, 0), (G_GENO | 2),
  17.          A(ATTK(AT_BITE, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  18.            NO_ATTK),
  19.          SIZ(1500, 500, MS_SILENT, MZ_GIGANTIC), 0, 0,
  20.          M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_OVIPAROUS | M1_CARNIVORE
  21.              | M1_NOTAKE,
  22.          M2_HOSTILE | M2_STRONG | M2_NASTY, 0, CLR_BROWN),
  23.      MON("purple worm", S_WORM, LVL(15, 9, 6, 20, 0), (G_GENO | 2),
  24.          A(ATTK(AT_BITE, AD_PHYS, 2, 8), ATTK(AT_ENGL, AD_DGST, 1, 10),
  25.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  26.          SIZ(2700, 700, MS_SILENT, MZ_GIGANTIC), 0, 0,
  27.          M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_OVIPAROUS | M1_CARNIVORE,
  28.          M2_HOSTILE | M2_STRONG | M2_NASTY, 0, CLR_MAGENTA),

Xan, etc

  1.      /*
  2.       * xan, &c
  3.       */
  4.      MON("grid bug", S_XAN, LVL(0, 12, 9, 0, 0),
  5.          (G_GENO | G_SGROUP | G_NOCORPSE | 3),
  6.          A(ATTK(AT_BITE, AD_ELEC, 1, 1), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  7.            NO_ATTK),
  8.          SIZ(15, 10, MS_BUZZ, MZ_TINY), MR_ELEC | MR_POISON, 0, M1_ANIMAL,
  9.          M2_HOSTILE, M3_INFRAVISIBLE, CLR_MAGENTA),
  10.      MON("xan", S_XAN, LVL(7, 18, -4, 0, 0), (G_GENO | 3),
  11.          A(ATTK(AT_STNG, AD_LEGS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(300, 300, MS_BUZZ, MZ_TINY), MR_POISON, MR_POISON,
  14.          M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_POIS, M2_HOSTILE,
  15.          M3_INFRAVISIBLE, CLR_RED),

Lights

  1.      /*
  2.       * lights
  3.       */
  4.      MON("yellow light", S_LIGHT, LVL(3, 15, 0, 0, 0),
  5.          (G_NOCORPSE | G_GENO | 4), A(ATTK(AT_EXPL, AD_BLND, 10, 20), NO_ATTK,
  6.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(0, 0, MS_SILENT, MZ_SMALL),
  8.          MR_FIRE | MR_COLD | MR_ELEC | MR_DISINT | MR_SLEEP | MR_POISON
  9.              | MR_ACID | MR_STONE,
  10.          0, M1_FLY | M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS
  11.                 | M1_NOHEAD | M1_MINDLESS | M1_UNSOLID | M1_NOTAKE,
  12.          M2_HOSTILE | M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),
  13.      MON("black light", S_LIGHT, LVL(5, 15, 0, 0, 0),
  14.          (G_NOCORPSE | G_GENO | 2), A(ATTK(AT_EXPL, AD_HALU, 10, 12), NO_ATTK,
  15.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  16.          SIZ(0, 0, MS_SILENT, MZ_SMALL),
  17.          MR_FIRE | MR_COLD | MR_ELEC | MR_DISINT | MR_SLEEP | MR_POISON
  18.              | MR_ACID | MR_STONE,
  19.          0,
  20.          M1_FLY | M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS
  21.              | M1_NOHEAD | M1_MINDLESS | M1_UNSOLID | M1_SEE_INVIS | M1_NOTAKE,
  22.          M2_HOSTILE | M2_NEUTER, 0, CLR_BLACK),

Zruty

  1.      /*
  2.       * zruty
  3.       */
  4.      MON("zruty", S_ZRUTY, LVL(9, 8, 3, 0, 0), (G_GENO | 2),
  5.          A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  6.            ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(1200, 600, MS_SILENT, MZ_LARGE), 0, 0,
  8.          M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE, M2_HOSTILE | M2_STRONG,
  9.          M3_INFRAVISIBLE, CLR_BROWN),

Angels and other lawful minions

  1.      /*
  2.       * Angels and other lawful minions
  3.       */
  4.      MON("couatl", S_ANGEL, LVL(8, 10, 5, 30, 7),
  5.          (G_NOHELL | G_SGROUP | G_NOCORPSE | 1),
  6.          A(ATTK(AT_BITE, AD_DRST, 2, 4), ATTK(AT_BITE, AD_PHYS, 1, 3),
  7.            ATTK(AT_HUGS, AD_WRAP, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  8.          SIZ(900, 400, MS_HISS, MZ_LARGE), MR_POISON, 0,
  9.          M1_FLY | M1_NOHANDS | M1_SLITHY | M1_POIS,
  10.          M2_MINION | M2_STALK | M2_STRONG | M2_NASTY,
  11.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_GREEN),
  12.      MON("Aleax", S_ANGEL, LVL(10, 8, 0, 30, 7), (G_NOHELL | G_NOCORPSE | 1),
  13.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  14.            ATTK(AT_KICK, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  15.          SIZ(WT_HUMAN, 400, MS_IMITATE, MZ_HUMAN),
  16.          MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  17.          M1_HUMANOID | M1_SEE_INVIS,
  18.          M2_MINION | M2_STALK | M2_NASTY | M2_COLLECT,
  19.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_YELLOW),
  20.      /* Angels start with the emin extension attached, and usually have
  21.         the isminion flag set; however, non-minion Angels can be tamed
  22.         and will switch to edog (guardian Angel is handled specially and
  23.         always sticks with emin) */
  24.      MON("Angel", S_ANGEL, LVL(14, 10, -4, 55, 12),
  25.          (G_NOHELL | G_NOCORPSE | 1),
  26.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  27.            ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_MAGC, AD_MAGM, 2, 6), NO_ATTK,
  28.            NO_ATTK),
  29.          SIZ(WT_HUMAN, 400, MS_CUSS, MZ_HUMAN),
  30.          MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  31.          M1_FLY | M1_HUMANOID | M1_SEE_INVIS,
  32.          M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_COLLECT,
  33.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_WHITE),
  34.      MON("ki-rin", S_ANGEL, LVL(16, 18, -5, 90, 15),
  35.          (G_NOHELL | G_NOCORPSE | 1),
  36.          A(ATTK(AT_KICK, AD_PHYS, 2, 4), ATTK(AT_KICK, AD_PHYS, 2, 4),
  37.            ATTK(AT_BUTT, AD_PHYS, 3, 6), ATTK(AT_MAGC, AD_SPEL, 2, 6), NO_ATTK,
  38.            NO_ATTK),
  39.          SIZ(WT_HUMAN, 400, MS_NEIGH, MZ_LARGE), 0, 0,
  40.          M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_SEE_INVIS,
  41.          M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_LORD,
  42.          M3_INFRAVISIBLE | M3_INFRAVISION, HI_GOLD),
  43.      MON("Archon", S_ANGEL, LVL(19, 16, -6, 80, 15),
  44.          (G_NOHELL | G_NOCORPSE | 1),
  45.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  46.            ATTK(AT_GAZE, AD_BLND, 2, 6), ATTK(AT_CLAW, AD_PHYS, 1, 8),
  47.            ATTK(AT_MAGC, AD_SPEL, 4, 6), NO_ATTK),
  48.          SIZ(WT_HUMAN, 400, MS_CUSS, MZ_LARGE),
  49.          MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  50.          M1_FLY | M1_HUMANOID | M1_SEE_INVIS | M1_REGEN,
  51.          M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_LORD
  52.              | M2_COLLECT | M2_MAGIC,
  53.          M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),

Bats

  1.      /*
  2.       * Bats
  3.       */
  4.      MON("bat", S_BAT, LVL(0, 22, 8, 0, 0), (G_GENO | G_SGROUP | 1),
  5.          A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(20, 20, MS_SQEEK, MZ_TINY), 0, 0,
  8.          M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_WANDER,
  9.          M3_INFRAVISIBLE, CLR_BROWN),
  10.      MON("giant bat", S_BAT, LVL(2, 22, 7, 0, 0), (G_GENO | 2),
  11.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(30, 30, MS_SQEEK, MZ_SMALL), 0, 0,
  14.          M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  15.          M2_WANDER | M2_HOSTILE, M3_INFRAVISIBLE, CLR_RED),
  16.      MON("raven", S_BAT, LVL(4, 20, 6, 0, 0), (G_GENO | 2),
  17.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_BLND, 1, 6), NO_ATTK,
  18.            NO_ATTK, NO_ATTK, NO_ATTK),
  19.          SIZ(40, 20, MS_SQAWK, MZ_SMALL), 0, 0,
  20.          M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  21.          M2_WANDER | M2_HOSTILE, M3_INFRAVISIBLE, CLR_BLACK),
  22.      MON("vampire bat", S_BAT, LVL(5, 20, 6, 0, 0), (G_GENO | 2),
  23.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_DRST, 0, 0), NO_ATTK,
  24.            NO_ATTK, NO_ATTK, NO_ATTK),
  25.          SIZ(30, 20, MS_SQEEK, MZ_SMALL), MR_SLEEP | MR_POISON, 0,
  26.          M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_REGEN | M1_OMNIVORE,
  27.          M2_HOSTILE, M3_INFRAVISIBLE, CLR_BLACK),

Centaurs

  1.      /*
  2.       * Centaurs
  3.       */
  4.      MON("plains centaur", S_CENTAUR, LVL(4, 18, 4, 0, 0), (G_GENO | 1),
  5.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_KICK, AD_PHYS, 1, 6), NO_ATTK,
  6.            NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(2500, 500, MS_HUMANOID, MZ_LARGE), 0, 0,
  8.          M1_HUMANOID | M1_OMNIVORE, M2_STRONG | M2_GREEDY | M2_COLLECT,
  9.          M3_INFRAVISIBLE, CLR_BROWN),
  10.      MON("forest centaur", S_CENTAUR, LVL(5, 18, 3, 10, -1), (G_GENO | 1),
  11.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_KICK, AD_PHYS, 1, 6), NO_ATTK,
  12.            NO_ATTK, NO_ATTK, NO_ATTK),
  13.          SIZ(2550, 600, MS_HUMANOID, MZ_LARGE), 0, 0,
  14.          M1_HUMANOID | M1_OMNIVORE, M2_STRONG | M2_GREEDY | M2_COLLECT,
  15.          M3_INFRAVISIBLE, CLR_GREEN),
  16.      MON("mountain centaur", S_CENTAUR, LVL(6, 20, 2, 10, -3), (G_GENO | 1),
  17.          A(ATTK(AT_WEAP, AD_PHYS, 1, 10), ATTK(AT_KICK, AD_PHYS, 1, 6),
  18.            ATTK(AT_KICK, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  19.          SIZ(2550, 500, MS_HUMANOID, MZ_LARGE), 0, 0,
  20.          M1_HUMANOID | M1_OMNIVORE, M2_STRONG | M2_GREEDY | M2_COLLECT,
  21.          M3_INFRAVISIBLE, CLR_CYAN),

Dragons

  1.      /*
  2.       * Dragons
  3.       */
  4.      /* The order of the dragons is VERY IMPORTANT.  Quite a few
  5.       * pieces of code depend on gray being first and yellow being last.
  6.       * The code also depends on the *order* being the same as that for
  7.       * dragon scale mail and dragon scales in objects.c.  Baby dragons
  8.       * cannot confer intrinsics, to avoid polyself/egg abuse.
  9.       *
  10.       * As reptiles, dragons are cold-blooded and thus aren't seen
  11.       * with infravision.  Red dragons are the exception.
  12.       */
  13.      MON("baby gray dragon", S_DRAGON, LVL(12, 9, 2, 10, 0), G_GENO,
  14.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  15.            NO_ATTK),
  16.          SIZ(1500, 500, MS_ROAR, MZ_HUGE), 0, 0,
  17.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  18.          M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, CLR_GRAY),
  19.      MON("baby silver dragon", S_DRAGON, LVL(12, 9, 2, 10, 0), G_GENO,
  20.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  21.            NO_ATTK),
  22.          SIZ(1500, 500, MS_ROAR, MZ_HUGE), 0, 0,
  23.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  24.          M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, DRAGON_SILVER),
  25.  #if 0 /* DEFERRED */
  26.      MON("baby shimmering dragon", S_DRAGON,
  27.  	LVL(12, 9, 2, 10, 0), G_GENO,
  28.  	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  29.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  30.  	SIZ(1500, 500, MS_ROAR, MZ_HUGE), 0, 0,
  31.  	M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  32.  	M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, CLR_CYAN),
  33.  #endif
  34.      MON("baby red dragon", S_DRAGON, LVL(12, 9, 2, 10, 0), G_GENO,
  35.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  36.            NO_ATTK),
  37.          SIZ(1500, 500, MS_ROAR, MZ_HUGE), MR_FIRE, 0,
  38.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  39.          M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, M3_INFRAVISIBLE,
  40.          CLR_RED),
  41.      MON("baby white dragon", S_DRAGON, LVL(12, 9, 2, 10, 0), G_GENO,
  42.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  43.            NO_ATTK),
  44.          SIZ(1500, 500, MS_ROAR, MZ_HUGE), MR_COLD, 0,
  45.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  46.          M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, CLR_WHITE),
  47.      MON("baby orange dragon", S_DRAGON, LVL(12, 9, 2, 10, 0), G_GENO,
  48.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  49.            NO_ATTK),
  50.          SIZ(1500, 500, MS_ROAR, MZ_HUGE), MR_SLEEP, 0,
  51.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  52.          M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, CLR_ORANGE),
  53.      MON("baby black dragon", S_DRAGON, LVL(12, 9, 2, 10, 0), G_GENO,
  54.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  55.            NO_ATTK),
  56.          SIZ(1500, 500, MS_ROAR, MZ_HUGE), MR_DISINT, 0,
  57.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  58.          M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, CLR_BLACK),
  59.      MON("baby blue dragon", S_DRAGON, LVL(12, 9, 2, 10, 0), G_GENO,
  60.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  61.            NO_ATTK),
  62.          SIZ(1500, 500, MS_ROAR, MZ_HUGE), MR_ELEC, 0,
  63.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  64.          M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, CLR_BLUE),
  65.      MON("baby green dragon", S_DRAGON, LVL(12, 9, 2, 10, 0), G_GENO,
  66.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  67.            NO_ATTK),
  68.          SIZ(1500, 500, MS_ROAR, MZ_HUGE), MR_POISON, 0,
  69.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_POIS,
  70.          M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, CLR_GREEN),
  71.      MON("baby yellow dragon", S_DRAGON, LVL(12, 9, 2, 10, 0), G_GENO,
  72.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  73.            NO_ATTK),
  74.          SIZ(1500, 500, MS_ROAR, MZ_HUGE), MR_ACID | MR_STONE, 0,
  75.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_ACID,
  76.          M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, CLR_YELLOW),
  77.      MON("gray dragon", S_DRAGON, LVL(15, 9, -1, 20, 4), (G_GENO | 1),
  78.          A(ATTK(AT_BREA, AD_MAGM, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  79.            ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
  80.            NO_ATTK),
  81.          SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC), 0, 0,
  82.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS
  83.              | M1_CARNIVORE,
  84.          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  85.          0, CLR_GRAY),
  86.      MON("silver dragon", S_DRAGON, LVL(15, 9, -1, 20, 4), (G_GENO | 1),
  87.          A(ATTK(AT_BREA, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  88.            ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
  89.            NO_ATTK),
  90.          SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC), MR_COLD, 0,
  91.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS
  92.              | M1_CARNIVORE,
  93.          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  94.          0, DRAGON_SILVER),
  95.  #if 0 /* DEFERRED */
  96.      MON("shimmering dragon", S_DRAGON,
  97.  	LVL(15, 9, -1, 20, 4), (G_GENO | 1),
  98.  	A(ATTK(AT_BREA, AD_MAGM, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  99.  	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  100.  	  NO_ATTK, NO_ATTK),
  101.  	SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC), 0, 0,
  102.  	M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS
  103.  	  | M1_CARNIVORE,
  104.  	M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  105.  	0, CLR_CYAN),
  106.  #endif
  107.      MON("red dragon", S_DRAGON, LVL(15, 9, -1, 20, -4), (G_GENO | 1),
  108.          A(ATTK(AT_BREA, AD_FIRE, 6, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  109.            ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
  110.            NO_ATTK),
  111.          SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC), MR_FIRE, MR_FIRE,
  112.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS
  113.              | M1_CARNIVORE,
  114.          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  115.          M3_INFRAVISIBLE, CLR_RED),
  116.      MON("white dragon", S_DRAGON, LVL(15, 9, -1, 20, -5), (G_GENO | 1),
  117.          A(ATTK(AT_BREA, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  118.            ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
  119.            NO_ATTK),
  120.          SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC), MR_COLD, MR_COLD,
  121.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS
  122.              | M1_CARNIVORE,
  123.          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  124.          0, CLR_WHITE),
  125.      MON("orange dragon", S_DRAGON, LVL(15, 9, -1, 20, 5), (G_GENO | 1),
  126.          A(ATTK(AT_BREA, AD_SLEE, 4, 25), ATTK(AT_BITE, AD_PHYS, 3, 8),
  127.            ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
  128.            NO_ATTK),
  129.          SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC), MR_SLEEP, MR_SLEEP,
  130.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS
  131.              | M1_CARNIVORE,
  132.          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  133.          0, CLR_ORANGE),
  134.      MON("black dragon", S_DRAGON, LVL(15, 9, -1, 20, -6), (G_GENO | 1),
  135.          A(ATTK(AT_BREA, AD_DISN, 4, 10), ATTK(AT_BITE, AD_PHYS, 3, 8),
  136.            ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
  137.            NO_ATTK),
  138.          SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC), MR_DISINT, MR_DISINT,
  139.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS
  140.              | M1_CARNIVORE,
  141.          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  142.          0, CLR_BLACK),
  143.      MON("blue dragon", S_DRAGON, LVL(15, 9, -1, 20, -7), (G_GENO | 1),
  144.          A(ATTK(AT_BREA, AD_ELEC, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  145.            ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
  146.            NO_ATTK),
  147.          SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC), MR_ELEC, MR_ELEC,
  148.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS
  149.              | M1_CARNIVORE,
  150.          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  151.          0, CLR_BLUE),
  152.      MON("green dragon", S_DRAGON, LVL(15, 9, -1, 20, 6), (G_GENO | 1),
  153.          A(ATTK(AT_BREA, AD_DRST, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  154.            ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
  155.            NO_ATTK),
  156.          SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC), MR_POISON, MR_POISON,
  157.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS
  158.              | M1_CARNIVORE | M1_POIS,
  159.          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  160.          0, CLR_GREEN),
  161.      MON("yellow dragon", S_DRAGON, LVL(15, 9, -1, 20, 7), (G_GENO | 1),
  162.          A(ATTK(AT_BREA, AD_ACID, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  163.            ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
  164.            NO_ATTK),
  165.          SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC), MR_ACID | MR_STONE,
  166.          MR_STONE, M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS
  167.                        | M1_OVIPAROUS | M1_CARNIVORE | M1_ACID,
  168.          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  169.          0, CLR_YELLOW),

Elementals

  1.      /*
  2.       * Elementals
  3.       */
  4.      MON("stalker", S_ELEMENTAL, LVL(8, 12, 3, 0, 0), (G_GENO | 3),
  5.          A(ATTK(AT_CLAW, AD_PHYS, 4, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(900, 400, MS_SILENT, MZ_LARGE), 0, 0,
  8.          M1_ANIMAL | M1_FLY | M1_SEE_INVIS,
  9.          M2_WANDER | M2_STALK | M2_HOSTILE | M2_STRONG, M3_INFRAVISION,
  10.          CLR_WHITE),
  11.      MON("air elemental", S_ELEMENTAL, LVL(8, 36, 2, 30, 0), (G_NOCORPSE | 1),
  12.          A(ATTK(AT_ENGL, AD_PHYS, 1, 10), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(0, 0, MS_SILENT, MZ_HUGE), MR_POISON | MR_STONE, 0,
  15.          M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_BREATHLESS
  16.              | M1_UNSOLID | M1_FLY,
  17.          M2_STRONG | M2_NEUTER, 0, CLR_CYAN),
  18.      MON("fire elemental", S_ELEMENTAL, LVL(8, 12, 2, 30, 0), (G_NOCORPSE | 1),
  19.          A(ATTK(AT_CLAW, AD_FIRE, 3, 6), ATTK(AT_NONE, AD_FIRE, 0, 4), NO_ATTK,
  20.            NO_ATTK, NO_ATTK, NO_ATTK),
  21.          SIZ(0, 0, MS_SILENT, MZ_HUGE), MR_FIRE | MR_POISON | MR_STONE, 0,
  22.          M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_BREATHLESS
  23.              | M1_UNSOLID | M1_FLY | M1_NOTAKE,
  24.          M2_STRONG | M2_NEUTER, M3_INFRAVISIBLE, CLR_YELLOW),
  25.      MON("earth elemental", S_ELEMENTAL, LVL(8, 6, 2, 30, 0), (G_NOCORPSE | 1),
  26.          A(ATTK(AT_CLAW, AD_PHYS, 4, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  27.            NO_ATTK),
  28.          SIZ(2500, 0, MS_SILENT, MZ_HUGE),
  29.          MR_FIRE | MR_COLD | MR_POISON | MR_STONE, 0,
  30.          M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_BREATHLESS
  31.              | M1_WALLWALK | M1_THICK_HIDE,
  32.          M2_STRONG | M2_NEUTER, 0, CLR_BROWN),
  33.      MON("water elemental", S_ELEMENTAL, LVL(8, 6, 2, 30, 0), (G_NOCORPSE | 1),
  34.          A(ATTK(AT_CLAW, AD_PHYS, 5, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  35.            NO_ATTK),
  36.          SIZ(2500, 0, MS_SILENT, MZ_HUGE), MR_POISON | MR_STONE, 0,
  37.          M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_BREATHLESS
  38.              | M1_UNSOLID | M1_AMPHIBIOUS | M1_SWIM,
  39.          M2_STRONG | M2_NEUTER, 0, CLR_BLUE),

Fungi

  1.      /*
  2.       * Fungi
  3.       */
  4.      MON("lichen", S_FUNGUS, LVL(0, 1, 9, 0, 0), (G_GENO | 4),
  5.          A(ATTK(AT_TUCH, AD_STCK, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(20, 200, MS_SILENT, MZ_SMALL), 0, 0,
  8.          M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS
  9.              | M1_NOTAKE,
  10.          M2_HOSTILE | M2_NEUTER, 0, CLR_BRIGHT_GREEN),
  11.      MON("brown mold", S_FUNGUS, LVL(1, 0, 9, 0, 0), (G_GENO | 1),
  12.          A(ATTK(AT_NONE, AD_COLD, 0, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(50, 30, MS_SILENT, MZ_SMALL), MR_COLD | MR_POISON,
  15.          MR_COLD | MR_POISON, M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS
  16.                                   | M1_NOHEAD | M1_MINDLESS | M1_NOTAKE,
  17.          M2_HOSTILE | M2_NEUTER, 0, CLR_BROWN),
  18.      MON("yellow mold", S_FUNGUS, LVL(1, 0, 9, 0, 0), (G_GENO | 2),
  19.          A(ATTK(AT_NONE, AD_STUN, 0, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  20.            NO_ATTK),
  21.          SIZ(50, 30, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
  22.          M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS
  23.              | M1_POIS | M1_NOTAKE,
  24.          M2_HOSTILE | M2_NEUTER, 0, CLR_YELLOW),
  25.      MON("green mold", S_FUNGUS, LVL(1, 0, 9, 0, 0), (G_GENO | 1),
  26.          A(ATTK(AT_NONE, AD_ACID, 0, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  27.            NO_ATTK),
  28.          SIZ(50, 30, MS_SILENT, MZ_SMALL), MR_ACID | MR_STONE, MR_STONE,
  29.          M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS
  30.              | M1_ACID | M1_NOTAKE,
  31.          M2_HOSTILE | M2_NEUTER, 0, CLR_GREEN),
  32.      MON("red mold", S_FUNGUS, LVL(1, 0, 9, 0, 0), (G_GENO | 1),
  33.          A(ATTK(AT_NONE, AD_FIRE, 0, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  34.            NO_ATTK),
  35.          SIZ(50, 30, MS_SILENT, MZ_SMALL), MR_FIRE | MR_POISON,
  36.          MR_FIRE | MR_POISON, M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS
  37.                                   | M1_NOHEAD | M1_MINDLESS | M1_NOTAKE,
  38.          M2_HOSTILE | M2_NEUTER, M3_INFRAVISIBLE, CLR_RED),
  39.      MON("shrieker", S_FUNGUS, LVL(3, 1, 7, 0, 0), (G_GENO | 1),
  40.          A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  41.          SIZ(100, 100, MS_SHRIEK, MZ_SMALL), MR_POISON, MR_POISON,
  42.          M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS
  43.              | M1_NOTAKE,
  44.          M2_HOSTILE | M2_NEUTER, 0, CLR_MAGENTA),
  45.      MON("violet fungus", S_FUNGUS, LVL(3, 1, 7, 0, 0), (G_GENO | 2),
  46.          A(ATTK(AT_TUCH, AD_PHYS, 1, 4), ATTK(AT_TUCH, AD_STCK, 0, 0), NO_ATTK,
  47.            NO_ATTK, NO_ATTK, NO_ATTK),
  48.          SIZ(100, 100, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
  49.          M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS
  50.              | M1_NOTAKE,
  51.          M2_HOSTILE | M2_NEUTER, 0, CLR_MAGENTA),

Gnomes

  1.      /*
  2.       * Gnomes
  3.       */
  4.      MON("gnome", S_GNOME, LVL(1, 6, 10, 4, 0), (G_GENO | G_SGROUP | 1),
  5.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(650, 100, MS_ORC, MZ_SMALL), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  8.          M2_NOPOLY | M2_GNOME | M2_COLLECT, M3_INFRAVISIBLE | M3_INFRAVISION,
  9.          CLR_BROWN),
  10.      MON("gnome lord", S_GNOME, LVL(3, 8, 10, 4, 0), (G_GENO | 2),
  11.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(700, 120, MS_ORC, MZ_SMALL), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  14.          M2_GNOME | M2_LORD | M2_MALE | M2_COLLECT,
  15.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BLUE),
  16.      MON("gnomish wizard", S_GNOME, LVL(3, 10, 4, 10, 0), (G_GENO | 1),
  17.          A(ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  18.            NO_ATTK),
  19.          SIZ(700, 120, MS_ORC, MZ_SMALL), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  20.          M2_GNOME | M2_MAGIC, M3_INFRAVISIBLE | M3_INFRAVISION, HI_ZAP),
  21.      MON("gnome king", S_GNOME, LVL(5, 10, 10, 20, 0), (G_GENO | 1),
  22.          A(ATTK(AT_WEAP, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  23.            NO_ATTK),
  24.          SIZ(750, 150, MS_ORC, MZ_SMALL), 0, 0, M1_HUMANOID | M1_OMNIVORE,
  25.          M2_GNOME | M2_PRINCE | M2_MALE | M2_COLLECT,
  26.          M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),


  1.  #ifdef SPLITMON_1
  2.  };
  3.  #endif
  4.  #endif /* !SPLITMON_2 */
  5.  
  6.  /* horrible kludge alert:
  7.   * This is a compiler-specific kludge to allow the compilation of monst.o in
  8.   * two pieces, by defining first SPLITMON_1 and then SPLITMON_2. The
  9.   * resulting assembler files (monst1.s and monst2.s) are then run through
  10.   * sed to change local symbols, concatenated together, and assembled to
  11.   * produce monst.o. THIS ONLY WORKS WITH THE ATARI GCC, and should only
  12.   * be done if you don't have enough memory to compile monst.o the "normal"
  13.   * way.  --ERS
  14.   */
  15.  
  16.  #ifndef SPLITMON_1
  17.  #ifdef SPLITMON_2
  18.  struct permonst _mons2[] = {
  19.  #endif

Giant humanoids

  1.      /*
  2.       * giant Humanoids
  3.       */
  4.      MON("giant", S_GIANT, LVL(6, 6, 0, 0, 2), (G_GENO | G_NOGEN | 1),
  5.          A(ATTK(AT_WEAP, AD_PHYS, 2, 10), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(2250, 750, MS_BOAST, MZ_HUGE), 0, 0, M1_HUMANOID | M1_CARNIVORE,
  8.          M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT
  9.              | M2_JEWELS,
  10.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  11.      MON("stone giant", S_GIANT, LVL(6, 6, 0, 0, 2), (G_GENO | G_SGROUP | 1),
  12.          A(ATTK(AT_WEAP, AD_PHYS, 2, 10), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(2250, 750, MS_BOAST, MZ_HUGE), 0, 0, M1_HUMANOID | M1_CARNIVORE,
  15.          M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT
  16.              | M2_JEWELS,
  17.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_GRAY),
  18.      MON("hill giant", S_GIANT, LVL(8, 10, 6, 0, -2), (G_GENO | G_SGROUP | 1),
  19.          A(ATTK(AT_WEAP, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  20.            NO_ATTK),
  21.          SIZ(2200, 700, MS_BOAST, MZ_HUGE), 0, 0, M1_HUMANOID | M1_CARNIVORE,
  22.          M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT
  23.              | M2_JEWELS,
  24.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_CYAN),
  25.      MON("fire giant", S_GIANT, LVL(9, 12, 4, 5, 2), (G_GENO | G_SGROUP | 1),
  26.          A(ATTK(AT_WEAP, AD_PHYS, 2, 10), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  27.            NO_ATTK),
  28.          SIZ(2250, 750, MS_BOAST, MZ_HUGE), MR_FIRE, MR_FIRE,
  29.          M1_HUMANOID | M1_CARNIVORE, M2_GIANT | M2_STRONG | M2_ROCKTHROW
  30.                                          | M2_NASTY | M2_COLLECT | M2_JEWELS,
  31.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_YELLOW),
  32.      MON("frost giant", S_GIANT, LVL(10, 12, 3, 10, -3),
  33.          (G_NOHELL | G_GENO | G_SGROUP | 1),
  34.          A(ATTK(AT_WEAP, AD_PHYS, 2, 12), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  35.            NO_ATTK),
  36.          SIZ(2250, 750, MS_BOAST, MZ_HUGE), MR_COLD, MR_COLD,
  37.          M1_HUMANOID | M1_CARNIVORE, M2_GIANT | M2_STRONG | M2_ROCKTHROW
  38.                                          | M2_NASTY | M2_COLLECT | M2_JEWELS,
  39.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_WHITE),
  40.      MON("ettin", S_GIANT, LVL(10, 12, 3, 0, 0), (G_GENO | 1),
  41.          A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 3, 6), NO_ATTK,
  42.            NO_ATTK, NO_ATTK, NO_ATTK),
  43.          SIZ(1700, 500, MS_GRUNT, MZ_HUGE), 0, 0,
  44.          M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  45.          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_COLLECT,
  46.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BROWN),
  47.      MON("storm giant", S_GIANT, LVL(16, 12, 3, 10, -3),
  48.          (G_GENO | G_SGROUP | 1), A(ATTK(AT_WEAP, AD_PHYS, 2, 12), NO_ATTK,
  49.                                     NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  50.          SIZ(2250, 750, MS_BOAST, MZ_HUGE), MR_ELEC, MR_ELEC,
  51.          M1_HUMANOID | M1_CARNIVORE, M2_GIANT | M2_STRONG | M2_ROCKTHROW
  52.                                          | M2_NASTY | M2_COLLECT | M2_JEWELS,
  53.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BLUE),
  54.      MON("titan", S_GIANT, LVL(16, 18, -3, 70, 9), (1),
  55.          A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK,
  56.            NO_ATTK, NO_ATTK, NO_ATTK),
  57.          SIZ(2300, 900, MS_SPELL, MZ_HUGE), 0, 0,
  58.          M1_FLY | M1_HUMANOID | M1_OMNIVORE,
  59.          M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT | M2_MAGIC,
  60.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_MAGENTA),
  61.      MON("minotaur", S_GIANT, LVL(15, 15, 6, 0, 0), (G_GENO | G_NOGEN),
  62.          A(ATTK(AT_CLAW, AD_PHYS, 3, 10), ATTK(AT_CLAW, AD_PHYS, 3, 10),
  63.            ATTK(AT_BUTT, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  64.          SIZ(1500, 700, MS_SILENT, MZ_LARGE), 0, 0,
  65.          M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  66.          M2_HOSTILE | M2_STRONG | M2_NASTY, M3_INFRAVISIBLE | M3_INFRAVISION,
  67.          CLR_BROWN),


  1.      /* 'I' is a visual marker for all invisible monsters and must be unused */

Jabberwock

  1.      /*
  2.       * Jabberwock
  3.       */
  4.      /* the illustration from _Through_the_Looking_Glass_
  5.         depicts hands as well as wings */
  6.      MON("jabberwock", S_JABBERWOCK, LVL(15, 12, -2, 50, 0), (G_GENO | 1),
  7.          A(ATTK(AT_BITE, AD_PHYS, 2, 10), ATTK(AT_BITE, AD_PHYS, 2, 10),
  8.            ATTK(AT_CLAW, AD_PHYS, 2, 10), ATTK(AT_CLAW, AD_PHYS, 2, 10),
  9.            NO_ATTK, NO_ATTK),
  10.          SIZ(1300, 600, MS_BURBLE, MZ_LARGE), 0, 0,
  11.          M1_ANIMAL | M1_FLY | M1_CARNIVORE,
  12.          M2_HOSTILE | M2_STRONG | M2_NASTY | M2_COLLECT, M3_INFRAVISIBLE,
  13.          CLR_ORANGE),
  14.  #if 0 /* DEFERRED */
  15.      MON("vorpal jabberwock", S_JABBERWOCK,
  16.  	LVL(20, 12, -2, 50, 0), (G_GENO | 1),
  17.  	A(ATTK(AT_BITE, AD_PHYS, 3, 10), ATTK(AT_BITE, AD_PHYS, 3, 10),
  18.  	  ATTK(AT_CLAW, AD_PHYS, 3, 10), ATTK(AT_CLAW, AD_PHYS, 3, 10),
  19.  	  NO_ATTK, NO_ATTK),
  20.  	SIZ(1300, 600, MS_BURBLE, MZ_LARGE), 0, 0,
  21.  	M1_ANIMAL | M1_FLY | M1_CARNIVORE,
  22.  	M2_HOSTILE | M2_STRONG | M2_NASTY | M2_COLLECT, M3_INFRAVISIBLE,
  23.          HI_LORD),
  24.  #endif

Kops

  1.      /*
  2.       * Kops
  3.       */
  4.      MON("Keystone Kop", S_KOP, LVL(1, 6, 10, 10, 9),
  5.          (G_GENO | G_LGROUP | G_NOGEN),
  6.          A(ATTK(AT_WEAP, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  7.            NO_ATTK),
  8.          SIZ(WT_HUMAN, 200, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
  9.          M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_MALE | M2_COLLECT,
  10.          M3_INFRAVISIBLE, CLR_BLUE),
  11.      MON("Kop Sergeant", S_KOP, LVL(2, 8, 10, 10, 10),
  12.          (G_GENO | G_SGROUP | G_NOGEN),
  13.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  14.            NO_ATTK),
  15.          SIZ(WT_HUMAN, 200, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
  16.          M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_MALE | M2_COLLECT,
  17.          M3_INFRAVISIBLE, CLR_BLUE),
  18.      MON("Kop Lieutenant", S_KOP, LVL(3, 10, 10, 20, 11), (G_GENO | G_NOGEN),
  19.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  20.            NO_ATTK),
  21.          SIZ(WT_HUMAN, 200, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
  22.          M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_MALE | M2_COLLECT,
  23.          M3_INFRAVISIBLE, CLR_CYAN),
  24.      MON("Kop Kaptain", S_KOP, LVL(4, 12, 10, 20, 12), (G_GENO | G_NOGEN),
  25.          A(ATTK(AT_WEAP, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  26.            NO_ATTK),
  27.          SIZ(WT_HUMAN, 200, MS_ARREST, MZ_HUMAN), 0, 0, M1_HUMANOID,
  28.          M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_MALE | M2_COLLECT,
  29.          M3_INFRAVISIBLE, HI_LORD),

Liches

  1.      /*
  2.       * Liches
  3.       */
  4.      MON("lich", S_LICH, LVL(11, 6, 0, 30, -9), (G_GENO | G_NOCORPSE | 1),
  5.          A(ATTK(AT_TUCH, AD_COLD, 1, 10), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  6.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(1200, 100, MS_MUMBLE, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON,
  8.          MR_COLD, M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  9.          M2_UNDEAD | M2_HOSTILE | M2_MAGIC, M3_INFRAVISION, CLR_BROWN),
  10.      MON("demilich", S_LICH, LVL(14, 9, -2, 60, -12),
  11.          (G_GENO | G_NOCORPSE | 1),
  12.          A(ATTK(AT_TUCH, AD_COLD, 3, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK,
  13.            NO_ATTK, NO_ATTK, NO_ATTK),
  14.          SIZ(1200, 100, MS_MUMBLE, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON,
  15.          MR_COLD, M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  16.          M2_UNDEAD | M2_HOSTILE | M2_MAGIC, M3_INFRAVISION, CLR_RED),
  17.      MON("master lich", S_LICH, LVL(17, 9, -4, 90, -15),
  18.          (G_HELL | G_GENO | G_NOCORPSE | 1),
  19.          A(ATTK(AT_TUCH, AD_COLD, 3, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK,
  20.            NO_ATTK, NO_ATTK, NO_ATTK),
  21.          SIZ(1200, 100, MS_MUMBLE, MZ_HUMAN),
  22.          MR_FIRE | MR_COLD | MR_SLEEP | MR_POISON, MR_FIRE | MR_COLD,
  23.          M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  24.          M2_UNDEAD | M2_HOSTILE | M2_MAGIC, M3_WANTSBOOK | M3_INFRAVISION,
  25.          HI_LORD),
  26.      MON("arch-lich", S_LICH, LVL(25, 9, -6, 90, -15),
  27.          (G_HELL | G_GENO | G_NOCORPSE | 1),
  28.          A(ATTK(AT_TUCH, AD_COLD, 5, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK,
  29.            NO_ATTK, NO_ATTK, NO_ATTK),
  30.          SIZ(1200, 100, MS_MUMBLE, MZ_HUMAN),
  31.          MR_FIRE | MR_COLD | MR_SLEEP | MR_ELEC | MR_POISON, MR_FIRE | MR_COLD,
  32.          M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  33.          M2_UNDEAD | M2_HOSTILE | M2_MAGIC, M3_WANTSBOOK | M3_INFRAVISION,
  34.          HI_LORD),

Mummies

  1.      /*
  2.       * Mummies
  3.       */
  4.      MON("kobold mummy", S_MUMMY, LVL(3, 8, 6, 20, -2),
  5.          (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
  6.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(400, 50, MS_SILENT, MZ_SMALL), MR_COLD | MR_SLEEP | MR_POISON, 0,
  8.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  9.          M2_UNDEAD | M2_HOSTILE, M3_INFRAVISION, CLR_BROWN),
  10.      MON("gnome mummy", S_MUMMY, LVL(4, 10, 6, 20, -3),
  11.          (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 6), NO_ATTK,
  12.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  13.          SIZ(650, 50, MS_SILENT, MZ_SMALL), MR_COLD | MR_SLEEP | MR_POISON, 0,
  14.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  15.          M2_UNDEAD | M2_HOSTILE | M2_GNOME, M3_INFRAVISION, CLR_RED),
  16.      MON("orc mummy", S_MUMMY, LVL(5, 10, 5, 20, -4),
  17.          (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 6), NO_ATTK,
  18.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  19.          SIZ(850, 75, MS_SILENT, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, 0,
  20.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  21.          M2_UNDEAD | M2_HOSTILE | M2_ORC | M2_GREEDY | M2_JEWELS,
  22.          M3_INFRAVISION, CLR_GRAY),
  23.      MON("dwarf mummy", S_MUMMY, LVL(5, 10, 5, 20, -4),
  24.          (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 6), NO_ATTK,
  25.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  26.          SIZ(900, 150, MS_SILENT, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, 0,
  27.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  28.          M2_UNDEAD | M2_HOSTILE | M2_DWARF | M2_GREEDY | M2_JEWELS,
  29.          M3_INFRAVISION, CLR_RED),
  30.      MON("elf mummy", S_MUMMY, LVL(6, 12, 4, 30, -5),
  31.          (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 2, 4), NO_ATTK,
  32.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  33.          SIZ(WT_ELF, 175, MS_SILENT, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON,
  34.          0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  35.          M2_UNDEAD | M2_HOSTILE | M2_ELF, M3_INFRAVISION, CLR_GREEN),
  36.      MON("human mummy", S_MUMMY, LVL(6, 12, 4, 30, -5),
  37.          (G_GENO | G_NOCORPSE | 1),
  38.          A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4), NO_ATTK,
  39.            NO_ATTK, NO_ATTK, NO_ATTK),
  40.          SIZ(WT_HUMAN, 200, MS_SILENT, MZ_HUMAN),
  41.          MR_COLD | MR_SLEEP | MR_POISON, 0,
  42.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  43.          M2_UNDEAD | M2_HOSTILE, M3_INFRAVISION, CLR_GRAY),
  44.      MON("ettin mummy", S_MUMMY, LVL(7, 12, 4, 30, -6),
  45.          (G_GENO | G_NOCORPSE | 1),
  46.          A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_PHYS, 2, 6), NO_ATTK,
  47.            NO_ATTK, NO_ATTK, NO_ATTK),
  48.          SIZ(1700, 250, MS_SILENT, MZ_HUGE), MR_COLD | MR_SLEEP | MR_POISON, 0,
  49.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  50.          M2_UNDEAD | M2_HOSTILE | M2_STRONG, M3_INFRAVISION, CLR_BLUE),
  51.      MON("giant mummy", S_MUMMY, LVL(8, 14, 3, 30, -7),
  52.          (G_GENO | G_NOCORPSE | 1),
  53.          A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4), NO_ATTK,
  54.            NO_ATTK, NO_ATTK, NO_ATTK),
  55.          SIZ(2050, 375, MS_SILENT, MZ_HUGE), MR_COLD | MR_SLEEP | MR_POISON, 0,
  56.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  57.          M2_UNDEAD | M2_HOSTILE | M2_GIANT | M2_STRONG | M2_JEWELS,
  58.          M3_INFRAVISION, CLR_CYAN),

Nagas

  1.      /*
  2.       * Nagas
  3.       */
  4.      MON("red naga hatchling", S_NAGA, LVL(3, 10, 6, 0, 0), G_GENO,
  5.          A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(500, 100, MS_MUMBLE, MZ_LARGE), MR_FIRE | MR_POISON,
  8.          MR_FIRE | MR_POISON,
  9.          M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_NOTAKE | M1_OMNIVORE,
  10.          M2_STRONG, M3_INFRAVISIBLE, CLR_RED),
  11.      MON("black naga hatchling", S_NAGA, LVL(3, 10, 6, 0, 0), G_GENO,
  12.          A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(500, 100, MS_MUMBLE, MZ_LARGE), MR_POISON | MR_ACID | MR_STONE,
  15.          MR_POISON | MR_STONE, M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_ACID
  16.                                    | M1_NOTAKE | M1_CARNIVORE,
  17.          M2_STRONG, 0, CLR_BLACK),
  18.      MON("golden naga hatchling", S_NAGA, LVL(3, 10, 6, 0, 0), G_GENO,
  19.          A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  20.            NO_ATTK),
  21.          SIZ(500, 100, MS_MUMBLE, MZ_LARGE), MR_POISON, MR_POISON,
  22.          M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_NOTAKE | M1_OMNIVORE,
  23.          M2_STRONG, 0, HI_GOLD),
  24.      MON("guardian naga hatchling", S_NAGA, LVL(3, 10, 6, 0, 0), G_GENO,
  25.          A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  26.            NO_ATTK),
  27.          SIZ(500, 100, MS_MUMBLE, MZ_LARGE), MR_POISON, MR_POISON,
  28.          M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_NOTAKE | M1_OMNIVORE,
  29.          M2_STRONG, 0, CLR_GREEN),
  30.      MON("red naga", S_NAGA, LVL(6, 12, 4, 0, -4), (G_GENO | 1),
  31.          A(ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_BREA, AD_FIRE, 2, 6), NO_ATTK,
  32.            NO_ATTK, NO_ATTK, NO_ATTK),
  33.          SIZ(2600, 400, MS_MUMBLE, MZ_HUGE), MR_FIRE | MR_POISON,
  34.          MR_FIRE | MR_POISON, M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE
  35.                                   | M1_OVIPAROUS | M1_NOTAKE | M1_OMNIVORE,
  36.          M2_STRONG, M3_INFRAVISIBLE, CLR_RED),
  37.      MON("black naga", S_NAGA, LVL(8, 14, 2, 10, 4), (G_GENO | 1),
  38.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_SPIT, AD_ACID, 0, 0), NO_ATTK,
  39.            NO_ATTK, NO_ATTK, NO_ATTK),
  40.          SIZ(2600, 400, MS_MUMBLE, MZ_HUGE), MR_POISON | MR_ACID | MR_STONE,
  41.          MR_POISON | MR_STONE,
  42.          M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS | M1_ACID
  43.              | M1_NOTAKE | M1_CARNIVORE,
  44.          M2_STRONG, 0, CLR_BLACK),
  45.      MON("golden naga", S_NAGA, LVL(10, 14, 2, 70, 5), (G_GENO | 1),
  46.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_MAGC, AD_SPEL, 4, 6), NO_ATTK,
  47.            NO_ATTK, NO_ATTK, NO_ATTK),
  48.          SIZ(2600, 400, MS_MUMBLE, MZ_HUGE), MR_POISON, MR_POISON,
  49.          M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS | M1_NOTAKE
  50.              | M1_OMNIVORE,
  51.          M2_STRONG, 0, HI_GOLD),
  52.      MON("guardian naga", S_NAGA, LVL(12, 16, 0, 50, 7), (G_GENO | 1),
  53.          A(ATTK(AT_BITE, AD_PLYS, 1, 6), ATTK(AT_SPIT, AD_DRST, 1, 6),
  54.            ATTK(AT_HUGS, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  55.          SIZ(2600, 400, MS_MUMBLE, MZ_HUGE), MR_POISON, MR_POISON,
  56.          M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS | M1_POIS
  57.              | M1_NOTAKE | M1_OMNIVORE,
  58.          M2_STRONG, 0, CLR_GREEN),

Ogres

  1.      /*
  2.       * Ogres
  3.       */
  4.      MON("ogre", S_OGRE, LVL(5, 10, 5, 0, -3), (G_SGROUP | G_GENO | 1),
  5.          A(ATTK(AT_WEAP, AD_PHYS, 2, 5), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(1600, 500, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID | M1_CARNIVORE,
  8.          M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  9.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BROWN),
  10.      MON("ogre lord", S_OGRE, LVL(7, 12, 3, 30, -5), (G_GENO | 2),
  11.          A(ATTK(AT_WEAP, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(1700, 700, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID | M1_CARNIVORE,
  14.          M2_STRONG | M2_LORD | M2_MALE | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  15.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  16.      MON("ogre king", S_OGRE, LVL(9, 14, 4, 60, -7), (G_GENO | 2),
  17.          A(ATTK(AT_WEAP, AD_PHYS, 3, 5), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  18.            NO_ATTK),
  19.          SIZ(1700, 750, MS_GRUNT, MZ_LARGE), 0, 0, M1_HUMANOID | M1_CARNIVORE,
  20.          M2_STRONG | M2_PRINCE | M2_MALE | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  21.          M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),

Puddings

  1.      /*
  2.       * Puddings
  3.       *
  4.       * must be in the same order as the pudding globs in objects.c
  5.       */
  6.      MON("gray ooze", S_PUDDING, LVL(3, 1, 8, 0, 0), (G_GENO | G_NOCORPSE | 2),
  7.          A(ATTK(AT_BITE, AD_RUST, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  8.            NO_ATTK),
  9.          SIZ(500, 250, MS_SILENT, MZ_MEDIUM),
  10.          MR_FIRE | MR_COLD | MR_POISON | MR_ACID | MR_STONE,
  11.          MR_FIRE | MR_COLD | MR_POISON,
  12.          M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  13.              | M1_MINDLESS | M1_OMNIVORE | M1_ACID,
  14.          M2_HOSTILE | M2_NEUTER, 0, CLR_GRAY),
  15.      MON("brown pudding", S_PUDDING, LVL(5, 3, 8, 0, 0),
  16.          (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_BITE, AD_DCAY, 0, 0), NO_ATTK,
  17.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  18.          SIZ(500, 250, MS_SILENT, MZ_MEDIUM),
  19.          MR_COLD | MR_ELEC | MR_POISON | MR_ACID | MR_STONE,
  20.          MR_COLD | MR_ELEC | MR_POISON,
  21.          M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  22.              | M1_MINDLESS | M1_OMNIVORE | M1_ACID,
  23.          M2_HOSTILE | M2_NEUTER, 0, CLR_BROWN),
  24.      MON("green slime", S_PUDDING, LVL(6, 6, 6, 0, 0),
  25.          (G_HELL | G_GENO | G_NOCORPSE | 1),
  26.          A(ATTK(AT_TUCH, AD_SLIM, 1, 4), ATTK(AT_NONE, AD_SLIM, 0, 0), NO_ATTK,
  27.            NO_ATTK, NO_ATTK, NO_ATTK),
  28.          SIZ(400, 150, MS_SILENT, MZ_LARGE),
  29.          MR_COLD | MR_ELEC | MR_POISON | MR_ACID | MR_STONE, 0,
  30.          M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  31.              | M1_MINDLESS | M1_OMNIVORE | M1_ACID | M1_POIS,
  32.          M2_HOSTILE | M2_NEUTER, 0, CLR_GREEN),
  33.      MON("black pudding", S_PUDDING, LVL(10, 6, 6, 0, 0),
  34.          (G_GENO | G_NOCORPSE | 1),
  35.          A(ATTK(AT_BITE, AD_CORR, 3, 8), ATTK(AT_NONE, AD_CORR, 0, 0), NO_ATTK,
  36.            NO_ATTK, NO_ATTK, NO_ATTK),
  37.          SIZ(900, 250, MS_SILENT, MZ_LARGE),
  38.          MR_COLD | MR_ELEC | MR_POISON | MR_ACID | MR_STONE,
  39.          MR_COLD | MR_ELEC | MR_POISON,
  40.          M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
  41.              | M1_MINDLESS | M1_OMNIVORE | M1_ACID,
  42.          M2_HOSTILE | M2_NEUTER, 0, CLR_BLACK),

Quantum mechanics

  1.      /*
  2.       * Quantum mechanics
  3.       */
  4.      MON("quantum mechanic", S_QUANTMECH, LVL(7, 12, 3, 10, 0), (G_GENO | 3),
  5.          A(ATTK(AT_CLAW, AD_TLPT, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(WT_HUMAN, 20, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
  8.          M1_HUMANOID | M1_OMNIVORE | M1_POIS | M1_TPORT, M2_HOSTILE,
  9.          M3_INFRAVISIBLE, CLR_CYAN),

Rust monster or disenchanter

  1.      /*
  2.       * Rust monster or disenchanter
  3.       */
  4.      MON("rust monster", S_RUSTMONST, LVL(5, 18, 2, 0, 0), (G_GENO | 2),
  5.          A(ATTK(AT_TUCH, AD_RUST, 0, 0), ATTK(AT_TUCH, AD_RUST, 0, 0),
  6.            ATTK(AT_NONE, AD_RUST, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(1000, 250, MS_SILENT, MZ_MEDIUM), 0, 0,
  8.          M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_METALLIVORE, M2_HOSTILE,
  9.          M3_INFRAVISIBLE, CLR_BROWN),
  10.      MON("disenchanter", S_RUSTMONST, LVL(12, 12, -10, 0, -3),
  11.          (G_HELL | G_GENO | 2),
  12.          A(ATTK(AT_CLAW, AD_ENCH, 4, 4), ATTK(AT_NONE, AD_ENCH, 0, 0), NO_ATTK,
  13.            NO_ATTK, NO_ATTK, NO_ATTK),
  14.          SIZ(750, 200, MS_GROWL, MZ_LARGE), 0, 0, M1_ANIMAL | M1_CARNIVORE,
  15.          M2_HOSTILE, M3_INFRAVISIBLE, CLR_BLUE),

Snakes

  1.      /*
  2.       * Snakes
  3.       */
  4.      MON("garter snake", S_SNAKE, LVL(1, 8, 8, 0, 0), (G_LGROUP | G_GENO | 1),
  5.          A(ATTK(AT_BITE, AD_PHYS, 1, 2), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(50, 60, MS_HISS, MZ_TINY), 0, 0,
  8.          M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY
  9.              | M1_OVIPAROUS | M1_CARNIVORE | M1_NOTAKE,
  10.          0, 0, CLR_GREEN),
  11.      MON("snake", S_SNAKE, LVL(4, 15, 3, 0, 0), (G_GENO | 2),
  12.          A(ATTK(AT_BITE, AD_DRST, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(100, 80, MS_HISS, MZ_SMALL), MR_POISON, MR_POISON,
  15.          M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS
  16.              | M1_OVIPAROUS | M1_CARNIVORE | M1_NOTAKE,
  17.          M2_HOSTILE, 0, CLR_BROWN),
  18.      MON("water moccasin", S_SNAKE, LVL(4, 15, 3, 0, 0),
  19.          (G_GENO | G_NOGEN | G_LGROUP),
  20.          A(ATTK(AT_BITE, AD_DRST, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  21.            NO_ATTK),
  22.          SIZ(150, 80, MS_HISS, MZ_SMALL), MR_POISON, MR_POISON,
  23.          M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS
  24.              | M1_CARNIVORE | M1_OVIPAROUS | M1_NOTAKE,
  25.          M2_HOSTILE, 0, CLR_RED),
  26.      MON("python", S_SNAKE, LVL(6, 3, 5, 0, 0), (G_GENO | 1),
  27.          A(ATTK(AT_BITE, AD_PHYS, 1, 4), ATTK(AT_TUCH, AD_PHYS, 0, 0),
  28.            ATTK(AT_HUGS, AD_WRAP, 1, 4), ATTK(AT_HUGS, AD_PHYS, 2, 4), NO_ATTK,
  29.            NO_ATTK),
  30.          SIZ(250, 100, MS_HISS, MZ_LARGE), 0, 0,
  31.          M1_SWIM | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_CARNIVORE
  32.              | M1_OVIPAROUS | M1_NOTAKE,
  33.          M2_HOSTILE | M2_STRONG, M3_INFRAVISION, CLR_MAGENTA),
  34.      MON("pit viper", S_SNAKE, LVL(6, 15, 2, 0, 0), (G_GENO | 1),
  35.          A(ATTK(AT_BITE, AD_DRST, 1, 4), ATTK(AT_BITE, AD_DRST, 1, 4), NO_ATTK,
  36.            NO_ATTK, NO_ATTK, NO_ATTK),
  37.          SIZ(100, 60, MS_HISS, MZ_MEDIUM), MR_POISON, MR_POISON,
  38.          M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS
  39.              | M1_CARNIVORE | M1_OVIPAROUS | M1_NOTAKE,
  40.          M2_HOSTILE, M3_INFRAVISION, CLR_BLUE),
  41.      MON("cobra", S_SNAKE, LVL(6, 18, 2, 0, 0), (G_GENO | 1),
  42.          A(ATTK(AT_BITE, AD_DRST, 2, 4), ATTK(AT_SPIT, AD_BLND, 0, 0), NO_ATTK,
  43.            NO_ATTK, NO_ATTK, NO_ATTK),
  44.          SIZ(250, 100, MS_HISS, MZ_MEDIUM), MR_POISON, MR_POISON,
  45.          M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS
  46.              | M1_CARNIVORE | M1_OVIPAROUS | M1_NOTAKE,
  47.          M2_HOSTILE, 0, CLR_BLUE),

Trolls

  1.      /*
  2.       * Trolls
  3.       */
  4.      MON("troll", S_TROLL, LVL(7, 12, 4, 0, -3), (G_GENO | 2),
  5.          A(ATTK(AT_WEAP, AD_PHYS, 4, 2), ATTK(AT_CLAW, AD_PHYS, 4, 2),
  6.            ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(800, 350, MS_GRUNT, MZ_LARGE), 0, 0,
  8.          M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  9.          M2_STRONG | M2_STALK | M2_HOSTILE, M3_INFRAVISIBLE | M3_INFRAVISION,
  10.          CLR_BROWN),
  11.      MON("ice troll", S_TROLL, LVL(9, 10, 2, 20, -3), (G_NOHELL | G_GENO | 1),
  12.          A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_COLD, 2, 6),
  13.            ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  14.          SIZ(1000, 300, MS_GRUNT, MZ_LARGE), MR_COLD, MR_COLD,
  15.          M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  16.          M2_STRONG | M2_STALK | M2_HOSTILE, M3_INFRAVISIBLE | M3_INFRAVISION,
  17.          CLR_WHITE),
  18.      MON("rock troll", S_TROLL, LVL(9, 12, 0, 0, -3), (G_GENO | 1),
  19.          A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  20.            ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  21.          SIZ(1200, 300, MS_GRUNT, MZ_LARGE), 0, 0,
  22.          M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  23.          M2_STRONG | M2_STALK | M2_HOSTILE | M2_COLLECT,
  24.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_CYAN),
  25.      MON("water troll", S_TROLL, LVL(11, 14, 4, 40, -3), (G_NOGEN | G_GENO),
  26.          A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  27.            ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  28.          SIZ(1200, 350, MS_GRUNT, MZ_LARGE), 0, 0,
  29.          M1_HUMANOID | M1_REGEN | M1_CARNIVORE | M1_SWIM,
  30.          M2_STRONG | M2_STALK | M2_HOSTILE, M3_INFRAVISIBLE | M3_INFRAVISION,
  31.          CLR_BLUE),
  32.      MON("Olog-hai", S_TROLL, LVL(13, 12, -4, 0, -7), (G_GENO | 1),
  33.          A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  34.            ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  35.          SIZ(1500, 400, MS_GRUNT, MZ_LARGE), 0, 0,
  36.          M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  37.          M2_STRONG | M2_STALK | M2_HOSTILE | M2_COLLECT,
  38.          M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),

Umber hulk

  1.      /*
  2.       * Umber hulk
  3.       */
  4.      MON("umber hulk", S_UMBER, LVL(9, 6, 2, 25, 0), (G_GENO | 2),
  5.          A(ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  6.            ATTK(AT_BITE, AD_PHYS, 2, 5), ATTK(AT_GAZE, AD_CONF, 0, 0), NO_ATTK,
  7.            NO_ATTK),
  8.          SIZ(1200, 500, MS_SILENT, MZ_LARGE), 0, 0, M1_TUNNEL | M1_CARNIVORE,
  9.          M2_STRONG, M3_INFRAVISIBLE, CLR_BROWN),

Vampires

  1.      /*
  2.       * Vampires
  3.       */
  4.      MON("vampire", S_VAMPIRE, LVL(10, 12, 1, 25, -8),
  5.          (G_GENO | G_NOCORPSE | 1),
  6.          A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_DRLI, 1, 6), NO_ATTK,
  7.            NO_ATTK, NO_ATTK, NO_ATTK),
  8.          SIZ(WT_HUMAN, 400, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP | MR_POISON, 0,
  9.          M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  10.          M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY
  11.              | M2_SHAPESHIFTER,
  12.          M3_INFRAVISIBLE, CLR_RED),
  13.      MON("vampire lord", S_VAMPIRE, LVL(12, 14, 0, 50, -9),
  14.          (G_GENO | G_NOCORPSE | 1),
  15.          A(ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_BITE, AD_DRLI, 1, 8), NO_ATTK,
  16.            NO_ATTK, NO_ATTK, NO_ATTK),
  17.          SIZ(WT_HUMAN, 400, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP | MR_POISON, 0,
  18.          M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  19.          M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_LORD
  20.              | M2_MALE | M2_SHAPESHIFTER,
  21.          M3_INFRAVISIBLE, CLR_BLUE),
  22.  #if 0 /* DEFERRED */
  23.      MON("vampire mage", S_VAMPIRE,
  24.  	LVL(20, 14, -4, 50, -9), (G_GENO | G_NOCORPSE | 1),
  25.  	A(ATTK(AT_CLAW, AD_DRLI, 2, 8), ATTK(AT_BITE, AD_DRLI, 1, 8),
  26.  	  ATTK(AT_MAGC, AD_SPEL, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  27.  	SIZ(WT_HUMAN, 400, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP | MR_POISON, 0,
  28.  	M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  29.  	M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_LORD
  30.            | M2_MALE | M2_MAGIC | M2_SHAPESHIFTER,
  31.          M3_INFRAVISIBLE, HI_ZAP),
  32.  #endif
  33.      MON("Vlad the Impaler", S_VAMPIRE, LVL(14, 18, -3, 80, -10),
  34.          (G_NOGEN | G_NOCORPSE | G_UNIQ),
  35.          A(ATTK(AT_WEAP, AD_PHYS, 1, 10), ATTK(AT_BITE, AD_DRLI, 1, 10),
  36.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  37.          SIZ(WT_HUMAN, 400, MS_VAMPIRE, MZ_HUMAN), MR_SLEEP | MR_POISON, 0,
  38.          M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  39.          M2_NOPOLY | M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG
  40.              | M2_NASTY | M2_PRINCE | M2_MALE | M2_SHAPESHIFTER,
  41.          M3_WAITFORU | M3_WANTSCAND | M3_INFRAVISIBLE, HI_LORD),

Wraiths

  1.      /*
  2.       * Wraiths
  3.       */
  4.      MON("barrow wight", S_WRAITH, LVL(3, 12, 5, 5, -3),
  5.          (G_GENO | G_NOCORPSE | 1),
  6.          A(ATTK(AT_WEAP, AD_DRLI, 0, 0), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  7.            ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  8.          SIZ(1200, 0, MS_SPELL, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, 0,
  9.          M1_BREATHLESS | M1_HUMANOID,
  10.          M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_COLLECT, 0, CLR_GRAY),
  11.      MON("wraith", S_WRAITH, LVL(6, 12, 4, 15, -6), (G_GENO | 2),
  12.          A(ATTK(AT_TUCH, AD_DRLI, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(0, 0, MS_SILENT, MZ_HUMAN),
  15.          MR_COLD | MR_SLEEP | MR_POISON | MR_STONE, 0,
  16.          M1_BREATHLESS | M1_FLY | M1_HUMANOID | M1_UNSOLID,
  17.          M2_UNDEAD | M2_STALK | M2_HOSTILE, 0, CLR_BLACK),
  18.      MON("Nazgul", S_WRAITH, LVL(13, 12, 0, 25, -17),
  19.          (G_GENO | G_NOCORPSE | 1),
  20.          A(ATTK(AT_WEAP, AD_DRLI, 1, 4), ATTK(AT_BREA, AD_SLEE, 2, 25),
  21.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  22.          SIZ(WT_HUMAN, 0, MS_SPELL, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON,
  23.          0, M1_BREATHLESS | M1_HUMANOID,
  24.          M2_NOPOLY | M2_UNDEAD | M2_STALK | M2_STRONG | M2_HOSTILE | M2_MALE
  25.              | M2_COLLECT,
  26.          0, HI_LORD),

Xorn

  1.      /*
  2.       * Xorn
  3.       */
  4.      MON("xorn", S_XORN, LVL(8, 9, -2, 20, 0), (G_GENO | 1),
  5.          A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  6.            ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_BITE, AD_PHYS, 4, 6), NO_ATTK,
  7.            NO_ATTK),
  8.          SIZ(1200, 700, MS_ROAR, MZ_MEDIUM), MR_FIRE | MR_COLD | MR_STONE,
  9.          MR_STONE,
  10.          M1_BREATHLESS | M1_WALLWALK | M1_THICK_HIDE | M1_METALLIVORE,
  11.          M2_HOSTILE | M2_STRONG, 0, CLR_BROWN),

Apelike beasts

  1.      /*
  2.       * Apelike beasts
  3.       */
  4.      MON("monkey", S_YETI, LVL(2, 12, 6, 0, 0), (G_GENO | 1),
  5.          A(ATTK(AT_CLAW, AD_SITM, 0, 0), ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK,
  6.            NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(100, 50, MS_GROWL, MZ_SMALL), 0, 0,
  8.          M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE, 0, M3_INFRAVISIBLE, CLR_GRAY),
  9.      MON("ape", S_YETI, LVL(4, 12, 6, 0, 0), (G_GENO | G_SGROUP | 2),
  10.          A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  11.            ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  12.          SIZ(1100, 500, MS_GROWL, MZ_LARGE), 0, 0,
  13.          M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE, M2_STRONG, M3_INFRAVISIBLE,
  14.          CLR_BROWN),
  15.      MON("owlbear", S_YETI, LVL(5, 12, 5, 0, 0), (G_GENO | 3),
  16.          A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  17.            ATTK(AT_HUGS, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  18.          SIZ(1700, 700, MS_ROAR, MZ_LARGE), 0, 0,
  19.          M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  20.          M2_HOSTILE | M2_STRONG | M2_NASTY, M3_INFRAVISIBLE, CLR_BROWN),
  21.      MON("yeti", S_YETI, LVL(5, 15, 6, 0, 0), (G_GENO | 2),
  22.          A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  23.            ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  24.          SIZ(1600, 700, MS_GROWL, MZ_LARGE), MR_COLD, MR_COLD,
  25.          M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE, M2_HOSTILE | M2_STRONG,
  26.          M3_INFRAVISIBLE, CLR_WHITE),
  27.      MON("carnivorous ape", S_YETI, LVL(6, 12, 6, 0, 0), (G_GENO | 1),
  28.          A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  29.            ATTK(AT_HUGS, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  30.          SIZ(1250, 550, MS_GROWL, MZ_LARGE), 0, 0,
  31.          M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE, M2_HOSTILE | M2_STRONG,
  32.          M3_INFRAVISIBLE, CLR_BLACK),
  33.      MON("sasquatch", S_YETI, LVL(7, 15, 6, 0, 2), (G_GENO | 1),
  34.          A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  35.            ATTK(AT_KICK, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  36.          SIZ(1550, 750, MS_GROWL, MZ_LARGE), 0, 0,
  37.          M1_ANIMAL | M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE, M2_STRONG,
  38.          M3_INFRAVISIBLE, CLR_GRAY),

Zombies

  1.      /*
  2.       * Zombies
  3.       */
  4.      MON("kobold zombie", S_ZOMBIE, LVL(0, 6, 10, 0, -2),
  5.          (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
  6.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(400, 50, MS_SILENT, MZ_SMALL), MR_COLD | MR_SLEEP | MR_POISON, 0,
  8.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  9.          M2_UNDEAD | M2_STALK | M2_HOSTILE, M3_INFRAVISION, CLR_BROWN),
  10.      MON("gnome zombie", S_ZOMBIE, LVL(1, 6, 10, 0, -2),
  11.          (G_GENO | G_NOCORPSE | 1), A(ATTK(AT_CLAW, AD_PHYS, 1, 5), NO_ATTK,
  12.                                       NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  13.          SIZ(650, 50, MS_SILENT, MZ_SMALL), MR_COLD | MR_SLEEP | MR_POISON, 0,
  14.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  15.          M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_GNOME, M3_INFRAVISION,
  16.          CLR_BROWN),
  17.      MON("orc zombie", S_ZOMBIE, LVL(2, 6, 9, 0, -3),
  18.          (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  19.          A(ATTK(AT_CLAW, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  20.            NO_ATTK),
  21.          SIZ(850, 75, MS_SILENT, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, 0,
  22.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  23.          M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ORC, M3_INFRAVISION, CLR_GRAY),
  24.      MON("dwarf zombie", S_ZOMBIE, LVL(2, 6, 9, 0, -3),
  25.          (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  26.          A(ATTK(AT_CLAW, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  27.            NO_ATTK),
  28.          SIZ(900, 150, MS_SILENT, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON, 0,
  29.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  30.          M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_DWARF, M3_INFRAVISION,
  31.          CLR_RED),
  32.      MON("elf zombie", S_ZOMBIE, LVL(3, 6, 9, 0, -3),
  33.          (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  34.          A(ATTK(AT_CLAW, AD_PHYS, 1, 7), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  35.            NO_ATTK),
  36.          SIZ(WT_ELF, 175, MS_SILENT, MZ_HUMAN), MR_COLD | MR_SLEEP | MR_POISON,
  37.          0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  38.          M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ELF, M3_INFRAVISION,
  39.          CLR_GREEN),
  40.      MON("human zombie", S_ZOMBIE, LVL(4, 6, 8, 0, -3),
  41.          (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  42.          A(ATTK(AT_CLAW, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  43.            NO_ATTK),
  44.          SIZ(WT_HUMAN, 200, MS_SILENT, MZ_HUMAN),
  45.          MR_COLD | MR_SLEEP | MR_POISON, 0,
  46.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  47.          M2_UNDEAD | M2_STALK | M2_HOSTILE, M3_INFRAVISION, HI_DOMESTIC),
  48.      MON("ettin zombie", S_ZOMBIE, LVL(6, 8, 6, 0, -4),
  49.          (G_GENO | G_NOCORPSE | 1),
  50.          A(ATTK(AT_CLAW, AD_PHYS, 1, 10), ATTK(AT_CLAW, AD_PHYS, 1, 10),
  51.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  52.          SIZ(1700, 250, MS_SILENT, MZ_HUGE), MR_COLD | MR_SLEEP | MR_POISON, 0,
  53.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  54.          M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG, M3_INFRAVISION,
  55.          CLR_BLUE),
  56.      MON("ghoul", S_ZOMBIE, LVL(3, 6, 10, 0, -2), (G_GENO | G_NOCORPSE | 1),
  57.          A(ATTK(AT_CLAW, AD_PLYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 3), NO_ATTK,
  58.            NO_ATTK, NO_ATTK, NO_ATTK),
  59.          SIZ(400, 50, MS_SILENT, MZ_SMALL), MR_COLD | MR_SLEEP | MR_POISON, 0,
  60.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS | M1_OMNIVORE,
  61.          M2_UNDEAD | M2_WANDER | M2_HOSTILE, M3_INFRAVISION, CLR_BLACK),
  62.      MON("giant zombie", S_ZOMBIE, LVL(8, 8, 6, 0, -4),
  63.          (G_GENO | G_NOCORPSE | 1),
  64.          A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8), NO_ATTK,
  65.            NO_ATTK, NO_ATTK, NO_ATTK),
  66.          SIZ(2050, 375, MS_SILENT, MZ_HUGE), MR_COLD | MR_SLEEP | MR_POISON, 0,
  67.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  68.          M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_GIANT | M2_STRONG,
  69.          M3_INFRAVISION, CLR_CYAN),
  70.      MON("skeleton", S_ZOMBIE, LVL(12, 8, 4, 0, 0), (G_NOCORPSE | G_NOGEN),
  71.          A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_TUCH, AD_SLOW, 1, 6), NO_ATTK,
  72.            NO_ATTK, NO_ATTK, NO_ATTK),
  73.          SIZ(300, 5, MS_BONES, MZ_HUMAN),
  74.          MR_COLD | MR_SLEEP | MR_POISON | MR_STONE, 0,
  75.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  76.          M2_UNDEAD | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_COLLECT
  77.              | M2_NASTY,
  78.          M3_INFRAVISION, CLR_WHITE),

Golems

  1.      /*
  2.       * golems
  3.       */
  4.      MON("straw golem", S_GOLEM, LVL(3, 12, 10, 0, 0), (G_NOCORPSE | 1),
  5.          A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 2), NO_ATTK,
  6.            NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(400, 0, MS_SILENT, MZ_LARGE), MR_COLD | MR_SLEEP | MR_POISON, 0,
  8.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID, M2_HOSTILE | M2_NEUTER, 0,
  9.          CLR_YELLOW),
  10.      MON("paper golem", S_GOLEM, LVL(3, 12, 10, 0, 0), (G_NOCORPSE | 1),
  11.          A(ATTK(AT_CLAW, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(400, 0, MS_SILENT, MZ_LARGE), MR_COLD | MR_SLEEP | MR_POISON, 0,
  14.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID, M2_HOSTILE | M2_NEUTER, 0,
  15.          HI_PAPER),
  16.      MON("rope golem", S_GOLEM, LVL(4, 9, 8, 0, 0), (G_NOCORPSE | 1),
  17.          A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  18.            ATTK(AT_HUGS, AD_PHYS, 6, 1), NO_ATTK, NO_ATTK, NO_ATTK),
  19.          SIZ(450, 0, MS_SILENT, MZ_LARGE), MR_SLEEP | MR_POISON, 0,
  20.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID, M2_HOSTILE | M2_NEUTER, 0,
  21.          CLR_BROWN),
  22.      MON("gold golem", S_GOLEM, LVL(5, 9, 6, 0, 0), (G_NOCORPSE | 1),
  23.          A(ATTK(AT_CLAW, AD_PHYS, 2, 3), ATTK(AT_CLAW, AD_PHYS, 2, 3), NO_ATTK,
  24.            NO_ATTK, NO_ATTK, NO_ATTK),
  25.          SIZ(450, 0, MS_SILENT, MZ_LARGE), MR_SLEEP | MR_POISON | MR_ACID, 0,
  26.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  27.          M2_HOSTILE | M2_NEUTER, 0, HI_GOLD),
  28.      MON("leather golem", S_GOLEM, LVL(6, 6, 6, 0, 0), (G_NOCORPSE | 1),
  29.          A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6), NO_ATTK,
  30.            NO_ATTK, NO_ATTK, NO_ATTK),
  31.          SIZ(800, 0, MS_SILENT, MZ_LARGE), MR_SLEEP | MR_POISON, 0,
  32.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID, M2_HOSTILE | M2_NEUTER, 0,
  33.          HI_LEATHER),
  34.      MON("wood golem", S_GOLEM, LVL(7, 3, 4, 0, 0), (G_NOCORPSE | 1),
  35.          A(ATTK(AT_CLAW, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  36.            NO_ATTK),
  37.          SIZ(900, 0, MS_SILENT, MZ_LARGE), MR_COLD | MR_SLEEP | MR_POISON, 0,
  38.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  39.          M2_HOSTILE | M2_NEUTER, 0, HI_WOOD),
  40.      MON("flesh golem", S_GOLEM, LVL(9, 8, 9, 30, 0), (1),
  41.          A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8), NO_ATTK,
  42.            NO_ATTK, NO_ATTK, NO_ATTK),
  43.          SIZ(1400, 600, MS_SILENT, MZ_LARGE),
  44.          MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON,
  45.          MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON,
  46.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID, M2_HOSTILE | M2_STRONG, 0,
  47.          CLR_RED),
  48.      MON("clay golem", S_GOLEM, LVL(11, 7, 7, 40, 0), (G_NOCORPSE | 1),
  49.          A(ATTK(AT_CLAW, AD_PHYS, 3, 10), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  50.            NO_ATTK),
  51.          SIZ(1550, 0, MS_SILENT, MZ_LARGE), MR_SLEEP | MR_POISON, 0,
  52.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  53.          M2_HOSTILE | M2_STRONG, 0, CLR_BROWN),
  54.      MON("stone golem", S_GOLEM, LVL(14, 6, 5, 50, 0), (G_NOCORPSE | 1),
  55.          A(ATTK(AT_CLAW, AD_PHYS, 3, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  56.            NO_ATTK),
  57.          SIZ(1900, 0, MS_SILENT, MZ_LARGE), MR_SLEEP | MR_POISON | MR_STONE, 0,
  58.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  59.          M2_HOSTILE | M2_STRONG, 0, CLR_GRAY),
  60.      MON("glass golem", S_GOLEM, LVL(16, 6, 1, 50, 0), (G_NOCORPSE | 1),
  61.          A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8), NO_ATTK,
  62.            NO_ATTK, NO_ATTK, NO_ATTK),
  63.          SIZ(1800, 0, MS_SILENT, MZ_LARGE), MR_SLEEP | MR_POISON | MR_ACID, 0,
  64.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  65.          M2_HOSTILE | M2_STRONG, 0, CLR_CYAN),
  66.      MON("iron golem", S_GOLEM, LVL(18, 6, 3, 60, 0), (G_NOCORPSE | 1),
  67.          A(ATTK(AT_WEAP, AD_PHYS, 4, 10), ATTK(AT_BREA, AD_DRST, 4, 6),
  68.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  69.          SIZ(2000, 0, MS_SILENT, MZ_LARGE),
  70.          MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  71.          M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE | M1_POIS,
  72.          M2_HOSTILE | M2_STRONG | M2_COLLECT, 0, HI_METAL),

Humans, elves, and were-critters

  1.      /*
  2.       * humans, including elves and were-critters
  3.       */
  4.      MON("human", S_HUMAN, LVL(0, 12, 10, 0, 0), G_NOGEN, /* for corpses */
  5.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  8.          M1_HUMANOID | M1_OMNIVORE,
  9.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, M3_INFRAVISIBLE,
  10.          HI_DOMESTIC),
  11.      MON("wererat", S_HUMAN, LVL(2, 12, 10, 10, -7), (1),
  12.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(WT_HUMAN, 400, MS_WERE, MZ_HUMAN), MR_POISON, 0,
  15.          M1_HUMANOID | M1_POIS | M1_REGEN | M1_OMNIVORE,
  16.          M2_NOPOLY | M2_WERE | M2_HOSTILE | M2_HUMAN | M2_COLLECT,
  17.          M3_INFRAVISIBLE, CLR_BROWN),
  18.      MON("werejackal", S_HUMAN, LVL(2, 12, 10, 10, -7), (1),
  19.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  20.            NO_ATTK),
  21.          SIZ(WT_HUMAN, 400, MS_WERE, MZ_HUMAN), MR_POISON, 0,
  22.          M1_HUMANOID | M1_POIS | M1_REGEN | M1_OMNIVORE,
  23.          M2_NOPOLY | M2_WERE | M2_HOSTILE | M2_HUMAN | M2_COLLECT,
  24.          M3_INFRAVISIBLE, CLR_RED),
  25.      MON("werewolf", S_HUMAN, LVL(5, 12, 10, 20, -7), (1),
  26.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  27.            NO_ATTK),
  28.          SIZ(WT_HUMAN, 400, MS_WERE, MZ_HUMAN), MR_POISON, 0,
  29.          M1_HUMANOID | M1_POIS | M1_REGEN | M1_OMNIVORE,
  30.          M2_NOPOLY | M2_WERE | M2_HOSTILE | M2_HUMAN | M2_COLLECT,
  31.          M3_INFRAVISIBLE, CLR_ORANGE),
  32.      MON("elf", S_HUMAN, LVL(10, 12, 10, 2, -3), G_NOGEN, /* for corpses */
  33.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  34.            NO_ATTK),
  35.          SIZ(WT_ELF, 350, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  36.          M1_HUMANOID | M1_OMNIVORE | M1_SEE_INVIS,
  37.          M2_NOPOLY | M2_ELF | M2_STRONG | M2_COLLECT,
  38.          M3_INFRAVISION | M3_INFRAVISIBLE, HI_DOMESTIC),
  39.      MON("Woodland-elf", S_HUMAN, LVL(4, 12, 10, 10, -5),
  40.          (G_GENO | G_SGROUP | 2), A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK,
  41.                                     NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  42.          SIZ(WT_ELF, 350, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  43.          M1_HUMANOID | M1_OMNIVORE | M1_SEE_INVIS, M2_ELF | M2_COLLECT,
  44.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_GREEN),
  45.      MON("Green-elf", S_HUMAN, LVL(5, 12, 10, 10, -6), (G_GENO | G_SGROUP | 2),
  46.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  47.            NO_ATTK),
  48.          SIZ(WT_ELF, 350, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  49.          M1_HUMANOID | M1_OMNIVORE | M1_SEE_INVIS, M2_ELF | M2_COLLECT,
  50.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BRIGHT_GREEN),
  51.      MON("Grey-elf", S_HUMAN, LVL(6, 12, 10, 10, -7), (G_GENO | G_SGROUP | 2),
  52.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  53.            NO_ATTK),
  54.          SIZ(WT_ELF, 350, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  55.          M1_HUMANOID | M1_OMNIVORE | M1_SEE_INVIS, M2_ELF | M2_COLLECT,
  56.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_GRAY),
  57.      MON("elf-lord", S_HUMAN, LVL(8, 12, 10, 20, -9), (G_GENO | G_SGROUP | 2),
  58.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK,
  59.            NO_ATTK, NO_ATTK, NO_ATTK),
  60.          SIZ(WT_ELF, 350, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  61.          M1_HUMANOID | M1_OMNIVORE | M1_SEE_INVIS,
  62.          M2_ELF | M2_STRONG | M2_LORD | M2_MALE | M2_COLLECT,
  63.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BRIGHT_BLUE),
  64.      MON("Elvenking", S_HUMAN, LVL(9, 12, 10, 25, -10), (G_GENO | 1),
  65.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK,
  66.            NO_ATTK, NO_ATTK, NO_ATTK),
  67.          SIZ(WT_ELF, 350, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  68.          M1_HUMANOID | M1_OMNIVORE | M1_SEE_INVIS,
  69.          M2_ELF | M2_STRONG | M2_PRINCE | M2_MALE | M2_COLLECT,
  70.          M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),
  71.      MON("doppelganger", S_HUMAN, LVL(9, 12, 5, 20, 0), (G_GENO | 1),
  72.          A(ATTK(AT_WEAP, AD_PHYS, 1, 12), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  73.            NO_ATTK),
  74.          SIZ(WT_HUMAN, 400, MS_IMITATE, MZ_HUMAN), MR_SLEEP, 0,
  75.          M1_HUMANOID | M1_OMNIVORE,
  76.          M2_NOPOLY | M2_HUMAN | M2_HOSTILE | M2_STRONG | M2_COLLECT
  77.              | M2_SHAPESHIFTER,
  78.          M3_INFRAVISIBLE, HI_DOMESTIC),
  79.      MON("shopkeeper", S_HUMAN, LVL(12, 18, 0, 50, 0), G_NOGEN,
  80.          A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4), NO_ATTK,
  81.            NO_ATTK, NO_ATTK, NO_ATTK),
  82.          SIZ(WT_HUMAN, 400, MS_SELL, MZ_HUMAN), 0, 0,
  83.          M1_HUMANOID | M1_OMNIVORE, M2_NOPOLY | M2_HUMAN | M2_PEACEFUL
  84.                                         | M2_STRONG | M2_COLLECT | M2_MAGIC,
  85.          M3_INFRAVISIBLE, HI_DOMESTIC),
  86.      MON("guard", S_HUMAN, LVL(12, 12, 10, 40, 10), G_NOGEN,
  87.          A(ATTK(AT_WEAP, AD_PHYS, 4, 10), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  88.            NO_ATTK),
  89.          SIZ(WT_HUMAN, 400, MS_GUARD, MZ_HUMAN), 0, 0,
  90.          M1_HUMANOID | M1_OMNIVORE,
  91.          M2_NOPOLY | M2_HUMAN | M2_MERC | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  92.          M3_INFRAVISIBLE, CLR_BLUE),
  93.      MON("prisoner", S_HUMAN, LVL(12, 12, 10, 0, 0),
  94.          G_NOGEN, /* for special levels */
  95.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  96.            NO_ATTK),
  97.          SIZ(WT_HUMAN, 400, MS_DJINNI, MZ_HUMAN), 0, 0,
  98.          M1_HUMANOID | M1_OMNIVORE,
  99.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  100.          M3_INFRAVISIBLE | M3_CLOSE, HI_DOMESTIC),
  101.      MON("Oracle", S_HUMAN, LVL(12, 0, 0, 50, 0), (G_NOGEN | G_UNIQ),
  102.          A(ATTK(AT_NONE, AD_MAGM, 0, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  103.            NO_ATTK),
  104.          SIZ(WT_HUMAN, 400, MS_ORACLE, MZ_HUMAN), 0, 0,
  105.          M1_HUMANOID | M1_OMNIVORE,
  106.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_FEMALE, M3_INFRAVISIBLE,
  107.          HI_ZAP),
  108.      /* aligned priests always have the epri extension attached;
  109.         individual instantiations should always have either ispriest
  110.         or isminion set */
  111.      MON("aligned priest", S_HUMAN, LVL(12, 12, 10, 50, 0), G_NOGEN,
  112.          A(ATTK(AT_WEAP, AD_PHYS, 4, 10), ATTK(AT_KICK, AD_PHYS, 1, 4),
  113.            ATTK(AT_MAGC, AD_CLRC, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  114.          SIZ(WT_HUMAN, 400, MS_PRIEST, MZ_HUMAN), MR_ELEC, 0,
  115.          M1_HUMANOID | M1_OMNIVORE,
  116.          M2_NOPOLY | M2_HUMAN | M2_LORD | M2_PEACEFUL | M2_COLLECT,
  117.          M3_INFRAVISIBLE, CLR_WHITE),
  118.      /* high priests always have epri and always have ispriest set */
  119.      MON("high priest", S_HUMAN, LVL(25, 15, 7, 70, 0), (G_NOGEN | G_UNIQ),
  120.          A(ATTK(AT_WEAP, AD_PHYS, 4, 10), ATTK(AT_KICK, AD_PHYS, 2, 8),
  121.            ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8), NO_ATTK,
  122.            NO_ATTK),
  123.          SIZ(WT_HUMAN, 400, MS_PRIEST, MZ_HUMAN),
  124.          MR_FIRE | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  125.          M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  126.          M2_NOPOLY | M2_HUMAN | M2_MINION | M2_PRINCE | M2_NASTY | M2_COLLECT
  127.              | M2_MAGIC,
  128.          M3_INFRAVISIBLE, CLR_WHITE),
  129.      MON("soldier", S_HUMAN, LVL(6, 10, 10, 0, -2), (G_SGROUP | G_GENO | 1),
  130.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  131.            NO_ATTK),
  132.          SIZ(WT_HUMAN, 400, MS_SOLDIER, MZ_HUMAN), 0, 0,
  133.          M1_HUMANOID | M1_OMNIVORE, M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK
  134.                                         | M2_HOSTILE | M2_STRONG | M2_COLLECT,
  135.          M3_INFRAVISIBLE, CLR_GRAY),
  136.      MON("sergeant", S_HUMAN, LVL(8, 10, 10, 5, -3), (G_SGROUP | G_GENO | 1),
  137.          A(ATTK(AT_WEAP, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  138.            NO_ATTK),
  139.          SIZ(WT_HUMAN, 400, MS_SOLDIER, MZ_HUMAN), 0, 0,
  140.          M1_HUMANOID | M1_OMNIVORE, M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK
  141.                                         | M2_HOSTILE | M2_STRONG | M2_COLLECT,
  142.          M3_INFRAVISIBLE, CLR_RED),
  143.      MON("nurse", S_HUMAN, LVL(11, 6, 0, 0, 0), (G_GENO | 3),
  144.          A(ATTK(AT_CLAW, AD_HEAL, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  145.            NO_ATTK),
  146.          SIZ(WT_HUMAN, 400, MS_NURSE, MZ_HUMAN), MR_POISON, MR_POISON,
  147.          M1_HUMANOID | M1_OMNIVORE, M2_NOPOLY | M2_HUMAN | M2_HOSTILE,
  148.          M3_INFRAVISIBLE, HI_DOMESTIC),
  149.      MON("lieutenant", S_HUMAN, LVL(10, 10, 10, 15, -4), (G_GENO | 1),
  150.          A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 3, 4), NO_ATTK,
  151.            NO_ATTK, NO_ATTK, NO_ATTK),
  152.          SIZ(WT_HUMAN, 400, MS_SOLDIER, MZ_HUMAN), 0, 0,
  153.          M1_HUMANOID | M1_OMNIVORE, M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK
  154.                                         | M2_HOSTILE | M2_STRONG | M2_COLLECT,
  155.          M3_INFRAVISIBLE, CLR_GREEN),
  156.      MON("captain", S_HUMAN, LVL(12, 10, 10, 15, -5), (G_GENO | 1),
  157.          A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4), NO_ATTK,
  158.            NO_ATTK, NO_ATTK, NO_ATTK),
  159.          SIZ(WT_HUMAN, 400, MS_SOLDIER, MZ_HUMAN), 0, 0,
  160.          M1_HUMANOID | M1_OMNIVORE, M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK
  161.                                         | M2_HOSTILE | M2_STRONG | M2_COLLECT,
  162.          M3_INFRAVISIBLE, CLR_BLUE),
  163.      /* Keep these separate - some of the mkroom code assumes that
  164.       * all the soldiers are contiguous.
  165.       */
  166.      MON("watchman", S_HUMAN, LVL(6, 10, 10, 0, -2),
  167.          (G_SGROUP | G_NOGEN | G_GENO | 1),
  168.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  169.            NO_ATTK),
  170.          SIZ(WT_HUMAN, 400, MS_SOLDIER, MZ_HUMAN), 0, 0,
  171.          M1_HUMANOID | M1_OMNIVORE, M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK
  172.                                         | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  173.          M3_INFRAVISIBLE, CLR_GRAY),
  174.      MON("watch captain", S_HUMAN, LVL(10, 10, 10, 15, -4),
  175.          (G_NOGEN | G_GENO | 1),
  176.          A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 3, 4), NO_ATTK,
  177.            NO_ATTK, NO_ATTK, NO_ATTK),
  178.          SIZ(WT_HUMAN, 400, MS_SOLDIER, MZ_HUMAN), 0, 0,
  179.          M1_HUMANOID | M1_OMNIVORE, M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK
  180.                                         | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  181.          M3_INFRAVISIBLE, CLR_GREEN),
  182.      /* Unique humans not tied to quests.
  183.       */
  184.      MON("Medusa", S_HUMAN, LVL(20, 12, 2, 50, -15), (G_NOGEN | G_UNIQ),
  185.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 1, 8),
  186.            ATTK(AT_GAZE, AD_STON, 0, 0), ATTK(AT_BITE, AD_DRST, 1, 6), NO_ATTK,
  187.            NO_ATTK),
  188.          SIZ(WT_HUMAN, 400, MS_HISS, MZ_LARGE), MR_POISON | MR_STONE,
  189.          MR_POISON | MR_STONE, M1_FLY | M1_SWIM | M1_AMPHIBIOUS | M1_HUMANOID
  190.                                    | M1_POIS | M1_OMNIVORE,
  191.          M2_NOPOLY | M2_HOSTILE | M2_STRONG | M2_PNAME | M2_FEMALE,
  192.          M3_WAITFORU | M3_INFRAVISIBLE, CLR_BRIGHT_GREEN),
  193.      MON("Wizard of Yendor", S_HUMAN, LVL(30, 12, -8, 100, A_NONE),
  194.          (G_NOGEN | G_UNIQ),
  195.          A(ATTK(AT_CLAW, AD_SAMU, 2, 12), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  196.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  197.          SIZ(WT_HUMAN, 400, MS_CUSS, MZ_HUMAN), MR_FIRE | MR_POISON,
  198.          MR_FIRE | MR_POISON,
  199.          M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_REGEN | M1_SEE_INVIS
  200.              | M1_TPORT | M1_TPORT_CNTRL | M1_OMNIVORE,
  201.          M2_NOPOLY | M2_HUMAN | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_PRINCE
  202.              | M2_MALE | M2_MAGIC,
  203.          M3_COVETOUS | M3_WAITFORU | M3_INFRAVISIBLE, HI_LORD),
  204.      MON("Croesus", S_HUMAN, LVL(20, 15, 0, 40, 15), (G_UNIQ | G_NOGEN),
  205.          A(ATTK(AT_WEAP, AD_PHYS, 4, 10), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  206.            NO_ATTK),
  207.          SIZ(WT_HUMAN, 400, MS_GUARD, MZ_HUMAN), 0, 0,
  208.          M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  209.          M2_NOPOLY | M2_HUMAN | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY
  210.              | M2_PNAME | M2_PRINCE | M2_MALE | M2_GREEDY | M2_JEWELS
  211.              | M2_COLLECT | M2_MAGIC,
  212.          M3_INFRAVISIBLE, HI_LORD),
  213.  #ifdef CHARON
  214.      MON("Charon", S_HUMAN, LVL(76, 18, -5, 120, 0),
  215.          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  216.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_TUCH, AD_PLYS, 1, 8), NO_ATTK,
  217.            NO_ATTK, NO_ATTK, NO_ATTK),
  218.          SIZ(WT_HUMAN, 400, MS_FERRY, MZ_HUMAN),
  219.          MR_FIRE | MR_COLD | MR_POISON | MR_STONE, 0,
  220.          M1_BREATHLESS | M1_SEE_INVIS | M1_HUMANOID,
  221.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_PNAME | M2_MALE | M2_GREEDY
  222.              | M2_COLLECT,
  223.          M3_INFRAVISIBLE, CLR_WHITE),
  224.  #endif

Ghosts

  1.      /*
  2.       * ghosts
  3.       */
  4.      MON("ghost", S_GHOST, LVL(10, 3, -5, 50, -5), (G_NOCORPSE | G_NOGEN),
  5.          A(ATTK(AT_TUCH, AD_PHYS, 1, 1), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(WT_HUMAN, 0, MS_SILENT, MZ_HUMAN),
  8.          MR_COLD | MR_DISINT | MR_SLEEP | MR_POISON | MR_STONE, 0,
  9.          M1_FLY | M1_BREATHLESS | M1_WALLWALK | M1_HUMANOID | M1_UNSOLID,
  10.          M2_NOPOLY | M2_UNDEAD | M2_STALK | M2_HOSTILE, M3_INFRAVISION,
  11.          CLR_GRAY),
  12.      MON("shade", S_GHOST, LVL(12, 10, 10, 0, 0), (G_NOCORPSE | G_NOGEN),
  13.          A(ATTK(AT_TUCH, AD_PLYS, 2, 6), ATTK(AT_TUCH, AD_SLOW, 1, 6), NO_ATTK,
  14.            NO_ATTK, NO_ATTK, NO_ATTK),
  15.          SIZ(WT_HUMAN, 0, MS_WAIL, MZ_HUMAN),
  16.          MR_COLD | MR_DISINT | MR_SLEEP | MR_POISON | MR_STONE, 0,
  17.          M1_FLY | M1_BREATHLESS | M1_WALLWALK | M1_HUMANOID | M1_UNSOLID
  18.              | M1_SEE_INVIS,
  19.          M2_NOPOLY | M2_UNDEAD | M2_WANDER | M2_STALK | M2_HOSTILE | M2_NASTY,
  20.          M3_INFRAVISION, CLR_BLACK),

Demons

  1.      /*
  2.       * (major) demons
  3.       */
  4.      MON("water demon", S_DEMON, LVL(8, 12, -4, 30, -7),
  5.          (G_NOCORPSE | G_NOGEN),
  6.          A(ATTK(AT_WEAP, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  7.            ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK),
  8.          SIZ(WT_HUMAN, 400, MS_DJINNI, MZ_HUMAN), MR_FIRE | MR_POISON, 0,
  9.          M1_HUMANOID | M1_POIS | M1_SWIM,
  10.          M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_COLLECT,
  11.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BLUE),
  12.  /* standard demons & devils
  13.   */
  14.  #define SEDUCTION_ATTACKS_YES                                     \
  15.      A(ATTK(AT_BITE, AD_SSEX, 0, 0), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
  16.        ATTK(AT_CLAW, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK)
  17.  #define SEDUCTION_ATTACKS_NO                                      \
  18.      A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
  19.        ATTK(AT_BITE, AD_DRLI, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK)
  20.      MON("succubus", S_DEMON, LVL(6, 12, 0, 70, -9), (G_NOCORPSE | 1),
  21.          SEDUCTION_ATTACKS_YES, SIZ(WT_HUMAN, 400, MS_SEDUCE, MZ_HUMAN),
  22.          MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_FLY | M1_POIS,
  23.          M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEMALE,
  24.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_GRAY),
  25.      MON("horned devil", S_DEMON, LVL(6, 9, -5, 50, 11),
  26.          (G_HELL | G_NOCORPSE | 2),
  27.          A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  28.            ATTK(AT_BITE, AD_PHYS, 2, 3), ATTK(AT_STNG, AD_PHYS, 1, 3), NO_ATTK,
  29.            NO_ATTK),
  30.          SIZ(WT_HUMAN, 400, MS_SILENT, MZ_HUMAN), MR_FIRE | MR_POISON, 0,
  31.          M1_POIS | M1_THICK_HIDE, M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY,
  32.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_BROWN),
  33.      MON("incubus", S_DEMON, LVL(6, 12, 0, 70, -9), (G_NOCORPSE | 1),
  34.          SEDUCTION_ATTACKS_YES, SIZ(WT_HUMAN, 400, MS_SEDUCE, MZ_HUMAN),
  35.          MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_FLY | M1_POIS,
  36.          M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_MALE,
  37.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_GRAY),
  38.      /* Used by AD&D for a type of demon, originally one of the Furies */
  39.      /* and spelled this way */
  40.      MON("erinys", S_DEMON, LVL(7, 12, 2, 30, 10),
  41.          (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  42.          A(ATTK(AT_WEAP, AD_DRST, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  43.            NO_ATTK),
  44.          SIZ(WT_HUMAN, 400, MS_SILENT, MZ_HUMAN), MR_FIRE | MR_POISON, 0,
  45.          M1_HUMANOID | M1_POIS,
  46.          M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY
  47.              | M2_FEMALE | M2_COLLECT,
  48.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  49.      MON("barbed devil", S_DEMON, LVL(8, 12, 0, 35, 8),
  50.          (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  51.          A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  52.            ATTK(AT_STNG, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  53.          SIZ(WT_HUMAN, 400, MS_SILENT, MZ_HUMAN), MR_FIRE | MR_POISON, 0,
  54.          M1_POIS | M1_THICK_HIDE, M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY,
  55.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  56.      MON("marilith", S_DEMON, LVL(7, 12, -6, 80, -12),
  57.          (G_HELL | G_NOCORPSE | 1),
  58.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  59.            ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  60.            ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4)),
  61.          SIZ(WT_HUMAN, 400, MS_CUSS, MZ_LARGE), MR_FIRE | MR_POISON, 0,
  62.          M1_HUMANOID | M1_SLITHY | M1_SEE_INVIS | M1_POIS,
  63.          M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEMALE | M2_COLLECT,
  64.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  65.      MON("vrock", S_DEMON, LVL(8, 12, 0, 50, -9),
  66.          (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  67.          A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  68.            ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_CLAW, AD_PHYS, 1, 8),
  69.            ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK),
  70.          SIZ(WT_HUMAN, 400, MS_SILENT, MZ_LARGE), MR_FIRE | MR_POISON, 0,
  71.          M1_POIS, M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY,
  72.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  73.      MON("hezrou", S_DEMON, LVL(9, 6, -2, 55, -10),
  74.          (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  75.          A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  76.            ATTK(AT_BITE, AD_PHYS, 4, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  77.          SIZ(WT_HUMAN, 400, MS_SILENT, MZ_LARGE), MR_FIRE | MR_POISON, 0,
  78.          M1_HUMANOID | M1_POIS, M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY,
  79.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  80.      MON("bone devil", S_DEMON, LVL(9, 15, -1, 40, -9),
  81.          (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  82.          A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK,
  83.            NO_ATTK, NO_ATTK, NO_ATTK),
  84.          SIZ(WT_HUMAN, 400, MS_SILENT, MZ_LARGE), MR_FIRE | MR_POISON, 0,
  85.          M1_POIS, M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_COLLECT,
  86.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_GRAY),
  87.      MON("ice devil", S_DEMON, LVL(11, 6, -4, 55, -12),
  88.          (G_HELL | G_NOCORPSE | 2),
  89.          A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  90.            ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_STNG, AD_COLD, 3, 4), NO_ATTK,
  91.            NO_ATTK),
  92.          SIZ(WT_HUMAN, 400, MS_SILENT, MZ_LARGE),
  93.          MR_FIRE | MR_COLD | MR_POISON, 0, M1_SEE_INVIS | M1_POIS,
  94.          M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY,
  95.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_WHITE),
  96.      MON("nalfeshnee", S_DEMON, LVL(11, 9, -1, 65, -11),
  97.          (G_HELL | G_NOCORPSE | 1),
  98.          A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  99.            ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK,
  100.            NO_ATTK),
  101.          SIZ(WT_HUMAN, 400, MS_SPELL, MZ_LARGE), MR_FIRE | MR_POISON, 0,
  102.          M1_HUMANOID | M1_POIS, M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY,
  103.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  104.      MON("pit fiend", S_DEMON, LVL(13, 6, -3, 65, -13),
  105.          (G_HELL | G_NOCORPSE | 2),
  106.          A(ATTK(AT_WEAP, AD_PHYS, 4, 2), ATTK(AT_WEAP, AD_PHYS, 4, 2),
  107.            ATTK(AT_HUGS, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  108.          SIZ(WT_HUMAN, 400, MS_GROWL, MZ_LARGE), MR_FIRE | MR_POISON, 0,
  109.          M1_SEE_INVIS | M1_POIS,
  110.          M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_COLLECT,
  111.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  112.      MON("sandestin", S_DEMON, LVL(13, 12, 4, 60, -5),
  113.          (G_HELL | G_NOCORPSE | 1),
  114.          A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6), NO_ATTK,
  115.            NO_ATTK, NO_ATTK, NO_ATTK),
  116.          SIZ(1500, 400, MS_CUSS, MZ_HUMAN), MR_STONE, 0, M1_HUMANOID,
  117.          M2_NOPOLY | M2_STALK | M2_STRONG | M2_COLLECT | M2_SHAPESHIFTER,
  118.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_GRAY),
  119.      MON("balrog", S_DEMON, LVL(16, 5, -2, 75, -14), (G_HELL | G_NOCORPSE | 1),
  120.          A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6), NO_ATTK,
  121.            NO_ATTK, NO_ATTK, NO_ATTK),
  122.          SIZ(WT_HUMAN, 400, MS_SILENT, MZ_LARGE), MR_FIRE | MR_POISON, 0,
  123.          M1_FLY | M1_SEE_INVIS | M1_POIS,
  124.          M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_COLLECT,
  125.          M3_INFRAVISIBLE | M3_INFRAVISION, CLR_RED),
  126.      /* Named demon lords & princes plus Arch-Devils.
  127.       * (their order matters; see minion.c)
  128.       */
  129.      MON("Juiblex", S_DEMON, LVL(50, 3, -7, 65, -15),
  130.          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  131.          A(ATTK(AT_ENGL, AD_DISE, 4, 10), ATTK(AT_SPIT, AD_ACID, 3, 6),
  132.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  133.          SIZ(1500, 0, MS_GURGLE, MZ_LARGE),
  134.          MR_FIRE | MR_POISON | MR_ACID | MR_STONE, 0,
  135.          M1_AMPHIBIOUS | M1_AMORPHOUS | M1_NOHEAD | M1_FLY | M1_SEE_INVIS
  136.              | M1_ACID | M1_POIS,
  137.          M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY
  138.              | M2_LORD | M2_MALE,
  139.          M3_WAITFORU | M3_WANTSAMUL | M3_INFRAVISION, CLR_BRIGHT_GREEN),
  140.      MON("Yeenoghu", S_DEMON, LVL(56, 18, -5, 80, -15),
  141.          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  142.          A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_WEAP, AD_CONF, 2, 8),
  143.            ATTK(AT_CLAW, AD_PLYS, 1, 6), ATTK(AT_MAGC, AD_MAGM, 2, 6), NO_ATTK,
  144.            NO_ATTK),
  145.          SIZ(900, 500, MS_ORC, MZ_LARGE), MR_FIRE | MR_POISON, 0,
  146.          M1_FLY | M1_SEE_INVIS | M1_POIS,
  147.          M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY
  148.              | M2_LORD | M2_MALE | M2_COLLECT,
  149.          M3_WANTSAMUL | M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),
  150.      MON("Orcus", S_DEMON, LVL(66, 9, -6, 85, -20),
  151.          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  152.          A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  153.            ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_MAGC, AD_SPEL, 8, 6),
  154.            ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK),
  155.          SIZ(1500, 500, MS_ORC, MZ_HUGE), MR_FIRE | MR_POISON, 0,
  156.          M1_FLY | M1_SEE_INVIS | M1_POIS,
  157.          M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY
  158.              | M2_PRINCE | M2_MALE | M2_COLLECT,
  159.          M3_WAITFORU | M3_WANTSBOOK | M3_WANTSAMUL | M3_INFRAVISIBLE
  160.              | M3_INFRAVISION,
  161.          HI_LORD),
  162.      MON("Geryon", S_DEMON, LVL(72, 3, -3, 75, 15),
  163.          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  164.          A(ATTK(AT_CLAW, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 6),
  165.            ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  166.          SIZ(1500, 500, MS_BRIBE, MZ_HUGE), MR_FIRE | MR_POISON, 0,
  167.          M1_FLY | M1_SEE_INVIS | M1_POIS | M1_SLITHY,
  168.          M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY
  169.              | M2_PRINCE | M2_MALE,
  170.          M3_WANTSAMUL | M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),
  171.      MON("Dispater", S_DEMON, LVL(78, 15, -2, 80, 15),
  172.          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  173.          A(ATTK(AT_WEAP, AD_PHYS, 4, 6), ATTK(AT_MAGC, AD_SPEL, 6, 6), NO_ATTK,
  174.            NO_ATTK, NO_ATTK, NO_ATTK),
  175.          SIZ(1500, 500, MS_BRIBE, MZ_HUMAN), MR_FIRE | MR_POISON, 0,
  176.          M1_FLY | M1_SEE_INVIS | M1_POIS | M1_HUMANOID,
  177.          M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY
  178.              | M2_PRINCE | M2_MALE | M2_COLLECT,
  179.          M3_WANTSAMUL | M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),
  180.      MON("Baalzebub", S_DEMON, LVL(89, 9, -5, 85, 20),
  181.          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  182.          A(ATTK(AT_BITE, AD_DRST, 2, 6), ATTK(AT_GAZE, AD_STUN, 2, 6), NO_ATTK,
  183.            NO_ATTK, NO_ATTK, NO_ATTK),
  184.          SIZ(1500, 500, MS_BRIBE, MZ_LARGE), MR_FIRE | MR_POISON, 0,
  185.          M1_FLY | M1_SEE_INVIS | M1_POIS,
  186.          M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY
  187.              | M2_PRINCE | M2_MALE,
  188.          M3_WANTSAMUL | M3_WAITFORU | M3_INFRAVISIBLE | M3_INFRAVISION,
  189.          HI_LORD),
  190.      MON("Asmodeus", S_DEMON, LVL(105, 12, -7, 90, 20),
  191.          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  192.          A(ATTK(AT_CLAW, AD_PHYS, 4, 4), ATTK(AT_MAGC, AD_COLD, 6, 6), NO_ATTK,
  193.            NO_ATTK, NO_ATTK, NO_ATTK),
  194.          SIZ(1500, 500, MS_BRIBE, MZ_HUGE), MR_FIRE | MR_COLD | MR_POISON, 0,
  195.          M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS,
  196.          M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG
  197.              | M2_NASTY | M2_PRINCE | M2_MALE,
  198.          M3_WANTSAMUL | M3_WAITFORU | M3_INFRAVISIBLE | M3_INFRAVISION,
  199.          HI_LORD),
  200.      MON("Demogorgon", S_DEMON, LVL(106, 15, -8, 95, -20),
  201.          (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  202.          A(ATTK(AT_MAGC, AD_SPEL, 8, 6), ATTK(AT_STNG, AD_DRLI, 1, 4),
  203.            ATTK(AT_CLAW, AD_DISE, 1, 6), ATTK(AT_CLAW, AD_DISE, 1, 6), NO_ATTK,
  204.            NO_ATTK),
  205.          SIZ(1500, 500, MS_GROWL, MZ_HUGE), MR_FIRE | MR_POISON, 0,
  206.          M1_FLY | M1_SEE_INVIS | M1_NOHANDS | M1_POIS,
  207.          M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY
  208.              | M2_PRINCE | M2_MALE,
  209.          M3_WANTSAMUL | M3_INFRAVISIBLE | M3_INFRAVISION, HI_LORD),
  210.      /* Riders -- the Four Horsemen of the Apocalypse ("War" == player)
  211.       */
  212.      MON("Death", S_DEMON, LVL(30, 12, -5, 100, 0), (G_UNIQ | G_NOGEN),
  213.          A(ATTK(AT_TUCH, AD_DETH, 8, 8), ATTK(AT_TUCH, AD_DETH, 8, 8), NO_ATTK,
  214.            NO_ATTK, NO_ATTK, NO_ATTK),
  215.          SIZ(WT_HUMAN, 1, MS_RIDER, MZ_HUMAN),
  216.          MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE, 0,
  217.          M1_FLY | M1_HUMANOID | M1_REGEN | M1_SEE_INVIS | M1_TPORT_CNTRL,
  218.          M2_NOPOLY | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY,
  219.          M3_INFRAVISIBLE | M3_INFRAVISION | M3_DISPLACES, HI_LORD),
  220.      MON("Pestilence", S_DEMON, LVL(30, 12, -5, 100, 0), (G_UNIQ | G_NOGEN),
  221.          A(ATTK(AT_TUCH, AD_PEST, 8, 8), ATTK(AT_TUCH, AD_PEST, 8, 8), NO_ATTK,
  222.            NO_ATTK, NO_ATTK, NO_ATTK),
  223.          SIZ(WT_HUMAN, 1, MS_RIDER, MZ_HUMAN),
  224.          MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE, 0,
  225.          M1_FLY | M1_HUMANOID | M1_REGEN | M1_SEE_INVIS | M1_TPORT_CNTRL,
  226.          M2_NOPOLY | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY,
  227.          M3_INFRAVISIBLE | M3_INFRAVISION | M3_DISPLACES, HI_LORD),
  228.      MON("Famine", S_DEMON, LVL(30, 12, -5, 100, 0), (G_UNIQ | G_NOGEN),
  229.          A(ATTK(AT_TUCH, AD_FAMN, 8, 8), ATTK(AT_TUCH, AD_FAMN, 8, 8), NO_ATTK,
  230.            NO_ATTK, NO_ATTK, NO_ATTK),
  231.          SIZ(WT_HUMAN, 1, MS_RIDER, MZ_HUMAN),
  232.          MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE, 0,
  233.          M1_FLY | M1_HUMANOID | M1_REGEN | M1_SEE_INVIS | M1_TPORT_CNTRL,
  234.          M2_NOPOLY | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY,
  235.          M3_INFRAVISIBLE | M3_INFRAVISION | M3_DISPLACES, HI_LORD),
  236.  /* other demons
  237.   */
  238.  #ifdef MAIL
  239.      MON("mail daemon", S_DEMON, LVL(56, 24, 10, 127, 0),
  240.          (G_NOGEN | G_NOCORPSE),
  241.          A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  242.          SIZ(600, 300, MS_SILENT, MZ_HUMAN),
  243.          MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE, 0,
  244.          M1_FLY | M1_SWIM | M1_BREATHLESS | M1_SEE_INVIS | M1_HUMANOID
  245.              | M1_POIS,
  246.          M2_NOPOLY | M2_STALK | M2_PEACEFUL, M3_INFRAVISIBLE | M3_INFRAVISION,
  247.          CLR_BRIGHT_BLUE),
  248.  #endif
  249.      MON("djinni", S_DEMON, LVL(7, 12, 4, 30, 0), (G_NOGEN | G_NOCORPSE),
  250.          A(ATTK(AT_WEAP, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  251.            NO_ATTK),
  252.          SIZ(1500, 400, MS_DJINNI, MZ_HUMAN), MR_POISON | MR_STONE, 0,
  253.          M1_HUMANOID | M1_FLY | M1_POIS, M2_NOPOLY | M2_STALK | M2_COLLECT,
  254.          M3_INFRAVISIBLE, CLR_YELLOW),

Sea monsters

  1.      /*
  2.       * sea monsters
  3.       */
  4.      MON("jellyfish", S_EEL, LVL(3, 3, 6, 0, 0), (G_GENO | G_NOGEN),
  5.          A(ATTK(AT_STNG, AD_DRST, 3, 3), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(80, 20, MS_SILENT, MZ_SMALL), MR_POISON, MR_POISON,
  8.          M1_SWIM | M1_AMPHIBIOUS | M1_SLITHY | M1_NOLIMBS | M1_NOHEAD
  9.              | M1_NOTAKE | M1_POIS,
  10.          M2_HOSTILE, 0, CLR_BLUE),
  11.      MON("piranha", S_EEL, LVL(5, 12, 4, 0, 0), (G_GENO | G_NOGEN | G_SGROUP),
  12.          A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(60, 30, MS_SILENT, MZ_SMALL), 0, 0,
  15.          M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_SLITHY | M1_NOLIMBS
  16.              | M1_CARNIVORE | M1_OVIPAROUS | M1_NOTAKE,
  17.          M2_HOSTILE, 0, CLR_RED),
  18.      MON("shark", S_EEL, LVL(7, 12, 2, 0, 0), (G_GENO | G_NOGEN),
  19.          A(ATTK(AT_BITE, AD_PHYS, 5, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  20.            NO_ATTK),
  21.          SIZ(500, 350, MS_SILENT, MZ_LARGE), 0, 0,
  22.          M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_SLITHY | M1_NOLIMBS
  23.              | M1_CARNIVORE | M1_OVIPAROUS | M1_THICK_HIDE | M1_NOTAKE,
  24.          M2_HOSTILE, 0, CLR_GRAY),
  25.      MON("giant eel", S_EEL, LVL(5, 9, -1, 0, 0), (G_GENO | G_NOGEN),
  26.          A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_TUCH, AD_WRAP, 0, 0), NO_ATTK,
  27.            NO_ATTK, NO_ATTK, NO_ATTK),
  28.          SIZ(200, 250, MS_SILENT, MZ_HUGE), 0, 0,
  29.          M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_SLITHY | M1_NOLIMBS
  30.              | M1_CARNIVORE | M1_OVIPAROUS | M1_NOTAKE,
  31.          M2_HOSTILE, M3_INFRAVISIBLE, CLR_CYAN),
  32.      MON("electric eel", S_EEL, LVL(7, 10, -3, 0, 0), (G_GENO | G_NOGEN),
  33.          A(ATTK(AT_BITE, AD_ELEC, 4, 6), ATTK(AT_TUCH, AD_WRAP, 0, 0), NO_ATTK,
  34.            NO_ATTK, NO_ATTK, NO_ATTK),
  35.          SIZ(200, 250, MS_SILENT, MZ_HUGE), MR_ELEC, MR_ELEC,
  36.          M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_SLITHY | M1_NOLIMBS
  37.              | M1_CARNIVORE | M1_OVIPAROUS | M1_NOTAKE,
  38.          M2_HOSTILE, M3_INFRAVISIBLE, CLR_BRIGHT_BLUE),
  39.      MON("kraken", S_EEL, LVL(20, 3, 6, 0, -3), (G_GENO | G_NOGEN),
  40.          A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  41.            ATTK(AT_HUGS, AD_WRAP, 2, 6), ATTK(AT_BITE, AD_PHYS, 5, 4), NO_ATTK,
  42.            NO_ATTK),
  43.          SIZ(1800, 1000, MS_SILENT, MZ_HUGE), 0, 0,
  44.          M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  45.          M2_NOPOLY | M2_HOSTILE | M2_STRONG, M3_INFRAVISIBLE, CLR_RED),

Lizards, etc

  1.      /*
  2.       * lizards, &c
  3.       */
  4.      MON("newt", S_LIZARD, LVL(0, 6, 8, 0, 0), (G_GENO | 5),
  5.          A(ATTK(AT_BITE, AD_PHYS, 1, 2), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(10, 20, MS_SILENT, MZ_TINY), 0, 0,
  8.          M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  9.          M2_HOSTILE, 0, CLR_YELLOW),
  10.      MON("gecko", S_LIZARD, LVL(1, 6, 8, 0, 0), (G_GENO | 5),
  11.          A(ATTK(AT_BITE, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  12.            NO_ATTK),
  13.          SIZ(10, 20, MS_SQEEK, MZ_TINY), 0, 0,
  14.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, CLR_GREEN),
  15.      MON("iguana", S_LIZARD, LVL(2, 6, 7, 0, 0), (G_GENO | 5),
  16.          A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  17.            NO_ATTK),
  18.          SIZ(30, 30, MS_SILENT, MZ_TINY), 0, 0,
  19.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, CLR_BROWN),
  20.      MON("baby crocodile", S_LIZARD, LVL(3, 6, 7, 0, 0), G_GENO,
  21.          A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  22.            NO_ATTK),
  23.          SIZ(200, 200, MS_SILENT, MZ_MEDIUM), 0, 0,
  24.          M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  25.          M2_HOSTILE, 0, CLR_BROWN),
  26.      MON("lizard", S_LIZARD, LVL(5, 6, 6, 10, 0), (G_GENO | 5),
  27.          A(ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  28.            NO_ATTK),
  29.          SIZ(10, 40, MS_SILENT, MZ_TINY), MR_STONE, MR_STONE,
  30.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, CLR_GREEN),
  31.      MON("chameleon", S_LIZARD, LVL(6, 5, 6, 10, 0), (G_GENO | 2),
  32.          A(ATTK(AT_BITE, AD_PHYS, 4, 2), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  33.            NO_ATTK),
  34.          SIZ(100, 100, MS_SILENT, MZ_TINY), 0, 0,
  35.          M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  36.          M2_NOPOLY | M2_HOSTILE | M2_SHAPESHIFTER, 0, CLR_BROWN),
  37.      MON("crocodile", S_LIZARD, LVL(6, 9, 5, 0, 0), (G_GENO | 1),
  38.          A(ATTK(AT_BITE, AD_PHYS, 4, 2), ATTK(AT_CLAW, AD_PHYS, 1, 12),
  39.            NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  40.          SIZ(WT_HUMAN, 400, MS_SILENT, MZ_LARGE), 0, 0,
  41.          M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS
  42.              | M1_OVIPAROUS | M1_CARNIVORE,
  43.          M2_STRONG | M2_HOSTILE, 0, CLR_BROWN),
  44.      MON("salamander", S_LIZARD, LVL(8, 12, -1, 0, -9), (G_HELL | 1),
  45.          A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_TUCH, AD_FIRE, 1, 6),
  46.            ATTK(AT_HUGS, AD_PHYS, 2, 6), ATTK(AT_HUGS, AD_FIRE, 3, 6), NO_ATTK,
  47.            NO_ATTK),
  48.          SIZ(1500, 400, MS_MUMBLE, MZ_HUMAN), MR_SLEEP | MR_FIRE, MR_FIRE,
  49.          M1_HUMANOID | M1_SLITHY | M1_THICK_HIDE | M1_POIS,
  50.          M2_STALK | M2_HOSTILE | M2_COLLECT | M2_MAGIC, M3_INFRAVISIBLE,
  51.          CLR_ORANGE),
  52.  

Long worm tail

  1.      /*
  2.       * dummy monster needed for visual interface
  3.       */
  4.      /* (marking it unique prevents figurines)
  5.       */
  6.      MON("long worm tail", S_WORM_TAIL, LVL(0, 0, 0, 0, 0),
  7.          (G_NOGEN | G_NOCORPSE | G_UNIQ),
  8.          A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  9.          SIZ(0, 0, 0, 0), 0, 0, 0L, M2_NOPOLY, 0, CLR_BROWN),
  10.  
  11.      /* Note:
  12.       * Worm tail must be between the normal monsters and the special
  13.       * quest & pseudo-character ones because an optimization in the
  14.       * random monster selection code assumes everything beyond here
  15.       * has the G_NOGEN and M2_NOPOLY attributes.
  16.       */
  17.  

Character classes

  1.      /*
  2.       * character classes
  3.       */
  4.      MON("archeologist", S_HUMAN, LVL(10, 12, 10, 1, 3), G_NOGEN,
  5.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK,
  6.            NO_ATTK, NO_ATTK, NO_ATTK),
  7.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  8.          M1_HUMANOID | M1_TUNNEL | M1_NEEDPICK | M1_OMNIVORE,
  9.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, M3_INFRAVISIBLE,
  10.          HI_DOMESTIC),
  11.      MON("barbarian", S_HUMAN, LVL(10, 12, 10, 1, 0), G_NOGEN,
  12.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK,
  13.            NO_ATTK, NO_ATTK, NO_ATTK),
  14.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
  15.          M1_HUMANOID | M1_OMNIVORE,
  16.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, M3_INFRAVISIBLE,
  17.          HI_DOMESTIC),
  18.      MON("caveman", S_HUMAN, LVL(10, 12, 10, 0, 1), G_NOGEN,
  19.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  20.            NO_ATTK),
  21.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  22.          M1_HUMANOID | M1_OMNIVORE,
  23.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_MALE | M2_COLLECT,
  24.          M3_INFRAVISIBLE, HI_DOMESTIC),
  25.      MON("cavewoman", S_HUMAN, LVL(10, 12, 10, 0, 1), G_NOGEN,
  26.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  27.            NO_ATTK),
  28.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  29.          M1_HUMANOID | M1_OMNIVORE,
  30.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_FEMALE | M2_COLLECT,
  31.          M3_INFRAVISIBLE, HI_DOMESTIC),
  32.      MON("healer", S_HUMAN, LVL(10, 12, 10, 1, 0), G_NOGEN,
  33.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  34.            NO_ATTK),
  35.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
  36.          M1_HUMANOID | M1_OMNIVORE,
  37.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, M3_INFRAVISIBLE,
  38.          HI_DOMESTIC),
  39.      MON("knight", S_HUMAN, LVL(10, 12, 10, 1, 3), G_NOGEN,
  40.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK,
  41.            NO_ATTK, NO_ATTK, NO_ATTK),
  42.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  43.          M1_HUMANOID | M1_OMNIVORE,
  44.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, M3_INFRAVISIBLE,
  45.          HI_DOMESTIC),
  46.      MON("monk", S_HUMAN, LVL(10, 12, 10, 2, 0), G_NOGEN,
  47.          A(ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_KICK, AD_PHYS, 1, 8), NO_ATTK,
  48.            NO_ATTK, NO_ATTK, NO_ATTK),
  49.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  50.          M1_HUMANOID | M1_HERBIVORE,
  51.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT | M2_MALE,
  52.          M3_INFRAVISIBLE, HI_DOMESTIC),
  53.      MON("priest", S_HUMAN, LVL(10, 12, 10, 2, 0), G_NOGEN,
  54.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  55.            NO_ATTK),
  56.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  57.          M1_HUMANOID | M1_OMNIVORE,
  58.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_MALE | M2_COLLECT,
  59.          M3_INFRAVISIBLE, HI_DOMESTIC),
  60.      MON("priestess", S_HUMAN, LVL(10, 12, 10, 2, 0), G_NOGEN,
  61.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  62.            NO_ATTK),
  63.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  64.          M1_HUMANOID | M1_OMNIVORE,
  65.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_FEMALE | M2_COLLECT,
  66.          M3_INFRAVISIBLE, HI_DOMESTIC),
  67.      MON("ranger", S_HUMAN, LVL(10, 12, 10, 2, -3), G_NOGEN,
  68.          A(ATTK(AT_WEAP, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  69.            NO_ATTK),
  70.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  71.          M1_HUMANOID | M1_OMNIVORE,
  72.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, M3_INFRAVISIBLE,
  73.          HI_DOMESTIC),
  74.      MON("rogue", S_HUMAN, LVL(10, 12, 10, 1, -3), G_NOGEN,
  75.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK,
  76.            NO_ATTK, NO_ATTK, NO_ATTK),
  77.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  78.          M1_HUMANOID | M1_OMNIVORE,
  79.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  80.          M3_INFRAVISIBLE, HI_DOMESTIC),
  81.      MON("samurai", S_HUMAN, LVL(10, 12, 10, 1, 3), G_NOGEN,
  82.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK,
  83.            NO_ATTK, NO_ATTK, NO_ATTK),
  84.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  85.          M1_HUMANOID | M1_OMNIVORE,
  86.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, M3_INFRAVISIBLE,
  87.          HI_DOMESTIC),
  88.      MON("tourist", S_HUMAN, LVL(10, 12, 10, 1, 0), G_NOGEN,
  89.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK,
  90.            NO_ATTK, NO_ATTK, NO_ATTK),
  91.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  92.          M1_HUMANOID | M1_OMNIVORE,
  93.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, M3_INFRAVISIBLE,
  94.          HI_DOMESTIC),
  95.      MON("valkyrie", S_HUMAN, LVL(10, 12, 10, 1, -1), G_NOGEN,
  96.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8), NO_ATTK,
  97.            NO_ATTK, NO_ATTK, NO_ATTK),
  98.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), MR_COLD, 0,
  99.          M1_HUMANOID | M1_OMNIVORE,
  100.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_FEMALE | M2_COLLECT,
  101.          M3_INFRAVISIBLE, HI_DOMESTIC),
  102.      MON("wizard", S_HUMAN, LVL(10, 12, 10, 3, 0), G_NOGEN,
  103.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  104.            NO_ATTK),
  105.          SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
  106.          M1_HUMANOID | M1_OMNIVORE,
  107.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT | M2_MAGIC,
  108.          M3_INFRAVISIBLE, HI_DOMESTIC),

Quest leaders

  1.      /*
  2.       * quest leaders
  3.       */
  4.      MON("Lord Carnarvon", S_HUMAN, LVL(20, 12, 0, 30, 20), (G_NOGEN | G_UNIQ),
  5.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(WT_HUMAN, 400, MS_LEADER, MZ_HUMAN), 0, 0,
  8.          M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
  9.          M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE
  10.              | M2_COLLECT | M2_MAGIC,
  11.          M3_CLOSE | M3_INFRAVISIBLE, HI_LORD),
  12.      MON("Pelias", S_HUMAN, LVL(20, 12, 0, 30, 0), (G_NOGEN | G_UNIQ),
  13.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  14.            NO_ATTK),
  15.          SIZ(WT_HUMAN, 400, MS_LEADER, MZ_HUMAN), MR_POISON, 0,
  16.          M1_HUMANOID | M1_OMNIVORE,
  17.          M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE
  18.              | M2_COLLECT | M2_MAGIC,
  19.          M3_CLOSE | M3_INFRAVISIBLE, HI_LORD),
  20.      MON("Shaman Karnov", S_HUMAN, LVL(20, 12, 0, 30, 20), (G_NOGEN | G_UNIQ),
  21.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  22.            NO_ATTK),
  23.          SIZ(WT_HUMAN, 400, MS_LEADER, MZ_HUMAN), 0, 0,
  24.          M1_HUMANOID | M1_OMNIVORE,
  25.          M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE
  26.              | M2_COLLECT | M2_MAGIC,
  27.          M3_CLOSE | M3_INFRAVISIBLE, HI_LORD),
  28.  #if 0 /* OBSOLETE */
  29.  	/* Two for elves - one of each sex.
  30.  	 */
  31.      MON("Earendil", S_HUMAN,
  32.  	LVL(20, 12, 0, 50, -20), (G_NOGEN | G_UNIQ),
  33.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  34.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  35.  	SIZ(WT_ELF, 350, MS_LEADER, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  36.  	M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  37.  	M2_NOPOLY | M2_ELF | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG
  38.            | M2_MALE | M2_COLLECT | M2_MAGIC,
  39.  	M3_CLOSE | M3_INFRAVISION | M3_INFRAVISIBLE, HI_LORD),
  40.      MON("Elwing", S_HUMAN,
  41.  	LVL(20, 12, 0, 50, -20), (G_NOGEN | G_UNIQ),
  42.  	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  43.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  44.  	SIZ(WT_ELF, 350, MS_LEADER, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  45.  	M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  46.  	M2_NOPOLY | M2_ELF | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG
  47.            | M2_FEMALE | M2_COLLECT | M2_MAGIC,
  48.  	M3_CLOSE | M3_INFRAVISION | M3_INFRAVISIBLE, HI_LORD),
  49.  #endif
  50.      MON("Hippocrates", S_HUMAN, LVL(20, 12, 0, 40, 0), (G_NOGEN | G_UNIQ),
  51.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  52.            NO_ATTK),
  53.          SIZ(WT_HUMAN, 400, MS_LEADER, MZ_HUMAN), MR_POISON, 0,
  54.          M1_HUMANOID | M1_OMNIVORE,
  55.          M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE
  56.              | M2_COLLECT | M2_MAGIC,
  57.          M3_CLOSE | M3_INFRAVISIBLE, HI_LORD),
  58.      MON("King Arthur", S_HUMAN, LVL(20, 12, 0, 40, 20), (G_NOGEN | G_UNIQ),
  59.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK,
  60.            NO_ATTK, NO_ATTK, NO_ATTK),
  61.          SIZ(WT_HUMAN, 400, MS_LEADER, MZ_HUMAN), 0, 0,
  62.          M1_HUMANOID | M1_OMNIVORE,
  63.          M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE
  64.              | M2_COLLECT | M2_MAGIC,
  65.          M3_CLOSE | M3_INFRAVISIBLE, HI_LORD),
  66.      MON("Grand Master", S_HUMAN, LVL(25, 12, 0, 70, 0), (G_NOGEN | G_UNIQ),
  67.          A(ATTK(AT_CLAW, AD_PHYS, 4, 10), ATTK(AT_KICK, AD_PHYS, 2, 8),
  68.            ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8), NO_ATTK,
  69.            NO_ATTK),
  70.          SIZ(WT_HUMAN, 400, MS_LEADER, MZ_HUMAN),
  71.          MR_FIRE | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  72.          M1_HUMANOID | M1_SEE_INVIS | M1_HERBIVORE,
  73.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_MALE | M2_NASTY
  74.              | M2_MAGIC,
  75.          M3_CLOSE | M3_INFRAVISIBLE, CLR_BLACK),
  76.      MON("Arch Priest", S_HUMAN, LVL(25, 12, 7, 70, 0), (G_NOGEN | G_UNIQ),
  77.          A(ATTK(AT_WEAP, AD_PHYS, 4, 10), ATTK(AT_KICK, AD_PHYS, 2, 8),
  78.            ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8), NO_ATTK,
  79.            NO_ATTK),
  80.          SIZ(WT_HUMAN, 400, MS_LEADER, MZ_HUMAN),
  81.          MR_FIRE | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  82.          M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  83.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_MALE | M2_COLLECT
  84.              | M2_MAGIC,
  85.          M3_CLOSE | M3_INFRAVISIBLE, CLR_WHITE),
  86.      MON("Orion", S_HUMAN, LVL(20, 12, 0, 30, 0), (G_NOGEN | G_UNIQ),
  87.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  88.            NO_ATTK),
  89.          SIZ(2200, 700, MS_LEADER, MZ_HUGE), 0, 0,
  90.          M1_HUMANOID | M1_OMNIVORE | M1_SEE_INVIS | M1_SWIM | M1_AMPHIBIOUS,
  91.          M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE
  92.              | M2_COLLECT | M2_MAGIC,
  93.          M3_CLOSE | M3_INFRAVISION | M3_INFRAVISIBLE, HI_LORD),
  94.      /* Note: Master of Thieves is also the Tourist's nemesis.
  95.       */
  96.      MON("Master of Thieves", S_HUMAN, LVL(20, 12, 0, 30, -20),
  97.          (G_NOGEN | G_UNIQ),
  98.          A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
  99.            ATTK(AT_CLAW, AD_SAMU, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  100.          SIZ(WT_HUMAN, 400, MS_LEADER, MZ_HUMAN), MR_STONE, 0,
  101.          M1_HUMANOID | M1_OMNIVORE,
  102.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_MALE | M2_GREEDY
  103.              | M2_JEWELS | M2_COLLECT | M2_MAGIC,
  104.          M3_CLOSE | M3_INFRAVISIBLE, HI_LORD),
  105.      MON("Lord Sato", S_HUMAN, LVL(20, 12, 0, 30, 20), (G_NOGEN | G_UNIQ),
  106.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK,
  107.            NO_ATTK, NO_ATTK, NO_ATTK),
  108.          SIZ(WT_HUMAN, 400, MS_LEADER, MZ_HUMAN), 0, 0,
  109.          M1_HUMANOID | M1_OMNIVORE,
  110.          M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE
  111.              | M2_COLLECT | M2_MAGIC,
  112.          M3_CLOSE | M3_INFRAVISIBLE, HI_LORD),
  113.      MON("Twoflower", S_HUMAN, LVL(20, 12, 10, 20, 0), (G_NOGEN | G_UNIQ),
  114.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK,
  115.            NO_ATTK, NO_ATTK, NO_ATTK),
  116.          SIZ(WT_HUMAN, 400, MS_LEADER, MZ_HUMAN), 0, 0,
  117.          M1_HUMANOID | M1_OMNIVORE,
  118.          M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE
  119.              | M2_COLLECT | M2_MAGIC,
  120.          M3_CLOSE | M3_INFRAVISIBLE, HI_DOMESTIC),
  121.      MON("Norn", S_HUMAN, LVL(20, 12, 0, 80, 0), (G_NOGEN | G_UNIQ),
  122.          A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK,
  123.            NO_ATTK, NO_ATTK, NO_ATTK),
  124.          SIZ(1800, 550, MS_LEADER, MZ_HUGE), MR_COLD, 0,
  125.          M1_HUMANOID | M1_OMNIVORE,
  126.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_FEMALE
  127.              | M2_COLLECT | M2_MAGIC,
  128.          M3_CLOSE | M3_INFRAVISIBLE, HI_LORD),
  129.      MON("Neferet the Green", S_HUMAN, LVL(20, 12, 0, 60, 0),
  130.          (G_NOGEN | G_UNIQ),
  131.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 2, 8), NO_ATTK,
  132.            NO_ATTK, NO_ATTK, NO_ATTK),
  133.          SIZ(WT_HUMAN, 400, MS_LEADER, MZ_HUMAN), 0, 0,
  134.          M1_HUMANOID | M1_OMNIVORE,
  135.          M2_NOPOLY | M2_HUMAN | M2_FEMALE | M2_PNAME | M2_PEACEFUL | M2_STRONG
  136.              | M2_COLLECT | M2_MAGIC,
  137.          M3_CLOSE | M3_INFRAVISIBLE, CLR_GREEN),

Quest nemeses

  1.      /*
  2.       * quest nemeses
  3.       */
  4.      MON("Minion of Huhetotl", S_DEMON, LVL(16, 12, -2, 75, -14),
  5.          (G_NOCORPSE | G_NOGEN | G_UNIQ),
  6.          A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
  7.            ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK,
  8.            NO_ATTK),
  9.          SIZ(WT_HUMAN, 400, MS_NEMESIS, MZ_LARGE),
  10.          MR_FIRE | MR_POISON | MR_STONE, 0, M1_FLY | M1_SEE_INVIS | M1_POIS,
  11.          M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY
  12.              | M2_COLLECT,
  13.          M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISION | M3_INFRAVISIBLE,
  14.          CLR_RED),
  15.      MON("Thoth Amon", S_HUMAN, LVL(16, 12, 0, 10, -14),
  16.          (G_NOGEN | G_UNIQ | G_NOCORPSE),
  17.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  18.            ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 1, 4), NO_ATTK,
  19.            NO_ATTK),
  20.          SIZ(WT_HUMAN, 400, MS_NEMESIS, MZ_HUMAN), MR_POISON | MR_STONE, 0,
  21.          M1_HUMANOID | M1_OMNIVORE,
  22.          M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_STRONG | M2_MALE | M2_STALK
  23.              | M2_HOSTILE | M2_NASTY | M2_COLLECT | M2_MAGIC,
  24.          M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISIBLE, HI_LORD),
  25.      /* Multi-headed, possessing the breath attacks of all the other dragons
  26.       * (selected at random when attacking).
  27.       */
  28.      MON("Chromatic Dragon", S_DRAGON, LVL(16, 12, 0, 30, -14),
  29.          (G_NOGEN | G_UNIQ),
  30.          A(ATTK(AT_BREA, AD_RBRE, 6, 8), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  31.            ATTK(AT_CLAW, AD_SAMU, 2, 8), ATTK(AT_BITE, AD_PHYS, 4, 8),
  32.            ATTK(AT_BITE, AD_PHYS, 4, 8), ATTK(AT_STNG, AD_PHYS, 1, 6)),
  33.          SIZ(WT_DRAGON, 1700, MS_NEMESIS, MZ_GIGANTIC),
  34.          MR_FIRE | MR_COLD | MR_SLEEP | MR_DISINT | MR_ELEC | MR_POISON
  35.              | MR_ACID | MR_STONE,
  36.          MR_FIRE | MR_COLD | MR_SLEEP | MR_DISINT | MR_ELEC | MR_POISON
  37.              | MR_STONE,
  38.          M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_SEE_INVIS | M1_POIS,
  39.          M2_NOPOLY | M2_HOSTILE | M2_FEMALE | M2_STALK | M2_STRONG | M2_NASTY
  40.              | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  41.          M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISIBLE, HI_LORD),
  42.  #if 0 /* OBSOLETE */
  43.      MON("Goblin King", S_ORC,
  44.  	LVL(15, 12, 10, 0, -15), (G_NOGEN | G_UNIQ),
  45.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
  46.  	  ATTK(AT_CLAW, AD_SAMU, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  47.  	SIZ(750, 350, MS_NEMESIS, MZ_HUMAN), 0, 0,
  48.  	M1_HUMANOID | M1_OMNIVORE,
  49.  	M2_NOPOLY | M2_ORC | M2_HOSTILE | M2_STRONG | M2_STALK | M2_NASTY
  50.            | M2_MALE | M2_GREEDY | M2_JEWELS | M2_COLLECT | M2_MAGIC,
  51.  	M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISION | M3_INFRAVISIBLE,
  52.          HI_LORD),
  53.  #endif
  54.      MON("Cyclops", S_GIANT, LVL(18, 12, 0, 0, -15), (G_NOGEN | G_UNIQ),
  55.          A(ATTK(AT_WEAP, AD_PHYS, 4, 8), ATTK(AT_WEAP, AD_PHYS, 4, 8),
  56.            ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  57.          SIZ(1900, 700, MS_NEMESIS, MZ_HUGE), MR_STONE, 0,
  58.          M1_HUMANOID | M1_OMNIVORE,
  59.          M2_NOPOLY | M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_STALK
  60.              | M2_HOSTILE | M2_NASTY | M2_MALE | M2_JEWELS | M2_COLLECT,
  61.          M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISION | M3_INFRAVISIBLE,
  62.          CLR_GRAY),
  63.      MON("Ixoth", S_DRAGON, LVL(15, 12, -1, 20, -14), (G_NOGEN | G_UNIQ),
  64.          A(ATTK(AT_BREA, AD_FIRE, 8, 6), ATTK(AT_BITE, AD_PHYS, 4, 8),
  65.            ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  66.            ATTK(AT_CLAW, AD_SAMU, 2, 4), NO_ATTK),
  67.          SIZ(WT_DRAGON, 1600, MS_NEMESIS, MZ_GIGANTIC), MR_FIRE | MR_STONE,
  68.          MR_FIRE,
  69.          M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_SEE_INVIS,
  70.          M2_NOPOLY | M2_MALE | M2_PNAME | M2_HOSTILE | M2_STRONG | M2_NASTY
  71.              | M2_STALK | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  72.          M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISIBLE, CLR_RED),
  73.      MON("Master Kaen", S_HUMAN, LVL(25, 12, -10, 10, -20), (G_NOGEN | G_UNIQ),
  74.          A(ATTK(AT_CLAW, AD_PHYS, 16, 2), ATTK(AT_CLAW, AD_PHYS, 16, 2),
  75.            ATTK(AT_MAGC, AD_CLRC, 0, 0), ATTK(AT_CLAW, AD_SAMU, 1, 4), NO_ATTK,
  76.            NO_ATTK),
  77.          SIZ(WT_HUMAN, 400, MS_NEMESIS, MZ_HUMAN), MR_POISON | MR_STONE,
  78.          MR_POISON, M1_HUMANOID | M1_HERBIVORE | M1_SEE_INVIS,
  79.          M2_NOPOLY | M2_HUMAN | M2_MALE | M2_PNAME | M2_HOSTILE | M2_STRONG
  80.              | M2_NASTY | M2_STALK | M2_COLLECT | M2_MAGIC,
  81.          M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISIBLE, HI_LORD),
  82.      MON("Nalzok", S_DEMON, LVL(16, 12, -2, 85, -127),
  83.          (G_NOGEN | G_UNIQ | G_NOCORPSE),
  84.          A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
  85.            ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK,
  86.            NO_ATTK),
  87.          SIZ(WT_HUMAN, 400, MS_NEMESIS, MZ_LARGE),
  88.          MR_FIRE | MR_POISON | MR_STONE, 0, M1_FLY | M1_SEE_INVIS | M1_POIS,
  89.          M2_NOPOLY | M2_DEMON | M2_MALE | M2_PNAME | M2_HOSTILE | M2_STRONG
  90.              | M2_STALK | M2_NASTY | M2_COLLECT,
  91.          M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISION | M3_INFRAVISIBLE,
  92.          CLR_RED),
  93.      MON("Scorpius", S_SPIDER, LVL(15, 12, 10, 0, -15), (G_NOGEN | G_UNIQ),
  94.          A(ATTK(AT_CLAW, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_SAMU, 2, 6),
  95.            ATTK(AT_STNG, AD_DISE, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  96.          SIZ(750, 350, MS_NEMESIS, MZ_HUMAN), MR_POISON | MR_STONE, MR_POISON,
  97.          M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS | M1_CARNIVORE,
  98.          M2_NOPOLY | M2_MALE | M2_PNAME | M2_HOSTILE | M2_STRONG | M2_STALK
  99.              | M2_NASTY | M2_COLLECT | M2_MAGIC,
  100.          M3_WANTSARTI | M3_WAITFORU, HI_LORD),
  101.      MON("Master Assassin", S_HUMAN, LVL(15, 12, 0, 30, 18),
  102.          (G_NOGEN | G_UNIQ),
  103.          A(ATTK(AT_WEAP, AD_DRST, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 8),
  104.            ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  105.          SIZ(WT_HUMAN, 400, MS_NEMESIS, MZ_HUMAN), MR_STONE, 0,
  106.          M1_HUMANOID | M1_OMNIVORE,
  107.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_MALE | M2_HOSTILE | M2_STALK
  108.              | M2_NASTY | M2_COLLECT | M2_MAGIC,
  109.          M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISIBLE, HI_LORD),
  110.      /* A renegade daimyo who led a 13 year civil war against the shogun
  111.       * of his time.
  112.       */
  113.      MON("Ashikaga Takauji", S_HUMAN, LVL(15, 12, 0, 40, -13),
  114.          (G_NOGEN | G_UNIQ | G_NOCORPSE),
  115.          A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
  116.            ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  117.          SIZ(WT_HUMAN, 400, MS_NEMESIS, MZ_HUMAN), MR_STONE, 0,
  118.          M1_HUMANOID | M1_OMNIVORE,
  119.          M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_HOSTILE | M2_STRONG | M2_STALK
  120.              | M2_NASTY | M2_MALE | M2_COLLECT | M2_MAGIC,
  121.          M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISIBLE, HI_LORD),
  122.      /*
  123.       * Note: the Master of Thieves was defined above.
  124.       */
  125.      MON("Lord Surtur", S_GIANT, LVL(15, 12, 2, 50, 12), (G_NOGEN | G_UNIQ),
  126.          A(ATTK(AT_WEAP, AD_PHYS, 2, 10), ATTK(AT_WEAP, AD_PHYS, 2, 10),
  127.            ATTK(AT_CLAW, AD_SAMU, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  128.          SIZ(2250, 850, MS_NEMESIS, MZ_HUGE), MR_FIRE | MR_STONE, MR_FIRE,
  129.          M1_HUMANOID | M1_OMNIVORE,
  130.          M2_NOPOLY | M2_GIANT | M2_MALE | M2_PNAME | M2_HOSTILE | M2_STALK
  131.              | M2_STRONG | M2_NASTY | M2_ROCKTHROW | M2_JEWELS | M2_COLLECT,
  132.          M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISION | M3_INFRAVISIBLE,
  133.          HI_LORD),
  134.      MON("Dark One", S_HUMAN, LVL(15, 12, 0, 80, -10),
  135.          (G_NOGEN | G_UNIQ | G_NOCORPSE),
  136.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  137.            ATTK(AT_CLAW, AD_SAMU, 1, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0), NO_ATTK,
  138.            NO_ATTK),
  139.          SIZ(WT_HUMAN, 400, MS_NEMESIS, MZ_HUMAN), MR_STONE, 0,
  140.          M1_HUMANOID | M1_OMNIVORE,
  141.          M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_HOSTILE | M2_STALK | M2_NASTY
  142.              | M2_COLLECT | M2_MAGIC,
  143.          M3_WANTSARTI | M3_WAITFORU | M3_INFRAVISIBLE, CLR_BLACK),

Quest guardians

  1.      /*
  2.       * quest "guardians"
  3.       */
  4.      MON("student", S_HUMAN, LVL(5, 12, 10, 10, 3), G_NOGEN,
  5.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  6.            NO_ATTK),
  7.          SIZ(WT_HUMAN, 400, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  8.          M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
  9.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  10.          M3_INFRAVISIBLE, HI_DOMESTIC),
  11.      MON("chieftain", S_HUMAN, LVL(5, 12, 10, 10, 0), G_NOGEN,
  12.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  13.            NO_ATTK),
  14.          SIZ(WT_HUMAN, 400, MS_GUARDIAN, MZ_HUMAN), MR_POISON, 0,
  15.          M1_HUMANOID | M1_OMNIVORE,
  16.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  17.          M3_INFRAVISIBLE, HI_DOMESTIC),
  18.      MON("neanderthal", S_HUMAN, LVL(5, 12, 10, 10, 1), G_NOGEN,
  19.          A(ATTK(AT_WEAP, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  20.            NO_ATTK),
  21.          SIZ(WT_HUMAN, 400, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  22.          M1_HUMANOID | M1_OMNIVORE,
  23.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  24.          M3_INFRAVISIBLE, HI_DOMESTIC),
  25.  #if 0 /* OBSOLETE */
  26.      MON("High-elf", S_HUMAN,
  27.  	LVL(5, 12, 10, 10, -7), G_NOGEN,
  28.  	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_MAGC, AD_CLRC, 0, 0),
  29.  	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  30.  	SIZ(WT_ELF, 350, MS_GUARDIAN, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  31.  	M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  32.  	M2_NOPOLY | M2_ELF | M2_PEACEFUL | M2_COLLECT,
  33.  	M3_INFRAVISION | M3_INFRAVISIBLE, HI_DOMESTIC),
  34.  #endif
  35.      MON("attendant", S_HUMAN, LVL(5, 12, 10, 10, 3), G_NOGEN,
  36.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
  37.            NO_ATTK),
  38.          SIZ(WT_HUMAN, 400, MS_GUARDIAN, MZ_HUMAN), MR_POISON, 0,
  39.          M1_HUMANOID | M1_OMNIVORE,
  40.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  41.          M3_INFRAVISIBLE, HI_DOMESTIC),
  42.      MON("page", S_HUMAN, LVL(5, 12, 10, 10, 3), G_NOGEN,
  43.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6), NO_ATTK,
  44.            NO_ATTK, NO_ATTK, NO_ATTK),
  45.          SIZ(WT_HUMAN, 400, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  46.          M1_HUMANOID | M1_OMNIVORE,
  47.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  48.          M3_INFRAVISIBLE, HI_DOMESTIC),
  49.      MON("abbot", S_HUMAN, LVL(5, 12, 10, 20, 0), G_NOGEN,
  50.          A(ATTK(AT_CLAW, AD_PHYS, 8, 2), ATTK(AT_KICK, AD_STUN, 3, 2),
  51.            ATTK(AT_MAGC, AD_CLRC, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  52.          SIZ(WT_HUMAN, 400, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  53.          M1_HUMANOID | M1_HERBIVORE,
  54.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  55.          M3_INFRAVISIBLE, HI_DOMESTIC),
  56.      MON("acolyte", S_HUMAN, LVL(5, 12, 10, 20, 0), G_NOGEN,
  57.          A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_CLRC, 0, 0), NO_ATTK,
  58.            NO_ATTK, NO_ATTK, NO_ATTK),
  59.          SIZ(WT_HUMAN, 400, MS_GUARDIAN, MZ_HUMAN), 0, 0,
  60.          M1_HUMANOID | M1_OMNIVORE,
  61.          M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  62.          M3_INFRAVISIBLE, HI_DOMESTIC)