public void ChangeTurno() { if (blockTurnChange) { blockTurnChange = false; return; } if (turnoFiliation == PieceFiliation.player1) { panelP1.gameObject.SetActive(false); panelP2.gameObject.SetActive(true); turnoFiliation = PieceFiliation.player2; } else { panelP2.gameObject.SetActive(false); panelP1.gameObject.SetActive(true); turnoFiliation = PieceFiliation.player1; } GameManager.Instance.OnTurnoChange(); }
public bool CanDoAction(PieceFiliation filiation) { if (filiation == turnoFiliation) { return(true); } return(false); }
public void PieceEaten(PieceAbstract piece) { PieceFiliation filiation = piece.Filiation; if (filiation == PieceFiliation.player1) { player2Points += 1; } if (filiation == PieceFiliation.player2) { player1Points += 1; } UpdateScoreText(); }
private void EatRecursive(Vector2Int currentCheckPos, PieceEatV2 eatPos, List <MovementInBoard> movementList, PieceFiliation eaterFiliation) { var afterEatingPos = currentCheckPos + new Vector2Int(eatPos.x, eatPos.y); if (IsInBoardRanges(afterEatingPos)) { var otherPiecePos = currentCheckPos + new Vector2Int(eatPos.otherPieceX, eatPos.otherPieceY); if (!HasPieceInPos(afterEatingPos) && HasPieceInPos(otherPiecePos)) { var otherPieceTile = tilesMatrix[otherPiecePos.x, otherPiecePos.y]; if (otherPieceTile.MyPiece.Filiation != eaterFiliation) { Tile moveTo = tilesMatrix[afterEatingPos.x, afterEatingPos.y]; Tile eatenPiece = tilesMatrix[otherPiecePos.x, otherPiecePos.y]; movementList.Add(new MovementInBoard(moveTo, eatenPiece)); } } else { if (tilesMatrix[afterEatingPos.x, afterEatingPos.y].MyPiece?.Filiation != eaterFiliation && eatPos.recursive) { EatRecursive(otherPiecePos, eatPos, movementList, eaterFiliation); } } } }
private void SpawnPieceInThisSubMatrix(int linhaI, int linhaF, int colunaI, int colunaF, PieceFiliation filiation) { for (int i = colunaI; i < colunaF; i++) { for (int j = linhaI; j < linhaF; j++) { if ((i + j) % 2 == 0) { Tile tileToPutInto = tilesMatrix[i, j]; Vector2 positionToSpawn = tileToPutInto.PiecePosition.position; GameObject prefabToInstantiate = null; prefabToInstantiate = filiation == PieceFiliation.player1 ? darkPiece : lightPiece; PieceAbstract piece = Instantiate(prefabToInstantiate, positionToSpawn, Quaternion.identity).GetComponent <PieceAbstract>(); piece.Filiation = filiation; tileToPutInto.MyPiece = piece; GameManager.Instance.RegisterPiece(piece); } } } }