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
|
|
@ -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 )
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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 );
|
||||
|
|
|
|||
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue