/// <summary> /// Setting this will ensure the instance stays around x minutes. After that the region will be destroyed when empty /// </summary> /// <param name="minutes"></param> public void BeginDelayCloseCountdown(int minutes) { DestroyWhenEmpty = false; if (m_autoCloseRegionTimer != null) { m_autoCloseRegionTimer.Stop(); m_autoCloseRegionTimer = null; } if (m_delayCloseRegionTimer != null) { m_delayCloseRegionTimer.Stop(); m_delayCloseRegionTimer = null; } m_delayCloseRegionTimer = new DelayCloseRegionTimer(TimeManager, this); m_delayCloseRegionTimer.Interval = minutes * 60000; m_delayCloseRegionTimer.Start(minutes * 60000); }
/// <summary> /// What to do when the region collapses. /// Examples of use: Expire task on task dungeons. /// </summary> public override void OnCollapse() { base.OnCollapse(); if (m_autoCloseRegionTimer != null) { m_autoCloseRegionTimer.Stop(); m_autoCloseRegionTimer = null; } if (m_delayCloseRegionTimer != null) { m_delayCloseRegionTimer.Stop(); m_delayCloseRegionTimer = null; } DOL.Events.GameEventMgr.RemoveAllHandlersForObject(this); m_zoneSkinMap.Clear(); Areas.Clear(); }