private void ClickedBehaviour() { Debug.Log("Selected"); gameController.SetIsPieceClicked(); gameController.SetClickedPiece(gameObject); TableConstructor tableConstructor = TableConstructor.instance(); List <List <Piece> > checkersPiecesPositions = gameController.GetCurrentTable().GetPiecesPosition(); bool checkObjectController = true; int indexOfList = 0; while (checkObjectController) { if (checkersPiecesPositions[indexOfList].Contains(gameObject.GetComponent <Piece>())) { pieceRow = indexOfList; pieceColumn = checkersPiecesPositions[indexOfList].IndexOf(gameObject.GetComponent <Piece>()); checkObjectController = false; } else if (indexOfList == checkersPiecesPositions.Count - 1) { checkObjectController = false; } else { indexOfList++; } } gameController.SetCurrentClickedPiece(gameObject.GetComponent <Piece>()); gameController.SetOldPieceClickedPosition(pieceRow, pieceColumn); List <Piece> isPieceObligatedToEat = gameController.GetListOfPiecesAbleToEat(); }
public void OnMouseDown() { gameController = GameController.instance(); Debug.Log(gameObject.GetComponent <BoardPiece>().IsPlayable()); if (gameController.GetIsPieceClicked()) { TableConstructor tableConstructor = TableConstructor.instance(); if (gameObject.GetComponent <BoardPiece>().IsPlayable()) { if (gameController.GetMandatoryEat() == true) { gameController.SetNewBoardPosition(gameObject.GetComponent <BoardPiece>()); gameController.UpdateGameObjectBlockedDueMandatoryEat(); gameObject.GetComponent <BoardPiece>().SetPlayable(); gameController.DoesAIMustPlay(); } else { gameController.SetNewBoardPosition(gameObject.GetComponent <BoardPiece>()); gameController.UpdateGameObject(); gameController.DoesAIMustPlay(); } } } }
public void ConstructPieces() { piecesPosition = new List <List <Piece> >(); whitePiecesList = new List <Piece>(); darkPiecesList = new List <Piece>(); TableConstructor tableContructorInstance = TableConstructor.instance(); board = tableContructorInstance.GetBoard(); playbleBoard = tableContructorInstance.GetPlaybleArea(); int totalPieces = board.GetSizeOfTable() * 3; int columnValue = 0; int placeController = totalPieces; int rowValue = 0; List <Piece> auxiliarPiecesList = StartEmptyList(); GameObject pieceWhiteGameObject = Resources.Load <GameObject>("PieceWhite"); GameObject pieceBlackGameObject = Resources.Load <GameObject>("PieceBlack"); while (placeController > 0) { if (tableContructorInstance.GetPlaybleArea()[rowValue][columnValue].IsPlayable()) { if (rowValue < (tableContructorInstance.GetPlaybleArea().Count / 2 - 1)) { GameObject newPiece = Instantiate(pieceWhiteGameObject); newPiece.name = (rowValue.ToString() + " " + columnValue.ToString()); newPiece.transform.position = tableContructorInstance.GetPlaybleArea()[rowValue][columnValue].transform.position; tableContructorInstance.SetPlaybleTile(rowValue, columnValue); newPiece.GetComponent <Piece>().SetKing(false); newPiece.GetComponent <Piece>().SetIsUp(false); newPiece.GetComponent <Piece>().SetBlackColor(false); newPiece.GetComponent <Piece>().SetIsAvaiableToEat(true); whitePiecesList.Add(newPiece.GetComponent <Piece>()); newPiece.GetComponent <MeshRenderer>().material = whiteMaterial; board.UpdatePiecesPositionList(rowValue, columnValue, newPiece.GetComponent <Piece>()); placeController--; auxiliarPiecesList[columnValue] = newPiece.GetComponent <Piece>(); totalWhitePieces++; } else if (rowValue > (tableContructorInstance.GetPlaybleArea().Count / 2)) { GameObject newPiece = Instantiate(pieceBlackGameObject); newPiece.name = (rowValue.ToString() + " " + columnValue.ToString()); newPiece.transform.position = tableContructorInstance.GetPlaybleArea()[rowValue][columnValue].transform.position; newPiece.GetComponent <Piece>().SetKing(false); newPiece.GetComponent <Piece>().SetIsUp(true); tableContructorInstance.SetPlaybleTile(rowValue, columnValue); newPiece.GetComponent <Piece>().SetBlackColor(true); newPiece.GetComponent <Piece>().SetIsAvaiableToEat(true); darkPiecesList.Add(newPiece.GetComponent <Piece>()); newPiece.GetComponent <MeshRenderer>().material = grayMaterial; board.UpdatePiecesPositionList(rowValue, columnValue, newPiece.GetComponent <Piece>()); placeController--; auxiliarPiecesList[columnValue] = newPiece.GetComponent <Piece>(); totalBlackPieces++; } } if (columnValue < tableContructorInstance.GetPlaybleArea()[0].Count - 1) { columnValue++; } if (placeController % (tableContructorInstance.GetPlaybleArea()[0].Count / 2) == 0 && (!tableContructorInstance.GetPlaybleArea()[rowValue][columnValue].IsPlayable())) { if (rowValue < tableContructorInstance.GetPlaybleArea().Count) { rowValue++; piecesPosition.Add(auxiliarPiecesList); auxiliarPiecesList = StartEmptyList(); } columnValue = 0; } } }