From 4d030950a1b12eaf97e73a1b2143649bb89bb6a5 Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Sun, 21 Jul 2024 21:50:00 -0700 Subject: [PATCH] fix: Fixes camps so they properly respawn (#1881) --- Projects/UOContent/Multis/Camps/BaseCamp.cs | 23 +++++++++------------ 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/Projects/UOContent/Multis/Camps/BaseCamp.cs b/Projects/UOContent/Multis/Camps/BaseCamp.cs index c6c6e6594..cd0354859 100644 --- a/Projects/UOContent/Multis/Camps/BaseCamp.cs +++ b/Projects/UOContent/Multis/Camps/BaseCamp.cs @@ -21,14 +21,14 @@ public abstract partial class BaseCamp : BaseMulti [SerializableField(2, setter: "private")] private DateTime _decayTime; - private TimeSpan m_DecayDelay; + private TimeSpan _decayDelay; private Timer _decayTimer; public BaseCamp(int multiID) : base(multiID) { _items = new List(); _mobiles = new List(); - m_DecayDelay = TimeSpan.FromMinutes(30.0); + _decayDelay = TimeSpan.FromMinutes(30.0); RefreshDecay(true); Timer.StartTimer(CheckAddComponents); @@ -36,12 +36,12 @@ public abstract partial class BaseCamp : BaseMulti public virtual int EventRange => 10; - public virtual TimeSpan DecayDelay + public TimeSpan DecayDelay { - get => m_DecayDelay; + get => _decayDelay; set { - m_DecayDelay = value; + _decayDelay = value; RefreshDecay(true); } } @@ -62,12 +62,6 @@ public abstract partial class BaseCamp : BaseMulti { } - public override void OnDelete() - { - _decayTimer?.Stop(); - _decayTimer = null; - } - public virtual void RefreshDecay(bool setDecayTime) { if (Deleted) @@ -77,11 +71,11 @@ public abstract partial class BaseCamp : BaseMulti if (setDecayTime) { - _decayTime = Core.Now + DecayDelay; + _decayTime = Core.Now + _decayDelay; } _decayTimer?.Stop(); - _decayTimer = Timer.DelayCall(DecayDelay, Delete); + _decayTimer = Timer.DelayCall(_decayDelay, Delete); } public virtual void AddItem(Item item, int xOffset, int yOffset, int zOffset) @@ -159,6 +153,9 @@ public abstract partial class BaseCamp : BaseMulti ClearItems(); ClearMobiles(); + + _decayTimer?.Stop(); + _decayTimer = null; } private void Deserialize(IGenericReader reader, int version)