Example #1
0
        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();
        }