TrollChess

Pieces periodically get a new theme on chess.com

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         TrollChess
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Pieces periodically get a new theme on chess.com
// @author       SimpleVar
// @match        https://www.chess.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=chess.com
// @license      MIT
// @grant        none
// ==/UserScript==

(() => {
const THEMES = ['neo','wood','8_bit','alpha','bases','book','cases','classic','club','condal','game_room','icy_sea',
	'lolz','marble','maya','modern','nature','neo','neo_wood','ocean','space','tournament','vintage','wood'];
bazinga()
function randItem(arr) { return arr[(Math.random() * arr.length)|0] }
function bazinga() {
	const pieces = document.querySelectorAll('.piece')
	const p = randItem(pieces)
	if (!p) { setTimeout(bazinga, 200); return }
	p.style.backgroundImage = "url('https://images.chesscomfiles.com/chess-themes/pieces/"+
		randItem(THEMES)+"/150/"+[...p.classList].find(w => w.length === 2)+".png')"
	setTimeout(bazinga, ((Math.random() * Math.random()) * 1000 + 50)|0)
}

})()