using ModernUO.Serialization; using Server.Items; namespace Server.Mobiles { [SerializationGenerator(0, false)] public partial class Nightmare : BaseMount { public override string DefaultName => "a nightmare"; [Constructible] public Nightmare() : base(0x74, 0x3EA7, AIType.AI_Mage) { BaseSoundID = Core.AOS ? 0xA8 : 0x16A; // Publish 97 if (Core.TOL) { if (Utility.RandomDouble() < 0.3) { SetStr(296, 315); ControlSlots = 2; } else { SetStr(496, 525); ControlSlots = 3; } } else { SetStr(496, 525); ControlSlots = 2; } SetDex(86, 105); SetInt(86, 125); SetHits(298, 315); SetDamage(16, 22); SetDamageType(ResistanceType.Physical, 40); SetDamageType(ResistanceType.Fire, 40); SetDamageType(ResistanceType.Energy, 20); SetResistance(ResistanceType.Physical, 55, 65); SetResistance(ResistanceType.Fire, 30, 40); SetResistance(ResistanceType.Cold, 30, 40); SetResistance(ResistanceType.Poison, 30, 40); SetResistance(ResistanceType.Energy, 20, 30); SetSkill(SkillName.EvalInt, 10.4, 50.0); SetSkill(SkillName.Magery, 10.4, 50.0); SetSkill(SkillName.MagicResist, 85.3, 100.0); SetSkill(SkillName.Tactics, 97.6, 100.0); SetSkill(SkillName.Wrestling, 80.5, 92.5); Fame = 14000; Karma = -14000; VirtualArmor = 60; Tamable = true; MinTameSkill = 95.1; switch (Utility.Random(3)) { case 0: { Body = 116; ItemID = 16039; break; } case 1: { Body = 178; ItemID = 16041; break; } case 2: { Body = 179; ItemID = 16055; break; } } PackItem(new SulfurousAsh(Utility.RandomMinMax(3, 5))); } public override int StepsMax => 6400; public override string CorpseName => "a nightmare corpse"; public override int Meat => 5; public override int Hides => 10; public override HideType HideType => HideType.Barbed; public override FoodType FavoriteFood => FoodType.Meat; public override bool CanAngerOnTame => true; private static MonsterAbility[] _abilities = { MonsterAbilities.FireBreath }; public override MonsterAbility[] GetMonsterAbilities() => _abilities; public override void GenerateLoot() { AddLoot(LootPack.Rich); AddLoot(LootPack.Average); AddLoot(LootPack.LowScrolls); AddLoot(LootPack.Potions); } public override int GetAngerSound() { if (!Controlled) { return 0x16A; } return base.GetAngerSound(); } } }