SIZ(150, 150, 0, MS_BARK, MZ_SMALL), 0, 0,
M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_DOMESTIC, M3_INFRAVISIBLE,
HI_DOMESTIC),
+ MON("dingo", S_DOG,
+ LVL(4, 16, 5, 0, 0), (G_GENO|1),
+ A(ATTK(AT_BITE, AD_PHYS, 1 ,6),
+ NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
+ SIZ(400, 200, 0, MS_BARK, MZ_MEDIUM), 0, 0,
+ M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
+ CLR_YELLOW),
MON("dog", S_DOG,
LVL(4, 16, 5, 0, 0), (G_GENO|1),
A(ATTK(AT_BITE, AD_PHYS, 1 ,6),
SIZ(800, 250, 0, MS_BARK, MZ_MEDIUM), 0, 0,
M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE,
M2_STRONG|M2_DOMESTIC, M3_INFRAVISIBLE, HI_DOMESTIC),
- MON("dingo", S_DOG,
- LVL(4, 16, 5, 0, 0), (G_GENO|1),
- A(ATTK(AT_BITE, AD_PHYS, 1 ,6),
- NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
- SIZ(400, 200, 0, MS_BARK, MZ_MEDIUM), 0, 0,
- M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
- CLR_YELLOW),
MON("wolf", S_DOG,
LVL(5, 12, 4, 0, 0), (G_GENO|G_SGROUP|2),
A(ATTK(AT_BITE, AD_PHYS, 2, 4),
SIZ(500, 250, 0, MS_BARK, MZ_MEDIUM), MR_POISON, 0,
M1_NOHANDS|M1_POIS|M1_REGEN|M1_CARNIVORE,
M2_NOPOLY|M2_WERE|M2_HOSTILE, M3_INFRAVISIBLE, CLR_BROWN),
+ MON("winter wolf cub", S_DOG,
+ LVL(5, 12, 4, 0, -5), (G_NOHELL|G_GENO|G_SGROUP|2),
+ A(ATTK(AT_BITE, AD_PHYS, 1, 8), ATTK(AT_BREA, AD_COLD, 1, 8),
+ NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
+ SIZ(250, 200, 0, MS_BARK, MZ_SMALL), MR_COLD, MR_COLD,
+ M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_CYAN),
MON("warg", S_DOG,
LVL(7, 12, 4, 0, -5), (G_GENO|G_SGROUP|2),
A(ATTK(AT_BITE, AD_PHYS, 2, 6),
SIZ(850, 350, 0, MS_BARK, MZ_MEDIUM), 0, 0,
M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, M3_INFRAVISIBLE,
CLR_BROWN),
- MON("winter wolf cub", S_DOG,
- LVL(5, 12, 4, 0, -5), (G_NOHELL|G_GENO|G_SGROUP|2),
- A(ATTK(AT_BITE, AD_PHYS, 1, 8), ATTK(AT_BREA, AD_COLD, 1, 8),
- NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
- SIZ(250, 200, 0, MS_BARK, MZ_SMALL), MR_COLD, MR_COLD,
- M1_ANIMAL|M1_NOHANDS|M1_CARNIVORE, M2_HOSTILE, 0, CLR_CYAN),
MON("winter wolf", S_DOG,
LVL(7, 12, 4, 20, 0), (G_NOHELL|G_GENO|1),
A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_BREA, AD_COLD, 2, 6),
/*
* unicorns and horses
*/
+ MON("pony", S_UNICORN,
+ LVL(3, 16, 6, 0, 0), (G_GENO|2),
+ A(ATTK(AT_KICK, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_PHYS, 1, 2),
+ NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
+ SIZ(1300, 250, 0, MS_NEIGH, MZ_MEDIUM), 0, 0,
+ M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_DOMESTIC,
+ M3_INFRAVISIBLE, CLR_BROWN),
MON("white unicorn", S_UNICORN,
LVL(4, 24, 2, 70, 7), (G_GENO|2),
A(ATTK(AT_BUTT, AD_PHYS, 1,12), ATTK(AT_KICK, AD_PHYS, 1, 6),
SIZ(1300, 300, 0, MS_NEIGH, MZ_LARGE), MR_POISON, MR_POISON,
M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_JEWELS,
M3_INFRAVISIBLE, CLR_BLACK),
- MON("pony", S_UNICORN,
- LVL(3, 16, 6, 0, 0), (G_GENO|2),
- A(ATTK(AT_KICK, AD_PHYS, 1, 6), ATTK(AT_BITE, AD_PHYS, 1, 2),
- NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
- SIZ(1300, 250, 0, MS_NEIGH, MZ_MEDIUM), 0, 0,
- M1_ANIMAL|M1_NOHANDS|M1_HERBIVORE, M2_WANDER|M2_STRONG|M2_DOMESTIC,
- M3_INFRAVISIBLE, CLR_BROWN),
MON("horse", S_UNICORN,
LVL(5, 20, 5, 0, 0), (G_GENO|2),
A(ATTK(AT_KICK, AD_PHYS, 1, 8), ATTK(AT_BITE, AD_PHYS, 1, 3),
M1_HUMANOID|M1_CARNIVORE,
M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
M3_INFRAVISIBLE|M3_INFRAVISION, CLR_WHITE),
- MON("storm giant", S_GIANT,
- LVL(16, 12, 3, 10, -3), (G_GENO|G_SGROUP|1),
- A(ATTK(AT_WEAP, AD_PHYS, 2, 12),
- NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
- SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_ELEC, MR_ELEC,
- M1_HUMANOID|M1_CARNIVORE,
- M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
- M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
MON("ettin", S_GIANT,
LVL(10, 12, 3, 0, 0), (G_GENO|1),
A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 3, 6),
M1_ANIMAL|M1_HUMANOID|M1_CARNIVORE,
M2_HOSTILE|M2_STRONG|M2_NASTY|M2_COLLECT,
M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BROWN),
+ MON("storm giant", S_GIANT,
+ LVL(16, 12, 3, 10, -3), (G_GENO|G_SGROUP|1),
+ A(ATTK(AT_WEAP, AD_PHYS, 2, 12),
+ NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
+ SIZ(2250, 750, 0, MS_BOAST, MZ_HUGE), MR_ELEC, MR_ELEC,
+ M1_HUMANOID|M1_CARNIVORE,
+ M2_GIANT|M2_STRONG|M2_ROCKTHROW|M2_NASTY|M2_COLLECT|M2_JEWELS,
+ M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
MON("titan", S_GIANT,
LVL(16, 18, -3, 70, 9), (1),
A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_MAGC, AD_SPEL, 0, 0),
M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
M1_MINDLESS|M1_OMNIVORE|M1_ACID,
M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
- MON("black pudding", S_PUDDING,
- LVL(10, 6, 6, 0, 0), (G_GENO|1),
- A(ATTK(AT_BITE, AD_CORR, 3, 8), ATTK(AT_NONE, AD_CORR, 0, 0),
- NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
- SIZ(900, 250, 0, MS_SILENT, MZ_LARGE),
- MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE, MR_COLD|MR_ELEC|MR_POISON,
- M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
- M1_MINDLESS|M1_OMNIVORE|M1_ACID,
- M2_HOSTILE|M2_NEUTER, 0, CLR_BLACK),
MON("green slime", S_PUDDING,
LVL(6, 6, 6, 0, 0), (G_HELL|G_GENO|1),
A(ATTK(AT_TUCH, AD_SLIM, 1, 4), ATTK(AT_NONE, AD_SLIM, 0, 0),
M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
M1_MINDLESS|M1_OMNIVORE|M1_ACID|M1_POIS,
M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
+ MON("black pudding", S_PUDDING,
+ LVL(10, 6, 6, 0, 0), (G_GENO|1),
+ A(ATTK(AT_BITE, AD_CORR, 3, 8), ATTK(AT_NONE, AD_CORR, 0, 0),
+ NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
+ SIZ(900, 250, 0, MS_SILENT, MZ_LARGE),
+ MR_COLD|MR_ELEC|MR_POISON|MR_ACID|MR_STONE, MR_COLD|MR_ELEC|MR_POISON,
+ M1_BREATHLESS|M1_AMORPHOUS|M1_NOEYES|M1_NOLIMBS|M1_NOHEAD|
+ M1_MINDLESS|M1_OMNIVORE|M1_ACID,
+ M2_HOSTILE|M2_NEUTER, 0, CLR_BLACK),
/*
* Quantum mechanics
*/
M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
M2_HOSTILE, 0, CLR_RED),
- MON("pit viper", S_SNAKE,
- LVL(6, 15, 2, 0, 0), (G_GENO|1),
- A(ATTK(AT_BITE, AD_DRST, 1, 4), ATTK(AT_BITE, AD_DRST, 1, 4),
- NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
- SIZ(100, 60, 0, MS_HISS, MZ_MEDIUM),
- MR_POISON, MR_POISON,
- M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
- M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
- M2_HOSTILE, M3_INFRAVISION, CLR_BLUE),
MON("python", S_SNAKE,
LVL(6, 3, 5, 0, 0), (G_GENO|1),
A(ATTK(AT_BITE, AD_PHYS, 1, 4), ATTK(AT_TUCH, AD_PHYS, 0, 0),
M1_SWIM|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|
M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_MAGENTA),
+ MON("pit viper", S_SNAKE,
+ LVL(6, 15, 2, 0, 0), (G_GENO|1),
+ A(ATTK(AT_BITE, AD_DRST, 1, 4), ATTK(AT_BITE, AD_DRST, 1, 4),
+ NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
+ SIZ(100, 60, 0, MS_HISS, MZ_MEDIUM),
+ MR_POISON, MR_POISON,
+ M1_SWIM|M1_CONCEAL|M1_NOLIMBS|M1_ANIMAL|M1_SLITHY|M1_POIS|
+ M1_CARNIVORE|M1_OVIPAROUS|M1_NOTAKE,
+ M2_HOSTILE, M3_INFRAVISION, CLR_BLUE),
MON("cobra", S_SNAKE,
LVL(6, 18, 2, 0, 0), (G_GENO|1),
A(ATTK(AT_BITE, AD_DRST, 2, 4), ATTK(AT_SPIT, AD_BLND, 0, 0),
MR_COLD|MR_SLEEP|MR_POISON, 0,
M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_STRONG, M3_INFRAVISION, CLR_BLUE),
+ MON("ghoul", S_ZOMBIE,
+ LVL(3, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
+ A(ATTK(AT_CLAW, AD_PLYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 3),
+ NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
+ SIZ(400, 50, 0, MS_SILENT, MZ_SMALL),
+ MR_COLD|MR_SLEEP|MR_POISON, 0,
+ M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
+ M2_UNDEAD|M2_WANDER|M2_HOSTILE, M3_INFRAVISION, CLR_BLACK),
MON("giant zombie", S_ZOMBIE,
LVL(8, 8, 6, 0, -4), (G_GENO|G_NOCORPSE|1),
A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID,
M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_GIANT|M2_STRONG, M3_INFRAVISION,
CLR_CYAN),
- MON("ghoul", S_ZOMBIE,
- LVL(3, 6, 10, 0, -2), (G_GENO|G_NOCORPSE|1),
- A(ATTK(AT_CLAW, AD_PLYS, 1, 2), ATTK(AT_CLAW, AD_PHYS, 1, 3),
- NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
- SIZ(400, 50, 0, MS_SILENT, MZ_SMALL),
- MR_COLD|MR_SLEEP|MR_POISON, 0,
- M1_BREATHLESS|M1_MINDLESS|M1_HUMANOID|M1_POIS,
- M2_UNDEAD|M2_WANDER|M2_HOSTILE, M3_INFRAVISION, CLR_BLACK),
MON("skeleton", S_ZOMBIE,
LVL(12, 8, 4, 0, 0), (G_NOCORPSE|G_NOGEN),
A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_TUCH, AD_SLOW, 1, 6),
M1_HUMANOID|M1_OMNIVORE,
M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_COLLECT|M2_SHAPESHIFTER,
M3_INFRAVISIBLE, HI_DOMESTIC),
- MON("nurse", S_HUMAN,
- LVL(11, 6, 0, 0, 0), (G_GENO|3),
- A(ATTK(AT_CLAW, AD_HEAL, 2, 6),
- NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
- SIZ(WT_HUMAN, 400, 0, MS_NURSE, MZ_HUMAN), MR_POISON, MR_POISON,
- M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_HUMAN|M2_HOSTILE,
- M3_INFRAVISIBLE, HI_DOMESTIC),
MON("shopkeeper", S_HUMAN,
LVL(12, 18, 0, 50, 0), G_NOGEN,
A(ATTK(AT_WEAP, AD_PHYS, 4, 4), ATTK(AT_WEAP, AD_PHYS, 4, 4),
M1_HUMANOID|M1_OMNIVORE,
M2_NOPOLY|M2_HUMAN|M2_MERC|M2_STALK|M2_HOSTILE|M2_STRONG|M2_COLLECT,
M3_INFRAVISIBLE, CLR_RED),
+ MON("nurse", S_HUMAN,
+ LVL(11, 6, 0, 0, 0), (G_GENO|3),
+ A(ATTK(AT_CLAW, AD_HEAL, 2, 6),
+ NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
+ SIZ(WT_HUMAN, 400, 0, MS_NURSE, MZ_HUMAN), MR_POISON, MR_POISON,
+ M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_HUMAN|M2_HOSTILE,
+ M3_INFRAVISIBLE, HI_DOMESTIC),
MON("lieutenant", S_HUMAN,
LVL(10, 10, 10, 15, -4), (G_GENO|1),
A(ATTK(AT_WEAP, AD_PHYS, 3, 4), ATTK(AT_WEAP, AD_PHYS, 3, 4),
M3_INFRAVISIBLE|M3_INFRAVISION, CLR_BLUE),
/* standard demons & devils
*/
- MON("horned devil", S_DEMON,
- LVL(6, 9, -5, 50, 11), (G_HELL|G_NOCORPSE|2),
- A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
- ATTK(AT_BITE, AD_PHYS, 2, 3), ATTK(AT_STNG, AD_PHYS, 1, 3),
- NO_ATTK, NO_ATTK),
- SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
- M1_POIS|M1_THICK_HIDE,
- M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
- CLR_BROWN),
#ifdef SEDUCE
# define SEDUCTION_ATTACKS \
A(ATTK(AT_BITE, AD_SSEX, 0, 0), ATTK(AT_CLAW, AD_PHYS, 1, 3), \
M1_HUMANOID|M1_FLY|M1_POIS,
M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE,
M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
+ MON("horned devil", S_DEMON,
+ LVL(6, 9, -5, 50, 11), (G_HELL|G_NOCORPSE|2),
+ A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
+ ATTK(AT_BITE, AD_PHYS, 2, 3), ATTK(AT_STNG, AD_PHYS, 1, 3),
+ NO_ATTK, NO_ATTK),
+ SIZ(WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN), MR_FIRE|MR_POISON, 0,
+ M1_POIS|M1_THICK_HIDE,
+ M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY, M3_INFRAVISIBLE|M3_INFRAVISION,
+ CLR_BROWN),
MON("incubus", S_DEMON,
LVL(6, 12, 0, 70, -9), (G_NOCORPSE|1),
SEDUCTION_ATTACKS,
M1_SEE_INVIS|M1_POIS,
M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_COLLECT,
M3_INFRAVISIBLE|M3_INFRAVISION, CLR_RED),
+ MON("sandestin", S_DEMON,
+ LVL(13, 12, 4, 60, -5), (G_HELL|G_NOCORPSE|1),
+ A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
+ NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
+ SIZ(1500, 400, 0, MS_CUSS, MZ_HUMAN), MR_STONE, 0,
+ M1_HUMANOID, M2_NOPOLY|M2_STALK|M2_STRONG|M2_COLLECT|M2_SHAPESHIFTER,
+ M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
MON("balrog", S_DEMON,
LVL(16, 5, -2, 75, -14), (G_HELL|G_NOCORPSE|1),
A(ATTK(AT_WEAP, AD_PHYS, 8, 4), ATTK(AT_WEAP, AD_PHYS, 4, 6),
SIZ(1500, 400, 0, MS_DJINNI, MZ_HUMAN), MR_POISON|MR_STONE, 0,
M1_HUMANOID|M1_FLY|M1_POIS,
M2_NOPOLY|M2_STALK|M2_COLLECT, M3_INFRAVISIBLE, CLR_YELLOW),
- MON("sandestin", S_DEMON,
- LVL(13, 12, 4, 60, -5), (G_HELL|G_NOCORPSE|1),
- A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
- NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
- SIZ(1500, 400, 0, MS_CUSS, MZ_HUMAN), MR_STONE, 0,
- M1_HUMANOID, M2_NOPOLY|M2_STALK|M2_STRONG|M2_COLLECT|M2_SHAPESHIFTER,
- M3_INFRAVISIBLE|M3_INFRAVISION, CLR_GRAY),
/*
* sea monsters
*/