89 lines
3.1 KiB
JavaScript
89 lines
3.1 KiB
JavaScript
import InitCache from '../Cache/CacheInit';
|
|
import LoopCache from '../Cache/CacheLoop';
|
|
import CacheNoGoldSwitchCPS from '../Cache/CPS/NoGoldSwitchCPS';
|
|
import CacheSellAllForChoEgg from '../Cache/CPS/SellChoEgg';
|
|
import CacheDragonCost from '../Cache/Dragon/Dragon';
|
|
import CachePantheonGods from '../Cache/PantheonGods/CacheGods';
|
|
import { CacheBuildingsPrices, CacheIncome } from '../Cache/PriceAndIncome/PriceAndIncome';
|
|
import { CacheChain } from '../Cache/Stats/ChainCookies';
|
|
import CacheAllMissingUpgrades from '../Cache/Stats/MissingUpgrades';
|
|
import CacheSeasonSpec from '../Cache/Stats/Reindeer';
|
|
import { CacheGoldenAndWrathCookiesMults, CacheStatsCookies } from '../Cache/Stats/Stats';
|
|
import AllAmountTillNextAchievement from '../Cache/TillNextAchievement/AllAmountTillNextAchievement';
|
|
import { CacheDoRemakeBuildPrices, CacheHadBuildAura } from '../Cache/VariablesAndData';
|
|
import UpdateAscendState from '../Disp/HelperFunctions/UpdateAscendState';
|
|
import { LastAscendState } from '../Disp/VariablesAndData';
|
|
import InitData from '../Sim/InitializeData/InitData';
|
|
import { SimDoSims } from '../Sim/VariablesAndData';
|
|
import CheckGardenTick from './CheckStates/Garden';
|
|
import CheckGoldenCookie from './CheckStates/GoldenCookie';
|
|
import CheckMagicMeter from './CheckStates/Grimoire';
|
|
import CheckSeasonPopup from './CheckStates/Season';
|
|
import CheckTickerFortune from './CheckStates/Ticker';
|
|
import CheckWrinklerCount from './CheckStates/Wrinkler';
|
|
import { LastModCount } from './VariablesAndData';
|
|
|
|
/**
|
|
* Main loop of Cookie Monster
|
|
* CM.init registers it to the "logic" hook provided by the modding api
|
|
*/
|
|
export default function CMLoopHook() {
|
|
if (LastAscendState !== Game.OnAscend) {
|
|
LastAscendState = Game.OnAscend;
|
|
UpdateAscendState();
|
|
}
|
|
if (!Game.OnAscend && Game.AscendTimer === 0) {
|
|
// Check if any other mods have been loaded
|
|
if (LastModCount !== Object.keys(Game.mods).length) {
|
|
InitData();
|
|
InitCache();
|
|
LastModCount = Object.keys(Game.mods).length;
|
|
}
|
|
|
|
// CM.Sim.DoSims is set whenever CPS has changed
|
|
if (SimDoSims) {
|
|
AllAmountTillNextAchievement(true);
|
|
CacheIncome();
|
|
|
|
CacheNoGoldSwitchCPS(); // Needed first
|
|
CacheGoldenAndWrathCookiesMults();
|
|
CacheStatsCookies();
|
|
CacheAllMissingUpgrades();
|
|
CacheChain();
|
|
CacheDragonCost();
|
|
CachePantheonGods();
|
|
|
|
CacheSeasonSpec();
|
|
CacheSellAllForChoEgg();
|
|
|
|
SimDoSims = 0;
|
|
}
|
|
|
|
// Check for aura change to recalculate buildings prices
|
|
const hasBuildAura = Game.auraMult('Fierce Hoarder') > 0;
|
|
if (!CacheHadBuildAura && hasBuildAura) {
|
|
CacheHadBuildAura = true;
|
|
CacheDoRemakeBuildPrices = 1;
|
|
} else if (CacheHadBuildAura && !hasBuildAura) {
|
|
CacheHadBuildAura = false;
|
|
CacheDoRemakeBuildPrices = 1;
|
|
}
|
|
|
|
if (CacheDoRemakeBuildPrices) {
|
|
CacheBuildingsPrices();
|
|
CacheDoRemakeBuildPrices = 0;
|
|
}
|
|
|
|
LoopCache();
|
|
|
|
// Check all changing minigames and game-states
|
|
CheckTickerFortune();
|
|
CheckSeasonPopup();
|
|
CheckGardenTick();
|
|
CheckMagicMeter();
|
|
CheckWrinklerCount();
|
|
}
|
|
// To remove Timers when ascending
|
|
CheckGoldenCookie();
|
|
}
|