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

@ -83,16 +83,9 @@ namespace Server.Engines.VeteranRewards
return false;
}
var totalTime = DateTime.UtcNow - acct.Created;
ts = list.Age - (Core.Now - acct.Created);
ts = list.Age - totalTime;
if (ts <= TimeSpan.Zero)
{
return true;
}
return false;
return ts <= TimeSpan.Zero;
}
public static int GetRewardLevel(Mobile mob)
@ -107,7 +100,7 @@ namespace Server.Engines.VeteranRewards
public static int GetRewardLevel(Account acct)
{
var totalTime = DateTime.UtcNow - acct.Created;
var totalTime = Core.Now - acct.Created;
return Math.Max((int)(totalTime.TotalDays / RewardInterval.TotalDays), 0);
}
@ -124,7 +117,7 @@ namespace Server.Engines.VeteranRewards
public static bool HasHalfLevel(Account acct)
{
var totalTime = DateTime.UtcNow - acct.Created;
var totalTime = Core.Now - acct.Created;
var level = totalTime.TotalDays / RewardInterval.TotalDays;