Files
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

208 lines
5.3 KiB
C#

/*Created by Hammerhand*/
using System;
using Server;
using Server.Misc;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName("the Anti-Claus")]
public class KrassKringle : BaseCreature
{
public override bool IsScaredOfScaryThings { get { return false; } }
public override bool IsScaryToPets { get { return true; } }
public override bool BardImmune { get { return !Core.SE; } }
public override bool Unprovokable { get { return Core.SE; } }
public override bool Uncalmable { get { return Core.SE; } }
public override Poison PoisonImmune { get { return Poison.Lethal; } }
private static bool m_Talked; // flag to prevent spam
string[] kfcsay = new string[] // things to say while greeting
{
"HoHoHo??? Ha Ha HA!!!!",
"So you think you're GOOD huh?",
"I'm going to feed you to my reindeer!",
};
[Constructable]
public KrassKringle() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "Krass Kringle";
Title = "The Anti Claus";
Female = false;
Body = 0x190;
Hue = 1873;
NameHue = 1272;
FancyShirt shirt = new FancyShirt();
shirt.Hue = 1;
shirt.Movable = false;
AddItem(shirt);
Surcoat surcoat = new Surcoat();
surcoat.Hue = 1;
surcoat.Movable = false;
AddItem(surcoat);
LongPants longpants = new LongPants();
longpants.Hue = 1;
longpants.Movable = false;
AddItem(longpants);
Boots boots = new Boots();
boots.Hue = 1;
boots.Movable = false;
AddItem(boots);
WizardsHat hat = new WizardsHat();
hat.Hue = 1;
hat.Movable = false;
AddItem(hat);
LeatherGloves gloves = new LeatherGloves();
gloves.Hue = 1;
gloves.Movable = false;
AddItem(gloves);
HairItemID = 0x203C;
HairHue = 1153;
FacialHairItemID = 0x204B;
FacialHairHue = 1153;
{
}
SetStr( 410, 580 );
SetDex( 185, 210 );
SetInt( 300, 450 );
SetDamage(40, 75);
SetHits(5000, 10000);
SetMana(5000);
SetResistance(ResistanceType.Physical, 65, 75);
SetResistance(ResistanceType.Fire, 35, 45);
SetResistance(ResistanceType.Cold, 100, 110);
SetResistance(ResistanceType.Poison, 75, 90);
SetResistance(ResistanceType.Energy, 60, 75);
SetSkill( SkillName.Fencing, 96.0, 117.5 );
SetSkill( SkillName.Macing, 95.0, 107.5 );
SetSkill( SkillName.MagicResist, 85.0, 107.5 );
SetSkill( SkillName.Swords, 85.0, 119.5 );
SetSkill( SkillName.Tactics, 95.0, 119.5 );
SetSkill( SkillName.Wrestling, 75.0, 97.5 );
SetSkill(SkillName.Anatomy, 90.1, 100.0);
SetSkill(SkillName.MagicResist, 140.1, 150.0);
SetSkill(SkillName.Necromancy, 100.5, 110.9);
SetSkill(SkillName.Healing, 70.2, 79.4);
Fame = 1000;
Karma = -15000;
VirtualArmor = 72;
switch ( Utility.Random( 7 ))
{
case 0: AddItem( new Longsword() ); break;
case 1: AddItem( new Cutlass() ); break;
case 2: AddItem( new Broadsword() ); break;
case 3: AddItem( new Axe() ); break;
case 4: AddItem( new Club() ); break;
case 5: AddItem( new Dagger() ); break;
case 6: AddItem( new Spear() ); break;
}
}
public override void GenerateLoot()
{
AddLoot(LootPack.UltraRich, 2);
if (m_Spawning)
{
PackItem(new RecipeFragment10());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public override int GetIdleSound()
{
return 0x2F8;
}
public override int GetAttackSound()
{
return 0x2C8;
}
public override int GetHurtSound()
{
return 0x2D1;
}
public override int GetDeathSound()
{
return 0x2F7;
}
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 KrassKringle(Serial serial)
: base(serial)
{
}
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();
}
}
}