ModernUO/Scripts/Mobiles/Vendors/NPC/Scribe.cs
2018-09-14 12:56:58 -07:00

76 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
namespace Server.Mobiles
{
public class Scribe : BaseVendor
{
private List<SBInfo> m_SBInfos = new List<SBInfo>();
protected override List<SBInfo> SBInfos => m_SBInfos;
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
private DateTime m_NextShush;
public static readonly TimeSpan ShushDelay = TimeSpan.FromMinutes( 1 );
[Constructible]
public Scribe() : base( "the scribe" )
{
SetSkill( SkillName.EvalInt, 60.0, 83.0 );
SetSkill( SkillName.Inscribe, 90.0, 100.0 );
}
public override void InitSBInfo()
{
m_SBInfos.Add( new SBScribe() );
}
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
public override void InitOutfit()
{
base.InitOutfit();
AddItem( new Items.Robe( Utility.RandomNeutralHue() ) );
}
public override bool HandlesOnSpeech( Mobile from )
{
return from.Player;
}
public override void OnSpeech( SpeechEventArgs e )
{
base.OnSpeech( e );
if ( !e.Handled && m_NextShush <= DateTime.UtcNow && InLOS( e.Mobile ) )
{
Direction = GetDirectionTo( e.Mobile );
PlaySound( Female ? 0x32F : 0x441 );
PublicOverheadMessage( Network.MessageType.Regular, 0x3B2, 1073990 ); // Shhhh!
m_NextShush = DateTime.UtcNow + ShushDelay;
e.Handled = true;
}
}
public Scribe( 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();
}
}
}