Skip to content

Commit 32477b4

Browse files
authored
Merge pull request #47 from adavidw/patch-recommendationList
Fix recommendationList when a building max is reached
2 parents ce37c76 + 5e8378b commit 32477b4

1 file changed

Lines changed: 54 additions & 69 deletions

File tree

fc_main.js

Lines changed: 54 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1246,53 +1246,20 @@ function purchaseEfficiency(price, deltaCps, baseDeltaCps, currentCps) {
12461246

12471247
function recommendationList(recalculate) {
12481248
if (recalculate) {
1249-
FrozenCookies.showAchievements=false;
1249+
FrozenCookies.showAchievements = false;
12501250
FrozenCookies.caches.recommendationList = addScores(
12511251
upgradeStats(recalculate)
1252-
.concat(buildingStats(recalculate))
1253-
.concat(santaStats())
1254-
.sort(function(a, b) {
1255-
return a.efficiency != b.efficiency ? a.efficiency - b.efficiency : (a.delta_cps != b.delta_cps ? b.delta_cps - a.delta_cps : a.cost - b.cost);
1252+
.concat(buildingStats(recalculate))
1253+
.concat(santaStats())
1254+
.sort(function (a, b) {
1255+
return a.efficiency != b.efficiency ? a.efficiency - b.efficiency : (a.delta_cps != b.delta_cps ? b.delta_cps - a.delta_cps : a.cost - b.cost);
12561256
}));
1257-
//If autocasting Spontaneous Edifice, don't buy any Javascript console after 399
1258-
if (M && FrozenCookies.autoSpell == 3 && Game.Objects['Javascript console'].amount >= 399) {
1259-
for (var i = 0; i < FrozenCookies.caches.recommendationList.length; i++) {
1260-
if (FrozenCookies.caches.recommendationList[i].id == 15) {
1261-
FrozenCookies.caches.recommendationList.splice(i , 1);
1262-
}
1263-
}
1264-
}
1265-
//Stop buying wizard towers at max Mana if enabled
1266-
if (M && FrozenCookies.towerLimit && M.magicM >= FrozenCookies.manaMax) {
1267-
for (var i = 0; i < FrozenCookies.caches.recommendationList.length; i++) {
1268-
if (FrozenCookies.caches.recommendationList[i].id == 7) {
1269-
FrozenCookies.caches.recommendationList.splice(i , 1);
1270-
}
1271-
}
1272-
}
1273-
//Stop buying Cursors if at set limit
1274-
if (FrozenCookies.cursorLimit && Game.Objects['Cursor'].amount >= FrozenCookies.cursorMax) {
1275-
for (var i = 0; i < FrozenCookies.caches.recommendationList.length; i++) {
1276-
if (FrozenCookies.caches.recommendationList[i].id == 0) {
1277-
FrozenCookies.caches.recommendationList.splice(i, 1);
1278-
}
1279-
}
1280-
}
1281-
//Stop buying Farms if at set limit
1282-
if (FrozenCookies.farmLimit && Game.Objects['Farm'].amount >= FrozenCookies.farmMax) {
1283-
for (var i = 0; i < FrozenCookies.caches.recommendationList.length; i++) {
1284-
if (FrozenCookies.caches.recommendationList[i].id == 2) {
1285-
FrozenCookies.caches.recommendationList.splice(i, 1);
1286-
}
1287-
}
1288-
}
12891257
if (FrozenCookies.pastemode) {
12901258
FrozenCookies.caches.recommendationList.reverse();
12911259
}
1292-
FrozenCookies.showAchievements=true;
1260+
FrozenCookies.showAchievements = true;
12931261
}
12941262
return FrozenCookies.caches.recommendationList;
1295-
// return upgradeStats(recalculate).concat(buildingStats(recalculate)).sort(function(a,b){return (a.efficiency - b.efficiency)});
12961263
}
12971264

12981265
function addScores(recommendations) {
@@ -1361,38 +1328,56 @@ function nextChainedPurchase(recalculate) {
13611328

13621329
function buildingStats(recalculate) {
13631330
if (recalculate) {
1364-
FrozenCookies.showAchievements=false;
1365-
var buildingBlacklist = blacklist[FrozenCookies.blacklist].buildings;
1366-
var currentBank = bestBank(0).cost;
1367-
FrozenCookies.caches.buildings = Game.ObjectsById.map(function(current, index) {
1368-
if (buildingBlacklist === true || _.contains(buildingBlacklist, current.id)) {
1369-
return null;
1331+
if (blacklist[FrozenCookies.blacklist].buildings === true) {
1332+
FrozenCookies.caches.buildings = [];
1333+
} else {
1334+
var buildingBlacklist = Array.from(blacklist[FrozenCookies.blacklist].buildings);
1335+
//If autocasting Spontaneous Edifice, don't buy any Javascript console after 399
1336+
if (M && FrozenCookies.autoSpell == 3 && Game.Objects['Javascript console'].amount >= 399) {
1337+
buildingBlacklist.push(16);
1338+
}
1339+
//Stop buying wizard towers at max Mana if enabled
1340+
if (M && FrozenCookies.towerLimit && M.magicM >= FrozenCookies.manaMax) {
1341+
buildingBlacklist.push(7);
1342+
}
1343+
//Stop buying Cursors if at set limit
1344+
if (FrozenCookies.cursorLimit && Game.Objects['Cursor'].amount >= FrozenCookies.cursorMax) {
1345+
buildingBlacklist.push(0);
13701346
}
1371-
var baseCpsOrig = baseCps();
1372-
var cpsOrig = effectiveCps(Math.min(Game.cookies, currentBank)); // baseCpsOrig + gcPs(cookieValue(Math.min(Game.cookies, currentBank))) + baseClickingCps(FrozenCookies.autoClick * FrozenCookies.cookieClickSpeed);
1373-
var existingAchievements = Game.AchievementsById.map(function(item, i) {
1374-
return item.won
1347+
//Stop buying Farms if at set limit
1348+
if (FrozenCookies.farmLimit && Game.Objects['Farm'].amount >= FrozenCookies.farmMax) {
1349+
buildingBlacklist.push(2);
1350+
}
1351+
FrozenCookies.caches.buildings = Game.ObjectsById.map(function (current, index) {
1352+
if (_.contains(buildingBlacklist, current.id)) {
1353+
return null;
1354+
}
1355+
var currentBank = bestBank(0).cost;
1356+
var baseCpsOrig = baseCps();
1357+
var cpsOrig = effectiveCps(Math.min(Game.cookies, currentBank)); // baseCpsOrig + gcPs(cookieValue(Math.min(Game.cookies, currentBank))) + baseClickingCps(FrozenCookies.autoClick * FrozenCookies.cookieClickSpeed);
1358+
var existingAchievements = Game.AchievementsById.map(function (item, i) {
1359+
return item.won
1360+
});
1361+
buildingToggle(current);
1362+
var baseCpsNew = baseCps();
1363+
var cpsNew = effectiveCps(currentBank); // baseCpsNew + gcPs(cookieValue(currentBank)) + baseClickingCps(FrozenCookies.autoClick * FrozenCookies.cookieClickSpeed);
1364+
buildingToggle(current, existingAchievements);
1365+
var deltaCps = cpsNew - cpsOrig;
1366+
var baseDeltaCps = baseCpsNew - baseCpsOrig;
1367+
var efficiency = purchaseEfficiency(current.getPrice(), deltaCps, baseDeltaCps, cpsOrig)
1368+
return {
1369+
'id': current.id,
1370+
'efficiency': efficiency,
1371+
'base_delta_cps': baseDeltaCps,
1372+
'delta_cps': deltaCps,
1373+
'cost': current.getPrice(),
1374+
'purchase': current,
1375+
'type': 'building'
1376+
};
1377+
}).filter(function (a) {
1378+
return a;
13751379
});
1376-
buildingToggle(current);
1377-
var baseCpsNew = baseCps();
1378-
var cpsNew = effectiveCps(currentBank); // baseCpsNew + gcPs(cookieValue(currentBank)) + baseClickingCps(FrozenCookies.autoClick * FrozenCookies.cookieClickSpeed);
1379-
buildingToggle(current, existingAchievements);
1380-
var deltaCps = cpsNew - cpsOrig;
1381-
var baseDeltaCps = baseCpsNew - baseCpsOrig;
1382-
var efficiency = purchaseEfficiency(current.getPrice(), deltaCps, baseDeltaCps, cpsOrig)
1383-
return {
1384-
'id': current.id,
1385-
'efficiency': efficiency,
1386-
'base_delta_cps': baseDeltaCps,
1387-
'delta_cps': deltaCps,
1388-
'cost': current.getPrice(),
1389-
'purchase': current,
1390-
'type': 'building'
1391-
};
1392-
}).filter(function(a) {
1393-
return a;
1394-
});
1395-
FrozenCookies.showAchievements=true;
1380+
}
13961381
}
13971382
return FrozenCookies.caches.buildings;
13981383
}

0 commit comments

Comments
 (0)