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

@ -113,8 +113,8 @@ namespace Server.SkillHandlers
protected override void OnTargetFinish( Mobile from )
{
if ( m_SetSkillTime )
from.NextSkillTime = DateTime.Now;
if (m_SetSkillTime)
from.NextSkillTime = Core.TickCount;
}
public virtual void ResetPacify( object obj )
@ -198,7 +198,7 @@ namespace Server.SkillHandlers
}
else
{
creature.BardEndTime = DateTime.Now;
creature.BardEndTime = DateTime.UtcNow;
}
creature.BardPacified = false;
@ -252,7 +252,7 @@ namespace Server.SkillHandlers
m_Creature = creature;
m_MaxCount = count;
m_Paralyzed = creature.Paralyzed;
m_StartTime = DateTime.Now;
m_StartTime = DateTime.UtcNow;
Priority = TimerPriority.TwoFiftyMS;
}
@ -266,56 +266,56 @@ namespace Server.SkillHandlers
if ( !m_Tamer.InRange( m_Creature, Core.AOS ? 7 : 6 ) )
{
m_BeingTamed.Remove( m_Creature );
m_Tamer.NextSkillTime = DateTime.Now;
m_Tamer.NextSkillTime = Core.TickCount;
m_Creature.PrivateOverheadMessage( MessageType.Regular, 0x3B2, 502795, m_Tamer.NetState ); // You are too far away to continue taming.
Stop();
}
else if ( !m_Tamer.CheckAlive() )
{
m_BeingTamed.Remove( m_Creature );
m_Tamer.NextSkillTime = DateTime.Now;
m_Tamer.NextSkillTime = Core.TickCount;
m_Creature.PrivateOverheadMessage( MessageType.Regular, 0x3B2, 502796, m_Tamer.NetState ); // You are dead, and cannot continue taming.
Stop();
}
else if ( !m_Tamer.CanSee( m_Creature ) || !m_Tamer.InLOS( m_Creature ) || !CanPath() )
{
m_BeingTamed.Remove( m_Creature );
m_Tamer.NextSkillTime = DateTime.Now;
m_Tamer.NextSkillTime = Core.TickCount;
m_Tamer.SendLocalizedMessage( 1049654 ); // You do not have a clear path to the animal you are taming, and must cease your attempt.
Stop();
}
else if ( !m_Creature.Tamable )
{
m_BeingTamed.Remove( m_Creature );
m_Tamer.NextSkillTime = DateTime.Now;
m_Tamer.NextSkillTime = Core.TickCount;
m_Creature.PrivateOverheadMessage( MessageType.Regular, 0x3B2, 1049655, m_Tamer.NetState ); // That creature cannot be tamed.
Stop();
}
else if ( m_Creature.Controlled )
{
m_BeingTamed.Remove( m_Creature );
m_Tamer.NextSkillTime = DateTime.Now;
m_Tamer.NextSkillTime = Core.TickCount;
m_Creature.PrivateOverheadMessage( MessageType.Regular, 0x3B2, 502804, m_Tamer.NetState ); // That animal looks tame already.
Stop();
}
else if ( m_Creature.Owners.Count >= BaseCreature.MaxOwners && !m_Creature.Owners.Contains( m_Tamer ) )
{
m_BeingTamed.Remove( m_Creature );
m_Tamer.NextSkillTime = DateTime.Now;
m_Tamer.NextSkillTime = Core.TickCount;
m_Creature.PrivateOverheadMessage( MessageType.Regular, 0x3B2, 1005615, m_Tamer.NetState ); // This animal has had too many owners and is too upset for you to tame.
Stop();
}
else if ( MustBeSubdued( m_Creature ) )
{
m_BeingTamed.Remove( m_Creature );
m_Tamer.NextSkillTime = DateTime.Now;
m_Tamer.NextSkillTime = Core.TickCount;
m_Creature.PrivateOverheadMessage( MessageType.Regular, 0x3B2, 1054025, m_Tamer.NetState ); // You must subdue this creature before you can tame it!
Stop();
}
else if ( de != null && de.LastDamage > m_StartTime )
{
m_BeingTamed.Remove( m_Creature );
m_Tamer.NextSkillTime = DateTime.Now;
m_Tamer.NextSkillTime = Core.TickCount;
m_Creature.PrivateOverheadMessage( MessageType.Regular, 0x3B2, 502794, m_Tamer.NetState ); // The animal is too angry to continue taming.
Stop();
}
@ -339,7 +339,7 @@ namespace Server.SkillHandlers
else
{
m_Tamer.RevealingAction();
m_Tamer.NextSkillTime = DateTime.Now;
m_Tamer.NextSkillTime = Core.TickCount;
m_BeingTamed.Remove( m_Creature );
if ( m_Creature.Paralyzed )

View file

@ -37,7 +37,7 @@ namespace Server.SkillHandlers
protected override void OnTargetFinish( Mobile from )
{
if ( m_SetSkillTime )
from.NextSkillTime = DateTime.Now;
from.NextSkillTime = Core.TickCount;
}
protected override void OnTarget( Mobile from, object targeted )
@ -167,7 +167,7 @@ namespace Server.SkillHandlers
m_Target.SendLocalizedMessage( 500404 ); // They seem unwilling to give you any money.
}
m_From.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 10.0 );
m_From.NextSkillTime = Core.TickCount + 10000;
}
}
}

