Source:NetHack 3.4.3/src/monst.c

From NetHackWiki
(Redirected from Source:Ref/monst init)
Jump to: navigation, search

Below is the full text to src/monst.c from NetHack 3.4.3. To link to a particular line, write [[monst.c#line123]], for example.

Top of file

  1. /*	SCCS Id: @(#)monst.c	3.4	2000/07/14	*/
  2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  3. /* NetHack may be freely redistributed.  See license for details. */

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

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

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

Ants

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

Blobs

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

Cockatrice

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

Dogs and other canines

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

Eyes and Spheres

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

Felines

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

Gremlins and gargoyles

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

Humanoids

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

Imps and other minor demons

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

Jellies

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

Kobolds

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

Leprechauns

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

Mimics

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

Nymphs

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

Orcs

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

Piercers

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

Quadrupeds

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

Rodents

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

Spiders and scorpions

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

Trappers and lurkers

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

Unicorns and horses

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

Vortices

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

Worms

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

Xan and other mythical insects

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

Lights

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

Zruty

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

Angels and other divine creatures

  1. /*
  2. * Angels and other lawful minions
  3. */
  4. MON("couatl", S_ANGEL,
  5. 	LVL(8, 10, 5, 30, 7), (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, 0, MS_HISS, MZ_LARGE), MR_POISON, 0,
  9. 	M1_FLY|M1_POIS,
  10. 	M2_MINION|M2_STALK|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
  11. 	CLR_GREEN),
  12. MON("Aleax", S_ANGEL,
  13. 	LVL(10, 8, 0, 30, 7), (G_NOHELL|G_NOCORPSE|1),
  14. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
  15. 	  ATTK(AT_KICK, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  16. 	SIZ(WT_HUMAN, 400, 0, MS_IMITATE, MZ_HUMAN),
  17. 	MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  18. 	M1_HUMANOID|M1_SEE_INVIS,
  19. 	M2_MINION|M2_STALK|M2_NASTY|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION,
  20. 	CLR_YELLOW),
  21. MON("Angel", S_ANGEL,
  22. 	LVL(14, 10, -4, 55, 12), (G_NOHELL|G_NOCORPSE|1),
  23. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6), 
  24. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_MAGC, AD_MAGM, 2, 6),
  25. 	  NO_ATTK, NO_ATTK),
  26. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_CUSS, MZ_HUMAN),
  27. 	MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  28. 	M1_FLY|M1_HUMANOID|M1_SEE_INVIS,
  29. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_COLLECT,
  30. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_WHITE),
  31. MON("ki-rin", S_ANGEL,
  32. 	LVL(16, 18, -5, 90, 15), (G_NOHELL|G_NOCORPSE|1),
  33. 	A(ATTK(AT_KICK, AD_PHYS, 2, 4), ATTK(AT_KICK, AD_PHYS, 2, 4),
  34. 	  ATTK(AT_BUTT, AD_PHYS, 3, 6), ATTK(AT_MAGC, AD_SPEL, 2, 6),
  35. 	  NO_ATTK, NO_ATTK),
  36. 	SIZ(WT_HUMAN, 400, 0, MS_NEIGH, MZ_LARGE), 0, 0,
  37. 	M1_FLY|M1_SEE_INVIS,
  38. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_LORD,
  39. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_GOLD),
  40. MON("Archon", S_ANGEL,
  41. 	LVL(19, 16, -6, 80, 15), (G_NOHELL|G_NOCORPSE|1),
  42. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  43. 	  ATTK(AT_GAZE, AD_BLND, 2, 6), ATTK(AT_CLAW, AD_PHYS, 1, 8),
  44. 	  ATTK(AT_MAGC, AD_SPEL, 4, 6), NO_ATTK),
  45. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE),
  46. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  47. 	M1_FLY|M1_HUMANOID|M1_SEE_INVIS|M1_REGEN,
  48. 	M2_NOPOLY|M2_MINION|M2_STALK|M2_STRONG|M2_NASTY|M2_LORD|
  49. 	  M2_COLLECT|M2_MAGIC,
  50. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),

Bats and birds

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

