Merge pull request #912 from CookieMonsterTeam/dev

Bump master to 2.031.10
This commit is contained in:
Daniël van Noord
2021-07-25 15:33:37 +02:00
committed by GitHub
43 changed files with 521 additions and 544 deletions

View File

@@ -24,19 +24,20 @@ jobs:
run: npx mocha
- name: Check if CookieMonsterDev.js is built correctly
run: |
npx webpack -o ./tmp --env production
npx webpack -o ./tmp --env minimize
if cmp <(head -n 2 dist/CookieMonsterDev.js) <(head -n 2 tmp/CookieMonsterDev.js); then
echo '### SUCCESS: CookieMonsterDev is correctly built! ###'
echo '### SUCCESS: CookieMonsterDev is built correctly! ###'
else
echo '### WARNING: CookieMonsterDev.js does not seem to be correct. Make sure to run "npm run build" after saving all your changes! ###'
echo '### WARNING: CookieMonsterDev.js does not seem to be correct. Make sure to run "npm run build-dev" after saving all your changes! ###'
exit 1
fi
- name: Check if CookieMonster.js is built correctly
if: github.ref == 'refs/heads/master'
run: |
if cmp <(head -n 2 dist/CookieMonsterDev.js) <(head -n 2 dist/CookieMonster.js); then
echo '### SUCCESS: CookieMonster is correctly built! ###'
npx webpack -o ./tmp --env minimize --env finalfile
if cmp <(head -n 2 dist/CookieMonster.js) <(head -n 2 tmp/CookieMonster.js); then
echo '### SUCCESS: CookieMonster is built correctly! ###'
else
echo '### WARNING: CookieMonster.js does not seem to be correct. Make sure to copy CookieMonsterDev.js into CookieMonster.js before merging to master! ###'
echo '### WARNING: CookieMonster.js does not seem to be correct. Make sure to run "npm run build-final" after saving all your changes! ###'
exit 1
fi

View File

