UNPKG

onix-chess-game

Version:
94 lines (92 loc) 3.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.renderResult = exports.renderTimer = exports.renderPlayer = void 0; const tslib_1 = require("tslib"); const react_1 = tslib_1.__importDefault(require("react")); const classnames_1 = tslib_1.__importDefault(require("classnames")); const onix_chess_1 = require("onix-chess"); const onix_chess_ctrls_1 = require("onix-chess-ctrls"); const onix_core_1 = require("onix-core"); const renderPlayer = (engine, orientation, position) => { const { White: white, Black: black } = engine; let player; if (orientation == "white") { player = (position == "bottom") ? white : black; } else { player = (position == "bottom") ? black : white; } if (player) { return (react_1.default.createElement(onix_chess_ctrls_1.UserName, { user: player.user, size: "Small" })); } return null; }; exports.renderPlayer = renderPlayer; const renderTimer = (engine, orientation, position) => { const rawData = engine.RawData; const timer = rawData.correspondence ? rawData.correspondence : rawData.clock; if (timer) { let time; let color; if (onix_chess_1.isBlitzClock(timer) || onix_chess_1.isCorrespondenceClock(timer)) { if (orientation == "white") { time = (position == "bottom") ? timer.white : timer.black; color = (position == "bottom") ? "white" : "black"; } else { time = (position == "bottom") ? timer.black : timer.white; color = (position == "bottom") ? "black" : "white"; } } else if (onix_chess_1.isAdvanceClock(timer)) { let playerTime; if (orientation == "white") { playerTime = (position == "bottom") ? timer.white : timer.black; color = (position == "bottom") ? "white" : "black"; } else { playerTime = (position == "bottom") ? timer.black : timer.white; color = (position == "bottom") ? "black" : "white"; } if (timer.lastMoveAt && timer.serverNow) { time = playerTime - (timer.serverNow - timer.lastMoveAt); } } if (time) { const isActive = (rawData.game.player == color); const timerClass = [ "timer", { "active": isActive } ]; const timerIcon = (active) => { if (active) { return (react_1.default.createElement("i", { className: "xi-time pr-2" })); } return null; }; return (react_1.default.createElement("div", { className: classnames_1.default(timerClass) }, timerIcon(isActive), react_1.default.createElement("span", null, onix_core_1.formatTimer(time)))); } } return null; }; exports.renderTimer = renderTimer; const renderResult = (engine, orientation, position) => { if (engine.Result) { const whiteResult = engine.Result; const blackResult = onix_chess_1.GameResult.OppositeColor[whiteResult]; let score; let type; if (orientation == "white") { score = (position == "bottom") ? onix_chess_1.GameResult.score[whiteResult] : onix_chess_1.GameResult.score[blackResult]; } else { score = (position == "bottom") ? onix_chess_1.GameResult.score[blackResult] : onix_chess_1.GameResult.score[whiteResult]; } return (react_1.default.createElement("div", { className: "game-result" }, score)); } return null; }; exports.renderResult = renderResult; //# sourceMappingURL=GameUtils.js.map