80 lines
No EOL
1.8 KiB
C#
80 lines
No EOL
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Server;
|
|
|
|
namespace Server.Mobiles
|
|
{
|
|
public class Scribe : BaseVendor
|
|
{
|
|
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
|
protected override List<SBInfo> SBInfos{ get { return m_SBInfos; } }
|
|
|
|
public override NpcGuild NpcGuild{ get{ return NpcGuild.MagesGuild; } }
|
|
|
|
private DateTime m_NextShush;
|
|
public static readonly TimeSpan ShushDelay = TimeSpan.FromMinutes( 1 );
|
|
|
|
[Constructable]
|
|
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
|
|
{
|
|
get{ return Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals; }
|
|
}
|
|
|
|
public override void InitOutfit()
|
|
{
|
|
base.InitOutfit();
|
|
|
|
AddItem( new Server.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();
|
|
}
|
|
}
|
|
} |