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.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
|
});
|
|
@@ -2436,8 +2439,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2436
2439
|
return !prevReversed;
|
|
2437
2440
|
});
|
|
2438
2441
|
};
|
|
2439
|
-
var selectFigureFrom = function selectFigureFrom(cellPos) {
|
|
2440
|
-
var
|
|
2442
|
+
var selectFigureFrom = function selectFigureFrom(cellPos, extActualState) {
|
|
2443
|
+
var nowState = extActualState || actualState;
|
|
2444
|
+
var cell = nowState[cellPos[1]][cellPos[0]];
|
|
2441
2445
|
if (!cell.figure) {
|
|
2442
2446
|
cleanAllForFigure();
|
|
2443
2447
|
return {
|
|
@@ -2460,7 +2464,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2460
2464
|
nextMoves: []
|
|
2461
2465
|
};
|
|
2462
2466
|
}
|
|
2463
|
-
var nextMoves = JSChessEngine.getNextMoves(
|
|
2467
|
+
var nextMoves = JSChessEngine.getNextMoves(nowState, cellPos, linesWithCheck, boardReversed);
|
|
2464
2468
|
return {
|
|
2465
2469
|
figure: cell.figure,
|
|
2466
2470
|
nextMoves: nextMoves
|
|
@@ -2589,6 +2593,10 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2589
2593
|
attackedPos = _JSChessEngine$change4.attackedPos;
|
|
2590
2594
|
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2591
2595
|
setLinesWithCheck(linesCheck);
|
|
2596
|
+
if (fromPos[0] !== -1) {
|
|
2597
|
+
var nextMoves = JSChessEngine.getNextMoves(updatedCells, fromPos, linesCheck, boardReversed);
|
|
2598
|
+
setPossibleMoves(nextMoves);
|
|
2599
|
+
}
|
|
2592
2600
|
setActualState(updatedCells);
|
|
2593
2601
|
if (figure.type === 'pawn' && (to[1] === 0 || to[1] === actualState.length - 1)) {
|
|
2594
2602
|
setTargetPos(to);
|
|
@@ -2606,7 +2614,6 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2606
2614
|
toggleCurrentColor();
|
|
2607
2615
|
setClickedFigure(undefined);
|
|
2608
2616
|
clearClickedPos();
|
|
2609
|
-
clearGrabbingPos();
|
|
2610
2617
|
clearArrows();
|
|
2611
2618
|
clearMarkedCells();
|
|
2612
2619
|
return {
|
|
@@ -2671,9 +2678,6 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2671
2678
|
setNewMove(change);
|
|
2672
2679
|
setMovesTrail([moveData.from, moveData.to]);
|
|
2673
2680
|
clearClickedPos();
|
|
2674
|
-
setHoldedFigure(undefined);
|
|
2675
|
-
clearFromPos();
|
|
2676
|
-
clearPossibleMoves();
|
|
2677
2681
|
clearClickPossibleMoves();
|
|
2678
2682
|
};
|
|
2679
2683
|
var handleClickForTargetCell = function handleClickForTargetCell(cellPos, withTransition) {
|