summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-data.h
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-04 20:50:21 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-04 20:50:21 +0000
commite828bafa67e06c97dad7b9fcf2851e6ab5b00f28 (patch)
tree77fbcd20c3485501851302796dfa70640a5e2c90 /crawl-ref/source/mon-data.h
parent07828b78525d85498811687311f0a9cff5901e03 (diff)
downloadcrawl-ref-e828bafa67e06c97dad7b9fcf2851e6ab5b00f28.tar.gz
crawl-ref-e828bafa67e06c97dad7b9fcf2851e6ab5b00f28.zip
Introduce a number of new uniques taken from a patch by castamir.
These are: * Roxanne (statue spellcaster) * Sonja (Kobold assassin) * Eustachio (human summoner, was: Francisco) * Azrael (efreet, was: Abdul) * Ilsuiw (Merfolk witch * Prince Ribbit (blink frog prince) * Nergalle (orc sorceress) * Saint Roka (orc priest of Beogh) Tweaked make_book_theme_randart() to allow for one forced spell and owner's name. Used to occasionally give Roxanne a randart book containing Statue Form. (Was: always book of earth) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8207 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/mon-data.h')
-rw-r--r--crawl-ref/source/mon-data.h317
1 files changed, 205 insertions, 112 deletions
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h
index 3da1ff608a..35c1d2edb8 100644
--- a/crawl-ref/source/mon-data.h
+++ b/crawl-ref/source/mon-data.h
@@ -3879,7 +3879,7 @@ static monsterentry mondata[] = {
// non-human uniques
{
MONS_IJYB, 'g', BLUE, "Ijyb",
- M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,
+ M_UNIQUE | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 5, MONS_GOBLIN, MONS_GOBLIN, MH_NATURAL, -3,
{ {AT_HIT, AF_PLAIN, 4}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -3889,55 +3889,8 @@ static monsterentry mondata[] = {
},
{
- MONS_BLORK_THE_ORC, 'o', BROWN, "Blork the orc",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE,
- MR_NO_FLAGS,
- 0, 15, MONS_ORC, MONS_ORC, MH_NATURAL, -4,
- { {AT_HIT, AF_PLAIN, 7}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
- { 3, 0, 0, 32 },
- 0, 9, MST_ORC_WIZARD_III, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
- HT_LAND, 8, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
-},
-
-{
- MONS_URUG, 'o', RED, "Urug",
- M_FIGHTER | M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,
- MR_NO_FLAGS,
- 0, 20, MONS_ORC, MONS_ORC, MH_NATURAL, -5,
- { {AT_HIT, AF_PLAIN, 12}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
- { 6, 0, 0, 66 },
- 0, 11, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
- HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
-},
-
-{
- MONS_EROLCHA, 'O', LIGHTBLUE, "Erolcha",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_WARM_BLOOD
- | M_SPEAKS | M_EVIL | M_UNIQUE,
- MR_NO_FLAGS,
- 0, 20, MONS_OGRE, MONS_OGRE, MH_NATURAL, -7,
- { {AT_HIT, AF_PLAIN, 20}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
- { 6, 0, 0, 54 },
- 3, 7, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
- HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_LARGE
-},
-
-{
- // Snorg can go berserk.
- MONS_SNORG, 'T', GREEN, "Snorg",
- M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,
- MR_NO_FLAGS,
- 0, 25, MONS_TROLL, MONS_TROLL, MH_NATURAL, -6,
- { {AT_BITE, AF_PLAIN, 20}, {AT_CLAW, AF_PLAIN, 15},
- {AT_CLAW, AF_PLAIN, 15}, AT_NO_ATK },
- { 8, 0, 0, 96 },
- 0, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
- HT_LAND, 10, DEFAULT_ENERGY, MONUSE_OPEN_DOORS, SIZE_LARGE
-},
-
-{
MONS_POLYPHEMUS, 'C', GREEN, "Polyphemus",
- M_WARM_BLOOD | M_UNIQUE | M_SPEAKS,
+ M_UNIQUE | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
2500, 10, MONS_HILL_GIANT, MONS_CYCLOPS, MH_NATURAL, -3,
{ {AT_HIT, AF_PLAIN, 35}, {AT_HIT, AF_PLAIN, 30}, AT_NO_ATK, AT_NO_ATK },
@@ -3949,7 +3902,7 @@ static monsterentry mondata[] = {
// Antaeus is now demonic so that he'll resist torment. -- bwr
{
MONS_ANTAEUS, 'C', LIGHTCYAN, "Antaeus",
- M_FIGHTER | M_SPELLCASTER | M_EVIL | M_SPEAKS | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_SPELLCASTER | M_EVIL | M_SPEAKS,
MR_RES_ELEC | MR_VUL_FIRE | mrd(MR_RES_COLD, 2),
0, 15, MONS_HILL_GIANT, MONS_ANTAEUS, MH_DEMONIC, -9,
{ {AT_HIT, AF_COLD, 75}, {AT_HIT, AF_COLD, 30}, AT_NO_ATK, AT_NO_ATK },
@@ -3959,8 +3912,20 @@ static monsterentry mondata[] = {
},
{
+ MONS_TIAMAT, 'd', MAGENTA, "Tiamat",
+ M_UNIQUE | M_SEE_INVIS | M_FLIES | M_COLD_BLOOD | M_SPEAKS,
+ MR_RES_POISON,
+ 0, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, -5,
+ { {AT_HIT, AF_PLAIN, 65}, {AT_TAIL_SLAP, AF_PLAIN, 45},
+ AT_NO_ATK, AT_NO_ATK },
+ { 22, 0, 0, 380 },
+ 25, 10, MST_NO_SPELLS, CE_NOCORPSE, Z_NOZOMBIE, S_ROAR, I_HIGH,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_STARTING_EQUIPMENT, SIZE_MEDIUM
+},
+
+{
MONS_XTAHUA, 'D', RED, "Xtahua",
- M_SEE_INVIS | M_FLIES | M_SPECIAL_ABILITY | M_UNIQUE | M_WARM_BLOOD
+ M_UNIQUE | M_SEE_INVIS | M_FLIES | M_SPECIAL_ABILITY | M_WARM_BLOOD
| M_SPEAKS,
MR_RES_POISON | mrd(MR_RES_FIRE, 2) | MR_VUL_COLD,
0, 18, MONS_DRAGON, MONS_DRAGON, MH_NATURAL, -7,
@@ -3973,21 +3938,44 @@ static monsterentry mondata[] = {
{
- MONS_TIAMAT, 'd', MAGENTA, "Tiamat",
- M_SEE_INVIS | M_UNIQUE | M_FLIES | M_COLD_BLOOD | M_SPEAKS,
- MR_RES_POISON,
- 0, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, -5,
- { {AT_HIT, AF_PLAIN, 65}, {AT_TAIL_SLAP, AF_PLAIN, 45},
- AT_NO_ATK, AT_NO_ATK },
- { 22, 0, 0, 380 },
- 25, 10, MST_NO_SPELLS, CE_NOCORPSE, Z_NOZOMBIE, S_ROAR, I_HIGH,
- HT_LAND, 10, DEFAULT_ENERGY, MONUSE_STARTING_EQUIPMENT, SIZE_MEDIUM
+ MONS_AZRAEL, 'E', LIGHTRED, "Azrael",
+ M_UNIQUE | M_SPELLCASTER | M_LEVITATE | M_EVIL | M_GLOWS | M_SPEAKS,
+ MR_RES_POISON | mrd(MR_RES_FIRE, 3) | MR_VUL_COLD,
+ 0, 12, MONS_EFREET, MONS_EFREET, MH_DEMONIC, -3,
+ { {AT_HIT, AF_PLAIN, 12}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 11, 3, 5, 0 },
+ 10, 5, MST_DRAC_SCORCHER, CE_NOCORPSE, Z_NOZOMBIE, S_SILENT, I_HIGH,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_LARGE
},
{
+ MONS_PRINCE_RIBBIT, 'F', LIGHTCYAN, "Prince Ribbit",
+ M_UNIQUE | M_COLD_BLOOD | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS,
+ MR_NO_FLAGS,
+ 800, 12, MONS_BLINK_FROG, MONS_HUMAN, MH_NATURAL, -5,
+ { {AT_HIT, AF_PLAIN, 20}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 6, 3, 5, 0 },
+ 3, 12, MST_PRINCE_RIBBIT, CE_CONTAMINATED, Z_SMALL, S_CROAK, I_NORMAL,
+ HT_AMPHIBIOUS_LAND, 14, DEFAULT_ENERGY, MONUSE_NOTHING, SIZE_LITTLE
+},
+
+{
+ MONS_SONJA, 'K', RED, "Sonja",
+ M_UNIQUE | M_WARM_BLOOD | M_SPEAKS | M_SPELLCASTER | M_ACTUAL_SPELLS
+ | M_SPEAKS,
+ MR_NO_FLAGS,
+ 400, 10, MONS_KOBOLD, MONS_KOBOLD, MH_NATURAL, -1,
+ { {AT_HIT, AF_PLAIN, 9}, {AT_HIT, AF_PLAIN, 5}, {AT_HIT, AF_PLAIN, 5}, AT_NO_ATK },
+ { 6, 2, 3, 0 },
+ 2, 24, MST_SONJA, CE_POISONOUS, Z_SMALL, S_SHOUT, I_NORMAL,
+ HT_LAND, 14, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_SMALL
+},
+
+{
+ // May be re-spawned after his death.
MONS_BORIS, 'L', RED, "Boris",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_SPEAKS | M_EVIL
- | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_EVIL
+ | M_SPEAKS,
MR_RES_POISON | MR_RES_COLD | MR_RES_ELEC,
0, 15, MONS_LICH, MONS_LICH, MH_UNDEAD, -11,
{ {AT_HIT, AF_PLAIN, 25}, {AT_TOUCH, AF_DRAIN_XP, 15}, AT_NO_ATK,
@@ -3998,9 +3986,90 @@ static monsterentry mondata[] = {
},
{
+ MONS_ILSUIW, 'm', GREEN, "Ilsuiw",
+ M_UNIQUE | M_WARM_BLOOD | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS,
+ MR_RES_POISON | MR_RES_COLD,
+ 500, 10, MONS_MERFOLK, MONS_MERFOLK, MH_NATURAL, 90,
+ { {AT_HIT, AF_PLAIN, 10}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 9, 2, 4, 0 },
+ 5, 18, MST_ILSUIW, CE_CONTAMINATED, Z_SMALL, S_SHOUT, I_NORMAL,
+ HT_AMPHIBIOUS_WATER, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
+},
+
+{
+ MONS_BLORK_THE_ORC, 'o', BROWN, "Blork the orc",
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS| M_WARM_BLOOD | M_SPEAKS,
+ MR_NO_FLAGS,
+ 0, 15, MONS_ORC, MONS_ORC, MH_NATURAL, -4,
+ { {AT_HIT, AF_PLAIN, 7}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 3, 0, 0, 32 },
+ 0, 9, MST_ORC_WIZARD_III, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
+ HT_LAND, 8, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
+},
+
+{
+ MONS_URUG, 'o', RED, "Urug",
+ M_UNIQUE | M_FIGHTER | M_WARM_BLOOD | M_SPEAKS,
+ MR_NO_FLAGS,
+ 0, 20, MONS_ORC, MONS_ORC, MH_NATURAL, -5,
+ { {AT_HIT, AF_PLAIN, 12}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 6, 0, 0, 66 },
+ 0, 11, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
+},
+
+{
+ MONS_NERGALLE, 'o', WHITE, "Nergalle",
+ M_UNIQUE | M_SPELLCASTER | M_SEE_INVIS | M_EVIL | M_ACTUAL_SPELLS
+ | M_WARM_BLOOD | M_SPEAKS,
+ MR_RES_FIRE | MR_RES_COLD,
+ 600, 12, MONS_ORC, MONS_ORC, MH_NATURAL, 50,
+ { {AT_HIT, AF_PLAIN, 6}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 10, 2, 3, 0 },
+ 9, 11, MST_ORC_SORCERER, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_HIGH,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
+},
+
+{
+ MONS_SAINT_ROKA, 'o', LIGHTBLUE, "Saint Roka",
+ M_UNIQUE | M_FIGHTER | M_WARM_BLOOD | M_SPELLCASTER | M_PRIEST | M_EVIL
+ | M_SPEAKS,
+ MR_NO_FLAGS,
+ 600, 15, MONS_ORC, MONS_ORC, MH_NATURAL, -3,
+ { {AT_HIT, AF_PLAIN, 32}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 15, 4, 7, 0 },
+ 3, 10, MST_DAEVA, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
+},
+
+{
+ MONS_EROLCHA, 'O', LIGHTBLUE, "Erolcha",
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_WARM_BLOOD
+ | M_EVIL | M_SPEAKS,
+ MR_NO_FLAGS,
+ 0, 20, MONS_OGRE, MONS_OGRE, MH_NATURAL, -7,
+ { {AT_HIT, AF_PLAIN, 20}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 6, 0, 0, 54 },
+ 3, 7, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_LARGE
+},
+
+{
+ // Snorg can go berserk.
+ MONS_SNORG, 'T', GREEN, "Snorg",
+ M_UNIQUE | M_WARM_BLOOD | M_SPEAKS,
+ MR_NO_FLAGS,
+ 0, 25, MONS_TROLL, MONS_TROLL, MH_NATURAL, -6,
+ { {AT_BITE, AF_PLAIN, 20}, {AT_CLAW, AF_PLAIN, 15},
+ {AT_CLAW, AF_PLAIN, 15}, AT_NO_ATK },
+ { 8, 0, 0, 96 },
+ 0, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_OPEN_DOORS, SIZE_LARGE
+},
+
+{
MONS_MURRAY, 'z', LIGHTRED, "Murray",
- M_SPELLCASTER | M_SEE_INVIS | M_EVIL | M_SPEAKS | M_UNIQUE
- | M_NOISY_SPELLS,
+ M_UNIQUE | M_SPELLCASTER | M_SEE_INVIS | M_EVIL | M_NOISY_SPELLS | M_SPEAKS,
MR_RES_ELEC | MR_RES_POISON | MR_RES_HELLFIRE | mrd(MR_RES_COLD, 2),
0, 10, MONS_LICH, MONS_CURSE_SKULL, MH_UNDEAD, MAG_IMMUNE,
{ {AT_BITE, AF_PLAIN, 20}, {AT_BITE, AF_PLAIN, 20}, AT_NO_ATK, AT_NO_ATK },
@@ -4009,10 +4078,23 @@ static monsterentry mondata[] = {
HT_LAND, 10, DEFAULT_ENERGY, MONUSE_NOTHING, SIZE_TINY
},
+{
+ // Roxanne obviously can't use items, but we want to equip her with
+ // a spellbook, so MONUSE_STARTING_EQUIPMENT is necessary.
+ MONS_ROXANNE, '8', LIGHTGREEN, "Roxanne",
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_STATIONARY | M_SPEAKS,
+ mrd(MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD | MR_RES_ELEC, 2),
+ 0, 10, MONS_CLAY_GOLEM, MONS_ROXANNE, MH_NONLIVING, MAG_IMMUNE,
+ { AT_NO_ATK, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 14, 0, 0, 180 },
+ 20, 0, MST_ROXANNE, CE_NOCORPSE, Z_NOZOMBIE, S_SILENT, I_HIGH,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_STARTING_EQUIPMENT, SIZE_LARGE
+},
+
// human uniques ('@')
{
MONS_TERENCE, '@', LIGHTCYAN, "Terence",
- M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,
+ M_UNIQUE | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -3,
{ {AT_HIT, AF_PLAIN, 5}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4023,7 +4105,7 @@ static monsterentry mondata[] = {
{
MONS_JESSICA, '@', LIGHTGREY, "Jessica",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -3,
{ {AT_HIT, AF_PLAIN, 5}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4034,7 +4116,7 @@ static monsterentry mondata[] = {
{
MONS_SIGMUND, '@', YELLOW, "Sigmund",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS| M_WARM_BLOOD | M_SPEAKS ,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -3,
{ {AT_HIT, AF_PLAIN, 5}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4045,7 +4127,7 @@ static monsterentry mondata[] = {
{
MONS_EDMUND, '@', RED, "Edmund",
- M_FIGHTER | M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -4,
{ {AT_HIT, AF_PLAIN, 6}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4056,7 +4138,7 @@ static monsterentry mondata[] = {
{
MONS_PSYCHE, '@', LIGHTMAGENTA, "Psyche",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -4,
{ {AT_HIT, AF_PLAIN, 7}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4067,7 +4149,7 @@ static monsterentry mondata[] = {
{
MONS_DONALD, '@', BLUE, "Donald",
- M_FIGHTER | M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 8}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4078,7 +4160,7 @@ static monsterentry mondata[] = {
{
MONS_MICHAEL, '@', LIGHTGREY, "Michael",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 9}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4089,7 +4171,7 @@ static monsterentry mondata[] = {
{
MONS_JOSEPH, '@', CYAN, "Joseph",
- M_FIGHTER | M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 9}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4100,7 +4182,7 @@ static monsterentry mondata[] = {
{
MONS_ERICA, '@', MAGENTA, "Erica",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 10}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4111,8 +4193,8 @@ static monsterentry mondata[] = {
{
MONS_JOSEPHINE, '@', WHITE, "Josephine",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_EVIL
- | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_EVIL
+ | M_SPEAKS,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 11}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4123,8 +4205,8 @@ static monsterentry mondata[] = {
{
MONS_HAROLD, '@', LIGHTGREEN, "Harold",
- M_FIGHTER | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD
- | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD
+ | M_SPEAKS,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 12}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4135,7 +4217,7 @@ static monsterentry mondata[] = {
{
MONS_NORBERT, '@', BROWN, "Norbert",
- M_FIGHTER | M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 25}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4146,8 +4228,8 @@ static monsterentry mondata[] = {
{
MONS_JOZEF, '@', LIGHTMAGENTA, "Jozef",
- M_FIGHTER | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD
- | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD
+ | M_SPEAKS,
MR_NO_FLAGS,
0, 15, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 18}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4158,7 +4240,7 @@ static monsterentry mondata[] = {
{
MONS_AGNES, '@', LIGHTBLUE, "Agnes",
- M_FIGHTER | M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 15, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 30}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4169,7 +4251,7 @@ static monsterentry mondata[] = {
{
MONS_MAUD, '@', RED, "Maud",
- M_FIGHTER | M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_WARM_BLOOD | M_SPEAKS,
MR_NO_FLAGS,
0, 15, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 24}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4180,8 +4262,8 @@ static monsterentry mondata[] = {
{
MONS_LOUISE, '@', BLUE, "Louise",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_EVIL
- | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_EVIL
+ | M_SPEAKS,
MR_NO_FLAGS,
0, 15, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 17}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4192,8 +4274,8 @@ static monsterentry mondata[] = {
{
MONS_FRANCIS, '@', YELLOW, "Francis",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD
- | M_SEE_INVIS | M_EVIL | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SEE_INVIS
+ | M_EVIL | M_SPEAKS,
MR_NO_FLAGS,
0, 15, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 19}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4204,8 +4286,8 @@ static monsterentry mondata[] = {
{
MONS_FRANCES, '@', YELLOW, "Frances",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD
- | M_SEE_INVIS | M_EVIL | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SEE_INVIS
+ | M_EVIL | M_SPEAKS,
MR_NO_FLAGS,
0, 15, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 29}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4216,8 +4298,8 @@ static monsterentry mondata[] = {
{
MONS_RUPERT, '@', RED, "Rupert",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD
- | M_SEE_INVIS | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SEE_INVIS
+ | M_SPEAKS,
MR_NO_FLAGS,
0, 12, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 21}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4228,8 +4310,8 @@ static monsterentry mondata[] = {
{
MONS_WAYNE, '@', YELLOW, "Wayne",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD
- | M_SEE_INVIS | M_EVIL | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SEE_INVIS
+ | M_EVIL | M_SPEAKS,
MR_NO_FLAGS,
0, 12, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 22}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4240,8 +4322,8 @@ static monsterentry mondata[] = {
{
MONS_DUANE, '@', YELLOW, "Duane",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_SEE_INVIS
- | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SEE_INVIS
+ | M_SPEAKS,
MR_NO_FLAGS,
0, 10, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 22}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4252,8 +4334,8 @@ static monsterentry mondata[] = {
{
MONS_NORRIS, '@', LIGHTRED, "Norris",
- M_FIGHTER | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD
- | M_SEE_INVIS | M_EVIL | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD
+ | M_SEE_INVIS | M_EVIL | M_SPEAKS,
MR_NO_FLAGS,
0, 10, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 36}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4264,8 +4346,8 @@ static monsterentry mondata[] = {
{
MONS_FREDERICK, '@', GREEN, "Frederick",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD
- | M_SEE_INVIS | M_EVIL | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SEE_INVIS
+ | M_EVIL | M_SPEAKS,
MR_NO_FLAGS,
0, 12, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 27}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4276,8 +4358,8 @@ static monsterentry mondata[] = {
{
MONS_MARGERY, '@', LIGHTRED, "Margery",
- M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD
- | M_SEE_INVIS | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SEE_INVIS
+ | M_SPEAKS,
MR_NO_FLAGS,
0, 15, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 30}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4286,10 +4368,21 @@ static monsterentry mondata[] = {
HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
},
+{
+ MONS_EUSTACHIO, '@', GREEN, "Eustachio",
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SPEAKS,
+ MR_NO_FLAGS,
+ 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, 24,
+ { {AT_HIT, AF_PLAIN, 6}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 4, 0, 0, 40 },
+ 0, 13, MST_EUSTACHIO, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
+},
+
// unique major demons ('&')
{
MONS_MNOLEG, '&', LIGHTGREEN, "Mnoleg",
- M_FIGHTER | M_SEE_INVIS | M_SPELLCASTER | M_SPEAKS | M_EVIL | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_SEE_INVIS | M_SPELLCASTER | M_EVIL | M_SPEAKS,
MR_RES_ELEC | MR_RES_POISON | MR_RES_FIRE,
0, 15, MONS_MNOLEG, MONS_MNOLEG, MH_DEMONIC, MAG_IMMUNE,
{ {AT_HIT, AF_PLAIN, 35}, {AT_HIT, AF_PLAIN, 23}, AT_NO_ATK, AT_NO_ATK },
@@ -4300,8 +4393,8 @@ static monsterentry mondata[] = {
{
MONS_LOM_LOBON, '&', LIGHTBLUE, "Lom Lobon",
- M_FIGHTER | M_LEVITATE | M_SEE_INVIS | M_SPELLCASTER | M_SPEAKS
- | M_EVIL | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_LEVITATE | M_SEE_INVIS | M_SPELLCASTER | M_EVIL
+ | M_SPEAKS,
MR_RES_POISON | MR_RES_FIRE | mrd(MR_RES_COLD | MR_RES_ELEC, 3),
0, 15, MONS_LOM_LOBON, MONS_LOM_LOBON, MH_DEMONIC, MAG_IMMUNE,
{ {AT_HIT, AF_PLAIN, 40}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4312,7 +4405,7 @@ static monsterentry mondata[] = {
{
MONS_CEREBOV, '&', RED, "Cerebov",
- M_FIGHTER | M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_SPELLCASTER | M_SEE_INVIS | M_EVIL | M_SPEAKS,
MR_RES_POISON | mrd(MR_RES_HELLFIRE, 3),
0, 15, MONS_CEREBOV, MONS_CEREBOV, MH_DEMONIC, -6,
{ {AT_HIT, AF_PLAIN, 60}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4323,8 +4416,8 @@ static monsterentry mondata[] = {
{
MONS_GLOORX_VLOQ, '&', LIGHTGREY, "Gloorx Vloq",
- M_FIGHTER | M_LEVITATE | M_SEE_INVIS | M_SPELLCASTER | M_SPEAKS | M_EVIL
- | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_LEVITATE | M_SEE_INVIS | M_SPELLCASTER | M_EVIL
+ | M_SPEAKS,
MR_RES_POISON | MR_RES_COLD | MR_RES_ELEC,
0, 15, MONS_GLOORX_VLOQ, MONS_GLOORX_VLOQ, MH_DEMONIC, -14,
{ {AT_HIT, AF_PLAIN, 45}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4335,8 +4428,8 @@ static monsterentry mondata[] = {
{
MONS_GERYON, '&', GREEN, "Geryon",
- M_FIGHTER | M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL | M_FLIES
- | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_SPELLCASTER | M_SEE_INVIS | M_EVIL | M_FLIES
+ | M_SPEAKS,
MR_NO_FLAGS,
0, 15, MONS_GERYON, MONS_GERYON, MH_DEMONIC, -6,
{ {AT_HIT, AF_PLAIN, 35}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4347,7 +4440,7 @@ static monsterentry mondata[] = {
{
MONS_DISPATER, '&', MAGENTA, "Dispater",
- M_FIGHTER | M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_SPELLCASTER | M_SEE_INVIS | M_EVIL | M_SPEAKS,
MR_RES_ELEC | MR_RES_POISON | MR_RES_HELLFIRE | MR_RES_COLD,
0, 15, MONS_DISPATER, MONS_DISPATER, MH_DEMONIC, -10,
{ {AT_HIT, AF_PLAIN, 50}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4358,8 +4451,8 @@ static monsterentry mondata[] = {
{
MONS_ASMODEUS, '&', LIGHTMAGENTA, "Asmodeus",
- M_FIGHTER | M_SPELLCASTER | M_FLIES | M_SEE_INVIS | M_SPEAKS | M_EVIL
- | M_UNIQUE,
+ M_UNIQUE | M_FIGHTER | M_SPELLCASTER | M_FLIES | M_SEE_INVIS | M_EVIL
+ | M_SPEAKS,
MR_RES_ELEC | MR_RES_POISON | MR_RES_HELLFIRE,
0, 25, MONS_ASMODEUS, MONS_ASMODEUS, MH_DEMONIC, -12,
{ {AT_HIT, AF_PLAIN, 50}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
@@ -4370,7 +4463,7 @@ static monsterentry mondata[] = {
{
MONS_ERESHKIGAL, '&', WHITE, "Ereshkigal",
- M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL | M_UNIQUE,
+ M_UNIQUE | M_SPELLCASTER | M_SEE_INVIS | M_EVIL | M_SPEAKS,
MR_RES_ELEC | MR_RES_POISON | MR_RES_COLD,
0, 15, MONS_ERESHKIGAL, MONS_ERESHKIGAL, MH_DEMONIC, -10,
{ {AT_HIT, AF_PLAIN, 40}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },