UNPKG

ngx-chess-board

Version:
52 lines (47 loc) 1.69 kB
import { Board } from '../../models/board'; import { Color } from '../../models/pieces/color'; import { Point } from '../../models/pieces/point'; import { MoveUtils } from '../../utils/move-utils'; import { AbstractPiece } from './abstract-piece'; import { PieceAbstractDecorator } from './piece-abstract-decorator'; export class AvailableMoveDecorator extends PieceAbstractDecorator { private pointClicked: Point; private color: Color; private board: Board; constructor(piece: AbstractPiece, pointClicked: Point, color: Color, board: Board) { super(piece); this.pointClicked = pointClicked; this.color = color; this.board = board; } getPossibleCaptures(): Point[] { return this.piece .getPossibleCaptures() .filter( (point) => !MoveUtils.willMoveCauseCheck( this.color, this.pointClicked.row, this.pointClicked.col, point.row, point.col, this.board ) ); } getPossibleMoves(): Point[] { return this.piece .getPossibleMoves() .filter( (point) => !MoveUtils.willMoveCauseCheck( this.color, this.pointClicked.row, this.pointClicked.col, point.row, point.col, this.board ) ); } }