Implement Core.TickCount

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
This commit is contained in:
Mark Sturgill 2013-10-06 03:21:18 -07:00
parent f99eefb288
commit d2c670f5c3
241 changed files with 842 additions and 831 deletions

View file

@ -62,13 +62,13 @@ namespace Server.Engines.MLQuests.Objectives
m_Instance = instance;
if ( obj.IsTimed )
m_EndTime = DateTime.Now + obj.Duration;
m_EndTime = DateTime.UtcNow + obj.Duration;
}
public virtual void WriteToGump( Gump g, ref int y )
{
if ( IsTimed )
WriteTimeRemaining( g, ref y, ( m_EndTime > DateTime.Now ) ? ( m_EndTime - DateTime.Now ) : TimeSpan.Zero );
WriteTimeRemaining( g, ref y, ( m_EndTime > DateTime.UtcNow ) ? ( m_EndTime - DateTime.UtcNow ) : TimeSpan.Zero );
}
public static void WriteTimeRemaining( Gump g, ref int y, TimeSpan timeRemaining )

View file

@ -52,11 +52,11 @@ namespace Server.Engines.MLQuests.Objectives
DateTime nextEscort = pm.LastEscortTime + BaseEscortable.EscortDelay;
if ( nextEscort > DateTime.Now )
if ( nextEscort > DateTime.UtcNow )
{
if ( message )
{
int minutes = (int)Math.Ceiling( ( nextEscort - DateTime.Now ).TotalMinutes );
int minutes = (int)Math.Ceiling( ( nextEscort - DateTime.UtcNow ).TotalMinutes );
if ( minutes == 1 )
MLQuestSystem.Tell( quester, pm, "You must rest 1 minute before we set out on this journey." );
@ -111,7 +111,7 @@ namespace Server.Engines.MLQuests.Objectives
m_Objective = objective;
m_HasCompleted = false;
m_Timer = Timer.DelayCall( TimeSpan.FromSeconds( 5 ), TimeSpan.FromSeconds( 5 ), new TimerCallback( CheckDestination ) );
m_LastSeenEscorter = DateTime.Now;
m_LastSeenEscorter = DateTime.UtcNow;
m_Escort = instance.Quester as BaseCreature;
if ( MLQuestSystem.Debug && m_Escort == null && instance.Quester != null )
@ -158,12 +158,12 @@ namespace Server.Engines.MLQuests.Objectives
}
else if ( pm.Map != m_Escort.Map || !pm.InRange( m_Escort, 30 ) ) // TODO: verify range
{
if ( m_LastSeenEscorter + BaseEscortable.AbandonDelay <= DateTime.Now )
if ( m_LastSeenEscorter + BaseEscortable.AbandonDelay <= DateTime.UtcNow )
Abandon();
}
else
{
m_LastSeenEscorter = DateTime.Now;
m_LastSeenEscorter = DateTime.UtcNow;
}
}
@ -212,7 +212,7 @@ namespace Server.Engines.MLQuests.Objectives
MLQuestInstance instance = Instance;
PlayerMobile pm = instance.Player;
pm.LastEscortTime = DateTime.Now;
pm.LastEscortTime = DateTime.UtcNow;
if ( m_Escort != null )
BeginFollow( m_Escort, pm );

View file

@ -155,7 +155,7 @@ namespace Server.Engines.MLQuests.Objectives
PlayerMobile pm = Instance.Player;
pm.AcceleratedSkill = m_Objective.Skill;
pm.AcceleratedStart = DateTime.Now + TimeSpan.FromMinutes( 15 ); // TODO: Is there a max duration?
pm.AcceleratedStart = DateTime.UtcNow + TimeSpan.FromMinutes( 15 ); // TODO: Is there a max duration?
}
public override void OnQuestCancelled()
@ -165,7 +165,7 @@ namespace Server.Engines.MLQuests.Objectives
PlayerMobile pm = Instance.Player;
pm.AcceleratedStart = DateTime.Now;
pm.AcceleratedStart = DateTime.UtcNow;
pm.PlaySound( 0x100 );
}