public void CheckRespawns()
        {
            lock (_markersLock)
            {
                if (_markers.Count == 0)
                {
                    return;
                }
            }
            List <Tuple <int, Rectangle, Rectangle> > list = new List <Tuple <int, Rectangle, Rectangle> >();

            for (int i = 0; i < 255; i++)
            {
                Player player = Main.player[i];
                if (player.active && !player.dead)
                {
                    list.Add(Tuple.Create(i, Utils.CenteredRectangle(player.Center, _playerBoxSizeInner), Utils.CenteredRectangle(player.Center, _playerBoxSizeOuter)));
                }
            }
            if (list.Count == 0)
            {
                return;
            }
            RemoveExpiredOrInvalidMarkers();
            lock (_markersLock)
            {
                List <RevengeMarker> list2 = new List <RevengeMarker>();
                for (int j = 0; j < _markers.Count; j++)
                {
                    RevengeMarker revengeMarker             = _markers[j];
                    bool          flag                      = false;
                    Tuple <int, Rectangle, Rectangle> tuple = null;
                    foreach (Tuple <int, Rectangle, Rectangle> item in list)
                    {
                        if (revengeMarker.Intersects(item.Item2, item.Item3))
                        {
                            tuple = item;
                            flag  = true;
                            break;
                        }
                    }
                    if (!flag)
                    {
                        revengeMarker.SetRespawnAttemptLock(state: false);
                    }
                    else if (!revengeMarker.RespawnAttemptLocked)
                    {
                        revengeMarker.SetRespawnAttemptLock(state: true);
                        if (revengeMarker.WouldNPCBeDiscouraged(Main.player[tuple.Item1]))
                        {
                            revengeMarker.SetToExpire();
                            continue;
                        }
                        revengeMarker.SpawnEnemy();
                        list2.Add(revengeMarker);
                    }
                }
                _markers = _markers.Except(list2).ToList();
            }
        }