forked from sent/waves
117 lines
2.6 KiB
JavaScript
117 lines
2.6 KiB
JavaScript
// bottom panel actions keys
|
|
|
|
// Rotate board
|
|
|
|
$('#btn-flip-board').on('click', function () {
|
|
if (typeof board.flip == 'function') {
|
|
board.flip();
|
|
} else {
|
|
board.setOrientation('flip');
|
|
}
|
|
});
|
|
|
|
// Switch sides
|
|
|
|
$('#btn-switch-sides').on('click', function () {
|
|
if (typeof board.flip == 'function') {
|
|
board.flip();
|
|
} else {
|
|
board.setOrientation('flip');
|
|
}
|
|
|
|
if (playerSide == 'w') {
|
|
playerSide = 'b';
|
|
opponentSide = 'w';
|
|
}
|
|
|
|
else if (playerSide == 'b') {
|
|
playerSide = 'w';
|
|
opponentSide = 'b';
|
|
}
|
|
|
|
opponentTurn();
|
|
|
|
});
|
|
|
|
// Save PGN string popup
|
|
|
|
$('#btn-save-pgn').on('click', function () {
|
|
if ($('#board-save-pgn-area').hasClass('hidden')) {
|
|
$('#board-load-fen-area, #board-load-pgn-area').addClass('hidden');
|
|
$('#board-save-pgn-area').removeClass('hidden');
|
|
$('#board-save-pgn-area textarea').text(game.pgn()).focus().select();
|
|
} else {
|
|
$('#board-save-pgn-area').addClass('hidden');
|
|
}
|
|
});
|
|
|
|
// Disable engine
|
|
|
|
$('#btn-engine-disable').on('click', function () {
|
|
if ($('#btn-engine-disable').hasClass('active')) {
|
|
$('#btn-engine-disable').removeClass('active');
|
|
$('#btn-engine-disable').text("AI");
|
|
engineDisabled = false;
|
|
if (playerSide != game.turn()) {
|
|
opponentTurn();
|
|
}
|
|
} else {
|
|
$('#btn-engine-disable').addClass('active');
|
|
$('#btn-engine-disable').text("Player");
|
|
engineDisabled = true;
|
|
}
|
|
});
|
|
|
|
// Show hint where to make move
|
|
|
|
$('#btn-show-hint').on('click', function () {
|
|
if ($(this).hasClass('disabled')) {
|
|
console.log('Cannot show hint in opponent turn.');
|
|
return;
|
|
}
|
|
stateHint = 'grep';
|
|
$('#btn-show-hint').addClass('loading disabled');
|
|
console.log('Hint for ' + game.fen());
|
|
stockfish.postMessage('position fen ' + game.fen());
|
|
stockfish.postMessage('go depth ' + staticSkill);
|
|
});
|
|
|
|
// Make one step back
|
|
|
|
$('#btn-take-back').on('click', function () {
|
|
game.undo();
|
|
board.position(game.fen());
|
|
game.undo();
|
|
board.position(game.fen());
|
|
if (game.history().length == 0) {
|
|
$('#btn-take-back').addClass('disabled');
|
|
}
|
|
});
|
|
|
|
// Promotion popup ui
|
|
|
|
$('#game-promotion span').on('click', function () {
|
|
|
|
$('#game-promotion span').removeClass('active');
|
|
$(this).addClass('active');
|
|
|
|
promotionFigure = $(this).attr('figure');
|
|
promotionEvent = true;
|
|
|
|
$('#game-promotion').addClass('hidden');
|
|
|
|
makePromotion(moveSource, moveTarget, promotionFigure);
|
|
|
|
opponentTurn();
|
|
|
|
});
|
|
|
|
// close popup on Esc key
|
|
|
|
$(document).on("keyup", function (e) {
|
|
var code = e.keyCode || e.which;
|
|
if (code == 27) {
|
|
$('#board-load-pgn-area, #board-load-fen-area, #board-save-pgn-area').addClass('hidden');
|
|
}
|
|
});
|