Merge pull request #803 from DanielNoord/exposedata
Couple of new functions
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"recursive": true,
|
||||
"require": ["esm", "ts-node/register"],
|
||||
"reporter": "min"
|
||||
"require": ["esm", "ts-node/register"]
|
||||
}
|
||||
|
||||
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!
|
||||
|
||||
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
|
||||
* 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
|
||||
* 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.
|
||||
|
||||
## 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.
|
||||
|
||||
## 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
|
||||
|
||||
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": {
|
||||
"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",
|
||||
"pack-prod": "webpack --env production",
|
||||
"pack-dev": "webpack",
|
||||
@@ -20,7 +20,7 @@
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/Aktanusa/CookieMonster.git"
|
||||
"url": "git+https://github.com/CookieMonsterTeam/CookieMonster"
|
||||
},
|
||||
"license": "MIT",
|
||||
"author": {
|
||||
@@ -39,9 +39,9 @@
|
||||
}
|
||||
],
|
||||
"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": {
|
||||
"@types/chai": "^4.2.17",
|
||||
"@types/mocha": "^8.2.2",
|
||||
|
||||
@@ -3,6 +3,7 @@ import GetWrinkConfigBank from '../../Disp/HelperFunctions/GetWrinkConfigBank';
|
||||
import { ColourGray } from '../../Disp/VariablesAndData';
|
||||
import {
|
||||
CacheMinPP, // eslint-disable-line no-unused-vars
|
||||
CacheMinPPBulk, // eslint-disable-line no-unused-vars
|
||||
CacheObjects1,
|
||||
CacheObjects10,
|
||||
CacheObjects100,
|
||||
@@ -38,7 +39,8 @@ 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)) 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
|
||||
CachePPArray.sort((a, b) => a[0] - b[0]);
|
||||
let indexOfMin = 0;
|
||||
let indexOfMin = CMOptions.PPExcludeTop;
|
||||
if (CMOptions.PPOnlyConsiderBuyable) {
|
||||
while (CachePPArray[indexOfMin][1] > Game.cookies) {
|
||||
while (CachePPArray[indexOfMin][2] > Game.cookies) {
|
||||
indexOfMin += 1;
|
||||
if (CachePPArray.length === indexOfMin + 1) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
CacheMinPP = CachePPArray[CMOptions.PPExcludeTop][indexOfMin];
|
||||
CacheMinPP = CachePPArray[indexOfMin][0];
|
||||
CacheMinPPBulk = CachePPArray[indexOfMin][1];
|
||||
|
||||
CacheColour(CacheObjects1, 1);
|
||||
CacheColour(CacheObjects10, 10);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* Section: Functions related to caching PP */
|
||||
|
||||
import { CacheObjects1, CacheObjects10, CacheObjects100, CacheUpgrades } from '../VariablesAndData';
|
||||
import CacheBuildingsPP from './Building';
|
||||
import CacheUpgradePP from './Upgrade';
|
||||
|
||||
@@ -11,4 +12,11 @@ import CacheUpgradePP from './Upgrade';
|
||||
export default function CachePP() {
|
||||
CacheBuildingsPP();
|
||||
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 */
|
||||
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) */
|
||||
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 BuildingSell from '../../Sim/SimulationEvents/SellBuilding';
|
||||
import Beautify from '../BeautifyAndFormatting/Beautify';
|
||||
@@ -24,11 +29,17 @@ export default function UpdateBuildings() {
|
||||
else if (target === 10) target = CacheObjects10;
|
||||
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 (CMOptions.BuildColour === 1) {
|
||||
Object.keys(target).forEach((i) => {
|
||||
l(`productPrice${Game.Objects[i].id}`).style.color = CMOptions[`Colour${target[i].color}`];
|
||||
});
|
||||
l(`storeBulk${CacheMinPPBulk}`).style.color = CMOptions.ColourGreen;
|
||||
} else {
|
||||
Object.keys(Game.Objects).forEach((i) => {
|
||||
l(`productPrice${Game.Objects[i].id}`).style.removeProperty('color');
|
||||
|
||||
@@ -20,7 +20,10 @@ export function CreateFavicon() {
|
||||
export function UpdateFavicon() {
|
||||
if (CMOptions.Favicon === 1 && LastGoldenCookieState > 0) {
|
||||
if (CacheSpawnedGoldenShimmer.wrath)
|
||||
l('CMFavicon').href = 'https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico';
|
||||
else l('CMFavicon').href = 'https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico';
|
||||
l('CMFavicon').href =
|
||||
'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';
|
||||
}
|
||||
|
||||
@@ -24,6 +24,9 @@ import AddWrinklerAreaDetect from './WrinklerArea/AddDetectArea';
|
||||
* Initialization loop of Cookie Monster
|
||||
*/
|
||||
export default function InitializeCookieMonster() {
|
||||
// Create global data object
|
||||
window.CookieMonsterData = {};
|
||||
|
||||
InitData();
|
||||
CacheStatsCookies();
|
||||
InitCache();
|
||||
|
||||
Reference in New Issue
Block a user