let options;
function prepareOptions() {
options = {};
- let optHtml = V.Options.select.map(select => { return `
+ let optHtml = "";
+ if (V.Options.select) {
+ optHtml += V.Options.select.map(select => { return `
<div class="option-select">
<label for="var_${select.variable}">${select.label}</label>
<div class="select">
- <select id="var_${select.variable}" data-numeric="1">` +
+ <select id="var_${select.variable}">` +
select.options.map(option => { return `
<option
value="${option.value}"
<span class="focus"></span>
</div>
</div>`;
- }).join("");
- optHtml += V.Options.check.map(check => {
- return `
- <div class="option-check">
- <label class="checkbox">
- <input id="var_${check.variable}"
- type="checkbox"${check.defaut ? " checked" : ""}/>
+ }).join("");
+ }
+ if (V.Options.input) {
+ optHtml += V.Options.input.map(input => { return `
+ <div class="option-input">
+ <label class="input">
+ <input id="var_${input.variable}"
+ type="${input.type}"
+ ${input.type == "checkbox" && input.defaut
+ ? "checked"
+ : 'value="' + input.defaut + '"'}
+ />
<span class="spacer"></span>
- <span>${check.label}</span>
+ <span>${input.label}</span>
</label>
</div>`;
- }).join("");
- if (V.Options.styles.length >= 1) {
+ }).join("");
+ }
+ if (V.Options.styles) {
optHtml += '<div class="words">';
let i = 0;
const stylesLength = V.Options.styles.length;
const vname = $.getElementById("selectVariant").value;
const color = $.getElementById("selectColor").value;
for (const select of $.querySelectorAll("#gameOptions select")) {
- let value = select.value;
- if (select.attributes["data-numeric"])
- value = parseInt(value, 10);
- if (value)
- options[ select.id.split("_")[1] ] = value;
+ const value = parseInt(select.value, 10) || select.value;
+ options[ select.id.split("_")[1] ] = value;
}
- for (const check of $.querySelectorAll("#gameOptions input")) {
- if (check.checked)
- options[ check.id.split("_")[1] ] = check.checked;
+ for (const input of $.querySelectorAll("#gameOptions input")) {
+ const variable = input.id.split("_")[1];
+ if (input.type == "number")
+ options[variable] = parseInt(input.value, 10); //TODO: real numbers?
+ else if (input.type == "checkbox")
+ options[variable] = input.checked;
}
send("creategame", {
vname: vname,
let curMoves = [],
lastFen;
-const afterPlay = (move) => {
+const afterPlay = (move_s) => {
const callbackAfterSend = () => {
curMoves = [];
- const result = vr.getCurrentScore(move);
+ const result = vr.getCurrentScore(move_s);
if (result != "*") {
setTimeout(() => {
toggleVisible("gameStopped");
}
};
// Pack into one moves array, then send
- curMoves.push(move);
+ if (Array.isArray(move_s))
+ // Array of simple moves (e.g. Chakart)
+ Array.prototype.push.apply(curMoves, move_s);
+ else
+ // Usual case
+ curMoves.push(move_s);
if (vr.turn != playerColor) {
toggleTurnIndicator(false);
send("newmove",
</g>
</svg>
</div>
- <div class="resizeable chessboard"></div>`;
+ <div class="chessboard"></div>`;
vr = new V({
seed: obj.seed, //may be null if FEN already exists (running game)
fen: obj.fen,