Auto hatch
// ==UserScript==
// @name AutoBattle
// @namespace Pokeclicker Scripts
// @version 0.2
// @description Auto hatch
// @author Maxteke
// @match https://www.pokeclicker.com/
// @grant none
// @license MIT
// ==/UserScript==
var scriptName = 'autoBattle';
var autoBattleLoop;
var autoBattleState;
function card() {
var card = document.createElement('div');
card.id = 'autoBattle';
card.classList.add('card')
card.classList.add('sortable')
card.classList.add('border-secondary')
card.classList.add('mb-3')
var header = document.createElement('div');
header.classList.add('card-header');
header.classList.add('p-0');
header.setAttribute('data-toggle', 'collapse');
header.setAttribute('href', '#autoBattleBody');
var title = document.createElement('span');
title.innerHTML = 'Auto battle';
header.appendChild(title);
card.appendChild(header);
var body = document.createElement('div');
body.id = 'autoBattleBody'
body.classList.add('card-body');
body.classList.add('p-0');
body.classList.add('collapse');
body.classList.add('show');
var container = document.createElement('div');
container.style.display = 'flex';
container.style.flexDirection = 'column';
container.style.alignContent = 'center';
container.style.alignItems = 'center';
var input = document.createElement('input');
input.id = 'auto-battle-input';
input.type = 'number';
input.value = '1';
input.min = '1';
input.max = '1000';
input.name = 'stopStage';
input.classList.add('outline-dark');
input.classList.add('form-control');
input.classList.add('form-control-number');
container.appendChild(input);
var button = document.createElement('button');
button.id = 'auto-battle-switch';
button.classList.add("btn");
button.classList.add("btn-sm");
button.classList.add("btn-danger");
button.innerHTML = `Auto battle [` + autoBattleState + `]`;
button.onclick = function() {switchState(button, input)};
container.appendChild(button);
body.appendChild(container);
card.appendChild(body);
document.getElementById('left-column').prepend(card);
}
function switchState(button, input) {
if (autoBattleState == "OFF") {
autoBattleState = "ON";
button.classList.remove('btn-danger');
button.classList.add('btn-success');
battleLoop(input);
} else {
autoBattleState = "OFF"
button.classList.remove('btn-success');
button.classList.add('btn-danger');
clear();
clearInterval(autoBattleLoop);
}
button.innerHTML = `Auto battle [` + autoBattleState + `]`;
}
function clear() {
BattleFrontierRunner.end();
}
function battleLoop(input) {
BattleFrontierRunner.start(false);
autoBattleLoop = setInterval(function () {
if (parseInt(input.value) < 1) {
input.value = 1;
}
if (parseInt(input.value) > 1000) {
input.value = 1000;
}
if (BattleFrontierRunner.stage() > input.value) {
clear();
BattleFrontierRunner.start(false);
}
}, 50);
}
function initAutoBattle() {
autoBattleState = 'OFF';
card();
}
function loadScript(){
var oldInit = Preload.hideSplashScreen
Preload.hideSplashScreen = function(){
var result = oldInit.apply(this, arguments)
initAutoBattle()
console.log(`[${GameConstants.formatDate(new Date())}] %cAuto battle loaded`, 'color:#8e44ad;font-weight:900;');
return result
}
}
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();
}