react-chessboard-ui 2.2.1 → 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.
- package/dist/JSChessEngine/JSChessEngine.d.ts +1 -0
- package/dist/index.js +15 -11
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +15 -11
- 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
|
});
|
|
@@ -2433,8 +2436,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2433
2436
|
return !prevReversed;
|
|
2434
2437
|
});
|
|
2435
2438
|
};
|
|
2436
|
-
var selectFigureFrom = function selectFigureFrom(cellPos) {
|
|
2437
|
-
var
|
|
2439
|
+
var selectFigureFrom = function selectFigureFrom(cellPos, extActualState) {
|
|
2440
|
+
var nowState = extActualState || actualState;
|
|
2441
|
+
var cell = nowState[cellPos[1]][cellPos[0]];
|
|
2438
2442
|
if (!cell.figure) {
|
|
2439
2443
|
cleanAllForFigure();
|
|
2440
2444
|
return {
|
|
@@ -2457,7 +2461,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2457
2461
|
nextMoves: []
|
|
2458
2462
|
};
|
|
2459
2463
|
}
|
|
2460
|
-
var nextMoves = JSChessEngine.getNextMoves(
|
|
2464
|
+
var nextMoves = JSChessEngine.getNextMoves(nowState, cellPos, linesWithCheck, boardReversed);
|
|
2461
2465
|
return {
|
|
2462
2466
|
figure: cell.figure,
|
|
2463
2467
|
nextMoves: nextMoves
|
|
@@ -2586,6 +2590,10 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2586
2590
|
attackedPos = _JSChessEngine$change4.attackedPos;
|
|
2587
2591
|
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2588
2592
|
setLinesWithCheck(linesCheck);
|
|
2593
|
+
if (fromPos[0] !== -1) {
|
|
2594
|
+
var nextMoves = JSChessEngine.getNextMoves(updatedCells, fromPos, linesCheck, boardReversed);
|
|
2595
|
+
setPossibleMoves(nextMoves);
|
|
2596
|
+
}
|
|
2589
2597
|
setActualState(updatedCells);
|
|
2590
2598
|
if (figure.type === 'pawn' && (to[1] === 0 || to[1] === actualState.length - 1)) {
|
|
2591
2599
|
setTargetPos(to);
|
|
@@ -2603,7 +2611,6 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2603
2611
|
toggleCurrentColor();
|
|
2604
2612
|
setClickedFigure(undefined);
|
|
2605
2613
|
clearClickedPos();
|
|
2606
|
-
clearGrabbingPos();
|
|
2607
2614
|
clearArrows();
|
|
2608
2615
|
clearMarkedCells();
|
|
2609
2616
|
return {
|
|
@@ -2668,9 +2675,6 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2668
2675
|
setNewMove(change);
|
|
2669
2676
|
setMovesTrail([moveData.from, moveData.to]);
|
|
2670
2677
|
clearClickedPos();
|
|
2671
|
-
setHoldedFigure(undefined);
|
|
2672
|
-
clearFromPos();
|
|
2673
|
-
clearPossibleMoves();
|
|
2674
2678
|
clearClickPossibleMoves();
|
|
2675
2679
|
};
|
|
2676
2680
|
var handleClickForTargetCell = function handleClickForTargetCell(cellPos, withTransition) {
|