gg
当前为
// ==UserScript==
// @name Lichess Chess.com Full Pack
// @namespace http://example.com
// @description gg
// @include http://*.lichess.org/*
// @version 1.2
// @grant none
// ==/UserScript==
$.sound = (function() {
var MoveW = new Audio();
MoveW.src = 'http://images.chesscomfiles.com/chess-themes/sounds/_MP3_/default/move-self.mp3';
var MoveB = new Audio();
MoveB.src = 'http://images.chesscomfiles.com/chess-themes/sounds/_MP3_/default/move-opponent.mp3';
var Take = new Audio();
Take.src = 'http://images.chesscomfiles.com/chess-themes/sounds/_MP3_/default/capture.mp3';
var Dong = new Audio();
Dong.src = 'http://images.chesscomfiles.com/chess-themes/sounds/_MP3_/default/game-end.mp3';
var Lowtime = new Audio();
Lowtime.src = 'http://images.chesscomfiles.com/chess-themes/sounds/_MP3_/default/move-check.mp3';
var baseUrl = $('body').data('sound-dir') + '/';
Howler.volume(lichess.storage.get('sound-volume') || 0.1);
var audio = {
dong: 'dong',
moveW: 'move',
moveB: 'move',
take: 'take',
lowtime: 'lowtime',
};
var volumes = {
lowtime: 0.5
};
var get = new $.lazy(function(k) {
return new Howl({
src: ['ogg', 'mp3'].map(function(ext) {
return baseUrl + audio[k] + '.' + ext;
}),
volume: volumes[k] || 0.1
});
});
var $control = $('#sound_control');
var $toggle = $('#sound_state');
var enabled = function() {
return !!lichess.storage.get('sound');
};
$control.add($toggle).toggleClass('sound_state_on', enabled());
var play = {
move: function(white) {
if (enabled()) {
if (white) MoveW.play();
else MoveB.play();
}
},
take: function() {
if (enabled()) Take.play();
},
dong: function() {
if (enabled()) Dong.play();
},
lowtime: function() {
if (enabled()) Lowtime.play();
}
};
var setVolume = function(v) {
lichess.storage.set('sound-volume', v);
Howler.volume(v);
};
var manuallySetVolume = $.fp.debounce(function(v) {
setVolume(v);
play.move(true);
}, 50);
$toggle.click(function() {
var enab = !enabled();
if (enab) lichess.storage.set('sound', 1);
else lichess.storage.remove('sound');
$control.add($toggle).toggleClass('sound_state_on', enab);
play.dong();
return false;
});
$toggle.one('mouseover', function() {
$toggle.parent().find('.slider').slider({
orientation: "vertical",
min: 0,
max: 1,
range: 'min',
step: 0.01,
value: Howler.volume(),
slide: function(e, ui) {
manuallySetVolume(ui.value);
}
});
});
return play;
})();
function addGlobalStyle(css) {
var head, style;
head = document.getElementsByTagName('head')[0];
if (!head) { return; }
style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = css;
head.appendChild(style);
};
addGlobalStyle('.cg-piece.knight.black { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/bn.png")!important;} ');
addGlobalStyle('.cg-piece.bishop.black { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/bb.png")!important;} ');
addGlobalStyle('.cg-piece.queen.black { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/bq.png")!important;} ');
addGlobalStyle('.cg-piece.rook.black { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/br.png")!important;} ');
addGlobalStyle('.cg-piece.pawn.black { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/bp.png")!important;} ');
addGlobalStyle('.cg-piece.king.black { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/bk.png")!important;} ');
addGlobalStyle('.cg-piece.knight.white { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/wn.png")!important;} ');
addGlobalStyle('.cg-piece.bishop.white { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/wb.png")!important;} ');
addGlobalStyle('.cg-piece.queen.white { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/wq.png")!important;} ');
addGlobalStyle('.cg-piece.rook.white { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/wr.png")!important;} ');
addGlobalStyle('.cg-piece.pawn.white { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/wp.png")!important;} ');
addGlobalStyle('.cg-piece.king.white { background-image: url("http://images.chesscomfiles.com/chess-themes/pieces/classic/80/wk.png")!important;} ');
addGlobalStyle('.cg-board { background-image: url("http://images.chesscomfiles.com/chess-themes/boards/translucent/80.png")!important;} ');
addGlobalStyle('.cg-square.last-move { background-color:rgba(255, 0, 0, 0.41) !important;} ');
$('body').css('background', '#fefefe');
$('.cg-board').css({"border-color": "#ccc",
"border-width":"3px",
"border-style":"solid"});