Merge pull request #804 from DanielNoord/bugfixes

Fix issues with "till next achievement"
This commit is contained in:
Daniël van Noord
2021-05-06 21:54:52 +02:00
committed by GitHub
5 changed files with 18 additions and 6 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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,
),
};
}
});

View File

@@ -42,8 +42,7 @@ export default function CMLoopHook() {
// CM.Sim.DoSims is set whenever CPS has changed
if (SimDoSims) {
AllAmountTillNextAchievement();
AllAmountTillNextAchievement(true);
CacheIncome();
CacheNoGoldSwitchCPS(); // Needed first