diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-04 20:50:21 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-04 20:50:21 +0000 |
commit | e828bafa67e06c97dad7b9fcf2851e6ab5b00f28 (patch) | |
tree | 77fbcd20c3485501851302796dfa70640a5e2c90 /crawl-ref/source/mon-data.h | |
parent | 07828b78525d85498811687311f0a9cff5901e03 (diff) | |
download | crawl-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.h | 317 |
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 }, |