1
0
Fork 0
mirror of https://github.com/Luzifer/automate-cookie-clicker.git synced 2024-12-23 02:31:18 +00:00

Use game object to buy buildings

Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
Knut Ahlers 2018-04-20 08:48:31 +02:00
parent e8d5124ee3
commit c9600caa61
Signed by: luzifer
GPG key ID: DC2729FDD34BE99E

View file

@ -1,7 +1,7 @@
// ==UserScript== // ==UserScript==
// @name Automate CookieClicker // @name Automate CookieClicker
// @namespace https://luzifer.io/ // @namespace https://luzifer.io/
// @version 0.16.2 // @version 0.17.0
// @description Automate everything! // @description Automate everything!
// @author Knut Ahlers <knut@ahlers.me> // @author Knut Ahlers <knut@ahlers.me>
// @source https://github.com/Luzifer/automate-cookie-clicker // @source https://github.com/Luzifer/automate-cookie-clicker
@ -53,12 +53,19 @@ function executeAutoActions() {
} }
// Get the top enabled purchase to be made // Get the top enabled purchase to be made
let availableProducts = $('.product.unlocked.enabled').filter(productFilter); let availableProducts = Game.ObjectsById.filter(obj => obj.price < Game.cookies && obj.amount < purchaseSteps);
if (availableProducts.length > 0 && Game.buyMode === 1) { // buyMode 1 = buy, -1 = sell while (availableProducts.length > 0 && Game.buyMode === 1) { // buyMode 1 = buy, -1 = sell
let product = $(availableProducts[availableProducts.length - 1]); let product = availableProducts[availableProducts.length - 1];
product.click(); let buyAmount = 0;
note('Purchased ' + product.find('.title:first').text() + ' for you.'); for (buyAmount = purchaseSteps - product.amount; buyAmount > 0; buyAmount--) {
if (product.getSumPrice(buyAmount) <= Game.cookies) {
break;
}
}
product.buy(buyAmount);
availableProducts = Game.ObjectsById.filter(obj => obj.price < Game.cookies && obj.amount < purchaseSteps);
} }
manageDragon(); manageDragon();
@ -78,12 +85,6 @@ function controlAutoClicker() {
} }
} }
function getMaxBuy() {
let topPurchaseCount = Game.ObjectsById[Game.ObjectsN - 1].amount;
return Math.max(Math.ceil((topPurchaseCount + 1) / purchaseSteps), 1) * purchaseSteps;
}
function hasActiveClickBuff() { function hasActiveClickBuff() {
let hasBuff = false; let hasBuff = false;
for (let key in Game.buffs) { for (let key in Game.buffs) {
@ -123,11 +124,6 @@ function note(msg, quick = true) {
Game.Notify('Auto-CookieClicker', msg, [12, 0], quick, true); Game.Notify('Auto-CookieClicker', msg, [12, 0], quick, true);
} }
function productFilter() {
let owned = Game.ObjectsById[parseInt($(this).attr('id').replace(/^product/, ''))].amount;
return owned < getMaxBuy();
}
function upgradeFilter() { function upgradeFilter() {
let onClickHandler = $(this).attr('onclick'); let onClickHandler = $(this).attr('onclick');
if (onClickHandler == null) { if (onClickHandler == null) {