Fix issues with "till next achievement"

This commit is contained in:
Daniël van Noord
2021-05-06 21:45:58 +02:00
parent 18ace33231
commit 305454b802
5 changed files with 18 additions and 6 deletions

View File

@@ -4,6 +4,7 @@ import CacheAvgCPS from './CPS/CPS';
import CacheCurrWrinklerCPS from './CPS/CurrWrinklerCPS';
import CachePP from './PP/PP';
import CacheHeavenlyChipsPS from './Stats/HeavenlyChips';
import AllAmountTillNextAchievement from './TillNextAchievement/AllAmountTillNextAchievement';
import { CacheTimeTillNextPrestige } from './VariablesAndData'; // eslint-disable-line no-unused-vars
import CacheWrinklers from './Wrinklers/Wrinklers';
@@ -16,6 +17,7 @@ export default function LoopCache() {
CacheWrinklers();
CachePP();
AllAmountTillNextAchievement(false);
CacheCurrWrinklerCPS();
CacheAvgCPS();
CacheHeavenlyChipsPS();

View File

@@ -1,23 +1,34 @@
import { CacheObjectsNextAchievement } from '../VariablesAndData';
import IndividualAmountTillNextAchievement from './IndividualAmountTillNextAchievement';
export default function AllAmountTillNextAchievement() {
/**
* This functions caches the amount of buildings needed till next achievement
* @param {boolean} forceRecalc Whether a recalcution should be forced (after CPS change)
*/
export default function AllAmountTillNextAchievement(forceRecalc) {
const result = {};
Object.keys(Game.Objects).forEach((i) => {
if (
Object.keys(CacheObjectsNextAchievement).length !== 0 &&
CacheObjectsNextAchievement[i].TotalNeeded > Game.Objects[i].amount
CacheObjectsNextAchievement[i].TotalNeeded > Game.Objects[i].amount &&
!forceRecalc
) {
result[i] = {
AmountNeeded: CacheObjectsNextAchievement[i].TotalNeeded - Game.Objects[i].amount,
TotalNeeded: CacheObjectsNextAchievement[i].TotalNeeded,
price: Game.Objects[i].getSumPrice(
CacheObjectsNextAchievement[i].TotalNeeded - Game.Objects[i].amount,
),
};
} else {
const tillNext = IndividualAmountTillNextAchievement(i);
result[i] = {
AmountNeeded: tillNext,
TotalNeeded: Game.Objects[i].amount + tillNext,
price: Game.Objects[i].getSumPrice(
Game.Objects[i].amount + tillNext - Game.Objects[i].amount,
),
};
}
});