@@ -74,9 +74,9 @@ Currently we exposes relevant data for buildings and upgrades (PP, colour and bo
To contribute you can fork and clone the repository and run `npm install`. Note that you will need to authenticate to the GitHub Package Registery (see [this documentation](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-npm-registry#authenticating-to-github-packages)). After creating a Public Access Token you should export this variable to $GITHUB_REGISTERY_PAT as defined in `.npmrc`.
Please also remember to run `npm run build` after saving all your changes to build the final `CookieMonsterDev.js` file.
Please also remember to run `npm run build-dev` after saving all your changes to build the final `CookieMonsterDev.js` file.
Before pushing a new version to master and Github pages copy the `Dev` files into the normal files.
Before pushing a new version to `main` and Github pages use the `build-final` command to build the final file.
## Contributors

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

272
package-lock.json generated
View File

@@ -1,22 +1,22 @@
{
"name": "cookiemonster-mod",
"version": "2.031.7",
"version": "2.031.9",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "cookiemonster-mod",
"version": "2.031.7",
"version": "2.031.9",
"license": "MIT",
"dependencies": {
"@cookiemonsterteam/cookiemonsterframework": "^0.2.0",
"@cookiemonsterteam/cookiemonsterframework": "^0.2.1",
"@eastdesire/jscolor": "^2.4.5"
},
"devDependencies": {
"@types/chai": "^4.2.19",
"@types/mocha": "^8.2.2",
"@typescript-eslint/eslint-plugin": "^4.28.3",
"@typescript-eslint/parser": "^4.28.3",
"@types/mocha": "^9.0.0",
"@typescript-eslint/eslint-plugin": "^4.28.4",
"@typescript-eslint/parser": "^4.28.4",
"chai": "^4.3.4",
"eslint": "^7.31.0",
"eslint-config-airbnb-base": "^14.2.1",
@@ -43,9 +43,9 @@
}
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz",
"integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==",
"version": "7.14.8",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz",
"integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@@ -137,9 +137,9 @@
}
},
"node_modules/@cookiemonsterteam/cookiemonsterframework": {
"version": "0.2.0",
"resolved": "https://npm.pkg.github.com/download/@cookiemonsterteam/cookiemonsterframework/0.2.0/0e38bd032c0746e1bb52446ac51217a2dc8460eda6fddba4b804450ead7306e8",
"integrity": "sha512-xezyE14jwE1jIe+Rkmk7TD+gJECTypfW7OMs1hVXvQ4CrjkkmsTQj44eA2mAyTnP2tTPBj6RYVq7cty/KlRTDw==",
"version": "0.2.1",
"resolved": "https://npm.pkg.github.com/download/@cookiemonsterteam/cookiemonsterframework/0.2.1/ecdb3353590590a95d3cafa98a1e11c36ee877089a669129f43a6de45599c0fa",
"integrity": "sha512-WwwFN7EZ1eYYj7+DpW2XOoaQewGP95l9WPsGeNDClW6Q9n1v2AKVgTTiBytcsccnyDZQpdmvXewnrvBvyI7JbQ==",
"license": "MIT",
"dependencies": {
"@eastdesire/jscolor": "^2.4.5"
@@ -253,9 +253,9 @@
"dev": true
},
"node_modules/@tsconfig/node16": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz",
"integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
"dev": true
},
"node_modules/@types/chai": {
@@ -297,25 +297,25 @@
"dev": true
},
"node_modules/@types/mocha": {
"version": "8.2.3",
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz",
"integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==",
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz",
"integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==",
"dev": true
},
"node_modules/@types/node": {
"version": "16.3.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.3.tgz",
"integrity": "sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ==",
"version": "16.4.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.0.tgz",
"integrity": "sha512-HrJuE7Mlqcjj+00JqMWpZ3tY8w7EUd+S0U3L1+PQSWiXZbOgyQDvi+ogoUxaHApPJq5diKxYBQwA3iIlNcPqOg==",
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.3.tgz",
"integrity": "sha512-jW8sEFu1ZeaV8xzwsfi6Vgtty2jf7/lJmQmDkDruBjYAbx5DA8JtbcMnP0rNPUG+oH5GoQBTSp+9613BzuIpYg==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.4.tgz",
"integrity": "sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw==",
"dev": true,
"dependencies": {
"@typescript-eslint/experimental-utils": "4.28.3",
"@typescript-eslint/scope-manager": "4.28.3",
"@typescript-eslint/experimental-utils": "4.28.4",
"@typescript-eslint/scope-manager": "4.28.4",
"debug": "^4.3.1",
"functional-red-black-tree": "^1.0.1",
"regexpp": "^3.1.0",
@@ -340,15 +340,15 @@
}
},
"node_modules/@typescript-eslint/experimental-utils": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.3.tgz",
"integrity": "sha512-zZYl9TnrxwEPi3FbyeX0ZnE8Hp7j3OCR+ELoUfbwGHGxWnHg9+OqSmkw2MoCVpZksPCZYpQzC559Ee9pJNHTQw==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.4.tgz",
"integrity": "sha512-OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.7",
"@typescript-eslint/scope-manager": "4.28.3",
"@typescript-eslint/types": "4.28.3",
"@typescript-eslint/typescript-estree": "4.28.3",
"@typescript-eslint/scope-manager": "4.28.4",
"@typescript-eslint/types": "4.28.4",
"@typescript-eslint/typescript-estree": "4.28.4",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
},
@@ -364,14 +364,14 @@
}
},
"node_modules/@typescript-eslint/parser": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.3.tgz",
"integrity": "sha512-ZyWEn34bJexn/JNYvLQab0Mo5e+qqQNhknxmc8azgNd4XqspVYR5oHq9O11fLwdZMRcj4by15ghSlIEq+H5ltQ==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.4.tgz",
"integrity": "sha512-4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA==",
"dev": true,
"dependencies": {
"@typescript-eslint/scope-manager": "4.28.3",
"@typescript-eslint/types": "4.28.3",
"@typescript-eslint/typescript-estree": "4.28.3",
"@typescript-eslint/scope-manager": "4.28.4",
"@typescript-eslint/types": "4.28.4",
"@typescript-eslint/typescript-estree": "4.28.4",
"debug": "^4.3.1"
},
"engines": {
@@ -391,13 +391,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.3.tgz",
"integrity": "sha512-/8lMisZ5NGIzGtJB+QizQ5eX4Xd8uxedFfMBXOKuJGP0oaBBVEMbJVddQKDXyyB0bPlmt8i6bHV89KbwOelJiQ==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.4.tgz",
"integrity": "sha512-ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "4.28.3",
"@typescript-eslint/visitor-keys": "4.28.3"
"@typescript-eslint/types": "4.28.4",
"@typescript-eslint/visitor-keys": "4.28.4"
},
"engines": {
"node": "^8.10.0 || ^10.13.0 || >=11.10.1"
@@ -408,9 +408,9 @@
}
},
"node_modules/@typescript-eslint/types": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.3.tgz",
"integrity": "sha512-kQFaEsQBQVtA9VGVyciyTbIg7S3WoKHNuOp/UF5RG40900KtGqfoiETWD/v0lzRXc+euVE9NXmfer9dLkUJrkA==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.4.tgz",
"integrity": "sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww==",
"dev": true,
"engines": {
"node": "^8.10.0 || ^10.13.0 || >=11.10.1"
@@ -421,13 +421,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.3.tgz",
"integrity": "sha512-YAb1JED41kJsqCQt1NcnX5ZdTA93vKFCMP4lQYG6CFxd0VzDJcKttRlMrlG+1qiWAw8+zowmHU1H0OzjWJzR2w==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.4.tgz",
"integrity": "sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "4.28.3",
"@typescript-eslint/visitor-keys": "4.28.3",
"@typescript-eslint/types": "4.28.4",
"@typescript-eslint/visitor-keys": "4.28.4",
"debug": "^4.3.1",
"globby": "^11.0.3",
"is-glob": "^4.0.1",
@@ -448,12 +448,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.3.tgz",
"integrity": "sha512-ri1OzcLnk1HH4gORmr1dllxDzzrN6goUIz/P4MHFV0YZJDCADPR3RvYNp0PW2SetKTThar6wlbFTL00hV2Q+fg==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.4.tgz",
"integrity": "sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "4.28.3",
"@typescript-eslint/types": "4.28.4",
"eslint-visitor-keys": "^2.0.0"
},
"engines": {
@@ -941,9 +941,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001245",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz",
"integrity": "sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==",
"version": "1.0.30001246",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001246.tgz",
"integrity": "sha512-Tc+ff0Co/nFNbLOrziBXmMVtpt9S2c2Y+Z9Nk9Khj09J+0zR9ejvIW5qkZAErCbOrVODCx/MN+GpB5FNBs5GFA==",
"dev": true,
"funding": {
"type": "opencollective",
@@ -1202,9 +1202,9 @@
}
},
"node_modules/electron-to-chromium": {
"version": "1.3.779",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.779.tgz",
"integrity": "sha512-nreave0y/1Qhmo8XtO6C/LpawNyC6U26+q7d814/e+tIqUK073pM+4xW7WUXyqCRa5K4wdxHmNMBAi8ap9nEew==",
"version": "1.3.784",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.784.tgz",
"integrity": "sha512-JTPxdUibkefeomWNaYs8lI/x/Zb4cOhZWX+d7kpzsNKzUd07pNuo/AcHeNJ/qgEchxM1IAxda9aaGUhKN/poOg==",
"dev": true
},
"node_modules/emoji-regex": {
@@ -3552,9 +3552,9 @@
}
},
"node_modules/rechoir": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz",
"integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==",
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
"integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
"dev": true,
"dependencies": {
"resolve": "^1.9.0"
@@ -4333,9 +4333,9 @@
}
},
"node_modules/webpack": {
"version": "5.45.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.45.1.tgz",
"integrity": "sha512-68VT2ZgG9EHs6h6UxfV2SEYewA9BA3SOLSnC2NEbJJiEwbAiueDL033R1xX0jzjmXvMh0oSeKnKgbO2bDXIEyQ==",
"version": "5.46.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.46.0.tgz",
"integrity": "sha512-qxD0t/KTedJbpcXUmvMxY5PUvXDbF8LsThCzqomeGaDlCA6k998D8yYVwZMvO8sSM3BTEOaD4uzFniwpHaTIJw==",
"dev": true,
"dependencies": {
"@types/eslint-scope": "^3.7.0",
@@ -4360,7 +4360,7 @@
"tapable": "^2.1.1",
"terser-webpack-plugin": "^5.1.3",
"watchpack": "^2.2.0",
"webpack-sources": "^2.3.0"
"webpack-sources": "^2.3.1"
},
"bin": {
"webpack": "bin/webpack.js"
@@ -4445,9 +4445,9 @@
}
},
"node_modules/webpack-sources": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz",
"integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==",
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz",
"integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==",
"dev": true,
"dependencies": {
"source-list-map": "^2.0.1",
@@ -4686,9 +4686,9 @@
}
},
"@babel/helper-validator-identifier": {
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz",
"integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==",
"version": "7.14.8",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz",
"integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==",
"dev": true
},
"@babel/highlight": {
@@ -4761,9 +4761,9 @@
}
},
"@cookiemonsterteam/cookiemonsterframework": {
"version": "0.2.0",
"resolved": "https://npm.pkg.github.com/download/@cookiemonsterteam/cookiemonsterframework/0.2.0/0e38bd032c0746e1bb52446ac51217a2dc8460eda6fddba4b804450ead7306e8",
"integrity": "sha512-xezyE14jwE1jIe+Rkmk7TD+gJECTypfW7OMs1hVXvQ4CrjkkmsTQj44eA2mAyTnP2tTPBj6RYVq7cty/KlRTDw==",
"version": "0.2.1",
"resolved": "https://npm.pkg.github.com/download/@cookiemonsterteam/cookiemonsterframework/0.2.1/ecdb3353590590a95d3cafa98a1e11c36ee877089a669129f43a6de45599c0fa",
"integrity": "sha512-WwwFN7EZ1eYYj7+DpW2XOoaQewGP95l9WPsGeNDClW6Q9n1v2AKVgTTiBytcsccnyDZQpdmvXewnrvBvyI7JbQ==",
"requires": {
"@eastdesire/jscolor": "^2.4.5"
}
@@ -4858,9 +4858,9 @@
"dev": true
},
"@tsconfig/node16": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz",
"integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
"dev": true
},
"@types/chai": {
@@ -4902,25 +4902,25 @@
"dev": true
},
"@types/mocha": {
"version": "8.2.3",
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz",
"integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==",
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz",
"integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==",
"dev": true
},
"@types/node": {
"version": "16.3.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.3.tgz",
"integrity": "sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ==",
"version": "16.4.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.0.tgz",
"integrity": "sha512-HrJuE7Mlqcjj+00JqMWpZ3tY8w7EUd+S0U3L1+PQSWiXZbOgyQDvi+ogoUxaHApPJq5diKxYBQwA3iIlNcPqOg==",
"dev": true
},
"@typescript-eslint/eslint-plugin": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.3.tgz",
"integrity": "sha512-jW8sEFu1ZeaV8xzwsfi6Vgtty2jf7/lJmQmDkDruBjYAbx5DA8JtbcMnP0rNPUG+oH5GoQBTSp+9613BzuIpYg==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.4.tgz",
"integrity": "sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw==",
"dev": true,
"requires": {
"@typescript-eslint/experimental-utils": "4.28.3",
"@typescript-eslint/scope-manager": "4.28.3",
"@typescript-eslint/experimental-utils": "4.28.4",
"@typescript-eslint/scope-manager": "4.28.4",
"debug": "^4.3.1",
"functional-red-black-tree": "^1.0.1",
"regexpp": "^3.1.0",
@@ -4929,55 +4929,55 @@
}
},
"@typescript-eslint/experimental-utils": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.3.tgz",
"integrity": "sha512-zZYl9TnrxwEPi3FbyeX0ZnE8Hp7j3OCR+ELoUfbwGHGxWnHg9+OqSmkw2MoCVpZksPCZYpQzC559Ee9pJNHTQw==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.4.tgz",
"integrity": "sha512-OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.7",
"@typescript-eslint/scope-manager": "4.28.3",
"@typescript-eslint/types": "4.28.3",
"@typescript-eslint/typescript-estree": "4.28.3",
"@typescript-eslint/scope-manager": "4.28.4",
"@typescript-eslint/types": "4.28.4",
"@typescript-eslint/typescript-estree": "4.28.4",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
}
},
"@typescript-eslint/parser": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.3.tgz",
"integrity": "sha512-ZyWEn34bJexn/JNYvLQab0Mo5e+qqQNhknxmc8azgNd4XqspVYR5oHq9O11fLwdZMRcj4by15ghSlIEq+H5ltQ==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.4.tgz",
"integrity": "sha512-4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA==",
"dev": true,
"requires": {
"@typescript-eslint/scope-manager": "4.28.3",
"@typescript-eslint/types": "4.28.3",
"@typescript-eslint/typescript-estree": "4.28.3",
"@typescript-eslint/scope-manager": "4.28.4",
"@typescript-eslint/types": "4.28.4",
"@typescript-eslint/typescript-estree": "4.28.4",
"debug": "^4.3.1"
}
},
"@typescript-eslint/scope-manager": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.3.tgz",
"integrity": "sha512-/8lMisZ5NGIzGtJB+QizQ5eX4Xd8uxedFfMBXOKuJGP0oaBBVEMbJVddQKDXyyB0bPlmt8i6bHV89KbwOelJiQ==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.4.tgz",
"integrity": "sha512-ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w==",
"dev": true,
"requires": {
"@typescript-eslint/types": "4.28.3",
"@typescript-eslint/visitor-keys": "4.28.3"
"@typescript-eslint/types": "4.28.4",
"@typescript-eslint/visitor-keys": "4.28.4"
}
},
"@typescript-eslint/types": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.3.tgz",
"integrity": "sha512-kQFaEsQBQVtA9VGVyciyTbIg7S3WoKHNuOp/UF5RG40900KtGqfoiETWD/v0lzRXc+euVE9NXmfer9dLkUJrkA==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.4.tgz",
"integrity": "sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.3.tgz",
"integrity": "sha512-YAb1JED41kJsqCQt1NcnX5ZdTA93vKFCMP4lQYG6CFxd0VzDJcKttRlMrlG+1qiWAw8+zowmHU1H0OzjWJzR2w==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.4.tgz",
"integrity": "sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ==",
"dev": true,
"requires": {
"@typescript-eslint/types": "4.28.3",
"@typescript-eslint/visitor-keys": "4.28.3",
"@typescript-eslint/types": "4.28.4",
"@typescript-eslint/visitor-keys": "4.28.4",
"debug": "^4.3.1",
"globby": "^11.0.3",
"is-glob": "^4.0.1",
@@ -4986,12 +4986,12 @@
}
},
"@typescript-eslint/visitor-keys": {
"version": "4.28.3",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.3.tgz",
"integrity": "sha512-ri1OzcLnk1HH4gORmr1dllxDzzrN6goUIz/P4MHFV0YZJDCADPR3RvYNp0PW2SetKTThar6wlbFTL00hV2Q+fg==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.4.tgz",
"integrity": "sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg==",
"dev": true,
"requires": {
"@typescript-eslint/types": "4.28.3",
"@typescript-eslint/types": "4.28.4",
"eslint-visitor-keys": "^2.0.0"
}
},
@@ -5381,9 +5381,9 @@
"dev": true
},
"caniuse-lite": {
"version": "1.0.30001245",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz",
"integrity": "sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==",
"version": "1.0.30001246",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001246.tgz",
"integrity": "sha512-Tc+ff0Co/nFNbLOrziBXmMVtpt9S2c2Y+Z9Nk9Khj09J+0zR9ejvIW5qkZAErCbOrVODCx/MN+GpB5FNBs5GFA==",
"dev": true
},
"chai": {
@@ -5580,9 +5580,9 @@
}
},
"electron-to-chromium": {
"version": "1.3.779",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.779.tgz",
"integrity": "sha512-nreave0y/1Qhmo8XtO6C/LpawNyC6U26+q7d814/e+tIqUK073pM+4xW7WUXyqCRa5K4wdxHmNMBAi8ap9nEew==",
"version": "1.3.784",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.784.tgz",
"integrity": "sha512-JTPxdUibkefeomWNaYs8lI/x/Zb4cOhZWX+d7kpzsNKzUd07pNuo/AcHeNJ/qgEchxM1IAxda9aaGUhKN/poOg==",
"dev": true
},
"emoji-regex": {
@@ -7322,9 +7322,9 @@
}
},
"rechoir": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz",
"integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==",
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
"integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
"dev": true,
"requires": {
"resolve": "^1.9.0"
@@ -7878,9 +7878,9 @@
}
},
"webpack": {
"version": "5.45.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.45.1.tgz",
"integrity": "sha512-68VT2ZgG9EHs6h6UxfV2SEYewA9BA3SOLSnC2NEbJJiEwbAiueDL033R1xX0jzjmXvMh0oSeKnKgbO2bDXIEyQ==",
"version": "5.46.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.46.0.tgz",
"integrity": "sha512-qxD0t/KTedJbpcXUmvMxY5PUvXDbF8LsThCzqomeGaDlCA6k998D8yYVwZMvO8sSM3BTEOaD4uzFniwpHaTIJw==",
"dev": true,
"requires": {
"@types/eslint-scope": "^3.7.0",
@@ -7905,7 +7905,7 @@
"tapable": "^2.1.1",
"terser-webpack-plugin": "^5.1.3",
"watchpack": "^2.2.0",
"webpack-sources": "^2.3.0"
"webpack-sources": "^2.3.1"
},
"dependencies": {
"acorn": {
@@ -7956,9 +7956,9 @@
}
},
"webpack-sources": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz",
"integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==",
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz",
"integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==",
"dev": true,
"requires": {
"source-list-map": "^2.0.1",

View File

@@ -1,6 +1,6 @@
{
"name": "cookiemonster-mod",
"version": "2.031.7",
"name": "@cookiemonsterteam/cookiemonster-mod",
"version": "2.031.10",
"description": "Cookie Monster is an add-on that you can load into Cookie Clicker which offers a wide range of tools and statistics to enhance the game. 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. This is a helper and everything is an option.",
"main": "CookieMonster.js",
"keywords": [
@@ -11,11 +11,12 @@
"Orteil"
],
"scripts": {
"eslint-src": "eslint src test",
"build": "run-s eslint-src test pack-prod",
"build-test": "run-s pack-dev",
"pack-prod": "webpack --env production",
"pack-dev": "webpack",
"build-dev": "run-s eslint test pack-prod",
"build-final": "run-s eslint test pack-final",
"build-test": "webpack",
"eslint": "eslint src test",
"pack-prod": "webpack --env minimize",
"pack-final": "webpack --env minimize --env finalfile",
"test": "mocha"
},
"repository": {
@@ -44,9 +45,9 @@
"homepage": "https://github.com/CookieMonsterTeam/CookieMonster#readme",
"devDependencies": {
"@types/chai": "^4.2.19",
"@types/mocha": "^8.2.2",
"@typescript-eslint/eslint-plugin": "^4.28.3",
"@typescript-eslint/parser": "^4.28.3",
"@types/mocha": "^9.0.0",
"@typescript-eslint/eslint-plugin": "^4.28.4",
"@typescript-eslint/parser": "^4.28.4",
"chai": "^4.3.4",
"eslint": "^7.31.0",
"eslint-config-airbnb-base": "^14.2.1",
@@ -71,6 +72,6 @@
},
"dependencies": {
"@eastdesire/jscolor": "^2.4.5",
"@cookiemonsterteam/cookiemonsterframework": "^0.2.0"
"@cookiemonsterteam/cookiemonsterframework": "^0.2.1"
}
}

View File

@@ -22,11 +22,11 @@ function CacheColour(target, amount) {
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPRigidelMode &&
amount === 1
) {
target[i].color = ColourGray; // eslint-disable-line no-param-reassign
target[i].colour = ColourGray; // eslint-disable-line no-param-reassign
return;
}
// eslint-disable-next-line no-param-reassign
target[i].color = ColourOfPP(
target[i].colour = ColourOfPP(
target[i],
BuildingGetPrice(
i,
@@ -42,7 +42,7 @@ function CacheColour(target, amount) {
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
if (target[i].pp === CachePPArray[j][0]) target[i].colour = ColourGray; // eslint-disable-line no-param-reassign
}
});
}
@@ -84,7 +84,7 @@ export default function CacheBuildingsPP() {
)
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPExcludeTop = 0; // Otherwise breaks during initialization
// Calculate PP and colors
// Calculate PP and colours
CachePP(CacheObjects1, 1);
CachePP(CacheObjects10, 10);
CachePP(CacheObjects100, 100);

View File

@@ -15,18 +15,18 @@ import { CacheMinPP, CachePPArray } from '../VariablesAndData';
* It is called by CM.Cache.CacheBuildingsPP(), CM.Cache.CacheBuildingsBulkPP() and CM.Cache.CacheUpgradePP()
* @params {object} obj The obj of which the pp value should be checked
* @params {number} price The price of the object
* @returns {string} color The colour assosciated with the pp value
* @returns {string} colour The colour assosciated with the pp value
*/
export default function ColourOfPP(me, price) {
let color = '';
let colour = '';
// Colour based on PP
if (me.pp <= 0 || me.pp === Infinity) color = ColourGray;
else if (me.pp < CacheMinPP) color = ColourBlue;
else if (me.pp === CacheMinPP) color = ColourGreen;
else if (me.pp < CachePPArray[10][0]) color = ColourYellow;
else if (me.pp < CachePPArray[20][0]) color = ColourOrange;
else if (me.pp < CachePPArray[30][0]) color = ColourRed;
else color = ColourPurple;
if (me.pp <= 0 || me.pp === Infinity) colour = ColourGray;
else if (me.pp < CacheMinPP) colour = ColourBlue;
else if (me.pp === CacheMinPP) colour = ColourGreen;
else if (me.pp < CachePPArray[10][0]) colour = ColourYellow;
else if (me.pp < CachePPArray[20][0]) colour = ColourOrange;
else if (me.pp < CachePPArray[30][0]) colour = ColourRed;
else colour = ColourPurple;
// Colour based on price in terms of CPS
if (
@@ -40,11 +40,11 @@ export default function ColourOfPP(me, price) {
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPSecondsLowerLimit,
)
)
color = ColourBlue;
colour = ColourBlue;
}
// Colour based on being able to purchase
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPOnlyConsiderBuyable) {
if (price - Game.cookies > 0) color = ColourRed;
if (price - Game.cookies > 0) colour = ColourRed;
}
return color;
return colour;
}

View File

@@ -16,6 +16,6 @@ export default function CacheUpgradePP() {
} else CacheUpgrades[i].pp = Game.Upgrades[i].getPrice() / CacheUpgrades[i].bonus;
if (Number.isNaN(CacheUpgrades[i].pp)) CacheUpgrades[i].pp = Infinity;
CacheUpgrades[i].color = ColourOfPP(CacheUpgrades[i], Game.Upgrades[i].getPrice());
CacheUpgrades[i].colour = ColourOfPP(CacheUpgrades[i], Game.Upgrades[i].getPrice());
});
}

View File

@@ -2,14 +2,16 @@ import UpdateUpgrades from '../../Disp/BuildingsUpgrades/Upgrades';
/**
* This function toggles the upgrade bar and the colours of upgrades
* It is called by a change in CM.Options.UpBarColor
* It is called by a change in CM.Options.UpBarColour
*/
export default function ToggleUpgradeBarAndColor() {
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor === 1) {
export default function ToggleUpgradeBarAndColour() {
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColour === 1) {
// Colours and bar on
l('CMUpgradeBar').style.display = '';
UpdateUpgrades();
} else if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor === 2) {
} else if (
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColour === 2
) {
// Colours on and bar off
l('CMUpgradeBar').style.display = 'none';
UpdateUpgrades();

View File

@@ -9,3 +9,7 @@ const CM = {
};
Game.registerMod('CookieMonster', CM);
// Game.registerMod also calls CM.load() which calls the loop hook
// Thus sounds normally play at start up as Season and Garden states are checked
window.cookieMonsterFrameworkData.isInitializing = false;

View File

@@ -1,7 +1,7 @@
/** Data related directly to Cookie Monster */
export const VersionMajor = '2.031';
export const VersionMinor = '9';
export const VersionMinor = '10';
/** Information about Cookie Monster to be displayed in the info section */
export const ModDescription = `<a href="https://github.com/CookieMonsterTeam/CookieMonster" target="blank">Cookie Monster</a>
@@ -13,17 +13,13 @@ export const ModDescription = `<a href="https://github.com/CookieMonsterTeam/Coo
/** Latest releasenotes of Cookie Monster to be displayed in the info section */
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>
- The current season in the seasons statistics section is now displayed with green text for easier identification</br>
- New option to show a timer bar that counts down till next autosave</br>
- New option to sort buildings based on the "cost till next achievement"</br>
- Added extra information about achievements in statistics page</br>
- This updates adds a number of performance improvements which make CookieMonster about 33% more efficient</br>
- Added a button to all buildings in the middle section that can "lock" the building. This makes the building unclickable, which might be useful for frantic clicking during cookie storms</br>
- Added a percentage to the Golden Cookie timer bar</br>
</br>
This update fixes the following bugs:</br>
- Fixed a bug where ignoring certain buildings in rare cases did not create a "most optimal building"</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>
`;
This update fixes the following bugs:
- Fix considerable lag on the Ascension screen when using the monospace font</br>
- Fix sound playing at start-up</br>
- Fix building tooltips and warnings not updating correctly</br>
- Fix upgrade bar not displaying</br>
- Fix loading of mod when no save was found</br>`;

View File

@@ -1,14 +0,0 @@
/** The basic setting class */
export default class Setting {
defaultValue: string | number;
type: string;
group: string;
constructor(defaultValue: string | number, type: string, group: string) {
this.defaultValue = defaultValue;
this.type = type;
this.group = group;
}
}

View File

@@ -1,11 +0,0 @@
import Setting from './BaseSetting';
/** The colour picker setting class */
export default class SettingColours extends Setting {
desc: string;
constructor(defaultValue: string | number,type: string, group: string, desc: string) {
super(defaultValue, type, group);
this.desc = desc;
}
}

View File

@@ -1,28 +0,0 @@
import Setting from './BaseSetting';
/** The number input setting class */
export default class SettingInputNumber extends Setting {
label: string[];
desc: string;
min: number;
max: number;
constructor(
defaultValue: string | number,
type: string,
group: string,
label: string[],
desc: string,
min: number,
max: number,
) {
super(defaultValue, type, group);
this.label = label;
this.desc = desc;
this.min = min;
this.max = max;
}
}

View File

@@ -1,30 +0,0 @@
import Setting from './BaseSetting';
/** The standard toggle setting class */
export default class SettingStandard extends Setting {
label: string[];
desc: string;
toggle: boolean;
func: () => void;
constructor(
defaultValue: string | number,
type: string,
group: string,
label: string[],
desc: string,
toggle: boolean,
func?: () => void,
) {
super(defaultValue, type, group);
this.label = label;
this.desc = desc;
this.toggle = toggle;
if (func !== undefined) {
this.func = func;
}
}
}

View File

@@ -1,17 +0,0 @@
import Setting from './BaseSetting';
/** The volume level setting class */
export default class SettingVolume extends Setting {
label: string[];
desc: string;
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++) {
this.label[i] = `${i}%`;
}
}
}

