NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name HaremHeroes Automatic Redone // @namespace 3jameo3 // @version 2.1.2 // @description Based on Eileen12's old script with some revamps here and there. // @author 3jameo3 // @match http*://nutaku.haremheroes.com/* // @updateURL https://openuserjs.org/meta/3jameo3/HaremHeroes_Automatic_Redone.meta.js // @require https://cdn.jsdelivr.net/js-cookie/2.2.0/js.cookie.js // @require https://code.jquery.com/jquery-2.1.1.min.js // @grant GM_addStyle // @license MIT // ==/UserScript== this.$ = this.jQuery = jQuery.noConflict(true); GM_addStyle('/* The switch - the box around the slider */ .switch { position: relative; display: inline-block; width: 60px; height: 34px; } /* Hide default HTML checkbox */ .switch input {display:none;} /* The slider */ .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; -webkit-transition: .4s; transition: .4s; } .slider:before { position: absolute; content: ""; height: 26px; width: 26px; left: 4px; bottom: 4px; background-color: white; -webkit-transition: .4s; transition: .4s; } input:checked + .slider { background-color: #2196F3; } input:focus + .slider { box-shadow: 0 0 1px #2196F3; } input:checked + .slider:before { -webkit-transform: translateX(26px); -ms-transform: translateX(26px); transform: translateX(26px); } /* Rounded sliders */ .slider.round { border-radius: 34px; } .slider.round:before { border-radius: 50%; }'); function sleep(milliseconds) { var start = new Date().getTime(); for (var i = 0; i < 1e7; i++) { if ((new Date().getTime() - start) > milliseconds) { break; } } } var proceedQuest = function () { //console.log("Starting auto quest."); var currentQuestMunuOption = $("nav div[rel='content'] a:has(.continue_quest)"); if (currentQuestMunuOption === undefined || currentQuestMunuOption.attr("href") === undefined) { console.log("Could not find current quest menu button for verification. Probably it hasn't yet loaded."); return; } // Check if at correct page. if (currentQuestMunuOption.attr("href") !== window.location.pathname) { // Click on current quest to naviagte to it. console.log("Navigating to current quest."); sessionStorage.autoLoop = "false"; window.location = window.location.origin + currentQuestMunuOption.attr("href"); return; } // Get the proceed button type var proceedButtonMatch = $("#controls button:not([style='display: none;'])"); console.log("Proceed Button Match == " + proceedButtonMatch); var proceedCostEnergy = Number($("#controls .cost span[cur='*']").text()); console.log("Proceed Cost Energy == " + proceedCostEnergy); var proceedCostMoney = Number($("#controls .cost span[cur='$']").text().trim().replace(',', '')); console.log("Proceed Cost Money == " + proceedCostMoney); var proceedType = proceedButtonMatch.attr("act"); console.log("Proceed Type == " + proceedType); if (proceedButtonMatch.length === 0) { console.log("Could not find resume button."); } else if (proceedType === "free") { console.log("Proceeding for free."); proceedButtonMatch.click(); } else if (proceedType === "pay") { var energyCurrent = Number($("span[hero='energy_quest']").text()); console.log("Current Energy == " + energyCurrent); var moneyCurrent = Number($("div[hero='soft_currency'] span").get(0).innerHTML.trim().replace(',', '').replace(',', '').replace(/\s/g, "")); console.log("Current Money == " + moneyCurrent); if (proceedCostEnergy <= energyCurrent) { // We have energy. console.log("Spending " + proceedCostEnergy + " Energy to proceed."); } else { console.log("Quest requires " + proceedCostEnergy + " Energy to proceed."); sessionStorage.questRequirement = "*" + proceedCostEnergy; return; } if (proceedCostMoney <= moneyCurrent) { // We have money. console.log("Spending " + proceedCostMoney + " Money to proceed."); } else { console.log("Spending " + proceedCostMoney + " Money to proceed."); sessionStorage.questRequirement = "$" + proceedCostMoney; return; } proceedButtonMatch.click(); sessionStorage.autoLoop = "false"; location.reload(); } else if (proceedType === "use_item") { console.log("Proceeding by using X" + Number($("#controls .item span").text()) + " of the required item."); proceedButtonMatch.click(); } else if (proceedType === "battle") { console.log("Proceeding to battle troll..."); sessionStorage.questRequirement = "battle"; // Proceed to battle troll. proceedButtonMatch.click(); sessionStorage.autoLoop = "false"; location.reload(); } else if (proceedType === "end_archive") { console.log("Reached end of current archive. Proceeding to next archive."); sessionStorage.autoLoop = "false"; proceedButtonMatch.click(); } else if (proceedType === "end_play") { var energyCurrent = Number($("span[hero='energy_quest']").text()); console.log("Current Energy == " + energyCurrent); var moneyCurrent = Number($("div[hero='soft_currency'] span").get(0).innerHTML.trim().replace(',', '').replace(',', '').replace(/\s/g, "")); console.log("Current Money == " + moneyCurrent); if (proceedCostEnergy <= energyCurrent) { // We have energy. console.log("Spending " + proceedCostEnergy + " Energy to proceed."); } else { console.log("Quest requires " + proceedCostEnergy + " Energy to proceed."); sessionStorage.questRequirement = "*" + proceedCostEnergy; return; } if (proceedCostMoney <= moneyCurrent) { // We have money. console.log("Spending " + proceedCostMoney + " Money to proceed."); } else { console.log("Spending " + proceedCostMoney + " Money to proceed."); sessionStorage.questRequirement = "$" + proceedCostMoney; return; } console.log("Reached end of current play. Proceeding to next play."); sessionStorage.autoLoop = "false"; proceedButtonMatch.click(); } else { console.log("Could not identify given resume button."); sessionStorage.questRequirement = "unknownQuestButton"; } window.location = window.location.origin + $("nav div[rel='content'] a:has(.home)").attr("href"); }; var getSalary = function () { try { if ($("#harem_whole #harem_left h3").text() === "My Harem" ) { window.location = window.location.origin + $("nav div[rel='content'] a:has(.harem)").attr("href"); console.log("Detected Harem Screen. Fetching Salary"); var buttonMatch = $("#harem_whole #harem_left button:not([style='display: none;'])"); var Claim = $("#harem_whole #harem_left button[class='collect_money']"); if (buttonMatch.length === 0) console.log("Could not find salary button."); else if (Claim) { console.log("Collecting salary."); Claim.click(); document.cookie = "nextSalaryTime=;"; //window.location = window.location.origin + $("nav div[rel='content'] a:has(.home)").attr("href"); } else { console.log("Could not identify given salary button."); sessionStorage.salaryRequirement = "unknownSalaryButton"; } } else { // Not at Harem screen then goto the Harem screen. console.log("Navigating to Harem window."); sessionStorage.autoLoop = "false"; window.location = window.location.origin + $("nav div[rel='content'] a:has(.harem)").attr("href"); //sleep(1000); return; } } catch (ex) { console.log("Could not collect salary... " + ex); } }; var doBossBattle = function () { var currentPower = Number($("span[hero='energy_fight']").text()); if (currentPower < 1) { //console.log("No power for battle."); return; } // Battles the latest boss. // Navigate to latest boss. if (window.location.pathname.startsWith("/battle.html")) { // On the battle screen. doBattle(); } else if (window.location.pathname.startsWith("/quest")) { // On some quest screen. // Goto this area's screen. console.log("Navigating to latest Troll."); sessionStorage.autoLoop = "false"; window.location = window.location.origin + $("#breadcrumbs a[class='back']").last().attr("href"); return; } else if (window.location.pathname.startsWith("/world")) { // On some world screen. // Click on the local Boss's battle button. console.log("Entering battle with this troll."); sessionStorage.autoLoop = "false"; window.location = window.location.origin + $("#worldmap a[class='troll_world']").attr("href"); return; } else { console.log("Navigating to latest Troll."); sessionStorage.autoLoop = "false"; window.location = window.location.origin + $("nav div[rel='content'] a:has(.continue_quest)").attr("href"); return; } }; var doBattle = function () { //console.log("Performing auto battle."); var currentPower = Number($("span[hero='energy_fight']").text()); if (currentPower < 1) { //console.log("No power for battle."); return; } // Confirm if on correct screen. if ($("#breadcrumbs span").last().text() === "Battle") { // On battle page. //console.log("On Battle Page."); if ($("#arena[class='canvas']").length === 1) { // Oponent choose screen console.log("On opponent choose screen."); // Fight the first opponent in list. $(".opponents_arena .sub_block .grey_text_button:contains('Select')")[0].click(); sessionStorage.autoLoop = "false"; } else if ($("#battle[class='canvas']").length === 1) { // Battle screen //console.log("On battle screen."); var battleButton = $("#battle_middle button[class='green_text_button redesign']"); var Button = $("#battle_win button[class='blue_text_button']"); if (battleButton === undefined) return; if (battleButton.attr("price_fe") === undefined) { console.log("Could not detect battle button price. Maybe its not loaded yet."); return; } if (currentPower >= battleButton.attr("price_fe")) { // We have the power. battleButton.click(); // Skip setTimeout(function () { $("#battle_middle button[rel='skip']").click(); }, 1000); setTimeout(function () { Button.click(); }, 2500); if (sessionStorage.questRequirement === "battle") { // Battle Done. sessionStorage.questRequirement = "none"; } } else { // We need more power. console.log("Battle requires " + battleButton.attr("price_fe") + " power."); sessionStorage.battlePowerRequired = battleButton.attr("price_fe"); if (sessionStorage.questRequirement === "battle") sessionStorage.questRequirement = "P" + battleButton.attr("price_fe"); } } else { console.log("Could not identify battle screen."); Button.click(); if (sessionStorage.questRequirement === "battle") sessionStorage.questRequirement = "errorInAutoBattle"; window.location = window.location.origin + $("nav div[rel='content'] a:has(.home)").attr("href"); return; } } else { // Switch to the correct screen console.log("Switching to battle screen."); window.location = window.location.origin + $("nav div[rel='content'] a:has(.battle)").attr("href"); sessionStorage.autoLoop = "false"; return; } }; var updateData = function () { //console.log("updating UI"); sessionStorage.autoSalary = document.getElementById("autoSalaryCheckbox").checked; sessionStorage.autoQuest = document.getElementById("autoQuestCheckbox").checked; sessionStorage.autoBattle = document.getElementById("autoBattleCheckbox").checked; sessionStorage.autoFreePachinko = document.getElementById("autoFreePachinko").checked; sessionStorage.autoMissions = document.getElementById("autoMissions").checked; }; var getPachinko = function () { try { if ($("#breadcrumbs span").last().text() === "Pachinko") { console.log("Detected Pachinko Screen. Fetching Pachinko"); $("#pachinko button[free=1]")[0].click(); document.cookie = "nextPachinkoTime=24hrs;max-age=" + 24 * 60 * 60; } else { // Not at Pachinko screen then goto the Pachinko screen. console.log("Navigating to Pachinko window."); sessionStorage.autoLoop = "false"; window.location = window.location.origin + $("nav div[rel='content'] a:has(.pachinko)").attr("href"); return; } } catch (ex) { console.log("Could not collect pachinko... " + ex); } }; var getMission = function () { //console.log("Auto Missions Running"); try { if ($("#breadcrumbs span").last().text() === "Activities") { console.log("Detected mission screen. Accepting a mission"); var buttonMatch = $("#missions button:not([style='display: none;'])"); var Accept = $("#missions button[rel^='mission_start']:not([style='display: none;'])"); /* var Finish = $("#missions button[rel^='finish']:not([style='display: none;'])"); var Present = $("#base_block #end_gift button:not([style='display: none;'])"); */ if (buttonMatch.length === 0) console.log("Could not find mission button."); else if (Accept) { console.log("Starting mission."); Accept.click(); //sleep(1000); document.cookie = "nextActivityTime=;"; } /* else if (Finish) { console.log("Lets not click that."); //Finish.click(); } else if (($("#base_block #end_gift")) && Present) { console.log("Claiming mission completion reward(s)."); Present.click(); } */ else { console.log("Could not identify given mission button."); sessionStorage.missionRequirement = "unknownMissionButton"; } } else { // Not at Mission screen then goto the Mission screen. if (Cookies.get("nextActivityTime") === "0" || Cookies.get("nextActivityTime") === undefined || Cookies.get("nextActivityTime") === "" || (($("#home_missions_bar1 .text").length) === 0 && ($("#home_missions_bar2 .text").length) <= 2)) { console.log("Navigating to mission window."); sessionStorage.autoLoop = "false"; window.location = window.location.origin + $("nav div[rel='content'] a:has(.activities)").attr("href"); return; } } } catch (ex) { console.log("Could not do any missions... " + ex); } }; var collectMission = function () { //console.log("Auto Missions Running"); try { if ($("#breadcrumbs span").last().text() === "Activities") { console.log("Detected mission screen. Collecting mission(s)"); var buttonMatch = $("#missions button:not([style='display: none;'])"); var Claim = $("#missions button[rel^='claim']:not([style='display: none;'])"); var Groovy = $("#popups #mission_rewards button[rel^='groovy']:not([style='display: none;'])"); if (buttonMatch.length === 0) console.log("Could not find mission button."); else if (Claim && (Cookies.get("nextActivityTime") <= 1)) { console.log("Claiming mission"); Claim.click(); //sleep(1000); } else if (click) {} else if (($("#popups #mission_rewards")) && Groovy) { console.log("Claiming mission reward(s)."); Groovy.click(); window.location = window.location.origin + $("nav div[rel='content'] a:has(.activities)").attr("href"); //sleep(500); document.cookie = "nextActivityTime=;"; } else { console.log("Could not identify given mission button."); sessionStorage.missionRequirement = "unknownMissionButton"; } } else { // Not at Mission screen then goto the Mission screen. if (Cookies.get("nextActivityTime") === "0" || Cookies.get("nextActivityTime") === undefined || Cookies.get("nextActivityTime") === "" || (($("#home_missions_bar1 .text").length) === 0 && ($("#home_missions_bar2 .text").length) <= 2)) { console.log("Navigating to Mission window."); sessionStorage.autoLoop = "false"; window.location = window.location.origin + $("nav div[rel='content'] a:has(.activities)").attr("href"); return; } } } catch (ex) { console.log("Could not collect mission(s)... " + ex); } }; var autoLoop = function () { updateData(); var busy = false; var page = window.location.href; var currentPower = Number($("span[hero='energy_fight']").text()); //console.log("sal="+sessionStorage.autoSalary); if (sessionStorage.autoFreePachinko === "true" && busy === false) { // Navigate to pachinko if (Cookies.get("nextPachinkoTime") === undefined) { console.log("Time to fetch Pachinko."); getPachinko(); busy = true; } } if (sessionStorage.autoSalary === "true" && busy === false) { if (Cookies.get("nextSalaryTime") === undefined) { console.log("Time to fetch salary."); getSalary(); busy = true; } else if (Cookies.get("nextSalaryTime") === "") { console.log("Salary fetched. Getting next fetch time"); if ($("nav div[rel='content'] a:has(.home)").attr("href") !== window.location.pathname) { console.log("Moving to home."); sessionStorage.autoLoop = "false"; // Goto Home page. window.location = window.location.origin + $("nav div[rel='content'] a:has(.home)").attr("href"); busy = true; return; } var CAB = $("#collect_all_bar .in").text(); var closestTime; //console.log(CAB); if (CAB.includes('h') && CAB.includes('m')) { CAB = $("#collect_all_bar .in").text().replace('h', '').replace('m', '').replace(' ', ''); //console.log('"'+CAB+'"'); if (CAB.length == 1) { closestTime = Number((CAB[0]) * 3600); } if (CAB.length == 2) { closestTime = Number((CAB[0]) * 3600) + (Number(CAB[1]) * 60); } if (CAB.length == 3) { closestTime = Number((CAB[0]) * 3600) + (Number(CAB[1] + CAB[2]) * 60); } if (CAB.length == 4) { closestTime = Number((CAB[0] + CAB[1]) * 3600) + (Number(CAB[2] + CAB[3]) * 60); } //console.log('"'+closestTime+'"'); } if (CAB.includes('m')) { CAB = $("#collect_all_bar .in").text().replace('m', ''); //console.log('"'+CAB+'"'); closestTime = Number(CAB.replace('m', '')) * 60; //console.log('"'+closestTime+'"'); } if (CAB.includes('s')) { CAB = $("#collect_all_bar .in").text().replace('s', ''); //console.log('"'+CAB+'"'); closestTime = Number(CAB.replace('s', '')); //console.log('"'+closestTime+'"'); } // Just in case something goes wrong area if ((CAB === undefined || CAB.length === 0) || (closestTime === undefined || closestTime === 0)) { closestTime = 5; getSalary(); busy = true; } document.cookie = "nextSalaryTime=present;max-age=" + (closestTime < 0 ? 0 : closestTime); console.log("New fetch time stored in nextSalaryTime cookie.(+" + closestTime + " sec.)"); busy = false; } } // if (sessionStorage.autoMissions === "true" && busy === false) { if (Cookies.get("nextActivityTime") === undefined && ($("#home_missions_bar1 .text").length) === 0 && ($("#home_missions_bar2 .text").length) <= 2 && ($("div[class='collect_notif']:not([style=''])"))) { console.log("Time to get a mission."); getMission(); busy = true; } else if (Cookies.get("nextActivityTime") === "" && ($("#home_missions_bar1 .text").length) >= 0 && ($("#home_missions_bar2 .text").length) <= 2) { console.log("Accepting a mission. Getting countdown to next mission"); if ($("nav div[rel='content'] a:has(.home)").attr("href") !== window.location.pathname) { console.log("Moving to home."); sessionStorage.autoLoop = "false"; window.location = window.location.origin + $("nav div[rel='content'] a:has(.home)").attr("href"); busy = true; return; } var MB1 = $("#home_missions_bar1 .text").text().replace('Complete in ', '') //console.log(MB1) if (MB1.includes('h') && MB1.includes('m')) { var MB1 = $("#home_missions_bar1 .text").text().replace('Complete in ', '').replace('h', '').replace('m', '').replace(' ', ''); //console.log('"'+MB1+'"') if (MB1.length == 1) { var closestTime1 = Number((MB1[0]) * 3600); } if (MB1.length == 2) { var closestTime1 = Number((MB1[0]) * 3600) + (Number(MB1[1]) * 60); } if (MB1.length == 3) { var closestTime1 = Number((MB1[0]) * 3600) + (Number(MB1[1] + MB1[2]) * 60); } if (MB1.length == 4) { var closestTime1 = Number((MB1[0] + MB1[1]) * 3600) + (Number(MB1[2] + MB1[3]) * 60); } //console.log('"'+closestTime1+'"') } if (MB1.includes('m')) { MB1.replace('m', '') //console.log('"'+MB1+'"') var closestTime1 = Number(MB1.replace('m', '')) * 60 //console.log('"'+closestTime1+'"') } if (MB1.includes('s')) { MB1.replace('s', '') //console.log('"'+MB1+'"') var closestTime1 = Number(MB1.replace('s', '')) //console.log('"'+closestTime1+'"') } // Just in case something goes wrong area if ((MB1.length === 0 && ($("#home_missions_bar2 .text").length) <= 2) || (closestTime1 === undefined || closestTime1 === 0)) { closestTime1 = 10*60; window.location = window.location.origin + $("nav div[rel='content'] a:has(.home)").attr("href"); busy = true; } document.cookie = "nextActivityTime=present;max-age=" + (closestTime1 < 0 ? 0 : closestTime1); console.log("Time until next mission stored in nextActivityTime cookie.(+" + closestTime1 + " sec.)"); busy = false; } if (Cookies.get("nextActivityTime") === "" && ($("#home_missions_bar1 .text").length) >= 0 && ($("#home_missions_bar2 .text").length) >= 0 && $("div[class='collect_notif']:not([style='display: none;'])")) { console.log("Time to collect the completed mission(s)."); collectMission(); busy = true; } if ((Cookies.get("nextActivityTime") === "" || Cookies.get("nextActivityTime") === undefined || Cookies.get("nextActivityTime") === 0) && ($("#home_missions_bar1 .text").length) <= 2 && ($("#home_missions_bar2 .text").length) >= 2) { console.log("All Missions Completed. Getting time until missions can be accepted again."); if ($("nav div[rel='content'] a:has(.home)").attr("href") !== window.location.pathname) { console.log("Moving to home."); sessionStorage.autoLoop = "false"; window.location = window.location.origin + $("nav div[rel='content'] a:has(.home)").attr("href"); busy = true; return; } var MB2 = $("#home_missions_bar2 .text").text().replace('Complete in ', ''); //console.log(MB2) if (MB2.includes('h') && MB2.includes('m')) { var MB2 = $("#home_missions_bar2 .text").text().replace('Complete in ', '').replace('h', '').replace('m', '').replace(' ', ''); //console.log('"'+MB2+'"') if (MB2.length == 1) { var closestTime1 = Number((MB2[0]) * 3600); } if (MB2.length == 2) { var closestTime1 = Number((MB2[0]) * 3600) + (Number(MB2[1]) * 60); } if (MB2.length == 3) { var closestTime1 = Number((MB2[0]) * 3600) + (Number(MB2[1] + MB2[2]) * 60); } if (MB2.length == 4) { var closestTime1 = Number((MB2[0] + MB2[1]) * 3600) + (Number(MB2[2] + MB2[3]) * 60); } //console.log('"'+closestTime1+'"') } if (MB2.includes('m')) { MB2.replace('m', '') //console.log('"'+MB2+'"') var closestTime1 = Number(MB2.replace('m', '')) * 60 //console.log('"'+closestTime1+'"') } if (MB2.includes('s')) { MB2.replace('s', '') //console.log('"'+MB2+'"') var closestTime1 = Number(MB2.replace('s', '')) //console.log('"'+closestTime1+'"') } // Just in case something goes wrong area if ((MB1.length <= 1 && MB2.length >= 1) || (closestTime1 === undefined || closestTime1 === 0)) { closestTime1 = 10*60; window.location = window.location.origin + $("nav div[rel='content'] a:has(.home)").attr("href"); busy = true; } document.cookie = "nextActivityTime=present;max-age=" + (closestTime1 < 0 ? 0 : closestTime1); console.log("Time until new missions stored in nextActivityTime cookie.(+" + closestTime1 + " sec.)"); busy = false; } } // if (sessionStorage.autoQuest === "true" && busy === false) { if (sessionStorage.questRequirement === "battle") { //console.log("Quest requires battle."); doBossBattle(); busy = true; } else if (sessionStorage.questRequirement[0] === '$') { if (Number(sessionStorage.questRequirement.substr(1)) < Number($("div[hero='soft_currency'] span").text().trim().replace(',', ''))) { // We have enough money... requirement fulfilled. console.log("Continuing quest, required money obtained."); sessionStorage.questRequirement = "none"; proceedQuest(); busy = true; } else { if (isNaN(sessionStorage.questRequirement.substr(1))) { sessionStorage.questRequirement = "none"; console.log("Invalid money in session storage quest requirement !"); } else { // Else we need more money. //console.log("Need money for quest, cannot continue. Turning ON AutoSalary."); sessionStorage.autoQuest = "true"; } busy = false; } } else if (sessionStorage.questRequirement[0] === '*') { var energyNeeded = Number(sessionStorage.questRequirement.substr(1)); var energyCurrent = Number($("span[hero='energy_quest']").text()); if (energyNeeded <= energyCurrent) { // We have enough energy... requirement fulfilled. console.log("Continuing quest, required energy obtained."); sessionStorage.questRequirement = "none"; proceedQuest(); busy = true; } // Else we need energy, just wait. else { busy = false; //console.log("Replenishing energy for quest.(" + energyNeeded + " needed)"); } } else if (sessionStorage.questRequirement[0] === 'P') { // Battle power required. var neededPower = Number(sessionStorage.questRequirement.substr(1)); if (currentPower < neededPower) { console.log("Quest requires " + neededPower + " Battle Power for advancement. Waiting..."); busy = false; } else { console.log("Battle Power obtained, resuming quest..."); sessionStorage.questRequirement = "none"; proceedQuest(); busy = true; } } else if (sessionStorage.questRequirement === "unknownQuestButton") { console.log("AutoQuest disabled.AutoQuest cannot be performed due to unknown quest button. Please manually proceed the current quest screen."); document.getElementById("autoQuestCheckbox").checked = false; sessionStorage.autoQuest = "false"; sessionStorage.questRequirement = "none"; busy = false; } else if (sessionStorage.questRequirement === "errorInAutoBattle") { console.log("AutoQuest disabled.AutoQuest cannot be performed due errors in AutoBattle. Please manually proceed the current quest screen."); document.getElementById("autoQuestCheckbox").checked = false; sessionStorage.autoQuest = "false"; sessionStorage.questRequirement = "none"; busy = false; } else if (sessionStorage.questRequirement === "none") { //console.log("NONE req."); busy = true; proceedQuest(); } else { console.log("Invalid quest requirement : " + sessionStorage.questRequirement); busy = false; } } else if (sessionStorage.autoQuest === "false") { sessionStorage.questRequirement = "none"; } if (sessionStorage.autoBattle === "true") { if (busy === false && currentPower >= Number(sessionStorage.battlePowerRequired) && currentPower > 0) { sessionStorage.battlePowerRequired = "0"; busy = true; if (sessionStorage.autoQuest === "true") { if (sessionStorage.questRequirement[0] === 'P') { console.log("AutoBattle disabled for power collection for AutoQuest."); document.getElementById("autoBattleCheckbox").checked = false; sessionStorage.autoBattle = "false"; busy = false; } else doBossBattle(); } else doBossBattle(); } } else { sessionStorage.battlePowerRequired = "0"; } if (busy === true && sessionStorage.userLink === "none") { sessionStorage.userLink = page; } else if (sessionStorage.userLink !== "none" && busy === false) { console.log("Restoring page " + sessionStorage.userLink); window.location = sessionStorage.userLink; sessionStorage.userLink = "none"; } if (isNaN(sessionStorage.autoLoopTimeMili)) { console.log("AutoLoopTimeMili is not a number."); setDefaults(); } else { if (sessionStorage.autoLoop === "true") setTimeout(autoLoop, Number(sessionStorage.autoLoopTimeMili)); else console.log("autoLoop Disabled"); } }; var setDefaults = function () { var busy = "false"; document.cookie = "nextActivityTime=0;"; document.cookie = "nextSalaryTime=0;"; var closestTime = 0; var closestTime1 = 0; console.log("Setting Defaults."); sessionStorage.autoSalary = "false"; sessionStorage.autoFreePachinko = "false"; sessionStorage.autoLoop = "true"; sessionStorage.userLink = "none"; sessionStorage.autoLoopTimeMili = "200"; sessionStorage.autoQuest = "false"; sessionStorage.autoBattle = "false"; sessionStorage.battlePowerRequired = "0"; sessionStorage.questRequirement = "none"; sessionStorage.freshStart = "no"; sessionStorage.autoMissions = "false"; }; var start = function () { //console.log("script started"); // Add UI buttons. var UIcontainer = $("#contains_all nav div[rel='content']"); UIcontainer.html('<div style="position: absolute;right: -16.475%; padding: 10px;width: inherit;text-align: center;display:flex;flex-direction:column;">' + '<span>AutoSal.</span><div><label class=\"switch\"><input id=\"autoSalaryCheckbox\" type=\"checkbox\"><span class=\"slider round\"></span></label></div>' + '<span>AutoQuest</span><div><label class=\"switch\"><input id=\"autoQuestCheckbox\" type=\"checkbox\"><span class=\"slider round\"></span></label></div>' + '<span>AutoBattle</span><div><label class=\"switch\"><input id=\"autoBattleCheckbox\" type=\"checkbox\"><span class=\"slider round\"></span></label></div>' + '<span>AutoPachinko(Free)</span><div><label class=\"switch\"><input id=\"autoFreePachinko\" type=\"checkbox\"><span class=\"slider round\"></span></label></div>' + '<span>AutoMissions</span><div><label class=\"switch\"><input id=\"autoMissions\" type=\"checkbox\"><span class=\"slider round\"></span></label></div>' + '</div>' + UIcontainer.html()); document.getElementById("autoSalaryCheckbox").checked = sessionStorage.autoSalary === "true"; document.getElementById("autoQuestCheckbox").checked = sessionStorage.autoQuest === "true"; document.getElementById("autoBattleCheckbox").checked = sessionStorage.autoBattle === "true"; document.getElementById("autoFreePachinko").checked = sessionStorage.autoFreePachinko === "true"; document.getElementById("autoMissions").checked = sessionStorage.autoMissions === "true"; sessionStorage.autoLoop = "true"; if (typeof sessionStorage.freshStart == "undefined" || isNaN(Number(sessionStorage.autoLoopTimeMili))) { setDefaults(); } autoLoop(); }; $("document").ready(start);