Show cookies from clicking in stats #698

This commit is contained in:
Daniël van Noord
2021-04-03 16:00:00 +02:00
parent bfc54bf9de
commit e1c6f60726
11 changed files with 49 additions and 9 deletions

View File

@@ -50,6 +50,14 @@ export class CMAvgQueue {
}
return ret / time;
}
calcSum(timePeriod) {
let time = timePeriod;
if (time > this.maxLength) time = this.maxLength;
if (time > this.queue.length) time = this.queue.length;
if (time === 0) return 0;
return this.queue.slice(-time).reduce((a, b) => a + b, 0);
}
}
/**

View File

@@ -1,4 +1,5 @@
/* eslint-disable no-unused-vars */
import { ClickTimes } from '../Disp/VariablesAndData';
import { CMAvgQueue, InitCookiesDiff } from './CPS/AverageQueue';
import CacheAvgCPS from './CPS/CPS';
import CacheDragonAuras from './Dragon/CacheDragonAuras';
@@ -15,7 +16,10 @@ import {
CacheGoldenAndWrathCookiesMults,
CacheStatsCookies,
} from './Stats/Stats';
import { HeavenlyChipsDiff } from './VariablesAndData';
import {
CacheAverageCookiesFromClicks,
HeavenlyChipsDiff,
} from './VariablesAndData';
import CacheWrinklers from './Wrinklers/Wrinklers';
/**
@@ -31,6 +35,9 @@ export default function InitCache() {
CacheSeasonSpec();
InitCookiesDiff();
HeavenlyChipsDiff = new CMAvgQueue(5); // Used by CM.Cache.CacheHeavenlyChipsPS()
CacheAverageCookiesFromClicks = new CMAvgQueue(
ClickTimes[ClickTimes.length - 1] * 20,
);
CacheHeavenlyChipsPS();
CacheAvgCPS();
CacheIncome();

View File

@@ -39,6 +39,7 @@ export let CacheCurrWrinklerCount = 0;
export let CacheUpgrades = {};
export let CacheAverageClicks = {};
export let CacheAverageCookiesFromClicks;
export let CacheMissingUpgrades = {};
export let CacheMissingUpgradesPrestige = {};

View File

@@ -2,7 +2,7 @@ import ConfigDefault from '../../Data/SettingsDefault';
import ConfigData from '../../Data/SettingsData';
import { CMOptions } from '../VariablesAndData';
import save from '../../InitSaveLoad/save';
import CMLoop from '../../Main/Loop';
import CMLoopHook from '../../Main/LoopHook';
import UpdateColours from '../../Disp/HelperFunctions/UpdateColours';
/** Functions related to saving, loading and restoring all settings */
@@ -68,7 +68,7 @@ export function LoadConfig(settings) {
}
});
if (mod) SaveConfig();
CMLoop(); // Do loop once
CMLoopHook(); // Do loop once
Object.keys(ConfigDefault).forEach((i) => {
if (i !== 'Header' && typeof ConfigData[i].func !== 'undefined') {
ConfigData[i].func();

View File

@@ -8,6 +8,7 @@ import { CMOptions } from '../../../Config/VariablesAndData';
import {
CacheAverageClicks,
CacheAverageCookiesFromClicks,
CacheWrinklersFattest,
CacheWrinklersNormal,
CacheWrinklersTotal,
@@ -132,6 +133,21 @@ export default function AddMenuStats(title) {
document.createTextNode(Beautify(CacheAverageClicks, 1)),
),
);
stats.appendChild(
CreateElements.StatsListing(
'basic',
`Cookies from clicking (Past ${ClickTimes[CMOptions.AvgClicksHist]}${
CMOptions.AvgClicksHist === 0 ? ' second' : ' seconds'
})`,
document.createTextNode(
Beautify(
CacheAverageCookiesFromClicks.calcSum(
CacheAverageClicks * ClickTimes[CMOptions.AvgClicksHist],
),
),
),
),
);
if (Game.Has('Fortune cookies')) {
const fortunes = [];
Object.keys(GameData.Fortunes).forEach((i) => {

View File

@@ -1,8 +1,9 @@
/* eslint-disable no-unused-vars */
import { VersionMajor, VersionMinor } from '../Data/Moddata';
import Draw from '../Disp/Draw';
import CMClickHook from '../Main/ClickHook';
import InitializeCookieMonster from '../Main/Initialization';
import CMLoop from '../Main/Loop';
import CMLoopHook from '../Main/LoopHook';
import { isInitializing } from './Variables';
/**
@@ -22,7 +23,8 @@ export default function init() {
if (proceed) {
InitializeCookieMonster();
Game.registerHook('draw', Draw);
Game.registerHook('logic', CMLoop);
Game.registerHook('logic', CMLoopHook);
Game.registerHook('click', CMClickHook);
isInitializing = false;
}
}

6
src/Main/ClickHook.js Normal file
View File

@@ -0,0 +1,6 @@
import { CacheAverageCookiesFromClicks } from '../Cache/VariablesAndData';
export default function CMClickHook() {
// Add cookies from click to array that stores average
CacheAverageCookiesFromClicks.addLatest(Game.computedMouseCps);
}

View File

@@ -35,7 +35,7 @@ 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 CMLoop() {
export default function CMLoopHook() {
if (LastAscendState !== Game.OnAscend) {
LastAscendState = Game.OnAscend;
UpdateAscendState();