public static GridBall Generate(Transform parentTF, bool wasBallShot = false) { GridBall gridBall = PoolManager.I.GetPooler("GridBall").Get <GridBall>(); gridBall.transform.SetParent(parentTF); gridBall.transform.localPosition = Vector3.zero; gridBall.transform.localScale = Vector3.one * 0.7f; gridBall.transform.localRotation = Quaternion.identity; gridBall.DetectParentBallGrid(); float a = 1f; if (!wasBallShot) { if (Random.Range(1, 100) == 50) { a = 0.5f; } } gridBall.SetRandomColor(a); gridBall.neighbors = gridBall.GetNeighbors(); foreach (GridBall gb in gridBall.neighbors) { if (!gb.neighbors.Contains(gridBall)) { gb.neighbors.Add(gridBall); } } return(gridBall); }