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

@ -100,7 +100,7 @@ namespace Server.Mobiles
from.SendLocalizedMessage(1071182); // The cow nimbly escapes your attempts to milk it.
}
if (Milk == 0 && MilkedOn + TimeSpan.FromDays(1) > DateTime.UtcNow)
if (Milk == 0 && MilkedOn + TimeSpan.FromDays(1) > Core.Now)
{
from.SendLocalizedMessage(1080198); // This cow can not be milked now. Please wait for some time.
}
@ -111,7 +111,7 @@ namespace Server.Mobiles
Milk = 4;
}
MilkedOn = DateTime.UtcNow;
MilkedOn = Core.Now;
Milk--;
return true;

View file

@ -54,7 +54,7 @@ namespace Server.Mobiles
set
{
m_NextWoolTime = value;
Body = DateTime.UtcNow >= m_NextWoolTime ? 0xCF : 0xDF;
Body = Core.Now >= m_NextWoolTime ? 0xCF : 0xDF;
}
}
@ -68,7 +68,7 @@ namespace Server.Mobiles
public void Carve(Mobile from, Item item)
{
if (DateTime.UtcNow < m_NextWoolTime)
if (Core.Now < m_NextWoolTime)
{
// This sheep is not yet ready to be shorn.
PrivateOverheadMessage(MessageType.Regular, 0x3B2, 500449, from.NetState);
@ -78,13 +78,13 @@ namespace Server.Mobiles
from.SendLocalizedMessage(500452); // You place the gathered wool into your backpack.
from.AddToBackpack(new Wool(Map == Map.Felucca ? 2 : 1));
NextWoolTime = DateTime.UtcNow + TimeSpan.FromHours(3.0); // TODO: Proper time delay
NextWoolTime = Core.Now + TimeSpan.FromHours(3.0); // TODO: Proper time delay
}
public override void OnThink()
{
base.OnThink();
Body = DateTime.UtcNow >= m_NextWoolTime ? 0xCF : 0xDF;
Body = Core.Now >= m_NextWoolTime ? 0xCF : 0xDF;
}
public override void Serialize(IGenericWriter writer)

View file

@ -134,10 +134,10 @@ namespace Server.Mobiles
var attacker = from ?? m_Rider.FindMostRecentDamager(true);
if (!(attacker == this || attacker == m_Rider || willKill || DateTime.UtcNow < NextMountAbility)
if (!(attacker == this || attacker == m_Rider || willKill || Core.Now < NextMountAbility)
&& DoMountAbility(amount, from))
{
NextMountAbility = DateTime.UtcNow + MountAbilityDelay;
NextMountAbility = Core.Now + MountAbilityDelay;
}
}