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
|
|
@ -1760,7 +1760,7 @@ namespace Server.Mobiles
|
|||
|
||||
public virtual bool DoBardPacified()
|
||||
{
|
||||
if (DateTime.UtcNow < m_Mobile.BardEndTime)
|
||||
if (Core.Now < m_Mobile.BardEndTime)
|
||||
{
|
||||
m_Mobile.DebugSay("I am pacified, I wait");
|
||||
m_Mobile.Combatant = null;
|
||||
|
|
@ -1777,7 +1777,7 @@ namespace Server.Mobiles
|
|||
|
||||
public virtual bool DoBardProvoked()
|
||||
{
|
||||
if (DateTime.UtcNow >= m_Mobile.BardEndTime &&
|
||||
if (Core.Now >= m_Mobile.BardEndTime &&
|
||||
(m_Mobile.BardMaster?.Deleted != false ||
|
||||
m_Mobile.BardMaster.Map != m_Mobile.Map || m_Mobile.GetDistanceToSqrt(m_Mobile.BardMaster) >
|
||||
m_Mobile.RangePerception))
|
||||
|
|
@ -1944,7 +1944,7 @@ namespace Server.Mobiles
|
|||
using (var op = new StreamWriter("nan_transform.txt", true))
|
||||
{
|
||||
op.WriteLine(
|
||||
$"NaN in TransformMoveDelay: {DateTime.UtcNow}, {GetType()}, {m_Mobile?.GetType()}, {m_Mobile.HitsMax}"
|
||||
$"NaN in TransformMoveDelay: {Core.Now}, {GetType()}, {m_Mobile?.GetType()}, {m_Mobile.HitsMax}"
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -962,7 +962,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
if (m_DeleteTimer?.Running == true)
|
||||
{
|
||||
return m_DeleteTimer.Next - DateTime.UtcNow;
|
||||
return m_DeleteTimer.Next - Core.Now;
|
||||
}
|
||||
|
||||
return TimeSpan.Zero;
|
||||
|
|
@ -1422,7 +1422,7 @@ namespace Server.Mobiles
|
|||
|
||||
public void Unpacify()
|
||||
{
|
||||
BardEndTime = DateTime.UtcNow;
|
||||
BardEndTime = Core.Now;
|
||||
BardPacified = false;
|
||||
}
|
||||
|
||||
|
|
@ -1907,7 +1907,7 @@ namespace Server.Mobiles
|
|||
if (m_bSummoned)
|
||||
{
|
||||
SummonEnd = reader.ReadDeltaTime();
|
||||
new UnsummonTimer(m_ControlMaster, this, SummonEnd - DateTime.UtcNow).Start();
|
||||
new UnsummonTimer(m_ControlMaster, this, SummonEnd - Core.Now).Start();
|
||||
}
|
||||
|
||||
ControlSlots = reader.ReadInt();
|
||||
|
|
@ -2631,7 +2631,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
// idling...
|
||||
|
||||
if (DateTime.UtcNow >= m_IdleReleaseTime)
|
||||
if (Core.Now >= m_IdleReleaseTime)
|
||||
{
|
||||
m_IdleReleaseTime = DateTime.MinValue;
|
||||
return false; // idle is over
|
||||
|
|
@ -2645,7 +2645,7 @@ namespace Server.Mobiles
|
|||
return false; // not idling, but don't want to enter idle state
|
||||
}
|
||||
|
||||
m_IdleReleaseTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(15, 25));
|
||||
m_IdleReleaseTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(15, 25));
|
||||
|
||||
if (Body.IsHuman)
|
||||
{
|
||||
|
|
@ -3271,7 +3271,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
if (OwnerAbandonTime == DateTime.MinValue)
|
||||
{
|
||||
OwnerAbandonTime = DateTime.UtcNow;
|
||||
OwnerAbandonTime = Core.Now;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -3551,7 +3551,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
|
||||
new UnsummonTimer(caster, creature, duration).Start();
|
||||
creature.SummonEnd = DateTime.UtcNow + duration;
|
||||
creature.SummonEnd = Core.Now + duration;
|
||||
|
||||
creature.MoveToWorld(p, caster.Map);
|
||||
|
||||
|
|
@ -3730,7 +3730,7 @@ namespace Server.Mobiles
|
|||
BardMaster = master;
|
||||
BardTarget = target;
|
||||
Combatant = target;
|
||||
BardEndTime = DateTime.UtcNow + TimeSpan.FromSeconds(30.0);
|
||||
BardEndTime = Core.Now + TimeSpan.FromSeconds(30.0);
|
||||
|
||||
if (target is BaseCreature t)
|
||||
{
|
||||
|
|
@ -3744,7 +3744,7 @@ namespace Server.Mobiles
|
|||
t.BardMaster = master;
|
||||
t.BardTarget = this;
|
||||
t.Combatant = this;
|
||||
t.BardEndTime = DateTime.UtcNow + TimeSpan.FromSeconds(30.0);
|
||||
t.BardEndTime = Core.Now + TimeSpan.FromSeconds(30.0);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -3859,7 +3859,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
if (OwnerAbandonTime == DateTime.MinValue)
|
||||
{
|
||||
OwnerAbandonTime = DateTime.UtcNow;
|
||||
OwnerAbandonTime = Core.Now;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -3933,7 +3933,7 @@ namespace Server.Mobiles
|
|||
|
||||
private void CheckShout(PlayerMobile pm, Point3D oldLocation)
|
||||
{
|
||||
if (m_MLNextShout > DateTime.UtcNow || pm.Hidden || !pm.Alive)
|
||||
if (m_MLNextShout > Core.Now || pm.Hidden || !pm.Alive)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -3960,7 +3960,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
|
||||
Shout(pm);
|
||||
m_MLNextShout = DateTime.UtcNow + ShoutDelay;
|
||||
m_MLNextShout = Core.Now + ShoutDelay;
|
||||
}
|
||||
|
||||
public virtual void Shout(PlayerMobile pm)
|
||||
|
|
@ -4187,7 +4187,7 @@ namespace Server.Mobiles
|
|||
return false;
|
||||
}
|
||||
|
||||
if (DateTime.UtcNow >= EndFleeTime)
|
||||
if (Core.Now >= EndFleeTime)
|
||||
{
|
||||
StopFlee();
|
||||
return false;
|
||||
|
|
@ -4198,7 +4198,7 @@ namespace Server.Mobiles
|
|||
|
||||
public virtual void BeginFlee(TimeSpan maxDuration)
|
||||
{
|
||||
EndFleeTime = DateTime.UtcNow + maxDuration;
|
||||
EndFleeTime = Core.Now + maxDuration;
|
||||
}
|
||||
|
||||
public virtual bool IsPetFriend(Mobile m) => Friends?.Contains(m) == true;
|
||||
|
|
@ -4398,9 +4398,9 @@ namespace Server.Mobiles
|
|||
{
|
||||
if (BondingBegin == DateTime.MinValue)
|
||||
{
|
||||
BondingBegin = DateTime.UtcNow;
|
||||
BondingBegin = Core.Now;
|
||||
}
|
||||
else if (BondingBegin + BondingDelay <= DateTime.UtcNow)
|
||||
else if (BondingBegin + BondingDelay <= Core.Now)
|
||||
{
|
||||
IsBonded = true;
|
||||
BondingBegin = DateTime.MinValue;
|
||||
|
|
@ -5617,7 +5617,7 @@ namespace Server.Mobiles
|
|||
|
||||
public LoyaltyTimer() : base(InternalDelay, InternalDelay)
|
||||
{
|
||||
m_NextHourlyCheck = DateTime.UtcNow + TimeSpan.FromHours(1.0);
|
||||
m_NextHourlyCheck = Core.Now + TimeSpan.FromHours(1.0);
|
||||
Priority = TimerPriority.FiveSeconds;
|
||||
}
|
||||
|
||||
|
|
@ -5628,12 +5628,12 @@ namespace Server.Mobiles
|
|||
|
||||
protected override void OnTick()
|
||||
{
|
||||
if (DateTime.UtcNow < m_NextHourlyCheck)
|
||||
if (Core.Now < m_NextHourlyCheck)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_NextHourlyCheck = DateTime.UtcNow + TimeSpan.FromHours(1.0);
|
||||
m_NextHourlyCheck = Core.Now + TimeSpan.FromHours(1.0);
|
||||
|
||||
var toRelease = new List<BaseCreature>();
|
||||
|
||||
|
|
@ -5662,9 +5662,9 @@ namespace Server.Mobiles
|
|||
{
|
||||
if (c.OwnerAbandonTime == DateTime.MinValue)
|
||||
{
|
||||
c.OwnerAbandonTime = DateTime.UtcNow;
|
||||
c.OwnerAbandonTime = Core.Now;
|
||||
}
|
||||
else if (c.OwnerAbandonTime + c.BondingAbandonDelay <= DateTime.UtcNow)
|
||||
else if (c.OwnerAbandonTime + c.BondingAbandonDelay <= Core.Now)
|
||||
{
|
||||
toRemove.Add(c);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ namespace Server.Mobiles
|
|||
|
||||
if (before != m_Values[index].Value)
|
||||
{
|
||||
m_Values[index].LastDecay = DateTime.UtcNow;
|
||||
m_Values[index].LastDecay = Core.Now;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -225,7 +225,7 @@ namespace Server.Mobiles
|
|||
|
||||
for (var i = 0; i < t.m_Values.Length; i++)
|
||||
{
|
||||
if (t.GetLastDecay(i) + LossDelay < DateTime.UtcNow)
|
||||
if (t.GetLastDecay(i) + LossDelay < Core.Now)
|
||||
{
|
||||
t.Atrophy(i, LossAmount);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,12 +47,12 @@ namespace Server.Mobiles
|
|||
{
|
||||
base.OnThink();
|
||||
|
||||
if (DateTime.UtcNow < m_NextRestore)
|
||||
if (Core.Now < m_NextRestore)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_NextRestore = DateTime.UtcNow + TimeSpan.FromSeconds(2.0);
|
||||
m_NextRestore = Core.Now + TimeSpan.FromSeconds(2.0);
|
||||
|
||||
var caster = ControlMaster ?? SummonMaster;
|
||||
|
||||
|
|
|
|||
|
|
@ -62,12 +62,12 @@ namespace Server.Mobiles
|
|||
{
|
||||
base.OnThink();
|
||||
|
||||
if (DateTime.UtcNow < m_NextPickup)
|
||||
if (Core.Now < m_NextPickup)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_NextPickup = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(5, 10));
|
||||
m_NextPickup = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(5, 10));
|
||||
|
||||
var pack = Backpack;
|
||||
|
||||
|
|
|
|||
|
|
@ -48,12 +48,12 @@ namespace Server.Mobiles
|
|||
{
|
||||
base.OnThink();
|
||||
|
||||
if (DateTime.UtcNow < m_NextFlare)
|
||||
if (Core.Now < m_NextFlare)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_NextFlare = DateTime.UtcNow + TimeSpan.FromSeconds(5.0 + 25.0 * Utility.RandomDouble());
|
||||
m_NextFlare = Core.Now + TimeSpan.FromSeconds(5.0 + 25.0 * Utility.RandomDouble());
|
||||
|
||||
FixedEffect(0x37C4, 1, 12, 1109, 6);
|
||||
PlaySound(0x1D3);
|
||||
|
|
|
|||
|
|
@ -113,11 +113,11 @@ namespace Server.Mobiles
|
|||
|
||||
public override void OnMovement(Mobile m, Point3D oldLocation)
|
||||
{
|
||||
if (!m.Frozen && DateTime.UtcNow >= m_NextResurrect && InRange(m, 4) && !InRange(oldLocation, 4) && InLOS(m))
|
||||
if (!m.Frozen && Core.Now >= m_NextResurrect && InRange(m, 4) && !InRange(oldLocation, 4) && InLOS(m))
|
||||
{
|
||||
if (!m.Alive)
|
||||
{
|
||||
m_NextResurrect = DateTime.UtcNow + ResurrectDelay;
|
||||
m_NextResurrect = Core.Now + ResurrectDelay;
|
||||
|
||||
if (m.Map?.CanFit(m.Location, 16, false, false) != true)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace Server.Mobiles
|
|||
var scalar = caster.Skills.SpiritSpeak.Value * 0.01;
|
||||
|
||||
m_Target = target;
|
||||
m_ExpireTime = DateTime.UtcNow + duration;
|
||||
m_ExpireTime = Core.Now + duration;
|
||||
|
||||
SetStr(200);
|
||||
SetDex(150);
|
||||
|
|
@ -87,7 +87,7 @@ namespace Server.Mobiles
|
|||
|
||||
public override void OnThink()
|
||||
{
|
||||
if (!m_Target.Alive || DateTime.UtcNow > m_ExpireTime)
|
||||
if (!m_Target.Alive || Core.Now > m_ExpireTime)
|
||||
{
|
||||
Kill();
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ namespace Server.Mobiles
|
|||
PackItem(new BlackthornWelcomeBook());
|
||||
}
|
||||
|
||||
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(5, 30));
|
||||
m_NextAbilityTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(5, 30));
|
||||
}
|
||||
|
||||
public Betrayer(Serial serial)
|
||||
|
|
@ -148,13 +148,13 @@ namespace Server.Mobiles
|
|||
{
|
||||
var combatant = Combatant;
|
||||
|
||||
if (DateTime.UtcNow < m_NextAbilityTime || combatant?.Deleted != false || combatant.Map != Map ||
|
||||
if (Core.Now < m_NextAbilityTime || combatant?.Deleted != false || combatant.Map != Map ||
|
||||
!InRange(combatant, 3) || !CanBeHarmful(combatant) || !InLOS(combatant))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(5, 30));
|
||||
m_NextAbilityTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(5, 30));
|
||||
|
||||
if (Utility.RandomBool())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace Server.Mobiles
|
|||
Hue = 0x41CE;
|
||||
|
||||
m_Target = target;
|
||||
m_ExpireTime = DateTime.UtcNow + TimeSpan.FromMinutes(10.0);
|
||||
m_ExpireTime = Core.Now + TimeSpan.FromMinutes(10.0);
|
||||
|
||||
SetStr(401, 500);
|
||||
SetDex(296, 315);
|
||||
|
|
@ -114,7 +114,7 @@ namespace Server.Mobiles
|
|||
|
||||
public override void OnThink()
|
||||
{
|
||||
if (!m_Target.Alive || DateTime.UtcNow > m_ExpireTime)
|
||||
if (!m_Target.Alive || Core.Now > m_ExpireTime)
|
||||
{
|
||||
Delete();
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ namespace Server.Mobiles
|
|||
return;
|
||||
}
|
||||
|
||||
if (DateTime.UtcNow >= m_NextBomb)
|
||||
if (Core.Now >= m_NextBomb)
|
||||
{
|
||||
ThrowBomb(combatant);
|
||||
|
||||
|
|
@ -116,11 +116,11 @@ namespace Server.Mobiles
|
|||
|
||||
if (Utility.RandomDouble() <= 0.75 && m_Thrown % 2 == 1) // 75% chance to quickly throw another bomb
|
||||
{
|
||||
m_NextBomb = DateTime.UtcNow + TimeSpan.FromSeconds(3.0);
|
||||
m_NextBomb = Core.Now + TimeSpan.FromSeconds(3.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_NextBomb = DateTime.UtcNow + TimeSpan.FromSeconds(5.0 + 10.0 * Utility.RandomDouble()); // 5-15 seconds
|
||||
m_NextBomb = Core.Now + TimeSpan.FromSeconds(5.0 + 10.0 * Utility.RandomDouble()); // 5-15 seconds
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ namespace Server.Mobiles
|
|||
PackItem(Seed.RandomPeculiarSeed(4));
|
||||
}
|
||||
|
||||
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(2, 5));
|
||||
m_NextAbilityTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(2, 5));
|
||||
}
|
||||
|
||||
public JukaMage(Serial serial) : base(serial)
|
||||
|
|
@ -101,7 +101,7 @@ namespace Server.Mobiles
|
|||
|
||||
public override void OnThink()
|
||||
{
|
||||
if (DateTime.UtcNow >= m_NextAbilityTime)
|
||||
if (Core.Now >= m_NextAbilityTime)
|
||||
{
|
||||
JukaLord toBuff = null;
|
||||
|
||||
|
|
@ -119,7 +119,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
if (CanBeBeneficial(toBuff) && toBuff.BeginAction<JukaMage>())
|
||||
{
|
||||
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(30, 60));
|
||||
m_NextAbilityTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(30, 60));
|
||||
|
||||
toBuff.Say(true, "Give me the power to destroy my enemies!");
|
||||
Say(true, "Fight well my lord!");
|
||||
|
|
@ -169,7 +169,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
else
|
||||
{
|
||||
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(2, 5));
|
||||
m_NextAbilityTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(2, 5));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ namespace Server.Mobiles
|
|||
AddItem(new Crossbow());
|
||||
PackItem(pack);
|
||||
|
||||
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(2, 5));
|
||||
m_NextAbilityTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(2, 5));
|
||||
}
|
||||
|
||||
public MeerCaptain(Serial serial) : base(serial)
|
||||
|
|
@ -116,9 +116,9 @@ namespace Server.Mobiles
|
|||
PlaySound(0x1E9);
|
||||
}
|
||||
|
||||
if (DateTime.UtcNow >= m_NextAbilityTime)
|
||||
if (Core.Now >= m_NextAbilityTime)
|
||||
{
|
||||
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(10, 15));
|
||||
m_NextAbilityTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(10, 15));
|
||||
|
||||
var eable = GetMobilesInRange(8);
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ namespace Server.Mobiles
|
|||
|
||||
VirtualArmor = 34;
|
||||
|
||||
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(2, 5));
|
||||
m_NextAbilityTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(2, 5));
|
||||
}
|
||||
|
||||
public MeerEternal(Serial serial) : base(serial)
|
||||
|
|
@ -159,13 +159,13 @@ namespace Server.Mobiles
|
|||
|
||||
public override void OnThink()
|
||||
{
|
||||
if (DateTime.UtcNow >= m_NextAbilityTime)
|
||||
if (Core.Now >= m_NextAbilityTime)
|
||||
{
|
||||
var combatant = Combatant;
|
||||
|
||||
if (combatant != null && combatant.Map == Map && combatant.InRange(this, 12))
|
||||
{
|
||||
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(10, 15));
|
||||
m_NextAbilityTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(10, 15));
|
||||
|
||||
var ability = Utility.Random(4);
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ namespace Server.Mobiles
|
|||
|
||||
VirtualArmor = 16;
|
||||
|
||||
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(2, 5));
|
||||
m_NextAbilityTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(2, 5));
|
||||
}
|
||||
|
||||
public MeerMage(Serial serial) : base(serial)
|
||||
|
|
@ -76,14 +76,14 @@ namespace Server.Mobiles
|
|||
|
||||
public override void OnThink()
|
||||
{
|
||||
if (DateTime.UtcNow >= m_NextAbilityTime)
|
||||
if (Core.Now >= m_NextAbilityTime)
|
||||
{
|
||||
var combatant = Combatant;
|
||||
|
||||
if (combatant != null && combatant.Map == Map && combatant.InRange(this, 12) && IsEnemy(combatant) &&
|
||||
!UnderEffect(combatant))
|
||||
{
|
||||
m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds(Utility.RandomMinMax(20, 30));
|
||||
m_NextAbilityTime = Core.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(20, 30));
|
||||
|
||||
if (combatant is BaseCreature bc)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ namespace Server.Mobiles
|
|||
|
||||
public void AreaPeace()
|
||||
{
|
||||
if (Combatant == null || Deleted || !Alive || m_NextPeace > DateTime.UtcNow || Utility.RandomDouble() > 0.1)
|
||||
if (Combatant == null || Deleted || !Alive || m_NextPeace > Core.Now || Utility.RandomDouble() > 0.1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -105,24 +105,24 @@ namespace Server.Mobiles
|
|||
{
|
||||
if (m is PlayerMobile pm && IsValidTarget(pm))
|
||||
{
|
||||
pm.PeacedUntil = DateTime.UtcNow + duration;
|
||||
pm.PeacedUntil = Core.Now + duration;
|
||||
m.SendLocalizedMessage(1072065); // You gaze upon the dryad's beauty, and forget to continue battling!
|
||||
m.FixedParticles(0x376A, 1, 20, 0x7F5, EffectLayer.Waist);
|
||||
m.Combatant = null;
|
||||
}
|
||||
}
|
||||
|
||||
m_NextPeace = DateTime.UtcNow + TimeSpan.FromSeconds(10);
|
||||
m_NextPeace = Core.Now + TimeSpan.FromSeconds(10);
|
||||
PlaySound(0x1D3);
|
||||
}
|
||||
|
||||
public bool IsValidTarget(PlayerMobile m) =>
|
||||
m?.PeacedUntil < DateTime.UtcNow && !m.Hidden && m.AccessLevel == AccessLevel.Player &&
|
||||
m?.PeacedUntil < Core.Now && !m.Hidden && m.AccessLevel == AccessLevel.Player &&
|
||||
CanBeHarmful(m);
|
||||
|
||||
public void AreaUndress()
|
||||
{
|
||||
if (Combatant == null || Deleted || !Alive || m_NextUndress > DateTime.UtcNow || Utility.RandomDouble() > 0.005)
|
||||
if (Combatant == null || Deleted || !Alive || m_NextUndress > Core.Now || Utility.RandomDouble() > 0.005)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -144,7 +144,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
}
|
||||
|
||||
m_NextUndress = DateTime.UtcNow + TimeSpan.FromMinutes(1);
|
||||
m_NextUndress = Core.Now + TimeSpan.FromMinutes(1);
|
||||
}
|
||||
|
||||
public void UndressItem(Mobile m, Layer layer)
|
||||
|
|
|
|||
|
|
@ -90,14 +90,14 @@ namespace Server.Mobiles
|
|||
|
||||
public void Peace(Mobile target)
|
||||
{
|
||||
if (target == null || Deleted || !Alive || m_NextPeace > DateTime.UtcNow || Utility.RandomDouble() > 0.1)
|
||||
if (target == null || Deleted || !Alive || m_NextPeace > Core.Now || Utility.RandomDouble() > 0.1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (target is PlayerMobile p && p.PeacedUntil < DateTime.UtcNow && !p.Hidden && CanBeHarmful(p))
|
||||
if (target is PlayerMobile p && p.PeacedUntil < Core.Now && !p.Hidden && CanBeHarmful(p))
|
||||
{
|
||||
p.PeacedUntil = DateTime.UtcNow + TimeSpan.FromMinutes(1);
|
||||
p.PeacedUntil = Core.Now + TimeSpan.FromMinutes(1);
|
||||
p.SendLocalizedMessage(500616); // You hear lovely music, and forget to continue battling!
|
||||
p.FixedParticles(0x376A, 1, 32, 0x15BD, EffectLayer.Waist);
|
||||
p.Combatant = null;
|
||||
|
|
@ -105,13 +105,13 @@ namespace Server.Mobiles
|
|||
PlaySound(0x58D);
|
||||
}
|
||||
|
||||
m_NextPeace = DateTime.UtcNow + TimeSpan.FromSeconds(10);
|
||||
m_NextPeace = Core.Now + TimeSpan.FromSeconds(10);
|
||||
}
|
||||
|
||||
public void Suppress(Mobile target)
|
||||
{
|
||||
if (target == null || m_Suppressed.ContainsKey(target) || Deleted || !Alive ||
|
||||
m_NextSuppress > DateTime.UtcNow || Utility.RandomDouble() > 0.1)
|
||||
m_NextSuppress > Core.Now || Utility.RandomDouble() > 0.1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -137,7 +137,7 @@ namespace Server.Mobiles
|
|||
PlaySound(0x58C);
|
||||
}
|
||||
|
||||
m_NextSuppress = DateTime.UtcNow + TimeSpan.FromSeconds(10);
|
||||
m_NextSuppress = Core.Now + TimeSpan.FromSeconds(10);
|
||||
}
|
||||
|
||||
public static void SuppressRemove(Mobile target)
|
||||
|
|
@ -160,7 +160,7 @@ namespace Server.Mobiles
|
|||
|
||||
public void Undress(Mobile target)
|
||||
{
|
||||
if (target == null || Deleted || !Alive || m_NextUndress > DateTime.UtcNow || Utility.RandomDouble() > 0.005)
|
||||
if (target == null || Deleted || !Alive || m_NextUndress > Core.Now || Utility.RandomDouble() > 0.005)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -178,7 +178,7 @@ namespace Server.Mobiles
|
|||
); // The satyr's music makes your blood race. Your clothing is too confining.
|
||||
}
|
||||
|
||||
m_NextUndress = DateTime.UtcNow + TimeSpan.FromMinutes(1);
|
||||
m_NextUndress = Core.Now + TimeSpan.FromMinutes(1);
|
||||
}
|
||||
|
||||
public void UndressItem(Mobile m, Layer layer)
|
||||
|
|
@ -193,7 +193,7 @@ namespace Server.Mobiles
|
|||
|
||||
public void Provoke(Mobile target)
|
||||
{
|
||||
if (target == null || Deleted || !Alive || m_NextProvoke > DateTime.UtcNow || Utility.RandomDouble() > 0.05)
|
||||
if (target == null || Deleted || !Alive || m_NextProvoke > Core.Now || Utility.RandomDouble() > 0.05)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -220,7 +220,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
}
|
||||
|
||||
m_NextProvoke = DateTime.UtcNow + TimeSpan.FromSeconds(10);
|
||||
m_NextProvoke = Core.Now + TimeSpan.FromSeconds(10);
|
||||
}
|
||||
|
||||
private class AnimateTimer : Timer
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ namespace Server.Mobiles
|
|||
if (value != null)
|
||||
{
|
||||
Morph(value);
|
||||
m_LastMorph = DateTime.UtcNow;
|
||||
m_LastMorph = Core.Now;
|
||||
}
|
||||
|
||||
m_MorphedInto = value;
|
||||
|
|
@ -128,10 +128,10 @@ namespace Server.Mobiles
|
|||
|
||||
if (Combatant != null)
|
||||
{
|
||||
if (m_NextFireRing <= DateTime.UtcNow && Utility.RandomDouble() < 0.02)
|
||||
if (m_NextFireRing <= Core.Now && Utility.RandomDouble() < 0.02)
|
||||
{
|
||||
FireRing();
|
||||
m_NextFireRing = DateTime.UtcNow + TimeSpan.FromMinutes(2);
|
||||
m_NextFireRing = Core.Now + TimeSpan.FromMinutes(2);
|
||||
}
|
||||
|
||||
if (Combatant.Player && m_MorphedInto != Combatant && Utility.RandomDouble() < 0.05)
|
||||
|
|
@ -145,7 +145,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
var idle = base.CheckIdle();
|
||||
|
||||
if (idle && m_MorphedInto != null && DateTime.UtcNow - m_LastMorph > TimeSpan.FromSeconds(30))
|
||||
if (idle && m_MorphedInto != null && Core.Now - m_LastMorph > TimeSpan.FromSeconds(30))
|
||||
{
|
||||
MorphedInto = null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,10 +68,10 @@ namespace Server.Mobiles
|
|||
{
|
||||
if (!from.Alive && from is PlayerMobile)
|
||||
{
|
||||
if (!from.Frozen && DateTime.UtcNow >= m_NextResurrect && InRange(from, 4) && !InRange(oldLocation, 4) &&
|
||||
if (!from.Frozen && Core.Now >= m_NextResurrect && InRange(from, 4) && !InRange(oldLocation, 4) &&
|
||||
InLOS(from))
|
||||
{
|
||||
m_NextResurrect = DateTime.UtcNow + ResurrectDelay;
|
||||
m_NextResurrect = Core.Now + ResurrectDelay;
|
||||
if (!from.Criminal && from.Kills < 5 && from.Karma > 0)
|
||||
{
|
||||
if (from.Map?.CanFit(from.Location, 16, false, false) == true)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ namespace Server.Mobiles
|
|||
public PlagueSpawn(Mobile owner = null) : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
|
||||
{
|
||||
Owner = owner;
|
||||
ExpireTime = DateTime.UtcNow + TimeSpan.FromMinutes(1.0);
|
||||
ExpireTime = Core.Now + TimeSpan.FromMinutes(1.0);
|
||||
|
||||
Hue = Utility.Random(0x11, 15);
|
||||
|
||||
|
|
@ -102,7 +102,7 @@ namespace Server.Mobiles
|
|||
|
||||
public override void OnThink()
|
||||
{
|
||||
if (Owner != null && (DateTime.UtcNow >= ExpireTime || Owner.Deleted || Map != Owner.Map || !InRange(Owner, 16)))
|
||||
if (Owner != null && (Core.Now >= ExpireTime || Owner.Deleted || Map != Owner.Map || !InRange(Owner, 16)))
|
||||
{
|
||||
PlaySound(GetIdleSound());
|
||||
Delete();
|
||||
|
|
|
|||
|
|
@ -63,10 +63,10 @@ namespace Server.Mobiles
|
|||
return;
|
||||
}
|
||||
|
||||
if (DateTime.UtcNow >= m_NextAttack)
|
||||
if (Core.Now >= m_NextAttack)
|
||||
{
|
||||
SandAttack(combatant);
|
||||
m_NextAttack = DateTime.UtcNow + TimeSpan.FromSeconds(10.0 + 10.0 * Utility.RandomDouble());
|
||||
m_NextAttack = Core.Now + TimeSpan.FromSeconds(10.0 + 10.0 * Utility.RandomDouble());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -289,39 +289,19 @@ namespace Server.Mobiles
|
|||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public TimeSpan SavagePaintExpiration
|
||||
{
|
||||
get
|
||||
{
|
||||
var ts = m_SavagePaintExpiration - DateTime.UtcNow;
|
||||
|
||||
if (ts < TimeSpan.Zero)
|
||||
{
|
||||
ts = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
return ts;
|
||||
}
|
||||
set => m_SavagePaintExpiration = DateTime.UtcNow + value;
|
||||
get => Utility.Max(m_SavagePaintExpiration - Core.Now, TimeSpan.Zero);
|
||||
set => m_SavagePaintExpiration = Core.Now + value;
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public TimeSpan NextSmithBulkOrder
|
||||
{
|
||||
get
|
||||
{
|
||||
var ts = m_NextSmithBulkOrder - DateTime.UtcNow;
|
||||
|
||||
if (ts < TimeSpan.Zero)
|
||||
{
|
||||
ts = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
return ts;
|
||||
}
|
||||
get => Utility.Max(m_NextSmithBulkOrder - Core.Now, TimeSpan.Zero);
|
||||
set
|
||||
{
|
||||
try
|
||||
{
|
||||
m_NextSmithBulkOrder = DateTime.UtcNow + value;
|
||||
m_NextSmithBulkOrder = Core.Now + value;
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
|
@ -333,22 +313,12 @@ namespace Server.Mobiles
|
|||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public TimeSpan NextTailorBulkOrder
|
||||
{
|
||||
get
|
||||
{
|
||||
var ts = m_NextTailorBulkOrder - DateTime.UtcNow;
|
||||
|
||||
if (ts < TimeSpan.Zero)
|
||||
{
|
||||
ts = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
return ts;
|
||||
}
|
||||
get => Utility.Max(m_NextTailorBulkOrder - Core.Now, TimeSpan.Zero);
|
||||
set
|
||||
{
|
||||
try
|
||||
{
|
||||
m_NextTailorBulkOrder = DateTime.UtcNow + value;
|
||||
m_NextTailorBulkOrder = Core.Now + value;
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
|
@ -381,7 +351,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
if (NetState != null)
|
||||
{
|
||||
return m_GameTime + (DateTime.UtcNow - SessionStart);
|
||||
return m_GameTime + (Core.Now - SessionStart);
|
||||
}
|
||||
|
||||
return m_GameTime;
|
||||
|
|
@ -1140,7 +1110,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
}
|
||||
|
||||
if (m_MountBlock?.m_Timer.Running != true || m_MountBlock.m_Timer.Next < DateTime.UtcNow + duration)
|
||||
if (m_MountBlock?.m_Timer.Running != true || m_MountBlock.m_Timer.Next < Core.Now + duration)
|
||||
{
|
||||
m_MountBlock = new MountBlock(duration, type, this);
|
||||
}
|
||||
|
|
@ -1568,12 +1538,12 @@ namespace Server.Mobiles
|
|||
{
|
||||
if (m is PlayerMobile pm)
|
||||
{
|
||||
pm.SessionStart = DateTime.UtcNow;
|
||||
pm.SessionStart = Core.Now;
|
||||
|
||||
pm.Quest?.StartTimer();
|
||||
|
||||
pm.BedrollLogout = false;
|
||||
pm.LastOnline = DateTime.UtcNow;
|
||||
pm.LastOnline = Core.Now;
|
||||
}
|
||||
|
||||
DisguiseTimers.StartTimer(m);
|
||||
|
|
@ -1615,13 +1585,13 @@ namespace Server.Mobiles
|
|||
|
||||
if (from is PlayerMobile pm)
|
||||
{
|
||||
pm.m_GameTime += DateTime.UtcNow - pm.SessionStart;
|
||||
pm.m_GameTime += Core.Now - pm.SessionStart;
|
||||
|
||||
pm.Quest?.StopTimer();
|
||||
|
||||
pm.SpeechLog = null;
|
||||
pm.ClearQuestArrow();
|
||||
pm.LastOnline = DateTime.UtcNow;
|
||||
pm.LastOnline = Core.Now;
|
||||
}
|
||||
|
||||
DisguiseTimers.StopTimer(from);
|
||||
|
|
@ -2661,7 +2631,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
}
|
||||
|
||||
if (Kills >= 5 && DateTime.UtcNow >= m_NextJustAward)
|
||||
if (Kills >= 5 && Core.Now >= m_NextJustAward)
|
||||
{
|
||||
var m = FindMostRecentDamager(false);
|
||||
|
||||
|
|
@ -2694,7 +2664,7 @@ namespace Server.Mobiles
|
|||
m.FixedParticles(0x375A, 9, 20, 5027, EffectLayer.Waist);
|
||||
m.PlaySound(0x1F7);
|
||||
|
||||
m_NextJustAward = DateTime.UtcNow + TimeSpan.FromMinutes(pointsToGain / 3.0);
|
||||
m_NextJustAward = Core.Now + TimeSpan.FromMinutes(pointsToGain / 3.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2949,7 +2919,7 @@ namespace Server.Mobiles
|
|||
|
||||
if (tbl.TryGetValue(obj, out var count))
|
||||
{
|
||||
if (count.TimeStamp + SkillCheck.AntiMacroExpire <= DateTime.UtcNow)
|
||||
if (count.TimeStamp + SkillCheck.AntiMacroExpire <= Core.Now)
|
||||
{
|
||||
count.Count = 1;
|
||||
return true;
|
||||
|
|
@ -3292,7 +3262,7 @@ namespace Server.Mobiles
|
|||
|
||||
foreach (var (k, v) in t)
|
||||
{
|
||||
if (v.TimeStamp + SkillCheck.AntiMacroExpire <= DateTime.UtcNow)
|
||||
if (v.TimeStamp + SkillCheck.AntiMacroExpire <= Core.Now)
|
||||
{
|
||||
toRemove.Add(k);
|
||||
}
|
||||
|
|
@ -4132,7 +4102,7 @@ namespace Server.Mobiles
|
|||
|
||||
for (var i = 0; i < m_StuckMenuUses.Length; ++i)
|
||||
{
|
||||
if (DateTime.UtcNow - m_StuckMenuUses[i] > TimeSpan.FromDays(1.0))
|
||||
if (Core.Now - m_StuckMenuUses[i] > TimeSpan.FromDays(1.0))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
@ -4150,9 +4120,9 @@ namespace Server.Mobiles
|
|||
|
||||
for (var i = 0; i < m_StuckMenuUses.Length; ++i)
|
||||
{
|
||||
if (DateTime.UtcNow - m_StuckMenuUses[i] > TimeSpan.FromDays(1.0))
|
||||
if (Core.Now - m_StuckMenuUses[i] > TimeSpan.FromDays(1.0))
|
||||
{
|
||||
m_StuckMenuUses[i] = DateTime.UtcNow;
|
||||
m_StuckMenuUses[i] = Core.Now;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -4428,9 +4398,9 @@ namespace Server.Mobiles
|
|||
return false;
|
||||
}
|
||||
|
||||
if (DateTime.UtcNow - m_LastYoungMessage > TimeSpan.FromMinutes(1.0))
|
||||
if (Core.Now - m_LastYoungMessage > TimeSpan.FromMinutes(1.0))
|
||||
{
|
||||
m_LastYoungMessage = DateTime.UtcNow;
|
||||
m_LastYoungMessage = Core.Now;
|
||||
// A monster looks at you menacingly but does not attack.
|
||||
// You would be under attack now if not for your status as a new citizen of Britannia.
|
||||
SendLocalizedMessage(1019067);
|
||||
|
|
@ -4441,9 +4411,9 @@ namespace Server.Mobiles
|
|||
|
||||
public bool CheckYoungHealTime()
|
||||
{
|
||||
if (DateTime.UtcNow - m_LastYoungHeal > TimeSpan.FromMinutes(5.0))
|
||||
if (Core.Now - m_LastYoungHeal > TimeSpan.FromMinutes(5.0))
|
||||
{
|
||||
m_LastYoungHeal = DateTime.UtcNow;
|
||||
m_LastYoungHeal = Core.Now;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -4658,7 +4628,7 @@ namespace Server.Mobiles
|
|||
set
|
||||
{
|
||||
m_Count = value;
|
||||
TimeStamp = DateTime.UtcNow;
|
||||
TimeStamp = Core.Now;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -284,10 +284,10 @@ namespace Server.Mobiles
|
|||
return false;
|
||||
}
|
||||
|
||||
if (m is PlayerMobile mobile && mobile.LastEscortTime + EscortDelay >= DateTime.UtcNow)
|
||||
if (m is PlayerMobile mobile && mobile.LastEscortTime + EscortDelay >= Core.Now)
|
||||
{
|
||||
var minutes =
|
||||
(int)Math.Ceiling((mobile.LastEscortTime + EscortDelay - DateTime.UtcNow).TotalMinutes);
|
||||
(int)Math.Ceiling((mobile.LastEscortTime + EscortDelay - Core.Now).TotalMinutes);
|
||||
|
||||
Say("You must rest {0} minute{1} before we set out on this journey.", minutes, minutes == 1 ? "" : "s");
|
||||
return false;
|
||||
|
|
@ -295,11 +295,11 @@ namespace Server.Mobiles
|
|||
|
||||
if (SetControlMaster(m))
|
||||
{
|
||||
m_LastSeenEscorter = DateTime.UtcNow;
|
||||
m_LastSeenEscorter = Core.Now;
|
||||
|
||||
if (m is PlayerMobile playerMobile)
|
||||
{
|
||||
playerMobile.LastEscortTime = DateTime.UtcNow;
|
||||
playerMobile.LastEscortTime = Core.Now;
|
||||
}
|
||||
|
||||
Say(
|
||||
|
|
@ -420,7 +420,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
StopFollow();
|
||||
|
||||
var lastSeenDelay = DateTime.UtcNow - m_LastSeenEscorter;
|
||||
var lastSeenDelay = Core.Now - m_LastSeenEscorter;
|
||||
|
||||
if (lastSeenDelay >= AbandonDelay)
|
||||
{
|
||||
|
|
@ -443,7 +443,7 @@ namespace Server.Mobiles
|
|||
StartFollow(master);
|
||||
}
|
||||
|
||||
m_LastSeenEscorter = DateTime.UtcNow;
|
||||
m_LastSeenEscorter = Core.Now;
|
||||
return master;
|
||||
}
|
||||
|
||||
|
|
@ -451,9 +451,9 @@ namespace Server.Mobiles
|
|||
{
|
||||
m_DeleteTimer?.Stop();
|
||||
|
||||
m_DeleteTime = DateTime.UtcNow + DeleteTime;
|
||||
m_DeleteTime = Core.Now + DeleteTime;
|
||||
|
||||
m_DeleteTimer = new DeleteTimer(this, m_DeleteTime - DateTime.UtcNow);
|
||||
m_DeleteTimer = new DeleteTimer(this, m_DeleteTime - Core.Now);
|
||||
m_DeleteTimer.Start();
|
||||
}
|
||||
|
||||
|
|
@ -509,7 +509,7 @@ namespace Server.Mobiles
|
|||
|
||||
if (escorter is PlayerMobile pm)
|
||||
{
|
||||
if (pm.CompassionGains > 0 && DateTime.UtcNow > pm.NextCompassionDay)
|
||||
if (pm.CompassionGains > 0 && Core.Now > pm.NextCompassionDay)
|
||||
{
|
||||
pm.NextCompassionDay = DateTime.MinValue;
|
||||
pm.CompassionGains = 0;
|
||||
|
|
@ -533,7 +533,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
|
||||
pm.NextCompassionDay =
|
||||
DateTime.UtcNow + TimeSpan.FromDays(1.0); // in one day CompassionGains gets reset to 0
|
||||
Core.Now + TimeSpan.FromDays(1.0); // in one day CompassionGains gets reset to 0
|
||||
++pm.CompassionGains;
|
||||
|
||||
if (pm.CompassionGains >= 5)
|
||||
|
|
@ -604,7 +604,7 @@ namespace Server.Mobiles
|
|||
if (reader.ReadBool())
|
||||
{
|
||||
m_DeleteTime = reader.ReadDeltaTime();
|
||||
m_DeleteTimer = new DeleteTimer(this, m_DeleteTime - DateTime.UtcNow);
|
||||
m_DeleteTimer = new DeleteTimer(this, m_DeleteTime - Core.Now);
|
||||
m_DeleteTimer.Start();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -102,23 +102,14 @@ namespace Server.Mobiles
|
|||
{
|
||||
Lines = lines;
|
||||
|
||||
if (duration < TimeSpan.Zero)
|
||||
{
|
||||
duration = TimeSpan.Zero;
|
||||
}
|
||||
else if (duration > TimeSpan.FromDays(365.0))
|
||||
{
|
||||
duration = TimeSpan.FromDays(365.0);
|
||||
}
|
||||
|
||||
ExpireTime = DateTime.UtcNow + duration;
|
||||
ExpireTime = Core.Now + duration.Clamp(TimeSpan.Zero, TimeSpan.FromDays(365));
|
||||
}
|
||||
|
||||
public string[] Lines { get; }
|
||||
|
||||
public DateTime ExpireTime { get; }
|
||||
|
||||
public bool Expired => DateTime.UtcNow >= ExpireTime;
|
||||
public bool Expired => Core.Now >= ExpireTime;
|
||||
}
|
||||
|
||||
public class TownCrierDurationPrompt : Prompt
|
||||
|
|
@ -242,12 +233,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
var tce = entries[i];
|
||||
|
||||
var toExpire = tce.ExpireTime - DateTime.UtcNow;
|
||||
|
||||
if (toExpire < TimeSpan.Zero)
|
||||
{
|
||||
toExpire = TimeSpan.Zero;
|
||||
}
|
||||
var toExpire = Utility.Max(tce.ExpireTime - Core.Now, TimeSpan.Zero);
|
||||
|
||||
var sb = new StringBuilder();
|
||||
|
||||
|
|
@ -301,12 +287,7 @@ namespace Server.Mobiles
|
|||
if (index < entries?.Count)
|
||||
{
|
||||
var tce = entries[index];
|
||||
var ts = tce.ExpireTime - DateTime.UtcNow;
|
||||
|
||||
if (ts < TimeSpan.Zero)
|
||||
{
|
||||
ts = TimeSpan.Zero;
|
||||
}
|
||||
var ts = Utility.Max(tce.ExpireTime - Core.Now, TimeSpan.Zero);
|
||||
|
||||
m_From.SendMessage("Editing entry #{0}.", index + 1);
|
||||
m_From.SendMessage("Enter the first line to shout:");
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ namespace Server.Mobiles
|
|||
pack = new Backpack { Layer = Layer.ShopResale, Movable = false, Visible = false };
|
||||
AddItem(pack);
|
||||
|
||||
LastRestock = DateTime.UtcNow;
|
||||
LastRestock = Core.Now;
|
||||
}
|
||||
|
||||
public BaseVendor(Serial serial)
|
||||
|
|
@ -97,7 +97,7 @@ namespace Server.Mobiles
|
|||
|
||||
public virtual void Restock()
|
||||
{
|
||||
LastRestock = DateTime.UtcNow;
|
||||
LastRestock = Core.Now;
|
||||
|
||||
var buyInfo = GetBuyInfo();
|
||||
|
||||
|
|
@ -565,7 +565,7 @@ namespace Server.Mobiles
|
|||
|
||||
protected void LoadSBInfo()
|
||||
{
|
||||
LastRestock = DateTime.UtcNow;
|
||||
LastRestock = Core.Now;
|
||||
|
||||
for (var i = 0; i < m_ArmorBuyInfo.Count; ++i)
|
||||
{
|
||||
|
|
@ -840,7 +840,7 @@ namespace Server.Mobiles
|
|||
return;
|
||||
}
|
||||
|
||||
if (DateTime.UtcNow - LastRestock > RestockDelay)
|
||||
if (Core.Now - LastRestock > RestockDelay)
|
||||
{
|
||||
Restock();
|
||||
}
|
||||
|
|
@ -900,7 +900,7 @@ namespace Server.Mobiles
|
|||
|
||||
var item = playerItems[i];
|
||||
|
||||
if (item.LastMoved + InventoryDecayTime <= DateTime.UtcNow)
|
||||
if (item.LastMoved + InventoryDecayTime <= Core.Now)
|
||||
{
|
||||
item.Delete();
|
||||
}
|
||||
|
|
@ -1064,7 +1064,7 @@ namespace Server.Mobiles
|
|||
|
||||
var pm = from as PlayerMobile;
|
||||
|
||||
if (Core.ML && pm?.NextBODTurnInTime > DateTime.UtcNow)
|
||||
if (Core.ML && pm?.NextBODTurnInTime > Core.Now)
|
||||
{
|
||||
SayTo(from, 1079976); // You'll have to wait a few seconds while I inspect the last order.
|
||||
return false;
|
||||
|
|
@ -1118,7 +1118,7 @@ namespace Server.Mobiles
|
|||
|
||||
if (Core.ML && pm != null)
|
||||
{
|
||||
pm.NextBODTurnInTime = DateTime.UtcNow + TimeSpan.FromSeconds(10.0);
|
||||
pm.NextBODTurnInTime = Core.Now + TimeSpan.FromSeconds(10.0);
|
||||
}
|
||||
|
||||
dropped.Delete();
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
SayTo(pm, 501046); // Thou must resign from thy other guild first.
|
||||
}
|
||||
else if (pm.GameTime < JoinGameAge || pm.CreationTime + JoinAge > DateTime.UtcNow)
|
||||
else if (pm.GameTime < JoinGameAge || pm.CreationTime + JoinAge > Core.Now)
|
||||
{
|
||||
SayTo(pm, 501048); // You are too young to join my guild...
|
||||
}
|
||||
|
|
@ -111,7 +111,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
SayTo(pm, 501052); // Thou dost not belong to my guild!
|
||||
}
|
||||
else if (pm.NpcGuildJoinTime + QuitAge > DateTime.UtcNow ||
|
||||
else if (pm.NpcGuildJoinTime + QuitAge > Core.Now ||
|
||||
pm.NpcGuildGameTime + QuitGameAge > pm.GameTime)
|
||||
{
|
||||
SayTo(pm, 501053); // You just joined my guild! You must wait a week to resign.
|
||||
|
|
@ -141,7 +141,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
SayTo(pm, 501046); // Thou must resign from thy other guild first.
|
||||
}
|
||||
else if (pm.GameTime < JoinGameAge || pm.CreationTime + JoinAge > DateTime.UtcNow)
|
||||
else if (pm.GameTime < JoinGameAge || pm.CreationTime + JoinAge > Core.Now)
|
||||
{
|
||||
SayTo(pm, 501048); // You are too young to join my guild...
|
||||
}
|
||||
|
|
@ -150,7 +150,7 @@ namespace Server.Mobiles
|
|||
SayWelcomeTo(pm);
|
||||
|
||||
pm.NpcGuild = NpcGuild;
|
||||
pm.NpcGuildJoinTime = DateTime.UtcNow;
|
||||
pm.NpcGuildJoinTime = Core.Now;
|
||||
pm.NpcGuildGameTime = pm.GameTime;
|
||||
|
||||
dropped.Delete();
|
||||
|
|
|
|||
|
|
@ -34,13 +34,13 @@ namespace Server.Mobiles
|
|||
|
||||
public override void OnMovement(Mobile m, Point3D oldLocation)
|
||||
{
|
||||
if (DateTime.UtcNow > m_NextCheckPack && InRange(m, 4) && !InRange(oldLocation, 4) && m.Player)
|
||||
if (Core.Now > m_NextCheckPack && InRange(m, 4) && !InRange(oldLocation, 4) && m.Player)
|
||||
{
|
||||
var pack = m.Backpack;
|
||||
|
||||
if (pack != null)
|
||||
{
|
||||
m_NextCheckPack = DateTime.UtcNow + TimeSpan.FromSeconds(2.0);
|
||||
m_NextCheckPack = Core.Now + TimeSpan.FromSeconds(2.0);
|
||||
|
||||
if (pack.FindItemByType<HouseDeed>(false) != null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -47,14 +47,14 @@ namespace Server.Mobiles
|
|||
{
|
||||
base.OnSpeech(e);
|
||||
|
||||
if (!e.Handled && m_NextShush <= DateTime.UtcNow && InLOS(e.Mobile))
|
||||
if (!e.Handled && m_NextShush <= Core.Now && InLOS(e.Mobile))
|
||||
{
|
||||
Direction = GetDirectionTo(e.Mobile);
|
||||
|
||||
PlaySound(Female ? 0x32F : 0x441);
|
||||
PublicOverheadMessage(MessageType.Regular, 0x3B2, 1073990); // Shhhh!
|
||||
|
||||
m_NextShush = DateTime.UtcNow + ShushDelay;
|
||||
m_NextShush = Core.Now + ShushDelay;
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -306,7 +306,7 @@ namespace Server.Mobiles
|
|||
m_PayTimer = new PayTimer(this, delay);
|
||||
m_PayTimer.Start();
|
||||
|
||||
NextPayTime = DateTime.UtcNow + delay;
|
||||
NextPayTime = Core.Now + delay;
|
||||
}
|
||||
|
||||
public PlayerVendor(Serial serial) : base(serial)
|
||||
|
|
@ -454,7 +454,7 @@ namespace Server.Mobiles
|
|||
|
||||
var description = reader.ReadString();
|
||||
|
||||
var created = version < 1 ? DateTime.UtcNow : reader.ReadDateTime();
|
||||
var created = version < 1 ? Core.Now : reader.ReadDateTime();
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
|
|
@ -480,7 +480,7 @@ namespace Server.Mobiles
|
|||
Timer.DelayCall(FixDresswear);
|
||||
}
|
||||
|
||||
NextPayTime = DateTime.UtcNow + PayTimer.GetInterval();
|
||||
NextPayTime = Core.Now + PayTimer.GetInterval();
|
||||
|
||||
if (newVendorSystemActivated)
|
||||
{
|
||||
|
|
@ -494,7 +494,7 @@ namespace Server.Mobiles
|
|||
InitStats(100, 100, 25);
|
||||
}
|
||||
|
||||
var delay = NextPayTime - DateTime.UtcNow;
|
||||
var delay = NextPayTime - Core.Now;
|
||||
|
||||
m_PayTimer = new PayTimer(this, delay > TimeSpan.Zero ? delay : TimeSpan.Zero);
|
||||
m_PayTimer.Start();
|
||||
|
|
@ -752,7 +752,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
|
||||
private VendorItem SetVendorItem(Item item, int price, string description) =>
|
||||
SetVendorItem(item, price, description, DateTime.UtcNow);
|
||||
SetVendorItem(item, price, description, Core.Now);
|
||||
|
||||
private VendorItem SetVendorItem(Item item, int price, string description, DateTime created)
|
||||
{
|
||||
|
|
@ -1064,7 +1064,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
vendor.SayTo(from, 503202); // This item is not for sale.
|
||||
}
|
||||
else if (vi.Created + TimeSpan.FromMinutes(1.0) > DateTime.UtcNow)
|
||||
else if (vi.Created + TimeSpan.FromMinutes(1.0) > Core.Now)
|
||||
{
|
||||
from.SendMessage("You cannot buy this item right now. Please wait one minute and try again.");
|
||||
}
|
||||
|
|
@ -1368,7 +1368,7 @@ namespace Server.Mobiles
|
|||
|
||||
protected override void OnTick()
|
||||
{
|
||||
m_Vendor.NextPayTime = DateTime.UtcNow + Interval;
|
||||
m_Vendor.NextPayTime = Core.Now + Interval;
|
||||
|
||||
int pay;
|
||||
int totalGold;
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ namespace Server.Mobiles
|
|||
|
||||
RentalGold = rentalGold;
|
||||
|
||||
RentalExpireTime = DateTime.UtcNow + duration.Duration;
|
||||
RentalExpireTime = Core.Now + duration.Duration;
|
||||
m_RentalExpireTimer = new RentalExpireTimer(this, duration.Duration);
|
||||
m_RentalExpireTimer.Start();
|
||||
}
|
||||
|
|
@ -103,7 +103,7 @@ namespace Server.Mobiles
|
|||
|
||||
public void ComputeRentalExpireDelay(out int days, out int hours)
|
||||
{
|
||||
var delay = RentalExpireTime - DateTime.UtcNow;
|
||||
var delay = RentalExpireTime - Core.Now;
|
||||
|
||||
if (delay <= TimeSpan.Zero)
|
||||
{
|
||||
|
|
@ -213,7 +213,7 @@ namespace Server.Mobiles
|
|||
|
||||
RentalExpireTime = reader.ReadDeltaTime();
|
||||
|
||||
var delay = RentalExpireTime - DateTime.UtcNow;
|
||||
var delay = RentalExpireTime - Core.Now;
|
||||
m_RentalExpireTimer = new RentalExpireTimer(this, delay > TimeSpan.Zero ? delay : TimeSpan.Zero);
|
||||
m_RentalExpireTimer.Start();
|
||||
}
|
||||
|
|
@ -380,7 +380,7 @@ namespace Server.Mobiles
|
|||
|
||||
m_Vendor.RentalPrice = renewalPrice;
|
||||
|
||||
m_Vendor.RentalExpireTime = DateTime.UtcNow + m_Vendor.RentalDuration.Duration;
|
||||
m_Vendor.RentalExpireTime = Core.Now + m_Vendor.RentalDuration.Duration;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ namespace Server.Mobiles
|
|||
|
||||
Items = new List<Item>();
|
||||
|
||||
ExpireTime = DateTime.UtcNow + GracePeriod;
|
||||
ExpireTime = Core.Now + GracePeriod;
|
||||
m_ExpireTimer = new ExpireTimer(this, GracePeriod);
|
||||
m_ExpireTimer.Start();
|
||||
}
|
||||
|
|
@ -45,7 +45,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
else
|
||||
{
|
||||
var delay = ExpireTime - DateTime.UtcNow;
|
||||
var delay = ExpireTime - Core.Now;
|
||||
m_ExpireTimer = new ExpireTimer(this, delay > TimeSpan.Zero ? delay : TimeSpan.Zero);
|
||||
m_ExpireTimer.Start();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue