Exemplo n.º 1
0
    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();
    }
Exemplo n.º 2
0
    public bool CanDoAction(PieceFiliation filiation)
    {
        if (filiation == turnoFiliation)
        {
            return(true);
        }

        return(false);
    }
Exemplo n.º 3
0
    public void PieceEaten(PieceAbstract piece)
    {
        PieceFiliation filiation = piece.Filiation;

        if (filiation == PieceFiliation.player1)
        {
            player2Points += 1;
        }

        if (filiation == PieceFiliation.player2)
        {
            player1Points += 1;
        }

        UpdateScoreText();
    }
Exemplo n.º 4
0
    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);
                }
            }
        }
    }
Exemplo n.º 5
0
    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);
                }
            }
        }
    }