react-chessboard-ui 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,6 +15,7 @@ export declare type CellColor = 'white' | 'black';
15
15
  export interface Cell {
16
16
  figure?: Figure;
17
17
  beated?: boolean;
18
+ beatedFor?: FigureColor;
18
19
  }
19
20
  export interface ChessBoardConfig {
20
21
  cellWhiteBg: string;
package/dist/index.js CHANGED
@@ -587,7 +587,7 @@ JSChessEngine.checkPossiblePawnMoveToPos = function (state, pos, target, pawnCol
587
587
  case 'default':
588
588
  return !JSChessEngine.hasFigure(state, target.pos);
589
589
  case 'attack':
590
- return JSChessEngine.checkInBorderBoard(state, target.pos) && JSChessEngine.hasFigure(state, target.pos) && JSChessEngine.checkEnemy(state, pos, target.pos) && !JSChessEngine.checkEnemyKing(state, pos, target.pos) || JSChessEngine.checkInBorderBoard(state, target.pos) && JSChessEngine.checkBeatedCell(state, target.pos);
590
+ return JSChessEngine.checkInBorderBoard(state, target.pos) && JSChessEngine.hasFigure(state, target.pos) && JSChessEngine.checkEnemy(state, pos, target.pos) && !JSChessEngine.checkEnemyKing(state, pos, target.pos) || JSChessEngine.checkInBorderBoard(state, target.pos) && JSChessEngine.checkBeatedCell(state, target.pos) && state[target.pos[1]][target.pos[0]].beatedFor !== pawnColor;
591
591
  }
592
592
  };
593
593
  JSChessEngine.calcPawnMoves = function (state, figurePos, revese, onCheckPossible) {
@@ -969,7 +969,8 @@ JSChessEngine.changeState = function (state, currentFigure, targetPos, prevPos,
969
969
  attackedPos = [i, j];
970
970
  return {
971
971
  figure: undefined,
972
- beated: false
972
+ beated: false,
973
+ beatedFor: undefined
973
974
  };
974
975
  }
975
976
  if (currentFigure.type === 'pawn') {
@@ -978,13 +979,15 @@ JSChessEngine.changeState = function (state, currentFigure, targetPos, prevPos,
978
979
  if (diff > 0 && j === targetPos[1] - 1 && targetPos[0] === i || diff < 0 && j === targetPos[1] + 1 && targetPos[0] === i) {
979
980
  return {
980
981
  figure: undefined,
981
- beated: true
982
+ beated: true,
983
+ beatedFor: currentFigure.color
982
984
  };
983
985
  }
984
986
  }
985
987
  }
986
988
  return _extends({}, cell, {
987
- beated: cell.beated ? false : cell.beated
989
+ beated: cell.beated ? false : cell.beated,
990
+ beatedFor: cell.beated ? undefined : cell.beatedFor
988
991
  });
989
992
  });
990
993
  });