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

@ -293,7 +293,7 @@ namespace Server.Misc
}
if (from is PlayerMobile pm && skill.SkillName == pm.AcceleratedSkill &&
pm.AcceleratedStart > DateTime.UtcNow)
pm.AcceleratedStart > Core.Now)
{
toGain *= Utility.RandomMinMax(2, 5);
}
@ -433,51 +433,51 @@ namespace Server.Misc
{
if (from is BaseCreature creature && creature.Controlled)
{
if (creature.LastStrGain + m_PetStatGainDelay >= DateTime.UtcNow)
if (creature.LastStrGain + m_PetStatGainDelay >= Core.Now)
{
return;
}
}
else if (from.LastStrGain + m_StatGainDelay >= DateTime.UtcNow)
else if (from.LastStrGain + m_StatGainDelay >= Core.Now)
{
return;
}
from.LastStrGain = DateTime.UtcNow;
from.LastStrGain = Core.Now;
break;
}
case Stat.Dex:
{
if (from is BaseCreature creature && creature.Controlled)
{
if (creature.LastDexGain + m_PetStatGainDelay >= DateTime.UtcNow)
if (creature.LastDexGain + m_PetStatGainDelay >= Core.Now)
{
return;
}
}
else if (from.LastDexGain + m_StatGainDelay >= DateTime.UtcNow)
else if (from.LastDexGain + m_StatGainDelay >= Core.Now)
{
return;
}
from.LastDexGain = DateTime.UtcNow;
from.LastDexGain = Core.Now;
break;
}
case Stat.Int:
{
if (from is BaseCreature creature && creature.Controlled)
{
if (creature.LastIntGain + m_PetStatGainDelay >= DateTime.UtcNow)
if (creature.LastIntGain + m_PetStatGainDelay >= Core.Now)
{
return;
}
}
else if (from.LastIntGain + m_StatGainDelay >= DateTime.UtcNow)
else if (from.LastIntGain + m_StatGainDelay >= Core.Now)
{
return;
}
from.LastIntGain = DateTime.UtcNow;
from.LastIntGain = Core.Now;
break;
}
}