from logic.move import Move from .piece import Piece class Rook(Piece): def legal_moves(self, board: "Board", / , looking_for_check = False) -> list[Move]: ret = [] # looking east ret.extend(self._look_direction(board, 1, 0)) # looking south ret.extend(self._look_direction(board, 0, -1)) # looking west ret.extend(self._look_direction(board, -1, 0)) # looking north ret.extend(self._look_direction(board, 0, 1)) if not looking_for_check and board.is_check_for(self.colour): return self.keep_only_blocking(ret, board) return ret