Esempio n. 1
0
    /// <summary>
    /// Executes Castle
    /// </summary>
    /// <param name="ShortCastle">True for short side castle, False, for long side</param>
    void Castle(bool ShortCastle)
    {
        if (GetIsBlack())
        {
            if (ShortCastle)
            {
                Transform   rook      = Coord_Manager.GetTransformObject("Black_Rook_2");
                Chess_Piece rook_CP   = Coord_Manager.GetPiece("Black_Rook_2");
                Vector3     targetPos = Coord_Manager.ConvertChessUnitsToCoords(new Vector2Int(6, 8));

                rook.localPosition = targetPos;

                rook_CP.CenterPiece();
                Coord_Manager.UpdatePosition(rook.name, targetPos);
            }
            else
            {
                Transform   rook      = Coord_Manager.GetTransformObject("Black_Rook_1");
                Chess_Piece rook_CP   = Coord_Manager.GetPiece("Black_Rook_1");
                Vector3     targetPos = Coord_Manager.ConvertChessUnitsToCoords(new Vector2Int(4, 8));

                rook.localPosition = targetPos;

                rook_CP.CenterPiece();
                Coord_Manager.UpdatePosition(rook.name, targetPos);
            }
        }
        else
        {
            if (ShortCastle)
            {
                Transform   rook      = Coord_Manager.GetTransformObject("White_Rook_2");
                Chess_Piece rook_CP   = Coord_Manager.GetPiece("White_Rook_2");
                Vector3     targetPos = Coord_Manager.ConvertChessUnitsToCoords(new Vector2Int(6, 1));

                rook.localPosition = targetPos;

                rook_CP.CenterPiece();
                Coord_Manager.UpdatePosition(rook.name, targetPos);
            }
            else
            {
                Transform   rook      = Coord_Manager.GetTransformObject("White_Rook_1");
                Chess_Piece rook_CP   = Coord_Manager.GetPiece("White_Rook_1");
                Vector3     targetPos = Coord_Manager.ConvertChessUnitsToCoords(new Vector2Int(4, 1));

                rook.localPosition = targetPos;

                rook_CP.CenterPiece();
                Coord_Manager.UpdatePosition(rook.name, targetPos);
            }
        }
    }
Esempio n. 2
0
    void Start()
    {
        piece = GetComponent <Chess_Piece>();

        //determine piece type
        switch (transform.name[6])
        {
        case 'P':
            PieceTypeID = 1;
            pawn        = transform.GetComponent <Pawn_Piece>();
            break;

        case 'R':
            PieceTypeID = 2;
            rook        = transform.GetComponent <Rook_Piece>();
            break;

        case 'B':
            PieceTypeID = 3;
            bishop      = transform.GetComponent <Bishop_Piece>();
            break;

        case 'H':
            PieceTypeID = 4;
            horse       = transform.GetComponent <Horse_Piece>();
            break;

        case 'Q':
            PieceTypeID = 5;
            queen       = transform.GetComponent <Queen_Piece>();
            break;

        case 'K':
            PieceTypeID = 6;
            king        = transform.GetComponent <King_Piece>();
            break;

        default:
            break;
        }

        if (transform.parent.name == "Black")
        {
            PieceTypeID += 6;
        }
    }
Esempio n. 3
0
    /// <summary>
    /// Generate all legal moves on the board
    /// </summary>
    /// <param name="board">Board to use</param>
    /// <param name="LookForBlackPieces">What team's turn is it?</param>
    public static List <Move> Generate(Transform[,] board, bool LookForBlackPieces)
    {
        List <Move> moves = new List <Move>();

        foreach (Transform piece in board)
        {
            try
            {
                Chess_Piece chess_Piece = piece.GetComponent <Chess_Piece>();
                if (chess_Piece.GetIsBlack() == LookForBlackPieces)
                {
                    foreach (Move move in chess_Piece.GenerateAllValidMoves())
                    {
                        moves.Add(move);
                    }
                }
            }
            catch (NullReferenceException) { }
        }

        //Debug.Log(moves[1].name);
        return(moves);
    }
Esempio n. 4
0
 // Start is called before the first frame update
 void Start()
 {
     CP   = transform.GetComponent <Chess_Piece>();
     main = GameObject.Find("MainCode").GetComponent <Main>();
     team = transform.parent.GetComponent <Team_Manager>();
 }