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.modern.js
CHANGED
|
@@ -584,7 +584,7 @@ JSChessEngine.checkPossiblePawnMoveToPos = function (state, pos, target, pawnCol
|
|
|
584
584
|
case 'default':
|
|
585
585
|
return !JSChessEngine.hasFigure(state, target.pos);
|
|
586
586
|
case 'attack':
|
|
587
|
-
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);
|
|
587
|
+
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;
|
|
588
588
|
}
|
|
589
589
|
};
|
|
590
590
|
JSChessEngine.calcPawnMoves = function (state, figurePos, revese, onCheckPossible) {
|
|
@@ -966,7 +966,8 @@ JSChessEngine.changeState = function (state, currentFigure, targetPos, prevPos,
|
|
|
966
966
|
attackedPos = [i, j];
|
|
967
967
|
return {
|
|
968
968
|
figure: undefined,
|
|
969
|
-
beated: false
|
|
969
|
+
beated: false,
|
|
970
|
+
beatedFor: undefined
|
|
970
971
|
};
|
|
971
972
|
}
|
|
972
973
|
if (currentFigure.type === 'pawn') {
|
|
@@ -975,13 +976,15 @@ JSChessEngine.changeState = function (state, currentFigure, targetPos, prevPos,
|
|
|
975
976
|
if (diff > 0 && j === targetPos[1] - 1 && targetPos[0] === i || diff < 0 && j === targetPos[1] + 1 && targetPos[0] === i) {
|
|
976
977
|
return {
|
|
977
978
|
figure: undefined,
|
|
978
|
-
beated: true
|
|
979
|
+
beated: true,
|
|
980
|
+
beatedFor: currentFigure.color
|
|
979
981
|
};
|
|
980
982
|
}
|
|
981
983
|
}
|
|
982
984
|
}
|
|
983
985
|
return _extends({}, cell, {
|
|
984
|
-
beated: cell.beated ? false : cell.beated
|
|
986
|
+
beated: cell.beated ? false : cell.beated,
|
|
987
|
+
beatedFor: cell.beated ? undefined : cell.beatedFor
|
|
985
988
|
});
|
|
986
989
|
});
|
|
987
990
|
});
|
|
@@ -2588,8 +2591,14 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2588
2591
|
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2589
2592
|
setLinesWithCheck(linesCheck);
|
|
2590
2593
|
if (fromPos[0] !== -1) {
|
|
2591
|
-
var
|
|
2592
|
-
|
|
2594
|
+
var figureFromPos = updatedCells[fromPos[1]][fromPos[0]].figure;
|
|
2595
|
+
if (!figureFromPos || figureFromPos.type !== holdedFigure.type || figureFromPos.color !== holdedFigure.color) {
|
|
2596
|
+
clearFromPos();
|
|
2597
|
+
setHoldedFigure(undefined);
|
|
2598
|
+
} else {
|
|
2599
|
+
var nextMoves = JSChessEngine.getNextMoves(updatedCells, fromPos, linesCheck, boardReversed);
|
|
2600
|
+
setPossibleMoves(nextMoves);
|
|
2601
|
+
}
|
|
2593
2602
|
}
|
|
2594
2603
|
setActualState(updatedCells);
|
|
2595
2604
|
if (figure.type === 'pawn' && (to[1] === 0 || to[1] === actualState.length - 1)) {
|