trugul-bot/bot.js

182 lines
4.6 KiB
JavaScript

var botLoop;
var botPaused = true;
var botPurchasing = false;
var botFightingRandomBoss = false;
var botFightingGlobalBoss = false;
var botBuySlimes = false;
var botGlobalBossTimer;
function mainLoop() {
//first, deal with pop-ups
if($('#popup').is(':visible')) {
// we check the title and respond accordingly
var botPopupTitle = $('#popup p[name="title"]').text();
switch(botPopupTitle) {
case 'Raid report':
var botMessage = botBuildRaidReport($('#popup div[name="content"]'));
console.log(botMessage);
clickButton('CONTINUE');
break;
case 'SUMMON BOSS':
clickButton('Summon Boss');
break;
case 'Are you sure?':
clickButton('Activate Item');
break;
case 'ARE YOU SURE?':
case 'CONFIRM PURCHASE':
if(botPurchasing) {
clickButton('Yes');
botPurchasing = false;
} else {
clickButton('No');
}
break;
case 'WHOOPS!':
case 'BATTLE REPORT':
case 'Battle Report':
case 'ACTIVITY PASSED!':
case 'SCENARIO #1':
clickButton('CONTINUE');
break;
default:
console.log('Unknown popup: ' + botPopupTitle);
break;
}
}
//then, check to see if we need to do anything
//RANDOM BOSS
if(randomBossRefreshing() === true && botFightingRandomBoss === true) {
botFightingRandomBoss = false;
} else if(randomBossRefreshing() === false && botFightingRandomBoss === false) {
clickSelector('#randomBossPortal a');
botFightingRandomBoss = true;
}
//GLOBAL BOSS
if(globalBossRefreshing() === true && botFightingGlobalBoss === true) {
clearInterval(botGlobalBossTimer);
botFightingGlobalBoss = false;
} else if(globalBossRefreshing() === false && botFightingGlobalBoss === false) {
clickSelector('span[name="timeRemaining"]:contains("JOIN") a');
botGlobalBossTimer = setInterval(fightGlobalBoss, 250);
botFightingGlobalBoss = true;
}
//ACTIVATE BUFFS
if(inactiveBuffs()) {
clickSelector('button:contains("Activate")');
}
//BUY SCIENTISTS
if(haveBossCoins() && haveCheapLabor() && botPurchasing === false) {
botPurchasing = true;
clickSelector('button[name="hiremax_scientists"]');
}
//BUY SLIMES
if(botBuySlimes === true && botPurchasing === false && haveTrillions(10)) {
botPurchasing = true;
clickSelector('button[name="buymax-knight"]');
}
}
botToggle();
function botBuildRaidReport(message) {
var botRaidUser = /You.? were raided by (.*?).? /.exec(message)[1];
var botRaidSoldiers = /lost (.*?) soldiers/.exec(message)[1];
var botRaidResult = (/won/.exec(message) !== null) ? 'won' : 'lost';
var botRaidStolen = (/steal (.*?) from/.exec(message) !== null) ? /steal (.*?) from/.exec(message)[1] : '$0';
return "RAIDED (" + botRaidUser + "): " + botRaidResult + "; lost: " + botRaidSoldiers + " and " + botRaidStolen;
}
function haveTrillions(trillions) {
var botCurrency = $('#money_display').text();
var botLowerLimit = trillions * 1000000000000;
var botCurrencyInt = Number(botCurrency.replace(/[^0-9\.]+/g,""));
if(botCurrencyInt > botLowerLimit) {
return true;
} else {
return false;
}
}
function haveBossCoins() {
if($('#bc_display').text() != 0) {
return true;
} else {
return false;
}
}
function haveCheapLabor() {
if($('span[name="scientists_price"]').text() == "1 BC") {
return true;
} else {
return false;
}
}
function inactiveBuffs() {
if($('button:contains("Activate")').length > 0) {
return true;
} else {
return false;
}
}
function randomBossRefreshing() {
if($('span[name="timer"]').is(':visible')) {
return true;
} else {
return false;
}
}
function globalBossRefreshing() {
if($('span[name="timeRemaining"]:contains("min"), span[name="timeRemaining"]:contains("sec")').length > 0) {
return true;
} else {
return false;
}
}
function fightGlobalBoss() {
if($('img[name="globalBossImg"]').is(':visible')) {
$('img[name="globalBossImg"]').get(0).click();
}
}
function clickButton(text) {
$('#popup span button:contains("' + text + '")').get(0).click();
}
function clickSelector(selector) {
$(selector).get(0).click();
}
function botToggle() {
if(botPaused) {
console.log('Playing bot');
botLoop = setInterval(mainLoop, 1000);
botPaused = false;
} else {
console.log('Pausing bot');
clearInterval(botLoop);
botPaused = true;
}
}
function botToggleSlimes() {
if(botBuySlimes) {
console.log('Stopping slime purchases');
botBuySlimes = false;
} else {
console.log('Starting slime purchases');
botBuySlimes = true;
}
}