ModernUO/Projects/UOContent/Mobiles/Monsters/ML/Animal/Ferret.cs
2020-08-21 19:50:36 -07:00

109 lines
2.4 KiB
C#

using System;
using Server.Engines.Quests;
namespace Server.Mobiles
{
public class Ferret : BaseCreature
{
private static readonly string[] m_Vocabulary =
{
"dook",
"dook dook",
"dook dook dook!"
};
private bool m_CanTalk;
[Constructible]
public Ferret() : base(AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4)
{
Body = 0x117;
SetStr(41, 48);
SetDex(55);
SetInt(75);
SetHits(45, 50);
SetDamage(7, 9);
SetDamageType(ResistanceType.Physical, 100);
SetResistance(ResistanceType.Physical, 45, 50);
SetResistance(ResistanceType.Fire, 10, 14);
SetResistance(ResistanceType.Cold, 30, 40);
SetResistance(ResistanceType.Poison, 21, 25);
SetResistance(ResistanceType.Energy, 20, 25);
SetSkill(SkillName.MagicResist, 4.0);
SetSkill(SkillName.Tactics, 4.0);
SetSkill(SkillName.Wrestling, 4.0);
Tamable = true;
ControlSlots = 1;
MinTameSkill = -21.3;
m_CanTalk = true;
}
public Ferret(Serial serial) : base(serial)
{
}
public override string CorpseName => "a ferret corpse";
public override string DefaultName => "a ferret";
public override int Meat => 1;
public override FoodType FavoriteFood => FoodType.Fish;
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (m is Ferret ferret && ferret.InRange(this, 3) && ferret.Alive)
Talk(ferret);
}
public void Talk()
{
Talk(null);
}
public void Talk(Ferret to)
{
if (m_CanTalk)
{
if (to != null)
QuestSystem.FocusTo(this, to);
Say(m_Vocabulary.RandomElement());
if (to != null && Utility.RandomBool())
Timer.DelayCall(TimeSpan.FromSeconds(Utility.RandomMinMax(5, 8)), to.Talk);
m_CanTalk = false;
Timer.DelayCall(TimeSpan.FromSeconds(Utility.RandomMinMax(20, 30)), ResetCanTalk);
}
}
private void ResetCanTalk()
{
m_CanTalk = true;
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
m_CanTalk = true;
}
}
}