/// <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); } } }
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; } }
/// <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); }
// 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>(); }