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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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();