public void Delete() { if (Deleted) { return; } Reset(); if (_CoreTimer != null) { _CoreTimer.Dispose(); _CoreTimer = null; } _CoreTicks = 0; if (Gate != null) { Gate.Delete(); Gate = null; } ForEachTeam(t => t.Delete()); if (Schedule != null) { Schedule.Stop(); Schedule.Enabled = false; Schedule.OnGlobalTick -= OnScheduleTick; Schedule = null; } if (_BattleRegion != null) { _BattleRegion.ClearPreview(); _BattleRegion.Unregister(); _BattleRegion = null; } if (_SpectateRegion != null) { _SpectateRegion.ClearPreview(); _SpectateRegion.Unregister(); _SpectateRegion = null; } if (Options != null) { Options.Clear(); } OnDeleted(); if (AutoPvP.RemoveBattle(this)) { OnRemoved(); } Deleted = true; }
public void Delete() { if (Deleted) { return; } Reset(); EventSink.Shutdown -= ServerShutdownHandler; EventSink.Logout -= LogoutHandler; EventSink.Login -= LoginHandler; if (_CoreTimer != null) { _CoreTimer.Dispose(); _CoreTimer = null; } _CoreTicks = 0; if (Gate != null) { Gate.Delete(); Gate = null; } Teams.Where(t => t != null && !t.Deleted).ForEach(t => t.Delete()); if (Schedule != null) { Schedule.Stop(); Schedule.Enabled = false; Schedule.OnGlobalTick -= OnScheduleTick; Schedule = null; } if (_BattleRegion != null) { _BattleRegion.ClearPreview(); _BattleRegion.Unregister(); _BattleRegion = null; } if (_SpectateRegion != null) { _SpectateRegion.ClearPreview(); _SpectateRegion.Unregister(); _SpectateRegion = null; } if (_Options != null) { _Options.Clear(); } OnDeleted(); if (AutoPvP.RemoveBattle(this)) { OnRemoved(); } Deleted = true; }