private void SetupPlayerBalls(List <GridBall> initialBalls)
    {
        activePlayerBall = Instantiate(playerBallPrefab, activeBallPosition);
        var firstRowBalls  = initialBalls.FindAll(b => b.GridData.RowIndex == 0);
        var randomFirstBal = firstRowBalls[Random.Range(0, firstRowBalls.Count)];

        firstRowBalls.Remove(randomFirstBal);
        var startingBallSettings = GameplayManager.Instance.GameSettings.BallSettings.Find(s => s.Value == randomFirstBal.Score);

        activePlayerBall.SetInfo(startingBallSettings);

        SpawnStandByBall(firstRowBalls);
        isInAimMode = true;
    }
    private void SpawnStandByBall(List <GridBall> possibleStandbyBalls = null)
    {
        standbyPlayerBall = Instantiate(playerBallPrefab, standbyBallPosition);
        standbyPlayerBall.transform.localScale = Vector3.zero;
        standbyPlayerBall.transform.DOScale(standbyBallSize, newBallAppearTimer);
        if (possibleStandbyBalls == null)
        {
            possibleStandbyBalls = GridController.Instance.GetPossibleBalls();
            if (possibleStandbyBalls.Count > 1 && possibleStandbyBalls.Find(b => b.Score == activePlayerBall.Score))
            {
                possibleStandbyBalls.Remove(possibleStandbyBalls.Find(b => b.Score == activePlayerBall.Score));
            }
        }
        var randomBallValue     = possibleStandbyBalls[Random.Range(0, possibleStandbyBalls.Count)].Score;
        var standbyBallSettings = GameplayManager.Instance.GameSettings.BallSettings.Find(s => s.Value == randomBallValue);

        standbyPlayerBall.SetInfo(standbyBallSettings);
    }