// ==UserScript==
// @name [Pokeclicker] Catch Speed Adjuster
// @namespace Pokeclicker Scripts
// @match https://www.pokeclicker.com/
// @grant none
// @version 1.1
// @author Ephenia
// @description Adjusts catch speed of all Pokeballs. Currently only makes Pokeballs catch as fast as possible.
// @downloadURL none
// ==/UserScript==
var ballAdjuster;
var getBalls;
var awaitBallAdjust;
var defaultTime = [];
var newSave;
var trainerCards;
function initBallAdjust() {
var getBalls = App.game.pokeballs.pokeballs;
for (var i = 0; i < getBalls.length; i++) {
defaultTime.push(getBalls[i].catchTime)
}
var ballCont = document.getElementById('pokeballSelectorBody').querySelector('thead');
var ballAdj = document.createElement("tr");
ballAdj.innerHTML = `
`
ballCont.append(ballAdj)
document.getElementById('ball-adjust').addEventListener('click', event => changeAdjust(event.target));
if (ballAdjuster == "true") {
document.getElementById('ball-adjust').checked = true;
catchDelay();
}
function changeAdjust(ele) {
if (ballAdjuster == "true") {
ballAdjuster = "false"
} else {
ballAdjuster = "true"
}
localStorage.setItem("ballAdjuster", ballAdjuster);
catchDelay();
}
function catchDelay() {
for (var i = 0; i < getBalls.length; i++) {
if (ballAdjuster == "true") {
getBalls[i].catchTime = 0;
} else {
getBalls[i].catchTime = defaultTime[i];
}
}
}
}
if (localStorage.getItem('ballAdjuster') == null) {
localStorage.setItem("ballAdjuster", "false");
}
ballAdjuster = localStorage.getItem('ballAdjuster');
function loadScript(){
var scriptLoad = setInterval(function () {
try {
newSave = document.querySelectorAll('label')[0];
trainerCards = document.querySelectorAll('.trainer-card');
} catch (err) { }
if (typeof newSave != 'undefined') {
for (var i = 0; i < trainerCards.length; i++) {
trainerCards[i].addEventListener('click', checkBallAdjust, false);
}
newSave.addEventListener('click', checkBallAdjust, false);
clearInterval(scriptLoad)
}
}, 50);
}
var scriptName = 'catchspeedadjuster'
if (document.getElementById('scriptHandler') != undefined){
var scriptElement = document.createElement('div')
scriptElement.id = scriptName
document.getElementById('scriptHandler').appendChild(scriptElement)
if (localStorage.getItem(scriptName) != null){
if (localStorage.getItem(scriptName) == 'true'){
loadScript()
}
}
else{
localStorage.setItem(scriptName, 'true')
loadScript()
}
}
else{
loadScript();
}
function checkBallAdjust() {
awaitBallAdjust = setInterval(function () {
var gameState;
try {
gameState = App.game.gameState;
} catch (err) { }
if (typeof gameState != 'undefined') {
initBallAdjust();
clearInterval(awaitBallAdjust)
}
}, 1000);
}