View file

@ -27,7 +27,7 @@ namespace Server.SkillHandlers
from.RevealingAction();
from.SendLocalizedMessage( 1049541 ); // Choose the target for your song of discordance.
from.Target = new DiscordanceTarget( from, instrument );
from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 6.0 );
from.NextSkillTime = Core.TickCount + 6000;
}
private class DiscordanceInfo
@ -44,7 +44,7 @@ namespace Server.SkillHandlers
{
m_From = from;
m_Creature = creature;
m_EndTime = DateTime.Now;
m_EndTime = DateTime.UtcNow;
m_Ending = false;
m_Effect = effect;
m_Mods = mods;
@ -115,7 +115,7 @@ namespace Server.SkillHandlers
ends = true;
}
if ( ends && info.m_Ending && info.m_EndTime < DateTime.Now )
if ( ends && info.m_Ending && info.m_EndTime < DateTime.UtcNow )
{
if ( info.m_Timer != null )
info.m_Timer.Stop();
@ -128,12 +128,12 @@ namespace Server.SkillHandlers
if ( ends && !info.m_Ending )
{
info.m_Ending = true;
info.m_EndTime = DateTime.Now + TimeSpan.FromSeconds( 15 );
info.m_EndTime = DateTime.UtcNow + TimeSpan.FromSeconds( 15 );
}
else if ( !ends )
{
info.m_Ending = false;
info.m_EndTime = DateTime.Now;
info.m_EndTime = DateTime.UtcNow;
}
targ.FixedEffect( 0x376A, 1, 32 );
@ -152,7 +152,7 @@ namespace Server.SkillHandlers
protected override void OnTarget( Mobile from, object target )
{
from.RevealingAction();
from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 1.0 );
from.NextSkillTime = Core.TickCount + 1000;
if ( !m_Instrument.IsChildOf( from.Backpack ) )
{
@ -248,7 +248,7 @@ namespace Server.SkillHandlers
m_Instrument.ConsumeUse( from );
}
from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 12.0 );
from.NextSkillTime = Core.TickCount + 12000;
}
else
{

View file

@ -27,7 +27,7 @@ namespace Server.SkillHandlers
from.RevealingAction();
from.SendLocalizedMessage( 1049525 ); // Whom do you wish to calm?
from.Target = new InternalTarget( from, instrument );
from.NextSkillTime = DateTime.Now + TimeSpan.FromHours( 6.0 );
from.NextSkillTime = Core.TickCount + 21600000;
}
private class InternalTarget : Target
@ -43,7 +43,7 @@ namespace Server.SkillHandlers
protected override void OnTargetFinish( Mobile from )
{
if ( m_SetSkillTime )
from.NextSkillTime = DateTime.Now;
from.NextSkillTime = Core.TickCount;
}
protected override void OnTarget( Mobile from, object targeted )
@ -69,7 +69,7 @@ namespace Server.SkillHandlers
else
{
m_SetSkillTime = false;
from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 10.0 );
from.NextSkillTime = Core.TickCount + 10000;
if ( targeted == from )
{
@ -89,7 +89,7 @@ namespace Server.SkillHandlers
}
else
{
from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 5.0 );
from.NextSkillTime = Core.TickCount + 5000;
m_Instrument.PlayInstrumentWell( from );
m_Instrument.ConsumeUse( from );
@ -113,7 +113,7 @@ namespace Server.SkillHandlers
m.Warmode = false;
if ( m is BaseCreature && !((BaseCreature)m).BardPacified )
((BaseCreature)m).Pacify( from, DateTime.Now + TimeSpan.FromSeconds( 1.0 ) );
((BaseCreature)m).Pacify( from, DateTime.UtcNow + TimeSpan.FromSeconds( 1.0 ) );
}
if ( !calmed )
@ -147,7 +147,7 @@ namespace Server.SkillHandlers
else if ( !BaseInstrument.CheckMusicianship( from ) )
{
from.SendLocalizedMessage( 500612 ); // You play poorly, and there is no effect.
from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 5.0 );
from.NextSkillTime = Core.TickCount + 5000;
m_Instrument.PlayInstrumentBadly( from );
m_Instrument.ConsumeUse( from );
}
@ -170,7 +170,7 @@ namespace Server.SkillHandlers
m_Instrument.PlayInstrumentWell( from );
m_Instrument.ConsumeUse( from );
from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 5.0 );
from.NextSkillTime = Core.TickCount + 5000;
if ( targ is BaseCreature )
{
BaseCreature bc = (BaseCreature)targ;
@ -187,7 +187,7 @@ namespace Server.SkillHandlers
else if ( seconds < 10 )
seconds = 10;
bc.Pacify( from, DateTime.Now + TimeSpan.FromSeconds( seconds ) );
bc.Pacify( from, DateTime.UtcNow + TimeSpan.FromSeconds( seconds ) );
}
else
{

View file

@ -110,7 +110,7 @@ namespace Server.SkillHandlers
}
else if ( m_Creature != creature )
{
from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 10.0 );
from.NextSkillTime = Core.TickCount + 10000;
double diff = ((m_Instrument.GetDifficultyFor( m_Creature ) + m_Instrument.GetDifficultyFor( creature )) * 0.5) - 5.0;
double music = from.Skills[SkillName.Musicianship].Value;
@ -122,7 +122,7 @@ namespace Server.SkillHandlers
{
if ( !BaseInstrument.CheckMusicianship( from ) )
{
from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 5.0 );
from.NextSkillTime = Core.TickCount + 5000;
from.SendLocalizedMessage( 500612 ); // You play poorly, and there is no effect.
m_Instrument.PlayInstrumentBadly( from );
m_Instrument.ConsumeUse( from );
@ -134,7 +134,7 @@ namespace Server.SkillHandlers
if ( !from.CheckTargetSkill( SkillName.Provocation, creature, diff-25.0, diff+25.0 ) )
{
from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 5.0 );
from.NextSkillTime = Core.TickCount + 5000;
from.SendLocalizedMessage( 501599 ); // Your music fails to incite enough anger.
m_Instrument.PlayInstrumentBadly( from );
m_Instrument.ConsumeUse( from );

View file

@ -112,7 +112,7 @@ namespace Server.SkillHandlers
public override void OnDisturb( DisturbType type, bool message )
{
Caster.NextSkillTime = DateTime.Now;
Caster.NextSkillTime = Core.TickCount;
base.OnDisturb( type, message );
}

View file

@ -150,13 +150,13 @@ namespace Server.SkillHandlers
else
{
if ( sig.IsBeingCorrupted )
sig.GraceStart = DateTime.Now; // begin grace period
sig.GraceStart = DateTime.UtcNow; // begin grace period
m_Thief.SendLocalizedMessage( 1010586 ); // YOU STOLE THE SIGIL!!! (woah, calm down now)
if ( sig.LastMonolith != null && sig.LastMonolith.Sigil != null ) {
sig.LastMonolith.Sigil = null;
sig.LastStolen = DateTime.Now;
sig.LastStolen = DateTime.UtcNow;
}
return sig;
@ -413,7 +413,7 @@ namespace Server.SkillHandlers
public Mobile Victim{ get{ return m_Victim; } }
public DateTime Expires{ get{ return m_Expires; } }
public bool IsExpired{ get{ return ( DateTime.Now >= m_Expires ); } }
public bool IsExpired{ get{ return ( DateTime.UtcNow >= m_Expires ); } }
public StolenItem( Item stolen, Mobile thief, Mobile victim )
{
@ -421,7 +421,7 @@ namespace Server.SkillHandlers
m_Thief = thief;
m_Victim = victim;
m_Expires = DateTime.Now + StealTime;
m_Expires = DateTime.UtcNow + StealTime;
}
private static Queue m_Queue = new Queue();
@ -469,7 +469,7 @@ namespace Server.SkillHandlers
else
si.m_Victim.SendLocalizedMessage( 1010463 ); // the item that was stolen from you falls to the ground.
si.m_Expires = DateTime.Now; // such a hack
si.m_Expires = DateTime.UtcNow; // such a hack
}
}
}