onix-chess-game
Version:
Chess game board
73 lines (71 loc) • 3.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Captures = void 0;
const tslib_1 = require("tslib");
const classnames_1 = tslib_1.__importDefault(require("classnames"));
const toSafeInteger_1 = tslib_1.__importDefault(require("lodash/toSafeInteger"));
const onix_chess_1 = require("onix-chess");
const React = tslib_1.__importStar(require("react"));
class Captures extends React.Component {
/**
* constructor
*/
constructor(props) {
super(props);
this.moveToPly = (ply) => {
const { store } = this.props;
store.dispatch({ type: onix_chess_1.GameActions.NAVIGATE_TO_PLY, ply: ply });
};
this.pieceClick = (e) => {
this.moveToPly(toSafeInteger_1.default(e.currentTarget.dataset["ply"]));
};
}
render() {
const { props, pieceClick } = this;
const { store } = props;
const state = store.getState();
const { engine } = state.game;
if (engine) {
let white = [];
let whiteWeight = 0;
let black = [];
let blackWeight = 0;
if (engine) {
const captured = engine.CurrentPos.Captured;
for (var i = 0; i < captured.length; i++) {
var p = captured[i];
if (p && (p !== onix_chess_1.Piece.None)) {
const c = onix_chess_1.Piece.color(p);
const t = onix_chess_1.Piece.type(p);
const pieces = ["x", "king", "queen", "rook", "bishop", "knight", "pawn"];
const squareClass = [
"no-square"
];
const pieceClass = [
onix_chess_1.Color.toName(c),
pieces[t],
"cursor"
];
const pc = (React.createElement("div", { key: i, "data-kind": "square", className: "no-square" },
React.createElement("div", null,
React.createElement("div", { "data-kind": "piece", className: classnames_1.default(pieceClass), onClick: pieceClick, "data-ply": i }))));
if (c === onix_chess_1.Color.White) {
whiteWeight += onix_chess_1.Piece.Score[t];
white.push(pc);
}
else {
blackWeight += onix_chess_1.Piece.Score[t];
black.push(pc);
}
}
}
}
return (React.createElement("div", { className: classnames_1.default("size2 captures", this.props.piece) },
React.createElement("div", { className: "captures-white d-flex flex-row flex-wrap" }, white),
React.createElement("div", { className: "captures-black d-flex flex-row flex-wrap" }, black)));
}
return null;
}
}
exports.Captures = Captures;
//# sourceMappingURL=Captures.js.map