Use CookieMonsterFramework for save/load, infoMenu
This commit is contained in:
2
dist/CookieMonsterDev.js
vendored
2
dist/CookieMonsterDev.js
vendored
File diff suppressed because one or more lines are too long
2
dist/CookieMonsterDev.js.map
vendored
2
dist/CookieMonsterDev.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import { ClickTimes, CookieTimes } from '../../Disp/VariablesAndData';
|
||||
import {
|
||||
CacheAverageClicks, // eslint-disable-line no-unused-vars
|
||||
@@ -67,23 +66,31 @@ export default function CacheAvgCPS() {
|
||||
CacheLastClicks = Game.cookieClicks;
|
||||
|
||||
// Get average gain over period of cpsLength seconds
|
||||
const cpsLength = CookieTimes[CMOptions.AvgCPSHist];
|
||||
const cpsLength =
|
||||
CookieTimes[Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AvgCPSHist];
|
||||
CacheAverageGainBank = CookiesDiff.calcAverage(cpsLength);
|
||||
CacheAverageGainWrink = WrinkDiff.calcAverage(cpsLength);
|
||||
CacheAverageGainWrinkFattest = WrinkFattestDiff.calcAverage(cpsLength);
|
||||
CacheAverageGainChoEgg = ChoEggDiff.calcAverage(cpsLength);
|
||||
CacheAverageCPS = CacheAverageGainBank;
|
||||
if (CMOptions.CalcWrink === 1) CacheAverageCPS += CacheAverageGainWrink;
|
||||
if (CMOptions.CalcWrink === 2) CacheAverageCPS += CacheAverageGainWrinkFattest;
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.CalcWrink === 1)
|
||||
CacheAverageCPS += CacheAverageGainWrink;
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.CalcWrink === 2)
|
||||
CacheAverageCPS += CacheAverageGainWrinkFattest;
|
||||
|
||||
const choEgg = Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg');
|
||||
|
||||
if (choEgg || CMOptions.CalcWrink === 0) {
|
||||
if (
|
||||
choEgg ||
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.CalcWrink === 0
|
||||
) {
|
||||
CacheAvgCPSWithChoEgg =
|
||||
CacheAverageGainBank + CacheAverageGainWrink + (choEgg ? CacheAverageGainChoEgg : 0);
|
||||
} else CacheAvgCPSWithChoEgg = CacheAverageCPS;
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
CacheAverageClicks = ClicksDiff.calcAverage(ClickTimes[CMOptions.AvgClicksHist]);
|
||||
CacheAverageClicks = ClicksDiff.calcAverage(
|
||||
ClickTimes[Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AvgClicksHist],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import GetWrinkConfigBank from '../../Disp/HelperFunctions/GetWrinkConfigBank';
|
||||
import { ColourGray } from '../../Disp/VariablesAndData';
|
||||
import {
|
||||
@@ -18,14 +17,21 @@ import ColourOfPP from './ColourOfPP';
|
||||
*/
|
||||
function CacheColour(target, amount) {
|
||||
Object.keys(target).forEach((i) => {
|
||||
if (CMOptions.PPRigidelMode && amount === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPRigidelMode &&
|
||||
amount === 1
|
||||
) {
|
||||
target[i].color = ColourGray; // eslint-disable-line no-param-reassign
|
||||
return;
|
||||
}
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
target[i].color = ColourOfPP(target[i], Game.Objects[i].getSumPrice(amount));
|
||||
// Colour based on excluding certain top-buildings
|
||||
for (let j = 0; j < CMOptions.PPExcludeTop; j++) {
|
||||
for (
|
||||
let j = 0;
|
||||
j < Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPExcludeTop;
|
||||
j++
|
||||
) {
|
||||
if (target[i].pp === CachePPArray[j][0]) target[i].color = ColourGray; // eslint-disable-line no-param-reassign
|
||||
}
|
||||
});
|
||||
@@ -39,7 +45,12 @@ function CachePP(target, amount) {
|
||||
Math.max(price - (Game.cookies + GetWrinkConfigBank()), 0) / Game.cookiesPs +
|
||||
price / target[i].bonus;
|
||||
} else target[i].pp = price / target[i].bonus; // eslint-disable-line no-param-reassign
|
||||
if (!(CMOptions.PPRigidelMode && amount === 1))
|
||||
if (
|
||||
!(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPRigidelMode &&
|
||||
amount === 1
|
||||
)
|
||||
)
|
||||
CachePPArray.push([target[i].pp, amount, price]);
|
||||
});
|
||||
}
|
||||
@@ -51,7 +62,11 @@ function CachePP(target, amount) {
|
||||
export default function CacheBuildingsPP() {
|
||||
CacheMinPP = Infinity;
|
||||
CachePPArray = [];
|
||||
if (typeof CMOptions.PPExcludeTop === 'undefined') CMOptions.PPExcludeTop = 0; // Otherwise breaks during initialization
|
||||
if (
|
||||
typeof Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPExcludeTop ===
|
||||
'undefined'
|
||||
)
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPExcludeTop = 0; // Otherwise breaks during initialization
|
||||
|
||||
// Calculate PP and colors
|
||||
CachePP(CacheObjects1, 1);
|
||||
@@ -60,8 +75,8 @@ export default function CacheBuildingsPP() {
|
||||
|
||||
// Set CM.Cache.min to best non-excluded buidliung
|
||||
CachePPArray.sort((a, b) => a[0] - b[0]);
|
||||
let indexOfMin = CMOptions.PPExcludeTop;
|
||||
if (CMOptions.PPOnlyConsiderBuyable) {
|
||||
let indexOfMin = Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPExcludeTop;
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPOnlyConsiderBuyable) {
|
||||
while (CachePPArray[indexOfMin][2] > Game.cookies) {
|
||||
indexOfMin += 1;
|
||||
if (CachePPArray.length === indexOfMin + 1) {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import GetCPS from '../../Disp/HelperFunctions/GetCPS';
|
||||
import {
|
||||
ColourBlue,
|
||||
@@ -30,11 +29,21 @@ export default function ColourOfPP(me, price) {
|
||||
else color = ColourPurple;
|
||||
|
||||
// Colour based on price in terms of CPS
|
||||
if (Number(CMOptions.PPSecondsLowerLimit) !== 0) {
|
||||
if (price / GetCPS() < Number(CMOptions.PPSecondsLowerLimit)) color = ColourBlue;
|
||||
if (
|
||||
Number(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPSecondsLowerLimit,
|
||||
) !== 0
|
||||
) {
|
||||
if (
|
||||
price / GetCPS() <
|
||||
Number(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPSecondsLowerLimit,
|
||||
)
|
||||
)
|
||||
color = ColourBlue;
|
||||
}
|
||||
// Colour based on being able to purchase
|
||||
if (CMOptions.PPOnlyConsiderBuyable) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPOnlyConsiderBuyable) {
|
||||
if (price - Game.cookies > 0) color = ColourRed;
|
||||
}
|
||||
return color;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Section: Functions related to caching income */
|
||||
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import BuildingGetPrice from '../../Sim/SimulationEvents/BuyBuilding';
|
||||
import BuyBuildingsBonusIncome from '../../Sim/SimulationEvents/BuyBuildingBonusIncome';
|
||||
import BuyUpgradesBonusIncome from '../../Sim/SimulationEvents/BuyUpgrades';
|
||||
@@ -44,8 +43,10 @@ function CacheUpgradeIncome() {
|
||||
const bonusIncome = BuyUpgradesBonusIncome(i);
|
||||
if (i === 'Elder Pledge') {
|
||||
CacheUpgrades[i] = { bonus: Game.cookiesPs - CacheAverageGainBank };
|
||||
if (CMOptions.CalcWrink === 1) CacheUpgrades[i].bonus -= CacheAverageGainWrink;
|
||||
else if (CMOptions.CalcWrink === 2) CacheUpgrades[i].bonus -= CacheAverageGainWrinkFattest;
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.CalcWrink === 1)
|
||||
CacheUpgrades[i].bonus -= CacheAverageGainWrink;
|
||||
else if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.CalcWrink === 2)
|
||||
CacheUpgrades[i].bonus -= CacheAverageGainWrinkFattest;
|
||||
if (!Number.isFinite(CacheUpgrades[i].bonus)) CacheUpgrades[i].bonus = 0;
|
||||
} else {
|
||||
CacheUpgrades[i] = {};
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
import ConfigDefault from '../../Data/SettingsDefault.ts';
|
||||
import ConfigData from '../../Data/SettingsData';
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
import save from '../../InitSaveLoad/save';
|
||||
import CMLoopHook from '../../Main/LoopHook';
|
||||
import UpdateColours from '../../Disp/HelperFunctions/UpdateColours';
|
||||
|
||||
/** Functions related to saving, loading and restoring all settings */
|
||||
|
||||
/**
|
||||
* This function saves the config of CookieMonster without saving any of the other save-data
|
||||
* This allows saving in between the autosave intervals
|
||||
* It is called by CM.Config.LoadConfig(), CM.Config.RestoreDefault(), CM.Config.ToggleConfig(),
|
||||
* CM.ToggleConfigVolume() and changes in options with type "url", "color" or "numscale"
|
||||
*/
|
||||
export function SaveConfig() {
|
||||
const saveString = b64_to_utf8(
|
||||
unescape(localStorage.getItem('CookieClickerGame')).split('!END!')[0],
|
||||
);
|
||||
const CookieMonsterSave = saveString.match(/CookieMonster.*(;|$)/);
|
||||
if (CookieMonsterSave !== null) {
|
||||
const newSaveString = saveString.replace(CookieMonsterSave[0], `CookieMonster:${save()}`);
|
||||
localStorage.setItem('CookieClickerGame', escape(`${utf8_to_b64(newSaveString)}!END!`));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This function loads the config of CookieMonster saved in localStorage and loads it into CMOptions
|
||||
* It is called by CM.Main.DelayInit() and CM.Config.RestoreDefault()
|
||||
*/
|
||||
export function LoadConfig(settings) {
|
||||
// This removes cookies left from earlier versions of CookieMonster
|
||||
if (typeof localStorage.CMConfig !== 'undefined') {
|
||||
delete localStorage.CMConfig;
|
||||
}
|
||||
if (settings !== undefined) {
|
||||
CMOptions = settings;
|
||||
|
||||
if (typeof CMOptions.Colors !== 'undefined') {
|
||||
delete CMOptions.Colors;
|
||||
}
|
||||
if (typeof CMOptions.Colours !== 'undefined') {
|
||||
delete CMOptions.Colours;
|
||||
}
|
||||
|
||||
// Check values
|
||||
let mod = false;
|
||||
Object.keys(ConfigDefault).forEach((i) => {
|
||||
if (typeof CMOptions[i] === 'undefined') {
|
||||
mod = true;
|
||||
CMOptions[i] = ConfigDefault[i];
|
||||
} else if (i === 'Header') {
|
||||
Object.keys(ConfigDefault.Header).forEach((j) => {
|
||||
if (
|
||||
typeof CMOptions[i][j] === 'undefined' ||
|
||||
!(CMOptions[i][j] > -1 && CMOptions[i][j] < 2)
|
||||
) {
|
||||
mod = true;
|
||||
CMOptions[i][j] = ConfigDefault[i][j];
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
if (mod) SaveConfig();
|
||||
CMLoopHook(); // Do loop once
|
||||
Object.keys(ConfigDefault).forEach((i) => {
|
||||
if (i !== 'Header' && typeof ConfigData[i].func !== 'undefined') {
|
||||
ConfigData[i].func();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Default values
|
||||
LoadConfig(ConfigDefault);
|
||||
}
|
||||
Game.UpdateMenu();
|
||||
UpdateColours();
|
||||
}
|
||||
@@ -1,26 +1,35 @@
|
||||
/** Called by the "func" of individual settings */
|
||||
|
||||
import UpdateBackground from '../Disp/HelperFunctions/UpdateBackground';
|
||||
import { CMOptions } from './VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function changes the position of both the bottom and timer bar
|
||||
*/
|
||||
export function UpdateBotTimerBarPosition() {
|
||||
if (CMOptions.BotBar === 1 && CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBar === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarPos === 1
|
||||
) {
|
||||
l('CMBotBar').style.bottom = l('CMTimerBar').style.height;
|
||||
l('game').style.bottom = `${Number(l('CMTimerBar').style.height.replace('px', '')) + 70}px`;
|
||||
} else if (CMOptions.BotBar === 1) {
|
||||
} else if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar === 1) {
|
||||
l('CMBotBar').style.bottom = '0px';
|
||||
l('game').style.bottom = '70px';
|
||||
} else if (CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 1) {
|
||||
} else if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBar === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarPos === 1
|
||||
) {
|
||||
l('game').style.bottom = l('CMTimerBar').style.height;
|
||||
} else {
|
||||
// No bars
|
||||
l('game').style.bottom = '0px';
|
||||
}
|
||||
|
||||
if (CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 0) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBar === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarPos === 0
|
||||
) {
|
||||
l('sectionLeft').style.top = l('CMTimerBar').style.height;
|
||||
} else {
|
||||
l('sectionLeft').style.top = '';
|
||||
@@ -33,7 +42,8 @@ export function UpdateBotTimerBarPosition() {
|
||||
* This function changes the visibility of the timer bar
|
||||
*/
|
||||
export function ToggleTimerBar() {
|
||||
if (CMOptions.TimerBar === 1) l('CMTimerBar').style.display = '';
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBar === 1)
|
||||
l('CMTimerBar').style.display = '';
|
||||
else l('CMTimerBar').style.display = 'none';
|
||||
UpdateBotTimerBarPosition();
|
||||
}
|
||||
@@ -42,7 +52,7 @@ export function ToggleTimerBar() {
|
||||
* This function changes the position of the timer bar
|
||||
*/
|
||||
export function ToggleTimerBarPos() {
|
||||
if (CMOptions.TimerBarPos === 0) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarPos === 0) {
|
||||
l('CMTimerBar').style.width = '30%';
|
||||
l('CMTimerBar').style.bottom = '';
|
||||
l('game').insertBefore(l('CMTimerBar'), l('sectionLeft'));
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import ConfigData from '../Data/SettingsData';
|
||||
import { SaveConfig } from './SaveLoadReload/SaveLoadReloadSettings';
|
||||
import { CMOptions } from './VariablesAndData';
|
||||
import saveFramework from '@cookiemonsterteam/cookiemonsterframework/src/saveDataFunctions/saveFramework';
|
||||
import settings from '../Data/settings';
|
||||
|
||||
/** Functions related to toggling or changing an individual setting */
|
||||
|
||||
@@ -13,18 +12,21 @@ export const ConfigPrefix = 'CMConfig';
|
||||
* @param {string} config The name of the option
|
||||
*/
|
||||
export function ToggleConfig(config) {
|
||||
CMOptions[config] += 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] += 1;
|
||||
|
||||
if (CMOptions[config] === ConfigData[config].label.length) {
|
||||
CMOptions[config] = 0;
|
||||
if (ConfigData[config].toggle) l(ConfigPrefix + config).className = 'option off';
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] ===
|
||||
settings[config].label.length
|
||||
) {
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] = 0;
|
||||
if (settings[config].toggle) l(ConfigPrefix + config).className = 'option off';
|
||||
} else l(ConfigPrefix + config).className = 'option';
|
||||
|
||||
if (typeof ConfigData[config].func !== 'undefined') {
|
||||
ConfigData[config].func();
|
||||
if (typeof settings[config].func !== 'undefined') {
|
||||
settings[config].func();
|
||||
}
|
||||
|
||||
SaveConfig();
|
||||
saveFramework();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -35,9 +37,11 @@ export function ToggleConfig(config) {
|
||||
export function ToggleConfigVolume(config) {
|
||||
if (l(`slider${config}`) !== null) {
|
||||
l(`slider${config}right`).innerHTML = `${l(`slider${config}`).value}%`;
|
||||
CMOptions[config] = Math.round(l(`slider${config}`).value);
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] = Math.round(
|
||||
l(`slider${config}`).value,
|
||||
);
|
||||
}
|
||||
SaveConfig();
|
||||
saveFramework();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -46,7 +50,8 @@ export function ToggleConfigVolume(config) {
|
||||
* @param {string} config The name of the header
|
||||
*/
|
||||
export function ToggleHeader(config) {
|
||||
CMOptions.Header[config] += 1;
|
||||
if (CMOptions.Header[config] > 1) CMOptions.Header[config] = 0;
|
||||
SaveConfig();
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[config] += 1;
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[config] > 1)
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[config] = 0;
|
||||
saveFramework();
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import { UpdateBotBar } from '../../Disp/InfoBars/BottomBar';
|
||||
import { UpdateBotTimerBarPosition } from '../SpecificToggles';
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function toggle the bottom bar
|
||||
* It is called by CM.Disp.UpdateAscendState() and a change in CMOptions.BotBar
|
||||
* It is called by CM.Disp.UpdateAscendState() and a change in Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar
|
||||
*/
|
||||
export default function ToggleBotBar() {
|
||||
if (CMOptions.BotBar === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar === 1) {
|
||||
l('CMBotBar').style.display = '';
|
||||
UpdateBotBar();
|
||||
} else {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { CMSayTime } from '../../Disp/VariablesAndData';
|
||||
import { BackupFunctions } from '../../Main/VariablesAndData';
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function changes some of the time-displays in the game to be more detailed
|
||||
* It is called by a change in CM.Options.DetailedTime
|
||||
*/
|
||||
export default function ToggleDetailedTime() {
|
||||
if (CMOptions.DetailedTime === 1) Game.sayTime = CMSayTime;
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.DetailedTime === 1)
|
||||
Game.sayTime = CMSayTime;
|
||||
else Game.sayTime = BackupFunctions.sayTime;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import { CacheGoldenShimmersByID } from '../../Cache/VariablesAndData';
|
||||
import { GCTimers } from '../../Disp/VariablesAndData';
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function toggles GC Timers are visible
|
||||
* It is called by a change in CM.Options.GCTimer
|
||||
*/
|
||||
export default function ToggleGCTimer() {
|
||||
if (CMOptions.GCTimer === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GCTimer === 1) {
|
||||
Object.keys(GCTimers).forEach((i) => {
|
||||
GCTimers[i].style.display = 'block';
|
||||
GCTimers[i].style.left = CacheGoldenShimmersByID[i].l.style.left;
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function updates the display setting of the two objects created by CM.Disp.CreateWrinklerButtons()
|
||||
* It is called by changes in CM.Options.WrinklerButtons
|
||||
*/
|
||||
export default function ToggleSectionHideButtons() {
|
||||
if (CMOptions.HideSectionsButtons) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.HideSectionsButtons) {
|
||||
l('CMSectionHidButtons').style.display = '';
|
||||
} else {
|
||||
l('CMSectionHidButtons').style.display = 'none';
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function toggles the position of the warnings created by CM.Disp.TooltipCreateWarningSection()
|
||||
* It is called by a change in CM.Options.ToolWarnPos
|
||||
@@ -7,7 +5,7 @@ import { CMOptions } from '../VariablesAndData';
|
||||
*/
|
||||
export default function ToggleToolWarnPos() {
|
||||
if (l('CMDispTooltipWarningParent') !== null) {
|
||||
if (CMOptions.ToolWarnPos === 0) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnPos === 0) {
|
||||
l('CMDispTooltipWarningParent').style.top = 'auto';
|
||||
l('CMDispTooltipWarningParent').style.margin = '4px -4px';
|
||||
l('CMDispTooltipWarningParent').style.padding = '3px 4px';
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
import UpdateUpgrades from '../../Disp/BuildingsUpgrades/Upgrades';
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function toggles the upgrade bar and the colours of upgrades
|
||||
* It is called by a change in CM.Options.UpBarColor
|
||||
*/
|
||||
export default function ToggleUpgradeBarAndColor() {
|
||||
if (CMOptions.UpBarColor === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor === 1) {
|
||||
// Colours and bar on
|
||||
l('CMUpgradeBar').style.display = '';
|
||||
UpdateUpgrades();
|
||||
} else if (CMOptions.UpBarColor === 2) {
|
||||
} else if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor === 2) {
|
||||
// Colours on and bar off
|
||||
l('CMUpgradeBar').style.display = 'none';
|
||||
UpdateUpgrades();
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function toggles the position of the upgrade bar from fixed or non-fixed mode
|
||||
* It is called by a change in CM.Options.UpgradeBarFixedPos
|
||||
*/
|
||||
export default function ToggleUpgradeBarFixedPos() {
|
||||
if (CMOptions.UpgradeBarFixedPos === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpgradeBarFixedPos === 1
|
||||
) {
|
||||
// Fix to top of screen when scrolling
|
||||
l('CMUpgradeBar').style.position = 'sticky';
|
||||
l('CMUpgradeBar').style.top = '0px';
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function updates the display setting of the two objects created by CM.Disp.CreateWrinklerButtons()
|
||||
* It is called by changes in CM.Options.WrinklerButtons
|
||||
*/
|
||||
export default function ToggleWrinklerButtons() {
|
||||
if (CMOptions.WrinklerButtons && Game.elderWrath) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.WrinklerButtons &&
|
||||
Game.elderWrath
|
||||
) {
|
||||
l('PopAllNormalWrinklerButton').style.display = '';
|
||||
l('PopFattestWrinklerButton').style.display = '';
|
||||
} else {
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
export let CMOptions = {}; // eslint-disable-line prefer-const
|
||||
export const ConfigPrefix = 'CMConfig';
|
||||
const ConfigPrefix = 'CMConfig';
|
||||
export default ConfigPrefix;
|
||||
|
||||
@@ -4,18 +4,15 @@ export const VersionMajor = '2.031';
|
||||
export const VersionMinor = '9';
|
||||
|
||||
/** Information about Cookie Monster to be displayed in the info section */
|
||||
export const ModDescription = `<div class="listing">
|
||||
<a href="https://github.com/CookieMonsterTeam/CookieMonster" target="blank">Cookie Monster</a>
|
||||
export const ModDescription = `<a href="https://github.com/CookieMonsterTeam/CookieMonster" target="blank">Cookie Monster</a>
|
||||
offers a wide range of tools and statistics to enhance your game experience.
|
||||
It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.</br>
|
||||
Progess on new updates and all previous release notes can be found on the GitHub page linked above!</br>
|
||||
Please also report any bugs you may find over there!</br>
|
||||
</div>
|
||||
`;
|
||||
|
||||
/** Latest releasenotes of Cookie Monster to be displayed in the info section */
|
||||
export const LatestReleaseNotes = `<div class="listing">
|
||||
This update implements the following functions:</br>
|
||||
export const LatestReleaseNotes = `This update implements the following functions:</br>
|
||||
- HOTFIX: Fixed the possibility of clicking Golden Cookies multiple times with autoclickers</br>
|
||||
- For developers: we now expose some data calculated by Cookie Monster to the global scope. You can access it through the CookieMonsterData object</br>
|
||||
- The column with the most optimal building now has a green coloured indicator whenever colour coding is turned on</br>
|
||||
@@ -29,5 +26,4 @@ This update fixes the following bugs:</br>
|
||||
- Fixed some issues related to "left till achievement"</br>
|
||||
- Fixed some cases where upgrades and buildings were not correctly sorted</br>
|
||||
- Fixed the tooltip of "Pop all normal wrinklers" displaying an incorrect reward when Shiny's are present</br>
|
||||
</div>
|
||||
`;
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
/** The basic setting class */
|
||||
export default class Setting {
|
||||
defaultValue: string | number;
|
||||
|
||||
type: string;
|
||||
|
||||
group: string;
|
||||
|
||||
constructor(type: string, group: string) {
|
||||
constructor(defaultValue: string | number, type: string, group: string) {
|
||||
this.defaultValue = defaultValue;
|
||||
this.type = type;
|
||||
this.group = group;
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ import Setting from './BaseSetting';
|
||||
export default class SettingColours extends Setting {
|
||||
desc: string;
|
||||
|
||||
constructor(type: string, group: string, desc: string) {
|
||||
super(type, group);
|
||||
constructor(defaultValue: string | number,type: string, group: string, desc: string) {
|
||||
super(defaultValue, type, group);
|
||||
this.desc = desc;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ export default class SettingInputNumber extends Setting {
|
||||
max: number;
|
||||
|
||||
constructor(
|
||||
defaultValue: string | number,
|
||||
type: string,
|
||||
group: string,
|
||||
label: string[],
|
||||
@@ -18,7 +19,7 @@ export default class SettingInputNumber extends Setting {
|
||||
min: number,
|
||||
max: number,
|
||||
) {
|
||||
super(type, group);
|
||||
super(defaultValue, type, group);
|
||||
this.label = label;
|
||||
this.desc = desc;
|
||||
this.min = min;
|
||||
|
||||
@@ -11,6 +11,7 @@ export default class SettingStandard extends Setting {
|
||||
func: () => void;
|
||||
|
||||
constructor(
|
||||
defaultValue: string | number,
|
||||
type: string,
|
||||
group: string,
|
||||
label: string[],
|
||||
@@ -18,7 +19,7 @@ export default class SettingStandard extends Setting {
|
||||
toggle: boolean,
|
||||
func?: () => void,
|
||||
) {
|
||||
super(type, group);
|
||||
super(defaultValue, type, group);
|
||||
this.label = label;
|
||||
this.desc = desc;
|
||||
this.toggle = toggle;
|
||||
|
||||
@@ -6,8 +6,8 @@ export default class SettingVolume extends Setting {
|
||||
|
||||
desc: string;
|
||||
|
||||
constructor(type: string, group: string, label: string[], desc: string) {
|
||||
super(type, group);
|
||||
constructor(defaultValue: string | number,type: string, group: string, label: string[], desc: string) {
|
||||
super(defaultValue, type, group);
|
||||
this.label = label;
|
||||
this.desc = desc;
|
||||
for (let i = 0; i < 101; i++) {
|
||||
|
||||
@@ -1,144 +0,0 @@
|
||||
/** This array describes all default settings */
|
||||
const ConfigDefault: {
|
||||
[index: string]: string | number | { [index: string]: number };
|
||||
} = {
|
||||
CPSMode: 1,
|
||||
AvgCPSHist: 3,
|
||||
AvgClicksHist: 0,
|
||||
CalcWrink: 0,
|
||||
Scale: 2,
|
||||
ScaleDecimals: 2,
|
||||
ScaleSeparator: 0,
|
||||
ScaleCutoff: 999999,
|
||||
TimeFormat: 0,
|
||||
DetailedTime: 1,
|
||||
PPDisplayTime: 0,
|
||||
BuildColour: 1,
|
||||
PPOnlyConsiderBuyable: 0,
|
||||
PPExcludeTop: 0,
|
||||
PPRigidelMode: 0,
|
||||
PPSecondsLowerLimit: 0,
|
||||
ColourBlue: '#4bb8f0',
|
||||
ColourGreen: '#00ff00',
|
||||
ColourYellow: '#ffff00',
|
||||
ColourOrange: '#ff7f00',
|
||||
ColourRed: '#ff0000',
|
||||
ColourPurple: '#ff00ff',
|
||||
ColourGray: '#b3b3b3',
|
||||
ColourPink: '#ff1493',
|
||||
ColourBrown: '#8b4513',
|
||||
BotBar: 1,
|
||||
TimerBar: 1,
|
||||
TimerBarPos: 0,
|
||||
TimerBarOverlay: 2,
|
||||
AutosaveTimerBar: 0,
|
||||
UpBarColour: 1,
|
||||
UpgradeBarFixedPos: 1,
|
||||
SortBuildings: 0,
|
||||
SortUpgrades: 0,
|
||||
UpgradesNeverCollapse: 0,
|
||||
DragonAuraInfo: 1,
|
||||
GrimoireBar: 1,
|
||||
GCTimer: 1,
|
||||
Favicon: 1,
|
||||
WrinklerButtons: 1,
|
||||
HideSectionsButtons: 0,
|
||||
TooltipBuildUpgrade: 1,
|
||||
TooltipAmor: 0,
|
||||
ToolWarnLucky: 1,
|
||||
ToolWarnLuckyFrenzy: 1,
|
||||
ToolWarnConjure: 1,
|
||||
ToolWarnConjureFrenzy: 1,
|
||||
ToolWarnEdifice: 1,
|
||||
ToolWarnUser: 0,
|
||||
ToolWarnBon: 1,
|
||||
ToolWarnPos: 1,
|
||||
TooltipGrim: 1,
|
||||
TooltipWrink: 1,
|
||||
TooltipLump: 1,
|
||||
TooltipPlots: 1,
|
||||
TooltipPantheon: 1,
|
||||
TooltipAscendButton: 1,
|
||||
Stats: 1,
|
||||
MissingUpgrades: 1,
|
||||
MissingAchievements: 0,
|
||||
UpStats: 1,
|
||||
HeavenlyChipsTarget: 1,
|
||||
ShowMissedGC: 1,
|
||||
Title: 1,
|
||||
GeneralSound: 1,
|
||||
GCNotification: 0,
|
||||
GCFlash: 1,
|
||||
ColourGCFlash: '#ffffff',
|
||||
GCSound: 1,
|
||||
GCVolume: 100,
|
||||
GCSoundURL: 'https://freesound.org/data/previews/66/66717_931655-lq.mp3',
|
||||
FortuneNotification: 0,
|
||||
FortuneFlash: 1,
|
||||
ColourFortuneFlash: '#ffffff',
|
||||
FortuneSound: 1,
|
||||
FortuneVolume: 100,
|
||||
FortuneSoundURL: 'https://freesound.org/data/previews/174/174027_3242494-lq.mp3',
|
||||
SeaNotification: 0,
|
||||
SeaFlash: 1,
|
||||
ColourSeaFlash: '#ffffff',
|
||||
SeaSound: 1,
|
||||
SeaVolume: 100,
|
||||
SeaSoundURL: 'https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3',
|
||||
GardFlash: 1,
|
||||
ColourGardFlash: '#ffffff',
|
||||
GardSound: 1,
|
||||
GardVolume: 100,
|
||||
GardSoundURL: 'https://freesound.org/data/previews/103/103046_861714-lq.mp3',
|
||||
MagicNotification: 0,
|
||||
MagicFlash: 1,
|
||||
ColourMagicFlash: '#ffffff',
|
||||
MagicSound: 1,
|
||||
MagicVolume: 100,
|
||||
MagicSoundURL: 'https://freesound.org/data/previews/221/221683_1015240-lq.mp3',
|
||||
WrinklerNotification: 0,
|
||||
WrinklerFlash: 1,
|
||||
ColourWrinklerFlash: '#ffffff',
|
||||
WrinklerSound: 1,
|
||||
WrinklerVolume: 100,
|
||||
WrinklerSoundURL: 'https://freesound.org/data/previews/124/124186_8043-lq.mp3',
|
||||
WrinklerMaxNotification: 0,
|
||||
WrinklerMaxFlash: 1,
|
||||
ColourWrinklerMaxFlash: '#ffffff',
|
||||
WrinklerMaxSound: 1,
|
||||
WrinklerMaxVolume: 100,
|
||||
WrinklerMaxSoundURL: 'https://freesound.org/data/previews/152/152743_15663-lq.mp3',
|
||||
BulkBuyBlock: 0,
|
||||
FavouriteSettings: 1,
|
||||
Header: {
|
||||
Favourite: 1,
|
||||
Calculation: 1,
|
||||
Notation: 1,
|
||||
Colours: 1,
|
||||
BarsDisplay: 1,
|
||||
Tooltip: 1,
|
||||
Statistics: 1,
|
||||
Notification: 1,
|
||||
NotificationGeneral: 1,
|
||||
NotificationGC: 1,
|
||||
NotificationFC: 1,
|
||||
NotificationSea: 1,
|
||||
NotificationGard: 1,
|
||||
NotificationMagi: 1,
|
||||
NotificationWrink: 1,
|
||||
NotificationWrinkMax: 1,
|
||||
Miscellaneous: 1,
|
||||
Lucky: 1,
|
||||
Chain: 1,
|
||||
Spells: 1,
|
||||
Garden: 1,
|
||||
Prestige: 1,
|
||||
Wrink: 1,
|
||||
Sea: 1,
|
||||
Achievs: 1,
|
||||
Misc: 1,
|
||||
InfoTab: 1,
|
||||
},
|
||||
};
|
||||
|
||||
export default ConfigDefault;
|
||||
33
src/Data/headers.js
Normal file
33
src/Data/headers.js
Normal file
@@ -0,0 +1,33 @@
|
||||
/** This includes all headers of Cookie Monster and their relevant data */
|
||||
const headers = {
|
||||
Favourite: 1,
|
||||
Calculation: 1,
|
||||
Notation: 1,
|
||||
Colours: 1,
|
||||
BarsDisplay: 1,
|
||||
Tooltip: 1,
|
||||
Statistics: 1,
|
||||
Notification: 1,
|
||||
NotificationGeneral: 1,
|
||||
NotificationGC: 1,
|
||||
NotificationFC: 1,
|
||||
NotificationSea: 1,
|
||||
NotificationGard: 1,
|
||||
NotificationMagi: 1,
|
||||
NotificationWrink: 1,
|
||||
NotificationWrinkMax: 1,
|
||||
Miscellaneous: 1,
|
||||
Lucky: 1,
|
||||
Chain: 1,
|
||||
Spells: 1,
|
||||
Garden: 1,
|
||||
Prestige: 1,
|
||||
Wrink: 1,
|
||||
Sea: 1,
|
||||
Achievs: 1,
|
||||
Misc: 1,
|
||||
infoMenu: 1,
|
||||
optionsMenu: 1,
|
||||
};
|
||||
|
||||
export default headers;
|
||||
@@ -8,7 +8,6 @@ import ToggleToolWarnPos from '../Config/Toggles/ToggleToolWarnPos';
|
||||
import ToggleUpgradeBarAndColour from '../Config/Toggles/ToggleUpgradeBarAndColour';
|
||||
import ToggleUpgradeBarFixedPos from '../Config/Toggles/ToggleUpgradeBarFixedPos';
|
||||
import ToggleWrinklerButtons from '../Config/Toggles/ToggleWrinklerButtons';
|
||||
import { CMOptions } from '../Config/VariablesAndData';
|
||||
import UpdateBuildings from '../Disp/BuildingsUpgrades/Buildings';
|
||||
import UpdateUpgradeSectionsHeight from '../Disp/BuildingsUpgrades/UpdateUpgradeSectionsHeight';
|
||||
import UpdateUpgrades from '../Disp/BuildingsUpgrades/Upgrades';
|
||||
@@ -21,9 +20,10 @@ import SettingStandard from './SettingClasses/SettingStandard.ts';
|
||||
import SettingVolume from './SettingClasses/SettingVolume.ts';
|
||||
|
||||
/** This includes all options of CookieMonster and their relevant data */
|
||||
const Config = {
|
||||
const settings = {
|
||||
// Calculation
|
||||
CPSMode: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Calculation',
|
||||
['Current cookies per second', 'Average cookies per second'],
|
||||
@@ -31,6 +31,7 @@ const Config = {
|
||||
false,
|
||||
),
|
||||
AvgCPSHist: new SettingStandard(
|
||||
3,
|
||||
'bool',
|
||||
'Calculation',
|
||||
[
|
||||
@@ -47,6 +48,7 @@ const Config = {
|
||||
false,
|
||||
),
|
||||
AvgClicksHist: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'Calculation',
|
||||
[
|
||||
@@ -60,6 +62,7 @@ const Config = {
|
||||
false,
|
||||
),
|
||||
CalcWrink: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'Calculation',
|
||||
[
|
||||
@@ -76,6 +79,7 @@ const Config = {
|
||||
|
||||
// Notation
|
||||
Scale: new SettingStandard(
|
||||
2,
|
||||
'bool',
|
||||
'Notation',
|
||||
[
|
||||
@@ -93,6 +97,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
ScaleDecimals: new SettingStandard(
|
||||
2,
|
||||
'bool',
|
||||
'Notation',
|
||||
['1 decimals', '2 decimals', '3 decimals'],
|
||||
@@ -103,6 +108,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
ScaleSeparator: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'Notation',
|
||||
['. for decimals (standard)', '. for thousands'],
|
||||
@@ -113,6 +119,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
ScaleCutoff: new SettingInputNumber(
|
||||
999999,
|
||||
'numscale',
|
||||
'Notation',
|
||||
'Notation cut-off point: ',
|
||||
@@ -121,6 +128,7 @@ const Config = {
|
||||
999999999,
|
||||
),
|
||||
TimeFormat: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'Notation',
|
||||
['Time XXd, XXh, XXm, XXs', 'Time XX:XX:XX:XX:XX'],
|
||||
@@ -128,6 +136,7 @@ const Config = {
|
||||
false,
|
||||
),
|
||||
DetailedTime: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Notation',
|
||||
['Detailed time OFF', 'Detailed time ON'],
|
||||
@@ -138,6 +147,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
PPDisplayTime: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'Notation',
|
||||
['PP as value (standard)', 'PP as time unit'],
|
||||
@@ -147,6 +157,7 @@ const Config = {
|
||||
|
||||
// Colours
|
||||
BuildColour: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Colours',
|
||||
['Building colours OFF', 'Building colours ON'],
|
||||
@@ -157,6 +168,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
PPOnlyConsiderBuyable: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'Colours',
|
||||
["Don't ignore non-buyable", 'Ignore non-buyable'],
|
||||
@@ -164,6 +176,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
PPExcludeTop: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'Colours',
|
||||
[
|
||||
@@ -176,6 +189,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
PPRigidelMode: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'Colours',
|
||||
['Rigidel mode OFF', 'Rigidel mode ON'],
|
||||
@@ -183,6 +197,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
PPSecondsLowerLimit: new SettingInputNumber(
|
||||
0,
|
||||
'numscale',
|
||||
'Colours',
|
||||
'Lower limit for PP (in seconds): ',
|
||||
@@ -191,46 +206,55 @@ const Config = {
|
||||
Infinity,
|
||||
),
|
||||
ColourBlue: new SettingColours(
|
||||
'#4bb8f0',
|
||||
'colour',
|
||||
'Colours',
|
||||
'Standard colour is blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels',
|
||||
),
|
||||
ColourGreen: new SettingColours(
|
||||
'#00ff00',
|
||||
'colour',
|
||||
'Colours',
|
||||
'Standard colour is green. Used to show best PP building, for Blood Frenzy bar, and for various labels',
|
||||
),
|
||||
ColourYellow: new SettingColours(
|
||||
'#ffff00',
|
||||
'colour',
|
||||
'Colours',
|
||||
'Standard colour is yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels',
|
||||
),
|
||||
ColourOrange: new SettingColours(
|
||||
'#ff7f00',
|
||||
'colour',
|
||||
'Colours',
|
||||
'Standard colour is orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels',
|
||||
),
|
||||
ColourRed: new SettingColours(
|
||||
'#ff0000',
|
||||
'colour',
|
||||
'Colours',
|
||||
'Standard colour is Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels',
|
||||
),
|
||||
ColourPurple: new SettingColours(
|
||||
'#ff00ff',
|
||||
'colour',
|
||||
'Colours',
|
||||
'Standard colour is purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels',
|
||||
),
|
||||
ColourGray: new SettingColours(
|
||||
'#b3b3b3',
|
||||
'colour',
|
||||
'Colours',
|
||||
'Standard colour is gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar',
|
||||
),
|
||||
ColourPink: new SettingColours(
|
||||
'#ff1493',
|
||||
'colour',
|
||||
'Colours',
|
||||
'Standard colour is pink. Used for Dragonflight bar',
|
||||
),
|
||||
ColourBrown: new SettingColours(
|
||||
'#8b4513',
|
||||
'colour',
|
||||
'Colours',
|
||||
'Standard colour is brown. Used for Dragon Harvest bar',
|
||||
@@ -238,6 +262,7 @@ const Config = {
|
||||
|
||||
// BarsDisplay
|
||||
BotBar: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Bottom bar OFF', 'Bottom bar ON'],
|
||||
@@ -248,6 +273,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
TimerBar: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Timer bar OFF', 'Timer bar ON'],
|
||||
@@ -258,6 +284,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
TimerBarPos: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Timer bar position (top left)', 'Timer bar position (bottom)'],
|
||||
@@ -268,6 +295,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
TimerBarOverlay: new SettingStandard(
|
||||
2,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Timer bar overlay OFF', 'Timer bar overlay only seconds', 'Timer bar overlay full'],
|
||||
@@ -275,6 +303,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
AutosaveTimerBar: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Autosave timer bar OFF', 'Autosave timer bar ON'],
|
||||
@@ -282,6 +311,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
UpBarColour: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Upgrade colours/bar OFF', 'Upgrade colours with bar ON', 'Upgrade colours without bar ON'],
|
||||
@@ -292,6 +322,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
UpgradeBarFixedPos: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Upgrade bar fixed position OFF', 'Upgrade bar fixed position ON'],
|
||||
@@ -302,6 +333,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
SortBuildings: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
[
|
||||
@@ -317,6 +349,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
SortUpgrades: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Sort upgrades: default', 'Sort upgrades: PP'],
|
||||
@@ -327,6 +360,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
UpgradesNeverCollapse: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Upgrades always expanded OFF', 'Upgrades always expanded ON'],
|
||||
@@ -337,6 +371,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
DragonAuraInfo: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Extra dragon aura info OFF', 'Extra dragon aura info ON'],
|
||||
@@ -344,6 +379,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
GrimoireBar: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Grimoire magic meter timer OFF', 'Grimoire magic meter timer ON'],
|
||||
@@ -351,6 +387,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
GCTimer: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Golden cookie timer OFF', 'Golden cookie timer ON'],
|
||||
@@ -361,6 +398,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
Favicon: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Favicon OFF', 'Favicon ON'],
|
||||
@@ -371,6 +409,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
WrinklerButtons: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Extra wrinkler buttons OFF', 'Extra wrinkler buttons ON'],
|
||||
@@ -381,6 +420,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
HideSectionsButtons: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'BarsDisplay',
|
||||
['Hide buildings/upgrades button OFF', 'Hide buildings/upgrades button ON'],
|
||||
@@ -393,6 +433,7 @@ const Config = {
|
||||
|
||||
// Tooltip
|
||||
TooltipBuildUpgrade: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Building/upgrade tooltip information OFF', 'Building/upgrade tooltip information ON'],
|
||||
@@ -400,6 +441,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
TooltipAmor: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
[
|
||||
@@ -410,6 +452,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ToolWarnLucky: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Tooltip lucky warning OFF', 'Tooltip lucky warning ON'],
|
||||
@@ -417,6 +460,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ToolWarnLuckyFrenzy: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Tooltip lucky frenzy warning OFF', 'Tooltip lucky frenzy warning ON'],
|
||||
@@ -424,6 +468,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ToolWarnConjure: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Tooltip conjure warning OFF', 'Tooltip conjure warning ON'],
|
||||
@@ -431,6 +476,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ToolWarnConjureFrenzy: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Tooltip conjure frenzy warning OFF', 'Tooltip conjure frenzy warning ON'],
|
||||
@@ -438,6 +484,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ToolWarnEdifice: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Tooltip edifice warning OFF', 'Tooltip edifice warning ON'],
|
||||
@@ -445,6 +492,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ToolWarnUser: new SettingInputNumber(
|
||||
0,
|
||||
'numscale',
|
||||
'Tooltip',
|
||||
'Tooltip warning at x times CPS: ',
|
||||
@@ -453,6 +501,7 @@ const Config = {
|
||||
Infinity,
|
||||
),
|
||||
ToolWarnBon: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Calculate tooltip warning with bonus CPS OFF', 'Calculate tooltip warning with bonus CPS ON'],
|
||||
@@ -460,6 +509,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ToolWarnPos: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Tooltip warning position (left)', 'Tooltip warning position (bottom)'],
|
||||
@@ -470,6 +520,7 @@ const Config = {
|
||||
},
|
||||
),
|
||||
TooltipGrim: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Grimoire tooltip information OFF', 'Grimoire tooltip information ON'],
|
||||
@@ -477,6 +528,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
TooltipWrink: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Wrinkler tooltip OFF', 'Wrinkler tooltip ON'],
|
||||
@@ -484,6 +536,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
TooltipLump: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Sugar lump tooltip OFF', 'Sugar lump tooltip ON'],
|
||||
@@ -491,6 +544,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
TooltipPlots: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Garden plots tooltip OFF', 'Garden plots tooltip ON'],
|
||||
@@ -498,6 +552,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
TooltipPantheon: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Pantheon tooltip OFF', 'Pantheon tooltip ON'],
|
||||
@@ -505,6 +560,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
TooltipAscendButton: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Tooltip',
|
||||
['Show Extra Info Ascend Tooltip OFF', 'Show Extra Info Ascend Tooltip ON'],
|
||||
@@ -514,6 +570,7 @@ const Config = {
|
||||
|
||||
// Statistics
|
||||
Stats: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Statistics',
|
||||
['Statistics OFF', 'Statistics ON'],
|
||||
@@ -521,6 +578,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
MissingUpgrades: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Statistics',
|
||||
['Missing upgrades OFF', 'Missing upgrades ON'],
|
||||
@@ -528,6 +586,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
MissingAchievements: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'Statistics',
|
||||
['Missing Achievements OFF', 'Missing Normal Achievements ON'],
|
||||
@@ -535,6 +594,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
UpStats: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Statistics',
|
||||
['Statistics update rate (default)', 'Statistics update rate (1s)'],
|
||||
@@ -542,6 +602,7 @@ const Config = {
|
||||
false,
|
||||
),
|
||||
HeavenlyChipsTarget: new SettingInputNumber(
|
||||
1,
|
||||
'numscale',
|
||||
'Statistics',
|
||||
'Heavenly chips target: ',
|
||||
@@ -550,6 +611,7 @@ const Config = {
|
||||
Infinity,
|
||||
),
|
||||
ShowMissedGC: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Statistics',
|
||||
['Missed GC OFF', 'Missed GC ON'],
|
||||
@@ -559,6 +621,7 @@ const Config = {
|
||||
|
||||
// Notification
|
||||
Title: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationGeneral',
|
||||
['Title OFF', 'Title ON', 'Title pinned tab highlight'],
|
||||
@@ -566,6 +629,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
GeneralSound: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationGeneral',
|
||||
['Consider game volume setting OFF', 'Consider game volume setting ON'],
|
||||
@@ -573,16 +637,20 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
GCNotification: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'NotificationGC',
|
||||
['Notification OFF', 'Notification ON'],
|
||||
'Create a notification when golden cookie spawns',
|
||||
true,
|
||||
() => {
|
||||
CheckNotificationPermissions(CMOptions.GCNotification);
|
||||
CheckNotificationPermissions(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GCNotification,
|
||||
);
|
||||
},
|
||||
),
|
||||
GCFlash: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationGC',
|
||||
['Flash OFF', 'Flash ON'],
|
||||
@@ -590,35 +658,42 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ColourGCFlash: new SettingColours(
|
||||
'#ffffff',
|
||||
'colour',
|
||||
'NotificationGC',
|
||||
'The colour of the GC flash, standard colour is white',
|
||||
),
|
||||
GCSound: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationGC',
|
||||
['Sound OFF', 'Sound ON'],
|
||||
'Play a sound on golden cookie',
|
||||
true,
|
||||
),
|
||||
GCVolume: new SettingVolume('vol', 'NotificationGC', [], 'Volume'),
|
||||
GCVolume: new SettingVolume(100, 'vol', 'NotificationGC', [], 'Volume'),
|
||||
GCSoundURL: new SettingStandard(
|
||||
'https://freesound.org/data/previews/66/66717_931655-lq.mp3',
|
||||
'url',
|
||||
'NotificationGC',
|
||||
'Sound URL:',
|
||||
'URL of the sound to be played when a golden cookie spawns',
|
||||
),
|
||||
FortuneNotification: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'NotificationFC',
|
||||
['Notification OFF', 'Notification ON'],
|
||||
'Create a notification when fortune cookie is on the ticker',
|
||||
true,
|
||||
() => {
|
||||
CheckNotificationPermissions(CMOptions.FortuneNotification);
|
||||
CheckNotificationPermissions(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.FortuneNotification,
|
||||
);
|
||||
},
|
||||
),
|
||||
FortuneFlash: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationFC',
|
||||
['Flash OFF', 'Flash ON'],
|
||||
@@ -626,35 +701,42 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ColourFortuneFlash: new SettingColours(
|
||||
'#ffffff',
|
||||
'colour',
|
||||
'NotificationFC',
|
||||
'The colour of the fortune flash, standard colour is white',
|
||||
),
|
||||
FortuneSound: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationFC',
|
||||
['Sound OFF', 'Sound ON'],
|
||||
'Play a sound on fortune cookie spawn',
|
||||
true,
|
||||
),
|
||||
FortuneVolume: new SettingVolume('vol', 'NotificationFC', [], 'Volume'),
|
||||
FortuneVolume: new SettingVolume(100, 'vol', 'NotificationFC', [], 'Volume'),
|
||||
FortuneSoundURL: new SettingStandard(
|
||||
'https://freesound.org/data/previews/174/174027_3242494-lq.mp3',
|
||||
'url',
|
||||
'NotificationFC',
|
||||
'Sound URL:',
|
||||
'URL of the sound to be played when the ticker has a fortune cookie',
|
||||
),
|
||||
SeaNotification: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'NotificationSea',
|
||||
['Notification OFF', 'Notification ON'],
|
||||
'Create a notification on season popup',
|
||||
true,
|
||||
() => {
|
||||
CheckNotificationPermissions(CMOptions.SeaNotification);
|
||||
CheckNotificationPermissions(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.SeaNotification,
|
||||
);
|
||||
},
|
||||
),
|
||||
SeaFlash: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationSea',
|
||||
['Flash OFF', 'Flash ON'],
|
||||
@@ -662,25 +744,29 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ColourSeaFlash: new SettingColours(
|
||||
'#ffffff',
|
||||
'colour',
|
||||
'NotificationSea',
|
||||
'The colour of the season popup flash, standard colour is white',
|
||||
),
|
||||
SeaSound: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationSea',
|
||||
['Sound OFF', 'Sound ON'],
|
||||
'Play a sound on season popup',
|
||||
true,
|
||||
),
|
||||
SeaVolume: new SettingVolume('vol', 'NotificationSea', [], 'Volume'),
|
||||
SeaVolume: new SettingVolume(100, 'vol', 'NotificationSea', [], 'Volume'),
|
||||
SeaSoundURL: new SettingStandard(
|
||||
'https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3',
|
||||
'url',
|
||||
'NotificationSea',
|
||||
'Sound URL:',
|
||||
'URL of the sound to be played when on season popup spawns',
|
||||
),
|
||||
GardFlash: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationGard',
|
||||
['Garden Tick Flash OFF', 'Flash ON'],
|
||||
@@ -688,35 +774,42 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ColourGardFlash: new SettingColours(
|
||||
'#ffffff',
|
||||
'colour',
|
||||
'NotificationGard',
|
||||
'The colour of the garden flash, standard colour is white',
|
||||
),
|
||||
GardSound: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationGard',
|
||||
['Sound OFF', 'Sound ON'],
|
||||
'Play a sound on garden tick',
|
||||
true,
|
||||
),
|
||||
GardVolume: new SettingVolume('vol', 'NotificationGard', [], 'Volume'),
|
||||
GardVolume: new SettingVolume(100, 'vol', 'NotificationGard', [], 'Volume'),
|
||||
GardSoundURL: new SettingStandard(
|
||||
'https://freesound.org/data/previews/103/103046_861714-lq.mp3',
|
||||
'url',
|
||||
'NotificationGard',
|
||||
'Garden Tick Sound URL:',
|
||||
'URL of the sound to be played when the garden ticks',
|
||||
),
|
||||
MagicNotification: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'NotificationMagi',
|
||||
['Notification OFF', 'Notification ON'],
|
||||
'Create a notification when magic reaches maximum',
|
||||
true,
|
||||
() => {
|
||||
CheckNotificationPermissions(CMOptions.MagicNotification);
|
||||
CheckNotificationPermissions(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.MagicNotification,
|
||||
);
|
||||
},
|
||||
),
|
||||
MagicFlash: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationMagi',
|
||||
['Flash OFF', 'Flash ON'],
|
||||
@@ -724,35 +817,42 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ColourMagicFlash: new SettingColours(
|
||||
'#ffffff',
|
||||
'colour',
|
||||
'NotificationMagi',
|
||||
'The colour of the magic flash, standard colour is white',
|
||||
),
|
||||
MagicSound: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationMagi',
|
||||
['Sound OFF', 'Sound ON'],
|
||||
'Play a sound when magic reaches maximum',
|
||||
true,
|
||||
),
|
||||
MagicVolume: new SettingVolume('vol', 'NotificationMagi', [], 'Volume'),
|
||||
MagicVolume: new SettingVolume(100, 'vol', 'NotificationMagi', [], 'Volume'),
|
||||
MagicSoundURL: new SettingStandard(
|
||||
'https://freesound.org/data/previews/221/221683_1015240-lq.mp3',
|
||||
'url',
|
||||
'NotificationMagi',
|
||||
'Sound URL:',
|
||||
'URL of the sound to be played when magic reaches maxium',
|
||||
),
|
||||
WrinklerNotification: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'NotificationWrink',
|
||||
['Notification OFF', 'Notification ON'],
|
||||
'Create a notification when a wrinkler appears',
|
||||
true,
|
||||
() => {
|
||||
CheckNotificationPermissions(CMOptions.WrinklerNotification);
|
||||
CheckNotificationPermissions(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.WrinklerNotification,
|
||||
);
|
||||
},
|
||||
),
|
||||
WrinklerFlash: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationWrink',
|
||||
['Flash OFF', 'Flash ON'],
|
||||
@@ -760,35 +860,42 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ColourWrinklerFlash: new SettingColours(
|
||||
'#ffffff',
|
||||
'colour',
|
||||
'NotificationWrink',
|
||||
'The colour of the wrinkler flash, standard colour is white',
|
||||
),
|
||||
WrinklerSound: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationWrink',
|
||||
['Sound OFF', 'Sound ON'],
|
||||
'Play a sound when a wrinkler appears',
|
||||
true,
|
||||
),
|
||||
WrinklerVolume: new SettingVolume('vol', 'NotificationWrink', [], 'Volume'),
|
||||
WrinklerVolume: new SettingVolume(100, 'vol', 'NotificationWrink', [], 'Volume'),
|
||||
WrinklerSoundURL: new SettingStandard(
|
||||
'https://freesound.org/data/previews/124/124186_8043-lq.mp3',
|
||||
'url',
|
||||
'NotificationWrink',
|
||||
'Sound URL:',
|
||||
'URL of the sound to be played when a wrinkler appears',
|
||||
),
|
||||
WrinklerMaxNotification: new SettingStandard(
|
||||
0,
|
||||
'bool',
|
||||
'NotificationWrinkMax',
|
||||
['Notification OFF', 'Notification ON'],
|
||||
'Create a notification when the maximum amount of wrinklers has appeared',
|
||||
true,
|
||||
() => {
|
||||
CheckNotificationPermissions(CMOptions.WrinklerMaxNotification);
|
||||
CheckNotificationPermissions(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.WrinklerMaxNotification,
|
||||
);
|
||||
},
|
||||
),
|
||||
WrinklerMaxFlash: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationWrinkMax',
|
||||
['Flash OFF', 'Flash ON'],
|
||||
@@ -796,19 +903,22 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
ColourWrinklerMaxFlash: new SettingColours(
|
||||
'#ffffff',
|
||||
'colour',
|
||||
'NotificationWrinkMax',
|
||||
'The colour of the maximum wrinkler flash, standard colour is white',
|
||||
),
|
||||
WrinklerMaxSound: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'NotificationWrinkMax',
|
||||
['Sound OFF', 'Sound ON'],
|
||||
'Play a sound when the maximum amount of wrinklers has appeared',
|
||||
true,
|
||||
),
|
||||
WrinklerMaxVolume: new SettingVolume('vol', 'NotificationWrinkMax', [], 'Volume'),
|
||||
WrinklerMaxVolume: new SettingVolume(100, 'vol', 'NotificationWrinkMax', [], 'Volume'),
|
||||
WrinklerMaxSoundURL: new SettingStandard(
|
||||
'https://freesound.org/data/previews/152/152743_15663-lq.mp3',
|
||||
'url',
|
||||
'NotificationWrinkMax',
|
||||
'Sound URL:',
|
||||
@@ -817,6 +927,7 @@ const Config = {
|
||||
|
||||
// Miscellaneous
|
||||
BulkBuyBlock: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Miscellaneous',
|
||||
['Block bulk buying OFF', 'Block bulk buying ON'],
|
||||
@@ -824,6 +935,7 @@ const Config = {
|
||||
true,
|
||||
),
|
||||
FavouriteSettings: new SettingStandard(
|
||||
1,
|
||||
'bool',
|
||||
'Miscellaneous',
|
||||
[
|
||||
@@ -839,4 +951,4 @@ const Config = {
|
||||
),
|
||||
};
|
||||
|
||||
export default Config;
|
||||
export default settings;
|
||||
@@ -1,6 +1,5 @@
|
||||
/** General functions to format or beautify strings */
|
||||
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import { metric, shortScale, shortScaleAbbreviated } from '../../Data/Scales.ts';
|
||||
import { BackupFunctions } from '../../Main/VariablesAndData';
|
||||
|
||||
@@ -12,14 +11,15 @@ import { BackupFunctions } from '../../Main/VariablesAndData';
|
||||
* @returns {string} Formatted number
|
||||
*/
|
||||
export default function Beautify(num, floats, forced) {
|
||||
const decimals = CMOptions.ScaleDecimals + 1;
|
||||
const decimals =
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ScaleDecimals + 1;
|
||||
if (num === Infinity) {
|
||||
return 'Infinity';
|
||||
}
|
||||
if (typeof num === 'undefined') {
|
||||
return '0';
|
||||
}
|
||||
if (CMOptions.Scale === 0) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Scale === 0) {
|
||||
return BackupFunctions.Beautify(num, floats);
|
||||
}
|
||||
if (Number.isFinite(num)) {
|
||||
@@ -30,12 +30,20 @@ export default function Beautify(num, floats, forced) {
|
||||
if (num === 0) {
|
||||
return num.toString();
|
||||
}
|
||||
if (num > 0.001 && num < CMOptions.ScaleCutoff) {
|
||||
if (CMOptions.ScaleSeparator) answer = num.toLocaleString('nl');
|
||||
if (
|
||||
num > 0.001 &&
|
||||
num < Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ScaleCutoff
|
||||
) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ScaleSeparator)
|
||||
answer = num.toLocaleString('nl');
|
||||
else answer = num.toLocaleString('en');
|
||||
return answer;
|
||||
}
|
||||
if ((CMOptions.Scale === 4 && !forced) || forced === 4) {
|
||||
if (
|
||||
(Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Scale === 4 &&
|
||||
!forced) ||
|
||||
forced === 4
|
||||
) {
|
||||
// Scientific notation, 123456789 => 1.235E+8
|
||||
answer = num.toExponential(decimals).toString().replace('e', 'E');
|
||||
} else {
|
||||
@@ -43,22 +51,38 @@ export default function Beautify(num, floats, forced) {
|
||||
const AmountOfTenPowerThree = Math.floor(exponential.slice(exponential.indexOf('e') + 1) / 3);
|
||||
answer = (num / Number(`1e${AmountOfTenPowerThree * 3}`)).toFixed(decimals);
|
||||
// answer is now "xxx.xx" (e.g., 123456789 would be 123.46)
|
||||
if ((CMOptions.Scale === 1 && !forced) || forced === 1) {
|
||||
if (
|
||||
(Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Scale === 1 &&
|
||||
!forced) ||
|
||||
forced === 1
|
||||
) {
|
||||
// Metric scale, 123456789 => 123.457 M
|
||||
if (num >= 0.01 && num < Number(`1e${metric.length * 3}`)) {
|
||||
answer += ` ${metric[AmountOfTenPowerThree]}`;
|
||||
} else answer = Beautify(num, 0, 4); // If number is too large or little, revert to scientific notation
|
||||
} else if ((CMOptions.Scale === 2 && !forced) || forced === 2) {
|
||||
} else if (
|
||||
(Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Scale === 2 &&
|
||||
!forced) ||
|
||||
forced === 2
|
||||
) {
|
||||
// Short scale, 123456789 => 123.457 M
|
||||
if (num >= 0.01 && num < Number(`1e${shortScale.length * 3}`)) {
|
||||
answer += ` ${shortScale[AmountOfTenPowerThree]}`;
|
||||
} else answer = Beautify(num, 0, 4); // If number is too large or little, revert to scientific notation
|
||||
} else if ((CMOptions.Scale === 3 && !forced) || forced === 3) {
|
||||
} else if (
|
||||
(Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Scale === 3 &&
|
||||
!forced) ||
|
||||
forced === 3
|
||||
) {
|
||||
// Short scale, 123456789 => 123.457 M
|
||||
if (num >= 0.01 && num < Number(`1e${shortScaleAbbreviated.length * 3}`)) {
|
||||
answer += ` ${shortScaleAbbreviated[AmountOfTenPowerThree]}`;
|
||||
} else answer = Beautify(num, 0, 4); // If number is too large or little, revert to scientific notation
|
||||
} else if ((CMOptions.Scale === 5 && !forced) || forced === 5) {
|
||||
} else if (
|
||||
(Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Scale === 5 &&
|
||||
!forced) ||
|
||||
forced === 5
|
||||
) {
|
||||
// Engineering notation, 123456789 => 123.457E+6
|
||||
answer += `E${AmountOfTenPowerThree * 3}`;
|
||||
}
|
||||
@@ -68,7 +92,8 @@ export default function Beautify(num, floats, forced) {
|
||||
console.log(`Could not beautify number with Cookie Monster Beautify: ${num}`);
|
||||
answer = BackupFunctions.Beautify(num, floats);
|
||||
}
|
||||
if (CMOptions.ScaleSeparator) answer = answer.replace('.', ',');
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ScaleSeparator)
|
||||
answer = answer.replace('.', ',');
|
||||
return answer;
|
||||
}
|
||||
console.log(`Could not beautify number with Cookie Monster Beautify: ${num}`); // eslint-disable-line no-console
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function returns time as a string depending on TimeFormat setting
|
||||
* @param {number} time Time to be formatted
|
||||
@@ -17,7 +15,7 @@ export default function FormatTime(time, longFormat) {
|
||||
const m = Math.floor((((formattedTime % 31536000) % 86400) % 3600) / 60);
|
||||
const s = Math.floor((((formattedTime % 31536000) % 86400) % 3600) % 60);
|
||||
let str = '';
|
||||
if (CMOptions.TimeFormat) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimeFormat) {
|
||||
if (formattedTime > 3155760000) return 'XX:XX:XX:XX:XX';
|
||||
str += `${(y < 10 ? '0' : '') + y}:`;
|
||||
str += `${(d < 10 ? '0' : '') + d}:`;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import { ColourGreen, ColourOrange, ColourRed, ColourYellow } from '../VariablesAndData';
|
||||
import FormatTime from './FormatTime';
|
||||
|
||||
@@ -11,7 +10,8 @@ export default function GetTimeColour(time) {
|
||||
let color;
|
||||
let text;
|
||||
if (time <= 0) {
|
||||
if (CMOptions.TimeFormat) text = '00:00:00:00:00';
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimeFormat)
|
||||
text = '00:00:00:00:00';
|
||||
else text = 'Done!';
|
||||
color = ColourGreen;
|
||||
} else {
|
||||
|
||||
@@ -5,7 +5,6 @@ import {
|
||||
CacheObjects100,
|
||||
CacheObjectsNextAchievement,
|
||||
} from '../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import BuildingSell from '../../Sim/SimulationEvents/SellBuilding';
|
||||
import Beautify from '../BeautifyAndFormatting/Beautify';
|
||||
import { ColoursOrdering, LastTargetBuildings } from '../VariablesAndData';
|
||||
@@ -36,11 +35,15 @@ export default function UpdateBuildings() {
|
||||
l(`storeBulk100`).style.removeProperty('color');
|
||||
|
||||
if (Game.buyMode === 1) {
|
||||
if (CMOptions.BuildColour === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BuildColour === 1) {
|
||||
Object.keys(target).forEach((i) => {
|
||||
l(`productPrice${Game.Objects[i].id}`).style.color = CMOptions[`Colour${target[i].color}`];
|
||||
l(`productPrice${Game.Objects[i].id}`).style.color =
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[
|
||||
`Colour${target[i].color}`
|
||||
];
|
||||
});
|
||||
l(`storeBulk${CacheMinPPBulk}`).style.color = CMOptions.ColourGreen;
|
||||
l(`storeBulk${CacheMinPPBulk}`).style.color =
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ColourGreen;
|
||||
} else {
|
||||
Object.keys(Game.Objects).forEach((i) => {
|
||||
l(`productPrice${Game.Objects[i].id}`).style.removeProperty('color');
|
||||
@@ -67,8 +70,11 @@ export default function UpdateBuildings() {
|
||||
// Build array of pointers and sort according to the user's configured sort option.
|
||||
// This regulates sorting of buildings.
|
||||
let arr;
|
||||
if (Game.buyMode !== 1 || !CMOptions.SortBuildings) {
|
||||
arr = Object.keys(CacheObjects1).map(k => {
|
||||
if (
|
||||
Game.buyMode !== 1 ||
|
||||
!Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.SortBuildings
|
||||
) {
|
||||
arr = Object.keys(CacheObjects1).map((k) => {
|
||||
const o = {};
|
||||
o.name = k;
|
||||
o.id = Game.Objects[k].id;
|
||||
@@ -76,8 +82,10 @@ export default function UpdateBuildings() {
|
||||
});
|
||||
// Sort using default order.
|
||||
arr.sort((a, b) => a.id - b.id);
|
||||
} else if (CMOptions.SortBuildings === 1) {
|
||||
arr = Object.keys(CacheObjects1).map(k => {
|
||||
} else if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.SortBuildings === 1
|
||||
) {
|
||||
arr = Object.keys(CacheObjects1).map((k) => {
|
||||
const o = {};
|
||||
o.name = k;
|
||||
o.pp = CacheObjects1[k].pp;
|
||||
@@ -88,10 +96,12 @@ export default function UpdateBuildings() {
|
||||
arr.sort((a, b) =>
|
||||
ColoursOrdering.indexOf(a.color) === ColoursOrdering.indexOf(b.color)
|
||||
? a.pp - b.pp
|
||||
: ColoursOrdering.indexOf(a.color) - ColoursOrdering.indexOf(b.color)
|
||||
: ColoursOrdering.indexOf(a.color) - ColoursOrdering.indexOf(b.color),
|
||||
);
|
||||
} else if (CMOptions.SortBuildings === 2) {
|
||||
arr = Object.keys(target).map(k => {
|
||||
} else if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.SortBuildings === 2
|
||||
) {
|
||||
arr = Object.keys(target).map((k) => {
|
||||
const o = {};
|
||||
o.name = k;
|
||||
o.pp = target[k].pp;
|
||||
@@ -102,10 +112,12 @@ export default function UpdateBuildings() {
|
||||
arr.sort((a, b) =>
|
||||
ColoursOrdering.indexOf(a.color) === ColoursOrdering.indexOf(b.color)
|
||||
? a.pp - b.pp
|
||||
: ColoursOrdering.indexOf(a.color) - ColoursOrdering.indexOf(b.color)
|
||||
: ColoursOrdering.indexOf(a.color) - ColoursOrdering.indexOf(b.color),
|
||||
);
|
||||
} else if (CMOptions.SortBuildings === 3) {
|
||||
arr = Object.keys(CacheObjectsNextAchievement).map(k => {
|
||||
} else if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.SortBuildings === 3
|
||||
) {
|
||||
arr = Object.keys(CacheObjectsNextAchievement).map((k) => {
|
||||
const o = {};
|
||||
o.name = k;
|
||||
o.id = Game.Objects[k].id;
|
||||
@@ -118,9 +130,10 @@ export default function UpdateBuildings() {
|
||||
// Sort by price until next achievement.
|
||||
// Buildings that aren't within 100 of an achievement are placed at the end, still in
|
||||
// default order relative to each other because sort() is guaranteed stable.
|
||||
arr.sort((a, b) =>
|
||||
(a.amountUntilNext !== 101 ? a.priceUntilNext : Infinity) -
|
||||
(b.amountUntilNext !== 101 ? b.priceUntilNext : Infinity)
|
||||
arr.sort(
|
||||
(a, b) =>
|
||||
(a.amountUntilNext !== 101 ? a.priceUntilNext : Infinity) -
|
||||
(b.amountUntilNext !== 101 ? b.priceUntilNext : Infinity),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function toggles the upgrade to be always expanded
|
||||
* It is called by a change in CM.Options.ToolWarnPos
|
||||
@@ -7,7 +5,10 @@ import { CMOptions } from '../../Config/VariablesAndData';
|
||||
*/
|
||||
export default function UpdateUpgradeSectionsHeight() {
|
||||
Object.values(document.getElementsByClassName('storeSection')).forEach((section) => {
|
||||
if (CMOptions.UpgradesNeverCollapse || section.id === 'products') {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpgradesNeverCollapse ||
|
||||
section.id === 'products'
|
||||
) {
|
||||
section.style.height = 'auto'; // eslint-disable-line no-param-reassign
|
||||
} else if (section.id === 'vaultUpgrades') {
|
||||
section.style.height = ''; // eslint-disable-line no-param-reassign
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { CacheUpgrades } from '../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import {
|
||||
ColourBackPre,
|
||||
ColourBlue,
|
||||
@@ -20,7 +19,7 @@ import {
|
||||
*/
|
||||
export default function UpdateUpgrades() {
|
||||
// This counts the amount of upgrades for each pp group and updates the Upgrade Bar
|
||||
if (CMOptions.UpBarColour > 0) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColour > 0) {
|
||||
let blue = 0;
|
||||
let green = 0;
|
||||
let yellow = 0;
|
||||
@@ -76,12 +75,12 @@ export default function UpdateUpgrades() {
|
||||
arr.push(o);
|
||||
}
|
||||
|
||||
if (CMOptions.SortUpgrades) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.SortUpgrades) {
|
||||
// Sort by pp colour group, then by pp.
|
||||
arr.sort((a, b) =>
|
||||
ColoursOrdering.indexOf(a.color) === ColoursOrdering.indexOf(b.color)
|
||||
? a.pp - b.pp
|
||||
: ColoursOrdering.indexOf(a.color) - ColoursOrdering.indexOf(b.color)
|
||||
: ColoursOrdering.indexOf(a.color) - ColoursOrdering.indexOf(b.color),
|
||||
);
|
||||
} else {
|
||||
arr.sort((a, b) => a.price - b.price);
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
import CacheDragonCost from '../../Cache/Dragon/Dragon';
|
||||
import { CacheCostDragonUpgrade } from '../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import CalculateChangeAura from '../../Sim/SimulationEvents/AuraChange';
|
||||
import Beautify from '../BeautifyAndFormatting/Beautify';
|
||||
import FormatTime from '../BeautifyAndFormatting/FormatTime';
|
||||
@@ -12,7 +11,7 @@ import FormatTime from '../BeautifyAndFormatting/FormatTime';
|
||||
* @param {number} aura The number of the aura currently selected by the mouse/user
|
||||
*/
|
||||
export function AddAuraInfo(aura) {
|
||||
if (CMOptions.DragonAuraInfo === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.DragonAuraInfo === 1) {
|
||||
const [bonusCPS, priceOfChange] = CalculateChangeAura(aura);
|
||||
const timeToRecover = FormatTime(priceOfChange / (bonusCPS + Game.cookiesPs));
|
||||
let bonusCPSPercentage;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import ToggleWrinklerButtons from '../Config/Toggles/ToggleWrinklerButtons';
|
||||
import { CMOptions } from '../Config/VariablesAndData';
|
||||
import Beautify from './BeautifyAndFormatting/Beautify';
|
||||
import UpdateBuildings from './BuildingsUpgrades/Buildings';
|
||||
import UpdateUpgradeSectionsHeight from './BuildingsUpgrades/UpdateUpgradeSectionsHeight';
|
||||
@@ -20,7 +19,7 @@ export default function CMDrawHook() {
|
||||
Game.prefs.autosave &&
|
||||
Game.drawT % 10 === 0 && // with autosave ON and every 10 ticks
|
||||
Game.onMenu === 'stats' &&
|
||||
CMOptions.Stats // while being on the stats menu only
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Stats // while being on the stats menu only
|
||||
) {
|
||||
const timer = document.getElementById('CMStatsAutosaveTimer');
|
||||
if (timer) {
|
||||
@@ -53,7 +52,7 @@ export default function CMDrawHook() {
|
||||
ToggleWrinklerButtons();
|
||||
|
||||
// Replace Cookies counter because Orteil uses very weird code to "pad" it...
|
||||
if (CMOptions.Scale) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Scale) {
|
||||
let str = l('cookies').innerHTML.replace(/.*(?=<br>)/i, Beautify(Game.cookies));
|
||||
if (Game.prefs.monospace) str = `<span class="monospace">${str}</span>`;
|
||||
l('cookies').innerHTML = str;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Section: Functions related to the Golden Cookie Timers */
|
||||
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import { GCTimers } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
@@ -21,7 +20,8 @@ export default function CreateGCTimer(cookie) {
|
||||
GCTimer.style.cursor = 'pointer';
|
||||
GCTimer.style.display = 'block';
|
||||
GCTimer.style.pointerEvents = 'none';
|
||||
if (CMOptions.GCTimer === 0) GCTimer.style.display = 'none';
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GCTimer === 0)
|
||||
GCTimer.style.display = 'none';
|
||||
GCTimer.style.left = cookie.l.style.left;
|
||||
GCTimer.style.top = cookie.l.style.top;
|
||||
GCTimer.onclick = function () {
|
||||
|
||||
@@ -4,24 +4,26 @@ import {
|
||||
CacheCurrWrinklerCPSMult,
|
||||
CacheWrinklersFattest,
|
||||
} from '../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function returns the cps as either current or average CPS depending on CM.Options.CPSMode
|
||||
* @returns {number} The average or current cps
|
||||
*/
|
||||
export default function GetCPS() {
|
||||
if (CMOptions.CPSMode) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.CPSMode) {
|
||||
return CacheAverageCPS;
|
||||
}
|
||||
if (CMOptions.CalcWrink === 0) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.CalcWrink === 0) {
|
||||
return Game.cookiesPs * (1 - Game.cpsSucked);
|
||||
}
|
||||
if (CMOptions.CalcWrink === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.CalcWrink === 1) {
|
||||
return Game.cookiesPs * (CacheCurrWrinklerCPSMult + (1 - CacheCurrWrinklerCount * 0.05));
|
||||
}
|
||||
if (CacheWrinklersFattest[1] !== null)
|
||||
if (CMOptions.CalcWrink === 2 && Game.wrinklers[CacheWrinklersFattest[1]].type === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.CalcWrink === 2 &&
|
||||
Game.wrinklers[CacheWrinklersFattest[1]].type === 1
|
||||
) {
|
||||
return (
|
||||
Game.cookiesPs *
|
||||
((CacheCurrWrinklerCPSMult * 3) / CacheCurrWrinklerCount +
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { CacheWrinklersFattest, CacheWrinklersTotal } from '../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function returns the total amount stored in the Wrinkler Bank
|
||||
@@ -7,10 +6,10 @@ import { CMOptions } from '../../Config/VariablesAndData';
|
||||
* @returns {number} 0 or the amount of cookies stored (CM.Cache.WrinklersTotal)
|
||||
*/
|
||||
export default function GetWrinkConfigBank() {
|
||||
if (CMOptions.CalcWrink === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.CalcWrink === 1) {
|
||||
return CacheWrinklersTotal;
|
||||
}
|
||||
if (CMOptions.CalcWrink === 2) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.CalcWrink === 2) {
|
||||
return CacheWrinklersFattest[0];
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ToggleTimerBar } from '../../Config/SpecificToggles';
|
||||
import ToggleBotBar from '../../Config/Toggles/ToggleBotBar';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
|
||||
import UpdateBackground from './UpdateBackground';
|
||||
|
||||
/**
|
||||
@@ -10,8 +10,10 @@ import UpdateBackground from './UpdateBackground';
|
||||
export default function UpdateAscendState() {
|
||||
if (Game.OnAscend) {
|
||||
l('game').style.bottom = '0px';
|
||||
if (CMOptions.BotBar === 1) l('CMBotBar').style.display = 'none';
|
||||
if (CMOptions.TimerBar === 1) l('CMTimerBar').style.display = 'none';
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar === 1)
|
||||
l('CMBotBar').style.display = 'none';
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBar === 1)
|
||||
l('CMTimerBar').style.display = 'none';
|
||||
} else {
|
||||
ToggleBotBar();
|
||||
ToggleTimerBar();
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import UpdateBuildings from '../BuildingsUpgrades/Buildings';
|
||||
import {
|
||||
ColourBackPre,
|
||||
@@ -15,17 +14,23 @@ export default function UpdateColours() {
|
||||
let str = '';
|
||||
for (let i = 0; i < ColoursOrdering.length; i++) {
|
||||
str += `.${ColourTextPre}${ColoursOrdering[i]} { color: ${
|
||||
CMOptions[`Colour${ColoursOrdering[i]}`]
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[
|
||||
`Colour${ColoursOrdering[i]}`
|
||||
]
|
||||
}; }\n`;
|
||||
}
|
||||
for (let i = 0; i < ColoursOrdering.length; i++) {
|
||||
str += `.${ColourBackPre}${ColoursOrdering[i]} { background-color: ${
|
||||
CMOptions[`Colour${ColoursOrdering[i]}`]
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[
|
||||
`Colour${ColoursOrdering[i]}`
|
||||
]
|
||||
}; }\n`;
|
||||
}
|
||||
for (let i = 0; i < ColoursOrdering.length; i++) {
|
||||
str += `.${ColourBorderPre}${ColoursOrdering[i]} { border: 1px solid ${
|
||||
CMOptions[`Colour${ColoursOrdering[i]}`]
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[
|
||||
`Colour${ColoursOrdering[i]}`
|
||||
]
|
||||
}; }\n`;
|
||||
}
|
||||
l('CMCSS').textContent = str;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/** Functions related to the Bottom Bar */
|
||||
|
||||
import { CacheObjects1, CacheObjects10, CacheObjects100 } from '../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import { VersionMajor, VersionMinor } from '../../Data/Moddata.ts';
|
||||
import Beautify from '../BeautifyAndFormatting/Beautify';
|
||||
import FormatTime from '../BeautifyAndFormatting/FormatTime';
|
||||
@@ -62,7 +61,11 @@ export function CreateBotBar() {
|
||||
* This function updates the bonus-, pp-, and time-rows in the the bottom bar
|
||||
*/
|
||||
export function UpdateBotBar() {
|
||||
if (CMOptions.BotBar === 1 && CacheObjects1 && Game.buyMode === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar === 1 &&
|
||||
CacheObjects1 &&
|
||||
Game.buyMode === 1
|
||||
) {
|
||||
let count = 0;
|
||||
Object.keys(CacheObjects1).forEach((i) => {
|
||||
let target = Game.buyBulk;
|
||||
@@ -85,7 +88,8 @@ export function UpdateBotBar() {
|
||||
l('CMBotBar').firstChild.firstChild.childNodes[2].childNodes[count].className =
|
||||
ColourTextPre + target[i].color;
|
||||
let PPString;
|
||||
if (CMOptions.PPDisplayTime) PPString = FormatTime(Math.round(target[i].pp));
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPDisplayTime)
|
||||
PPString = FormatTime(Math.round(target[i].pp));
|
||||
else PPString = Beautify(Math.round(target[i].pp), 2);
|
||||
l('CMBotBar').firstChild.firstChild.childNodes[2].childNodes[count].textContent = PPString;
|
||||
const timeColour = GetTimeColour(
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/** Functions related to the Timer Bar */
|
||||
|
||||
import { UpdateBotTimerBarPosition } from '../../Config/SpecificToggles';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import {
|
||||
BuffColours,
|
||||
ColourBackPre,
|
||||
@@ -55,14 +54,17 @@ export function CreateTimerBar() {
|
||||
* This function updates indivudual timers in the timer bar
|
||||
*/
|
||||
export function UpdateTimerBar() {
|
||||
if (CMOptions.TimerBar === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBar === 1) {
|
||||
// label width: 113, timer width: 30, div margin: 20
|
||||
const maxWidthTwoBar = l('CMTimerBar').offsetWidth - 163;
|
||||
// label width: 113, div margin: 20, calculate timer width at runtime
|
||||
const maxWidthOneBar = l('CMTimerBar').offsetWidth - 133;
|
||||
let numberOfTimers = 0;
|
||||
|
||||
if (CMOptions.AutosaveTimerBar && Game.prefs.autosave) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AutosaveTimerBar &&
|
||||
Game.prefs.autosave
|
||||
) {
|
||||
const timeTillNextAutosave =
|
||||
(Game.fps * 60 - (Game.OnAscend ? 0 : Game.T % (Game.fps * 60))) / Game.fps;
|
||||
l('CMTimerBarAutosave').style.display = '';
|
||||
@@ -71,7 +73,9 @@ export function UpdateTimerBar() {
|
||||
(maxWidthOneBar - Math.ceil(timeTillNextAutosave).toString().length * 8)) /
|
||||
60,
|
||||
)}px`;
|
||||
if (CMOptions.TimerBarOverlay >= 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarOverlay >= 1
|
||||
) {
|
||||
l('CMTimerBarAutosaveBar').textContent = Math.ceil(timeTillNextAutosave);
|
||||
} else l('CMTimerBarAutosaveBar').textContent = '';
|
||||
l('CMTimerBarAutosaveTime').textContent = Math.ceil(timeTillNextAutosave);
|
||||
@@ -86,7 +90,7 @@ export function UpdateTimerBar() {
|
||||
maxWidthTwoBar) /
|
||||
Game.shimmerTypes.golden.maxTime,
|
||||
)}px`;
|
||||
if (CMOptions.TimerBarOverlay >= 1)
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarOverlay >= 1)
|
||||
l('CMTimerBarGCMinBar').textContent = Math.ceil(
|
||||
(Game.shimmerTypes.golden.minTime - Game.shimmerTypes.golden.time) / Game.fps,
|
||||
);
|
||||
@@ -106,7 +110,7 @@ export function UpdateTimerBar() {
|
||||
maxWidthTwoBar) /
|
||||
Game.shimmerTypes.golden.maxTime,
|
||||
)}px`;
|
||||
if (CMOptions.TimerBarOverlay >= 1)
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarOverlay >= 1)
|
||||
l('CMTimerBarGCBar').textContent = Math.ceil(
|
||||
Math.min(
|
||||
Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.minTime,
|
||||
@@ -128,7 +132,7 @@ export function UpdateTimerBar() {
|
||||
maxWidthTwoBar) /
|
||||
Game.shimmerTypes.reindeer.maxTime,
|
||||
)}px`;
|
||||
if (CMOptions.TimerBarOverlay >= 1)
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarOverlay >= 1)
|
||||
l('CMTimerBarRenMinBar').textContent = Math.ceil(
|
||||
(Game.shimmerTypes.reindeer.minTime - Game.shimmerTypes.reindeer.time) / Game.fps,
|
||||
);
|
||||
@@ -141,7 +145,7 @@ export function UpdateTimerBar() {
|
||||
maxWidthTwoBar) /
|
||||
Game.shimmerTypes.reindeer.maxTime,
|
||||
)}px`;
|
||||
if (CMOptions.TimerBarOverlay >= 1)
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarOverlay >= 1)
|
||||
l('CMTimerBarRenBar').textContent = Math.ceil(
|
||||
Math.min(
|
||||
Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.minTime,
|
||||
@@ -173,7 +177,9 @@ export function UpdateTimerBar() {
|
||||
} else classColour = ColourPurple;
|
||||
timer.lastChild.children[1].className = ColourBackPre + classColour;
|
||||
timer.lastChild.children[1].style.color = 'black';
|
||||
if (CMOptions.TimerBarOverlay === 2)
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarOverlay === 2
|
||||
)
|
||||
timer.lastChild.children[1].textContent = `${Math.round(
|
||||
100 * (Game.buffs[i].time / Game.buffs[i].maxTime),
|
||||
)}%`;
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import AddMenuStats from './Statistics/AddStatsPage';
|
||||
import AddMenuInfo from './Info/InfoPage';
|
||||
import AddMenuPref from './Settings/SettingsPage';
|
||||
|
||||
/**
|
||||
@@ -14,12 +12,9 @@ export default function AddMenu() {
|
||||
title.textContent = 'Cookie Monster Settings';
|
||||
AddMenuPref(title);
|
||||
} else if (Game.onMenu === 'stats') {
|
||||
if (CMOptions.Stats) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Stats) {
|
||||
title.textContent = 'Cookie Monster Statistics';
|
||||
AddMenuStats(title);
|
||||
}
|
||||
} else if (Game.onMenu === 'log') {
|
||||
title.textContent = 'Cookie Monster '; // To create space between name and button
|
||||
AddMenuInfo(title);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
/** Functions related to the Stats page */
|
||||
|
||||
import { ToggleHeader } from '../../../Config/ToggleSetting';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
import { LatestReleaseNotes, ModDescription } from '../../../Data/Moddata.ts';
|
||||
|
||||
/**
|
||||
* This function adds info about by CookieMonster to the info page
|
||||
* @param {object} title On object that includes the title of the menu
|
||||
*/
|
||||
export default function AddMenuInfo(title) {
|
||||
const info = document.createElement('div');
|
||||
info.className = 'subsection';
|
||||
|
||||
const span = document.createElement('span');
|
||||
span.style.cursor = 'pointer';
|
||||
span.style.display = 'inline-block';
|
||||
span.style.height = '14px';
|
||||
span.style.width = '14px';
|
||||
span.style.borderRadius = '7px';
|
||||
span.style.textAlign = 'center';
|
||||
span.style.backgroundColor = '#C0C0C0';
|
||||
span.style.color = 'black';
|
||||
span.style.fontSize = '13px';
|
||||
span.style.verticalAlign = 'middle';
|
||||
span.textContent = CMOptions.Header.InfoTab ? '-' : '+';
|
||||
span.onclick = function () {
|
||||
ToggleHeader('InfoTab');
|
||||
Game.UpdateMenu();
|
||||
};
|
||||
title.appendChild(span);
|
||||
info.appendChild(title);
|
||||
|
||||
if (CMOptions.Header.InfoTab) {
|
||||
const description = document.createElement('div');
|
||||
description.innerHTML = ModDescription;
|
||||
info.appendChild(description);
|
||||
const notes = document.createElement('div');
|
||||
notes.innerHTML = LatestReleaseNotes;
|
||||
info.appendChild(notes);
|
||||
}
|
||||
|
||||
const menu = l('menu').children[1];
|
||||
menu.insertBefore(info, menu.children[1]);
|
||||
}
|
||||
@@ -1,12 +1,10 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function refreshes the stats page, CM.Options.UpStats determines the rate at which that happens
|
||||
* It is called by CM.Disp.Draw()
|
||||
*/
|
||||
export default function RefreshMenu() {
|
||||
if (
|
||||
CMOptions.UpStats &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpStats &&
|
||||
Game.onMenu === 'stats' &&
|
||||
(Game.drawT - 1) % (Game.fps * 5) !== 0 &&
|
||||
(Game.drawT - 1) % Game.fps === 0
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { ToggleHeader } from '../../../Config/ToggleSetting';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function creates a header-object for the options page
|
||||
@@ -25,7 +24,9 @@ export default function CreatePrefHeader(config, text) {
|
||||
span.style.color = 'black';
|
||||
span.style.fontSize = '13px';
|
||||
span.style.verticalAlign = 'middle';
|
||||
span.textContent = CMOptions.Header[config] ? '-' : '+';
|
||||
span.textContent = Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[config]
|
||||
? '-'
|
||||
: '+';
|
||||
span.onclick = function () {
|
||||
ToggleHeader(config);
|
||||
Game.UpdateMenu();
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import saveFramework from '@cookiemonsterteam/cookiemonsterframework/src/saveDataFunctions/saveFramework';
|
||||
import jscolor, * as JsColor from '@eastdesire/jscolor';
|
||||
import ToggleFavouriteSetting from '../../../Config/Toggles/ToggleFavourites';
|
||||
import { SaveConfig } from '../../../Config/SaveLoadReload/SaveLoadReloadSettings';
|
||||
import { ConfigPrefix, ToggleConfig, ToggleConfigVolume } from '../../../Config/ToggleSetting';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
import {} from '../../../Data/Sectionheaders.ts';
|
||||
import Config from '../../../Data/SettingsData';
|
||||
import settings from '../../../Data/settings';
|
||||
import RefreshScale from '../../HelperFunctions/RefreshScale';
|
||||
import UpdateColours from '../../HelperFunctions/UpdateColours';
|
||||
import Flash from '../../Notifications/Flash';
|
||||
@@ -26,7 +25,7 @@ function CreateFavouriteStar(config) {
|
||||
FavStar.className = 'option';
|
||||
FavStar.onclick = function () {
|
||||
ToggleFavouriteSetting(config);
|
||||
SaveConfig();
|
||||
saveFramework();
|
||||
Game.UpdateMenu();
|
||||
};
|
||||
FavStar.onmouseover = function () {
|
||||
@@ -47,12 +46,15 @@ function CreateFavouriteStar(config) {
|
||||
export default function CreatePrefOption(config) {
|
||||
const div = document.createElement('div');
|
||||
div.className = 'listing';
|
||||
if (CMOptions.FavouriteSettings === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.FavouriteSettings === 1) {
|
||||
div.appendChild(CreateFavouriteStar(config));
|
||||
}
|
||||
if (Config[config].type === 'bool') {
|
||||
if (settings[config].type === 'bool') {
|
||||
const a = document.createElement('a');
|
||||
if (Config[config].toggle && CMOptions[config] === 0) {
|
||||
if (
|
||||
settings[config].toggle &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] === 0
|
||||
) {
|
||||
a.className = 'option off';
|
||||
} else {
|
||||
a.className = 'option';
|
||||
@@ -62,25 +64,28 @@ export default function CreatePrefOption(config) {
|
||||
ToggleConfig(config);
|
||||
Game.UpdateMenu();
|
||||
};
|
||||
a.textContent = Config[config].label[CMOptions[config]];
|
||||
a.textContent =
|
||||
settings[config].label[
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config]
|
||||
];
|
||||
div.appendChild(a);
|
||||
const label = document.createElement('label');
|
||||
label.textContent = Config[config].desc;
|
||||
label.textContent = settings[config].desc;
|
||||
label.style.lineHeight = '1.6';
|
||||
div.appendChild(label);
|
||||
return div;
|
||||
}
|
||||
if (Config[config].type === 'vol') {
|
||||
if (settings[config].type === 'vol') {
|
||||
const volume = document.createElement('div');
|
||||
volume.className = 'sliderBox';
|
||||
const title = document.createElement('div');
|
||||
title.style.float = 'left';
|
||||
title.innerHTML = Config[config].desc;
|
||||
title.innerHTML = settings[config].desc;
|
||||
volume.appendChild(title);
|
||||
const percent = document.createElement('div');
|
||||
percent.id = `slider${config}right`;
|
||||
percent.style.float = 'right';
|
||||
percent.innerHTML = `${CMOptions[config]}%`;
|
||||
percent.innerHTML = `${Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config]}%`;
|
||||
volume.appendChild(percent);
|
||||
const slider = document.createElement('input');
|
||||
slider.className = 'slider';
|
||||
@@ -90,7 +95,7 @@ export default function CreatePrefOption(config) {
|
||||
slider.min = '0';
|
||||
slider.max = '100';
|
||||
slider.step = '1';
|
||||
slider.value = CMOptions[config];
|
||||
slider.value = Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config];
|
||||
slider.oninput = function () {
|
||||
ToggleConfigVolume(config);
|
||||
Game.UpdateMenu();
|
||||
@@ -105,7 +110,9 @@ export default function CreatePrefOption(config) {
|
||||
a.className = 'option';
|
||||
a.onclick = function () {
|
||||
PlaySound(
|
||||
CMOptions[config.replace('Volume', 'SoundURL')],
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[
|
||||
config.replace('Volume', 'SoundURL')
|
||||
],
|
||||
config.replace('Volume', 'Sound'),
|
||||
config,
|
||||
true,
|
||||
@@ -115,10 +122,10 @@ export default function CreatePrefOption(config) {
|
||||
div.appendChild(a);
|
||||
return div;
|
||||
}
|
||||
if (Config[config].type === 'url') {
|
||||
if (settings[config].type === 'url') {
|
||||
const span = document.createElement('span');
|
||||
span.className = 'option';
|
||||
span.textContent = `${Config[config].label} `;
|
||||
span.textContent = `${settings[config].label} `;
|
||||
span.style.lineHeight = '1.6';
|
||||
div.appendChild(span);
|
||||
const input = document.createElement('input');
|
||||
@@ -126,7 +133,10 @@ export default function CreatePrefOption(config) {
|
||||
input.className = 'option';
|
||||
input.type = 'text';
|
||||
input.readOnly = true;
|
||||
input.setAttribute('value', CMOptions[config]);
|
||||
input.setAttribute(
|
||||
'value',
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config],
|
||||
);
|
||||
input.style.width = '300px';
|
||||
div.appendChild(input);
|
||||
div.appendChild(document.createTextNode(' '));
|
||||
@@ -134,7 +144,10 @@ export default function CreatePrefOption(config) {
|
||||
inputPrompt.id = `${ConfigPrefix + config}Prompt`;
|
||||
inputPrompt.className = 'option';
|
||||
inputPrompt.type = 'text';
|
||||
inputPrompt.setAttribute('value', CMOptions[config]);
|
||||
inputPrompt.setAttribute(
|
||||
'value',
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config],
|
||||
);
|
||||
const a = document.createElement('a');
|
||||
a.className = 'option';
|
||||
a.onclick = function () {
|
||||
@@ -142,8 +155,10 @@ export default function CreatePrefOption(config) {
|
||||
[
|
||||
'Save',
|
||||
function () {
|
||||
CMOptions[config] = l(`${ConfigPrefix}${config}Prompt`).value;
|
||||
SaveConfig();
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] = l(
|
||||
`${ConfigPrefix}${config}Prompt`,
|
||||
).value;
|
||||
saveFramework();
|
||||
Game.ClosePrompt();
|
||||
Game.UpdateMenu();
|
||||
},
|
||||
@@ -159,29 +174,33 @@ export default function CreatePrefOption(config) {
|
||||
a.textContent = 'Edit';
|
||||
div.appendChild(a);
|
||||
const label = document.createElement('label');
|
||||
label.textContent = Config[config].desc;
|
||||
label.textContent = settings[config].desc;
|
||||
label.style.lineHeight = '1.6';
|
||||
div.appendChild(label);
|
||||
return div;
|
||||
}
|
||||
if (Config[config].type === 'colour') {
|
||||
if (settings[config].type === 'colour') {
|
||||
const innerSpan = document.createElement('span');
|
||||
innerSpan.className = 'option';
|
||||
const input = document.createElement('input');
|
||||
input.id = config;
|
||||
input.style.width = '65px';
|
||||
input.setAttribute('value', CMOptions[config]);
|
||||
input.setAttribute(
|
||||
'value',
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config],
|
||||
);
|
||||
innerSpan.appendChild(input);
|
||||
const change = function () {
|
||||
CMOptions[this.targetElement.id] = this.toHEXString();
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[this.targetElement.id] =
|
||||
this.toHEXString();
|
||||
UpdateColours();
|
||||
SaveConfig();
|
||||
saveFramework();
|
||||
Game.UpdateMenu();
|
||||
};
|
||||
// eslint-disable-next-line no-new
|
||||
new JsColor(input, { hash: true, position: 'right', onInput: change });
|
||||
const label = document.createElement('label');
|
||||
label.textContent = Config[config].desc;
|
||||
label.textContent = settings[config].desc;
|
||||
label.style.lineHeight = '1.6';
|
||||
innerSpan.appendChild(label);
|
||||
if (config.includes('Flash')) {
|
||||
@@ -197,29 +216,29 @@ export default function CreatePrefOption(config) {
|
||||
jscolor.init();
|
||||
return div;
|
||||
}
|
||||
if (Config[config].type === 'numscale') {
|
||||
if (settings[config].type === 'numscale') {
|
||||
const span = document.createElement('span');
|
||||
span.className = 'option';
|
||||
span.textContent = `${Config[config].label} `;
|
||||
span.textContent = `${settings[config].label} `;
|
||||
span.style.lineHeight = '1.6';
|
||||
div.appendChild(span);
|
||||
const input = document.createElement('input');
|
||||
input.id = ConfigPrefix + config;
|
||||
input.className = 'option';
|
||||
input.type = 'number';
|
||||
input.value = CMOptions[config];
|
||||
input.min = Config[config].min;
|
||||
input.max = Config[config].max;
|
||||
input.value = Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config];
|
||||
input.min = settings[config].min;
|
||||
input.max = settings[config].max;
|
||||
input.oninput = function () {
|
||||
CMOptions[config] = this.value;
|
||||
SaveConfig();
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] = this.value;
|
||||
saveFramework();
|
||||
RefreshScale();
|
||||
Game.UpdateMenu();
|
||||
};
|
||||
div.appendChild(input);
|
||||
div.appendChild(document.createTextNode(' '));
|
||||
const label = document.createElement('label');
|
||||
label.textContent = Config[config].desc;
|
||||
label.textContent = settings[config].desc;
|
||||
label.style.lineHeight = '1.6';
|
||||
div.appendChild(label);
|
||||
return div;
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
import { LoadConfig } from '../../../Config/SaveLoadReload/SaveLoadReloadSettings';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
import { ConfigGroups, ConfigGroupsNotification } from '../../../Data/Sectionheaders.ts';
|
||||
import Config from '../../../Data/SettingsData';
|
||||
import ConfigDefault from '../../../Data/SettingsDefault.ts';
|
||||
import settings from '../../../Data/settings';
|
||||
import { FavouriteSettings } from '../../VariablesAndData';
|
||||
import CreatePrefHeader from './CreateHeader';
|
||||
import CreatePrefOption from './CreateOption';
|
||||
@@ -18,16 +15,19 @@ export default function AddMenuPref(title) {
|
||||
|
||||
Object.keys(ConfigGroups).forEach((group) => {
|
||||
if (group === 'Favourite') {
|
||||
if (FavouriteSettings.length !== 0 && CMOptions.FavouriteSettings > 0) {
|
||||
if (
|
||||
FavouriteSettings.length !== 0 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.FavouriteSettings > 0
|
||||
) {
|
||||
frag.appendChild(CreatePrefHeader(group, ConfigGroups[group])); // (group, display-name of group)
|
||||
if (CMOptions.Header[group])
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[group])
|
||||
for (let index = 0; index < FavouriteSettings.length; index++) {
|
||||
frag.appendChild(CreatePrefOption(FavouriteSettings[index]));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
frag.appendChild(CreatePrefHeader(group, ConfigGroups[group])); // (group, display-name of group)
|
||||
if (CMOptions.Header[group]) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[group]) {
|
||||
// 0 is show, 1 is collapsed
|
||||
// Make sub-sections of Notification section
|
||||
if (group === 'Notification') {
|
||||
@@ -36,32 +36,21 @@ export default function AddMenuPref(title) {
|
||||
subGroupObject.style.fontSize = '15px';
|
||||
subGroupObject.style.opacity = '0.5';
|
||||
frag.appendChild(subGroupObject);
|
||||
if (CMOptions.Header[subGroup]) {
|
||||
Object.keys(Config).forEach((option) => {
|
||||
if (Config[option].group === subGroup) frag.appendChild(CreatePrefOption(option));
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[subGroup]) {
|
||||
Object.keys(settings).forEach((option) => {
|
||||
if (settings[option].group === subGroup) frag.appendChild(CreatePrefOption(option));
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Object.keys(Config).forEach((option) => {
|
||||
if (Config[option].group === group) frag.appendChild(CreatePrefOption(option));
|
||||
Object.keys(settings).forEach((option) => {
|
||||
if (settings[option].group === group) frag.appendChild(CreatePrefOption(option));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const resDef = document.createElement('div');
|
||||
resDef.className = 'listing';
|
||||
const resDefBut = document.createElement('a');
|
||||
resDefBut.className = 'option';
|
||||
resDefBut.onclick = function () {
|
||||
LoadConfig(ConfigDefault);
|
||||
};
|
||||
resDefBut.textContent = 'Restore Default';
|
||||
resDef.appendChild(resDefBut);
|
||||
frag.appendChild(resDef);
|
||||
|
||||
l('menu').childNodes[2].insertBefore(
|
||||
frag,
|
||||
l('menu').childNodes[2].childNodes[l('menu').childNodes[2].childNodes.length - 1],
|
||||
|
||||
@@ -4,7 +4,6 @@ import { AddMissingUpgrades } from './CreateMissingUpgrades';
|
||||
import * as CreateSections from './CreateStatsSections';
|
||||
import * as CreateElements from './CreateDOMElements';
|
||||
import * as GameData from '../../../Data/Gamedata.ts';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
|
||||
import {
|
||||
CacheAverageClicks,
|
||||
@@ -31,37 +30,37 @@ export default function AddMenuStats(title) {
|
||||
stats.appendChild(title);
|
||||
|
||||
stats.appendChild(CreateElements.StatsHeader('Lucky Cookies', 'Lucky'));
|
||||
if (CMOptions.Header.Lucky) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers.Lucky) {
|
||||
stats.appendChild(CreateSections.LuckySection());
|
||||
}
|
||||
|
||||
stats.appendChild(CreateElements.StatsHeader('Chain Cookies', 'Chain'));
|
||||
if (CMOptions.Header.Chain) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers.Chain) {
|
||||
stats.appendChild(CreateSections.ChainSection());
|
||||
}
|
||||
|
||||
if (Game.Objects['Wizard tower'].minigameLoaded) {
|
||||
stats.appendChild(CreateElements.StatsHeader('Spells', 'Spells'));
|
||||
if (CMOptions.Header.Spells) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers.Spells) {
|
||||
stats.appendChild(CreateSections.SpellsSection());
|
||||
}
|
||||
}
|
||||
|
||||
if (Game.Objects.Farm.minigameLoaded) {
|
||||
stats.appendChild(CreateElements.StatsHeader('Garden', 'Garden'));
|
||||
if (CMOptions.Header.Garden) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers.Garden) {
|
||||
stats.appendChild(CreateSections.GardenSection());
|
||||
}
|
||||
}
|
||||
|
||||
stats.appendChild(CreateElements.StatsHeader('Prestige', 'Prestige'));
|
||||
if (CMOptions.Header.Prestige) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers.Prestige) {
|
||||
stats.appendChild(CreateSections.PrestigeSection());
|
||||
}
|
||||
|
||||
if (Game.cpsSucked > 0) {
|
||||
stats.appendChild(CreateElements.StatsHeader('Wrinklers', 'Wrink'));
|
||||
if (CMOptions.Header.Wrink) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers.Wrink) {
|
||||
const popAllFrag = document.createDocumentFragment();
|
||||
popAllFrag.appendChild(
|
||||
document.createTextNode(
|
||||
@@ -102,7 +101,7 @@ export default function AddMenuStats(title) {
|
||||
stats.appendChild(CreateSections.SeasonSection());
|
||||
|
||||
stats.appendChild(CreateElements.StatsHeader('Achievements', 'Achievs'));
|
||||
if (CMOptions.Header.Achievs) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers.Achievs) {
|
||||
Object.keys(Game.Objects).forEach((i) => {
|
||||
const ObjectsTillNext = CacheObjectsNextAchievement[i];
|
||||
stats.appendChild(
|
||||
@@ -110,7 +109,11 @@ export default function AddMenuStats(title) {
|
||||
'basic',
|
||||
i,
|
||||
ObjectsTillNext.AmountNeeded < 101
|
||||
? document.createTextNode(`Next achievement in ${ObjectsTillNext.AmountNeeded}, price: ${Beautify(ObjectsTillNext.price)}`)
|
||||
? document.createTextNode(
|
||||
`Next achievement in ${ObjectsTillNext.AmountNeeded}, price: ${Beautify(
|
||||
ObjectsTillNext.price,
|
||||
)}`,
|
||||
)
|
||||
: document.createTextNode('No new achievement for next 100 buildings'),
|
||||
),
|
||||
);
|
||||
@@ -118,15 +121,26 @@ export default function AddMenuStats(title) {
|
||||
}
|
||||
|
||||
stats.appendChild(CreateElements.StatsHeader('Miscellaneous', 'Misc'));
|
||||
if (CMOptions.Header.Misc) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers.Misc) {
|
||||
stats.appendChild(
|
||||
CreateElements.StatsListing(
|
||||
'basic',
|
||||
`Average cookies per second (past ${
|
||||
CookieTimes[CMOptions.AvgCPSHist] < 60
|
||||
? `${CookieTimes[CMOptions.AvgCPSHist]} seconds`
|
||||
: CookieTimes[CMOptions.AvgCPSHist] / 60 +
|
||||
(CMOptions.AvgCPSHist === 3 ? ' minute' : ' minutes')
|
||||
CookieTimes[
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AvgCPSHist
|
||||
] < 60
|
||||
? `${
|
||||
CookieTimes[
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AvgCPSHist
|
||||
]
|
||||
} seconds`
|
||||
: CookieTimes[
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AvgCPSHist
|
||||
] /
|
||||
60 +
|
||||
(Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AvgCPSHist === 3
|
||||
? ' minute'
|
||||
: ' minutes')
|
||||
})`,
|
||||
document.createTextNode(Beautify(GetCPS(), 3)),
|
||||
),
|
||||
@@ -134,8 +148,14 @@ export default function AddMenuStats(title) {
|
||||
stats.appendChild(
|
||||
CreateElements.StatsListing(
|
||||
'basic',
|
||||
`Average cookie clicks per second (past ${ClickTimes[CMOptions.AvgClicksHist]}${
|
||||
CMOptions.AvgClicksHist === 0 ? ' second' : ' seconds'
|
||||
`Average cookie clicks per second (past ${
|
||||
ClickTimes[
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AvgClicksHist
|
||||
]
|
||||
}${
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AvgClicksHist === 0
|
||||
? ' second'
|
||||
: ' seconds'
|
||||
})`,
|
||||
document.createTextNode(Beautify(CacheAverageClicks, 1)),
|
||||
),
|
||||
@@ -143,13 +163,22 @@ export default function AddMenuStats(title) {
|
||||
stats.appendChild(
|
||||
CreateElements.StatsListing(
|
||||
'basic',
|
||||
`Cookies from clicking (past ${ClickTimes[CMOptions.AvgClicksHist]}${
|
||||
CMOptions.AvgClicksHist === 0 ? ' second' : ' seconds'
|
||||
`Cookies from clicking (past ${
|
||||
ClickTimes[
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AvgClicksHist
|
||||
]
|
||||
}${
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AvgClicksHist === 0
|
||||
? ' second'
|
||||
: ' seconds'
|
||||
})`,
|
||||
document.createTextNode(
|
||||
Beautify(
|
||||
CacheAverageCookiesFromClicks.calcSum(
|
||||
CacheAverageClicks * ClickTimes[CMOptions.AvgClicksHist],
|
||||
CacheAverageClicks *
|
||||
ClickTimes[
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.AvgClicksHist
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -171,7 +200,7 @@ export default function AddMenuStats(title) {
|
||||
),
|
||||
);
|
||||
}
|
||||
if (CMOptions.ShowMissedGC) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ShowMissedGC) {
|
||||
stats.appendChild(
|
||||
CreateElements.StatsListing(
|
||||
'basic',
|
||||
@@ -193,10 +222,10 @@ export default function AddMenuStats(title) {
|
||||
|
||||
l('menu').insertBefore(stats, l('menu').childNodes[2]);
|
||||
|
||||
if (CMOptions.MissingUpgrades) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.MissingUpgrades) {
|
||||
AddMissingUpgrades();
|
||||
}
|
||||
if (CMOptions.MissingAchievements) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.MissingAchievements) {
|
||||
AddMissingAchievements();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/** Section: Functions related to the creation of basic DOM elements page */
|
||||
|
||||
import { ToggleHeader } from '../../../Config/ToggleSetting';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
|
||||
import { SimpleTooltipElements } from '../../VariablesAndData';
|
||||
|
||||
/**
|
||||
@@ -30,7 +30,9 @@ export function StatsHeader(text, config) {
|
||||
span.style.color = 'black';
|
||||
span.style.fontSize = '13px';
|
||||
span.style.verticalAlign = 'middle';
|
||||
span.textContent = CMOptions.Header[config] ? '-' : '+';
|
||||
span.textContent = Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[config]
|
||||
? '-'
|
||||
: '+';
|
||||
span.onclick = function () {
|
||||
ToggleHeader(config);
|
||||
Game.UpdateMenu();
|
||||
@@ -99,7 +101,9 @@ export function StatsMissDispListing(type, name, text, current) {
|
||||
|
||||
const listingName = document.createElement('b');
|
||||
listingName.textContent = name;
|
||||
if (current === true) listingName.style.color = CMOptions.ColourGreen;
|
||||
if (current === true)
|
||||
listingName.style.color =
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ColourGreen;
|
||||
div.appendChild(listingName);
|
||||
div.appendChild(document.createTextNode(': '));
|
||||
div.appendChild(text);
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
|
||||
function CrateTooltipLockedAchievements(me) {
|
||||
const tags = [];
|
||||
if (me.pool === 'shadow') tags.push('Shadow Achievement', '#9700cf');
|
||||
@@ -51,7 +49,7 @@ export default function AddMissingAchievements() {
|
||||
achievs = i.parentElement.querySelectorAll('div.listing.crateBox')[0];
|
||||
}
|
||||
});
|
||||
if (CMOptions.MissingAchievements) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.MissingAchievements) {
|
||||
Object.values(achievs.children).forEach((achievsCrate) => {
|
||||
if (!achievsCrate.className.includes('enabled')) {
|
||||
const id = achievsCrate.onclick.toString().split(/\[(.*)\]/gi)[1];
|
||||
|
||||
@@ -36,7 +36,6 @@ import {
|
||||
CacheWrathCookiesMult,
|
||||
CacheWrinklersTotal,
|
||||
} from '../../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
import ResetBonus from '../../../Sim/SimulationEvents/ResetAscension';
|
||||
import GetCPS from '../../HelperFunctions/GetCPS';
|
||||
import GetWrinkConfigBank from '../../HelperFunctions/GetWrinkConfigBank';
|
||||
@@ -567,7 +566,9 @@ export function PrestigeSection() {
|
||||
),
|
||||
);
|
||||
|
||||
const HCTarget = Number(CMOptions.HeavenlyChipsTarget);
|
||||
const HCTarget = Number(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.HeavenlyChipsTarget,
|
||||
);
|
||||
if (!Number.isNaN(HCTarget)) {
|
||||
const CookiesTillTarget =
|
||||
HCTarget - Math.floor(Game.HowMuchPrestige(Game.cookiesReset + Game.cookiesEarned));
|
||||
@@ -699,7 +700,7 @@ export function SeasonSection() {
|
||||
|
||||
if (Game.season === 'christmas' || specDisp || choEgg || centEgg) {
|
||||
section.appendChild(StatsHeader('Season Specials', 'Sea'));
|
||||
if (CMOptions.Header.Sea) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers.Sea) {
|
||||
if (missingHalloweenCookies.length !== 0) {
|
||||
section.appendChild(
|
||||
StatsMissDispListing(
|
||||
|
||||
21
src/Disp/MenuSections/createMenuInfo.js
Normal file
21
src/Disp/MenuSections/createMenuInfo.js
Normal file
@@ -0,0 +1,21 @@
|
||||
import { menuFunctions } from '@cookiemonsterteam/cookiemonsterframework';
|
||||
import { LatestReleaseNotes, ModDescription } from '../../Data/Moddata.ts';
|
||||
|
||||
/**
|
||||
* Creates the <div> to be added to the Info section
|
||||
* @returns {object} menuDiv Object of the <div> of Cookie Monster in info tab
|
||||
*/
|
||||
export default function createMenuInfo() {
|
||||
const menuDiv = menuFunctions.createModMenuSection(
|
||||
'cookieMonsterMod',
|
||||
'Cookie Monster',
|
||||
'infoMenu',
|
||||
);
|
||||
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers.infoMenu) {
|
||||
menuDiv.appendChild(menuFunctions.createInfoListing(ModDescription));
|
||||
menuDiv.appendChild(menuFunctions.createInfoListing(LatestReleaseNotes));
|
||||
}
|
||||
|
||||
return menuDiv;
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import { isInitializing } from '../../InitSaveLoad/Variables';
|
||||
|
||||
/**
|
||||
@@ -12,10 +11,14 @@ import { isInitializing } from '../../InitSaveLoad/Variables';
|
||||
export default function Flash(mode, config, forced) {
|
||||
// The arguments check makes the sound not play upon initialization of the mod
|
||||
if (
|
||||
((CMOptions[config] === 1 || forced) && mode === 3 && isInitializing === false) ||
|
||||
((Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] === 1 ||
|
||||
forced) &&
|
||||
mode === 3 &&
|
||||
isInitializing === false) ||
|
||||
mode === 1
|
||||
) {
|
||||
l('CMFlashScreen').style.backgroundColor = CMOptions[`Colour${config}`];
|
||||
l('CMFlashScreen').style.backgroundColor =
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[`Colour${config}`];
|
||||
l('CMFlashScreen').style.opacity = '0.5';
|
||||
if (mode === 3) {
|
||||
l('CMFlashScreen').style.display = 'inline';
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
/** Functions related to the flashes/sound/notifications */
|
||||
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import { isInitializing } from '../../InitSaveLoad/Variables';
|
||||
|
||||
/**
|
||||
@@ -13,7 +10,7 @@ import { isInitializing } from '../../InitSaveLoad/Variables';
|
||||
export default function CreateNotification(notifyConfig, title, message) {
|
||||
// The arguments check makes the sound not play upon initialization of the mod
|
||||
if (
|
||||
CMOptions[notifyConfig] === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[notifyConfig] === 1 &&
|
||||
document.visibilityState === 'hidden' &&
|
||||
isInitializing === false
|
||||
) {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import { isInitializing } from '../../InitSaveLoad/Variables';
|
||||
|
||||
/**
|
||||
@@ -11,11 +10,20 @@ import { isInitializing } from '../../InitSaveLoad/Variables';
|
||||
*/
|
||||
export default function PlaySound(url, sndConfig, volConfig, forced) {
|
||||
// The arguments check makes the sound not play upon initialization of the mod
|
||||
if ((CMOptions[sndConfig] === 1 || forced) && isInitializing === false) {
|
||||
if (
|
||||
(Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[sndConfig] === 1 ||
|
||||
forced) &&
|
||||
isInitializing === false
|
||||
) {
|
||||
// eslint-disable-next-line new-cap
|
||||
const sound = new Audio(url);
|
||||
if (CMOptions.GeneralSound) sound.volume = (CMOptions[volConfig] / 100) * (Game.volume / 100);
|
||||
else sound.volume = CMOptions[volConfig] / 100;
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GeneralSound)
|
||||
sound.volume =
|
||||
(Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[volConfig] / 100) *
|
||||
(Game.volume / 100);
|
||||
else
|
||||
sound.volume =
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[volConfig] / 100;
|
||||
sound.play();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { CacheSpawnedGoldenShimmer } from '../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import { LastGoldenCookieState } from '../../Main/VariablesAndData';
|
||||
|
||||
/**
|
||||
@@ -18,7 +17,10 @@ export function CreateFavicon() {
|
||||
* By relying on CM.Cache.spawnedGoldenShimmer it only changes for non-user spawned cookie
|
||||
*/
|
||||
export function UpdateFavicon() {
|
||||
if (CMOptions.Favicon === 1 && LastGoldenCookieState > 0) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Favicon === 1 &&
|
||||
LastGoldenCookieState > 0
|
||||
) {
|
||||
if (CacheSpawnedGoldenShimmer.wrath)
|
||||
l('CMFavicon').href =
|
||||
'https://CookieMonsterTeam.github.io/CookieMonster/favicon/wrathCookie.ico';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/** Functions related to updating the tab in the browser's tab-bar */
|
||||
|
||||
import { CacheSeasonPopShimmer, CacheSpawnedGoldenShimmer } from '../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
|
||||
import { LastSeasonPopupState, LastTickerFortuneState } from '../../Main/VariablesAndData';
|
||||
import { Title } from '../VariablesAndData';
|
||||
|
||||
@@ -10,9 +10,12 @@ import { Title } from '../VariablesAndData';
|
||||
* It is called on every loop by Game.Logic() which also sets CM.Disp.Title to Game.cookies
|
||||
*/
|
||||
export default function UpdateTitle() {
|
||||
if (Game.OnAscend || CMOptions.Title === 0) {
|
||||
if (
|
||||
Game.OnAscend ||
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Title === 0
|
||||
) {
|
||||
document.title = Title;
|
||||
} else if (CMOptions.Title === 1) {
|
||||
} else if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Title === 1) {
|
||||
let addFC = false;
|
||||
let addSP = false;
|
||||
let titleGC;
|
||||
@@ -50,7 +53,7 @@ export default function UpdateTitle() {
|
||||
str = str.substring(str.lastIndexOf(']') + 1);
|
||||
}
|
||||
document.title = `${titleGC + (addFC ? titleFC : '') + (addSP ? titleSP : '')} ${str}`;
|
||||
} else if (CMOptions.Title === 2) {
|
||||
} else if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.Title === 2) {
|
||||
let str = '';
|
||||
let spawn = false;
|
||||
if (CacheSpawnedGoldenShimmer) {
|
||||
|
||||
@@ -3,7 +3,6 @@ import {
|
||||
CacheLastHeavenlyChips,
|
||||
CacheTimeTillNextPrestige,
|
||||
} from '../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import Beautify from '../BeautifyAndFormatting/Beautify';
|
||||
|
||||
/**
|
||||
@@ -45,7 +44,7 @@ export default function ReplaceAscendTooltip() {
|
||||
str += '<div class="line"></div>';
|
||||
str += `You need <b>${Beautify(cookiesToNext)} more cookies</b> for the next level.<br>`;
|
||||
str += `${
|
||||
CMOptions.TooltipAscendButton
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipAscendButton
|
||||
? `<div class='line'></div>It takes ${CacheTimeTillNextPrestige} to reach the next level and you were making ${Beautify(
|
||||
CacheHCPerSecond,
|
||||
2,
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import {
|
||||
ColourTextPre,
|
||||
ColourBorderPre,
|
||||
@@ -134,7 +133,7 @@ export function TooltipCreateWarningSection() {
|
||||
'CMDispTooltipWarnUser',
|
||||
ColourRed,
|
||||
'Warning: ',
|
||||
`Purchase of this item will put you under the number of Cookies equal to ${CMOptions.ToolWarnUser} seconds of CPS`,
|
||||
`Purchase of this item will put you under the number of Cookies equal to ${Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnUser} seconds of CPS`,
|
||||
'CMDispTooltipWarnUserText',
|
||||
),
|
||||
);
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function updates the location of the tooltip
|
||||
* It is called by Game.tooltip.update() because of CM.Main.ReplaceNative()
|
||||
@@ -8,8 +6,8 @@ export default function UpdateTooltipLocation() {
|
||||
if (Game.tooltip.origin === 'store') {
|
||||
let warnOffset = 0;
|
||||
if (
|
||||
CMOptions.ToolWarnLucky === 1 &&
|
||||
CMOptions.ToolWarnPos === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnLucky === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnPos === 1 &&
|
||||
l('CMDispTooltipWarningParent') !== null
|
||||
) {
|
||||
warnOffset = l('CMDispTooltipWarningParent').clientHeight - 4;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import UpdateTooltips from './UpdateTooltips';
|
||||
import { SimpleTooltipElements, TooltipName, TooltipType } from '../VariablesAndData'; // eslint-disable-line no-unused-vars
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import BuildingGetPrice from '../../Sim/SimulationEvents/BuyBuilding';
|
||||
import GetTimeColour from '../BeautifyAndFormatting/GetTimeColour';
|
||||
import Beautify from '../BeautifyAndFormatting/Beautify';
|
||||
@@ -40,7 +39,7 @@ export function CreateTooltip(type, name) {
|
||||
// Buildings
|
||||
l('tooltip').innerHTML = Game.Objects[name].tooltip();
|
||||
// Adds amortization info to the list of info per building
|
||||
if (CMOptions.TooltipAmor === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipAmor === 1) {
|
||||
const buildPrice = BuildingGetPrice(
|
||||
Game.Objects[name],
|
||||
Game.Objects[name].basePrice,
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
CacheObjects100,
|
||||
CacheObjectsNextAchievement,
|
||||
} from '../../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
|
||||
import BuyBuildingsBonusIncome from '../../../Sim/SimulationEvents/BuyBuildingBonusIncome';
|
||||
import { SimObjects } from '../../../Sim/VariablesAndData';
|
||||
import Beautify from '../../BeautifyAndFormatting/Beautify';
|
||||
@@ -26,7 +26,10 @@ import * as Create from '../CreateTooltip';
|
||||
* This function adds extra info to the Building tooltips
|
||||
*/
|
||||
export default function Building() {
|
||||
if (CMOptions.TooltipBuildUpgrade === 1 && Game.buyMode === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipBuildUpgrade === 1 &&
|
||||
Game.buyMode === 1
|
||||
) {
|
||||
const tooltipBox = l('CMTooltipBorder');
|
||||
Create.TooltipCreateCalculationSection(tooltipBox);
|
||||
|
||||
@@ -43,18 +46,24 @@ export default function Building() {
|
||||
TooltipPrice = Game.Objects[TooltipName].bulkPrice;
|
||||
TooltipBonusIncome = target[TooltipName].bonus;
|
||||
|
||||
if (CMOptions.TooltipBuildUpgrade === 1 && Game.buyMode === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipBuildUpgrade ===
|
||||
1 &&
|
||||
Game.buyMode === 1
|
||||
) {
|
||||
l('CMTooltipIncome').textContent = Beautify(TooltipBonusIncome, 2);
|
||||
const increase = Math.round((TooltipBonusIncome / Game.cookiesPs) * 10000);
|
||||
if (Number.isFinite(increase) && increase !== 0) {
|
||||
l('CMTooltipIncome').textContent += ` (${increase / 100}% of income)`;
|
||||
} else {
|
||||
l('CMTooltipIncome').textContent += ` (<0${
|
||||
CMOptions.ScaleSeparator ? ',' : '.'
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ScaleSeparator
|
||||
? ','
|
||||
: '.'
|
||||
}01% of income)`;
|
||||
}
|
||||
l('CMTooltipBorder').className = ColourTextPre + target[TooltipName].color;
|
||||
if (CMOptions.PPDisplayTime)
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPDisplayTime)
|
||||
l('CMTooltipPP').textContent = FormatTime(target[TooltipName].pp);
|
||||
else l('CMTooltipPP').textContent = Beautify(target[TooltipName].pp, 2);
|
||||
l('CMTooltipPP').className = ColourTextPre + target[TooltipName].color;
|
||||
@@ -110,7 +119,8 @@ export default function Building() {
|
||||
)} / ${Beautify(ObjectsTillNext.price)} / `;
|
||||
l('CMTooltipNextAchievement').style.color = 'white';
|
||||
const PPFrag = document.createElement('span');
|
||||
if (CMOptions.PPDisplayTime) PPFrag.textContent = FormatTime(PPOfAmount);
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPDisplayTime)
|
||||
PPFrag.textContent = FormatTime(PPOfAmount);
|
||||
else PPFrag.textContent = Beautify(PPOfAmount);
|
||||
PPFrag.className = ColourTextPre + ColourOfPP({ pp: PPOfAmount }, ObjectsTillNext.price);
|
||||
l('CMTooltipNextAchievement').appendChild(PPFrag);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
import Beautify from '../../BeautifyAndFormatting/Beautify';
|
||||
import { TooltipName } from '../../VariablesAndData';
|
||||
import * as Create from '../CreateTooltip';
|
||||
@@ -9,7 +8,10 @@ import * as Create from '../CreateTooltip';
|
||||
*/
|
||||
export default function GardenPlots() {
|
||||
const { minigame } = Game.Objects.Farm;
|
||||
if (CMOptions.TooltipPlots && minigame.plot[TooltipName[1]][TooltipName[0]][0] !== 0) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipPlots &&
|
||||
minigame.plot[TooltipName[1]][TooltipName[0]][0] !== 0
|
||||
) {
|
||||
const mature =
|
||||
minigame.plot[TooltipName[1]][TooltipName[0]][1] >
|
||||
minigame.plantsById[minigame.plot[TooltipName[1]][TooltipName[0]][0] - 1].mature;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { CacheNoGoldSwitchCookiesPS } from '../../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
|
||||
import Beautify from '../../BeautifyAndFormatting/Beautify';
|
||||
import GetTimeColour from '../../BeautifyAndFormatting/GetTimeColour';
|
||||
import CalculateGrimoireRefillTime from '../../HelperFunctions/CalculateGrimoireRefillTime';
|
||||
@@ -15,7 +15,10 @@ export default function Grimoire() {
|
||||
const { minigame } = Game.Objects['Wizard tower'];
|
||||
const spellCost = minigame.getSpellCost(minigame.spellsById[TooltipName]);
|
||||
|
||||
if (CMOptions.TooltipGrim === 1 && spellCost <= minigame.magicM) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipGrim === 1 &&
|
||||
spellCost <= minigame.magicM
|
||||
) {
|
||||
const tooltipBox = l('CMTooltipBorder');
|
||||
|
||||
// Time left till enough magic for spell
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
import Beautify from '../../BeautifyAndFormatting/Beautify';
|
||||
import * as Create from '../CreateTooltip';
|
||||
|
||||
@@ -9,7 +8,7 @@ import * as Create from '../CreateTooltip';
|
||||
*/
|
||||
export default function HarvestAll() {
|
||||
const { minigame } = Game.Objects.Farm;
|
||||
if (CMOptions.TooltipLump) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipLump) {
|
||||
l('CMTooltipBorder').appendChild(Create.TooltipCreateHeader('Cookies gained from harvesting:'));
|
||||
let totalGain = 0;
|
||||
let mortal = 0;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { CacheGods } from '../../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
import Beautify from '../../BeautifyAndFormatting/Beautify';
|
||||
import { TooltipName, TooltipType } from '../../VariablesAndData';
|
||||
import * as Create from '../CreateTooltip';
|
||||
@@ -10,7 +9,7 @@ import * as Create from '../CreateTooltip';
|
||||
* It adds to the additional information to l('CMTooltipArea')
|
||||
*/
|
||||
export default function PantheonGods() {
|
||||
if (CMOptions.TooltipPantheon === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipPantheon === 1) {
|
||||
const tooltipBox = l('CMTooltipBorder');
|
||||
let GodID;
|
||||
if (TooltipType === 'pas') GodID = TooltipName[1];
|
||||
@@ -26,7 +25,11 @@ export default function PantheonGods() {
|
||||
if (Number.isFinite(increase) && increase !== 0) {
|
||||
cps1.textContent += ` (${increase / 100}% of income)`;
|
||||
} else {
|
||||
cps1.textContent += ` (<0${CMOptions.ScaleSeparator ? ',' : '.'}01% of income)`;
|
||||
cps1.textContent += ` (<0${
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ScaleSeparator
|
||||
? ','
|
||||
: '.'
|
||||
}01% of income)`;
|
||||
}
|
||||
} else cps1.textContent = 'No effect to CPS';
|
||||
tooltipBox.appendChild(cps1);
|
||||
@@ -40,7 +43,11 @@ export default function PantheonGods() {
|
||||
if (Number.isFinite(increase) && increase !== 0) {
|
||||
cps2.textContent += ` (${increase / 100}% of income)`;
|
||||
} else {
|
||||
cps2.textContent += ` (<0${CMOptions.ScaleSeparator ? ',' : '.'}01% of income)`;
|
||||
cps2.textContent += ` (<0${
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ScaleSeparator
|
||||
? ','
|
||||
: '.'
|
||||
}01% of income)`;
|
||||
}
|
||||
} else cps2.textContent = 'No effect to CPS';
|
||||
tooltipBox.appendChild(cps2);
|
||||
@@ -54,7 +61,11 @@ export default function PantheonGods() {
|
||||
if (Number.isFinite(increase) && increase !== 0) {
|
||||
cps3.textContent += ` (${increase / 100}% of income)`;
|
||||
} else {
|
||||
cps3.textContent += ` (<0${CMOptions.ScaleSeparator ? ',' : '.'}01% of income)`;
|
||||
cps3.textContent += ` (<0${
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ScaleSeparator
|
||||
? ','
|
||||
: '.'
|
||||
}01% of income)`;
|
||||
}
|
||||
} else cps3.textContent = 'No effect to CPS';
|
||||
tooltipBox.appendChild(cps3);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
import GetLumpColour from '../../HelperFunctions/GetLumpColour';
|
||||
import { ColourTextPre } from '../../VariablesAndData';
|
||||
import * as Create from '../CreateTooltip';
|
||||
@@ -7,7 +6,7 @@ import * as Create from '../CreateTooltip';
|
||||
* It adds to the additional information to l('CMTooltipArea')
|
||||
*/
|
||||
export default function SugarLump() {
|
||||
if (CMOptions.TooltipLump === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipLump === 1) {
|
||||
const tooltipBox = l('CMTooltipBorder');
|
||||
|
||||
tooltipBox.appendChild(Create.TooltipCreateHeader('Current Sugar Lump'));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { CacheLastChoEgg, CacheUpgrades } from '../../../Cache/VariablesAndData';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
|
||||
import Beautify from '../../BeautifyAndFormatting/Beautify';
|
||||
import FormatTime from '../../BeautifyAndFormatting/FormatTime';
|
||||
import GetTimeColour from '../../BeautifyAndFormatting/GetTimeColour';
|
||||
@@ -25,7 +25,9 @@ export default function Upgrade() {
|
||||
TooltipPrice = Game.Upgrades[Game.UpgradesInStore[TooltipName].name].getPrice();
|
||||
TooltipBonusMouse = CacheUpgrades[Game.UpgradesInStore[TooltipName].name].bonusMouse;
|
||||
|
||||
if (CMOptions.TooltipBuildUpgrade === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipBuildUpgrade === 1
|
||||
) {
|
||||
l('CMTooltipIncome').textContent = Beautify(TooltipBonusIncome, 2);
|
||||
const increase = Math.round((TooltipBonusIncome / Game.cookiesPs) * 10000);
|
||||
// Don't display certain parts of tooltip if not applicable
|
||||
@@ -39,7 +41,9 @@ export default function Upgrade() {
|
||||
l('CMTooltipIncome').textContent += ` (${increase / 100}% of income)`;
|
||||
} else {
|
||||
l('CMTooltipIncome').textContent += ` (<0${
|
||||
CMOptions.ScaleSeparator ? ',' : '.'
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ScaleSeparator
|
||||
? ','
|
||||
: '.'
|
||||
}01% of income)`;
|
||||
}
|
||||
l('CMTooltipBorder').className =
|
||||
@@ -59,7 +63,7 @@ export default function Upgrade() {
|
||||
l('Payback PeriodTitle').style.display = 'block';
|
||||
l('CMTooltipPP').style.display = 'block';
|
||||
} else {
|
||||
if (CMOptions.PPDisplayTime)
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPDisplayTime)
|
||||
l('CMTooltipPP').textContent = FormatTime(
|
||||
CacheUpgrades[Game.UpgradesInStore[TooltipName].name].pp,
|
||||
);
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import GetCPSBuffMult from '../../../Cache/CPS/GetCPSBuffMult';
|
||||
import { CacheEdifice, CacheLucky } from '../../../Cache/VariablesAndData';
|
||||
import ToggleToolWarnPos from '../../../Config/Toggles/ToggleToolWarnPos';
|
||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||
import Beautify from '../../BeautifyAndFormatting/Beautify';
|
||||
import FormatTime from '../../BeautifyAndFormatting/FormatTime';
|
||||
import GetCPS from '../../HelperFunctions/GetCPS';
|
||||
@@ -19,21 +18,25 @@ export default function Warnings() {
|
||||
ToggleToolWarnPos();
|
||||
}
|
||||
|
||||
if (CMOptions.ToolWarnPos === 0) l('CMDispTooltipWarningParent').style.right = '0px';
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnPos === 0)
|
||||
l('CMDispTooltipWarningParent').style.right = '0px';
|
||||
else l('CMDispTooltipWarningParent').style.top = `${l('tooltip').offsetHeight}px`;
|
||||
|
||||
l('CMDispTooltipWarningParent').style.width = `${l('tooltip').offsetWidth - 6}px`;
|
||||
|
||||
const amount = Game.cookies + GetWrinkConfigBank() - TooltipPrice;
|
||||
const bonusIncomeUsed = CMOptions.ToolWarnBon ? TooltipBonusIncome : 0;
|
||||
const bonusIncomeUsed = Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings
|
||||
.ToolWarnBon
|
||||
? TooltipBonusIncome
|
||||
: 0;
|
||||
let limitLucky = CacheLucky;
|
||||
if (CMOptions.ToolWarnBon === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnBon === 1) {
|
||||
let bonusNoFren = TooltipBonusIncome;
|
||||
bonusNoFren /= GetCPSBuffMult();
|
||||
limitLucky += (bonusNoFren * 60 * 15) / 0.15;
|
||||
}
|
||||
|
||||
if (CMOptions.ToolWarnLucky === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnLucky === 1) {
|
||||
if (amount < limitLucky && (TooltipType !== 'b' || Game.buyMode === 1)) {
|
||||
l('CMDispTooltipWarnLucky').style.display = '';
|
||||
l('CMDispTooltipWarnLuckyText').textContent = `${Beautify(
|
||||
@@ -42,7 +45,9 @@ export default function Warnings() {
|
||||
} else l('CMDispTooltipWarnLucky').style.display = 'none';
|
||||
} else l('CMDispTooltipWarnLucky').style.display = 'none';
|
||||
|
||||
if (CMOptions.ToolWarnLuckyFrenzy === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnLuckyFrenzy === 1
|
||||
) {
|
||||
const limitLuckyFrenzy = limitLucky * 7;
|
||||
if (amount < limitLuckyFrenzy && (TooltipType !== 'b' || Game.buyMode === 1)) {
|
||||
l('CMDispTooltipWarnLuckyFrenzy').style.display = '';
|
||||
@@ -52,7 +57,7 @@ export default function Warnings() {
|
||||
} else l('CMDispTooltipWarnLuckyFrenzy').style.display = 'none';
|
||||
} else l('CMDispTooltipWarnLuckyFrenzy').style.display = 'none';
|
||||
|
||||
if (CMOptions.ToolWarnConjure === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnConjure === 1) {
|
||||
const limitConjure = limitLucky * 2;
|
||||
if (amount < limitConjure && (TooltipType !== 'b' || Game.buyMode === 1)) {
|
||||
l('CMDispTooltipWarnConjure').style.display = '';
|
||||
@@ -62,7 +67,10 @@ export default function Warnings() {
|
||||
} else l('CMDispTooltipWarnConjure').style.display = 'none';
|
||||
} else l('CMDispTooltipWarnConjure').style.display = 'none';
|
||||
|
||||
if (CMOptions.ToolWarnConjureFrenzy === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnConjureFrenzy ===
|
||||
1
|
||||
) {
|
||||
const limitConjureFrenzy = limitLucky * 2 * 7;
|
||||
if (amount < limitConjureFrenzy && (TooltipType !== 'b' || Game.buyMode === 1)) {
|
||||
l('CMDispTooltipWarnConjureFrenzy').style.display = '';
|
||||
@@ -72,7 +80,10 @@ export default function Warnings() {
|
||||
} else l('CMDispTooltipWarnConjureFrenzy').style.display = 'none';
|
||||
} else l('CMDispTooltipWarnConjureFrenzy').style.display = 'none';
|
||||
|
||||
if (CMOptions.ToolWarnEdifice === 1 && Game.Objects['Wizard tower'].minigameLoaded) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnEdifice === 1 &&
|
||||
Game.Objects['Wizard tower'].minigameLoaded
|
||||
) {
|
||||
if (CacheEdifice && amount < CacheEdifice && (TooltipType !== 'b' || Game.buyMode === 1)) {
|
||||
l('CMDispTooltipWarnEdifice').style.display = '';
|
||||
l('CMDispTooltipWarnEdificeText').textContent = `${Beautify(
|
||||
@@ -81,20 +92,27 @@ export default function Warnings() {
|
||||
} else l('CMDispTooltipWarnEdifice').style.display = 'none';
|
||||
} else l('CMDispTooltipWarnEdifice').style.display = 'none';
|
||||
|
||||
if (CMOptions.ToolWarnUser > 0) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnUser > 0) {
|
||||
if (
|
||||
amount < CMOptions.ToolWarnUser * GetCPS() &&
|
||||
amount <
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnUser *
|
||||
GetCPS() &&
|
||||
(TooltipType !== 'b' || Game.buyMode === 1)
|
||||
) {
|
||||
l('CMDispTooltipWarnUser').style.display = '';
|
||||
// Need to update tooltip text dynamically
|
||||
l(
|
||||
'CMDispTooltipWarnUser',
|
||||
).children[0].textContent = `Purchase of this item will put you under the number of Cookies equal to ${CMOptions.ToolWarnUser} seconds of CPS`;
|
||||
).children[0].textContent = `Purchase of this item will put you under the number of Cookies equal to ${Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnUser} seconds of CPS`;
|
||||
l('CMDispTooltipWarnUserText').textContent = `${Beautify(
|
||||
CMOptions.ToolWarnUser * GetCPS() - amount,
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnUser *
|
||||
GetCPS() -
|
||||
amount,
|
||||
)} (${FormatTime(
|
||||
(CMOptions.ToolWarnUser * GetCPS() - amount) / (GetCPS() + bonusIncomeUsed),
|
||||
(Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnUser *
|
||||
GetCPS() -
|
||||
amount) /
|
||||
(GetCPS() + bonusIncomeUsed),
|
||||
)})`;
|
||||
} else l('CMDispTooltipWarnUser').style.display = 'none';
|
||||
} else l('CMDispTooltipWarnUser').style.display = 'none';
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import { SimObjects } from '../../Sim/VariablesAndData';
|
||||
import Beautify from '../BeautifyAndFormatting/Beautify';
|
||||
import {
|
||||
@@ -13,7 +12,10 @@ import {
|
||||
* As wrinklers are not appended to the DOM we us a different system than for other tooltips
|
||||
*/
|
||||
export function CheckWrinklerTooltip() {
|
||||
if (CMOptions.TooltipWrink === 1 && TooltipWrinklerArea === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipWrink === 1 &&
|
||||
TooltipWrinklerArea === 1
|
||||
) {
|
||||
// Latter is set by CM.Main.AddWrinklerAreaDetect
|
||||
let showingTooltip = false;
|
||||
Object.keys(Game.wrinklers).forEach((i) => {
|
||||
@@ -50,7 +52,10 @@ export function CheckWrinklerTooltip() {
|
||||
* As wrinklers are not appended to the DOM we us a different system than for other tooltips
|
||||
*/
|
||||
export function UpdateWrinklerTooltip() {
|
||||
if (CMOptions.TooltipWrink === 1 && l('CMTooltipWrinkler') !== null) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipWrink === 1 &&
|
||||
l('CMTooltipWrinkler') !== null
|
||||
) {
|
||||
let { sucked } = Game.wrinklers[TooltipWrinkler];
|
||||
let toSuck = 1.1;
|
||||
if (Game.Has('Sacrilegious corruption')) toSuck *= 1.05;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { initFunctions } from '@cookiemonsterteam/cookiemonsterframework';
|
||||
import { VersionMajor, VersionMinor } from '../Data/Moddata.ts';
|
||||
import CMDrawHook from '../Disp/DrawHook';
|
||||
import CMClickHook from '../Main/ClickHook';
|
||||
@@ -14,6 +15,11 @@ import { isInitializing } from './Variables'; // eslint-disable-line no-unused-v
|
||||
export default function init() {
|
||||
isInitializing = true;
|
||||
let proceed = true;
|
||||
|
||||
// Load Cookie Monster Mod Framework and register mod
|
||||
initFunctions.initModFramework();
|
||||
initFunctions.registerMod('cookieMonsterMod');
|
||||
|
||||
if (Game.version !== Number(VersionMajor)) {
|
||||
// eslint-disable-next-line no-restricted-globals, no-alert
|
||||
proceed = confirm(
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
import { LoadConfig } from '../Config/SaveLoadReload/SaveLoadReloadSettings';
|
||||
import loadMod from '@cookiemonsterteam/cookiemonsterframework/src/saveDataFunctions/loadMod';
|
||||
|
||||
import headers from '../Data/headers';
|
||||
import { VersionMajor, VersionMinor } from '../Data/Moddata.ts';
|
||||
import { FavouriteSettings } from '../Disp/VariablesAndData'; // eslint-disable-line no-unused-vars
|
||||
import settings from '../Data/settings';
|
||||
import UpdateColours from '../Disp/HelperFunctions/UpdateColours';
|
||||
import CMLoopHook from '../Main/LoopHook';
|
||||
import InitData from '../Sim/InitializeData/InitData';
|
||||
|
||||
/**
|
||||
@@ -8,12 +12,13 @@ import InitData from '../Sim/InitializeData/InitData';
|
||||
* "do stuff with the string data you saved previously"
|
||||
*/
|
||||
export default function load(str) {
|
||||
const save = JSON.parse(str);
|
||||
InitData();
|
||||
// The if-statement is a failsafe for old saves
|
||||
if (typeof save.favouriteSettings !== 'undefined') FavouriteSettings = save.favouriteSettings;
|
||||
LoadConfig(save.settings);
|
||||
if (save.version !== `${VersionMajor}.${VersionMinor}`) {
|
||||
loadMod('cookieMonsterMod', str, settings, headers, CMLoopHook);
|
||||
UpdateColours();
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.version !==
|
||||
`${VersionMajor}.${VersionMinor}`
|
||||
) {
|
||||
if (Game.prefs.popups)
|
||||
Game.Popup(
|
||||
'A new version of Cookie Monster has been loaded, check out the release notes in the info tab!',
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
import { CMOptions } from '../Config/VariablesAndData';
|
||||
import { VersionMajor, VersionMinor } from '../Data/Moddata.ts';
|
||||
import { FavouriteSettings } from '../Disp/VariablesAndData';
|
||||
|
||||
/**
|
||||
* This creates a save function to the CM object. Per Game code/comments:
|
||||
@@ -8,9 +6,7 @@ import { FavouriteSettings } from '../Disp/VariablesAndData';
|
||||
* return 'a string to be saved';"
|
||||
*/
|
||||
export default function save() {
|
||||
return JSON.stringify({
|
||||
favouriteSettings: FavouriteSettings,
|
||||
settings: CMOptions,
|
||||
version: `${VersionMajor}.${VersionMinor}`,
|
||||
});
|
||||
const saveObject = Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod;
|
||||
saveObject.version = `${VersionMajor}.${VersionMinor}`;
|
||||
return JSON.stringify(saveObject);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import Flash from '../../Disp/Notifications/Flash';
|
||||
import PlaySound from '../../Disp/Notifications/Sound';
|
||||
import { LastGardenNextStep } from '../VariablesAndData';
|
||||
@@ -13,7 +12,12 @@ export default function CheckGardenTick() {
|
||||
) {
|
||||
if (LastGardenNextStep !== 0 && LastGardenNextStep < Date.now()) {
|
||||
Flash(3, 'GardFlash', false);
|
||||
PlaySound(CMOptions.GardSoundURL, 'GardSound', 'GardVolume', false);
|
||||
PlaySound(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GardSoundURL,
|
||||
'GardSound',
|
||||
'GardVolume',
|
||||
false,
|
||||
);
|
||||
}
|
||||
LastGardenNextStep = Game.Objects.Farm.minigame.nextStep;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { CacheSpawnedGoldenShimmer, CacheGoldenShimmersByID } from '../../Cache/VariablesAndData'; // eslint-disable-line no-unused-vars
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import CreateGCTimer from '../../Disp/GoldenCookieTimers/GoldenCookieTimers';
|
||||
import Flash from '../../Disp/Notifications/Flash';
|
||||
import CreateNotification from '../../Disp/Notifications/Notification';
|
||||
@@ -46,7 +45,12 @@ export default function CheckGoldenCookie() {
|
||||
if (LastGoldenCookieState) {
|
||||
if (LastSpawnedGoldenCookieState < CurrSpawnedGoldenCookieState) {
|
||||
Flash(3, 'GCFlash', false);
|
||||
PlaySound(CMOptions.GCSoundURL, 'GCSound', 'GCVolume', false);
|
||||
PlaySound(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GCSoundURL,
|
||||
'GCSound',
|
||||
'GCVolume',
|
||||
false,
|
||||
);
|
||||
CreateNotification(
|
||||
'GCNotification',
|
||||
'Golden Cookie Spawned',
|
||||
@@ -63,7 +67,10 @@ export default function CheckGoldenCookie() {
|
||||
UpdateFavicon();
|
||||
LastSpawnedGoldenCookieState = CurrSpawnedGoldenCookieState;
|
||||
if (CurrSpawnedGoldenCookieState === 0) CacheSpawnedGoldenShimmer = 0;
|
||||
} else if (CMOptions.GCTimer === 1 && LastGoldenCookieState) {
|
||||
} else if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GCTimer === 1 &&
|
||||
LastGoldenCookieState
|
||||
) {
|
||||
Object.keys(GCTimers).forEach((i) => {
|
||||
GCTimers[i].style.opacity = CacheGoldenShimmersByID[i].l.style.opacity;
|
||||
GCTimers[i].style.transform = CacheGoldenShimmersByID[i].l.style.transform;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import Flash from '../../Disp/Notifications/Flash';
|
||||
import CreateNotification from '../../Disp/Notifications/Notification';
|
||||
import PlaySound from '../../Disp/Notifications/Sound';
|
||||
@@ -9,13 +8,21 @@ import { LastMagicBarFull } from '../VariablesAndData';
|
||||
* It is called by CM.Main.Loop
|
||||
*/
|
||||
export default function CheckMagicMeter() {
|
||||
if (Game.Objects['Wizard tower'].minigameLoaded && CMOptions.GrimoireBar === 1) {
|
||||
if (
|
||||
Game.Objects['Wizard tower'].minigameLoaded &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GrimoireBar === 1
|
||||
) {
|
||||
const { minigame } = Game.Objects['Wizard tower'];
|
||||
if (minigame.magic < minigame.magicM) LastMagicBarFull = false;
|
||||
else if (!LastMagicBarFull) {
|
||||
LastMagicBarFull = true;
|
||||
Flash(3, 'MagicFlash', false);
|
||||
PlaySound(CMOptions.MagicSoundURL, 'MagicSound', 'MagicVolume', false);
|
||||
PlaySound(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.MagicSoundURL,
|
||||
'MagicSound',
|
||||
'MagicVolume',
|
||||
false,
|
||||
);
|
||||
CreateNotification(
|
||||
'MagicNotification',
|
||||
'Magic Meter full',
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { CacheSeasonPopShimmer } from '../../Cache/VariablesAndData'; // eslint-disable-line no-unused-vars
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import Flash from '../../Disp/Notifications/Flash';
|
||||
import CreateNotification from '../../Disp/Notifications/Notification';
|
||||
import PlaySound from '../../Disp/Notifications/Sound';
|
||||
@@ -18,7 +17,12 @@ export default function CheckSeasonPopup() {
|
||||
}
|
||||
});
|
||||
Flash(3, 'SeaFlash', false);
|
||||
PlaySound(CMOptions.SeaSoundURL, 'SeaSound', 'SeaVolume', false);
|
||||
PlaySound(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.SeaSoundURL,
|
||||
'SeaSound',
|
||||
'SeaVolume',
|
||||
false,
|
||||
);
|
||||
CreateNotification(
|
||||
'SeaNotification',
|
||||
'Reindeer sighted!',
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import Flash from '../../Disp/Notifications/Flash';
|
||||
import CreateNotification from '../../Disp/Notifications/Notification';
|
||||
import PlaySound from '../../Disp/Notifications/Sound';
|
||||
@@ -13,7 +12,12 @@ export default function CheckTickerFortune() {
|
||||
LastTickerFortuneState = Game.TickerEffect && Game.TickerEffect.type === 'fortune';
|
||||
if (LastTickerFortuneState) {
|
||||
Flash(3, 'FortuneFlash', false);
|
||||
PlaySound(CMOptions.FortuneSoundURL, 'FortuneSound', 'FortuneVolume', false);
|
||||
PlaySound(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.FortuneSoundURL,
|
||||
'FortuneSound',
|
||||
'FortuneVolume',
|
||||
false,
|
||||
);
|
||||
CreateNotification(
|
||||
'FortuneNotification',
|
||||
'Fortune Cookie found',
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import Flash from '../../Disp/Notifications/Flash';
|
||||
import CreateNotification from '../../Disp/Notifications/Notification';
|
||||
import PlaySound from '../../Disp/Notifications/Sound';
|
||||
@@ -16,17 +15,36 @@ export default function CheckWrinklerCount() {
|
||||
});
|
||||
if (CurrentWrinklers > LastWrinklerCount) {
|
||||
LastWrinklerCount = CurrentWrinklers;
|
||||
if (CurrentWrinklers === Game.getWrinklersMax() && CMOptions.WrinklerMaxFlash) {
|
||||
if (
|
||||
CurrentWrinklers === Game.getWrinklersMax() &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.WrinklerMaxFlash
|
||||
) {
|
||||
Flash(3, 'WrinklerMaxFlash', false);
|
||||
} else {
|
||||
Flash(3, 'WrinklerFlash', false);
|
||||
}
|
||||
if (CurrentWrinklers === Game.getWrinklersMax() && CMOptions.WrinklerMaxSound) {
|
||||
PlaySound(CMOptions.WrinklerMaxSoundURL, 'WrinklerMaxSound', 'WrinklerMaxVolume', false);
|
||||
if (
|
||||
CurrentWrinklers === Game.getWrinklersMax() &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.WrinklerMaxSound
|
||||
) {
|
||||
PlaySound(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.WrinklerMaxSoundURL,
|
||||
'WrinklerMaxSound',
|
||||
'WrinklerMaxVolume',
|
||||
false,
|
||||
);
|
||||
} else {
|
||||
PlaySound(CMOptions.WrinklerSoundURL, 'WrinklerSound', 'WrinklerVolume', false);
|
||||
PlaySound(
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.WrinklerSoundURL,
|
||||
'WrinklerSound',
|
||||
'WrinklerVolume',
|
||||
false,
|
||||
);
|
||||
}
|
||||
if (CurrentWrinklers === Game.getWrinklersMax() && CMOptions.WrinklerMaxNotification) {
|
||||
if (
|
||||
CurrentWrinklers === Game.getWrinklersMax() &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.WrinklerMaxNotification
|
||||
) {
|
||||
CreateNotification(
|
||||
'WrinklerMaxNotification',
|
||||
'Maximum Wrinklers Reached',
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import InitCache from '../Cache/CacheInit';
|
||||
import { CacheStatsCookies } from '../Cache/Stats/Stats';
|
||||
import { LoadConfig } from '../Config/SaveLoadReload/SaveLoadReloadSettings';
|
||||
import { VersionMajor, VersionMinor } from '../Data/Moddata.ts';
|
||||
import CreateUpgradeBar from '../Disp/BuildingsUpgrades/UpgradeBar';
|
||||
import { CreateBotBar } from '../Disp/InfoBars/BottomBar';
|
||||
@@ -20,6 +19,7 @@ import ReplaceNative from './ReplaceGameFunctions/ReplaceNative';
|
||||
import { LastModCount } from './VariablesAndData'; // eslint-disable-line no-unused-vars
|
||||
import AddWrinklerAreaDetect from './WrinklerArea/AddDetectArea';
|
||||
import CreateBuildingLockButtons from '../Disp/Buildings/CreateBuildingLockButtons';
|
||||
import createMenuInfo from '../Disp/MenuSections/createMenuInfo';
|
||||
|
||||
/**
|
||||
* Initialization loop of Cookie Monster
|
||||
@@ -28,6 +28,9 @@ export default function InitializeCookieMonster() {
|
||||
// Create global data object
|
||||
window.CookieMonsterData = {};
|
||||
|
||||
// Register listeners in Cookie Monster Mod Framework
|
||||
Game.mods.cookieMonsterFramework.listeners.infoMenu.push(createMenuInfo);
|
||||
|
||||
InitData();
|
||||
CacheStatsCookies();
|
||||
InitCache();
|
||||
@@ -58,7 +61,6 @@ export default function InitializeCookieMonster() {
|
||||
ReplaceNativeGrimoire();
|
||||
Game.CalculateGains();
|
||||
|
||||
LoadConfig();
|
||||
CMLastAscendState = Game.OnAscend;
|
||||
|
||||
if (Game.prefs.popups)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
import FormatTime from '../../Disp/BeautifyAndFormatting/FormatTime';
|
||||
import CalculateGrimoireRefillTime from '../../Disp/HelperFunctions/CalculateGrimoireRefillTime';
|
||||
import {
|
||||
@@ -19,7 +18,10 @@ function ReplaceNativeGrimoireDraw() {
|
||||
BackupGrimoireDraw = minigame.draw;
|
||||
Game.Objects['Wizard tower'].minigame.draw = function () {
|
||||
BackupGrimoireDraw();
|
||||
if (CMOptions.GrimoireBar === 1 && minigame.magic < minigame.magicM) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GrimoireBar === 1 &&
|
||||
minigame.magic < minigame.magicM
|
||||
) {
|
||||
minigame.magicBarTextL.innerHTML += ` (${FormatTime(
|
||||
CalculateGrimoireRefillTime(minigame.magic, minigame.magicM, minigame.magicM),
|
||||
)})`;
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function fixes Game.mouseY as a result of bars that are added by CookieMonster
|
||||
* It is called by Game.UpdateWrinklers(), Game.UpdateSpecial() and the .onmousover of the BigCookie
|
||||
* before execution of their actual function
|
||||
*/
|
||||
export default function FixMouseY(target) {
|
||||
if (CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 0) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBar === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarPos === 0
|
||||
) {
|
||||
const timerBarHeight = parseInt(l('CMTimerBar').style.height, 10);
|
||||
Game.mouseY -= timerBarHeight;
|
||||
target();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import jscolor from '@eastdesire/jscolor';
|
||||
import { CMOptions } from '../../Config/VariablesAndData';
|
||||
|
||||
import CMBeautify from '../../Disp/BeautifyAndFormatting/Beautify';
|
||||
import FormatTime from '../../Disp/BeautifyAndFormatting/FormatTime';
|
||||
import { AddAuraInfo, AddDragonLevelUpTooltip } from '../../Disp/Dragon/Dragon';
|
||||
@@ -86,7 +86,7 @@ export default function ReplaceNative() {
|
||||
*/
|
||||
Game.ClickProduct = function (what) {
|
||||
if (
|
||||
!CMOptions.BulkBuyBlock ||
|
||||
!Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BulkBuyBlock ||
|
||||
Game.ObjectsById[what].bulkPrice < Game.cookies ||
|
||||
Game.buyMode === -1
|
||||
) {
|
||||
|
||||
@@ -9,4 +9,5 @@ export const Game = {
|
||||
LeftBackground: { canvas: { parentNode: {} } },
|
||||
RebuildUpgrades() {},
|
||||
UpgradesInStore: {},
|
||||
mods: { cookieMonsterFramework: { saveData: { cookieMonsterMod: { settings: {} } } } },
|
||||
};
|
||||
|
||||
@@ -3,7 +3,6 @@ import { assert } from 'chai';
|
||||
import { l, Game } from '../../GlobalsForTesting';
|
||||
|
||||
import ToggleBotBar from '../../../src/Config/Toggles/ToggleBotBar';
|
||||
import { CMOptions } from '../../../src/Config/VariablesAndData';
|
||||
|
||||
describe('ToggleBotBar', () => {
|
||||
global.l = l;
|
||||
@@ -16,7 +15,7 @@ describe('ToggleBotBar', () => {
|
||||
|
||||
describe('BotBar = 0', () => {
|
||||
before(() => {
|
||||
CMOptions.BotBar = 0;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar = 0;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(domids.CMBotBar.style.display, 'none'); // eslint-disable-line no-undef
|
||||
@@ -24,7 +23,7 @@ describe('ToggleBotBar', () => {
|
||||
});
|
||||
describe('BotBar = 1', () => {
|
||||
before(() => {
|
||||
CMOptions.BotBar = 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar = 1;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(domids.CMBotBar.style.display, ''); // eslint-disable-line no-undef
|
||||
|
||||
@@ -2,7 +2,6 @@ import { before, beforeEach, describe, it } from 'mocha';
|
||||
import { assert } from 'chai';
|
||||
import { Game } from '../../GlobalsForTesting';
|
||||
|
||||
import { CMOptions } from '../../../src/Config/VariablesAndData';
|
||||
import ToggleDetailedTime from '../../../src/Config/Toggles/ToggleDetailedTime';
|
||||
import { BackupFunctions } from '../../../src/Main/VariablesAndData';
|
||||
|
||||
@@ -15,7 +14,7 @@ describe('ToggleDetailedTime', () => {
|
||||
|
||||
describe('DetailedTime = 0', () => {
|
||||
before(() => {
|
||||
CMOptions.DetailedTime = 0;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.DetailedTime = 0;
|
||||
BackupFunctions.sayTime = 'BackupFunctions.sayTime';
|
||||
});
|
||||
it('Set correct time function', () => {
|
||||
@@ -24,7 +23,7 @@ describe('ToggleDetailedTime', () => {
|
||||
});
|
||||
describe('DetailedTime = 1', () => {
|
||||
before(() => {
|
||||
CMOptions.DetailedTime = 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.DetailedTime = 1;
|
||||
});
|
||||
it('Set correct time function', () => {
|
||||
assert.equal(Game.sayTime.name, 'CMSayTime');
|
||||
|
||||
@@ -2,7 +2,6 @@ import { before, beforeEach, describe, it } from 'mocha';
|
||||
import { assert } from 'chai';
|
||||
import { l } from '../../GlobalsForTesting';
|
||||
|
||||
import { CMOptions } from '../../../src/Config/VariablesAndData';
|
||||
import ToggleGCTimer from '../../../src/Config/Toggles/ToggleGCTimer';
|
||||
import { GCTimers } from '../../../src/Disp/VariablesAndData';
|
||||
import { CacheGoldenShimmersByID } from '../../../src/Cache/VariablesAndData';
|
||||
@@ -25,7 +24,7 @@ describe('ToggleGCTimer', () => {
|
||||
|
||||
describe('GCTimer = 0', () => {
|
||||
before(() => {
|
||||
CMOptions.GCTimer = 0;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GCTimer = 0;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(GCTimers[0].style.display, 'none');
|
||||
@@ -34,7 +33,7 @@ describe('ToggleGCTimer', () => {
|
||||
});
|
||||
describe('GCTimer = 1', () => {
|
||||
before(() => {
|
||||
CMOptions.GCTimer = 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GCTimer = 1;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(GCTimers[0].style.display, 'block');
|
||||
|
||||
@@ -2,7 +2,6 @@ import { before, beforeEach, describe, it } from 'mocha';
|
||||
import { assert } from 'chai';
|
||||
import { l } from '../../GlobalsForTesting';
|
||||
|
||||
import { CMOptions } from '../../../src/Config/VariablesAndData';
|
||||
import ToggleSectionHideButtons from '../../../src/Config/Toggles/ToggleSectionHideButtons';
|
||||
|
||||
describe('ToggleSectionHideButtons', () => {
|
||||
@@ -15,7 +14,7 @@ describe('ToggleSectionHideButtons', () => {
|
||||
|
||||
describe('HideSectionsButtons = 0', () => {
|
||||
before(() => {
|
||||
CMOptions.HideSectionsButtons = 0;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.HideSectionsButtons = 0;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(domids.CMSectionHidButtons.style.display, 'none'); // eslint-disable-line no-undef
|
||||
@@ -23,7 +22,7 @@ describe('ToggleSectionHideButtons', () => {
|
||||
});
|
||||
describe('HideSectionsButtons = 1', () => {
|
||||
before(() => {
|
||||
CMOptions.HideSectionsButtons = 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.HideSectionsButtons = 1;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(domids.CMSectionHidButtons.style.display, ''); // eslint-disable-line no-undef
|
||||
|
||||
@@ -2,7 +2,6 @@ import { before, beforeEach, describe, it } from 'mocha';
|
||||
import { assert } from 'chai';
|
||||
import { l } from '../../GlobalsForTesting';
|
||||
|
||||
import { CMOptions } from '../../../src/Config/VariablesAndData';
|
||||
import ToggleToolWarnPos from '../../../src/Config/Toggles/ToggleToolWarnPos';
|
||||
|
||||
describe('ToggleToolWarnPos', () => {
|
||||
@@ -15,7 +14,7 @@ describe('ToggleToolWarnPos', () => {
|
||||
|
||||
describe('ToolWarnPos = 0', () => {
|
||||
before(() => {
|
||||
CMOptions.ToolWarnPos = 0;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnPos = 0;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(domids.CMDispTooltipWarningParent.style.top, 'auto'); // eslint-disable-line no-undef
|
||||
@@ -25,7 +24,7 @@ describe('ToggleToolWarnPos', () => {
|
||||
});
|
||||
describe('ToolWarnPos = 1', () => {
|
||||
before(() => {
|
||||
CMOptions.ToolWarnPos = 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnPos = 1;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(domids.CMDispTooltipWarningParent.style.right, 'auto'); // eslint-disable-line no-undef
|
||||
|
||||
@@ -2,7 +2,6 @@ import { before, beforeEach, describe, it } from 'mocha';
|
||||
import { assert } from 'chai';
|
||||
import { l, Game } from '../../GlobalsForTesting';
|
||||
|
||||
import { CMOptions } from '../../../src/Config/VariablesAndData';
|
||||
import ToggleUpgradeBarAndColor from '../../../src/Config/Toggles/ToggleUpgradeBarAndColour';
|
||||
|
||||
describe('ToggleUpgradeBarAndColor', () => {
|
||||
@@ -16,7 +15,7 @@ describe('ToggleUpgradeBarAndColor', () => {
|
||||
|
||||
describe('UpBarColor = 0', () => {
|
||||
before(() => {
|
||||
CMOptions.UpBarColor = 0;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor = 0;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(domids.CMUpgradeBar.style.display, 'none'); // eslint-disable-line no-undef
|
||||
@@ -24,7 +23,7 @@ describe('ToggleUpgradeBarAndColor', () => {
|
||||
});
|
||||
describe('UpBarColor = 1', () => {
|
||||
before(() => {
|
||||
CMOptions.UpBarColor = 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor = 1;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(domids.CMUpgradeBar.style.display, ''); // eslint-disable-line no-undef
|
||||
@@ -32,7 +31,7 @@ describe('ToggleUpgradeBarAndColor', () => {
|
||||
});
|
||||
describe('UpBarColor = 2', () => {
|
||||
before(() => {
|
||||
CMOptions.UpBarColor = 2;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor = 2;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(domids.CMUpgradeBar.style.display, 'none'); // eslint-disable-line no-undef
|
||||
|
||||
@@ -2,7 +2,6 @@ import { before, beforeEach, describe, it } from 'mocha';
|
||||
import { assert } from 'chai';
|
||||
import { l } from '../../GlobalsForTesting';
|
||||
|
||||
import { CMOptions } from '../../../src/Config/VariablesAndData';
|
||||
import ToggleUpgradeBarFixedPos from '../../../src/Config/Toggles/ToggleUpgradeBarFixedPos';
|
||||
|
||||
describe('ToggleUpgradeBarFixedPos', () => {
|
||||
@@ -15,7 +14,7 @@ describe('ToggleUpgradeBarFixedPos', () => {
|
||||
|
||||
describe('UpgradeBarFixedPos = 0', () => {
|
||||
before(() => {
|
||||
CMOptions.UpgradeBarFixedPos = 0;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpgradeBarFixedPos = 0;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(domids.CMUpgradeBar.style.position, ''); // eslint-disable-line no-undef
|
||||
@@ -23,7 +22,7 @@ describe('ToggleUpgradeBarFixedPos', () => {
|
||||
});
|
||||
describe('UpgradeBarFixedPos = 1', () => {
|
||||
before(() => {
|
||||
CMOptions.UpgradeBarFixedPos = 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpgradeBarFixedPos = 1;
|
||||
});
|
||||
it('Toggle style correctly', () => {
|
||||
assert.equal(domids.CMUpgradeBar.style.position, 'sticky'); // eslint-disable-line no-undef
|
||||
|
||||
@@ -2,7 +2,6 @@ import { before, beforeEach, describe, it } from 'mocha';
|
||||
import { assert } from 'chai';
|
||||
import { l, Game } from '../../GlobalsForTesting';
|
||||
|
||||
import { CMOptions } from '../../../src/Config/VariablesAndData';
|
||||
import ToggleWrinklerButtons from '../../../src/Config/Toggles/ToggleWrinklerButtons';
|
||||
|
||||
describe('ToggleWrinklerButtons', () => {
|
||||
@@ -16,7 +15,7 @@ describe('ToggleWrinklerButtons', () => {
|
||||
|
||||
describe('WrinklerButtons = 0', () => {
|
||||
before(() => {
|
||||
CMOptions.WrinklerButtons = 0;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.WrinklerButtons = 0;
|
||||
});
|
||||
describe('Game.elderWrath = 0', () => {
|
||||
before(() => {
|
||||
@@ -39,7 +38,7 @@ describe('ToggleWrinklerButtons', () => {
|
||||
});
|
||||
describe('WrinklerButtons = 1', () => {
|
||||
before(() => {
|
||||
CMOptions.WrinklerButtons = 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.WrinklerButtons = 1;
|
||||
});
|
||||
describe('Game.elderWrath = 0', () => {
|
||||
before(() => {
|
||||
|
||||
@@ -2,7 +2,6 @@ import { before, describe, it } from 'mocha';
|
||||
import { assert } from 'chai';
|
||||
|
||||
import FormatTime from '../../src/Disp/BeautifyAndFormatting/FormatTime';
|
||||
import { CMOptions } from '../../src/Config/VariablesAndData';
|
||||
|
||||
describe('FormatTime', () => {
|
||||
it('Format when time is Infinity', () => {
|
||||
@@ -13,7 +12,7 @@ describe('FormatTime', () => {
|
||||
});
|
||||
describe('TimeFormat = 0', () => {
|
||||
before(() => {
|
||||
CMOptions.TimeFormat = 0;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimeFormat = 0;
|
||||
});
|
||||
describe('Longformat = 0', () => {
|
||||
it('Format when time is 0', () => {
|
||||
@@ -70,7 +69,7 @@ describe('FormatTime', () => {
|
||||
});
|
||||
describe('TimeFormat = 1', () => {
|
||||
before(() => {
|
||||
CMOptions.TimeFormat = 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimeFormat = 1;
|
||||
});
|
||||
it('Format when time is 0', () => {
|
||||
assert.equal(FormatTime(0, 0), '00:00:00:00:00');
|
||||
|
||||
@@ -2,7 +2,6 @@ import { before, describe, it } from 'mocha';
|
||||
import { expect } from 'chai';
|
||||
|
||||
import GetTimeColour from '../../src/Disp/BeautifyAndFormatting/GetTimeColour';
|
||||
import { CMOptions } from '../../src/Config/VariablesAndData';
|
||||
|
||||
describe('GetTimeColour', () => {
|
||||
it('Format when time is less than 60', () => {
|
||||
@@ -16,7 +15,7 @@ describe('GetTimeColour', () => {
|
||||
});
|
||||
describe('TimeFormat = 0', () => {
|
||||
before(() => {
|
||||
CMOptions.TimeFormat = 0;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimeFormat = 0;
|
||||
});
|
||||
it('Format when time is 0', () => {
|
||||
expect(GetTimeColour(0)).to.deep.equal({ text: 'Done!', color: 'Green' });
|
||||
@@ -30,7 +29,7 @@ describe('GetTimeColour', () => {
|
||||
});
|
||||
describe('TimeFormat = 1', () => {
|
||||
before(() => {
|
||||
CMOptions.TimeFormat = 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimeFormat = 1;
|
||||
});
|
||||
it('Format when time is 0', () => {
|
||||
expect(GetTimeColour(0)).to.deep.equal({
|
||||
|
||||
Reference in New Issue
Block a user