ModernUO/Projects/UOContent/Engines/Khaldun/Mobiles/LysanderGathenwale.cs
Kamron Batman bdee7bc671
fix: Fixes NPC slowness. (#955)
* Adds the following configurations:
  * `movement.delay.npcMinDelay` - 0.1 - Pets or Non-monster NPCs
  * `movement.delay.npcMaxDelay` - 0.4 - Pets or Non-monster NPCs
  * `movement.delay.monsterMinDelay` - 0.4 - Non-pet Monsters or NPC vs Player Combat
  * `movement.delay.monsterMaxDelay` - 0.8 - Non-pet Monsters or NPC vs Player Combat
  * `movement.delay.monsterMinDex` - 150 - Dex maximum for delay by dex
  * `movement.delay.MinDex` - 190 - Dex maximum for delay by dex
2022-03-10 22:55:06 -08:00

120 lines
3.2 KiB
C#

using Server.Items;
namespace Server.Mobiles
{
public class LysanderGathenwale : BaseCreature
{
[Constructible]
public LysanderGathenwale() : base(AIType.AI_Mage)
{
Title = "the Cursed";
Hue = 0x8838;
Body = 0x190;
AddItem(new Boots(0x599));
AddItem(new Cloak(0x96F));
var spellbook = new Spellbook();
var gloves = new RingmailGloves();
var chest = new StuddedChest();
var arms = new PlateArms();
spellbook.Hue = 0x599;
gloves.Hue = 0x599;
chest.Hue = 0x96F;
arms.Hue = 0x599;
AddItem(spellbook);
AddItem(gloves);
AddItem(chest);
AddItem(arms);
SetStr(111, 120);
SetDex(71, 80);
SetInt(121, 130);
SetHits(180, 207);
SetMana(227, 265);
SetDamage(5, 13);
SetResistance(ResistanceType.Physical, 35, 45);
SetResistance(ResistanceType.Fire, 25, 30);
SetResistance(ResistanceType.Cold, 50, 60);
SetResistance(ResistanceType.Poison, 25, 35);
SetResistance(ResistanceType.Energy, 25, 35);
SetSkill(SkillName.Wrestling, 80.1, 90.0);
SetSkill(SkillName.Tactics, 90.1, 100.0);
SetSkill(SkillName.MagicResist, 80.1, 90.0);
SetSkill(SkillName.Magery, 90.1, 100.0);
SetSkill(SkillName.EvalInt, 95.1, 100.0);
SetSkill(SkillName.Meditation, 90.1, 100.0);
Fame = 5000;
Karma = -10000;
var reags = Loot.RandomReagent();
reags.Amount = 30;
PackItem(reags);
}
public LysanderGathenwale(Serial serial) : base(serial)
{
}
public override bool ClickTitle => false;
public override bool ShowFameTitle => false;
public override bool DeleteCorpseOnDeath => true;
public override string DefaultName => "Lysander Gatherwale";
public override bool AlwaysMurderer => true;
public override int GetIdleSound() => 0x1CE;
public override int GetAngerSound() => 0x1AC;
public override int GetDeathSound() => 0x182;
public override int GetHurtSound() => 0x28D;
public override void GenerateLoot()
{
AddLoot(LootPack.MedScrolls, 2);
}
public override bool OnBeforeDeath()
{
if (!base.OnBeforeDeath())
{
return false;
}
Backpack?.Destroy();
if (Utility.Random(3) == 0)
{
var notebook = Loot.RandomLysanderNotebook();
notebook.MoveToWorld(Location, Map);
}
Effects.SendLocationEffect(Location, Map, 0x376A, 10, 1);
return true;
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}