You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
446 lines
132 KiB
446 lines
132 KiB
/** |
|
* @file monstdat.cpp |
|
* |
|
* Implementation of all monster data. |
|
*/ |
|
#include "monstdat.h" |
|
#include "items.h" |
|
|
|
#include "monster.h" |
|
#include "textdat.h" |
|
#include "utils/language.h" |
|
|
|
namespace devilution { |
|
|
|
namespace { |
|
|
|
// Returns a `treasure` value for the given item. |
|
constexpr uint16_t Uniq(_unique_items item) |
|
{ |
|
return static_cast<uint16_t>(T_UNIQ) + item; |
|
} |
|
|
|
} // namespace |
|
|
|
/** Contains the data related to each monster ID. */ |
|
const MonsterData MonstersData[] = { |
|
// clang-format off |
|
// _monster_id name, assetsSuffix, soundSuffix, trnFile, availability, width, image, hasSpecial, hasSpecialSound, frames[6], rate[6], minDunLvl, maxDunLvl, level, hitPointsMinimum, hitPointsMaximum, ai, abilityFlags, intelligence, toHit, animFrameNum, minDamage, maxDamage, toHitSpecial, animFrameNumSpecial, minDamageSpecial, maxDamageSpecial, armorClass, monsterClass, resistance, resistanceHell, selectionType, treasure, exp |
|
|
|
// TRANSLATORS: Monster Block start |
|
/* MT_NZOMBIE */ { P_("monster", "Zombie"), "zombie\\zombie", nullptr, nullptr, MonsterAvailability::Always, 128, 799, false, false, { 11, 24, 12, 6, 16, 0 }, { 4, 1, 1, 1, 1, 1 }, 1, 2, 1, 4, 7, MonsterAIID::Zombie, 0, 0, 10, 8, 2, 5, 0, 0, 0, 0, 5, MonsterClass::Undead, IMMUNE_MAGIC, IMMUNE_MAGIC, 3, 0, 54 }, |
|
/* MT_BZOMBIE */ { P_("monster", "Ghoul"), "zombie\\zombie", nullptr, "zombie\\bluered", MonsterAvailability::Always, 128, 799, false, false, { 11, 24, 12, 6, 16, 0 }, { 4, 1, 1, 1, 1, 1 }, 2, 3, 2, 7, 11, MonsterAIID::Zombie, 0, 1, 10, 8, 3, 10, 0, 0, 0, 0, 10, MonsterClass::Undead, IMMUNE_MAGIC, IMMUNE_MAGIC, 3, 0, 58 }, |
|
/* MT_GZOMBIE */ { P_("monster", "Rotting Carcass"), "zombie\\zombie", nullptr, "zombie\\grey", MonsterAvailability::Always, 128, 799, false, false, { 11, 24, 12, 6, 16, 0 }, { 4, 1, 1, 1, 1, 1 }, 2, 4, 4, 15, 25, MonsterAIID::Zombie, 0, 2, 25, 8, 5, 15, 0, 0, 0, 0, 15, MonsterClass::Undead, IMMUNE_MAGIC, IMMUNE_MAGIC | RESIST_FIRE, 3, 0, 136 }, |
|
/* MT_YZOMBIE */ { P_("monster", "Black Death"), "zombie\\zombie", nullptr, "zombie\\yellow", MonsterAvailability::Always, 128, 799, false, false, { 11, 24, 12, 6, 16, 0 }, { 4, 1, 1, 1, 1, 1 }, 3, 5, 6, 25, 40, MonsterAIID::Zombie, 0, 3, 30, 8, 6, 22, 0, 0, 0, 0, 20, MonsterClass::Undead, IMMUNE_MAGIC, IMMUNE_MAGIC | RESIST_LIGHTNING, 3, 0, 240 }, |
|
/* MT_RFALLSP */ { P_("monster", "Fallen One"), "falspear\\phall", nullptr, "falspear\\fallent", MonsterAvailability::Always, 128, 543, true, true, { 11, 11, 13, 11, 18, 13 }, { 3, 1, 1, 1, 1, 1 }, 1, 2, 1, 1, 4, MonsterAIID::Fallen, 0, 0, 15, 7, 1, 3, 0, 5, 0, 0, 0, MonsterClass::Animal, 0, 0, 3, 0, 46 }, |
|
/* MT_DFALLSP */ { P_("monster", "Carver"), "falspear\\phall", nullptr, "falspear\\dark", MonsterAvailability::Always, 128, 543, true, true, { 11, 11, 13, 11, 18, 13 }, { 3, 1, 1, 1, 1, 1 }, 2, 3, 3, 4, 8, MonsterAIID::Fallen, 0, 2, 20, 7, 2, 5, 0, 5, 0, 0, 5, MonsterClass::Animal, 0, 0, 3, 0, 80 }, |
|
/* MT_YFALLSP */ { P_("monster", "Devil Kin"), "falspear\\phall", nullptr, nullptr, MonsterAvailability::Always, 128, 543, true, true, { 11, 11, 13, 11, 18, 13 }, { 3, 1, 1, 1, 1, 1 }, 2, 4, 5, 12, 24, MonsterAIID::Fallen, 0, 2, 25, 7, 3, 7, 0, 5, 0, 0, 10, MonsterClass::Animal, 0, RESIST_FIRE, 3, 0, 155 }, |
|
/* MT_BFALLSP */ { P_("monster", "Dark One"), "falspear\\phall", nullptr, "falspear\\blue", MonsterAvailability::Always, 128, 543, true, true, { 11, 11, 13, 11, 18, 13 }, { 3, 1, 1, 1, 1, 1 }, 3, 5, 7, 20, 36, MonsterAIID::Fallen, 0, 3, 30, 7, 4, 8, 0, 5, 0, 0, 15, MonsterClass::Animal, 0, RESIST_LIGHTNING, 3, 0, 255 }, |
|
/* MT_WSKELAX */ { P_("monster", "Skeleton"), "skelaxe\\sklax", nullptr, "skelaxe\\white", MonsterAvailability::Always, 128, 553, true, false, { 12, 8, 13, 6, 17, 16 }, { 5, 1, 1, 1, 1, 1 }, 1, 2, 1, 2, 4, MonsterAIID::SkeletonMelee, 0, 0, 20, 8, 1, 4, 0, 0, 0, 0, 0, MonsterClass::Undead, IMMUNE_MAGIC, IMMUNE_MAGIC, 3, 0, 64 }, |
|
/* MT_TSKELAX */ { P_("monster", "Corpse Axe"), "skelaxe\\sklax", nullptr, "skelaxe\\skelt", MonsterAvailability::Always, 128, 553, true, false, { 12, 8, 13, 6, 17, 16 }, { 4, 1, 1, 1, 1, 1 }, 2, 3, 2, 4, 7, MonsterAIID::SkeletonMelee, 0, 1, 25, 8, 3, 5, 0, 0, 0, 0, 0, MonsterClass::Undead, IMMUNE_MAGIC, IMMUNE_MAGIC, 3, 0, 68 }, |
|
/* MT_RSKELAX */ { P_("monster", "Burning Dead"), "skelaxe\\sklax", nullptr, nullptr, MonsterAvailability::Always, 128, 553, true, false, { 12, 8, 13, 6, 17, 16 }, { 2, 1, 1, 1, 1, 1 }, 2, 4, 4, 8, 12, MonsterAIID::SkeletonMelee, 0, 2, 30, 8, 3, 7, 0, 0, 0, 0, 5, MonsterClass::Undead, IMMUNE_MAGIC | RESIST_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 3, 0, 154 }, |
|
/* MT_XSKELAX */ { P_("monster", "Horror"), "skelaxe\\sklax", nullptr, "skelaxe\\black", MonsterAvailability::Always, 128, 553, true, false, { 12, 8, 13, 6, 17, 16 }, { 3, 1, 1, 1, 1, 1 }, 3, 5, 6, 12, 20, MonsterAIID::SkeletonMelee, 0, 3, 35, 8, 4, 9, 0, 0, 0, 0, 15, MonsterClass::Undead, IMMUNE_MAGIC | RESIST_LIGHTNING, IMMUNE_MAGIC | RESIST_LIGHTNING, 3, 0, 264 }, |
|
/* MT_RFALLSD */ { P_("monster", "Fallen One"), "falsword\\fall", nullptr, "falsword\\fallent", MonsterAvailability::Always, 128, 623, true, true, { 12, 12, 13, 11, 14, 15 }, { 3, 1, 1, 1, 1, 1 }, 1, 2, 1, 2, 5, MonsterAIID::Fallen, 0, 0, 15, 8, 1, 4, 0, 5, 0, 0, 10, MonsterClass::Animal, 0, 0, 3, 0, 52 }, |
|
/* MT_DFALLSD */ { P_("monster", "Carver"), "falsword\\fall", nullptr, "falsword\\dark", MonsterAvailability::Always, 128, 623, true, true, { 12, 12, 13, 11, 14, 15 }, { 3, 1, 1, 1, 1, 1 }, 2, 3, 3, 5, 9, MonsterAIID::Fallen, 0, 1, 20, 8, 2, 7, 0, 5, 0, 0, 15, MonsterClass::Animal, 0, 0, 3, 0, 90 }, |
|
/* MT_YFALLSD */ { P_("monster", "Devil Kin"), "falsword\\fall", nullptr, nullptr, MonsterAvailability::Always, 128, 623, true, true, { 12, 12, 13, 11, 14, 15 }, { 3, 1, 1, 1, 1, 1 }, 2, 4, 5, 16, 24, MonsterAIID::Fallen, 0, 2, 25, 8, 4, 10, 0, 5, 0, 0, 20, MonsterClass::Animal, 0, RESIST_FIRE, 3, 0, 180 }, |
|
/* MT_BFALLSD */ { P_("monster", "Dark One"), "falsword\\fall", nullptr, "falsword\\blue", MonsterAvailability::Always, 128, 623, true, true, { 12, 12, 13, 11, 14, 15 }, { 3, 1, 1, 1, 1, 1 }, 3, 5, 7, 24, 36, MonsterAIID::Fallen, 0, 3, 30, 8, 4, 12, 0, 5, 0, 0, 25, MonsterClass::Animal, 0, RESIST_LIGHTNING, 3, 0, 280 }, |
|
/* MT_NSCAV */ { P_("monster", "Scavenger"), "scav\\scav", nullptr, nullptr, MonsterAvailability::Always, 128, 410, true, false, { 12, 8, 12, 6, 20, 11 }, { 2, 1, 1, 1, 1, 1 }, 1, 3, 2, 3, 6, MonsterAIID::Scavenger, 0, 0, 20, 7, 1, 5, 0, 0, 0, 0, 10, MonsterClass::Animal, 0, RESIST_FIRE, 3, 0, 80 }, |
|
/* MT_BSCAV */ { P_("monster", "Plague Eater"), "scav\\scav", nullptr, "scav\\scavbr", MonsterAvailability::Always, 128, 410, true, false, { 12, 8, 12, 6, 20, 11 }, { 2, 1, 1, 1, 1, 1 }, 2, 4, 4, 12, 24, MonsterAIID::Scavenger, 0, 1, 30, 7, 1, 8, 0, 0, 0, 0, 20, MonsterClass::Animal, 0, RESIST_LIGHTNING, 3, 0, 188 }, |
|
/* MT_WSCAV */ { P_("monster", "Shadow Beast"), "scav\\scav", nullptr, "scav\\scavbe", MonsterAvailability::Always, 128, 410, true, false, { 12, 8, 12, 6, 20, 11 }, { 2, 1, 1, 1, 1, 1 }, 3, 5, 6, 24, 36, MonsterAIID::Scavenger, 0, 2, 35, 7, 3, 12, 0, 0, 0, 0, 25, MonsterClass::Animal, 0, RESIST_FIRE, 3, 0, 375 }, |
|
/* MT_YSCAV */ { P_("monster", "Bone Gasher"), "scav\\scav", nullptr, "scav\\scavw", MonsterAvailability::Always, 128, 410, true, false, { 12, 8, 12, 6, 20, 11 }, { 2, 1, 1, 1, 1, 1 }, 4, 6, 8, 28, 40, MonsterAIID::Scavenger, 0, 3, 35, 7, 5, 15, 0, 0, 0, 0, 30, MonsterClass::Animal, RESIST_MAGIC, RESIST_LIGHTNING, 3, 0, 552 }, |
|
/* MT_WSKELBW */ { P_("monster", "Skeleton"), "skelbow\\sklbw", nullptr, "skelbow\\white", MonsterAvailability::Always, 128, 567, true, false, { 9, 8, 16, 5, 16, 16 }, { 4, 1, 1, 1, 1, 1 }, 2, 3, 3, 2, 4, MonsterAIID::SkeletonRanged, 0, 0, 15, 12, 1, 2, 0, 0, 0, 0, 0, MonsterClass::Undead, IMMUNE_MAGIC, IMMUNE_MAGIC, 3, 0, 110 }, |
|
/* MT_TSKELBW */ { P_("monster", "Corpse Bow"), "skelbow\\sklbw", nullptr, "skelbow\\skelt", MonsterAvailability::Always, 128, 567, true, false, { 9, 8, 16, 5, 16, 16 }, { 4, 1, 1, 1, 1, 1 }, 2, 4, 5, 8, 16, MonsterAIID::SkeletonRanged, 0, 1, 25, 12, 1, 4, 0, 0, 0, 0, 0, MonsterClass::Undead, IMMUNE_MAGIC, IMMUNE_MAGIC, 3, 0, 210 }, |
|
/* MT_RSKELBW */ { P_("monster", "Burning Dead"), "skelbow\\sklbw", nullptr, nullptr, MonsterAvailability::Always, 128, 567, true, false, { 9, 8, 16, 5, 16, 16 }, { 2, 1, 1, 1, 1, 1 }, 3, 5, 7, 10, 24, MonsterAIID::SkeletonRanged, 0, 2, 30, 12, 1, 6, 0, 0, 0, 0, 5, MonsterClass::Undead, IMMUNE_MAGIC | RESIST_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 3, 0, 364 }, |
|
/* MT_XSKELBW */ { P_("monster", "Horror"), "skelbow\\sklbw", nullptr, "skelbow\\black", MonsterAvailability::Always, 128, 567, true, false, { 9, 8, 16, 5, 16, 16 }, { 3, 1, 1, 1, 1, 1 }, 4, 6, 9, 15, 45, MonsterAIID::SkeletonRanged, 0, 3, 35, 12, 2, 9, 0, 0, 0, 0, 15, MonsterClass::Undead, IMMUNE_MAGIC | RESIST_LIGHTNING, IMMUNE_MAGIC | RESIST_LIGHTNING, 3, 0, 594 }, |
|
/* MT_WSKELSD */ { P_("monster", "Skeleton Captain"), "skelsd\\sklsr", nullptr, "skelsd\\white", MonsterAvailability::Always, 128, 575, true, true, { 13, 8, 12, 7, 15, 16 }, { 4, 1, 1, 1, 1, 1 }, 1, 3, 2, 3, 6, MonsterAIID::SkeletonMelee, 0, 0, 20, 8, 2, 7, 0, 0, 0, 0, 10, MonsterClass::Undead, IMMUNE_MAGIC, IMMUNE_MAGIC, 3, 0, 90 }, |
|
/* MT_TSKELSD */ { P_("monster", "Corpse Captain"), "skelsd\\sklsr", nullptr, "skelsd\\skelt", MonsterAvailability::Always, 128, 575, true, false, { 13, 8, 12, 7, 15, 16 }, { 4, 1, 1, 1, 1, 1 }, 2, 4, 4, 12, 20, MonsterAIID::SkeletonMelee, 0, 1, 30, 8, 3, 9, 0, 0, 0, 0, 5, MonsterClass::Undead, IMMUNE_MAGIC, IMMUNE_MAGIC, 3, 0, 200 }, |
|
/* MT_RSKELSD */ { P_("monster", "Burning Dead Captain"), "skelsd\\sklsr", nullptr, nullptr, MonsterAvailability::Always, 128, 575, true, false, { 13, 8, 12, 7, 15, 16 }, { 4, 1, 1, 1, 1, 1 }, 3, 5, 6, 16, 30, MonsterAIID::SkeletonMelee, 0, 2, 35, 8, 4, 10, 0, 0, 0, 0, 15, MonsterClass::Undead, IMMUNE_MAGIC | RESIST_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 3, 0, 393 }, |
|
/* MT_XSKELSD */ { P_("monster", "Horror Captain"), "skelsd\\sklsr", nullptr, "skelsd\\black", MonsterAvailability::Always, 128, 575, true, false, { 13, 8, 12, 7, 15, 16 }, { 4, 1, 1, 1, 1, 1 }, 4, 6, 8, 35, 50, MonsterAIID::SkeletonMelee, MFLAG_SEARCH, 3, 40, 8, 5, 14, 0, 0, 0, 0, 30, MonsterClass::Undead, IMMUNE_MAGIC | RESIST_LIGHTNING, IMMUNE_MAGIC | RESIST_LIGHTNING, 3, 0, 604 }, |
|
/* MT_INVILORD*/ { P_("monster", "Invisible Lord"), "tsneak\\tsneak", nullptr, nullptr, MonsterAvailability::Never, 128, 800, false, false, { 13, 13, 15, 11, 16, 0 }, { 2, 1, 1, 1, 1, 1 }, 19, 20, 14, 278, 278, MonsterAIID::SkeletonMelee, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 65, 8, 16, 30, 0, 0, 0, 0, 60, MonsterClass::Demon, RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, 3, 0, 2000 }, |
|
/* MT_SNEAK */ { P_("monster", "Hidden"), "sneak\\sneak", nullptr, nullptr, MonsterAvailability::Retail, 128, 992, true, false, { 16, 8, 12, 8, 24, 15 }, { 2, 1, 1, 1, 1, 1 }, 2, 5, 5, 8, 24, MonsterAIID::Sneak, MFLAG_HIDDEN, 0, 35, 8, 3, 6, 0, 0, 0, 0, 25, MonsterClass::Demon, 0, 0, 3, 0, 278 }, |
|
/* MT_STALKER */ { P_("monster", "Stalker"), "sneak\\sneak", nullptr, "sneak\\sneakv2", MonsterAvailability::Retail, 128, 992, true, false, { 16, 8, 12, 8, 24, 15 }, { 2, 1, 1, 1, 1, 1 }, 5, 7, 9, 30, 45, MonsterAIID::Sneak, MFLAG_HIDDEN | MFLAG_SEARCH, 1, 40, 8, 8, 16, 0, 0, 0, 0, 30, MonsterClass::Demon, 0, 0, 3, 0, 630 }, |
|
/* MT_UNSEEN */ { P_("monster", "Unseen"), "sneak\\sneak", nullptr, "sneak\\sneakv3", MonsterAvailability::Retail, 128, 992, true, false, { 16, 8, 12, 8, 24, 15 }, { 2, 1, 1, 1, 1, 1 }, 6, 8, 11, 35, 50, MonsterAIID::Sneak, MFLAG_HIDDEN | MFLAG_SEARCH, 2, 45, 8, 12, 20, 0, 0, 0, 0, 30, MonsterClass::Demon, RESIST_MAGIC, IMMUNE_MAGIC, 3, 0, 935 }, |
|
/* MT_ILLWEAV */ { P_("monster", "Illusion Weaver"), "sneak\\sneak", nullptr, "sneak\\sneakv1", MonsterAvailability::Retail, 128, 992, true, false, { 16, 8, 12, 8, 24, 15 }, { 2, 1, 1, 1, 1, 1 }, 8, 10, 13, 40, 60, MonsterAIID::Sneak, MFLAG_HIDDEN | MFLAG_SEARCH, 3, 60, 8, 16, 24, 0, 0, 0, 0, 30, MonsterClass::Demon, RESIST_MAGIC | RESIST_FIRE, IMMUNE_MAGIC | RESIST_FIRE, 3, 0, 1500 }, |
|
/* MT_LRDSAYTR*/ { P_("monster", "Satyr Lord"), "goatlord\\goatl", "newsfx\\satyr", nullptr, MonsterAvailability::Retail, 160, 800, false, false, { 13, 13, 14, 9, 16, 0 }, { 2, 1, 1, 1, 1, 1 }, 21, 22, 28, 160, 200, MonsterAIID::SkeletonMelee, MFLAG_SEARCH, 3, 90, 8, 20, 30, 0, 0, 0, 0, 70, MonsterClass::Animal, RESIST_FIRE | RESIST_LIGHTNING, RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 3, 0, 2800 }, |
|
/* MT_NGOATMC */ { P_("monster", "Flesh Clan"), "goatmace\\goat", nullptr, nullptr, MonsterAvailability::Retail, 128, 1030, true, false, { 12, 8, 12, 6, 20, 12 }, { 2, 1, 1, 1, 1, 1 }, 4, 6, 8, 30, 45, MonsterAIID::GoatMelee, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 0, 50, 8, 4, 10, 0, 0, 0, 0, 40, MonsterClass::Demon, 0, 0, 3, 0, 460 }, |
|
/* MT_BGOATMC */ { P_("monster", "Stone Clan"), "goatmace\\goat", nullptr, "goatmace\\beige", MonsterAvailability::Retail, 128, 1030, true, false, { 12, 8, 12, 6, 20, 12 }, { 2, 1, 1, 1, 1, 1 }, 5, 7, 10, 40, 55, MonsterAIID::GoatMelee, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 1, 60, 8, 6, 12, 0, 0, 0, 0, 40, MonsterClass::Demon, RESIST_MAGIC, IMMUNE_MAGIC, 3, 0, 685 }, |
|
/* MT_RGOATMC */ { P_("monster", "Fire Clan"), "goatmace\\goat", nullptr, "goatmace\\red", MonsterAvailability::Retail, 128, 1030, true, false, { 12, 8, 12, 6, 20, 12 }, { 2, 1, 1, 1, 1, 1 }, 6, 8, 12, 50, 65, MonsterAIID::GoatMelee, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 2, 70, 8, 8, 16, 0, 0, 0, 0, 45, MonsterClass::Demon, RESIST_FIRE, IMMUNE_FIRE, 3, 0, 906 }, |
|
/* MT_GGOATMC */ { P_("monster", "Night Clan"), "goatmace\\goat", nullptr, "goatmace\\gray", MonsterAvailability::Retail, 128, 1030, true, false, { 12, 8, 12, 6, 20, 12 }, { 2, 1, 1, 1, 1, 1 }, 7, 9, 14, 55, 70, MonsterAIID::GoatMelee, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 80, 8, 10, 20, 15, 0, 30, 30, 50, MonsterClass::Demon, RESIST_MAGIC, IMMUNE_MAGIC, 3, 0, 1190 }, |
|
/* MT_FIEND */ { P_("monster", "Fiend"), "bat\\bat", nullptr, "bat\\red", MonsterAvailability::Always, 96, 364, false, false, { 9, 13, 10, 9, 13, 0 }, { 1, 1, 1, 1, 1, 1 }, 2, 3, 3, 3, 6, MonsterAIID::Bat, 0, 0, 35, 5, 1, 6, 0, 0, 0, 0, 0, MonsterClass::Animal, 0, 0, 6, T_NODROP, 102 }, |
|
/* MT_BLINK */ { P_("monster", "Blink"), "bat\\bat", nullptr, nullptr, MonsterAvailability::Always, 96, 364, false, false, { 9, 13, 10, 9, 13, 0 }, { 1, 1, 1, 1, 1, 1 }, 3, 5, 7, 12, 28, MonsterAIID::Bat, 0, 1, 45, 5, 1, 8, 0, 0, 0, 0, 15, MonsterClass::Animal, 0, 0, 6, T_NODROP, 340 }, |
|
/* MT_GLOOM */ { P_("monster", "Gloom"), "bat\\bat", nullptr, "bat\\grey", MonsterAvailability::Always, 96, 364, false, false, { 9, 13, 10, 9, 13, 0 }, { 1, 1, 1, 1, 1, 1 }, 4, 6, 9, 28, 36, MonsterAIID::Bat, MFLAG_SEARCH, 2, 70, 5, 4, 12, 0, 0, 0, 0, 35, MonsterClass::Animal, RESIST_MAGIC, RESIST_MAGIC, 6, T_NODROP, 509 }, |
|
/* MT_FAMILIAR*/ { P_("monster", "Familiar"), "bat\\bat", nullptr, "bat\\orange", MonsterAvailability::Always, 96, 364, false, false, { 9, 13, 10, 9, 13, 0 }, { 1, 1, 1, 1, 1, 1 }, 6, 8, 13, 20, 35, MonsterAIID::Bat, MFLAG_SEARCH, 3, 50, 5, 4, 16, 0, 0, 0, 0, 35, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_LIGHTNING, RESIST_MAGIC | IMMUNE_LIGHTNING, 6, T_NODROP, 448 }, |
|
/* MT_NGOATBW */ { P_("monster", "Flesh Clan"), "goatbow\\goatb", nullptr, nullptr, MonsterAvailability::Retail, 128, 1040, false, false, { 12, 8, 16, 6, 20, 0 }, { 3, 1, 1, 1, 1, 1 }, 4, 6, 8, 20, 35, MonsterAIID::GoatRanged, MFLAG_CAN_OPEN_DOOR, 0, 35, 13, 1, 7, 0, 0, 0, 0, 35, MonsterClass::Demon, 0, 0, 3, 0, 448 }, |
|
/* MT_BGOATBW */ { P_("monster", "Stone Clan"), "goatbow\\goatb", nullptr, "goatbow\\beige", MonsterAvailability::Retail, 128, 1040, false, false, { 12, 8, 16, 6, 20, 0 }, { 3, 1, 1, 1, 1, 1 }, 5, 7, 10, 30, 40, MonsterAIID::GoatRanged, MFLAG_CAN_OPEN_DOOR, 1, 40, 13, 2, 9, 0, 0, 0, 0, 35, MonsterClass::Demon, RESIST_MAGIC, IMMUNE_MAGIC, 3, 0, 645 }, |
|
/* MT_RGOATBW */ { P_("monster", "Fire Clan"), "goatbow\\goatb", nullptr, "goatbow\\red", MonsterAvailability::Retail, 128, 1040, false, false, { 12, 8, 16, 6, 20, 0 }, { 3, 1, 1, 1, 1, 1 }, 6, 8, 12, 40, 50, MonsterAIID::GoatRanged, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 2, 45, 13, 3, 11, 0, 0, 0, 0, 35, MonsterClass::Demon, RESIST_FIRE, IMMUNE_FIRE, 3, 0, 822 }, |
|
/* MT_GGOATBW */ { P_("monster", "Night Clan"), "goatbow\\goatb", nullptr, "goatbow\\gray", MonsterAvailability::Retail, 128, 1040, false, false, { 12, 8, 16, 6, 20, 0 }, { 3, 1, 1, 1, 1, 1 }, 7, 9, 14, 50, 65, MonsterAIID::GoatRanged, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 50, 13, 4, 13, 15, 0, 0, 0, 40, MonsterClass::Demon, RESIST_MAGIC, IMMUNE_MAGIC, 3, 0, 1092 }, |
|
/* MT_NACID */ { P_("monster", "Acid Beast"), "acid\\acid", nullptr, nullptr, MonsterAvailability::Retail, 128, 716, true, true, { 13, 8, 12, 8, 16, 12 }, { 1, 1, 1, 1, 1, 1 }, 6, 8, 11, 40, 66, MonsterAIID::Acid, 0, 0, 40, 8, 4, 12, 25, 8, 0, 0, 30, MonsterClass::Animal, IMMUNE_ACID, IMMUNE_MAGIC | IMMUNE_ACID, 3, 0, 846 }, |
|
/* MT_RACID */ { P_("monster", "Poison Spitter"), "acid\\acid", nullptr, "acid\\acidblk", MonsterAvailability::Retail, 128, 716, true, true, { 13, 8, 12, 8, 16, 12 }, { 1, 1, 1, 1, 1, 1 }, 8, 10, 15, 60, 85, MonsterAIID::Acid, 0, 1, 45, 8, 4, 16, 25, 8, 0, 0, 30, MonsterClass::Animal, IMMUNE_ACID, IMMUNE_MAGIC | IMMUNE_ACID, 3, 0, 1248 }, |
|
/* MT_BACID */ { P_("monster", "Pit Beast"), "acid\\acid", nullptr, "acid\\acidb", MonsterAvailability::Retail, 128, 716, true, true, { 13, 8, 12, 8, 16, 12 }, { 1, 1, 1, 1, 1, 1 }, 10, 12, 21, 80, 110, MonsterAIID::Acid, 0, 2, 55, 8, 8, 18, 35, 8, 0, 0, 35, MonsterClass::Animal, RESIST_MAGIC | IMMUNE_ACID, IMMUNE_MAGIC | RESIST_LIGHTNING | IMMUNE_ACID, 3, 0, 2060 }, |
|
/* MT_XACID */ { P_("monster", "Lava Maw"), "acid\\acid", nullptr, "acid\\acidr", MonsterAvailability::Retail, 128, 716, true, true, { 13, 8, 12, 8, 16, 12 }, { 1, 1, 1, 1, 1, 1 }, 12, 14, 25, 100, 150, MonsterAIID::Acid, 0, 3, 65, 8, 10, 20, 40, 8, 0, 0, 35, MonsterClass::Animal, RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_ACID, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_ACID, 3, 0, 2940 }, |
|
/* MT_SKING */ { P_("monster", "Skeleton King"), "sking\\sking", nullptr, "skelaxe\\white", MonsterAvailability::Never, 160, 1010, true, true, { 8, 6, 16, 6, 16, 6 }, { 2, 1, 1, 1, 1, 2 }, 4, 4, 9, 140, 140, MonsterAIID::SkeletonKing, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 60, 8, 6, 16, 0, 0, 0, 0, 70, MonsterClass::Undead, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 7, Uniq(UITEM_SKCROWN), 570 }, |
|
/* MT_CLEAVER */ { P_("monster", "The Butcher"), "fatc\\fatc", nullptr, nullptr, MonsterAvailability::Never, 128, 980, false, false, { 10, 8, 12, 6, 16, 0 }, { 1, 1, 1, 1, 1, 1 }, 1, 1, 1, 320, 320, MonsterAIID::Butcher, 0, 3, 50, 8, 6, 12, 0, 0, 0, 0, 50, MonsterClass::Demon, RESIST_FIRE | RESIST_LIGHTNING, RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 3, Uniq(UITEM_CLEAVER), 710 }, |
|
/* MT_FAT */ { P_("monster", "Overlord"), "fat\\fat", nullptr, nullptr, MonsterAvailability::Retail, 128, 1130, true, false, { 8, 10, 15, 6, 16, 10 }, { 4, 1, 1, 1, 1, 1 }, 5, 7, 10, 60, 80, MonsterAIID::Fat, 0, 0, 55, 8, 6, 12, 0, 0, 0, 0, 55, MonsterClass::Demon, 0, RESIST_FIRE, 3, 0, 635 }, |
|
/* MT_MUDMAN, */ { P_("monster", "Mud Man"), "fat\\fat", nullptr, "fat\\blue", MonsterAvailability::Retail, 128, 1130, true, false, { 8, 10, 15, 6, 16, 10 }, { 4, 1, 1, 1, 1, 1 }, 7, 9, 14, 100, 125, MonsterAIID::Fat, MFLAG_SEARCH, 1, 60, 8, 8, 16, 0, 0, 0, 0, 60, MonsterClass::Demon, 0, IMMUNE_LIGHTNING, 3, 0, 1165 }, |
|
/* MT_TOAD */ { P_("monster", "Toad Demon"), "fat\\fat", nullptr, "fat\\fatb", MonsterAvailability::Retail, 128, 1130, true, false, { 8, 10, 15, 6, 16, 10 }, { 4, 1, 1, 1, 1, 1 }, 8, 10, 16, 135, 160, MonsterAIID::Fat, MFLAG_SEARCH, 2, 70, 8, 8, 16, 40, 0, 8, 20, 65, MonsterClass::Demon, IMMUNE_MAGIC, IMMUNE_MAGIC | RESIST_LIGHTNING, 3, 0, 1380 }, |
|
/* MT_FLAYED */ { P_("monster", "Flayed One"), "fat\\fat", nullptr, "fat\\fatf", MonsterAvailability::Retail, 128, 1130, true, false, { 8, 10, 15, 6, 16, 10 }, { 4, 1, 1, 1, 1, 1 }, 10, 12, 20, 160, 200, MonsterAIID::Fat, MFLAG_SEARCH, 3, 85, 8, 10, 20, 0, 0, 0, 0, 70, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 3, 0, 2058 }, |
|
/* MT_WYRM */ { P_("monster", "Wyrm"), "worm\\worm", nullptr, nullptr, MonsterAvailability::Never, 160, 2420, false, false, { 13, 13, 13, 11, 19, 0 }, { 1, 1, 1, 1, 1, 1 }, 5, 7, 11, 60, 90, MonsterAIID::SkeletonMelee, 0, 0, 40, 8, 4, 10, 0, 0, 0, 0, 25, MonsterClass::Animal, RESIST_MAGIC, RESIST_MAGIC, 3, 0, 660 }, |
|
/* MT_CAVSLUG */ { P_("monster", "Cave Slug"), "worm\\worm", nullptr, nullptr, MonsterAvailability::Never, 160, 2420, false, false, { 13, 13, 13, 11, 19, 0 }, { 1, 1, 1, 1, 1, 1 }, 6, 8, 13, 75, 110, MonsterAIID::SkeletonMelee, 0, 1, 50, 8, 6, 13, 0, 0, 0, 0, 30, MonsterClass::Animal, RESIST_MAGIC, RESIST_MAGIC, 3, 0, 994 }, |
|
/* MT_DVLWYRM */ { P_("monster", "Devil Wyrm"), "worm\\worm", nullptr, nullptr, MonsterAvailability::Never, 160, 2420, false, false, { 13, 13, 13, 11, 19, 0 }, { 1, 1, 1, 1, 1, 1 }, 7, 9, 15, 100, 140, MonsterAIID::SkeletonMelee, 0, 2, 55, 8, 8, 16, 0, 0, 0, 0, 30, MonsterClass::Animal, RESIST_MAGIC | RESIST_FIRE, RESIST_MAGIC | RESIST_FIRE, 3, 0, 1320 }, |
|
/* MT_DEVOUR */ { P_("monster", "Devourer"), "worm\\worm", nullptr, nullptr, MonsterAvailability::Never, 160, 2420, false, false, { 13, 13, 13, 11, 19, 0 }, { 1, 1, 1, 1, 1, 1 }, 8, 10, 17, 125, 200, MonsterAIID::SkeletonMelee, 0, 3, 60, 8, 10, 20, 0, 0, 0, 0, 35, MonsterClass::Animal, RESIST_MAGIC | RESIST_FIRE, RESIST_MAGIC | RESIST_FIRE, 3, 0, 1827 }, |
|
/* MT_NMAGMA */ { P_("monster", "Magma Demon"), "magma\\magma", nullptr, nullptr, MonsterAvailability::Retail, 128, 1680, true, true, { 8, 10, 14, 7, 18, 18 }, { 2, 1, 1, 1, 1, 1 }, 8, 9, 13, 50, 70, MonsterAIID::Magma, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 0, 45, 4, 2, 10, 50, 13, 0, 0, 45, MonsterClass::Demon, IMMUNE_MAGIC | RESIST_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 7, 0, 1076 }, |
|
/* MT_YMAGMA */ { P_("monster", "Blood Stone"), "magma\\magma", nullptr, "magma\\yellow", MonsterAvailability::Retail, 128, 1680, true, true, { 8, 10, 14, 7, 18, 18 }, { 2, 1, 1, 1, 1, 1 }, 8, 10, 14, 55, 75, MonsterAIID::Magma, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 1, 50, 4, 2, 12, 50, 14, 0, 0, 45, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 7, 0, 1309 }, |
|
/* MT_BMAGMA */ { P_("monster", "Hell Stone"), "magma\\magma", nullptr, "magma\\blue", MonsterAvailability::Retail, 128, 1680, true, true, { 8, 10, 14, 7, 18, 18 }, { 2, 1, 1, 1, 1, 1 }, 9, 11, 16, 60, 80, MonsterAIID::Magma, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 2, 60, 4, 2, 20, 60, 14, 0, 0, 50, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 7, 0, 1680 }, |
|
/* MT_WMAGMA */ { P_("monster", "Lava Lord"), "magma\\magma", nullptr, "magma\\wierd", MonsterAvailability::Retail, 128, 1680, true, true, { 8, 10, 14, 7, 18, 18 }, { 2, 1, 1, 1, 1, 1 }, 9, 11, 18, 70, 85, MonsterAIID::Magma, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 75, 4, 4, 24, 60, 14, 0, 0, 60, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 7, 0, 2124 }, |
|
/* MT_HORNED */ { P_("monster", "Horned Demon"), "rhino\\rhino", nullptr, nullptr, MonsterAvailability::Retail, 160, 1630, true, true, { 8, 8, 14, 6, 16, 6 }, { 2, 1, 1, 1, 1, 1 }, 7, 9, 13, 40, 80, MonsterAIID::Rhino, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 0, 60, 7, 2, 16, 100, 0, 5, 32, 40, MonsterClass::Animal, 0, RESIST_FIRE, 7, 0, 1172 }, |
|
/* MT_MUDRUN */ { P_("monster", "Mud Runner"), "rhino\\rhino", nullptr, "rhino\\orange", MonsterAvailability::Retail, 160, 1630, true, true, { 8, 8, 14, 6, 16, 6 }, { 2, 1, 1, 1, 1, 1 }, 8, 10, 15, 50, 90, MonsterAIID::Rhino, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 1, 70, 7, 6, 18, 100, 0, 12, 36, 45, MonsterClass::Animal, 0, RESIST_FIRE, 7, 0, 1404 }, |
|
/* MT_FROSTC */ { P_("monster", "Frost Charger"), "rhino\\rhino", nullptr, "rhino\\blue", MonsterAvailability::Retail, 160, 1630, true, true, { 8, 8, 14, 6, 16, 6 }, { 2, 1, 1, 1, 1, 1 }, 9, 11, 17, 60, 100, MonsterAIID::Rhino, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 2, 80, 7, 8, 20, 100, 0, 20, 40, 50, MonsterClass::Animal, IMMUNE_MAGIC | RESIST_LIGHTNING, IMMUNE_MAGIC | RESIST_LIGHTNING, 7, 0, 1720 }, |
|
/* MT_OBLORD */ { P_("monster", "Obsidian Lord"), "rhino\\rhino", nullptr, "rhino\\rhinob", MonsterAvailability::Retail, 160, 1630, true, true, { 8, 8, 14, 6, 16, 6 }, { 2, 1, 1, 1, 1, 1 }, 10, 12, 19, 70, 110, MonsterAIID::Rhino, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 90, 7, 10, 22, 100, 0, 20, 50, 55, MonsterClass::Animal, IMMUNE_MAGIC | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 7, 0, 1809 }, |
|
/* MT_BONEDMN */ { P_("monster", "oldboned"), "demskel\\demskl", nullptr, nullptr, MonsterAvailability::Never, 128, 1740, true, true, { 10, 8, 20, 6, 24, 16 }, { 3, 1, 1, 1, 1, 1 }, 24, 24, 12, 70, 70, MonsterAIID::Storm, 0, 0, 60, 8, 6, 14, 12, 0, 0, 0, 50, MonsterClass::Demon, IMMUNE_MAGIC, IMMUNE_MAGIC, 7, 0, 1344 }, |
|
/* MT_REDDTH */ { P_("monster", "Red Death"), "thin\\thin", nullptr, "thin\\thinv3", MonsterAvailability::Never, 160, 1740, true, true, { 8, 8, 18, 4, 17, 14 }, { 3, 1, 1, 1, 1, 1 }, 8, 10, 16, 96, 96, MonsterAIID::Storm, 0, 1, 75, 5, 10, 20, 0, 0, 0, 0, 60, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 7, 0, 2168 }, |
|
/* MT_LTCHDMN */ { P_("monster", "Litch Demon"), "thin\\thin", nullptr, "thin\\thinv3", MonsterAvailability::Never, 160, 1740, true, true, { 8, 8, 18, 4, 17, 14 }, { 3, 1, 1, 1, 1, 1 }, 9, 11, 18, 110, 110, MonsterAIID::Storm, 0, 2, 80, 5, 10, 24, 0, 0, 0, 0, 45, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_LIGHTNING, IMMUNE_MAGIC | IMMUNE_LIGHTNING, 7, 0, 2736 }, |
|
/* MT_UDEDBLRG*/ { P_("monster", "Undead Balrog"), "thin\\thin", nullptr, "thin\\thinv3", MonsterAvailability::Never, 160, 1740, true, true, { 8, 8, 18, 4, 17, 14 }, { 3, 1, 1, 1, 1, 1 }, 11, 13, 22, 130, 130, MonsterAIID::Storm, 0, 3, 85, 5, 12, 30, 0, 0, 0, 0, 65, MonsterClass::Demon, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, 7, 0, 3575 }, |
|
/* MT_INCIN */ { P_("monster", "Incinerator"), "fireman\\firem", nullptr, nullptr, MonsterAvailability::Never, 128, 1460, true, false, { 14, 19, 20, 8, 14, 23 }, { 1, 1, 1, 1, 1, 1 }, 21, 22, 16, 30, 45, MonsterAIID::FireMan, 0, 0, 75, 8, 8, 16, 0, 0, 0, 0, 25, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 3, 0, 1888 }, |
|
/* MT_FLAMLRD */ { P_("monster", "Flame Lord"), "fireman\\firem", nullptr, nullptr, MonsterAvailability::Never, 128, 1460, true, false, { 14, 19, 20, 8, 14, 23 }, { 1, 1, 1, 1, 1, 1 }, 22, 23, 18, 40, 55, MonsterAIID::FireMan, 0, 1, 75, 8, 10, 20, 0, 0, 0, 0, 25, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 3, 0, 2250 }, |
|
/* MT_DOOMFIRE*/ { P_("monster", "Doom Fire"), "fireman\\firem", nullptr, nullptr, MonsterAvailability::Never, 128, 1460, true, false, { 14, 19, 20, 8, 14, 23 }, { 1, 1, 1, 1, 1, 1 }, 23, 24, 20, 50, 65, MonsterAIID::FireMan, 0, 2, 80, 8, 12, 24, 0, 0, 0, 0, 30, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 3, 0, 2740 }, |
|
/* MT_HELLBURN*/ { P_("monster", "Hell Burner"), "fireman\\firem", nullptr, nullptr, MonsterAvailability::Never, 128, 1460, true, false, { 14, 19, 20, 8, 14, 23 }, { 1, 1, 1, 1, 1, 1 }, 24, 24, 22, 60, 80, MonsterAIID::FireMan, 0, 3, 85, 8, 15, 30, 0, 0, 0, 0, 30, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 3, 0, 3355 }, |
|
/* MT_STORM */ { P_("monster", "Red Storm"), "thin\\thin", nullptr, "thin\\thinv3", MonsterAvailability::Retail, 160, 1740, true, true, { 8, 8, 18, 4, 17, 14 }, { 3, 1, 1, 1, 1, 1 }, 9, 11, 18, 55, 110, MonsterAIID::Storm, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 0, 80, 5, 8, 18, 75, 8, 4, 16, 30, MonsterClass::Demon, IMMUNE_MAGIC | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_LIGHTNING, 7, 0, 2160 }, |
|
/* MT_RSTORM */ { P_("monster", "Storm Rider"), "thin\\thin", nullptr, nullptr, MonsterAvailability::Retail, 160, 1740, true, true, { 8, 8, 18, 4, 17, 14 }, { 3, 1, 1, 1, 1, 1 }, 10, 12, 20, 60, 120, MonsterAIID::Storm, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 1, 80, 5, 8, 18, 80, 8, 4, 16, 30, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_LIGHTNING, IMMUNE_MAGIC | IMMUNE_LIGHTNING, 7, 0, 2391 }, |
|
/* MT_STORML */ { P_("monster", "Storm Lord"), "thin\\thin", nullptr, "thin\\thinv2", MonsterAvailability::Retail, 160, 1740, true, true, { 8, 8, 18, 4, 17, 14 }, { 3, 1, 1, 1, 1, 1 }, 11, 13, 22, 75, 135, MonsterAIID::Storm, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 2, 85, 5, 12, 24, 75, 8, 4, 16, 35, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_LIGHTNING, IMMUNE_MAGIC | IMMUNE_LIGHTNING, 7, 0, 2775 }, |
|
/* MT_MAEL */ { P_("monster", "Maelstrom"), "thin\\thin", nullptr, "thin\\thinv1", MonsterAvailability::Retail, 160, 1740, true, true, { 8, 8, 18, 4, 17, 14 }, { 3, 1, 1, 1, 1, 1 }, 12, 14, 24, 90, 150, MonsterAIID::Storm, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 90, 5, 12, 28, 75, 8, 4, 16, 40, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_LIGHTNING, IMMUNE_MAGIC | IMMUNE_LIGHTNING, 7, 0, 3177 }, |
|
/* MT_BIGFALL */ { P_("monster", "Devil Kin Brute"), "bigfall\\fallg", "newsfx\\kbrute", nullptr, MonsterAvailability::Retail, 128, 800, true, false, { 10, 8, 11, 8, 17, 0 }, { 1, 1, 1, 1, 2, 2 }, 21, 22, 27, 120, 160, MonsterAIID::SkeletonMelee, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 100, 6, 18, 24, 0, 0, 0, 0, 70, MonsterClass::Animal, RESIST_FIRE | RESIST_LIGHTNING, RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, 3, 0, 2400 }, |
|
/* MT_WINGED */ { P_("monster", "Winged-Demon"), "gargoyle\\gargo", nullptr, nullptr, MonsterAvailability::Retail, 160, 1650, true, false, { 14, 14, 14, 10, 18, 14 }, { 1, 1, 1, 1, 1, 2 }, 5, 7, 9, 45, 60, MonsterAIID::Gargoyle, MFLAG_CAN_OPEN_DOOR, 0, 50, 7, 10, 16, 0, 0, 0, 0, 45, MonsterClass::Demon, IMMUNE_MAGIC | RESIST_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 6, 0, 662 }, |
|
/* MT_GARGOYLE*/ { P_("monster", "Gargoyle"), "gargoyle\\gargo", nullptr, "gargoyle\\gare", MonsterAvailability::Retail, 160, 1650, true, false, { 14, 14, 14, 10, 18, 14 }, { 1, 1, 1, 1, 1, 2 }, 7, 9, 13, 60, 90, MonsterAIID::Gargoyle, MFLAG_CAN_OPEN_DOOR, 1, 65, 7, 10, 16, 0, 0, 0, 0, 45, MonsterClass::Demon, IMMUNE_MAGIC | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_LIGHTNING, 6, 0, 1205 }, |
|
/* MT_BLOODCLW*/ { P_("monster", "Blood Claw"), "gargoyle\\gargo", nullptr, "gargoyle\\gargbr", MonsterAvailability::Retail, 160, 1650, true, false, { 14, 14, 14, 10, 18, 14 }, { 1, 1, 1, 1, 1, 1 }, 9, 11, 19, 75, 125, MonsterAIID::Gargoyle, MFLAG_CAN_OPEN_DOOR, 2, 80, 7, 14, 22, 0, 0, 0, 0, 50, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 6, 0, 1873 }, |
|
/* MT_DEATHW */ { P_("monster", "Death Wing"), "gargoyle\\gargo", nullptr, "gargoyle\\gargb", MonsterAvailability::Retail, 160, 1650, true, false, { 14, 14, 14, 10, 18, 14 }, { 1, 1, 1, 1, 1, 1 }, 10, 12, 23, 90, 150, MonsterAIID::Gargoyle, MFLAG_CAN_OPEN_DOOR, 3, 95, 7, 16, 28, 0, 0, 0, 0, 60, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_LIGHTNING, IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, 6, 0, 2278 }, |
|
/* MT_MEGA */ { P_("monster", "Slayer"), "mega\\mega", nullptr, nullptr, MonsterAvailability::Retail, 160, 2220, true, true, { 6, 7, 14, 1, 24, 5 }, { 3, 1, 1, 1, 2, 1 }, 10, 12, 20, 120, 140, MonsterAIID::Mega, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 0, 100, 8, 12, 20, 0, 3, 0, 0, 60, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_FIRE, RESIST_MAGIC | IMMUNE_FIRE, 7, 0, 2300 }, |
|
/* MT_GUARD */ { P_("monster", "Guardian"), "mega\\mega", nullptr, "mega\\guard", MonsterAvailability::Retail, 160, 2220, true, true, { 6, 7, 14, 1, 24, 5 }, { 3, 1, 1, 1, 2, 1 }, 11, 13, 22, 140, 160, MonsterAIID::Mega, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 1, 110, 8, 14, 22, 0, 3, 0, 0, 65, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_FIRE, RESIST_MAGIC | IMMUNE_FIRE, 7, 0, 2714 }, |
|
/* MT_VTEXLRD */ { P_("monster", "Vortex Lord"), "mega\\mega", nullptr, "mega\\vtexl", MonsterAvailability::Retail, 160, 2220, true, true, { 6, 7, 14, 1, 24, 5 }, { 3, 1, 1, 1, 2, 1 }, 12, 14, 24, 160, 180, MonsterAIID::Mega, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 2, 120, 8, 18, 24, 0, 3, 0, 0, 70, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_FIRE, RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 7, 0, 3252 }, |
|
/* MT_BALROG */ { P_("monster", "Balrog"), "mega\\mega", nullptr, "mega\\balr", MonsterAvailability::Retail, 160, 2220, true, true, { 6, 7, 14, 1, 24, 5 }, { 3, 1, 1, 1, 2, 1 }, 13, 15, 26, 180, 200, MonsterAIID::Mega, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 130, 8, 22, 30, 0, 3, 0, 0, 75, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_FIRE, RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 7, 0, 3643 }, |
|
/* MT_NSNAKE */ { P_("monster", "Cave Viper"), "snake\\snake", nullptr, nullptr, MonsterAvailability::Retail, 160, 1270, false, false, { 12, 11, 13, 5, 18, 0 }, { 2, 1, 1, 1, 1, 1 }, 11, 13, 21, 100, 150, MonsterAIID::Snake, MFLAG_SEARCH, 0, 90, 8, 8, 20, 0, 0, 0, 0, 60, MonsterClass::Demon, IMMUNE_MAGIC, IMMUNE_MAGIC, 7, 0, 2725 }, |
|
/* MT_RSNAKE */ { P_("monster", "Fire Drake"), "snake\\snake", nullptr, "snake\\snakr", MonsterAvailability::Retail, 160, 1270, false, false, { 12, 11, 13, 5, 18, 0 }, { 2, 1, 1, 1, 1, 1 }, 12, 14, 23, 120, 170, MonsterAIID::Snake, MFLAG_SEARCH, 1, 105, 8, 12, 24, 0, 0, 0, 0, 65, MonsterClass::Demon, IMMUNE_MAGIC | RESIST_FIRE, IMMUNE_MAGIC | IMMUNE_FIRE, 7, 0, 3139 }, |
|
/* MT_BSNAKE */ { P_("monster", "Gold Viper"), "snake\\snake", nullptr, "snake\\snakg", MonsterAvailability::Retail, 160, 1270, false, false, { 12, 11, 13, 5, 18, 0 }, { 2, 1, 1, 1, 1, 1 }, 13, 14, 25, 140, 180, MonsterAIID::Snake, MFLAG_SEARCH, 2, 120, 8, 15, 26, 0, 0, 0, 0, 70, MonsterClass::Demon, IMMUNE_MAGIC | RESIST_LIGHTNING, IMMUNE_MAGIC | RESIST_LIGHTNING, 7, 0, 3540 }, |
|
/* MT_GSNAKE */ { P_("monster", "Azure Drake"), "snake\\snake", nullptr, "snake\\snakb", MonsterAvailability::Retail, 160, 1270, false, false, { 12, 11, 13, 5, 18, 0 }, { 2, 1, 1, 1, 1, 1 }, 15, 16, 27, 160, 200, MonsterAIID::Snake, MFLAG_SEARCH, 3, 130, 8, 18, 30, 0, 0, 0, 0, 75, MonsterClass::Demon, RESIST_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, 7, 0, 3791 }, |
|
/* MT_NBLACK */ { P_("monster", "Black Knight"), "black\\black", nullptr, nullptr, MonsterAvailability::Retail, 160, 2120, false, false, { 8, 8, 16, 4, 24, 0 }, { 2, 1, 1, 1, 1, 1 }, 12, 14, 24, 150, 150, MonsterAIID::SkeletonMelee, MFLAG_SEARCH, 0, 110, 8, 15, 20, 0, 0, 0, 0, 75, MonsterClass::Demon, RESIST_MAGIC | RESIST_LIGHTNING, RESIST_MAGIC | IMMUNE_LIGHTNING, 7, 0, 3360 }, |
|
/* MT_RTBLACK */ { P_("monster", "Doom Guard"), "black\\black", nullptr, "black\\blkkntrt", MonsterAvailability::Retail, 160, 2120, false, false, { 8, 8, 16, 4, 24, 0 }, { 2, 1, 1, 1, 1, 1 }, 13, 15, 26, 165, 165, MonsterAIID::SkeletonMelee, MFLAG_SEARCH, 0, 130, 8, 18, 25, 0, 0, 0, 0, 75, MonsterClass::Demon, RESIST_MAGIC | RESIST_FIRE, RESIST_MAGIC | IMMUNE_FIRE, 7, 0, 3650 }, |
|
/* MT_BTBLACK */ { P_("monster", "Steel Lord"), "black\\black", nullptr, "black\\blkkntbt", MonsterAvailability::Retail, 160, 2120, false, false, { 8, 8, 16, 4, 24, 0 }, { 2, 1, 1, 1, 1, 1 }, 14, 16, 28, 180, 180, MonsterAIID::SkeletonMelee, MFLAG_SEARCH, 1, 120, 8, 20, 30, 0, 0, 0, 0, 80, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 7, 0, 4252 }, |
|
/* MT_RBLACK */ { P_("monster", "Blood Knight"), "black\\black", nullptr, "black\\blkkntbe", MonsterAvailability::Retail, 160, 2120, false, false, { 8, 8, 16, 4, 24, 0 }, { 2, 1, 1, 1, 1, 1 }, 13, 14, 30, 200, 200, MonsterAIID::SkeletonMelee, MFLAG_SEARCH, 1, 130, 8, 25, 35, 0, 0, 0, 0, 85, MonsterClass::Demon, IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, 7, 0, 5130 }, |
|
/* MT_UNRAV */ { P_("monster", "The Shredded"), "unrav\\unrav", "newsfx\\shred", nullptr, MonsterAvailability::Retail, 96, 484, false, false, { 10, 10, 12, 5, 16, 0 }, { 1, 1, 1, 1, 1, 1 }, 17, 18, 23, 70, 90, MonsterAIID::SkeletonMelee, 0, 0, 75, 7, 4, 12, 0, 0, 0, 0, 65, MonsterClass::Undead, RESIST_FIRE | RESIST_LIGHTNING, RESIST_FIRE | RESIST_LIGHTNING, 3, 0, 900 }, |
|
/* MT_HOLOWONE*/ { P_("monster", "Hollow One"), "unrav\\unrav", "acid\\acid", nullptr, MonsterAvailability::Never, 96, 484, false, false, { 10, 10, 12, 5, 16, 0 }, { 1, 1, 1, 1, 1, 1 }, 18, 19, 27, 135, 240, MonsterAIID::SkeletonMelee, 0, 1, 75, 7, 12, 24, 0, 0, 0, 0, 75, MonsterClass::Undead, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 3, 0, 4374 }, |
|
/* MT_PAINMSTR*/ { P_("monster", "Pain Master"), "unrav\\unrav", "acid\\acid", nullptr, MonsterAvailability::Never, 96, 484, false, false, { 10, 10, 12, 5, 16, 0 }, { 1, 1, 1, 1, 1, 1 }, 19, 20, 29, 110, 200, MonsterAIID::SkeletonMelee, 0, 2, 80, 7, 16, 30, 0, 0, 0, 0, 80, MonsterClass::Undead, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 3, 0, 5147 }, |
|
/* MT_REALWEAV*/ { P_("monster", "Reality Weaver"), "unrav\\unrav", "acid\\acid", nullptr, MonsterAvailability::Never, 96, 484, false, false, { 10, 10, 12, 5, 16, 0 }, { 1, 1, 1, 1, 1, 1 }, 20, 20, 30, 135, 240, MonsterAIID::SkeletonMelee, 0, 3, 85, 7, 20, 35, 0, 0, 0, 0, 85, MonsterClass::Undead, RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 3, 0, 5925 }, |
|
/* MT_SUCCUBUS*/ { P_("monster", "Succubus"), "succ\\scbs", nullptr, nullptr, MonsterAvailability::Retail, 128, 980, false, false, { 14, 8, 16, 7, 24, 0 }, { 1, 1, 1, 1, 1, 1 }, 12, 14, 24, 120, 150, MonsterAIID::Succubus, MFLAG_CAN_OPEN_DOOR, 0, 100, 10, 1, 20, 0, 0, 0, 0, 60, MonsterClass::Demon, RESIST_MAGIC, IMMUNE_MAGIC | RESIST_FIRE, 3, 0, 3696 }, |
|
/* MT_SNOWWICH*/ { P_("monster", "Snow Witch"), "succ\\scbs", nullptr, "succ\\succb", MonsterAvailability::Retail, 128, 980, false, false, { 14, 8, 16, 7, 24, 0 }, { 1, 1, 1, 1, 1, 1 }, 13, 15, 26, 135, 175, MonsterAIID::Succubus, MFLAG_CAN_OPEN_DOOR, 1, 110, 10, 1, 24, 0, 0, 0, 0, 65, MonsterClass::Demon, RESIST_LIGHTNING, IMMUNE_MAGIC | RESIST_LIGHTNING, 3, 0, 4084 }, |
|
/* MT_HLSPWN */ { P_("monster", "Hell Spawn"), "succ\\scbs", nullptr, "succ\\succrw", MonsterAvailability::Retail, 128, 980, false, false, { 14, 8, 16, 7, 24, 0 }, { 1, 1, 1, 1, 1, 1 }, 14, 16, 28, 150, 200, MonsterAIID::Succubus, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 2, 115, 10, 1, 30, 0, 0, 0, 0, 75, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 3, 0, 4480 }, |
|
/* MT_SOLBRNR */ { P_("monster", "Soul Burner"), "succ\\scbs", nullptr, "succ\\succbw", MonsterAvailability::Retail, 128, 980, false, false, { 14, 8, 16, 7, 24, 0 }, { 1, 1, 1, 1, 1, 1 }, 15, 16, 30, 140, 225, MonsterAIID::Succubus, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 120, 10, 1, 35, 0, 0, 0, 0, 85, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 3, 0, 4644 }, |
|
/* MT_COUNSLR */ { P_("monster", "Counselor"), "mage\\mage", nullptr, nullptr, MonsterAvailability::Retail, 128, 2000, true, false, { 12, 1, 20, 8, 28, 20 }, { 1, 1, 1, 1, 1, 1 }, 13, 14, 25, 70, 70, MonsterAIID::Counselor, MFLAG_CAN_OPEN_DOOR, 0, 90, 8, 8, 20, 0, 0, 0, 0, 0, MonsterClass::Demon, RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, 7, 0, 4070 }, |
|
/* MT_MAGISTR */ { P_("monster", "Magistrate"), "mage\\mage", nullptr, "mage\\cnselg", MonsterAvailability::Retail, 128, 2000, true, false, { 12, 1, 20, 8, 28, 20 }, { 1, 1, 1, 1, 1, 1 }, 14, 15, 27, 85, 85, MonsterAIID::Counselor, MFLAG_CAN_OPEN_DOOR, 1, 100, 8, 10, 24, 0, 0, 0, 0, 0, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 7, 0, 4478 }, |
|
/* MT_CABALIST*/ { P_("monster", "Cabalist"), "mage\\mage", nullptr, "mage\\cnselgd", MonsterAvailability::Retail, 128, 2000, true, false, { 12, 1, 20, 8, 28, 20 }, { 1, 1, 1, 1, 1, 1 }, 15, 16, 29, 120, 120, MonsterAIID::Counselor, MFLAG_CAN_OPEN_DOOR, 2, 110, 8, 14, 30, 0, 0, 0, 0, 0, MonsterClass::Demon, RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, 7, 0, 4929 }, |
|
/* MT_ADVOCATE*/ { P_("monster", "Advocate"), "mage\\mage", nullptr, "mage\\cnselbk", MonsterAvailability::Retail, 128, 2000, true, false, { 12, 1, 20, 8, 28, 20 }, { 1, 1, 1, 1, 1, 1 }, 16, 16, 30, 145, 145, MonsterAIID::Counselor, MFLAG_CAN_OPEN_DOOR, 3, 120, 8, 15, 25, 0, 0, 0, 0, 0, MonsterClass::Demon, IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 7, 0, 4968 }, |
|
/* MT_GOLEM */ { P_("monster", "Golem"), "golem\\golem", "golem\\golm", nullptr, MonsterAvailability::Never, 96, 386, true, false, { 0, 16, 12, 0, 12, 20 }, { 1, 1, 1, 1, 1, 1 }, 1, 1, 12, 1, 1, MonsterAIID::Golem, MFLAG_CAN_OPEN_DOOR, 0, 0, 7, 1, 1, 0, 0, 0, 0, 1, MonsterClass::Demon, 0, 0, 0, 0, 0 }, |
|
/* MT_DIABLO */ { P_("monster", "The Dark Lord"), "diablo\\diablo", nullptr, nullptr, MonsterAvailability::Never, 160, 2000, true, true, { 16, 6, 16, 6, 16, 16 }, { 1, 1, 1, 1, 1, 1 }, 26, 26, 45, 3333, 3333, MonsterAIID::Diablo, MFLAG_KNOCKBACK | MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 220, 4, 30, 60, 0, 11, 0, 0, 90, MonsterClass::Demon, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, 7, 0, 31666 }, |
|
/* MT_DARKMAGE*/ { P_("monster", "The Arch-Litch Malignus"), "darkmage\\dmage", "darkmage\\dmag", nullptr, MonsterAvailability::Never, 128, 1060, true, false, { 6, 1, 21, 6, 23, 18 }, { 1, 1, 1, 1, 1, 1 }, 21, 21, 30, 160, 160, MonsterAIID::Counselor, MFLAG_CAN_OPEN_DOOR, 3, 120, 8, 20, 40, 0, 0, 0, 0, 70, MonsterClass::Demon, RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 7, 0, 4968 }, |
|
/* MT_HELLBOAR*/ { P_("monster", "Hellboar"), "fork\\fork", "newsfx\\hboar", nullptr, MonsterAvailability::Retail, 188, 800, false, false, { 10, 10, 15, 6, 16, 0 }, { 2, 1, 1, 1, 1, 1 }, 17, 18, 23, 80, 100, MonsterAIID::SkeletonMelee, MFLAG_KNOCKBACK | MFLAG_SEARCH, 2, 70, 7, 16, 24, 0, 0, 0, 0, 60, MonsterClass::Demon, 0, RESIST_FIRE | RESIST_LIGHTNING, 3, 0, 750 }, |
|
/* MT_STINGER */ { P_("monster", "Stinger"), "scorp\\scorp", "newsfx\\stingr", nullptr, MonsterAvailability::Retail, 64, 305, false, false, { 10, 10, 12, 6, 15, 0 }, { 2, 1, 1, 1, 1, 1 }, 17, 18, 22, 30, 40, MonsterAIID::SkeletonMelee, 0, 3, 85, 8, 1, 20, 0, 0, 0, 0, 50, MonsterClass::Animal, 0, RESIST_LIGHTNING, 1, 0, 500 }, |
|
/* MT_PSYCHORB*/ { P_("monster", "Psychorb"), "eye\\eye", "newsfx\\psyco", nullptr, MonsterAvailability::Retail, 156, 800, false, false, { 12, 13, 13, 7, 21, 0 }, { 2, 1, 1, 1, 1, 1 }, 17, 18, 22, 20, 30, MonsterAIID::Psychorb, 0, 3, 80, 8, 10, 10, 0, 0, 0, 0, 40, MonsterClass::Animal, 0, RESIST_FIRE, 6, 0, 450 }, |
|
/* MT_ARACHNON*/ { P_("monster", "Arachnon"), "spider\\spider", "newsfx\\slord", nullptr, MonsterAvailability::Retail, 148, 800, false, false, { 12, 10, 15, 6, 20, 0 }, { 2, 1, 1, 1, 1, 1 }, 17, 18, 22, 60, 80, MonsterAIID::SkeletonMelee, MFLAG_SEARCH, 3, 50, 8, 5, 15, 0, 0, 0, 0, 50, MonsterClass::Animal, 0, RESIST_LIGHTNING, 7, 0, 500 }, |
|
/* MT_FELLTWIN*/ { P_("monster", "Felltwin"), "tsneak\\tsneak", "newsfx\\ftwin", nullptr, MonsterAvailability::Retail, 128, 800, false, false, { 13, 13, 15, 11, 16, 0 }, { 2, 1, 1, 1, 1, 1 }, 17, 18, 22, 50, 70, MonsterAIID::SkeletonMelee, MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 70, 8, 10, 18, 0, 0, 0, 0, 50, MonsterClass::Demon, 0, RESIST_FIRE | RESIST_LIGHTNING, 3, 0, 600 }, |
|
/* MT_HORKSPWN*/ { P_("monster", "Hork Spawn"), "spawn\\spawn", "newsfx\\hspawn", nullptr, MonsterAvailability::Retail, 164, 520, false, true, { 15, 12, 14, 11, 14, 0 }, { 1, 1, 1, 1, 1, 1 }, 18, 19, 22, 30, 30, MonsterAIID::SkeletonMelee, 0, 3, 60, 8, 10, 25, 0, 0, 0, 0, 25, MonsterClass::Demon, RESIST_MAGIC, RESIST_MAGIC, 3, 0, 250 }, |
|
/* MT_VENMTAIL*/ { P_("monster", "Venomtail"), "wscorp\\wscorp", "newsfx\\stingr", nullptr, MonsterAvailability::Retail, 86, 305, false, false, { 10, 10, 12, 6, 15, 0 }, { 2, 1, 1, 1, 1, 1 }, 19, 20, 24, 40, 50, MonsterAIID::SkeletonMelee, 0, 3, 85, 8, 1, 30, 0, 0, 0, 0, 60, MonsterClass::Animal, RESIST_LIGHTNING, IMMUNE_LIGHTNING, 1, 0, 1000 }, |
|
/* MT_NECRMORB*/ { P_("monster", "Necromorb"), "eye2\\eye2", "newsfx\\psyco", nullptr, MonsterAvailability::Retail, 140, 800, false, false, { 12, 13, 13, 7, 21, 0 }, { 2, 1, 1, 1, 1, 1 }, 19, 20, 24, 30, 40, MonsterAIID::Necromorb, 0, 3, 80, 8, 20, 20, 0, 0, 0, 0, 50, MonsterClass::Animal, RESIST_FIRE, IMMUNE_FIRE | RESIST_LIGHTNING, 6, 0, 1100 }, |
|
/* MT_SPIDLORD*/ { P_("monster", "Spider Lord"), "bspidr\\bspidr", "newsfx\\slord", nullptr, MonsterAvailability::Retail, 148, 800, true, true, { 12, 10, 15, 6, 20, 10 }, { 2, 1, 1, 1, 1, 1 }, 19, 20, 24, 80, 100, MonsterAIID::Acid, MFLAG_SEARCH, 3, 60, 8, 8, 20, 75, 8, 10, 10, 60, MonsterClass::Animal, RESIST_LIGHTNING, RESIST_FIRE | IMMUNE_LIGHTNING, 7, 0, 1250 }, |
|
/* MT_LASHWORM*/ { P_("monster", "Lashworm"), "clasp\\clasp", "newsfx\\lworm", nullptr, MonsterAvailability::Retail, 176, 800, false, false, { 10, 12, 15, 6, 16, 0 }, { 1, 1, 1, 1, 1, 1 }, 19, 20, 20, 30, 30, MonsterAIID::SkeletonMelee, 0, 3, 90, 8, 12, 20, 0, 0, 0, 0, 50, MonsterClass::Animal, 0, RESIST_FIRE, 3, 0, 600 }, |
|
/* MT_TORCHANT*/ { P_("monster", "Torchant"), "antworm\\worm", "newsfx\\tchant", nullptr, MonsterAvailability::Retail, 192, 800, false, false, { 14, 12, 12, 6, 20, 0 }, { 2, 1, 1, 1, 1, 1 }, 19, 20, 22, 60, 80, MonsterAIID::Torchant, 0, 3, 75, 8, 20, 30, 0, 0, 0, 0, 70, MonsterClass::Animal, IMMUNE_FIRE, RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 7, 0, 1250 }, |
|
/* MT_HORKDMN */ { P_("monster", "Hork Demon"), "horkd\\horkd", "newsfx\\hdemon", nullptr, MonsterAvailability::Never, 138, 800, true, true, { 15, 8, 16, 6, 16, 9 }, { 2, 1, 1, 1, 1, 2 }, 19, 19, 27, 120, 160, MonsterAIID::SkeletonMelee, 0, 3, 60, 8, 20, 35, 80, 8, 0, 0, 80, MonsterClass::Demon, RESIST_LIGHTNING, RESIST_MAGIC | IMMUNE_LIGHTNING, 7, 0, 2000 }, |
|
/* MT_DEFILER */ { P_("monster", "Hell Bug"), "hellbug\\hellbg", "newsfx\\defile", nullptr, MonsterAvailability::Never, 198, 800, true, true, { 8, 8, 14, 6, 14, 12 }, { 1, 1, 1, 1, 1, 1 }, 20, 20, 30, 240, 240, MonsterAIID::SkeletonMelee, MFLAG_SEARCH, 3, 110, 8, 20, 30, 90, 8, 50, 60, 80, MonsterClass::Demon, RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 7, 0, 5000 }, |
|
/* MT_GRAVEDIG*/ { P_("monster", "Gravedigger"), "gravdg\\gravdg", "newsfx\\gdiggr", nullptr, MonsterAvailability::Retail, 124, 800, true, true, { 24, 24, 12, 6, 16, 16 }, { 2, 1, 1, 1, 1, 1 }, 21, 21, 26, 120, 240, MonsterAIID::Scavenger, MFLAG_CAN_OPEN_DOOR, 3, 80, 6, 2, 12, 0, 0, 0, 0, 20, MonsterClass::Undead, IMMUNE_LIGHTNING, RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, 3, 0, 2000 }, |
|
/* MT_TOMBRAT */ { P_("monster", "Tomb Rat"), "rat\\rat", "newsfx\\tmbrat", nullptr, MonsterAvailability::Retail, 104, 550, false, false, { 11, 8, 12, 6, 20, 0 }, { 2, 1, 1, 1, 1, 1 }, 21, 22, 24, 80, 120, MonsterAIID::SkeletonMelee, 0, 3, 120, 8, 12, 25, 0, 0, 0, 0, 30, MonsterClass::Animal, 0, RESIST_FIRE | RESIST_LIGHTNING, 3, 0, 1800 }, |
|
/* MT_FIREBAT */ { P_("monster", "Firebat"), "hellbat\\helbat", "newsfx\\helbat", nullptr, MonsterAvailability::Retail, 96, 550, false, false, { 18, 16, 14, 6, 18, 11 }, { 2, 1, 1, 1, 1, 1 }, 21, 22, 24, 60, 80, MonsterAIID::FireBat, 0, 3, 100, 8, 15, 20, 0, 0, 0, 0, 70, MonsterClass::Animal, IMMUNE_FIRE, RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 7, 0, 2400 }, |
|
/* MT_SKLWING */ { P_("monster", "Skullwing"), "demskel\\demskl", "newsfx\\swing", "skelaxe\\skelt", MonsterAvailability::Retail, 128, 1740, true, false, { 10, 8, 20, 6, 24, 16 }, { 3, 1, 1, 1, 1, 1 }, 21, 22, 27, 70, 70, MonsterAIID::SkeletonMelee, 0, 0, 75, 7, 15, 20, 75, 9, 15, 20, 80, MonsterClass::Undead, RESIST_FIRE | RESIST_LIGHTNING, RESIST_FIRE | RESIST_LIGHTNING, 7, 0, 3000 }, |
|
/* MT_LICH */ { P_("monster", "Lich"), "lich\\lich", "newsfx\\lich", nullptr, MonsterAvailability::Retail, 96, 800, false, true, { 12, 10, 10, 7, 21, 0 }, { 2, 1, 1, 1, 2, 1 }, 21, 22, 25, 80, 100, MonsterAIID::Lich, 0, 3, 100, 8, 15, 20, 0, 0, 0, 0, 60, MonsterClass::Undead, RESIST_LIGHTNING, RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, 3, 0, 3000 }, |
|
/* MT_CRYPTDMN*/ { P_("monster", "Crypt Demon"), "bubba\\bubba", "newsfx\\crypt", nullptr, MonsterAvailability::Retail, 154, 800, false, true, { 8, 18, 12, 8, 21, 0 }, { 3, 1, 1, 1, 1, 1 }, 22, 23, 28, 200, 240, MonsterAIID::SkeletonMelee, 0, 3, 100, 8, 20, 40, 0, 0, 0, 0, 85, MonsterClass::Demon, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, 3, 0, 3200 }, |
|
/* MT_HELLBAT */ { P_("monster", "Hellbat"), "hellbat2\\bhelbt", "newsfx\\helbat", nullptr, MonsterAvailability::Retail, 96, 550, true, false, { 18, 16, 14, 6, 18, 11 }, { 2, 1, 1, 1, 1, 1 }, 23, 24, 29, 100, 140, MonsterAIID::Torchant, 0, 3, 110, 8, 30, 30, 0, 0, 0, 0, 80, MonsterClass::Demon, RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 7, 0, 3600 }, |
|
/* MT_BONEDEMN*/ { P_("monster", "Bone Demon"), "demskel\\demskl", "newsfx\\swing", nullptr, MonsterAvailability::Retail, 128, 1740, true, true, { 10, 8, 20, 6, 24, 16 }, { 3, 1, 1, 1, 1, 1 }, 23, 24, 30, 240, 280, MonsterAIID::BoneDemon, 0, 0, 100, 8, 40, 50, 160, 12, 50, 50, 50, MonsterClass::Undead, IMMUNE_FIRE | IMMUNE_LIGHTNING, IMMUNE_FIRE | IMMUNE_LIGHTNING, 7, 0, 5000 }, |
|
/* MT_ARCHLICH*/ { P_("monster", "Arch Lich"), "lich2\\lich2", "newsfx\\lich", nullptr, MonsterAvailability::Retail, 136, 800, false, true, { 12, 10, 10, 7, 21, 0 }, { 2, 1, 1, 1, 2, 1 }, 23, 24, 30, 180, 200, MonsterAIID::ArchLich, 0, 3, 120, 8, 30, 30, 0, 0, 0, 0, 75, MonsterClass::Undead, RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 3, 0, 4000 }, |
|
/* MT_BICLOPS */ { P_("monster", "Biclops"), "byclps\\byclps", "newsfx\\biclop", nullptr, MonsterAvailability::Retail, 180, 800, false, false, { 10, 11, 16, 6, 16, 0 }, { 2, 1, 1, 1, 2, 1 }, 23, 24, 30, 200, 240, MonsterAIID::SkeletonMelee, MFLAG_KNOCKBACK | MFLAG_CAN_OPEN_DOOR, 3, 90, 8, 40, 50, 0, 0, 0, 0, 80, MonsterClass::Demon, RESIST_LIGHTNING, RESIST_FIRE | RESIST_LIGHTNING, 3, 0, 4000 }, |
|
/* MT_FLESTHNG*/ { P_("monster", "Flesh Thing"), "flesh\\flesh", "newsfx\\flesht", nullptr, MonsterAvailability::Retail, 164, 800, false, true, { 15, 24, 15, 6, 16, 0 }, { 1, 1, 1, 1, 1, 1 }, 23, 24, 28, 300, 400, MonsterAIID::SkeletonMelee, 0, 3, 150, 8, 12, 18, 0, 0, 0, 0, 70, MonsterClass::Demon, RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, 3, 0, 4000 }, |
|
/* MT_REAPER */ { P_("monster", "Reaper"), "reaper\\reap", "newsfx\\reaper", nullptr, MonsterAvailability::Retail, 180, 800, false, false, { 12, 10, 14, 6, 16, 0 }, { 2, 1, 1, 1, 1, 1 }, 23, 24, 30, 260, 300, MonsterAIID::SkeletonMelee, 0, 3, 120, 8, 30, 35, 0, 0, 0, 0, 90, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 3, 0, 6000 }, |
|
// TRANSLATORS: Monster Block end |
|
/* MT_NAKRUL */ { P_("monster", "Na-Krul"), "nkr\\nkr", "newsfx\\nakrul", nullptr, MonsterAvailability::Never, 226, 1200, true, true, { 2, 6, 16, 3, 16, 16 }, { 1, 1, 1, 1, 1, 1 }, 31, 31, 40, 1332, 1332, MonsterAIID::SkeletonMelee, MFLAG_KNOCKBACK | MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR, 3, 150, 7, 40, 50, 150, 10, 40, 50, 125, MonsterClass::Demon, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, 7, 0, 13333 }, |
|
// clang-format on |
|
}; |
|
|
|
/** |
|
* Map between .DUN file value and monster type enum |
|
*/ |
|
const _monster_id MonstConvTbl[] = { |
|
MT_NZOMBIE, |
|
MT_BZOMBIE, |
|
MT_GZOMBIE, |
|
MT_YZOMBIE, |
|
MT_RFALLSP, |
|
MT_DFALLSP, |
|
MT_YFALLSP, |
|
MT_BFALLSP, |
|
MT_WSKELAX, |
|
MT_TSKELAX, |
|
MT_RSKELAX, |
|
MT_XSKELAX, |
|
MT_RFALLSD, |
|
MT_DFALLSD, |
|
MT_YFALLSD, |
|
MT_BFALLSD, |
|
MT_NSCAV, |
|
MT_BSCAV, |
|
MT_WSCAV, |
|
MT_YSCAV, |
|
MT_WSKELBW, |
|
MT_TSKELBW, |
|
MT_RSKELBW, |
|
MT_XSKELBW, |
|
MT_WSKELSD, |
|
MT_TSKELSD, |
|
MT_RSKELSD, |
|
MT_XSKELSD, |
|
MT_SNEAK, |
|
MT_STALKER, |
|
MT_UNSEEN, |
|
MT_ILLWEAV, |
|
MT_NGOATMC, |
|
MT_BGOATMC, |
|
MT_RGOATMC, |
|
MT_GGOATMC, |
|
MT_FIEND, |
|
MT_GLOOM, |
|
MT_BLINK, |
|
MT_FAMILIAR, |
|
MT_NGOATBW, |
|
MT_BGOATBW, |
|
MT_RGOATBW, |
|
MT_GGOATBW, |
|
MT_NACID, |
|
MT_RACID, |
|
MT_BACID, |
|
MT_XACID, |
|
MT_SKING, |
|
MT_FAT, |
|
MT_MUDMAN, |
|
MT_TOAD, |
|
MT_FLAYED, |
|
MT_WYRM, |
|
MT_CAVSLUG, |
|
MT_DEVOUR, |
|
MT_DVLWYRM, |
|
MT_NMAGMA, |
|
MT_YMAGMA, |
|
MT_BMAGMA, |
|
MT_WMAGMA, |
|
MT_HORNED, |
|
MT_MUDRUN, |
|
MT_FROSTC, |
|
MT_OBLORD, |
|
MT_BONEDMN, |
|
MT_REDDTH, |
|
MT_LTCHDMN, |
|
MT_UDEDBLRG, |
|
MT_INVALID, |
|
MT_INVALID, |
|
MT_INVALID, |
|
MT_INVALID, |
|
MT_INCIN, |
|
MT_FLAMLRD, |
|
MT_DOOMFIRE, |
|
MT_HELLBURN, |
|
MT_INVALID, |
|
MT_INVALID, |
|
MT_INVALID, |
|
MT_INVALID, |
|
MT_RSTORM, |
|
MT_STORM, |
|
MT_STORML, |
|
MT_MAEL, |
|
MT_WINGED, |
|
MT_GARGOYLE, |
|
MT_BLOODCLW, |
|
MT_DEATHW, |
|
MT_MEGA, |
|
MT_GUARD, |
|
MT_VTEXLRD, |
|
MT_BALROG, |
|
MT_NSNAKE, |
|
MT_RSNAKE, |
|
MT_GSNAKE, |
|
MT_BSNAKE, |
|
MT_NBLACK, |
|
MT_RTBLACK, |
|
MT_BTBLACK, |
|
MT_RBLACK, |
|
MT_UNRAV, |
|
MT_HOLOWONE, |
|
MT_PAINMSTR, |
|
MT_REALWEAV, |
|
MT_SUCCUBUS, |
|
MT_SNOWWICH, |
|
MT_HLSPWN, |
|
MT_SOLBRNR, |
|
MT_COUNSLR, |
|
MT_MAGISTR, |
|
MT_CABALIST, |
|
MT_ADVOCATE, |
|
MT_INVALID, |
|
MT_DIABLO, |
|
MT_INVALID, |
|
MT_GOLEM, |
|
MT_INVALID, |
|
MT_INVALID, |
|
MT_INVALID, // Monster from blood1.dun and blood2.dun |
|
MT_INVALID, |
|
MT_INVALID, |
|
MT_INVALID, |
|
MT_INVALID, // Snotspill from banner2.dun |
|
MT_INVALID, |
|
MT_INVALID, |
|
MT_BIGFALL, |
|
MT_DARKMAGE, |
|
MT_HELLBOAR, |
|
MT_STINGER, |
|
MT_PSYCHORB, |
|
MT_ARACHNON, |
|
MT_FELLTWIN, |
|
MT_HORKSPWN, |
|
MT_VENMTAIL, |
|
MT_NECRMORB, |
|
MT_SPIDLORD, |
|
MT_LASHWORM, |
|
MT_TORCHANT, |
|
MT_HORKDMN, |
|
MT_DEFILER, |
|
MT_GRAVEDIG, |
|
MT_TOMBRAT, |
|
MT_FIREBAT, |
|
MT_SKLWING, |
|
MT_LICH, |
|
MT_CRYPTDMN, |
|
MT_HELLBAT, |
|
MT_BONEDEMN, |
|
MT_LICH, |
|
MT_BICLOPS, |
|
MT_FLESTHNG, |
|
MT_REAPER, |
|
MT_NAKRUL, |
|
MT_CLEAVER, |
|
MT_INVILORD, |
|
MT_LRDSAYTR, |
|
}; |
|
|
|
/** Contains the data related to each unique monster ID. */ |
|
const UniqueMonsterData UniqueMonstersData[] = { |
|
// clang-format off |
|
// mtype, mName, mTrnName, mlevel, mmaxhp, mAi, mint, mMinDamage, mMaxDamage, mMagicRes, monsterPack, customToHit, customArmorClass, mtalkmsg |
|
// TRANSLATORS: Unique Monster Block start |
|
{ MT_NGOATMC, P_("monster", "Gharbad the Weak"), "bsdb", 4, 120, MonsterAIID::Gharbad, 3, 8, 16, IMMUNE_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_GARBUD1 }, |
|
{ MT_SKING, P_("monster", "Skeleton King"), "genrl", 0, 240, MonsterAIID::SkeletonKing, 3, 6, 16, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Independent, 0, 0, TEXT_NONE }, |
|
{ MT_COUNSLR, P_("monster", "Zhar the Mad"), "general", 8, 360, MonsterAIID::Zhar, 3, 16, 40, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_ZHAR1 }, |
|
{ MT_BFALLSP, P_("monster", "Snotspill"), "bng", 4, 220, MonsterAIID::Snotspill, 3, 10, 18, RESIST_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_BANNER10 }, |
|
{ MT_ADVOCATE, P_("monster", "Arch-Bishop Lazarus"), "general", 0, 600, MonsterAIID::Lazarus, 3, 30, 50, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_VILE13 }, |
|
{ MT_HLSPWN, P_("monster", "Red Vex"), "redv", 0, 400, MonsterAIID::LazarusSuccubus, 3, 30, 50, IMMUNE_MAGIC | RESIST_FIRE, UniqueMonsterPack::None, 0, 0, TEXT_VILE13 }, |
|
{ MT_HLSPWN, P_("monster", "Black Jade"), "blkjd", 0, 400, MonsterAIID::LazarusSuccubus, 3, 30, 50, IMMUNE_MAGIC | RESIST_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_VILE13 }, |
|
{ MT_RBLACK, P_("monster", "Lachdanan"), "bhka", 14, 500, MonsterAIID::Lachdanan, 3, 0, 0, 0, UniqueMonsterPack::None, 0, 0, TEXT_VEIL9 }, |
|
{ MT_BTBLACK, P_("monster", "Warlord of Blood"), "general", 13, 850, MonsterAIID::Warlord, 3, 35, 50, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_WARLRD9 }, |
|
{ MT_CLEAVER, P_("monster", "The Butcher"), "genrl", 0, 220, MonsterAIID::Butcher, 3, 6, 12, RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_HORKDMN, P_("monster", "Hork Demon"), "genrl", 19, 300, MonsterAIID::HorkDemon, 3, 20, 35, RESIST_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_DEFILER, P_("monster", "The Defiler"), "genrl", 20, 480, MonsterAIID::SkeletonMelee, 3, 30, 40, RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_NAKRUL, P_("monster", "Na-Krul"), "genrl", 0, 1332, MonsterAIID::SkeletonMelee, 3, 40, 50, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_TSKELAX, P_("monster", "Bonehead Keenaxe"), "bhka", 2, 91, MonsterAIID::SkeletonMelee, 2, 4, 10, IMMUNE_MAGIC, UniqueMonsterPack::Leashed, 100, 0, TEXT_NONE }, |
|
{ MT_RFALLSD, P_("monster", "Bladeskin the Slasher"), "bsts", 2, 51, MonsterAIID::Fallen, 0, 6, 18, RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 45, TEXT_NONE }, |
|
{ MT_NZOMBIE, P_("monster", "Soulpus"), "general", 2, 133, MonsterAIID::Zombie, 0, 4, 8, RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_RFALLSP, P_("monster", "Pukerat the Unclean"), "ptu", 2, 77, MonsterAIID::Fallen, 3, 1, 5, RESIST_FIRE, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_WSKELAX, P_("monster", "Boneripper"), "br", 2, 54, MonsterAIID::Bat, 0, 6, 15, IMMUNE_MAGIC | IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_NZOMBIE, P_("monster", "Rotfeast the Hungry"), "eth", 2, 85, MonsterAIID::SkeletonMelee, 3, 4, 12, IMMUNE_MAGIC, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_DFALLSD, P_("monster", "Gutshank the Quick"), "gtq", 3, 66, MonsterAIID::Bat, 2, 6, 16, RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_TSKELSD, P_("monster", "Brokenhead Bangshield"), "bhbs", 3, 108, MonsterAIID::SkeletonMelee, 3, 12, 20, IMMUNE_MAGIC | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_YFALLSP, P_("monster", "Bongo"), "bng", 3, 178, MonsterAIID::Fallen, 3, 9, 21, 0, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_BZOMBIE, P_("monster", "Rotcarnage"), "rcrn", 3, 102, MonsterAIID::Zombie, 3, 9, 24, IMMUNE_MAGIC | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 45, TEXT_NONE }, |
|
{ MT_NSCAV, P_("monster", "Shadowbite"), "shbt", 2, 60, MonsterAIID::SkeletonMelee, 3, 3, 20, IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_WSKELBW, P_("monster", "Deadeye"), "de", 2, 49, MonsterAIID::GoatRanged, 0, 6, 9, IMMUNE_MAGIC | RESIST_FIRE, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_RSKELAX, P_("monster", "Madeye the Dead"), "mtd", 4, 75, MonsterAIID::Bat, 0, 9, 21, IMMUNE_MAGIC | IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 30, TEXT_NONE }, |
|
{ MT_BSCAV, P_("monster", "El Chupacabras"), "general", 3, 120, MonsterAIID::GoatMelee, 0, 10, 18, RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_TSKELBW, P_("monster", "Skullfire"), "skfr", 3, 125, MonsterAIID::GoatRanged, 1, 6, 10, IMMUNE_FIRE, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_SNEAK, P_("monster", "Warpskull"), "tspo", 3, 117, MonsterAIID::Sneak, 2, 6, 18, RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_GZOMBIE, P_("monster", "Goretongue"), "pmr", 3, 156, MonsterAIID::SkeletonMelee, 1, 15, 30, IMMUNE_MAGIC, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_WSCAV, P_("monster", "Pulsecrawler"), "bhka", 4, 150, MonsterAIID::Scavenger, 0, 16, 20, IMMUNE_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 45, TEXT_NONE }, |
|
{ MT_BLINK, P_("monster", "Moonbender"), "general", 4, 135, MonsterAIID::Bat, 0, 9, 27, IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_BLINK, P_("monster", "Wrathraven"), "general", 5, 135, MonsterAIID::Bat, 2, 9, 22, IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_YSCAV, P_("monster", "Spineeater"), "general", 4, 180, MonsterAIID::Scavenger, 1, 18, 25, IMMUNE_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_RSKELBW, P_("monster", "Blackash the Burning"), "bashtb", 4, 120, MonsterAIID::GoatRanged, 0, 6, 16, IMMUNE_MAGIC | IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_BFALLSD, P_("monster", "Shadowcrow"), "general", 5, 270, MonsterAIID::Sneak, 2, 12, 25, 0, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_LRDSAYTR, P_("monster", "Blightstone the Weak"), "bhka", 4, 360, MonsterAIID::SkeletonMelee, 0, 4, 12, IMMUNE_MAGIC | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 70, 0, TEXT_NONE }, |
|
{ MT_FAT, P_("monster", "Bilefroth the Pit Master"), "bftp", 6, 210, MonsterAIID::Bat, 1, 16, 23, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_NGOATBW, P_("monster", "Bloodskin Darkbow"), "bsdb", 5, 207, MonsterAIID::GoatRanged, 0, 3, 16, RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 55, TEXT_NONE }, |
|
{ MT_GLOOM, P_("monster", "Foulwing"), "db", 5, 246, MonsterAIID::Rhino, 3, 12, 28, RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_XSKELSD, P_("monster", "Shadowdrinker"), "shdr", 5, 300, MonsterAIID::Sneak, 1, 18, 26, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::None, 0, 45, TEXT_NONE }, |
|
{ MT_UNSEEN, P_("monster", "Hazeshifter"), "bhka", 5, 285, MonsterAIID::Sneak, 3, 18, 30, IMMUNE_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_NACID, P_("monster", "Deathspit"), "bfds", 6, 303, MonsterAIID::AcidUnique, 0, 12, 32, RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_RGOATMC, P_("monster", "Bloodgutter"), "bgbl", 6, 315, MonsterAIID::Bat, 1, 24, 34, IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_BGOATMC, P_("monster", "Deathshade Fleshmaul"), "dsfm", 6, 276, MonsterAIID::Rhino, 0, 12, 24, IMMUNE_MAGIC | RESIST_FIRE, UniqueMonsterPack::None, 0, 65, TEXT_NONE }, |
|
{ MT_WYRM, P_("monster", "Warmaggot the Mad"), "general", 6, 246, MonsterAIID::Bat, 3, 15, 30, RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_STORM, P_("monster", "Glasskull the Jagged"), "bhka", 7, 354, MonsterAIID::Storm, 0, 18, 30, IMMUNE_MAGIC | IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_RGOATBW, P_("monster", "Blightfire"), "blf", 7, 321, MonsterAIID::Succubus, 2, 13, 21, IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_GARGOYLE, P_("monster", "Nightwing the Cold"), "general", 7, 342, MonsterAIID::Bat, 1, 18, 26, IMMUNE_MAGIC | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_GGOATBW, P_("monster", "Gorestone"), "general", 7, 303, MonsterAIID::GoatRanged, 1, 15, 28, RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 70, 0, TEXT_NONE }, |
|
{ MT_BMAGMA, P_("monster", "Bronzefist Firestone"), "general", 8, 360, MonsterAIID::Magma, 0, 30, 36, IMMUNE_MAGIC | RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_INCIN, P_("monster", "Wrathfire the Doomed"), "wftd", 8, 270, MonsterAIID::SkeletonMelee, 2, 20, 30, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_NMAGMA, P_("monster", "Firewound the Grim"), "bhka", 8, 303, MonsterAIID::Magma, 0, 18, 22, IMMUNE_MAGIC | RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_MUDMAN, P_("monster", "Baron Sludge"), "bsm", 8, 315, MonsterAIID::Sneak, 3, 25, 34, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 75, TEXT_NONE }, |
|
{ MT_GGOATMC, P_("monster", "Blighthorn Steelmace"), "bhsm", 7, 250, MonsterAIID::Rhino, 0, 20, 28, RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 45, TEXT_NONE }, |
|
{ MT_RACID, P_("monster", "Chaoshowler"), "general", 8, 240, MonsterAIID::AcidUnique, 0, 12, 20, 0, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_REDDTH, P_("monster", "Doomgrin the Rotting"), "general", 8, 405, MonsterAIID::Storm, 3, 25, 50, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_FLAMLRD, P_("monster", "Madburner"), "general", 9, 270, MonsterAIID::Storm, 0, 20, 40, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_LTCHDMN, P_("monster", "Bonesaw the Litch"), "general", 9, 495, MonsterAIID::Storm, 2, 30, 55, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_MUDRUN, P_("monster", "Breakspine"), "general", 9, 351, MonsterAIID::Rhino, 0, 25, 34, RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_REDDTH, P_("monster", "Devilskull Sharpbone"), "general", 9, 444, MonsterAIID::Storm, 1, 25, 40, IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_STORM, P_("monster", "Brokenstorm"), "general", 9, 411, MonsterAIID::Storm, 2, 25, 36, IMMUNE_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_RSTORM, P_("monster", "Stormbane"), "general", 9, 555, MonsterAIID::Storm, 3, 30, 30, IMMUNE_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_TOAD, P_("monster", "Oozedrool"), "general", 9, 483, MonsterAIID::Fat, 3, 25, 30, RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_BLOODCLW, P_("monster", "Goldblight of the Flame"), "general", 10, 405, MonsterAIID::Gargoyle, 0, 15, 35, IMMUNE_MAGIC | IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 80, TEXT_NONE }, |
|
{ MT_OBLORD, P_("monster", "Blackstorm"), "general", 10, 525, MonsterAIID::Rhino, 3, 20, 40, IMMUNE_MAGIC | IMMUNE_LIGHTNING, UniqueMonsterPack::Leashed, 0, 90, TEXT_NONE }, |
|
{ MT_RACID, P_("monster", "Plaguewrath"), "general", 10, 450, MonsterAIID::AcidUnique, 2, 20, 30, IMMUNE_MAGIC | RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_RSTORM, P_("monster", "The Flayer"), "general", 10, 501, MonsterAIID::Storm, 1, 20, 35, RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_FROSTC, P_("monster", "Bluehorn"), "general", 11, 477, MonsterAIID::Rhino, 1, 25, 30, IMMUNE_MAGIC | RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 90, TEXT_NONE }, |
|
{ MT_HELLBURN, P_("monster", "Warpfire Hellspawn"), "general", 11, 525, MonsterAIID::FireMan, 3, 10, 40, RESIST_MAGIC | IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_NSNAKE, P_("monster", "Fangspeir"), "general", 11, 444, MonsterAIID::SkeletonMelee, 1, 15, 32, IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_UDEDBLRG, P_("monster", "Festerskull"), "general", 11, 600, MonsterAIID::Storm, 2, 15, 30, IMMUNE_MAGIC, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_NBLACK, P_("monster", "Lionskull the Bent"), "general", 12, 525, MonsterAIID::SkeletonMelee, 2, 25, 25, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_COUNSLR, P_("monster", "Blacktongue"), "general", 12, 360, MonsterAIID::Counselor, 3, 15, 30, RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_DEATHW, P_("monster", "Viletouch"), "general", 12, 525, MonsterAIID::Gargoyle, 3, 20, 40, IMMUNE_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_RSNAKE, P_("monster", "Viperflame"), "general", 12, 570, MonsterAIID::SkeletonMelee, 1, 25, 35, IMMUNE_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_BSNAKE, P_("monster", "Fangskin"), "bhka", 14, 681, MonsterAIID::SkeletonMelee, 2, 15, 50, IMMUNE_MAGIC | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_SUCCUBUS, P_("monster", "Witchfire the Unholy"), "general", 12, 444, MonsterAIID::Succubus, 3, 10, 20, IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_BALROG, P_("monster", "Blackskull"), "bhka", 13, 750, MonsterAIID::SkeletonMelee, 3, 25, 40, IMMUNE_MAGIC | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_UNRAV, P_("monster", "Soulslash"), "general", 12, 450, MonsterAIID::SkeletonMelee, 0, 25, 25, IMMUNE_MAGIC, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_VTEXLRD, P_("monster", "Windspawn"), "general", 12, 711, MonsterAIID::SkeletonMelee, 1, 35, 40, IMMUNE_MAGIC | IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_GSNAKE, P_("monster", "Lord of the Pit"), "general", 13, 762, MonsterAIID::SkeletonMelee, 2, 25, 42, RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_RTBLACK, P_("monster", "Rustweaver"), "general", 13, 400, MonsterAIID::SkeletonMelee, 3, 1, 60, IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_HOLOWONE, P_("monster", "Howlingire the Shade"), "general", 13, 450, MonsterAIID::SkeletonMelee, 2, 40, 75, RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_MAEL, P_("monster", "Doomcloud"), "general", 13, 612, MonsterAIID::Storm, 1, 1, 60, RESIST_FIRE | IMMUNE_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_PAINMSTR, P_("monster", "Bloodmoon Soulfire"), "general", 13, 684, MonsterAIID::SkeletonMelee, 1, 15, 40, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_SNOWWICH, P_("monster", "Witchmoon"), "general", 13, 310, MonsterAIID::Succubus, 3, 30, 40, RESIST_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_VTEXLRD, P_("monster", "Gorefeast"), "general", 13, 771, MonsterAIID::SkeletonMelee, 3, 20, 55, RESIST_FIRE, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_RTBLACK, P_("monster", "Graywar the Slayer"), "general", 14, 672, MonsterAIID::SkeletonMelee, 1, 30, 50, RESIST_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_MAGISTR, P_("monster", "Dreadjudge"), "general", 14, 540, MonsterAIID::Counselor, 1, 30, 40, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_HLSPWN, P_("monster", "Stareye the Witch"), "general", 14, 726, MonsterAIID::Succubus, 2, 30, 50, IMMUNE_FIRE, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_BTBLACK, P_("monster", "Steelskull the Hunter"), "general", 14, 831, MonsterAIID::SkeletonMelee, 3, 40, 50, RESIST_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_RBLACK, P_("monster", "Sir Gorash"), "general", 16, 1050, MonsterAIID::SkeletonMelee, 1, 20, 60, 0, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_CABALIST, P_("monster", "The Vizier"), "general", 15, 850, MonsterAIID::Counselor, 2, 25, 40, IMMUNE_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_REALWEAV, P_("monster", "Zamphir"), "general", 15, 891, MonsterAIID::SkeletonMelee, 2, 30, 50, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_HLSPWN, P_("monster", "Bloodlust"), "general", 15, 825, MonsterAIID::Succubus, 1, 20, 55, IMMUNE_MAGIC | IMMUNE_LIGHTNING, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_HLSPWN, P_("monster", "Webwidow"), "general", 16, 774, MonsterAIID::Succubus, 1, 20, 50, IMMUNE_MAGIC | IMMUNE_FIRE, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_SOLBRNR, P_("monster", "Fleshdancer"), "general", 16, 999, MonsterAIID::Succubus, 3, 30, 50, IMMUNE_MAGIC | RESIST_FIRE, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
{ MT_OBLORD, P_("monster", "Grimspike"), "general", 19, 534, MonsterAIID::Sneak, 1, 25, 40, IMMUNE_MAGIC | RESIST_FIRE, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
// TRANSLATORS: Unique Monster Block end |
|
{ MT_STORML, P_("monster", "Doomlock"), "general", 28, 534, MonsterAIID::Sneak, 1, 35, 55, IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING, UniqueMonsterPack::Leashed, 0, 0, TEXT_NONE }, |
|
{ MT_INVALID, nullptr, nullptr, 0, 0, MonsterAIID::Invalid, 0, 0, 0, 0, UniqueMonsterPack::None, 0, 0, TEXT_NONE }, |
|
// clang-format on |
|
}; |
|
|
|
} // namespace devilution
|
|
|