/*Created by Hammerhand*/ using System; using System.Collections; using Server.Items; using Server.Targeting; namespace Server.Mobiles { [CorpseName( "a mutated elf corpse" )] public class MutatedElf : BaseCreature { private static bool m_Talked; // flag to prevent spam string[] kfcsay = new string[] // things to say while greeting { "You sweet, me eat!", "You good, be my food!", "Fe Fi Fo Fum, you look yum yum!!!", }; [Constructable] public MutatedElf () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) { Name = "A Mutated Elf"; Body = 53; BaseSoundID = 427; Hue = 2001; SetStr( 767, 945 ); SetDex( 206, 275 ); SetInt( 456, 470 ); SetHits( 1476, 1552 ); SetDamage( 20, 25 ); SetDamageType( ResistanceType.Physical, 100 ); SetResistance( ResistanceType.Physical, 85, 95 ); SetResistance( ResistanceType.Fire, 30, 40 ); SetResistance( ResistanceType.Cold, 100, 105 ); SetResistance( ResistanceType.Poison, 80, 85 ); SetResistance( ResistanceType.Energy, 70, 75 ); SetSkill( SkillName.MagicResist, 125.1, 140.0 ); SetSkill( SkillName.Tactics, 90.1, 100.0 ); SetSkill( SkillName.Wrestling, 90.1, 100.0 ); Fame = 15000; Karma = -15000; VirtualArmor = 60; } public override void GenerateLoot() { AddLoot( LootPack.Rich, 2 ); } public override bool CanRummageCorpses{ get{ return true; } } public override Poison PoisonImmune{ get{ return Poison.Regular; } } public override bool AlwaysMurderer { get { return true; } } public override void OnMovement(Mobile m, Point3D oldLocation) { if (m_Talked == false) { if (m.InRange(this, 4)) { m_Talked = true; SayRandom(kfcsay, this); this.Move(GetDirectionTo(m.Location)); // Start timer to prevent spam SpamTimer t = new SpamTimer(); t.Start(); } } } private class SpamTimer : Timer { public SpamTimer() : base(TimeSpan.FromSeconds(8)) { Priority = TimerPriority.OneSecond; } protected override void OnTick() { m_Talked = false; } } private static void SayRandom(string[] say, Mobile m) { m.Say(say[Utility.Random(say.Length)]); } public MutatedElf(Serial serial) : base(serial) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); } } }