|
|
|
|
@ -12,6 +12,16 @@
|
|
|
|
|
|
|
|
|
|
namespace devilution { |
|
|
|
|
|
|
|
|
|
namespace { |
|
|
|
|
|
|
|
|
|
// Returns an `mTreasure` 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
|
|
|
|
|
@ -67,8 +77,8 @@ const MonsterData MonstersData[] = {
|
|
|
|
|
/* MT_RACID */ { P_("monster", "Poison Spitter"), "Acid\\Acid", "Monsters\\Acid\\Acid%c%i.WAV", "Monsters\\Acid\\AcidBlk.TRN", MonsterAvailability::Retail, 128, 716, true, true, true, { 13, 8, 12, 8, 16, 12 }, { 1, 1, 1, 1, 1, 1 }, 8, 10, 15, 60, 85, AI_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", "Monsters\\Acid\\Acid%c%i.WAV", "Monsters\\Acid\\AcidB.TRN", MonsterAvailability::Retail, 128, 716, true, true, true, { 13, 8, 12, 8, 16, 12 }, { 1, 1, 1, 1, 1, 1 }, 10, 12, 21, 80, 110, AI_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", "Monsters\\Acid\\Acid%c%i.WAV", "Monsters\\Acid\\AcidR.TRN", MonsterAvailability::Retail, 128, 716, true, true, true, { 13, 8, 12, 8, 16, 12 }, { 1, 1, 1, 1, 1, 1 }, 12, 14, 25, 100, 150, AI_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", "Monsters\\SKing\\SKing%c%i.WAV", "Monsters\\SkelAxe\\White.TRN", MonsterAvailability::Never, 160, 1010, true, true, true, { 8, 6, 16, 6, 16, 6 }, { 2, 1, 1, 1, 1, 2 }, 4, 4, 9, 140, 140, AI_SKELKING, 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_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , 7,T_UNIQ+UITEM_SKCROWN, 570 }, |
|
|
|
|
/* MT_CLEAVER */ { P_("monster", "The Butcher"), "FatC\\FatC", "Monsters\\FatC\\FatC%c%i.WAV", nullptr, MonsterAvailability::Never, 128, 980, false, false, false, { 10, 8, 12, 6, 16, 0 }, { 1, 1, 1, 1, 1, 1 }, 1, 1, 1, 320, 320, AI_CLEAVER, 0 , 3, 50, 8, 6, 12, 0, 0, 0, 0, 50, MonsterClass::Demon, RESIST_FIRE | RESIST_LIGHTNING , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING , 3,T_UNIQ+UITEM_CLEAVER, 710 }, |
|
|
|
|
/* MT_SKING */ { P_("monster", "Skeleton King"), "SKing\\SKing", "Monsters\\SKing\\SKing%c%i.WAV", "Monsters\\SkelAxe\\White.TRN", MonsterAvailability::Never, 160, 1010, true, true, true, { 8, 6, 16, 6, 16, 6 }, { 2, 1, 1, 1, 1, 2 }, 4, 4, 9, 140, 140, AI_SKELKING, 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_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , 7, Uniq(UITEM_SKCROWN), 570 }, |
|
|
|
|
/* MT_CLEAVER */ { P_("monster", "The Butcher"), "FatC\\FatC", "Monsters\\FatC\\FatC%c%i.WAV", nullptr, MonsterAvailability::Never, 128, 980, false, false, false, { 10, 8, 12, 6, 16, 0 }, { 1, 1, 1, 1, 1, 1 }, 1, 1, 1, 320, 320, AI_CLEAVER, 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", "Monsters\\Fat\\Fat%c%i.WAV", nullptr, MonsterAvailability::Retail, 128, 1130, true, false, false, { 8, 10, 15, 6, 16, 10 }, { 4, 1, 1, 1, 1, 1 }, 5, 7, 10, 60, 80, AI_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", "Monsters\\Fat\\Fat%c%i.WAV", "Monsters\\Fat\\Blue.TRN", MonsterAvailability::Retail, 128, 1130, true, false, true, { 8, 10, 15, 6, 16, 10 }, { 4, 1, 1, 1, 1, 1 }, 7, 9, 14, 100, 125, AI_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", "Monsters\\Fat\\Fat%c%i.WAV", "Monsters\\Fat\\FatB.TRN", MonsterAvailability::Retail, 128, 1130, true, false, true, { 8, 10, 15, 6, 16, 10 }, { 4, 1, 1, 1, 1, 1 }, 8, 10, 16, 135, 160, AI_FAT, MFLAG_SEARCH , 2, 70, 8, 8, 16, 40, 0, 8, 20, 65, MonsterClass::Demon, IMMUNE_MAGIC , IMMUNE_MAGIC | RESIST_LIGHTNING , 3, 0, 1380 }, |
|
|
|
|
|