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:
parent
f99eefb288
commit
d2c670f5c3
241 changed files with 842 additions and 831 deletions
|
|
@ -31,7 +31,7 @@ namespace Server.Items
|
|||
Movable = false;
|
||||
m_MinDamage = minDamage;
|
||||
m_MaxDamage = maxDamage;
|
||||
m_Created = DateTime.Now;
|
||||
m_Created = DateTime.UtcNow;
|
||||
m_Duration = duration;
|
||||
m_Timer = Timer.DelayCall( TimeSpan.Zero, TimeSpan.FromSeconds( 1 ), new TimerCallback( OnTick ) );
|
||||
}
|
||||
|
|
@ -44,7 +44,7 @@ namespace Server.Items
|
|||
|
||||
private void OnTick()
|
||||
{
|
||||
DateTime now = DateTime.Now;
|
||||
DateTime now = DateTime.UtcNow;
|
||||
TimeSpan age = now - m_Created;
|
||||
|
||||
if( age > m_Duration ) {
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ namespace Server.Items
|
|||
|
||||
public static bool CheckTime( DateTime time, TimeSpan range )
|
||||
{
|
||||
return (time + range) < DateTime.Now;
|
||||
return (time + range) < DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public static string FormatTS( TimeSpan ts )
|
||||
|
|
@ -183,7 +183,7 @@ namespace Server.Items
|
|||
public void PostMessage( Mobile from, BulletinMessage thread, string subject, string[] lines )
|
||||
{
|
||||
if ( thread != null )
|
||||
thread.LastPostTime = DateTime.Now;
|
||||
thread.LastPostTime = DateTime.UtcNow;
|
||||
|
||||
AddItem( new BulletinMessage( from, thread, subject, lines ) );
|
||||
}
|
||||
|
|
@ -363,7 +363,7 @@ namespace Server.Items
|
|||
|
||||
m_Poster = poster;
|
||||
m_Subject = subject;
|
||||
m_Time = DateTime.Now;
|
||||
m_Time = DateTime.UtcNow;
|
||||
m_LastPostTime = m_Time;
|
||||
m_Thread = thread;
|
||||
m_PostedName = m_Poster.Name;
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ namespace Server.Items
|
|||
if ( !Core.SE )
|
||||
return false;
|
||||
|
||||
return ( DateTime.Now < (m_TimeOfDeath + InstancedCorpseTime) );
|
||||
return ( DateTime.UtcNow < (m_TimeOfDeath + InstancedCorpseTime) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -403,7 +403,7 @@ namespace Server.Items
|
|||
if ( m_DecayTimer != null )
|
||||
m_DecayTimer.Stop();
|
||||
|
||||
m_DecayTime = DateTime.Now + delay;
|
||||
m_DecayTime = DateTime.UtcNow + delay;
|
||||
|
||||
m_DecayTimer = new InternalTimer( this, delay );
|
||||
m_DecayTimer.Start();
|
||||
|
|
@ -551,7 +551,7 @@ namespace Server.Items
|
|||
|
||||
m_CorpseName = GetCorpseName( owner );
|
||||
|
||||
m_TimeOfDeath = DateTime.Now;
|
||||
m_TimeOfDeath = DateTime.UtcNow;
|
||||
|
||||
m_AccessLevel = owner.AccessLevel;
|
||||
m_Guild = owner.Guild as Guild;
|
||||
|
|
@ -578,10 +578,10 @@ namespace Server.Items
|
|||
{
|
||||
AggressorInfo info = owner.Aggressors[i];
|
||||
|
||||
if ( (DateTime.Now - info.LastCombatTime) < lastTime )
|
||||
if ( (DateTime.UtcNow - info.LastCombatTime) < lastTime )
|
||||
{
|
||||
m_Killer = info.Attacker;
|
||||
lastTime = (DateTime.Now - info.LastCombatTime);
|
||||
lastTime = (DateTime.UtcNow - info.LastCombatTime);
|
||||
}
|
||||
|
||||
if ( !isBaseCreature && !info.CriminalAggression )
|
||||
|
|
@ -592,10 +592,10 @@ namespace Server.Items
|
|||
{
|
||||
AggressorInfo info = owner.Aggressed[i];
|
||||
|
||||
if ( (DateTime.Now - info.LastCombatTime) < lastTime )
|
||||
if ( (DateTime.UtcNow - info.LastCombatTime) < lastTime )
|
||||
{
|
||||
m_Killer = info.Defender;
|
||||
lastTime = (DateTime.Now - info.LastCombatTime);
|
||||
lastTime = (DateTime.UtcNow - info.LastCombatTime);
|
||||
}
|
||||
|
||||
if ( !isBaseCreature )
|
||||
|
|
@ -739,7 +739,7 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
if( reader.ReadBool() )
|
||||
BeginDecay( reader.ReadDeltaTime() - DateTime.Now );
|
||||
BeginDecay( reader.ReadDeltaTime() - DateTime.UtcNow );
|
||||
|
||||
m_Looters = reader.ReadStrongMobileList();
|
||||
m_Killer = reader.ReadMobile();
|
||||
|
|
@ -787,7 +787,7 @@ namespace Server.Items
|
|||
case 7:
|
||||
{
|
||||
if ( reader.ReadBool() )
|
||||
BeginDecay( reader.ReadDeltaTime() - DateTime.Now );
|
||||
BeginDecay( reader.ReadDeltaTime() - DateTime.UtcNow );
|
||||
|
||||
goto case 6;
|
||||
}
|
||||
|
|
@ -831,7 +831,7 @@ namespace Server.Items
|
|||
case 0:
|
||||
{
|
||||
if ( version < 10 )
|
||||
m_TimeOfDeath = DateTime.Now;
|
||||
m_TimeOfDeath = DateTime.UtcNow;
|
||||
|
||||
if ( version < 7 )
|
||||
BeginDecay( m_DefaultDecayTime );
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ namespace Server.Items
|
|||
if ( m_DecayTimer != null )
|
||||
m_DecayTimer.Stop();
|
||||
|
||||
m_DecayTime = DateTime.Now + delay;
|
||||
m_DecayTime = DateTime.UtcNow + delay;
|
||||
|
||||
m_DecayTimer = new InternalTimer( this, delay );
|
||||
m_DecayTimer.Start();
|
||||
|
|
@ -105,7 +105,7 @@ namespace Server.Items
|
|||
case 1:
|
||||
{
|
||||
if ( reader.ReadBool() )
|
||||
BeginDecay( reader.ReadDeltaTime() - DateTime.Now );
|
||||
BeginDecay( reader.ReadDeltaTime() - DateTime.UtcNow );
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ namespace Server.Items
|
|||
{
|
||||
Movable = false;
|
||||
Light = LightType.Circle225;
|
||||
m_NextSpawn = DateTime.Now;
|
||||
m_NextSpawn = DateTime.UtcNow;
|
||||
m_NextSpawnDelay = TimeSpan.FromMinutes( 15.0 );
|
||||
m_SpawnRange = 5;
|
||||
}
|
||||
|
|
@ -122,7 +122,7 @@ namespace Server.Items
|
|||
m_NextSpawnDelay = reader.ReadTimeSpan();
|
||||
}
|
||||
|
||||
m_NextSpawn = DateTime.Now;
|
||||
m_NextSpawn = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public virtual void HeedWarning()
|
||||
|
|
@ -134,7 +134,7 @@ namespace Server.Items
|
|||
|
||||
public override void OnMovement( Mobile m, Point3D oldLocation )
|
||||
{
|
||||
if( m_NextSpawn < DateTime.Now ) // means we haven't spawned anything if the next spawn is below
|
||||
if( m_NextSpawn < DateTime.UtcNow ) // means we haven't spawned anything if the next spawn is below
|
||||
{
|
||||
if( Utility.InRange( m.Location, Location, 1 ) && !Utility.InRange( oldLocation, Location, 1 ) && m.Player && !(m.AccessLevel > AccessLevel.Player || m.Hidden) )
|
||||
{
|
||||
|
|
@ -181,7 +181,7 @@ namespace Server.Items
|
|||
{
|
||||
try
|
||||
{
|
||||
if( m_NextSpawn < DateTime.Now )
|
||||
if( m_NextSpawn < DateTime.UtcNow )
|
||||
{
|
||||
Map map = this.Map;
|
||||
BaseCreature bc = (BaseCreature)Activator.CreateInstance( m_Creatures[Utility.Random( m_Creatures.Length )] );
|
||||
|
|
@ -205,7 +205,7 @@ namespace Server.Items
|
|||
bc.ForceReacquire();
|
||||
} );
|
||||
|
||||
m_NextSpawn = DateTime.Now + m_NextSpawnDelay;
|
||||
m_NextSpawn = DateTime.UtcNow + m_NextSpawnDelay;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ namespace Server.Items
|
|||
{
|
||||
Movable = false;
|
||||
m_LitBy = litBy;
|
||||
m_Expire = DateTime.Now + TimeSpan.FromSeconds( 10 );
|
||||
m_Expire = DateTime.UtcNow + TimeSpan.FromSeconds( 10 );
|
||||
m_Burning = toDamage;
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromSeconds( 1.0 ), TimeSpan.FromSeconds( 1.0 ), new TimerCallback( OnFirebombFieldTimerTick ) );
|
||||
}
|
||||
|
|
@ -302,7 +302,7 @@ namespace Server.Items
|
|||
m_Burning.RemoveAt( i );
|
||||
}
|
||||
|
||||
if ( DateTime.Now >= m_Expire )
|
||||
if ( DateTime.UtcNow >= m_Expire )
|
||||
{
|
||||
m_Timer.Stop();
|
||||
Delete();
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ namespace Server.Items
|
|||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that
|
||||
}
|
||||
else if ( Visible && ( ItemID == 4656 || ItemID == 4702 ) && DateTime.Now >= m_NextUse )
|
||||
else if ( Visible && ( ItemID == 4656 || ItemID == 4702 ) && DateTime.UtcNow >= m_NextUse )
|
||||
{
|
||||
Point3D p = this.GetWorldLocation();
|
||||
|
||||
|
|
@ -41,7 +41,7 @@ namespace Server.Items
|
|||
|
||||
Timer.DelayCall( TimeSpan.FromSeconds( 5.00 ), new TimerCallback( BackUp ) );
|
||||
|
||||
m_NextUse = DateTime.Now + TimeSpan.FromSeconds( 10.0 );
|
||||
m_NextUse = DateTime.UtcNow + TimeSpan.FromSeconds( 10.0 );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@ namespace Server.Items
|
|||
|
||||
if ( text.Length > 0 )
|
||||
{
|
||||
PlayerBBMessage message = new PlayerBBMessage( DateTime.Now, from, text );
|
||||
PlayerBBMessage message = new PlayerBBMessage( DateTime.UtcNow, from, text );
|
||||
|
||||
if ( m_Greeting )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ namespace Server.Items
|
|||
|
||||
m_MinDamage = minDamage;
|
||||
m_MaxDamage = maxDamage;
|
||||
m_Created = DateTime.Now;
|
||||
m_Created = DateTime.UtcNow;
|
||||
m_Duration = duration;
|
||||
|
||||
m_Timer = Timer.DelayCall( TimeSpan.Zero, TimeSpan.FromSeconds( 1 ), new TimerCallback( OnTick ) );
|
||||
|
|
@ -46,7 +46,7 @@ namespace Server.Items
|
|||
|
||||
private void OnTick()
|
||||
{
|
||||
DateTime now = DateTime.Now;
|
||||
DateTime now = DateTime.UtcNow;
|
||||
TimeSpan age = now - m_Created;
|
||||
|
||||
if( age > m_Duration ) {
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ namespace Server.Items
|
|||
return;
|
||||
|
||||
if ( m_User.Deleted || m_User.Map != Map || !m_User.InRange( this, 3 )
|
||||
|| m_User.NetState == null || DateTime.Now - m_LastUse >= m_UseTimeout )
|
||||
|| m_User.NetState == null || DateTime.UtcNow - m_LastUse >= m_UseTimeout )
|
||||
{
|
||||
m_User.CloseGump( typeof( GameGump ) );
|
||||
}
|
||||
|
|
@ -223,7 +223,7 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
m_User = from;
|
||||
m_LastUse = DateTime.Now;
|
||||
m_LastUse = DateTime.UtcNow;
|
||||
|
||||
from.SendGump( new GameGump( this, from, 0, false ) );
|
||||
}
|
||||
|
|
@ -375,7 +375,7 @@ namespace Server.Items
|
|||
if ( 40.0 + Utility.RandomDouble() * 80.0 < lockpicking )
|
||||
{
|
||||
m_From.SendGump( new GameGump( m_Panel, m_From, m_Step, true ) );
|
||||
m_Panel.m_LastUse = DateTime.Now;
|
||||
m_Panel.m_LastUse = DateTime.UtcNow;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -422,7 +422,7 @@ namespace Server.Items
|
|||
{
|
||||
m_From.PlaySound( 0x1F4 );
|
||||
m_From.SendGump( new GameGump( m_Panel, m_From, m_Step + 1, false ) );
|
||||
m_Panel.m_LastUse = DateTime.Now;
|
||||
m_Panel.m_LastUse = DateTime.UtcNow;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -650,7 +650,7 @@ namespace Server.Items
|
|||
m.SendLocalizedMessage(m_ProgressNumber);
|
||||
|
||||
if (m_ShowTimeRemaining)
|
||||
m.SendMessage("Time remaining: {0}", FormatTime(m_Table[m].Timer.Next - DateTime.Now));
|
||||
m.SendMessage("Time remaining: {0}", FormatTime(m_Table[m].Timer.Next - DateTime.UtcNow));
|
||||
|
||||
Timer.DelayCall<Mobile>(TimeSpan.FromSeconds(5), EndLock, m);
|
||||
}
|
||||
|
|
@ -842,7 +842,7 @@ namespace Server.Items
|
|||
Mobile m = reader.ReadMobile();
|
||||
DateTime end = reader.ReadDateTime();
|
||||
|
||||
StartTimer(m, end - DateTime.Now);
|
||||
StartTimer(m, end - DateTime.UtcNow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,10 +96,10 @@ namespace Server.Items
|
|||
|
||||
public virtual void Broadcast( Mobile triggerer )
|
||||
{
|
||||
if ( m_Broadcasting || (DateTime.Now < (m_LastBroadcast + m_ResetDelay)) )
|
||||
if ( m_Broadcasting || (DateTime.UtcNow < (m_LastBroadcast + m_ResetDelay)) )
|
||||
return;
|
||||
|
||||
m_LastBroadcast = DateTime.Now;
|
||||
m_LastBroadcast = DateTime.UtcNow;
|
||||
|
||||
m_Broadcasting = true;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue