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

@ -47,7 +47,7 @@ namespace Server.Multis
m_CurrentStage = level;
if ( DynamicDecay.Decays( level ) )
m_NextDecayStage = DateTime.Now + DynamicDecay.GetRandomDuration( level );
m_NextDecayStage = DateTime.UtcNow + DynamicDecay.GetRandomDuration( level );
else
m_NextDecayStage = DateTime.MinValue;
}
@ -171,14 +171,14 @@ namespace Server.Multis
if ( DynamicDecay.Enabled )
ResetDynamicDecay();
m_LastRefreshed = DateTime.Now;
m_LastRefreshed = DateTime.UtcNow;
result = DecayLevel.Ageless;
}
else if ( DynamicDecay.Enabled )
{
DecayLevel stage = m_CurrentStage;
if ( stage == DecayLevel.Ageless || ( DynamicDecay.Decays( stage ) && m_NextDecayStage <= DateTime.Now ) )
if ( stage == DecayLevel.Ageless || ( DynamicDecay.Decays( stage ) && m_NextDecayStage <= DateTime.UtcNow ) )
SetDynamicDecay( ++stage );
if ( stage == DecayLevel.Collapsed && ( HasRentedVendors || VendorInventories.Count > 0 ) )
@ -205,7 +205,7 @@ namespace Server.Multis
public DecayLevel GetOldDecayLevel()
{
TimeSpan timeAfterRefresh = DateTime.Now - m_LastRefreshed;
TimeSpan timeAfterRefresh = DateTime.UtcNow - m_LastRefreshed;
int percent = (int) ((timeAfterRefresh.Ticks * 1000) / DecayPeriod.Ticks);
if ( percent >= 1000 ) // 100.0%
@ -231,7 +231,7 @@ namespace Server.Multis
DecayLevel oldLevel = this.DecayLevel;
m_LastRefreshed = DateTime.Now;
m_LastRefreshed = DateTime.UtcNow;
if ( DynamicDecay.Enabled )
ResetDynamicDecay();
@ -1217,9 +1217,9 @@ namespace Server.Multis
{
m_AllHouses.Add( this );
m_LastRefreshed = DateTime.Now;
m_LastRefreshed = DateTime.UtcNow;
m_BuiltOn = DateTime.Now;
m_BuiltOn = DateTime.UtcNow;
m_LastTraded = DateTime.MinValue;
m_Doors = new ArrayList();
@ -1763,7 +1763,7 @@ namespace Server.Multis
m_House.Friends.Clear();
m_House.CoOwners.Clear();
m_House.ChangeLocks( to );
m_House.LastTraded = DateTime.Now;
m_House.LastTraded = DateTime.UtcNow;
}
}
@ -2020,7 +2020,7 @@ namespace Server.Multis
Guild attackerGuild = m.Guild as Guild;
Guild defenderGuild = info.Defender.Guild as Guild;
if ( info.Defender.Player && info.Defender.Alive && (DateTime.Now - info.LastCombatTime) < HouseRegion.CombatHeatDelay && (attackerGuild == null || defenderGuild == null || defenderGuild != attackerGuild && !defenderGuild.IsEnemy( attackerGuild )) )
if ( info.Defender.Player && info.Defender.Alive && (DateTime.UtcNow - info.LastCombatTime) < HouseRegion.CombatHeatDelay && (attackerGuild == null || defenderGuild == null || defenderGuild != attackerGuild && !defenderGuild.IsEnemy( attackerGuild )) )
return true;
}
@ -2506,7 +2506,7 @@ namespace Server.Multis
{
Item child = children[j];
if ( child.Decays && !child.IsLockedDown && !child.IsSecure && (child.LastMoved + child.DecayTime) <= DateTime.Now )
if ( child.Decays && !child.IsLockedDown && !child.IsSecure && (child.LastMoved + child.DecayTime) <= DateTime.UtcNow )
Timer.DelayCall( TimeSpan.Zero, new TimerCallback( child.Delete ) );
}
}
@ -2728,7 +2728,7 @@ namespace Server.Multis
}
if ( version < 11 )
m_LastRefreshed = DateTime.Now + TimeSpan.FromHours( 24 * Utility.RandomDouble() );
m_LastRefreshed = DateTime.UtcNow + TimeSpan.FromHours( 24 * Utility.RandomDouble() );
if ( DynamicDecay.Enabled && !loadedDynamicDecay )
{