react-chessboard-ui 2.3.0 → 2.4.1
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.
- package/dist/JSChessEngine/JSChessEngine.d.ts +1 -0
- package/dist/index.js +15 -6
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +15 -6
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
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
|
});
|
|
@@ -2591,8 +2594,14 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2591
2594
|
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2592
2595
|
setLinesWithCheck(linesCheck);
|
|
2593
2596
|
if (fromPos[0] !== -1) {
|
|
2594
|
-
var
|
|
2595
|
-
|
|
2597
|
+
var figureFromPos = updatedCells[fromPos[1]][fromPos[0]].figure;
|
|
2598
|
+
if (!figureFromPos || figureFromPos.type !== holdedFigure.type || figureFromPos.color !== holdedFigure.color) {
|
|
2599
|
+
clearFromPos();
|
|
2600
|
+
setHoldedFigure(undefined);
|
|
2601
|
+
} else {
|
|
2602
|
+
var nextMoves = JSChessEngine.getNextMoves(updatedCells, fromPos, linesCheck, boardReversed);
|
|
2603
|
+
setPossibleMoves(nextMoves);
|
|
2604
|
+
}
|
|
2596
2605
|
}
|
|
2597
2606
|
setActualState(updatedCells);
|
|
2598
2607
|
if (figure.type === 'pawn' && (to[1] === 0 || to[1] === actualState.length - 1)) {
|