Files
abysmal-isle/Scripts/Scripts-master/Quests/GingerbreadQuest/Mobiles/MutatedElf.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

120 lines
2.8 KiB
C#

/*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();
}
}
}