View File

@@ -1,5 +1,8 @@
import { settingClasses } from '@cookiemonsterteam/cookiemonsterframework/src/index';
import CheckNotificationPermissions from '../Config/CheckNotificationPermissions';
import { ToggleTimerBar, ToggleTimerBarPos } from '../Config/SpecificToggles';
import RefreshScale from '../Disp/HelperFunctions/RefreshScale';
import { SimDoSims } from '../Sim/VariablesAndData'; // eslint-disable-line no-unused-vars
import ToggleBotBar from '../Config/Toggles/ToggleBotBar';
import ToggleDetailedTime from '../Config/Toggles/ToggleDetailedTime';
import ToggleGCTimer from '../Config/Toggles/ToggleGCTimer';
@@ -9,20 +12,15 @@ import ToggleUpgradeBarAndColour from '../Config/Toggles/ToggleUpgradeBarAndColo
import ToggleUpgradeBarFixedPos from '../Config/Toggles/ToggleUpgradeBarFixedPos';
import ToggleWrinklerButtons from '../Config/Toggles/ToggleWrinklerButtons';
import UpdateBuildings from '../Disp/BuildingsUpgrades/Buildings';
import { UpdateFavicon } from '../Disp/TabTitle/FavIcon';
import UpdateUpgradeSectionsHeight from '../Disp/BuildingsUpgrades/UpdateUpgradeSectionsHeight';
import UpdateUpgrades from '../Disp/BuildingsUpgrades/Upgrades';
import RefreshScale from '../Disp/HelperFunctions/RefreshScale';
import { UpdateFavicon } from '../Disp/TabTitle/FavIcon';
import { SimDoSims } from '../Sim/VariablesAndData'; // eslint-disable-line no-unused-vars
import SettingColours from './SettingClasses/SettingColours.ts';
import SettingInputNumber from './SettingClasses/SettingInputNumber.ts';
import SettingStandard from './SettingClasses/SettingStandard.ts';
import SettingVolume from './SettingClasses/SettingVolume.ts';
import { ToggleTimerBar, ToggleTimerBarPos } from '../Config/SpecificToggles';
/** This includes all options of CookieMonster and their relevant data */
const settings = {
// Calculation
CPSMode: new SettingStandard(
CPSMode: new settingClasses.SettingStandard(
1,
'bool',
'Calculation',
@@ -30,7 +28,7 @@ const settings = {
'Calculate times using current cookies per second or average cookies per second',
false,
),
AvgCPSHist: new SettingStandard(
AvgCPSHist: new settingClasses.SettingStandard(
3,
'bool',
'Calculation',
@@ -47,7 +45,7 @@ const settings = {
'How much time average Cookies Per Second should consider',
false,
),
AvgClicksHist: new SettingStandard(
AvgClicksHist: new settingClasses.SettingStandard(
0,
'bool',
'Calculation',
@@ -61,7 +59,7 @@ const settings = {
'How much time average Cookie Clicks should consider',
false,
),
CalcWrink: new SettingStandard(
CalcWrink: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'Calculation',
@@ -78,7 +76,7 @@ const settings = {
),
// Notation
Scale: new SettingStandard(
Scale: new settingClasses.SettingStandardWithFunc(
2,
'bool',
'Notation',
@@ -96,7 +94,7 @@ const settings = {
RefreshScale();
},
),
ScaleDecimals: new SettingStandard(
ScaleDecimals: new settingClasses.SettingStandardWithFunc(
2,
'bool',
'Notation',
@@ -107,7 +105,7 @@ const settings = {
RefreshScale();
},
),
ScaleSeparator: new SettingStandard(
ScaleSeparator: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'Notation',
@@ -118,7 +116,7 @@ const settings = {
RefreshScale();
},
),
ScaleCutoff: new SettingInputNumber(
ScaleCutoff: new settingClasses.SettingInputNumber(
999999,
'numscale',
'Notation',
@@ -127,7 +125,7 @@ const settings = {
1,
999999999,
),
TimeFormat: new SettingStandard(
TimeFormat: new settingClasses.SettingStandard(
0,
'bool',
'Notation',
@@ -135,7 +133,7 @@ const settings = {
'Change the time format',
false,
),
DetailedTime: new SettingStandard(
DetailedTime: new settingClasses.SettingStandardWithFunc(
1,
'bool',
'Notation',
@@ -146,7 +144,7 @@ const settings = {
ToggleDetailedTime();
},
),
PPDisplayTime: new SettingStandard(
PPDisplayTime: new settingClasses.SettingStandard(
0,
'bool',
'Notation',
@@ -156,7 +154,7 @@ const settings = {
),
// Colours
BuildColour: new SettingStandard(
BuildColour: new settingClasses.SettingStandardWithFunc(
1,
'bool',
'Colours',
@@ -167,7 +165,7 @@ const settings = {
UpdateBuildings();
},
),
PPOnlyConsiderBuyable: new SettingStandard(
PPOnlyConsiderBuyable: new settingClasses.SettingStandard(
0,
'bool',
'Colours',
@@ -175,7 +173,7 @@ const settings = {
"Makes Cookie Monster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",
true,
),
PPExcludeTop: new SettingStandard(
PPExcludeTop: new settingClasses.SettingStandard(
0,
'bool',
'Colours',
@@ -188,7 +186,7 @@ const settings = {
'Makes Cookie Monster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values',
true,
),
PPRigidelMode: new SettingStandard(
PPRigidelMode: new settingClasses.SettingStandard(
0,
'bool',
'Colours',
@@ -196,7 +194,7 @@ const settings = {
'Makes Cookie Monster ignore all "buy 1" options when colouring PP in order to stay at a total building count ending in 10 for pantheon god Rigidel',
true,
),
PPSecondsLowerLimit: new SettingInputNumber(
PPSecondsLowerLimit: new settingClasses.SettingInputNumber(
0,
'numscale',
'Colours',
@@ -205,55 +203,55 @@ const settings = {
0,
Infinity,
),
ColourBlue: new SettingColours(
ColourBlue: new settingClasses.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(
ColourGreen: new settingClasses.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(
ColourYellow: new settingClasses.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(
ColourOrange: new settingClasses.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(
ColourRed: new settingClasses.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(
ColourPurple: new settingClasses.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(
ColourGray: new settingClasses.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(
ColourPink: new settingClasses.SettingColours(
'#ff1493',
'colour',
'Colours',
'Standard colour is pink. Used for Dragonflight bar',
),
ColourBrown: new SettingColours(
ColourBrown: new settingClasses.SettingColours(
'#8b4513',
'colour',
'Colours',
@@ -261,7 +259,7 @@ const settings = {
),
// BarsDisplay
BotBar: new SettingStandard(
BotBar: new settingClasses.SettingStandardWithFunc(
1,
'bool',
'BarsDisplay',
@@ -272,7 +270,7 @@ const settings = {
ToggleBotBar();
},
),
TimerBar: new SettingStandard(
TimerBar: new settingClasses.SettingStandardWithFunc(
1,
'bool',
'BarsDisplay',
@@ -283,7 +281,7 @@ const settings = {
ToggleTimerBar();
},
),
TimerBarPos: new SettingStandard(
TimerBarPos: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'BarsDisplay',
@@ -294,7 +292,7 @@ const settings = {
ToggleTimerBarPos();
},
),
TimerBarOverlay: new SettingStandard(
TimerBarOverlay: new settingClasses.SettingStandard(
2,
'bool',
'BarsDisplay',
@@ -302,7 +300,7 @@ const settings = {
'Overlay on timers displaying seconds and/or percentage left',
true,
),
AutosaveTimerBar: new SettingStandard(
AutosaveTimerBar: new settingClasses.SettingStandard(
0,
'bool',
'BarsDisplay',
@@ -310,7 +308,7 @@ const settings = {
'Show a timer counting down till next autosave in the timer bar',
true,
),
UpBarColour: new SettingStandard(
UpBarColour: new settingClasses.SettingStandardWithFunc(
1,
'bool',
'BarsDisplay',
@@ -321,7 +319,7 @@ const settings = {
ToggleUpgradeBarAndColour();
},
),
UpgradeBarFixedPos: new SettingStandard(
UpgradeBarFixedPos: new settingClasses.SettingStandardWithFunc(
1,
'bool',
'BarsDisplay',
@@ -332,7 +330,7 @@ const settings = {
ToggleUpgradeBarFixedPos();
},
),
SortBuildings: new SettingStandard(
SortBuildings: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'BarsDisplay',
@@ -348,7 +346,7 @@ const settings = {
UpdateBuildings();
},
),
SortUpgrades: new SettingStandard(
SortUpgrades: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'BarsDisplay',
@@ -359,7 +357,7 @@ const settings = {
UpdateUpgrades();
},
),
UpgradesNeverCollapse: new SettingStandard(
UpgradesNeverCollapse: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'BarsDisplay',
@@ -370,7 +368,7 @@ const settings = {
UpdateUpgradeSectionsHeight();
},
),
DragonAuraInfo: new SettingStandard(
DragonAuraInfo: new settingClasses.SettingStandard(
1,
'bool',
'BarsDisplay',
@@ -378,7 +376,7 @@ const settings = {
'Shows information about changes in CPS and costs in the dragon aura interface.',
true,
),
GrimoireBar: new SettingStandard(
GrimoireBar: new settingClasses.SettingStandard(
1,
'bool',
'BarsDisplay',
@@ -386,7 +384,7 @@ const settings = {
'A timer overlay showing how long till the Grimoire magic meter is full',
true,
),
GCTimer: new SettingStandard(
GCTimer: new settingClasses.SettingStandardWithFunc(
1,
'bool',
'BarsDisplay',
@@ -397,7 +395,7 @@ const settings = {
ToggleGCTimer();
},
),
Favicon: new SettingStandard(
Favicon: new settingClasses.SettingStandardWithFunc(
1,
'bool',
'BarsDisplay',
@@ -408,7 +406,7 @@ const settings = {
UpdateFavicon();
},
),
WrinklerButtons: new SettingStandard(
WrinklerButtons: new settingClasses.SettingStandardWithFunc(
1,
'bool',
'BarsDisplay',
@@ -419,7 +417,7 @@ const settings = {
ToggleWrinklerButtons();
},
),
HideSectionsButtons: new SettingStandard(
HideSectionsButtons: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'BarsDisplay',
@@ -432,7 +430,7 @@ const settings = {
),
// Tooltip
TooltipBuildUpgrade: new SettingStandard(
TooltipBuildUpgrade: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -440,7 +438,7 @@ const settings = {
'Extra information in building/upgrade tooltips',
true,
),
TooltipAmor: new SettingStandard(
TooltipAmor: new settingClasses.SettingStandard(
0,
'bool',
'Tooltip',
@@ -451,7 +449,7 @@ const settings = {
'Add amortization information to buildings tooltip',
true,
),
ToolWarnLucky: new SettingStandard(
ToolWarnLucky: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -459,7 +457,7 @@ const settings = {
'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',
true,
),
ToolWarnLuckyFrenzy: new SettingStandard(
ToolWarnLuckyFrenzy: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -467,7 +465,7 @@ const settings = {
'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',
true,
),
ToolWarnConjure: new SettingStandard(
ToolWarnConjure: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -475,7 +473,7 @@ const settings = {
'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',
true,
),
ToolWarnConjureFrenzy: new SettingStandard(
ToolWarnConjureFrenzy: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -483,7 +481,7 @@ const settings = {
'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',
true,
),
ToolWarnEdifice: new SettingStandard(
ToolWarnEdifice: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -491,7 +489,7 @@ const settings = {
'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',
true,
),
ToolWarnUser: new SettingInputNumber(
ToolWarnUser: new settingClasses.SettingInputNumber(
0,
'numscale',
'Tooltip',
@@ -500,7 +498,7 @@ const settings = {
0,
Infinity,
),
ToolWarnBon: new SettingStandard(
ToolWarnBon: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -508,7 +506,7 @@ const settings = {
'Calculate the warning with or without the bonus CPS you get from buying',
true,
),
ToolWarnPos: new SettingStandard(
ToolWarnPos: new settingClasses.SettingStandardWithFunc(
1,
'bool',
'Tooltip',
@@ -519,7 +517,7 @@ const settings = {
ToggleToolWarnPos();
},
),
TooltipGrim: new SettingStandard(
TooltipGrim: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -527,7 +525,7 @@ const settings = {
'Extra information in tooltip for grimoire',
true,
),
TooltipWrink: new SettingStandard(
TooltipWrink: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -535,7 +533,7 @@ const settings = {
'Shows the amount of cookies a wrinkler will give when popping it',
true,
),
TooltipLump: new SettingStandard(
TooltipLump: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -543,7 +541,7 @@ const settings = {
'Shows the current Sugar Lump type in Sugar lump tooltip.',
true,
),
TooltipPlots: new SettingStandard(
TooltipPlots: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -551,7 +549,7 @@ const settings = {
'Shows a tooltip for plants that have a cookie reward.',
true,
),
TooltipPantheon: new SettingStandard(
TooltipPantheon: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -559,7 +557,7 @@ const settings = {
'Shows additional info in the pantheon tooltip',
true,
),
TooltipAscendButton: new SettingStandard(
TooltipAscendButton: new settingClasses.SettingStandard(
1,
'bool',
'Tooltip',
@@ -569,7 +567,7 @@ const settings = {
),
// Statistics
Stats: new SettingStandard(
Stats: new settingClasses.SettingStandard(
1,
'bool',
'Statistics',
@@ -577,7 +575,7 @@ const settings = {
'Extra Cookie Monster statistics!',
true,
),
MissingUpgrades: new SettingStandard(
MissingUpgrades: new settingClasses.SettingStandard(
1,
'bool',
'Statistics',
@@ -585,7 +583,7 @@ const settings = {
'Shows missing upgrades in statistics menu',
true,
),
MissingAchievements: new SettingStandard(
MissingAchievements: new settingClasses.SettingStandard(
0,
'bool',
'Statistics',
@@ -593,7 +591,7 @@ const settings = {
'Shows missing normal achievements in statistics menu.',
true,
),
UpStats: new SettingStandard(
UpStats: new settingClasses.SettingStandard(
1,
'bool',
'Statistics',
@@ -601,7 +599,7 @@ const settings = {
'Default rate is once every 5 seconds',
false,
),
HeavenlyChipsTarget: new SettingInputNumber(
HeavenlyChipsTarget: new settingClasses.SettingInputNumber(
1,
'numscale',
'Statistics',
@@ -610,7 +608,7 @@ const settings = {
1,
Infinity,
),
ShowMissedGC: new SettingStandard(
ShowMissedGC: new settingClasses.SettingStandard(
1,
'bool',
'Statistics',
@@ -620,7 +618,7 @@ const settings = {
),
// Notification
Title: new SettingStandard(
Title: new settingClasses.SettingStandard(
1,
'bool',
'NotificationGeneral',
@@ -628,7 +626,7 @@ const settings = {
'Update title with colden cookie/season popup timers; pinned tab highlight only changes the title when a golden cookie/season popup spawns; "!" means that golden cookie/reindeer can spawn',
true,
),
GeneralSound: new SettingStandard(
GeneralSound: new settingClasses.SettingStandard(
1,
'bool',
'NotificationGeneral',
@@ -636,7 +634,7 @@ const settings = {
'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',
true,
),
GCNotification: new SettingStandard(
GCNotification: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'NotificationGC',
@@ -649,7 +647,7 @@ const settings = {
);
},
),
GCFlash: new SettingStandard(
GCFlash: new settingClasses.SettingStandard(
1,
'bool',
'NotificationGC',
@@ -657,13 +655,13 @@ const settings = {
'Flash screen on golden cookie',
true,
),
ColourGCFlash: new SettingColours(
ColourGCFlash: new settingClasses.SettingColours(
'#ffffff',
'colour',
'NotificationGC',
'The colour of the GC flash, standard colour is white',
),
GCSound: new SettingStandard(
GCSound: new settingClasses.SettingStandard(
1,
'bool',
'NotificationGC',
@@ -671,15 +669,15 @@ const settings = {
'Play a sound on golden cookie',
true,
),
GCVolume: new SettingVolume(100, 'vol', 'NotificationGC', [], 'Volume'),
GCSoundURL: new SettingStandard(
GCVolume: new settingClasses.SettingVolume(100, 'vol', 'NotificationGC', [], 'Volume'),
GCSoundURL: new settingClasses.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(
FortuneNotification: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'NotificationFC',
@@ -692,7 +690,7 @@ const settings = {
);
},
),
FortuneFlash: new SettingStandard(
FortuneFlash: new settingClasses.SettingStandard(
1,
'bool',
'NotificationFC',
@@ -700,13 +698,13 @@ const settings = {
'Flash screen on fortune cookie spawn',
true,
),
ColourFortuneFlash: new SettingColours(
ColourFortuneFlash: new settingClasses.SettingColours(
'#ffffff',
'colour',
'NotificationFC',
'The colour of the fortune flash, standard colour is white',
),
FortuneSound: new SettingStandard(
FortuneSound: new settingClasses.SettingStandard(
1,
'bool',
'NotificationFC',
@@ -714,15 +712,15 @@ const settings = {
'Play a sound on fortune cookie spawn',
true,
),
FortuneVolume: new SettingVolume(100, 'vol', 'NotificationFC', [], 'Volume'),
FortuneSoundURL: new SettingStandard(
FortuneVolume: new settingClasses.SettingVolume(100, 'vol', 'NotificationFC', [], 'Volume'),
FortuneSoundURL: new settingClasses.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(
SeaNotification: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'NotificationSea',
@@ -735,7 +733,7 @@ const settings = {
);
},
),
SeaFlash: new SettingStandard(
SeaFlash: new settingClasses.SettingStandard(
1,
'bool',
'NotificationSea',
@@ -743,13 +741,13 @@ const settings = {
'Flash screen on season popup',
true,
),
ColourSeaFlash: new SettingColours(
ColourSeaFlash: new settingClasses.SettingColours(
'#ffffff',
'colour',
'NotificationSea',
'The colour of the season popup flash, standard colour is white',
),
SeaSound: new SettingStandard(
SeaSound: new settingClasses.SettingStandard(
1,
'bool',
'NotificationSea',
@@ -757,15 +755,15 @@ const settings = {
'Play a sound on season popup',
true,
),
SeaVolume: new SettingVolume(100, 'vol', 'NotificationSea', [], 'Volume'),
SeaSoundURL: new SettingStandard(
SeaVolume: new settingClasses.SettingVolume(100, 'vol', 'NotificationSea', [], 'Volume'),
SeaSoundURL: new settingClasses.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(
GardFlash: new settingClasses.SettingStandard(
1,
'bool',
'NotificationGard',
@@ -773,13 +771,13 @@ const settings = {
'Flash screen on garden tick',
true,
),
ColourGardFlash: new SettingColours(
ColourGardFlash: new settingClasses.SettingColours(
'#ffffff',
'colour',
'NotificationGard',
'The colour of the garden flash, standard colour is white',
),
GardSound: new SettingStandard(
GardSound: new settingClasses.SettingStandard(
1,
'bool',
'NotificationGard',
@@ -787,15 +785,15 @@ const settings = {
'Play a sound on garden tick',
true,
),
GardVolume: new SettingVolume(100, 'vol', 'NotificationGard', [], 'Volume'),
GardSoundURL: new SettingStandard(
GardVolume: new settingClasses.SettingVolume(100, 'vol', 'NotificationGard', [], 'Volume'),
GardSoundURL: new settingClasses.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(
MagicNotification: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'NotificationMagi',
@@ -808,7 +806,7 @@ const settings = {
);
},
),
MagicFlash: new SettingStandard(
MagicFlash: new settingClasses.SettingStandard(
1,
'bool',
'NotificationMagi',
@@ -816,13 +814,13 @@ const settings = {
'Flash screen when magic reaches maximum',
true,
),
ColourMagicFlash: new SettingColours(
ColourMagicFlash: new settingClasses.SettingColours(
'#ffffff',
'colour',
'NotificationMagi',
'The colour of the magic flash, standard colour is white',
),
MagicSound: new SettingStandard(
MagicSound: new settingClasses.SettingStandard(
1,
'bool',
'NotificationMagi',
@@ -830,15 +828,15 @@ const settings = {
'Play a sound when magic reaches maximum',
true,
),
MagicVolume: new SettingVolume(100, 'vol', 'NotificationMagi', [], 'Volume'),
MagicSoundURL: new SettingStandard(
MagicVolume: new settingClasses.SettingVolume(100, 'vol', 'NotificationMagi', [], 'Volume'),
MagicSoundURL: new settingClasses.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(
WrinklerNotification: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'NotificationWrink',
@@ -851,7 +849,7 @@ const settings = {
);
},
),
WrinklerFlash: new SettingStandard(
WrinklerFlash: new settingClasses.SettingStandard(
1,
'bool',
'NotificationWrink',
@@ -859,13 +857,13 @@ const settings = {
'Flash screen when a wrinkler appears',
true,
),
ColourWrinklerFlash: new SettingColours(
ColourWrinklerFlash: new settingClasses.SettingColours(
'#ffffff',
'colour',
'NotificationWrink',
'The colour of the wrinkler flash, standard colour is white',
),
WrinklerSound: new SettingStandard(
WrinklerSound: new settingClasses.SettingStandard(
1,
'bool',
'NotificationWrink',
@@ -873,15 +871,15 @@ const settings = {
'Play a sound when a wrinkler appears',
true,
),
WrinklerVolume: new SettingVolume(100, 'vol', 'NotificationWrink', [], 'Volume'),
WrinklerSoundURL: new SettingStandard(
WrinklerVolume: new settingClasses.SettingVolume(100, 'vol', 'NotificationWrink', [], 'Volume'),
WrinklerSoundURL: new settingClasses.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(
WrinklerMaxNotification: new settingClasses.SettingStandardWithFunc(
0,
'bool',
'NotificationWrinkMax',
@@ -894,7 +892,7 @@ const settings = {
);
},
),
WrinklerMaxFlash: new SettingStandard(
WrinklerMaxFlash: new settingClasses.SettingStandard(
1,
'bool',
'NotificationWrinkMax',
@@ -902,13 +900,13 @@ const settings = {
'Flash screen when the maximum amount of Wrinklers has appeared',
true,
),
ColourWrinklerMaxFlash: new SettingColours(
ColourWrinklerMaxFlash: new settingClasses.SettingColours(
'#ffffff',
'colour',
'NotificationWrinkMax',
'The colour of the maximum wrinkler flash, standard colour is white',
),
WrinklerMaxSound: new SettingStandard(
WrinklerMaxSound: new settingClasses.SettingStandard(
1,
'bool',
'NotificationWrinkMax',
@@ -916,8 +914,14 @@ const settings = {
'Play a sound when the maximum amount of wrinklers has appeared',
true,
),
WrinklerMaxVolume: new SettingVolume(100, 'vol', 'NotificationWrinkMax', [], 'Volume'),
WrinklerMaxSoundURL: new SettingStandard(
WrinklerMaxVolume: new settingClasses.SettingVolume(
100,
'vol',
'NotificationWrinkMax',
[],
'Volume',
),
WrinklerMaxSoundURL: new settingClasses.SettingStandard(
'https://freesound.org/data/previews/152/152743_15663-lq.mp3',
'url',
'NotificationWrinkMax',
@@ -926,7 +930,7 @@ const settings = {
),
// Miscellaneous
BulkBuyBlock: new SettingStandard(
BulkBuyBlock: new settingClasses.SettingStandard(
1,
'bool',
'Miscellaneous',
@@ -934,7 +938,7 @@ const settings = {
"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",
true,
),
FavouriteSettings: new SettingStandard(
FavouriteSettings: new settingClasses.SettingStandardWithFunc(
1,
'bool',
'Miscellaneous',

View File

@@ -2,23 +2,23 @@ import { ColourGreen, ColourOrange, ColourRed, ColourYellow } from '../Variables
import FormatTime from './FormatTime';
/**
* This function returns the color to be used for time-strings
* This function returns the colour to be used for time-strings
* @param {number} time Time to be coloured
* @returns {{string, string}} {text, color} Both the formatted time and color as strings in an array
* @returns {{string, string}} {text, colour} Both the formatted time and colour as strings in an array
*/
export default function GetTimeColour(time) {
let color;
let colour;
let text;
if (time <= 0) {
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimeFormat)
text = '00:00:00:00:00';
else text = 'Done!';
color = ColourGreen;
colour = ColourGreen;
} else {
text = FormatTime(time);
if (time > 300) color = ColourRed;
else if (time > 60) color = ColourOrange;
else color = ColourYellow;
if (time > 300) colour = ColourRed;
else if (time > 60) colour = ColourOrange;
else colour = ColourYellow;
}
return { text, color };
return { text, colour };
}

View File

@@ -1,13 +0,0 @@
/**
* This function toggle the locked state of a building
* @param {number} index Index of the row to change
*/
export default function ToggleBuildingLock(index) {
if (l(`productLock${index}`).innerHTML === 'Unlocked') {
l(`productLock${index}`).innerHTML = 'Locked';
l(`row${index}`).children[3].style.pointerEvents = 'none';
} else {
l(`productLock${index}`).innerHTML = 'Unlocked';
l(`row${index}`).children[3].style.pointerEvents = 'auto';
}
}

View File

@@ -39,7 +39,7 @@ export default function UpdateBuildings() {
Object.keys(target).forEach((i) => {
l(`productPrice${Game.Objects[i].id}`).style.color =
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[
`Colour${target[i].color}`
`Colour${target[i].colour}`
];
});
l(`storeBulk${CacheMinPPBulk}`).style.color =
@@ -89,14 +89,14 @@ export default function UpdateBuildings() {
const o = {};
o.name = k;
o.pp = CacheObjects1[k].pp;
o.color = CacheObjects1[k].color;
o.colour = CacheObjects1[k].colour;
return o;
});
// Sort by pp colour group, then by pp.
arr.sort((a, b) =>
ColoursOrdering.indexOf(a.color) === ColoursOrdering.indexOf(b.color)
ColoursOrdering.indexOf(a.colour) === ColoursOrdering.indexOf(b.colour)
? a.pp - b.pp
: ColoursOrdering.indexOf(a.color) - ColoursOrdering.indexOf(b.color),
: ColoursOrdering.indexOf(a.colour) - ColoursOrdering.indexOf(b.colour),
);
} else if (
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.SortBuildings === 2
@@ -105,14 +105,14 @@ export default function UpdateBuildings() {
const o = {};
o.name = k;
o.pp = target[k].pp;
o.color = target[k].color;
o.colour = target[k].colour;
return o;
});
// Sort by pp colour group, then by pp.
arr.sort((a, b) =>
ColoursOrdering.indexOf(a.color) === ColoursOrdering.indexOf(b.color)
ColoursOrdering.indexOf(a.colour) === ColoursOrdering.indexOf(b.colour)
? a.pp - b.pp
: ColoursOrdering.indexOf(a.color) - ColoursOrdering.indexOf(b.color),
: ColoursOrdering.indexOf(a.colour) - ColoursOrdering.indexOf(b.colour),
);
} else if (
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.SortBuildings === 3

View File

@@ -24,11 +24,11 @@ function CreateUpgradeBarLegend() {
title.textContent = 'Legend';
legend.appendChild(title);
const legendLine = function (color, text) {
const legendLine = function (colour, text) {
const div = document.createElement('div');
div.style.verticalAlign = 'middle';
const span = document.createElement('span');
span.className = ColourBackPre + color;
span.className = ColourBackPre + colour;
span.style.display = 'inline-block';
span.style.height = '10px';
span.style.width = '10px';
@@ -70,10 +70,10 @@ export default function CreateUpgradeBar() {
Game.tooltip.draw(this, escape(placeholder.innerHTML), 'store');
};
const upgradeNumber = function (id, color) {
const upgradeNumber = function (id, colour) {
const span = document.createElement('span');
span.id = id;
span.className = ColourTextPre + color;
span.className = ColourTextPre + colour;
span.style.width = '14.28571428571429%';
span.style.display = 'inline-block';
span.textContent = '0';

View File

@@ -33,7 +33,7 @@ export default function UpdateUpgrades() {
let addedColour = false;
for (let j = 0; j < l(`upgrade${i}`).childNodes.length; j += 1) {
if (l(`upgrade${i}`).childNodes[j].className.indexOf(ColourBackPre) !== -1) {
l(`upgrade${i}`).childNodes[j].className = ColourBackPre + CacheUpgrades[me.name].color;
l(`upgrade${i}`).childNodes[j].className = ColourBackPre + CacheUpgrades[me.name].colour;
addedColour = true;
break;
}
@@ -42,16 +42,16 @@ export default function UpdateUpgrades() {
const div = document.createElement('div');
div.style.width = '10px';
div.style.height = '10px';
div.className = ColourBackPre + CacheUpgrades[me.name].color;
div.className = ColourBackPre + CacheUpgrades[me.name].colour;
l(`upgrade${i}`).appendChild(div);
}
if (CacheUpgrades[me.name].color === ColourBlue) blue += 1;
else if (CacheUpgrades[me.name].color === ColourGreen) green += 1;
else if (CacheUpgrades[me.name].color === ColourYellow) yellow += 1;
else if (CacheUpgrades[me.name].color === ColourOrange) orange += 1;
else if (CacheUpgrades[me.name].color === ColourRed) red += 1;
else if (CacheUpgrades[me.name].color === ColourPurple) purple += 1;
else if (CacheUpgrades[me.name].color === ColourGray) gray += 1;
if (CacheUpgrades[me.name].colour === ColourBlue) blue += 1;
else if (CacheUpgrades[me.name].colour === ColourGreen) green += 1;
else if (CacheUpgrades[me.name].colour === ColourYellow) yellow += 1;
else if (CacheUpgrades[me.name].colour === ColourOrange) orange += 1;
else if (CacheUpgrades[me.name].colour === ColourRed) red += 1;
else if (CacheUpgrades[me.name].colour === ColourPurple) purple += 1;
else if (CacheUpgrades[me.name].colour === ColourGray) gray += 1;
});
l('CMUpgradeBarBlue').textContent = blue;
@@ -71,16 +71,16 @@ export default function UpdateUpgrades() {
o.name = Game.UpgradesInStore[x].name;
o.price = Game.UpgradesInStore[x].basePrice;
o.pp = CacheUpgrades[o.name].pp;
o.color = CacheUpgrades[o.name].color;
o.colour = CacheUpgrades[o.name].colour;
arr.push(o);
}
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)
ColoursOrdering.indexOf(a.colour) === ColoursOrdering.indexOf(b.colour)
? a.pp - b.pp
: ColoursOrdering.indexOf(a.color) - ColoursOrdering.indexOf(b.color),
: ColoursOrdering.indexOf(a.colour) - ColoursOrdering.indexOf(b.colour),
);
} else {
arr.sort((a, b) => a.price - b.price);

View File

@@ -27,7 +27,7 @@ export default function CMDrawHook() {
}
}
// Update colors
// Update colours
UpdateBuildings();
UpdateUpgrades();
UpdateUpgradeSectionsHeight();

View File

@@ -11,23 +11,23 @@ import {
* This function returns Name and Colour as object for sugar lump type that is given as input param.
* It is called by CM.Disp.UpdateTooltipSugarLump()
* @param {string} type Sugar Lump Type.
* @returns {{string}, {string}} text, color An array containing the text and display-color of the sugar lump
* @returns {{string}, {string}} text, colour An array containing the text and display-colour of the sugar lump
*/
export default function GetLumpColour(type) {
if (type === 0) {
return { text: 'Normal', color: ColourGray };
return { text: 'Normal', colour: ColourGray };
}
if (type === 1) {
return { text: 'Bifurcated', color: ColourGreen };
return { text: 'Bifurcated', colour: ColourGreen };
}
if (type === 2) {
return { text: 'Golden', color: ColourYellow };
return { text: 'Golden', colour: ColourYellow };
}
if (type === 3) {
return { text: 'Meaty', color: ColourOrange };
return { text: 'Meaty', colour: ColourOrange };
}
if (type === 4) {
return { text: 'Caramelized', color: ColourPurple };
return { text: 'Caramelized', colour: ColourPurple };
}
return { text: 'Unknown Sugar Lump', color: ColourRed };
return { text: 'Unknown Sugar Lump', colour: ColourRed };
}

View File

@@ -33,10 +33,10 @@ export function CreateBotBar() {
table.style.whiteSpace = 'nowrap';
const tbody = table.appendChild(document.createElement('tbody'));
const firstCol = function (text, color) {
const firstCol = function (text, colour) {
const td = document.createElement('td');
td.style.textAlign = 'right';
td.className = ColourTextPre + color;
td.className = ColourTextPre + colour;
td.textContent = text;
return td;
};
@@ -86,7 +86,7 @@ export function UpdateBotBar() {
2,
);
l('CMBotBar').firstChild.firstChild.childNodes[2].childNodes[count].className =
ColourTextPre + target[i].color;
ColourTextPre + target[i].colour;
let PPString;
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.PPDisplayTime)
PPString = FormatTime(Math.round(target[i].pp));
@@ -96,7 +96,7 @@ export function UpdateBotBar() {
(Game.Objects[i].bulkPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(),
);
l('CMBotBar').firstChild.firstChild.childNodes[3].childNodes[count].className =
ColourTextPre + timeColour.color;
ColourTextPre + timeColour.colour;
if (timeColour.text === 'Done!' && Game.cookies < Game.Objects[i].bulkPrice) {
l('CMBotBar').firstChild.firstChild.childNodes[3].childNodes[
count

View File

@@ -6,7 +6,7 @@ import { ColourBackPre, ColourBlue, ColourTextPre } from '../VariablesAndData';
* This function creates an indivudual timer for the timer bar
* @param {string} id An id to identify the timer
* @param {string} name The title of the timer
* @param [{{string}, {string}}, ...] bars ([id, color]) The id and colours of individual parts of the timer
* @param [{{string}, {string}}, ...] bars ([id, colour]) The id and colours of individual parts of the timer
*/
export function CreateTimer(id, name, bars) {
const timerBar = document.createElement('div');
@@ -36,20 +36,20 @@ export function CreateTimer(id, name, bars) {
div.appendChild(type);
for (let i = 0; i < bars.length; i++) {
const colorBar = document.createElement('span');
colorBar.id = bars[i].id;
colorBar.style.display = 'inline-block';
colorBar.style.height = '10px';
colorBar.style.verticalAlign = 'text-top';
colorBar.style.textAlign = 'center';
const colourBar = document.createElement('span');
colourBar.id = bars[i].id;
colourBar.style.display = 'inline-block';
colourBar.style.height = '10px';
colourBar.style.verticalAlign = 'text-top';
colourBar.style.textAlign = 'center';
if (bars.length - 1 === i) {
colorBar.style.borderTopRightRadius = '10px';
colorBar.style.borderBottomRightRadius = '10px';
colourBar.style.borderTopRightRadius = '10px';
colourBar.style.borderBottomRightRadius = '10px';
}
if (typeof bars[i].color !== 'undefined') {
colorBar.className = ColourBackPre + bars[i].color;
if (typeof bars[i].colour !== 'undefined') {
colourBar.className = ColourBackPre + bars[i].colour;
}
div.appendChild(colorBar);
div.appendChild(colourBar);
}
const timer = document.createElement('span');

View File

@@ -26,21 +26,21 @@ export function CreateTimerBar() {
// Create standard Autosave bar
const CMTimerBarAutosave = CreateTimer('CMTimerBarAutosave', 'Autosave', [
{ id: 'CMTimerBarAutosaveBar', color: ColourPurple },
{ id: 'CMTimerBarAutosaveBar', colour: ColourPurple },
]);
TimerBar.appendChild(CMTimerBarAutosave);
// Create standard Golden Cookie bar
const CMTimerBarGC = CreateTimer('CMTimerBarGC', 'Next Cookie', [
{ id: 'CMTimerBarGCMinBar', color: ColourGray },
{ id: 'CMTimerBarGCBar', color: ColourPurple },
{ id: 'CMTimerBarGCMinBar', colour: ColourGray },
{ id: 'CMTimerBarGCBar', colour: ColourPurple },
]);
TimerBar.appendChild(CMTimerBarGC);
// Create standard Reindeer bar
const CMTimerBarRen = CreateTimer('CMTimerBarRen', 'Next Reindeer', [
{ id: 'CMTimerBarRenMinBar', color: ColourGray },
{ id: 'CMTimerBarRenBar', color: ColourOrange },
{ id: 'CMTimerBarRenMinBar', colour: ColourGray },
{ id: 'CMTimerBarRenBar', colour: ColourOrange },
]);
TimerBar.appendChild(CMTimerBarRen);
const TimerBarBuffTimers = document.createElement('div');
@@ -118,9 +118,17 @@ export function UpdateTimerBar() {
) / Game.fps,
);
else l('CMTimerBarGCBar').textContent = '';
l('CMTimerBarGCTime').textContent = Math.ceil(
const chanceToSpawn =
Math.max(
0,
(Game.shimmerTypes.golden.time - Game.shimmerTypes.golden.minTime) /
(Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.minTime),
) ** 5;
l('CMTimerBarGCTime').textContent = `${Math.ceil(
(Game.shimmerTypes.golden.maxTime - Game.shimmerTypes.golden.time) / Game.fps,
);
)} ${chanceToSpawn < 0.01 ? '<' : ''}${chanceToSpawn.toLocaleString('en', {
style: 'percent',
})}`;
numberOfTimers += 1;
} else l('CMTimerBarGC').style.display = 'none';
@@ -153,9 +161,17 @@ export function UpdateTimerBar() {
) / Game.fps,
);
else l('CMTimerBarRenBar').textContent = '';
l('CMTimerBarRenTime').textContent = Math.ceil(
const chanceToSpawn =
Math.max(
0,
(Game.shimmerTypes.reindeer.time - Game.shimmerTypes.reindeer.minTime) /
(Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.minTime),
) ** 5;
l('CMTimerBarRenTime').textContent = `${Math.ceil(
(Game.shimmerTypes.reindeer.maxTime - Game.shimmerTypes.reindeer.time) / Game.fps,
);
)} ${chanceToSpawn < 0.01 ? '<' : ''}${chanceToSpawn.toLocaleString('en', {
style: 'percent',
})}`;
numberOfTimers += 1;
} else {
l('CMTimerBarRen').style.display = 'none';
@@ -171,7 +187,7 @@ export function UpdateTimerBar() {
]);
timer.style.display = '';
let classColour = '';
// Gives specific timers specific colors
// Gives specific timers specific colours
if (typeof BuffColours[Game.buffs[i].name] !== 'undefined') {
classColour = BuffColours[Game.buffs[i].name];
} else classColour = ColourPurple;

View File

@@ -53,18 +53,18 @@ export function TooltipCreateWarningSection() {
TooltipWarn.style.bottom = 'auto';
TooltipWarn.id = 'CMDispTooltipWarningParent';
const create = function (boxId, color, labelTextFront, labelTextBack, deficitId) {
const create = function (boxId, colour, labelTextFront, labelTextBack, deficitId) {
const box = document.createElement('div');
box.id = boxId;
box.style.display = 'none';
box.style.transition = 'opacity 0.1s ease-out';
box.className = ColourBorderPre + color;
box.className = ColourBorderPre + colour;
box.style.padding = '2px';
box.style.background = '#000 url(img/darkNoise.png)';
const labelDiv = document.createElement('div');
box.appendChild(labelDiv);
const labelSpan = document.createElement('span');
labelSpan.className = ColourTextPre + color;
labelSpan.className = ColourTextPre + colour;
labelSpan.style.fontWeight = 'bold';
labelSpan.textContent = labelTextFront;
labelDiv.appendChild(labelSpan);

View File

@@ -26,13 +26,6 @@ import * as Create from '../CreateTooltip';
* This function adds extra info to the Building tooltips
*/
export default function Building() {
if (
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipBuildUpgrade === 1 &&
Game.buyMode === 1
) {
const tooltipBox = l('CMTooltipBorder');
Create.TooltipCreateCalculationSection(tooltipBox);
let target;
if (Game.buyMode === 1) {
LastTargetTooltipBuilding = target;
@@ -46,6 +39,13 @@ export default function Building() {
TooltipPrice = Game.Objects[TooltipName].bulkPrice;
TooltipBonusIncome = target[TooltipName].bonus;
if (
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipBuildUpgrade === 1 &&
Game.buyMode === 1
) {
const tooltipBox = l('CMTooltipBorder');
Create.TooltipCreateCalculationSection(tooltipBox);
if (
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TooltipBuildUpgrade ===
1 &&
@@ -62,11 +62,11 @@ export default function Building() {
: '.'
}01% of income)`;
}
l('CMTooltipBorder').className = ColourTextPre + target[TooltipName].color;
l('CMTooltipBorder').className = ColourTextPre + target[TooltipName].colour;
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;
l('CMTooltipPP').className = ColourTextPre + target[TooltipName].colour;
const timeColour = GetTimeColour(
(TooltipPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(),
);
@@ -74,7 +74,7 @@ export default function Building() {
if (timeColour.text === 'Done!' && Game.cookies < target[TooltipName].price) {
l('CMTooltipTime').textContent = `${timeColour.text} (with Wrink)`;
} else l('CMTooltipTime').textContent = timeColour.text;
l('CMTooltipTime').className = ColourTextPre + timeColour.color;
l('CMTooltipTime').className = ColourTextPre + timeColour.colour;
}
// Add "production left till next achievement"-bar

View File

@@ -30,7 +30,7 @@ export default function Grimoire() {
CalculateGrimoireRefillTime(minigame.magic, minigame.magicM, spellCost),
);
time.textContent = timeColour.text;
time.className = ColourTextPre + timeColour.color;
time.className = ColourTextPre + timeColour.colour;
// Time left untill magic spent is recovered
if (spellCost <= minigame.magic) {
@@ -46,7 +46,7 @@ export default function Grimoire() {
),
);
recover.textContent = recoverColour.text;
recover.className = ColourTextPre + recoverColour.color;
recover.className = ColourTextPre + recoverColour.colour;
}
// Extra information on cookies gained when spell is Conjure Baked Goods (Name === 0)

View File

@@ -16,6 +16,6 @@ export default function SugarLump() {
tooltipBox.appendChild(lumpType);
const lumpColour = GetLumpColour(Game.lumpCurrentType);
lumpType.textContent = lumpColour.text;
lumpType.className = ColourTextPre + lumpColour.color;
lumpType.className = ColourTextPre + lumpColour.colour;
} else l('CMTooltipArea').style.display = 'none';
}

View File

@@ -47,7 +47,7 @@ export default function Upgrade() {
}01% of income)`;
}
l('CMTooltipBorder').className =
ColourTextPre + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].color;
ColourTextPre + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].colour;
}
// If clicking power upgrade
@@ -73,7 +73,7 @@ export default function Upgrade() {
2,
);
l('CMTooltipPP').className =
ColourTextPre + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].color;
ColourTextPre + CacheUpgrades[Game.UpgradesInStore[TooltipName].name].colour;
}
const timeColour = GetTimeColour(
(TooltipPrice - (Game.cookies + GetWrinkConfigBank())) / GetCPS(),
@@ -85,7 +85,7 @@ export default function Upgrade() {
) {
l('CMTooltipTime').textContent = `${timeColour.text} (with Wrink)`;
} else l('CMTooltipTime').textContent = timeColour.text;
l('CMTooltipTime').className = ColourTextPre + timeColour.color;
l('CMTooltipTime').className = ColourTextPre + timeColour.colour;
// Add extra info to Chocolate egg tooltip
if (Game.UpgradesInStore[TooltipName].name === 'Chocolate egg') {

View File

@@ -1,17 +1,17 @@
import ToggleBuildingLock from './ToggleBuildingLock';
import toggleBuildingLock from './toggleBuildingLock';
/**
* This function adds a lock button to the "building view" in the middle section
*/
export default function CreateBuildingLockButtons() {
export default function createBuildingLockButtons() {
Object.keys(l('rows').children).forEach((index) => {
const productButtons = l('rows').children[index].children[1];
const button = document.createElement('div');
button.id = `productLock${Number(index) + 1}`;
button.className = 'productButton';
button.innerHTML = 'Unlocked';
button.innerHTML = 'Lock';
button.onclick = function () {
ToggleBuildingLock(Number(index) + 1);
toggleBuildingLock(Number(index) + 1);
};
productButtons.appendChild(button);
});

View File

@@ -0,0 +1,35 @@
/**
* This function toggle the locked state of a building
* @param {number} index Index of the row to change
*/
export default function toggleBuildingLock(index) {
if (l(`productLock${index}`).innerHTML === 'Lock') {
// Add to storing array
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.lockedMinigames.push(
index.toString(),
);
// Update styles
l(`row${index}`).style.pointerEvents = 'none';
l(`row${index}`).style.opacity = '0.4';
l(`productLock${index}`).innerHTML = 'Unlock';
l(`productLock${index}`).style.pointerEvents = 'auto';
} else {
// Remove from storing array
if (
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.lockedMinigames.includes(
index.toString(),
)
) {
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.lockedMinigames =
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.lockedMinigames.filter(
(value) => value !== index.toString(),
);
}
// Update styles
l(`productLock${index}`).innerHTML = 'Lock';
l(`row${index}`).style.pointerEvents = 'auto';
l(`row${index}`).style.opacity = '1';
}
}

View File

@@ -4,6 +4,7 @@ import CMDrawHook from '../Disp/DrawHook';
import CMClickHook from '../Main/ClickHook';
import InitializeCookieMonster from '../Main/Initialization';
import CMLoopHook from '../Main/LoopHook';
import load from './load';
/**
* This creates a init function for the CM object. Per Game code/comments:
@@ -30,6 +31,10 @@ export default function init() {
Game.registerHook('click', CMClickHook);
Game.registerHook('draw', CMDrawHook);
Game.registerHook('logic', CMLoopHook);
// Load default settings if no previous saveData is found
if (typeof Game.modSaveData.cookieMonsterMod === 'undefined') {
load('{}');
}
}
window.cookieMonsterFrameworkData.isInitializing = false;
}

View File

@@ -13,9 +13,34 @@ import InitData from '../Sim/InitializeData/InitData';
*/
export default function load(str) {
InitData();
// Load saveData
saveAndLoadingFunctions.loadMod('cookieMonsterMod', str, settings, headers, CMLoopHook);
UpdateColours();
if (
typeof Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.lockedMinigames ===
'undefined'
) {
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.lockedMinigames = [];
}
// Update display with colours and locking of minigames
UpdateColours();
for (
let index = 0;
index < Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.lockedMinigames.length;
index++
) {
const buildingIndex =
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.lockedMinigames[index];
l(`row${buildingIndex}`).style.pointerEvents = 'none';
l(`row${buildingIndex}`).style.opacity = '0.4';
l(`productLock${buildingIndex}`).innerHTML = 'Unlock';
l(`productLock${buildingIndex}`).style.pointerEvents = 'auto';
}
// Notify of update
if (
typeof Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.version !== 'undefined' &&
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.version !==
`${VersionMajor}.${VersionMinor}`
) {

View File

@@ -17,7 +17,7 @@ import ReplaceTooltips from './ReplaceGameElements/Tooltips';
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 createBuildingLockButtons from '../Disp/buildingTiles/createBuildingLockButtons';
import createMenuInfo from '../Disp/MenuSections/createMenuInfo';
import createMenuOptions from '../Disp/MenuSections/createMenuOptions';
@@ -51,7 +51,7 @@ export default function InitializeCookieMonster() {
});
CreateWrinklerButtons();
UpdateBuildingUpgradeStyle();
CreateBuildingLockButtons();
createBuildingLockButtons();
ReplaceTooltips();
AddWrinklerAreaDetect();

View File

@@ -2,36 +2,36 @@ import { before, beforeEach, describe, it } from 'mocha';
import { assert } from 'chai';
import { l, Game } from '../../GlobalsForTesting';
import ToggleUpgradeBarAndColor from '../../../src/Config/Toggles/ToggleUpgradeBarAndColour';
import ToggleUpgradeBarAndColour from '../../../src/Config/Toggles/ToggleUpgradeBarAndColour';
describe('ToggleUpgradeBarAndColor', () => {
describe('ToggleUpgradeBarAndColour', () => {
global.l = l;
global.Game = Game;
beforeEach(() => {
global.domids = {};
ToggleUpgradeBarAndColor();
ToggleUpgradeBarAndColour();
});
describe('UpBarColor = 0', () => {
describe('UpBarColour = 0', () => {
before(() => {
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor = 0;
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColour = 0;
});
it('Toggle style correctly', () => {
assert.equal(domids.CMUpgradeBar.style.display, 'none'); // eslint-disable-line no-undef
});
});
describe('UpBarColor = 1', () => {
describe('UpBarColour = 1', () => {
before(() => {
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor = 1;
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColour = 1;
});
it('Toggle style correctly', () => {
assert.equal(domids.CMUpgradeBar.style.display, ''); // eslint-disable-line no-undef
});
});
describe('UpBarColor = 2', () => {
describe('UpBarColour = 2', () => {
before(() => {
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor = 2;
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColour = 2;
});
it('Toggle style correctly', () => {
assert.equal(domids.CMUpgradeBar.style.display, 'none'); // eslint-disable-line no-undef

View File

@@ -5,25 +5,25 @@ import GetTimeColour from '../../src/Disp/BeautifyAndFormatting/GetTimeColour';
describe('GetTimeColour', () => {
it('Format when time is less than 60', () => {
expect(GetTimeColour(59).color).to.deep.equal('Yellow');
expect(GetTimeColour(59).colour).to.deep.equal('Yellow');
});
it('Format when time is more than 60', () => {
expect(GetTimeColour(61).color).to.deep.equal('Orange');
expect(GetTimeColour(61).colour).to.deep.equal('Orange');
});
it('Format when time is more than 300', () => {
expect(GetTimeColour(301).color).to.deep.equal('Red');
expect(GetTimeColour(301).colour).to.deep.equal('Red');
});
describe('TimeFormat = 0', () => {
before(() => {
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimeFormat = 0;
});
it('Format when time is 0', () => {
expect(GetTimeColour(0)).to.deep.equal({ text: 'Done!', color: 'Green' });
expect(GetTimeColour(0)).to.deep.equal({ text: 'Done!', colour: 'Green' });
});
it('Format when time is negative', () => {
expect(GetTimeColour(-1)).to.deep.equal({
text: 'Done!',
color: 'Green',
colour: 'Green',
});
});
});
@@ -34,13 +34,13 @@ describe('GetTimeColour', () => {
it('Format when time is 0', () => {
expect(GetTimeColour(0)).to.deep.equal({
text: '00:00:00:00:00',
color: 'Green',
colour: 'Green',
});
});
it('Format when time is negative', () => {
expect(GetTimeColour(-1)).to.deep.equal({
text: '00:00:00:00:00',
color: 'Green',
colour: 'Green',
});
});
});

View File

@@ -4,9 +4,9 @@ const webpack = require('webpack');
module.exports = function (env) {
return {
mode: 'production',
devtool: env.production ? 'source-map' : 'inline-source-map',
devtool: env.minimize ? 'source-map' : 'inline-source-map',
optimization: {
minimize: !!env.production,
minimize: !!env.minimize,
},
entry: './src/CookieMonster.js',
resolve: {
@@ -22,12 +22,13 @@ module.exports = function (env) {
],
},
output: {
filename: 'CookieMonsterDev.js',
filename: env.finalfile ? 'CookieMonster.js' : 'CookieMonsterDev.js',
path: path.resolve(__dirname, 'dist'),
},
plugins: [
new webpack.SourceMapDevToolPlugin({
filename: 'CookieMonsterDev.js.map',
filename:
env.finalfile && env.minimize ? 'CookieMonster.js.map' : 'CookieMonsterDev.js.map',
publicPath: 'https://cookiemonsterteam.github.io/CookieMonster/dist/',
fileContext: 'public',
}),