Centaurs

  1. /*
  2. * Centaurs
  3. */
  4. MON("plains centaur", S_CENTAUR,
  5. 	LVL(4, 18, 4, 0, 0), (G_GENO|1),
  6. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_KICK, AD_PHYS, 1, 6),
  7. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  8. 	SIZ(2500, 500, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
  9. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
  10. 	M3_INFRAVISIBLE, CLR_BROWN),
  11. MON("forest centaur", S_CENTAUR,
  12. 	LVL(5, 18, 3, 10, -1), (G_GENO|1),
  13. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_KICK, AD_PHYS, 1, 6),
  14. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  15. 	SIZ(2550, 600, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
  16. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
  17. 	M3_INFRAVISIBLE, CLR_GREEN),
  18. MON("mountain centaur", S_CENTAUR,
  19. 	LVL(6, 20, 2, 10, -3), (G_GENO|1),
  20. 	A(ATTK(AT_WEAP, AD_PHYS, 1,10), ATTK(AT_KICK, AD_PHYS, 1, 6),
  21. 	  ATTK(AT_KICK, AD_PHYS, 1, 6), NO_ATTK, NO_ATTK, NO_ATTK),
  22. 	SIZ(2550, 500, 0, MS_HUMANOID, MZ_LARGE), 0, 0,
  23. 	M1_HUMANOID|M1_OMNIVORE, M2_STRONG|M2_GREEDY|M2_COLLECT,
  24. 	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,
  14. 	LVL(12, 9, 2, 10, 0), G_GENO,
  15. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  16. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  17. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
  18. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  19. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_GRAY),
  20. MON("baby silver dragon", S_DRAGON,
  21. 	LVL(12, 9, 2, 10, 0), G_GENO,
  22. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  23. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  24. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
  25. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  26. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, DRAGON_SILVER),
  27. #if 0	/* DEFERRED */
  28. MON("baby shimmering dragon", S_DRAGON,
  29. 	LVL(12, 9, 2, 10, 0), G_GENO,
  30. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  31. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  32. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), 0, 0,
  33. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  34. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_CYAN),
  35. #endif
  36. MON("baby red dragon", S_DRAGON,
  37. 	LVL(12, 9, 2, 10, 0), G_GENO,
  38. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  39. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  40. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_FIRE, 0,
  41. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  42. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, M3_INFRAVISIBLE, CLR_RED),
  43. MON("baby white dragon", S_DRAGON,
  44. 	LVL(12, 9, 2, 10, 0), G_GENO,
  45. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  46. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  47. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_COLD, 0,
  48. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  49. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_WHITE),
  50. MON("baby orange dragon", S_DRAGON,
  51. 	LVL(12, 9, 2, 10, 0), G_GENO,
  52. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  53. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  54. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_SLEEP, 0,
  55. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  56. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_ORANGE),
  57. MON("baby black dragon", S_DRAGON,
  58. 	LVL(12, 9, 2, 10, 0), G_GENO,
  59. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  60. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  61. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_DISINT, 0,
  62. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  63. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_BLACK),
  64. MON("baby blue dragon", S_DRAGON,
  65. 	LVL(12, 9, 2, 10, 0), G_GENO,
  66. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  67. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  68. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_ELEC, 0,
  69. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE,
  70. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_BLUE),
  71. MON("baby green dragon", S_DRAGON,
  72. 	LVL(12, 9, 2, 10, 0), G_GENO,
  73. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  74. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  75. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_POISON, 0,
  76. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_POIS,
  77. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_GREEN),
  78. MON("baby yellow dragon", S_DRAGON,
  79. 	LVL(12, 9, 2, 10, 0), G_GENO,
  80. 	A(ATTK(AT_BITE, AD_PHYS, 2, 6),
  81. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  82. 	SIZ(1500, 500, 0, MS_ROAR, MZ_HUGE), MR_ACID|MR_STONE, 0,
  83. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_ACID,
  84. 	M2_HOSTILE|M2_STRONG|M2_GREEDY|M2_JEWELS, 0, CLR_YELLOW),
  85. MON("gray dragon", S_DRAGON,
  86. 	LVL(15, 9, -1, 20, 4), (G_GENO|1),
  87. 	A(ATTK(AT_BREA, AD_MAGM, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  88. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  89. 	  NO_ATTK, NO_ATTK),
  90. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), 0, 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, 0, CLR_GRAY),
  94. MON("silver dragon", S_DRAGON,
  95. 	LVL(15, 9, -1, 20, 4), (G_GENO|1),
  96. 	A(ATTK(AT_BREA, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  97. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  98. 	  NO_ATTK, NO_ATTK),
  99. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_COLD, 0,
  100. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  101. 	  M1_CARNIVORE,
  102. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  103. 	0, DRAGON_SILVER),
  104. #if 0	/* DEFERRED */
  105. MON("shimmering dragon", S_DRAGON,
  106. 	LVL(15, 9, -1, 20, 4), (G_GENO|1),
  107. 	A(ATTK(AT_BREA, AD_MAGM, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  108. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  109. 	  NO_ATTK, NO_ATTK),
  110. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), 0, 0,
  111. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  112. 	  M1_CARNIVORE,
  113. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  114. 	0, CLR_CYAN),
  115. #endif
  116. MON("red dragon", S_DRAGON,
  117. 	LVL(15, 9, -1, 20, -4), (G_GENO|1),
  118. 	A(ATTK(AT_BREA, AD_FIRE, 6, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  119. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  120. 	  NO_ATTK, NO_ATTK),
  121. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_FIRE, MR_FIRE,
  122. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  123. 	  M1_CARNIVORE,
  124. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  125. 	M3_INFRAVISIBLE, CLR_RED),
  126. MON("white dragon", S_DRAGON,
  127. 	LVL(15, 9, -1, 20, -5), (G_GENO|1),
  128. 	A(ATTK(AT_BREA, AD_COLD, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  129. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  130. 	  NO_ATTK, NO_ATTK),
  131. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_COLD, MR_COLD,
  132. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  133. 	  M1_CARNIVORE,
  134. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_WHITE),
  135. MON("orange dragon", S_DRAGON,
  136. 	LVL(15, 9, -1, 20, 5), (G_GENO|1),
  137. 	A(ATTK(AT_BREA, AD_SLEE, 4,25), ATTK(AT_BITE, AD_PHYS, 3, 8),
  138. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  139. 	  NO_ATTK, NO_ATTK),
  140. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_SLEEP, MR_SLEEP,
  141. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  142. 	  M1_CARNIVORE,
  143. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  144. 	0, CLR_ORANGE),
  145. MON("black dragon", S_DRAGON,
  146. 	LVL(15, 9, -1, 20, -6), (G_GENO|1),
  147. 	A(ATTK(AT_BREA, AD_DISN, 4,10), ATTK(AT_BITE, AD_PHYS, 3, 8),
  148. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  149. 	  NO_ATTK, NO_ATTK),
  150. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_DISINT, MR_DISINT,
  151. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  152. 	  M1_CARNIVORE,
  153. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_BLACK),
  154. MON("blue dragon", S_DRAGON,
  155. 	LVL(15, 9, -1, 20, -7), (G_GENO|1),
  156. 	A(ATTK(AT_BREA, AD_ELEC, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  157. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  158. 	  NO_ATTK, NO_ATTK),
  159. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_ELEC, MR_ELEC,
  160. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  161. 	  M1_CARNIVORE,
  162. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_BLUE),
  163. MON("green dragon", S_DRAGON,
  164. 	LVL(15, 9, -1, 20, 6), (G_GENO|1),
  165. 	A(ATTK(AT_BREA, AD_DRST, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  166. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  167. 	  NO_ATTK, NO_ATTK),
  168. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC), MR_POISON, MR_POISON,
  169. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  170. 	  M1_CARNIVORE|M1_POIS,
  171. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC, 0, CLR_GREEN),
  172. MON("yellow dragon", S_DRAGON,
  173. 	LVL(15, 9, -1, 20, 7), (G_GENO|1),
  174. 	A(ATTK(AT_BREA, AD_ACID, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
  175. 	  ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  176. 	  NO_ATTK, NO_ATTK),
  177. 	SIZ(WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC),
  178. 	MR_ACID|MR_STONE, MR_STONE,
  179. 	M1_FLY|M1_THICK_HIDE|M1_NOHANDS|M1_SEE_INVIS|M1_OVIPAROUS|
  180. 	  M1_CARNIVORE|M1_ACID,
  181. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_MAGIC,
  182. 	0, CLR_YELLOW),

Elementals

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

Fungi

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

Gnomes

  1. /*
  2. * Gnomes
  3. */
  4. MON("gnome", S_GNOME,
  5. 	LVL(1, 6, 10, 4, 0), (G_GENO|G_SGROUP|1),
  6. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  7. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  8. 	SIZ(650, 100, 0, MS_ORC, MZ_SMALL), 0, 0,
  9. 	M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_GNOME|M2_COLLECT,
  10. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
  11. MON("gnome lord", S_GNOME,
  12. 	LVL(3, 8, 10, 4, 0), (G_GENO|2),
  13. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  14. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  15. 	SIZ(700, 120, 0, MS_ORC, MZ_SMALL), 0, 0,
  16. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_LORD|M2_MALE|M2_COLLECT,
  17. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
  18. MON("gnomish wizard", S_GNOME,
  19. 	LVL(3, 10, 4, 10, 0), (G_GENO|1),
  20. 	A(ATTK(AT_MAGC, AD_SPEL, 0, 0),
  21. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  22. 	SIZ(700, 120, 0, MS_ORC, MZ_SMALL), 0, 0,
  23. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_MAGIC,
  24. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_ZAP),
  25. MON("gnome king", S_GNOME,
  26. 	LVL(5, 10, 10, 20, 0), (G_GENO|1),
  27. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
  28. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  29. 	SIZ(750, 150, 0, MS_ORC, MZ_SMALL), 0, 0,
  30. 	M1_HUMANOID|M1_OMNIVORE, M2_GNOME|M2_PRINCE|M2_MALE|M2_COLLECT,
  31. 	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,
  5. 	LVL(6, 6, 0, 0, 2), (G_GENO|G_NOGEN|1),
  6. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
  7. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  8. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), 0, 0,
  9. 	M1_HUMANOID|M1_CARNIVORE,
  10. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  11. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  12. MON("stone giant", S_GIANT,
  13. 	LVL(6, 6, 0, 0, 2), (G_GENO|G_SGROUP|1),
  14. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
  15. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  16. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), 0, 0,
  17. 	M1_HUMANOID|M1_CARNIVORE,
  18. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  19. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
  20. MON("hill giant", S_GIANT,
  21. 	LVL(8, 10, 6, 0, -2), (G_GENO|G_SGROUP|1),
  22. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8),
  23. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  24. 	SIZ(2200, 700, 0, MS_BOAST, MZ_HUGE), 0, 0,
  25. 	M1_HUMANOID|M1_CARNIVORE,
  26. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  27. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_CYAN),
  28. MON("fire giant", S_GIANT,
  29. 	LVL(9, 12, 4, 5, 2), (G_GENO|G_SGROUP|1),
  30. 	A(ATTK(AT_WEAP, AD_PHYS, 2,10),
  31. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  32. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_FIRE, MR_FIRE,
  33. 	M1_HUMANOID|M1_CARNIVORE,
  34. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  35. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_YELLOW),
  36. MON("frost giant", S_GIANT,
  37. 	LVL(10, 12, 3, 10, -3), (G_NOHELL|G_GENO|G_SGROUP|1),
  38. 	A(ATTK(AT_WEAP, AD_PHYS, 2,12),
  39. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  40. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_COLD, MR_COLD,
  41. 	M1_HUMANOID|M1_CARNIVORE,
  42. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  43. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_WHITE),
  44. MON("storm giant", S_GIANT,
  45. 	LVL(16, 12, 3, 10, -3), (G_GENO|G_SGROUP|1),
  46. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 12),
  47. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  48. 	SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_ELEC, MR_ELEC,
  49. 	M1_HUMANOID|M1_CARNIVORE,
  50. 	M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
  51. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
  52. MON("ettin", S_GIANT,
  53. 	LVL(10, 12, 3, 0, 0), (G_GENO|1),
  54. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 3, 6),
  55. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  56. 	SIZ(1700, 500, 0, MS_GRUNT, MZ_HUGE), 0, 0,
  57. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
  58. 	M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
  59. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
  60. MON("titan", S_GIANT,
  61. 	LVL(16, 18, -3, 70, 9), (1),
  62. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  63. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  64. 	SIZ(2300, 900, 0, MS_SPELL, MZ_HUGE), 0, 0,
  65. 	M1_FLY|M1_HUMANOID|M1_OMNIVORE,
  66. 	M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_MAGIC,
  67. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_MAGENTA),
  68. MON("minotaur", S_GIANT,
  69. 	LVL(15, 15, 6, 0, 0), (G_GENO|G_NOGEN),
  70. 	A(ATTK(AT_CLAW, AD_PHYS, 3,10), ATTK(AT_CLAW, AD_PHYS, 3,10),
  71. 	  ATTK(AT_BUTT, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK),
  72. 	SIZ(1500, 700, 0, MS_SILENT, MZ_LARGE), 0, 0,
  73. 	M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
  74. 	M2_HOSTILE|M2_STRONG|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
  75. 	CLR_BROWN),
  1. /* 'I' is a visual marker for all invisible monsters and must be unused */

Jabberwock

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

Kops

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

Liches

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

Mummies

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

Nagas

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

Ogres

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

Puddings

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

Quantum mechanics

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

Rust monsters and disenchanters

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

Snakes

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

Trolls

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

Umber hulk

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

Vampires

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

Wraiths

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

Xorn

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

Apelike beasts

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

Zombies

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

Golems

  1. /*
  2. * golems
  3. */
  4. MON("straw golem", S_GOLEM,
  5. 	LVL(3, 12, 10, 0, 0), (G_NOCORPSE|1),
  6. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 2),
  7. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  8. 	SIZ(400, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
  9. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  10. 	M2_HOSTILE|M2_NEUTER, 0, CLR_YELLOW),
  11. MON("paper golem", S_GOLEM,
  12. 	LVL(3, 12, 10, 0, 0), (G_NOCORPSE|1),
  13. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3),
  14. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  15. 	SIZ(400, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
  16. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  17. 	M2_HOSTILE|M2_NEUTER, 0, HI_PAPER),
  18. MON("rope golem", S_GOLEM,
  19. 	LVL(4, 9, 8, 0, 0), (G_NOCORPSE|1),
  20. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  21. 	  ATTK(AT_HUGS, AD_PHYS, 6, 1), NO_ATTK, NO_ATTK, NO_ATTK),
  22. 	SIZ(450, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
  23. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  24. 	M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
  25. MON("gold golem", S_GOLEM,
  26. 	LVL(5, 9, 6, 0, 0), (G_NOCORPSE|1),
  27. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 3), ATTK(AT_CLAW, AD_PHYS, 2, 3),
  28. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  29. 	SIZ(450, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_ACID, 0,
  30. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  31. 	M2_HOSTILE|M2_NEUTER, 0, HI_GOLD),
  32. MON("leather golem", S_GOLEM,
  33. 	LVL(6, 6, 6, 0, 0), (G_NOCORPSE|1),
  34. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
  35. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  36. 	SIZ(800, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
  37. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  38. 	M2_HOSTILE|M2_NEUTER, 0, HI_LEATHER),
  39. MON("wood golem", S_GOLEM,
  40. 	LVL(7, 3, 4, 0, 0), (G_NOCORPSE|1),
  41. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 4),
  42. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  43. 	SIZ(900, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
  44. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  45. 	M2_HOSTILE|M2_NEUTER, 0, HI_WOOD),
  46. MON("flesh golem", S_GOLEM,
  47. 	LVL(9, 8, 9, 30, 0), (1),
  48. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  49. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  50. 	SIZ(1400, 600, 0, MS_SILENT, MZ_LARGE),
  51. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON,
  52. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON,
  53. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
  54. 	M2_HOSTILE|M2_STRONG, 0, CLR_RED),
  55. MON("clay golem", S_GOLEM,
  56. 	LVL(11, 7, 7, 40, 0), (G_NOCORPSE|1),
  57. 	A(ATTK(AT_CLAW, AD_PHYS, 3,10),
  58. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  59. 	SIZ(1550, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON, 0,
  60. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  61. 	M2_HOSTILE|M2_STRONG, 0, CLR_BROWN),
  62. MON("stone golem", S_GOLEM,
  63. 	LVL(14, 6, 5, 50, 0), (G_NOCORPSE|1),
  64. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 8),
  65. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  66. 	SIZ(1900, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_STONE, 0,
  67. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  68. 	M2_HOSTILE|M2_STRONG, 0, CLR_GRAY),
  69. MON("glass golem", S_GOLEM,
  70. 	LVL(16, 6, 1, 50, 0), (G_NOCORPSE|1),
  71. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
  72. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  73. 	SIZ(1800, 0, 0, MS_SILENT, MZ_LARGE), MR_SLEEP|MR_POISON|MR_ACID, 0,
  74. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE,
  75. 	M2_HOSTILE|M2_STRONG, 0, CLR_CYAN),
  76. MON("iron golem", S_GOLEM,
  77. 	LVL(18, 6, 3, 60, 0), (G_NOCORPSE|1),
  78. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_BREA, AD_DRST, 4, 6),
  79. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  80. 	SIZ(2000, 0, 0, MS_SILENT, MZ_LARGE),
  81. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  82. 	M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_THICK_HIDE|M1_POIS,
  83. 	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,
  5. 	LVL(0, 12, 10, 0, 0), G_NOGEN,		/* for corpses */
  6. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  7. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  8. 	SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
  9. 	M1_HUMANOID|M1_OMNIVORE,
  10. 	M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT,
  11. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  12. MON("wererat", S_HUMAN,
  13. 	LVL(2, 12, 10, 10, -7), (1),
  14. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  15. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  16. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
  17. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
  18. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT, M3_INFRAVISIBLE,
  19. 	CLR_BROWN),
  20. MON("werejackal", S_HUMAN,
  21. 	LVL(2, 12, 10, 10, -7), (1),
  22. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  23. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  24. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
  25. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
  26. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT, M3_INFRAVISIBLE,
  27. 	CLR_RED),
  28. MON("werewolf", S_HUMAN,
  29. 	LVL(5, 12, 10, 20, -7), (1),
  30. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  31. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  32. 	SIZ(WT_HUMAN, 400, 0, MS_WERE, MZ_HUMAN), MR_POISON, 0,
  33. 	M1_HUMANOID|M1_POIS|M1_REGEN|M1_OMNIVORE,
  34. 	M2_NOPOLY|M2_WERE|M2_HOSTILE|M2_HUMAN|M2_COLLECT,
  35. 	M3_INFRAVISIBLE, CLR_ORANGE),
  36. MON("elf", S_HUMAN,
  37. 	LVL(10, 12, 10, 2, -3), G_NOGEN,		/* for corpses */
  38. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  39. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  40. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  41. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  42. 	M2_NOPOLY|M2_ELF|M2_STRONG|M2_COLLECT, M3_INFRAVISION|M3_INFRAVISIBLE,
  43. 	HI_DOMESTIC),
  44. MON("Woodland-elf", S_HUMAN,
  45. 	LVL(4, 12, 10, 10, -5), (G_GENO|G_SGROUP|2),
  46. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  47. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  48. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  49. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  50. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GREEN),
  51. MON("Green-elf", S_HUMAN,
  52. 	LVL(5, 12, 10, 10, -6), (G_GENO|G_SGROUP|2),
  53. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  54. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  55. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  56. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  57. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BRIGHT_GREEN),
  58. MON("Grey-elf", S_HUMAN,
  59. 	LVL(6, 12, 10, 10, -7), (G_GENO|G_SGROUP|2),
  60. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4),
  61. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  62. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  63. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  64. 	M2_ELF|M2_COLLECT, M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
  65. MON("elf-lord", S_HUMAN,
  66. 	LVL(8, 12, 10, 20, -9), (G_GENO|G_SGROUP|2),
  67. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  68. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  69. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  70. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  71. 	M2_ELF|M2_STRONG|M2_LORD|M2_MALE|M2_COLLECT,
  72. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BRIGHT_BLUE),
  73. MON("Elvenking", S_HUMAN,
  74. 	LVL(9, 12, 10, 25, -10), (G_GENO|1),
  75. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  76. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  77. 	SIZ(WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN), MR_SLEEP, MR_SLEEP,
  78. 	M1_HUMANOID|M1_OMNIVORE|M1_SEE_INVIS,
  79. 	M2_ELF|M2_STRONG|M2_PRINCE|M2_MALE|M2_COLLECT,
  80. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  81. MON("doppelganger", S_HUMAN,
  82. 	LVL(9, 12, 5, 20, 0), (G_GENO|1),
  83. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 12),
  84. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  85. 	SIZ(WT_HUMAN, 400, 0, MS_IMITATE, MZ_HUMAN), MR_SLEEP, 0,
  86. 	M1_HUMANOID|M1_OMNIVORE,
  87. 	M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_COLLECT,
  88. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  89. MON("nurse", S_HUMAN,
  90. 	LVL(11, 6, 0, 0, 0), (G_GENO|3),
  91. 	A(ATTK(AT_CLAW, AD_HEAL, 2, 6),
  92. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  93. 	SIZ(WT_HUMAN, 400, 0, MS_NURSE, MZ_HUMAN), MR_POISON, MR_POISON,
  94. 	M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_HUMAN|M2_HOSTILE,
  95. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  96. MON("shopkeeper", S_HUMAN,
  97. 	LVL(12, 18, 0, 50, 0), G_NOGEN,
  98. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4),
  99. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  100. 	SIZ(WT_HUMAN, 400, sizeof(struct eshk), MS_SELL, MZ_HUMAN), 0, 0,
  101. 	M1_HUMANOID|M1_OMNIVORE,
  102. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT|M2_MAGIC,
  103. 	M3_INFRAVISIBLE, HI_DOMESTIC),
  104. MON("guard", S_HUMAN,
  105. 	LVL(12, 12, 10, 40, 10), G_NOGEN,
  106. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10),
  107. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  108. 	SIZ(WT_HUMAN, 400, sizeof(struct egd), MS_GUARD, MZ_HUMAN), 0, 0,
  109. 	M1_HUMANOID|M1_OMNIVORE,
  110. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  111. 	M3_INFRAVISIBLE, CLR_BLUE),
  112. MON("prisoner", S_HUMAN,
  113. 	LVL(12, 12, 10, 0, 0), G_NOGEN,          /* for special levels */
  114. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
  115. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  116. 	SIZ(WT_HUMAN, 400, 0, MS_DJINNI, MZ_HUMAN), 0, 0,
  117. 	M1_HUMANOID|M1_OMNIVORE,
  118. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  119. 	M3_INFRAVISIBLE|M3_CLOSE, HI_DOMESTIC),
  120. MON("Oracle", S_HUMAN,
  121. 	LVL(12, 0, 0, 50, 0), (G_NOGEN|G_UNIQ),
  122. 	A(ATTK(AT_NONE, AD_MAGM, 0, 4),
  123. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  124. 	SIZ(WT_HUMAN, 400, 0, MS_ORACLE, MZ_HUMAN), 0, 0,
  125. 	M1_HUMANOID|M1_OMNIVORE,
  126. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_FEMALE, M3_INFRAVISIBLE, HI_ZAP),
  127. MON("aligned priest", S_HUMAN,
  128. 	LVL(12, 12, 10, 50, 0), G_NOGEN,
  129. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_KICK, AD_PHYS, 1, 4),
  130. 	  ATTK(AT_MAGC, AD_CLRC, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
  131. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN),
  132. 	MR_ELEC, 0, M1_HUMANOID|M1_OMNIVORE,
  133. 	M2_NOPOLY|M2_HUMAN|M2_LORD|M2_PEACEFUL|M2_COLLECT, M3_INFRAVISIBLE,
  134. 	CLR_WHITE),
  135. MON("high priest", S_HUMAN,
  136. 	LVL(25, 15, 7, 70, 0), (G_NOGEN|G_UNIQ),
  137. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10), ATTK(AT_KICK, AD_PHYS, 2, 8),
  138. 	  ATTK(AT_MAGC, AD_CLRC, 2, 8), ATTK(AT_MAGC, AD_CLRC, 2, 8),
  139. 	  NO_ATTK, NO_ATTK),
  140. 	SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN),
  141. 	MR_FIRE|MR_ELEC|MR_SLEEP|MR_POISON, 0,
  142. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
  143. 	M2_NOPOLY|M2_HUMAN|M2_MINION|M2_PRINCE|M2_NASTY|M2_COLLECT|M2_MAGIC,
  144. 	M3_INFRAVISIBLE, CLR_WHITE),
  145. MON("soldier", S_HUMAN,
  146. 	LVL(6, 10, 10, 0, -2), (G_SGROUP|G_GENO|1),
  147. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  148. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  149. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  150. 	M1_HUMANOID|M1_OMNIVORE,
  151. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
  152. 	M3_INFRAVISIBLE, CLR_GRAY),
  153. MON("sergeant", S_HUMAN,
  154. 	LVL(8, 10, 10, 5, -3), (G_SGROUP|G_GENO|1),
  155. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6),
  156. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  157. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  158. 	M1_HUMANOID|M1_OMNIVORE,
  159. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
  160. 	M3_INFRAVISIBLE, CLR_RED),
  161. MON("lieutenant", S_HUMAN,
  162. 	LVL(10, 10, 10, 15, -4), (G_GENO|1),
  163. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 3, 4),
  164. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  165. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  166. 	M1_HUMANOID|M1_OMNIVORE,
  167. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
  168. 	M3_INFRAVISIBLE, CLR_GREEN),
  169. MON("captain", S_HUMAN,
  170. 	LVL(12, 10, 10, 15, -5), (G_GENO|1),
  171. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4),
  172. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  173. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  174. 	M1_HUMANOID|M1_OMNIVORE,
  175. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
  176. 	M3_INFRAVISIBLE, CLR_BLUE),
  177. 	/* Keep these separate - some of the mkroom code assumes that
  178. 	 * all the soldiers are contiguous.
  179. 	 */
  180. MON("watchman", S_HUMAN,
  181. 	LVL(6, 10, 10, 0, -2), (G_SGROUP|G_NOGEN|G_GENO|1),
  182. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
  183. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  184. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  185. 	M1_HUMANOID|M1_OMNIVORE,
  186. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  187. 	M3_INFRAVISIBLE, CLR_GRAY),
  188. MON("watch captain", S_HUMAN,
  189. 	LVL(10, 10, 10, 15, -4), (G_NOGEN|G_GENO|1),
  190. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 3, 4),
  191. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  192. 	SIZ(WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN), 0, 0,
  193. 	M1_HUMANOID|M1_OMNIVORE,
  194. 	M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_PEACEFUL|M2_STRONG|M2_COLLECT,
  195. 	M3_INFRAVISIBLE, CLR_GREEN),

Unique humans not tied to quests

  1. 	/* Unique humans not tied to quests.
  2. 	 */
  3. MON("Medusa", S_HUMAN,
  4. 	LVL(20, 12, 2, 50, -15), (G_NOGEN|G_UNIQ),
  5. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 1, 8),
  6. 	  ATTK(AT_GAZE, AD_STON, 0, 0), ATTK(AT_BITE, AD_DRST, 1, 6),
  7. 	  NO_ATTK, NO_ATTK),
  8. 	SIZ(WT_HUMAN, 400, 0, MS_HISS, MZ_LARGE),
  9. 	MR_POISON|MR_STONE, MR_POISON|MR_STONE,
  10. 	M1_FLY|M1_SWIM|M1_AMPHIBIOUS|M1_HUMANOID|M1_POIS|M1_OMNIVORE,
  11. 	M2_NOPOLY|M2_HOSTILE|M2_STRONG|M2_PNAME|M2_FEMALE,
  12. 	M3_WAITFORU|M3_INFRAVISIBLE, CLR_BRIGHT_GREEN),
  13. MON("Wizard of Yendor", S_HUMAN,
  14. 	LVL(30, 12, -8, 100, A_NONE), (G_NOGEN|G_UNIQ),
  15. 	A(ATTK(AT_CLAW, AD_SAMU, 2,12), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  16. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  17. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_HUMAN),
  18. 	MR_FIRE|MR_POISON, MR_FIRE|MR_POISON,
  19. 	M1_FLY|M1_BREATHLESS|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT|
  20. 	  M1_TPORT_CNTRL|M1_OMNIVORE,
  21. 	M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_NASTY|
  22. 	  M2_PRINCE|M2_MALE|M2_MAGIC,
  23. 	M3_COVETOUS|M3_WAITFORU|M3_INFRAVISIBLE, HI_LORD),
  24. MON("Croesus", S_HUMAN,
  25. 	LVL(20, 15, 0, 40, 15), (G_UNIQ|G_NOGEN),
  26. 	A(ATTK(AT_WEAP, AD_PHYS, 4,10),
  27. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  28. 	SIZ(WT_HUMAN, 400, 0, MS_GUARD, MZ_HUMAN), 0, 0,
  29. 	M1_HUMANOID|M1_SEE_INVIS|M1_OMNIVORE,
  30. 	M2_NOPOLY|M2_HUMAN|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_PNAME|
  31. 	  M2_PRINCE|M2_MALE|M2_GREEDY|M2_JEWELS|M2_COLLECT|M2_MAGIC,
  32. 	M3_INFRAVISIBLE, HI_LORD),
  33. #ifdef CHARON
  34. MON("Charon", S_HUMAN,
  35. 	LVL(76, 18, -5, 120, 0), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  36. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_TUCH, AD_PLYS, 1, 8),
  37. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  38. 	SIZ(WT_HUMAN, 400, 0, MS_FERRY, MZ_HUMAN),
  39. 	MR_FIRE|MR_COLD|MR_POISON|MR_STONE, 0,
  40. 	M1_BREATHLESS|M1_SEE_INVIS|M1_HUMANOID,
  41. 	M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_PNAME|M2_MALE|M2_GREEDY|M2_COLLECT,
  42. 	M3_INFRAVISIBLE, CLR_WHITE),
  43. #endif

Ghosts

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

Major demons

  1. /*
  2. * (major) demons
  3. */
  4. MON("water demon", S_DEMON,
  5. 	LVL(8, 12,-4, 30, -7), (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, 0, 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. MON("horned devil", S_DEMON,
  15. 	LVL(6, 9, -5, 50, 11), (G_HELL|G_NOCORPSE|2),
  16. 	A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  17. 	  ATTK(AT_BITE, AD_PHYS, 2, 3), ATTK(AT_STNG, AD_PHYS, 1, 3),
  18. 	  NO_ATTK, NO_ATTK),
  19. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  20. 	M1_POIS|M1_THICK_HIDE,
  21. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
  22. 	CLR_BROWN),
  23. #ifdef SEDUCE
  24. # define SEDUCTION_ATTACKS \
  25. 	A(ATTK(AT_BITE, AD_SSEX, 0, 0), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
  26. 	  ATTK(AT_CLAW, AD_PHYS, 1, 3), NO_ATTK, NO_ATTK, NO_ATTK)
  27. #else
  28. # define SEDUCTION_ATTACKS \
  29. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
  30. 	  ATTK(AT_BITE, AD_DRLI, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK)
  31. #endif
  32. MON("succubus", S_DEMON,
  33. 	LVL(6, 12, 0, 70, -9), (G_NOCORPSE|1),
  34. 	SEDUCTION_ATTACKS,
  35. 	SIZ(WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  36. 	M1_HUMANOID|M1_FLY|M1_POIS,
  37. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE,
  38. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
  39. MON("incubus", S_DEMON,
  40. 	LVL(6, 12, 0, 70, -9), (G_NOCORPSE|1),
  41. 	SEDUCTION_ATTACKS,
  42. 	SIZ(WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  43. 	M1_HUMANOID|M1_FLY|M1_POIS,
  44. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_MALE,
  45. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
  46. #undef SEDUCTION_ATTACKS
  47. /* Used by AD&D for a type of demon, originally one of the Furies */
  48. /* and spelled this way */
  49. MON("erinys", S_DEMON,
  50. 	LVL(7, 12, 2, 30, 10), (G_HELL|G_NOCORPSE|G_SGROUP|2),
  51. 	A(ATTK(AT_WEAP, AD_DRST, 2, 4),
  52. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  53. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  54. 	M1_HUMANOID|M1_POIS,
  55. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_FEMALE|
  56. 	  M2_COLLECT,
  57. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  58. MON("barbed devil", S_DEMON,
  59. 	LVL(8, 12, 0, 35, 8), (G_HELL|G_NOCORPSE|G_SGROUP|2),
  60. 	A(ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  61. 	  ATTK(AT_STNG, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  62. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  63. 	M1_POIS|M1_THICK_HIDE, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
  64. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  65. MON("marilith", S_DEMON,
  66. 	LVL(7, 12, -6, 80, -12), (G_HELL|G_NOCORPSE|1),
  67. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
  68. 	  ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
  69. 	  ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4)),
  70. 	SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  71. 	M1_HUMANOID|M1_SLITHY|M1_SEE_INVIS|M1_POIS,
  72. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE|M2_COLLECT,
  73. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  74. MON("vrock", S_DEMON,
  75. 	LVL(8, 12, 0, 50, -9), (G_HELL|G_NOCORPSE|G_SGROUP|2),
  76. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  77. 	  ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_CLAW, AD_PHYS, 1, 8),
  78. 	  ATTK(AT_BITE, AD_PHYS, 1, 6), NO_ATTK),
  79. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  80. 	M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
  81. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  82. MON("hezrou", S_DEMON,
  83. 	LVL(9, 6, -2, 55, -10), (G_HELL|G_NOCORPSE|G_SGROUP|2),
  84. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 3), ATTK(AT_CLAW, AD_PHYS, 1, 3),
  85. 	  ATTK(AT_BITE, AD_PHYS, 4, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  86. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  87. 	M1_HUMANOID|M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
  88. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  89. MON("bone devil", S_DEMON,
  90. 	LVL(9, 15, -1, 40, -9), (G_HELL|G_NOCORPSE|G_SGROUP|2),
  91. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_STNG, AD_DRST, 2, 4),
  92. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  93. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  94. 	M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
  95. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
  96. MON("ice devil", S_DEMON,
  97. 	LVL(11, 6, -4, 55, -12), (G_HELL|G_NOCORPSE|2),
  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_STNG, AD_COLD, 3, 4),
  100. 	  NO_ATTK, NO_ATTK),
  101. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE),
  102. 	MR_FIRE|MR_COLD|MR_POISON, 0, M1_SEE_INVIS|M1_POIS,
  103. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
  104. 	CLR_WHITE),
  105. MON("nalfeshnee", S_DEMON,
  106. 	LVL(11, 9, -1, 65, -11), (G_HELL|G_NOCORPSE|1),
  107. 	A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
  108. 	  ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
  109. 	  NO_ATTK, NO_ATTK),
  110. 	SIZ(WT_HUMAN, 400, 0, MS_SPELL, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  111. 	M1_HUMANOID|M1_POIS, M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY,
  112. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  113. MON("pit fiend", S_DEMON,
  114. 	LVL(13, 6, -3, 65, -13), (G_HELL|G_NOCORPSE|2),
  115. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 2), ATTK(AT_WEAP, AD_PHYS, 4, 2),
  116. 	  ATTK(AT_HUGS, AD_PHYS, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  117. 	SIZ(WT_HUMAN, 400, 0, MS_GROWL, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  118. 	M1_SEE_INVIS|M1_POIS,
  119. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
  120. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
  121. MON("balrog", S_DEMON,
  122. 	LVL(16, 5, -2, 75, -14), (G_HELL|G_NOCORPSE|1),
  123. 	A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
  124. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  125. 	SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  126. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
  127. 	M2_DEMON|M2_STALK|M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
  128. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),

Named demon lords, princes and Arch-Devils

  1. 	/* Named demon lords & princes plus Arch-Devils.
  2. 	 * (their order matters; see minion.c)
  3. 	 */
  4. MON("Juiblex", S_DEMON,
  5. 	LVL(50, 3, -7, 65, -15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  6. 	A(ATTK(AT_ENGL, AD_DISE, 4,10), ATTK(AT_SPIT, AD_ACID, 3, 6),
  7. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  8. 	SIZ(1500, 0, 0, MS_GURGLE, MZ_LARGE),
  9. 	MR_FIRE|MR_POISON|MR_ACID|MR_STONE, 0,
  10. 	M1_AMPHIBIOUS|M1_AMORPHOUS|M1_NOHEAD|M1_FLY|M1_SEE_INVIS|M1_ACID|
  11. 	  M1_POIS,
  12. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_LORD|
  13. 	  M2_MALE,
  14. 	M3_WAITFORU|M3_WANTSAMUL|M3_INFRAVISION, CLR_BRIGHT_GREEN),
  15. MON("Yeenoghu", S_DEMON,
  16. 	LVL(56, 18, -5, 80, -15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  17. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_WEAP, AD_CONF, 2, 8),
  18. 	  ATTK(AT_CLAW, AD_PLYS, 1, 6), ATTK(AT_MAGC, AD_MAGM, 2, 6),
  19. 	  NO_ATTK, NO_ATTK),
  20. 	SIZ(900, 500, 0, MS_ORC, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  21. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
  22. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_LORD|
  23. 	  M2_MALE|M2_COLLECT,
  24. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  25. MON("Orcus", S_DEMON,
  26. 	LVL(66, 9, -6, 85, -20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  27. 	A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 4),
  28. 	  ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_MAGC, AD_SPEL, 8, 6),
  29. 	  ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK),
  30. 	SIZ(1500, 500, 0, MS_ORC, MZ_HUGE), MR_FIRE|MR_POISON, 0,
  31. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
  32. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|M2_PRINCE|
  33. 	  M2_MALE|M2_COLLECT,
  34. 	M3_WAITFORU|M3_WANTSBOOK|M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION,
  35. 	HI_LORD),
  36. MON("Geryon", S_DEMON,
  37. 	LVL(72, 3, -3, 75, 15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  38. 	A(ATTK(AT_CLAW, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 6),
  39. 	  ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK, NO_ATTK, NO_ATTK),
  40. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUGE), MR_FIRE|MR_POISON, 0,
  41. 	M1_FLY|M1_SEE_INVIS|M1_POIS|M1_SLITHY,
  42. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
  43. 	  M2_PRINCE|M2_MALE,
  44. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  45. MON("Dispater", S_DEMON,
  46. 	LVL(78, 15, -2, 80, 15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  47. 	A(ATTK(AT_WEAP, AD_PHYS, 4, 6), ATTK(AT_MAGC, AD_SPEL, 6, 6),
  48. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  49. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
  50. 	M1_FLY|M1_SEE_INVIS|M1_POIS|M1_HUMANOID,
  51. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
  52. 	  M2_PRINCE|M2_MALE|M2_COLLECT,
  53. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  54. MON("Baalzebub", S_DEMON,
  55. 	LVL(89, 9, -5, 85, 20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  56. 	A(ATTK(AT_BITE, AD_DRST, 2, 6), ATTK(AT_GAZE, AD_STUN, 2, 6),
  57. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  58. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_LARGE), MR_FIRE|MR_POISON, 0,
  59. 	M1_FLY|M1_SEE_INVIS|M1_POIS,
  60. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
  61. 	  M2_PRINCE|M2_MALE,
  62. 	M3_WANTSAMUL|M3_WAITFORU|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  63. MON("Asmodeus", S_DEMON,
  64. 	LVL(105, 12, -7, 90, 20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  65. 	A(ATTK(AT_CLAW, AD_PHYS, 4, 4), ATTK(AT_MAGC, AD_COLD, 6, 6),
  66. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  67. 	SIZ(1500, 500, 0, MS_BRIBE, MZ_HUGE), MR_FIRE|MR_COLD|MR_POISON, 0,
  68. 	M1_FLY|M1_SEE_INVIS|M1_HUMANOID|M1_POIS,
  69. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|
  70. 	  M2_NASTY|M2_PRINCE|M2_MALE,
  71. 	M3_WANTSAMUL|M3_WAITFORU|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  72. MON("Demogorgon", S_DEMON,
  73. 	LVL(106, 15, -8, 95, -20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
  74. 	A(ATTK(AT_MAGC, AD_SPEL, 8, 6), ATTK(AT_STNG, AD_DRLI, 1, 4),
  75. 	  ATTK(AT_CLAW, AD_DISE, 1, 6), ATTK(AT_CLAW, AD_DISE, 1, 6),
  76. 	  NO_ATTK, NO_ATTK),
  77. 	SIZ(1500, 500, 0, MS_GROWL, MZ_HUGE), MR_FIRE|MR_POISON, 0,
  78. 	M1_FLY|M1_SEE_INVIS|M1_NOHANDS|M1_POIS,
  79. 	M2_NOPOLY|M2_DEMON|M2_STALK|M2_HOSTILE|M2_PNAME|M2_NASTY|
  80. 	  M2_PRINCE|M2_MALE,
  81. 	M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),

Riders

  1. 	/* Riders -- the Four Horsemen of the Apocalypse ("War" == player)
  2. 	 */
  3. MON("Death", S_DEMON,
  4. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
  5. 	A(ATTK(AT_TUCH, AD_DETH, 8, 8), ATTK(AT_TUCH, AD_DETH, 8, 8),
  6. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  7. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
  8. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
  9. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
  10. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
  11. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  12. MON("Pestilence", S_DEMON,
  13. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
  14. 	A(ATTK(AT_TUCH, AD_PEST, 8, 8), ATTK(AT_TUCH, AD_PEST, 8, 8),
  15. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  16. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
  17. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
  18. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
  19. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
  20. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
  21. MON("Famine", S_DEMON,
  22. 	LVL(30, 12, -5, 100, 0), (G_UNIQ|G_NOGEN),
  23. 	A(ATTK(AT_TUCH, AD_FAMN, 8, 8), ATTK(AT_TUCH, AD_FAMN, 8, 8),
  24. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  25. 	SIZ(WT_HUMAN, 1, 0, MS_RIDER, MZ_HUMAN),
  26. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
  27. 	M1_FLY|M1_HUMANOID|M1_REGEN|M1_SEE_INVIS|M1_TPORT_CNTRL,
  28. 	M2_NOPOLY|M2_STALK|M2_HOSTILE|M2_PNAME|M2_STRONG|M2_NASTY,
  29. 	M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),

Other demons

  1. 	/* other demons
  2. 	 */
  3. #ifdef MAIL
  4. MON("mail daemon", S_DEMON,
  5. 	LVL(56, 24, 10, 127, 0), (G_NOGEN|G_NOCORPSE),
  6. 	A(NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  7. 	SIZ(600, 300, 0, MS_SILENT, MZ_HUMAN),
  8. 	MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON|MR_STONE, 0,
  9. 	M1_FLY|M1_SWIM|M1_BREATHLESS|M1_SEE_INVIS|M1_HUMANOID|M1_POIS,
  10. 	M2_NOPOLY|M2_STALK|M2_PEACEFUL, M3_INFRAVISIBLE|M3_INFRAVISION,
  11. 	CLR_BRIGHT_BLUE),
  12. #endif
  13. MON("djinni", S_DEMON,
  14. 	LVL(7, 12, 4, 30, 0), (G_NOGEN|G_NOCORPSE),
  15. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 8),
  16. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  17. 	SIZ(1500, 400, 0, MS_DJINNI, MZ_HUMAN), MR_POISON|MR_STONE, 0,
  18. 	M1_HUMANOID|M1_FLY|M1_POIS,
  19. 	M2_NOPOLY|M2_STALK|M2_COLLECT, M3_INFRAVISIBLE, CLR_YELLOW),
  20. MON("sandestin", S_DEMON,
  21. 	LVL(13, 12, 4, 60, -5), (G_HELL|G_NOCORPSE|1),
  22. 	A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
  23. 	  NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
  24. 	SIZ(1500, 400, 0, MS_CUSS, MZ_HUMAN), MR_STONE, 0,
  25. 	M1_HUMANOID, M2_NOPOLY|M2_STALK|M2_STRONG|M2_COLLECT,
  26. 	M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),

Sea monsters

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

Lizards

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

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,
  7. 	LVL(0, 0, 0, 0, 0), (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, 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. 	 */

Character classes

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

Quest leaders

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

Quest nemeses

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