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 )