onix-chess-game
Version:
Chess game board
94 lines (92 loc) • 3.79 kB
JavaScript
;
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