Merge pull request #803 from DanielNoord/exposedata
Couple of new functions
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
"recursive": true,
|
"recursive": true,
|
||||||
"require": ["esm", "ts-node/register"],
|
"require": ["esm", "ts-node/register"]
|
||||||
"reporter": "min"
|
|
||||||
}
|
}
|
||||||
|
|||||||
11
README.md
11
README.md
@@ -19,7 +19,8 @@ max(cost - cookies in bank, 0)/cps + cost/Δ cps
|
|||||||
|
|
||||||
If the relevant option is enabled, CM will color-code each of them based on their value. CM compares the PP across all possible buy options: if a buy 10 option is better than any of the buy 1 options Cookie Monster will colour them accordingly. Note that sometimes it is better to buy 10 of a building than to buy only 1, CM will also indicate this!
|
If the relevant option is enabled, CM will color-code each of them based on their value. CM compares the PP across all possible buy options: if a buy 10 option is better than any of the buy 1 options Cookie Monster will colour them accordingly. Note that sometimes it is better to buy 10 of a building than to buy only 1, CM will also indicate this!
|
||||||
|
|
||||||
The following standard colours are used:
|
<details>
|
||||||
|
<summary>The following standard colours are used:</summary>
|
||||||
|
|
||||||
* Light Blue: (upgrades) This item has a better PP than the best building to buy
|
* Light Blue: (upgrades) This item has a better PP than the best building to buy
|
||||||
* Green: This building has the best PP
|
* Green: This building has the best PP
|
||||||
@@ -29,6 +30,8 @@ The following standard colours are used:
|
|||||||
* Purple: This building is worse than the top 10 of best PP's
|
* Purple: This building is worse than the top 10 of best PP's
|
||||||
* Gray: This item does not have a PP, often this means that there is no change to CPS
|
* Gray: This item does not have a PP, often this means that there is no change to CPS
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
Note: For this index, **lower is better**, meaning a building with a PP of 1 is more interesting than one with a PP of 3.
|
Note: For this index, **lower is better**, meaning a building with a PP of 1 is more interesting than one with a PP of 3.
|
||||||
|
|
||||||
## Using
|
## Using
|
||||||
@@ -59,6 +62,12 @@ Before submitting a bug, make sure to give a shot at the latest version of the a
|
|||||||
|
|
||||||
All suggestions are welcome, even the smallest ones.
|
All suggestions are welcome, even the smallest ones.
|
||||||
|
|
||||||
|
## For developers
|
||||||
|
|
||||||
|
Cookie Monster exposes some of the data it creates to the global scope. This data can be found in the `CookieMonsterData` object after loading Cookie Monster.
|
||||||
|
|
||||||
|
Currently we exposes relevant data for buildings and upgrades (PP, colour and bonus income). If you would like us to add any aditional data, please feel free to open an issue or create a PR doing so!
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
To contribute you can fork and clone the repository and run `npm install`.
|
To contribute you can fork and clone the repository and run `npm install`.
|
||||||
|
|||||||
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
@@ -12,7 +12,7 @@
|
|||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"eslint-src": "eslint src test",
|
"eslint-src": "eslint src test",
|
||||||
"build": "run-s eslint-src pack-prod test",
|
"build": "run-s eslint-src test pack-prod",
|
||||||
"build-test": "run-s pack-dev",
|
"build-test": "run-s pack-dev",
|
||||||
"pack-prod": "webpack --env production",
|
"pack-prod": "webpack --env production",
|
||||||
"pack-dev": "webpack",
|
"pack-dev": "webpack",
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/Aktanusa/CookieMonster.git"
|
"url": "git+https://github.com/CookieMonsterTeam/CookieMonster"
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"author": {
|
"author": {
|
||||||
@@ -39,9 +39,9 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/Aktanusa/CookieMonster/issues"
|
"url": "https://github.com/CookieMonsterTeam/CookieMonster/issues"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/Aktanusa/CookieMonster#readme",
|
"homepage": "https://github.com/CookieMonsterTeam/CookieMonster#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/chai": "^4.2.17",
|
"@types/chai": "^4.2.17",
|
||||||
"@types/mocha": "^8.2.2",
|
"@types/mocha": "^8.2.2",
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import GetWrinkConfigBank from '../../Disp/HelperFunctions/GetWrinkConfigBank';
|
|||||||
import { ColourGray } from '../../Disp/VariablesAndData';
|
import { ColourGray } from '../../Disp/VariablesAndData';
|
||||||
import {
|
import {
|
||||||
CacheMinPP, // eslint-disable-line no-unused-vars
|
CacheMinPP, // eslint-disable-line no-unused-vars
|
||||||
|
CacheMinPPBulk, // eslint-disable-line no-unused-vars
|
||||||
CacheObjects1,
|
CacheObjects1,
|
||||||
CacheObjects10,
|
CacheObjects10,
|
||||||
CacheObjects100,
|
CacheObjects100,
|
||||||
@@ -38,7 +39,8 @@ function CachePP(target, amount) {
|
|||||||
Math.max(price - (Game.cookies + GetWrinkConfigBank()), 0) / Game.cookiesPs +
|
Math.max(price - (Game.cookies + GetWrinkConfigBank()), 0) / Game.cookiesPs +
|
||||||
price / target[i].bonus;
|
price / target[i].bonus;
|
||||||
} else target[i].pp = price / target[i].bonus; // eslint-disable-line no-param-reassign
|
} else target[i].pp = price / target[i].bonus; // eslint-disable-line no-param-reassign
|
||||||
if (!(CMOptions.PPRigidelMode && amount === 1)) CachePPArray.push([target[i].pp, amount]);
|
if (!(CMOptions.PPRigidelMode && amount === 1))
|
||||||
|
CachePPArray.push([target[i].pp, amount, price]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,16 +60,17 @@ export default function CacheBuildingsPP() {
|
|||||||
|
|
||||||
// Set CM.Cache.min to best non-excluded buidliung
|
// Set CM.Cache.min to best non-excluded buidliung
|
||||||
CachePPArray.sort((a, b) => a[0] - b[0]);
|
CachePPArray.sort((a, b) => a[0] - b[0]);
|
||||||
let indexOfMin = 0;
|
let indexOfMin = CMOptions.PPExcludeTop;
|
||||||
if (CMOptions.PPOnlyConsiderBuyable) {
|
if (CMOptions.PPOnlyConsiderBuyable) {
|
||||||
while (CachePPArray[indexOfMin][1] > Game.cookies) {
|
while (CachePPArray[indexOfMin][2] > Game.cookies) {
|
||||||
indexOfMin += 1;
|
indexOfMin += 1;
|
||||||
if (CachePPArray.length === indexOfMin + 1) {
|
if (CachePPArray.length === indexOfMin + 1) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CacheMinPP = CachePPArray[CMOptions.PPExcludeTop][indexOfMin];
|
CacheMinPP = CachePPArray[indexOfMin][0];
|
||||||
|
CacheMinPPBulk = CachePPArray[indexOfMin][1];
|
||||||
|
|
||||||
CacheColour(CacheObjects1, 1);
|
CacheColour(CacheObjects1, 1);
|
||||||
CacheColour(CacheObjects10, 10);
|
CacheColour(CacheObjects10, 10);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Section: Functions related to caching PP */
|
* Section: Functions related to caching PP */
|
||||||
|
|
||||||
|
import { CacheObjects1, CacheObjects10, CacheObjects100, CacheUpgrades } from '../VariablesAndData';
|
||||||
import CacheBuildingsPP from './Building';
|
import CacheBuildingsPP from './Building';
|
||||||
import CacheUpgradePP from './Upgrade';
|
import CacheUpgradePP from './Upgrade';
|
||||||
|
|
||||||
@@ -11,4 +12,11 @@ import CacheUpgradePP from './Upgrade';
|
|||||||
export default function CachePP() {
|
export default function CachePP() {
|
||||||
CacheBuildingsPP();
|
CacheBuildingsPP();
|
||||||
CacheUpgradePP();
|
CacheUpgradePP();
|
||||||
|
window.CookieMonsterData.Objects1 = JSON.parse(JSON.stringify(CacheObjects1));
|
||||||
|
window.CookieMonsterData.Objects10 = JSON.parse(JSON.stringify(CacheObjects10));
|
||||||
|
window.CookieMonsterData.Objects100 = JSON.parse(JSON.stringify(CacheObjects100));
|
||||||
|
window.CookieMonsterData.Upgrades = [];
|
||||||
|
Object.entries(CacheUpgrades).forEach((i) => {
|
||||||
|
window.CookieMonsterData.Upgrades[i[0]] = JSON.parse(JSON.stringify(i[1]));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ export let CacheTimeTillNextPrestige = 0;
|
|||||||
|
|
||||||
/** Stores lowest PP value */
|
/** Stores lowest PP value */
|
||||||
export let CacheMinPP = 0;
|
export let CacheMinPP = 0;
|
||||||
|
/** Stores lowest PP value category */
|
||||||
|
export let CacheMinPPBulk = 0;
|
||||||
/** Stores all PP values of all buildings for all buy settings (1, 10, 100) */
|
/** Stores all PP values of all buildings for all buy settings (1, 10, 100) */
|
||||||
export let CachePPArray = [];
|
export let CachePPArray = [];
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
import { CacheObjects1, CacheObjects10, CacheObjects100 } from '../../Cache/VariablesAndData';
|
import {
|
||||||
|
CacheMinPPBulk,
|
||||||
|
CacheObjects1,
|
||||||
|
CacheObjects10,
|
||||||
|
CacheObjects100,
|
||||||
|
} from '../../Cache/VariablesAndData';
|
||||||
import { CMOptions } from '../../Config/VariablesAndData';
|
import { CMOptions } from '../../Config/VariablesAndData';
|
||||||
import BuildingSell from '../../Sim/SimulationEvents/SellBuilding';
|
import BuildingSell from '../../Sim/SimulationEvents/SellBuilding';
|
||||||
import Beautify from '../BeautifyAndFormatting/Beautify';
|
import Beautify from '../BeautifyAndFormatting/Beautify';
|
||||||
@@ -24,11 +29,17 @@ export default function UpdateBuildings() {
|
|||||||
else if (target === 10) target = CacheObjects10;
|
else if (target === 10) target = CacheObjects10;
|
||||||
else if (target === 100) target = CacheObjects100;
|
else if (target === 100) target = CacheObjects100;
|
||||||
|
|
||||||
|
// Remove colour if applied
|
||||||
|
l(`storeBulk1`).style.removeProperty('color');
|
||||||
|
l(`storeBulk10`).style.removeProperty('color');
|
||||||
|
l(`storeBulk100`).style.removeProperty('color');
|
||||||
|
|
||||||
if (Game.buyMode === 1) {
|
if (Game.buyMode === 1) {
|
||||||
if (CMOptions.BuildColour === 1) {
|
if (CMOptions.BuildColour === 1) {
|
||||||
Object.keys(target).forEach((i) => {
|
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 = CMOptions[`Colour${target[i].color}`];
|
||||||
});
|
});
|
||||||
|
l(`storeBulk${CacheMinPPBulk}`).style.color = CMOptions.ColourGreen;
|
||||||
} else {
|
} else {
|
||||||
Object.keys(Game.Objects).forEach((i) => {
|
Object.keys(Game.Objects).forEach((i) => {
|
||||||
l(`productPrice${Game.Objects[i].id}`).style.removeProperty('color');
|
l(`productPrice${Game.Objects[i].id}`).style.removeProperty('color');
|
||||||
|
|||||||
@@ -20,7 +20,10 @@ export function CreateFavicon() {
|
|||||||
export function UpdateFavicon() {
|
export function UpdateFavicon() {
|
||||||
if (CMOptions.Favicon === 1 && LastGoldenCookieState > 0) {
|
if (CMOptions.Favicon === 1 && LastGoldenCookieState > 0) {
|
||||||
if (CacheSpawnedGoldenShimmer.wrath)
|
if (CacheSpawnedGoldenShimmer.wrath)
|
||||||
l('CMFavicon').href = 'https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico';
|
l('CMFavicon').href =
|
||||||
else l('CMFavicon').href = 'https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico';
|
'https://CookieMonsterTeam.github.io/CookieMonster/favicon/wrathCookie.ico';
|
||||||
|
else
|
||||||
|
l('CMFavicon').href =
|
||||||
|
'https://CookieMonsterTeam.github.io/CookieMonster/favicon/goldenCookie.ico';
|
||||||
} else l('CMFavicon').href = 'https://orteil.dashnet.org/cookieclicker/favicon.ico';
|
} else l('CMFavicon').href = 'https://orteil.dashnet.org/cookieclicker/favicon.ico';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,9 @@ import AddWrinklerAreaDetect from './WrinklerArea/AddDetectArea';
|
|||||||
* Initialization loop of Cookie Monster
|
* Initialization loop of Cookie Monster
|
||||||
*/
|
*/
|
||||||
export default function InitializeCookieMonster() {
|
export default function InitializeCookieMonster() {
|
||||||
|
// Create global data object
|
||||||
|
window.CookieMonsterData = {};
|
||||||
|
|
||||||
InitData();
|
InitData();
|
||||||
CacheStatsCookies();
|
CacheStatsCookies();
|
||||||
InitCache();
|
InitCache();
|
||||||
|
|||||||
Reference in New Issue
Block a user