public bool AddNewBallFromPlayer(GameObject newBall, GameObject collidingBall, bool isOnList = false)
    {
        bool isAdded = false;

        lock (canAddBallLock)
        {
            if (!MovementManager.specialMove)
            {
                Vector3 positionForNewBall;
                Vector3 positionForFirstBall;
                bool    isRight = MovementManager.CheckIfIsRightAndFindNewPositions(newBall, balls.Find(collidingBall), out positionForNewBall, out positionForFirstBall, balls.First);
                ballsThatCouldBeInSequence.Add(balls.Insert(newBall, collidingBall, isRight));
                ChangeBallsDirectionOnInsert(newBall, positionForFirstBall, positionForNewBall);
                MovementManager.specialMove = true;
                newBall.tag = "Ball";
                isAdded     = true;
            }
            else
            {
                if (!isOnList)
                {
                    ballsToAdd.Add(new NewBallToAdd(newBall, collidingBall));
                }
            }
        }
        return(isAdded);
    }