using System; using Server.Misc; using Server.Network; using System.Collections; using Server.Items; using Server.Targeting; namespace Server.Mobiles { [CorpseName( "a vampire corpse" )] public class Vampire : BaseCreature { [Constructable] public Vampire() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) { Name = NameList.RandomName( "male" ); Title = "the vampire"; Body = 400; Hue = 1150; BaseSoundID = 0x4B0; SetStr( 100, 150 ); SetDex( 345, 465 ); SetInt( 1000, 1000 ); SetHits( 350, 550 ); SetDamage( 12, 18 ); SetDamageType( ResistanceType.Cold, 100 ); SetResistance( ResistanceType.Physical, 30, 50 ); SetResistance( ResistanceType.Fire, 30, 50 ); SetResistance( ResistanceType.Cold, 30, 50 ); SetResistance( ResistanceType.Poison, 30, 50 ); SetResistance( ResistanceType.Energy, 30, 50 ); SetSkill( SkillName.MagicResist, 50.0, 70 ); SetSkill( SkillName.Tactics, 70, 80 ); SetSkill( SkillName.Wrestling, 70, 80 ); SetSkill( SkillName.Anatomy, 70, 80 ); SetSkill( SkillName.EvalInt, 90, 100 ); SetSkill( SkillName.Magery, 70, 80 ); new GhostlySteed().Rider = this; Fame = 15000; Karma = -15000; HoodedShroudOfShadows shroud = new HoodedShroudOfShadows(); shroud.Hue = 1175; AddItem( shroud ); Cloak cloak = new Cloak(); cloak.Hue = 1175; AddItem( cloak ); VirtualArmor = 74; PackGold( 2500, 3000 ); PackItem( new VampireShroud () ); PackMagicItems( 1, 2 ); PackNecroReg( Utility.Random( 1, 2 ) ); } public override bool BardImmune{ get{ return true; } } public override bool Unprovokable{ get{ return true; } } public override bool Uncalmable{ get{ return true; } } public override bool AutoDispel{ get{ return true; } } public override Poison PoisonImmune{ get{ return Poison.Deadly; } } public override Poison HitPoison{ get{ return Poison.Lesser; } } public override bool AlwaysMurderer{ get{ return true; } } public Vampire( Serial serial ) : base( serial ) { } public override bool OnBeforeDeath() { BatformVampire rm = new BatformVampire(); rm.Team = this.Team; rm.Map = this.Map; rm.Location = this.Location; Effects.SendLocationEffect( Location,Map, 0x3709, 13, 0x3B2, 0 ); Container bag = new Bag(); switch ( Utility.Random( 9 )) { case 0: bag.DropItem( new Amber() ); break; case 1: bag.DropItem( new Amethyst() ); break; case 2: bag.DropItem( new Citrine() ); break; case 3: bag.DropItem( new Diamond() ); break; case 4: bag.DropItem( new Emerald() ); break; case 5: bag.DropItem( new Ruby() ); break; case 6: bag.DropItem( new Sapphire() ); break; case 7: bag.DropItem( new StarSapphire() ); break; case 8: bag.DropItem( new Tourmaline() ); break; } switch ( Utility.Random( 8 )) { case 0: bag.DropItem( new SpidersSilk( 3 ) ); break; case 1: bag.DropItem( new BlackPearl( 3 ) ); break; case 2: bag.DropItem( new Bloodmoss( 3 ) ); break; case 3: bag.DropItem( new Garlic( 3 ) ); break; case 4: bag.DropItem( new MandrakeRoot( 3 ) ); break; case 5: bag.DropItem( new Nightshade( 3 ) ); break; case 6: bag.DropItem( new SulfurousAsh( 3 ) ); break; case 7: bag.DropItem( new Ginseng( 3 ) ); break; } bag.DropItem( new Gold( 2000, 3500 )); rm.AddItem( bag ); this.Delete(); return false; } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); } } }