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
|
|
@ -178,10 +178,10 @@ namespace Server.Items
|
|||
|
||||
DateTime next = reader.ReadDateTime();
|
||||
|
||||
if( next < DateTime.Now )
|
||||
if( next < DateTime.UtcNow )
|
||||
m_Timer = Timer.DelayCall( TimeSpan.Zero, RechargeTime, new TimerCallback( Recharge ) );
|
||||
else
|
||||
m_Timer = Timer.DelayCall( next - DateTime.Now, RechargeTime, new TimerCallback( Recharge ) );
|
||||
m_Timer = Timer.DelayCall( next - DateTime.UtcNow, RechargeTime, new TimerCallback( Recharge ) );
|
||||
}
|
||||
|
||||
public void Recharge()
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ namespace Server.Items
|
|||
m_SpawnTimer = new SpawnTimer( this, delay );
|
||||
m_SpawnTimer.Start();
|
||||
|
||||
m_NextSpawnTime = DateTime.Now + delay;
|
||||
m_NextSpawnTime = DateTime.UtcNow + delay;
|
||||
}
|
||||
|
||||
private void StopSpawnTimer()
|
||||
|
|
@ -158,7 +158,7 @@ namespace Server.Items
|
|||
m_Level = (SecureLevel) reader.ReadEncodedInt();
|
||||
|
||||
if ( m_Petals < 10 )
|
||||
StartSpawnTimer( m_NextSpawnTime - DateTime.Now );
|
||||
StartSpawnTimer( m_NextSpawnTime - DateTime.UtcNow );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ namespace Server.Items
|
|||
|
||||
public override void OnComponentUsed( AddonComponent c, Mobile from )
|
||||
{
|
||||
if ( from.InRange( Location, 2 ) )
|
||||
if ( from.InRange( this.GetWorldLocation(), 2 ) && from.InLOS( this.GetWorldLocation() ) )
|
||||
{
|
||||
if ( Utility.RandomBool() )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ namespace Server.Items
|
|||
}
|
||||
else
|
||||
{
|
||||
int daysLeft = (int)Math.Ceiling( ( deed.Stone.Started + deed.Stone.Duration + HouseRaffleStone.ExpirationTime - DateTime.Now ).TotalDays );
|
||||
int daysLeft = (int)Math.Ceiling( ( deed.Stone.Started + deed.Stone.Duration + HouseRaffleStone.ExpirationTime - DateTime.UtcNow ).TotalDays );
|
||||
|
||||
return String.Format(
|
||||
"<bodytextblack>" +
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ namespace Server.Items
|
|||
else
|
||||
m_Address = IPAddress.None;
|
||||
|
||||
m_Date = DateTime.Now;
|
||||
m_Date = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public void Serialize( GenericWriter writer )
|
||||
|
|
@ -123,7 +123,7 @@ namespace Server.Items
|
|||
m_Entries.Clear();
|
||||
m_Winner = null;
|
||||
m_Deed = null;
|
||||
m_Started = DateTime.Now;
|
||||
m_Started = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
m_State = value;
|
||||
|
|
@ -194,7 +194,7 @@ namespace Server.Items
|
|||
if ( m_State != HouseRaffleState.Completed )
|
||||
return false;
|
||||
|
||||
return ( m_Started + m_Duration + ExpirationTime <= DateTime.Now );
|
||||
return ( m_Started + m_Duration + ExpirationTime <= DateTime.UtcNow );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -520,7 +520,7 @@ namespace Server.Items
|
|||
|
||||
public void CheckEnd()
|
||||
{
|
||||
if ( m_State != HouseRaffleState.Active || m_Started + m_Duration > DateTime.Now )
|
||||
if ( m_State != HouseRaffleState.Active || m_Started + m_Duration > DateTime.UtcNow )
|
||||
return;
|
||||
|
||||
m_State = HouseRaffleState.Completed;
|
||||
|
|
|
|||
|
|
@ -260,7 +260,7 @@ namespace Server.Items
|
|||
{
|
||||
from.Send( new AsciiMessage( this.Serial, this.ItemID, MessageType.Regular, 0x22, 3, "", "You cannot summon your pet to this location." ) );
|
||||
}
|
||||
else if ( Core.ML && from is PlayerMobile && DateTime.Now < ((PlayerMobile)from).LastPetBallTime.AddSeconds( 15.0 ) )
|
||||
else if ( Core.ML && from is PlayerMobile && DateTime.UtcNow < ((PlayerMobile)from).LastPetBallTime.AddSeconds( 15.0 ) )
|
||||
{
|
||||
MessageHelper.SendLocalizedMessageTo( this, from, 1080072, 0x22 ); // You must wait a few seconds before you can summon your pet.
|
||||
}
|
||||
|
|
@ -308,7 +308,7 @@ namespace Server.Items
|
|||
|
||||
if ( from is PlayerMobile )
|
||||
{
|
||||
((PlayerMobile)from).LastPetBallTime = DateTime.Now;
|
||||
((PlayerMobile)from).LastPetBallTime = DateTime.UtcNow;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ namespace Server.Items
|
|||
{
|
||||
AggressorInfo info = m.Aggressed[i];
|
||||
|
||||
if ( DateTime.Now - info.LastCombatTime < time )
|
||||
if ( DateTime.UtcNow - info.LastCombatTime < time )
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -158,7 +158,7 @@ namespace Server.Items
|
|||
|
||||
protected virtual bool CheckUse( Mobile from )
|
||||
{
|
||||
DateTime now = DateTime.Now;
|
||||
DateTime now = DateTime.UtcNow;
|
||||
|
||||
PlayerMobile pm = from as PlayerMobile;
|
||||
|
||||
|
|
@ -218,7 +218,7 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
#region Scroll of Alacrity
|
||||
if ( pm.AcceleratedStart > DateTime.Now )
|
||||
if ( pm.AcceleratedStart > DateTime.UtcNow )
|
||||
{
|
||||
from.SendLocalizedMessage(1078115); // You may not use a soulstone while your character is under the effects of a Scroll of Alacrity.
|
||||
return false;
|
||||
|
|
@ -595,7 +595,7 @@ namespace Server.Items
|
|||
|
||||
#region Scroll of ALacrity
|
||||
PlayerMobile pm = from as PlayerMobile;
|
||||
if (pm.AcceleratedStart > DateTime.Now)
|
||||
if (pm.AcceleratedStart > DateTime.UtcNow)
|
||||
{
|
||||
// <CENTER>Unable to Absorb Selected Skill from Soulstone</CENTER>
|
||||
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ namespace Server.Items
|
|||
#endregion
|
||||
|
||||
#region Scroll of Alacrity
|
||||
if (pm.AcceleratedStart > DateTime.Now)
|
||||
if (pm.AcceleratedStart > DateTime.UtcNow)
|
||||
{
|
||||
from.SendLocalizedMessage(1077951); // You are already under the effect of an accelerated skillgain scroll.
|
||||
return false;
|
||||
|
|
@ -129,7 +129,7 @@ namespace Server.Items
|
|||
Effects.PlaySound( from.Location, from.Map, 0x1E9 );
|
||||
Effects.SendTargetParticles( from, 0x373A, 35, 45, 0x00, 0x00, 9502, (EffectLayer)255, 0x100 );
|
||||
|
||||
pm.AcceleratedStart = DateTime.Now + TimeSpan.FromMinutes(15);
|
||||
pm.AcceleratedStart = DateTime.UtcNow + TimeSpan.FromMinutes(15);
|
||||
|
||||
Timer t = (Timer)m_Table[from];
|
||||
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ namespace Server.Items
|
|||
#endregion
|
||||
|
||||
#region Scroll of Alacrity
|
||||
if (pm.AcceleratedStart > DateTime.Now)
|
||||
if (pm.AcceleratedStart > DateTime.UtcNow)
|
||||
{
|
||||
from.SendLocalizedMessage(1077951); // You are already under the effect of an accelerated skillgain scroll.
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -59,9 +59,9 @@ namespace Server.Items
|
|||
{
|
||||
m.SendLocalizedMessage( 1060197 ); // You are not dead, and thus cannot be resurrected!
|
||||
}
|
||||
else if ( m.AnkhNextUse > DateTime.Now )
|
||||
else if ( m.AnkhNextUse > DateTime.UtcNow )
|
||||
{
|
||||
TimeSpan delay = m.AnkhNextUse - DateTime.Now;
|
||||
TimeSpan delay = m.AnkhNextUse - DateTime.UtcNow;
|
||||
|
||||
if ( delay.TotalMinutes > 0 )
|
||||
m.SendLocalizedMessage( 1079265, Math.Round( delay.TotalMinutes ).ToString() ); // You must wait ~1_minutes~ minutes before you can use this item.
|
||||
|
|
@ -142,7 +142,7 @@ namespace Server.Items
|
|||
|
||||
if ( from is PlayerMobile )
|
||||
{
|
||||
((PlayerMobile) from).AnkhNextUse = DateTime.Now + TimeSpan.FromHours( 1 );
|
||||
((PlayerMobile) from).AnkhNextUse = DateTime.UtcNow + TimeSpan.FromHours( 1 );
|
||||
}
|
||||
|
||||
base.OnResponse( state, info );
|
||||
|
|
|
|||
|
|
@ -273,7 +273,7 @@ namespace Server.Items
|
|||
if ( m_Timer != null )
|
||||
writer.Write( (DateTime) m_Timer.Next );
|
||||
else
|
||||
writer.Write( (DateTime) DateTime.Now + TimeSpan.FromDays( 1 ) );
|
||||
writer.Write( (DateTime) DateTime.UtcNow + TimeSpan.FromDays( 1 ) );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
|
|
@ -294,10 +294,10 @@ namespace Server.Items
|
|||
|
||||
DateTime next = reader.ReadDateTime();
|
||||
|
||||
if ( next < DateTime.Now )
|
||||
next = DateTime.Now;
|
||||
if ( next < DateTime.UtcNow )
|
||||
next = DateTime.UtcNow;
|
||||
|
||||
m_Timer = Timer.DelayCall( next - DateTime.Now, TimeSpan.FromDays( 1 ), new TimerCallback( GiveResources ) );
|
||||
m_Timer = Timer.DelayCall( next - DateTime.UtcNow, TimeSpan.FromDays( 1 ), new TimerCallback( GiveResources ) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ namespace Server.Items
|
|||
if ( m_Timer != null )
|
||||
writer.Write( (DateTime) m_Timer.Next );
|
||||
else
|
||||
writer.Write( (DateTime) DateTime.Now + TimeSpan.FromDays( 1 ) );
|
||||
writer.Write( (DateTime) DateTime.UtcNow + TimeSpan.FromDays( 1 ) );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
|
|
@ -148,10 +148,10 @@ namespace Server.Items
|
|||
|
||||
DateTime next = reader.ReadDateTime();
|
||||
|
||||
if ( next < DateTime.Now )
|
||||
next = DateTime.Now;
|
||||
if ( next < DateTime.UtcNow )
|
||||
next = DateTime.UtcNow;
|
||||
|
||||
m_Timer = Timer.DelayCall( next - DateTime.Now, TimeSpan.FromDays( 1 ), new TimerCallback( GiveLogs ) );
|
||||
m_Timer = Timer.DelayCall( next - DateTime.UtcNow, TimeSpan.FromDays( 1 ), new TimerCallback( GiveLogs ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue