UNPKG

onix-chess-game

Version:
73 lines (71 loc) 3.17 kB
"use strict"; 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