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

@ -30,7 +30,7 @@ namespace Server.Engines.MLQuests
QuesterType = quester?.GetType();
Player = player;
Accepted = DateTime.UtcNow;
Accepted = Core.Now;
m_Flags = MLQuestInstanceFlags.None;
Objectives = new BaseObjectiveInstance[quest.Objectives.Count];
@ -204,7 +204,7 @@ namespace Server.Engines.MLQuests
{
if (!obj.Expired)
{
if (obj.IsTimed && obj.EndTime <= DateTime.UtcNow)
if (obj.IsTimed && obj.EndTime <= Core.Now)
{
Player.SendLocalizedMessage(1072258); // You failed to complete an objective in time!
@ -335,7 +335,7 @@ namespace Server.Engines.MLQuests
if (Quest.HasRestartDelay)
{
PlayerContext.SetDoneQuest(Quest, DateTime.UtcNow + Quest.GetRestartDelay());
PlayerContext.SetDoneQuest(Quest, Core.Now + Quest.GetRestartDelay());
}
// This is correct for ObjectiveType.Any as well