fix(core): Caches DateTime.NowUtc (#548)

- [X] Caches DateTime.NowUtc on the game loop (not other threads)
- [X] Replaces all locations where it makes sense
- [X] Adds Min/Max for `IComparable` (TimeSpan, DateTimes, etc)

Closes #261
This commit is contained in:
Kamron Batman 2021-03-13 01:32:04 -08:00 • committed by GitHub
parent 5de6edbeb8
commit 6c4308bce6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
208 changed files with 660 additions and 793 deletions

View file

@ -19,7 +19,7 @@ namespace Server.Targeting
CheckLOS = true;
}
public DateTime TimeoutTime { get; private set; }
public long TimeoutTime { get; private set; }
public bool CheckLOS { get; set; }
@ -41,13 +41,13 @@ namespace Server.Targeting
m.Target?.OnTargetCancel(m, TargetCancelType.Canceled);
}
public void BeginTimeout(Mobile from, TimeSpan delay)
public void BeginTimeout(Mobile from, long delay)
{
TimeoutTime = DateTime.UtcNow + delay;
TimeoutTime = Core.TickCount + delay;
m_TimeoutTimer?.Stop();
m_TimeoutTimer = new TimeoutTimer(this, from, delay);
m_TimeoutTimer = new TimeoutTimer(this, from, TimeSpan.FromMilliseconds(delay));
m_TimeoutTimer.Start();
}