Convert movement, actions (lift/use), combat, and spells to use Core.TickCount and avoid DateTime caveats (performance, system time dependency, etc) Refactor DateTime.Now to DateTime.UtcNow Add LOS check for Iron Maiden addon
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();
|
|
}
|
|
}
|
|
} |