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:
parent
5de6edbeb8
commit
6c4308bce6
208 changed files with 660 additions and 793 deletions
|
|
@ -149,7 +149,7 @@ namespace Server.Engines.MLQuests
|
|||
return false;
|
||||
}
|
||||
|
||||
if (nextAvailable > DateTime.UtcNow)
|
||||
if (nextAvailable > Core.Now)
|
||||
{
|
||||
if (message)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ namespace Server.Engines.MLQuests.Mobiles
|
|||
{
|
||||
base.OnThink();
|
||||
|
||||
if (m_NextShout > DateTime.UtcNow)
|
||||
if (m_NextShout > Core.Now)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -117,7 +117,7 @@ namespace Server.Engines.MLQuests.Mobiles
|
|||
}
|
||||
}
|
||||
|
||||
m_NextShout = DateTime.UtcNow + m_ShoutDelay;
|
||||
m_NextShout = Core.Now + m_ShoutDelay;
|
||||
}
|
||||
|
||||
private void EndLock(Mobile m)
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ namespace Server.Engines.MLQuests.Objectives
|
|||
|
||||
if (obj.IsTimed)
|
||||
{
|
||||
EndTime = DateTime.UtcNow + obj.Duration;
|
||||
EndTime = Core.Now + obj.Duration;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -50,7 +50,7 @@ namespace Server.Engines.MLQuests.Objectives
|
|||
{
|
||||
if (IsTimed)
|
||||
{
|
||||
WriteTimeRemaining(g, ref y, EndTime > DateTime.UtcNow ? EndTime - DateTime.UtcNow : TimeSpan.Zero);
|
||||
WriteTimeRemaining(g, ref y, Utility.Max(EndTime - Core.Now, TimeSpan.Zero));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -39,11 +39,11 @@ namespace Server.Engines.MLQuests.Objectives
|
|||
|
||||
var nextEscort = pm.LastEscortTime + BaseEscortable.EscortDelay;
|
||||
|
||||
if (nextEscort > DateTime.UtcNow)
|
||||
if (nextEscort > Core.Now)
|
||||
{
|
||||
if (message)
|
||||
{
|
||||
var minutes = (int)Math.Ceiling((nextEscort - DateTime.UtcNow).TotalMinutes);
|
||||
var minutes = (int)Math.Ceiling((nextEscort - Core.Now).TotalMinutes);
|
||||
|
||||
if (minutes == 1)
|
||||
{
|
||||
|
|
@ -106,7 +106,7 @@ namespace Server.Engines.MLQuests.Objectives
|
|||
m_Objective = objective;
|
||||
HasCompleted = false;
|
||||
m_Timer = Timer.DelayCall(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(5), CheckDestination);
|
||||
m_LastSeenEscorter = DateTime.UtcNow;
|
||||
m_LastSeenEscorter = Core.Now;
|
||||
m_Escort = instance.Quester as BaseCreature;
|
||||
|
||||
if (MLQuestSystem.Debug && m_Escort == null && instance.Quester != null)
|
||||
|
|
@ -170,14 +170,14 @@ namespace Server.Engines.MLQuests.Objectives
|
|||
}
|
||||
else if (pm.Map != m_Escort.Map || !pm.InRange(m_Escort, 30)) // TODO: verify range
|
||||
{
|
||||
if (m_LastSeenEscorter + BaseEscortable.AbandonDelay <= DateTime.UtcNow)
|
||||
if (m_LastSeenEscorter + BaseEscortable.AbandonDelay <= Core.Now)
|
||||
{
|
||||
Abandon();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_LastSeenEscorter = DateTime.UtcNow;
|
||||
m_LastSeenEscorter = Core.Now;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -225,7 +225,7 @@ namespace Server.Engines.MLQuests.Objectives
|
|||
var instance = Instance;
|
||||
var pm = instance.Player;
|
||||
|
||||
pm.LastEscortTime = DateTime.UtcNow;
|
||||
pm.LastEscortTime = Core.Now;
|
||||
|
||||
if (m_Escort != null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ namespace Server.Engines.MLQuests.Objectives
|
|||
var pm = Instance.Player;
|
||||
|
||||
pm.AcceleratedSkill = Objective.Skill;
|
||||
pm.AcceleratedStart = DateTime.UtcNow + TimeSpan.FromMinutes(15); // TODO: Is there a max duration?
|
||||
pm.AcceleratedStart = Core.Now + TimeSpan.FromMinutes(15); // TODO: Is there a max duration?
|
||||
}
|
||||
|
||||
public override void OnQuestCancelled()
|
||||
|
|
@ -145,7 +145,7 @@ namespace Server.Engines.MLQuests.Objectives
|
|||
|
||||
var pm = Instance.Player;
|
||||
|
||||
pm.AcceleratedStart = DateTime.UtcNow;
|
||||
pm.AcceleratedStart = Core.Now;
|
||||
pm.PlaySound(0x100);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue