//Grabs all pieces of same type adjacent to lowest piece in column public void Grab(int playerPosition) { //Access each tile from bottom up only in player's column for (int i = 11; i >= 0; i--) { GameObject currentTile = boardArray[playerPosition, i]; int childCount = currentTile.transform.childCount; PieceController currentPiece = null; //Gets the child piece, the first condition is for when it's on the same tile as player if (childCount > 1) { currentPiece = currentTile.transform.GetChild(1).gameObject.GetComponent <PieceController>(); } else if (childCount > 0) { GameObject currentChild = currentTile.transform.GetChild(0).gameObject; if (currentChild.transform.tag != "Player") { currentPiece = currentChild.GetComponent <PieceController>(); } } //Update basketSize and basketType based on pickups and state of basketType //This discriminates between pieces of the current basketType and other types if (currentPiece != null) { if (matchingCoordinates.Contains(new int[] { playerPosition, i })) { matchingCoordinates.Clear(); } PieceType currentPieceType = currentPiece.GetType(); if (basketSize == 0) { basketType = currentPieceType; } else if (currentPieceType != basketType) { break; } basketSize++; currentPiece.beingGrabbed = true; basketDisplay.SetType(currentPieceType); ui.SetBasketText(basketSize); StartCoroutine(MovePiece(currentPiece.gameObject, new int[] { playerPosition, 11 }, 11 - i, true)); } } print(basketSize); }