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

@ -53,7 +53,7 @@ namespace Server.Mobiles
if ( 0.02 > Utility.RandomDouble() )
PackItem( new BlackthornWelcomeBook() );
m_NextAbilityTime = DateTime.Now + TimeSpan.FromSeconds( Utility.RandomMinMax( 5, 30 ) );
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds( Utility.RandomMinMax( 5, 30 ) );
}
public override void OnDeath( Container c )
@ -146,10 +146,10 @@ namespace Server.Mobiles
{
Mobile combatant = Combatant;
if ( DateTime.Now < m_NextAbilityTime || combatant == null || combatant.Deleted || combatant.Map != Map || !InRange( combatant, 3 ) || !CanBeHarmful( combatant ) || !InLOS( combatant ) )
if ( DateTime.UtcNow < m_NextAbilityTime || combatant == null || combatant.Deleted || combatant.Map != Map || !InRange( combatant, 3 ) || !CanBeHarmful( combatant ) || !InLOS( combatant ) )
return;
m_NextAbilityTime = DateTime.Now + TimeSpan.FromSeconds( Utility.RandomMinMax( 5, 30 ) );
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds( Utility.RandomMinMax( 5, 30 ) );
if ( Utility.RandomBool() )
{

View file

@ -129,7 +129,7 @@ namespace Server.Mobiles
Animate( 111, 5, 1, true, false, 0 ); // Do a little dance...
if ( AIObject != null )
AIObject.NextMove = DateTime.Now + TimeSpan.FromSeconds( 1.0 );
AIObject.NextMove = DateTime.UtcNow + TimeSpan.FromSeconds( 1.0 );
if ( list.Count >= 3 )
{
@ -140,7 +140,7 @@ namespace Server.Mobiles
dancer.Animate( 111, 5, 1, true, false, 0 ); // Get down tonight...
if ( dancer.AIObject != null )
dancer.AIObject.NextMove = DateTime.Now + TimeSpan.FromSeconds( 1.0 );
dancer.AIObject.NextMove = DateTime.UtcNow + TimeSpan.FromSeconds( 1.0 );
}
Timer.DelayCall( TimeSpan.FromSeconds( 1.0 ), new TimerCallback( EndSavageDance ) );

View file

@ -72,7 +72,7 @@ namespace Server.Mobiles
Hue = 0x41CE;
m_Target = target;
m_ExpireTime = DateTime.Now + TimeSpan.FromMinutes( 10.0 );
m_ExpireTime = DateTime.UtcNow + TimeSpan.FromMinutes( 10.0 );
SetStr( 401, 500 );
SetDex( 296, 315 );
@ -129,7 +129,7 @@ namespace Server.Mobiles
public override void OnThink()
{
if ( !m_Target.Alive || DateTime.Now > m_ExpireTime )
if ( !m_Target.Alive || DateTime.UtcNow > m_ExpireTime )
{
Delete();
return;

View file

@ -102,16 +102,16 @@ namespace Server.Mobiles
if ( combatant == null || combatant.Deleted || combatant.Map != Map || !InRange( combatant, 12 ) || !CanBeHarmful( combatant ) || !InLOS( combatant ) )
return;
if ( DateTime.Now >= m_NextBomb )
if ( DateTime.UtcNow >= m_NextBomb )
{
ThrowBomb( combatant );
m_Thrown++;
if ( 0.75 >= Utility.RandomDouble() && (m_Thrown % 2) == 1 ) // 75% chance to quickly throw another bomb
m_NextBomb = DateTime.Now + TimeSpan.FromSeconds( 3.0 );
m_NextBomb = DateTime.UtcNow + TimeSpan.FromSeconds( 3.0 );
else
m_NextBomb = DateTime.Now + TimeSpan.FromSeconds( 5.0 + (10.0 * Utility.RandomDouble()) ); // 5-15 seconds
m_NextBomb = DateTime.UtcNow + TimeSpan.FromSeconds( 5.0 + (10.0 * Utility.RandomDouble()) ); // 5-15 seconds
}
}