private void Slice() { if (Deleted || Initializing || Generating) { return; } ActiveGroup.ForEachReverse( m => { if (m == null) { return; } if (m.Map == Map && Zones.Any(m.InRegion)) { CheckDismount(m); if (!Options.Rules.AllowPets) { StablePets(m); } } else { OnExitDungeon(m); } }); OnSlice(); if (DateTime.UtcNow > Deadline) { OnDeadline(); } if (Core.TickCount < _NextDefragment) { return; } _NextDefragment = Core.TickCount + 60000; Defragment(); }