private IEnumerator SelectPositionCoroutine(BrRing curr, BrRing target)
    {
        var startTime = Time.time;
        var endTime   = startTime + Delay;

        outterIndexies.Clear();

        foreach (var i in innerIndexies)
        {
            if (!target.IsInside(locations[i].transform.position))
            {
                outterIndexies.Add(i);
            }

            if (Time.time - startTime > 0.005)
            {
                yield return(null);

                startTime = Time.time;
            }
        }

        yield return(null);

        outterIndexies.ForEach(i => innerIndexies.Remove(i));

        while (Time.time < endTime)
        {
            yield return(null);
        }

        int selectedIndex = -1;

        if (outterIndexies.Count > 0)
        {
            selectedIndex = outterIndexies.RandomSelection(random);
        }
        else if (innerIndexies.Count > 0)
        {
            selectedIndex = innerIndexies.RandomSelection(random);
        }
        else
        {
            yield break;
        }

        if (PhotonNetwork.IsMasterClient)
        {
            photonView.RPC(nameof(DropAirSupplyRpc), RpcTarget.All, selectedIndex);
        }
    }