Cookie Clicker clicker
-
/*
* @title Cookie Clicker clicker
* @description auto-click Cookie Clicker http://orteil.dashnet.org/cookieclicker/
* @include http://orteil.dashnet.org/cookieclicker/*
* @include http://orteil.dashnet.org/cookieclicker/beta/*
* @contributor bouze_me http://let.hatelabo.jp/bouze_me/let/hJmcpKukvYVM
* @contributor saitamanodoruji http://let.hatelabo.jp/saitamanodoruji/let/hLHUpdyt-_4f (Fork of)
* @orig-license Unknown (as-is)
* @contributor noromanba http://let.hatelabo.jp/noromanba/let/hJmcrJfO94ka
* @license TBD
*/
(function() {
var autoClickBigCookie = function() {
setInterval(function() {
document.querySelector('#bigCookie').click();
}, 1000 / 16); // meijin
};
autoClickBigCookie();
var isDisplay = function(node) {
return document.defaultView.getComputedStyle(node).getPropertyValue('display') !== 'none';
};
var $q = function(sel) {
return Array.prototype.slice.call(document.querySelectorAll(sel));
};
// X-browser loose datetime format shim; c.f.
// https://gist.github.com/noromanba/6737784
var toDatetimeString = (function() {
return function() {
var now = new Date();
return [
now.getFullYear(),
'-', ('0' + (now.getMonth() + 1)).slice(-2),
'-', ('0' + now.getDate()).slice(-2),
' ', now.toTimeString().slice(0, 8)
].join('');
};
})();
var log = (function() {
if (!console || !console.log) return function() {};
var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome/') > -1,
style = 'color: brown;';
// '%c': console style
// https://developers.google.com/chrome-developer-tools/docs/console-api
if (isChrome) {
return function(msg) { return console.log('%c' + msg, style); };
}
// Firefox not implemented yet?
// https://developer.mozilla.org/en-US/docs/Web/API/console.log
// https://developer.mozilla.org/en-US/docs/Web/API/console
return function(msg) { return console.log(msg); };
})();
// https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
var gcObserver = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (!isDisplay(mutation.target)) return;
mutation.target.click();
var popupTxt = '';
$q('#particles > div').some(function(p) {
if (isDisplay(p) && p.textContent !== 'Game saved') {
return !!(popupTxt = p.textContent);
}
});
log(['*Goleden Cookie was clicked', toDatetimeString(), popupTxt].join(', '));
});
});
var autoClickGoldenCookie = function() {
var goldenCookie = document.querySelector('#goldenCookie');
var gcConfig = { attributes: true, attributeFilter: ['style'] };
gcObserver.observe(goldenCookie, gcConfig);
log('*Cookie Clicker clicker loaded');
};
autoClickGoldenCookie();
})();
-
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。