From f7a7b23dd175a3a27b636644842e0f16989d990f Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 23 May 2024 12:29:18 -0400 Subject: [PATCH 01/61] Update README and package, re-add money formatter (#1286) --- .gitignore | 3 - README.md | 5 +- docs/linting.md | 40 + package-lock.json | 6111 ++++++++++++++++++++++++++++----------- package.json | 2 +- src/battle-scene.ts | 2 +- src/system/game-data.ts | 1 + 7 files changed, 4414 insertions(+), 1750 deletions(-) create mode 100644 docs/linting.md diff --git a/.gitignore b/.gitignore index d4fd3762cb4..55f9203a81d 100644 --- a/.gitignore +++ b/.gitignore @@ -24,9 +24,6 @@ dist-ssr *.sln *.sw? -# Docummentation -docs/* - public/images/trainer/convert/* public/images/battle_anims/input/*.png public/images/pokemon/input/*.png diff --git a/README.md b/README.md index 72887579f17..5e1f595f16f 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ If you have the motivation and experience with Typescript/Javascript (or are wil ### 💻 Environment Setup #### Prerequisites -- node: 18.3.0 +- node: 20.13.1 - npm: [how to install](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) #### Running Locally @@ -16,6 +16,9 @@ If you have the motivation and experience with Typescript/Javascript (or are wil - *if you run into any errors, reach out in the **#dev-corner** channel in discord* 2. Run `npm run start:dev` to locally run the project in `localhost:8000` +#### Linting +We're using ESLint as our common linter and formatter. It will run automatically during the pre-commit hook but if you would like to manually run it, use the `npm run eslint` script. + ### ❔ FAQ **How do I test a new _______?** diff --git a/docs/linting.md b/docs/linting.md new file mode 100644 index 00000000000..39b30b7a1c0 --- /dev/null +++ b/docs/linting.md @@ -0,0 +1,40 @@ +# ESLint +## Key Features + +1. **Automation**: + - A pre-commit hook has been added to automatically run ESLint on the added or modified files, ensuring code quality before commits. + +2. **Manual Usage**: + - If you prefer not to use the pre-commit hook, you can manually run ESLint to automatically fix issues using the command: + ```sh + npx eslint --fix . or npm run eslint + ``` + - Running this command will lint all files in the repository. + +3. **GitHub Action**: + - A GitHub Action has been added to automatically run ESLint on every push and pull request, ensuring code quality in the CI/CD pipeline. + +## Summary of ESLint Rules + +1. **General Rules**: + - **Equality**: Use `===` and `!==` instead of `==` and `!=` (`eqeqeq`). + - **Indentation**: Enforce 2-space indentation (`indent`). + - **Quotes**: Use doublequotes for strings (`quotes`). + - **Variable Declarations**: + - Disallow `var`; use `let` or `const` (`no-var`). + - Prefer `const` for variables that are never reassigned (`prefer-const`). + - **Unused Variables**: Allow unused function parameters but enforce error for other unused variables (`@typescript-eslint/no-unused-vars`). + - **End of Line**: Ensure at least one newline at the end of files (`eol-last`). + - **Curly Braces**: Enforce the use of curly braces for all control statements (`curly`). + - **Brace Style**: Use one true brace style (`1tbs`) for TypeScript-specific syntax (`@typescript-eslint/brace-style`). + +2. **TypeScript-Specific Rules**: + - **Semicolons**: + - Enforce semicolons for TypeScript-specific syntax (`@typescript-eslint/semi`). + - Disallow unnecessary semicolons (`@typescript-eslint/no-extra-semi`). + +## Benefits + +- **Consistency**: Ensures consistent coding style across the project. +- **Code Quality**: Helps catch potential errors and improve overall code quality. +- **Readability**: Makes the codebase easier to read and maintain. \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d75e8ed6677..228983a1036 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,41 +1,87 @@ { "name": "pokemon-rogue-battle", "version": "1.0.4", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@ampproject/remapping": { + "packages": { + "": { + "name": "pokemon-rogue-battle", + "version": "1.0.4", + "dependencies": { + "@material/material-color-utilities": "^0.2.7", + "crypto-js": "^4.2.0", + "i18next": "^23.11.1", + "i18next-browser-languagedetector": "^7.2.1", + "json-stable-stringify": "^1.1.0", + "phaser": "^3.70.0", + "phaser3-rex-plugins": "^1.1.84" + }, + "devDependencies": { + "@eslint/js": "^9.3.0", + "@typescript-eslint/eslint-plugin": "^7.10.0", + "@typescript-eslint/parser": "^7.10.0", + "@vitest/coverage-istanbul": "^1.4.0", + "axios": "^1.6.2", + "axios-cache-interceptor": "^1.3.2", + "eslint": "^8.57.0", + "eslint-plugin-import": "^2.29.1", + "jsdom": "^24.0.0", + "json-beautify": "^1.1.1", + "lefthook": "^1.6.12", + "phaser3spectorjs": "^0.0.8", + "pokenode-ts": "^1.20.0", + "typescript": "^5.4.5", + "typescript-eslint": "^7.10.0", + "vite": "^4.5.0", + "vite-plugin-fs": "^0.4.4", + "vitest": "^1.4.0", + "vitest-canvas-mock": "^0.3.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/code-frame": { + "node_modules/@babel/code-frame": { "version": "7.24.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, - "requires": { + "dependencies": { "@babel/highlight": "^7.24.2", "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/compat-data": { + "node_modules/@babel/compat-data": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/core": { + "node_modules/@babel/core": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", "dev": true, - "requires": { + "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.2", "@babel/generator": "^7.24.4", @@ -52,185 +98,251 @@ "json5": "^2.2.3", "semver": "^6.3.1" }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "@babel/generator": { + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.24.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-compilation-targets": { + "node_modules/@babel/helper-compilation-targets": { "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, - "requires": { + "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-environment-visitor": { + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-function-name": { + "node_modules/@babel/helper-function-name": { "version": "7.23.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, - "requires": { + "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-hoist-variables": { + "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-imports": { + "node_modules/@babel/helper-module-imports": { "version": "7.24.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { + "node_modules/@babel/helper-module-transforms": { "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-simple-access": { + "node_modules/@babel/helper-simple-access": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-split-export-declaration": { + "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-string-parser": { + "node_modules/@babel/helper-string-parser": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-identifier": { + "node_modules/@babel/helper-validator-identifier": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-option": { + "node_modules/@babel/helper-validator-option": { "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helpers": { + "node_modules/@babel/helpers": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", "dev": true, - "requires": { + "dependencies": { "@babel/template": "^7.24.0", "@babel/traverse": "^7.24.1", "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/highlight": { + "node_modules/@babel/highlight": { "version": "7.24.2", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/parser": { + "node_modules/@babel/parser": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", - "dev": true + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } }, - "@babel/runtime": { + "node_modules/@babel/runtime": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", - "requires": { + "dependencies": { "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/template": { + "node_modules/@babel/template": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/parser": "^7.24.0", "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/traverse": { + "node_modules/@babel/traverse": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.24.1", "@babel/generator": "^7.24.1", "@babel/helper-environment-visitor": "^7.22.20", @@ -241,201 +353,423 @@ "@babel/types": "^7.24.0", "debug": "^4.3.1", "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/types": { + "node_modules/@babel/types": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@esbuild/aix-ppc64": { + "node_modules/@esbuild/aix-ppc64": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/android-arm": { + "node_modules/@esbuild/android-arm": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/android-arm64": { + "node_modules/@esbuild/android-arm64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/android-x64": { + "node_modules/@esbuild/android-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/darwin-arm64": { + "node_modules/@esbuild/darwin-arm64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/darwin-x64": { + "node_modules/@esbuild/darwin-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/freebsd-arm64": { + "node_modules/@esbuild/freebsd-arm64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/freebsd-x64": { + "node_modules/@esbuild/freebsd-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/linux-arm": { + "node_modules/@esbuild/linux-arm": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/linux-arm64": { + "node_modules/@esbuild/linux-arm64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/linux-ia32": { + "node_modules/@esbuild/linux-ia32": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/linux-loong64": { + "node_modules/@esbuild/linux-loong64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/linux-mips64el": { + "node_modules/@esbuild/linux-mips64el": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/linux-ppc64": { + "node_modules/@esbuild/linux-ppc64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/linux-riscv64": { + "node_modules/@esbuild/linux-riscv64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/linux-s390x": { + "node_modules/@esbuild/linux-s390x": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/linux-x64": { + "node_modules/@esbuild/linux-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/netbsd-x64": { + "node_modules/@esbuild/netbsd-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/openbsd-x64": { + "node_modules/@esbuild/openbsd-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/sunos-x64": { + "node_modules/@esbuild/sunos-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/win32-arm64": { + "node_modules/@esbuild/win32-arm64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/win32-ia32": { + "node_modules/@esbuild/win32-ia32": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } }, - "@esbuild/win32-x64": { + "node_modules/@esbuild/win32-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } }, - "@eslint-community/eslint-utils": { + "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, - "requires": { + "dependencies": { "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "@eslint-community/regexpp": { + "node_modules/@eslint-community/regexpp": { "version": "4.10.0", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } }, - "@eslint/eslintrc": { + "node_modules/@eslint/eslintrc": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, - "requires": { + "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.6.0", @@ -446,268 +780,411 @@ "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, - "dependencies": { - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - } + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "@eslint/js": { + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.3.0.tgz", "integrity": "sha512-niBqk8iwv96+yuTwjM6bWg8ovzAPF9qkICsGtcoa5/dmqcEMfdwNAX7+/OHcJHc7wj7XqPxH98oAHytFYlw6Sw==", - "dev": true + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } }, - "@humanwhocodes/config-array": { + "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, - "requires": { + "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "@humanwhocodes/module-importer": { + "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, - "@humanwhocodes/object-schema": { + "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, - "@istanbuljs/schema": { + "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "@jest/schemas": { + "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "requires": { + "dependencies": { "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@jridgewell/gen-mapping": { + "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "@jridgewell/resolve-uri": { + "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0.0" + } }, - "@jridgewell/set-array": { + "node_modules/@jridgewell/set-array": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0.0" + } }, - "@jridgewell/sourcemap-codec": { + "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, - "@jridgewell/trace-mapping": { + "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@material/material-color-utilities": { + "node_modules/@material/material-color-utilities": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/@material/material-color-utilities/-/material-color-utilities-0.2.7.tgz", "integrity": "sha512-0FCeqG6WvK4/Cc06F/xXMd/pv4FeisI0c1tUpBbfhA2n9Y8eZEv4Karjbmf2ZqQCPUWMrGp8A571tCjizxoTiQ==" }, - "@nodelib/fs.scandir": { + "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "requires": { + "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "@nodelib/fs.stat": { + "node_modules/@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8" + } }, - "@nodelib/fs.walk": { + "node_modules/@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "requires": { + "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "@rollup/rollup-android-arm-eabi": { + "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.4.tgz", "integrity": "sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==", + "cpu": [ + "arm" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "android" + ] }, - "@rollup/rollup-android-arm64": { + "node_modules/@rollup/rollup-android-arm64": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.4.tgz", "integrity": "sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "android" + ] }, - "@rollup/rollup-darwin-arm64": { + "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.4.tgz", "integrity": "sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "darwin" + ] }, - "@rollup/rollup-darwin-x64": { + "node_modules/@rollup/rollup-darwin-x64": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.4.tgz", "integrity": "sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "darwin" + ] }, - "@rollup/rollup-linux-arm-gnueabihf": { + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.4.tgz", "integrity": "sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==", + "cpu": [ + "arm" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "@rollup/rollup-linux-arm-musleabihf": { + "node_modules/@rollup/rollup-linux-arm-musleabihf": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.4.tgz", "integrity": "sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==", + "cpu": [ + "arm" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "@rollup/rollup-linux-arm64-gnu": { + "node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.4.tgz", "integrity": "sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "@rollup/rollup-linux-arm64-musl": { + "node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.4.tgz", "integrity": "sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "@rollup/rollup-linux-powerpc64le-gnu": { + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.4.tgz", "integrity": "sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==", + "cpu": [ + "ppc64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "@rollup/rollup-linux-riscv64-gnu": { + "node_modules/@rollup/rollup-linux-riscv64-gnu": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.4.tgz", "integrity": "sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==", + "cpu": [ + "riscv64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "@rollup/rollup-linux-s390x-gnu": { + "node_modules/@rollup/rollup-linux-s390x-gnu": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.4.tgz", "integrity": "sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==", + "cpu": [ + "s390x" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "@rollup/rollup-linux-x64-gnu": { + "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.4.tgz", "integrity": "sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "@rollup/rollup-linux-x64-musl": { + "node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.4.tgz", "integrity": "sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "@rollup/rollup-win32-arm64-msvc": { + "node_modules/@rollup/rollup-win32-arm64-msvc": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.4.tgz", "integrity": "sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ] }, - "@rollup/rollup-win32-ia32-msvc": { + "node_modules/@rollup/rollup-win32-ia32-msvc": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.4.tgz", "integrity": "sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==", + "cpu": [ + "ia32" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ] }, - "@rollup/rollup-win32-x64-msvc": { + "node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.4.tgz", "integrity": "sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ] }, - "@sinclair/typebox": { + "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, - "@types/estree": { + "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, - "@types/json5": { + "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "@typescript-eslint/eslint-plugin": { + "node_modules/@typescript-eslint/eslint-plugin": { "version": "7.10.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz", "integrity": "sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==", "dev": true, - "requires": { + "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "7.10.0", "@typescript-eslint/type-utils": "7.10.0", @@ -717,55 +1194,115 @@ "ignore": "^5.3.1", "natural-compare": "^1.4.0", "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "@typescript-eslint/parser": { + "node_modules/@typescript-eslint/parser": { "version": "7.10.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.10.0.tgz", "integrity": "sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/scope-manager": "7.10.0", "@typescript-eslint/types": "7.10.0", "@typescript-eslint/typescript-estree": "7.10.0", "@typescript-eslint/visitor-keys": "7.10.0", "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "7.10.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz", "integrity": "sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/types": "7.10.0", "@typescript-eslint/visitor-keys": "7.10.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "@typescript-eslint/type-utils": { + "node_modules/@typescript-eslint/type-utils": { "version": "7.10.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz", "integrity": "sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/typescript-estree": "7.10.0", "@typescript-eslint/utils": "7.10.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "@typescript-eslint/types": { + "node_modules/@typescript-eslint/types": { "version": "7.10.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz", "integrity": "sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==", - "dev": true + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } }, - "@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/typescript-estree": { "version": "7.10.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz", "integrity": "sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/types": "7.10.0", "@typescript-eslint/visitor-keys": "7.10.0", "debug": "^4.3.4", @@ -775,61 +1312,94 @@ "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "@typescript-eslint/utils": { + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { "version": "7.10.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.10.0.tgz", "integrity": "sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==", "dev": true, - "requires": { + "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@typescript-eslint/scope-manager": "7.10.0", "@typescript-eslint/types": "7.10.0", "@typescript-eslint/typescript-estree": "7.10.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" } }, - "@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys": { "version": "7.10.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz", "integrity": "sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/types": "7.10.0", "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "@ungap/structured-clone": { + "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "@vitest/coverage-istanbul": { + "node_modules/@vitest/coverage-istanbul": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-1.5.2.tgz", "integrity": "sha512-YGC+QSWOL8cQ2HQaTEFttmG9v3DGLy7lMZIGdqjtTgaW6omW17/uZPxuh6m2t69T0rFLqImduVthm5o/gYYWTQ==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.3.4", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-instrument": "^6.0.1", @@ -839,269 +1409,374 @@ "magicast": "^0.3.3", "picocolors": "^1.0.0", "test-exclude": "^6.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "1.5.2" } }, - "@vitest/expect": { + "node_modules/@vitest/expect": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.5.2.tgz", "integrity": "sha512-rf7MTD1WCoDlN3FfYJ9Llfp0PbdtOMZ3FIF0AVkDnKbp3oiMW1c8AmvRZBcqbAhDUAvF52e9zx4WQM1r3oraVA==", "dev": true, - "requires": { + "dependencies": { "@vitest/spy": "1.5.2", "@vitest/utils": "1.5.2", "chai": "^4.3.10" }, - "dependencies": { - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - } - }, - "check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "requires": { - "get-func-name": "^2.0.2" - } - }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - } + "funding": { + "url": "https://opencollective.com/vitest" } }, - "@vitest/runner": { + "node_modules/@vitest/expect/node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/@vitest/expect/node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vitest/expect/node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@vitest/expect/node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vitest/expect/node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/@vitest/runner": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.5.2.tgz", "integrity": "sha512-7IJ7sJhMZrqx7HIEpv3WrMYcq8ZNz9L6alo81Y6f8hV5mIE6yVZsFoivLZmr0D777klm1ReqonE9LyChdcmw6g==", "dev": true, - "requires": { + "dependencies": { "@vitest/utils": "1.5.2", "p-limit": "^5.0.0", "pathe": "^1.1.1" }, - "dependencies": { - "p-limit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", - "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true - } + "funding": { + "url": "https://opencollective.com/vitest" } }, - "@vitest/snapshot": { + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.5.2.tgz", "integrity": "sha512-CTEp/lTYos8fuCc9+Z55Ga5NVPKUgExritjF5VY7heRFUfheoAqBneUlvXSUJHUZPjnPmyZA96yLRJDP1QATFQ==", "dev": true, - "requires": { + "dependencies": { "magic-string": "^0.30.5", "pathe": "^1.1.1", "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "@vitest/spy": { + "node_modules/@vitest/spy": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.5.2.tgz", "integrity": "sha512-xCcPvI8JpCtgikT9nLpHPL1/81AYqZy1GCy4+MCHBE7xi8jgsYkULpW5hrx5PGLgOQjUpb6fd15lqcriJ40tfQ==", "dev": true, - "requires": { + "dependencies": { "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "@vitest/utils": { + "node_modules/@vitest/utils": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.5.2.tgz", "integrity": "sha512-sWOmyofuXLJ85VvXNsroZur7mOJGiQeM0JN3/0D1uU8U9bGFM69X1iqHaRXl6R8BwaLY6yPCogP257zxTzkUdA==", "dev": true, - "requires": { + "dependencies": { "diff-sequences": "^29.6.3", "estree-walker": "^3.0.3", "loupe": "^2.3.7", "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "accepts": { + "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, - "requires": { + "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "acorn": { + "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-jsx": { + "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, - "acorn-walk": { + "node_modules/acorn-walk": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "agent-base": { + "node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "ajv": { + "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "requires": { + "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "argparse": { + "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "array-buffer-byte-length": { + "node_modules/array-buffer-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.5", "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "array-includes": { + "node_modules/array-includes": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "array-union": { + "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "array.prototype.findlastindex": { + "node_modules/array.prototype.findlastindex": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "array.prototype.flat": { + "node_modules/array.prototype.flat": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "array.prototype.flatmap": { + "node_modules/array.prototype.flatmap": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "arraybuffer.prototype.slice": { + "node_modules/arraybuffer.prototype.slice": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, - "requires": { + "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -1110,471 +1785,648 @@ "get-intrinsic": "^1.2.3", "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "asynckit": { + "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "available-typed-arrays": { + "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, - "requires": { + "dependencies": { "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "axios": { + "node_modules/axios": { "version": "1.6.8", "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dev": true, - "requires": { + "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, - "axios-cache-interceptor": { + "node_modules/axios-cache-interceptor": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/axios-cache-interceptor/-/axios-cache-interceptor-1.5.2.tgz", "integrity": "sha512-zrJZ9DZo5hKfrU+SEN/qhXxGD7GWRzwoqJ7sSvxikizUvDhWy/U9BoAbWLZZdyjbHHsfmS1OlQZCDW6o69r4DA==", "dev": true, - "requires": { + "dependencies": { "cache-parser": "1.2.4", "fast-defer": "1.1.8", "object-code": "1.3.3" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/arthurfiorette/axios-cache-interceptor?sponsor=1" + }, + "peerDependencies": { + "axios": "^1" } }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { + "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "requires": { + "dependencies": { "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" } }, - "browserslist": { + "node_modules/browserslist": { "version": "4.23.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { "caniuse-lite": "^1.0.30001587", "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "bytes": { + "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "cac": { + "node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "cache-content-type": { + "node_modules/cache-content-type": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, - "requires": { + "dependencies": { "mime-types": "^2.1.18", "ylru": "^1.2.0" + }, + "engines": { + "node": ">= 6.0.0" } }, - "cache-parser": { + "node_modules/cache-parser": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/cache-parser/-/cache-parser-1.2.4.tgz", "integrity": "sha512-O0KwuHuJnbHUrghHi2kGp0SxnWSIBXTYt7M8WVhW0kbPRUNUKoE/Of6e1rRD6AAxmfxFunKnt90yEK09D+sc5g==", "dev": true }, - "call-bind": { + "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "requires": { + "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "callsites": { + "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "caniuse-lite": { + "node_modules/caniuse-lite": { "version": "1.0.30001612", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz", "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==", - "dev": true + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] }, - "chalk": { + "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "co": { + "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } }, - "co-body": { + "node_modules/co-body": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", "dev": true, - "requires": { + "dependencies": { "inflation": "^2.0.0", "qs": "^6.5.2", "raw-body": "^2.3.3", "type-is": "^1.6.16" } }, - "color-convert": { + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "combined-stream": { + "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, - "requires": { + "dependencies": { "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "confbox": { + "node_modules/confbox": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", "dev": true }, - "content-disposition": { + "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" } }, - "content-type": { + "node_modules/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "convert-source-map": { + "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "cookies": { + "node_modules/cookies": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", "dev": true, - "requires": { + "dependencies": { "depd": "~2.0.0", "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" } }, - "copy-to": { + "node_modules/copy-to": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz", "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==", "dev": true }, - "cross-fetch": { + "node_modules/cross-fetch": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", - "requires": { + "dependencies": { "node-fetch": "^2.6.12" } }, - "cross-spawn": { + "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "requires": { + "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "crypto-js": { + "node_modules/crypto-js": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" }, - "cssfontparser": { + "node_modules/cssfontparser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz", "integrity": "sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==", "dev": true }, - "cssstyle": { + "node_modules/cssstyle": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz", "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==", "dev": true, - "requires": { + "dependencies": { "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=18" } }, - "data-urls": { + "node_modules/data-urls": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", "dev": true, - "requires": { + "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" }, - "dependencies": { - "tr46": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", - "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", - "dev": true, - "requires": { - "punycode": "^2.3.1" - } - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "whatwg-url": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", - "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", - "dev": true, - "requires": { - "tr46": "^5.0.0", - "webidl-conversions": "^7.0.0" - } - } + "engines": { + "node": ">=18" } }, - "data-view-buffer": { + "node_modules/data-urls/node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "dev": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-urls/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", + "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", + "dev": true, + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "data-view-byte-length": { + "node_modules/data-view-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "data-view-byte-offset": { + "node_modules/data-view-byte-offset": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "debug": { + "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "requires": { + "dependencies": { "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "decimal.js": { + "node_modules/decimal.js": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, - "deep-equal": { + "node_modules/deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", "dev": true }, - "deep-is": { + "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "define-data-property": { + "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { + "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "define-properties": { + "node_modules/define-properties": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "requires": { + "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "delayed-stream": { + "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "delegates": { + "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, - "depd": { + "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "destroy": { + "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, - "diff-sequences": { + "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "dir-glob": { + "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "requires": { + "dependencies": { "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "doctrine": { + "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "requires": { + "dependencies": { "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "ee-first": { + "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "electron-to-chromium": { + "node_modules/electron-to-chromium": { "version": "1.4.749", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.749.tgz", "integrity": "sha512-LRMMrM9ITOvue0PoBrvNIraVmuDbJV5QC9ierz/z5VilMdPOVMjOtpICNld3PuXuTZ3CHH/UPxX9gHhAPwi+0Q==", "dev": true }, - "encodeurl": { + "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "entities": { + "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, - "es-abstract": { + "node_modules/es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, - "requires": { + "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", "available-typed-arrays": "^1.0.7", @@ -1621,67 +2473,98 @@ "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "es-define-property": { + "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { + "dependencies": { "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" } }, - "es-errors": { + "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } }, - "es-object-atoms": { + "node_modules/es-object-atoms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, - "requires": { + "dependencies": { "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, - "es-set-tostringtag": { + "node_modules/es-set-tostringtag": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, - "requires": { + "dependencies": { "get-intrinsic": "^1.2.4", "has-tostringtag": "^1.0.2", "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" } }, - "es-shim-unscopables": { + "node_modules/es-shim-unscopables": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, - "requires": { + "dependencies": { "hasown": "^2.0.0" } }, - "es-to-primitive": { + "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "requires": { + "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "esbuild": { + "node_modules/esbuild": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, - "requires": { + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", @@ -1706,30 +2589,36 @@ "@esbuild/win32-x64": "0.18.20" } }, - "escalade": { + "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "escape-html": { + "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "eslint": { + "node_modules/eslint": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, - "requires": { + "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", @@ -1769,127 +2658,68 @@ "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, - "dependencies": { - "@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "eslint-import-resolver-node": { + "node_modules/eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, - "requires": { + "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", "resolve": "^1.22.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } } }, - "eslint-module-utils": { + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, - "requires": { + "dependencies": { "debug": "^3.2.7" }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true } } }, - "eslint-plugin-import": { + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, - "requires": { + "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", "array.prototype.flat": "^1.3.2", @@ -1908,110 +2738,256 @@ "semver": "^6.3.1", "tsconfig-paths": "^3.15.0" }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "eslint-scope": { + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, - "requires": { + "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "eslint-visitor-keys": { + "node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "espree": { + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "requires": { + "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "esquery": { + "node_modules/esquery": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, - "requires": { + "dependencies": { "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" } }, - "esrecurse": { + "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "requires": { + "dependencies": { "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" } }, - "estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4.0" + } }, - "estree-walker": { + "node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, - "requires": { + "dependencies": { "@types/estree": "^1.0.0" } }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "eventemitter3": { + "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" }, - "execa": { + "node_modules/execa": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, - "requires": { + "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", "human-signals": "^5.0.0", @@ -2021,782 +2997,1109 @@ "onetime": "^6.0.0", "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "fast-deep-equal": { + "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "fast-defer": { + "node_modules/fast-defer": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/fast-defer/-/fast-defer-1.1.8.tgz", "integrity": "sha512-lEJeOH5VL5R09j6AA0D4Uvq7AgsHw0dAImQQ+F3iSyHZuAxyQfWobsagGpTcOPvJr3urmKRHrs+Gs9hV+/Qm/Q==", "dev": true }, - "fast-glob": { + "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, - "requires": { + "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } + "engines": { + "node": ">=8.6.0" } }, - "fast-json-stable-stringify": { + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "fast-levenshtein": { + "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "fastq": { + "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, - "requires": { + "dependencies": { "reusify": "^1.0.4" } }, - "file-entry-cache": { + "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "requires": { + "dependencies": { "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "fill-range": { + "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "requires": { + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "find-up": { + "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "requires": { + "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "flat-cache": { + "node_modules/flat-cache": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, - "requires": { + "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "flatted": { + "node_modules/flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "follow-redirects": { + "node_modules/follow-redirects": { "version": "1.15.6", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } }, - "for-each": { + "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "requires": { + "dependencies": { "is-callable": "^1.1.3" } }, - "form-data": { + "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, - "requires": { + "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "fsevents": { + "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "optional": true + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "function.prototype.name": { + "node_modules/function.prototype.name": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "functions-have-names": { + "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "gensync": { + "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "get-func-name": { + "node_modules/get-func-name": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "get-intrinsic": { + "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "requires": { + "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "get-stream": { + "node_modules/get-stream": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "get-symbol-description": { + "node_modules/get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "glob": { + "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "requires": { + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "glob-parent": { + "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "requires": { + "dependencies": { "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "globals": { + "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "globalthis": { + "node_modules/globalthis": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, - "requires": { + "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "globby": { + "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "requires": { + "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "gopd": { + "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { + "dependencies": { "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "graphemer": { + "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "has-bigints": { + "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-flag": { + "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "has-property-descriptors": { + "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { + "dependencies": { "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-proto": { + "node_modules/has-proto": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-symbols": { + "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-tostringtag": { + "node_modules/has-tostringtag": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "hasown": { + "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { + "dependencies": { "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "html-encoding-sniffer": { + "node_modules/html-encoding-sniffer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", "dev": true, - "requires": { + "dependencies": { "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" } }, - "html-escaper": { + "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "http-assert": { + "node_modules/http-assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", "dev": true, - "requires": { + "dependencies": { "deep-equal": "~1.0.1", "http-errors": "~1.8.0" + }, + "engines": { + "node": ">= 0.8" } }, - "http-errors": { + "node_modules/http-errors": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, - "requires": { + "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.1" }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true - } + "engines": { + "node": ">= 0.6" } }, - "http-proxy-agent": { + "node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, - "requires": { + "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "https-proxy-agent": { + "node_modules/https-proxy-agent": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, - "requires": { + "dependencies": { "agent-base": "^7.0.2", "debug": "4" + }, + "engines": { + "node": ">= 14" } }, - "human-signals": { + "node_modules/human-signals": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=16.17.0" + } }, - "i18next": { + "node_modules/i18next": { "version": "23.11.2", "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.11.2.tgz", "integrity": "sha512-qMBm7+qT8jdpmmDw/kQD16VpmkL9BdL+XNAK5MNbNFaf1iQQq35ZbPrSlqmnNPOSUY4m342+c0t0evinF5l7sA==", - "requires": { + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { "@babel/runtime": "^7.23.2" } }, - "i18next-browser-languagedetector": { + "node_modules/i18next-browser-languagedetector": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.1.tgz", "integrity": "sha512-h/pM34bcH6tbz8WgGXcmWauNpQupCGr25XPp9cZwZInR9XHSjIFDYp1SIok7zSPsTOMxdvuLyu86V+g2Kycnfw==", - "requires": { + "dependencies": { "@babel/runtime": "^7.23.2" } }, - "i18next-http-backend": { + "node_modules/i18next-http-backend": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.5.1.tgz", "integrity": "sha512-+rNX1tghdVxdfjfPt0bI1sNg5ahGW9kA7OboG7b4t03Fp69NdDlRIze6yXhIbN8rbHxJ8IP4dzRm/okZ15lkQg==", - "requires": { + "dependencies": { "cross-fetch": "4.0.0" } }, - "iconv-lite": { + "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "ignore": { + "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4" + } }, - "import-fresh": { + "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "requires": { + "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "imurmurhash": { + "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.19" + } }, - "inflation": { + "node_modules/inflation": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "internal-slot": { + "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, - "requires": { + "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" } }, - "is-array-buffer": { + "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-bigint": { + "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "requires": { + "dependencies": { "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-boolean-object": { + "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-callable": { + "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-core-module": { + "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, - "requires": { + "dependencies": { "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-data-view": { + "node_modules/is-data-view": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, - "requires": { + "dependencies": { "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { + "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-generator-function": { + "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-glob": { + "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "requires": { + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-negative-zero": { + "node_modules/is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-number": { + "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "is-number-object": { + "node_modules/is-number-object": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-path-inside": { + "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-potential-custom-element-name": { + "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, - "is-regex": { + "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-shared-array-buffer": { + "node_modules/is-shared-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-stream": { + "node_modules/is-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-string": { + "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-symbol": { + "node_modules/is-symbol": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-typed-array": { + "node_modules/is-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, - "requires": { + "dependencies": { "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-weakref": { + "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "isarray": { + "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "istanbul-lib-coverage": { + "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "istanbul-lib-instrument": { + "node_modules/istanbul-lib-instrument": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", "dev": true, - "requires": { + "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" } }, - "istanbul-lib-report": { + "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "requires": { + "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "engines": { + "node": ">=10" } }, - "istanbul-lib-source-maps": { + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.4.tgz", "integrity": "sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" } }, - "istanbul-reports": { + "node_modules/istanbul-reports": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, - "requires": { + "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "jest-canvas-mock": { + "node_modules/jest-canvas-mock": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz", "integrity": "sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==", "dev": true, - "requires": { + "dependencies": { "cssfontparser": "^1.2.1", "moo-color": "^1.0.2" } }, - "js-tokens": { + "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "js-yaml": { + "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { + "dependencies": { "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "jsdom": { + "node_modules/jsdom": { "version": "24.0.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.0.0.tgz", "integrity": "sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==", "dev": true, - "requires": { + "dependencies": { "cssstyle": "^4.0.1", "data-urls": "^5.0.0", "decimal.js": "^10.4.3", @@ -2819,110 +4122,155 @@ "ws": "^8.16.0", "xml-name-validator": "^5.0.0" }, - "dependencies": { - "tr46": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", - "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", - "dev": true, - "requires": { - "punycode": "^2.3.1" - } - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "whatwg-url": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", - "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", - "dev": true, - "requires": { - "tr46": "^5.0.0", - "webidl-conversions": "^7.0.0" - } + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true } } }, - "jsesc": { + "node_modules/jsdom/node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "dev": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/jsdom/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/jsdom/node_modules/whatwg-url": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", + "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", + "dev": true, + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "json-beautify": { + "node_modules/json-beautify": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/json-beautify/-/json-beautify-1.1.1.tgz", "integrity": "sha512-17j+Hk2lado0xqKtUcyAjK0AtoHnPSIgktWRsEXgdFQFG9UnaGw6CHa0J7xsvulxRpFl6CrkDFHght1p5ZJc4A==", - "dev": true + "dev": true, + "bin": { + "json-beautify": "bin/json-beautify" + } }, - "json-buffer": { + "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "json-schema-traverse": { + "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "json-stable-stringify": { + "node_modules/json-stable-stringify": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", - "requires": { + "dependencies": { "call-bind": "^1.0.5", "isarray": "^2.0.5", "jsonify": "^0.0.1", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "json-stable-stringify-without-jsonify": { + "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "json5": { + "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, - "jsonify": { + "node_modules/jsonify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==" + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "keygrip": { + "node_modules/keygrip": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", "dev": true, - "requires": { + "dependencies": { "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" } }, - "keyv": { + "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "requires": { + "dependencies": { "json-buffer": "3.0.1" } }, - "koa": { + "node_modules/koa": { "version": "2.15.3", "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.3.tgz", "integrity": "sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==", "dev": true, - "requires": { + "dependencies": { "accepts": "^1.3.5", "cache-content-type": "^1.0.0", "content-disposition": "~0.5.2", @@ -2946,60 +4294,77 @@ "statuses": "^1.5.0", "type-is": "^1.6.16", "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" } }, - "koa-bodyparser": { + "node_modules/koa-bodyparser": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.4.1.tgz", "integrity": "sha512-kBH3IYPMb+iAXnrxIhXnW+gXV8OTzCu8VPDqvcDHW9SQrbkHmqPQtiZwrltNmSq6/lpipHnT7k7PsjlVD7kK0w==", "dev": true, - "requires": { + "dependencies": { "co-body": "^6.0.0", "copy-to": "^2.0.1", "type-is": "^1.6.18" + }, + "engines": { + "node": ">=8.0.0" } }, - "koa-compose": { + "node_modules/koa-compose": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", "dev": true }, - "koa-convert": { + "node_modules/koa-convert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", "dev": true, - "requires": { + "dependencies": { "co": "^4.6.0", "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 10" } }, - "koa-cors": { + "node_modules/koa-cors": { "version": "0.0.16", "resolved": "https://registry.npmjs.org/koa-cors/-/koa-cors-0.0.16.tgz", "integrity": "sha512-s15knPxe3AJBi2I/ZMPL0pSqU+PLYLO6k5tI0AqClkzavowvocPlSdFUwaHNqtjHMhsGmiq2tiX/25iILJx9YA==", "dev": true }, - "koa-router": { + "node_modules/koa-router": { "version": "10.1.1", "resolved": "https://registry.npmjs.org/koa-router/-/koa-router-10.1.1.tgz", "integrity": "sha512-z/OzxVjf5NyuNO3t9nJpx7e1oR3FSBAauiwXtMQu4ppcnuNZzTaQ4p21P8A6r2Es8uJJM339oc4oVW+qX7SqnQ==", + "deprecated": "**IMPORTANT 10x+ PERFORMANCE UPGRADE**: Please upgrade to v12.0.1+ as we have fixed an issue with debuglog causing 10x slower router benchmark performance, see https://github.com/koajs/router/pull/173", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.1", "http-errors": "^1.7.3", "koa-compose": "^4.1.0", "methods": "^1.1.2", "path-to-regexp": "^6.1.0" + }, + "engines": { + "node": ">= 8.0.0" } }, - "lefthook": { + "node_modules/lefthook": { "version": "1.6.12", "resolved": "https://registry.npmjs.org/lefthook/-/lefthook-1.6.12.tgz", "integrity": "sha512-SoHhB0L1D5twH5KKsGAT1h4qF+RhGfPo/JC5z60H0RDuFWtSwFNOeFpT4Qa7XwM6J9c1fvqZzOH9/4XF7dG9Uw==", "dev": true, - "requires": { + "hasInstallScript": true, + "bin": { + "lefthook": "bin/index.js" + }, + "optionalDependencies": { "lefthook-darwin-arm64": "1.6.12", "lefthook-darwin-x64": "1.6.12", "lefthook-freebsd-arm64": "1.6.12", @@ -3010,521 +4375,729 @@ "lefthook-windows-x64": "1.6.12" } }, - "lefthook-darwin-arm64": { + "node_modules/lefthook-darwin-arm64": { "version": "1.6.12", "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.6.12.tgz", "integrity": "sha512-IJa50i+78nGxtSvnxLSDfSjBjjM7Ixl03V4+yl3Kdn+S+FwzEZet3LYTLbnKFUVy9Bg23obI3yXgwUx+tJjFXg==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "darwin" + ] }, - "lefthook-darwin-x64": { + "node_modules/lefthook-darwin-x64": { "version": "1.6.12", "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-1.6.12.tgz", "integrity": "sha512-h11ByUtwM78FShgWgSUyyZtwKW6pjYfYvTygw24c/lZXKjupfowK5Ps5A73hCsjr0AEJNVpgW1S5Jd22gIJJCA==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "darwin" + ] }, - "lefthook-freebsd-arm64": { + "node_modules/lefthook-freebsd-arm64": { "version": "1.6.12", "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.6.12.tgz", "integrity": "sha512-Aw1+AosL8r/LFSVKG7i8GI1FpHnWFG66/6DBDUgCwNAwhNCXt7tERAM8dj9S6EqmqHCQCC0nI/6qKNBsFPk7Ow==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "freebsd" + ] }, - "lefthook-freebsd-x64": { + "node_modules/lefthook-freebsd-x64": { "version": "1.6.12", "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.6.12.tgz", "integrity": "sha512-G8Dg7UuRstXrqaEA8MSOZikz6PpjPUQu3QmiihzcyGdzI76jFsmjJb2vkrnvMsH9u2gWb3J4sp3TULhbMHXwSw==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "freebsd" + ] }, - "lefthook-linux-arm64": { + "node_modules/lefthook-linux-arm64": { "version": "1.6.12", "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-1.6.12.tgz", "integrity": "sha512-fwO0i6x5EPelL66EwaySzGzvVbN2vLFZDUWuTi8nZzEgBsCBuG0mORxZg91cNCGLRPT3sgzWPraTkyzIJa7kHg==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "lefthook-linux-x64": { + "node_modules/lefthook-linux-x64": { "version": "1.6.12", "resolved": "https://registry.npmjs.org/lefthook-linux-x64/-/lefthook-linux-x64-1.6.12.tgz", "integrity": "sha512-pRAZKZhSoirjRwDF0TrqxgkeXtUmJqaUi0kGmMJmutToqo9IXQcnpueVmyV9Z1m6lLJn4PpKoFydY6tFXqvyNQ==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "lefthook-windows-arm64": { + "node_modules/lefthook-windows-arm64": { "version": "1.6.12", "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-1.6.12.tgz", "integrity": "sha512-jMMIoqNKtiqGrwyWeN3JXGXi7H7iAXsGB5v4DkcUbdw9y50qhruxWz84I2PoxwYmZVeMxRR+VpYvS7nOvBmzWA==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ] }, - "lefthook-windows-x64": { + "node_modules/lefthook-windows-x64": { "version": "1.6.12", "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-1.6.12.tgz", "integrity": "sha512-XqEBVIhp/Fd1Fs+VBlPhrSJlUkyXEJuxQmiYSYow3C18RNpQQrJFVFpz0wE/IDTn2jOXx+p5+hcdlJb+s6bnpA==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ] }, - "levn": { + "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "requires": { + "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "local-pkg": { + "node_modules/local-pkg": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", "dev": true, - "requires": { + "dependencies": { "mlly": "^1.4.2", "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "locate-path": { + "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "requires": { + "dependencies": { "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "lodash.merge": { + "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "loupe": { + "node_modules/loupe": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, - "requires": { + "dependencies": { "get-func-name": "^2.0.1" } }, - "lru-cache": { + "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "requires": { + "dependencies": { "yallist": "^3.0.2" } }, - "magic-string": { + "node_modules/magic-string": { "version": "0.30.10", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, - "magicast": { + "node_modules/magicast": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.4.tgz", "integrity": "sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==", "dev": true, - "requires": { + "dependencies": { "@babel/parser": "^7.24.4", "@babel/types": "^7.24.0", "source-map-js": "^1.2.0" } }, - "make-dir": { + "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "requires": { + "dependencies": { "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "media-typer": { + "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "merge-stream": { + "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "merge2": { + "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8" + } }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "micromatch": { + "node_modules/micromatch": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.6.tgz", "integrity": "sha512-Y4Ypn3oujJYxJcMacVgcs92wofTHxp9FzfDpQON4msDefoC0lb3ETvQLOdLcbhSwU1bz8HrL/1sygfBIHudrkQ==", "dev": true, - "requires": { + "dependencies": { "braces": "^3.0.3", "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=8.6" } }, - "mime-db": { + "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "requires": { + "dependencies": { "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "mimic-fn": { + "node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "minimatch": { + "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { + "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "mlly": { + "node_modules/mlly": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz", "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", "dev": true, - "requires": { + "dependencies": { "acorn": "^8.11.3", "pathe": "^1.1.2", "pkg-types": "^1.0.3", "ufo": "^1.3.2" } }, - "moo-color": { + "node_modules/moo-color": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz", "integrity": "sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==", "dev": true, - "requires": { - "color-name": "^1.1.4" - }, "dependencies": { - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } + "color-name": "^1.1.4" } }, - "ms": { + "node_modules/moo-color/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "mustache": { + "node_modules/mustache": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" + } }, - "nanoid": { + "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "natural-compare": { + "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "negotiator": { + "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "node-fetch": { + "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "requires": { + "dependencies": { "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node-releases": { + "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "npm-run-path": { + "node_modules/npm-run-path": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, - "requires": { + "dependencies": { "path-key": "^4.0.0" }, - "dependencies": { - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - } + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "nwsapi": { + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nwsapi": { "version": "2.2.9", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.9.tgz", "integrity": "sha512-2f3F0SEEer8bBu0dsNCFF50N0cTThV1nWFYcEYFZttdW0lDAoybv9cQoK7X7/68Z89S7FoRrVjP1LPX4XRf9vg==", "dev": true }, - "object-code": { + "node_modules/object-code": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/object-code/-/object-code-1.3.3.tgz", "integrity": "sha512-/Ds4Xd5xzrtUOJ+xJQ57iAy0BZsZltOHssnDgcZ8DOhgh41q1YJCnTPnWdWSLkNGNnxYzhYChjc5dgC9mEERCA==", "dev": true }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } }, - "object.assign": { + "node_modules/object.assign": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.fromentries": { + "node_modules/object.fromentries": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.groupby": { + "node_modules/object.groupby": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, - "object.values": { + "node_modules/object.values": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "on-finished": { + "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "requires": { + "dependencies": { "wrappy": "1" } }, - "onetime": { + "node_modules/onetime": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, - "requires": { + "dependencies": { "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "only": { + "node_modules/only": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", "dev": true }, - "optionator": { + "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "requires": { + "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" } }, - "p-limit": { + "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "requires": { + "dependencies": { "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { + "node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "requires": { + "dependencies": { "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "papaparse": { + "node_modules/papaparse": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz", "integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw==" }, - "parent-module": { + "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "requires": { + "dependencies": { "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "parse5": { + "node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, - "requires": { + "dependencies": { "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "path-exists": { + "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "path-key": { + "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-to-regexp": { + "node_modules/path-to-regexp": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", "dev": true }, - "path-type": { + "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "pathe": { + "node_modules/pathe": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true }, - "phaser": { + "node_modules/phaser": { "version": "3.80.1", "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.80.1.tgz", "integrity": "sha512-VQGAWoDOkEpAWYkI+PUADv5Ql+SM0xpLuAMBJHz9tBcOLqjJ2wd8bUhxJgOqclQlLTg97NmMd9MhS75w16x1Cw==", - "requires": { + "dependencies": { "eventemitter3": "^5.0.1" } }, - "phaser3-rex-plugins": { + "node_modules/phaser3-rex-plugins": { "version": "1.80.2", "resolved": "https://registry.npmjs.org/phaser3-rex-plugins/-/phaser3-rex-plugins-1.80.2.tgz", "integrity": "sha512-ZPA4c47WQRU6rqLdlOFizGU+ljtP4C2blhcpbYSsNMqNRHD7o8vRBEzEhl8w6CMGvcy+eVoA6v10cyL4eIZARw==", - "requires": { + "dependencies": { "eventemitter3": "^3.1.2", "i18next": "^22.5.1", "i18next-http-backend": "^2.5.0", @@ -3532,1076 +5105,1756 @@ "mustache": "^4.2.0", "papaparse": "^5.4.1", "webfontloader": "^1.6.28" - }, - "dependencies": { - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - }, - "i18next": { - "version": "22.5.1", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-22.5.1.tgz", - "integrity": "sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA==", - "requires": { - "@babel/runtime": "^7.20.6" - } - } } }, - "phaser3spectorjs": { + "node_modules/phaser3-rex-plugins/node_modules/eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "node_modules/phaser3-rex-plugins/node_modules/i18next": { + "version": "22.5.1", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-22.5.1.tgz", + "integrity": "sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { + "@babel/runtime": "^7.20.6" + } + }, + "node_modules/phaser3spectorjs": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/phaser3spectorjs/-/phaser3spectorjs-0.0.8.tgz", "integrity": "sha512-0dSO7/aMjEUPrp5EcjRvRRsEf+jXDbmzalPeJ6VtTB2Pn1PeaKc+qlL/DmO3l1Dvc5lkzc+Sil1Ta+Hkyi5cbA==", "dev": true }, - "picocolors": { + "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, - "picomatch": { + "node_modules/picomatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "pkg-types": { + "node_modules/pkg-types": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.0.tgz", "integrity": "sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==", "dev": true, - "requires": { + "dependencies": { "confbox": "^0.1.7", "mlly": "^1.6.1", "pathe": "^1.1.2" } }, - "pokenode-ts": { + "node_modules/pokenode-ts": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/pokenode-ts/-/pokenode-ts-1.20.0.tgz", "integrity": "sha512-6MekrbiQc9nmaZJ5xpyhRSEMFo4xEsMuB7RR3EqfPvuXo/3StnH1p4brfIiIWDCcZvu7t9a0vjodiR4TnRdLEw==", - "dev": true + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/Gabb-c/pokenode-ts?sponsor=1" + }, + "peerDependencies": { + "axios": "^1.4.0", + "axios-cache-interceptor": "^1.2.0" + } }, - "possible-typed-array-names": { + "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + } }, - "postcss": { + "node_modules/postcss": { "version": "8.4.38", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "prelude-ls": { + "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "pretty-format": { + "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "requires": { + "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "proxy-from-env": { + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "psl": { + "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, - "punycode": { + "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "qs": { + "node_modules/qs": { "version": "6.12.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", "dev": true, - "requires": { + "dependencies": { "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "querystringify": { + "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, - "queue-microtask": { + "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "raw-body": { + "node_modules/raw-body": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, - "requires": { + "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, - "dependencies": { - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - } + "engines": { + "node": ">= 0.8" } }, - "react-is": { + "node_modules/raw-body/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/raw-body/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { "version": "18.3.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.0.tgz", "integrity": "sha512-wRiUsea88TjKDc4FBEn+sLvIDesp6brMbGWnJGjew2waAc9evdhja/2LvePc898HJbHw0L+MTWy7NhpnELAvLQ==", "dev": true }, - "regenerator-runtime": { + "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, - "regexp.prototype.flags": { + "node_modules/regexp.prototype.flags": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.6", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "requires-port": { + "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, - "resolve": { + "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, - "requires": { + "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-from": { + "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "reusify": { + "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "rimraf": { + "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "requires": { + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "rollup": { + "node_modules/rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, - "requires": { + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { "fsevents": "~2.3.2" } }, - "rrweb-cssom": { + "node_modules/rrweb-cssom": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", "dev": true }, - "run-parallel": { + "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "queue-microtask": "^1.2.2" } }, - "safe-array-concat": { + "node_modules/safe-array-concat": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "safe-regex-test": { + "node_modules/safe-regex-test": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "saxes": { + "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, - "requires": { + "dependencies": { "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" } }, - "semver": { + "node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, - "requires": { + "dependencies": { "lru-cache": "^6.0.0" }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "set-function-length": { + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { + "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "set-function-name": { + "node_modules/set-function-name": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, - "requires": { + "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "setprototypeof": { + "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "shebang-command": { + "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "requires": { + "dependencies": { "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "side-channel": { + "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "siginfo": { + "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true }, - "signal-exit": { + "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "slash": { + "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "source-map-js": { + "node_modules/source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "stackback": { + "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true }, - "statuses": { + "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "std-env": { + "node_modules/std-env": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", "dev": true }, - "string.prototype.trim": { + "node_modules/string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.0", "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimend": { + "node_modules/string.prototype.trimend": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimstart": { + "node_modules/string.prototype.trimstart": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "strip-ansi": { + "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-bom": { + "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "strip-final-newline": { + "node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "strip-json-comments": { + "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "strip-literal": { + "node_modules/strip-literal": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", "dev": true, - "requires": { + "dependencies": { "js-tokens": "^9.0.0" }, - "dependencies": { - "js-tokens": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", - "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "supports-color": { + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "dev": true + }, + "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "supports-preserve-symlinks-flag": { + "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "symbol-tree": { + "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "test-exclude": { + "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "requires": { + "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" } }, - "text-table": { + "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "tinybench": { + "node_modules/tinybench": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", "dev": true }, - "tinypool": { + "node_modules/tinypool": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=14.0.0" + } }, - "tinyspy": { + "node_modules/tinyspy": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", - "dev": true + "dev": true, + "engines": { + "node": ">=14.0.0" + } }, - "to-fast-properties": { + "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "toidentifier": { + "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.6" + } }, - "tough-cookie": { + "node_modules/tough-cookie": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, - "requires": { + "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", "universalify": "^0.2.0", "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" } }, - "tr46": { + "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "ts-api-utils": { + "node_modules/ts-api-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } }, - "tsconfig-paths": { + "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "requires": { + "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } } }, - "tsscmp": { + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsscmp": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.6.x" + } }, - "type-check": { + "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "requires": { + "dependencies": { "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "type-detect": { + "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "type-fest": { + "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "type-is": { + "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "typed-array-buffer": { + "node_modules/typed-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" } }, - "typed-array-byte-length": { + "node_modules/typed-array-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "typed-array-byte-offset": { + "node_modules/typed-array-byte-offset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, - "requires": { + "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "typed-array-length": { + "node_modules/typed-array-length": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "typescript": { + "node_modules/typescript": { "version": "5.4.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } }, - "typescript-eslint": { + "node_modules/typescript-eslint": { "version": "7.10.0", "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.10.0.tgz", "integrity": "sha512-thO8nyqptXdfWHQrMJJiJyftpW8aLmwRNs11xA8pSrXneoclFPstQZqXvDWuH1WNL4CHffqHvYUeCHTit6yfhQ==", "dev": true, - "requires": { + "dependencies": { "@typescript-eslint/eslint-plugin": "7.10.0", "@typescript-eslint/parser": "7.10.0", "@typescript-eslint/utils": "7.10.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "ufo": { + "node_modules/ufo": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", "dev": true }, - "unbox-primitive": { + "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "universalify": { + "node_modules/universalify": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "update-browserslist-db": { + "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "uri-js": { + "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "url-parse": { + "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, - "requires": { + "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, - "vary": { + "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "vite": { + "node_modules/vite": { "version": "4.5.3", "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", "dev": true, - "requires": { + "dependencies": { "esbuild": "^0.18.10", - "fsevents": "~2.3.2", "postcss": "^8.4.27", "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, - "vite-node": { + "node_modules/vite-node": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.5.2.tgz", "integrity": "sha512-Y8p91kz9zU+bWtF7HGt6DVw2JbhyuB2RlZix3FPYAYmUyZ3n7iTp8eSyLyY6sxtPegvxQtmlTMhfPhUfCUF93A==", "dev": true, - "requires": { + "dependencies": { "cac": "^6.7.14", "debug": "^4.3.4", "pathe": "^1.1.1", "picocolors": "^1.0.0", "vite": "^5.0.0" }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vite-node/node_modules/rollup": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.16.4.tgz", + "integrity": "sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==", + "dev": true, "dependencies": { - "@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "dev": true, + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.16.4", + "@rollup/rollup-android-arm64": "4.16.4", + "@rollup/rollup-darwin-arm64": "4.16.4", + "@rollup/rollup-darwin-x64": "4.16.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.16.4", + "@rollup/rollup-linux-arm-musleabihf": "4.16.4", + "@rollup/rollup-linux-arm64-gnu": "4.16.4", + "@rollup/rollup-linux-arm64-musl": "4.16.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.16.4", + "@rollup/rollup-linux-riscv64-gnu": "4.16.4", + "@rollup/rollup-linux-s390x-gnu": "4.16.4", + "@rollup/rollup-linux-x64-gnu": "4.16.4", + "@rollup/rollup-linux-x64-musl": "4.16.4", + "@rollup/rollup-win32-arm64-msvc": "4.16.4", + "@rollup/rollup-win32-ia32-msvc": "4.16.4", + "@rollup/rollup-win32-x64-msvc": "4.16.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/vite-node/node_modules/vite": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", + "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", + "dev": true, + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { "optional": true }, - "@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "dev": true, + "less": { "optional": true }, - "@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "dev": true, + "lightningcss": { "optional": true }, - "@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "dev": true, + "sass": { "optional": true }, - "@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "dev": true, + "stylus": { "optional": true }, - "@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "dev": true, + "sugarss": { "optional": true }, - "@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "dev": true, + "terser": { "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "dev": true, - "optional": true - }, - "esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "rollup": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.16.4.tgz", - "integrity": "sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.16.4", - "@rollup/rollup-android-arm64": "4.16.4", - "@rollup/rollup-darwin-arm64": "4.16.4", - "@rollup/rollup-darwin-x64": "4.16.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.16.4", - "@rollup/rollup-linux-arm-musleabihf": "4.16.4", - "@rollup/rollup-linux-arm64-gnu": "4.16.4", - "@rollup/rollup-linux-arm64-musl": "4.16.4", - "@rollup/rollup-linux-powerpc64le-gnu": "4.16.4", - "@rollup/rollup-linux-riscv64-gnu": "4.16.4", - "@rollup/rollup-linux-s390x-gnu": "4.16.4", - "@rollup/rollup-linux-x64-gnu": "4.16.4", - "@rollup/rollup-linux-x64-musl": "4.16.4", - "@rollup/rollup-win32-arm64-msvc": "4.16.4", - "@rollup/rollup-win32-ia32-msvc": "4.16.4", - "@rollup/rollup-win32-x64-msvc": "4.16.4", - "@types/estree": "1.0.5", - "fsevents": "~2.3.2" - } - }, - "vite": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", - "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", - "dev": true, - "requires": { - "esbuild": "^0.20.1", - "fsevents": "~2.3.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - } } } }, - "vite-plugin-fs": { + "node_modules/vite-plugin-fs": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/vite-plugin-fs/-/vite-plugin-fs-0.4.4.tgz", "integrity": "sha512-TT9kEU2LX3musejDL99nLdjDl7P74AdTnK3yozehswg0FhKSGlNstkHVUgcswKSk6vH/Uzqgz+df7WT0sEA/IA==", "dev": true, - "requires": { + "dependencies": { "koa": "^2.13.4", "koa-bodyparser": "^4.3.0", "koa-cors": "^0.0.16", "koa-router": "^10.1.1" + }, + "engines": { + "node": ">=14" } }, - "vitest": { + "node_modules/vitest": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.5.2.tgz", "integrity": "sha512-l9gwIkq16ug3xY7BxHwcBQovLZG75zZL0PlsiYQbf76Rz6QGs54416UWMtC0jXeihvHvcHrf2ROEjkQRVpoZYw==", "dev": true, - "requires": { + "dependencies": { "@vitest/expect": "1.5.2", "@vitest/runner": "1.5.2", "@vitest/snapshot": "1.5.2", @@ -4623,421 +6876,791 @@ "vite-node": "1.5.2", "why-is-node-running": "^2.2.2" }, - "dependencies": { - "@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "dev": true, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.5.2", + "@vitest/ui": "1.5.2", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { "optional": true }, - "@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "dev": true, + "@types/node": { "optional": true }, - "@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "dev": true, + "@vitest/browser": { "optional": true }, - "@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "dev": true, + "@vitest/ui": { "optional": true }, - "@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "dev": true, + "happy-dom": { "optional": true }, - "@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "dev": true, + "jsdom": { "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "dev": true, - "optional": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - } - }, - "check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "requires": { - "get-func-name": "^2.0.2" - } - }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "rollup": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.16.4.tgz", - "integrity": "sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.16.4", - "@rollup/rollup-android-arm64": "4.16.4", - "@rollup/rollup-darwin-arm64": "4.16.4", - "@rollup/rollup-darwin-x64": "4.16.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.16.4", - "@rollup/rollup-linux-arm-musleabihf": "4.16.4", - "@rollup/rollup-linux-arm64-gnu": "4.16.4", - "@rollup/rollup-linux-arm64-musl": "4.16.4", - "@rollup/rollup-linux-powerpc64le-gnu": "4.16.4", - "@rollup/rollup-linux-riscv64-gnu": "4.16.4", - "@rollup/rollup-linux-s390x-gnu": "4.16.4", - "@rollup/rollup-linux-x64-gnu": "4.16.4", - "@rollup/rollup-linux-x64-musl": "4.16.4", - "@rollup/rollup-win32-arm64-msvc": "4.16.4", - "@rollup/rollup-win32-ia32-msvc": "4.16.4", - "@rollup/rollup-win32-x64-msvc": "4.16.4", - "@types/estree": "1.0.5", - "fsevents": "~2.3.2" - } - }, - "vite": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", - "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", - "dev": true, - "requires": { - "esbuild": "^0.20.1", - "fsevents": "~2.3.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - } } } }, - "vitest-canvas-mock": { + "node_modules/vitest-canvas-mock": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/vitest-canvas-mock/-/vitest-canvas-mock-0.3.3.tgz", "integrity": "sha512-3P968tYBpqYyzzOaVtqnmYjqbe13576/fkjbDEJSfQAkHtC5/UjuRHOhFEN/ZV5HVZIkaROBUWgazDKJ+Ibw+Q==", "dev": true, - "requires": { + "dependencies": { "jest-canvas-mock": "~2.5.2" + }, + "peerDependencies": { + "vitest": "*" } }, - "w3c-xmlserializer": { + "node_modules/vitest/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/vitest/node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vitest/node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/vitest/node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/vitest/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/vitest/node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/vitest/node_modules/rollup": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.16.4.tgz", + "integrity": "sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.16.4", + "@rollup/rollup-android-arm64": "4.16.4", + "@rollup/rollup-darwin-arm64": "4.16.4", + "@rollup/rollup-darwin-x64": "4.16.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.16.4", + "@rollup/rollup-linux-arm-musleabihf": "4.16.4", + "@rollup/rollup-linux-arm64-gnu": "4.16.4", + "@rollup/rollup-linux-arm64-musl": "4.16.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.16.4", + "@rollup/rollup-linux-riscv64-gnu": "4.16.4", + "@rollup/rollup-linux-s390x-gnu": "4.16.4", + "@rollup/rollup-linux-x64-gnu": "4.16.4", + "@rollup/rollup-linux-x64-musl": "4.16.4", + "@rollup/rollup-win32-arm64-msvc": "4.16.4", + "@rollup/rollup-win32-ia32-msvc": "4.16.4", + "@rollup/rollup-win32-x64-msvc": "4.16.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/vitest/node_modules/vite": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", + "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", + "dev": true, + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", "dev": true, - "requires": { + "dependencies": { "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" } }, - "webfontloader": { + "node_modules/webfontloader": { "version": "1.6.28", "resolved": "https://registry.npmjs.org/webfontloader/-/webfontloader-1.6.28.tgz", "integrity": "sha512-Egb0oFEga6f+nSgasH3E0M405Pzn6y3/9tOVanv/DLfa1YBIgcv90L18YyWnvXkRbIM17v5Kv6IT2N6g1x5tvQ==" }, - "webidl-conversions": { + "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, - "whatwg-encoding": { + "node_modules/whatwg-encoding": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", "dev": true, - "requires": { + "dependencies": { "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" } }, - "whatwg-mimetype": { + "node_modules/whatwg-mimetype": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", - "dev": true + "dev": true, + "engines": { + "node": ">=18" + } }, - "whatwg-url": { + "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { + "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, - "which": { + "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "which-boxed-primitive": { + "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "requires": { + "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-typed-array": { + "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, - "requires": { + "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "why-is-node-running": { + "node_modules/why-is-node-running": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", "dev": true, - "requires": { + "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" } }, - "word-wrap": { + "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "ws": { + "node_modules/ws": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, - "xml-name-validator": { + "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", - "dev": true + "dev": true, + "engines": { + "node": ">=18" + } }, - "xmlchars": { + "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, - "yallist": { + "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "ylru": { + "node_modules/ylru": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "yocto-queue": { + "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 2f2d711ce47..a477bbe8cbf 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "phaser3-rex-plugins": "^1.1.84" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" }, "imports": { "#app": "./src/main.js", diff --git a/src/battle-scene.ts b/src/battle-scene.ts index ba035cc7221..a36ad58f877 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -1251,7 +1251,7 @@ export default class BattleScene extends SceneBase { } updateMoneyText(): void { - this.moneyText.setText(`₽${this.money.toLocaleString("en-US")}`); + this.moneyText.setText(`₽${Utils.formatLargeNumber(this.money, 1000)}`); this.moneyText.setVisible(true); } diff --git a/src/system/game-data.ts b/src/system/game-data.ts index 3211a32d2e6..4c631e59dae 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -1084,6 +1084,7 @@ export class GameData { if (!valid) { return this.scene.ui.showText(`Your ${dataName} data could not be loaded. It may be corrupted.`, null, () => this.scene.ui.showText(null, 0), Utils.fixedInt(1500)); } + this.scene.ui.revertMode(); this.scene.ui.showText(`Your ${dataName} data will be overridden and the page will reload. Proceed?`, null, () => { this.scene.ui.setOverlayMode(Mode.CONFIRM, () => { localStorage.setItem(dataKey, encrypt(dataStr, bypassLogin)); From 79af11527851561f6d61bb0e250cb62cce1077bf Mon Sep 17 00:00:00 2001 From: Lugiad Date: Thu, 23 May 2024 20:22:09 +0200 Subject: [PATCH 02/61] Few new lines up to be localized from in battle.ts locales (#1144) * Update phases.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update phases.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update battle.ts * Update phases.ts --- src/locales/de/battle.ts | 3 +++ src/locales/en/battle.ts | 3 +++ src/locales/es/battle.ts | 3 +++ src/locales/fr/battle.ts | 3 +++ src/locales/it/battle.ts | 3 +++ src/locales/pt_BR/battle.ts | 3 +++ src/locales/zh_CN/battle.ts | 3 +++ src/phases.ts | 14 +++++++++++--- 8 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/locales/de/battle.ts b/src/locales/de/battle.ts index 4a09bfc5f8f..e60833cb27a 100644 --- a/src/locales/de/battle.ts +++ b/src/locales/de/battle.ts @@ -4,6 +4,7 @@ export const battle: SimpleTranslationEntries = { "bossAppeared": "{{bossName}} erscheint.", "trainerAppeared": "{{trainerName}}\nmöchte kämpfen!", "trainerAppearedDouble": "{{trainerName}}\nmöchten kämpfen!", + "trainerSendOut": "{{trainerName}} setzt\n{{pokemonName}} ein!", "singleWildAppeared": "Ein wildes {{pokemonName}} erscheint!", "multiWildAppeared": "Ein wildes {{pokemonName1}}\nund {{pokemonName2}} erscheinen!", "playerComeBack": "Komm zurück, {{pokemonName}}!", @@ -12,7 +13,9 @@ export const battle: SimpleTranslationEntries = { "trainerGo": "{{trainerName}} sendet {{pokemonName}} raus!", "switchQuestion": "Möchtest du\n{{pokemonName}} auswechseln?", "trainerDefeated": "{{trainerName}}\nwurde besiegt!", + "moneyWon": "Du gewinnst\n{{moneyAmount}} ₽!", "pokemonCaught": "{{pokemonName}} wurde gefangen!", + "partyFull": "Dein Team ist voll.\nMöchtest du ein Pokémon durch {{pokemonName}} ersetzen?", "pokemon": "Pokémon", "sendOutPokemon": "Los, {{pokemonName}}!", "hitResultCriticalHit": "Ein Volltreffer!", diff --git a/src/locales/en/battle.ts b/src/locales/en/battle.ts index 5ba0a588e19..a2eb9e4a9c9 100644 --- a/src/locales/en/battle.ts +++ b/src/locales/en/battle.ts @@ -4,6 +4,7 @@ export const battle: SimpleTranslationEntries = { "bossAppeared": "{{bossName}} appeared.", "trainerAppeared": "{{trainerName}}\nwould like to battle!", "trainerAppearedDouble": "{{trainerName}}\nwould like to battle!", + "trainerSendOut": "{{trainerName}} sent out\n{{pokemonName}}!", "singleWildAppeared": "A wild {{pokemonName}} appeared!", "multiWildAppeared": "A wild {{pokemonName1}}\nand {{pokemonName2}} appeared!", "playerComeBack": "Come back, {{pokemonName}}!", @@ -12,7 +13,9 @@ export const battle: SimpleTranslationEntries = { "trainerGo": "{{trainerName}} sent out {{pokemonName}}!", "switchQuestion": "Will you switch\n{{pokemonName}}?", "trainerDefeated": "You defeated\n{{trainerName}}!", + "moneyWon": "You got\n₽{{moneyAmount}} for winning!", "pokemonCaught": "{{pokemonName}} was caught!", + "partyFull": "Your party is full.\nRelease a Pokémon to make room for {{pokemonName}}?", "pokemon": "Pokémon", "sendOutPokemon": "Go! {{pokemonName}}!", "hitResultCriticalHit": "A critical hit!", diff --git a/src/locales/es/battle.ts b/src/locales/es/battle.ts index fcf8354990a..36e6d5b4167 100644 --- a/src/locales/es/battle.ts +++ b/src/locales/es/battle.ts @@ -4,6 +4,7 @@ export const battle: SimpleTranslationEntries = { "bossAppeared": "¡{{bossName}} te corta el paso!", "trainerAppeared": "¡{{trainerName}}\nte desafía!", "trainerAppearedDouble": "{{trainerName}}\nwould like to battle!", + "trainerSendOut": "{{trainerName}} sent out\n{{pokemonName}}!", "singleWildAppeared": "¡Un {{pokemonName}} salvaje te corta el paso!", "multiWildAppeared": "¡Un {{pokemonName1}} y un {{pokemonName2}} salvajes\nte cortan el paso!", "playerComeBack": "¡{{pokemonName}}, ven aquí!", @@ -12,7 +13,9 @@ export const battle: SimpleTranslationEntries = { "trainerGo": "¡{{trainerName}} saca a {{pokemonName}}!", "switchQuestion": "¿Quieres cambiar a\n{{pokemonName}}?", "trainerDefeated": "¡Has derrotado a\n{{trainerName}}!", + "moneyWon": "You got\n₽{{moneyAmount}} for winning!", "pokemonCaught": "¡{{pokemonName}} atrapado!", + "partyFull": "Your party is full.\nRelease a Pokémon to make room for {{pokemonName}}?", "pokemon": "Pokémon", "sendOutPokemon": "¡Adelante, {{pokemonName}}!", "hitResultCriticalHit": "!Un golpe crítico!", diff --git a/src/locales/fr/battle.ts b/src/locales/fr/battle.ts index a2ddc87993b..b1ae6f48f35 100644 --- a/src/locales/fr/battle.ts +++ b/src/locales/fr/battle.ts @@ -4,6 +4,7 @@ export const battle: SimpleTranslationEntries = { "bossAppeared": "Un {{bossName}} apparait.", "trainerAppeared": "Un combat est lancé\npar {{trainerName}} !", "trainerAppearedDouble": "Un combat est lancé\npar {{trainerName}} !", + "trainerSendOut": "{{pokemonName}} est envoyé par\n{{trainerName}} !", "singleWildAppeared": "Un {{pokemonName}} sauvage apparait !", "multiWildAppeared": "Un {{pokemonName1}} et un {{pokemonName2}}\nsauvages apparaissent !", "playerComeBack": "{{pokemonName}} !\nReviens !", @@ -12,7 +13,9 @@ export const battle: SimpleTranslationEntries = { "trainerGo": "{{pokemonName}} est envoyé par\n{{trainerName}} !", "switchQuestion": "Voulez-vous changer\nvotre {{pokemonName}} ?", "trainerDefeated": "Vous avez battu\n{{trainerName}} !", + "moneyWon": "Vous remportez\n{{moneyAmount}} ₽ !", "pokemonCaught": "Vous avez attrapé {{pokemonName}} !", + "partyFull": "Votre équipe est pleine.\nRelâcher un Pokémon pour {{pokemonName}} ?", "pokemon": "Pokémon", "sendOutPokemon": "{{pokemonName}} ! Go !", "hitResultCriticalHit": "Coup critique !", diff --git a/src/locales/it/battle.ts b/src/locales/it/battle.ts index 4cd640132c4..444e1f01bf0 100644 --- a/src/locales/it/battle.ts +++ b/src/locales/it/battle.ts @@ -4,6 +4,7 @@ export const battle: SimpleTranslationEntries = { "bossAppeared": "{{bossName}} è apparso.", "trainerAppeared": "{{trainerName}}\nvuole combattere!", "trainerAppearedDouble": "{{trainerName}}\nwould like to battle!", + "trainerSendOut": "{{trainerName}} manda in campo\n{{pokemonName}}!", "singleWildAppeared": "Appare {{pokemonName}} selvatico!", "multiWildAppeared": "Appaiono {{pokemonName1}}\ne {{pokemonName2}} salvatici!", "playerComeBack": "Rientra, {{pokemonName}}!", @@ -12,7 +13,9 @@ export const battle: SimpleTranslationEntries = { "trainerGo": "{{trainerName}} manda in campo {{pokemonName}}!", "switchQuestion": "Vuoi cambiare\n{{pokemonName}}?", "trainerDefeated": "Hai sconfitto\n{{trainerName}}!", + "moneyWon": "Hai vinto {{moneyAmount}}₽", "pokemonCaught": "Preso! {{pokemonName}} è stato catturato!", + "partyFull": "La tua squadra è al completo.\nVuoi liberare un Pokémon per far spazio a {{pokemonName}}?", "pokemon": "Pokémon", "sendOutPokemon": "Vai! {{pokemonName}}!", "hitResultCriticalHit": "Brutto colpo!", diff --git a/src/locales/pt_BR/battle.ts b/src/locales/pt_BR/battle.ts index 327b0cb51e9..b96266ac189 100644 --- a/src/locales/pt_BR/battle.ts +++ b/src/locales/pt_BR/battle.ts @@ -5,6 +5,7 @@ export const battle: SimpleTranslationEntries = { "trainerAppeared": "{{trainerName}}\nquer batalhar!", "trainerAppearedDouble": "{{trainerName}}\nquerem batalhar!", "singleWildAppeared": "Um {{pokemonName}} selvagem apareceu!", + "trainerSendOut": "{{trainerName}} sent out\n{{pokemonName}}!", "multiWildAppeared": "Um {{pokemonName1}} e um {{pokemonName2}} selvagens\napareceram!", "playerComeBack": "{{pokemonName}}, retorne!", "trainerComeBack": "{{trainerName}} retirou {{pokemonName}} da batalha!", @@ -12,7 +13,9 @@ export const battle: SimpleTranslationEntries = { "trainerGo": "{{trainerName}} escolheu {{pokemonName}}!", "switchQuestion": "Quer trocar\nde {{pokemonName}}?", "trainerDefeated": "Você derrotou\n{{trainerName}}!", + "moneyWon": "You got\n₽{{moneyAmount}} for winning!", "pokemonCaught": "{{pokemonName}} foi capturado!", + "partyFull": "Your party is full.\nRelease a Pokémon to make room for {{pokemonName}}?", "pokemon": "Pokémon", "sendOutPokemon": "{{pokemonName}}, eu escolho você!!", "hitResultCriticalHit": "Um golpe crítico!", diff --git a/src/locales/zh_CN/battle.ts b/src/locales/zh_CN/battle.ts index 5334bfe154b..3fbe95d39c4 100644 --- a/src/locales/zh_CN/battle.ts +++ b/src/locales/zh_CN/battle.ts @@ -4,6 +4,7 @@ export const battle: SimpleTranslationEntries = { "bossAppeared": "{{bossName}} 出现了。", "trainerAppeared": "{{trainerName}}\n想要和你对战!", "trainerAppearedDouble": "{{trainerName}}\n想要和你对战!", + "trainerSendOut": "{{trainerName}} sent out\n{{pokemonName}}!", "singleWildAppeared": "一只野生 {{pokemonName}} 出现了!", "multiWildAppeared": "野生的 {{pokemonName1}}\n和 {{pokemonName2}} 出现了!", "playerComeBack": "回来吧, {{pokemonName}}!", @@ -12,7 +13,9 @@ export const battle: SimpleTranslationEntries = { "trainerGo": "{{trainerName}} 派出了 {{pokemonName}}!", "switchQuestion": "要更换\n{{pokemonName}}吗?", "trainerDefeated": "你击败了\n{{trainerName}}!", + "moneyWon": "You got\n₽{{moneyAmount}} for winning!", "pokemonCaught": "{{pokemonName}} 被抓住了!", + "partyFull": "Your party is full.\nRelease a Pokémon to make room for {{pokemonName}}?", "pokemon": "宝可梦", "sendOutPokemon": "上吧! {{pokemonName}}!", "hitResultCriticalHit": "击中了要害!", diff --git a/src/phases.ts b/src/phases.ts index 58e17d4d9a8..0a7a5527545 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -1311,8 +1311,12 @@ export class SummonPhase extends PartyMemberPokemonPhase { }); this.scene.time.delayedCall(750, () => this.summon()); } else { + const trainerName = this.scene.currentBattle.trainer.getName(!(this.fieldIndex % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER); + const pokemonName = this.getPokemon().name; + const message = i18next.t("battle:trainerSendOut", { trainerName, pokemonName }); + this.scene.pbTrayEnemy.hide(); - this.scene.ui.showText(`${this.scene.currentBattle.trainer.getName(!(this.fieldIndex % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER)} sent out\n${this.getPokemon().name}!`, null, () => this.summon()); + this.scene.ui.showText(message, null, () => this.summon()); } } @@ -3739,7 +3743,11 @@ export class MoneyRewardPhase extends BattlePhase { this.scene.addMoney(moneyAmount.value); - this.scene.ui.showText(`You got ₽${moneyAmount.value.toLocaleString("en-US")}\nfor winning!`, null, () => this.end(), null, true); + const userLocale = navigator.language || "en-US"; + const formattedMoneyAmount = moneyAmount.value.toLocaleString(userLocale); + const message = i18next.t("battle:moneyWon", { moneyAmount: formattedMoneyAmount }); + + this.scene.ui.showText(message, null, () => this.end(), null, true); } } @@ -4651,7 +4659,7 @@ export class AttemptCapturePhase extends PokemonPhase { Promise.all([ pokemon.hideInfo(), this.scene.gameData.setPokemonCaught(pokemon) ]).then(() => { if (this.scene.getParty().length === 6) { const promptRelease = () => { - this.scene.ui.showText(`Your party is full.\nRelease a Pokémon to make room for ${pokemon.name}?`, null, () => { + this.scene.ui.showText(i18next.t("battle:partyFull", { pokemonName: pokemon.name }), null, () => { this.scene.pokemonInfoContainer.makeRoomForConfirmUi(); this.scene.ui.setMode(Mode.CONFIRM, () => { this.scene.ui.setMode(Mode.PARTY, PartyUiMode.RELEASE, this.fieldIndex, (slotIndex: integer, _option: PartyOption) => { From c86a51ba89c4a56fadf2c9baa060a9313909da01 Mon Sep 17 00:00:00 2001 From: Greenlamp2 <44787002+Greenlamp2@users.noreply.github.com> Date: Thu, 23 May 2024 20:26:12 +0200 Subject: [PATCH 03/61] prevent opening the menu on confirm dialog + fix config error message on crash (#1278) --- src/ui-inputs.ts | 2 +- src/ui/abstact-option-select-ui-handler.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ui-inputs.ts b/src/ui-inputs.ts index 6254773e656..6b175beb8b7 100644 --- a/src/ui-inputs.ts +++ b/src/ui-inputs.ts @@ -123,10 +123,10 @@ export class UiInputs { case Mode.PARTY: case Mode.SUMMARY: case Mode.STARTER_SELECT: - case Mode.CONFIRM: case Mode.OPTION_SELECT: this.scene.ui.setOverlayMode(Mode.MENU); break; + case Mode.CONFIRM: case Mode.MENU: case Mode.SETTINGS: case Mode.ACHIEVEMENTS: diff --git a/src/ui/abstact-option-select-ui-handler.ts b/src/ui/abstact-option-select-ui-handler.ts index 82e8ab0da35..19f5d8dc5d0 100644 --- a/src/ui/abstact-option-select-ui-handler.ts +++ b/src/ui/abstact-option-select-ui-handler.ts @@ -171,8 +171,8 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { return false; } } - const option = this.config.options[this.cursor + (this.scrollCursor - (this.scrollCursor ? 1 : 0))]; - if (option.handler()) { + const option = this.config?.options[this.cursor + (this.scrollCursor - (this.scrollCursor ? 1 : 0))]; + if (option?.handler()) { if (!option.keepOpen) { this.clear(); } From c2bc94a5f3e8bf587e082ab591b70160c6c3afaa Mon Sep 17 00:00:00 2001 From: Benjamin Odom Date: Thu, 23 May 2024 16:19:36 -0500 Subject: [PATCH 04/61] Increases the Amount of Time Until a Reconnect up to a Maximum (#1295) * Update unavailable-modal-ui-handler.ts * Update unavailable-modal-ui-handler.ts * Update unavailable-modal-ui-handler.ts --- src/ui/unavailable-modal-ui-handler.ts | 38 +++++++++++++++++++------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/src/ui/unavailable-modal-ui-handler.ts b/src/ui/unavailable-modal-ui-handler.ts index da2393f3b0d..102d98429e8 100644 --- a/src/ui/unavailable-modal-ui-handler.ts +++ b/src/ui/unavailable-modal-ui-handler.ts @@ -6,10 +6,17 @@ import { updateUserInfo } from "#app/account"; export default class UnavailableModalUiHandler extends ModalUiHandler { private reconnectTimer: number; + private reconnectInterval: number; private reconnectCallback: () => void; + private readonly minTime = 1000 * 5; + private readonly maxTime = 1000 * 60 * 5; + + private readonly randVarianceTime = 1000 * 10; + constructor(scene: BattleScene, mode?: Mode) { super(scene, mode); + this.reconnectInterval = this.minTime; } getModalTitle(): string { @@ -41,6 +48,26 @@ export default class UnavailableModalUiHandler extends ModalUiHandler { this.modalContainer.add(label); } + tryReconnect(): void { + updateUserInfo().then(response => { + if (response[0] || [200, 400].includes(response[1])) { + clearInterval(this.reconnectTimer); + this.reconnectTimer = null; + this.reconnectInterval = this.minTime; + this.scene.playSound("pb_bounce_1"); + this.reconnectCallback(); + } else { + clearInterval(this.reconnectTimer); + this.reconnectInterval = Math.min(this.reconnectInterval * 2, this.maxTime); // Set a max delay so it isn't infinite + this.reconnectTimer = + setTimeout( + () => this.tryReconnect(), + // Adds a random factor to avoid pendulum effect during long total breakdown + this.reconnectInterval + (Math.random() * this.randVarianceTime)); + } + }); + } + show(args: any[]): boolean { if (args.length >= 1 && args[0] instanceof Function) { const config: ModalConfig = { @@ -49,16 +76,7 @@ export default class UnavailableModalUiHandler extends ModalUiHandler { this.reconnectCallback = args[0]; - this.reconnectTimer = setInterval(() => { - updateUserInfo().then(response => { - if (response[0] || [200, 400].includes(response[1])) { - clearInterval(this.reconnectTimer); - this.reconnectTimer = null; - this.scene.playSound("pb_bounce_1"); - this.reconnectCallback(); - } - }); - }, 5000); + this.reconnectTimer = setInterval(() => this.tryReconnect(), this.reconnectInterval); return super.show([ config ]); } From 68e94845aba489e075ced91688df69c387341f49 Mon Sep 17 00:00:00 2001 From: Franck TROUILLEZ <57403591+francktrouillez@users.noreply.github.com> Date: Fri, 24 May 2024 00:28:53 +0200 Subject: [PATCH 05/61] Add BattleInfo to TargetSelectUiHandler to move when target selected (#1255) This change allows to move the box containing the battle info of the ennemy pokemons during double battle when the user has to choose a target. In addition to the pokemon opacity constantly changing, the battle info will also move up and down to indicate which Pokemon is targeted. It exposes the BattleInfo object from the Pokemon object through an accessor method. --- src/field/pokemon.ts | 4 ++++ src/ui/battle-info.ts | 12 ++++++++++++ src/ui/target-select-ui-handler.ts | 29 +++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index b565c3b8ae2..e7a91832c59 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -2765,6 +2765,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.battleInfo?.destroy(); super.destroy(); } + + getBattleInfo(): BattleInfo { + return this.battleInfo; + } } export default interface Pokemon { diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts index 35db5edf4b8..a6444a7bc63 100644 --- a/src/ui/battle-info.ts +++ b/src/ui/battle-info.ts @@ -12,6 +12,8 @@ import { BattleStat } from "#app/data/battle-stat"; const battleStatOrder = [ BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.ACC, BattleStat.EVA, BattleStat.SPD ]; export default class BattleInfo extends Phaser.GameObjects.Container { + private baseY: number; + private player: boolean; private mini: boolean; private boss: boolean; @@ -57,6 +59,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { constructor(scene: Phaser.Scene, x: number, y: number, player: boolean) { super(scene, x, y); + this.baseY = y; this.player = player; this.mini = !player; this.boss = false; @@ -417,6 +420,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.x += 10 * (offset === this.player ? 1 : -1); this.y += 27 * (offset ? 1 : -1); + this.baseY = this.y; } updateInfo(pokemon: Pokemon, instant?: boolean): Promise { @@ -655,6 +659,14 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.statNumbers[i].setFrame(battleStats[s].toString()); }); } + + getBaseY(): number { + return this.baseY; + } + + resetY(): void { + this.y = this.baseY; + } } export class PlayerBattleInfo extends BattleInfo { diff --git a/src/ui/target-select-ui-handler.ts b/src/ui/target-select-ui-handler.ts index 0f6fce3b274..c69284fe64e 100644 --- a/src/ui/target-select-ui-handler.ts +++ b/src/ui/target-select-ui-handler.ts @@ -16,6 +16,7 @@ export default class TargetSelectUiHandler extends UiHandler { private targets: BattlerIndex[]; private targetFlashTween: Phaser.Tweens.Tween; + private targetBattleInfoMoveTween: Phaser.Tweens.Tween; constructor(scene: BattleScene) { super(scene, Mode.TARGET_SELECT); @@ -116,6 +117,25 @@ export default class TargetSelectUiHandler extends UiHandler { } }); + if (this.targetBattleInfoMoveTween) { + this.targetBattleInfoMoveTween.stop(); + const lastTarget = this.scene.getField()[lastCursor]; + if (lastTarget) { + lastTarget.getBattleInfo().resetY(); + } + } + + const targetBattleInfo = target.getBattleInfo(); + + this.targetBattleInfoMoveTween = this.scene.tweens.add({ + targets: [ targetBattleInfo ], + y: { start: targetBattleInfo.getBaseY(), to: targetBattleInfo.getBaseY() + 1 }, + loop: -1, + duration: Utils.fixedInt(250), + ease: "Linear", + yoyo: true + }); + return ret; } @@ -128,6 +148,15 @@ export default class TargetSelectUiHandler extends UiHandler { if (target) { target.setAlpha(1); } + + const targetBattleInfo = target.getBattleInfo(); + if (this.targetBattleInfoMoveTween) { + this.targetBattleInfoMoveTween.stop(); + this.targetBattleInfoMoveTween = null; + } + if (targetBattleInfo) { + targetBattleInfo.resetY(); + } } clear() { From e2be6ba0028624d2d9ba3a567ad7e683512a3ff0 Mon Sep 17 00:00:00 2001 From: Greenlamp2 <44787002+Greenlamp2@users.noreply.github.com> Date: Fri, 24 May 2024 01:45:04 +0200 Subject: [PATCH 06/61] added rule no-trailing-spaces (#1307) --- .eslintrc | 6 +- src/battle-scene.ts | 36 ++-- src/battle.ts | 8 +- src/data/ability.ts | 152 +++++++-------- src/data/api.ts | 16 +- src/data/arena-tag.ts | 10 +- src/data/battle-anims.ts | 20 +- src/data/battle-stat.ts | 2 +- src/data/battler-tags.ts | 50 ++--- src/data/berry.ts | 2 +- src/data/biomes.ts | 16 +- src/data/daily-run.ts | 2 +- src/data/dialogue.ts | 18 +- src/data/egg-moves.ts | 2 +- src/data/enums/trainer-type.ts | 2 +- src/data/move.ts | 176 +++++++++--------- src/data/pokemon-level-moves.ts | 70 +++---- src/data/pokemon-species.ts | 24 +-- src/data/status-effect.ts | 4 +- src/data/trainer-config.ts | 10 +- src/data/trainer-names.ts | 2 +- src/data/type.ts | 30 +-- src/egg-hatch-phase.ts | 8 +- src/evolution-phase.ts | 18 +- src/field/anims.ts | 4 +- src/field/arena.ts | 20 +- src/field/pokemon.ts | 72 +++---- src/field/trainer.ts | 20 +- src/form-change-phase.ts | 6 +- src/game-mode.ts | 10 +- src/loading-scene.ts | 4 +- src/locales/de/starter-select-ui-handler.ts | 2 +- src/locales/de/tutorial.ts | 4 +- src/locales/de/weather.ts | 2 +- src/locales/en/config.ts | 2 +- src/locales/en/modifier-type.ts | 10 +- src/locales/en/pokemon-info.ts | 2 +- src/locales/en/starter-select-ui-handler.ts | 2 +- src/locales/en/trainers.ts | 4 +- src/locales/en/tutorial.ts | 4 +- src/locales/en/weather.ts | 2 +- src/locales/es/modifier-type.ts | 10 +- src/locales/es/pokemon-info.ts | 2 +- src/locales/es/tutorial.ts | 4 +- src/locales/es/weather.ts | 2 +- src/locales/fr/modifier-type.ts | 10 +- src/locales/fr/trainers.ts | 2 +- src/locales/fr/weather.ts | 2 +- src/locales/it/modifier-type.ts | 10 +- src/locales/it/starter-select-ui-handler.ts | 2 +- src/locales/it/tutorial.ts | 4 +- src/locales/it/weather.ts | 2 +- src/locales/pt_BR/config.ts | 2 +- src/locales/pt_BR/modifier-type.ts | 10 +- src/locales/pt_BR/trainers.ts | 2 +- src/locales/pt_BR/weather.ts | 2 +- src/locales/zh_CN/battle.ts | 2 +- src/locales/zh_CN/modifier-type.ts | 10 +- .../zh_CN/starter-select-ui-handler.ts | 2 +- src/locales/zh_CN/tutorial.ts | 4 +- src/locales/zh_TW/config.ts | 2 +- src/locales/zh_TW/move.ts | 24 +-- src/locales/zh_TW/pokemon-info.ts | 38 ++-- .../zh_TW/starter-select-ui-handler.ts | 2 +- src/locales/zh_TW/tutorial.ts | 16 +- src/locales/zh_TW/weather.ts | 2 +- src/main.ts | 2 +- src/modifier/modifier-type.ts | 68 +++---- src/modifier/modifier.ts | 26 +-- src/overrides.ts | 12 +- src/phases.ts | 132 ++++++------- src/pipelines/sprite.ts | 4 +- src/plugins/cache-busted-loader-plugin.ts | 2 +- src/plugins/i18n.ts | 2 +- src/system/game-data.ts | 20 +- src/system/game-speed.ts | 2 +- src/system/pokemon-data.ts | 2 +- src/touch-controls.js | 2 +- src/ui/ability-bar.ts | 2 +- src/ui/abstact-option-select-ui-handler.ts | 4 +- src/ui/achv-bar.ts | 2 +- src/ui/achvs-ui-handler.ts | 4 +- src/ui/awaitable-ui-handler.ts | 2 +- src/ui/ball-ui-handler.ts | 2 +- src/ui/battle-info.ts | 18 +- src/ui/candy-bar.ts | 2 +- src/ui/char-sprite.ts | 2 +- src/ui/command-ui-handler.ts | 12 +- src/ui/confirm-ui-handler.ts | 2 +- src/ui/daily-run-scoreboard.ts | 10 +- src/ui/egg-gacha-ui-handler.ts | 10 +- src/ui/egg-list-ui-handler.ts | 2 +- src/ui/evolution-scene-handler.ts | 4 +- src/ui/game-stats-ui-handler.ts | 6 +- src/ui/menu-ui-handler.ts | 4 +- src/ui/message-ui-handler.ts | 2 +- src/ui/modal-ui-handler.ts | 4 +- src/ui/modifier-select-ui-handler.ts | 14 +- src/ui/party-exp-bar.ts | 4 +- src/ui/party-ui-handler.ts | 16 +- src/ui/pokeball-tray.ts | 2 +- src/ui/pokemon-info-container.ts | 6 +- src/ui/save-slot-select-ui-handler.ts | 8 +- src/ui/saving-icon-handler.ts | 4 +- src/ui/settings-ui-handler.ts | 6 +- src/ui/starter-select-ui-handler.ts | 6 +- src/ui/stats-container.ts | 2 +- src/ui/summary-ui-handler.ts | 50 ++--- src/ui/ui-theme.ts | 2 +- src/ui/ui.ts | 4 +- src/ui/unavailable-modal-ui-handler.ts | 4 +- src/ui/vouchers-ui-handler.ts | 6 +- src/utils.ts | 14 +- 113 files changed, 771 insertions(+), 767 deletions(-) diff --git a/.eslintrc b/.eslintrc index 1411697a3f2..86a5399b378 100644 --- a/.eslintrc +++ b/.eslintrc @@ -22,7 +22,11 @@ "@typescript-eslint/no-extra-semi": ["error"], // Disallows unnecessary semicolons for TypeScript-specific syntax "brace-style": "off", // Note: you must disable the base rule as it can report incorrect errors "curly": ["error", "all"], // Enforces the use of curly braces for all control statements - "@typescript-eslint/brace-style": ["error", "1tbs"] + "@typescript-eslint/brace-style": ["error", "1tbs"], + "no-trailing-spaces": ["error", { // Disallows trailing whitespace at the end of lines + "skipBlankLines": false, // Enforces the rule even on blank lines + "ignoreComments": false // Enforces the rule on lines containing comments + }] } } ] diff --git a/src/battle-scene.ts b/src/battle-scene.ts index a36ad58f877..21ddc902691 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -191,7 +191,7 @@ export default class BattleScene extends SceneBase { initSpecies(); initMoves(); initAbilities(); - + this.phaseQueue = []; this.phaseQueuePrepend = []; this.phaseQueuePrependSpliceIndex = -1; @@ -553,17 +553,17 @@ export default class BattleScene extends SceneBase { const species = getPokemonSpecies(parseInt(s)); loadPokemonAssets.push(species.loadAssets(this, false, 0, false)); } - + Promise.all(loadPokemonAssets).then(() => { const starterCandyColors = {}; const rgbaToHexFunc = (r, g, b) => [r, g, b].map(x => x.toString(16).padStart(2, '0')).join(''); - + for (let s of Object.keys(speciesStarters)) { const species = getPokemonSpecies(parseInt(s)); - + starterCandyColors[species.speciesId] = species.generateCandyColors(this).map(c => rgbaToHexFunc(c[0], c[1], c[2])); } - + console.log(JSON.stringify(starterCandyColors)); resolve(); @@ -669,7 +669,7 @@ export default class BattleScene extends SceneBase { addPokemonIcon(pokemon: Pokemon, x: number, y: number, originX: number = 0.5, originY: number = 0.5, ignoreOverride: boolean = false): Phaser.GameObjects.Container { const container = this.add.container(x, y); - + const icon = this.add.sprite(0, 0, pokemon.getIconAtlasKey(ignoreOverride)); icon.setFrame(pokemon.getIconId(true)); // Temporary fix to show pokemon's default icon if variant icon doesn't exist @@ -695,7 +695,7 @@ export default class BattleScene extends SceneBase { const originalFrame = icon.frame; const iconHeight = (icon.frame.cutHeight <= fusionIcon.frame.cutHeight ? Math.ceil : Math.floor)((icon.frame.cutHeight + fusionIcon.frame.cutHeight) / 4); - + // Inefficient, but for some reason didn't work with only the unique properties as part of the name const iconFrameId = `${icon.frame.name}f${fusionIcon.frame.name}`; @@ -760,7 +760,7 @@ export default class BattleScene extends SceneBase { } this.gameMode = gameModes[GameModes.CLASSIC]; - + this.setSeed(Overrides.SEED_OVERRIDE || Utils.randomString(24)); console.log("Seed:", this.seed); @@ -789,7 +789,7 @@ export default class BattleScene extends SceneBase { for (const p of this.getEnemyParty()) { p.destroy(); } - + this.currentBattle = null; this.waveCountText.setText(startingWave.toString()); @@ -818,7 +818,7 @@ export default class BattleScene extends SceneBase { this.trainer.setTexture(`trainer_${this.gameData.gender === PlayerGender.FEMALE ? "f" : "m"}_back`); this.trainer.setPosition(406, 186); this.trainer.setVisible(true); - + this.updateGameInfo(); if (reloadI18n) { @@ -865,7 +865,7 @@ export default class BattleScene extends SceneBase { this.resetSeed(newWaveIndex); const playerField = this.getPlayerField(); - + if (this.gameMode.hasFixedBattles && fixedBattles.hasOwnProperty(newWaveIndex) && trainerData === undefined) { battleConfig = fixedBattles[newWaveIndex]; newDouble = battleConfig.double; @@ -986,7 +986,7 @@ export default class BattleScene extends SceneBase { } } } - + return this.currentBattle; } @@ -1157,7 +1157,7 @@ export default class BattleScene extends SceneBase { if (!pokemon.pokerus || infectedIndexes.indexOf(p) > -1) { return; } - + this.executeWithSeedOffset(() => { if (p) { spread(p, -1); @@ -1622,7 +1622,7 @@ export default class BattleScene extends SceneBase { this.currentPhase = this.phaseQueue.shift(); this.currentPhase.start(); } - + overridePhase(phase: Phase): boolean { if (this.standbyPhase) { return false; @@ -1721,7 +1721,7 @@ export default class BattleScene extends SceneBase { this.queueMessage(`The stack for this item is full.\n You will receive ${defaultModifierType.name} instead.`, null, true); return this.addModifier(defaultModifierType.newModifier(), ignoreUpdate, playSound, false, instant).then(success => resolve(success)); } - + for (const rm of modifiersToRemove) { this.removeModifier(rm); } @@ -1750,7 +1750,7 @@ export default class BattleScene extends SceneBase { } else if (modifier instanceof FusePokemonModifier) { args.push(this.getPokemonById(modifier.fusePokemonId) as PlayerPokemon); } - + if (modifier.shouldApply(args)) { const result = modifier.apply(args); if (result instanceof Promise) { @@ -1760,7 +1760,7 @@ export default class BattleScene extends SceneBase { } } } - + return Promise.allSettled([this.party.map(p => p.updateInfo(instant)), ...modifierPromises]).then(() => resolve(success)); } else { const args = [ this ]; @@ -2109,7 +2109,7 @@ export default class BattleScene extends SceneBase { return false; } - + updateGameInfo(): void { const gameInfo = { playTime: this.sessionPlayTime ? this.sessionPlayTime : 0, diff --git a/src/battle.ts b/src/battle.ts index 0312cf2c3b6..7473b31339c 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -89,7 +89,7 @@ export default class Battle { this.moneyScattered = 0; this.lastUsedPokeball = null; } - + private initBattleSpec(): void { let spec = BattleSpec.DEFAULT; if (this.gameMode.isWaveFinal(this.waveIndex) && this.gameMode.isClassic) { @@ -116,14 +116,14 @@ export default class Battle { } let levelOffset = 0; - + const deviation = 10 / levelWaveIndex; levelOffset = Math.abs(this.randSeedGaussForLevel(deviation)); return Math.max(Math.round(baseLevel + levelOffset), 1); } - randSeedGaussForLevel(value: number): number { + randSeedGaussForLevel(value: number): number { let rand = 0; for (let i = value; i > 0; i--) { rand += Phaser.Math.RND.realInRange(0, 1); @@ -162,7 +162,7 @@ export default class Battle { scene.applyModifiers(MoneyMultiplierModifier, true, moneyAmount); scene.addMoney(moneyAmount.value); - + scene.queueMessage(`You picked up ₽${moneyAmount.value.toLocaleString("en-US")}!`, null, true); scene.currentBattle.moneyScattered = 0; diff --git a/src/data/ability.ts b/src/data/ability.ts index 00790749648..b26fbcbfed8 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -68,10 +68,10 @@ export class Ability implements Localizable { const attr = new AttrType(...args); attr.addCondition(condition); this.attrs.push(attr); - + return this; } - + hasAttr(attrType: { new(...args: any[]): AbAttr }): boolean { return !!this.getAttrs(attrType).length; } @@ -117,7 +117,7 @@ export abstract class AbAttr { constructor(showAbility: boolean = true) { this.showAbility = showAbility; } - + apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean | Promise { return false; } @@ -218,7 +218,7 @@ export class PostBattleInitStatChangeAbAttr extends PostBattleInitAbAttr { pokemon.scene.unshiftPhase(statChangePhase); } } - + return true; } } @@ -257,7 +257,7 @@ export class PreDefendFullHpEndureAbAttr extends PreDefendAbAttr { (args[0] as Utils.NumberHolder).value >= pokemon.hp){ //Damage >= hp return pokemon.addTag(BattlerTagType.STURDY, 1); } - + return false; } } @@ -265,7 +265,7 @@ export class PreDefendFullHpEndureAbAttr extends PreDefendAbAttr { export class BlockItemTheftAbAttr extends AbAttr { apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean { cancelled.value = true; - + return true; } @@ -280,7 +280,7 @@ export class StabBoostAbAttr extends AbAttr { (args[0] as Utils.NumberHolder).value += 0.5; return true; } - + return false; } } @@ -371,7 +371,7 @@ export class TypeImmunityHealAbAttr extends TypeImmunityAbAttr { } return true; } - + return false; } } @@ -397,7 +397,7 @@ class TypeImmunityStatChangeAbAttr extends TypeImmunityAbAttr { pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [ this.stat ], this.levels)); } } - + return ret; } } @@ -423,7 +423,7 @@ class TypeImmunityAddBattlerTagAbAttr extends TypeImmunityAbAttr { pokemon.addTag(this.tagType, this.turnCount, undefined, pokemon.id); } } - + return ret; } } @@ -458,7 +458,7 @@ export class PostDefendDisguiseAbAttr extends PostDefendAbAttr { applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean { if (pokemon.formIndex === 0 && pokemon.battleData.hitCount !== 0 && (move.getMove().category === MoveCategory.SPECIAL || move.getMove().category === MoveCategory.PHYSICAL)) { - + const recoilDamage = Math.ceil((pokemon.getMaxHp() / 8) - attacker.turnData.damageDealt); if (!recoilDamage) { return false; @@ -498,7 +498,7 @@ export class FieldPriorityMoveImmunityAbAttr extends PreDefendAbAttr { const attackPriority = new Utils.IntegerHolder(move.getMove().priority); applyMoveAttrs(IncrementMovePriorityAttr,attacker,null,move.getMove(),attackPriority); applyAbAttrs(IncrementMovePriorityAbAttr, attacker, null, move.getMove(), attackPriority); - + if(move.getMove().moveTarget===MoveTarget.USER) { return false; } @@ -507,7 +507,7 @@ export class FieldPriorityMoveImmunityAbAttr extends PreDefendAbAttr { cancelled.value = true; return true; } - + return false; } } @@ -782,7 +782,7 @@ export class PostDefendCritStatChangeAbAttr extends PostDefendAbAttr { applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean { pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [ this.stat ], this.levels)); - + return true; } @@ -799,14 +799,14 @@ export class PostDefendContactDamageAbAttr extends PostDefendAbAttr { this.damageRatio = damageRatio; } - + applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean { if (move.getMove().checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon)) { attacker.damageAndUpdate(Math.ceil(attacker.getMaxHp() * (1 / this.damageRatio)), HitResult.OTHER); attacker.turnData.damageTaken += Math.ceil(attacker.getMaxHp() * (1 / this.damageRatio)); return true; } - + return false; } @@ -837,7 +837,7 @@ export class PostDefendAbilitySwapAbAttr extends PostDefendAbAttr { constructor() { super(); } - + applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean { if (move.getMove().checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon) && !attacker.getAbility().hasAttr(UnswappableAbilityAbAttr)) { const tempAbilityId = attacker.getAbility().id; @@ -845,7 +845,7 @@ export class PostDefendAbilitySwapAbAttr extends PostDefendAbAttr { pokemon.summonData.ability = tempAbilityId; return true; } - + return false; } @@ -861,14 +861,14 @@ export class PostDefendAbilityGiveAbAttr extends PostDefendAbAttr { super(); this.ability = ability; } - + applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean { if (move.getMove().checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon) && !attacker.getAbility().hasAttr(UnsuppressableAbilityAbAttr) && !attacker.getAbility().hasAttr(PostDefendAbilityGiveAbAttr)) { attacker.summonData.ability = this.ability; return true; } - + return false; } @@ -887,7 +887,7 @@ export class PostDefendMoveDisableAbAttr extends PostDefendAbAttr { this.chance = chance; } - + applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean { if (!attacker.summonData.disabledMove) { if (move.getMove().checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon) && (this.chance === -1 || pokemon.randSeedInt(100) < this.chance) && !attacker.isMax()) { @@ -946,7 +946,7 @@ export class VariableMovePowerAbAttr extends PreAttackAbAttr { export class VariableMoveTypeAbAttr extends AbAttr { apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean { //const power = args[0] as Utils.IntegerHolder; - return false; + return false; } } @@ -969,7 +969,7 @@ export class MoveTypeChangePowerMultiplierAbAttr extends VariableMoveTypeAbAttr (args[1] as Utils.NumberHolder).value *= this.powerMultiplier; return true; } - + return false; } } @@ -1008,8 +1008,8 @@ export class MoveTypeChangeAttr extends PreAttackAbAttr { /** * Class for abilities that boost the damage of moves * For abilities that boost the base power of moves, see VariableMovePowerAbAttr - * @param damageMultiplier the amount to multiply the damage by - * @param condition the condition for this ability to be applied + * @param damageMultiplier the amount to multiply the damage by + * @param condition the condition for this ability to be applied */ export class DamageBoostAbAttr extends PreAttackAbAttr { private damageMultiplier: number; @@ -1022,7 +1022,7 @@ export class DamageBoostAbAttr extends PreAttackAbAttr { } /** - * + * * @param pokemon the attacker pokemon * @param passive N/A * @param defender the target pokemon @@ -1081,7 +1081,7 @@ export class LowHpMoveTypePowerBoostAbAttr extends MoveTypePowerBoostAbAttr { export class FieldVariableMovePowerAbAttr extends AbAttr { applyPreAttack(pokemon: Pokemon, passive: boolean, defender: Pokemon, move: PokemonMove, args: any[]): boolean { //const power = args[0] as Utils.NumberHolder; - return false; + return false; } } @@ -1210,7 +1210,7 @@ export class PostAttackApplyBattlerTagAbAttr extends PostAttackAbAttr { private chance: (user: Pokemon, target: Pokemon, move: PokemonMove) => integer; private effects: BattlerTagType[]; - + constructor(contactRequired: boolean, chance: (user: Pokemon, target: Pokemon, move: PokemonMove) => integer, ...effects: BattlerTagType[]) { super(); @@ -1287,7 +1287,7 @@ class PostVictoryStatChangeAbAttr extends PostVictoryAbAttr { ? this.stat(pokemon) : this.stat; pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [ stat ], this.levels)); - + return true; } } @@ -1334,7 +1334,7 @@ export class PostKnockOutStatChangeAbAttr extends PostKnockOutAbAttr { ? this.stat(pokemon) : this.stat; pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [ stat ], this.levels)); - + return true; } } @@ -1350,7 +1350,7 @@ export class CopyFaintedAllyAbilityAbAttr extends PostKnockOutAbAttr { pokemon.scene.queueMessage(getPokemonMessage(knockedOut, `'s ${allAbilities[knockedOut.getAbility().id].name} was taken over!`)); return true; } - + return false; } } @@ -1366,7 +1366,7 @@ export class IgnoreOpponentStatChangesAbAttr extends AbAttr { return true; } } -/** +/** * Ignores opponent's evasion stat changes when determining if a move hits or not * @extends AbAttr * @see {@linkcode apply} @@ -1382,14 +1382,14 @@ export class IgnoreOpponentEvasionAbAttr extends AbAttr { * @param cancelled N/A * @param args [0] {@linkcode Utils.IntegerHolder} of BattleStat.EVA * @returns if evasion level was successfully considered as 0 - */ + */ apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]) { (args[0] as Utils.IntegerHolder).value = 0; return true; } } -export class IntimidateImmunityAbAttr extends AbAttr { +export class IntimidateImmunityAbAttr extends AbAttr { constructor() { super(false); } @@ -1404,7 +1404,7 @@ export class IntimidateImmunityAbAttr extends AbAttr { } } -export class PostIntimidateStatChangeAbAttr extends AbAttr { +export class PostIntimidateStatChangeAbAttr extends AbAttr { private stats: BattleStat[]; private levels: integer; private overwrites: boolean; @@ -1445,7 +1445,7 @@ export class PostSummonMessageAbAttr extends PostSummonAbAttr { } } -export class PostSummonUnnamedMessageAbAttr extends PostSummonAbAttr { +export class PostSummonUnnamedMessageAbAttr extends PostSummonAbAttr { //Attr doesn't force pokemon name on the message private message: string; @@ -1455,7 +1455,7 @@ export class PostSummonUnnamedMessageAbAttr extends PostSummonAbAttr { this.message = message; } - applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean { + applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean { pokemon.scene.queueMessage(this.message); return true; @@ -1534,7 +1534,7 @@ export class PostSummonAllyHealAbAttr extends PostSummonAbAttr { Math.max(Math.floor(pokemon.getMaxHp() / this.healRatio), 1), getPokemonMessage(target, ` drank down all the\nmatcha that ${pokemon.name} made!`), true, !this.showAnim)); return true; } - + return false; } } @@ -1563,7 +1563,7 @@ export class PostSummonClearAllyStatsAbAttr extends PostSummonAbAttr { return true; } - + return false; } } @@ -1576,12 +1576,12 @@ export class DownloadAbAttr extends PostSummonAbAttr { applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean { this.enemyDef = 0; this.enemySpDef = 0; - + for (const opponent of pokemon.getOpponents()) { this.enemyDef += opponent.stats[BattleStat.DEF]; this.enemySpDef += opponent.stats[BattleStat.SPDEF]; } - + if (this.enemyDef < this.enemySpDef) { this.stats = [BattleStat.ATK]; } else { @@ -1592,7 +1592,7 @@ export class DownloadAbAttr extends PostSummonAbAttr { pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), false, this.stats, 1)); return true; } - + return false; } } @@ -1654,7 +1654,7 @@ export class TraceAbAttr extends PostSummonAbAttr { if (!targets.length) { return false; } - + let target: Pokemon; if (targets.length > 1) { pokemon.scene.executeWithSeedOffset(() => target = Utils.randSeedItem(targets), pokemon.scene.currentBattle.waveIndex); @@ -1702,7 +1702,7 @@ export class PostSummonTransformAbAttr extends PostSummonAbAttr { pokemon.summonData.battleStats = target.summonData.battleStats.slice(0); pokemon.summonData.moveset = target.getMoveset().map(m => new PokemonMove(m.moveId, m.ppUsed, m.ppUp)); pokemon.summonData.types = target.getTypes(); - + pokemon.scene.playSound("PRSFX- Transform"); pokemon.loadAssets(false).then(() => pokemon.playAnim()); @@ -1768,7 +1768,7 @@ export class ProtectStatAbAttr extends PreStatChangeAbAttr { cancelled.value = true; return true; } - + return false; } @@ -1885,7 +1885,7 @@ export class ConditionalCritAbAttr extends AbAttr { /** * @param pokemon {@linkcode Pokemon} user. - * @param args [0] {@linkcode Utils.BooleanHolder} If true critical hit is guaranteed. + * @param args [0] {@linkcode Utils.BooleanHolder} If true critical hit is guaranteed. * [1] {@linkcode Pokemon} Target. * [2] {@linkcode Move} used by ability user. */ @@ -1930,7 +1930,7 @@ export class IncrementMovePriorityAbAttr extends AbAttr { if (!this.moveIncrementFunc(pokemon, args[0] as Move)) { return false; } - + (args[1] as Utils.IntegerHolder).value += this.increaseAmount; return true; } @@ -2013,7 +2013,7 @@ function getAnticipationCondition(): AbAttrCondition { +(opponent.ivs[Stat.SPD] & 1) * 8 +(opponent.ivs[Stat.SPATK] & 1) * 16 +(opponent.ivs[Stat.SPDEF] & 1) * 32) * 15/63); - + const type = [ Type.FIGHTING, Type.FLYING, Type.POISON, Type.GROUND, Type.ROCK, Type.BUG, Type.GHOST, Type.STEEL, @@ -2065,10 +2065,10 @@ export class ForewarnAbAttr extends PostSummonAbAttr { } else { movePower = move.getMove().power; } - + if (movePower > maxPowerSeen) { maxPowerSeen = movePower; - maxMove = move.getName(); + maxMove = move.getName(); } } } @@ -2142,7 +2142,7 @@ export class PostWeatherLapseHealAbAttr extends PostWeatherLapseAbAttr { constructor(healFactor: integer, ...weatherTypes: WeatherType[]) { super(...weatherTypes); - + this.healFactor = healFactor; } @@ -2164,7 +2164,7 @@ export class PostWeatherLapseDamageAbAttr extends PostWeatherLapseAbAttr { constructor(damageFactor: integer, ...weatherTypes: WeatherType[]) { super(...weatherTypes); - + this.damageFactor = damageFactor; } @@ -2242,13 +2242,13 @@ export class PostTurnResetStatusAbAttr extends PostTurnAbAttr { this.target = pokemon; } if (this.target?.status) { - + this.target.scene.queueMessage(getPokemonMessage(this.target, getStatusEffectHealText(this.target.status?.effect))); this.target.resetStatus(false); this.target.updateInfo(); return true; } - + return false; } } @@ -2403,7 +2403,7 @@ export class PostTurnHurtIfSleepingAbAttr extends PostTurnAbAttr { /** * Deals damage to all sleeping opponents equal to 1/8 of their max hp (min 1) - * @param {Pokemon} pokemon Pokemon that has this ability + * @param {Pokemon} pokemon Pokemon that has this ability * @param {boolean} passive N/A * @param {any[]} args N/A * @returns {boolean} true if any opponents are sleeping @@ -2416,27 +2416,27 @@ export class PostTurnHurtIfSleepingAbAttr extends PostTurnAbAttr { pokemon.scene.queueMessage(i18next.t("abilityTriggers:badDreams", {pokemonName: `${getPokemonPrefix(opp)}${opp.name}`})); hadEffect = true; } - + } return hadEffect; } } -/** - * Grabs the last failed Pokeball used - * @extends PostTurnAbAttr +/** + * Grabs the last failed Pokeball used + * @extends PostTurnAbAttr * @see {@linkcode applyPostTurn} */ export class FetchBallAbAttr extends PostTurnAbAttr { constructor() { super(); } - /** - * Adds the last used Pokeball back into the player's inventory - * @param pokemon {@linkcode Pokemon} with this ability - * @param passive N/A - * @param args N/A - * @returns true if player has used a pokeball and this pokemon is owned by the player + /** + * Adds the last used Pokeball back into the player's inventory + * @param pokemon {@linkcode Pokemon} with this ability + * @param passive N/A + * @param args N/A + * @returns true if player has used a pokeball and this pokemon is owned by the player */ applyPostTurn(pokemon: Pokemon, passive: boolean, args: any[]): boolean { const lastUsed = pokemon.scene.currentBattle.lastUsedPokeball; @@ -2630,7 +2630,7 @@ export class PostFaintAbAttr extends AbAttr { export class PostFaintContactDamageAbAttr extends PostFaintAbAttr { private damageRatio: integer; - + constructor(damageRatio: integer) { super(); @@ -2657,7 +2657,7 @@ export class PostFaintContactDamageAbAttr extends PostFaintAbAttr { } } -/** +/** * Attribute used for abilities (Innards Out) that damage the opponent based on how much HP the last attack used to knock out the owner of the ability. */ export class PostFaintHPDamageAbAttr extends PostFaintAbAttr { @@ -2670,7 +2670,7 @@ export class PostFaintHPDamageAbAttr extends PostFaintAbAttr { attacker.damageAndUpdate((damage), HitResult.OTHER); attacker.turnData.damageTaken += damage; return true; - } + } getTriggerMessage(pokemon: Pokemon, abilityName: string, ...args: any[]): string { return getPokemonMessage(pokemon, `'s ${abilityName} hurt\nits attacker!`); @@ -2690,7 +2690,7 @@ export class RedirectMoveAbAttr extends AbAttr { return false; } - + canRedirect(moveId: Moves): boolean { const move = allMoves[moveId]; return !![ MoveTarget.NEAR_OTHER, MoveTarget.OTHER ].find(t => move.moveTarget === t); @@ -3031,7 +3031,7 @@ export function applyPostAttackAbAttrs(attrType: { new(...args: any[]): PostAtta export function applyPostKnockOutAbAttrs(attrType: { new(...args: any[]): PostKnockOutAbAttr }, pokemon: Pokemon, knockedOut: Pokemon, ...args: any[]): Promise { return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostKnockOut(pokemon, passive, knockedOut, args), args); -} +} export function applyPostVictoryAbAttrs(attrType: { new(...args: any[]): PostVictoryAbAttr }, pokemon: Pokemon, ...args: any[]): Promise { @@ -3133,7 +3133,7 @@ export function initAbilities() { new Ability(Abilities.BATTLE_ARMOR, 3) .attr(BlockCritAbAttr) .ignorable(), - new Ability(Abilities.STURDY, 3) + new Ability(Abilities.STURDY, 3) .attr(PreDefendFullHpEndureAbAttr) .attr(BlockOneHitKOAbAttr) .ignorable(), @@ -3185,7 +3185,7 @@ export function initAbilities() { .attr(IntimidateImmunityAbAttr) .ignorable(), new Ability(Abilities.SUCTION_CUPS, 3) - .attr(ForceSwitchOutImmunityAbAttr) + .attr(ForceSwitchOutImmunityAbAttr) .ignorable(), new Ability(Abilities.INTIMIDATE, 3) .attr(PostSummonStatChangeAbAttr, BattleStat.ATK, -1, false, true), @@ -3395,7 +3395,7 @@ export function initAbilities() { .conditionalAttr(pokemon => pokemon.status ? pokemon.status.effect === StatusEffect.PARALYSIS : false, BattleStatMultiplierAbAttr, BattleStat.SPD, 2) .conditionalAttr(pokemon => !!pokemon.status, BattleStatMultiplierAbAttr, BattleStat.SPD, 1.5), new Ability(Abilities.NORMALIZE, 4) - .attr(MoveTypeChangeAttr, Type.NORMAL, 1.2, (user, target, move) => move.id !== Moves.HIDDEN_POWER && move.id !== Moves.WEATHER_BALL && + .attr(MoveTypeChangeAttr, Type.NORMAL, 1.2, (user, target, move) => move.id !== Moves.HIDDEN_POWER && move.id !== Moves.WEATHER_BALL && move.id !== Moves.NATURAL_GIFT && move.id !== Moves.JUDGMENT && move.id !== Moves.TECHNO_BLAST), new Ability(Abilities.SNIPER, 4) .attr(MultCritAbAttr, 1.5), @@ -3519,8 +3519,8 @@ export function initAbilities() { .attr(MovePowerBoostAbAttr, (user, target, move) => move.category === MoveCategory.SPECIAL && user.status?.effect === StatusEffect.BURN, 1.5), new Ability(Abilities.HARVEST, 5) .attr( - PostTurnLootAbAttr, - "EATEN_BERRIES", + PostTurnLootAbAttr, + "EATEN_BERRIES", /** Rate is doubled when under sun {@link https://dex.pokemonshowdown.com/abilities/harvest} */ (pokemon) => 0.5 * (getWeatherCondition(WeatherType.SUNNY, WeatherType.HARSH_SUN)(pokemon) ? 2 : 1) ) @@ -4034,7 +4034,7 @@ export function initAbilities() { .attr(PostDefendApplyArenaTrapTagAbAttr, (target, user, move) => move.category === MoveCategory.PHYSICAL, ArenaTagType.TOXIC_SPIKES) .bypassFaint(), new Ability(Abilities.ARMOR_TAIL, 9) - .attr(FieldPriorityMoveImmunityAbAttr) + .attr(FieldPriorityMoveImmunityAbAttr) .ignorable(), new Ability(Abilities.EARTH_EATER, 9) .attr(TypeImmunityHealAbAttr, Type.GROUND) diff --git a/src/data/api.ts b/src/data/api.ts index 80097e1acc0..3e31f55fed0 100644 --- a/src/data/api.ts +++ b/src/data/api.ts @@ -103,7 +103,7 @@ export async function printPokemon() { const offset = 0; const pokemonResponse = await api.pokemon.listPokemons(offset, 2000); - + pokemonArr = pokemonResponse.results; const types = Utils.getEnumKeys(Type).map(t => t.toLowerCase()); @@ -121,7 +121,7 @@ export async function printPokemon() { if (!dexIdMatch) { continue; } - + const matchingSpecies = pokemonSpeciesList[parseInt(dexIdMatch[1]) - 1]; if (!matchingSpecies) { @@ -448,7 +448,7 @@ export async function printAbilities() { const replaceText = true; let abilityContent: string = await fs.readFile("./src/data/ability.ts"); - + const api = new MainClient(); let enumStr = "export enum Abilities {\n NONE,"; @@ -516,7 +516,7 @@ export async function printMoves() { const replaceText = true; let moveContent: string = await fs.readFile("./src/data/move.ts"); - + const api = new MainClient(); let enumStr = "export enum Moves {\n NONE,"; @@ -528,7 +528,7 @@ export async function printMoves() { const offset = 0; const movesResponse = await api.move.listMoves(offset, 2000); moves = movesResponse.results; - + console.log(moves); for (const m of moves) { @@ -594,7 +594,7 @@ export async function printTmSpecies() { const api = new MainClient(); const moveIds = Object.keys(tmSpecies).map(k => parseInt(k) as Moves); - + for (const moveId of moveIds) { const move = await api.move.getMoveById(moveId); @@ -643,9 +643,9 @@ export async function printTmSpecies() { console.log("NO MATCH", species.name); continue; } - + const speciesKey = Species[matchingSpecies.speciesId]; - + const matchingIndex = moveTmSpecies[moveId].findIndex(s => Array.isArray(s) ? s[0] === speciesKey : s === speciesKey); if (matchingIndex === -1) { diff --git a/src/data/arena-tag.ts b/src/data/arena-tag.ts index c96164ac2a1..ed1e86b7a8e 100644 --- a/src/data/arena-tag.ts +++ b/src/data/arena-tag.ts @@ -72,7 +72,7 @@ export class MistTag extends ArenaTag { (args[0] as Utils.BooleanHolder).value = true; arena.scene.queueMessage("The mist prevented\nthe lowering of stats!"); - + return true; } } @@ -161,7 +161,7 @@ class WishTag extends ArenaTag { this.triggerMessage = getPokemonMessage(user, "'s wish\ncame true!"); this.healHp = Math.max(Math.floor(user.getMaxHp() / 2), 1); } - + onRemove(arena: Arena): void { const target = arena.scene.getField()[this.battlerIndex]; if (target?.isActive(true)) { @@ -299,7 +299,7 @@ class ToxicSpikesTag extends ArenaTrapTag { onAdd(arena: Arena): void { super.onAdd(arena); - + const source = arena.scene.getPokemonById(this.sourceId); arena.scene.queueMessage(`${this.getMoveName()} were scattered\nall around ${source.getOpponentDescriptor()}'s feet!`); } @@ -322,7 +322,7 @@ class ToxicSpikesTag extends ArenaTrapTag { const toxic = this.layers > 1; if (pokemon.trySetStatus(!toxic ? StatusEffect.POISON : StatusEffect.TOXIC, true, null, 0, `the ${this.getMoveName()}`)) { return true; - } + } } } @@ -410,7 +410,7 @@ class StealthRockTag extends ArenaTrapTag { if (cancelled.value) { return false; } - + const damageHpRatio = this.getDamageHpRatio(pokemon); if (damageHpRatio) { diff --git a/src/data/battle-anims.ts b/src/data/battle-anims.ts index ff5b9889b49..efda3ebcb0e 100644 --- a/src/data/battle-anims.ts +++ b/src/data/battle-anims.ts @@ -296,7 +296,7 @@ class ImportedAnimFrame extends AnimFrame { abstract class AnimTimedEvent { public frameIndex: integer; public resourceName: string; - + constructor(frameIndex: integer, resourceName: string) { this.frameIndex = frameIndex; this.resourceName = resourceName; @@ -310,7 +310,7 @@ abstract class AnimTimedEvent { class AnimTimedSoundEvent extends AnimTimedEvent { public volume: number = 100; public pitch: number = 100; - + constructor(frameIndex: integer, resourceName: string, source?: any) { super(frameIndex, resourceName); @@ -813,7 +813,7 @@ export abstract class BattleAnim { this.srcLine = [ userFocusX, userFocusY, targetFocusX, targetFocusY ]; this.dstLine = [ userInitialX, userInitialY, targetInitialX, targetInitialY ]; - + let r = anim.frames.length; let f = 0; @@ -855,7 +855,7 @@ export abstract class BattleAnim { const pokemonSprite = sprites[spriteIndex]; const graphicFrameData = frameData.get(frame.target).get(spriteIndex); pokemonSprite.setPosition(graphicFrameData.x, graphicFrameData.y - ((spriteSource.height / 2) * (spriteSource.parentContainer.scale - 1))); - + pokemonSprite.setAngle(graphicFrameData.angle); pokemonSprite.setScale(graphicFrameData.scaleX * spriteSource.parentContainer.scale, graphicFrameData.scaleY * spriteSource.parentContainer.scale); @@ -873,7 +873,7 @@ export abstract class BattleAnim { scene.field.add(newSprite); spritePriorities.push(1); } - + const graphicIndex = g++; const moveSprite = sprites[graphicIndex]; if (spritePriorities[graphicIndex] !== frame.priority) { @@ -924,7 +924,7 @@ export abstract class BattleAnim { } moveSprite.setFrame(frame.graphicFrame); //console.log(AnimFocus[frame.focus]); - + const graphicFrameData = frameData.get(frame.target).get(graphicIndex); moveSprite.setPosition(graphicFrameData.x, graphicFrameData.y); moveSprite.setAngle(graphicFrameData.angle); @@ -999,7 +999,7 @@ export class CommonBattleAnim extends BattleAnim { export class MoveAnim extends BattleAnim { public move: Moves; - + constructor(move: Moves, user: Pokemon, target: BattlerIndex) { super(user, user.scene.getField()[target]); @@ -1027,7 +1027,7 @@ export class MoveAnim extends BattleAnim { export class MoveChargeAnim extends MoveAnim { private chargeAnim: ChargeAnim; - + constructor(chargeAnim: ChargeAnim, move: Moves, user: Pokemon) { super(move, user, 0); @@ -1060,13 +1060,13 @@ export async function populateAnims() { } const seNames = [];//(await fs.readdir('./public/audio/se/battle_anims/')).map(se => se.toString()); - + const animsData = [];//battleAnimRawData.split('!ruby/array:PBAnimation').slice(1); for (let a = 0; a < animsData.length; a++) { const fields = animsData[a].split("@").slice(1); const nameField = fields.find(f => f.startsWith("name: ")); - + let isOppMove: boolean; let commonAnimId: CommonAnim; let chargeAnimId: ChargeAnim; diff --git a/src/data/battle-stat.ts b/src/data/battle-stat.ts index 3971b850310..46e5a7dac8b 100644 --- a/src/data/battle-stat.ts +++ b/src/data/battle-stat.ts @@ -41,7 +41,7 @@ export function getBattleStatLevelChangeDescription(levels: integer, up: boolean case 4: case 5: case 6: - return "rose drastically"; + return "rose drastically"; default: return "won't go any higher"; } diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index cc8cc2e24de..5a01e01f704 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -106,7 +106,7 @@ export class RechargingTag extends BattlerTag { pokemon.scene.queueMessage(getPokemonMessage(pokemon, " must\nrecharge!")); (pokemon.scene.getCurrentPhase() as MovePhase).cancel(); pokemon.getMoveQueue().shift(); - + return true; } } @@ -115,7 +115,7 @@ export class TrappedTag extends BattlerTag { constructor(tagType: BattlerTagType, lapseType: BattlerTagLapseType, turnCount: integer, sourceMove: Moves, sourceId: integer) { super(tagType, lapseType, turnCount, sourceMove, sourceId); } - + canAdd(pokemon: Pokemon): boolean { const isGhost = pokemon.isOfType(Type.GHOST); const isTrapped = pokemon.getTag(BattlerTagType.TRAPPED); @@ -196,7 +196,7 @@ export class InterruptedTag extends BattlerTag { lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean { super.lapse(pokemon, lapseType); (pokemon.scene.getCurrentPhase() as MovePhase).cancel(); - return true; + return true; } } @@ -211,14 +211,14 @@ export class ConfusedTag extends BattlerTag { onAdd(pokemon: Pokemon): void { super.onAdd(pokemon); - + pokemon.scene.unshiftPhase(new CommonAnimPhase(pokemon.scene, pokemon.getBattlerIndex(), undefined, CommonAnim.CONFUSION)); pokemon.scene.queueMessage(getPokemonMessage(pokemon, " became\nconfused!")); } onRemove(pokemon: Pokemon): void { super.onRemove(pokemon); - + pokemon.scene.queueMessage(getPokemonMessage(pokemon, " snapped\nout of confusion!")); } @@ -245,7 +245,7 @@ export class ConfusedTag extends BattlerTag { (pokemon.scene.getCurrentPhase() as MovePhase).cancel(); } } - + return ret; } @@ -265,7 +265,7 @@ export class InfatuatedTag extends BattlerTag { onAdd(pokemon: Pokemon): void { super.onAdd(pokemon); - + pokemon.scene.queueMessage(getPokemonMessage(pokemon, ` fell in love\nwith ${pokemon.scene.getPokemonById(this.sourceId).name}!`)); } @@ -287,7 +287,7 @@ export class InfatuatedTag extends BattlerTag { (pokemon.scene.getCurrentPhase() as MovePhase).cancel(); } } - + return ret; } @@ -328,7 +328,7 @@ export class SeedTag extends BattlerTag { onAdd(pokemon: Pokemon): void { super.onAdd(pokemon); - + pokemon.scene.queueMessage(getPokemonMessage(pokemon, " was seeded!")); this.sourceIndex = pokemon.scene.getPokemonById(this.sourceId).getBattlerIndex(); } @@ -354,7 +354,7 @@ export class SeedTag extends BattlerTag { } } } - + return ret; } @@ -370,7 +370,7 @@ export class NightmareTag extends BattlerTag { onAdd(pokemon: Pokemon): void { super.onAdd(pokemon); - + pokemon.scene.queueMessage(getPokemonMessage(pokemon, " began\nhaving a Nightmare!")); } @@ -394,7 +394,7 @@ export class NightmareTag extends BattlerTag { pokemon.damageAndUpdate(Math.ceil(pokemon.getMaxHp() / 4)); } } - + return ret; } @@ -441,12 +441,12 @@ export class EncoreTag extends BattlerTag { if (pokemon.isMax()) { return false; } - + const lastMoves = pokemon.getLastXMoves(1); if (!lastMoves.length) { return false; } - + const repeatableMove = lastMoves[0]; if (!repeatableMove.move || repeatableMove.virtual) { @@ -463,7 +463,7 @@ export class EncoreTag extends BattlerTag { case Moves.ENCORE: return false; } - + if (allMoves[repeatableMove.move].getAttrs(ChargeAttr).length && repeatableMove.result === MoveResult.OTHER) { return false; } @@ -533,7 +533,7 @@ export class IngrainTag extends TrappedTag { pokemon.scene.unshiftPhase(new PokemonHealPhase(pokemon.scene, pokemon.getBattlerIndex(), Math.floor(pokemon.getMaxHp() / 16), getPokemonMessage(pokemon, " absorbed\nnutrients with its roots!"), true)); } - + return ret; } @@ -553,7 +553,7 @@ export class AquaRingTag extends BattlerTag { onAdd(pokemon: Pokemon): void { super.onAdd(pokemon); - + pokemon.scene.queueMessage(getPokemonMessage(pokemon, " surrounded\nitself with a veil of water!")); } @@ -564,7 +564,7 @@ export class AquaRingTag extends BattlerTag { pokemon.scene.unshiftPhase(new PokemonHealPhase(pokemon.scene, pokemon.getBattlerIndex(), Math.floor(pokemon.getMaxHp() / 16), `${this.getMoveName()} restored\n${pokemon.name}\'s HP!`, true)); } - + return ret; } } @@ -1007,7 +1007,7 @@ export class SlowStartTag extends AbilityBattlerTag { onAdd(pokemon: Pokemon): void { super.onAdd(pokemon); - + pokemon.scene.queueMessage(getPokemonMessage(pokemon, " can't\nget it going!"), null, false, null, true); } @@ -1067,7 +1067,7 @@ export class HighestStatBoostTag extends AbilityBattlerTag { this.multiplier = 1.3; break; } - + pokemon.scene.queueMessage(getPokemonMessage(pokemon, `'s ${getStatName(highestStat)}\nwas heightened!`), null, false, null, true); } @@ -1121,7 +1121,7 @@ export class HideSpriteTag extends BattlerTag { onAdd(pokemon: Pokemon): void { super.onAdd(pokemon); - + pokemon.setVisible(false); } @@ -1237,7 +1237,7 @@ export class SaltCuredTag extends BattlerTag { onAdd(pokemon: Pokemon): void { super.onAdd(pokemon); - + pokemon.scene.queueMessage(getPokemonMessage(pokemon, " is being salt cured!")); this.sourceIndex = pokemon.scene.getPokemonById(this.sourceId).getBattlerIndex(); } @@ -1258,7 +1258,7 @@ export class SaltCuredTag extends BattlerTag { pokemon.scene.queueMessage(getPokemonMessage(pokemon, ` is hurt by ${this.getMoveName()}!`)); } } - + return ret; } } @@ -1281,7 +1281,7 @@ export class CursedTag extends BattlerTag { onAdd(pokemon: Pokemon): void { super.onAdd(pokemon); - + pokemon.scene.queueMessage(getPokemonMessage(pokemon, " has been cursed!")); this.sourceIndex = pokemon.scene.getPokemonById(this.sourceId).getBattlerIndex(); } @@ -1300,7 +1300,7 @@ export class CursedTag extends BattlerTag { pokemon.scene.queueMessage(getPokemonMessage(pokemon, ` is hurt by the ${this.getMoveName()}!`)); } } - + return ret; } } diff --git a/src/data/berry.ts b/src/data/berry.ts index ddc8a0d2821..1a2ceb17fa8 100644 --- a/src/data/berry.ts +++ b/src/data/berry.ts @@ -96,7 +96,7 @@ export function getBerryEffectFunc(berryType: BerryType): BerryEffectFunc { pokemon.scene.queueMessage(getPokemonMessage(pokemon, getStatusEffectHealText(pokemon.status.effect))); pokemon.resetStatus(); pokemon.updateInfo(); - } + } if (pokemon.getTag(BattlerTagType.CONFUSED)) { pokemon.lapseTag(BattlerTagType.CONFUSED); } diff --git a/src/data/biomes.ts b/src/data/biomes.ts index bd01feffe1c..fc8f20db586 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -3921,7 +3921,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { ], [ Species.PIPLUP, Type.WATER, -1, [ [ Biome.SEA, BiomePoolTier.RARE ] - ] + ] ], [ Species.PRINPLUP, Type.WATER, -1, [ [ Biome.SEA, BiomePoolTier.RARE ] @@ -7157,7 +7157,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [ Biome.JUNGLE, BiomePoolTier.COMMON ] ] ], - [ TrainerType.BAKER, [ + [ TrainerType.BAKER, [ [ Biome.SLUM, BiomePoolTier.UNCOMMON ] ] ], @@ -7166,7 +7166,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.BIKER, [ [ Biome.SLUM, BiomePoolTier.COMMON ] - ] + ] ], [ TrainerType.BLACK_BELT, [ [ Biome.DOJO, BiomePoolTier.COMMON ], @@ -7257,7 +7257,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [ TrainerType.RICH_KID, [] ], [ TrainerType.ROUGHNECK, [ [ Biome.SLUM, BiomePoolTier.COMMON ] - ] + ] ], [ TrainerType.SCIENTIST, [ [ Biome.DESERT, BiomePoolTier.COMMON ], @@ -7265,7 +7265,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.SMASHER, [] ], - [ TrainerType.SNOW_WORKER, [ + [ TrainerType.SNOW_WORKER, [ [ Biome.ICE_CAVE, BiomePoolTier.COMMON ], [ Biome.SNOWY_FOREST, BiomePoolTier.COMMON ] ] @@ -7273,7 +7273,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [ TrainerType.STRIKER, [] ], [ TrainerType.SCHOOL_KID, [ [ Biome.GRASS, BiomePoolTier.COMMON ] - ] + ] ], [ TrainerType.SWIMMER, [ [ Biome.SEA, BiomePoolTier.COMMON ] @@ -7285,7 +7285,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { ], [ TrainerType.VETERAN, [ [ Biome.WASTELAND, BiomePoolTier.COMMON ] - ] + ] ], [ TrainerType.WAITER, [ [ Biome.METROPOLIS, BiomePoolTier.COMMON ] @@ -7700,7 +7700,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { const speciesEvolutions: SpeciesFormEvolution[] = pokemonEvolutions.hasOwnProperty(speciesId) ? pokemonEvolutions[speciesId] : []; - + if (!biomeEntries.filter(b => b[0] !== Biome.END).length && !speciesEvolutions.filter(es => !!((pokemonBiomes.find(p => p[0] === es.speciesId))[3] as any[]).filter(b => b[0] !== Biome.END).length).length) { uncatchableSpecies.push(speciesId); } diff --git a/src/data/daily-run.ts b/src/data/daily-run.ts index 6fd6c630181..cb4bfddc685 100644 --- a/src/data/daily-run.ts +++ b/src/data/daily-run.ts @@ -54,7 +54,7 @@ export function getDailyRunStarters(scene: BattleScene, seed: string): Starter[] starters.push(getDailyRunStarter(scene, starterSpecies, startingLevel)); } }, 0, seed); - + return starters; } diff --git a/src/data/dialogue.ts b/src/data/dialogue.ts index c457aa47d7a..cb8a58b90b5 100644 --- a/src/data/dialogue.ts +++ b/src/data/dialogue.ts @@ -946,7 +946,7 @@ export const trainerTypeDialogue = { ], victory: [ "I wanted to win…but I lost!", - "I lost…'cause I couldn't win!" + "I lost…'cause I couldn't win!" ], defeat: [ "Hey, wait a sec. Did I just win? I think I just won! Talk about satisfying!", @@ -957,10 +957,10 @@ export const trainerTypeDialogue = { encounter: [ `I want to be the one to help a certain person. That being the case, I cannot afford to lose. $… Our battle starts now.`, - + ], victory: [ - "I am… not enough, I see.", + "I am… not enough, I see.", ], defeat: [ "Victory belongs to me. Well fought.", @@ -971,7 +971,7 @@ export const trainerTypeDialogue = { "I'll be facing you with my usual party as a member of the Elite Four.", ], victory: [ - "That was a great battle!", + "That was a great battle!", ], defeat: [ "Let's give your Pokémon a nice round of applause for their efforts!", @@ -983,7 +983,7 @@ export const trainerTypeDialogue = { $I don't get why everyone doesn't just sit all the time. Standing up's tiring work!`, ], victory: [ - "Guess I should've expected that!", + "Guess I should've expected that!", ], defeat: [ "Heh heh! Don't mind me, just scooping up a W over here. I get it if you're upset, but don't go full Kieran on me, OK?", @@ -995,7 +995,7 @@ export const trainerTypeDialogue = { $Their strength is a sign o' my strength as a gardener and a Gym Leader! Yeh sure yer up to facing all that?`, ], victory: [ - "Yeh believe in yer Pokémon… And they believe in yeh, too… It was a fine battle, sprout.", + "Yeh believe in yer Pokémon… And they believe in yeh, too… It was a fine battle, sprout.", ], defeat: [ "Hohoho… Indeed. Frail little blades o' grass'll break through even concrete.", @@ -1011,7 +1011,7 @@ export const trainerTypeDialogue = { victory: [ "You and your Pokémon have shown me a whole new depth of field! Fantastic! Just fantastic!", `The world you see through a lens, and the world you see with a Pokémon by your side… - $The same world can look entirely different depending on your view.` + $The same world can look entirely different depending on your view.` ], defeat: [ "The photo from the moment of my victory will be a really winner, all right!", @@ -1028,7 +1028,7 @@ export const trainerTypeDialogue = { victory: [ "I must say, I'm warmed up to you! I might even admire you a little.", `Wow! You're great! You've earned my respect! - $I think your focus and will bowled us over totally. ` + $I think your focus and will bowled us over totally. ` ], defeat: [ "I sensed your will to win, but I don't lose!", @@ -2073,7 +2073,7 @@ export const trainerTypeDialogue = { defeat: [ "Things didn't heat up for you.", ] - }, + }, [TrainerType.RIVAL]: [ { encounter: [ diff --git a/src/data/egg-moves.ts b/src/data/egg-moves.ts index a88dd32a0b7..dfe5dba477e 100644 --- a/src/data/egg-moves.ts +++ b/src/data/egg-moves.ts @@ -581,7 +581,7 @@ function parseEggMoves(content: string): void { const speciesNames = Utils.getEnumKeys(Species); const speciesValues = Utils.getEnumValues(Species); const lines = content.split(/\n/g); - + lines.forEach((line, l) => { const cols = line.split(",").slice(0, 5); const moveNames = allMoves.map(m => m.name.replace(/ \([A-Z]\)$/, "").toLowerCase()); diff --git a/src/data/enums/trainer-type.ts b/src/data/enums/trainer-type.ts index c263baae3b7..d849da69087 100644 --- a/src/data/enums/trainer-type.ts +++ b/src/data/enums/trainer-type.ts @@ -1,7 +1,7 @@ export enum TrainerType { UNKNOWN, - + ACE_TRAINER, ARTIST, BACKERS, diff --git a/src/data/move.ts b/src/data/move.ts index d9249f9012a..736e047e485 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -75,7 +75,7 @@ export enum MoveFlags { PULSE_MOVE = 1 << 7, PUNCHING_MOVE = 1 << 8, SLICING_MOVE = 1 << 9, - /** + /** * Indicates a move should be affected by {@linkcode Abilities.RECKLESS} * @see {@linkcode Move.recklessMove()} */ @@ -223,7 +223,7 @@ export default class Move implements Localizable { return this; } - + partial(): this { this.nameAppend += " (P)"; return this; @@ -459,8 +459,8 @@ export class SelfStatusMove extends Move { } } -/** - * Base class defining all {@linkcode Move} Attributes +/** + * Base class defining all {@linkcode Move} Attributes * @abstract * @see {@linkcode apply} */ @@ -486,7 +486,7 @@ export abstract class MoveAttr { return true; } - /** + /** * @virtual * @returns the {@linkcode MoveCondition} or {@linkcode MoveConditionFunc} for this {@linkcode Move} */ @@ -506,7 +506,7 @@ export abstract class MoveAttr { return null; } - /** + /** * Used by the Enemy AI to rank an attack based on a given user * @see {@linkcode EnemyPokemon.getNextMove} * @virtual @@ -515,7 +515,7 @@ export abstract class MoveAttr { return 0; } - /** + /** * Used by the Enemy AI to rank an attack based on a given target * @see {@linkcode EnemyPokemon.getNextMove} * @virtual @@ -567,7 +567,7 @@ export class MoveEffectAttr extends MoveAttr { /** Applies move effects so long as they are able based on {@linkcode canApply} */ apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean | Promise { - return this.canApply(user, target, move, args); + return this.canApply(user, target, move, args); } } @@ -686,16 +686,16 @@ export class MatchHpAttr extends FixedDamageAttr { super(0); } - apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { (args[0] as Utils.IntegerHolder).value = target.hp - user.hp; return true; - } - + } + getCondition(): MoveConditionFunc { return (user, target, move) => user.hp <= target.hp; } - + // TODO /*getUserBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer { return 0; @@ -768,7 +768,7 @@ export class SurviveDamageAttr extends ModifiedDamageAttr { getCondition(): MoveConditionFunc { return (user, target, move) => target.hp > 1; } - + getUserBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer { return target.hp > 1 ? 0 : -20; } @@ -811,7 +811,7 @@ export class RecoilAttr extends MoveEffectAttr { if (cancelled.value) { return false; } - + user.damageAndUpdate(recoilDamage, HitResult.OTHER, false, true, true); user.scene.queueMessage(getPokemonMessage(user, " is hit\nwith recoil!")); user.turnData.damageTaken += recoilDamage; @@ -926,7 +926,7 @@ export class HalfSacrificialAttr extends MoveEffectAttr { if (!cancelled.value){ user.damageAndUpdate(Math.ceil(user.getMaxHp()/2), HitResult.OTHER, false, true, true); user.scene.queueMessage(getPokemonMessage(user, " cut its own HP to power up its move!")); // Queue recoil message - } + } return true; } @@ -970,7 +970,7 @@ export class HealAttr extends MoveEffectAttr { return true; } - /** + /** * Creates a new {@linkcode PokemonHealPhase}. * This heals the target and shows the appropriate message. */ @@ -1124,7 +1124,7 @@ export class SandHealAttr extends WeatherHealAttr { } /** - * Heals the target or the user by either {@linkcode normalHealRatio} or {@linkcode boostedHealRatio} + * Heals the target or the user by either {@linkcode normalHealRatio} or {@linkcode boostedHealRatio} * depending on the evaluation of {@linkcode condition} * @extends HealAttr * @see {@linkcode apply} @@ -1232,7 +1232,7 @@ export class IncrementMovePriorityAttr extends MoveAttr { if (!this.moveIncrementFunc(user, target, move)) { return false; } - + (args[0] as Utils.IntegerHolder).value += this.increaseAmount; return true; } @@ -1413,7 +1413,7 @@ export class PsychoShiftEffectAttr extends MoveEffectAttr { } return statusAfflictResult; } - + return false; } @@ -1542,7 +1542,7 @@ export class EatBerryAttr extends MoveEffectAttr { return false; } - if(this.chosenBerry === undefined) { // if no berry has been provided, pick a random berry from their inventory + if(this.chosenBerry === undefined) { // if no berry has been provided, pick a random berry from their inventory const heldBerries = this.getTargetHeldBerries(target); if(heldBerries.length <= 0) { return false; @@ -1562,7 +1562,7 @@ export class EatBerryAttr extends MoveEffectAttr { target.scene.updateModifiers(target.isPlayer()); } this.chosenBerry = undefined; - + return true; } @@ -1595,7 +1595,7 @@ export class StealEatBerryAttr extends EatBerryAttr { if(cancelled.value === true) { return false; } - + const heldBerries = this.getTargetHeldBerries(target).filter(i => i.getTransferrable(false)); if (heldBerries.length) { // if the target has berries, pick a random berry and steal it @@ -1633,7 +1633,7 @@ export class HealStatusEffectAttr extends MoveEffectAttr { pokemon.scene.queueMessage(getPokemonMessage(pokemon, getStatusEffectHealText(pokemon.status.effect))); pokemon.resetStatus(); pokemon.updateInfo(); - + return true; } @@ -1677,13 +1677,13 @@ export class BypassBurnDamageReductionAttr extends MoveAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { (args[0] as Utils.BooleanHolder).value = true; - return true; + return true; } } export class WeatherChangeAttr extends MoveEffectAttr { private weatherType: WeatherType; - + constructor(weatherType: WeatherType) { super(); @@ -1701,7 +1701,7 @@ export class WeatherChangeAttr extends MoveEffectAttr { export class ClearWeatherAttr extends MoveEffectAttr { private weatherType: WeatherType; - + constructor(weatherType: WeatherType) { super(); @@ -1719,7 +1719,7 @@ export class ClearWeatherAttr extends MoveEffectAttr { export class TerrainChangeAttr extends MoveEffectAttr { private terrainType: TerrainType; - + constructor(terrainType: TerrainType) { super(); @@ -1757,7 +1757,7 @@ export class OneHitKOAttr extends MoveAttr { } (args[0] as Utils.BooleanHolder).value = true; - + return true; } @@ -2202,7 +2202,7 @@ export class HpSplitAttr extends MoveEffectAttr { } const infoUpdates = []; - + const hpValue = Math.floor((target.hp + user.hp) / 2); if (user.hp < hpValue) { const healing = user.heal(hpValue - user.hp); @@ -2254,13 +2254,13 @@ export class LessPPMorePowerAttr extends VariablePowerAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { const ppMax = move.pp; const ppUsed = user.moveset.find((m) => m.moveId === move.id).ppUsed; - + let ppRemains = ppMax - ppUsed; /** Reduce to 0 to avoid negative numbers if user has 1PP before attack and target has Ability.PRESSURE */ if(ppRemains < 0) { ppRemains = 0; } - + const power = args[0] as Utils.NumberHolder; switch (ppRemains) { @@ -2525,7 +2525,7 @@ export class CompareWeightPowerAttr extends VariablePowerAttr { if (!userWeight || userWeight === 0) { return false; } - + const relativeWeight = (targetWeight / userWeight) * 100; switch (true) { @@ -2617,7 +2617,7 @@ export class MagnitudePowerAttr extends VariablePowerAttr { const magnitudePowers = [ 10, 30, 50, 70, 90, 100, 110, 150 ]; let rand: integer; - + user.scene.executeWithSeedOffset(() => rand = Utils.randSeedInt(100), user.scene.currentBattle.turn << 6, user.scene.waveSeed); let m = 0; @@ -2715,9 +2715,9 @@ export class KnockOffPowerAttr extends VariablePowerAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { if(target.getHeldItems().length > 0){ (args[0] as Utils.NumberHolder).value *= 1.5; - return true; + return true; } - + return false; } } @@ -2821,14 +2821,14 @@ export class ThunderAccuracyAttr extends VariableAccuracyAttr { * @extends VariableAccuracyAttr * @see {@linkcode apply} */ -export class MinimizeAccuracyAttr extends VariableAccuracyAttr { +export class MinimizeAccuracyAttr extends VariableAccuracyAttr { /** * @see {@linkcode apply} * @param user N/A * @param target {@linkcode Pokemon} target of the move * @param move N/A * @param args [0] Accuracy of the move to be modified - * @returns true if the function succeeds + * @returns true if the function succeeds */ apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { if (target.getTag(BattlerTagType.MINIMIZED)){ @@ -3123,7 +3123,7 @@ export class HiddenPowerTypeAttr extends VariableMoveTypeAttr { +(user.ivs[Stat.SPD] & 1) * 8 +(user.ivs[Stat.SPATK] & 1) * 16 +(user.ivs[Stat.SPDEF] & 1) * 32) * 15/63); - + type.value = [ Type.FIGHTING, Type.FLYING, Type.POISON, Type.GROUND, Type.ROCK, Type.BUG, Type.GHOST, Type.STEEL, @@ -3143,7 +3143,7 @@ export class MatchUserTypeAttr extends VariableMoveTypeAttr { if(userTypes.includes(Type.STELLAR)) { // will not change to stellar type const nonTeraTypes = user.getTypes(); type.value = nonTeraTypes[0]; - return true; + return true; } else if (userTypes.length > 0) { type.value = userTypes[0]; return true; @@ -3228,11 +3228,11 @@ export class OneHitKOAccuracyAttr extends VariableAccuracyAttr { export class SheerColdAccuracyAttr extends OneHitKOAccuracyAttr { /** - * Changes the normal One Hit KO Accuracy Attr to implement the Gen VII changes, + * Changes the normal One Hit KO Accuracy Attr to implement the Gen VII changes, * where if the user is Ice-Type, it has more accuracy. * @param {Pokemon} user Pokemon that is using the move; checks the Pokemon's level. * @param {Pokemon} target Pokemon that is receiving the move; checks the Pokemon's level. - * @param {Move} move N/A + * @param {Move} move N/A * @param {any[]} args Uses the accuracy argument, allowing to change it from either 0 if it doesn't pass * the first if/else, or 30/20 depending on the type of the user Pokemon. * @returns Returns true if move is successful, false if misses. @@ -3241,7 +3241,7 @@ export class SheerColdAccuracyAttr extends OneHitKOAccuracyAttr { const accuracy = args[0] as Utils.NumberHolder; if (user.level < target.level) { accuracy.value = 0; - } else { + } else { const baseAccuracy = user.isOfType(Type.ICE) ? 30 : 20; accuracy.value = Math.min(Math.max(baseAccuracy + 100 * (1 - target.level / user.level), 0), 100); } @@ -3285,11 +3285,11 @@ const crashDamageFunc = (user: Pokemon, move: Move) => { if (cancelled.value) { return false; } - + user.damageAndUpdate(Math.floor(user.getMaxHp() / 2), HitResult.OTHER, false, true); user.scene.queueMessage(getPokemonMessage(user, " kept going\nand crashed!")); user.turnData.damageTaken += Math.floor(user.getMaxHp() / 2); - + return true; }; @@ -3297,7 +3297,7 @@ export class TypelessAttr extends MoveAttr { } /** * Attribute used for moves which ignore redirection effects, and always target their original target, i.e. Snipe Shot * Bypasses Storm Drain, Follow Me, Ally Switch, and the like. -*/ +*/ export class BypassRedirectAttr extends MoveAttr { } export class DisableMoveAttr extends MoveEffectAttr { @@ -3317,24 +3317,24 @@ export class DisableMoveAttr extends MoveEffectAttr { if (turnMove.virtual) { continue; } - + const moveIndex = target.getMoveset().findIndex(m => m.moveId === turnMove.move); if (moveIndex === -1) { return false; } - + const disabledMove = target.getMoveset()[moveIndex]; target.summonData.disabledMove = disabledMove.moveId; target.summonData.disabledTurns = 4; user.scene.queueMessage(getPokemonMessage(target, `'s ${disabledMove.getName()}\nwas disabled!`)); - + return true; } - + return false; } - + getCondition(): MoveConditionFunc { return (user, target, move) => { if (target.summonData.disabledMove || target.isMax()) { @@ -3348,7 +3348,7 @@ export class DisableMoveAttr extends MoveEffectAttr { if (turnMove.virtual) { continue; } - + const move = target.getMoveset().find(m => m.moveId === turnMove.move); if (!move) { continue; @@ -3493,7 +3493,7 @@ export class AddBattlerTagAttr extends MoveEffectAttr { } export class CurseAttr extends MoveEffectAttr { - + apply(user: Pokemon, target: Pokemon, move:Move, args: any[]): boolean { if (user.getTypes(true).includes(Type.GHOST)) { if (target.getTag(BattlerTagType.CURSED)) { @@ -3530,7 +3530,7 @@ export class LapseBattlerTagAttr extends MoveEffectAttr { for (const tagType of this.tagTypes) { (this.selfTarget ? user : target).lapseTag(tagType); } - + return true; } } @@ -3552,7 +3552,7 @@ export class RemoveBattlerTagAttr extends MoveEffectAttr { for (const tagType of this.tagTypes) { (this.selfTarget ? user : target).removeTag(tagType); } - + return true; } } @@ -3661,8 +3661,8 @@ export class FaintCountdownAttr extends AddBattlerTagAttr { } } -/** - * Attribute used when a move hits a {@linkcode BattlerTagType} for double damage +/** + * Attribute used when a move hits a {@linkcode BattlerTagType} for double damage * @extends MoveAttr */ export class HitsTagAttr extends MoveAttr { @@ -3811,7 +3811,7 @@ export class RevivalBlessingAttr extends MoveEffectAttr { } /** - * + * * @param user {@linkcode Pokemon} using this move * @param target {@linkcode Pokemon} target of this move * @param move {@linkcode Move} being used @@ -3826,7 +3826,7 @@ export class RevivalBlessingAttr extends MoveEffectAttr { (user as PlayerPokemon).revivalBlessing().then(() => { resolve(true); }); - // If user is enemy, checks that it is a trainer, and it has fainted non-boss pokemon in party + // If user is enemy, checks that it is a trainer, and it has fainted non-boss pokemon in party } else if(user instanceof EnemyPokemon && user.hasTrainer() && user.scene.getEnemyParty().findIndex(p => p.isFainted() && !p.isBoss()) > -1) { @@ -3866,16 +3866,16 @@ export class RevivalBlessingAttr extends MoveEffectAttr { export class ForceSwitchOutAttr extends MoveEffectAttr { private user: boolean; private batonPass: boolean; - + constructor(user?: boolean, batonPass?: boolean) { super(false, MoveEffectTrigger.POST_APPLY, true); this.user = !!user; this.batonPass = !!batonPass; } - + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise { return new Promise(resolve => { - + // Check if the move category is not STATUS or if the switch out condition is not met if (!this.getSwitchOutCondition()(user, target, move)) { //Apply effects before switch out i.e. poison point, flame body, etc @@ -3886,7 +3886,7 @@ export class ForceSwitchOutAttr extends MoveEffectAttr { // Move the switch out logic inside the conditional block // This ensures that the switch out only happens when the conditions are met const switchOutTarget = this.user ? user : target; - if (switchOutTarget instanceof PlayerPokemon) { + if (switchOutTarget instanceof PlayerPokemon) { if (switchOutTarget.hp) { applyPreSwitchOutAbAttrs(PreSwitchOutAbAttr, switchOutTarget); (switchOutTarget as PlayerPokemon).switchOut(this.batonPass, true).then(() => resolve(true)); @@ -3902,30 +3902,30 @@ export class ForceSwitchOutAttr extends MoveEffectAttr { switchOutTarget.setVisible(false); switchOutTarget.scene.field.remove(switchOutTarget); user.scene.triggerPokemonFormChange(switchOutTarget, SpeciesFormChangeActiveTrigger, true); - + if (switchOutTarget.hp) { user.scene.unshiftPhase(new SwitchSummonPhase(user.scene, switchOutTarget.getFieldIndex(), user.scene.currentBattle.trainer.getNextSummonIndex((switchOutTarget as EnemyPokemon).trainerSlot), false, this.batonPass, false)); } - } else { + } else { // Switch out logic for everything else switchOutTarget.setVisible(false); - + if (switchOutTarget.hp) { switchOutTarget.hideInfo().then(() => switchOutTarget.destroy()); switchOutTarget.scene.field.remove(switchOutTarget); user.scene.queueMessage(getPokemonMessage(switchOutTarget, " fled!"), null, true, 500); } - + if (!switchOutTarget.getAlly()?.isActive(true)) { user.scene.clearEnemyHeldItemModifiers(); - + if (switchOutTarget.hp) { user.scene.pushPhase(new BattleEndPhase(user.scene)); user.scene.pushPhase(new NewBattlePhase(user.scene)); } } } - + resolve(true); }); } @@ -3944,7 +3944,7 @@ export class ForceSwitchOutAttr extends MoveEffectAttr { return (user, target, move) => { const switchOutTarget = (this.user ? user : target); const player = switchOutTarget instanceof PlayerPokemon; - + if (!this.user && move.category === MoveCategory.STATUS && (target.hasAbilityWithAttr(ForceSwitchOutImmunityAbAttr) || target.isMax())) { return false; } @@ -4115,7 +4115,7 @@ export class FirstMoveTypeAttr extends MoveEffectAttr { } const firstMoveType = target.getMoveset()[0].getMove().type; - + user.summonData.types = [ firstMoveType ]; user.scene.queueMessage(getPokemonMessage(user, ` transformed\ninto to the ${Utils.toReadableString(Type[firstMoveType])} type!`)); @@ -4158,8 +4158,8 @@ export class RandomMovesetMoveAttr extends OverrideMoveEffectAttr { selectTargets = [ moveTargets.targets[user.randSeedInt(moveTargets.targets.length)] ]; break; } - } - const targets = selectTargets; + } + const targets = selectTargets; user.getMoveQueue().push({ move: move.moveId, targets: targets, ignorePP: true }); user.scene.unshiftPhase(new MovePhase(user.scene, user, targets, moveset[moveIndex], true)); return true; @@ -4174,7 +4174,7 @@ export class RandomMoveAttr extends OverrideMoveEffectAttr { return new Promise(resolve => { const moveIds = Utils.getEnumValues(Moves).filter(m => !allMoves[m].hasFlag(MoveFlags.IGNORE_VIRTUAL) && !allMoves[m].name.endsWith(" (N)")); const moveId = moveIds[user.randSeedInt(moveIds.length)]; - + const moveTargets = getMoveTargets(user, moveId); if (!moveTargets.targets.length) { resolve(false); @@ -4327,7 +4327,7 @@ export class NaturePowerAttr extends OverrideMoveEffectAttr { moveId = Moves.TRI_ATTACK; break; } - + user.getMoveQueue().push({ move: moveId, targets: [target.getBattlerIndex()], ignorePP: true }); user.scene.unshiftPhase(new MovePhase(user.scene, user, [target.getBattlerIndex()], new PokemonMove(moveId, 0, 0, true), true)); initMoveAnim(user.scene, moveId).then(() => { @@ -4507,18 +4507,18 @@ export class SketchAttr extends MoveEffectAttr { if (!targetMoveCopiableCondition(user, target, move)) { return false; } - + const targetMoves = target.getMoveHistory().filter(m => !m.virtual); if (!targetMoves.length) { return false; } - + const sketchableMove = targetMoves[0]; - + if (user.getMoveset().find(m => m.moveId === sketchableMove.move)) { return false; } - + return true; }; } @@ -4567,7 +4567,7 @@ export class AbilityCopyAttr extends MoveEffectAttr { user.summonData.ability = target.getAbility().id; user.scene.queueMessage(getPokemonMessage(user, " copied the ") + getPokemonMessage(target, `'s\n${allAbilities[target.getAbility().id].name}!`)); - + if (this.copyToPartner && user.scene.currentBattle?.double && user.getAlly().hp) { user.getAlly().summonData.ability = target.getAbility().id; user.getAlly().scene.queueMessage(getPokemonMessage(user.getAlly(), " copied the ") + getPokemonMessage(target, `'s\n${allAbilities[target.getAbility().id].name}!`)); @@ -4825,7 +4825,7 @@ export function getMoveTargets(user: Pokemon, move: Moves): MoveTargetSet { const moveTarget = allMoves[move].getAttrs(VariableTargetAttr).length ? variableTarget.value : move ? allMoves[move].moveTarget : move === undefined ? MoveTarget.NEAR_ENEMY : []; const opponents = user.getOpponents(); - + let set: Pokemon[] = []; let multiple = false; @@ -5508,7 +5508,7 @@ export function initMoves() { .partial(), new AttackMove(Moves.RAPID_SPIN, Type.NORMAL, MoveCategory.PHYSICAL, 50, 100, 40, 100, 0, 2) .attr(StatChangeAttr, BattleStat.SPD, 1, true) - .attr(RemoveBattlerTagAttr, [ + .attr(RemoveBattlerTagAttr, [ BattlerTagType.BIND, BattlerTagType.WRAP, BattlerTagType.FIRE_SPIN, @@ -5903,7 +5903,7 @@ export function initMoves() { new AttackMove(Moves.CLOSE_COMBAT, Type.FIGHTING, MoveCategory.PHYSICAL, 120, 100, 5, 100, 0, 4) .attr(StatChangeAttr, [ BattleStat.DEF, BattleStat.SPDEF ], -1, true), new AttackMove(Moves.PAYBACK, Type.DARK, MoveCategory.PHYSICAL, 50, 100, 10, -1, 0, 4) - .attr(MovePowerMultiplierAttr, (user, target, move) => target.getLastXMoves(1).find(m => m.turn === target.scene.currentBattle.turn) || user.scene.currentBattle.turnCommands[target.getBattlerIndex()].command === Command.BALL ? 2 : 1), + .attr(MovePowerMultiplierAttr, (user, target, move) => target.getLastXMoves(1).find(m => m.turn === target.scene.currentBattle.turn) || user.scene.currentBattle.turnCommands[target.getBattlerIndex()].command === Command.BALL ? 2 : 1), new AttackMove(Moves.ASSURANCE, Type.DARK, MoveCategory.PHYSICAL, 60, 100, 10, -1, 0, 4) .attr(MovePowerMultiplierAttr, (user, target, move) => target.turnData.damageTaken > 0 ? 2 : 1), new StatusMove(Moves.EMBARGO, Type.DARK, 100, 15, -1, 0, 4) @@ -5965,7 +5965,7 @@ export function initMoves() { .attr(AddBattlerTagAttr, BattlerTagType.AQUA_RING, true, true), new SelfStatusMove(Moves.MAGNET_RISE, Type.ELECTRIC, -1, 10, -1, 0, 4) .attr(AddBattlerTagAttr, BattlerTagType.MAGNET_RISEN, true, true) - .condition((user, target, move) => !user.scene.arena.getTag(ArenaTagType.GRAVITY) && + .condition((user, target, move) => !user.scene.arena.getTag(ArenaTagType.GRAVITY) && !user.getTag(BattlerTagType.IGNORE_FLYING) && !user.getTag(BattlerTagType.INGRAIN) && !user.getTag(BattlerTagType.MAGNET_RISEN)) .unimplemented(), @@ -6280,7 +6280,7 @@ export function initMoves() { new AttackMove(Moves.SKY_DROP, Type.FLYING, MoveCategory.PHYSICAL, 60, 100, 10, -1, 0, 5) .attr(ChargeAttr, ChargeAnim.SKY_DROP_CHARGING, "took {TARGET}\ninto the sky!", BattlerTagType.FLYING) // TODO: Add 2nd turn message .condition(failOnGravityCondition) - .ignoresVirtual(), + .ignoresVirtual(), new SelfStatusMove(Moves.SHIFT_GEAR, Type.STEEL, -1, 10, -1, 0, 5) .attr(StatChangeAttr, BattleStat.ATK, 1, true) .attr(StatChangeAttr, BattleStat.SPD, 2, true), @@ -6342,7 +6342,7 @@ export function initMoves() { .attr(HitHealAttr) .triageMove(), new AttackMove(Moves.SACRED_SWORD, Type.FIGHTING, MoveCategory.PHYSICAL, 90, 100, 15, -1, 0, 5) - .attr(IgnoreOpponentStatChangesAttr) + .attr(IgnoreOpponentStatChangesAttr) .slicingMove(), new AttackMove(Moves.RAZOR_SHELL, Type.WATER, MoveCategory.PHYSICAL, 75, 95, 10, 50, 0, 5) .attr(StatChangeAttr, BattleStat.DEF, -1) @@ -6963,7 +6963,7 @@ export function initMoves() { .attr(DiscourageFrequentUseAttr) .ignoresVirtual(), new AttackMove(Moves.SNIPE_SHOT, Type.WATER, MoveCategory.SPECIAL, 80, 100, 15, -1, 0, 8) - .attr(HighCritAttr) + .attr(HighCritAttr) .attr(BypassRedirectAttr), new AttackMove(Moves.JAW_LOCK, Type.DARK, MoveCategory.PHYSICAL, 80, 100, 10, -1, 0, 8) .attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, false, false, 1) @@ -7486,7 +7486,7 @@ export function initMoves() { .attr(StatChangeAttr, BattleStat.SPATK, -1, true, null, true, true) .target(MoveTarget.ALL_NEAR_ENEMIES), new AttackMove(Moves.PSYBLADE, Type.PSYCHIC, MoveCategory.PHYSICAL, 80, 100, 15, -1, 0, 9) - .attr(MovePowerMultiplierAttr, (user, target, move) => user.scene.arena.getTerrainType() === TerrainType.ELECTRIC && user.isGrounded() ? 1.5 : 1) + .attr(MovePowerMultiplierAttr, (user, target, move) => user.scene.arena.getTerrainType() === TerrainType.ELECTRIC && user.isGrounded() ? 1.5 : 1) .slicingMove(), new AttackMove(Moves.HYDRO_STEAM, Type.WATER, MoveCategory.SPECIAL, 80, 100, 15, -1, 0, 9) .attr(IgnoreWeatherTypeDebuffAttr, WeatherType.SUNNY) @@ -7631,4 +7631,4 @@ export function initMoves() { new AttackMove(Moves.MALIGNANT_CHAIN, Type.POISON, MoveCategory.SPECIAL, 100, 100, 5, 50, 0, 9) .attr(StatusEffectAttr, StatusEffect.TOXIC) ); -} +} diff --git a/src/data/pokemon-level-moves.ts b/src/data/pokemon-level-moves.ts index 7b516f74796..1f65758ff90 100644 --- a/src/data/pokemon-level-moves.ts +++ b/src/data/pokemon-level-moves.ts @@ -4381,7 +4381,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.FALSE_SWIPE ], [ 1, Moves.FURY_CUTTER ], [ 1, Moves.X_SCISSOR ], - [ 1, Moves.ENERGY_BALL ], + [ 1, Moves.ENERGY_BALL ], [ 9, Moves.MEGA_DRAIN ], [ 12, Moves.DETECT ], [ 15, Moves.QUICK_GUARD ], @@ -4403,7 +4403,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.FALSE_SWIPE ], [ 1, Moves.FURY_CUTTER ], [ 1, Moves.X_SCISSOR ], - [ 1, Moves.ENERGY_BALL ], + [ 1, Moves.ENERGY_BALL ], [ 1, Moves.SHED_TAIL ], [ 1, Moves.DUAL_CHOP ], [ 5, Moves.MEGA_DRAIN ], @@ -4439,9 +4439,9 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.SCRATCH ], [ 1, Moves.GROWL ], [ 1, Moves.EMBER ], - [ 1, Moves.QUICK_ATTACK ], + [ 1, Moves.QUICK_ATTACK ], [ 1, Moves.FLAMETHROWER ], - [ 1, Moves.FEATHER_DANCE ], + [ 1, Moves.FEATHER_DANCE ], [ 9, Moves.FLAME_CHARGE ], [ 12, Moves.DETECT ], [ 15, Moves.SAND_ATTACK ], @@ -4518,7 +4518,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.WATER_GUN ], [ 1, Moves.SURF ], [ 1, Moves.EARTHQUAKE ], - [ 1, Moves.ROCK_SMASH ], + [ 1, Moves.ROCK_SMASH ], [ 1, Moves.HAMMER_ARM ], [ 9, Moves.ROCK_THROW ], [ 12, Moves.PROTECT ], @@ -4947,7 +4947,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.GROWTH ], [ 1, Moves.TOXIC ], [ 1, Moves.ABSORB ], - [ 1, Moves.TACKLE ], + [ 1, Moves.TACKLE ], [ 1, Moves.STUN_SPORE ], [ 1, Moves.LEECH_SEED ], [ 12, Moves.MEGA_DRAIN ], @@ -5500,7 +5500,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.YAWN ], [ 1, Moves.POISON_GAS ], [ 1, Moves.WRING_OUT ], - [ 1, Moves.SLUDGE ], + [ 1, Moves.SLUDGE ], [ 12, Moves.AMNESIA ], [ 17, Moves.ACID_SPRAY ], [ 20, Moves.ENCORE ], @@ -5963,7 +5963,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.WATER_GUN ], [ 1, Moves.HARDEN ], [ 1, Moves.LEER ], - [ 1, Moves.TAUNT ], + [ 1, Moves.TAUNT ], [ 12, Moves.BUBBLE_BEAM ], [ 16, Moves.KNOCK_OFF ], [ 20, Moves.DOUBLE_HIT ], @@ -6071,7 +6071,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.ARMALDO]: [ [ 1, Moves.FURY_CUTTER ], [ 1, Moves.HARDEN ], - [ 1, Moves.WATER_GUN ], + [ 1, Moves.WATER_GUN ], [ 1, Moves.SMACK_DOWN ], [ 12, Moves.METAL_CLAW ], [ 16, Moves.ANCIENT_POWER ], @@ -6091,7 +6091,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.MILOTIC]: [ [ 0, Moves.WATER_PULSE ], [ 1, Moves.FLAIL ], - [ 1, Moves.SPLASH ], + [ 1, Moves.SPLASH ], [ 1, Moves.TACKLE ], [ 1, Moves.WRAP ], [ 1, Moves.WATER_GUN ], @@ -6113,7 +6113,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.CASTFORM]: [ [ 1, Moves.TACKLE ], [ 10, Moves.WATER_GUN ], - [ 10, Moves.EMBER ], + [ 10, Moves.EMBER ], [ 10, Moves.POWDER_SNOW ], [ 15, Moves.HEADBUTT ], [ 20, Moves.RAIN_DANCE ], @@ -6122,7 +6122,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 25, Moves.WEATHER_BALL ], [ 35, Moves.HYDRO_PUMP ], [ 35, Moves.FIRE_BLAST ], - [ 35, Moves.BLIZZARD ], + [ 35, Moves.BLIZZARD ], [ 45, Moves.HURRICANE ], ], [Species.KECLEON]: [ @@ -6130,7 +6130,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TAIL_WHIP ], [ 1, Moves.ASTONISH ], [ 1, Moves.LICK ], - [ 1, Moves.SCRATCH ], + [ 1, Moves.SCRATCH ], [ 4, Moves.BIND ], [ 7, Moves.SHADOW_SNEAK ], [ 10, Moves.FEINT ], @@ -6250,7 +6250,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.ABSOL]: [ [ 1, Moves.QUICK_ATTACK ], - [ 1, Moves.LEER ], + [ 1, Moves.LEER ], [ 5, Moves.DOUBLE_TEAM ], [ 10, Moves.KNOCK_OFF ], [ 15, Moves.DETECT ], @@ -6266,16 +6266,16 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.WYNAUT]: [ [ 1, Moves.COUNTER ], [ 1, Moves.MIRROR_COAT ], - [ 1, Moves.SAFEGUARD ], + [ 1, Moves.SAFEGUARD ], [ 1, Moves.DESTINY_BOND ], [ 1, Moves.SPLASH ], [ 1, Moves.CHARM ], [ 1, Moves.ENCORE ], - [ 1, Moves.AMNESIA ], + [ 1, Moves.AMNESIA ], ], [Species.SNORUNT]: [ [ 1, Moves.POWDER_SNOW ], - [ 1, Moves.ASTONISH ], + [ 1, Moves.ASTONISH ], [ 1, Moves.HEADBUTT ], [ 5, Moves.LEER ], [ 10, Moves.DOUBLE_TEAM ], @@ -6298,7 +6298,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.ASTONISH ], [ 1, Moves.LEER ], [ 1, Moves.DOUBLE_TEAM ], - [ 1, Moves.ICE_BALL ], + [ 1, Moves.ICE_BALL ], [ 15, Moves.ICE_SHARD ], [ 20, Moves.PROTECT ], [ 25, Moves.ICY_WIND ], @@ -6312,7 +6312,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.SPHEAL]: [ [ 1, Moves.ROLLOUT ], - [ 1, Moves.DEFENSE_CURL ], + [ 1, Moves.DEFENSE_CURL ], [ 4, Moves.GROWL ], [ 8, Moves.WATER_GUN ], [ 12, Moves.POWDER_SNOW ], @@ -6332,7 +6332,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.ROLLOUT ], [ 1, Moves.DEFENSE_CURL ], [ 1, Moves.GROWL ], - [ 1, Moves.WATER_GUN ], + [ 1, Moves.WATER_GUN ], [ 12, Moves.POWDER_SNOW ], [ 16, Moves.REST ], [ 20, Moves.SNORE ], @@ -6352,7 +6352,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.ROLLOUT ], [ 1, Moves.DEFENSE_CURL ], [ 1, Moves.GROWL ], - [ 1, Moves.WATER_GUN ], + [ 1, Moves.WATER_GUN ], [ 12, Moves.POWDER_SNOW ], [ 16, Moves.REST ], [ 20, Moves.SNORE ], @@ -6376,8 +6376,8 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.WATER_GUN ], [ 1, Moves.IRON_DEFENSE ], [ 1, Moves.SHELL_SMASH ], - [ 1, Moves.WHIRLPOOL ], - [ 1, Moves.BITE ], + [ 1, Moves.WHIRLPOOL ], + [ 1, Moves.BITE ], [ 5, Moves.SCREECH ], [ 9, Moves.SCARY_FACE ], [ 11, Moves.RAIN_DANCE ], @@ -6397,7 +6397,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.IRON_DEFENSE ], [ 1, Moves.SHELL_SMASH ], [ 1, Moves.WHIRLPOOL ], - [ 1, Moves.CONFUSION ], + [ 1, Moves.CONFUSION ], [ 5, Moves.RAIN_DANCE ], [ 9, Moves.AGILITY ], [ 11, Moves.DRAINING_KISS ], @@ -6447,7 +6447,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.BAGON]: [ [ 1, Moves.EMBER ], - [ 1, Moves.LEER ], + [ 1, Moves.LEER ], [ 5, Moves.BITE ], [ 10, Moves.DRAGON_BREATH ], [ 15, Moves.HEADBUTT ], @@ -6465,7 +6465,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.EMBER ], [ 1, Moves.LEER ], [ 1, Moves.BITE ], - [ 1, Moves.DRAGON_BREATH ], + [ 1, Moves.DRAGON_BREATH ], [ 15, Moves.HEADBUTT ], [ 20, Moves.SCARY_FACE ], [ 25, Moves.CRUNCH ], @@ -6536,7 +6536,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.REGIROCK]: [ [ 1, Moves.CHARGE_BEAM ], - [ 1, Moves.ROCK_THROW ], + [ 1, Moves.ROCK_THROW ], [ 6, Moves.BULLDOZE ], [ 12, Moves.ANCIENT_POWER ], [ 18, Moves.STOMP ], @@ -6553,7 +6553,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.REGICE]: [ [ 1, Moves.CHARGE_BEAM ], - [ 1, Moves.ICY_WIND ], + [ 1, Moves.ICY_WIND ], [ 6, Moves.BULLDOZE ], [ 12, Moves.ANCIENT_POWER ], [ 18, Moves.STOMP ], @@ -6570,10 +6570,10 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.REGISTEEL]: [ [ 1, Moves.CHARGE_BEAM ], - [ 1, Moves.METAL_CLAW ], + [ 1, Moves.METAL_CLAW ], [ 6, Moves.BULLDOZE ], [ 12, Moves.ANCIENT_POWER ], - [ 18, Moves.STOMP ], + [ 18, Moves.STOMP ], [ 24, Moves.IRON_HEAD ], [ 24, Moves.FLASH_CANNON ], [ 30, Moves.CURSE ], @@ -6589,7 +6589,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.LATIAS]: [ [ 1, Moves.STORED_POWER ], - [ 1, Moves.CHARM ], + [ 1, Moves.CHARM ], [ 1, Moves.PSYWAVE ], [ 5, Moves.HELPING_HAND ], [ 10, Moves.RECOVER ], @@ -6631,7 +6631,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.WATER_PULSE ], [ 1, Moves.ANCIENT_POWER ], [ 1, Moves.BODY_SLAM ], - [ 1, Moves.SCARY_FACE ], + [ 1, Moves.SCARY_FACE ], [ 9, Moves.AQUA_TAIL ], [ 18, Moves.CALM_MIND ], [ 27, Moves.MUDDY_WATER ], @@ -6647,7 +6647,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.MUD_SHOT ], [ 1, Moves.ANCIENT_POWER ], [ 1, Moves.LAVA_PLUME ], - [ 1, Moves.SCARY_FACE ], + [ 1, Moves.SCARY_FACE ], [ 9, Moves.EARTH_POWER ], [ 18, Moves.BULK_UP ], [ 27, Moves.EARTHQUAKE ], @@ -6663,7 +6663,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.TWISTER ], [ 1, Moves.ANCIENT_POWER ], [ 1, Moves.AIR_SLASH ], - [ 1, Moves.SCARY_FACE ], + [ 1, Moves.SCARY_FACE ], [ 9, Moves.CRUNCH ], [ 18, Moves.DRAGON_DANCE ], [ 27, Moves.EXTREME_SPEED ], @@ -6695,7 +6695,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [Species.DEOXYS]: [ [ 1, Moves.CONFUSION ], //Custom [ 1, Moves.LEER ], - [ 1, Moves.WRAP ], + [ 1, Moves.WRAP ], [ 7, Moves.NIGHT_SHADE ], [ 13, Moves.TELEPORT ], [ 19, Moves.KNOCK_OFF ], diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 9ba716a9968..f9702b3e64d 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -69,7 +69,7 @@ export function getFusedSpeciesName(speciesAName: string, speciesBName: string): const splitNameA = speciesAName.split(/ /g); const splitNameB = speciesBName.split(/ /g); - + const fragAMatch = fragAPattern.exec(speciesAName); const fragBMatch = fragBPattern.exec(speciesBName); @@ -243,7 +243,7 @@ export abstract class PokemonSpeciesForm { const showGenderDiffs = this.genderDiffs && female && ![ SpeciesFormKey.MEGA, SpeciesFormKey.GIGANTAMAX ].find(k => formSpriteKey === k); const baseSpriteKey = `${showGenderDiffs ? "female__" : ""}${this.speciesId}${formSpriteKey ? `-${formSpriteKey}` : ""}`; - + let config = variantData; `${back ? "back__" : ""}${baseSpriteKey}`.split("__").map(p => config ? config = config[p] : null); const variantSet = config as VariantSet; @@ -274,7 +274,7 @@ export abstract class PokemonSpeciesForm { if (shiny && !isVariant) { ret += "s"; } - + switch (this.speciesId) { case Species.HIPPOPOTAS: case Species.HIPPOWDON: @@ -479,7 +479,7 @@ export abstract class PokemonSpeciesForm { for (let i = 0; i < pixelData.length; i += 4) { if (pixelData[i + 3]) { const pixel = pixelData.slice(i, i + 4); - const [ r, g, b, a ] = pixel; + const [ r, g, b, a ] = pixel; if (!spriteColors.find(c => c[0] === r && c[1] === g && c[2] === b)) { spriteColors.push([ r, g, b, a ]); } @@ -494,12 +494,12 @@ export abstract class PokemonSpeciesForm { } pixelColors.push(argbFromRgba({ r: pixelData[i], g: pixelData[i + 1], b: pixelData[i + 2], a: pixelData[i + 3] })); } - + let paletteColors: Map; const originalRandom = Math.random; Math.random = () => Phaser.Math.RND.realInRange(0, 1); - + scene.executeWithSeedOffset(() => { paletteColors = QuantizerCelebi.quantize(pixelColors, 2); }, 0, "This result should not vary"); @@ -541,7 +541,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali this.genderDiffs = genderDiffs; this.canChangeForm = !!canChangeForm; this.forms = forms; - + this.localize(); forms.forEach((form, f) => { @@ -632,10 +632,10 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali } let evolutionChance: number; - + const evolutionSpecies = getPokemonSpecies(ev.speciesId); const isRegionalEvolution = !this.isRegional() && evolutionSpecies.isRegional(); - + if (!forTrainer && isRegionalEvolution) { evolutionChance = 0; } else { @@ -645,7 +645,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali } else { const maxLevelDiff = this.getStrengthLevelDiff(strength); const minChance: number = 0.875 - 0.125 * strength; - + evolutionChance = Math.min(minChance + easeInFunc(Math.min(level - ev.level, maxLevelDiff) / maxLevelDiff) * (1 - minChance), 1); } } else { @@ -671,7 +671,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali totalWeight += evolutionChance; evolutionPool.set(totalWeight, ev.speciesId); - + if ((1 - evolutionChance) < noEvolutionChance) { noEvolutionChance = 1 - evolutionChance; } @@ -681,7 +681,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali if (noEvolutionChance === 1 || Phaser.Math.RND.realInRange(0, 1) < noEvolutionChance) { return this.speciesId; } - + const randValue = evolutionPool.size === 1 ? 0 : Utils.randSeedInt(totalWeight); for (const weight of evolutionPool.keys()) { diff --git a/src/data/status-effect.ts b/src/data/status-effect.ts index 03c5f46e8ee..bac04222751 100644 --- a/src/data/status-effect.ts +++ b/src/data/status-effect.ts @@ -164,14 +164,14 @@ export function getRandomStatusEffect(statusEffectA: StatusEffect, statusEffectB * @param statusA The first Status * @param statusB The second Status */ -export function getRandomStatus(statusA: Status, statusB: Status): Status { +export function getRandomStatus(statusA: Status, statusB: Status): Status { if (statusA === undefined || statusA.effect === StatusEffect.NONE || statusA.effect === StatusEffect.FAINT) { return statusB; } if (statusB === undefined || statusB.effect === StatusEffect.NONE || statusB.effect === StatusEffect.FAINT) { return statusA; } - + return Utils.randIntRange(0, 2) ? statusA : statusB; } diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index cbe40e50cca..518cc31fd5b 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -710,7 +710,7 @@ export const trainerConfigs: TrainerConfigs = { .setSpeciesPools({ [TrainerPoolTier.COMMON]: [ Species.RHYHORN, Species.AIPOM, Species.MAKUHITA, Species.MAWILE, Species.NUMEL, Species.LILLIPUP, Species.SANDILE, Species.WOOLOO ], [TrainerPoolTier.UNCOMMON]: [ Species.GIRAFARIG, Species.ZANGOOSE, Species.SEVIPER, Species.CUBCHOO, Species.PANCHAM, Species.SKIDDO, Species.MUDBRAY ], - [TrainerPoolTier.RARE]: [ Species.TAUROS, Species.STANTLER, Species.DARUMAKA, Species.BOUFFALANT, Species.DEERLING, Species.IMPIDIMP ], + [TrainerPoolTier.RARE]: [ Species.TAUROS, Species.STANTLER, Species.DARUMAKA, Species.BOUFFALANT, Species.DEERLING, Species.IMPIDIMP ], [TrainerPoolTier.SUPER_RARE]: [ Species.GALAR_DARUMAKA, Species.TEDDIURSA ] }), [TrainerType.BAKER]: new TrainerConfig(++t).setEncounterBgm(TrainerType.CLERK).setMoneyMultiplier(1.35).setSpeciesFilter(s => s.isOfType(Type.GRASS) || s.isOfType(Type.FIRE)), @@ -721,7 +721,7 @@ export const trainerConfigs: TrainerConfigs = { .setSpeciesPools({ [TrainerPoolTier.COMMON]: [ Species.NIDORAN_F, Species.NIDORAN_M, Species.MACHOP, Species.MAKUHITA, Species.MEDITITE, Species.CROAGUNK, Species.TIMBURR ], [TrainerPoolTier.UNCOMMON]: [ Species.MANKEY, Species.POLIWRATH, Species.TYROGUE, Species.BRELOOM, Species.SCRAGGY, Species.MIENFOO, Species.PANCHAM, Species.STUFFUL, Species.CRABRAWLER ], - [TrainerPoolTier.RARE]: [ Species.HERACROSS, Species.RIOLU, Species.THROH, Species.SAWK, Species.PASSIMIAN, Species.CLOBBOPUS ], + [TrainerPoolTier.RARE]: [ Species.HERACROSS, Species.RIOLU, Species.THROH, Species.SAWK, Species.PASSIMIAN, Species.CLOBBOPUS ], [TrainerPoolTier.SUPER_RARE]: [ Species.HITMONTOP, Species.INFERNAPE, Species.GALLADE, Species.HAWLUCHA, Species.HAKAMO_O ], [TrainerPoolTier.ULTRA_RARE]: [ Species.KUBFU ] }), @@ -748,7 +748,7 @@ export const trainerConfigs: TrainerConfigs = { .setSpeciesPools({ [TrainerPoolTier.COMMON]: [ Species.RALTS, Species.SPOINK, Species.LOTAD, Species.BUDEW ], [TrainerPoolTier.UNCOMMON]: [ Species.SPINDA, Species.SWABLU, Species.MARACTUS,], - [TrainerPoolTier.RARE]: [ Species.BELLOSSOM, Species.HITMONTOP, Species.MIME_JR, Species.ORICORIO ], + [TrainerPoolTier.RARE]: [ Species.BELLOSSOM, Species.HITMONTOP, Species.MIME_JR, Species.ORICORIO ], [TrainerPoolTier.SUPER_RARE]: [ Species.POPPLIO ] }), [TrainerType.DEPOT_AGENT]: new TrainerConfig(++t).setMoneyMultiplier(1.45).setEncounterBgm(TrainerType.CLERK), @@ -785,7 +785,7 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.NURSERY_AIDE]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setEncounterBgm("lass"), [TrainerType.OFFICER]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.CLERK) .setPartyTemplates(trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG) - .setSpeciesPools({ + .setSpeciesPools({ [TrainerPoolTier.COMMON]: [ Species.VULPIX, Species.GROWLITHE, Species.SNUBBULL, Species.POOCHYENA, Species.ELECTRIKE, Species.LILLIPUP, Species.YAMPER, Species.FIDOUGH ], [TrainerPoolTier.UNCOMMON]: [ Species.HOUNDOUR, Species.ROCKRUFF, Species.MASCHIFF ], [TrainerPoolTier.RARE]: [ Species.JOLTEON, Species.RIOLU ], @@ -932,7 +932,7 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.RYME]: new TrainerConfig(++t).initForGymLeader([ Species.GREAVARD, Species.SHUPPET, Species.MIMIKYU ], Type.GHOST), [TrainerType.TULIP]: new TrainerConfig(++t).initForGymLeader([ Species.GIRAFARIG, Species.FLITTLE, Species.RALTS ], Type.PSYCHIC), [TrainerType.GRUSHA]: new TrainerConfig(++t).initForGymLeader([ Species.CETODDLE, Species.ALOLA_VULPIX, Species.CUBCHOO ], Type.ICE), - + [TrainerType.LORELEI]: new TrainerConfig((t = TrainerType.LORELEI)).initForEliteFour([ Species.SLOWBRO, Species.LAPRAS, Species.DEWGONG, Species.ALOLA_SANDSLASH ], Type.ICE), [TrainerType.BRUNO]: new TrainerConfig(++t).initForEliteFour([ Species.ONIX, Species.HITMONCHAN, Species.HITMONLEE, Species.ALOLA_GOLEM ], Type.FIGHTING), [TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour([ Species.GENGAR, Species.ARBOK, Species.CROBAT, Species.ALOLA_MAROWAK ], Type.GHOST), diff --git a/src/data/trainer-names.ts b/src/data/trainer-names.ts index 7583d1605c6..e85ee93d96f 100644 --- a/src/data/trainer-names.ts +++ b/src/data/trainer-names.ts @@ -174,7 +174,7 @@ function fetchAndPopulateTrainerNames(url: string, parser: DOMParser, trainerNam populateTrainerNamePromises.push(new Promise(resolve => { const trainerType = t; trainerTypeNames[trainerType] = []; - + const config = trainerNameConfigs[t] as TrainerNameConfig; const trainerNames = new Set(); const femaleTrainerNames = new Set(); diff --git a/src/data/type.ts b/src/data/type.ts index f4a7839e327..b2bf8117249 100644 --- a/src/data/type.ts +++ b/src/data/type.ts @@ -498,47 +498,47 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): } case Type.STELLAR: return 1; - } + } } export function getTypeRgb(type: Type): [ integer, integer, integer ] { switch (type) { case Type.NORMAL: - return [ 168, 168, 120 ]; + return [ 168, 168, 120 ]; case Type.FIGHTING: - return [ 192, 48, 40 ]; + return [ 192, 48, 40 ]; case Type.FLYING: - return [ 168, 144, 240 ]; + return [ 168, 144, 240 ]; case Type.POISON: - return [ 160, 64, 160 ]; + return [ 160, 64, 160 ]; case Type.GROUND: - return [ 224, 192, 104 ]; + return [ 224, 192, 104 ]; case Type.ROCK: - return [ 184, 160, 56 ]; + return [ 184, 160, 56 ]; case Type.BUG: return [ 168, 184, 32 ]; case Type.GHOST: - return [ 112, 88, 152 ]; + return [ 112, 88, 152 ]; case Type.STEEL: - return [ 184, 184, 208 ]; + return [ 184, 184, 208 ]; case Type.FIRE: - return [ 240, 128, 48 ]; + return [ 240, 128, 48 ]; case Type.WATER: return [ 104, 144, 240 ]; case Type.GRASS: - return [ 120, 200, 80 ]; + return [ 120, 200, 80 ]; case Type.ELECTRIC: - return [ 248, 208, 48 ]; + return [ 248, 208, 48 ]; case Type.PSYCHIC: - return [ 248, 88, 136 ]; + return [ 248, 88, 136 ]; case Type.ICE: - return [ 152, 216, 216 ]; + return [ 152, 216, 216 ]; case Type.DRAGON: return [ 112, 56, 248 ]; case Type.DARK: return [ 112, 88, 72 ]; case Type.FAIRY: - return [ 232, 136, 200 ]; + return [ 232, 136, 200 ]; case Type.STELLAR: return [ 255, 255, 255 ]; default: diff --git a/src/egg-hatch-phase.ts b/src/egg-hatch-phase.ts index edb0f658905..cf67e5a7566 100644 --- a/src/egg-hatch-phase.ts +++ b/src/egg-hatch-phase.ts @@ -291,7 +291,7 @@ export class EggHatchPhase extends Phase { this.infoContainer.show(this.pokemon, false, this.skipped ? 2 : 1); this.scene.playSoundWithoutBgm("evolution_fanfare"); - + this.scene.ui.showText(`${this.pokemon.name} hatched from the egg!`, null, () => { this.scene.gameData.updateSpeciesDexIvs(this.pokemon.species.speciesId, this.pokemon.ivs); this.scene.gameData.setPokemonCaught(this.pokemon, true, true).then(() => { @@ -374,7 +374,7 @@ export class EggHatchPhase extends Phase { if (this.egg.isManaphyEgg()) { const rand = Utils.randSeedInt(8); - + speciesOverride = rand ? Species.PHIONE : Species.MANAPHY; } else if (this.egg.tier === EggTier.MASTER && this.egg.gachaType === GachaType.LEGENDARY) { @@ -451,14 +451,14 @@ export class EggHatchPhase extends Phase { for (let s = 0; s < ret.ivs.length; s++) { ret.ivs[s] = Math.max(ret.ivs[s], secondaryIvs[s]); } - + const baseChance = this.egg.gachaType === GachaType.MOVE ? 3 : 6; this.eggMoveIndex = Utils.randSeedInt(baseChance * Math.pow(2, 3 - this.egg.tier)) ? Utils.randSeedInt(3) : 3; }, this.egg.id, EGG_SEED.toString()); - + return ret; } } diff --git a/src/evolution-phase.ts b/src/evolution-phase.ts index 57b16ec5664..29382807ccb 100644 --- a/src/evolution-phase.ts +++ b/src/evolution-phase.ts @@ -14,7 +14,7 @@ import i18next from "i18next"; export class EvolutionPhase extends Phase { protected pokemon: PlayerPokemon; protected lastLevel: integer; - + private evolution: SpeciesFormEvolution; protected evolutionContainer: Phaser.GameObjects.Container; @@ -117,7 +117,7 @@ export class EvolutionPhase extends Phase { doEvolution(): void { const evolutionHandler = this.scene.ui.getHandler() as EvolutionSceneHandler; const preName = this.pokemon.name; - + this.scene.ui.showText(i18next.t("menu:evolving", { pokemonName: preName }), null, () => { this.pokemon.cry(); @@ -211,7 +211,7 @@ export class EvolutionPhase extends Phase { }, null, true); return; } - + this.scene.playSound("sparkle"); this.pokemonEvoSprite.setVisible(true); this.doCircleInward(); @@ -222,7 +222,7 @@ export class EvolutionPhase extends Phase { const levelMoves = this.pokemon.getLevelMoves(this.lastLevel + 1, true); for (const lm of levelMoves) { this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.scene.getParty().indexOf(this.pokemon), lm[1])); - } + } this.scene.unshiftPhase(new EndEvolutionPhase(this.scene)); this.scene.playSound("shine"); @@ -252,7 +252,7 @@ export class EvolutionPhase extends Phase { this.pokemon.cry(); this.scene.time.delayedCall(1250, () => { this.scene.playSoundWithoutBgm("evolution_fanfare"); - + evolvedPokemon.destroy(); this.scene.ui.showText(i18next.t("menu:evolutionDone", { pokemonName: preName, evolvedPokemonName: this.pokemon.name }), null, () => this.end(), null, true, Utils.fixedInt(4000)); this.scene.time.delayedCall(Utils.fixedInt(4250), () => this.scene.playBgm()); @@ -280,7 +280,7 @@ export class EvolutionPhase extends Phase { doSpiralUpward() { let f = 0; - + this.scene.tweens.addCounter({ repeat: 64, duration: Utils.getFrameMs(1), @@ -299,7 +299,7 @@ export class EvolutionPhase extends Phase { doArcDownward() { let f = 0; - + this.scene.tweens.addCounter({ repeat: 96, duration: Utils.getFrameMs(1), @@ -350,7 +350,7 @@ export class EvolutionPhase extends Phase { doCircleInward() { let f = 0; - + this.scene.tweens.addCounter({ repeat: 48, duration: Utils.getFrameMs(1), @@ -371,7 +371,7 @@ export class EvolutionPhase extends Phase { doSpray() { let f = 0; - + this.scene.tweens.addCounter({ repeat: 48, duration: Utils.getFrameMs(1), diff --git a/src/field/anims.ts b/src/field/anims.ts index 0e6bef565f5..db6a331cc20 100644 --- a/src/field/anims.ts +++ b/src/field/anims.ts @@ -108,11 +108,11 @@ function doMbOpenParticles(scene: BattleScene, x: number, y: number) { } function doFanOutParticle(scene: BattleScene, trigIndex: integer, x: integer, y: integer, xSpeed: integer, ySpeed: integer, angle: integer, frameIndex: integer): Phaser.GameObjects.Image { - let f = 0; + let f = 0; const particle = scene.add.image(x, y, "pb_particles", `${frameIndex}.png`); scene.field.add(particle); - + const updateParticle = () => { if (!particle.scene) { return particleTimer.remove(); diff --git a/src/field/arena.ts b/src/field/arena.ts index 179fdf8d5d9..3668eaa440e 100644 --- a/src/field/arena.ts +++ b/src/field/arena.ts @@ -106,7 +106,7 @@ export class Arena { } } } - + ret = getPokemonSpecies(species); if (ret.subLegendary || ret.legendary || ret.mythical) { @@ -292,7 +292,7 @@ export class Arena { if (Overrides.WEATHER_OVERRIDE) { return this.trySetWeatherOverride(Overrides.WEATHER_OVERRIDE); } - + if (this.weather?.weatherType === (weather || undefined)) { return false; } @@ -300,7 +300,7 @@ export class Arena { const oldWeatherType = this.weather?.weatherType || WeatherType.NONE; this.weather = weather ? new Weather(weather, hasPokemonSource ? 5 : 0) : null; - + if (this.weather) { this.scene.tryReplacePhase(phase => phase instanceof WeatherEffectPhase && phase.weather.weatherType === oldWeatherType, new WeatherEffectPhase(this.scene, this.weather)); this.scene.unshiftPhase(new CommonAnimPhase(this.scene, undefined, undefined, CommonAnim.SUNNY + (weather - 1))); @@ -314,7 +314,7 @@ export class Arena { pokemon.findAndRemoveTags(t => "weatherTypes" in t && !(t.weatherTypes as WeatherType[]).find(t => t === weather)); applyPostWeatherChangeAbAttrs(PostWeatherChangeAbAttr, pokemon, weather); }); - + return true; } @@ -326,7 +326,7 @@ export class Arena { const oldTerrainType = this.terrain?.terrainType || TerrainType.NONE; this.terrain = terrain ? new Terrain(terrain, hasPokemonSource ? 5 : 0) : null; - + if (this.terrain) { if (!ignoreAnim) { this.scene.unshiftPhase(new CommonAnimPhase(this.scene, undefined, undefined, CommonAnim.MISTY_TERRAIN + (terrain - 1))); @@ -340,7 +340,7 @@ export class Arena { pokemon.findAndRemoveTags(t => "terrainTypes" in t && !(t.terrainTypes as TerrainType[]).find(t => t === terrain)); applyPostTerrainChangeAbAttrs(PostTerrainChangeAbAttr, pokemon, terrain); }); - + return true; } @@ -506,7 +506,7 @@ export class Arena { } tags.forEach(t => t.apply(this, args)); } - + applyTags(tagType: ArenaTagType | { new(...args: any[]): ArenaTag }, ...args: any[]): void { this.applyTagsForSide(tagType, ArenaTagSide.BOTH, ...args); } @@ -568,8 +568,8 @@ export class Arena { } return !!tag; } - - + + removeAllTags(): void { while (this.tags.length) { this.tags[0].onRemove(this); @@ -720,7 +720,7 @@ export class ArenaBase extends Phaser.GameObjects.Container { const hasProps = getBiomeHasProps(biome); const biomeKey = getBiomeKey(biome); const baseKey = `${biomeKey}_${this.player ? "a" : "b"}`; - + if (biome !== this.biome) { this.base.setTexture(baseKey); diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index e7a91832c59..72651d3a76e 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -61,7 +61,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { public species: PokemonSpecies; public formIndex: integer; public abilityIndex: integer; - public passive: boolean; + public passive: boolean; public shiny: boolean; public variant: Variant; public pokeball: PokeballType; @@ -170,7 +170,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } else { this.id = Utils.randSeedInt(4294967296); this.ivs = ivs || Utils.getIvsFromId(this.id); - + if (this.gender === undefined) { this.generateGender(); } @@ -239,7 +239,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { }; this.setScale(this.getSpriteScale()); - + const sprite = getSprite(true); const tintSprite = getSprite(); @@ -555,9 +555,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { return false; } - return true; + return true; } - + playAnim(): void { this.tryPlaySprite(this.getSprite(), this.getTintSprite(), this.getBattleSpriteKey()); } @@ -662,7 +662,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { break; case Stat.SPD: // Check both the player and enemy to see if Tailwind should be multiplying the speed of the Pokemon - if ((this.isPlayer() && this.scene.arena.getTagOnSide(ArenaTagType.TAILWIND, ArenaTagSide.PLAYER)) + if ((this.isPlayer() && this.scene.arena.getTagOnSide(ArenaTagType.TAILWIND, ArenaTagSide.PLAYER)) || (!this.isPlayer() && this.scene.arena.getTagOnSide(ArenaTagType.TAILWIND, ArenaTagSide.ENEMY))) { ret *= 2; } @@ -842,7 +842,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.summonData.types.forEach(t => types.push(t)); } else { const speciesForm = this.getSpeciesForm(); - + types.push(speciesForm.type1); const fusionSpeciesForm = this.getFusionSpeciesForm(); @@ -933,10 +933,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { starterSpeciesId = pokemonPrevolutions[starterSpeciesId]; } return allAbilities[starterPassiveAbilities[starterSpeciesId]]; - } + } /** - * Checks if a pokemon has a passive either from: + * Checks if a pokemon has a passive either from: * - bought with starter candy * - set by override * - is a boss pokemon @@ -1009,7 +1009,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } /** - * Checks whether a pokemon has an ability with the specified attribute and it's in effect. + * Checks whether a pokemon has an ability with the specified attribute and it's in effect. * Accounts for all the various effects which can affect whether an ability will be present or * in effect, and both passive and non-passive. This is one of the two primary ways to check * whether a pokemon has a particular ability. @@ -1209,7 +1209,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { return ret; } - + setMove(moveIndex: integer, moveId: Moves): void { const move = moveId ? new PokemonMove(moveId) : null; this.moveset[moveIndex] = move; @@ -1279,12 +1279,12 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { && !species.isTrainerForbidden() && species.speciesId !== this.species.speciesId; }; - + this.fusionSpecies = this.scene.randomSpecies(this.scene.currentBattle?.waveIndex || 0, this.level, false, filter, true); this.fusionAbilityIndex = (this.fusionSpecies.abilityHidden && hasHiddenAbility ? this.fusionSpecies.ability2 ? 2 : 1 : this.fusionSpecies.ability2 ? randAbilityIndex : 0); this.fusionShiny = this.shiny; this.fusionVariant = this.variant; - + if (this.fusionSpecies.malePercent === null) { this.fusionGender = Gender.GENDERLESS; } else { @@ -1582,7 +1582,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { const move = battlerMove.getMove(); const damage = new Utils.NumberHolder(0); const defendingSidePlayField = this.isPlayer() ? this.scene.getPlayerField() : this.scene.getEnemyField(); - + const variableCategory = new Utils.IntegerHolder(move.category); applyMoveAttrs(VariableMoveCategoryAttr, source, this, move, variableCategory); const moveCategory = variableCategory.value as MoveCategory; @@ -1694,7 +1694,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { const screenMultiplier = new Utils.NumberHolder(1); if (!isCritical) { this.scene.arena.applyTagsForSide(WeakenMoveScreenTag, this.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY, move.category, this.scene.currentBattle.double, screenMultiplier); - } + } const isTypeImmune = (typeMultiplier.value * arenaAttackTypeMultiplier.value) === 0; const sourceTypes = source.getTypes(); const matchesSourceType = sourceTypes[0] === type || (sourceTypes.length > 1 && sourceTypes[1] === type); @@ -1728,11 +1728,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { applyPreAttackAbAttrs(DamageBoostAbAttr, source, this, battlerMove, damage); - /** + /** * For each {@link HitsTagAttr} the move has, doubles the damage of the move if: * The target has a {@link BattlerTagType} that this move interacts with * AND - * The move doubles damage when used against that tag + * The move doubles damage when used against that tag * */ move.getAttrs(HitsTagAttr).map(hta => hta as HitsTagAttr).filter(hta => hta.doubleDamage).forEach(hta => { if (this.getTag(hta.tagType)) { @@ -1752,7 +1752,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { isCritical = false; result = HitResult.EFFECTIVE; } - + if (!result) { if (!typeMultiplier.value) { result = move.id === Moves.SHEER_COLD ? HitResult.IMMUNE : HitResult.NO_EFFECT; @@ -2123,7 +2123,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { let frameProgress = 0; let frameThreshold: number; - + sprite.anims.pause(); tintSprite.anims.pause(); @@ -2336,7 +2336,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { return true; } - trySetStatus(effect: StatusEffect, asPhase: boolean = false, sourcePokemon: Pokemon = null, cureTurn: integer = 0, sourceText: string = null): boolean { + trySetStatus(effect: StatusEffect, asPhase: boolean = false, sourcePokemon: Pokemon = null, cureTurn: integer = 0, sourceText: string = null): boolean { if (!this.canSetStatus(effect, asPhase, false, sourcePokemon)) { return false; } @@ -2626,13 +2626,13 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { fusionPixelColors.push(argbFromRgba({ r, g, b, a })); } } - + let paletteColors: Map; let fusionPaletteColors: Map; const originalRandom = Math.random; Math.random = () => Phaser.Math.RND.realInRange(0, 1); - + this.scene.executeWithSeedOffset(() => { paletteColors = QuantizerCelebi.quantize(pixelColors, 4); fusionPaletteColors = QuantizerCelebi.quantize(fusionPixelColors, 4); @@ -2645,14 +2645,14 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { let keys = Array.from(paletteColors.keys()).sort((a: integer, b: integer) => paletteColors.get(a) < paletteColors.get(b) ? 1 : -1); let rgbaColors: Map; let hsvColors: Map; - + const mappedColors = new Map(); do { mappedColors.clear(); rgbaColors = keys.reduce((map: Map, k: number) => { - map.set(k, Object.values(rgbaFromArgb(k))); return map; + map.set(k, Object.values(rgbaFromArgb(k))); return map; }, new Map()); hsvColors = Array.from(rgbaColors.keys()).reduce((map: Map, k: number) => { const rgb = rgbaColors.get(k).slice(0, 3); @@ -2780,7 +2780,7 @@ export class PlayerPokemon extends Pokemon { constructor(scene: BattleScene, species: PokemonSpecies, level: integer, abilityIndex: integer, formIndex: integer, gender: Gender, shiny: boolean, variant: Variant, ivs: integer[], nature: Nature, dataSource: Pokemon | PokemonData) { super(scene, 106, 148, species, level, abilityIndex, formIndex, gender, shiny, variant, ivs, nature, dataSource); - + if (Overrides.SHINY_OVERRIDE) { this.shiny = true; this.initShinySparkle(); @@ -2865,7 +2865,7 @@ export class PlayerPokemon extends Pokemon { } this.hideInfo(); this.setVisible(false); - + this.scene.ui.setMode(Mode.PARTY, PartyUiMode.FAINT_SWITCH, this.getFieldIndex(), (slotIndex: integer, option: PartyOption) => { if (slotIndex >= this.scene.currentBattle.getBattlerCount() && slotIndex < 6) { this.scene.unshiftPhase(new SwitchSummonPhase(this.scene, this.getFieldIndex(), slotIndex, false, batonPass)); @@ -2892,7 +2892,7 @@ export class PlayerPokemon extends Pokemon { if (amount.value > 0) { this.scene.applyModifier(PokemonFriendshipBoosterModifier, true, this, amount); this.scene.applyModifier(PokemonFriendshipBoosterModifier, true, this, starterAmount); - + this.friendship = Math.min(this.friendship + amount.value, 255); if (this.friendship === 255) { this.scene.validateAchv(achvs.MAX_FRIENDSHIP); @@ -2949,7 +2949,7 @@ export class PlayerPokemon extends Pokemon { }, PartyUiHandler.FilterFainted); }); } - + getPossibleEvolution(evolution: SpeciesFormEvolution): Promise { return new Promise(resolve => { const evolutionSpecies = getPokemonSpecies(evolution.speciesId); @@ -3021,11 +3021,11 @@ export class PlayerPokemon extends Pokemon { private handleSpecialEvolutions(evolution: SpeciesFormEvolution) { const isFusion = evolution instanceof FusionSpeciesFormEvolution; - + const evoSpecies = (!isFusion ? this.species : this.fusionSpecies); if (evoSpecies.speciesId === Species.NINCADA && evolution.speciesId === Species.NINJASK) { - const newEvolution = pokemonEvolutions[evoSpecies.speciesId][1]; - + const newEvolution = pokemonEvolutions[evoSpecies.speciesId][1]; + if (newEvolution.condition.predicate(this)) { const newPokemon = this.scene.addPlayerPokemon(this.species, this.level, this.abilityIndex, this.formIndex, undefined, this.shiny, this.variant, this.ivs, this.nature); newPokemon.natureOverride = this.natureOverride; @@ -3116,7 +3116,7 @@ export class PlayerPokemon extends Pokemon { this.generateName(); this.calculateStats(); - + // Set this Pokemon's HP to the average % of both fusion components this.hp = Math.round(this.stats[Stat.HP] * newHpPercent); if (!this.isFainted()) { @@ -3168,7 +3168,7 @@ export class PlayerPokemon extends Pokemon { /** Returns a deep copy of this Pokemon's moveset array */ copyMoveset(): PokemonMove[] { const newMoveset = []; - this.moveset.forEach(move => + this.moveset.forEach(move => newMoveset.push(new PokemonMove(move.moveId, 0, move.ppUp, move.virtual))); return newMoveset; @@ -3230,7 +3230,7 @@ export class EnemyPokemon extends Pokemon { this.battleInfo.updateBossSegments(this); } } - + setBoss(boss: boolean = true, bossSegments: integer = 0): void { if (boss) { this.bossSegments = bossSegments || this.scene.getEncounterBossSegments(this.scene.currentBattle.waveIndex, this.level, this.species, true); @@ -3404,7 +3404,7 @@ export class EnemyPokemon extends Pokemon { if (!!move.findAttr(attr => attr instanceof CounterDamageAttr)) { return [BattlerIndex.ATTACKER]; } - + return []; } @@ -3476,7 +3476,7 @@ export class EnemyPokemon extends Pokemon { return 0; } - let clearedBossSegmentIndex = this.isBoss() + let clearedBossSegmentIndex = this.isBoss() ? this.bossSegmentIndex + 1 : 0; diff --git a/src/field/trainer.ts b/src/field/trainer.ts index 177aee2f3d0..5aa3969ccb4 100644 --- a/src/field/trainer.ts +++ b/src/field/trainer.ts @@ -31,7 +31,7 @@ export default class Trainer extends Phaser.GameObjects.Container { ? trainerConfigs[trainerType] : trainerConfigs[TrainerType.ACE_TRAINER]; this.variant = variant; - this.partyTemplateIndex = Math.min(partyTemplateIndex !== undefined ? partyTemplateIndex : Utils.randSeedWeightedItem(this.config.partyTemplates.map((_, i) => i)), + this.partyTemplateIndex = Math.min(partyTemplateIndex !== undefined ? partyTemplateIndex : Utils.randSeedWeightedItem(this.config.partyTemplates.map((_, i) => i)), this.config.partyTemplates.length - 1); if (trainerNamePools.hasOwnProperty(trainerType)) { const namePool = trainerNamePools[trainerType]; @@ -70,7 +70,7 @@ export default class Trainer extends Phaser.GameObjects.Container { ret.setPipeline(this.scene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], hasShadow: !!hasShadow }); return ret; }; - + const sprite = getSprite(true); const tintSprite = getSprite(); @@ -181,7 +181,7 @@ export default class Trainer extends Phaser.GameObjects.Container { getPartyLevels(waveIndex: integer): integer[] { const ret = []; const partyTemplate = this.getPartyTemplate(); - + const difficultyWaveIndex = this.scene.gameMode.getWaveForDifficulty(waveIndex); const baseLevel = 1 + difficultyWaveIndex / 2 + Math.pow(difficultyWaveIndex / 25, 2); @@ -191,9 +191,9 @@ export default class Trainer extends Phaser.GameObjects.Container { for (let i = 0; i < partyTemplate.size; i++) { let multiplier = 1; - + const strength = partyTemplate.getStrength(i); - + switch (strength) { case PartyMemberStrength.WEAKER: multiplier = 0.95; @@ -229,7 +229,7 @@ export default class Trainer extends Phaser.GameObjects.Container { genPartyMember(index: integer): EnemyPokemon { const battle = this.scene.currentBattle; const level = battle.enemyLevels[index]; - + let ret: EnemyPokemon; this.scene.executeWithSeedOffset(() => { @@ -259,7 +259,7 @@ export default class Trainer extends Phaser.GameObjects.Container { const species = template.isSameSpecies(index) && index > offset ? getPokemonSpecies(battle.enemyParty[offset].species.getTrainerSpeciesForLevel(level, false, template.getStrength(offset))) : this.genNewPartyMemberSpecies(level, strength); - + ret = this.scene.addEnemyPokemon(species, level, !this.isDouble() || !(index % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER); }, this.config.hasStaticParty ? this.config.getDerivedType() + ((index + 1) << 8) : this.scene.currentBattle.waveIndex + (this.config.getDerivedType() << 10) + (((!this.config.useSameSeedForAllMembers ? index : 0) + 1) << 8)); @@ -324,7 +324,7 @@ export default class Trainer extends Phaser.GameObjects.Container { if (trainerSlot && !this.isDouble()) { trainerSlot = TrainerSlot.NONE; } - + const party = this.scene.getEnemyParty(); const nonFaintedPartyMembers = party.slice(this.scene.currentBattle.getBattlerCount()).filter(p => !p.isFainted()).filter(p => !trainerSlot || p.trainerSlot === trainerSlot); const partyMemberScores = nonFaintedPartyMembers.map(p => { @@ -374,7 +374,7 @@ export default class Trainer extends Phaser.GameObjects.Container { return maxScorePartyMemberIndexes[0]; } - + getPartyMemberModifierChanceMultiplier(index: integer): number { switch (this.getPartyTemplate().getStrength(index)) { case PartyMemberStrength.WEAKER: @@ -431,7 +431,7 @@ export default class Trainer extends Phaser.GameObjects.Container { sprite.play(animConfig); tintSprite.play(animConfig); - return true; + return true; } playAnim(): void { diff --git a/src/form-change-phase.ts b/src/form-change-phase.ts index c42932d931c..a8957bfc8b6 100644 --- a/src/form-change-phase.ts +++ b/src/form-change-phase.ts @@ -35,7 +35,7 @@ export class FormChangePhase extends EvolutionPhase { doEvolution(): void { const preName = this.pokemon.name; - + this.pokemon.getPossibleForm(this.formChange).then(transformedPokemon => { [ this.pokemonEvoSprite, this.pokemonEvoTintSprite ].map(sprite => { @@ -132,7 +132,7 @@ export class FormChangePhase extends EvolutionPhase { const delay = playEvolutionFanfare ? 4000 : 1750; this.scene.playSoundWithoutBgm(playEvolutionFanfare ? "evolution_fanfare" : "minor_fanfare"); - + transformedPokemon.destroy(); this.scene.ui.showText(getSpeciesFormChangeMessage(this.pokemon, this.formChange, preName), null, () => this.end(), null, true, Utils.fixedInt(delay)); this.scene.time.delayedCall(Utils.fixedInt(delay + 250), () => this.scene.playBgm()); @@ -287,7 +287,7 @@ export class QuietFormChangePhase extends BattlePhase { this.pokemon.bossSegmentIndex = 4; this.pokemon.initBattleInfo(); this.pokemon.cry(); - + const movePhase = this.scene.findPhase(p => p instanceof MovePhase && p.pokemon === this.pokemon) as MovePhase; if (movePhase) { movePhase.cancel(); diff --git a/src/game-mode.ts b/src/game-mode.ts index 69bc5ea109a..4d46971dcb5 100644 --- a/src/game-mode.ts +++ b/src/game-mode.ts @@ -46,7 +46,7 @@ export class GameMode implements GameModeConfig { } /** - * @returns either: + * @returns either: * - override from overrides.ts * - 20 for Daily Runs * - 5 for all other modes @@ -132,7 +132,7 @@ export class GameMode implements GameModeConfig { } return false; } - + isTrainerBoss(waveIndex: integer, biomeType: Biome, offsetGym: boolean): boolean { switch (this.modeId) { case GameModes.DAILY: @@ -154,7 +154,7 @@ export class GameMode implements GameModeConfig { /** * Checks if wave provided is the final for current or specified game mode - * @param waveIndex + * @param waveIndex * @param modeId game mode * @returns if the current wave is final for classic or daily OR a minor boss in endless */ @@ -194,7 +194,7 @@ export class GameMode implements GameModeConfig { * @returns true if waveIndex is a multiple of 250 in Endless */ isEndlessMinorBoss(waveIndex: integer): boolean { - return waveIndex % 250 === 0 && + return waveIndex % 250 === 0 && (this.modeId === GameModes.ENDLESS || this.modeId === GameModes.SPLICED_ENDLESS); } @@ -204,7 +204,7 @@ export class GameMode implements GameModeConfig { * @returns true if waveIndex is a multiple of 1000 in Endless */ isEndlessMajorBoss(waveIndex: integer): boolean { - return waveIndex % 1000 === 0 && + return waveIndex % 1000 === 0 && (this.modeId === GameModes.ENDLESS || this.modeId === GameModes.SPLICED_ENDLESS); } diff --git a/src/loading-scene.ts b/src/loading-scene.ts index 3bbae27ffc1..b14b0527569 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -198,7 +198,7 @@ export class LoadingScene extends SceneBase { this.loadAtlas("types", ""); this.loadAtlas("statuses", ""); this.loadAtlas("categories", ""); - + this.loadAtlas("egg", "egg"); this.loadAtlas("egg_crack", "egg"); this.loadAtlas("egg_icons", "egg"); @@ -350,7 +350,7 @@ export class LoadingScene extends SceneBase { this.load.on("fileprogress", file => { assetText.setText(`Loading asset: ${file.key}`); }); - + loadingGraphics.push(bg, graphics, progressBar, progressBox, logo, percentText, assetText); if (!mobile) { diff --git a/src/locales/de/starter-select-ui-handler.ts b/src/locales/de/starter-select-ui-handler.ts index c1d3633e7bf..12061e7ca3f 100644 --- a/src/locales/de/starter-select-ui-handler.ts +++ b/src/locales/de/starter-select-ui-handler.ts @@ -22,7 +22,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "nature": "Wesen:", "eggMoves": "Ei-Attacken", "start": "Start", - "addToParty": "Zum Team hinzufügen", + "addToParty": "Zum Team hinzufügen", "toggleIVs": "DVs anzeigen/verbergen", "manageMoves": "Attacken ändern", "useCandies": "Bonbons verwenden", diff --git a/src/locales/de/tutorial.ts b/src/locales/de/tutorial.ts index 7d45314717d..25b1d69b602 100644 --- a/src/locales/de/tutorial.ts +++ b/src/locales/de/tutorial.ts @@ -7,9 +7,9 @@ export const tutorial: SimpleTranslationEntries = { $Das Spiel befindet sich noch in der Entwicklung, ist aber voll spielbar. $Für Fehlerberichte nutze bitte den PokéRogue Discord-Server. $Sollte das Spiel langsam laufen, überprüfe, ob in deinem Browser "Hardwarebeschleunigung" aktiviert ist.`, - + "accessMenu": "Nutze M oder Esc, um das Menü zu öffnen. Dort hast du Zugriff auf die Einstellungen und andere Funktionen.", - + "menu": `In diesem Menü hast du Zugriff auf die Einstellungen. $Dort kannst du u. A. die Spielgeschwin-\ndigkeit und das Fensterdesign ändern. $Das Menü verbirgt noch andere Funktionen - probier' sie gerne aus!`, diff --git a/src/locales/de/weather.ts b/src/locales/de/weather.ts index 56c6584fdcb..f6a6864bec7 100644 --- a/src/locales/de/weather.ts +++ b/src/locales/de/weather.ts @@ -33,7 +33,7 @@ export const weather: SimpleTranslationEntries = { "heavyRainStartMessage": "Es fängt an, in Strömen zu regnen!", "heavyRainLapseMessage": "Der strömende Regen hält an.", "heavyRainClearMessage": "Der strömende Regen lässt nach.", - + "harshSunStartMessage": "Das Sonnenlicht wird sehr viel stärker!", "harshSunLapseMessage": "Das Sonnenlicht ist sehr stark.", "harshSunClearMessage": "Das Sonnenlicht verliert an Intensität.", diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index aae53e61b42..08902576f54 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -22,7 +22,7 @@ import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { voucher } from "./voucher"; -export const enConfig = { +export const enConfig = { ability: ability, abilityTriggers: abilityTriggers, battle: battle, diff --git a/src/locales/en/modifier-type.ts b/src/locales/en/modifier-type.ts index 85261c0cabe..cd256978304 100644 --- a/src/locales/en/modifier-type.ts +++ b/src/locales/en/modifier-type.ts @@ -139,10 +139,10 @@ export const modifierType: ModifierTypeTranslationEntries = { "HYPER_POTION": { name: "Hyper Potion" }, "MAX_POTION": { name: "Max Potion" }, "FULL_RESTORE": { name: "Full Restore" }, - + "REVIVE": { name: "Revive" }, "MAX_REVIVE": { name: "Max Revive" }, - + "FULL_HEAL": { name: "Full Heal" }, "SACRED_ASH": { name: "Sacred Ash" }, @@ -187,12 +187,12 @@ export const modifierType: ModifierTypeTranslationEntries = { "AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%" }, "GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of direct damage inflicted as money" }, "COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" }, - + "LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items" }, "GRIP_CLAW": { name: "Grip Claw" }, "WIDE_LENS": { name: "Wide Lens" }, - + "MULTI_LENS": { name: "Multi Lens" }, "HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)" }, @@ -290,7 +290,7 @@ export const modifierType: ModifierTypeTranslationEntries = { "TART_APPLE": "Tart Apple", "STRAWBERRY_SWEET": "Strawberry Sweet", "UNREMARKABLE_TEACUP": "Unremarkable Teacup", - + "CHIPPED_POT": "Chipped Pot", "BLACK_AUGURITE": "Black Augurite", "GALARICA_CUFF": "Galarica Cuff", diff --git a/src/locales/en/pokemon-info.ts b/src/locales/en/pokemon-info.ts index 3f96ba152ef..b9a24d7e449 100644 --- a/src/locales/en/pokemon-info.ts +++ b/src/locales/en/pokemon-info.ts @@ -15,7 +15,7 @@ export const pokemonInfo: PokemonInfoTranslationEntries = { "SPD": "Speed", "SPDshortened": "Spd" }, - + Type: { "UNKNOWN": "Unknown", "NORMAL": "Normal", diff --git a/src/locales/en/starter-select-ui-handler.ts b/src/locales/en/starter-select-ui-handler.ts index 287059bae72..857ba4d805c 100644 --- a/src/locales/en/starter-select-ui-handler.ts +++ b/src/locales/en/starter-select-ui-handler.ts @@ -22,7 +22,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "nature": "Nature:", "eggMoves": "Egg Moves", "start": "Start", - "addToParty": "Add to Party", + "addToParty": "Add to Party", "toggleIVs": "Toggle IVs", "manageMoves": "Manage Moves", "useCandies": "Use Candies", diff --git a/src/locales/en/trainers.ts b/src/locales/en/trainers.ts index 68b31f2d301..8ac2696dc61 100644 --- a/src/locales/en/trainers.ts +++ b/src/locales/en/trainers.ts @@ -82,8 +82,8 @@ export const trainerClasses: SimpleTranslationEntries = { "pokémon_rangers": "Pokémon Ranger", "ranger": "Ranger", "restaurant_staff": "Restaurant Staff", - "rich": "Rich", - "rich_female": "Rich", + "rich": "Rich", + "rich_female": "Rich", "rich_boy": "Rich Boy", "rich_couple": "Rich Couple", "rich_kid": "Rich Kid", diff --git a/src/locales/en/tutorial.ts b/src/locales/en/tutorial.ts index fbf10474902..0219edd61bf 100644 --- a/src/locales/en/tutorial.ts +++ b/src/locales/en/tutorial.ts @@ -5,9 +5,9 @@ export const tutorial: SimpleTranslationEntries = { $This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used. $The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community. $If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`, - + "accessMenu": "To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.", - + "menu": `From this menu you can access the settings. $From the settings you can change game speed, window style, and other options. $There are also various other features here, so be sure to check them all!`, diff --git a/src/locales/en/weather.ts b/src/locales/en/weather.ts index 85ec1ff78d6..1e4602f362c 100644 --- a/src/locales/en/weather.ts +++ b/src/locales/en/weather.ts @@ -33,7 +33,7 @@ export const weather: SimpleTranslationEntries = { "heavyRainStartMessage": "A heavy downpour started!", "heavyRainLapseMessage": "The heavy downpour continues.", "heavyRainClearMessage": "The heavy rain stopped.", - + "harshSunStartMessage": "The sunlight got hot!", "harshSunLapseMessage": "The sun is scorching hot.", "harshSunClearMessage": "The harsh sunlight faded.", diff --git a/src/locales/es/modifier-type.ts b/src/locales/es/modifier-type.ts index 60c0f5c1392..9c6b8e9e6c3 100644 --- a/src/locales/es/modifier-type.ts +++ b/src/locales/es/modifier-type.ts @@ -139,10 +139,10 @@ export const modifierType: ModifierTypeTranslationEntries = { "HYPER_POTION": { name: "Hyper Potion" }, "MAX_POTION": { name: "Max Potion" }, "FULL_RESTORE": { name: "Full Restore" }, - + "REVIVE": { name: "Revive" }, "MAX_REVIVE": { name: "Max Revive" }, - + "FULL_HEAL": { name: "Full Heal" }, "SACRED_ASH": { name: "Sacred Ash" }, @@ -187,12 +187,12 @@ export const modifierType: ModifierTypeTranslationEntries = { "AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%" }, "GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of damage inflicted as money" }, "COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" }, - + "LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items" }, "GRIP_CLAW": { name: "Grip Claw" }, "WIDE_LENS": { name: "Wide Lens" }, - + "MULTI_LENS": { name: "Multi Lens" }, "HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)" }, @@ -290,7 +290,7 @@ export const modifierType: ModifierTypeTranslationEntries = { "TART_APPLE": "Tart Apple", "STRAWBERRY_SWEET": "Strawberry Sweet", "UNREMARKABLE_TEACUP": "Unremarkable Teacup", - + "CHIPPED_POT": "Chipped Pot", "BLACK_AUGURITE": "Black Augurite", "GALARICA_CUFF": "Galarica Cuff", diff --git a/src/locales/es/pokemon-info.ts b/src/locales/es/pokemon-info.ts index 887a0853070..4861ac1f82f 100644 --- a/src/locales/es/pokemon-info.ts +++ b/src/locales/es/pokemon-info.ts @@ -37,5 +37,5 @@ export const pokemonInfo: PokemonInfoTranslationEntries = { "DARK": "Siniestro", "FAIRY": "Hada", "STELLAR": "Astral", - }, + }, } as const; diff --git a/src/locales/es/tutorial.ts b/src/locales/es/tutorial.ts index bca488c3058..2582ad5e24f 100644 --- a/src/locales/es/tutorial.ts +++ b/src/locales/es/tutorial.ts @@ -8,10 +8,10 @@ export const tutorial: SimpleTranslationEntries = { $comunidad de Discord. $Si el juego va lento, por favor, asegúrate de que tengas activada la opción 'Aceleración de gráficos' en los $ajustes de tu navegador.`, - + "accessMenu": `Para acceder al menú, pulsa M o Escape cuando\ntengas el control. $El menú contiene los ajustes y otras funciones.`, - + "menu": `Desde este menú podrás acceder a los ajustes. $Podrás cambiar la velocidad del juego, el estilo de la ventana y demás. $Hay más opciones, ¡así que pruébalas todas!`, diff --git a/src/locales/es/weather.ts b/src/locales/es/weather.ts index 85ec1ff78d6..1e4602f362c 100644 --- a/src/locales/es/weather.ts +++ b/src/locales/es/weather.ts @@ -33,7 +33,7 @@ export const weather: SimpleTranslationEntries = { "heavyRainStartMessage": "A heavy downpour started!", "heavyRainLapseMessage": "The heavy downpour continues.", "heavyRainClearMessage": "The heavy rain stopped.", - + "harshSunStartMessage": "The sunlight got hot!", "harshSunLapseMessage": "The sun is scorching hot.", "harshSunClearMessage": "The harsh sunlight faded.", diff --git a/src/locales/fr/modifier-type.ts b/src/locales/fr/modifier-type.ts index e62eac80e3e..c438b8cbbbc 100644 --- a/src/locales/fr/modifier-type.ts +++ b/src/locales/fr/modifier-type.ts @@ -139,10 +139,10 @@ export const modifierType: ModifierTypeTranslationEntries = { "HYPER_POTION": { name: "Hyper Potion" }, "MAX_POTION": { name: "Potion Max" }, "FULL_RESTORE": { name: "Guérison" }, - + "REVIVE": { name: "Rappel" }, "MAX_REVIVE": { name: "Rappel Max" }, - + "FULL_HEAL": { name: "Total Soin" }, "SACRED_ASH": { name: "Cendres Sacrées" }, @@ -187,12 +187,12 @@ export const modifierType: ModifierTypeTranslationEntries = { "AMULET_COIN": { name: "Pièce Rune", description: "Augmente de 20% les gains d’argent" }, "GOLDEN_PUNCH": { name: "Poing Doré", description: "50% des dégâts infligés sont convertis en argent" }, "COIN_CASE": { name: "Boite Jetons", description: "Tous les 10 combats, recevez 10% de votre argent en intérêts" }, - + "LOCK_CAPSULE": { name: "Poké Écrin", description: "Permet de verrouiller des objets rares si vous relancez les objets proposés" }, "GRIP_CLAW": { name: "Accro Griffe" }, "WIDE_LENS": { name: "Loupe" }, - + "MULTI_LENS": { name: "Multi Loupe" }, "HEALING_CHARM": { name: "Charme Soin", description: "Augmente de 10% l’efficacité des capacités et objets de soin de PV (hors Rappels)" }, @@ -290,7 +290,7 @@ export const modifierType: ModifierTypeTranslationEntries = { "TART_APPLE": "Pomme Acidulée", "STRAWBERRY_SWEET": "Fraise en Sucre", "UNREMARKABLE_TEACUP": "Bol Médiocre", - + "CHIPPED_POT": "Théière Ébréchée", "BLACK_AUGURITE": "Obsidienne", "GALARICA_CUFF": "Bracelet Galanoa", diff --git a/src/locales/fr/trainers.ts b/src/locales/fr/trainers.ts index 9fb7a38f675..c0e99f529c4 100644 --- a/src/locales/fr/trainers.ts +++ b/src/locales/fr/trainers.ts @@ -61,7 +61,7 @@ export const trainerClasses: SimpleTranslationEntries = { "maid": "Gouvernante", "madame": "Mondaine", "medical_team": "Médecins", - "musician": "Musicien", + "musician": "Musicien", "hex_maniac": "Mystimaniac", "nurse": "Infirmière", "nursery_aide": "Institutrice", diff --git a/src/locales/fr/weather.ts b/src/locales/fr/weather.ts index 0f7072210dc..76d56887578 100644 --- a/src/locales/fr/weather.ts +++ b/src/locales/fr/weather.ts @@ -33,7 +33,7 @@ export const weather: SimpleTranslationEntries = { "heavyRainStartMessage": "Une pluie battante s’abat soudainement !", "heavyRainLapseMessage": "La pluie battante continue.", "heavyRainClearMessage": "La pluie battante s’est arrêtée…", - + "harshSunStartMessage": "Les rayons du soleil s’intensifient !", "harshSunLapseMessage": "Les rayons du soleil sont brulants !", "harshSunClearMessage": "Les rayons du soleil s’affaiblissent !", diff --git a/src/locales/it/modifier-type.ts b/src/locales/it/modifier-type.ts index 5f61582259f..c7e4cf3f56a 100644 --- a/src/locales/it/modifier-type.ts +++ b/src/locales/it/modifier-type.ts @@ -139,10 +139,10 @@ export const modifierType: ModifierTypeTranslationEntries = { "HYPER_POTION": { name: "Iperpozione" }, "MAX_POTION": { name: "Pozione Max" }, "FULL_RESTORE": { name: "Ricarica Totale" }, - + "REVIVE": { name: "Revitalizzante" }, "MAX_REVIVE": { name: "Revitalizzante Max" }, - + "FULL_HEAL": { name: "Cura Totale" }, "SACRED_ASH": { name: "Cenere Magica" }, @@ -187,12 +187,12 @@ export const modifierType: ModifierTypeTranslationEntries = { "AMULET_COIN": { name: "Monetamuleto", description: "Aumenta le ricompense in denaro del 20%" }, "GOLDEN_PUNCH": { name: "Pugno Dorato", description: "Garantisce il 50% dei danni inflitti come denaro" }, "COIN_CASE": { name: " Salvadanaio", description: "Dopo ogni 10° battaglia, riceverete il 10% del vostro denaro in interessi" }, - + "LOCK_CAPSULE": { name: "Capsula Scrigno", description: "Permette di bloccare le rarità degli oggetti quando si fa un reroll degli oggetti" }, "GRIP_CLAW": { name: "Presartigli" }, "WIDE_LENS": { name: "Grandelente" }, - + "MULTI_LENS": { name: "Multilente" }, "HEALING_CHARM": { name: "Curamuleto", description: "Aumenta del 10% l'efficacia delle mosse e degli oggetti che ripristinano i PS (escluse le rianimazioni)" }, @@ -290,7 +290,7 @@ export const modifierType: ModifierTypeTranslationEntries = { "TART_APPLE": "Aspropomo", "STRAWBERRY_SWEET": "Bonbonfragola", "UNREMARKABLE_TEACUP": "Tazza dozzinale", - + "CHIPPED_POT": "Teiera crepata", "BLACK_AUGURITE": "Augite nera", "GALARICA_CUFF": "Fascia Galarnoce", diff --git a/src/locales/it/starter-select-ui-handler.ts b/src/locales/it/starter-select-ui-handler.ts index c8e172b89f6..0f3f9df421a 100644 --- a/src/locales/it/starter-select-ui-handler.ts +++ b/src/locales/it/starter-select-ui-handler.ts @@ -22,7 +22,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "nature": "Natura:", "eggMoves": "Mosse delle uova", "start": "Inizia", - "addToParty": "Aggiungi al Gruppo", + "addToParty": "Aggiungi al Gruppo", "toggleIVs": "Vedi/Nascondi IV", "manageMoves": "Gestisci Mosse", "useCandies": "Usa Caramelle", diff --git a/src/locales/it/tutorial.ts b/src/locales/it/tutorial.ts index c4215b68e43..8488fc3151f 100644 --- a/src/locales/it/tutorial.ts +++ b/src/locales/it/tutorial.ts @@ -5,9 +5,9 @@ export const tutorial: SimpleTranslationEntries = { $Questo gioco non è monetizzato e non siamo proprietari di Pokemon e Assets presenti nel gioco. $Il gioco è work-in-progress ma giocabile al 100%.\nPer reportare eventuali bugs è possibile discuterne sul nostro Discord. $Se il game risulta 'lento', assicurati di aver abilitato l'Accelerazione Hardware nelle impostazioni del tuo Browser`, - + "accessMenu": "Per accedere al menù, press M o Esc.\nDal menù puoi cambiare impostazioni, controllare la wiki e accedere a varie features.", - + "menu": `Da questo menù puoi accedere alle impostazioni. $Dalle impostazioni puoi cambiare velocità di gioco, stile di finestra e altre opzioni. $Ci sono varie funzionalità, controlla bene e non perderti nulla!`, diff --git a/src/locales/it/weather.ts b/src/locales/it/weather.ts index ae07570aeb9..3895fcebc46 100644 --- a/src/locales/it/weather.ts +++ b/src/locales/it/weather.ts @@ -33,7 +33,7 @@ export const weather: SimpleTranslationEntries = { "heavyRainStartMessage": "Ha iniziato a piovere forte!", "heavyRainLapseMessage": "La pioggia battente continua.", "heavyRainClearMessage": "La pioggia battente è cessata.", - + "harshSunStartMessage": "La luce solare è molto intensa!", "harshSunLapseMessage": "La luce solare è estremamente calda.", "harshSunClearMessage": "La luce solare si sta attenuando.", diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index 587a5e62fb9..cc847c4e5b4 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -22,7 +22,7 @@ import { berry } from "./berry"; import { voucher } from "./voucher"; -export const ptBrConfig = { +export const ptBrConfig = { ability: ability, abilityTriggers: abilityTriggers, battle: battle, diff --git a/src/locales/pt_BR/modifier-type.ts b/src/locales/pt_BR/modifier-type.ts index 156047079e3..df9c7c4745b 100644 --- a/src/locales/pt_BR/modifier-type.ts +++ b/src/locales/pt_BR/modifier-type.ts @@ -139,10 +139,10 @@ export const modifierType: ModifierTypeTranslationEntries = { "HYPER_POTION": { name: "Hiper Poção" }, "MAX_POTION": { name: "Poção Máxima" }, "FULL_RESTORE": { name: "Restaurador" }, - + "REVIVE": { name: "Reanimador" }, "MAX_REVIVE": { name: "Reanimador Máximo" }, - + "FULL_HEAL": { name: "Cura Total" }, "SACRED_ASH": { name: "Cinza Sagrada" }, @@ -187,12 +187,12 @@ export const modifierType: ModifierTypeTranslationEntries = { "AMULET_COIN": { name: "Moeda Amuleto", description: "Aumenta a recompensa de dinheiro em 50%" }, "GOLDEN_PUNCH": { name: "Soco Dourado", description: "Concede 50% do dano causado em dinheiro" }, "COIN_CASE": { name: "Moedeira", description: "Após cada 10ª batalha, recebe 10% de seu dinheiro em juros" }, - + "LOCK_CAPSULE": { name: "Cápsula de Travamento", description: "Permite que você trave raridades de itens ao rolar novamente" }, "GRIP_CLAW": { name: "Garra-Aperto" }, "WIDE_LENS": { name: "Lente Ampla" }, - + "MULTI_LENS": { name: "Multi Lentes" }, "HEALING_CHARM": { name: "Amuleto de Cura", description: "Aumenta a eficácia dos movimentos e itens que restauram PS em 10% (exceto Reanimador)" }, @@ -290,7 +290,7 @@ export const modifierType: ModifierTypeTranslationEntries = { "TART_APPLE": "Maçã Azeda", "STRAWBERRY_SWEET": "Doce de Morango", "UNREMARKABLE_TEACUP": "Xícara Comum", - + "CHIPPED_POT": "Pote Lascado", "BLACK_AUGURITE": "Mineral Negro", "GALARICA_CUFF": "Bracelete de Galar", diff --git a/src/locales/pt_BR/trainers.ts b/src/locales/pt_BR/trainers.ts index add49fcb072..13a165876e3 100644 --- a/src/locales/pt_BR/trainers.ts +++ b/src/locales/pt_BR/trainers.ts @@ -61,7 +61,7 @@ export const trainerClasses: SimpleTranslationEntries = { "maid": "Doméstica", "madame": "Madame", "medical_team": "Equipe Médica", - "musician": "Músico", + "musician": "Músico", "hex_maniac": "Ocultista", "nurse": "Enfermeira", "nursery_aide": "Professora do Berçário", diff --git a/src/locales/pt_BR/weather.ts b/src/locales/pt_BR/weather.ts index 31027a691c3..269ba0e3726 100644 --- a/src/locales/pt_BR/weather.ts +++ b/src/locales/pt_BR/weather.ts @@ -33,7 +33,7 @@ export const weather: SimpleTranslationEntries = { "heavyRainStartMessage": "Um temporal começou!", "heavyRainLapseMessage": "O temporal continua forte.", "heavyRainClearMessage": "O temporal parou.", - + "harshSunStartMessage": "A luz do sol está escaldante!", "harshSunLapseMessage": "A luz do sol é intensa.", "harshSunClearMessage": "A luz do sol enfraqueceu.", diff --git a/src/locales/zh_CN/battle.ts b/src/locales/zh_CN/battle.ts index 3fbe95d39c4..0bd86bcc6d5 100644 --- a/src/locales/zh_CN/battle.ts +++ b/src/locales/zh_CN/battle.ts @@ -22,7 +22,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "效果拔群!", "hitResultNotVeryEffective": "收效甚微…", "hitResultNoEffect": "对 {{pokemonName}} 没有效果!!", - "hitResultOneHitKO": "一击必杀!", + "hitResultOneHitKO": "一击必杀!", "attackFailed": "但是失败了!", "attackHitsCount": "击中 {{count}} 次!", "expGain": "{{pokemonName}} 获得了 {{exp}} 经验值!", diff --git a/src/locales/zh_CN/modifier-type.ts b/src/locales/zh_CN/modifier-type.ts index 9103b291ad4..8d29fa599e8 100644 --- a/src/locales/zh_CN/modifier-type.ts +++ b/src/locales/zh_CN/modifier-type.ts @@ -139,10 +139,10 @@ export const modifierType: ModifierTypeTranslationEntries = { "HYPER_POTION": { name: "厉害伤药" }, "MAX_POTION": { name: "全满药" }, "FULL_RESTORE": { name: "全复药" }, - + "REVIVE": { name: "活力碎片" }, "MAX_REVIVE": { name: "活力块" }, - + "FULL_HEAL": { name: "万灵药" }, "SACRED_ASH": { name: "圣灰" }, @@ -187,12 +187,12 @@ export const modifierType: ModifierTypeTranslationEntries = { "AMULET_COIN": { name: "护符金币", description: "金钱奖励增加20%" }, "GOLDEN_PUNCH": { name: "黄金拳头", description: "将50%造成的伤害转换为金钱" }, "COIN_CASE": { name: "代币盒", description: "每十场战斗, 获得自己金钱10%的利息" }, - + "LOCK_CAPSULE": { name: "上锁的容器", description: "允许在刷新物品时锁定物品稀有度" }, "GRIP_CLAW": { name: "紧缠钩爪" }, "WIDE_LENS": { name: "广角镜" }, - + "MULTI_LENS": { name: "多重镜" }, "HEALING_CHARM": { name: "治愈护符", description: "HP回复量增加10% (含复活)" }, @@ -290,7 +290,7 @@ export const modifierType: ModifierTypeTranslationEntries = { "TART_APPLE": "酸酸苹果", "STRAWBERRY_SWEET": "草莓糖饰", "UNREMARKABLE_TEACUP": "凡作茶碗", - + "CHIPPED_POT": "缺损的茶壶", "BLACK_AUGURITE": "黑奇石", "GALARICA_CUFF": "伽勒豆蔻手环", diff --git a/src/locales/zh_CN/starter-select-ui-handler.ts b/src/locales/zh_CN/starter-select-ui-handler.ts index a4e511038f6..9491438bb13 100644 --- a/src/locales/zh_CN/starter-select-ui-handler.ts +++ b/src/locales/zh_CN/starter-select-ui-handler.ts @@ -22,7 +22,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "nature": "性格:", "eggMoves": "蛋招式", "start": "开始", - "addToParty": "加入队伍", + "addToParty": "加入队伍", "toggleIVs": "切换个体值", "manageMoves": "管理招式", "useCandies": "使用糖果", diff --git a/src/locales/zh_CN/tutorial.ts b/src/locales/zh_CN/tutorial.ts index 65fb8cd1d06..2ddd6013fff 100644 --- a/src/locales/zh_CN/tutorial.ts +++ b/src/locales/zh_CN/tutorial.ts @@ -6,9 +6,9 @@ export const tutorial: SimpleTranslationEntries = { $权资产的所有权。 $游戏仍在开发中,但已可完整游玩。如需报\n告错误,请使用 Discord 社区。 $如果游戏运行缓慢,请确保在浏览器设置中\n打开了“硬件加速”。`, - + "accessMenu": "在等待输入时,按 M 或 Escape 键可访\n问菜单。菜单包含设置和各种功能。", - + "menu": `在此菜单中,您可以访问设置。 $在设置中,您可以更改游戏速度、窗口样式\n和其他选项。 $这里还有各种其他功能,请务必全部查看!`, diff --git a/src/locales/zh_TW/config.ts b/src/locales/zh_TW/config.ts index 05bc59d0141..7dccc07d50e 100644 --- a/src/locales/zh_TW/config.ts +++ b/src/locales/zh_TW/config.ts @@ -22,7 +22,7 @@ import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { voucher } from "./voucher"; -export const zhTWConfig = { +export const zhTWConfig = { ability: ability, abilityTriggers: abilityTriggers, battle: battle, diff --git a/src/locales/zh_TW/move.ts b/src/locales/zh_TW/move.ts index 80604445e9d..5109802a9a5 100644 --- a/src/locales/zh_TW/move.ts +++ b/src/locales/zh_TW/move.ts @@ -1511,8 +1511,8 @@ export const move: MoveTranslationEntries = { name: "暗襲要害", effect: "抓住瞬間的空隙切斬對手。\n容易擊中要害", }, - aquaTail: { - name: "水流尾", effect: "如驚濤駭浪般揮動大尾巴攻\n擊對手" + aquaTail: { + name: "水流尾", effect: "如驚濤駭浪般揮動大尾巴攻\n擊對手" }, seedBomb: { name: "種子炸彈", @@ -1538,8 +1538,8 @@ export const move: MoveTranslationEntries = { name: "龍之俯衝", effect: "釋放出駭人的殺氣,一邊威\n懾一邊撞擊對手。有時會使\n對手畏縮", }, - powerGem: { - name: "力量寶石", effect: "發射如寶石般閃耀的光芒攻\n擊對手" + powerGem: { + name: "力量寶石", effect: "發射如寶石般閃耀的光芒攻\n擊對手" }, drainPunch: { name: "吸取拳", @@ -1853,8 +1853,8 @@ export const move: MoveTranslationEntries = { name: "電球", effect: "用電氣團撞向對手。自己比\n對手速度越快,威力越大", }, - soak: { - name: "浸水", effect: "將大量的水潑向對手,從而\n使其變成水屬性" + soak: { + name: "浸水", effect: "將大量的水潑向對手,從而\n使其變成水屬性" }, flameCharge: { name: "蓄能焰襲", @@ -1948,8 +1948,8 @@ export const move: MoveTranslationEntries = { name: "燒淨", effect: "用火焰攻擊對手。對手攜帶\n樹果等時,會燒掉,使其不\n能使用", }, - quash: { - name: "延後", effect: "壓制對手,從而將其行動順\n序放到最後" + quash: { + name: "延後", effect: "壓制對手,從而將其行動順\n序放到最後" }, acrobatics: { name: "雜技", @@ -2007,8 +2007,8 @@ export const move: MoveTranslationEntries = { name: "龍尾", effect: "彈飛對手,強制拉後備寶可\n夢上場。如果對手爲野生寶\n可夢,戰鬥將直接結束", }, - workUp: { - name: "自我激勵", effect: "激勵自己,從而提高攻擊和\n特攻" + workUp: { + name: "自我激勵", effect: "激勵自己,從而提高攻擊和\n特攻" }, electroweb: { name: "電網", @@ -2238,8 +2238,8 @@ export const move: MoveTranslationEntries = { name: "嬉鬧", effect: "與對手嬉鬧並攻擊。有時會\n降低對手的攻擊", }, - fairyWind: { - name: "妖精之風", effect: "颳起妖精之風,吹向對手進\n行攻擊" + fairyWind: { + name: "妖精之風", effect: "颳起妖精之風,吹向對手進\n行攻擊" }, moonblast: { name: "月亮之力", diff --git a/src/locales/zh_TW/pokemon-info.ts b/src/locales/zh_TW/pokemon-info.ts index 0229525b75a..5c00add8081 100644 --- a/src/locales/zh_TW/pokemon-info.ts +++ b/src/locales/zh_TW/pokemon-info.ts @@ -17,25 +17,25 @@ export const pokemonInfo: PokemonInfoTranslationEntries = { }, Type: { - "UNKNOWN": "未知", - "NORMAL": "一般", - "FIGHTING": "格鬥", - "FLYING": "飛行", - "POISON": "毒", - "GROUND": "地面", - "ROCK": "岩石", - "BUG": "蟲", - "GHOST": "幽靈", - "STEEL": "鋼", - "FIRE": "火", - "WATER": "水", - "GRASS": "草", - "ELECTRIC": "電", - "PSYCHIC": "超能力", - "ICE": "冰", - "DRAGON": "龍", - "DARK": "惡", - "FAIRY": "妖精", + "UNKNOWN": "未知", + "NORMAL": "一般", + "FIGHTING": "格鬥", + "FLYING": "飛行", + "POISON": "毒", + "GROUND": "地面", + "ROCK": "岩石", + "BUG": "蟲", + "GHOST": "幽靈", + "STEEL": "鋼", + "FIRE": "火", + "WATER": "水", + "GRASS": "草", + "ELECTRIC": "電", + "PSYCHIC": "超能力", + "ICE": "冰", + "DRAGON": "龍", + "DARK": "惡", + "FAIRY": "妖精", "STELLAR": "星晶" }, } as const; diff --git a/src/locales/zh_TW/starter-select-ui-handler.ts b/src/locales/zh_TW/starter-select-ui-handler.ts index f9fa9ef5333..f7139a54189 100644 --- a/src/locales/zh_TW/starter-select-ui-handler.ts +++ b/src/locales/zh_TW/starter-select-ui-handler.ts @@ -22,7 +22,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "nature": "性格:", "eggMoves": "孵化招式", "start": "開始", - "addToParty": "加入隊伍", + "addToParty": "加入隊伍", "toggleIVs": "查看個體值", "manageMoves": "管理技能", "useCandies": "使用糖果", diff --git a/src/locales/zh_TW/tutorial.ts b/src/locales/zh_TW/tutorial.ts index 7f2cb43801a..a97314abec8 100644 --- a/src/locales/zh_TW/tutorial.ts +++ b/src/locales/zh_TW/tutorial.ts @@ -5,26 +5,26 @@ export const tutorial: SimpleTranslationEntries = { $本遊戲未進行商業化,我們沒有\nPokémon或Pokémon使用的版 $權資產的所有權。 $遊戲仍在開發中,但已可完整遊玩。如需報\n告錯誤,請使用 Discord 社區。 - $如果遊戲運行緩慢,請確保在瀏覽器設置中\n打開了“硬件加速”。`, + $如果遊戲運行緩慢,請確保在瀏覽器設置中\n打開了“硬件加速”。`, - "accessMenu": "在等待輸入時,按 M 或 Escape 鍵可訪\n問菜單。菜單包含設置和各種功能。", + "accessMenu": "在等待輸入時,按 M 或 Escape 鍵可訪\n問菜單。菜單包含設置和各種功能。", "menu": `在此菜單中,您可以訪問設置。 $在設置中,您可以更改遊戲速度、窗口樣式\n和其他選項。 - $這裏還有各種其他功能,請務必全部查看!`, + $這裏還有各種其他功能,請務必全部查看!`, "starterSelect": `在此頁面中,您可以選擇您的初始寶可夢。\n這些是您最初的隊伍成員。 $每個初始寶可夢都有一個費用值。您的隊伍\n最多可以擁有6名成員,只要總費用不超過10。 $您還可以根據您捕獲或孵化的變種選擇性別\n、特性和形態。 - $一個物種個體值是您捕獲或孵化的所有寶可\n夢中最好的,所以儘量獲得更多同種寶可夢!`, + $一個物種個體值是您捕獲或孵化的所有寶可\n夢中最好的,所以儘量獲得更多同種寶可夢!`, "pokerus": `每天隨機3個可選的初始寶可夢會有紫色邊\n框。 $如果您看到您擁有的初始寶可夢帶有紫色邊\n框,請嘗試將其添加到您的隊伍中。請務必 - $查看其概況!`, + $查看其概況!`, "statChange": `只要您的寶可夢沒有被召回,屬性變化就會\n在戰鬥中持續存在。 $在訓練家戰鬥之前和進入新的寶可夢羣落之\n前,您的寶可夢會被召回。 - $您還可以通過按住C或Shift鍵來查看\n場上寶可夢的能力變化。`, + $您還可以通過按住C或Shift鍵來查看\n場上寶可夢的能力變化。`, "selectItem": `每次戰鬥後,您都可以選擇 3 個隨機物品。\n您只能選擇其中一個。 $這些物品包括消耗品、寶可夢攜帶物品和永\n久被動道具。 @@ -33,8 +33,8 @@ export const tutorial: SimpleTranslationEntries = { $您還可以使用轉移選項在寶可夢之間轉移攜\n帶物品。 $一旦您獲得了攜帶物品,轉移選項就會出現\n在右下角。 $您可以用金錢購買消耗品,並且隨着您遊戲\n的深入,將會有更多種類的消耗品可供選擇。 - $請務必在選擇隨機物品之前購買這些消耗品\n因爲一旦您選擇,遊戲就會進入下一場戰鬥。`, - + $請務必在選擇隨機物品之前購買這些消耗品\n因爲一旦您選擇,遊戲就會進入下一場戰鬥。`, + "eggGacha": `在此頁面中,您可以使用您的兌換券兌換寶\n可夢蛋。 $蛋需要孵化,並且在每場戰鬥後都會減少孵\n化週期。稀有蛋需要更長時間才能孵化。 $孵化的寶可夢不會被添加到您的隊伍中,它\n們將被添加到您的初始寶可夢中。 diff --git a/src/locales/zh_TW/weather.ts b/src/locales/zh_TW/weather.ts index 144f333874e..0a235b3b10c 100644 --- a/src/locales/zh_TW/weather.ts +++ b/src/locales/zh_TW/weather.ts @@ -33,7 +33,7 @@ export const weather: SimpleTranslationEntries = { "heavyRainStartMessage": "開始下起了暴雨!", "heavyRainLapseMessage": "暴雨勢頭不減。", "heavyRainClearMessage": "暴雨停了。", - + "harshSunStartMessage": "日照變得非常強了!", "harshSunLapseMessage": "強日照勢頭不減。", "harshSunClearMessage": "日照復原了。", diff --git a/src/main.ts b/src/main.ts index e9b911b0e05..c92c8eeca5b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -20,7 +20,7 @@ window.onerror = function (message, source, lineno, colno, error) { }; // Catch global promise rejections and display them in an alert so users can report the issue. -window.addEventListener("unhandledrejection", (event) => { +window.addEventListener("unhandledrejection", (event) => { // const errorString = `Received unhandled promise rejection. Open browser console and click OK to see details.\nReason: ${event.reason}`; console.error(event.reason); //alert(errorString); diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 51e6c25122c..ff4ef6a37a3 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -450,7 +450,7 @@ export class BerryModifierType extends PokemonHeldItemModifierType implements Ge constructor(berryType: BerryType) { super("", `${BerryType[berryType].toLowerCase()}_berry`, (type, args) => new Modifiers.BerryModifier(type, (args[0] as Pokemon).id, berryType), "berry"); - + this.berryType = berryType; } @@ -653,7 +653,7 @@ export class PokemonExpBoosterModifierType extends PokemonHeldItemModifierType { constructor(localeKey: string, iconImage: string, boostPercent: integer) { super(localeKey, iconImage, (_type, args) => new Modifiers.PokemonExpBoosterModifier(this, (args[0] as Pokemon).id, boostPercent)); - + this.boostPercent = boostPercent; } @@ -742,7 +742,7 @@ export class EvolutionItemModifierType extends PokemonModifierType implements Ge this.evolutionItem = evolutionItem; } - + get name(): string { return i18next.t(`modifierType:EvolutionItem.${EvolutionItem[this.evolutionItem]}`); } @@ -834,7 +834,7 @@ class AttackTypeBoosterModifierTypeGenerator extends ModifierTypeGenerator { } let type: Type; - + const randInt = Utils.randSeedInt(totalWeight); let weight = 0; @@ -846,7 +846,7 @@ class AttackTypeBoosterModifierTypeGenerator extends ModifierTypeGenerator { } weight += typeWeight; } - + return new AttackTypeBoosterModifierType(type, 20); }); } @@ -1041,7 +1041,7 @@ export const modifierTypes = { HYPER_POTION: () => new PokemonHpRestoreModifierType("modifierType:ModifierType.HYPER_POTION", "hyper_potion", 200, 50), MAX_POTION: () => new PokemonHpRestoreModifierType("modifierType:ModifierType.MAX_POTION", "max_potion", 0, 100), FULL_RESTORE: () => new PokemonHpRestoreModifierType("modifierType:ModifierType.FULL_RESTORE", "full_restore", 0, 100, true), - + REVIVE: () => new PokemonReviveModifierType("modifierType:ModifierType.REVIVE", "revive", 50), MAX_REVIVE: () => new PokemonReviveModifierType("modifierType:ModifierType.MAX_REVIVE", "max_revive", 100), @@ -1192,7 +1192,7 @@ export const modifierTypes = { DNA_SPLICERS: () => new FusePokemonModifierType("modifierType:ModifierType.DNA_SPLICERS", "dna_splicers"), MINI_BLACK_HOLE: () => new TurnHeldItemTransferModifierType("modifierType:ModifierType.MINI_BLACK_HOLE", "mini_black_hole"), - + VOUCHER: () => new AddVoucherModifierType(VoucherType.REGULAR, 1), VOUCHER_PLUS: () => new AddVoucherModifierType(VoucherType.PLUS, 1), VOUCHER_PREMIUM: () => new AddVoucherModifierType(VoucherType.PREMIUM, 1), @@ -1242,7 +1242,7 @@ const modifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.BERRY, 2), new WeightedModifierType(modifierTypes.TM_COMMON, 1), ].map(m => { - m.setTier(ModifierTier.COMMON); return m; + m.setTier(ModifierTier.COMMON); return m; }), [ModifierTier.GREAT]: [ new WeightedModifierType(modifierTypes.GREAT_BALL, 6), @@ -1301,7 +1301,7 @@ const modifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.TERA_SHARD, 1), new WeightedModifierType(modifierTypes.DNA_SPLICERS, (party: Pokemon[]) => party[0].scene.gameMode.isSplicedOnly && party.filter(p => !p.fusionSpecies).length > 1 ? 4 : 0), ].map(m => { - m.setTier(ModifierTier.GREAT); return m; + m.setTier(ModifierTier.GREAT); return m; }), [ModifierTier.ULTRA]: [ new WeightedModifierType(modifierTypes.ULTRA_BALL, 24), @@ -1325,7 +1325,7 @@ const modifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.TERA_ORB, (party: Pokemon[]) => Math.min(Math.max(Math.floor(party[0].scene.currentBattle.waveIndex / 50) * 2, 1), 4), 4), new WeightedModifierType(modifierTypes.VOUCHER, (party: Pokemon[], rerollCount: integer) => !party[0].scene.gameMode.isDaily ? Math.max(3 - rerollCount, 0) : 0, 3), ].map(m => { - m.setTier(ModifierTier.ULTRA); return m; + m.setTier(ModifierTier.ULTRA); return m; }), [ModifierTier.ROGUE]: [ new WeightedModifierType(modifierTypes.ROGUE_BALL, 24), @@ -1349,7 +1349,7 @@ const modifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.MEGA_BRACELET, (party: Pokemon[]) => Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 50), 4) * 8, 32), new WeightedModifierType(modifierTypes.DYNAMAX_BAND, (party: Pokemon[]) => Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 50), 4) * 8, 32), ].map(m => { - m.setTier(ModifierTier.ROGUE); return m; + m.setTier(ModifierTier.ROGUE); return m; }), [ModifierTier.MASTER]: [ new WeightedModifierType(modifierTypes.MASTER_BALL, 24), @@ -1360,7 +1360,7 @@ const modifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.DNA_SPLICERS, (party: Pokemon[]) => !party[0].scene.gameMode.isSplicedOnly && party.filter(p => !p.fusionSpecies).length > 1 ? 24 : 0, 24), new WeightedModifierType(modifierTypes.MINI_BLACK_HOLE, (party: Pokemon[]) => party[0].scene.gameData.unlocks[Unlockables.MINI_BLACK_HOLE] ? 1 : 0, 1), ].map(m => { - m.setTier(ModifierTier.MASTER); return m; + m.setTier(ModifierTier.MASTER); return m; }) }; @@ -1368,27 +1368,27 @@ const wildModifierPool: ModifierPool = { [ModifierTier.COMMON]: [ new WeightedModifierType(modifierTypes.BERRY, 1) ].map(m => { - m.setTier(ModifierTier.COMMON); return m; + m.setTier(ModifierTier.COMMON); return m; }), [ModifierTier.GREAT]: [ new WeightedModifierType(modifierTypes.BASE_STAT_BOOSTER, 1) ].map(m => { - m.setTier(ModifierTier.GREAT); return m; + m.setTier(ModifierTier.GREAT); return m; }), [ModifierTier.ULTRA]: [ new WeightedModifierType(modifierTypes.ATTACK_TYPE_BOOSTER, 10), ].map(m => { - m.setTier(ModifierTier.ULTRA); return m; + m.setTier(ModifierTier.ULTRA); return m; }), [ModifierTier.ROGUE]: [ new WeightedModifierType(modifierTypes.LUCKY_EGG, 4), ].map(m => { - m.setTier(ModifierTier.ROGUE); return m; + m.setTier(ModifierTier.ROGUE); return m; }), [ModifierTier.MASTER]: [ new WeightedModifierType(modifierTypes.GOLDEN_EGG, 1) ].map(m => { - m.setTier(ModifierTier.MASTER); return m; + m.setTier(ModifierTier.MASTER); return m; }) }; @@ -1397,17 +1397,17 @@ const trainerModifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.BERRY, 8), new WeightedModifierType(modifierTypes.BASE_STAT_BOOSTER, 3) ].map(m => { - m.setTier(ModifierTier.COMMON); return m; + m.setTier(ModifierTier.COMMON); return m; }), [ModifierTier.GREAT]: [ new WeightedModifierType(modifierTypes.BASE_STAT_BOOSTER, 3), ].map(m => { - m.setTier(ModifierTier.GREAT); return m; + m.setTier(ModifierTier.GREAT); return m; }), [ModifierTier.ULTRA]: [ new WeightedModifierType(modifierTypes.ATTACK_TYPE_BOOSTER, 1), ].map(m => { - m.setTier(ModifierTier.ULTRA); return m; + m.setTier(ModifierTier.ULTRA); return m; }), [ModifierTier.ROGUE]: [ new WeightedModifierType(modifierTypes.REVIVER_SEED, 2), @@ -1417,14 +1417,14 @@ const trainerModifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.GRIP_CLAW, 1), new WeightedModifierType(modifierTypes.WIDE_LENS, 1), ].map(m => { - m.setTier(ModifierTier.ROGUE); return m; + m.setTier(ModifierTier.ROGUE); return m; }), [ModifierTier.MASTER]: [ new WeightedModifierType(modifierTypes.KINGS_ROCK, 1), new WeightedModifierType(modifierTypes.LEFTOVERS, 1), new WeightedModifierType(modifierTypes.SHELL_BELL, 1), ].map(m => { - m.setTier(ModifierTier.MASTER); return m; + m.setTier(ModifierTier.MASTER); return m; }) }; @@ -1441,7 +1441,7 @@ const enemyBuffModifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.ENEMY_ENDURE_CHANCE, 5), new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 1) ].map(m => { - m.setTier(ModifierTier.COMMON); return m; + m.setTier(ModifierTier.COMMON); return m; }), [ModifierTier.GREAT]: [ new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_BOOSTER, 5), @@ -1450,7 +1450,7 @@ const enemyBuffModifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.ENEMY_ENDURE_CHANCE, 5), new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 1) ].map(m => { - m.setTier(ModifierTier.GREAT); return m; + m.setTier(ModifierTier.GREAT); return m; }), [ModifierTier.ULTRA]: [ new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_BOOSTER, 10), @@ -1460,13 +1460,13 @@ const enemyBuffModifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.ENEMY_ENDURE_CHANCE, 10), new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 5) ].map(m => { - m.setTier(ModifierTier.ULTRA); return m; + m.setTier(ModifierTier.ULTRA); return m; }), [ModifierTier.ROGUE]: [ ].map(m => { - m.setTier(ModifierTier.ROGUE); return m; + m.setTier(ModifierTier.ROGUE); return m; }), [ModifierTier.MASTER]: [ ].map(m => { - m.setTier(ModifierTier.MASTER); return m; + m.setTier(ModifierTier.MASTER); return m; }) }; @@ -1475,12 +1475,12 @@ const dailyStarterModifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.BASE_STAT_BOOSTER, 1), new WeightedModifierType(modifierTypes.BERRY, 3), ].map(m => { - m.setTier(ModifierTier.COMMON); return m; + m.setTier(ModifierTier.COMMON); return m; }), [ModifierTier.GREAT]: [ new WeightedModifierType(modifierTypes.ATTACK_TYPE_BOOSTER, 5), ].map(m => { - m.setTier(ModifierTier.GREAT); return m; + m.setTier(ModifierTier.GREAT); return m; }), [ModifierTier.ULTRA]: [ new WeightedModifierType(modifierTypes.REVIVER_SEED, 4), @@ -1488,7 +1488,7 @@ const dailyStarterModifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.SOUL_DEW, 1), new WeightedModifierType(modifierTypes.GOLDEN_PUNCH, 1), ].map(m => { - m.setTier(ModifierTier.ULTRA); return m; + m.setTier(ModifierTier.ULTRA); return m; }), [ModifierTier.ROGUE]: [ new WeightedModifierType(modifierTypes.GRIP_CLAW, 5), @@ -1497,13 +1497,13 @@ const dailyStarterModifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.QUICK_CLAW, 3), new WeightedModifierType(modifierTypes.KINGS_ROCK, 3), ].map(m => { - m.setTier(ModifierTier.ROGUE); return m; + m.setTier(ModifierTier.ROGUE); return m; }), [ModifierTier.MASTER]: [ new WeightedModifierType(modifierTypes.LEFTOVERS, 1), new WeightedModifierType(modifierTypes.SHELL_BELL, 1), ].map(m => { - m.setTier(ModifierTier.MASTER); return m; + m.setTier(ModifierTier.MASTER); return m; }) }; @@ -1553,7 +1553,7 @@ const tierWeights = [ 769 / 1024, 192 / 1024, 48 / 1024, 12 / 1024, 1 / 1024 ]; export function regenerateModifierPoolThresholds(party: Pokemon[], poolType: ModifierPoolType, rerollCount: integer = 0) { const pool = getModifierPoolForType(poolType); - + const ignoredIndexes = {}; const modifierTableData = {}; const thresholds = Object.fromEntries(new Map(Object.keys(pool).map(t => { @@ -1801,7 +1801,7 @@ function getNewModifierTypeOption(party: Pokemon[], poolType: ModifierPoolType, if (index === undefined) { return null; } - + if (player) { console.log(index, ignoredPoolIndexes[tier].filter(i => i <= index).length, ignoredPoolIndexes[tier]); } diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index b49a3a11a12..233a5294849 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -364,7 +364,7 @@ export class MapModifier extends PersistentModifier { constructor(type: ModifierType, stackCount?: integer) { super(type, stackCount); } - + clone(): MapModifier { return new MapModifier(this.type, this.stackCount); } @@ -382,7 +382,7 @@ export class MegaEvolutionAccessModifier extends PersistentModifier { constructor(type: ModifierType, stackCount?: integer) { super(type, stackCount); } - + clone(): MegaEvolutionAccessModifier { return new MegaEvolutionAccessModifier(this.type, this.stackCount); } @@ -400,7 +400,7 @@ export class GigantamaxAccessModifier extends PersistentModifier { constructor(type: ModifierType, stackCount?: integer) { super(type, stackCount); } - + clone(): GigantamaxAccessModifier { return new GigantamaxAccessModifier(this.type, this.stackCount); } @@ -418,7 +418,7 @@ export class TerastallizeAccessModifier extends PersistentModifier { constructor(type: ModifierType, stackCount?: integer) { super(type, stackCount); } - + clone(): TerastallizeAccessModifier { return new TerastallizeAccessModifier(this.type, this.stackCount); } @@ -596,7 +596,7 @@ export class TerastallizeModifier extends LapsingPokemonHeldItemModifier { } return ret; } - + getTransferrable(withinParty: boolean): boolean { return false; } @@ -692,7 +692,7 @@ export class AttackTypeBoosterModifier extends PokemonHeldItemModifier { } /** - * @param {Array} args Array + * @param {Array} args Array * - Index 0: {Pokemon} Pokemon * - Index 1: {number} Move type * - Index 2: {Utils.NumberHolder} Move power @@ -1062,7 +1062,7 @@ export class PokemonHpRestoreModifier extends ConsumablePokemonModifier { pokemon.resetStatus(); } pokemon.hp = Math.min(pokemon.hp + Math.max(Math.ceil(Math.max(Math.floor((this.restorePercent * 0.01) * pokemon.getMaxHp()), restorePoints)), 1), pokemon.getMaxHp()); - + return true; } @@ -1466,7 +1466,7 @@ export class PokemonFriendshipBoosterModifier extends PokemonHeldItemModifier { clone(): PersistentModifier { return new PokemonFriendshipBoosterModifier(this.type as ModifierTypes.PokemonFriendshipBoosterModifierType, this.pokemonId, this.stackCount); } - + apply(args: any[]): boolean { const friendship = args[1] as Utils.IntegerHolder; friendship.value = Math.floor(friendship.value * (1 + 0.5 * this.getStackCount())); @@ -1491,7 +1491,7 @@ export class PokemonNatureWeightModifier extends PokemonHeldItemModifier { clone(): PersistentModifier { return new PokemonNatureWeightModifier(this.type, this.pokemonId, this.stackCount); } - + apply(args: any[]): boolean { const multiplier = args[1] as Utils.IntegerHolder; if (multiplier.value !== 1) { @@ -1559,7 +1559,7 @@ export class PokemonMultiHitModifier extends PokemonHeldItemModifier { clone(): PersistentModifier { return new PokemonMultiHitModifier(this.type as ModifierTypes.PokemonMultiHitModifierType, this.pokemonId, this.stackCount); } - + apply(args: any[]): boolean { (args[1] as Utils.IntegerHolder).value *= (this.getStackCount() + 1); @@ -1648,7 +1648,7 @@ export class MoneyRewardModifier extends ConsumableModifier { const moneyAmount = new Utils.IntegerHolder(scene.getWaveMoneyAmount(this.moneyMultiplier)); scene.applyModifiers(MoneyMultiplierModifier, true, moneyAmount); - + scene.addMoney(moneyAmount.value); return true; @@ -1856,7 +1856,7 @@ export abstract class HeldItemTransferModifier extends PokemonHeldItemModifier { let tierItemModifiers = itemModifiers.filter(m => m.type.getOrInferTier(poolType) === highestItemTier); const heldItemTransferPromises: Promise[] = []; - + for (let i = 0; i < transferredItemCount; i++) { if (!tierItemModifiers.length) { while (highestItemTier-- && !tierItemModifiers.length) { @@ -2210,7 +2210,7 @@ export class EnemyEndureChanceModifier extends EnemyPersistentModifier { if (target.battleData.endured || Phaser.Math.RND.realInRange(0, 1) >= (this.chance * this.getStackCount())) { return false; } - + target.addTag(BattlerTagType.ENDURING, 1); target.battleData.endured = true; diff --git a/src/overrides.ts b/src/overrides.ts index aab8bd16c4d..517da5a5353 100644 --- a/src/overrides.ts +++ b/src/overrides.ts @@ -77,8 +77,8 @@ export const OPP_VARIANT_OVERRIDE: Variant = 0; * if count is not provided, it will default to 1 * @example Modifier Override [{name: "EXP_SHARE", count: 2}] * @example Held Item Override [{name: "LUCKY_EGG"}] - * - * Some items are generated based on a sub-type (i.e. berries), to override those: + * + * Some items are generated based on a sub-type (i.e. berries), to override those: * @example [{name: "BERRY", count: 5, type: BerryType.SITRUS}] * types are listed in interface below * - TempBattleStat is for TEMP_STAT_BOOSTER / X Items (Dire hit is separate) @@ -92,8 +92,8 @@ interface ModifierOverride { count?: integer type?: TempBattleStat|Stat|Nature|Type|BerryType } -export const STARTING_MODIFIER_OVERRIDE: Array = []; -export const OPP_MODIFIER_OVERRIDE: Array = []; +export const STARTING_MODIFIER_OVERRIDE: Array = []; +export const OPP_MODIFIER_OVERRIDE: Array = []; -export const STARTING_HELD_ITEMS_OVERRIDE: Array = []; -export const OPP_HELD_ITEMS_OVERRIDE: Array = []; +export const STARTING_HELD_ITEMS_OVERRIDE: Array = []; +export const OPP_HELD_ITEMS_OVERRIDE: Array = []; diff --git a/src/phases.ts b/src/phases.ts index 0a7a5527545..a82d7865b02 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -86,13 +86,13 @@ export class LoginPhase extends Phase { if (this.showText) { this.scene.ui.showText(i18next.t("menu:logInOrCreateAccount")); } - + this.scene.playSound("menu_open"); const loadData = () => { updateUserInfo().then(() => this.scene.gameData.loadSystem().then(() => this.end())); }; - + this.scene.ui.setMode(Mode.LOGIN_FORM, { buttonActions: [ () => { @@ -138,7 +138,7 @@ export class LoginPhase extends Phase { if (!this.scene.gameData.gender) { this.scene.unshiftPhase(new SelectGenderPhase(this.scene)); } - + handleTutorial(this.scene, Tutorial.Intro).then(() => super.end()); } } @@ -319,7 +319,7 @@ export class TitlePhase extends Phase { party.push(starterPokemon); loadPokemonAssets.push(starterPokemon.loadAssets()); } - + regenerateModifierPoolThresholds(party, ModifierPoolType.DAILY_STARTER); const modifiers: Modifier[] = Array(3).fill(null).map(() => modifierTypes.EXP_SHARE().withIdFromFunc(modifierTypes.EXP_SHARE).newModifier()) .concat(Array(3).fill(null).map(() => modifierTypes.GOLDEN_EXP_CHARM().withIdFromFunc(modifierTypes.GOLDEN_EXP_CHARM).newModifier())) @@ -341,7 +341,7 @@ export class TitlePhase extends Phase { this.end(); }); }; - + // If Online, calls seed fetch from db to generate daily run. If Offline, generates a daily run based on current date. if (!Utils.isLocal) { fetchDailyRunSeed().then(seed => { @@ -457,7 +457,7 @@ export class SelectGenderPhase extends Phase { constructor(scene: BattleScene) { super(scene); } - + start(): void { super.start(); @@ -771,11 +771,11 @@ export class EncounterPhase extends BattlePhase { enemyPokemon.updateScale(); } } - + totalBst += enemyPokemon.getSpeciesForm().baseTotal; loadEnemyAssets.push(enemyPokemon.loadAssets()); - + console.log(enemyPokemon.name, enemyPokemon.species.speciesId, enemyPokemon.stats); }); @@ -915,7 +915,7 @@ export class EncounterPhase extends BattlePhase { const trainer = this.scene.currentBattle.trainer; trainer.untint(100, "Sine.easeOut"); trainer.playAnim(); - + const doSummon = () => { this.scene.currentBattle.started = true; this.scene.playBgm(undefined); @@ -936,7 +936,7 @@ export class EncounterPhase extends BattlePhase { doTrainerSummon(); } }; - + const encounterMessages = this.scene.currentBattle.trainer.getEncounterMessages(); if (!encounterMessages?.length) { @@ -999,7 +999,7 @@ export class EncounterPhase extends BattlePhase { } this.scene.pushPhase(new ToggleDoublePositionPhase(this.scene, false)); } - + if (this.scene.currentBattle.battleType !== BattleType.TRAINER && (this.scene.currentBattle.waveIndex > 1 || !this.scene.gameMode.isDaily)) { const minPartySize = this.scene.currentBattle.double ? 2 : 1; if (availablePartyMembers.length > minPartySize) { @@ -1061,7 +1061,7 @@ export class NextEncounterPhase extends EncounterPhase { if (this.scene.lastEnemyTrainer) { this.scene.lastEnemyTrainer.destroy(); } - + if (!this.tryOverrideForBattleSpec()) { this.doEncounterCommon(); } @@ -1278,7 +1278,7 @@ export class SummonPhase extends PartyMemberPokemonPhase { if (partyMember.isFainted()) { console.warn("The Pokemon about to be sent out is fainted. Attempting to resolve..."); const party = this.getParty(); - + // Find the first non-fainted Pokemon index above the current one const nonFaintedIndex = party.findIndex((p, i) => i > this.partyMemberIndex && !p.isFainted()); if (nonFaintedIndex === -1) { @@ -1287,7 +1287,7 @@ export class SummonPhase extends PartyMemberPokemonPhase { } // Swaps the fainted Pokemon and the first non-fainted Pokemon in the party - [party[this.partyMemberIndex], party[nonFaintedIndex]] = [party[nonFaintedIndex], party[this.partyMemberIndex]]; + [party[this.partyMemberIndex], party[nonFaintedIndex]] = [party[nonFaintedIndex], party[this.partyMemberIndex]]; console.warn("Swapped %s %O with %s %O", partyMember?.name, partyMember, party[0]?.name, party[0]); } @@ -1790,9 +1790,9 @@ export class CommandPhase extends FieldPhase { switch (command) { case Command.FIGHT: let useStruggle = false; - if (cursor === -1 || - playerPokemon.trySelectMove(cursor, args[0] as boolean) || - (useStruggle = cursor > -1 && !playerPokemon.getMoveset().filter(m => m.isUsable(playerPokemon)).length)) { + if (cursor === -1 || + playerPokemon.trySelectMove(cursor, args[0] as boolean) || + (useStruggle = cursor > -1 && !playerPokemon.getMoveset().filter(m => m.isUsable(playerPokemon)).length)) { const moveId = !useStruggle ? cursor > -1 ? playerPokemon.getMoveset()[cursor].moveId : Moves.NONE : Moves.STRUGGLE; const turnCommand: TurnCommand = { command: Command.FIGHT, cursor: cursor, move: { move: moveId, targets: [], ignorePP: args[0] }, args: args }; const moveTargets: MoveTargetSet = args.length < 3 ? getMoveTargets(playerPokemon, moveId) : args[2]; @@ -1814,8 +1814,8 @@ export class CommandPhase extends FieldPhase { this.scene.ui.setMode(Mode.MESSAGE); // Decides between a Disabled, Not Implemented, or No PP translation message - const errorMessage = - playerPokemon.summonData.disabledMove === move.moveId ? "battle:moveDisabled" : + const errorMessage = + playerPokemon.summonData.disabledMove === move.moveId ? "battle:moveDisabled" : move.getName().endsWith(" (N)") ? "battle:moveNotImplemented" : "battle:moveNoPP"; const moveName = move.getName().replace(" (N)", ""); // Trims off the indicator @@ -1904,12 +1904,12 @@ export class CommandPhase extends FieldPhase { } else if (trapTag) { if(trapTag.sourceMove === Moves.INGRAIN && this.scene.getPokemonById(trapTag.sourceId).isOfType(Type.GHOST)) { success = true; - this.scene.currentBattle.turnCommands[this.fieldIndex] = isSwitch + this.scene.currentBattle.turnCommands[this.fieldIndex] = isSwitch ? { command: Command.POKEMON, cursor: cursor, args: args } : { command: Command.RUN }; break; } - if (!isSwitch) { + if (!isSwitch) { this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex); this.scene.ui.setMode(Mode.MESSAGE); } @@ -2009,7 +2009,7 @@ export class EnemyCommandPhase extends FieldPhase { if (partyMemberScores.length) { const matchupScores = opponents.map(opp => enemyPokemon.getMatchupScore(opp)); const matchupScore = matchupScores.reduce((total, score) => total += score, 0) / matchupScores.length; - + const sortedPartyMemberScores = trainer.getSortedPartyMemberMatchupScores(partyMemberScores); const switchMultiplier = 1 - (battle.enemySwitchCounter ? Math.pow(0.1, (1 / battle.enemySwitchCounter)) : 0); @@ -2019,7 +2019,7 @@ export class EnemyCommandPhase extends FieldPhase { battle.turnCommands[this.fieldIndex + BattlerIndex.ENEMY] = { command: Command.POKEMON, cursor: index, args: [ false ] }; - + battle.enemySwitchCounter++; return this.end(); @@ -2108,7 +2108,7 @@ export class TurnStartPhase extends FieldPhase { applyAbAttrs(IncrementMovePriorityAbAttr, this.scene.getField().find(p => p?.isActive() && p.getBattlerIndex() === a), null, aMove, aPriority); applyAbAttrs(IncrementMovePriorityAbAttr, this.scene.getField().find(p => p?.isActive() && p.getBattlerIndex() === b), null, bMove, bPriority); - + if (aPriority.value !== bPriority.value) { return aPriority.value < bPriority.value ? 1 : -1; } @@ -2117,7 +2117,7 @@ export class TurnStartPhase extends FieldPhase { if (battlerBypassSpeed[a].value !== battlerBypassSpeed[b].value) { return battlerBypassSpeed[a].value ? -1 : 1; } - + const aIndex = order.indexOf(a); const bIndex = order.indexOf(b); @@ -2231,10 +2231,10 @@ export class TurnEndPhase extends FieldPhase { super.start(); this.scene.currentBattle.incrementTurn(this.scene); - + const handlePokemon = (pokemon: Pokemon) => { pokemon.lapseTags(BattlerTagLapseType.TURN_END); - + if (pokemon.summonData.disabledMove && !--pokemon.summonData.disabledTurns) { this.scene.pushPhase(new MessagePhase(this.scene, i18next.t("battle:notDisabled", { pokemonName: `${getPokemonPrefix(pokemon)}${pokemon.name}`, moveName: allMoves[pokemon.summonData.disabledMove].name }))); pokemon.summonData.disabledMove = Moves.NONE; @@ -2260,7 +2260,7 @@ export class TurnEndPhase extends FieldPhase { }; this.executeForAll(handlePokemon); - + this.scene.arena.lapseTags(); if (this.scene.arena.weather && !this.scene.arena.weather.lapse()) { @@ -2444,9 +2444,9 @@ export class MovePhase extends BattlePhase { const doMove = () => { this.pokemon.turnData.acted = true; // Record that the move was attempted, even if it fails - + this.pokemon.lapseTags(BattlerTagLapseType.PRE_MOVE); - + let ppUsed = 1; // Filter all opponents to include only those this move is targeting const targetedOpponents = this.pokemon.getOpponents().filter(o => this.targets.includes(o.getBattlerIndex())); @@ -2458,7 +2458,7 @@ export class MovePhase extends BattlePhase { ppUsed++; } } - + if (!this.followUp && this.canMove() && !this.cancelled) { this.pokemon.lapseTags(BattlerTagLapseType.MOVE); } @@ -2484,10 +2484,10 @@ export class MovePhase extends BattlePhase { } // This should only happen when there are no valid targets left on the field - if ((moveQueue.length && moveQueue[0].move === Moves.NONE) || !targets.length) { + if ((moveQueue.length && moveQueue[0].move === Moves.NONE) || !targets.length) { this.showFailedText(); this.cancel(); - + // Record a failed move so Abilities like Truant don't trigger next turn and soft-lock this.pokemon.pushMoveHistory({ move: Moves.NONE, result: MoveResult.FAIL }); @@ -2525,7 +2525,7 @@ export class MovePhase extends BattlePhase { this.showFailedText(failedText); } } - + this.end(); }; @@ -2533,7 +2533,7 @@ export class MovePhase extends BattlePhase { this.pokemon.status.incrementTurn(); let activated = false; let healed = false; - + switch (this.pokemon.status.effect) { case StatusEffect.PARALYSIS: if (!this.pokemon.randSeedInt(4)) { @@ -2553,7 +2553,7 @@ export class MovePhase extends BattlePhase { this.cancelled = activated; break; } - + if (activated) { this.scene.queueMessage(getPokemonMessage(this.pokemon, getStatusEffectActivationText(this.pokemon.status.effect))); this.scene.unshiftPhase(new CommonAnimPhase(this.scene, this.pokemon.getBattlerIndex(), undefined, CommonAnim.POISON + (this.pokemon.status.effect - 1))); @@ -2587,7 +2587,7 @@ export class MovePhase extends BattlePhase { if (this.pokemon.getTag(BattlerTagType.RECHARGING || BattlerTagType.INTERRUPTED)) { return; } - + this.scene.queueMessage(getPokemonMessage(this.pokemon, ` used\n${this.move.getName()}!`), 500); applyMoveAttrs(PreMoveMessageAttr, this.pokemon, this.pokemon.getOpponents().find(() => true), this.move.getMove()); } @@ -2608,7 +2608,7 @@ export class MovePhase extends BattlePhase { export class MoveEffectPhase extends PokemonPhase { public move: PokemonMove; protected targets: BattlerIndex[]; - + constructor(scene: BattleScene, battlerIndex: BattlerIndex, targets: BattlerIndex[], move: PokemonMove) { super(scene, battlerIndex); @@ -2634,7 +2634,7 @@ export class MoveEffectPhase extends PokemonPhase { if (overridden.value) { return this.end(); } - + user.lapseTags(BattlerTagLapseType.MOVE_EFFECT); if (user.turnData.hitsLeft === undefined) { @@ -2687,7 +2687,7 @@ export class MoveEffectPhase extends PokemonPhase { const firstHit = moveHistoryEntry.result !== MoveResult.SUCCESS; moveHistoryEntry.result = MoveResult.SUCCESS; - + const hitResult = !isProtected ? target.apply(user, this.move) : HitResult.NO_EFFECT; this.scene.triggerPokemonFormChange(user, SpeciesFormChangePostMoveTrigger); @@ -2740,7 +2740,7 @@ export class MoveEffectPhase extends PokemonPhase { // Trigger effect which should only apply one time after all targeted effects have already applied const postTarget = applyFilteredMoveAttrs((attr: MoveAttr) => attr instanceof MoveEffectAttr && (attr as MoveEffectAttr).trigger === MoveEffectTrigger.POST_TARGET, user, null, this.move.getMove()); - + if (applyAttrs.length) { // If there is a pending asynchronous move effect, do this after applyAttrs[applyAttrs.length - 1]?.then(() => postTarget); } else { // Otherwise, push a new asynchronous move effect @@ -2765,7 +2765,7 @@ export class MoveEffectPhase extends PokemonPhase { this.scene.applyModifiers(HitHealModifier, this.player, user); } } - + super.end(); } @@ -2790,7 +2790,7 @@ export class MoveEffectPhase extends PokemonPhase { if (user.getTag(BattlerTagType.IGNORE_ACCURACY) && (user.getLastXMoves().slice(1).find(() => true)?.targets || []).indexOf(target.getBattlerIndex()) !== -1) { return true; } - + const hiddenTag = target.getTag(HiddenTag); if (hiddenTag && !this.move.getMove().getAttrs(HitsTagAttr).filter(hta => (hta as HitsTagAttr).tagType === hiddenTag.tagType).length) { return false; @@ -2817,7 +2817,7 @@ export class MoveEffectPhase extends PokemonPhase { if (!isOhko && this.scene.arena.getTag(ArenaTagType.GRAVITY)) { moveAccuracy.value = Math.floor(moveAccuracy.value * 1.67); } - + const userAccuracyLevel = new Utils.IntegerHolder(user.summonData.battleStats[BattleStat.ACC]); const targetEvasionLevel = new Utils.IntegerHolder(target.summonData.battleStats[BattleStat.EVA]); applyAbAttrs(IgnoreOpponentStatChangesAbAttr, target, null, userAccuracyLevel); @@ -2985,7 +2985,7 @@ export class StatChangePhase extends PokemonPhase { if (!cancelled.value && !this.selfTarget && this.levels < 0) { applyPreStatChangeAbAttrs(ProtectStatAbAttr, this.getPokemon(), stat, cancelled); } - + return !cancelled.value; }); @@ -3009,15 +3009,15 @@ export class StatChangePhase extends PokemonPhase { for (const stat of filteredStats) { pokemon.summonData.battleStats[stat] = Math.max(Math.min(pokemon.summonData.battleStats[stat] + levels.value, 6), -6); } - + if (levels.value > 0 && this.canBeCopied) { for (const opponent of pokemon.getOpponents()) { applyAbAttrs(StatChangeCopyAbAttr, opponent, null, this.stats, levels.value); } } - + applyPostStatChangeAbAttrs(PostStatChangeAbAttr, pokemon, filteredStats, this.levels, this.selfTarget); - + pokemon.updateInfo(); handleTutorial(this.scene, Tutorial.Stat_Change).then(() => super.end()); @@ -3061,7 +3061,7 @@ export class StatChangePhase extends PokemonPhase { duration: 1500, y: `${levels.value >= 1 ? "-" : "+"}=${160 * 6}` }); - + this.scene.time.delayedCall(1750, () => { pokemon.disableMask(); end(); @@ -3146,7 +3146,7 @@ export class WeatherEffectPhase extends CommonAnimPhase { start() { if (this.weather.isDamaging()) { - + const cancelled = new Utils.BooleanHolder(false); this.executeForAll((pokemon: Pokemon) => applyPreWeatherEffectAbAttrs(SuppressWeatherEffectAbAttr, pokemon, this.weather, cancelled)); @@ -3627,7 +3627,7 @@ export class VictoryPhase extends PokemonPhase { } } } - + if (!this.scene.getEnemyParty().find(p => this.scene.currentBattle.battleType ? !p?.isFainted(true) : p.isOnField())) { this.scene.pushPhase(new BattleEndPhase(this.scene)); if (this.scene.currentBattle.battleType === BattleType.TRAINER) { @@ -3701,7 +3701,7 @@ export class TrainerVictoryPhase extends BattlePhase { let message: string; this.scene.executeWithSeedOffset(() => message = Utils.randSeedItem(victoryMessages), this.scene.currentBattle.waveIndex); const messagePages = message.split(/\$/g).map(m => m.trim()); - + for (let p = messagePages.length - 1; p >= 0; p--) { const originalFunc = showMessageOrEnd; showMessageOrEnd = () => this.scene.ui.showDialogue(messagePages[p], this.scene.currentBattle.trainer.getName(), null, originalFunc); @@ -3847,7 +3847,7 @@ export class GameOverPhase extends BattlePhase { this.scene.pushPhase(new EncounterPhase(this.scene, true)); const availablePartyMembers = this.scene.getParty().filter(p => !p.isFainted()).length; - + this.scene.pushPhase(new SummonPhase(this.scene, 0)); if (this.scene.currentBattle.double && availablePartyMembers > 1) { this.scene.pushPhase(new SummonPhase(this.scene, 1)); @@ -4001,9 +4001,9 @@ export class EndCardPhase extends Phase { this.scene.field.add(this.text); this.scene.ui.clearText(); - + this.scene.ui.fadeIn(1000).then(() => { - + this.scene.ui.showText("", null, () => { this.scene.ui.getMessageHandler().bg.setVisible(true); this.end(); @@ -4375,7 +4375,7 @@ export class PokemonHealPhase extends CommonAnimPhase { end() { const pokemon = this.getPokemon(); - + if (!pokemon.isOnField() || (!this.revive && !pokemon.isActive())) { super.end(); return; @@ -4538,7 +4538,7 @@ export class AttemptCapturePhase extends PokemonPhase { } else { this.scene.playSound("pb_lock"); addPokeballCaptureStars(this.scene, this.pokeball); - + const pbTint = this.scene.add.sprite(this.pokeball.x, this.pokeball.y, "pb", "pb"); pbTint.setOrigin(this.pokeball.originX, this.pokeball.originY); pbTint.setTintFill(0); @@ -4594,7 +4594,7 @@ export class AttemptCapturePhase extends PokemonPhase { ease: "Sine.easeOut", scale: 1 }); - + this.scene.currentBattle.lastUsedPokeball = this.pokeballType; this.removePb(); this.end(); @@ -4625,7 +4625,7 @@ export class AttemptCapturePhase extends PokemonPhase { this.scene.pokemonInfoContainer.show(pokemon, true); this.scene.gameData.updateSpeciesDexIvs(pokemon.species.getRootSpeciesId(true), pokemon.ivs); - + this.scene.ui.showText(i18next.t("battle:pokemonCaught", { pokemonName: pokemon.name }), null, () => { const end = () => { this.scene.pokemonInfoContainer.hide(); @@ -4718,7 +4718,7 @@ export class AttemptRunPhase extends PokemonPhase { if (playerPokemon.randSeedInt(256) < escapeChance.value) { this.scene.playSound("flee"); this.scene.queueMessage(i18next.t("battle:runAwaySuccess"), null, true, 500); - + this.scene.tweens.add({ targets: [ this.scene.arenaEnemy, enemyField ].flat(), alpha: 0, @@ -4933,7 +4933,7 @@ export class SelectModifierPhase extends BattlePhase { } return Math.min(Math.ceil(this.scene.currentBattle.waveIndex / 10) * baseValue * Math.pow(2, this.rerollCount), Number.MAX_SAFE_INTEGER); } - + getPoolType(): ModifierPoolType { return ModifierPoolType.PLAYER; } @@ -4961,11 +4961,11 @@ export class EggLapsePhase extends Phase { if (eggsToHatch.length) { this.scene.queueMessage(i18next.t("battle:eggHatching")); - + for (const egg of eggsToHatch) { this.scene.unshiftPhase(new EggHatchPhase(this.scene, egg)); } - + } this.end(); } @@ -4983,7 +4983,7 @@ export class AddEnemyBuffModifierPhase extends Phase { const tier = !(waveIndex % 1000) ? ModifierTier.ULTRA : !(waveIndex % 250) ? ModifierTier.GREAT : ModifierTier.COMMON; regenerateModifierPoolThresholds(this.scene.getEnemyParty(), ModifierPoolType.ENEMY_BUFF); - + const count = Math.ceil(waveIndex / 250); for (let i = 0; i < count; i++) { this.scene.addEnemyModifier(getEnemyBuffModifierForWave(tier, this.scene.findModifiers(m => m instanceof EnemyPersistentModifier, false), this.scene), true, true); @@ -5124,7 +5124,7 @@ export class TrainerMessageTestPhase extends BattlePhase { constructor(scene: BattleScene, ...trainerTypes: TrainerType[]) { super(scene); - + this.trainerTypes = trainerTypes; } @@ -5132,7 +5132,7 @@ export class TrainerMessageTestPhase extends BattlePhase { super.start(); const testMessages: string[] = []; - + for (const t of Object.keys(trainerConfigs)) { const type = parseInt(t); if (this.trainerTypes.length && !this.trainerTypes.find(tt => tt === type as TrainerType)) { diff --git a/src/pipelines/sprite.ts b/src/pipelines/sprite.ts index e1997c28635..741c31183d4 100644 --- a/src/pipelines/sprite.ts +++ b/src/pipelines/sprite.ts @@ -378,7 +378,7 @@ export default class SpritePipeline extends FieldSpritePipeline { this.set1f("yOffset", sprite.height - sprite.frame.height * (isEntityObj ? sprite.parentContainer.scale : sprite.scale)); this.set4fv("tone", tone); this.bindTexture(this.game.textures.get("tera").source[0].glTexture, 1); - + if ((gameObject.scene as BattleScene).fusionPaletteSwaps) { const spriteColors = ((ignoreOverride && data["spriteColorsBase"]) || data["spriteColors"] || []) as number[][]; const fusionSpriteColors = ((ignoreOverride && data["fusionSpriteColorsBase"]) || data["fusionSpriteColors"] || []) as number[][]; @@ -460,7 +460,7 @@ export default class SpritePipeline extends FieldSpritePipeline { const pixelHeight = (v1 - v0) / (sprite.frame.height * (isEntityObj ? sprite.parentContainer.scale : sprite.scale)); v1 += (yDelta + bottomPadding / field.scale) * pixelHeight; } - + return super.batchQuad(gameObject, x0, y0, x1, y1, x2, y2, x3, y3, u0, v0, u1, v1, tintTL, tintTR, tintBL, tintBR, tintEffect, texture, unit); } diff --git a/src/plugins/cache-busted-loader-plugin.ts b/src/plugins/cache-busted-loader-plugin.ts index 0472ad51fe7..3ed939c49dd 100644 --- a/src/plugins/cache-busted-loader-plugin.ts +++ b/src/plugins/cache-busted-loader-plugin.ts @@ -17,7 +17,7 @@ export default class CacheBustedLoaderPlugin extends Phaser.Loader.LoaderPlugin if (!Array.isArray(file)) { file = [ file ]; } - + file.forEach(item => { if (manifest) { const timestamp = manifest[`/${item.url.replace(/\/\//g, "/")}` ]; diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index 8af69929441..81dab2e3a51 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -124,7 +124,7 @@ export function initI18n(): void { }, zh_CN: { ...zhCnConfig - }, + }, zh_TW: { ...zhTWConfig } diff --git a/src/system/game-data.ts b/src/system/game-data.ts index 4c631e59dae..0df3f96fa7e 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -180,7 +180,7 @@ export interface StarterMoveData { } export interface StarterDataEntry { - moveset: StarterMoveset | StarterFormMoveData; + moveset: StarterMoveset | StarterFormMoveData; eggMoves: integer; candyCount: integer; friendship: integer; @@ -223,7 +223,7 @@ export class GameData { public secretId: integer; public gender: PlayerGender; - + public dexData: DexData; private defaultDexData: DexData; @@ -372,7 +372,7 @@ export class GameData { localStorage.setItem(`data_${loggedInUser.username}`, encrypt(systemDataStr, bypassLogin)); /*const versions = [ this.scene.game.config.gameVersion, data.gameVersion || '0.0.0' ]; - + if (versions[0] !== versions[1]) { const [ versionNumbers, oldVersionNumbers ] = versions.map(ver => ver.split('.').map(v => parseInt(v))); }*/ @@ -439,7 +439,7 @@ export class GameData { if (achvs.hasOwnProperty(a)) { this.achvUnlocks[a] = systemData.achvUnlocks[a]; } - } + } } if (systemData.voucherUnlocks) { @@ -1029,7 +1029,7 @@ export class GameData { if (saveFile) { saveFile.remove(); } - + saveFile = document.createElement("input"); saveFile.id = "saveFile"; saveFile.type = "file"; @@ -1219,7 +1219,7 @@ export class GameData { : AbilityAttr.ABILITY_HIDDEN; } dexEntry.natureAttr |= Math.pow(2, pokemon.nature + 1); - + const hasPrevolution = pokemonPrevolutions.hasOwnProperty(species.speciesId); const newCatch = !caughtAttr; const hasNewAttr = (caughtAttr & dexAttr) !== dexAttr; @@ -1257,7 +1257,7 @@ export class GameData { this.addStarterCandy(species, (1 * (pokemon.isShiny() ? 5 * Math.pow(2, pokemon.variant || 0) : 1)) * (fromEgg || pokemon.isBoss() ? 2 : 1)); } } - + const checkPrevolution = () => { if (hasPrevolution) { const prevolutionSpecies = pokemonPrevolutions[species.speciesId]; @@ -1282,7 +1282,7 @@ export class GameData { if (!this.starterData[speciesIdToIncrement].classicWinCount) { this.starterData[speciesIdToIncrement].classicWinCount = 0; } - + if (!this.starterData[speciesIdToIncrement].classicWinCount) { this.scene.gameData.gameStats.ribbonsOwned++; } @@ -1474,7 +1474,7 @@ export class GameData { getFormAttr(formIndex: integer): bigint { return BigInt(Math.pow(2, 7 + formIndex)); } - + consolidateDexData(dexData: DexData): void { for (const k of Object.keys(dexData)) { const entry = dexData[k] as DexEntry; @@ -1555,7 +1555,7 @@ export class GameData { } } } - + fixStarterData(systemData: SystemSaveData): void { for (const starterId of defaultStarterSpecies) { systemData.starterData[starterId].abilityAttr |= AbilityAttr.ABILITY_1; diff --git a/src/system/game-speed.ts b/src/system/game-speed.ts index e4af04bc2be..760288e841f 100644 --- a/src/system/game-speed.ts +++ b/src/system/game-speed.ts @@ -85,7 +85,7 @@ export function initGameSpeed() { } return originalAddCounter.apply(this, [ config ]); }; - + const originalFadeOut = SoundFade.fadeOut; SoundFade.fadeOut = (( scene: Phaser.Scene, diff --git a/src/system/pokemon-data.ts b/src/system/pokemon-data.ts index 6ec180922e2..0aa72f97801 100644 --- a/src/system/pokemon-data.ts +++ b/src/system/pokemon-data.ts @@ -125,7 +125,7 @@ export default class PokemonData { this.summonData.ability = source.summonData.ability; this.summonData.moveset = source.summonData.moveset?.map(m => PokemonMove.loadMove(m)); this.summonData.types = source.summonData.types; - + if (source.summonData.tags) { this.summonData.tags = source.summonData.tags?.map(t => loadBattlerTag(t)); } else { diff --git a/src/touch-controls.js b/src/touch-controls.js index 956bc03179f..8390df50ec8 100644 --- a/src/touch-controls.js +++ b/src/touch-controls.js @@ -32,7 +32,7 @@ export function isMobile() { */ function simulateKeyboardEvent(eventType, button, buttonMap) { const key = buttonMap[button]; - + switch (eventType) { case "keydown": key.onDown({}); diff --git a/src/ui/ability-bar.ts b/src/ui/ability-bar.ts index a4a49011c10..3e85077e07d 100644 --- a/src/ui/ability-bar.ts +++ b/src/ui/ability-bar.ts @@ -63,7 +63,7 @@ export default class AbilityBar extends Phaser.GameObjects.Container { this.resetAutoHideTimer(); } }); - + this.setVisible(true); this.shown = true; } diff --git a/src/ui/abstact-option-select-ui-handler.ts b/src/ui/abstact-option-select-ui-handler.ts index 19f5d8dc5d0..925bbefc930 100644 --- a/src/ui/abstact-option-select-ui-handler.ts +++ b/src/ui/abstact-option-select-ui-handler.ts @@ -54,7 +54,7 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { setup() { const ui = this.getUi(); - + this.optionSelectContainer = this.scene.add.container((this.scene.game.canvas.width / 6) - 1, -48); this.optionSelectContainer.setVisible(false); ui.add(this.optionSelectContainer); @@ -159,7 +159,7 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { ui.playError(); return false; } - + success = true; if (button === Button.CANCEL) { if (this.config?.maxOptions && this.config.options.length > this.config.maxOptions) { diff --git a/src/ui/achv-bar.ts b/src/ui/achv-bar.ts index c59b61da720..fa5d02416c0 100644 --- a/src/ui/achv-bar.ts +++ b/src/ui/achv-bar.ts @@ -76,7 +76,7 @@ export default class AchvBar extends Phaser.GameObjects.Container { }); this.scene.time.delayedCall(10000, () => this.hide()); - + this.setVisible(true); this.shown = true; } diff --git a/src/ui/achvs-ui-handler.ts b/src/ui/achvs-ui-handler.ts index 27d01b7b661..da56024a4d6 100644 --- a/src/ui/achvs-ui-handler.ts +++ b/src/ui/achvs-ui-handler.ts @@ -24,7 +24,7 @@ export default class AchvsUiHandler extends MessageUiHandler { setup() { const ui = this.getUi(); - + this.achvsContainer = this.scene.add.container(1, -(this.scene.game.canvas.height / 6) + 1); this.achvsContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); @@ -40,7 +40,7 @@ export default class AchvsUiHandler extends MessageUiHandler { this.achvIconsBg.setOrigin(0, 0); this.achvIconsContainer = this.scene.add.container(6, headerBg.height + 6); - + this.achvIcons = []; for (let a = 0; a < Object.keys(achvs).length; a++) { diff --git a/src/ui/awaitable-ui-handler.ts b/src/ui/awaitable-ui-handler.ts index 46f5094a2f6..22a21069acb 100644 --- a/src/ui/awaitable-ui-handler.ts +++ b/src/ui/awaitable-ui-handler.ts @@ -21,7 +21,7 @@ export default abstract class AwaitableUiHandler extends UiHandler { this.awaitingActionInput = false; return true; } - + return false; } } diff --git a/src/ui/ball-ui-handler.ts b/src/ui/ball-ui-handler.ts index 5fb6242750f..b96dd799b18 100644 --- a/src/ui/ball-ui-handler.ts +++ b/src/ui/ball-ui-handler.ts @@ -21,7 +21,7 @@ export default class BallUiHandler extends UiHandler { setup() { const ui = this.getUi(); - + this.pokeballSelectContainer = this.scene.add.container((this.scene.game.canvas.width / 6) - 115, -49); this.pokeballSelectContainer.setVisible(false); ui.add(this.pokeballSelectContainer); diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts index a6444a7bc63..1aebce7f457 100644 --- a/src/ui/battle-info.ts +++ b/src/ui/battle-info.ts @@ -49,7 +49,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { private type2Icon: Phaser.GameObjects.Sprite; private type3Icon: Phaser.GameObjects.Sprite; private expBar: Phaser.GameObjects.Image; - + public expMaskRect: Phaser.GameObjects.Graphics; private statsContainer: Phaser.GameObjects.Container; @@ -268,7 +268,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { const opponentPokemonDexAttr = pokemon.getDexAttr(); // Check if Player owns all genders and forms of the Pokemon - const missingDexAttrs = ((dexEntry.caughtAttr & opponentPokemonDexAttr) < opponentPokemonDexAttr); + const missingDexAttrs = ((dexEntry.caughtAttr & opponentPokemonDexAttr) < opponentPokemonDexAttr); /** * If the opposing Pokemon only has 1 normal ability and is using the hidden ability it should have the same behavior @@ -377,7 +377,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { if (boss !== this.boss) { this.boss = boss; - + [ this.nameText, this.genderText, this.teraIcon, this.splicedIcon, this.shinyIcon, this.ownedIcon, this.statusIndicator, this.levelContainer, this.statValuesContainer ].map(e => e.x += 48 * (boss ? -1 : 1)); this.hpBar.x += 38 * (boss ? -1 : 1); this.hpBar.y += 2 * (this.boss ? -1 : 1); @@ -385,7 +385,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.box.setTexture(this.getTextureName()); this.statsBox.setTexture(`${this.getTextureName()}_stats`); } - + this.bossSegments = boss ? pokemon.bossSegments : 0; this.updateBossSegmentDividers(pokemon); } @@ -410,12 +410,12 @@ export default class BattleInfo extends Phaser.GameObjects.Container { } } } - + setOffset(offset: boolean): void { if (this.offset === offset) { return; } - + this.offset = offset; this.x += 10 * (offset === this.player ? 1 : -1); @@ -435,7 +435,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.updateNameText(pokemon); this.genderText.setPositionRelative(this.nameText, this.nameText.displayWidth, 0); } - + const teraType = pokemon.getTeraType(); const teraTypeUpdated = this.lastTeraType !== teraType; @@ -461,7 +461,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.statusIndicator.setFrame(StatusEffect[this.lastStatus].toLowerCase()); } this.statusIndicator.setVisible(!!this.lastStatus); - + if (!this.player && this.ownedIcon.visible) { this.ownedIcon.setAlpha(this.statusIndicator.visible ? 0 : 1); } @@ -543,7 +543,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { ? pokemon.summonData.battleStats : battleStatOrder.map(() => 0); const battleStatsStr = battleStats.join(""); - + if (this.lastBattleStats !== battleStatsStr) { this.updateBattleStats(battleStats); this.lastBattleStats = battleStatsStr; diff --git a/src/ui/candy-bar.ts b/src/ui/candy-bar.ts index 5afb06ba3e3..aa08ed58e60 100644 --- a/src/ui/candy-bar.ts +++ b/src/ui/candy-bar.ts @@ -84,7 +84,7 @@ export default class CandyBar extends Phaser.GameObjects.Container { resolve(); } }); - + this.setVisible(true); this.shown = true; }); diff --git a/src/ui/char-sprite.ts b/src/ui/char-sprite.ts index 1e6459096fe..d76c7ec59d0 100644 --- a/src/ui/char-sprite.ts +++ b/src/ui/char-sprite.ts @@ -56,7 +56,7 @@ export default class CharSprite extends Phaser.GameObjects.Container { resolve(); } }); - + this.setVisible(this.scene.textures.get(key).key !== Utils.MissingTextureKey); this.shown = true; diff --git a/src/ui/command-ui-handler.ts b/src/ui/command-ui-handler.ts index ad0d1a4ad11..7c21d5cc142 100644 --- a/src/ui/command-ui-handler.ts +++ b/src/ui/command-ui-handler.ts @@ -27,11 +27,11 @@ export default class CommandUiHandler extends UiHandler { setup() { const ui = this.getUi(); - const commands = [ - i18next.t("commandUiHandler:fight"), - i18next.t("commandUiHandler:ball"), - i18next.t("commandUiHandler:pokemon"), - i18next.t("commandUiHandler:run") + const commands = [ + i18next.t("commandUiHandler:fight"), + i18next.t("commandUiHandler:ball"), + i18next.t("commandUiHandler:pokemon"), + i18next.t("commandUiHandler:run") ]; this.commandsContainer = this.scene.add.container(216, -38.7); @@ -77,7 +77,7 @@ export default class CommandUiHandler extends UiHandler { const cursor = this.getCursor(); if (button === Button.CANCEL || button === Button.ACTION) { - + if (button === Button.ACTION) { switch (cursor) { // Fight diff --git a/src/ui/confirm-ui-handler.ts b/src/ui/confirm-ui-handler.ts index c2048eb1f88..4e4e0f9bb8c 100644 --- a/src/ui/confirm-ui-handler.ts +++ b/src/ui/confirm-ui-handler.ts @@ -42,7 +42,7 @@ export default class ConfirmUiHandler extends AbstractOptionSelectUiHandler { }; super.show([ config ]); - + this.switchCheck = args.length >= 3 && args[2] !== null && args[2] as boolean; const xOffset = (args.length >= 4 && args[3] !== null ? args[3] as number : 0); diff --git a/src/ui/daily-run-scoreboard.ts b/src/ui/daily-run-scoreboard.ts index 0a5c777cc2a..aa0cce62525 100644 --- a/src/ui/daily-run-scoreboard.ts +++ b/src/ui/daily-run-scoreboard.ts @@ -30,7 +30,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container { private pageCount: integer; private page: integer; private category: ScoreboardCategory; - + private _isUpdating: boolean; constructor(scene: BattleScene, x: number, y: number) { @@ -165,13 +165,13 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container { /** * Updates the scoreboard rankings based on the selected category and page. - * + * * If the update process is already ongoing, the method exits early. Otherwise, it begins the update process by clearing * the current rankings and showing a loading label. If the category changes, the page is reset to 1. - * + * * The method fetches the total page count if necessary, followed by fetching the rankings for the specified category * and page. It updates the UI with the fetched rankings or shows an appropriate message if no rankings are found. - * + * * @param {ScoreboardCategory} [category=this.category] - The category to fetch rankings for. Defaults to the current category. * @param {number} [page=this.page] - The page number to fetch. Defaults to the current page. */ @@ -209,7 +209,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container { }).finally(() => { this.isUpdating = false; }); - }).catch(err => { + }).catch(err => { console.error("Failed to load daily rankings:\n", err); }); } diff --git a/src/ui/egg-gacha-ui-handler.ts b/src/ui/egg-gacha-ui-handler.ts index ef8e5de24c7..4cfd6813b41 100644 --- a/src/ui/egg-gacha-ui-handler.ts +++ b/src/ui/egg-gacha-ui-handler.ts @@ -213,13 +213,13 @@ export default class EggGachaUiHandler extends MessageUiHandler { this.eggGachaOverlay = this.scene.add.rectangle(0, 0, bg.displayWidth, bg.displayHeight, 0x000000); this.eggGachaOverlay.setOrigin(0, 0); this.eggGachaOverlay.setAlpha(0); - + this.eggGachaContainer.add(this.eggGachaOverlay); this.eggGachaSummaryContainer = this.scene.add.container(0, 0); this.eggGachaSummaryContainer.setVisible(false); this.eggGachaContainer.add(this.eggGachaSummaryContainer); - + const gachaMessageBoxContainer = this.scene.add.container(0, 148); this.eggGachaContainer.add(gachaMessageBoxContainer); @@ -505,7 +505,7 @@ export default class EggGachaUiHandler extends MessageUiHandler { if (!text) { text = this.defaultText; } - + if (text?.indexOf("\n") === -1) { this.eggGachaMessageBox.setSize(320, 32); this.eggGachaMessageBox.setY(0); @@ -545,7 +545,7 @@ export default class EggGachaUiHandler extends MessageUiHandler { return false; } } else { - + if (this.eggGachaSummaryContainer.visible) { if (button === Button.ACTION || button === Button.CANCEL) { this.hideSummary(); @@ -646,7 +646,7 @@ export default class EggGachaUiHandler extends MessageUiHandler { } } } - + if (success) { ui.playSelect(); } else if (error) { diff --git a/src/ui/egg-list-ui-handler.ts b/src/ui/egg-list-ui-handler.ts index b2cbcb26769..522e91d84e6 100644 --- a/src/ui/egg-list-ui-handler.ts +++ b/src/ui/egg-list-ui-handler.ts @@ -158,7 +158,7 @@ export default class EggListUiHandler extends MessageUiHandler { break; } } - + if (success) { ui.playSelect(); } else if (error) { diff --git a/src/ui/evolution-scene-handler.ts b/src/ui/evolution-scene-handler.ts index 368fca9238b..12b6ccc93d1 100644 --- a/src/ui/evolution-scene-handler.ts +++ b/src/ui/evolution-scene-handler.ts @@ -55,7 +55,7 @@ export default class EvolutionSceneHandler extends MessageUiHandler { show(_args: any[]): boolean { super.show(_args); - + this.scene.ui.bringToTop(this.evolutionContainer); this.scene.ui.bringToTop(this.messageBg); this.scene.ui.bringToTop(this.messageContainer); @@ -97,4 +97,4 @@ export default class EvolutionSceneHandler extends MessageUiHandler { this.messageContainer.setVisible(false); this.messageBg.setVisible(false); } -} +} diff --git a/src/ui/game-stats-ui-handler.ts b/src/ui/game-stats-ui-handler.ts index 75d4b6ab7eb..2293cd7cf46 100644 --- a/src/ui/game-stats-ui-handler.ts +++ b/src/ui/game-stats-ui-handler.ts @@ -102,7 +102,7 @@ export default class GameStatsUiHandler extends UiHandler { setup() { const ui = this.getUi(); - + this.gameStatsContainer = this.scene.add.container(1, -(this.scene.game.canvas.height / 6) + 1); this.gameStatsContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); @@ -156,9 +156,9 @@ export default class GameStatsUiHandler extends UiHandler { super.show(args); this.setCursor(0); - + this.updateStats(); - + this.gameStatsContainer.setVisible(true); this.getUi().moveTo(this.gameStatsContainer, this.getUi().length - 1); diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index f02986b514b..a593779a798 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -54,7 +54,7 @@ export default class MenuUiHandler extends MessageUiHandler { setup() { const ui = this.getUi(); - + this.menuContainer = this.scene.add.container(1, -(this.scene.game.canvas.height / 6) + 1); this.menuContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); @@ -65,7 +65,7 @@ export default class MenuUiHandler extends MessageUiHandler { this.optionSelectText = addTextObject(this.scene, 0, 0, this.menuOptions.map(o => `${i18next.t(`menuUiHandler:${MenuOptions[o]}`)}`).join("\n"), TextStyle.WINDOW, { maxLines: this.menuOptions.length }); this.optionSelectText.setLineSpacing(12); - + this.menuBg = addWindow(this.scene, (this.scene.game.canvas.width / 6) - (this.optionSelectText.displayWidth + 25), 0, this.optionSelectText.displayWidth + 23, (this.scene.game.canvas.height / 6) - 2); this.menuBg.setOrigin(0, 0); diff --git a/src/ui/message-ui-handler.ts b/src/ui/message-ui-handler.ts index 21a650a92ea..05c91ca1643 100644 --- a/src/ui/message-ui-handler.ts +++ b/src/ui/message-ui-handler.ts @@ -56,7 +56,7 @@ export default abstract class MessageUiHandler extends AwaitableUiHandler { let newText = ""; for (let w = 0; w < textWords.length; w++) { const nextWordText = newText ? `${newText} ${textWords[w]}` : textWords[w]; - + if (textWords[w].includes("\n")) { newText = nextWordText; lastLineCount++; diff --git a/src/ui/modal-ui-handler.ts b/src/ui/modal-ui-handler.ts index ccc5d5650fb..b521ec43759 100644 --- a/src/ui/modal-ui-handler.ts +++ b/src/ui/modal-ui-handler.ts @@ -39,7 +39,7 @@ export abstract class ModalUiHandler extends UiHandler { setup() { const ui = this.getUi(); - + this.modalContainer = this.scene.add.container(0, 0); this.modalContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); @@ -106,7 +106,7 @@ export abstract class ModalUiHandler extends UiHandler { updateContainer(config?: ModalConfig): void { const [ marginTop, marginRight, marginBottom, marginLeft ] = this.getMargin(config); - + const [ width, height ] = [ this.getWidth(config), this.getHeight(config) ]; this.modalContainer.setPosition((((this.scene.game.canvas.width / 6) - (width + (marginRight - marginLeft))) / 2), (((-this.scene.game.canvas.height / 6) - (height + (marginBottom - marginTop))) / 2)); diff --git a/src/ui/modifier-select-ui-handler.ts b/src/ui/modifier-select-ui-handler.ts index bcd460dfab7..99a8546b52a 100644 --- a/src/ui/modifier-select-ui-handler.ts +++ b/src/ui/modifier-select-ui-handler.ts @@ -36,7 +36,7 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { setup() { const ui = this.getUi(); - + this.modifierContainer = this.scene.add.container(0, 0); ui.add(this.modifierContainer); @@ -112,7 +112,7 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { ? getPlayerShopModifierTypeOptionsForWave(this.scene.currentBattle.waveIndex, this.scene.getWaveMoneyAmount(1)) : []; const optionsYOffset = shopTypeOptions.length >= SHOP_OPTIONS_ROW_LIMIT ? -8 : -24; - + for (let m = 0; m < typeOptions.length; m++) { const sliceWidth = (this.scene.game.canvas.width / 6) / (typeOptions.length + 2); const option = new ModifierOption(this.scene, sliceWidth * (m + 1) + (sliceWidth * 0.5), -this.scene.game.canvas.height / 12 + optionsYOffset, typeOptions[m]); @@ -144,7 +144,7 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { this.scene.updateAndShowLuckText(750); let i = 0; - + this.scene.tweens.addCounter({ ease: "Sine.easeIn", duration: 1250, @@ -382,7 +382,7 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { const options = this.options.concat(this.shopOptionsRows.flat()); this.options.splice(0, this.options.length); this.shopOptionsRows.splice(0, this.shopOptionsRows.length); - + this.scene.tweens.add({ targets: options, scale: 0.01, @@ -390,7 +390,7 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { ease: "Cubic.easeIn", onComplete: () => options.forEach(o => o.destroy()) }); - + [ this.rerollButtonContainer, this.transferButtonContainer, this.lockRarityButtonContainer ].forEach(container => { if (container.visible) { this.scene.tweens.add({ @@ -479,7 +479,7 @@ class ModifierOption extends Phaser.GameObjects.Container { if (this.modifierTypeOption.cost) { this.itemCostText = addTextObject(this.scene, 0, 45, "", TextStyle.MONEY, { align: "center" }); - + this.itemCostText.setOrigin(0.5, 0); this.itemCostText.setAlpha(0); this.add(this.itemCostText); @@ -559,7 +559,7 @@ class ModifierOption extends Phaser.GameObjects.Container { if (!this.modifierTypeOption.cost) { this.pb.setTexture("pb", `${this.getPbAtlasKey(0)}_open`); (this.scene as BattleScene).playSound("pb_rel"); - + this.scene.tweens.add({ targets: this.pb, duration: 500, diff --git a/src/ui/party-exp-bar.ts b/src/ui/party-exp-bar.ts index 0d913f7074c..506b8b5c825 100644 --- a/src/ui/party-exp-bar.ts +++ b/src/ui/party-exp-bar.ts @@ -37,7 +37,7 @@ export default class PartyExpBar extends Phaser.GameObjects.Container { this.pokemonIcon = (this.scene as BattleScene).addPokemonIcon(pokemon, -8, 15, 0, 0.5); this.pokemonIcon.setScale(0.5); - + this.add(this.pokemonIcon); // if we want to only display the level in the small frame @@ -70,7 +70,7 @@ export default class PartyExpBar extends Phaser.GameObjects.Container { resolve(); } }); - + this.setVisible(true); this.shown = true; }); diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index 13461592b16..c56bb0f3cc1 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -87,7 +87,7 @@ export default class PartyUiHandler extends MessageUiHandler { private transferMode: boolean; private transferOptionCursor: integer; private transferCursor: integer; - + private lastCursor: integer = 0; private selectCallback: PartySelectCallback | PartyModifierTransferSelectCallback; private selectFilter: PokemonSelectFilter | PokemonModifierTransferSelectFilter; @@ -158,7 +158,7 @@ export default class PartyUiHandler extends MessageUiHandler { this.partyMessageBox = partyMessageBox; const partyMessageText = addTextObject(this.scene, 8, 10, defaultMessage, TextStyle.WINDOW, { maxLines: 2 }); - + partyMessageText.setOrigin(0, 0); partyMessageBoxContainer.add(partyMessageText); @@ -403,7 +403,7 @@ export default class PartyUiHandler extends MessageUiHandler { ui.playSelect(); } } - + return true; } @@ -463,10 +463,10 @@ export default class PartyUiHandler extends MessageUiHandler { } } } - + setCursor(cursor: integer): boolean { let changed: boolean; - + if (this.optionsMode) { changed = this.optionsCursor !== cursor; let isScroll = false; @@ -544,7 +544,7 @@ export default class PartyUiHandler extends MessageUiHandler { if (this.cursor === 6) { return; } - + this.optionsMode = true; let optionsMessage = "Do what with this Pokémon?"; @@ -880,7 +880,7 @@ class PartySlot extends Phaser.GameObjects.Container { this.slotIndex = slotIndex; this.pokemon = pokemon; this.iconAnimHandler = iconAnimHandler; - + this.setup(partyUiMode, tmMoveId); } @@ -989,7 +989,7 @@ class PartySlot extends Phaser.GameObjects.Container { fusionShinyStar.setOrigin(0, 0); fusionShinyStar.setPosition(shinyStar.x, shinyStar.y); fusionShinyStar.setTint(getVariantTint(this.pokemon.fusionVariant)); - + slotInfoContainer.add(fusionShinyStar); } } diff --git a/src/ui/pokeball-tray.ts b/src/ui/pokeball-tray.ts index 3ac41b9148e..00a8cdadc97 100644 --- a/src/ui/pokeball-tray.ts +++ b/src/ui/pokeball-tray.ts @@ -76,7 +76,7 @@ export default class PokeballTray extends Phaser.GameObjects.Container { }); } }); - + this.setVisible(true); this.shown = true; diff --git a/src/ui/pokemon-info-container.ts b/src/ui/pokemon-info-container.ts index a5d74fbd9aa..9e590e2d750 100644 --- a/src/ui/pokemon-info-container.ts +++ b/src/ui/pokemon-info-container.ts @@ -13,7 +13,7 @@ import ConfirmUiHandler from "./confirm-ui-handler"; export default class PokemonInfoContainer extends Phaser.GameObjects.Container { private readonly infoWindowWidth = 104; - + private pokemonGenderLabelText: Phaser.GameObjects.Text; private pokemonGenderText: Phaser.GameObjects.Text; private pokemonAbilityLabelText: Phaser.GameObjects.Text; @@ -159,7 +159,7 @@ export default class PokemonInfoContainer extends Phaser.GameObjects.Container { this.pokemonShinyIcon.on("pointerover", () => (this.scene as BattleScene).ui.showTooltip(null, `Shiny${shinyDescriptor ? ` (${shinyDescriptor})` : ""}`, true)); this.pokemonShinyIcon.on("pointerout", () => (this.scene as BattleScene).ui.hideTooltip()); } - + this.pokemonFusionShinyIcon.setPosition(this.pokemonShinyIcon.x, this.pokemonShinyIcon.y); this.pokemonFusionShinyIcon.setVisible(doubleShiny); if (isFusion) { @@ -245,7 +245,7 @@ export default class PokemonInfoContainer extends Phaser.GameObjects.Container { (this.scene as BattleScene).ui.hideTooltip(); resolve(); } - }); + }); this.shown = false; }); diff --git a/src/ui/save-slot-select-ui-handler.ts b/src/ui/save-slot-select-ui-handler.ts index 063ea6e1c84..d5dda05a519 100644 --- a/src/ui/save-slot-select-ui-handler.ts +++ b/src/ui/save-slot-select-ui-handler.ts @@ -189,10 +189,10 @@ export default class SaveSlotSelectUiHandler extends MessageUiHandler { this.saveSlotSelectMessageBoxContainer.setVisible(!!text?.length); } - + setCursor(cursor: integer): boolean { const changed = super.setCursor(cursor); - + if (!this.cursorObj) { this.cursorObj = this.scene.add.nineslice(0, 0, "select_cursor_highlight_thick", null, 296, 44, 6, 6, 6, 6); this.cursorObj.setOrigin(0, 0); @@ -205,7 +205,7 @@ export default class SaveSlotSelectUiHandler extends MessageUiHandler { setScrollCursor(scrollCursor: integer): boolean { const changed = scrollCursor !== this.scrollCursor; - + if (changed) { this.scrollCursor = scrollCursor; this.setCursor(this.cursor); @@ -250,7 +250,7 @@ class SessionSlot extends Phaser.GameObjects.Container { super(scene, 0, slotId * 56); this.slotId = slotId; - + this.setup(); } diff --git a/src/ui/saving-icon-handler.ts b/src/ui/saving-icon-handler.ts index a7c09ba490c..f62b0dc6162 100644 --- a/src/ui/saving-icon-handler.ts +++ b/src/ui/saving-icon-handler.ts @@ -47,7 +47,7 @@ export default class SavingIconHandler extends Phaser.GameObjects.Container { }); } }); - + this.setVisible(true); this.shown = true; } @@ -74,7 +74,7 @@ export default class SavingIconHandler extends Phaser.GameObjects.Container { } } }); - + this.shown = false; } } diff --git a/src/ui/settings-ui-handler.ts b/src/ui/settings-ui-handler.ts index bec98197dcf..ba6515ad0c4 100644 --- a/src/ui/settings-ui-handler.ts +++ b/src/ui/settings-ui-handler.ts @@ -34,7 +34,7 @@ export default class SettingsUiHandler extends UiHandler { setup() { const ui = this.getUi(); - + this.settingsContainer = this.scene.add.container(1, -(this.scene.game.canvas.height / 6) + 1); this.settingsContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); @@ -106,7 +106,7 @@ export default class SettingsUiHandler extends UiHandler { show(args: any[]): boolean { super.show(args); - + const settings: object = localStorage.hasOwnProperty("settings") ? JSON.parse(localStorage.getItem("settings")) : {}; Object.keys(settingDefaults).forEach((setting, s) => this.setOptionCursor(s, settings.hasOwnProperty(setting) ? settings[setting] : settingDefaults[setting])); @@ -278,7 +278,7 @@ export default class SettingsUiHandler extends UiHandler { if (this.reloadRequired) { this.reloadRequired = false; this.scene.reset(true, false, true); - } + } } eraseCursor() { diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 7fd8cce55e5..b09928b724f 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -276,7 +276,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonUncaughtText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonUncaughtText); - + // The position should be set per language const starterInfoXPos = textSettings?.starterInfoXPos || 31; const starterInfoYOffset = textSettings?.starterInfoYOffset || 0; @@ -1684,12 +1684,12 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (this.starterMoveset.length < 4 && this.starterMoveset.length < availableStarterMoves.length) { this.starterMoveset.push(...availableStarterMoves.filter(sm => this.starterMoveset.indexOf(sm) === -1).slice(0, 4 - this.starterMoveset.length)); } - + // Remove duplicate moves this.starterMoveset = this.starterMoveset.filter( (move, i) => { return this.starterMoveset.indexOf(move) === i; - }) as StarterMoveset; + }) as StarterMoveset; const speciesForm = getPokemonSpeciesForm(species.speciesId, formIndex); diff --git a/src/ui/stats-container.ts b/src/ui/stats-container.ts index 283f79f01a8..54c10e0d9dc 100644 --- a/src/ui/stats-container.ts +++ b/src/ui/stats-container.ts @@ -66,7 +66,7 @@ export class StatsContainer extends Phaser.GameObjects.Container { const ivChartData = new Array(6).fill(null).map((_, i) => [ (ivs[ivChartStatIndexes[i]] / 31) * ivChartSize * ivChartStatCoordMultipliers[ivChartStatIndexes[i]][0], (ivs[ivChartStatIndexes[i]] / 31) * ivChartSize * ivChartStatCoordMultipliers[ivChartStatIndexes[i]][1] ] ).flat(); const lastIvChartData = this.statsIvsCache || defaultIvChartData; this.statsIvsCache = ivChartData.slice(0); - + this.ivStatValueTexts.map((t: BBCodeText, i: integer) => { let label = ivs[i].toString(); if (this.showDiff && originalIvs) { diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts index ba0c98b8941..1057a7f3b73 100644 --- a/src/ui/summary-ui-handler.ts +++ b/src/ui/summary-ui-handler.ts @@ -38,11 +38,11 @@ interface abilityContainer { /** An image displaying the summary label */ labelImage: Phaser.GameObjects.Image, /** The ability object */ - ability: Ability, + ability: Ability, /** The text object displaying the name of the ability */ nameText: Phaser.GameObjects.Text, - /** The text object displaying the description of the ability */ - descriptionText: Phaser.GameObjects.Text, + /** The text object displaying the description of the ability */ + descriptionText: Phaser.GameObjects.Text, } export default class SummaryUiHandler extends UiHandler { @@ -145,7 +145,7 @@ export default class SummaryUiHandler extends UiHandler { this.splicedIcon.setScale(0.75); this.splicedIcon.setInteractive(new Phaser.Geom.Rectangle(0, 0, 12, 15), Phaser.Geom.Rectangle.Contains); this.summaryContainer.add(this.splicedIcon); - + this.shinyIcon = this.scene.add.image(0, -54, "shiny_star"); this.shinyIcon.setVisible(false); this.shinyIcon.setOrigin(0, 0); @@ -203,7 +203,7 @@ export default class SummaryUiHandler extends UiHandler { statusBg.setOrigin(0, 0); this.statusContainer.add(statusBg); - + const statusLabel = addTextObject(this.scene, 3, 0, "Status", TextStyle.SUMMARY); statusLabel.setOrigin(0, 0); @@ -335,7 +335,7 @@ export default class SummaryUiHandler extends UiHandler { const doubleShiny = isFusion && this.pokemon.shiny && this.pokemon.fusionShiny; const baseVariant = !doubleShiny ? this.pokemon.getVariant() : this.pokemon.variant; - + this.shinyIcon.setPositionRelative(this.nameText, this.nameText.displayWidth + (this.splicedIcon.visible ? this.splicedIcon.displayWidth + 1 : 0) + 1, 3); this.shinyIcon.setTexture(`shiny_star${doubleShiny ? "_1" : ""}`); this.shinyIcon.setVisible(this.pokemon.isShiny()); @@ -412,7 +412,7 @@ export default class SummaryUiHandler extends UiHandler { const tempMove = this.pokemon.moveset[this.selectedMoveIndex]; this.pokemon.moveset[this.selectedMoveIndex] = this.pokemon.moveset[this.moveCursor]; this.pokemon.moveset[this.moveCursor] = tempMove; - + const selectedMoveRow = this.moveRowsContainer.getAt(this.selectedMoveIndex) as Phaser.GameObjects.Container; const switchMoveRow = this.moveRowsContainer.getAt(this.moveCursor) as Phaser.GameObjects.Container; @@ -449,7 +449,7 @@ export default class SummaryUiHandler extends UiHandler { break; case Button.LEFT: this.moveSelect = false; - this.setCursor(Page.STATS); + this.setCursor(Page.STATS); if (this.summaryUiMode === SummaryUiMode.LEARN_MOVE){ this.hideMoveEffect(); this.destroyBlinkCursor(); @@ -469,7 +469,7 @@ export default class SummaryUiHandler extends UiHandler { success = true; } else if (this.cursor === Page.PROFILE && this.pokemon.hasPassive()) { // if we're on the PROFILE page and this pokemon has a passive unlocked.. - // Since abilities are displayed by default, all we need to do is toggle visibility on all elements to show passives + // Since abilities are displayed by default, all we need to do is toggle visibility on all elements to show passives this.abilityContainer.nameText.setVisible(!this.abilityContainer.descriptionText.visible); this.abilityContainer.descriptionText.setVisible(!this.abilityContainer.descriptionText.visible); this.abilityContainer.labelImage.setVisible(!this.abilityContainer.labelImage.visible); @@ -530,7 +530,7 @@ export default class SummaryUiHandler extends UiHandler { setCursor(cursor: integer, overrideChanged: boolean = false): boolean { let changed: boolean = overrideChanged || this.moveCursor !== cursor; - + if (this.moveSelect) { this.moveCursor = cursor; @@ -624,9 +624,9 @@ export default class SummaryUiHandler extends UiHandler { duration: 250, onComplete: () => { if (forward){ - this.populatePageContainer(this.summaryPageContainer); + this.populatePageContainer(this.summaryPageContainer); if (this.cursor===Page.MOVES) { - this.moveCursorObj = null; + this.moveCursorObj = null; this.showMoveSelect(); this.showMoveEffect(); } @@ -668,7 +668,7 @@ export default class SummaryUiHandler extends UiHandler { this.descriptionScrollTween.remove(); this.descriptionScrollTween = null; } - + switch (page) { case Page.PROFILE: const profileContainer = this.scene.add.container(0, -pageBg.height); @@ -718,7 +718,7 @@ export default class SummaryUiHandler extends UiHandler { const luckLabelText = addTextObject(this.scene, 141, 28, "Luck:", TextStyle.SUMMARY_ALT); luckLabelText.setOrigin(0, 0); profileContainer.add(luckLabelText); - + const luckText = addTextObject(this.scene, 141 + luckLabelText.displayWidth + 2, 28, this.pokemon.getLuck().toString(), TextStyle.SUMMARY); luckText.setOrigin(0, 0); luckText.setTint(getVariantTint((Math.min(this.pokemon.getLuck() - 1, 2)) as Variant)); @@ -727,18 +727,18 @@ export default class SummaryUiHandler extends UiHandler { this.abilityContainer = { labelImage: this.scene.add.image(0, 0, "summary_profile_ability"), - ability: this.pokemon.getAbility(true), - nameText: null, + ability: this.pokemon.getAbility(true), + nameText: null, descriptionText: null}; - + const allAbilityInfo = [this.abilityContainer]; // Creates an array to iterate through // Only add to the array and set up displaying a passive if it's unlocked if (this.pokemon.hasPassive()) { this.passiveContainer = { labelImage: this.scene.add.image(0, 0, "summary_profile_passive"), - ability: this.pokemon.getPassiveAbility(), - nameText: null, - descriptionText: null}; + ability: this.pokemon.getPassiveAbility(), + nameText: null, + descriptionText: null}; allAbilityInfo.push(this.passiveContainer); // Sets up the pixel button prompt image @@ -749,7 +749,7 @@ export default class SummaryUiHandler extends UiHandler { profileContainer.add(this.abilityPrompt); } - allAbilityInfo.forEach(abilityInfo => { + allAbilityInfo.forEach(abilityInfo => { abilityInfo.labelImage.setPosition(17, 43); abilityInfo.labelImage.setVisible(true); abilityInfo.labelImage.setOrigin(0, 0); @@ -795,7 +795,7 @@ export default class SummaryUiHandler extends UiHandler { this.passiveContainer?.descriptionText.setVisible(false); const memoString = `${getBBCodeFrag(Utils.toReadableString(Nature[this.pokemon.getNature()]), TextStyle.SUMMARY_RED)}${getBBCodeFrag(" nature,", TextStyle.WINDOW_ALT)}\n${getBBCodeFrag(`${this.pokemon.metBiome === -1 ? "apparently " : ""}met at Lv`, TextStyle.WINDOW_ALT)}${getBBCodeFrag(this.pokemon.metLevel.toString(), TextStyle.SUMMARY_RED)}${getBBCodeFrag(",", TextStyle.WINDOW_ALT)}\n${getBBCodeFrag(getBiomeName(this.pokemon.metBiome), TextStyle.SUMMARY_RED)}${getBBCodeFrag(".", TextStyle.WINDOW_ALT)}`; - + const memoText = addBBCodeTextObject(this.scene, 7, 113, memoString, TextStyle.WINDOW_ALT); memoText.setOrigin(0, 0); profileContainer.add(memoText); @@ -830,13 +830,13 @@ export default class SummaryUiHandler extends UiHandler { const itemModifiers = this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier && (m as PokemonHeldItemModifier).pokemonId === this.pokemon.id, true) as PokemonHeldItemModifier[]; - + itemModifiers.forEach((item, i) => { const icon = item.getIcon(this.scene, true); icon.setPosition((i % 17) * 12 + 3, 14 * Math.floor(i / 17) + 15); statsContainer.add(icon); - + icon.setInteractive(new Phaser.Geom.Rectangle(0, 0, 32, 32), Phaser.Geom.Rectangle.Contains); icon.on("pointerover", () => (this.scene as BattleScene).ui.showTooltip(item.type.name, item.type.getDescription(this.scene), true)); icon.on("pointerout", () => (this.scene as BattleScene).ui.hideTooltip()); @@ -1017,7 +1017,7 @@ export default class SummaryUiHandler extends UiHandler { this.moveSelect = false; this.extraMoveRowContainer.setVisible(false); this.moveDescriptionText.setText(""); - + this.destroyBlinkCursor(); this.hideMoveEffect(); } diff --git a/src/ui/ui-theme.ts b/src/ui/ui-theme.ts index f7eaec9d483..3351efffa1d 100644 --- a/src/ui/ui-theme.ts +++ b/src/ui/ui-theme.ts @@ -42,7 +42,7 @@ export function addWindow(scene: BattleScene, x: number, y: number, width: numbe } const borderSize = scene.uiTheme ? 6 : 8; - + const window = scene.add.nineslice(x, y, `window_${scene.windowType}${getWindowVariantSuffix(windowVariant)}`, null, width, height, borderSize, borderSize, borderSize, borderSize); window.setOrigin(0, 0); diff --git a/src/ui/ui.ts b/src/ui/ui.ts index e5b74b33225..0643a6d6981 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -110,7 +110,7 @@ export default class UI extends Phaser.GameObjects.Container { private tooltipBg: Phaser.GameObjects.NineSlice; private tooltipTitle: Phaser.GameObjects.Text; private tooltipContent: Phaser.GameObjects.Text; - + private overlayActive: boolean; constructor(scene: BattleScene) { @@ -163,7 +163,7 @@ export default class UI extends Phaser.GameObjects.Container { this.achvBar = new AchvBar(this.scene as BattleScene); this.achvBar.setup(); - + (this.scene as BattleScene).uiContainer.add(this.achvBar); this.savingIcon = new SavingIconHandler(this.scene as BattleScene); diff --git a/src/ui/unavailable-modal-ui-handler.ts b/src/ui/unavailable-modal-ui-handler.ts index 102d98429e8..d1d28d6b036 100644 --- a/src/ui/unavailable-modal-ui-handler.ts +++ b/src/ui/unavailable-modal-ui-handler.ts @@ -59,9 +59,9 @@ export default class UnavailableModalUiHandler extends ModalUiHandler { } else { clearInterval(this.reconnectTimer); this.reconnectInterval = Math.min(this.reconnectInterval * 2, this.maxTime); // Set a max delay so it isn't infinite - this.reconnectTimer = + this.reconnectTimer = setTimeout( - () => this.tryReconnect(), + () => this.tryReconnect(), // Adds a random factor to avoid pendulum effect during long total breakdown this.reconnectInterval + (Math.random() * this.randVarianceTime)); } diff --git a/src/ui/vouchers-ui-handler.ts b/src/ui/vouchers-ui-handler.ts index ddc09ee5f9e..5d45c1d82d2 100644 --- a/src/ui/vouchers-ui-handler.ts +++ b/src/ui/vouchers-ui-handler.ts @@ -26,14 +26,14 @@ export default class VouchersUiHandler extends MessageUiHandler { constructor(scene: BattleScene, mode?: Mode) { super(scene, mode); - + this.itemsTotal = Object.keys(vouchers).length; this.scrollCursor = 0; } setup() { const ui = this.getUi(); - + this.vouchersContainer = this.scene.add.container(1, -(this.scene.game.canvas.height / 6) + 1); this.vouchersContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); @@ -49,7 +49,7 @@ export default class VouchersUiHandler extends MessageUiHandler { this.voucherIconsBg.setOrigin(0, 0); this.voucherIconsContainer = this.scene.add.container(6, headerBg.height + 6); - + this.voucherIcons = []; for (let a = 0; a < itemRows * itemCols; a++) { diff --git a/src/utils.ts b/src/utils.ts index 1afa8e37eda..fb0668516d6 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -7,12 +7,12 @@ export function toReadableString(str: string): string { export function randomString(length: integer, seeded: boolean = false) { const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; let result = ""; - + for (let i = 0; i < length; i++) { const randomIndex = seeded ? randSeedInt(characters.length) : Math.floor(Math.random() * characters.length); result += characters[randomIndex]; } - + return result; } @@ -20,7 +20,7 @@ export function shiftCharCodes(str: string, shiftCount: integer) { if (!shiftCount) { shiftCount = 0; } - + let newStr = ""; for (let i = 0; i < str.length; i++) { @@ -146,11 +146,11 @@ export function getPlayTimeString(totalSeconds: integer): string { } export function binToDec(input: string): integer { - const place: integer[] = []; + const place: integer[] = []; const binary: string[] = []; - + let decimalNum = 0; - + for (let i = 0; i < input.length; i++) { binary.push(input[i]); place.push(Math.pow(2, i)); @@ -325,7 +325,7 @@ export function fixedInt(value: integer): integer { export function rgbToHsv(r: integer, g: integer, b: integer) { const v = Math.max(r, g, b); const c = v - Math.min(r, g, b); - const h = c && ((v === r) ? (g - b) / c : ((v === g) ? 2 + (b - r) / c : 4 + (r - g) / c)); + const h = c && ((v === r) ? (g - b) / c : ((v === g) ? 2 + (b - r) / c : 4 + (r - g) / c)); return [ 60 * (h < 0 ? h + 6 : h), v && c / v, v]; } From 622885767d9216949729069b69987c6c907a5ee0 Mon Sep 17 00:00:00 2001 From: Greenlamp2 <44787002+Greenlamp2@users.noreply.github.com> Date: Fri, 24 May 2024 02:19:20 +0200 Subject: [PATCH 07/61] Enforce Consistent Spacing with ESLint's space-before-blocks and keyword-spacing Rules (#1308) * added rule no-trailing-spaces * added rule space-before-block * added rule keyword spacing --- .eslintrc | 4 ++- src/data/ability.ts | 24 +++++++------- src/data/api.ts | 2 +- src/data/battler-tags.ts | 4 +-- src/data/berry.ts | 2 +- src/data/move.ts | 50 ++++++++++++++--------------- src/data/nature.ts | 2 +- src/field/pokemon.ts | 32 +++++++++--------- src/phases.ts | 6 ++-- src/system/game-data.ts | 2 +- src/test/pokemonSprite.test.ts | 2 +- src/test/testUtils.ts | 2 +- src/ui/party-ui-handler.ts | 10 +++--- src/ui/starter-select-ui-handler.ts | 2 +- src/ui/summary-ui-handler.ts | 8 ++--- 15 files changed, 77 insertions(+), 75 deletions(-) diff --git a/.eslintrc b/.eslintrc index 86a5399b378..e1f6ba9ee32 100644 --- a/.eslintrc +++ b/.eslintrc @@ -26,7 +26,9 @@ "no-trailing-spaces": ["error", { // Disallows trailing whitespace at the end of lines "skipBlankLines": false, // Enforces the rule even on blank lines "ignoreComments": false // Enforces the rule on lines containing comments - }] + }], + "space-before-blocks": ["error", "always"], // Enforces a space before blocks + "keyword-spacing": ["error", { "before": true, "after": true }] // Enforces spacing before and after keywords } } ] diff --git a/src/data/ability.ts b/src/data/ability.ts index b26fbcbfed8..70c1279b9d9 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -254,7 +254,7 @@ export class PreDefendFullHpEndureAbAttr extends PreDefendAbAttr { applyPreDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, cancelled: Utils.BooleanHolder, args: any[]): boolean { if (pokemon.hp === pokemon.getMaxHp() && pokemon.getMaxHp() > 1 && //Checks if pokemon has wonder_guard (which forces 1hp) - (args[0] as Utils.NumberHolder).value >= pokemon.hp){ //Damage >= hp + (args[0] as Utils.NumberHolder).value >= pokemon.hp) { //Damage >= hp return pokemon.addTag(BattlerTagType.STURDY, 1); } @@ -499,11 +499,11 @@ export class FieldPriorityMoveImmunityAbAttr extends PreDefendAbAttr { applyMoveAttrs(IncrementMovePriorityAttr,attacker,null,move.getMove(),attackPriority); applyAbAttrs(IncrementMovePriorityAbAttr, attacker, null, move.getMove(), attackPriority); - if(move.getMove().moveTarget===MoveTarget.USER) { + if (move.getMove().moveTarget===MoveTarget.USER) { return false; } - if(attackPriority.value > 0 && !move.getMove().isMultiTarget()) { + if (attackPriority.value > 0 && !move.getMove().isMultiTarget()) { cancelled.value = true; return true; } @@ -955,7 +955,7 @@ export class MoveTypeChangePowerMultiplierAbAttr extends VariableMoveTypeAbAttr private newType: Type; private powerMultiplier: number; - constructor(matchType: Type, newType: Type, powerMultiplier: number){ + constructor(matchType: Type, newType: Type, powerMultiplier: number) { super(true); this.matchType = matchType; this.newType = newType; @@ -986,7 +986,7 @@ export class MoveTypeChangeAttr extends PreAttackAbAttr { private powerMultiplier: number; private condition: PokemonAttackCondition; - constructor(newType: Type, powerMultiplier: number, condition: PokemonAttackCondition){ + constructor(newType: Type, powerMultiplier: number, condition: PokemonAttackCondition) { super(true); this.newType = newType; this.powerMultiplier = powerMultiplier; @@ -1015,7 +1015,7 @@ export class DamageBoostAbAttr extends PreAttackAbAttr { private damageMultiplier: number; private condition: PokemonAttackCondition; - constructor(damageMultiplier: number, condition: PokemonAttackCondition){ + constructor(damageMultiplier: number, condition: PokemonAttackCondition) { super(true); this.damageMultiplier = damageMultiplier; this.condition = condition; @@ -1860,7 +1860,7 @@ export class MultCritAbAttr extends AbAttr { apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean { const critMult = args[0] as Utils.NumberHolder; - if (critMult.value > 1){ + if (critMult.value > 1) { critMult.value *= this.multAmount; return true; } @@ -1892,7 +1892,7 @@ export class ConditionalCritAbAttr extends AbAttr { apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean { const target = (args[1] as Pokemon); const move = (args[2] as Move); - if(!this.condition(pokemon,target,move)) { + if (!this.condition(pokemon,target,move)) { return false; } @@ -2410,8 +2410,8 @@ export class PostTurnHurtIfSleepingAbAttr extends PostTurnAbAttr { */ applyPostTurn(pokemon: Pokemon, passive: boolean, args: any[]): boolean | Promise { let hadEffect: boolean = false; - for(const opp of pokemon.getOpponents()) { - if(opp.status !== undefined && opp.status.effect === StatusEffect.SLEEP) { + for (const opp of pokemon.getOpponents()) { + if (opp.status !== undefined && opp.status.effect === StatusEffect.SLEEP) { opp.damageAndUpdate(Math.floor(Math.max(1, opp.getMaxHp() / 8)), HitResult.OTHER); pokemon.scene.queueMessage(i18next.t("abilityTriggers:badDreams", {pokemonName: `${getPokemonPrefix(opp)}${opp.name}`})); hadEffect = true; @@ -2440,7 +2440,7 @@ export class FetchBallAbAttr extends PostTurnAbAttr { */ applyPostTurn(pokemon: Pokemon, passive: boolean, args: any[]): boolean { const lastUsed = pokemon.scene.currentBattle.lastUsedPokeball; - if(lastUsed !== null && pokemon.isPlayer) { + if (lastUsed !== null && pokemon.isPlayer) { pokemon.scene.pokeballCounts[lastUsed]++; pokemon.scene.currentBattle.lastUsedPokeball = null; pokemon.scene.queueMessage(getPokemonMessage(pokemon, ` found a\n${getPokeballName(lastUsed)}!`)); @@ -2575,7 +2575,7 @@ export class ArenaTrapAbAttr extends CheckTrappedAbAttr { * @returns if enemy Pokemon is trapped or not */ applyCheckTrapped(pokemon: Pokemon, passive: boolean, trapped: Utils.BooleanHolder, otherPokemon: Pokemon, args: any[]): boolean { - if (otherPokemon.getTypes().includes(Type.GHOST)){ + if (otherPokemon.getTypes().includes(Type.GHOST)) { trapped.value = false; return false; } diff --git a/src/data/api.ts b/src/data/api.ts index 3e31f55fed0..2a88fc8d410 100644 --- a/src/data/api.ts +++ b/src/data/api.ts @@ -236,7 +236,7 @@ export async function printPokemon() { let generationIndex = 0; if (!region) { - while (++generationIndex < 9 && dexId > generationDexNumbers[generationIndex]){} + while (++generationIndex < 9 && dexId > generationDexNumbers[generationIndex]) {} } else { generationIndex = regionalForms.indexOf(region.toLowerCase()) + 6; } diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index 5a01e01f704..13f1ae2cf7c 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -178,7 +178,7 @@ export class FlinchedTag extends BattlerTag { } export class InterruptedTag extends BattlerTag { - constructor(sourceMove: Moves){ + constructor(sourceMove: Moves) { super(BattlerTagType.INTERRUPTED, BattlerTagLapseType.PRE_MOVE, 0, sourceMove); } @@ -585,7 +585,7 @@ export class MinimizeTag extends BattlerTag { lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean { //If a pokemon dynamaxes they lose minimized status - if(pokemon.isMax()){ + if (pokemon.isMax()) { return false; } return lapseType !== BattlerTagLapseType.CUSTOM || super.lapse(pokemon, lapseType); diff --git a/src/data/berry.ts b/src/data/berry.ts index 1a2ceb17fa8..e832ab0a43e 100644 --- a/src/data/berry.ts +++ b/src/data/berry.ts @@ -137,7 +137,7 @@ export function getBerryEffectFunc(berryType: BerryType): BerryEffectFunc { pokemon.battleData.berriesEaten.push(berryType); } const ppRestoreMove = pokemon.getMoveset().find(m => !m.getPpRatio()) ? pokemon.getMoveset().find(m => !m.getPpRatio()) : pokemon.getMoveset().find(m => m.getPpRatio() < 1); - if(ppRestoreMove !== undefined){ + if (ppRestoreMove !== undefined) { ppRestoreMove.ppUsed = Math.max(ppRestoreMove.ppUsed - 10, 0); pokemon.scene.queueMessage(getPokemonMessage(pokemon, ` restored PP to its move ${ppRestoreMove.getName()}\nusing its ${getBerryName(berryType)}!`)); } diff --git a/src/data/move.ts b/src/data/move.ts index 736e047e485..34ae05dbd33 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -923,7 +923,7 @@ export class HalfSacrificialAttr extends MoveEffectAttr { const cancelled = new Utils.BooleanHolder(false); // Check to see if the Pokemon has an ability that blocks non-direct damage applyAbAttrs(BlockNonDirectDamageAbAttr, user, cancelled); - if (!cancelled.value){ + if (!cancelled.value) { user.damageAndUpdate(Math.ceil(user.getMaxHp()/2), HitResult.OTHER, false, true, true); user.scene.queueMessage(getPokemonMessage(user, " cut its own HP to power up its move!")); // Queue recoil message } @@ -1054,7 +1054,7 @@ export class IgnoreWeatherTypeDebuffAttr extends MoveAttr { /** The {@linkcode WeatherType} this move ignores */ public weather: WeatherType; - constructor(weather: WeatherType){ + constructor(weather: WeatherType) { super(); this.weather = weather; } @@ -1542,9 +1542,9 @@ export class EatBerryAttr extends MoveEffectAttr { return false; } - if(this.chosenBerry === undefined) { // if no berry has been provided, pick a random berry from their inventory + if (this.chosenBerry === undefined) { // if no berry has been provided, pick a random berry from their inventory const heldBerries = this.getTargetHeldBerries(target); - if(heldBerries.length <= 0) { + if (heldBerries.length <= 0) { return false; } this.chosenBerry = heldBerries[user.randSeedInt(heldBerries.length)]; @@ -1555,7 +1555,7 @@ export class EatBerryAttr extends MoveEffectAttr { const preserve = new Utils.BooleanHolder(false); target.scene.applyModifiers(PreserveBerryModifier, target.isPlayer(), target, preserve); - if (!preserve.value){ // remove the eaten berry if not preserved + if (!preserve.value) { // remove the eaten berry if not preserved if (!--this.chosenBerry.stackCount) { target.scene.removeModifier(this.chosenBerry, !target.isPlayer()); } @@ -1592,7 +1592,7 @@ export class StealEatBerryAttr extends EatBerryAttr { const cancelled = new Utils.BooleanHolder(false); applyAbAttrs(BlockItemTheftAbAttr, target, cancelled); // check for abilities that block item theft - if(cancelled.value === true) { + if (cancelled.value === true) { return false; } @@ -2012,7 +2012,7 @@ export class PostVictoryStatChangeAttr extends MoveAttr { this.showMessage = showMessage; } applyPostVictory(user: Pokemon, target: Pokemon, move: Move): void { - if(this.condition && !this.condition(user, target, move)) { + if (this.condition && !this.condition(user, target, move)) { return false; } const statChangeAttr = new StatChangeAttr(this.stats, this.levels, this.showMessage); @@ -2257,7 +2257,7 @@ export class LessPPMorePowerAttr extends VariablePowerAttr { let ppRemains = ppMax - ppUsed; /** Reduce to 0 to avoid negative numbers if user has 1PP before attack and target has Ability.PRESSURE */ - if(ppRemains < 0) { + if (ppRemains < 0) { ppRemains = 0; } @@ -2713,7 +2713,7 @@ export class PresentPowerAttr extends VariablePowerAttr { export class KnockOffPowerAttr extends VariablePowerAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { - if(target.getHeldItems().length > 0){ + if (target.getHeldItems().length > 0) { (args[0] as Utils.NumberHolder).value *= 1.5; return true; } @@ -2744,7 +2744,7 @@ export class VariableAtkAttr extends MoveAttr { } export class TargetAtkUserAtkAttr extends VariableAtkAttr { - constructor(){ + constructor() { super(); } apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { @@ -2831,7 +2831,7 @@ export class MinimizeAccuracyAttr extends VariableAccuracyAttr { * @returns true if the function succeeds */ apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { - if (target.getTag(BattlerTagType.MINIMIZED)){ + if (target.getTag(BattlerTagType.MINIMIZED)) { const accuracy = args[0] as Utils.NumberHolder; accuracy.value = -1; @@ -3086,7 +3086,7 @@ export class TerrainPulseTypeAttr extends VariableMoveTypeAttr { * @returns true if the function succeeds */ apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { - if(!user.isGrounded) { + if (!user.isGrounded) { return false; } @@ -3140,7 +3140,7 @@ export class MatchUserTypeAttr extends VariableMoveTypeAttr { const userTypes = user.getTypes(true); - if(userTypes.includes(Type.STELLAR)) { // will not change to stellar type + if (userTypes.includes(Type.STELLAR)) { // will not change to stellar type const nonTeraTypes = user.getTypes(); type.value = nonTeraTypes[0]; return true; @@ -3594,7 +3594,7 @@ export class ProtectAttr extends AddBattlerTagAttr { while (moveHistory.length) { turnMove = moveHistory.shift(); - if(!allMoves[turnMove.move].getAttrs(ProtectAttr).length || turnMove.result !== MoveResult.SUCCESS) { + if (!allMoves[turnMove.move].getAttrs(ProtectAttr).length || turnMove.result !== MoveResult.SUCCESS) { break; } timesUsed++; @@ -3746,7 +3746,7 @@ export class RemoveArenaTrapAttr extends MoveEffectAttr { return false; } - if(this.targetBothSides){ + if (this.targetBothSides) { user.scene.arena.removeTagOnSide(ArenaTagType.SPIKES, ArenaTagSide.PLAYER); user.scene.arena.removeTagOnSide(ArenaTagType.TOXIC_SPIKES, ArenaTagSide.PLAYER); user.scene.arena.removeTagOnSide(ArenaTagType.STEALTH_ROCK, ArenaTagSide.PLAYER); @@ -3782,7 +3782,7 @@ export class RemoveScreensAttr extends MoveEffectAttr { return false; } - if(this.targetBothSides){ + if (this.targetBothSides) { user.scene.arena.removeTagOnSide(ArenaTagType.REFLECT, ArenaTagSide.PLAYER); user.scene.arena.removeTagOnSide(ArenaTagType.LIGHT_SCREEN, ArenaTagSide.PLAYER); user.scene.arena.removeTagOnSide(ArenaTagType.AURORA_VEIL, ArenaTagSide.PLAYER); @@ -3790,7 +3790,7 @@ export class RemoveScreensAttr extends MoveEffectAttr { user.scene.arena.removeTagOnSide(ArenaTagType.REFLECT, ArenaTagSide.ENEMY); user.scene.arena.removeTagOnSide(ArenaTagType.LIGHT_SCREEN, ArenaTagSide.ENEMY); user.scene.arena.removeTagOnSide(ArenaTagType.AURORA_VEIL, ArenaTagSide.ENEMY); - } else{ + } else { user.scene.arena.removeTagOnSide(ArenaTagType.REFLECT, target.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY); user.scene.arena.removeTagOnSide(ArenaTagType.LIGHT_SCREEN, target.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY); user.scene.arena.removeTagOnSide(ArenaTagType.AURORA_VEIL, target.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY); @@ -3821,13 +3821,13 @@ export class RevivalBlessingAttr extends MoveEffectAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise { return new Promise(resolve => { // If user is player, checks if the user has fainted pokemon - if(user instanceof PlayerPokemon + if (user instanceof PlayerPokemon && user.scene.getParty().findIndex(p => p.isFainted())>-1) { (user as PlayerPokemon).revivalBlessing().then(() => { resolve(true); }); // If user is enemy, checks that it is a trainer, and it has fainted non-boss pokemon in party - } else if(user instanceof EnemyPokemon + } else if (user instanceof EnemyPokemon && user.hasTrainer() && user.scene.getEnemyParty().findIndex(p => p.isFainted() && !p.isBoss()) > -1) { // Selects a random fainted pokemon @@ -3838,11 +3838,11 @@ export class RevivalBlessingAttr extends MoveEffectAttr { pokemon.heal(Math.min(Math.max(Math.ceil(Math.floor(0.5 * pokemon.getMaxHp())), 1), pokemon.getMaxHp())); user.scene.queueMessage(`${pokemon.name} was revived!`,0,true); - if(user.scene.currentBattle.double && user.scene.getEnemyParty().length > 1) { + if (user.scene.currentBattle.double && user.scene.getEnemyParty().length > 1) { const allyPokemon = user.getAlly(); - if(slotIndex<=1) { + if (slotIndex<=1) { user.scene.unshiftPhase(new SwitchSummonPhase(user.scene, pokemon.getFieldIndex(), slotIndex, false, false, false)); - } else if(allyPokemon.isFainted()){ + } else if (allyPokemon.isFainted()) { user.scene.unshiftPhase(new SwitchSummonPhase(user.scene, allyPokemon.getFieldIndex(), slotIndex, false, false,false)); } } @@ -3855,7 +3855,7 @@ export class RevivalBlessingAttr extends MoveEffectAttr { } getUserBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer { - if(user.hasTrainer() && user.scene.getEnemyParty().findIndex(p => p.isFainted() && !p.isBoss()) > -1) { + if (user.hasTrainer() && user.scene.getEnemyParty().findIndex(p => p.isFainted() && !p.isBoss()) > -1) { return 20; } @@ -3994,7 +3994,7 @@ export class RemoveTypeAttr extends MoveEffectAttr { return false; } - if(user.isTerastallized && user.getTeraType() === this.removedType) { // active tera types cannot be removed + if (user.isTerastallized && user.getTeraType() === this.removedType) { // active tera types cannot be removed return false; } @@ -4804,7 +4804,7 @@ export class FirstMoveCondition extends MoveCondition { export class hitsSameTypeAttr extends VariableMoveTypeMultiplierAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { const multiplier = args[0] as Utils.NumberHolder; - if (!user.getTypes().some(type => target.getTypes().includes(type))){ + if (!user.getTypes().some(type => target.getTypes().includes(type))) { multiplier.value = 0; return true; } diff --git a/src/data/nature.ts b/src/data/nature.ts index 4e1a22c36b0..c9709d5ee4c 100644 --- a/src/data/nature.ts +++ b/src/data/nature.ts @@ -35,7 +35,7 @@ export enum Nature { export function getNatureName(nature: Nature, includeStatEffects: boolean = false, forStarterSelect: boolean = false, ignoreBBCode: boolean = false, uiTheme: UiTheme = UiTheme.DEFAULT): string { let ret = Utils.toReadableString(Nature[nature]); //Translating nature - if(i18next.exists("nature:" + ret)){ + if (i18next.exists("nature:" + ret)) { ret = i18next.t("nature:" + ret as any); } if (includeStatEffects) { diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 72651d3a76e..9f081d73134 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -549,7 +549,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { try { sprite.play(key); tintSprite.play(key); - } catch(error: unknown) { + } catch (error: unknown) { console.error(`Couldn't play animation for '${key}'!\nIs the image for this Pokemon missing?\n`, error); return false; @@ -1330,10 +1330,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { break; } let weight = levelMove[0]; - if (weight === 0){ // Evo Moves + if (weight === 0) { // Evo Moves weight = 50; } - if (weight === 1 && allMoves[levelMove[1]].power >= 80){ // Assume level 1 moves with 80+ BP are "move reminder" moves and bump their weight + if (weight === 1 && allMoves[levelMove[1]].power >= 80) { // Assume level 1 moves with 80+ BP are "move reminder" moves and bump their weight weight = 40; } if (allMoves[levelMove[1]].name.endsWith(" (N)")) { @@ -1379,7 +1379,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } } const moveId = speciesEggMoves[this.species.getRootSpeciesId()][3]; - if (this.level >= 170 && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(" (N)") && !this.isBoss()){ // No rare egg moves before e4 + if (this.level >= 170 && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(" (N)") && !this.isBoss()) { // No rare egg moves before e4 movePool.push([moveId, 30]); } if (this.fusionSpecies) { @@ -1390,14 +1390,14 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } } const moveId = speciesEggMoves[this.fusionSpecies.getRootSpeciesId()][3]; - if (this.level >= 170 && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(" (N)") && !this.isBoss()){// No rare egg moves before e4 + if (this.level >= 170 && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(" (N)") && !this.isBoss()) {// No rare egg moves before e4 movePool.push([moveId, 30]); } } } } - if (this.isBoss()){ // Bosses never get self ko moves + if (this.isBoss()) { // Bosses never get self ko moves movePool = movePool.filter(m => !allMoves[m[0]].getAttrs(SacrificialAttr).length); } movePool = movePool.filter(m => !allMoves[m[0]].getAttrs(SacrificialAttrOnHit).length); @@ -1717,7 +1717,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { if (!isTypeImmune) { damage.value = Math.ceil(((((2 * source.level / 5 + 2) * power.value * sourceAtk.value / targetDef.value) / 50) + 2) * stabMultiplier.value * typeMultiplier.value * arenaAttackTypeMultiplier.value * screenMultiplier.value * ((this.scene.randBattleSeedInt(15) + 85) / 100) * criticalMultiplier.value); if (isPhysical && source.status && source.status.effect === StatusEffect.BURN) { - if(!move.getAttrs(BypassBurnDamageReductionAttr).length) { + if (!move.getAttrs(BypassBurnDamageReductionAttr).length) { const burnDamageReductionCancelled = new Utils.BooleanHolder(false); applyAbAttrs(BypassBurnDamageReductionAbAttr, source, burnDamageReductionCancelled); if (!burnDamageReductionCancelled.value) { @@ -1878,7 +1878,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { const surviveDamage = new Utils.BooleanHolder(false); if (!preventEndure && this.hp - damage <= 0) { - if(this.hp >= 1 && this.getTag(BattlerTagType.ENDURING)) { + if (this.hp >= 1 && this.getTag(BattlerTagType.ENDURING)) { surviveDamage.value = this.lapseTag(BattlerTagType.ENDURING); } else if (this.hp > 1 && this.getTag(BattlerTagType.STURDY)) { surviveDamage.value = this.lapseTag(BattlerTagType.STURDY); @@ -2072,7 +2072,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.formIndex = Math.max(this.species.forms.findIndex(f => f.formKey === formChange.formKey), 0); this.generateName(); const abilityCount = this.getSpeciesForm().getAbilityCount(); - if (this.abilityIndex >= abilityCount){// Shouldn't happen + if (this.abilityIndex >= abilityCount) {// Shouldn't happen this.abilityIndex = abilityCount - 1; } this.scene.gameData.setPokemonSeen(this, false); @@ -2920,9 +2920,9 @@ export class PlayerPokemon extends Pokemon { revivalBlessing(): Promise { return new Promise(resolve => { this.scene.ui.setMode(Mode.PARTY, PartyUiMode.REVIVAL_BLESSING, this.getFieldIndex(), (slotIndex:integer, option: PartyOption) => { - if(slotIndex >= 0 && slotIndex<6) { + if (slotIndex >= 0 && slotIndex<6) { const pokemon = this.scene.getParty()[slotIndex]; - if(!pokemon || !pokemon.isFainted()) { + if (!pokemon || !pokemon.isFainted()) { resolve(); } @@ -2931,13 +2931,13 @@ export class PlayerPokemon extends Pokemon { pokemon.heal(Math.min(Math.max(Math.ceil(Math.floor(0.5 * pokemon.getMaxHp())), 1), pokemon.getMaxHp())); this.scene.queueMessage(`${pokemon.name} was revived!`,0,true); - if(this.scene.currentBattle.double && this.scene.getParty().length > 1) { + if (this.scene.currentBattle.double && this.scene.getParty().length > 1) { const allyPokemon = this.getAlly(); - if(slotIndex<=1) { + if (slotIndex<=1) { // Revived ally pokemon this.scene.unshiftPhase(new SwitchSummonPhase(this.scene, pokemon.getFieldIndex(), slotIndex, false, false, true)); this.scene.unshiftPhase(new ToggleDoublePositionPhase(this.scene, true)); - } else if(allyPokemon.isFainted()) { + } else if (allyPokemon.isFainted()) { // Revived party pokemon, and ally pokemon is fainted this.scene.unshiftPhase(new SwitchSummonPhase(this.scene, allyPokemon.getFieldIndex(), slotIndex, false, false, true)); this.scene.unshiftPhase(new ToggleDoublePositionPhase(this.scene, true)); @@ -2992,12 +2992,12 @@ export class PlayerPokemon extends Pokemon { this.generateName(); if (!isFusion) { const abilityCount = this.getSpeciesForm().getAbilityCount(); - if (this.abilityIndex >= abilityCount){ // Shouldn't happen + if (this.abilityIndex >= abilityCount) { // Shouldn't happen this.abilityIndex = abilityCount - 1; } } else { const abilityCount = this.getFusionSpeciesForm().getAbilityCount(); - if (this.fusionAbilityIndex >= abilityCount){// Shouldn't happen + if (this.fusionAbilityIndex >= abilityCount) {// Shouldn't happen this.fusionAbilityIndex = abilityCount - 1; } } diff --git a/src/phases.ts b/src/phases.ts index a82d7865b02..3189e670ebf 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -1802,7 +1802,7 @@ export class CommandPhase extends FieldPhase { console.log(moveTargets, playerPokemon.name); if (moveTargets.targets.length <= 1 || moveTargets.multiple) { turnCommand.move.targets = moveTargets.targets; - } else if(playerPokemon.getTag(BattlerTagType.CHARGING) && playerPokemon.getMoveQueue().length >= 1) { + } else if (playerPokemon.getTag(BattlerTagType.CHARGING) && playerPokemon.getMoveQueue().length >= 1) { turnCommand.move.targets = playerPokemon.getMoveQueue()[0].targets; } else { this.scene.unshiftPhase(new SelectTargetPhase(this.scene, this.fieldIndex)); @@ -1902,7 +1902,7 @@ export class CommandPhase extends FieldPhase { this.scene.currentBattle.turnCommands[this.fieldIndex - 1].skip = true; } } else if (trapTag) { - if(trapTag.sourceMove === Moves.INGRAIN && this.scene.getPokemonById(trapTag.sourceId).isOfType(Type.GHOST)) { + if (trapTag.sourceMove === Moves.INGRAIN && this.scene.getPokemonById(trapTag.sourceId).isOfType(Type.GHOST)) { success = true; this.scene.currentBattle.turnCommands[this.fieldIndex] = isSwitch ? { command: Command.POKEMON, cursor: cursor, args: args } @@ -2578,7 +2578,7 @@ export class MovePhase extends BattlePhase { showMoveText(): void { if (this.move.getMove().getAttrs(ChargeAttr).length) { const lastMove = this.pokemon.getLastXMoves() as TurnMove[]; - if (!lastMove.length || lastMove[0].move !== this.move.getMove().id || lastMove[0].result !== MoveResult.OTHER){ + if (!lastMove.length || lastMove[0].move !== this.move.getMove().id || lastMove[0].result !== MoveResult.OTHER) { this.scene.queueMessage(getPokemonMessage(this.pokemon, ` used\n${this.move.getName()}!`), 500); return; } diff --git a/src/system/game-data.ts b/src/system/game-data.ts index 0df3f96fa7e..5bc0df19aa2 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -908,7 +908,7 @@ export class GameData { v = []; } for (const md of v) { - if(md?.className === "ExpBalanceModifier") { // Temporarily limit EXP Balance until it gets reworked + if (md?.className === "ExpBalanceModifier") { // Temporarily limit EXP Balance until it gets reworked md.stackCount = Math.min(md.stackCount, 4); } ret.push(new PersistentModifierData(md, player)); diff --git a/src/test/pokemonSprite.test.ts b/src/test/pokemonSprite.test.ts index 264977ecec2..abb6cff483f 100644 --- a/src/test/pokemonSprite.test.ts +++ b/src/test/pokemonSprite.test.ts @@ -79,7 +79,7 @@ describe("check if every variant's sprite are correctly set", () => { } } else if (!mlist.hasOwnProperty(name)) { errors.push(`named - missing key ${name} in masterlist for ${trimmedFilePath}`); - }else { + } else { const raw = fs.readFileSync(filePath, {encoding: "utf8", flag: "r"}); const data = JSON.parse(raw); for (const key of Object.keys(data)) { diff --git a/src/test/testUtils.ts b/src/test/testUtils.ts index 481efbed032..f3ee634cd76 100644 --- a/src/test/testUtils.ts +++ b/src/test/testUtils.ts @@ -3,7 +3,7 @@ const path = require("path"); export function getAppRootDir () { let currentDir = __dirname; - while(!fs.existsSync(path.join(currentDir, "package.json"))) { + while (!fs.existsSync(path.join(currentDir, "package.json"))) { currentDir = path.join(currentDir, ".."); } return currentDir; diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index c56bb0f3cc1..cc5fe54818b 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -107,7 +107,7 @@ export default class PartyUiHandler extends MessageUiHandler { }; public static FilterFainted = (pokemon: PlayerPokemon) => { - if(!pokemon.isFainted()) { + if (!pokemon.isFainted()) { return `${pokemon.name} still has energy\nto battle!`; } return null; @@ -423,13 +423,13 @@ export default class PartyUiHandler extends MessageUiHandler { } break; case Button.RIGHT: - if (slotCount === battlerCount){ + if (slotCount === battlerCount) { success = this.setCursor(6); break; - } else if (battlerCount >= 2 && slotCount > battlerCount && this.getCursor() === 0 && this.lastCursor === 1){ + } else if (battlerCount >= 2 && slotCount > battlerCount && this.getCursor() === 0 && this.lastCursor === 1) { success = this.setCursor(2); break; - } else if (slotCount > battlerCount && this.cursor < battlerCount){ + } else if (slotCount > battlerCount && this.cursor < battlerCount) { success = this.setCursor(this.lastCursor < 6 ? this.lastCursor || battlerCount : battlerCount); break; } @@ -717,7 +717,7 @@ export default class PartyUiHandler extends MessageUiHandler { case PartyOption.MOVE_3: case PartyOption.MOVE_4: const move = pokemon.moveset[option - PartyOption.MOVE_1]; - if(this.showMovePp) { + if (this.showMovePp) { const maxPP = move.getMovePp(); const currPP = maxPP - move.ppUsed; optionName = `${move.getName()} ${currPP}/${maxPP}`; diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index b09928b724f..a8bc760287f 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -1392,7 +1392,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { //Growth translate let growthReadable = Utils.toReadableString(GrowthRate[species.growthRate]); const growthAux = growthReadable.replace(" ", "_"); - if(i18next.exists("growth:" + growthAux)){ + if (i18next.exists("growth:" + growthAux)) { growthReadable = i18next.t("growth:"+ growthAux as any); } this.pokemonGrowthRateText.setText(growthReadable); diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts index 1057a7f3b73..a34de7d84f0 100644 --- a/src/ui/summary-ui-handler.ts +++ b/src/ui/summary-ui-handler.ts @@ -310,7 +310,7 @@ export default class SummaryUiHandler extends UiHandler { this.splicedIcon.on("pointerout", () => (this.scene as BattleScene).ui.hideTooltip()); } - if(this.scene.gameData.starterData[this.pokemon.species.getRootSpeciesId()].classicWinCount > 0 && this.scene.gameData.starterData[this.pokemon.species.getRootSpeciesId(true)].classicWinCount > 0) { + if (this.scene.gameData.starterData[this.pokemon.species.getRootSpeciesId()].classicWinCount > 0 && this.scene.gameData.starterData[this.pokemon.species.getRootSpeciesId(true)].classicWinCount > 0) { this.championRibbon.setVisible(true); } else { this.championRibbon.setVisible(false); @@ -450,7 +450,7 @@ export default class SummaryUiHandler extends UiHandler { case Button.LEFT: this.moveSelect = false; this.setCursor(Page.STATS); - if (this.summaryUiMode === SummaryUiMode.LEARN_MOVE){ + if (this.summaryUiMode === SummaryUiMode.LEARN_MOVE) { this.hideMoveEffect(); this.destroyBlinkCursor(); success = true; @@ -623,7 +623,7 @@ export default class SummaryUiHandler extends UiHandler { x: forward ? "-=214" : "+=214", duration: 250, onComplete: () => { - if (forward){ + if (forward) { this.populatePageContainer(this.summaryPageContainer); if (this.cursor===Page.MOVES) { this.moveCursorObj = null; @@ -1022,7 +1022,7 @@ export default class SummaryUiHandler extends UiHandler { this.hideMoveEffect(); } - destroyBlinkCursor(){ + destroyBlinkCursor() { if (this.moveCursorBlinkTimer) { this.moveCursorBlinkTimer.destroy(); this.moveCursorBlinkTimer = null; From 6168b7776121c0a931263238deaed97a097d8c1b Mon Sep 17 00:00:00 2001 From: GhostFlys Date: Fri, 24 May 2024 23:25:57 +0800 Subject: [PATCH 08/61] Update Chinese battle.ts and egg-list-ui-handler.ts (#1314) * Update battle.ts update some lines of translation make some translation more official * Update egg-list-ui-handler.ts make text position more accurate --- src/locales/zh_CN/battle.ts | 14 +++++++------- src/ui/egg-list-ui-handler.ts | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/locales/zh_CN/battle.ts b/src/locales/zh_CN/battle.ts index 0bd86bcc6d5..6eb400f5176 100644 --- a/src/locales/zh_CN/battle.ts +++ b/src/locales/zh_CN/battle.ts @@ -4,20 +4,20 @@ export const battle: SimpleTranslationEntries = { "bossAppeared": "{{bossName}} 出现了。", "trainerAppeared": "{{trainerName}}\n想要和你对战!", "trainerAppearedDouble": "{{trainerName}}\n想要和你对战!", - "trainerSendOut": "{{trainerName}} sent out\n{{pokemonName}}!", + "trainerSendOut": "{{trainerName}} 派出了\n{{pokemonName}}!", "singleWildAppeared": "一只野生 {{pokemonName}} 出现了!", "multiWildAppeared": "野生的 {{pokemonName1}}\n和 {{pokemonName2}} 出现了!", "playerComeBack": "回来吧, {{pokemonName}}!", "trainerComeBack": "{{trainerName}} 收回了 {{pokemonName}}!", "playerGo": "去吧! {{pokemonName}}!", - "trainerGo": "{{trainerName}} 派出了 {{pokemonName}}!", + "trainerGo": "{{trainerName}} 派出了\n{{pokemonName}}!", "switchQuestion": "要更换\n{{pokemonName}}吗?", "trainerDefeated": "你击败了\n{{trainerName}}!", - "moneyWon": "You got\n₽{{moneyAmount}} for winning!", + "moneyWon": "你赢得了\n₽{{moneyAmount}}!", "pokemonCaught": "{{pokemonName}} 被抓住了!", - "partyFull": "Your party is full.\nRelease a Pokémon to make room for {{pokemonName}}?", + "partyFull": "你的队伍已满员.是否放生其他宝可梦\n为 {{pokemonName}} 腾出空间?", "pokemon": "宝可梦", - "sendOutPokemon": "上吧! {{pokemonName}}!", + "sendOutPokemon": "上吧!\n{{pokemonName}}!", "hitResultCriticalHit": "击中了要害!", "hitResultSuperEffective": "效果拔群!", "hitResultNotVeryEffective": "收效甚微…", @@ -26,7 +26,7 @@ export const battle: SimpleTranslationEntries = { "attackFailed": "但是失败了!", "attackHitsCount": "击中 {{count}} 次!", "expGain": "{{pokemonName}} 获得了 {{exp}} 经验值!", - "levelUp": "{{pokemonName}} 升级到 Lv. {{level}}!", + "levelUp": "{{pokemonName}} 升级到 Lv.{{level}}!", "learnMove": "{{pokemonName}} 学会了 {{moveName}}!", "learnMovePrompt": "{{pokemonName}} 想要学习 {{moveName}}。", "learnMoveLimitReached": "但是,{{pokemonName}} 已经学会了\n四个技能", @@ -35,7 +35,7 @@ export const battle: SimpleTranslationEntries = { "learnMoveNotLearned": "{{pokemonName}} 没有学会 {{moveName}}。", "learnMoveForgetQuestion": "要忘记哪个技能?", "learnMoveForgetSuccess": "{{pokemonName}} 忘记了\n如何使用 {{moveName}}。", - "countdownPoof": "@d{32}1, @d{15}2, @d{15}和@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}噗!", + "countdownPoof": "@d{32}1, @d{15}2 @d{15}… @d{15}… @d{15}@s{pb_bounce_1}空!", "learnMoveAnd": "然后...", "levelCapUp": "等级上限提升到 {{levelCap}}!", "moveNotImplemented": "{{moveName}} 尚未实装,无法选择。", diff --git a/src/ui/egg-list-ui-handler.ts b/src/ui/egg-list-ui-handler.ts index 522e91d84e6..92c7faf5477 100644 --- a/src/ui/egg-list-ui-handler.ts +++ b/src/ui/egg-list-ui-handler.ts @@ -49,7 +49,7 @@ export default class EggListUiHandler extends MessageUiHandler { this.iconAnimHandler = new PokemonIconAnimHandler(); this.iconAnimHandler.setup(this.scene); - this.eggNameText = addTextObject(this.scene, 8, 66, "", TextStyle.SUMMARY); + this.eggNameText = addTextObject(this.scene, 8, 68, "", TextStyle.SUMMARY); this.eggNameText.setOrigin(0, 0); this.eggListContainer.add(this.eggNameText); From 34e9236874197787616a7e87d9a4ebf7076f1da7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E9=BE=9F?= <1033008052@qq.com> Date: Sat, 25 May 2024 00:13:51 +0800 Subject: [PATCH 09/61] Make zh_CN translation easier to understand (#1292) * Update modifier-type.ts * Update menu.ts * Update tutorial.ts --- src/locales/zh_CN/menu.ts | 10 +++++----- src/locales/zh_CN/modifier-type.ts | 4 ++-- src/locales/zh_CN/tutorial.ts | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/locales/zh_CN/menu.ts b/src/locales/zh_CN/menu.ts index 63b34811cc1..cdd1862e0f3 100644 --- a/src/locales/zh_CN/menu.ts +++ b/src/locales/zh_CN/menu.ts @@ -18,13 +18,13 @@ export const menu: SimpleTranslationEntries = { "login": "登录", "register": "注册", "emptyUsername": "用户名不能为空", - "invalidLoginUsername": "提供的用户名无效", + "invalidLoginUsername": "输入的用户名无效", "invalidRegisterUsername": "用户名只能包含字母、数字或下划线", - "invalidLoginPassword": "提供的密码无效", + "invalidLoginPassword": "输入的密码无效", "invalidRegisterPassword": "密码必须至少包含 6 个字符", - "usernameAlreadyUsed": "提供的用户名已被使用", - "accountNonExistent": "提供的用户不存在", - "unmatchingPassword": "提供的密码不匹配", + "usernameAlreadyUsed": "输入的用户名已被使用", + "accountNonExistent": "输入的用户不存在", + "unmatchingPassword": "输入的密码不匹配", "passwordNotMatchingConfirmPassword": "密码必须与确认密码一致", "confirmPassword": "确认密码", "registrationAgeWarning": "注册即表示您确认您已年满 13 岁。", diff --git a/src/locales/zh_CN/modifier-type.ts b/src/locales/zh_CN/modifier-type.ts index 8d29fa599e8..056e6546399 100644 --- a/src/locales/zh_CN/modifier-type.ts +++ b/src/locales/zh_CN/modifier-type.ts @@ -17,7 +17,7 @@ export const modifierType: ModifierTypeTranslationEntries = { } }, "PokemonHpRestoreModifierType": { - description: "为一只宝可梦回复 {{restorePoints}} HP 或 {{restorePercent}}% HP,取最大值", + description: "为一只宝可梦回复 {{restorePoints}} HP 或 {{restorePercent}}% HP,取较大值", extra: { "fully": "为一只宝可梦回复全部HP", "fullyWithStatus": "为一只宝可梦回复全部HP并消除所有负面\n状态", @@ -196,7 +196,7 @@ export const modifierType: ModifierTypeTranslationEntries = { "MULTI_LENS": { name: "多重镜" }, "HEALING_CHARM": { name: "治愈护符", description: "HP回复量增加10% (含复活)" }, - "CANDY_JAR": { name: "糖果罐", description: "神奇糖果提供的升级提升1级" }, + "CANDY_JAR": { name: "糖果罐", description: "神奇糖果提供的升级额外增加1级" }, "BERRY_POUCH": { name: "树果袋", description: "使用树果时有33%的几率不会消耗树果" }, diff --git a/src/locales/zh_CN/tutorial.ts b/src/locales/zh_CN/tutorial.ts index 2ddd6013fff..0e53c24b420 100644 --- a/src/locales/zh_CN/tutorial.ts +++ b/src/locales/zh_CN/tutorial.ts @@ -4,7 +4,7 @@ export const tutorial: SimpleTranslationEntries = { "intro": `欢迎来到PokéRogue!这是一款以战斗为核心的融合了roguelite元素的宝可梦同人游戏。 $本游戏未进行商业化,我们没有\nPokémon或Pokémon使用的版 $权资产的所有权。 - $游戏仍在开发中,但已可完整游玩。如需报\n告错误,请使用 Discord 社区。 + $游戏仍在开发中,但已可完整游玩。如需报\n告错误,请通过 Discord 社区。 $如果游戏运行缓慢,请确保在浏览器设置中\n打开了“硬件加速”。`, "accessMenu": "在等待输入时,按 M 或 Escape 键可访\n问菜单。菜单包含设置和各种功能。", From a9af2bd6ff80f84c35b622ccd949acec0a58d46f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E9=BE=9F?= <1033008052@qq.com> Date: Sat, 25 May 2024 00:15:11 +0800 Subject: [PATCH 10/61] Update pokemon.ts (#1297) --- src/locales/zh_TW/pokemon.ts | 56 ++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/locales/zh_TW/pokemon.ts b/src/locales/zh_TW/pokemon.ts index 6a0ee4f319e..cee85d8905b 100644 --- a/src/locales/zh_TW/pokemon.ts +++ b/src/locales/zh_TW/pokemon.ts @@ -31,7 +31,7 @@ export const pokemon: SimpleTranslationEntries = { "sandslash": "穿山王", "nidoran_f": "尼多蘭", "nidorina": "尼多娜", - "nidoqueen": "尼多後", + "nidoqueen": "尼多后", "nidoran_m": "尼多朗", "nidorino": "尼多力諾", "nidoking": "尼多王", @@ -57,7 +57,7 @@ export const pokemon: SimpleTranslationEntries = { "psyduck": "可達鴨", "golduck": "哥達鴨", "mankey": "猴怪", - "primeape": "火暴猴", + "primeape": "火爆猴", "growlithe": "卡蒂狗", "arcanine": "風速狗", "poliwag": "蚊香蝌蚪", @@ -76,7 +76,7 @@ export const pokemon: SimpleTranslationEntries = { "tentacruel": "毒刺水母", "geodude": "小拳石", "graveler": "隆隆石", - "golem": "隆隆巖", + "golem": "隆隆岩", "ponyta": "小火馬", "rapidash": "烈焰馬", "slowpoke": "呆呆獸", @@ -95,7 +95,7 @@ export const pokemon: SimpleTranslationEntries = { "gastly": "鬼斯", "haunter": "鬼斯通", "gengar": "耿鬼", - "onix": "大巖蛇", + "onix": "大岩蛇", "drowzee": "催眠貘", "hypno": "引夢貘人", "krabby": "大鉗蟹", @@ -156,7 +156,7 @@ export const pokemon: SimpleTranslationEntries = { "bayleef": "月桂葉", "meganium": "大竺葵", "cyndaquil": "火球鼠", - "quilava": "火巖鼠", + "quilava": "火岩鼠", "typhlosion": "火暴獸", "totodile": "小鋸鱷", "croconaw": "藍鱷", @@ -185,7 +185,7 @@ export const pokemon: SimpleTranslationEntries = { "bellossom": "美麗花", "marill": "瑪力露", "azumarill": "瑪力露麗", - "sudowoodo": "樹纔怪", + "sudowoodo": "樹才怪", "politoed": "蚊香蛙皇", "hoppip": "毽子草", "skiploom": "毽子花", @@ -233,7 +233,7 @@ export const pokemon: SimpleTranslationEntries = { "kingdra": "刺龍王", "phanpy": "小小象", "donphan": "頓甲", - "porygon2": "多邊獸2型", + "porygon2": "多邊獸Ⅱ", "stantler": "驚角鹿", "smeargle": "圖圖犬", "tyrogue": "無畏小子", @@ -338,7 +338,7 @@ export const pokemon: SimpleTranslationEntries = { "zangoose": "貓鼬斬", "seviper": "飯匙蛇", "lunatone": "月石", - "solrock": "太陽巖", + "solrock": "太陽岩", "barboach": "泥泥鰍", "whiscash": "鯰魚王", "corphish": "龍蝦小兵", @@ -438,11 +438,11 @@ export const pokemon: SimpleTranslationEntries = { "skuntank": "坦克臭鼬", "bronzor": "銅鏡怪", "bronzong": "青銅鐘", - "bonsly": "盆纔怪", + "bonsly": "盆才怪", "mime_jr": "魔尼尼", "happiny": "小福蛋", "chatot": "聒噪鳥", - "spiritomb": "花巖怪", + "spiritomb": "花岩怪", "gible": "圓陸鯊", "gabite": "尖牙陸鯊", "garchomp": "烈咬陸鯊", @@ -474,12 +474,12 @@ export const pokemon: SimpleTranslationEntries = { "glaceon": "冰伊布", "gliscor": "天蠍王", "mamoswine": "象牙豬", - "porygon_z": "多邊獸乙型", + "porygon_z": "多邊獸Z", "gallade": "艾路雷朵", "probopass": "大朝北鼻", "dusknoir": "黑夜魔靈", "froslass": "雪妖女", - "rotom": "洛託姆", + "rotom": "洛托姆", "uxie": "由克希", "mesprit": "艾姆利多", "azelf": "亞克諾姆", @@ -525,8 +525,8 @@ export const pokemon: SimpleTranslationEntries = { "blitzle": "斑斑馬", "zebstrika": "雷電斑馬", "roggenrola": "石丸子", - "boldore": "地幔巖", - "gigalith": "龐巖怪", + "boldore": "地幔岩", + "gigalith": "龐岩怪", "woobat": "滾滾蝙蝠", "swoobat": "心蝙蝠", "drilbur": "螺釘地鼠", @@ -544,7 +544,7 @@ export const pokemon: SimpleTranslationEntries = { "swadloon": "寶包繭", "leavanny": "保姆蟲", "venipede": "百足蜈蚣", - "whirlipede": "車輪球", + "whirlipede": "車輪毬", "scolipede": "蜈蚣王", "cottonee": "木棉球", "whimsicott": "風妖精", @@ -558,12 +558,12 @@ export const pokemon: SimpleTranslationEntries = { "darmanitan": "達摩狒狒", "maractus": "沙鈴仙人掌", "dwebble": "石居蟹", - "crustle": "巖殿居蟹", + "crustle": "岩殿居蟹", "scraggy": "滑滑小子", "scrafty": "頭巾混混", "sigilyph": "象徵鳥", "yamask": "哭哭面具", - "cofagrigus": "迭失棺", + "cofagrigus": "死神棺", "tirtouga": "原蓋海龜", "carracosta": "肋骨海龜", "archen": "始祖小鳥", @@ -650,7 +650,7 @@ export const pokemon: SimpleTranslationEntries = { "keldeo": "凱路迪歐", "meloetta": "美洛耶塔", "genesect": "蓋諾賽克特", - "chespin": "哈力慄", + "chespin": "哈力栗", "quilladin": "胖胖哈力", "chesnaught": "布里卡隆", "fennekin": "火狐狸", @@ -744,8 +744,8 @@ export const pokemon: SimpleTranslationEntries = { "oricorio": "花舞鳥", "cutiefly": "萌虻", "ribombee": "蝶結萌虻", - "rockruff": "巖狗狗", - "lycanroc": "鬃巖狼人", + "rockruff": "岩狗狗", + "lycanroc": "鬃岩狼人", "wishiwashi": "弱丁魚", "mareanie": "好壞星", "toxapex": "超壞星", @@ -758,7 +758,7 @@ export const pokemon: SimpleTranslationEntries = { "morelull": "睡睡菇", "shiinotic": "燈罩夜菇", "salandit": "夜盜火蜥", - "salazzle": "焰後蜥", + "salazzle": "焰后蜥", "stufful": "童偶熊", "bewear": "穿着熊", "bounsweet": "甜竹竹", @@ -778,7 +778,7 @@ export const pokemon: SimpleTranslationEntries = { "komala": "樹枕尾熊", "turtonator": "爆焰龜獸", "togedemaru": "託戈德瑪爾", - "mimikyu": "謎擬丘", + "mimikyu": "謎擬Q", "bruxish": "磨牙彩皮魚", "drampa": "老翁龍", "dhelmise": "破破舵輪", @@ -827,8 +827,8 @@ export const pokemon: SimpleTranslationEntries = { "blipbug": "索偵蟲", "dottler": "天罩蟲", "orbeetle": "以歐路普", - "nickit": "狡小狐", - "thievul": "猾大狐", + "nickit": "偷兒狐", + "thievul": "狐大盜", "gossifleur": "幼棉棉", "eldegoss": "白蓬蓬", "wooloo": "毛辮羊", @@ -848,7 +848,7 @@ export const pokemon: SimpleTranslationEntries = { "cramorant": "古月鳥", "arrokuda": "刺梭魚", "barraskewda": "戽斗尖梭", - "toxel": "電音嬰", + "toxel": "毒電嬰", "toxtricity": "顫弦蠑螈", "sizzlipede": "燒火蚣", "centiskorch": "焚焰蚣", @@ -867,7 +867,7 @@ export const pokemon: SimpleTranslationEntries = { "cursola": "魔靈珊瑚", "sirfetchd": "蔥遊兵", "mr_rime": "踏冰人偶", - "runerigus": "迭失板", + "runerigus": "死神板", "milcery": "小仙奶", "alcremie": "霜奶仙", "falinks": "列陣兵", @@ -915,7 +915,7 @@ export const pokemon: SimpleTranslationEntries = { "quaxly": "潤水鴨", "quaxwell": "湧躍鴨", "quaquaval": "狂歡浪舞鴨", - "lechonk": "愛喫豚", + "lechonk": "愛吃豚", "oinkologne": "飄香豚", "tarountula": "團珠蛛", "spidops": "操陷蛛", @@ -1039,7 +1039,7 @@ export const pokemon: SimpleTranslationEntries = { "alola_persian": "貓老大", "alola_geodude": "小拳石", "alola_graveler": "隆隆石", - "alola_golem": "隆隆巖", + "alola_golem": "隆隆岩", "alola_grimer": "臭泥", "alola_muk": "臭臭泥", "alola_exeggutor": "椰蛋樹", From c1a7df913ad98525f57cf2a39ac56e53a09a6650 Mon Sep 17 00:00:00 2001 From: Greenlamp2 <44787002+Greenlamp2@users.noreply.github.com> Date: Fri, 24 May 2024 19:46:30 +0200 Subject: [PATCH 11/61] refactor executed code while importing and initializing all of these in loading-scene (#1125) --- src/battle-scene.ts | 10 +- src/data/biomes.ts | 216 ++++++++++++++++---------------- src/data/egg-moves.ts | 12 +- src/data/pokemon-evolutions.ts | 2 +- src/data/pokemon-forms.ts | 2 +- src/data/trainer-config.ts | 4 +- src/loading-scene.ts | 17 +++ src/test/achievement.test.ts | 9 ++ src/test/debugImports.test.ts | 35 ++++++ src/test/pokemon.test.ts | 57 +++++++++ src/test/vitest.setup.ts | 17 +++ src/ui/game-stats-ui-handler.ts | 4 +- vitest.config.js | 1 + 13 files changed, 257 insertions(+), 129 deletions(-) create mode 100644 src/test/achievement.test.ts create mode 100644 src/test/debugImports.test.ts create mode 100644 src/test/pokemon.test.ts diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 21ddc902691..b4435ec5b26 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -2,7 +2,7 @@ import Phaser from "phaser"; import UI from "./ui/ui"; import { NextEncounterPhase, NewBiomeEncounterPhase, SelectBiomePhase, MessagePhase, TurnInitPhase, ReturnPhase, LevelCapPhase, ShowTrainerPhase, LoginPhase, MovePhase, TitlePhase, SwitchPhase } from "./phases"; import Pokemon, { PlayerPokemon, EnemyPokemon } from "./field/pokemon"; -import PokemonSpecies, { PokemonSpeciesFilter, allSpecies, getPokemonSpecies, initSpecies } from "./data/pokemon-species"; +import PokemonSpecies, { PokemonSpeciesFilter, allSpecies, getPokemonSpecies } from "./data/pokemon-species"; import * as Utils from "./utils"; import { Modifier, ModifierBar, ConsumablePokemonModifier, ConsumableModifier, PokemonHpRestoreModifier, HealingBoosterModifier, PersistentModifier, PokemonHeldItemModifier, ModifierPredicate, DoubleBattleChanceBoosterModifier, FusePokemonModifier, PokemonFormChangeItemModifier, TerastallizeModifier, overrideModifiers, overrideHeldItems } from "./modifier/modifier"; import { PokeballType } from "./data/pokeball"; @@ -15,10 +15,9 @@ import { GameData, PlayerGender } from "./system/game-data"; import { TextStyle, addTextObject } from "./ui/text"; import { Moves } from "./data/enums/moves"; import { allMoves } from "./data/move"; -import { initMoves } from "./data/move"; import { ModifierPoolType, getDefaultModifierTypeForTier, getEnemyModifierTypesForWave, getLuckString, getLuckTextTint, getModifierPoolForType, getPartyLuckValue } from "./modifier/modifier-type"; import AbilityBar from "./ui/ability-bar"; -import { BlockItemTheftAbAttr, DoubleBattleChanceAbAttr, IncrementMovePriorityAbAttr, applyAbAttrs, initAbilities } from "./data/ability"; +import { BlockItemTheftAbAttr, DoubleBattleChanceAbAttr, IncrementMovePriorityAbAttr, applyAbAttrs } from "./data/ability"; import { allAbilities } from "./data/ability"; import Battle, { BattleType, FixedBattleConfig, fixedBattles } from "./battle"; import { GameMode, GameModes, gameModes } from "./game-mode"; @@ -187,11 +186,6 @@ export default class BattleScene extends SceneBase { constructor() { super("battle"); - - initSpecies(); - initMoves(); - initAbilities(); - this.phaseQueue = []; this.phaseQueuePrepend = []; this.phaseQueuePrependSpliceIndex = -1; diff --git a/src/data/biomes.ts b/src/data/biomes.ts index fc8f20db586..01e6233978c 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -5,7 +5,7 @@ import beautify from "json-beautify"; import { TrainerType } from "./enums/trainer-type"; import { TimeOfDay } from "./enums/time-of-day"; import { Biome } from "./enums/biome"; -import { SpeciesFormEvolution } from "./pokemon-evolutions"; +import {pokemonEvolutions, SpeciesFormEvolution} from "./pokemon-evolutions"; export function getBiomeName(biome: Biome | -1) { if (biome === -1) { @@ -2012,7 +2012,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { } }; -{ +export function initBiomes() { const pokemonBiomes = [ [ Species.BULBASAUR, Type.GRASS, Type.POISON, [ [ Biome.GRASS, BiomePoolTier.RARE ] @@ -7677,130 +7677,126 @@ export const biomeTrainerPools: BiomeTrainerPools = { traverseBiome(Biome.TOWN, 0); biomeDepths[Biome.END] = [ Object.values(biomeDepths).map(d => d[0]).reduce((max: integer, value: integer) => Math.max(max, value), 0) + 1, 1 ]; - import("./pokemon-evolutions").then(pe => { - const pokemonEvolutions = pe.pokemonEvolutions; - for (const biome of Utils.getEnumValues(Biome)) { - biomePokemonPools[biome] = {}; - biomeTrainerPools[biome] = {}; + for (const biome of Utils.getEnumValues(Biome)) { + biomePokemonPools[biome] = {}; + biomeTrainerPools[biome] = {}; - for (const tier of Utils.getEnumValues(BiomePoolTier)) { - biomePokemonPools[biome][tier] = {}; - biomeTrainerPools[biome][tier] = []; + for (const tier of Utils.getEnumValues(BiomePoolTier)) { + biomePokemonPools[biome][tier] = {}; + biomeTrainerPools[biome][tier] = []; - for (const tod of Utils.getEnumValues(TimeOfDay)) { - biomePokemonPools[biome][tier][tod] = []; - } + for (const tod of Utils.getEnumValues(TimeOfDay)) { + biomePokemonPools[biome][tier][tod] = []; } } + } - for (const pb of pokemonBiomes) { - const speciesId = pb[0] as Species; - const biomeEntries = pb[3] as (Biome | BiomePoolTier)[][]; + for (const pb of pokemonBiomes) { + const speciesId = pb[0] as Species; + const biomeEntries = pb[3] as (Biome | BiomePoolTier)[][]; - const speciesEvolutions: SpeciesFormEvolution[] = pokemonEvolutions.hasOwnProperty(speciesId) - ? pokemonEvolutions[speciesId] - : []; + const speciesEvolutions: SpeciesFormEvolution[] = pokemonEvolutions.hasOwnProperty(speciesId) + ? pokemonEvolutions[speciesId] + : []; - if (!biomeEntries.filter(b => b[0] !== Biome.END).length && !speciesEvolutions.filter(es => !!((pokemonBiomes.find(p => p[0] === es.speciesId))[3] as any[]).filter(b => b[0] !== Biome.END).length).length) { - uncatchableSpecies.push(speciesId); - } - - for (const b of biomeEntries) { - const biome = b[0]; - const tier = b[1]; - const timesOfDay = b.length > 2 - ? Array.isArray(b[2]) - ? b[2] - : [ b[2] ] - : [ TimeOfDay.ALL ]; - - for (const tod of timesOfDay) { - if (!biomePokemonPools.hasOwnProperty(biome) || !biomePokemonPools[biome].hasOwnProperty(tier) || !biomePokemonPools[biome][tier].hasOwnProperty(tod)) { - continue; - } - - const biomeTierPool = biomePokemonPools[biome][tier][tod]; - - let treeIndex = -1; - let arrayIndex = 0; - - for (let t = 0; t < biomeTierPool.length; t++) { - const existingSpeciesIds = biomeTierPool[t] as unknown as Species[]; - for (let es = 0; es < existingSpeciesIds.length; es++) { - const existingSpeciesId = existingSpeciesIds[es]; - if (pokemonEvolutions.hasOwnProperty(existingSpeciesId) && (pokemonEvolutions[existingSpeciesId] as SpeciesFormEvolution[]).find(ese => ese.speciesId === speciesId)) { - treeIndex = t; - arrayIndex = es + 1; - break; - } else if (speciesEvolutions && speciesEvolutions.find(se => se.speciesId === existingSpeciesId)) { - treeIndex = t; - arrayIndex = es; - break; - } - } - if (treeIndex > -1) { - break; - } - } - - if (treeIndex > -1) { - (biomeTierPool[treeIndex] as unknown as Species[]).splice(arrayIndex, 0, speciesId); - } else { - (biomeTierPool as unknown as Species[][]).push([ speciesId ]); - } - } - } + if (!biomeEntries.filter(b => b[0] !== Biome.END).length && !speciesEvolutions.filter(es => !!((pokemonBiomes.find(p => p[0] === es.speciesId))[3] as any[]).filter(b => b[0] !== Biome.END).length).length) { + uncatchableSpecies.push(speciesId); } - for (const b of Object.keys(biomePokemonPools)) { - for (const t of Object.keys(biomePokemonPools[b])) { - const tier = parseInt(t) as BiomePoolTier; - for (const tod of Object.keys(biomePokemonPools[b][t])) { - const biomeTierTimePool = biomePokemonPools[b][t][tod]; - for (let e = 0; e < biomeTierTimePool.length; e++) { - const entry = biomeTierTimePool[e]; - if (entry.length === 1) { - biomeTierTimePool[e] = entry[0]; - } else { - const newEntry = { - 1: [ entry[0] ] - }; - for (let s = 1; s < entry.length; s++) { - const speciesId = entry[s]; - const prevolution = entry.map(s => pokemonEvolutions[s]).flat().find(e => e && e.speciesId === speciesId); - const level = prevolution.level - (prevolution.level === 1 ? 1 : 0) + (prevolution.wildDelay * 10) - (tier >= BiomePoolTier.BOSS ? 10 : 0); - if (!newEntry.hasOwnProperty(level)) { - newEntry[level] = [ speciesId ]; - } else { - newEntry[level].push(speciesId); - } - } - biomeTierTimePool[e] = newEntry; - } - } - } - } - } + for (const b of biomeEntries) { + const biome = b[0]; + const tier = b[1]; + const timesOfDay = b.length > 2 + ? Array.isArray(b[2]) + ? b[2] + : [ b[2] ] + : [ TimeOfDay.ALL ]; - for (const tb of trainerBiomes) { - const trainerType = tb[0] as TrainerType; - const biomeEntries = tb[1] as BiomePoolTier[][]; - - for (const b of biomeEntries) { - const biome = b[0]; - const tier = b[1]; - - if (!biomeTrainerPools.hasOwnProperty(biome) || !biomeTrainerPools[biome].hasOwnProperty(tier)) { + for (const tod of timesOfDay) { + if (!biomePokemonPools.hasOwnProperty(biome) || !biomePokemonPools[biome].hasOwnProperty(tier) || !biomePokemonPools[biome][tier].hasOwnProperty(tod)) { continue; } - const biomeTierPool = biomeTrainerPools[biome][tier]; - biomeTierPool.push(trainerType); + const biomeTierPool = biomePokemonPools[biome][tier][tod]; + + let treeIndex = -1; + let arrayIndex = 0; + + for (let t = 0; t < biomeTierPool.length; t++) { + const existingSpeciesIds = biomeTierPool[t] as unknown as Species[]; + for (let es = 0; es < existingSpeciesIds.length; es++) { + const existingSpeciesId = existingSpeciesIds[es]; + if (pokemonEvolutions.hasOwnProperty(existingSpeciesId) && (pokemonEvolutions[existingSpeciesId] as SpeciesFormEvolution[]).find(ese => ese.speciesId === speciesId)) { + treeIndex = t; + arrayIndex = es + 1; + break; + } else if (speciesEvolutions && speciesEvolutions.find(se => se.speciesId === existingSpeciesId)) { + treeIndex = t; + arrayIndex = es; + break; + } + } + if (treeIndex > -1) { + break; + } + } + + if (treeIndex > -1) { + (biomeTierPool[treeIndex] as unknown as Species[]).splice(arrayIndex, 0, speciesId); + } else { + (biomeTierPool as unknown as Species[][]).push([ speciesId ]); + } } } + } + + for (const b of Object.keys(biomePokemonPools)) { + for (const t of Object.keys(biomePokemonPools[b])) { + const tier = parseInt(t) as BiomePoolTier; + for (const tod of Object.keys(biomePokemonPools[b][t])) { + const biomeTierTimePool = biomePokemonPools[b][t][tod]; + for (let e = 0; e < biomeTierTimePool.length; e++) { + const entry = biomeTierTimePool[e]; + if (entry.length === 1) { + biomeTierTimePool[e] = entry[0]; + } else { + const newEntry = { + 1: [ entry[0] ] + }; + for (let s = 1; s < entry.length; s++) { + const speciesId = entry[s]; + const prevolution = entry.map(s => pokemonEvolutions[s]).flat().find(e => e && e.speciesId === speciesId); + const level = prevolution.level - (prevolution.level === 1 ? 1 : 0) + (prevolution.wildDelay * 10) - (tier >= BiomePoolTier.BOSS ? 10 : 0); + if (!newEntry.hasOwnProperty(level)) { + newEntry[level] = [ speciesId ]; + } else { + newEntry[level].push(speciesId); + } + } + biomeTierTimePool[e] = newEntry; + } + } + } + } + } + + for (const tb of trainerBiomes) { + const trainerType = tb[0] as TrainerType; + const biomeEntries = tb[1] as BiomePoolTier[][]; + + for (const b of biomeEntries) { + const biome = b[0]; + const tier = b[1]; + + if (!biomeTrainerPools.hasOwnProperty(biome) || !biomeTrainerPools[biome].hasOwnProperty(tier)) { + continue; + } + + const biomeTierPool = biomeTrainerPools[biome][tier]; + biomeTierPool.push(trainerType); + } + } - //outputPools(); - }); // used in a commented code // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/src/data/egg-moves.ts b/src/data/egg-moves.ts index dfe5dba477e..bed989849d9 100644 --- a/src/data/egg-moves.ts +++ b/src/data/egg-moves.ts @@ -608,9 +608,11 @@ function parseEggMoves(content: string): void { console.log(output); } -const eggMovesStr = ""; -if (eggMovesStr) { - setTimeout(() => { - parseEggMoves(eggMovesStr); - }, 1000); +export function initEggMoves() { + const eggMovesStr = ""; + if (eggMovesStr) { + setTimeout(() => { + parseEggMoves(eggMovesStr); + }, 1000); + } } diff --git a/src/data/pokemon-evolutions.ts b/src/data/pokemon-evolutions.ts index 3465b5bb152..15193327547 100644 --- a/src/data/pokemon-evolutions.ts +++ b/src/data/pokemon-evolutions.ts @@ -1619,7 +1619,7 @@ interface PokemonPrevolutions { export const pokemonPrevolutions: PokemonPrevolutions = {}; -{ +export function initPokemonPrevolutions(): void { const megaFormKeys = [ SpeciesFormKey.MEGA, "", SpeciesFormKey.MEGA_X, "", SpeciesFormKey.MEGA_Y ].map(sfk => sfk as string); const prevolutionKeys = Object.keys(pokemonEvolutions); prevolutionKeys.forEach(pk => { diff --git a/src/data/pokemon-forms.ts b/src/data/pokemon-forms.ts index 63bd5c08810..3a3971d4fa1 100644 --- a/src/data/pokemon-forms.ts +++ b/src/data/pokemon-forms.ts @@ -729,7 +729,7 @@ export const pokemonFormChanges: PokemonFormChanges = { ] }; -{ +export function initPokemonForms() { const formChangeKeys = Object.keys(pokemonFormChanges); formChangeKeys.forEach(pk => { const formChanges = pokemonFormChanges[pk]; diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index 518cc31fd5b..1dcf0efa7b8 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -1051,6 +1051,6 @@ export const trainerConfigs: TrainerConfigs = { }), }; -(function () { +export function initTrainerTypeDialogue() { initTrainerTypeDialogue(); -})(); +} diff --git a/src/loading-scene.ts b/src/loading-scene.ts index b14b0527569..975175e9d25 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -9,6 +9,14 @@ import { WindowVariant, getWindowVariantSuffix } from "./ui/ui-theme"; import { isMobile } from "./touch-controls"; import * as Utils from "./utils"; import { initI18n } from "./plugins/i18n"; +import {initStatsKeys} from "#app/ui/game-stats-ui-handler"; +import {initPokemonPrevolutions} from "#app/data/pokemon-evolutions"; +import {initBiomes} from "#app/data/biomes"; +import {initEggMoves} from "#app/data/egg-moves"; +import {initPokemonForms} from "#app/data/pokemon-forms"; +import {initSpecies} from "#app/data/pokemon-species"; +import {initMoves} from "#app/data/move"; +import {initAbilities} from "#app/data/ability"; export class LoadingScene extends SceneBase { constructor() { @@ -284,6 +292,15 @@ export class LoadingScene extends SceneBase { this.load.plugin("rextexteditplugin", "https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/dist/rextexteditplugin.min.js", true); this.loadLoadingScreen(); + + initStatsKeys(); + initPokemonPrevolutions(); + initBiomes(); + initEggMoves(); + initPokemonForms(); + initSpecies(); + initMoves(); + initAbilities(); } loadLoadingScreen() { diff --git a/src/test/achievement.test.ts b/src/test/achievement.test.ts new file mode 100644 index 00000000000..a27c2d90154 --- /dev/null +++ b/src/test/achievement.test.ts @@ -0,0 +1,9 @@ +import {describe, expect, it} from "vitest"; +import {MoneyAchv} from "#app/system/achv"; + +describe("check some Achievement related stuff", () => { + it ("should check Achievement creation", () => { + const ach = new MoneyAchv("Achievement", 1000, null, 100); + expect(ach.name).toBe("Achievement"); + }); +}); diff --git a/src/test/debugImports.test.ts b/src/test/debugImports.test.ts new file mode 100644 index 00000000000..c164813a3cd --- /dev/null +++ b/src/test/debugImports.test.ts @@ -0,0 +1,35 @@ +import { describe, expect, it} from "vitest"; +import {initStatsKeys} from "#app/ui/game-stats-ui-handler"; + +async function importModule() { + try { + initStatsKeys(); + const { PokemonMove } = await import("#app/field/pokemon"); + const { Species } = await import("#app/data/enums/species"); + return { + PokemonMove, + Species, + }; + // Dynamically import the module + } catch (error) { + // Log the error stack trace + console.error("Error during import:", error.stack); + // Rethrow the error to ensure the test fails + throw error; + } +} + +describe("tests to debug the import, with trace", () => { + it("import PokemonMove module", async () => { + const module = await importModule(); + // Example assertion + expect(module.PokemonMove).toBeDefined(); + }); + + it("import Species module", async () => { + const module = await importModule(); + // Example assertion + expect(module.Species).toBeDefined(); + }); +}); + diff --git a/src/test/pokemon.test.ts b/src/test/pokemon.test.ts new file mode 100644 index 00000000000..d1f7da45256 --- /dev/null +++ b/src/test/pokemon.test.ts @@ -0,0 +1,57 @@ +import {describe, expect, it} from "vitest"; +import {getPokemonSpecies} from "#app/data/pokemon-species"; +import {PokemonMove} from "#app/field/pokemon"; +import {Species} from "#app/data/enums/species"; +import {Moves} from "#app/data/enums/moves"; +import PokemonData from "#app/system/pokemon-data"; + +describe("some tests related to PokemonData and Species", () => { + it("should create a species", () => { + const species = getPokemonSpecies(Species.MEW); + expect(species).not.toBeNull(); + }); + + it("should create a pokemon", () => { + const pokemon = new PokemonData({ + species: Species.MEW, + level: 1, + }); + expect(pokemon).not.toBeNull(); + expect(pokemon.level).toEqual(1); + expect(pokemon.species).toEqual(Species.MEW); + }); + + it("should generate a moveset", () => { + const pokemon = new PokemonData({ + species: Species.MEW, + level: 1, + }); + expect(pokemon.moveset[0].moveId).toBe(Moves.TACKLE); + expect(pokemon.moveset[1].moveId).toBe(Moves.GROWL); + }); + + it("should create an ennemypokemon", () => { + const ennemyPokemon = new PokemonData({ + species: Species.MEWTWO, + level: 100, + }); + expect(ennemyPokemon).not.toBeNull(); + expect(ennemyPokemon.level).toEqual(100); + expect(ennemyPokemon.species).toEqual(Species.MEWTWO); + }); + + it("should create an ennemypokemon with specified moveset", () => { + const ennemyPokemon = new PokemonData({ + species: Species.MEWTWO, + level: 100, + moveset: [ + new PokemonMove(Moves.ACID), + new PokemonMove(Moves.ACROBATICS), + new PokemonMove(Moves.FOCUS_ENERGY), + ] + }); + expect(ennemyPokemon.moveset[0].moveId).toBe(Moves.ACID); + expect(ennemyPokemon.moveset[1].moveId).toBe(Moves.ACROBATICS); + expect(ennemyPokemon.moveset[2].moveId).toBe(Moves.FOCUS_ENERGY); + }); +}); diff --git a/src/test/vitest.setup.ts b/src/test/vitest.setup.ts index d0141ca9fc3..f17a16caf14 100644 --- a/src/test/vitest.setup.ts +++ b/src/test/vitest.setup.ts @@ -1,2 +1,19 @@ import "vitest-canvas-mock"; import "#app/test/phaser.setup"; +import {initStatsKeys} from "#app/ui/game-stats-ui-handler"; +import {initPokemonPrevolutions} from "#app/data/pokemon-evolutions"; +import {initBiomes} from "#app/data/biomes"; +import {initEggMoves} from "#app/data/egg-moves"; +import {initPokemonForms} from "#app/data/pokemon-forms"; +import {initSpecies} from "#app/data/pokemon-species"; +import {initMoves} from "#app/data/move"; +import {initAbilities} from "#app/data/ability"; + +initStatsKeys(); +initPokemonPrevolutions(); +initBiomes(); +initEggMoves(); +initPokemonForms(); +initSpecies(); +initMoves(); +initAbilities(); diff --git a/src/ui/game-stats-ui-handler.ts b/src/ui/game-stats-ui-handler.ts index 2293cd7cf46..b4823010734 100644 --- a/src/ui/game-stats-ui-handler.ts +++ b/src/ui/game-stats-ui-handler.ts @@ -230,7 +230,7 @@ export default class GameStatsUiHandler extends UiHandler { } } -(function () { +export function initStatsKeys() { const statKeys = Object.keys(displayStats); for (const key of statKeys) { @@ -256,4 +256,4 @@ export default class GameStatsUiHandler extends UiHandler { (displayStats[key] as DisplayStat).label = Utils.toReadableString(`${splittableKey[0].toUpperCase()}${splittableKey.slice(1)}`); } } -})(); +} diff --git a/vitest.config.js b/vitest.config.js index 5a7babd4232..c73476431dd 100644 --- a/vitest.config.js +++ b/vitest.config.js @@ -14,6 +14,7 @@ export default defineConfig(({ mode }) => { } }, threads: false, + trace: true, environmentOptions: { jsdom: { resources: 'usable', From 41751ab8dfa3949e74fd3367e40f68eec5d3cf34 Mon Sep 17 00:00:00 2001 From: Madmadness65 Date: Fri, 24 May 2024 14:48:24 -0500 Subject: [PATCH 12/61] =?UTF-8?q?Update=20encounter=20levels=20for=20some?= =?UTF-8?q?=20Pok=C3=A9mon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the wild evolution delays were updated, the biomes file wasn't updated to match, so that has been fixed. Additionally, the previous refactor removed the commented-out outputPools function. It is where it is because it allows for easily filling out the biomes file for an update. --- src/data/biomes.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/data/biomes.ts b/src/data/biomes.ts index 01e6233978c..2b93de49806 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -200,7 +200,7 @@ export const biomePokemonPools: BiomePokemonPools = { [TimeOfDay.NIGHT]: [ { 1: [ Species.SHINX ], 15: [ Species.LUXIO ], 30: [ Species.LUXRAY ] } ], [TimeOfDay.ALL]: [ { 1: [ Species.ABRA ], 16: [ Species.KADABRA ] }, { 1: [ Species.BUNEARY ], 20: [ Species.LOPUNNY ] }, { 1: [ Species.ROOKIDEE ], 18: [ Species.CORVISQUIRE ], 38: [ Species.CORVIKNIGHT ] } ] }, - [BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.FARFETCHD, Species.LICKITUNG, Species.CHANSEY, Species.EEVEE, Species.SNORLAX, { 1: [ Species.DUNSPARCE ], 72: [ Species.DUDUNSPARCE ] } ] }, + [BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.FARFETCHD, Species.LICKITUNG, Species.CHANSEY, Species.EEVEE, Species.SNORLAX, { 1: [ Species.DUNSPARCE ], 62: [ Species.DUDUNSPARCE ] } ] }, [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DITTO, Species.LATIAS, Species.LATIOS ] }, [BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [ Species.DODRIO, Species.FURRET, Species.GUMSHOOS, Species.GREEDENT ], @@ -268,7 +268,7 @@ export const biomePokemonPools: BiomePokemonPools = { [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], - [TimeOfDay.ALL]: [ Species.PINSIR, { 1: [ Species.CHIKORITA ], 16: [ Species.BAYLEEF ], 32: [ Species.MEGANIUM ] }, { 1: [ Species.GIRAFARIG ], 72: [ Species.FARIGIRAF ] }, Species.ZANGOOSE, Species.KECLEON, Species.TROPIUS ] + [TimeOfDay.ALL]: [ Species.PINSIR, { 1: [ Species.CHIKORITA ], 16: [ Species.BAYLEEF ], 32: [ Species.MEGANIUM ] }, { 1: [ Species.GIRAFARIG ], 62: [ Species.FARIGIRAF ] }, Species.ZANGOOSE, Species.KECLEON, Species.TROPIUS ] }, [BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.SCYTHER, Species.SHEDINJA, Species.ROTOM ] }, [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }, @@ -474,8 +474,8 @@ export const biomePokemonPools: BiomePokemonPools = { [TimeOfDay.ALL]: [ { 1: [ Species.TOTODILE ], 18: [ Species.CROCONAW ], 30: [ Species.FERALIGATR ] }, { 1: [ Species.MUDKIP ], 16: [ Species.MARSHTOMP ], 36: [ Species.SWAMPERT ] } ] }, [BiomePoolTier.SUPER_RARE]: { - [TimeOfDay.DAWN]: [ { 1: [ Species.GALAR_SLOWPOKE ], 40: [ Species.GALAR_SLOWBRO ] }, { 1: [ Species.HISUI_SLIGGOO ], 90: [ Species.HISUI_GOODRA ] } ], - [TimeOfDay.DAY]: [ { 1: [ Species.GALAR_SLOWPOKE ], 40: [ Species.GALAR_SLOWBRO ] }, { 1: [ Species.HISUI_SLIGGOO ], 90: [ Species.HISUI_GOODRA ] } ], + [TimeOfDay.DAWN]: [ { 1: [ Species.GALAR_SLOWPOKE ], 40: [ Species.GALAR_SLOWBRO ] }, { 1: [ Species.HISUI_SLIGGOO ], 80: [ Species.HISUI_GOODRA ] } ], + [TimeOfDay.DAY]: [ { 1: [ Species.GALAR_SLOWPOKE ], 40: [ Species.GALAR_SLOWBRO ] }, { 1: [ Species.HISUI_SLIGGOO ], 80: [ Species.HISUI_GOODRA ] } ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.POLITOED, Species.GALAR_STUNFISK ] @@ -7795,6 +7795,7 @@ export function initBiomes() { const biomeTierPool = biomeTrainerPools[biome][tier]; biomeTierPool.push(trainerType); } + //outputPools(); } From 3670574342e354c4179866628e7db3f8b7483347 Mon Sep 17 00:00:00 2001 From: Jon Studders Date: Fri, 24 May 2024 20:57:02 +0100 Subject: [PATCH 13/61] Added a champion ribbon on enemy pokemon if they have a classic win. (#881) * Added a champion ribbon on enemy pokemon if they have a classic win. * Refactored to check for other non-root starterDex entities. * Check for caughtIcon, if false then move ribbon to the left. * Fixed Merge. * Bit of refactoring, added check for classic mode. * Removed random newline and removed unused import. * Removed overlapping ribbon. --- src/ui/battle-info.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts index 1aebce7f457..16e23a105f8 100644 --- a/src/ui/battle-info.ts +++ b/src/ui/battle-info.ts @@ -35,6 +35,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { private nameText: Phaser.GameObjects.Text; private genderText: Phaser.GameObjects.Text; private ownedIcon: Phaser.GameObjects.Sprite; + private championRibbon: Phaser.GameObjects.Sprite; private teraIcon: Phaser.GameObjects.Sprite; private shinyIcon: Phaser.GameObjects.Sprite; private fusionShinyIcon: Phaser.GameObjects.Sprite; @@ -96,6 +97,12 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.ownedIcon.setOrigin(0, 0); this.ownedIcon.setPositionRelative(this.nameText, 0, 11.75); this.add(this.ownedIcon); + + this.championRibbon = this.scene.add.sprite(0, 0, "champion_ribbon"); + this.championRibbon.setVisible(false); + this.championRibbon.setOrigin(0, 0); + this.championRibbon.setPositionRelative(this.nameText, 11.75, 11.75); + this.add(this.championRibbon); } this.teraIcon = this.scene.add.sprite(0, 0, "icon_tera"); @@ -266,6 +273,11 @@ export default class BattleInfo extends Phaser.GameObjects.Container { const dexEntry = pokemon.scene.gameData.dexData[pokemon.species.speciesId]; this.ownedIcon.setVisible(!!dexEntry.caughtAttr); const opponentPokemonDexAttr = pokemon.getDexAttr(); + if (pokemon.scene.gameMode.isClassic) { + if(pokemon.scene.gameData.starterData[pokemon.species.getRootSpeciesId()].classicWinCount > 0 && pokemon.scene.gameData.starterData[pokemon.species.getRootSpeciesId(true)].classicWinCount > 0) { + this.championRibbon.setVisible(true); + } + } // Check if Player owns all genders and forms of the Pokemon const missingDexAttrs = ((dexEntry.caughtAttr & opponentPokemonDexAttr) < opponentPokemonDexAttr); From 136fcbfda8254b96b3bfb4e9cd9fe76dd7a65d79 Mon Sep 17 00:00:00 2001 From: Greenlamp2 <44787002+Greenlamp2@users.noreply.github.com> Date: Fri, 24 May 2024 22:08:18 +0200 Subject: [PATCH 14/61] init dialog call in the loading-scene (#1331) --- src/data/trainer-config.ts | 5 ----- src/loading-scene.ts | 2 ++ 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index 1dcf0efa7b8..df10923963a 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -10,7 +10,6 @@ import PokemonSpecies, {PokemonSpeciesFilter, getPokemonSpecies} from "./pokemon import {Species} from "./enums/species"; import {tmSpecies} from "./tms"; import {Type} from "./type"; -import {initTrainerTypeDialogue} from "./dialogue"; import {PersistentModifier} from "../modifier/modifier"; import {TrainerVariant} from "../field/trainer"; import {PartyMemberStrength} from "./enums/party-member-strength"; @@ -1050,7 +1049,3 @@ export const trainerConfigs: TrainerConfigs = { return [ modifierTypes.TERA_SHARD().generateType(null, [ starter.species.type1 ]).withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier ]; }), }; - -export function initTrainerTypeDialogue() { - initTrainerTypeDialogue(); -} diff --git a/src/loading-scene.ts b/src/loading-scene.ts index 975175e9d25..df788643c8e 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -17,6 +17,7 @@ import {initPokemonForms} from "#app/data/pokemon-forms"; import {initSpecies} from "#app/data/pokemon-species"; import {initMoves} from "#app/data/move"; import {initAbilities} from "#app/data/ability"; +import {initTrainerTypeDialogue} from "#app/data/dialogue"; export class LoadingScene extends SceneBase { constructor() { @@ -298,6 +299,7 @@ export class LoadingScene extends SceneBase { initBiomes(); initEggMoves(); initPokemonForms(); + initTrainerTypeDialogue(); initSpecies(); initMoves(); initAbilities(); From a48ba9864dfa7ed8d33fc3de3c439d4926c5ec06 Mon Sep 17 00:00:00 2001 From: Jakub Hanko <60473007+JakubHanko@users.noreply.github.com> Date: Fri, 24 May 2024 22:23:23 +0200 Subject: [PATCH 15/61] Implement Destiny Bond move (#1104) * Use getBattleStat instead of getStat in BattleStatRatioPowerAttr * Change unnecessary let into const * Refactor BattleStatRatioPowerAttr into two distinct classes * Add TSDoc for the new classes * Implementation of Destiny Bond * Add TSDocs * Make the move fail in boss battles * Fix boss immunity and ally fainting * Update docs * Add doc of return value of tag lapse * Fix ESLint --- src/data/battler-tags.ts | 47 ++++++++++++++++++++++++++++++ src/data/enums/battler-tag-type.ts | 3 +- src/data/move.ts | 28 ++++++++++++++++-- src/field/pokemon.ts | 6 ++++ 4 files changed, 81 insertions(+), 3 deletions(-) diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index 13f1ae2cf7c..2cf1c6eff64 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -254,6 +254,51 @@ export class ConfusedTag extends BattlerTag { } } +/** + * Tag applied to the {@linkcode Move.DESTINY_BOND} user. + * @extends BattlerTag + * @see {@linkcode apply} + */ +export class DestinyBondTag extends BattlerTag { + constructor(sourceMove: Moves, sourceId: integer) { + super(BattlerTagType.DESTINY_BOND, BattlerTagLapseType.PRE_MOVE, 1, sourceMove, sourceId); + } + + /** + * Lapses either before the user's move and does nothing + * or after receiving fatal damage. When the damage is fatal, + * the attacking Pokemon is taken down as well, unless it's a boss. + * + * @param {Pokemon} pokemon Pokemon that is attacking the Destiny Bond user. + * @param {BattlerTagLapseType} lapseType CUSTOM or PRE_MOVE + * @returns false if the tag source fainted or one turn has passed since the application + */ + lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean { + if (lapseType !== BattlerTagLapseType.CUSTOM) { + return super.lapse(pokemon, lapseType); + } + const source = pokemon.scene.getPokemonById(this.sourceId); + if (!source.isFainted()) { + return true; + } + + if (source.getAlly() === pokemon) { + return false; + } + + const targetMessage = getPokemonMessage(pokemon, ""); + + if (pokemon.isBossImmune()) { + pokemon.scene.queueMessage(`${targetMessage} is unaffected\nby the effects of Destiny Bond.`); + return false; + } + + pokemon.scene.queueMessage(`${getPokemonMessage(source, ` took\n${targetMessage} down with it!`)}`); + pokemon.damageAndUpdate(pokemon.hp, HitResult.ONE_HIT_KO, false, false, true); + return false; + } +} + export class InfatuatedTag extends BattlerTag { constructor(sourceMove: integer, sourceId: integer) { super(BattlerTagType.INFATUATED, BattlerTagLapseType.MOVE, 1, sourceMove, sourceId); @@ -1416,6 +1461,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourc return new MagnetRisenTag(tagType, sourceMove); case BattlerTagType.MINIMIZED: return new MinimizeTag(); + case BattlerTagType.DESTINY_BOND: + return new DestinyBondTag(sourceMove, sourceId); case BattlerTagType.NONE: default: return new BattlerTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId); diff --git a/src/data/enums/battler-tag-type.ts b/src/data/enums/battler-tag-type.ts index 9411d70a670..6d36cdafab5 100644 --- a/src/data/enums/battler-tag-type.ts +++ b/src/data/enums/battler-tag-type.ts @@ -56,5 +56,6 @@ export enum BattlerTagType { CHARGED = "CHARGED", GROUNDED = "GROUNDED", MAGNET_RISEN = "MAGNET_RISEN", - MINIMIZED = "MINIMIZED" + MINIMIZED = "MINIMIZED", + DESTINY_BOND = "DESTINY_BOND" } diff --git a/src/data/move.ts b/src/data/move.ts index 34ae05dbd33..0a20c06d73e 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -4704,6 +4704,31 @@ export class MoneyAttr extends MoveEffectAttr { } } +/** + * Applies {@linkcode BattlerTagType.DESTINY_BOND} to the user. + * + * @extends MoveEffectAttr + */ +export class DestinyBondAttr extends MoveEffectAttr { + constructor() { + super(true, MoveEffectTrigger.PRE_APPLY); + } + + /** + * Applies {@linkcode BattlerTagType.DESTINY_BOND} to the user. + * @param user {@linkcode Pokemon} that is having the tag applied to. + * @param target {@linkcode Pokemon} N/A + * @param move {@linkcode Move} {@linkcode Move.DESTINY_BOND} + * @param {any[]} args N/A + * @returns true + */ + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + user.scene.queueMessage(`${getPokemonMessage(user, " is trying\nto take its foe down with it!")}`); + user.addTag(BattlerTagType.DESTINY_BOND, undefined, move.id, user.id); + return true; + } +} + export class LastResortAttr extends MoveAttr { getCondition(): MoveConditionFunc { return (user: Pokemon, target: Pokemon, move: Move) => { @@ -5405,8 +5430,7 @@ export function initMoves() { .unimplemented(), new SelfStatusMove(Moves.DESTINY_BOND, Type.GHOST, -1, 5, -1, 0, 2) .ignoresProtect() - .condition(failOnBossCondition) - .unimplemented(), + .attr(DestinyBondAttr), new StatusMove(Moves.PERISH_SONG, Type.NORMAL, -1, 5, -1, 0, 2) .attr(FaintCountdownAttr) .ignoresProtect() diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 9f081d73134..5cc4e54c5b4 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1790,6 +1790,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { console.log("damage", damage.value, move.name, power.value, sourceAtk, targetDef); + // In case of fatal damage, this tag would have gotten cleared before we could lapse it. + const destinyTag = this.getTag(BattlerTagType.DESTINY_BOND); + const oneHitKo = result === HitResult.ONE_HIT_KO; if (damage.value) { if (this.getHpRatio() === 1) { @@ -1850,6 +1853,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { if (damage) { this.scene.clearPhaseQueueSplice(); + + const attacker = this.scene.getPokemonById(source.id); + destinyTag?.lapse(attacker, BattlerTagLapseType.CUSTOM); } } break; From 0309fde7e89489e1b55bd62d821f5a76632d1213 Mon Sep 17 00:00:00 2001 From: LaukkaE <73663099+LaukkaE@users.noreply.github.com> Date: Fri, 24 May 2024 23:35:45 +0300 Subject: [PATCH 16/61] Fix Aftermath not working (#1209) --- src/data/ability.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index 70c1279b9d9..2e67b30c537 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -2641,7 +2641,7 @@ export class PostFaintContactDamageAbAttr extends PostFaintAbAttr { if (move.getMove().checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon)) { const cancelled = new Utils.BooleanHolder(false); pokemon.scene.getField(true).map(p=>applyAbAttrs(FieldPreventExplosiveMovesAbAttr, p, cancelled)); - if (cancelled) { + if (cancelled.value) { return false; } attacker.damageAndUpdate(Math.ceil(attacker.getMaxHp() * (1 / this.damageRatio)), HitResult.OTHER); From 0d6145263fc2d6b44f1354611cd4e75405a3e6cd Mon Sep 17 00:00:00 2001 From: Douglas Marchione de Souza <42784723+Tiduzz@users.noreply.github.com> Date: Fri, 24 May 2024 17:49:23 -0300 Subject: [PATCH 17/61] Acrobatics does not treat vitamins as held items (#718) * Changed the move Acrobatics so it doesn't include non-held items on it's damage calculations * Changed exception so it includes within_party items, and updated the move description * Small typo e_e' * Change Description of Move --------- Co-authored-by: Benjamin Odom --- src/data/move.ts | 2 +- src/locales/en/move.ts | 2 +- src/ui/battle-info.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index 0a20c06d73e..ffd66a05d20 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -6316,7 +6316,7 @@ export function initMoves() { new StatusMove(Moves.QUASH, Type.DARK, 100, 15, -1, 0, 5) .unimplemented(), new AttackMove(Moves.ACROBATICS, Type.FLYING, MoveCategory.PHYSICAL, 55, 100, 15, -1, 0, 5) - .attr(MovePowerMultiplierAttr, (user, target, move) => Math.max(1, 2 - 0.2 * user.getHeldItems().reduce((v, m) => v + m.stackCount, 0))), + .attr(MovePowerMultiplierAttr, (user, target, move) => Math.max(1, 2 - 0.2 * user.getHeldItems().filter(i => i.getTransferrable(true)).reduce((v, m) => v + m.stackCount, 0))), new StatusMove(Moves.REFLECT_TYPE, Type.NORMAL, -1, 15, -1, 0, 5) .attr(CopyTypeAttr), new AttackMove(Moves.RETALIATE, Type.NORMAL, MoveCategory.PHYSICAL, 70, 100, 5, -1, 0, 5) diff --git a/src/locales/en/move.ts b/src/locales/en/move.ts index fceab24b6a8..7f99517cfda 100644 --- a/src/locales/en/move.ts +++ b/src/locales/en/move.ts @@ -2047,7 +2047,7 @@ export const move: MoveTranslationEntries = { }, "acrobatics": { name: "Acrobatics", - effect: "The user nimbly strikes the target. If the user is not holding an item, this attack inflicts massive damage." + effect: "The user nimbly strikes the target. The fewer held items, the higher the damage it inflicts." }, "reflectType": { name: "Reflect Type", diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts index 16e23a105f8..2af5c5cc81b 100644 --- a/src/ui/battle-info.ts +++ b/src/ui/battle-info.ts @@ -274,7 +274,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.ownedIcon.setVisible(!!dexEntry.caughtAttr); const opponentPokemonDexAttr = pokemon.getDexAttr(); if (pokemon.scene.gameMode.isClassic) { - if(pokemon.scene.gameData.starterData[pokemon.species.getRootSpeciesId()].classicWinCount > 0 && pokemon.scene.gameData.starterData[pokemon.species.getRootSpeciesId(true)].classicWinCount > 0) { + if (pokemon.scene.gameData.starterData[pokemon.species.getRootSpeciesId()].classicWinCount > 0 && pokemon.scene.gameData.starterData[pokemon.species.getRootSpeciesId(true)].classicWinCount > 0) { this.championRibbon.setVisible(true); } } From d01cd98d06ec2437437a37a25f9ae319dac02e3b Mon Sep 17 00:00:00 2001 From: Jon Studders Date: Fri, 24 May 2024 22:07:57 +0100 Subject: [PATCH 18/61] Fixed champion ribbon boss segments. (#1334) --- src/ui/battle-info.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts index 2af5c5cc81b..3174ee6cbc2 100644 --- a/src/ui/battle-info.ts +++ b/src/ui/battle-info.ts @@ -390,7 +390,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { if (boss !== this.boss) { this.boss = boss; - [ this.nameText, this.genderText, this.teraIcon, this.splicedIcon, this.shinyIcon, this.ownedIcon, this.statusIndicator, this.levelContainer, this.statValuesContainer ].map(e => e.x += 48 * (boss ? -1 : 1)); + [ this.nameText, this.genderText, this.teraIcon, this.splicedIcon, this.shinyIcon, this.ownedIcon, this.championRibbon, this.statusIndicator, this.levelContainer, this.statValuesContainer ].map(e => e.x += 48 * (boss ? -1 : 1)); this.hpBar.x += 38 * (boss ? -1 : 1); this.hpBar.y += 2 * (this.boss ? -1 : 1); this.hpBar.setTexture(`overlay_hp${boss ? "_boss" : ""}`); From 751a3d1e499e5f45351cddc72b8eb69867962f2f Mon Sep 17 00:00:00 2001 From: Matthew Olker Date: Fri, 24 May 2024 17:23:49 -0400 Subject: [PATCH 19/61] add names to battle info ui objects and solve key already exists warning for starter select --- src/data/pokemon-species.ts | 14 ++++++++------ src/ui/battle-info.ts | 23 +++++++++++++++++++++++ 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index f9702b3e64d..5db65adb6d3 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -404,12 +404,14 @@ export abstract class PokemonSpeciesForm { console.warn = () => {}; const frameNames = scene.anims.generateFrameNames(spriteKey, { zeroPad: 4, suffix: ".png", start: 1, end: 400 }); console.warn = originalWarn; - scene.anims.create({ - key: this.getSpriteKey(female, formIndex, shiny, variant), - frames: frameNames, - frameRate: 12, - repeat: -1 - }); + if (!(scene.anims.exists(spriteKey))) { + scene.anims.create({ + key: this.getSpriteKey(female, formIndex, shiny, variant), + frames: frameNames, + frameRate: 12, + repeat: -1 + }); + } let spritePath = this.getSpriteAtlasPath(female, formIndex, shiny, variant).replace("variant/", "").replace(/_[1-3]$/, ""); const useExpSprite = scene.experimentalSprites && scene.hasExpSprite(spriteKey); if (useExpSprite) { diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts index 3174ee6cbc2..01f183c49c8 100644 --- a/src/ui/battle-info.ts +++ b/src/ui/battle-info.ts @@ -79,26 +79,31 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.setVisible(false); this.box = this.scene.add.sprite(0, 0, this.getTextureName()); + this.box.setName("box"); this.box.setOrigin(1, 0.5); this.add(this.box); this.nameText = addTextObject(this.scene, player ? -115 : -124, player ? -15.2 : -11.2, "", TextStyle.BATTLE_INFO); + this.nameText.setName("text_name"); this.nameText.setOrigin(0, 0); this.add(this.nameText); this.genderText = addTextObject(this.scene, 0, 0, "", TextStyle.BATTLE_INFO); + this.genderText.setName("text_gender"); this.genderText.setOrigin(0, 0); this.genderText.setPositionRelative(this.nameText, 0, 2); this.add(this.genderText); if (!this.player) { this.ownedIcon = this.scene.add.sprite(0, 0, "icon_owned"); + this.ownedIcon.setName("icon_owned"); this.ownedIcon.setVisible(false); this.ownedIcon.setOrigin(0, 0); this.ownedIcon.setPositionRelative(this.nameText, 0, 11.75); this.add(this.ownedIcon); this.championRibbon = this.scene.add.sprite(0, 0, "champion_ribbon"); + this.championRibbon.setName("icon_champion_ribbon"); this.championRibbon.setVisible(false); this.championRibbon.setOrigin(0, 0); this.championRibbon.setPositionRelative(this.nameText, 11.75, 11.75); @@ -106,6 +111,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { } this.teraIcon = this.scene.add.sprite(0, 0, "icon_tera"); + this.teraIcon.setName("icon_tera"); this.teraIcon.setVisible(false); this.teraIcon.setOrigin(0, 0); this.teraIcon.setScale(0.5); @@ -114,6 +120,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.add(this.teraIcon); this.shinyIcon = this.scene.add.sprite(0, 0, "shiny_star"); + this.shinyIcon.setName("icon_shiny"); this.shinyIcon.setVisible(false); this.shinyIcon.setOrigin(0, 0); this.shinyIcon.setScale(0.5); @@ -122,6 +129,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.add(this.shinyIcon); this.fusionShinyIcon = this.scene.add.sprite(0, 0, "shiny_star_2"); + this.fusionShinyIcon.setName("icon_fusion_shiny"); this.fusionShinyIcon.setVisible(false); this.fusionShinyIcon.setOrigin(0, 0); this.fusionShinyIcon.setScale(0.5); @@ -129,6 +137,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.add(this.fusionShinyIcon); this.splicedIcon = this.scene.add.sprite(0, 0, "icon_spliced"); + this.splicedIcon.setName("icon_spliced"); this.splicedIcon.setVisible(false); this.splicedIcon.setOrigin(0, 0); this.splicedIcon.setScale(0.5); @@ -137,31 +146,37 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.add(this.splicedIcon); this.statusIndicator = this.scene.add.sprite(0, 0, "statuses"); + this.statusIndicator.setName("icon_status"); this.statusIndicator.setVisible(false); this.statusIndicator.setOrigin(0, 0); this.statusIndicator.setPositionRelative(this.nameText, 0, 11.5); this.add(this.statusIndicator); this.levelContainer = this.scene.add.container(player ? -41 : -50, player ? -10 : -5); + this.levelContainer.setName("container_level"); this.add(this.levelContainer); const levelOverlay = this.scene.add.image(0, 0, "overlay_lv"); this.levelContainer.add(levelOverlay); this.hpBar = this.scene.add.image(player ? -61 : -71, player ? -1 : 4.5, "overlay_hp"); + this.hpBar.setName("hp_bar"); this.hpBar.setOrigin(0); this.add(this.hpBar); this.hpBarSegmentDividers = []; this.levelNumbersContainer = this.scene.add.container(9.5, (this.scene as BattleScene).uiTheme ? 0 : -0.5); + this.levelNumbersContainer.setName("container_level"); this.levelContainer.add(this.levelNumbersContainer); if (this.player) { this.hpNumbersContainer = this.scene.add.container(-15, 10); + this.hpNumbersContainer.setName("container_hp"); this.add(this.hpNumbersContainer); const expBar = this.scene.add.image(-98, 18, "overlay_exp"); + expBar.setName("overlay_exp"); expBar.setOrigin(0); this.add(expBar); @@ -180,10 +195,12 @@ export default class BattleInfo extends Phaser.GameObjects.Container { } this.statsContainer = this.scene.add.container(0, 0); + this.statsContainer.setName("container_stats"); this.statsContainer.setAlpha(0); this.add(this.statsContainer); this.statsBox = this.scene.add.sprite(0, 0, `${this.getTextureName()}_stats`); + this.statsBox.setName("box_stats"); this.statsBox.setOrigin(1, 0.5); this.statsContainer.add(this.statsBox); @@ -197,25 +214,30 @@ export default class BattleInfo extends Phaser.GameObjects.Container { const statX = i > 1 ? this.statNumbers[i - 2].x + this.statNumbers[i - 2].width + 4 : -this.statsBox.width + 8; const statY = -this.statsBox.height / 2 + 4 + (i < battleStatOrder.length - 1 ? (i % 2 ? 10 : 0) : 5); const statLabel = this.scene.add.sprite(statX, statY, "pbinfo_stat", BattleStat[s]); + statLabel.setName("icon_stat_label_" + i.toString()); statLabel.setOrigin(0, 0); statLabels.push(statLabel); this.statValuesContainer.add(statLabel); const statNumber = this.scene.add.sprite(statX + statLabel.width, statY, "pbinfo_stat_numbers", "3"); + statNumber.setName("icon_stat_number_" + i.toString()); statNumber.setOrigin(0, 0); this.statNumbers.push(statNumber); this.statValuesContainer.add(statNumber); }); this.type1Icon = this.scene.add.sprite(player ? -139 : -15, player ? -17 : -15.5, `pbinfo_${player ? "player" : "enemy"}_type1`); + this.type1Icon.setName("icon_type_1"); this.type1Icon.setOrigin(0, 0); this.add(this.type1Icon); this.type2Icon = this.scene.add.sprite(player ? -139 : -15, player ? -1 : -2.5, `pbinfo_${player ? "player" : "enemy"}_type2`); + this.type2Icon.setName("icon_type_2"); this.type2Icon.setOrigin(0, 0); this.add(this.type2Icon); this.type3Icon = this.scene.add.sprite(player ? -154 : 0, player ? -17 : -15.5, `pbinfo_${player ? "player" : "enemy"}_type`); + this.type3Icon.setName("icon_type_3"); this.type3Icon.setOrigin(0, 0); this.add(this.type3Icon); } @@ -414,6 +436,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { const dividerX = (Math.round((maxHp / this.bossSegments) * s) / maxHp) * this.hpBar.width; const divider = this.scene.add.rectangle(0, 0, 1, this.hpBar.height - (uiTheme ? 0 : 1), pokemon.bossSegmentIndex >= s ? 0xFFFFFF : 0x404040); divider.setOrigin(0.5, 0); + divider.setName("hpBar_divider_" + s.toString()); this.add(divider); this.moveBelow(divider as Phaser.GameObjects.GameObject, this.statsContainer); From 74bf42b4b7b26af786ec974d639cb8a942503d8b Mon Sep 17 00:00:00 2001 From: Benjamin Odom Date: Fri, 24 May 2024 17:01:47 -0500 Subject: [PATCH 20/61] Let's try this again --- src/battle-scene-events.ts | 25 +++++++++++++++++++++++++ src/battle-scene.ts | 8 ++++++++ src/phases.ts | 9 ++++++--- 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 src/battle-scene-events.ts diff --git a/src/battle-scene-events.ts b/src/battle-scene-events.ts new file mode 100644 index 00000000000..be3b79ff609 --- /dev/null +++ b/src/battle-scene-events.ts @@ -0,0 +1,25 @@ +import Move from "./data/move"; + +export enum BattleSceneEventType { + MOVE_USED = "onMoveUsed" +} + +/** + * Container class for `onMoveUsed` events + * @extends Event +*/ +export class MoveUsedEvent extends Event { + /** The ID of the {@linkcode Pokemon} that used the {@linkcode Move} */ + public userId: number; + /** The {@linkcode Move} used */ + public move: Move; + /** The amount of PP used on the {@linkcode Move} this turn */ + public ppUsed: number; + constructor(userId: number, move: Move, ppUsed: number) { + super(BattleSceneEventType.MOVE_USED); + + this.userId = userId; + this.move = move; + this.ppUsed = ppUsed; + } +} diff --git a/src/battle-scene.ts b/src/battle-scene.ts index b4435ec5b26..2d403dad5ce 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -184,6 +184,14 @@ export default class BattleScene extends SceneBase { public rngSeedOverride: string = ""; public rngOffset: integer = 0; + /** + * Allows subscribers to listen for events + * + * Current Events: + * - {@linkcode BattleSceneEventType.MOVE_USED} {@linkcode MoveUsedEvent} + */ + public readonly eventTarget: EventTarget = new EventTarget(); + constructor() { super("battle"); this.phaseQueue = []; diff --git a/src/phases.ts b/src/phases.ts index 3189e670ebf..e132c3a911b 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -61,6 +61,7 @@ import { Abilities } from "./data/enums/abilities"; import * as Overrides from "./overrides"; import { TextStyle, addTextObject } from "./ui/text"; import { Type } from "./data/type"; +import { MoveUsedEvent } from "./battle-scene-events"; export class LoginPhase extends Phase { @@ -2466,8 +2467,9 @@ export class MovePhase extends BattlePhase { const moveQueue = this.pokemon.getMoveQueue(); if (this.cancelled || this.failed) { if (this.failed) { - this.move.usePp(ppUsed); - } // Only use PP if the move failed + this.move.usePp(ppUsed); // Only use PP if the move failed + this.scene.eventTarget.dispatchEvent(new MoveUsedEvent(this.pokemon?.id, this.move.getMove(), ppUsed)); + } // Record a failed move so Abilities like Truant don't trigger next turn and soft-lock this.pokemon.pushMoveHistory({ move: Moves.NONE, result: MoveResult.FAIL }); @@ -2497,8 +2499,9 @@ export class MovePhase extends BattlePhase { return this.end(); } - if (!moveQueue.length || !moveQueue.shift().ignorePP) {// using .shift here clears out two turn moves once they've been used + if (!moveQueue.length || !moveQueue.shift().ignorePP) { // using .shift here clears out two turn moves once they've been used this.move.usePp(ppUsed); + this.scene.eventTarget.dispatchEvent(new MoveUsedEvent(this.pokemon?.id, this.move.getMove(), ppUsed)); } if (!allMoves[this.move.moveId].getAttrs(CopyMoveAttr).length) { From 3985c63dad2b205c89edabf0f5c17727967ca1f3 Mon Sep 17 00:00:00 2001 From: Benjamin Odom Date: Fri, 24 May 2024 17:03:49 -0500 Subject: [PATCH 21/61] Update battle-scene.ts --- src/battle-scene.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 2d403dad5ce..bb96a4fad2e 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -185,11 +185,11 @@ export default class BattleScene extends SceneBase { public rngOffset: integer = 0; /** - * Allows subscribers to listen for events - * - * Current Events: - * - {@linkcode BattleSceneEventType.MOVE_USED} {@linkcode MoveUsedEvent} - */ + * Allows subscribers to listen for events + * + * Current Events: + * - {@linkcode BattleSceneEventType.MOVE_USED} {@linkcode MoveUsedEvent} + */ public readonly eventTarget: EventTarget = new EventTarget(); constructor() { From 919760e2e1b0da0dc79d508ba63c404abd6905ef Mon Sep 17 00:00:00 2001 From: Jon Studders Date: Fri, 24 May 2024 23:26:23 +0100 Subject: [PATCH 22/61] Added if statement to deploy.yml stopping local builds failing. (#1335) --- .github/workflows/deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 07aed42a5a7..2364fff5a35 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -6,6 +6,7 @@ on: jobs: deploy: + if: github.repository == 'pagefaultgames/pokerogue' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From c8b77cffc1bb399745790e46bf29d86e4cb23a91 Mon Sep 17 00:00:00 2001 From: Jon Studders Date: Fri, 24 May 2024 23:36:02 +0100 Subject: [PATCH 23/61] Added current biome text (#915) * Added ability to get hex colour from type, added biome text, added functionality for querying biomeType with object. * Revert "Added ability to get hex colour from type, added biome text, added functionality for querying biomeType with object." This reverts commit 0f87000aa46ebb0a6d1fc628dd56ac39ef7229db. * Reverted changes, added biome text to line one and renamed wavecounttext to a more standard name. * Update battle-scene.ts --------- Co-authored-by: Benjamin Odom --- src/battle-scene.ts | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index bb96a4fad2e..e3df4275af9 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -151,6 +151,7 @@ export default class BattleScene extends SceneBase { public money: integer; public pokemonInfoContainer: PokemonInfoContainer; private party: PlayerPokemon[]; + private lineOneText: Phaser.GameObjects.Text; private waveCountText: Phaser.GameObjects.Text; private moneyText: Phaser.GameObjects.Text; private scoreText: Phaser.GameObjects.Text; @@ -350,9 +351,9 @@ export default class BattleScene extends SceneBase { this.candyBar.setup(); this.fieldUI.add(this.candyBar); - this.waveCountText = addTextObject(this, (this.game.canvas.width / 6) - 2, 0, startingWave.toString(), TextStyle.BATTLE_INFO); - this.waveCountText.setOrigin(1, 0); - this.fieldUI.add(this.waveCountText); + this.lineOneText = addTextObject(this, (this.game.canvas.width / 6) - 2, 0, startingWave.toString(), TextStyle.BATTLE_INFO); + this.lineOneText.setOrigin(1, 0); + this.fieldUI.add(this.lineOneText); this.moneyText = addTextObject(this, (this.game.canvas.width / 6) - 2, 0, "", TextStyle.MONEY); this.moneyText.setOrigin(1, 0); @@ -480,7 +481,7 @@ export default class BattleScene extends SceneBase { } }); - this.updateWaveCountText(); + this.updateLineOneText(); this.updateMoneyText(); this.updateScoreText(); } @@ -794,8 +795,8 @@ export default class BattleScene extends SceneBase { this.currentBattle = null; - this.waveCountText.setText(startingWave.toString()); - this.waveCountText.setVisible(false); + this.lineOneText.setText(startingWave.toString()); + this.lineOneText.setVisible(false); this.updateMoneyText(); this.moneyText.setVisible(false); @@ -1244,12 +1245,13 @@ export default class BattleScene extends SceneBase { }); } - updateWaveCountText(): void { + updateLineOneText(): void { const isBoss = !(this.currentBattle.waveIndex % 10); - this.waveCountText.setText(this.currentBattle.waveIndex.toString()); - this.waveCountText.setColor(!isBoss ? "#404040" : "#f89890"); - this.waveCountText.setShadowColor(!isBoss ? "#ded6b5" : "#984038"); - this.waveCountText.setVisible(true); + const biomeString: string = getBiomeName(this.arena.biomeType); + this.lineOneText.setText( biomeString + " - " + this.currentBattle.waveIndex.toString()); + this.lineOneText.setColor(!isBoss ? "#404040" : "#f89890"); + this.lineOneText.setShadowColor(!isBoss ? "#ded6b5" : "#984038"); + this.lineOneText.setVisible(true); } updateMoneyText(): void { @@ -1297,8 +1299,8 @@ export default class BattleScene extends SceneBase { updateUIPositions(): void { const enemyModifierCount = this.enemyModifiers.filter(m => m.isIconVisible(this)).length; - this.waveCountText.setY(-(this.game.canvas.height / 6) + (enemyModifierCount ? enemyModifierCount <= 12 ? 15 : 24 : 0)); - this.moneyText.setY(this.waveCountText.y + 10); + this.lineOneText.setY(-(this.game.canvas.height / 6) + (enemyModifierCount ? enemyModifierCount <= 12 ? 15 : 24 : 0)); + this.moneyText.setY(this.lineOneText.y + 10); this.scoreText.setY(this.moneyText.y + 10); [ this.luckLabelText, this.luckText ].map(l => l.setY((this.scoreText.visible ? this.scoreText : this.moneyText).y + 10)); const offsetY = (this.scoreText.visible ? this.scoreText : this.moneyText).y + 15; From 815b37d23c94b971796480925c89fcdfb259f773 Mon Sep 17 00:00:00 2001 From: Nicholas Galauxy Date: Fri, 24 May 2024 17:57:49 -0500 Subject: [PATCH 24/61] Convert reconnect method to exponential backoff timeout (#1293) * Convert reconnect method to exponential backoff timeout * Reset to the starting duration after getting a response * Fix broken scope enclosures --- src/ui/unavailable-modal-ui-handler.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/ui/unavailable-modal-ui-handler.ts b/src/ui/unavailable-modal-ui-handler.ts index d1d28d6b036..96bf561003b 100644 --- a/src/ui/unavailable-modal-ui-handler.ts +++ b/src/ui/unavailable-modal-ui-handler.ts @@ -6,7 +6,7 @@ import { updateUserInfo } from "#app/account"; export default class UnavailableModalUiHandler extends ModalUiHandler { private reconnectTimer: number; - private reconnectInterval: number; + private reconnectDuration: number; private reconnectCallback: () => void; private readonly minTime = 1000 * 5; @@ -16,7 +16,7 @@ export default class UnavailableModalUiHandler extends ModalUiHandler { constructor(scene: BattleScene, mode?: Mode) { super(scene, mode); - this.reconnectInterval = this.minTime; + this.reconnectDuration = this.minTime; } getModalTitle(): string { @@ -51,19 +51,17 @@ export default class UnavailableModalUiHandler extends ModalUiHandler { tryReconnect(): void { updateUserInfo().then(response => { if (response[0] || [200, 400].includes(response[1])) { - clearInterval(this.reconnectTimer); this.reconnectTimer = null; - this.reconnectInterval = this.minTime; + this.reconnectDuration = this.minTime; this.scene.playSound("pb_bounce_1"); this.reconnectCallback(); } else { - clearInterval(this.reconnectTimer); - this.reconnectInterval = Math.min(this.reconnectInterval * 2, this.maxTime); // Set a max delay so it isn't infinite + this.reconnectDuration = Math.min(this.reconnectDuration * 2, this.maxTime); // Set a max delay so it isn't infinite this.reconnectTimer = setTimeout( () => this.tryReconnect(), // Adds a random factor to avoid pendulum effect during long total breakdown - this.reconnectInterval + (Math.random() * this.randVarianceTime)); + this.reconnectDuration + (Math.random() * this.randVarianceTime)); } }); } @@ -75,8 +73,8 @@ export default class UnavailableModalUiHandler extends ModalUiHandler { }; this.reconnectCallback = args[0]; - - this.reconnectTimer = setInterval(() => this.tryReconnect(), this.reconnectInterval); + this.reconnectDuration = this.minTime; + this.reconnectTimer = setTimeout(() => this.tryReconnect(), this.reconnectDuration); return super.show([ config ]); } From 416d666b308ab6679b5c7ce97664492664165e88 Mon Sep 17 00:00:00 2001 From: Benjamin Odom Date: Fri, 24 May 2024 18:43:38 -0500 Subject: [PATCH 25/61] Update Biome Text Labels and Variable Name (#1340) * Added ability to get hex colour from type, added biome text, added functionality for querying biomeType with object. * Revert "Added ability to get hex colour from type, added biome text, added functionality for querying biomeType with object." This reverts commit 0f87000aa46ebb0a6d1fc628dd56ac39ef7229db. * Reverted changes, added biome text to line one and renamed wavecounttext to a more standard name. * Update battle-scene.ts * Update Formatting * Update Enums * Revert * Update overrides.ts * Update battle-scene.ts --------- Co-authored-by: Jon Studders --- src/battle-scene.ts | 30 +++++++++++++++--------------- src/data/biomes.ts | 4 +--- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index e3df4275af9..8cd42d3c89e 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -151,8 +151,8 @@ export default class BattleScene extends SceneBase { public money: integer; public pokemonInfoContainer: PokemonInfoContainer; private party: PlayerPokemon[]; - private lineOneText: Phaser.GameObjects.Text; - private waveCountText: Phaser.GameObjects.Text; + /** Combined Biome and Wave count text */ + private biomeWaveText: Phaser.GameObjects.Text; private moneyText: Phaser.GameObjects.Text; private scoreText: Phaser.GameObjects.Text; private luckLabelText: Phaser.GameObjects.Text; @@ -351,9 +351,9 @@ export default class BattleScene extends SceneBase { this.candyBar.setup(); this.fieldUI.add(this.candyBar); - this.lineOneText = addTextObject(this, (this.game.canvas.width / 6) - 2, 0, startingWave.toString(), TextStyle.BATTLE_INFO); - this.lineOneText.setOrigin(1, 0); - this.fieldUI.add(this.lineOneText); + this.biomeWaveText = addTextObject(this, (this.game.canvas.width / 6) - 2, 0, startingWave.toString(), TextStyle.BATTLE_INFO); + this.biomeWaveText.setOrigin(1, 0); + this.fieldUI.add(this.biomeWaveText); this.moneyText = addTextObject(this, (this.game.canvas.width / 6) - 2, 0, "", TextStyle.MONEY); this.moneyText.setOrigin(1, 0); @@ -481,7 +481,7 @@ export default class BattleScene extends SceneBase { } }); - this.updateLineOneText(); + this.updateBiomeWaveText(); this.updateMoneyText(); this.updateScoreText(); } @@ -795,8 +795,8 @@ export default class BattleScene extends SceneBase { this.currentBattle = null; - this.lineOneText.setText(startingWave.toString()); - this.lineOneText.setVisible(false); + this.biomeWaveText.setText(startingWave.toString()); + this.biomeWaveText.setVisible(false); this.updateMoneyText(); this.moneyText.setVisible(false); @@ -1245,13 +1245,13 @@ export default class BattleScene extends SceneBase { }); } - updateLineOneText(): void { + updateBiomeWaveText(): void { const isBoss = !(this.currentBattle.waveIndex % 10); const biomeString: string = getBiomeName(this.arena.biomeType); - this.lineOneText.setText( biomeString + " - " + this.currentBattle.waveIndex.toString()); - this.lineOneText.setColor(!isBoss ? "#404040" : "#f89890"); - this.lineOneText.setShadowColor(!isBoss ? "#ded6b5" : "#984038"); - this.lineOneText.setVisible(true); + this.biomeWaveText.setText( biomeString + " - " + this.currentBattle.waveIndex.toString()); + this.biomeWaveText.setColor(!isBoss ? "#404040" : "#f89890"); + this.biomeWaveText.setShadowColor(!isBoss ? "#ded6b5" : "#984038"); + this.biomeWaveText.setVisible(true); } updateMoneyText(): void { @@ -1299,8 +1299,8 @@ export default class BattleScene extends SceneBase { updateUIPositions(): void { const enemyModifierCount = this.enemyModifiers.filter(m => m.isIconVisible(this)).length; - this.lineOneText.setY(-(this.game.canvas.height / 6) + (enemyModifierCount ? enemyModifierCount <= 12 ? 15 : 24 : 0)); - this.moneyText.setY(this.lineOneText.y + 10); + this.biomeWaveText.setY(-(this.game.canvas.height / 6) + (enemyModifierCount ? enemyModifierCount <= 12 ? 15 : 24 : 0)); + this.moneyText.setY(this.biomeWaveText.y + 10); this.scoreText.setY(this.moneyText.y + 10); [ this.luckLabelText, this.luckText ].map(l => l.setY((this.scoreText.visible ? this.scoreText : this.moneyText).y + 10)); const offsetY = (this.scoreText.visible ? this.scoreText : this.moneyText).y + 15; diff --git a/src/data/biomes.ts b/src/data/biomes.ts index 2b93de49806..770101607fa 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -18,10 +18,8 @@ export function getBiomeName(biome: Biome | -1) { return "Ancient Ruins"; case Biome.ABYSS: return "The Abyss"; - case Biome.SPACE: - return "Stratosphere"; case Biome.END: - return "Final Destination"; + return "???"; default: return Utils.toReadableString(Biome[biome]); } From 5e7a9b08724f39bb43c001e26c788eca08e64d41 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 24 May 2024 19:46:52 -0400 Subject: [PATCH 26/61] Update running away in Double Battles (#1336) * Add check for active pokemon and double battle with 1 active * remove unecessary case --- src/phases.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/phases.ts b/src/phases.ts index e132c3a911b..f13009d43a5 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -2156,13 +2156,21 @@ export class TurnStartPhase extends FieldPhase { this.scene.unshiftPhase(new AttemptCapturePhase(this.scene, turnCommand.targets[0] % 2, turnCommand.cursor)); break; case Command.POKEMON: + this.scene.unshiftPhase(new SwitchSummonPhase(this.scene, pokemon.getFieldIndex(), turnCommand.cursor, true, turnCommand.args[0] as boolean, pokemon.isPlayer())); case Command.RUN: - const isSwitch = turnCommand.command === Command.POKEMON; - if (isSwitch) { - this.scene.unshiftPhase(new SwitchSummonPhase(this.scene, pokemon.getFieldIndex(), turnCommand.cursor, true, turnCommand.args[0] as boolean, pokemon.isPlayer())); - } else { - this.scene.unshiftPhase(new AttemptRunPhase(this.scene, pokemon.getFieldIndex())); + let runningPokemon = pokemon; + if (this.scene.currentBattle.double) { + const playerActivePokemon = field.filter(pokemon => pokemon.isPlayer() && pokemon.isActive()); + // if only one pokemon is alive, use that one + if (playerActivePokemon.length > 1) { + // find which active pokemon has faster speed + const fasterPokemon = playerActivePokemon[0].getStat(Stat.SPD) > playerActivePokemon[1].getStat(Stat.SPD) ? playerActivePokemon[0] : playerActivePokemon[1]; + // check if either active pokemon has the ability "Run Away" + const hasRunAway = playerActivePokemon.find(p => p.hasAbility(Abilities.RUN_AWAY)); + runningPokemon = hasRunAway !== undefined ? hasRunAway : fasterPokemon; + } } + this.scene.unshiftPhase(new AttemptRunPhase(this.scene, runningPokemon.getFieldIndex())); break; } } From dc828c6801b593a1521798cbb8346ec8faff0b03 Mon Sep 17 00:00:00 2001 From: Tempoanon <163687446+TempsRay@users.noreply.github.com> Date: Fri, 24 May 2024 19:54:46 -0400 Subject: [PATCH 27/61] Revert "Update running away in Double Battles (#1336)" (#1342) This reverts commit 5e7a9b08724f39bb43c001e26c788eca08e64d41. --- src/phases.ts | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/phases.ts b/src/phases.ts index f13009d43a5..e132c3a911b 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -2156,21 +2156,13 @@ export class TurnStartPhase extends FieldPhase { this.scene.unshiftPhase(new AttemptCapturePhase(this.scene, turnCommand.targets[0] % 2, turnCommand.cursor)); break; case Command.POKEMON: - this.scene.unshiftPhase(new SwitchSummonPhase(this.scene, pokemon.getFieldIndex(), turnCommand.cursor, true, turnCommand.args[0] as boolean, pokemon.isPlayer())); case Command.RUN: - let runningPokemon = pokemon; - if (this.scene.currentBattle.double) { - const playerActivePokemon = field.filter(pokemon => pokemon.isPlayer() && pokemon.isActive()); - // if only one pokemon is alive, use that one - if (playerActivePokemon.length > 1) { - // find which active pokemon has faster speed - const fasterPokemon = playerActivePokemon[0].getStat(Stat.SPD) > playerActivePokemon[1].getStat(Stat.SPD) ? playerActivePokemon[0] : playerActivePokemon[1]; - // check if either active pokemon has the ability "Run Away" - const hasRunAway = playerActivePokemon.find(p => p.hasAbility(Abilities.RUN_AWAY)); - runningPokemon = hasRunAway !== undefined ? hasRunAway : fasterPokemon; - } + const isSwitch = turnCommand.command === Command.POKEMON; + if (isSwitch) { + this.scene.unshiftPhase(new SwitchSummonPhase(this.scene, pokemon.getFieldIndex(), turnCommand.cursor, true, turnCommand.args[0] as boolean, pokemon.isPlayer())); + } else { + this.scene.unshiftPhase(new AttemptRunPhase(this.scene, pokemon.getFieldIndex())); } - this.scene.unshiftPhase(new AttemptRunPhase(this.scene, runningPokemon.getFieldIndex())); break; } } From 564add66d2e58155654c360413660599d66816d5 Mon Sep 17 00:00:00 2001 From: zaccie Date: Sat, 25 May 2024 12:31:33 +1200 Subject: [PATCH 28/61] Changing Biome Text Colour (#1346) On light coloured biomes this change should be similar readability In darker biomes it's has much easier readability + now becomes more consistent colour with the rest of the game text which just looks better imo --- src/battle-scene.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 8cd42d3c89e..93f02c26143 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -1249,8 +1249,8 @@ export default class BattleScene extends SceneBase { const isBoss = !(this.currentBattle.waveIndex % 10); const biomeString: string = getBiomeName(this.arena.biomeType); this.biomeWaveText.setText( biomeString + " - " + this.currentBattle.waveIndex.toString()); - this.biomeWaveText.setColor(!isBoss ? "#404040" : "#f89890"); - this.biomeWaveText.setShadowColor(!isBoss ? "#ded6b5" : "#984038"); + this.biomeWaveText.setColor(!isBoss ? "#ffffff" : "#f89890"); + this.biomeWaveText.setShadowColor(!isBoss ? "#636363" : "#984038"); this.biomeWaveText.setVisible(true); } From 623c05a3dfeb73b9f77ab8f018af863ad849d744 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 24 May 2024 20:39:58 -0400 Subject: [PATCH 29/61] update running away in double battles for real this time (#1345) --- src/phases.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/phases.ts b/src/phases.ts index e132c3a911b..84875921e00 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -2156,13 +2156,22 @@ export class TurnStartPhase extends FieldPhase { this.scene.unshiftPhase(new AttemptCapturePhase(this.scene, turnCommand.targets[0] % 2, turnCommand.cursor)); break; case Command.POKEMON: + this.scene.unshiftPhase(new SwitchSummonPhase(this.scene, pokemon.getFieldIndex(), turnCommand.cursor, true, turnCommand.args[0] as boolean, pokemon.isPlayer())); + break; case Command.RUN: - const isSwitch = turnCommand.command === Command.POKEMON; - if (isSwitch) { - this.scene.unshiftPhase(new SwitchSummonPhase(this.scene, pokemon.getFieldIndex(), turnCommand.cursor, true, turnCommand.args[0] as boolean, pokemon.isPlayer())); - } else { - this.scene.unshiftPhase(new AttemptRunPhase(this.scene, pokemon.getFieldIndex())); + let runningPokemon = pokemon; + if (this.scene.currentBattle.double) { + const playerActivePokemon = field.filter(pokemon => pokemon.isPlayer() && pokemon.isActive()); + // if only one pokemon is alive, use that one + if (playerActivePokemon.length > 1) { + // find which active pokemon has faster speed + const fasterPokemon = playerActivePokemon[0].getStat(Stat.SPD) > playerActivePokemon[1].getStat(Stat.SPD) ? playerActivePokemon[0] : playerActivePokemon[1]; + // check if either active pokemon has the ability "Run Away" + const hasRunAway = playerActivePokemon.find(p => p.hasAbility(Abilities.RUN_AWAY)); + runningPokemon = hasRunAway !== undefined ? hasRunAway : fasterPokemon; + } } + this.scene.unshiftPhase(new AttemptRunPhase(this.scene, runningPokemon.getFieldIndex())); break; } } From 840ac9f53fa56230ea4f05bc0196a2939237032d Mon Sep 17 00:00:00 2001 From: Matthew Olker Date: Fri, 24 May 2024 21:16:27 -0400 Subject: [PATCH 30/61] fix single pokemon run away in double battle --- src/phases.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/phases.ts b/src/phases.ts index 84875921e00..231c9aacfa1 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -2161,7 +2161,13 @@ export class TurnStartPhase extends FieldPhase { case Command.RUN: let runningPokemon = pokemon; if (this.scene.currentBattle.double) { - const playerActivePokemon = field.filter(pokemon => pokemon.isPlayer() && pokemon.isActive()); + const playerActivePokemon = field.filter(pokemon => { + if (!!pokemon) { + return pokemon.isPlayer() && pokemon.isActive(); + } else { + return; + } + }); // if only one pokemon is alive, use that one if (playerActivePokemon.length > 1) { // find which active pokemon has faster speed From 32fadf8cb61b9ca852ef47c2fc477a35850eb5b8 Mon Sep 17 00:00:00 2001 From: Benjamin Odom Date: Fri, 24 May 2024 20:46:21 -0500 Subject: [PATCH 31/61] Update menu.ts (#1349) --- src/locales/en/menu.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/en/menu.ts b/src/locales/en/menu.ts index 9e4cfdf3f09..fb6bfff554b 100644 --- a/src/locales/en/menu.ts +++ b/src/locales/en/menu.ts @@ -29,7 +29,7 @@ export const menu: SimpleTranslationEntries = { "confirmPassword": "Confirm Password", "registrationAgeWarning": "By registering, you confirm you are of 13 years of age or older.", "backToLogin": "Back to Login", - "failedToLoadSaveData": "Failed to load save data. Please reload the page.\nIf this continues, please contact the administrator.", + "failedToLoadSaveData": "Failed to load save data. Please reload the page.\nIf this persists, please check #announcements in Discord.", "sessionSuccess": "Session loaded successfully.", "failedToLoadSession": "Your session data could not be loaded.\nIt may be corrupted.", "boyOrGirl": "Are you a boy or a girl?", From 1e283afc84367849d3b2e6ba128ff39240871065 Mon Sep 17 00:00:00 2001 From: Matthew Olker Date: Fri, 24 May 2024 22:57:28 -0400 Subject: [PATCH 32/61] fix anmation duplicate warnings --- src/data/trainer-config.ts | 16 +++++++++------- src/field/anims.ts | 14 ++++++++------ src/field/arena.ts | 28 ++++++++++++++++------------ src/field/pokemon.ts | 30 +++++++++++++++++------------- src/phases.ts | 2 +- src/ui/egg-gacha-ui-handler.ts | 24 ++++++++++++++---------- src/ui/egg-hatch-scene-handler.ts | 12 +++++++----- 7 files changed, 72 insertions(+), 54 deletions(-) diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index df10923963a..30c9c016ad9 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -630,13 +630,15 @@ export class TrainerConfig { ? scene.anims.generateFrameNames(partnerTrainerKey, {zeroPad: 4,suffix: ".png",start: 1,end: 128}) : null; console.warn = originalWarn; - scene.anims.create({ - key: trainerKey, - frames: frameNames, - frameRate: 24, - repeat: -1 - }); - if (isDouble) { + if (!(scene.anims.exists(trainerKey))) { + scene.anims.create({ + key: trainerKey, + frames: frameNames, + frameRate: 24, + repeat: -1 + }); + } + if (isDouble && !(scene.anims.exists(partnerTrainerKey))) { scene.anims.create({ key: partnerTrainerKey, frames: partnerFrameNames, diff --git a/src/field/anims.ts b/src/field/anims.ts index db6a331cc20..52a15aa4f20 100644 --- a/src/field/anims.ts +++ b/src/field/anims.ts @@ -24,12 +24,14 @@ export function addPokeballOpenParticles(scene: BattleScene, x: number, y: numbe function doDefaultPbOpenParticles(scene: BattleScene, x: number, y: number, radius: number) { const pbOpenParticlesFrameNames = scene.anims.generateFrameNames("pb_particles", { start: 0, end: 3, suffix: ".png" }); - scene.anims.create({ - key: "pb_open_particle", - frames: pbOpenParticlesFrameNames, - frameRate: 16, - repeat: -1 - }); + if (!(scene.anims.exists("pb_open_particle"))) { + scene.anims.create({ + key: "pb_open_particle", + frames: pbOpenParticlesFrameNames, + frameRate: 16, + repeat: -1 + }); + } const addParticle = (index: integer) => { const particle = scene.add.sprite(x, y, "pb_open_particle"); diff --git a/src/field/arena.ts b/src/field/arena.ts index 3668eaa440e..b00b8054ee2 100644 --- a/src/field/arena.ts +++ b/src/field/arena.ts @@ -726,12 +726,14 @@ export class ArenaBase extends Phaser.GameObjects.Container { if (this.base.texture.frameTotal > 1) { const baseFrameNames = this.scene.anims.generateFrameNames(baseKey, { zeroPad: 4, suffix: ".png", start: 1, end: this.base.texture.frameTotal - 1 }); - this.scene.anims.create({ - key: baseKey, - frames: baseFrameNames, - frameRate: 12, - repeat: -1 - }); + if (!(this.scene.anims.exists(baseKey))) { + this.scene.anims.create({ + key: baseKey, + frames: baseFrameNames, + frameRate: 12, + repeat: -1 + }); + } this.base.play(baseKey); } else { this.base.stop(); @@ -751,12 +753,14 @@ export class ArenaBase extends Phaser.GameObjects.Container { if (hasProps && prop.texture.frameTotal > 1) { const propFrameNames = this.scene.anims.generateFrameNames(propKey, { zeroPad: 4, suffix: ".png", start: 1, end: prop.texture.frameTotal - 1 }); - this.scene.anims.create({ - key: propKey, - frames: propFrameNames, - frameRate: 12, - repeat: -1 - }); + if (!(this.scene.anims.exists(propKey))) { + this.scene.anims.create({ + key: propKey, + frames: propFrameNames, + frameRate: 12, + repeat: -1 + }); + } prop.play(propKey); } else { prop.stop(); diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 5cc4e54c5b4..c8ba9c86319 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -322,12 +322,14 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { console.warn = () => {}; const battleFrameNames = this.scene.anims.generateFrameNames(this.getBattleSpriteKey(), { zeroPad: 4, suffix: ".png", start: 1, end: 400 }); console.warn = originalWarn; - this.scene.anims.create({ - key: this.getBattleSpriteKey(), - frames: battleFrameNames, - frameRate: 12, - repeat: -1 - }); + if (!(this.scene.anims.exists(this.getBattleSpriteKey()))) { + this.scene.anims.create({ + key: this.getBattleSpriteKey(), + frames: battleFrameNames, + frameRate: 12, + repeat: -1 + }); + } } this.playAnim(); const updateFusionPaletteAndResolve = () => { @@ -524,13 +526,15 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { shinySparkle.setVisible(false); shinySparkle.setOrigin(0.5, 1); const frameNames = this.scene.anims.generateFrameNames(key, { suffix: ".png", end: 34 }); - this.scene.anims.create({ - key: `sparkle${keySuffix}`, - frames: frameNames, - frameRate: 32, - showOnStart: true, - hideOnComplete: true, - }); + if (!(this.scene.anims.exists(`sparkle${keySuffix}`))) { + this.scene.anims.create({ + key: `sparkle${keySuffix}`, + frames: frameNames, + frameRate: 32, + showOnStart: true, + hideOnComplete: true, + }); + } this.add(shinySparkle); this.shinySparkle = shinySparkle; diff --git a/src/phases.ts b/src/phases.ts index 231c9aacfa1..b05dfba05ca 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -4411,7 +4411,7 @@ export class PokemonHealPhase extends CommonAnimPhase { } const healAmount = new Utils.NumberHolder(Math.floor(this.hpHealed * hpRestoreMultiplier.value)); if (healAmount.value < 0) { - pokemon.damageAndUpdate(healAmount.value * -1, HitResult.HEAL); + pokemon.damageAndUpdate(healAmount.value * -1, HitResult.HEAL as DamageResult); healAmount.value = 0; } // Prevent healing to full if specified (in case of healing tokens so Sturdy doesn't cause a softlock) diff --git a/src/ui/egg-gacha-ui-handler.ts b/src/ui/egg-gacha-ui-handler.ts index 4cfd6813b41..9536df7dbed 100644 --- a/src/ui/egg-gacha-ui-handler.ts +++ b/src/ui/egg-gacha-ui-handler.ts @@ -61,16 +61,20 @@ export default class EggGachaUiHandler extends MessageUiHandler { this.eggGachaContainer.add(bg); const hatchFrameNames = this.scene.anims.generateFrameNames("gacha_hatch", { suffix: ".png", start: 1, end: 4 }); - this.scene.anims.create({ - key: "open", - frames: hatchFrameNames, - frameRate: 12 - }); - this.scene.anims.create({ - key: "close", - frames: hatchFrameNames.reverse(), - frameRate: 12 - }); + if (!(this.scene.anims.exists("open"))) { + this.scene.anims.create({ + key: "open", + frames: hatchFrameNames, + frameRate: 12 + }); + } + if (!(this.scene.anims.exists("close"))) { + this.scene.anims.create({ + key: "close", + frames: hatchFrameNames.reverse(), + frameRate: 12 + }); + } Utils.getEnumValues(GachaType).forEach((gachaType, g) => { const gachaTypeKey = GachaType[gachaType].toString().toLowerCase(); diff --git a/src/ui/egg-hatch-scene-handler.ts b/src/ui/egg-hatch-scene-handler.ts index 2277c3a4b64..5a4c984234c 100644 --- a/src/ui/egg-hatch-scene-handler.ts +++ b/src/ui/egg-hatch-scene-handler.ts @@ -16,11 +16,13 @@ export default class EggHatchSceneHandler extends UiHandler { this.scene.fieldUI.add(this.eggHatchContainer); const eggLightraysAnimFrames = this.scene.anims.generateFrameNames("egg_lightrays", { start: 0, end: 3 }); - this.scene.anims.create({ - key: "egg_lightrays", - frames: eggLightraysAnimFrames, - frameRate: 32 - }); + if (!(this.scene.anims.exists("egg_lightrays"))) { + this.scene.anims.create({ + key: "egg_lightrays", + frames: eggLightraysAnimFrames, + frameRate: 32 + }); + } } show(_args: any[]): boolean { From 5f7c5933655629d2bb8f97973248312bb942c45d Mon Sep 17 00:00:00 2001 From: SnowCharm Date: Sat, 25 May 2024 11:46:16 +0800 Subject: [PATCH 33/61] Update zh_CN ability.ts and move.ts (#1350) * fix translation error in zh_CN ability.ts * add translation for Zippy Zap * fix translation to keep up with the current impl --- src/locales/zh_CN/ability.ts | 8 ++++---- src/locales/zh_CN/move.ts | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/locales/zh_CN/ability.ts b/src/locales/zh_CN/ability.ts index 24859668764..cdeb91b0e8f 100644 --- a/src/locales/zh_CN/ability.ts +++ b/src/locales/zh_CN/ability.ts @@ -475,7 +475,7 @@ export const ability: AbilityTranslationEntries = { }, frisk: { name: "察觉", - description: "进入战斗时,神奇宝贝可以检查对方神奇宝贝的能力。", + description: "出场时,可以察觉对手的特性。", }, reckless: { name: "舍身", @@ -1063,7 +1063,7 @@ export const ability: AbilityTranslationEntries = { }, asOneGlastrier: { name: "人马一体", - description: "兼备蕾冠王的紧张感和灵幽\n马的漆黑嘶鸣这两种特性。", + description: "兼备蕾冠王的紧张感和雪暴\n马的苍白嘶鸣这两种特性。", }, asOneSpectrier: { name: "人马一体", @@ -1211,11 +1211,11 @@ export const ability: AbilityTranslationEntries = { }, embodyAspectTeal: { name: "面影辉映", - description: "将回忆映于心中,让水井面\n具发出光辉,提高自己的特\n防。", + description: "将回忆映于心中,让碧草面\n具发出光辉,提高自己的速\n度。", }, embodyAspectWellspring: { name: "面影辉映", - description: "将回忆映于心中,让碧草面\n具发出光辉,提高自己的速\n度。", + description: "将回忆映于心中,让水井面\n具发出光辉,提高自己的特\n防。", }, embodyAspectHearthflame: { name: "面影辉映", diff --git a/src/locales/zh_CN/move.ts b/src/locales/zh_CN/move.ts index 1268bcc985c..e8d4b847d99 100644 --- a/src/locales/zh_CN/move.ts +++ b/src/locales/zh_CN/move.ts @@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = { }, "zippyZap": { name: "电电加速", - effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness.", + effect: "迅猛无比的电击。必定能够\n先制攻击,并且提高自己的\n闪避率。", }, "splishySplash": { name: "滔滔冲浪", @@ -3809,4 +3809,4 @@ export const move: MoveTranslationEntries = { name: "邪毒锁链", effect: "用由毒形成的锁链缠住对手\n注入毒素加以侵蚀。有时会\n让对手陷入剧毒状态", } -} as const; +} as const; From 4277439a2d110cfc933954019592cdfd271fdfb3 Mon Sep 17 00:00:00 2001 From: YounesM Date: Sat, 25 May 2024 06:00:58 +0200 Subject: [PATCH 34/61] Implemented Dancer Ability (#590) * implemented Dancer Ability * corrected target selection for double battles, improved ability detection * Added TSDoc * Enhanced TSDoc * Corrected dancing StatusMove triggering * Linter corrections --- src/data/ability.ts | 68 +++++++++++++++++++++++++++++++++++++++++++-- src/phases.ts | 15 ++++++++-- 2 files changed, 77 insertions(+), 6 deletions(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index 2e67b30c537..0ad69407e2c 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -2,14 +2,14 @@ import Pokemon, { HitResult, PokemonMove } from "../field/pokemon"; import { Type } from "./type"; import * as Utils from "../utils"; import { BattleStat, getBattleStatName } from "./battle-stat"; -import { PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from "../phases"; +import { MovePhase, PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from "../phases"; import { getPokemonMessage, getPokemonPrefix } from "../messages"; import { Weather, WeatherType } from "./weather"; import { BattlerTag } from "./battler-tags"; import { BattlerTagType } from "./enums/battler-tag-type"; import { StatusEffect, getStatusEffectDescriptor, getStatusEffectHealText } from "./status-effect"; import { Gender } from "./gender"; -import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, StatusMoveTypeImmunityAttr, FlinchAttr, OneHitKOAttr, HitHealAttr, StrengthSapHealAttr, allMoves, StatusMove, VariablePowerAttr, applyMoveAttrs, IncrementMovePriorityAttr } from "./move"; +import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, StatusMoveTypeImmunityAttr, FlinchAttr, OneHitKOAttr, HitHealAttr, StrengthSapHealAttr, allMoves, StatusMove, SelfStatusMove, VariablePowerAttr, applyMoveAttrs, IncrementMovePriorityAttr } from "./move"; import { ArenaTagSide, ArenaTrapTag } from "./arena-tag"; import { ArenaTagType } from "./enums/arena-tag-type"; import { Stat } from "./pokemon-stat"; @@ -22,6 +22,7 @@ import i18next, { Localizable } from "#app/plugins/i18n.js"; import { Command } from "../ui/command-ui-handler"; import { getPokeballName } from "./pokeball"; import { BerryModifierType } from "#app/modifier/modifier-type"; +import {BattlerIndex} from "#app/battle"; export class Ability implements Localizable { public id: Abilities; @@ -2484,6 +2485,62 @@ export class PostBiomeChangeTerrainChangeAbAttr extends PostBiomeChangeAbAttr { } } +/** + * Triggers just after a move is used either by the opponent or the player + * @extends AbAttr + */ +export class PostMoveUsedAbAttr extends AbAttr { + applyPostMoveUsed(pokemon: Pokemon, move: PokemonMove, source: Pokemon, targets: BattlerIndex[], args: any[]): boolean | Promise { + return false; + } +} + +/** + * Triggers after a dance move is used either by the opponent or the player + * @extends PostMoveUsedAbAttr + */ +export class PostDancingMoveAbAttr extends PostMoveUsedAbAttr { + /** + * Resolves the Dancer ability by replicating the move used by the source of the dance + * either on the source itself or on the target of the dance + * @param dancer {@linkcode Pokemon} with Dancer ability + * @param move {@linkcode PokemonMove} Dancing move used by the source + * @param source {@linkcode Pokemon} that used the dancing move + * @param targets {@linkcode BattlerIndex}Targets of the dancing move + * @param args N/A + * + * @return true if the Dancer ability was resolved + */ + applyPostMoveUsed(dancer: Pokemon, move: PokemonMove, source: Pokemon, targets: BattlerIndex[], args: any[]): boolean | Promise { + // The move to replicate cannot come from the Dancer + if (source.getBattlerIndex() !== dancer.getBattlerIndex()) { + // If the move is an AttackMove or a StatusMove the Dancer must replicate the move on the source of the Dance + if (move.getMove() instanceof AttackMove || move.getMove() instanceof StatusMove) { + const target = this.getTarget(dancer, source, targets); + dancer.scene.unshiftPhase(new MovePhase(dancer.scene, dancer, target, move, true)); + } else if (move.getMove() instanceof SelfStatusMove) { + // If the move is a SelfStatusMove (ie. Swords Dance) the Dancer should replicate it on itself + dancer.scene.unshiftPhase(new MovePhase(dancer.scene, dancer, [dancer.getBattlerIndex()], move, true)); + } + } + return true; + } + + /** + * Get the correct targets of Dancer ability + * + * @param dancer {@linkcode Pokemon} Pokemon with Dancer ability + * @param source {@linkcode Pokemon} Source of the dancing move + * @param targets {@linkcode BattlerIndex} Targets of the dancing move + */ + getTarget(dancer: Pokemon, source: Pokemon, targets: BattlerIndex[]) : BattlerIndex[] { + if (dancer.isPlayer()) { + return source.isPlayer() ? targets : [source.getBattlerIndex()]; + } + return source.isPlayer() ? [source.getBattlerIndex()] : targets; + } +} + export class StatChangeMultiplierAbAttr extends AbAttr { private multiplier: integer; @@ -3013,6 +3070,11 @@ export function applyPostDefendAbAttrs(attrType: { new(...args: any[]): PostDefe return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostDefend(pokemon, passive, attacker, move, hitResult, args), args); } +export function applyPostMoveUsedAbAttrs(attrType: { new(...args: any[]): PostMoveUsedAbAttr }, + pokemon: Pokemon, move: PokemonMove, source: Pokemon, targets: BattlerIndex[], ...args: any[]): Promise { + return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostMoveUsed(pokemon, move, source, targets, args), args); +} + export function applyBattleStatMultiplierAbAttrs(attrType: { new(...args: any[]): BattleStatMultiplierAbAttr }, pokemon: Pokemon, battleStat: BattleStat, statValue: Utils.NumberHolder, ...args: any[]): Promise { return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyBattleStat(pokemon, passive, battleStat, statValue, args), args); @@ -3770,7 +3832,7 @@ export function initAbilities() { .attr(PostFaintHPDamageAbAttr) .bypassFaint(), new Ability(Abilities.DANCER, 7) - .unimplemented(), + .attr(PostDancingMoveAbAttr), new Ability(Abilities.BATTERY, 7) .unimplemented(), new Ability(Abilities.FLUFFY, 7) diff --git a/src/phases.ts b/src/phases.ts index b05dfba05ca..371b086057c 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -30,7 +30,7 @@ import { Weather, WeatherType, getRandomWeatherType, getTerrainBlockMessage, get import { TempBattleStat } from "./data/temp-battle-stat"; import { ArenaTagSide, ArenaTrapTag, MistTag, TrickRoomTag } from "./data/arena-tag"; import { ArenaTagType } from "./data/enums/arena-tag-type"; -import { CheckTrappedAbAttr, IgnoreOpponentStatChangesAbAttr, IgnoreOpponentEvasionAbAttr, PostAttackAbAttr, PostBattleAbAttr, PostDefendAbAttr, PostSummonAbAttr, PostTurnAbAttr, PostWeatherLapseAbAttr, PreSwitchOutAbAttr, PreWeatherDamageAbAttr, ProtectStatAbAttr, RedirectMoveAbAttr, BlockRedirectAbAttr, RunSuccessAbAttr, StatChangeMultiplierAbAttr, SuppressWeatherEffectAbAttr, SyncEncounterNatureAbAttr, applyAbAttrs, applyCheckTrappedAbAttrs, applyPostAttackAbAttrs, applyPostBattleAbAttrs, applyPostDefendAbAttrs, applyPostSummonAbAttrs, applyPostTurnAbAttrs, applyPostWeatherLapseAbAttrs, applyPreStatChangeAbAttrs, applyPreSwitchOutAbAttrs, applyPreWeatherEffectAbAttrs, BattleStatMultiplierAbAttr, applyBattleStatMultiplierAbAttrs, IncrementMovePriorityAbAttr, applyPostVictoryAbAttrs, PostVictoryAbAttr, applyPostBattleInitAbAttrs, PostBattleInitAbAttr, BlockNonDirectDamageAbAttr as BlockNonDirectDamageAbAttr, applyPostKnockOutAbAttrs, PostKnockOutAbAttr, PostBiomeChangeAbAttr, applyPostFaintAbAttrs, PostFaintAbAttr, IncreasePpAbAttr, PostStatChangeAbAttr, applyPostStatChangeAbAttrs, AlwaysHitAbAttr, PreventBerryUseAbAttr, StatChangeCopyAbAttr } from "./data/ability"; +import { CheckTrappedAbAttr, IgnoreOpponentStatChangesAbAttr, IgnoreOpponentEvasionAbAttr, PostAttackAbAttr, PostBattleAbAttr, PostDefendAbAttr, PostSummonAbAttr, PostTurnAbAttr, PostWeatherLapseAbAttr, PreSwitchOutAbAttr, PreWeatherDamageAbAttr, ProtectStatAbAttr, RedirectMoveAbAttr, BlockRedirectAbAttr, RunSuccessAbAttr, StatChangeMultiplierAbAttr, SuppressWeatherEffectAbAttr, SyncEncounterNatureAbAttr, applyAbAttrs, applyCheckTrappedAbAttrs, applyPostAttackAbAttrs, applyPostBattleAbAttrs, applyPostDefendAbAttrs, applyPostSummonAbAttrs, applyPostTurnAbAttrs, applyPostWeatherLapseAbAttrs, applyPreStatChangeAbAttrs, applyPreSwitchOutAbAttrs, applyPreWeatherEffectAbAttrs, BattleStatMultiplierAbAttr, applyBattleStatMultiplierAbAttrs, IncrementMovePriorityAbAttr, applyPostVictoryAbAttrs, PostVictoryAbAttr, applyPostBattleInitAbAttrs, PostBattleInitAbAttr, BlockNonDirectDamageAbAttr as BlockNonDirectDamageAbAttr, applyPostKnockOutAbAttrs, PostKnockOutAbAttr, PostBiomeChangeAbAttr, applyPostFaintAbAttrs, PostFaintAbAttr, IncreasePpAbAttr, PostStatChangeAbAttr, applyPostStatChangeAbAttrs, AlwaysHitAbAttr, PreventBerryUseAbAttr, StatChangeCopyAbAttr, applyPostMoveUsedAbAttrs, PostMoveUsedAbAttr } from "./data/ability"; import { Unlockables, getUnlockableName } from "./system/unlockables"; import { getBiomeKey } from "./field/arena"; import { BattleType, BattlerIndex, TurnCommand } from "./battle"; @@ -2404,7 +2404,7 @@ export class MovePhase extends BattlePhase { console.log(Moves[this.move.moveId]); if (!this.canMove()) { - if (this.move.moveId && this.pokemon.summonData.disabledMove === this.move.moveId) { + if (this.move.moveId && this.pokemon.summonData?.disabledMove === this.move.moveId) { this.scene.queueMessage(`${this.move.getName()} is disabled!`); } return this.end(); @@ -2543,7 +2543,16 @@ export class MovePhase extends BattlePhase { this.showFailedText(failedText); } } - + // Checks if Dancer ability is triggered + if (this.move.getMove().hasFlag(MoveFlags.DANCE_MOVE) && !this.followUp) { + // Pokemon with Dancer can be on either side of the battle so we check in both cases + this.scene.getPlayerField().forEach(pokemon => { + applyPostMoveUsedAbAttrs(PostMoveUsedAbAttr, pokemon, this.move, this.pokemon, this.targets); + }); + this.scene.getEnemyParty().forEach(pokemon => { + applyPostMoveUsedAbAttrs(PostMoveUsedAbAttr, pokemon, this.move, this.pokemon, this.targets); + }); + } this.end(); }; From 34474fb10e581fa5745ce4ef71f353f3e5611a74 Mon Sep 17 00:00:00 2001 From: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Date: Sat, 25 May 2024 11:36:14 +0200 Subject: [PATCH 35/61] German Loc for the menu.ts change (#1354) --- src/locales/de/menu.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/de/menu.ts b/src/locales/de/menu.ts index baa345eee8d..5545ec0dae8 100644 --- a/src/locales/de/menu.ts +++ b/src/locales/de/menu.ts @@ -29,7 +29,7 @@ export const menu: SimpleTranslationEntries = { "confirmPassword": "Bestätige Passwort", "registrationAgeWarning": "Mit der Registrierung bestätigen Sie, dass Sie 13 Jahre oder älter sind.", "backToLogin": "Zurück zur Anmeldung", - "failedToLoadSaveData": "Speicherdaten konnten nicht geladen werden. Bitte laden Sie die Seite neu.\nWenn dies weiterhin der Fall ist, wenden Sie sich bitte an den Administrator.", + "failedToLoadSaveData": "Speicherdaten konnten nicht geladen werden. Bitte laden Sie die Seite neu.\nÜberprüfe den #announcements-Kanal im Discord bei anhaltenden Problemen", "sessionSuccess": "Sitzung erfolgreich geladen.", "failedToLoadSession": "Ihre Sitzungsdaten konnten nicht geladen werden.\nSie könnten beschädigt sein.", "boyOrGirl": "Bist du ein Junge oder ein Mädchen?", From d71451fc2380fa1a106a37e9774a142b701280b9 Mon Sep 17 00:00:00 2001 From: Tempoanon <163687446+TempsRay@users.noreply.github.com> Date: Sat, 25 May 2024 05:36:30 -0400 Subject: [PATCH 36/61] Players win if classic and past floor 200 (#1348) * Players win if classic and past floor 200 * isClassic * no need to handle game over twice --- src/phases.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/phases.ts b/src/phases.ts index 371b086057c..6d0eb29c707 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -729,6 +729,11 @@ export class EncounterPhase extends BattlePhase { this.scene.initSession(); + // Failsafe if players somehow skip floor 200 in classic mode + if (this.scene.gameMode.isClassic && this.scene.currentBattle.waveIndex > 200) { + this.scene.unshiftPhase(new GameOverPhase(this.scene)); + } + const loadEnemyAssets = []; const battle = this.scene.currentBattle; @@ -3862,6 +3867,11 @@ export class GameOverPhase extends BattlePhase { start() { super.start(); + // Failsafe if players somehow skip floor 200 in classic mode + if (this.scene.gameMode.isClassic && this.scene.currentBattle.waveIndex > 200) { + this.victory = true; + } + if (this.victory || !this.scene.enableRetries) { this.handleGameOver(); } else { From 37ebbd28d5ede3cf1a5ae90c7165d6153adeccc7 Mon Sep 17 00:00:00 2001 From: Franck TROUILLEZ <57403591+francktrouillez@users.noreply.github.com> Date: Sat, 25 May 2024 11:45:47 +0200 Subject: [PATCH 37/61] Apply offset to baseY as well during Pokemon#setMini (#1357) This fixes an issue where this.baseY and this.y were not sync anymore, leading to unexpected behavior while using both values, especially during the selectTargetPhase, where the UI was not working for the first player pokemon. --- src/ui/battle-info.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts index 01f183c49c8..7c981ab8c27 100644 --- a/src/ui/battle-info.ts +++ b/src/ui/battle-info.ts @@ -380,6 +380,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { if (this.player) { this.y -= 12 * (mini ? 1 : -1); + this.baseY = this.y; } const offsetElements = [ this.nameText, this.genderText, this.teraIcon, this.splicedIcon, this.shinyIcon, this.statusIndicator, this.levelContainer ]; From ae2928e1c98a4fa073812187cd8b856536902760 Mon Sep 17 00:00:00 2001 From: arColm Date: Sat, 25 May 2024 05:51:36 -0400 Subject: [PATCH 38/61] Implement Poison Puppeteer (#320) Co-authored-by: Benjamin Odom --- src/data/ability.ts | 38 ++++++++++++++++++++++++++++++++++++-- src/data/move.ts | 8 +++++--- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index 0ad69407e2c..ea5c5cea4fd 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -20,8 +20,9 @@ import { SpeciesFormChangeManualTrigger } from "./pokemon-forms"; import { Abilities } from "./enums/abilities"; import i18next, { Localizable } from "#app/plugins/i18n.js"; import { Command } from "../ui/command-ui-handler"; -import { getPokeballName } from "./pokeball"; import { BerryModifierType } from "#app/modifier/modifier-type"; +import { getPokeballName } from "./pokeball"; +import { Species } from "./enums/species"; import {BattlerIndex} from "#app/battle"; export class Ability implements Localizable { @@ -1778,6 +1779,39 @@ export class ProtectStatAbAttr extends PreStatChangeAbAttr { } } +/** + * This attribute applies confusion to the target whenever the user + * directly poisons them with a move, e.g. Poison Puppeteer. + * Called in {@linkcode StatusEffectAttr}. + * @extends PostAttackAbAttr + * @see {@linkcode applyPostAttack} + */ +export class ConfusionOnStatusEffectAbAttr extends PostAttackAbAttr { + /** List of effects to apply confusion after */ + private effects: StatusEffect[]; + + constructor(...effects: StatusEffect[]) { + super(); + this.effects = effects; + } + /** + * Applies confusion to the target pokemon. + * @param pokemon {@link Pokemon} attacking + * @param passive N/A + * @param defender {@link Pokemon} defending + * @param move {@link Move} used to apply status effect and confusion + * @param hitResult N/A + * @param args [0] {@linkcode StatusEffect} applied by move + * @returns true if defender is confused + */ + applyPostAttack(pokemon: Pokemon, passive: boolean, defender: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean { + if (this.effects.indexOf(args[0]) > -1 && !defender.isFainted()) { + return defender.addTag(BattlerTagType.CONFUSED, pokemon.randSeedInt(3,2), move.moveId, defender.id); + } + return false; + } +} + export class PreSetStatusAbAttr extends AbAttr { applyPreSetStatus(pokemon: Pokemon, passive: boolean, effect: StatusEffect, cancelled: Utils.BooleanHolder, args: any[]): boolean | Promise { return false; @@ -4155,6 +4189,6 @@ export function initAbilities() { new Ability(Abilities.POISON_PUPPETEER, 9) .attr(UncopiableAbilityAbAttr) .attr(UnswappableAbilityAbAttr) - .unimplemented(), + .conditionalAttr(pokemon => pokemon.species.speciesId===Species.PECHARUNT,ConfusionOnStatusEffectAbAttr,StatusEffect.POISON,StatusEffect.TOXIC) ); } diff --git a/src/data/move.ts b/src/data/move.ts index ffd66a05d20..0020dd88a62 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -12,7 +12,7 @@ import * as Utils from "../utils"; import { WeatherType } from "./weather"; import { ArenaTagSide, ArenaTrapTag } from "./arena-tag"; import { ArenaTagType } from "./enums/arena-tag-type"; -import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr, MoveAbilityBypassAbAttr, ReverseDrainAbAttr, FieldPreventExplosiveMovesAbAttr, ForceSwitchOutImmunityAbAttr, BlockItemTheftAbAttr } from "./ability"; +import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr, MoveAbilityBypassAbAttr, ReverseDrainAbAttr, FieldPreventExplosiveMovesAbAttr, ForceSwitchOutImmunityAbAttr, BlockItemTheftAbAttr, applyPostAttackAbAttrs, ConfusionOnStatusEffectAbAttr } from "./ability"; import { Abilities } from "./enums/abilities"; import { allAbilities } from "./ability"; import { PokemonHeldItemModifier, BerryModifier, PreserveBerryModifier } from "../modifier/modifier"; @@ -1362,8 +1362,10 @@ export class StatusEffectAttr extends MoveEffectAttr { return false; } } - if (!pokemon.status || (pokemon.status.effect === this.effect && move.chance < 0)) { - return pokemon.trySetStatus(this.effect, true, user, this.cureTurn); + if ((!pokemon.status || (pokemon.status.effect === this.effect && move.chance < 0)) + && pokemon.trySetStatus(this.effect, true, user, this.cureTurn)) { + applyPostAttackAbAttrs(ConfusionOnStatusEffectAbAttr, user, target, new PokemonMove(move.id), null,this.effect); + return true; } } return false; From 0da469d7a30fe7390f065da438ddbb89a8a0f616 Mon Sep 17 00:00:00 2001 From: LaukkaE <73663099+LaukkaE@users.noreply.github.com> Date: Sat, 25 May 2024 13:32:32 +0300 Subject: [PATCH 39/61] Fix Wind Rider (#607) Fix Wind Rider --- src/data/ability.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index ea5c5cea4fd..0bfc85fa363 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -556,7 +556,10 @@ export class MoveImmunityStatChangeAbAttr extends MoveImmunityAbAttr { applyPreDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, cancelled: Utils.BooleanHolder, args: any[]): boolean { const ret = super.applyPreDefend(pokemon, passive, attacker, move, cancelled, args); if (ret) { - pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [ this.stat ], this.levels)); + const simulated = args.length > 1 && args[1]; + if (!simulated) { + pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [ this.stat ], this.levels)); + } } return ret; From 79f69ddfe0481d71bbd1c0830c7ca97ed187347e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E9=BE=9F?= <1033008052@qq.com> Date: Sat, 25 May 2024 18:43:42 +0800 Subject: [PATCH 40/61] Update move.ts (#1359) --- src/locales/zh_TW/move.ts | 68 +++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/src/locales/zh_TW/move.ts b/src/locales/zh_TW/move.ts index 5109802a9a5..2dc42353a2b 100644 --- a/src/locales/zh_TW/move.ts +++ b/src/locales/zh_TW/move.ts @@ -34,8 +34,8 @@ export const move: MoveTranslationEntries = { scratch: { name: "抓", effect: "用堅硬且無比鋒利的爪子抓\n對手進行攻擊" }, viseGrip: { name: "夾住", effect: "將對手從兩側夾住,給予傷\n害" }, guillotine: { - name: "極落鉗", - effect: "用大鉗子或剪刀等夾斷對手\n進行攻擊。只要命中就會一\n擊昏厥", + name: "斷頭鉗", + effect: "用大鉗子或剪刀等夾斷對手\n進行攻擊。只要命中就會一\n擊瀕死", }, razorWind: { name: "旋風刀", @@ -45,7 +45,7 @@ export const move: MoveTranslationEntries = { name: "劍舞", effect: "激烈地跳起戰舞提高氣勢。\n大幅提高自己的攻擊", }, - cut: { name: "居合劈", effect: "用鐮刀或爪子等切斬對手進\n行攻擊" }, + cut: { name: "居合斬", effect: "用鐮刀或爪子等切斬對手進\n行攻擊" }, gust: { name: "起風", effect: "用翅膀將颳起的狂風襲向對\n手進行攻擊" }, wingAttack: { name: "翅膀攻擊", @@ -217,7 +217,7 @@ export const move: MoveTranslationEntries = { effect: "一邊旋轉,一邊將尖喙刺入\n對手進行攻擊", }, submission: { - name: "深淵翻滾", + name: "地獄翻滾", effect: "將對手連同自己一起摔向地\n面進行攻擊。自己也會受到\n少許傷害", }, lowKick: { @@ -305,7 +305,7 @@ export const move: MoveTranslationEntries = { }, fissure: { name: "地裂", - effect: "讓對手掉落於地裂的裂縫中\n進行攻擊。只要命中就會一\n擊昏厥", + effect: "讓對手掉落於地裂的裂縫中\n進行攻擊。只要命中就會一\n擊瀕死", }, dig: { name: "挖洞", effect: "第1回合鑽入地底,第2回\n合攻擊對手" }, toxic: { @@ -421,8 +421,8 @@ export const move: MoveTranslationEntries = { effect: "模仿對手使用的招式,自己\n也使用相同招式", }, selfDestruct: { - name: "玉石俱碎", - effect: "引發爆炸,攻擊自己周圍所\n有的寶可夢。使用後陷入昏\n厥", + name: "自爆", + effect: "引發爆炸,攻擊自己周圍所\n有的寶可夢。使用後陷入瀕\n死", }, eggBomb: { name: "炸蛋", effect: "向對手用力投擲大大的蛋進\n行攻擊" }, lick: { @@ -548,7 +548,7 @@ export const move: MoveTranslationEntries = { }, explosion: { name: "大爆炸", - effect: "引發大爆炸,攻擊自己周圍\n所有的寶可夢。使用後自己\n會陷入昏厥", + effect: "引發大爆炸,攻擊自己周圍\n所有的寶可夢。使用後自己\n會陷入瀕死", }, furySwipes: { name: "亂抓", @@ -563,15 +563,15 @@ export const move: MoveTranslationEntries = { effect: "連續睡上2回合。回覆自己\n的全部HP以及治癒所有異\n常狀態", }, rockSlide: { - name: "巖崩", + name: "岩崩", effect: "將大岩石猛烈地撞向對手進\n行攻擊。有時會使對手畏縮", }, hyperFang: { - name: "終結門牙", + name: "必殺門牙", effect: "用鋒利的門牙牢牢地咬住對\n手進行攻擊。有時會使對手\n畏縮", }, sharpen: { - name: "棱角化", + name: "稜角化", effect: "增加身體的角,變得棱棱角\n角,從而提高自己的攻擊", }, conversion: { @@ -651,7 +651,7 @@ export const move: MoveTranslationEntries = { effect: "將棉花般柔軟的孢子緊貼對\n手,從而大幅降低對手的速\n度", }, reversal: { - name: "絕處逢生", + name: "起死回生", effect: "竭盡全力進行攻擊。自己的\nHP越少,招式的威力越大", }, spite: { @@ -671,7 +671,7 @@ export const move: MoveTranslationEntries = { effect: "以迅雷不及掩耳之勢出拳。\n必定能夠先制攻擊", }, scaryFace: { - name: "可怕面孔", + name: "鬼面", effect: "用恐怖的表情瞪着對手,使\n其害怕,從而大幅降低對手\n的速度", }, feintAttack: { @@ -712,11 +712,11 @@ export const move: MoveTranslationEntries = { }, destinyBond: { name: "同命", - effect: "使出招式後,當受到對手攻\n擊陷入昏厥時,對手也會一\n同昏厥。連續使出則會失敗", + effect: "使出招式後,當受到對手攻\n擊陷入瀕死時,對手也會一\n同瀕死。連續使出則會失敗", }, perishSong: { - name: "終焉之歌", - effect: "傾聽歌聲的寶可夢經過3回\n合陷入昏厥。替換後效果消\n失", + name: "滅亡之歌", + effect: "傾聽歌聲的寶可夢經過3回\n合陷入瀕死。替換後效果消\n失", }, icyWind: { name: "冰凍之風", @@ -922,7 +922,7 @@ export const move: MoveTranslationEntries = { effect: "在使用招式2回合後,向對\n手發送一團念力進行攻擊", }, rockSmash: { - name: "碎巖", + name: "碎岩", effect: "用拳頭進行攻擊。有時會降\n低對手的防禦", }, whirlpool: { @@ -970,7 +970,7 @@ export const move: MoveTranslationEntries = { effect: "吹捧對手,使其混亂。同時\n還會提高對手的特攻", }, willOWisp: { - name: "磷火", + name: "鬼火", effect: "放出怪異的火焰,從而讓對\n手陷入灼傷狀態", }, memento: { @@ -1023,8 +1023,8 @@ export const move: MoveTranslationEntries = { effect: "向同伴緊急求助,從我方寶\n可夢已學會的招式中隨機使\n用1個", }, ingrain: { - name: "紮根", - effect: "在大地上紮根,每回合回覆\n自己的HP。因爲紮根了,\n所以不能替換寶可夢", + name: "扎根", + effect: "在大地上扎根,每回合回覆\n自己的HP。因爲扎根了,\n所以不能替換寶可夢", }, superpower: { name: "蠻力", @@ -1201,8 +1201,8 @@ export const move: MoveTranslationEntries = { effect: "讓對手聽舒適的笛聲,從而\n陷入睡眠狀態", }, tickle: { - name: "撓癢", - effect: "給對手撓癢,使其發笑,從\n而降低對手的攻擊和防禦", + name: "搔癢", + effect: "給對手搔癢,使其發笑,從\n而降低對手的攻擊和防禦", }, cosmicPower: { name: "宇宙力量", @@ -1222,16 +1222,16 @@ export const move: MoveTranslationEntries = { effect: "發出看不見的神奇力量進行\n攻擊。有時會使對手畏縮", }, skyUppercut: { - name: "沖天拳", + name: "衝天拳", effect: "用衝向天空般高高的上勾拳\n頂起對手進行攻擊", }, sandTomb: { - name: "流沙深淵", + name: "流沙地獄", effect: "將對手困在鋪天蓋地的沙暴\n中,在4~5回合內進行攻\n擊", }, sheerCold: { name: "絕對零度", - effect: "給對手一擊昏厥。如果是冰\n屬性以外的寶可夢使用,就\n會難以打中", + effect: "給對手一擊瀕死。如果是冰\n屬性以外的寶可夢使用,就\n會難以打中", }, muddyWater: { name: "濁流", @@ -1353,7 +1353,7 @@ export const move: MoveTranslationEntries = { }, healingWish: { name: "治癒之願", - effect: "雖然自己陷入昏厥,但可以\n治癒後備上場的寶可夢的異\n常狀態以及回覆HP", + effect: "雖然自己陷入瀕死,但可以\n治癒後備上場的寶可夢的異\n常狀態以及回覆HP", }, brine: { name: "鹽水", @@ -1519,7 +1519,7 @@ export const move: MoveTranslationEntries = { effect: "將外殼堅硬的大種子,從上\n方砸下攻擊對手", }, airSlash: { - name: "空氣之刃", + name: "空氣斬", effect: "用連天空也能劈開的空氣之\n刃進行攻擊。有時會使對手\n畏縮", }, xScissor: { @@ -1630,7 +1630,7 @@ export const move: MoveTranslationEntries = { effect: "將身體的光芒聚集在一點釋\n放出去。有時會降低對手的\n特防", }, rockClimb: { - name: "攀巖", + name: "攀岩", effect: "發動猛撞攻擊,有時會使對\n手混亂。是寶可表的祕傳招\n式之一", }, defog: { @@ -1642,7 +1642,7 @@ export const move: MoveTranslationEntries = { effect: "製造出離奇的空間。在5回\n合內速度慢的寶可夢可以先\n行動", }, dracoMeteor: { - name: "流星羣", + name: "流星群", effect: "從天空中向對手落下隕石。\n使用之後因爲反作用力,自\n己的特攻會大幅降低", }, discharge: { @@ -1690,7 +1690,7 @@ export const move: MoveTranslationEntries = { effect: "♂誘惑♀或♀誘惑♂,從而\n大幅降低對手的特攻", }, stealthRock: { - name: "隱形巖", + name: "隱形岩", effect: "將無數岩石懸浮在對手的周\n圍,從而對替換出場的對手\n的寶可夢給予傷害", }, grassKnot: { @@ -1893,7 +1893,7 @@ export const move: MoveTranslationEntries = { effect: "用歌聲攻擊對手。大家一起\n輪唱便可以接連使出,威力\n也會提高", }, echoedVoice: { - name: "回聲", + name: "迴聲", effect: "用回聲攻擊對手。如果每回\n合都有寶可夢接着使用該招\n式,威力就會提高", }, chipAway: { @@ -1945,7 +1945,7 @@ export const move: MoveTranslationEntries = { effect: "扔飛對手,強制拉後備寶可\n夢上場。如果對手爲野生寶\n可夢,戰鬥將直接結束", }, incinerate: { - name: "燒淨", + name: "燒盡", effect: "用火焰攻擊對手。對手攜帶\n樹果等時,會燒掉,使其不\n能使用", }, quash: { @@ -1972,8 +1972,8 @@ export const move: MoveTranslationEntries = { effect: "當對手未攜帶道具時,能夠\n將自己攜帶的道具交給對手", }, inferno: { - name: "烈火深淵", - effect: "用烈焰包裹住對手進行攻擊。\n讓對手陷入灼傷狀態", + name: "煉獄", + effect: "用猛烈的火焰包圍對手進行\n攻擊。讓對手陷入灼傷狀態", }, waterPledge: { name: "水之誓約", From 5c327e347ac3d188ce67c82f65c164800df44b96 Mon Sep 17 00:00:00 2001 From: ReneGV Date: Sat, 25 May 2024 05:01:23 -0600 Subject: [PATCH 41/61] Implement Purify (#1291) * Implement purify * Code review fixes * Remove vitest import * Update status-effect.ts * Update status-effect.ts --------- Co-authored-by: Benjamin Odom --- src/data/move.ts | 9 ++++++--- src/data/status-effect.ts | 24 ++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index 0020dd88a62..757b5ae148f 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -6,7 +6,7 @@ import { EncoreTag } from "./battler-tags"; import { BattlerTagType } from "./enums/battler-tag-type"; import { getPokemonMessage } from "../messages"; import Pokemon, { AttackMoveResult, EnemyPokemon, HitResult, MoveResult, PlayerPokemon, PokemonMove, TurnMove } from "../field/pokemon"; -import { StatusEffect, getStatusEffectHealText } from "./status-effect"; +import { StatusEffect, getStatusEffectHealText, isNonVolatileStatusEffect, getNonVolatileStatusEffects} from "./status-effect"; import { Type } from "./type"; import * as Utils from "../utils"; import { WeatherType } from "./weather"; @@ -6813,8 +6813,11 @@ export function initMoves() { .unimplemented(), new AttackMove(Moves.SMART_STRIKE, Type.STEEL, MoveCategory.PHYSICAL, 70, -1, 10, -1, 0, 7), new StatusMove(Moves.PURIFY, Type.POISON, -1, 20, -1, 0, 7) - .triageMove() - .unimplemented(), + .condition( + (user: Pokemon, target: Pokemon, move: Move) => isNonVolatileStatusEffect(user.status?.effect)) + .attr(HealAttr, 0.5) + .attr(HealStatusEffectAttr, true, ...getNonVolatileStatusEffects()) + .triageMove(), new AttackMove(Moves.REVELATION_DANCE, Type.NORMAL, MoveCategory.SPECIAL, 90, 100, 15, -1, 0, 7) .danceMove() .attr(MatchUserTypeAttr), diff --git a/src/data/status-effect.ts b/src/data/status-effect.ts index bac04222751..810bd4d9482 100644 --- a/src/data/status-effect.ts +++ b/src/data/status-effect.ts @@ -175,3 +175,27 @@ export function getRandomStatus(statusA: Status, statusB: Status): Status { return Utils.randIntRange(0, 2) ? statusA : statusB; } + +/** + * Gets all non volatile status effects + * @returns A list containing all non volatile status effects + */ +export function getNonVolatileStatusEffects():Array { + return [ + StatusEffect.POISON, + StatusEffect.TOXIC, + StatusEffect.PARALYSIS, + StatusEffect.SLEEP, + StatusEffect.FREEZE, + StatusEffect.BURN + ]; +} + +/** + * Returns whether a statuss effect is non volatile. + * Non-volatile status condition is a status that remains after being switched out. + * @param status The status to check + */ +export function isNonVolatileStatusEffect(status: StatusEffect): boolean { + return getNonVolatileStatusEffects().includes(status); +} From 4ffff8e1ee72afba6db0a42368602661acc0b4de Mon Sep 17 00:00:00 2001 From: innerthunder <168692175+innerthunder@users.noreply.github.com> Date: Sat, 25 May 2024 04:22:10 -0700 Subject: [PATCH 42/61] Implement Quick Guard and other conditional team protection moves (#1275) * Implement conditional protection arena tag Affected moves: - Quick Guard - Wide Guard - Mat Block - Crafty Shield - Feint (updated) * Add support for moves that ignore Protect to conditional protection moves * Comments for protect arena tags * ESLint --------- Co-authored-by: Benjamin Odom --- src/data/arena-tag.ts | 133 ++++++++++++++++++++++++++++++- src/data/enums/arena-tag-type.ts | 4 + src/data/move.ts | 55 ++++++++++++- src/field/pokemon.ts | 11 ++- 4 files changed, 197 insertions(+), 6 deletions(-) diff --git a/src/data/arena-tag.ts b/src/data/arena-tag.ts index ed1e86b7a8e..3057132cafc 100644 --- a/src/data/arena-tag.ts +++ b/src/data/arena-tag.ts @@ -1,7 +1,7 @@ import { Arena } from "../field/arena"; import { Type } from "./type"; import * as Utils from "../utils"; -import { MoveCategory, allMoves } from "./move"; +import { MoveCategory, allMoves, MoveTarget } from "./move"; import { getPokemonMessage } from "../messages"; import Pokemon, { HitResult, PokemonMove } from "../field/pokemon"; import { MoveEffectPhase, PokemonHealPhase, StatChangePhase} from "../phases"; @@ -11,6 +11,7 @@ import { Moves } from "./enums/moves"; import { ArenaTagType } from "./enums/arena-tag-type"; import { BlockNonDirectDamageAbAttr, ProtectStatAbAttr, applyAbAttrs } from "./ability"; import { BattleStat } from "./battle-stat"; +import { CommonAnim, CommonBattleAnim } from "./battle-anims"; export enum ArenaTagSide { BOTH, @@ -146,6 +147,128 @@ class AuroraVeilTag extends WeakenMoveScreenTag { } } +type ProtectConditionFunc = (...args: any[]) => boolean; + +/** + * Abstract class to implement conditional team protection + * applies protection based on the attributes of incoming moves + * @param protectConditionFunc: The function determining if an incoming move is negated + */ +abstract class ConditionalProtectTag extends ArenaTag { + protected protectConditionFunc: ProtectConditionFunc; + + constructor(tagType: ArenaTagType, sourceMove: Moves, sourceId: integer, side: ArenaTagSide, condition: ProtectConditionFunc) { + super(tagType, 1, sourceMove, sourceId, side); + + this.protectConditionFunc = condition; + } + + onAdd(arena: Arena): void { + arena.scene.queueMessage(`${super.getMoveName()} protected${this.side === ArenaTagSide.PLAYER ? " your" : this.side === ArenaTagSide.ENEMY ? " the\nopposing" : ""} team!`); + } + + // Removes default message for effect removal + onRemove(arena: Arena): void { } + + /** + * apply(): Checks incoming moves against the condition function + * and protects the target if conditions are met + * @param arena The arena containing this tag + * @param args[0] (Utils.BooleanHolder) Signals if the move is cancelled + * @param args[1] (Pokemon) The intended target of the move + * @param args[2...] (any[]) The parameters to the condition function + * @returns + */ + apply(arena: Arena, args: any[]): boolean { + if ((args[0] as Utils.BooleanHolder).value) { + return false; + } + + const target = args[1] as Pokemon; + if ((this.side === ArenaTagSide.PLAYER) === target.isPlayer() + && this.protectConditionFunc(...args.slice(2))) { + (args[0] as Utils.BooleanHolder).value = true; + new CommonBattleAnim(CommonAnim.PROTECT, target).play(arena.scene); + arena.scene.queueMessage(`${super.getMoveName()} protected ${getPokemonMessage(target, "!")}`); + return true; + } + return false; + } +} + +/** + * Arena Tag class for {@link https://bulbapedia.bulbagarden.net/wiki/Quick_Guard_(move) Quick Guard} + * Condition: The incoming move has increased priority. + */ +class QuickGuardTag extends ConditionalProtectTag { + constructor(sourceId: integer, side: ArenaTagSide) { + super(ArenaTagType.QUICK_GUARD, Moves.QUICK_GUARD, sourceId, side, + (priority: integer) : boolean => { + return priority > 0; + } + ); + } +} + +/** + * Arena Tag class for {@link https://bulbapedia.bulbagarden.net/wiki/Wide_Guard_(move) Wide Guard} + * Condition: The incoming move can target multiple Pokemon. The move's source + * can be an ally or enemy. + */ +class WideGuardTag extends ConditionalProtectTag { + constructor(sourceId: integer, side: ArenaTagSide) { + super(ArenaTagType.WIDE_GUARD, Moves.WIDE_GUARD, sourceId, side, + (moveTarget: MoveTarget) : boolean => { + switch (moveTarget) { + case MoveTarget.ALL_ENEMIES: + case MoveTarget.ALL_NEAR_ENEMIES: + case MoveTarget.ALL_OTHERS: + case MoveTarget.ALL_NEAR_OTHERS: + return true; + } + return false; + } + ); + } +} + +/** + * Arena Tag class for {@link https://bulbapedia.bulbagarden.net/wiki/Mat_Block_(move) Mat Block} + * Condition: The incoming move is a Physical or Special attack move. + */ +class MatBlockTag extends ConditionalProtectTag { + constructor(sourceId: integer, side: ArenaTagSide) { + super(ArenaTagType.MAT_BLOCK, Moves.MAT_BLOCK, sourceId, side, + (moveCategory: MoveCategory) : boolean => { + return moveCategory !== MoveCategory.STATUS; + } + ); + } + + onAdd(arena: Arena) { + const source = arena.scene.getPokemonById(this.sourceId); + arena.scene.queueMessage(getPokemonMessage(source, " intends to flip up a mat\nand block incoming attacks!")); + } +} + +/** + * Arena Tag class for {@link https://bulbapedia.bulbagarden.net/wiki/Crafty_Shield_(move) Crafty Shield} + * Condition: The incoming move is a Status move, is not a hazard, and does + * not target all Pokemon or sides of the field. +*/ +class CraftyShieldTag extends ConditionalProtectTag { + constructor(sourceId: integer, side: ArenaTagSide) { + super(ArenaTagType.CRAFTY_SHIELD, Moves.CRAFTY_SHIELD, sourceId, side, + (moveCategory: MoveCategory, moveTarget: MoveTarget) : boolean => { + return moveCategory === MoveCategory.STATUS + && moveTarget !== MoveTarget.ENEMY_SIDE + && moveTarget !== MoveTarget.BOTH_SIDES + && moveTarget !== MoveTarget.ALL; + } + ); + } +} + class WishTag extends ArenaTag { private battlerIndex: BattlerIndex; private triggerMessage: string; @@ -513,6 +636,14 @@ export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMov switch (tagType) { case ArenaTagType.MIST: return new MistTag(turnCount, sourceId, side); + case ArenaTagType.QUICK_GUARD: + return new QuickGuardTag(sourceId, side); + case ArenaTagType.WIDE_GUARD: + return new WideGuardTag(sourceId, side); + case ArenaTagType.MAT_BLOCK: + return new MatBlockTag(sourceId, side); + case ArenaTagType.CRAFTY_SHIELD: + return new CraftyShieldTag(sourceId, side); case ArenaTagType.MUD_SPORT: return new MudSportTag(turnCount, sourceId); case ArenaTagType.WATER_SPORT: diff --git a/src/data/enums/arena-tag-type.ts b/src/data/enums/arena-tag-type.ts index 2ecac8b5677..90f45f481ba 100644 --- a/src/data/enums/arena-tag-type.ts +++ b/src/data/enums/arena-tag-type.ts @@ -16,5 +16,9 @@ export enum ArenaTagType { REFLECT = "REFLECT", LIGHT_SCREEN = "LIGHT_SCREEN", AURORA_VEIL = "AURORA_VEIL", + QUICK_GUARD = "QUICK_GUARD", + WIDE_GUARD = "WIDE_GUARD", + MAT_BLOCK = "MAT_BLOCK", + CRAFTY_SHIELD = "CRAFTY_SHIELD", TAILWIND = "TAILWIND" } diff --git a/src/data/move.ts b/src/data/move.ts index 757b5ae148f..6aac106247f 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -204,6 +204,19 @@ export default class Move implements Localizable { return false; } + isAllyTarget(): boolean { + switch (this.moveTarget) { + case MoveTarget.USER: + case MoveTarget.NEAR_ALLY: + case MoveTarget.ALLY: + case MoveTarget.USER_OR_NEAR_ALLY: + case MoveTarget.USER_AND_ALLIES: + case MoveTarget.USER_SIDE: + return true; + } + return false; + } + isTypeImmune(type: Type): boolean { switch (type) { case Type.GRASS: @@ -3720,6 +3733,37 @@ export class AddArenaTagAttr extends MoveEffectAttr { } } +/** + * Generic class for removing arena tags + * @param tagTypes: The types of tags that can be removed + * @param selfSideTarget: Is the user removing tags from its own side? + */ +export class RemoveArenaTagsAttr extends MoveEffectAttr { + public tagTypes: ArenaTagType[]; + public selfSideTarget: boolean; + + constructor(tagTypes: ArenaTagType[], selfSideTarget: boolean) { + super(true, MoveEffectTrigger.POST_APPLY); + + this.tagTypes = tagTypes; + this.selfSideTarget = selfSideTarget; + } + + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + if (!super.apply(user, target, move, args)) { + return false; + } + + const side = (this.selfSideTarget ? user : target).isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY; + + for (const tagType of this.tagTypes) { + user.scene.arena.removeTagOnSide(tagType, side); + } + + return true; + } +} + export class AddArenaTrapTagAttr extends AddArenaTagAttr { getCondition(): MoveConditionFunc { return (user, target, move) => { @@ -5909,6 +5953,7 @@ export function initMoves() { .unimplemented(), new AttackMove(Moves.FEINT, Type.NORMAL, MoveCategory.PHYSICAL, 30, 100, 10, -1, 2, 4) .attr(RemoveBattlerTagAttr, [ BattlerTagType.PROTECTED ]) + .attr(RemoveArenaTagsAttr, [ ArenaTagType.QUICK_GUARD, ArenaTagType.WIDE_GUARD, ArenaTagType.MAT_BLOCK, ArenaTagType.CRAFTY_SHIELD ], false) .makesContact(false) .ignoresProtect(), new AttackMove(Moves.PLUCK, Type.FLYING, MoveCategory.PHYSICAL, 60, 100, 20, -1, 0, 4) @@ -6198,7 +6243,7 @@ export function initMoves() { .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.ACC ], 1, true), new StatusMove(Moves.WIDE_GUARD, Type.ROCK, -1, 10, -1, 3, 5) .target(MoveTarget.USER_SIDE) - .unimplemented(), + .attr(AddArenaTagAttr, ArenaTagType.WIDE_GUARD, 1, true, true), new StatusMove(Moves.GUARD_SPLIT, Type.PSYCHIC, -1, 10, -1, 0, 5) .unimplemented(), new StatusMove(Moves.POWER_SPLIT, Type.PSYCHIC, -1, 10, -1, 0, 5) @@ -6286,7 +6331,7 @@ export function initMoves() { .attr(StatChangeCountPowerAttr), new StatusMove(Moves.QUICK_GUARD, Type.FIGHTING, -1, 15, -1, 3, 5) .target(MoveTarget.USER_SIDE) - .unimplemented(), + .attr(AddArenaTagAttr, ArenaTagType.QUICK_GUARD, 1, true, true), new SelfStatusMove(Moves.ALLY_SWITCH, Type.PSYCHIC, -1, 15, -1, 2, 5) .ignoresProtect() .unimplemented(), @@ -6452,7 +6497,9 @@ export function initMoves() { .attr(HitsTagAttr, BattlerTagType.MINIMIZED, true) .condition(failOnGravityCondition), new StatusMove(Moves.MAT_BLOCK, Type.FIGHTING, -1, 10, -1, 0, 6) - .unimplemented(), + .target(MoveTarget.USER_SIDE) + .attr(AddArenaTagAttr, ArenaTagType.MAT_BLOCK, 1, true, true) + .condition(new FirstMoveCondition()), new AttackMove(Moves.BELCH, Type.POISON, MoveCategory.SPECIAL, 120, 90, 10, -1, 0, 6) .condition((user, target, move) => user.battleData.berriesEaten.length > 0), new StatusMove(Moves.ROTOTILLER, Type.GROUND, -1, 10, 100, 0, 6) @@ -6505,7 +6552,7 @@ export function initMoves() { .triageMove(), new StatusMove(Moves.CRAFTY_SHIELD, Type.FAIRY, -1, 10, -1, 3, 6) .target(MoveTarget.USER_SIDE) - .unimplemented(), + .attr(AddArenaTagAttr, ArenaTagType.CRAFTY_SHIELD, 1, true, true), new StatusMove(Moves.FLOWER_SHIELD, Type.FAIRY, -1, 10, 100, 0, 6) .target(MoveTarget.ALL) .unimplemented(), diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index c8ba9c86319..4282d7cda13 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -4,7 +4,7 @@ import { Variant, VariantSet, variantColorCache } from "#app/data/variant"; import { variantData } from "#app/data/variant"; import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from "../ui/battle-info"; import { Moves } from "../data/enums/moves"; -import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr, CounterDamageAttr, StatChangeAttr, RechargeAttr, ChargeAttr, IgnoreWeatherTypeDebuffAttr, BypassBurnDamageReductionAttr, SacrificialAttrOnHit } from "../data/move"; +import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr, CounterDamageAttr, StatChangeAttr, RechargeAttr, ChargeAttr, IgnoreWeatherTypeDebuffAttr, BypassBurnDamageReductionAttr, SacrificialAttrOnHit, MoveFlags } from "../data/move"; import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from "../data/pokemon-species"; import * as Utils from "../utils"; import { Type, TypeDamageMultiplier, getTypeDamageMultiplier, getTypeRgb } from "../data/type"; @@ -1613,6 +1613,15 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { typeMultiplier.value = 0; } + // Apply arena tags for conditional protection + if (!move.hasFlag(MoveFlags.IGNORE_PROTECT) && !move.isAllyTarget()) { + const defendingSide = this.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY; + this.scene.arena.applyTagsForSide(ArenaTagType.QUICK_GUARD, defendingSide, cancelled, this, move.priority); + this.scene.arena.applyTagsForSide(ArenaTagType.WIDE_GUARD, defendingSide, cancelled, this, move.moveTarget); + this.scene.arena.applyTagsForSide(ArenaTagType.MAT_BLOCK, defendingSide, cancelled, this, move.category); + this.scene.arena.applyTagsForSide(ArenaTagType.CRAFTY_SHIELD, defendingSide, cancelled, this, move.category, move.moveTarget); + } + switch (moveCategory) { case MoveCategory.PHYSICAL: case MoveCategory.SPECIAL: From c4c47745285b2c1861942c5afc3793c5e0c49cf5 Mon Sep 17 00:00:00 2001 From: td76099 <85713900+td76099@users.noreply.github.com> Date: Sat, 25 May 2024 07:31:04 -0400 Subject: [PATCH 43/61] Beat Up checks the user's party instead of always checking player's party (#1268) --- src/data/move.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) mode change 100644 => 100755 src/data/move.ts diff --git a/src/data/move.ts b/src/data/move.ts old mode 100644 new mode 100755 index 6aac106247f..8e4941f4c36 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -1320,8 +1320,9 @@ export class MultiHitAttr extends MoveAttr { } break; case MultiHitType.BEAT_UP: + const party = user.isPlayer() ? user.scene.getParty() : user.scene.getEnemyParty(); // No status means the ally pokemon can contribute to Beat Up - hitTimes = user.scene.getParty().reduce((total, pokemon) => { + hitTimes = party.reduce((total, pokemon) => { return total + (pokemon.id === user.id ? 1 : pokemon?.status && pokemon.status.effect !== StatusEffect.NONE ? 0 : 1); }, 0); } @@ -2323,7 +2324,7 @@ export class MovePowerMultiplierAttr extends VariablePowerAttr { * @returns The base power of the Beat Up hit. */ const beatUpFunc = (user: Pokemon, allyIndex: number): number => { - const party = user.scene.getParty(); + const party = user.isPlayer() ? user.scene.getParty() : user.scene.getEnemyParty(); for (let i = allyIndex; i < party.length; i++) { const pokemon = party[i]; From b524be1db1d3b121ba99a76d7f924209a4847e76 Mon Sep 17 00:00:00 2001 From: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Date: Sat, 25 May 2024 13:38:59 +0200 Subject: [PATCH 44/61] Issue #1118 Added Galar Elite 4 (#1246) Co-authored-by: Benjamin Odom --- src/battle.ts | 10 ++--- src/data/dialogue.ts | 70 ++++++++++++++++++++++++++++++++++ src/data/enums/trainer-type.ts | 5 +++ src/data/trainer-config.ts | 34 ++++++++++++++--- 4 files changed, 108 insertions(+), 11 deletions(-) diff --git a/src/battle.ts b/src/battle.ts index 7473b31339c..6de65429371 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -331,15 +331,15 @@ export const fixedBattles: FixedBattleConfigs = { [145]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) .setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_5, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)), [182]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) - .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.LORELEI, TrainerType.WILL, TrainerType.SIDNEY, TrainerType.AARON, TrainerType.SHAUNTAL, TrainerType.MALVA, [ TrainerType.HALA, TrainerType.MOLAYNE ], TrainerType.RIKA, TrainerType.CRISPIN ])), + .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.LORELEI, TrainerType.WILL, TrainerType.SIDNEY, TrainerType.AARON, TrainerType.SHAUNTAL, TrainerType.MALVA, [ TrainerType.HALA, TrainerType.MOLAYNE ],TrainerType.MARNIE_ELITE, TrainerType.RIKA, TrainerType.CRISPIN ])), [184]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(182) - .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.BRUNO, TrainerType.KOGA, TrainerType.PHOEBE, TrainerType.BERTHA, TrainerType.MARSHAL, TrainerType.SIEBOLD, TrainerType.OLIVIA, TrainerType.POPPY, TrainerType.AMARYS ])), + .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.BRUNO, TrainerType.KOGA, TrainerType.PHOEBE, TrainerType.BERTHA, TrainerType.MARSHAL, TrainerType.SIEBOLD, TrainerType.OLIVIA, TrainerType.NESSA_ELITE, TrainerType.POPPY, TrainerType.AMARYS ])), [186]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(182) - .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.AGATHA, TrainerType.BRUNO, TrainerType.GLACIA, TrainerType.FLINT, TrainerType.GRIMSLEY, TrainerType.WIKSTROM, TrainerType.ACEROLA, TrainerType.LARRY_ELITE, TrainerType.LACEY ])), + .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.AGATHA, TrainerType.BRUNO, TrainerType.GLACIA, TrainerType.FLINT, TrainerType.GRIMSLEY, TrainerType.WIKSTROM, TrainerType.ACEROLA, [TrainerType.BEA_ELITE,TrainerType.ALLISTER_ELITE], TrainerType.LARRY_ELITE, TrainerType.LACEY ])), [188]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(182) - .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.LANCE, TrainerType.KAREN, TrainerType.DRAKE, TrainerType.LUCIAN, TrainerType.CAITLIN, TrainerType.DRASNA, TrainerType.KAHILI, TrainerType.HASSEL, TrainerType.DRAYTON ])), + .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.LANCE, TrainerType.KAREN, TrainerType.DRAKE, TrainerType.LUCIAN, TrainerType.CAITLIN, TrainerType.DRASNA, TrainerType.KAHILI,TrainerType.RAIHAN_ELITE, TrainerType.HASSEL, TrainerType.DRAYTON ])), [190]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(182) - .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.BLUE, [ TrainerType.RED, TrainerType.LANCE_CHAMPION ], [ TrainerType.STEVEN, TrainerType.WALLACE ], TrainerType.CYNTHIA, [ TrainerType.ALDER, TrainerType.IRIS ], TrainerType.DIANTHA, TrainerType.HAU, [ TrainerType.GEETA, TrainerType.NEMONA ], TrainerType.KIERAN, TrainerType.LEON ])), + .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.BLUE, [ TrainerType.RED, TrainerType.LANCE_CHAMPION ], [ TrainerType.STEVEN, TrainerType.WALLACE ], TrainerType.CYNTHIA, [ TrainerType.ALDER, TrainerType.IRIS ], TrainerType.DIANTHA, TrainerType.HAU,TrainerType.LEON, [ TrainerType.GEETA, TrainerType.NEMONA ], TrainerType.KIERAN])), [195]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) .setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_6, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)) }; diff --git a/src/data/dialogue.ts b/src/data/dialogue.ts index cb8a58b90b5..57c1e2b4732 100644 --- a/src/data/dialogue.ts +++ b/src/data/dialogue.ts @@ -2074,6 +2074,76 @@ export const trainerTypeDialogue = { "Things didn't heat up for you.", ] }, + [TrainerType.MARNIE_ELITE]: { + encounter: [ + "You've made it this far, huh? Let's see if you can handle my Pokémon!", + "I'll give it my best shot, but don't think I'll go easy on you!", + ], + victory: [ + "I can't believe I lost... But you deserved that win. Well done!", + "Looks like I've still got a lot to learn. Great battle, though!", + ], + defeat: [ + "You put up a good fight, but I've got the edge! Better luck next time!", + "Seems like my training's paid off. Thanks for the battle!", + ] + }, + [TrainerType.NESSA_ELITE]: { + encounter: [ + "The tides are turning in my favor. Ready to get swept away?", + "Let's make some waves with this battle! I hope you're prepared!", + ], + victory: [ + "You navigated those waters perfectly... Well done!", + "Looks like my currents were no match for you. Great job!", + ], + defeat: [ + "Water always finds a way. That was a refreshing battle!", + "You fought well, but the ocean's power is unstoppable!", + ] + }, + [TrainerType.BEA_ELITE]: { + encounter: [ + "Prepare yourself! My fighting spirit burns bright!", + "Let's see if you can keep up with my relentless pace!", + ], + victory: [ + "Your strength... It's impressive. You truly deserve this win.", + "I've never felt this intensity before. Amazing job!", + ], + defeat: [ + "Another victory for my intense training regimen! Well done!", + "You've got strength, but I trained harder. Great battle!", + ] + }, + [TrainerType.ALLISTER_ELITE]: { + encounter: [ + "Shadows fall... Are you ready to face your fears?", + "Let's see if you can handle the darkness that I command.", + ], + victory: [ + "You've dispelled the shadows... For now. Well done.", + "Your light pierced through my darkness. Great job.", + ], + defeat: [ + "The shadows have spoken... Your strength isn't enough.", + "Darkness triumphs... Maybe next time you'll see the light.", + ] + }, + [TrainerType.RAIHAN_ELITE]: { + encounter: [ + "Storm's brewing! Let's see if you can weather this fight!", + "Get ready to face the eye of the storm!", + ], + victory: [ + "You've bested the storm... Incredible job!", + "You rode the winds perfectly... Great battle!", + ], + defeat: [ + "Another storm weathered, another victory claimed! Well fought!", + "You got caught in my storm! Better luck next time!", + ] + }, [TrainerType.RIVAL]: [ { encounter: [ diff --git a/src/data/enums/trainer-type.ts b/src/data/enums/trainer-type.ts index d849da69087..bada7662209 100644 --- a/src/data/enums/trainer-type.ts +++ b/src/data/enums/trainer-type.ts @@ -153,6 +153,11 @@ export enum TrainerType { OLIVIA, ACEROLA, KAHILI, + MARNIE_ELITE, + NESSA_ELITE, + BEA_ELITE, + ALLISTER_ELITE, + RAIHAN_ELITE, RIKA, POPPY, LARRY_ELITE, diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index 30c9c016ad9..89f5454aff3 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -6,7 +6,7 @@ import {TrainerType} from "./enums/trainer-type"; import {Moves} from "./enums/moves"; import {PokeballType} from "./pokeball"; import {pokemonEvolutions, pokemonPrevolutions} from "./pokemon-evolutions"; -import PokemonSpecies, {PokemonSpeciesFilter, getPokemonSpecies} from "./pokemon-species"; +import PokemonSpecies, {getPokemonSpecies, PokemonSpeciesFilter} from "./pokemon-species"; import {Species} from "./enums/species"; import {tmSpecies} from "./tms"; import {Type} from "./type"; @@ -263,6 +263,8 @@ export class TrainerConfig { return this; } + + getDerivedType(): TrainerType { let trainerType = this.trainerType; switch (trainerType) { @@ -279,6 +281,21 @@ export class TrainerConfig { case TrainerType.LARRY_ELITE: trainerType = TrainerType.LARRY; break; + case TrainerType.MARNIE_ELITE: + trainerType = TrainerType.MARNIE; + break; + case TrainerType.NESSA_ELITE: + trainerType = TrainerType.NESSA; + break; + case TrainerType.BEA_ELITE: + trainerType = TrainerType.BEA; + break; + case TrainerType.ALLISTER_ELITE: + trainerType = TrainerType.ALLISTER; + break; + case TrainerType.RAIHAN_ELITE: + trainerType = TrainerType.RAIHAN; + break; } return trainerType; @@ -914,17 +931,17 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.OLYMPIA]: new TrainerConfig(++t).initForGymLeader([ Species.ESPURR, Species.SIGILYPH, Species.SLOWKING ], Type.PSYCHIC), [TrainerType.WULFRIC]: new TrainerConfig(++t).initForGymLeader([ Species.BERGMITE, Species.SNOVER, Species.CRYOGONAL ], Type.ICE), [TrainerType.MILO]: new TrainerConfig(++t).initForGymLeader([ Species.GOSSIFLEUR, Species.APPLIN, Species.BOUNSWEET ], Type.GRASS), - [TrainerType.NESSA]: new TrainerConfig(++t).initForGymLeader([ Species.CHEWTLE, Species.ARROKUDA, Species.WIMPOD ], Type.WATER), + [TrainerType.NESSA]: new TrainerConfig(++t).setName("Nessa").initForGymLeader([ Species.CHEWTLE, Species.ARROKUDA, Species.WIMPOD ], Type.WATER), [TrainerType.KABU]: new TrainerConfig(++t).initForGymLeader([ Species.SIZZLIPEDE, Species.VULPIX, Species.TORKOAL ], Type.FIRE), - [TrainerType.BEA]: new TrainerConfig(++t).initForGymLeader([ Species.GALAR_FARFETCHD, Species.MACHOP, Species.CLOBBOPUS ], Type.FIGHTING), - [TrainerType.ALLISTER]: new TrainerConfig(++t).initForGymLeader([ Species.GALAR_YAMASK, Species.GALAR_CORSOLA, Species.GASTLY ], Type.GHOST), + [TrainerType.BEA]: new TrainerConfig(++t).setName("Bea").initForGymLeader([ Species.GALAR_FARFETCHD, Species.MACHOP, Species.CLOBBOPUS ], Type.FIGHTING), + [TrainerType.ALLISTER]: new TrainerConfig(++t).setName("Allister").initForGymLeader([ Species.GALAR_YAMASK, Species.GALAR_CORSOLA, Species.GASTLY ], Type.GHOST), [TrainerType.OPAL]: new TrainerConfig(++t).initForGymLeader([ Species.MILCERY, Species.TOGETIC, Species.GALAR_WEEZING ], Type.FAIRY), [TrainerType.BEDE]: new TrainerConfig(++t).initForGymLeader([ Species.HATENNA, Species.GALAR_PONYTA, Species.GARDEVOIR ], Type.FAIRY), [TrainerType.GORDIE]: new TrainerConfig(++t).initForGymLeader([ Species.ROLYCOLY, Species.STONJOURNER, Species.BINACLE ], Type.ROCK), [TrainerType.MELONY]: new TrainerConfig(++t).initForGymLeader([ Species.SNOM, Species.GALAR_DARUMAKA, Species.GALAR_MR_MIME ], Type.ICE), [TrainerType.PIERS]: new TrainerConfig(++t).initForGymLeader([ Species.GALAR_ZIGZAGOON, Species.SCRAGGY, Species.INKAY ], Type.DARK), - [TrainerType.MARNIE]: new TrainerConfig(++t).initForGymLeader([ Species.IMPIDIMP, Species.PURRLOIN, Species.MORPEKO ], Type.DARK), - [TrainerType.RAIHAN]: new TrainerConfig(++t).initForGymLeader([ Species.DURALUDON, Species.TURTONATOR, Species.GOOMY ], Type.DRAGON), + [TrainerType.MARNIE]: new TrainerConfig(++t).setName("Marnie").initForGymLeader([ Species.IMPIDIMP, Species.PURRLOIN, Species.MORPEKO ], Type.DARK), + [TrainerType.RAIHAN]: new TrainerConfig(++t).setName("Raihan").initForGymLeader([ Species.DURALUDON, Species.TURTONATOR, Species.GOOMY ], Type.DRAGON), [TrainerType.KATY]: new TrainerConfig(++t).initForGymLeader([ Species.NYMBLE, Species.TAROUNTULA, Species.HERACROSS ], Type.BUG), [TrainerType.BRASSIUS]: new TrainerConfig(++t).initForGymLeader([ Species.SMOLIV, Species.SHROOMISH, Species.ODDISH ], Type.GRASS), [TrainerType.IONO]: new TrainerConfig(++t).initForGymLeader([ Species.TADBULB, Species.WATTREL, Species.VOLTORB ], Type.ELECTRIC), @@ -962,6 +979,11 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.OLIVIA]: new TrainerConfig(++t).initForEliteFour([ Species.ARMALDO, Species.CRADILY, Species.ALOLA_GOLEM, Species.LYCANROC ], Type.ROCK), [TrainerType.ACEROLA]: new TrainerConfig(++t).initForEliteFour([ Species.BANETTE, Species.DRIFBLIM, Species.DHELMISE, Species.PALOSSAND ], Type.GHOST), [TrainerType.KAHILI]: new TrainerConfig(++t).initForEliteFour([ Species.BRAVIARY, Species.HAWLUCHA, Species.ORICORIO, Species.TOUCANNON ], Type.FLYING), + [TrainerType.MARNIE_ELITE]: new TrainerConfig(++t).setName("Marnie").initForEliteFour([ Species.MORPEKO, Species.LIEPARD, Species.TOXICROAK,Species.SCRAFTY, Species.GRIMMSNARL], Type.DARK), + [TrainerType.NESSA_ELITE]: new TrainerConfig(++t).setName("Nessa").initForEliteFour([ Species.GOLISOPOD,Species.PELIPPER,Species.QUAGSIRE,Species.TOXAPEX,Species.DREDNAW], Type.WATER), + [TrainerType.BEA_ELITE]: new TrainerConfig(++t).setName("Bea").initForEliteFour([ Species.HAWLUCHA,Species.GRAPPLOCT,Species.SIRFETCHD,Species.FALINKS,Species.MACHAMP], Type.FIGHTING), + [TrainerType.ALLISTER_ELITE]: new TrainerConfig(++t).setName("Allister").initForEliteFour([ Species.DUSKNOIR,Species.CHANDELURE,Species.CURSOLA,Species.RUNERIGUS,Species.GENGAR], Type.GHOST), + [TrainerType.RAIHAN_ELITE]: new TrainerConfig(++t).setName("Raihan").initForEliteFour([ Species.TORKOAL,Species.GOODRA,Species.TURTONATOR,Species.FLYGON,Species.DURALUDON], Type.DRAGON), [TrainerType.RIKA]: new TrainerConfig(++t).initForEliteFour([ Species. WHISCASH, Species.DONPHAN, Species.CAMERUPT, Species.CLODSIRE ], Type.GROUND), [TrainerType.POPPY]: new TrainerConfig(++t).initForEliteFour([ Species.COPPERAJAH, Species.BRONZONG, Species.CORVIKNIGHT, Species.TINKATON ], Type.STEEL), [TrainerType.LARRY_ELITE]: new TrainerConfig(++t).setName("Larry").initForEliteFour([ Species.STARAPTOR, Species.FLAMIGO, Species.ALTARIA, Species.TROPIUS ], Type.NORMAL, Type.FLYING), From 49c365f154923ca167677550e5cf5bc5a5732352 Mon Sep 17 00:00:00 2001 From: Tempoanon <163687446+TempsRay@users.noreply.github.com> Date: Sat, 25 May 2024 07:47:26 -0400 Subject: [PATCH 45/61] Make iv scanner check against baby form IVs (#1214) --- src/data/pokemon-species.ts | 7 +++++++ src/ui/pokemon-info-container.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 5db65adb6d3..9a555c93bb0 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -149,6 +149,13 @@ export abstract class PokemonSpeciesForm { this.genderDiffs = genderDiffs; } + /** + * Method to get the root species id of a Pokemon. + * Magmortar.getRootSpeciesId(true) => Magmar + * Magmortar.getRootSpeciesId(false) => Magby + * @param forStarter boolean to get the nonbaby form of a starter + * @returns The species + */ getRootSpeciesId(forStarter: boolean = false): Species { let ret = this.speciesId; while (pokemonPrevolutions.hasOwnProperty(ret) && (!forStarter || !speciesStarters.hasOwnProperty(ret))) { diff --git a/src/ui/pokemon-info-container.ts b/src/ui/pokemon-info-container.ts index 9e590e2d750..94884a6977c 100644 --- a/src/ui/pokemon-info-container.ts +++ b/src/ui/pokemon-info-container.ts @@ -166,7 +166,7 @@ export default class PokemonInfoContainer extends Phaser.GameObjects.Container { this.pokemonFusionShinyIcon.setTint(getVariantTint(pokemon.fusionVariant)); } - const starterSpeciesId = pokemon.species.getRootSpeciesId(true); + const starterSpeciesId = pokemon.species.getRootSpeciesId(); const originalIvs: integer[] = this.scene.gameData.dexData[starterSpeciesId].caughtAttr ? this.scene.gameData.dexData[starterSpeciesId].ivs : null; From aaa96ebe0e433f00312857bf9dce3a86a4af6627 Mon Sep 17 00:00:00 2001 From: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Date: Sat, 25 May 2024 14:47:18 +0200 Subject: [PATCH 46/61] Adding the option to have named trainers be able to have a double battle together (#1318) * WIP: Adding the option to have named trainers be able to have a double battle together * The team generation now works. Also changed it so the special pools are now seperatly defined so we can access it for the team generation of the doubles. They will happen at a 33% chance. TODO: Option for seperate double dialogue (because for example the dialogue for tate and liza dont make sense since they reference their other sibling not beeing there...) * Obviously didnt mean to push changes to battle.ts... (I made this change for a test) * The doubles now have victory and encounter dialogue (the dialogue itself isnt THAT good since english isnt my first language) * Changed signatureSpecies for the new galar elite 4 * Added Marnie & Piers as a double * ESLint --------- Co-authored-by: Benjamin Odom --- src/battle.ts | 5 + src/data/dialogue.ts | 136 ++++++- src/data/pokemon-species.ts | 5 + src/data/trainer-config.ts | 659 ++++++++++++++++++++++------------ src/field/trainer.ts | 129 +++++-- src/locales/de/trainers.ts | 14 + src/locales/en/trainers.ts | 14 + src/locales/es/trainers.ts | 14 + src/locales/fr/trainers.ts | 15 + src/locales/it/trainers.ts | 15 + src/locales/pt_BR/trainers.ts | 14 + src/locales/zh_CN/trainers.ts | 15 + src/locales/zh_TW/trainers.ts | 16 +- 13 files changed, 784 insertions(+), 267 deletions(-) diff --git a/src/battle.ts b/src/battle.ts index 6de65429371..eab2a2405c3 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -11,6 +11,7 @@ import { BattleSpec } from "./enums/battle-spec"; import { PlayerGender } from "./system/game-data"; import { MoneyMultiplierModifier, PokemonHeldItemModifier } from "./modifier/modifier"; import { PokeballType } from "./data/pokeball"; +import {trainerConfigs} from "#app/data/trainer-config"; export enum BattleType { WILD, @@ -309,6 +310,10 @@ function getRandomTrainerFunc(trainerPool: (TrainerType | TrainerType[])[]): Get : trainerPoolEntry; trainerTypes.push(trainerType); } + // If the trainer type has a double variant, there's a 33% chance of it being a double battle + if (trainerConfigs[trainerTypes[rand]].trainerTypeDouble) { + return new Trainer(scene, trainerTypes[rand], Utils.randSeedInt(3) ? TrainerVariant.DOUBLE : TrainerVariant.DEFAULT); + } return new Trainer(scene, trainerTypes[rand], TrainerVariant.DEFAULT); }; } diff --git a/src/data/dialogue.ts b/src/data/dialogue.ts index 57c1e2b4732..c6e7d829a1c 100644 --- a/src/data/dialogue.ts +++ b/src/data/dialogue.ts @@ -1,15 +1,15 @@ -import { trainerConfigs } from "./trainer-config"; -import { TrainerType } from "./enums/trainer-type"; -import { BattleSpec } from "../enums/battle-spec"; +import {trainerConfigs} from "./trainer-config"; +import {TrainerType} from "./enums/trainer-type"; +import {BattleSpec} from "../enums/battle-spec"; export interface TrainerTypeMessages { - encounter?: string | string[], - victory?: string | string[], - defeat?: string | string[] + encounter?: string | string[], + victory?: string | string[], + defeat?: string | string[] } export interface TrainerTypeDialogue { - [key: integer]: TrainerTypeMessages | [ TrainerTypeMessages, TrainerTypeMessages ] + [key: integer]: TrainerTypeMessages | [TrainerTypeMessages, TrainerTypeMessages] } export const trainerTypeDialogue = { @@ -84,7 +84,7 @@ export const trainerTypeDialogue = { "Unlike my diabolical self, these are some good Pokémon.", "Too much praise can spoil both Pokémon and people.", ], - defeat:[ + defeat: [ "You should not get angry at your Pokémon, even if you lose a battle.", "Right? Pretty good Pokémon, huh? I'm suited to raising things.", "No matter how much you love your Pokémon, you still have to discipline them when they misbehave." @@ -2346,6 +2346,124 @@ export const trainerTypeDialogue = { ] }; + +export const doubleBattleDialogue = { + "blue_red_double": { + encounter: [ + `Blue: Hey Red, let's show them what we're made of! + $Red: ... + $Blue: This is Pallet Town Power!`, + ], + + victory: [ + `Blue: That was a great battle! + $Red: ...`, + ] + }, + "red_blue_double": { + encounter: [ + `Red: ...! + $Blue: He never talks much. + $Blue: But dont let that fool you! He is a champ after all!`, + ], + victory: [ + `Red: ...! + $Blue: Next time we will beat you!`,] + }, + "tate_liza_double": { + encounter: [ + `Tate: Are you suprised? + $Liza: We are two gym leaders at once! + $Tate: We are twins! + $Liza: We dont need to talk to understand each other! + $Tate: Twice the power... + $Liza: Can you handle it?`, + ], + victory: [ + `Tate: What? Our combination was perfect! + $Liza: Looks like we need to train more...`, + ] + }, + "liza_tate_double": { + encounter: [ + `Liza: Hihihi... Are you suprised? + $Tate: Yes, we are really two gym leaders at once! + $Liza: This is my twin brother Tate! + $Tate: And this is my twin sister Liza! + $Liza: Don't you think we are a perfect combination?` + ], + victory: [ + `Liza: Are we... + $Tate: ...not as strong as we thought?`, + ] + }, + "wallace_steven_double": { + encounter: [ + `Steven: Wallace, let's show them the power of the champions! + $Wallace: We will show you the power of Hoenn! + $Steven: Let's go!`, + ], + victory: [ + `Steven: That was a great battle! + $Wallace: We will win next time!`, + ] + }, + "steven_wallace_double": { + encounter: [ + `Steven: Do you have any rare pokémon? + $Wallace: Steven... We are here for a battle, not to show off our pokémon. + $Steven: Oh... I see... Let's go then!`, + ], + victory: [ + `Steven: Now that we are done with the battle, let's show off our pokémon! + $Wallace: Steven...`, + ] + }, + "alder_iris_double": { + encounter: [ + `Alder: We are the strongest trainers in Unova! + $Iris: Fights against strong trainers are the best!`, + ], + victory: [ + `Alder: Wow! You are super strong! + $Iris: We will win next time!`, + ] + }, + "iris_alder_double": { + encounter: [ + `Iris: Welcome Challenger! I am THE Unova Champion! + $Alder: Iris, aren't you a bit too excited?`, + ], + victory: [ + `Iris: A loss like this is not easy to take... + $Alder: But we will only get stronger with every loss!`, + ] + }, + "marnie_piers_double": { + encounter: [ + `Marnie: Brother, let's show them the power of Spikemuth! + $Piers: We bring darkness!`, + ], + victory: [ + `Marnie: You brought light to our darkness! + $Piers: Its too bright...`, + ] + }, + "piers_marnie_double": { + encounter: [ + `Piers: Ready for a concert? + $Marnie: Brother... They are here to fight, not to sing...`, + ], + victory: [ + `Piers: Now that was a great concert! + $Marnie: Brother...`, + ] + }, + + + +}; + export const battleSpecDialogue = { [BattleSpec.FINAL_BOSS]: { encounter: `It appears the time has finally come once again.\nYou know why you have come here, do you not? @@ -2393,7 +2511,7 @@ export function initTrainerTypeDialogue(): void { const trainerTypes = Object.keys(trainerTypeDialogue).map(t => parseInt(t) as TrainerType); for (const trainerType of trainerTypes) { const messages = trainerTypeDialogue[trainerType]; - const messageTypes = [ "encounter", "victory", "defeat" ]; + const messageTypes = ["encounter", "victory", "defeat"]; for (const messageType of messageTypes) { if (Array.isArray(messages)) { if (messages[0][messageType]) { diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 9a555c93bb0..0d0d77d9512 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -27,6 +27,11 @@ export enum Region { } export function getPokemonSpecies(species: Species): PokemonSpecies { + // If a special pool (named trainers) is used here it CAN happen that they have a array as species (which means choose one of those two). So we catch that with this code block + if (Array.isArray(species)) { + // Pick a random species from the list + species = species[Math.floor(Math.random() * species.length)]; + } if (species >= 2000) { return allSpecies.find(s => s.speciesId === species); } diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index 89f5454aff3..5b3fd6c3b23 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -10,6 +10,7 @@ import PokemonSpecies, {getPokemonSpecies, PokemonSpeciesFilter} from "./pokemon import {Species} from "./enums/species"; import {tmSpecies} from "./tms"; import {Type} from "./type"; +import {doubleBattleDialogue} from "./dialogue"; import {PersistentModifier} from "../modifier/modifier"; import {TrainerVariant} from "../field/trainer"; import {PartyMemberStrength} from "./enums/party-member-strength"; @@ -172,10 +173,12 @@ export interface PartyMemberFuncs { export class TrainerConfig { public trainerType: TrainerType; + public trainerTypeDouble: TrainerType; public name: string; public nameFemale: string; public nameDouble: string; public title: string; + public titleDouble: string; public hasGenders: boolean = false; public hasDouble: boolean = false; public hasCharSprite: boolean = false; @@ -228,6 +231,10 @@ export class TrainerConfig { if (this.hasGenders) { ret += `_${female ? "f" : "m"}`; } + // If a special double trainer class was set, set it as the sprite key + if (this.trainerTypeDouble && female) { + ret = TrainerType[this.trainerTypeDouble].toString().toLowerCase(); + } return ret; } @@ -302,11 +309,11 @@ export class TrainerConfig { } /** - * Sets the configuration for trainers with genders, including the female name and encounter background music (BGM). - * @param {string} [nameFemale] - The name of the female trainer. If 'Ivy', a localized name will be assigned. - * @param {TrainerType | string} [femaleEncounterBgm] - The encounter BGM for the female trainer, which can be a TrainerType or a string. - * @returns {TrainerConfig} - The updated TrainerConfig instance. - **/ + * Sets the configuration for trainers with genders, including the female name and encounter background music (BGM). + * @param {string} [nameFemale] - The name of the female trainer. If 'Ivy', a localized name will be assigned. + * @param {TrainerType | string} [femaleEncounterBgm] - The encounter BGM for the female trainer, which can be a TrainerType or a string. + * @returns {TrainerConfig} - The updated TrainerConfig instance. + **/ setHasGenders(nameFemale?: string, femaleEncounterBgm?: TrainerType | string): TrainerConfig { // If the female name is 'Ivy' (the rival), assign a localized name. if (nameFemale === "Ivy") { @@ -338,6 +345,12 @@ export class TrainerConfig { return this; } + /** + * Sets the configuration for trainers with double battles, including the name of the double trainer and the encounter BGM. + * @param nameDouble - The name of the double trainer (e.g., "Ace Duo" for Trainer Class Doubles or "red_blue_double" for NAMED trainer doubles). + * @param doubleEncounterBgm - The encounter BGM for the double trainer, which can be a TrainerType or a string. + * @returns {TrainerConfig} - The updated TrainerConfig instance. + */ setHasDouble(nameDouble: string, doubleEncounterBgm?: TrainerType | string): TrainerConfig { this.hasDouble = true; this.nameDouble = nameDouble; @@ -347,6 +360,50 @@ export class TrainerConfig { return this; } + /** + * Sets the trainer type for double battles. + * @param trainerTypeDouble - The TrainerType of the partner in a double battle. + * @returns {TrainerConfig} - The updated TrainerConfig instance. + */ + setDoubleTrainerType(trainerTypeDouble: TrainerType): TrainerConfig { + this.trainerTypeDouble = trainerTypeDouble; + this.setDoubleMessages(this.nameDouble); + return this; + } + + /** + * Sets the encounter and victory messages for double trainers. + * @param nameDouble - The name of the pair (e.g. "red_blue_double"). + */ + setDoubleMessages(nameDouble: string) { + // Check if there is double battle dialogue for this trainer + if (doubleBattleDialogue[nameDouble]) { + // Set encounter and victory messages for double trainers + this.doubleEncounterMessages = doubleBattleDialogue[nameDouble].encounter; + this.doubleVictoryMessages = doubleBattleDialogue[nameDouble].victory; + } + } + + /** + * Sets the title for double trainers + * @param titleDouble - the key for the title in the i18n file. (e.g., "champion_double"). + * @returns {TrainerConfig} - The updated TrainerConfig instance. + */ + setDoubleTitle(titleDouble: string): TrainerConfig { + // First check if i18n is initialized + if (!getIsInitialized()) { + initI18n(); + } + + // Make the title lowercase and replace spaces with underscores + titleDouble = titleDouble.toLowerCase().replace(/\s/g, "_"); + + // Get the title from the i18n file + this.titleDouble = i18next.t(`titles:${titleDouble}`); + + return this; + } + setHasCharSprite(): TrainerConfig { this.hasCharSprite = true; return this; @@ -439,11 +496,11 @@ export class TrainerConfig { } /** - * Initializes the trainer configuration for a Gym Leader. - * @param {Species | Species[]} signatureSpecies - The signature species for the Gym Leader. - * @param {Type[]} specialtyTypes - The specialty types for the Gym Leader. - * @returns {TrainerConfig} - The updated TrainerConfig instance. - * **/ + * Initializes the trainer configuration for a Gym Leader. + * @param {Species | Species[]} signatureSpecies - The signature species for the Gym Leader. + * @param {Type[]} specialtyTypes - The specialty types for the Gym Leader. + * @returns {TrainerConfig} - The updated TrainerConfig instance. + * **/ initForGymLeader(signatureSpecies: (Species | Species[])[], ...specialtyTypes: Type[]): TrainerConfig { // Check if the internationalization (i18n) system is initialized. if (!getIsInitialized()) { @@ -491,11 +548,11 @@ export class TrainerConfig { } /** - * Initializes the trainer configuration for an Elite Four member. - * @param {Species | Species[]} signatureSpecies - The signature species for the Elite Four member. - * @param {Type[]} specialtyTypes - The specialty types for the Elite Four member. - * @returns {TrainerConfig} - The updated TrainerConfig instance. - **/ + * Initializes the trainer configuration for an Elite Four member. + * @param {Species | Species[]} signatureSpecies - The signature species for the Elite Four member. + * @param {Type[]} specialtyTypes - The specialty types for the Elite Four member. + * @returns {TrainerConfig} - The updated TrainerConfig instance. + **/ initForEliteFour(signatureSpecies: (Species | Species[])[], ...specialtyTypes: Type[]): TrainerConfig { // Check if the internationalization (i18n) system is initialized. if (!getIsInitialized()) { @@ -542,10 +599,10 @@ export class TrainerConfig { } /** - * Initializes the trainer configuration for a Champion. - * @param {Species | Species[]} signatureSpecies - The signature species for the Champion. - * @returns {TrainerConfig} - The updated TrainerConfig instance. - **/ + * Initializes the trainer configuration for a Champion. + * @param {Species | Species[]} signatureSpecies - The signature species for the Champion. + * @returns {TrainerConfig} - The updated TrainerConfig instance. + **/ initForChampion(signatureSpecies: (Species | Species[])[]): TrainerConfig { // Check if the internationalization (i18n) system is initialized. if (!getIsInitialized()) { @@ -575,6 +632,7 @@ export class TrainerConfig { // Set the title to "champion". (this is the key in the i18n file) this.setTitle("champion"); + // Configure various properties for the Champion. this.setMoneyMultiplier(10); this.setBoss(); @@ -587,11 +645,11 @@ export class TrainerConfig { } /** - * Retrieves the title for the trainer based on the provided trainer slot and variant. - * @param {TrainerSlot} trainerSlot - The slot to determine which title to use. Defaults to TrainerSlot.NONE. - * @param {TrainerVariant} variant - The variant of the trainer to determine the specific title. - * @returns {string} - The title of the trainer. - **/ + * Retrieves the title for the trainer based on the provided trainer slot and variant. + * @param {TrainerSlot} trainerSlot - The slot to determine which title to use. Defaults to TrainerSlot.NONE. + * @param {TrainerVariant} variant - The variant of the trainer to determine the specific title. + * @returns {string} - The title of the trainer. + **/ getTitle(trainerSlot: TrainerSlot = TrainerSlot.NONE, variant: TrainerVariant): string { const ret = this.name; @@ -716,20 +774,161 @@ function getRandomTeraModifiers(party: EnemyPokemon[], count: integer, types?: T return ret; } +type SignatureSpecies = { + [key in string]: (Species | Species[])[]; +}; + +/* + * The signature species for each Gym Leader, Elite Four member, and Champion. + * The key is the trainer type, and the value is an array of Species or Species arrays. + * This is in a separate const so it can be accessed from other places and not just the trainerConfigs + */ +export const signatureSpecies: SignatureSpecies = { + BROCK: [Species.GEODUDE, Species.ONIX], + MISTY: [Species.STARYU, Species.PSYDUCK], + LT_SURGE: [Species.VOLTORB, Species.PIKACHU, Species.ELECTABUZZ], + ERIKA: [Species.ODDISH, Species.BELLSPROUT, Species.TANGELA, Species.HOPPIP], + JANINE: [Species.VENONAT, Species.SPINARAK, Species.ZUBAT], + SABRINA: [Species.ABRA, Species.MR_MIME, Species.ESPEON], + BLAINE: [Species.GROWLITHE, Species.PONYTA, Species.MAGMAR], + GIOVANNI: [Species.SANDILE, Species.MURKROW, Species.NIDORAN_M, Species.NIDORAN_F], + FALKNER: [Species.PIDGEY, Species.HOOTHOOT, Species.DODUO], + BUGSY: [Species.SCYTHER, Species.HERACROSS, Species.SHUCKLE, Species.PINSIR], + WHITNEY: [Species.GIRAFARIG, Species.MILTANK], + MORTY: [Species.GASTLY, Species.MISDREAVUS, Species.SABLEYE], + CHUCK: [Species.POLIWRATH, Species.MANKEY], + JASMINE: [Species.MAGNEMITE, Species.STEELIX], + PRYCE: [Species.SEEL, Species.SWINUB], + CLAIR: [Species.DRATINI, Species.HORSEA, Species.GYARADOS], + ROXANNE: [Species.GEODUDE, Species.NOSEPASS], + BRAWLY: [Species.MACHOP, Species.MAKUHITA], + WATTSON: [Species.MAGNEMITE, Species.VOLTORB, Species.ELECTRIKE], + FLANNERY: [Species.SLUGMA, Species.TORKOAL, Species.NUMEL], + NORMAN: [Species.SLAKOTH, Species.SPINDA, Species.CHANSEY, Species.KANGASKHAN], + WINONA: [Species.SWABLU, Species.WINGULL, Species.TROPIUS, Species.SKARMORY], + TATE: [Species.SOLROCK, Species.NATU, Species.CHIMECHO, Species.GALLADE], + LIZA: [Species.LUNATONE, Species.SPOINK, Species.BALTOY, Species.GARDEVOIR], + JUAN: [Species.HORSEA, Species.BARBOACH, Species.SPHEAL, Species.RELICANTH], + ROARK: [Species.CRANIDOS, Species.LARVITAR, Species.GEODUDE], + GARDENIA: [Species.ROSELIA, Species.TANGELA, Species.TURTWIG], + MAYLENE: [Species.LUCARIO, Species.MEDITITE, Species.CHIMCHAR], + CRASHER_WAKE: [Species.BUIZEL, Species.MAGIKARP, Species.PIPLUP], + FANTINA: [Species.MISDREAVUS, Species.DRIFLOON, Species.SPIRITOMB], + BYRON: [Species.SHIELDON, Species.BRONZOR, Species.AGGRON], + CANDICE: [Species.SNEASEL, Species.SNOVER, Species.SNORUNT], + VOLKNER: [Species.SHINX, Species.CHINCHOU, Species.ROTOM], + CILAN: [Species.PANSAGE, Species.COTTONEE, Species.PETILIL], + CHILI: [Species.PANSEAR, Species.DARUMAKA, Species.HEATMOR], + CRESS: [Species.PANPOUR, Species.BASCULIN, Species.TYMPOLE], + CHEREN: [Species.LILLIPUP, Species.MINCCINO, Species.PATRAT], + LENORA: [Species.KANGASKHAN, Species.DEERLING, Species.AUDINO], + ROXIE: [Species.VENIPEDE, Species.TRUBBISH, Species.SKORUPI], + BURGH: [Species.SEWADDLE, Species.SHELMET, Species.KARRABLAST], + ELESA: [Species.EMOLGA, Species.BLITZLE, Species.JOLTIK], + CLAY: [Species.DRILBUR, Species.SANDILE, Species.GOLETT], + SKYLA: [Species.DUCKLETT, Species.WOOBAT, Species.RUFFLET], + BRYCEN: [Species.CRYOGONAL, Species.VANILLITE, Species.CUBCHOO], + DRAYDEN: [Species.DRUDDIGON, Species.AXEW, Species.DEINO], + MARLON: [Species.WAILMER, Species.FRILLISH, Species.TIRTOUGA], + VIOLA: [Species.SURSKIT, Species.SCATTERBUG], + GRANT: [Species.AMAURA, Species.TYRUNT], + KORRINA: [Species.HAWLUCHA, Species.LUCARIO, Species.MIENFOO], + RAMOS: [Species.SKIDDO, Species.HOPPIP, Species.BELLSPROUT], + CLEMONT: [Species.HELIOPTILE, Species.MAGNEMITE, Species.EMOLGA], + VALERIE: [Species.SYLVEON, Species.MAWILE, Species.MR_MIME], + OLYMPIA: [Species.ESPURR, Species.SIGILYPH, Species.SLOWKING], + WULFRIC: [Species.BERGMITE, Species.SNOVER, Species.CRYOGONAL], + MILO: [Species.GOSSIFLEUR, Species.APPLIN, Species.BOUNSWEET], + NESSA: [Species.CHEWTLE, Species.ARROKUDA, Species.WIMPOD], + KABU: [Species.SIZZLIPEDE, Species.VULPIX, Species.TORKOAL], + BEA: [Species.GALAR_FARFETCHD, Species.MACHOP, Species.CLOBBOPUS], + ALLISTER: [Species.GALAR_YAMASK, Species.GALAR_CORSOLA, Species.GASTLY], + OPAL: [Species.MILCERY, Species.TOGETIC, Species.GALAR_WEEZING], + BEDE: [Species.HATENNA, Species.GALAR_PONYTA, Species.GARDEVOIR], + GORDIE: [Species.ROLYCOLY, Species.STONJOURNER, Species.BINACLE], + MELONY: [Species.SNOM, Species.GALAR_DARUMAKA, Species.GALAR_MR_MIME], + PIERS: [Species.GALAR_ZIGZAGOON, Species.SCRAGGY, Species.INKAY], + MARNIE: [Species.IMPIDIMP, Species.PURRLOIN, Species.MORPEKO], + RAIHAN: [Species.DURALUDON, Species.TURTONATOR, Species.GOOMY], + KATY: [Species.NYMBLE, Species.TAROUNTULA, Species.HERACROSS], + BRASSIUS: [Species.SMOLIV, Species.SHROOMISH, Species.ODDISH], + IONO: [Species.TADBULB, Species.WATTREL, Species.VOLTORB], + KOFU: [Species.VELUZA, Species.WIGLETT, Species.WINGULL], + LARRY: [Species.STARLY, Species.DUNSPARCE, Species.KOMALA], + RYME: [Species.GREAVARD, Species.SHUPPET, Species.MIMIKYU], + TULIP: [Species.GIRAFARIG, Species.FLITTLE, Species.RALTS], + GRUSHA: [Species.CETODDLE, Species.ALOLA_VULPIX, Species.CUBCHOO], + LORELEI: [Species.SLOWBRO, Species.LAPRAS, Species.DEWGONG, Species.ALOLA_SANDSLASH], + BRUNO: [Species.ONIX, Species.HITMONCHAN, Species.HITMONLEE, Species.ALOLA_GOLEM], + AGATHA: [Species.GENGAR, Species.ARBOK, Species.CROBAT, Species.ALOLA_MAROWAK], + LANCE: [Species.DRAGONITE, Species.GYARADOS, Species.AERODACTYL, Species.ALOLA_EXEGGUTOR], + WILL: [Species.XATU, Species.JYNX, Species.SLOWBRO, Species.EXEGGUTOR], + KOGA: [Species.WEEZING, Species.VENOMOTH, Species.CROBAT, Species.TENTACRUEL], + KAREN: [Species.UMBREON, Species.HONCHKROW, Species.HOUNDOOM, Species.WEAVILE], + SIDNEY: [Species.SHIFTRY, Species.SHARPEDO, Species.ABSOL, Species.ZOROARK], + PHOEBE: [Species.SABLEYE, Species.DUSKNOIR, Species.BANETTE, Species.CHANDELURE], + GLACIA: [Species.GLALIE, Species.WALREIN, Species.FROSLASS, Species.ABOMASNOW], + DRAKE: [Species.ALTARIA, Species.SALAMENCE, Species.FLYGON, Species.KINGDRA], + AARON: [Species.SCIZOR, Species.HERACROSS, Species.VESPIQUEN, Species.DRAPION], + BERTHA: [Species.WHISCASH, Species.HIPPOWDON, Species.GLISCOR, Species.RHYPERIOR], + FLINT: [Species.FLAREON, Species.HOUNDOOM, Species.RAPIDASH, Species.INFERNAPE], + LUCIAN: [Species.MR_MIME, Species.GALLADE, Species.BRONZONG, Species.ALAKAZAM], + SHAUNTAL: [Species.COFAGRIGUS, Species.CHANDELURE, Species.GOLURK, Species.DRIFBLIM], + MARSHAL: [Species.TIMBURR, Species.MIENFOO, Species.THROH, Species.SAWK], + GRIMSLEY: [Species.LIEPARD, Species.KINGAMBIT, Species.SCRAFTY, Species.KROOKODILE], + CAITLIN: [Species.MUSHARNA, Species.GOTHITELLE, Species.SIGILYPH, Species.REUNICLUS], + MALVA: [Species.PYROAR, Species.TORKOAL, Species.CHANDELURE, Species.TALONFLAME], + SIEBOLD: [Species.CLAWITZER, Species.GYARADOS, Species.BARBARACLE, Species.STARMIE], + WIKSTROM: [Species.KLEFKI, Species.PROBOPASS, Species.SCIZOR, Species.AEGISLASH], + DRASNA: [Species.DRAGALGE, Species.DRUDDIGON, Species.ALTARIA, Species.NOIVERN], + HALA: [Species.HARIYAMA, Species.BEWEAR, Species.CRABOMINABLE, Species.POLIWRATH], + MOLAYNE: [Species.KLEFKI, Species.MAGNEZONE, Species.METAGROSS, Species.ALOLA_DUGTRIO], + OLIVIA: [Species.ARMALDO, Species.CRADILY, Species.ALOLA_GOLEM, Species.LYCANROC], + ACEROLA: [Species.BANETTE, Species.DRIFBLIM, Species.DHELMISE, Species.PALOSSAND], + KAHILI: [Species.BRAVIARY, Species.HAWLUCHA, Species.ORICORIO, Species.TOUCANNON], + MARNIE_ELITE: [ Species.MORPEKO, Species.LIEPARD, Species.TOXICROAK,Species.SCRAFTY, Species.GRIMMSNARL], + NESSA_ELITE: [ Species.GOLISOPOD,Species.PELIPPER,Species.QUAGSIRE,Species.TOXAPEX,Species.DREDNAW], + BEA_ELITE: [ Species.HAWLUCHA,Species.GRAPPLOCT,Species.SIRFETCHD,Species.FALINKS,Species.MACHAMP], + ALLISTER_ELITE:[ Species.DUSKNOIR,Species.CHANDELURE,Species.CURSOLA,Species.RUNERIGUS,Species.GENGAR], + RAIHAN_ELITE: [ Species.TORKOAL,Species.GOODRA,Species.TURTONATOR,Species.FLYGON,Species.DURALUDON], + RIKA: [Species.WHISCASH, Species.DONPHAN, Species.CAMERUPT, Species.CLODSIRE], + POPPY: [Species.COPPERAJAH, Species.BRONZONG, Species.CORVIKNIGHT, Species.TINKATON], + LARRY_ELITE: [Species.STARAPTOR, Species.FLAMIGO, Species.ALTARIA, Species.TROPIUS], + HASSEL: [Species.NOIVERN, Species.HAXORUS, Species.DRAGALGE, Species.BAXCALIBUR], + CRISPIN: [Species.TALONFLAME, Species.CAMERUPT, Species.MAGMORTAR, Species.BLAZIKEN], + AMARYS: [Species.SKARMORY, Species.EMPOLEON, Species.SCIZOR, Species.METAGROSS], + LACEY: [Species.EXCADRILL, Species.PRIMARINA, Species.ALCREMIE, Species.GALAR_SLOWBRO], + DRAYTON: [Species.DRAGONITE, Species.ARCHALUDON, Species.FLYGON, Species.SCEPTILE], + BLUE: [Species.GYARADOS, Species.MEWTWO, Species.ARCANINE, Species.ALAKAZAM, Species.PIDGEOT], + RED: [Species.CHARIZARD, [Species.LUGIA, Species.HO_OH], Species.SNORLAX, Species.RAICHU, Species.ESPEON], + LANCE_CHAMPION: [Species.DRAGONITE, Species.ZYGARDE, Species.AERODACTYL, Species.KINGDRA, Species.ALOLA_EXEGGUTOR], + STEVEN: [Species.METAGROSS, [Species.DIALGA, Species.PALKIA], Species.SKARMORY, Species.AGGRON, Species.CARBINK], + WALLACE: [Species.MILOTIC, Species.KYOGRE, Species.WHISCASH, Species.WALREIN, Species.LUDICOLO], + CYNTHIA: [Species.SPIRITOMB, Species.GIRATINA, Species.GARCHOMP, Species.MILOTIC, Species.LUCARIO, Species.TOGEKISS], + ALDER: [Species.VOLCARONA, Species.GROUDON, Species.BOUFFALANT, Species.ACCELGOR, Species.CONKELDURR], + IRIS: [Species.HAXORUS, Species.YVELTAL, Species.DRUDDIGON, Species.ARON, Species.LAPRAS], + DIANTHA: [Species.HAWLUCHA, Species.XERNEAS, Species.GOURGEIST, Species.GOODRA, Species.GARDEVOIR], + HAU: [Species.ALOLA_RAICHU, [Species.SOLGALEO, Species.LUNALA], Species.NOIVERN, [Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA], Species.CRABOMINABLE], + GEETA: [Species.GLIMMORA, Species.MIRAIDON, Species.ESPATHRA, Species.VELUZA, Species.KINGAMBIT], + NEMONA: [Species.LYCANROC, Species.KORAIDON, Species.KOMMO_O, Species.PAWMOT, Species.DUSKNOIR], + KIERAN: [Species.POLITOED, [Species.OGERPON, Species.TERAPAGOS], Species.HYDRAPPLE, Species.PORYGON_Z, Species.GRIMMSNARL], + LEON: [Species.DRAGAPULT, [Species.ZACIAN, Species.ZAMAZENTA], Species.SEISMITOAD, Species.AEGISLASH, Species.CHARIZARD], +}; + export const trainerConfigs: TrainerConfigs = { [TrainerType.UNKNOWN]: new TrainerConfig(0).setHasGenders(), [TrainerType.ACE_TRAINER]: new TrainerConfig(++t).setHasGenders("Ace Trainer Female").setHasDouble("Ace Duo").setMoneyMultiplier(2.25).setEncounterBgm(TrainerType.ACE_TRAINER) .setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.THREE_WEAK_BALANCED, trainerPartyTemplates.FOUR_WEAK_BALANCED, trainerPartyTemplates.FIVE_WEAK_BALANCED, trainerPartyTemplates.SIX_WEAK_BALANCED)), [TrainerType.ARTIST]: new TrainerConfig(++t).setEncounterBgm(TrainerType.RICH).setPartyTemplates(trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.THREE_AVG) - .setSpeciesPools([ Species.SMEARGLE ]), + .setSpeciesPools([Species.SMEARGLE]), [TrainerType.BACKERS]: new TrainerConfig(++t).setHasGenders("Backers").setDoubleOnly().setEncounterBgm(TrainerType.CYCLIST), [TrainerType.BACKPACKER]: new TrainerConfig(++t).setHasGenders("Backpacker Female").setHasDouble("Backpackers").setSpeciesFilter(s => s.isOfType(Type.FLYING) || s.isOfType(Type.ROCK)).setEncounterBgm(TrainerType.BACKPACKER) .setPartyTemplates(trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.ONE_WEAK_ONE_STRONG, trainerPartyTemplates.ONE_AVG_ONE_STRONG) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.RHYHORN, Species.AIPOM, Species.MAKUHITA, Species.MAWILE, Species.NUMEL, Species.LILLIPUP, Species.SANDILE, Species.WOOLOO ], - [TrainerPoolTier.UNCOMMON]: [ Species.GIRAFARIG, Species.ZANGOOSE, Species.SEVIPER, Species.CUBCHOO, Species.PANCHAM, Species.SKIDDO, Species.MUDBRAY ], - [TrainerPoolTier.RARE]: [ Species.TAUROS, Species.STANTLER, Species.DARUMAKA, Species.BOUFFALANT, Species.DEERLING, Species.IMPIDIMP ], - [TrainerPoolTier.SUPER_RARE]: [ Species.GALAR_DARUMAKA, Species.TEDDIURSA ] + [TrainerPoolTier.COMMON]: [Species.RHYHORN, Species.AIPOM, Species.MAKUHITA, Species.MAWILE, Species.NUMEL, Species.LILLIPUP, Species.SANDILE, Species.WOOLOO], + [TrainerPoolTier.UNCOMMON]: [Species.GIRAFARIG, Species.ZANGOOSE, Species.SEVIPER, Species.CUBCHOO, Species.PANCHAM, Species.SKIDDO, Species.MUDBRAY], + [TrainerPoolTier.RARE]: [Species.TAUROS, Species.STANTLER, Species.DARUMAKA, Species.BOUFFALANT, Species.DEERLING, Species.IMPIDIMP], + [TrainerPoolTier.SUPER_RARE]: [Species.GALAR_DARUMAKA, Species.TEDDIURSA] }), [TrainerType.BAKER]: new TrainerConfig(++t).setEncounterBgm(TrainerType.CLERK).setMoneyMultiplier(1.35).setSpeciesFilter(s => s.isOfType(Type.GRASS) || s.isOfType(Type.FIRE)), [TrainerType.BEAUTY]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.PARASOL_LADY), @@ -737,11 +936,11 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.BLACK_BELT]: new TrainerConfig(++t).setHasGenders("Battle Girl", TrainerType.PSYCHIC).setHasDouble("Crush Kin").setEncounterBgm(TrainerType.ROUGHNECK).setSpecialtyTypes(Type.FIGHTING) .setPartyTemplates(trainerPartyTemplates.TWO_WEAK_ONE_AVG, trainerPartyTemplates.TWO_WEAK_ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_ONE_STRONG, trainerPartyTemplates.THREE_AVG, trainerPartyTemplates.TWO_AVG_ONE_STRONG) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.NIDORAN_F, Species.NIDORAN_M, Species.MACHOP, Species.MAKUHITA, Species.MEDITITE, Species.CROAGUNK, Species.TIMBURR ], - [TrainerPoolTier.UNCOMMON]: [ Species.MANKEY, Species.POLIWRATH, Species.TYROGUE, Species.BRELOOM, Species.SCRAGGY, Species.MIENFOO, Species.PANCHAM, Species.STUFFUL, Species.CRABRAWLER ], - [TrainerPoolTier.RARE]: [ Species.HERACROSS, Species.RIOLU, Species.THROH, Species.SAWK, Species.PASSIMIAN, Species.CLOBBOPUS ], - [TrainerPoolTier.SUPER_RARE]: [ Species.HITMONTOP, Species.INFERNAPE, Species.GALLADE, Species.HAWLUCHA, Species.HAKAMO_O ], - [TrainerPoolTier.ULTRA_RARE]: [ Species.KUBFU ] + [TrainerPoolTier.COMMON]: [Species.NIDORAN_F, Species.NIDORAN_M, Species.MACHOP, Species.MAKUHITA, Species.MEDITITE, Species.CROAGUNK, Species.TIMBURR], + [TrainerPoolTier.UNCOMMON]: [Species.MANKEY, Species.POLIWRATH, Species.TYROGUE, Species.BRELOOM, Species.SCRAGGY, Species.MIENFOO, Species.PANCHAM, Species.STUFFUL, Species.CRABRAWLER], + [TrainerPoolTier.RARE]: [Species.HERACROSS, Species.RIOLU, Species.THROH, Species.SAWK, Species.PASSIMIAN, Species.CLOBBOPUS], + [TrainerPoolTier.SUPER_RARE]: [Species.HITMONTOP, Species.INFERNAPE, Species.GALLADE, Species.HAWLUCHA, Species.HAKAMO_O], + [TrainerPoolTier.ULTRA_RARE]: [Species.KUBFU] }), [TrainerType.BREEDER]: new TrainerConfig(++t).setMoneyMultiplier(1.325).setEncounterBgm(TrainerType.POKEFAN).setHasGenders("Breeder Female").setHasDouble("Breeders") .setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.FOUR_WEAKER, trainerPartyTemplates.FIVE_WEAKER, trainerPartyTemplates.SIX_WEAKER)) @@ -749,25 +948,25 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.CLERK]: new TrainerConfig(++t).setHasGenders("Clerk Female").setHasDouble("Colleagues").setEncounterBgm(TrainerType.CLERK) .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.THREE_WEAK, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_ONE_AVG) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.MEOWTH, Species.PSYDUCK, Species.BUDEW, Species.PIDOVE, Species.CINCCINO, Species.LITLEO ], - [TrainerPoolTier.UNCOMMON]: [ Species.JIGGLYPUFF, Species.MAGNEMITE, Species.MARILL, Species.COTTONEE, Species.SKIDDO ], - [TrainerPoolTier.RARE]: [ Species.BUIZEL, Species.SNEASEL, Species.KLEFKI, Species.INDEEDEE ] + [TrainerPoolTier.COMMON]: [Species.MEOWTH, Species.PSYDUCK, Species.BUDEW, Species.PIDOVE, Species.CINCCINO, Species.LITLEO], + [TrainerPoolTier.UNCOMMON]: [Species.JIGGLYPUFF, Species.MAGNEMITE, Species.MARILL, Species.COTTONEE, Species.SKIDDO], + [TrainerPoolTier.RARE]: [Species.BUIZEL, Species.SNEASEL, Species.KLEFKI, Species.INDEEDEE] }), [TrainerType.CYCLIST]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setHasGenders("Cyclist Female").setHasDouble("Cyclists").setEncounterBgm(TrainerType.CYCLIST) .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.ONE_AVG) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.PICHU, Species.STARLY, Species.TAILLOW, Species.BOLTUND ], - [TrainerPoolTier.UNCOMMON]: [ Species.DODUO, Species.ELECTRIKE, Species.BLITZLE, Species.WATTREL ], - [TrainerPoolTier.RARE]: [ Species.YANMA, Species.NINJASK, Species.WHIRLIPEDE, Species.EMOLGA ], - [TrainerPoolTier.SUPER_RARE]: [ Species.ACCELGOR, Species.DREEPY ] + [TrainerPoolTier.COMMON]: [Species.PICHU, Species.STARLY, Species.TAILLOW, Species.BOLTUND], + [TrainerPoolTier.UNCOMMON]: [Species.DODUO, Species.ELECTRIKE, Species.BLITZLE, Species.WATTREL], + [TrainerPoolTier.RARE]: [Species.YANMA, Species.NINJASK, Species.WHIRLIPEDE, Species.EMOLGA], + [TrainerPoolTier.SUPER_RARE]: [Species.ACCELGOR, Species.DREEPY] }), [TrainerType.DANCER]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.CYCLIST) .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_TWO_WEAK_SAME) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.RALTS, Species.SPOINK, Species.LOTAD, Species.BUDEW ], - [TrainerPoolTier.UNCOMMON]: [ Species.SPINDA, Species.SWABLU, Species.MARACTUS,], - [TrainerPoolTier.RARE]: [ Species.BELLOSSOM, Species.HITMONTOP, Species.MIME_JR, Species.ORICORIO ], - [TrainerPoolTier.SUPER_RARE]: [ Species.POPPLIO ] + [TrainerPoolTier.COMMON]: [Species.RALTS, Species.SPOINK, Species.LOTAD, Species.BUDEW], + [TrainerPoolTier.UNCOMMON]: [Species.SPINDA, Species.SWABLU, Species.MARACTUS,], + [TrainerPoolTier.RARE]: [Species.BELLOSSOM, Species.HITMONTOP, Species.MIME_JR, Species.ORICORIO], + [TrainerPoolTier.SUPER_RARE]: [Species.POPPLIO] }), [TrainerType.DEPOT_AGENT]: new TrainerConfig(++t).setMoneyMultiplier(1.45).setEncounterBgm(TrainerType.CLERK), [TrainerType.DOCTOR]: new TrainerConfig(++t).setHasGenders("Nurse", "lass").setHasDouble("Medical Team").setMoneyMultiplier(3).setEncounterBgm(TrainerType.CLERK) @@ -775,20 +974,20 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.FISHERMAN]: new TrainerConfig(++t).setMoneyMultiplier(1.25).setEncounterBgm(TrainerType.BACKPACKER).setSpecialtyTypes(Type.WATER) .setPartyTemplates(trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.THREE_WEAK_SAME, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.SIX_WEAKER) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.TENTACOOL, Species.MAGIKARP, Species.GOLDEEN, Species.STARYU, Species.REMORAID, Species.SKRELP, Species.CLAUNCHER, Species.ARROKUDA ], - [TrainerPoolTier.UNCOMMON]: [ Species.POLIWAG, Species.SHELLDER, Species.KRABBY, Species.HORSEA, Species.CARVANHA, Species.BARBOACH, Species.CORPHISH, Species.FINNEON, Species.TYMPOLE, Species.BASCULIN, Species.FRILLISH, Species.INKAY ], - [TrainerPoolTier.RARE]: [ Species.CHINCHOU, Species.CORSOLA, Species.WAILMER, Species.BARBOACH, Species.CLAMPERL, Species.LUVDISC, Species.MANTYKE, Species.ALOMOMOLA, Species.TATSUGIRI, Species.VELUZA ], - [TrainerPoolTier.SUPER_RARE]: [ Species.LAPRAS, Species.FEEBAS, Species.RELICANTH, Species.DONDOZO ] + [TrainerPoolTier.COMMON]: [Species.TENTACOOL, Species.MAGIKARP, Species.GOLDEEN, Species.STARYU, Species.REMORAID, Species.SKRELP, Species.CLAUNCHER, Species.ARROKUDA], + [TrainerPoolTier.UNCOMMON]: [Species.POLIWAG, Species.SHELLDER, Species.KRABBY, Species.HORSEA, Species.CARVANHA, Species.BARBOACH, Species.CORPHISH, Species.FINNEON, Species.TYMPOLE, Species.BASCULIN, Species.FRILLISH, Species.INKAY], + [TrainerPoolTier.RARE]: [Species.CHINCHOU, Species.CORSOLA, Species.WAILMER, Species.BARBOACH, Species.CLAMPERL, Species.LUVDISC, Species.MANTYKE, Species.ALOMOMOLA, Species.TATSUGIRI, Species.VELUZA], + [TrainerPoolTier.SUPER_RARE]: [Species.LAPRAS, Species.FEEBAS, Species.RELICANTH, Species.DONDOZO] }), [TrainerType.GUITARIST]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.ROUGHNECK).setSpecialtyTypes(Type.ELECTRIC).setSpeciesFilter(s => s.isOfType(Type.ELECTRIC)), [TrainerType.HARLEQUIN]: new TrainerConfig(++t).setEncounterBgm(TrainerType.PSYCHIC).setSpeciesFilter(s => tmSpecies[Moves.TRICK_ROOM].indexOf(s.speciesId) > -1), [TrainerType.HIKER]: new TrainerConfig(++t).setEncounterBgm(TrainerType.BACKPACKER) .setPartyTemplates(trainerPartyTemplates.TWO_AVG_SAME_ONE_AVG, trainerPartyTemplates.TWO_AVG_SAME_ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.FOUR_WEAK, trainerPartyTemplates.ONE_STRONG) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.SANDSHREW, Species.DIGLETT, Species.GEODUDE, Species.MACHOP, Species.ARON, Species.ROGGENROLA, Species.DRILBUR, Species.NACLI ], - [TrainerPoolTier.UNCOMMON]: [ Species.ZUBAT, Species.RHYHORN, Species.ONIX, Species.CUBONE, Species.WOOBAT, Species.SWINUB, Species.NOSEPASS, Species.HIPPOPOTAS, Species.DWEBBLE, Species.KLAWF, Species.TOEDSCOOL ], - [TrainerPoolTier.RARE]: [ Species.TORKOAL, Species.TRAPINCH, Species.BARBOACH, Species.GOLETT, Species.ALOLA_DIGLETT, Species.ALOLA_GEODUDE, Species.GALAR_STUNFISK, Species.PALDEA_WOOPER ], - [TrainerPoolTier.SUPER_RARE]: [ Species.MAGBY, Species.LARVITAR ] + [TrainerPoolTier.COMMON]: [Species.SANDSHREW, Species.DIGLETT, Species.GEODUDE, Species.MACHOP, Species.ARON, Species.ROGGENROLA, Species.DRILBUR, Species.NACLI], + [TrainerPoolTier.UNCOMMON]: [Species.ZUBAT, Species.RHYHORN, Species.ONIX, Species.CUBONE, Species.WOOBAT, Species.SWINUB, Species.NOSEPASS, Species.HIPPOPOTAS, Species.DWEBBLE, Species.KLAWF, Species.TOEDSCOOL], + [TrainerPoolTier.RARE]: [Species.TORKOAL, Species.TRAPINCH, Species.BARBOACH, Species.GOLETT, Species.ALOLA_DIGLETT, Species.ALOLA_GEODUDE, Species.GALAR_STUNFISK, Species.PALDEA_WOOPER], + [TrainerPoolTier.SUPER_RARE]: [Species.MAGBY, Species.LARVITAR] }), [TrainerType.HOOLIGANS]: new TrainerConfig(++t).setDoubleOnly().setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => s.isOfType(Type.POISON) || s.isOfType(Type.DARK)), [TrainerType.HOOPSTER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), @@ -804,11 +1003,11 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.OFFICER]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.CLERK) .setPartyTemplates(trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.VULPIX, Species.GROWLITHE, Species.SNUBBULL, Species.POOCHYENA, Species.ELECTRIKE, Species.LILLIPUP, Species.YAMPER, Species.FIDOUGH ], - [TrainerPoolTier.UNCOMMON]: [ Species.HOUNDOUR, Species.ROCKRUFF, Species.MASCHIFF ], - [TrainerPoolTier.RARE]: [ Species.JOLTEON, Species.RIOLU ], + [TrainerPoolTier.COMMON]: [Species.VULPIX, Species.GROWLITHE, Species.SNUBBULL, Species.POOCHYENA, Species.ELECTRIKE, Species.LILLIPUP, Species.YAMPER, Species.FIDOUGH], + [TrainerPoolTier.UNCOMMON]: [Species.HOUNDOUR, Species.ROCKRUFF, Species.MASCHIFF], + [TrainerPoolTier.RARE]: [Species.JOLTEON, Species.RIOLU], [TrainerPoolTier.SUPER_RARE]: [], - [TrainerPoolTier.ULTRA_RARE]: [ Species.ENTEI, Species.SUICUNE, Species.RAIKOU ] + [TrainerPoolTier.ULTRA_RARE]: [Species.ENTEI, Species.SUICUNE, Species.RAIKOU] }), [TrainerType.PARASOL_LADY]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.PARASOL_LADY).setSpeciesFilter(s => s.isOfType(Type.WATER)), [TrainerType.PILOT]: new TrainerConfig(++t).setEncounterBgm(TrainerType.CLERK).setSpeciesFilter(s => tmSpecies[Moves.FLY].indexOf(s.speciesId) > -1), @@ -817,227 +1016,227 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.PRESCHOOLER]: new TrainerConfig(++t).setMoneyMultiplier(0.2).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders("Preschooler Female", "lass").setHasDouble("Preschoolers") .setPartyTemplates(trainerPartyTemplates.THREE_WEAK, trainerPartyTemplates.FOUR_WEAKER, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.FIVE_WEAKER) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.CATERPIE, Species.PICHU, Species.SANDSHREW, Species.LEDYBA, Species.BUDEW, Species.BURMY, Species.WOOLOO, Species.PAWMI, Species.SMOLIV ], - [TrainerPoolTier.UNCOMMON]: [ Species.EEVEE, Species.CLEFFA, Species.IGGLYBUFF, Species.SWINUB, Species.WOOPER, Species.DRIFLOON, Species.DEDENNE, Species.STUFFUL ], - [TrainerPoolTier.RARE]: [ Species.RALTS, Species.RIOLU, Species.JOLTIK, Species.TANDEMAUS ], - [TrainerPoolTier.SUPER_RARE]: [ Species.DARUMAKA, Species.TINKATINK ], + [TrainerPoolTier.COMMON]: [Species.CATERPIE, Species.PICHU, Species.SANDSHREW, Species.LEDYBA, Species.BUDEW, Species.BURMY, Species.WOOLOO, Species.PAWMI, Species.SMOLIV], + [TrainerPoolTier.UNCOMMON]: [Species.EEVEE, Species.CLEFFA, Species.IGGLYBUFF, Species.SWINUB, Species.WOOPER, Species.DRIFLOON, Species.DEDENNE, Species.STUFFUL], + [TrainerPoolTier.RARE]: [Species.RALTS, Species.RIOLU, Species.JOLTIK, Species.TANDEMAUS], + [TrainerPoolTier.SUPER_RARE]: [Species.DARUMAKA, Species.TINKATINK], }), [TrainerType.PSYCHIC]: new TrainerConfig(++t).setHasGenders("Psychic Female").setHasDouble("Psychics").setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.PSYCHIC) .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.TWO_WEAK_SAME_TWO_WEAK_SAME, trainerPartyTemplates.ONE_STRONGER) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.ABRA, Species.DROWZEE, Species.RALTS, Species.SPOINK, Species.GOTHITA, Species.SOLOSIS, Species.BLIPBUG, Species.ESPURR, Species.HATENNA ], - [TrainerPoolTier.UNCOMMON]: [ Species.MIME_JR, Species.EXEGGCUTE, Species.MEDITITE, Species.NATU, Species.EXEGGCUTE, Species.WOOBAT, Species.INKAY, Species.ORANGURU ], - [TrainerPoolTier.RARE]: [ Species.ELGYEM, Species.SIGILYPH, Species.BALTOY, Species.GIRAFARIG, Species.MEOWSTIC ], - [TrainerPoolTier.SUPER_RARE]: [ Species.BELDUM, Species.ESPEON, Species.STANTLER ], + [TrainerPoolTier.COMMON]: [Species.ABRA, Species.DROWZEE, Species.RALTS, Species.SPOINK, Species.GOTHITA, Species.SOLOSIS, Species.BLIPBUG, Species.ESPURR, Species.HATENNA], + [TrainerPoolTier.UNCOMMON]: [Species.MIME_JR, Species.EXEGGCUTE, Species.MEDITITE, Species.NATU, Species.EXEGGCUTE, Species.WOOBAT, Species.INKAY, Species.ORANGURU], + [TrainerPoolTier.RARE]: [Species.ELGYEM, Species.SIGILYPH, Species.BALTOY, Species.GIRAFARIG, Species.MEOWSTIC], + [TrainerPoolTier.SUPER_RARE]: [Species.BELDUM, Species.ESPEON, Species.STANTLER], }), [TrainerType.RANGER]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setName("Pokémon Ranger").setEncounterBgm(TrainerType.BACKPACKER).setHasGenders("Pokémon Ranger Female").setHasDouble("Pokémon Rangers") .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.PICHU, Species.GROWLITHE, Species.PONYTA, Species.ZIGZAGOON, Species.SEEDOT, Species.BIDOOF, Species.RIOLU, Species.SEWADDLE, Species.SKIDDO, Species.SALANDIT, Species.YAMPER ], - [TrainerPoolTier.UNCOMMON]: [ Species.AZURILL, Species.TAUROS, Species.MAREEP, Species.FARFETCHD, Species.TEDDIURSA, Species.SHROOMISH, Species.ELECTRIKE, Species.BUDEW, Species.BUIZEL, Species.MUDBRAY, Species.STUFFUL ], - [TrainerPoolTier.RARE]: [ Species.EEVEE, Species.SCYTHER, Species.KANGASKHAN, Species.RALTS, Species.MUNCHLAX, Species.ZORUA, Species.PALDEA_TAUROS, Species.TINKATINK, Species.CYCLIZAR, Species.FLAMIGO ], - [TrainerPoolTier.SUPER_RARE]: [ Species.LARVESTA ], + [TrainerPoolTier.COMMON]: [Species.PICHU, Species.GROWLITHE, Species.PONYTA, Species.ZIGZAGOON, Species.SEEDOT, Species.BIDOOF, Species.RIOLU, Species.SEWADDLE, Species.SKIDDO, Species.SALANDIT, Species.YAMPER], + [TrainerPoolTier.UNCOMMON]: [Species.AZURILL, Species.TAUROS, Species.MAREEP, Species.FARFETCHD, Species.TEDDIURSA, Species.SHROOMISH, Species.ELECTRIKE, Species.BUDEW, Species.BUIZEL, Species.MUDBRAY, Species.STUFFUL], + [TrainerPoolTier.RARE]: [Species.EEVEE, Species.SCYTHER, Species.KANGASKHAN, Species.RALTS, Species.MUNCHLAX, Species.ZORUA, Species.PALDEA_TAUROS, Species.TINKATINK, Species.CYCLIZAR, Species.FLAMIGO], + [TrainerPoolTier.SUPER_RARE]: [Species.LARVESTA], }), [TrainerType.RICH]: new TrainerConfig(++t).setMoneyMultiplier(5).setName("Gentleman").setHasGenders("Madame").setHasDouble("Rich Couple"), [TrainerType.RICH_KID]: new TrainerConfig(++t).setMoneyMultiplier(3.75).setName("Rich Boy").setHasGenders("Lady").setHasDouble("Rich Kids").setEncounterBgm(TrainerType.RICH), [TrainerType.ROUGHNECK]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => s.isOfType(Type.DARK)), [TrainerType.SCIENTIST]: new TrainerConfig(++t).setHasGenders("Scientist Female").setHasDouble("Scientists").setMoneyMultiplier(1.7).setEncounterBgm(TrainerType.SCIENTIST) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.MAGNEMITE, Species.GRIMER, Species.DROWZEE, Species.VOLTORB, Species.KOFFING ], - [TrainerPoolTier.UNCOMMON]: [ Species.BALTOY, Species.BRONZOR, Species.FERROSEED, Species.KLINK, Species.CHARJABUG, Species.BLIPBUG, Species.HELIOPTILE ], - [TrainerPoolTier.RARE]: [ Species.ABRA, Species.DITTO, Species.PORYGON, Species.ELEKID, Species.SOLOSIS, Species.GALAR_WEEZING ], - [TrainerPoolTier.SUPER_RARE]: [ Species.OMANYTE, Species.KABUTO, Species.AERODACTYL, Species.LILEEP, Species.ANORITH, Species.CRANIDOS, Species.SHIELDON, Species.TIRTOUGA, Species.ARCHEN, Species.ARCTOVISH, Species.ARCTOZOLT, Species.DRACOVISH, Species.DRACOZOLT ], - [TrainerPoolTier.ULTRA_RARE]: [ Species.ROTOM, Species.MELTAN ] + [TrainerPoolTier.COMMON]: [Species.MAGNEMITE, Species.GRIMER, Species.DROWZEE, Species.VOLTORB, Species.KOFFING], + [TrainerPoolTier.UNCOMMON]: [Species.BALTOY, Species.BRONZOR, Species.FERROSEED, Species.KLINK, Species.CHARJABUG, Species.BLIPBUG, Species.HELIOPTILE], + [TrainerPoolTier.RARE]: [Species.ABRA, Species.DITTO, Species.PORYGON, Species.ELEKID, Species.SOLOSIS, Species.GALAR_WEEZING], + [TrainerPoolTier.SUPER_RARE]: [Species.OMANYTE, Species.KABUTO, Species.AERODACTYL, Species.LILEEP, Species.ANORITH, Species.CRANIDOS, Species.SHIELDON, Species.TIRTOUGA, Species.ARCHEN, Species.ARCTOVISH, Species.ARCTOZOLT, Species.DRACOVISH, Species.DRACOZOLT], + [TrainerPoolTier.ULTRA_RARE]: [Species.ROTOM, Species.MELTAN] }), [TrainerType.SMASHER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), [TrainerType.SNOW_WORKER]: new TrainerConfig(++t).setName("Worker").setHasGenders("Worker Female").setHasDouble("Workers").setMoneyMultiplier(1.7).setEncounterBgm(TrainerType.CLERK).setSpeciesFilter(s => s.isOfType(Type.ICE) || s.isOfType(Type.STEEL)), [TrainerType.STRIKER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), [TrainerType.SCHOOL_KID]: new TrainerConfig(++t).setMoneyMultiplier(0.75).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders("School Kid Female", "lass").setHasDouble("School Kids") .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.ODDISH, Species.EXEGGCUTE, Species.TEDDIURSA, Species.WURMPLE, Species.RALTS, Species.SHROOMISH, Species.FLETCHLING ], - [TrainerPoolTier.UNCOMMON]: [ Species.VOLTORB, Species.WHISMUR, Species.MEDITITE, Species.MIME_JR, Species.NYMBLE ], - [TrainerPoolTier.RARE]: [ Species.TANGELA, Species.EEVEE, Species.YANMA ], - [TrainerPoolTier.SUPER_RARE]: [ Species.TADBULB ] + [TrainerPoolTier.COMMON]: [Species.ODDISH, Species.EXEGGCUTE, Species.TEDDIURSA, Species.WURMPLE, Species.RALTS, Species.SHROOMISH, Species.FLETCHLING], + [TrainerPoolTier.UNCOMMON]: [Species.VOLTORB, Species.WHISMUR, Species.MEDITITE, Species.MIME_JR, Species.NYMBLE], + [TrainerPoolTier.RARE]: [Species.TANGELA, Species.EEVEE, Species.YANMA], + [TrainerPoolTier.SUPER_RARE]: [Species.TADBULB] }), [TrainerType.SWIMMER]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setEncounterBgm(TrainerType.PARASOL_LADY).setHasGenders("Swimmer Female").setHasDouble("Swimmers").setSpecialtyTypes(Type.WATER).setSpeciesFilter(s => s.isOfType(Type.WATER)), [TrainerType.TWINS]: new TrainerConfig(++t).setDoubleOnly().setMoneyMultiplier(0.65).setUseSameSeedForAllMembers() .setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_STRONG)) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.PLUSLE, Species.VOLBEAT, Species.PACHIRISU, Species.SILCOON, Species.METAPOD, Species.IGGLYBUFF, Species.PETILIL, Species.EEVEE ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.MINUN, Species.ILLUMISE, Species.EMOLGA, Species.CASCOON, Species.KAKUNA, Species.CLEFFA, Species.COTTONEE, Species.EEVEE ], TrainerSlot.TRAINER_PARTNER)) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PLUSLE, Species.VOLBEAT, Species.PACHIRISU, Species.SILCOON, Species.METAPOD, Species.IGGLYBUFF, Species.PETILIL, Species.EEVEE])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.MINUN, Species.ILLUMISE, Species.EMOLGA, Species.CASCOON, Species.KAKUNA, Species.CLEFFA, Species.COTTONEE, Species.EEVEE], TrainerSlot.TRAINER_PARTNER)) .setEncounterBgm(TrainerType.TWINS), [TrainerType.VETERAN]: new TrainerConfig(++t).setHasGenders("Veteran Female").setHasDouble("Veteran Duo").setMoneyMultiplier(2.5).setEncounterBgm(TrainerType.ACE_TRAINER).setSpeciesFilter(s => s.isOfType(Type.DRAGON)), [TrainerType.WAITER]: new TrainerConfig(++t).setHasGenders("Waitress").setHasDouble("Restaurant Staff").setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.CLERK) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.CLEFFA, Species.CHATOT, Species.PANSAGE, Species.PANSEAR, Species.PANPOUR, Species.MINCCINO ], - [TrainerPoolTier.UNCOMMON]: [ Species.TROPIUS, Species.PETILIL, Species.BOUNSWEET, Species.INDEEDEE ], - [TrainerPoolTier.RARE]: [ Species.APPLIN, Species.SINISTEA, Species.POLTCHAGEIST ] + [TrainerPoolTier.COMMON]: [Species.CLEFFA, Species.CHATOT, Species.PANSAGE, Species.PANSEAR, Species.PANPOUR, Species.MINCCINO], + [TrainerPoolTier.UNCOMMON]: [Species.TROPIUS, Species.PETILIL, Species.BOUNSWEET, Species.INDEEDEE], + [TrainerPoolTier.RARE]: [Species.APPLIN, Species.SINISTEA, Species.POLTCHAGEIST] }), [TrainerType.WORKER]: new TrainerConfig(++t).setHasGenders("Worker Female").setHasDouble("Workers").setEncounterBgm(TrainerType.CLERK).setMoneyMultiplier(1.7).setSpeciesFilter(s => s.isOfType(Type.ROCK) || s.isOfType(Type.STEEL)), [TrainerType.YOUNGSTER]: new TrainerConfig(++t).setMoneyMultiplier(0.5).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders("Lass", "lass").setHasDouble("Beginners").setPartyTemplates(trainerPartyTemplates.TWO_WEAKER) .setSpeciesPools( - [ Species.CATERPIE, Species.WEEDLE, Species.RATTATA, Species.SENTRET, Species.POOCHYENA, Species.ZIGZAGOON, Species.WURMPLE, Species.BIDOOF, Species.PATRAT, Species.LILLIPUP ] + [Species.CATERPIE, Species.WEEDLE, Species.RATTATA, Species.SENTRET, Species.POOCHYENA, Species.ZIGZAGOON, Species.WURMPLE, Species.BIDOOF, Species.PATRAT, Species.LILLIPUP] ), - [TrainerType.BROCK]: new TrainerConfig((t = TrainerType.BROCK)).initForGymLeader([ Species.GEODUDE, Species.ONIX ], Type.ROCK).setBattleBgm("battle_kanto_gym"), - [TrainerType.MISTY]: new TrainerConfig(++t).initForGymLeader([ Species.STARYU, Species.PSYDUCK ], Type.WATER).setBattleBgm("battle_kanto_gym"), - [TrainerType.LT_SURGE]: new TrainerConfig(++t).initForGymLeader([ Species.VOLTORB, Species.PIKACHU, Species.ELECTABUZZ ], Type.ELECTRIC).setBattleBgm("battle_kanto_gym"), - [TrainerType.ERIKA]: new TrainerConfig(++t).initForGymLeader([ Species.ODDISH, Species.BELLSPROUT, Species.TANGELA, Species.HOPPIP ], Type.GRASS).setBattleBgm("battle_kanto_gym"), - [TrainerType.JANINE]: new TrainerConfig(++t).initForGymLeader([ Species.VENONAT, Species.SPINARAK, Species.ZUBAT ], Type.POISON).setBattleBgm("battle_kanto_gym"), - [TrainerType.SABRINA]: new TrainerConfig(++t).initForGymLeader([ Species.ABRA, Species.MR_MIME, Species.ESPEON ], Type.PSYCHIC).setBattleBgm("battle_kanto_gym"), - [TrainerType.BLAINE]: new TrainerConfig(++t).initForGymLeader([ Species.GROWLITHE, Species.PONYTA, Species.MAGMAR ], Type.FIRE).setBattleBgm("battle_kanto_gym"), - [TrainerType.GIOVANNI]: new TrainerConfig(++t).initForGymLeader([ Species.SANDILE, Species.MURKROW, Species.NIDORAN_M, Species.NIDORAN_F ], Type.DARK).setBattleBgm("battle_kanto_gym"), - [TrainerType.FALKNER]: new TrainerConfig(++t).initForGymLeader([ Species.PIDGEY, Species.HOOTHOOT, Species.DODUO ], Type.FLYING).setBattleBgm("battle_johto_gym"), - [TrainerType.BUGSY]: new TrainerConfig(++t).initForGymLeader([ Species.SCYTHER, Species.HERACROSS, Species.SHUCKLE, Species.PINSIR ], Type.BUG).setBattleBgm("battle_johto_gym"), - [TrainerType.WHITNEY]: new TrainerConfig(++t).initForGymLeader([ Species.GIRAFARIG, Species.MILTANK ], Type.NORMAL).setBattleBgm("battle_johto_gym"), - [TrainerType.MORTY]: new TrainerConfig(++t).initForGymLeader([ Species.GASTLY, Species.MISDREAVUS, Species.SABLEYE ], Type.GHOST).setBattleBgm("battle_johto_gym"), - [TrainerType.CHUCK]: new TrainerConfig(++t).initForGymLeader([ Species.POLIWRATH, Species.MANKEY ], Type.FIGHTING).setBattleBgm("battle_johto_gym"), - [TrainerType.JASMINE]: new TrainerConfig(++t).initForGymLeader([ Species.MAGNEMITE, Species.STEELIX ], Type.STEEL).setBattleBgm("battle_johto_gym"), - [TrainerType.PRYCE]: new TrainerConfig(++t).initForGymLeader([ Species.SEEL, Species.SWINUB ], Type.ICE).setBattleBgm("battle_johto_gym"), - [TrainerType.CLAIR]: new TrainerConfig(++t).initForGymLeader([ Species.DRATINI, Species.HORSEA, Species.GYARADOS ], Type.DRAGON).setBattleBgm("battle_johto_gym"), - [TrainerType.ROXANNE]: new TrainerConfig(++t).initForGymLeader([ Species.GEODUDE, Species.NOSEPASS ], Type.ROCK).setBattleBgm("battle_hoenn_gym"), - [TrainerType.BRAWLY]: new TrainerConfig(++t).initForGymLeader([ Species.MACHOP, Species.MAKUHITA ], Type.FIGHTING).setBattleBgm("battle_hoenn_gym"), - [TrainerType.WATTSON]: new TrainerConfig(++t).initForGymLeader([ Species.MAGNEMITE, Species.VOLTORB, Species.ELECTRIKE ], Type.ELECTRIC).setBattleBgm("battle_hoenn_gym"), - [TrainerType.FLANNERY]: new TrainerConfig(++t).initForGymLeader([ Species.SLUGMA, Species.TORKOAL, Species.NUMEL ], Type.FIRE).setBattleBgm("battle_hoenn_gym"), - [TrainerType.NORMAN]: new TrainerConfig(++t).initForGymLeader([ Species.SLAKOTH, Species.SPINDA, Species.CHANSEY, Species.KANGASKHAN ], Type.NORMAL).setBattleBgm("battle_hoenn_gym"), - [TrainerType.WINONA]: new TrainerConfig(++t).initForGymLeader([ Species.SWABLU, Species.WINGULL, Species.TROPIUS, Species.SKARMORY ], Type.FLYING).setBattleBgm("battle_hoenn_gym"), - [TrainerType.TATE]: new TrainerConfig(++t).initForGymLeader([ Species.SOLROCK, Species.NATU, Species.CHIMECHO, Species.GALLADE ], Type.PSYCHIC).setBattleBgm("battle_hoenn_gym"), - [TrainerType.LIZA]: new TrainerConfig(++t).initForGymLeader([ Species.LUNATONE, Species.SPOINK, Species.BALTOY, Species.GARDEVOIR ], Type.PSYCHIC).setBattleBgm("battle_hoenn_gym"), - [TrainerType.JUAN]: new TrainerConfig(++t).initForGymLeader([ Species.HORSEA, Species.BARBOACH, Species.SPHEAL, Species.RELICANTH ], Type.WATER).setBattleBgm("battle_hoenn_gym"), - [TrainerType.ROARK]: new TrainerConfig(++t).initForGymLeader([ Species.CRANIDOS, Species.LARVITAR, Species.GEODUDE ], Type.ROCK).setBattleBgm("battle_sinnoh_gym"), - [TrainerType.GARDENIA]: new TrainerConfig(++t).initForGymLeader([ Species.ROSELIA, Species.TANGELA, Species.TURTWIG ], Type.GRASS).setBattleBgm("battle_sinnoh_gym"), - [TrainerType.MAYLENE]: new TrainerConfig(++t).initForGymLeader([ Species.LUCARIO, Species.MEDITITE, Species.CHIMCHAR ], Type.FIGHTING).setBattleBgm("battle_sinnoh_gym"), - [TrainerType.CRASHER_WAKE]: new TrainerConfig(++t).initForGymLeader([ Species.BUIZEL, Species.MAGIKARP, Species.PIPLUP ], Type.WATER).setBattleBgm("battle_sinnoh_gym"), - [TrainerType.FANTINA]: new TrainerConfig(++t).initForGymLeader([ Species.MISDREAVUS, Species.DRIFLOON, Species.SPIRITOMB ], Type.GHOST).setBattleBgm("battle_sinnoh_gym"), - [TrainerType.BYRON]: new TrainerConfig(++t).initForGymLeader([ Species.SHIELDON, Species.BRONZOR, Species.AGGRON ], Type.STEEL).setBattleBgm("battle_sinnoh_gym"), - [TrainerType.CANDICE]: new TrainerConfig(++t).initForGymLeader([ Species.SNEASEL, Species.SNOVER, Species.SNORUNT ], Type.ICE).setBattleBgm("battle_sinnoh_gym"), - [TrainerType.VOLKNER]: new TrainerConfig(++t).initForGymLeader([ Species.SHINX, Species.CHINCHOU, Species.ROTOM ], Type.ELECTRIC).setBattleBgm("battle_sinnoh_gym"), - [TrainerType.CILAN]: new TrainerConfig(++t).initForGymLeader([ Species.PANSAGE, Species.COTTONEE, Species.PETILIL ], Type.GRASS), - [TrainerType.CHILI]: new TrainerConfig(++t).initForGymLeader([ Species.PANSEAR, Species.DARUMAKA, Species.HEATMOR ], Type.FIRE), - [TrainerType.CRESS]: new TrainerConfig(++t).initForGymLeader([ Species.PANPOUR, Species.BASCULIN, Species.TYMPOLE ], Type.WATER), - [TrainerType.CHEREN]: new TrainerConfig(++t).initForGymLeader([ Species.LILLIPUP, Species.MINCCINO, Species.PATRAT ], Type.NORMAL), - [TrainerType.LENORA]: new TrainerConfig(++t).initForGymLeader([ Species.KANGASKHAN, Species.DEERLING, Species.AUDINO ], Type.NORMAL), - [TrainerType.ROXIE]: new TrainerConfig(++t).initForGymLeader([ Species.VENIPEDE, Species.TRUBBISH, Species.SKORUPI ], Type.POISON), - [TrainerType.BURGH]: new TrainerConfig(++t).initForGymLeader([ Species.SEWADDLE, Species.SHELMET, Species.KARRABLAST ], Type.BUG), - [TrainerType.ELESA]: new TrainerConfig(++t).initForGymLeader([ Species.EMOLGA, Species.BLITZLE, Species.JOLTIK ], Type.ELECTRIC), - [TrainerType.CLAY]: new TrainerConfig(++t).initForGymLeader([ Species.DRILBUR, Species.SANDILE, Species.GOLETT ], Type.GROUND), - [TrainerType.SKYLA]: new TrainerConfig(++t).initForGymLeader([ Species.DUCKLETT, Species.WOOBAT, Species.RUFFLET ], Type.FLYING), - [TrainerType.BRYCEN]: new TrainerConfig(++t).initForGymLeader([ Species.CRYOGONAL, Species.VANILLITE, Species.CUBCHOO ], Type.ICE), - [TrainerType.DRAYDEN]: new TrainerConfig(++t).initForGymLeader([ Species.DRUDDIGON, Species.AXEW, Species.DEINO ], Type.DRAGON), - [TrainerType.MARLON]: new TrainerConfig(++t).initForGymLeader([ Species.WAILMER, Species.FRILLISH, Species.TIRTOUGA ], Type.WATER), - [TrainerType.VIOLA]: new TrainerConfig(++t).initForGymLeader([ Species.SURSKIT, Species.SCATTERBUG ], Type.BUG), - [TrainerType.GRANT]: new TrainerConfig(++t).initForGymLeader([ Species.AMAURA, Species.TYRUNT ], Type.ROCK), - [TrainerType.KORRINA]: new TrainerConfig(++t).initForGymLeader([ Species.HAWLUCHA, Species.LUCARIO, Species.MIENFOO ], Type.FIGHTING), - [TrainerType.RAMOS]: new TrainerConfig(++t).initForGymLeader([ Species.SKIDDO, Species.HOPPIP, Species.BELLSPROUT ], Type.GRASS), - [TrainerType.CLEMONT]: new TrainerConfig(++t).initForGymLeader([ Species.HELIOPTILE, Species.MAGNEMITE, Species.EMOLGA ], Type.ELECTRIC), - [TrainerType.VALERIE]: new TrainerConfig(++t).initForGymLeader([ Species.SYLVEON, Species.MAWILE, Species.MR_MIME ], Type.FAIRY), - [TrainerType.OLYMPIA]: new TrainerConfig(++t).initForGymLeader([ Species.ESPURR, Species.SIGILYPH, Species.SLOWKING ], Type.PSYCHIC), - [TrainerType.WULFRIC]: new TrainerConfig(++t).initForGymLeader([ Species.BERGMITE, Species.SNOVER, Species.CRYOGONAL ], Type.ICE), - [TrainerType.MILO]: new TrainerConfig(++t).initForGymLeader([ Species.GOSSIFLEUR, Species.APPLIN, Species.BOUNSWEET ], Type.GRASS), - [TrainerType.NESSA]: new TrainerConfig(++t).setName("Nessa").initForGymLeader([ Species.CHEWTLE, Species.ARROKUDA, Species.WIMPOD ], Type.WATER), - [TrainerType.KABU]: new TrainerConfig(++t).initForGymLeader([ Species.SIZZLIPEDE, Species.VULPIX, Species.TORKOAL ], Type.FIRE), - [TrainerType.BEA]: new TrainerConfig(++t).setName("Bea").initForGymLeader([ Species.GALAR_FARFETCHD, Species.MACHOP, Species.CLOBBOPUS ], Type.FIGHTING), - [TrainerType.ALLISTER]: new TrainerConfig(++t).setName("Allister").initForGymLeader([ Species.GALAR_YAMASK, Species.GALAR_CORSOLA, Species.GASTLY ], Type.GHOST), - [TrainerType.OPAL]: new TrainerConfig(++t).initForGymLeader([ Species.MILCERY, Species.TOGETIC, Species.GALAR_WEEZING ], Type.FAIRY), - [TrainerType.BEDE]: new TrainerConfig(++t).initForGymLeader([ Species.HATENNA, Species.GALAR_PONYTA, Species.GARDEVOIR ], Type.FAIRY), - [TrainerType.GORDIE]: new TrainerConfig(++t).initForGymLeader([ Species.ROLYCOLY, Species.STONJOURNER, Species.BINACLE ], Type.ROCK), - [TrainerType.MELONY]: new TrainerConfig(++t).initForGymLeader([ Species.SNOM, Species.GALAR_DARUMAKA, Species.GALAR_MR_MIME ], Type.ICE), - [TrainerType.PIERS]: new TrainerConfig(++t).initForGymLeader([ Species.GALAR_ZIGZAGOON, Species.SCRAGGY, Species.INKAY ], Type.DARK), - [TrainerType.MARNIE]: new TrainerConfig(++t).setName("Marnie").initForGymLeader([ Species.IMPIDIMP, Species.PURRLOIN, Species.MORPEKO ], Type.DARK), - [TrainerType.RAIHAN]: new TrainerConfig(++t).setName("Raihan").initForGymLeader([ Species.DURALUDON, Species.TURTONATOR, Species.GOOMY ], Type.DRAGON), - [TrainerType.KATY]: new TrainerConfig(++t).initForGymLeader([ Species.NYMBLE, Species.TAROUNTULA, Species.HERACROSS ], Type.BUG), - [TrainerType.BRASSIUS]: new TrainerConfig(++t).initForGymLeader([ Species.SMOLIV, Species.SHROOMISH, Species.ODDISH ], Type.GRASS), - [TrainerType.IONO]: new TrainerConfig(++t).initForGymLeader([ Species.TADBULB, Species.WATTREL, Species.VOLTORB ], Type.ELECTRIC), - [TrainerType.KOFU]: new TrainerConfig(++t).initForGymLeader([ Species.VELUZA, Species.WIGLETT, Species.WINGULL ], Type.WATER), - [TrainerType.LARRY]: new TrainerConfig(++t).setName("Larry").initForGymLeader([ Species.STARLY, Species.DUNSPARCE, Species.KOMALA ], Type.NORMAL), - [TrainerType.RYME]: new TrainerConfig(++t).initForGymLeader([ Species.GREAVARD, Species.SHUPPET, Species.MIMIKYU ], Type.GHOST), - [TrainerType.TULIP]: new TrainerConfig(++t).initForGymLeader([ Species.GIRAFARIG, Species.FLITTLE, Species.RALTS ], Type.PSYCHIC), - [TrainerType.GRUSHA]: new TrainerConfig(++t).initForGymLeader([ Species.CETODDLE, Species.ALOLA_VULPIX, Species.CUBCHOO ], Type.ICE), + [TrainerType.BROCK]: new TrainerConfig((t = TrainerType.BROCK)).initForGymLeader(signatureSpecies["BROCK"], Type.ROCK).setBattleBgm("battle_kanto_gym"), + [TrainerType.MISTY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MISTY"], Type.WATER).setBattleBgm("battle_kanto_gym"), + [TrainerType.LT_SURGE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LT_SURGE"], Type.ELECTRIC).setBattleBgm("battle_kanto_gym"), + [TrainerType.ERIKA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ERIKA"], Type.GRASS).setBattleBgm("battle_kanto_gym"), + [TrainerType.JANINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JANINE"], Type.POISON).setBattleBgm("battle_kanto_gym"), + [TrainerType.SABRINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["SABRINA"], Type.PSYCHIC).setBattleBgm("battle_kanto_gym"), + [TrainerType.BLAINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BLAINE"], Type.FIRE).setBattleBgm("battle_kanto_gym"), + [TrainerType.GIOVANNI]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GIOVANNI"], Type.DARK).setBattleBgm("battle_kanto_gym"), + [TrainerType.FALKNER]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FALKNER"], Type.FLYING).setBattleBgm("battle_johto_gym"), + [TrainerType.BUGSY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BUGSY"], Type.BUG).setBattleBgm("battle_johto_gym"), + [TrainerType.WHITNEY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WHITNEY"], Type.NORMAL).setBattleBgm("battle_johto_gym"), + [TrainerType.MORTY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MORTY"], Type.GHOST).setBattleBgm("battle_johto_gym"), + [TrainerType.CHUCK]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHUCK"], Type.FIGHTING).setBattleBgm("battle_johto_gym"), + [TrainerType.JASMINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JASMINE"], Type.STEEL).setBattleBgm("battle_johto_gym"), + [TrainerType.PRYCE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["PRYCE"], Type.ICE).setBattleBgm("battle_johto_gym"), + [TrainerType.CLAIR]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLAIR"], Type.DRAGON).setBattleBgm("battle_johto_gym"), + [TrainerType.ROXANNE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROXANNE"], Type.ROCK).setBattleBgm("battle_hoenn_gym"), + [TrainerType.BRAWLY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRAWLY"], Type.FIGHTING).setBattleBgm("battle_hoenn_gym"), + [TrainerType.WATTSON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WATTSON"], Type.ELECTRIC).setBattleBgm("battle_hoenn_gym"), + [TrainerType.FLANNERY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FLANNERY"], Type.FIRE).setBattleBgm("battle_hoenn_gym"), + [TrainerType.NORMAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["NORMAN"], Type.NORMAL).setBattleBgm("battle_hoenn_gym"), + [TrainerType.WINONA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WINONA"], Type.FLYING).setBattleBgm("battle_hoenn_gym"), + [TrainerType.TATE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["TATE"], Type.PSYCHIC).setBattleBgm("battle_hoenn_gym").setHasDouble("tate_liza_double").setDoubleTrainerType(TrainerType.LIZA).setDoubleTitle("gym_leader_double"), + [TrainerType.LIZA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LIZA"], Type.PSYCHIC).setBattleBgm("battle_hoenn_gym").setHasDouble("liza_tate_double").setDoubleTrainerType(TrainerType.TATE).setDoubleTitle("gym_leader_double"), + [TrainerType.JUAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JUAN"], Type.WATER).setBattleBgm("battle_hoenn_gym"), + [TrainerType.ROARK]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROARK"], Type.ROCK).setBattleBgm("battle_sinnoh_gym"), + [TrainerType.GARDENIA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GARDENIA"], Type.GRASS).setBattleBgm("battle_sinnoh_gym"), + [TrainerType.MAYLENE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MAYLENE"], Type.FIGHTING).setBattleBgm("battle_sinnoh_gym"), + [TrainerType.CRASHER_WAKE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CRASHER_WAKE"], Type.WATER).setBattleBgm("battle_sinnoh_gym"), + [TrainerType.FANTINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FANTINA"], Type.GHOST).setBattleBgm("battle_sinnoh_gym"), + [TrainerType.BYRON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BYRON"], Type.STEEL).setBattleBgm("battle_sinnoh_gym"), + [TrainerType.CANDICE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CANDICE"], Type.ICE).setBattleBgm("battle_sinnoh_gym"), + [TrainerType.VOLKNER]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VOLKNER"], Type.ELECTRIC).setBattleBgm("battle_sinnoh_gym"), + [TrainerType.CILAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CILAN"], Type.GRASS), + [TrainerType.CHILI]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHILI"], Type.FIRE), + [TrainerType.CRESS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CRESS"], Type.WATER), + [TrainerType.CHEREN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHEREN"], Type.NORMAL), + [TrainerType.LENORA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LENORA"], Type.NORMAL), + [TrainerType.ROXIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROXIE"], Type.POISON), + [TrainerType.BURGH]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BURGH"], Type.BUG), + [TrainerType.ELESA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ELESA"], Type.ELECTRIC), + [TrainerType.CLAY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLAY"], Type.GROUND), + [TrainerType.SKYLA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["SKYLA"], Type.FLYING), + [TrainerType.BRYCEN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRYCEN"], Type.ICE), + [TrainerType.DRAYDEN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["DRAYDEN"], Type.DRAGON), + [TrainerType.MARLON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MARLON"], Type.WATER), + [TrainerType.VIOLA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VIOLA"], Type.BUG), + [TrainerType.GRANT]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GRANT"], Type.ROCK), + [TrainerType.KORRINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KORRINA"], Type.FIGHTING), + [TrainerType.RAMOS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["RAMOS"], Type.GRASS), + [TrainerType.CLEMONT]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLEMONT"], Type.ELECTRIC), + [TrainerType.VALERIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VALERIE"], Type.FAIRY), + [TrainerType.OLYMPIA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["OLYMPIA"], Type.PSYCHIC), + [TrainerType.WULFRIC]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WULFRIC"], Type.ICE), + [TrainerType.MILO]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MILO"], Type.GRASS), + [TrainerType.NESSA]: new TrainerConfig(++t).setName("Nessa").initForGymLeader(signatureSpecies["NESSA"], Type.WATER), + [TrainerType.KABU]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KABU"], Type.FIRE), + [TrainerType.BEA]: new TrainerConfig(++t).setName("Bea").initForGymLeader(signatureSpecies["BEA"], Type.FIGHTING), + [TrainerType.ALLISTER]: new TrainerConfig(++t).setName("Allister").initForGymLeader(signatureSpecies["ALLISTER"], Type.GHOST), + [TrainerType.OPAL]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["OPAL"], Type.FAIRY), + [TrainerType.BEDE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BEDE"], Type.FAIRY), + [TrainerType.GORDIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GORDIE"], Type.ROCK), + [TrainerType.MELONY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MELONY"], Type.ICE), + [TrainerType.PIERS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["PIERS"], Type.DARK).setHasDouble("piers_marnie_double").setDoubleTrainerType(TrainerType.MARNIE).setDoubleTitle("gym_leader_double"), + [TrainerType.MARNIE]: new TrainerConfig(++t).setName("Marnie").initForGymLeader(signatureSpecies["MARNIE"], Type.DARK).setHasDouble("marnie_piers_double").setDoubleTrainerType(TrainerType.PIERS).setDoubleTitle("gym_leader_double"), + [TrainerType.RAIHAN]: new TrainerConfig(++t).setName("Raihan").initForGymLeader(signatureSpecies["RAIHAN"], Type.DRAGON), + [TrainerType.KATY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KATY"], Type.BUG), + [TrainerType.BRASSIUS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRASSIUS"], Type.GRASS), + [TrainerType.IONO]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["IONO"], Type.ELECTRIC), + [TrainerType.KOFU]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KOFU"], Type.WATER), + [TrainerType.LARRY]: new TrainerConfig(++t).setName("Larry").initForGymLeader(signatureSpecies["LARRY"], Type.NORMAL), + [TrainerType.RYME]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["RYME"], Type.GHOST), + [TrainerType.TULIP]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["TULIP"], Type.PSYCHIC), + [TrainerType.GRUSHA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GRUSHA"], Type.ICE), - [TrainerType.LORELEI]: new TrainerConfig((t = TrainerType.LORELEI)).initForEliteFour([ Species.SLOWBRO, Species.LAPRAS, Species.DEWGONG, Species.ALOLA_SANDSLASH ], Type.ICE), - [TrainerType.BRUNO]: new TrainerConfig(++t).initForEliteFour([ Species.ONIX, Species.HITMONCHAN, Species.HITMONLEE, Species.ALOLA_GOLEM ], Type.FIGHTING), - [TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour([ Species.GENGAR, Species.ARBOK, Species.CROBAT, Species.ALOLA_MAROWAK ], Type.GHOST), - [TrainerType.LANCE]: new TrainerConfig(++t).setName("Lance").initForEliteFour([ Species.DRAGONITE, Species.GYARADOS, Species.AERODACTYL, Species.ALOLA_EXEGGUTOR ], Type.DRAGON), - [TrainerType.WILL]: new TrainerConfig(++t).initForEliteFour([ Species.XATU, Species.JYNX, Species.SLOWBRO, Species.EXEGGUTOR ], Type.PSYCHIC), - [TrainerType.KOGA]: new TrainerConfig(++t).initForEliteFour([ Species.WEEZING, Species.VENOMOTH, Species.CROBAT, Species.TENTACRUEL ], Type.POISON), - [TrainerType.KAREN]: new TrainerConfig(++t).initForEliteFour([ Species.UMBREON, Species.HONCHKROW, Species.HOUNDOOM, Species.WEAVILE ], Type.DARK), - [TrainerType.SIDNEY]: new TrainerConfig(++t).initForEliteFour([ Species.SHIFTRY, Species.SHARPEDO, Species.ABSOL, Species.ZOROARK ], Type.DARK), - [TrainerType.PHOEBE]: new TrainerConfig(++t).initForEliteFour([ Species.SABLEYE, Species.DUSKNOIR, Species.BANETTE, Species.CHANDELURE ], Type.GHOST), - [TrainerType.GLACIA]: new TrainerConfig(++t).initForEliteFour([ Species.GLALIE, Species.WALREIN, Species.FROSLASS, Species.ABOMASNOW ], Type.ICE), - [TrainerType.DRAKE]: new TrainerConfig(++t).initForEliteFour([ Species.ALTARIA, Species.SALAMENCE, Species.FLYGON, Species.KINGDRA ], Type.DRAGON), - [TrainerType.AARON]: new TrainerConfig(++t).initForEliteFour([ Species.SCIZOR, Species.HERACROSS, Species.VESPIQUEN, Species.DRAPION ], Type.BUG), - [TrainerType.BERTHA]: new TrainerConfig(++t).initForEliteFour([ Species.WHISCASH, Species.HIPPOWDON, Species.GLISCOR, Species.RHYPERIOR ], Type.GROUND), - [TrainerType.FLINT]: new TrainerConfig(++t).initForEliteFour([ Species.FLAREON, Species.HOUNDOOM, Species.RAPIDASH, Species.INFERNAPE ], Type.FIRE), - [TrainerType.LUCIAN]: new TrainerConfig(++t).initForEliteFour([ Species.MR_MIME, Species.GALLADE, Species.BRONZONG, Species.ALAKAZAM ], Type.PSYCHIC), - [TrainerType.SHAUNTAL]: new TrainerConfig(++t).initForEliteFour([ Species.COFAGRIGUS, Species.CHANDELURE, Species.GOLURK, Species.DRIFBLIM ], Type.GHOST), - [TrainerType.MARSHAL]: new TrainerConfig(++t).initForEliteFour([ Species.TIMBURR, Species.MIENFOO, Species.THROH, Species.SAWK ], Type.FIGHTING), - [TrainerType.GRIMSLEY]: new TrainerConfig(++t).initForEliteFour([ Species.LIEPARD, Species.KINGAMBIT, Species.SCRAFTY, Species.KROOKODILE ], Type.DARK), - [TrainerType.CAITLIN]: new TrainerConfig(++t).initForEliteFour([ Species.MUSHARNA, Species.GOTHITELLE, Species.SIGILYPH, Species.REUNICLUS ], Type.PSYCHIC), - [TrainerType.MALVA]: new TrainerConfig(++t).initForEliteFour([ Species.PYROAR, Species.TORKOAL, Species.CHANDELURE, Species.TALONFLAME ], Type.FIRE), - [TrainerType.SIEBOLD]: new TrainerConfig(++t).initForEliteFour([ Species.CLAWITZER, Species.GYARADOS, Species.BARBARACLE, Species.STARMIE ], Type.WATER), - [TrainerType.WIKSTROM]: new TrainerConfig(++t).initForEliteFour([ Species.KLEFKI, Species.PROBOPASS, Species.SCIZOR, Species.AEGISLASH ], Type.STEEL), - [TrainerType.DRASNA]: new TrainerConfig(++t).initForEliteFour([ Species.DRAGALGE, Species.DRUDDIGON, Species.ALTARIA, Species.NOIVERN ], Type.DRAGON), - [TrainerType.HALA]: new TrainerConfig(++t).initForEliteFour([ Species.HARIYAMA, Species.BEWEAR, Species.CRABOMINABLE, Species.POLIWRATH ], Type.FIGHTING), - [TrainerType.MOLAYNE]: new TrainerConfig(++t).initForEliteFour([ Species.KLEFKI, Species.MAGNEZONE, Species.METAGROSS, Species.ALOLA_DUGTRIO ], Type.STEEL), - [TrainerType.OLIVIA]: new TrainerConfig(++t).initForEliteFour([ Species.ARMALDO, Species.CRADILY, Species.ALOLA_GOLEM, Species.LYCANROC ], Type.ROCK), - [TrainerType.ACEROLA]: new TrainerConfig(++t).initForEliteFour([ Species.BANETTE, Species.DRIFBLIM, Species.DHELMISE, Species.PALOSSAND ], Type.GHOST), - [TrainerType.KAHILI]: new TrainerConfig(++t).initForEliteFour([ Species.BRAVIARY, Species.HAWLUCHA, Species.ORICORIO, Species.TOUCANNON ], Type.FLYING), - [TrainerType.MARNIE_ELITE]: new TrainerConfig(++t).setName("Marnie").initForEliteFour([ Species.MORPEKO, Species.LIEPARD, Species.TOXICROAK,Species.SCRAFTY, Species.GRIMMSNARL], Type.DARK), - [TrainerType.NESSA_ELITE]: new TrainerConfig(++t).setName("Nessa").initForEliteFour([ Species.GOLISOPOD,Species.PELIPPER,Species.QUAGSIRE,Species.TOXAPEX,Species.DREDNAW], Type.WATER), - [TrainerType.BEA_ELITE]: new TrainerConfig(++t).setName("Bea").initForEliteFour([ Species.HAWLUCHA,Species.GRAPPLOCT,Species.SIRFETCHD,Species.FALINKS,Species.MACHAMP], Type.FIGHTING), - [TrainerType.ALLISTER_ELITE]: new TrainerConfig(++t).setName("Allister").initForEliteFour([ Species.DUSKNOIR,Species.CHANDELURE,Species.CURSOLA,Species.RUNERIGUS,Species.GENGAR], Type.GHOST), - [TrainerType.RAIHAN_ELITE]: new TrainerConfig(++t).setName("Raihan").initForEliteFour([ Species.TORKOAL,Species.GOODRA,Species.TURTONATOR,Species.FLYGON,Species.DURALUDON], Type.DRAGON), - [TrainerType.RIKA]: new TrainerConfig(++t).initForEliteFour([ Species. WHISCASH, Species.DONPHAN, Species.CAMERUPT, Species.CLODSIRE ], Type.GROUND), - [TrainerType.POPPY]: new TrainerConfig(++t).initForEliteFour([ Species.COPPERAJAH, Species.BRONZONG, Species.CORVIKNIGHT, Species.TINKATON ], Type.STEEL), - [TrainerType.LARRY_ELITE]: new TrainerConfig(++t).setName("Larry").initForEliteFour([ Species.STARAPTOR, Species.FLAMIGO, Species.ALTARIA, Species.TROPIUS ], Type.NORMAL, Type.FLYING), - [TrainerType.HASSEL]: new TrainerConfig(++t).initForEliteFour([ Species.NOIVERN, Species.HAXORUS, Species.DRAGALGE, Species.BAXCALIBUR ], Type.DRAGON), - [TrainerType.CRISPIN]: new TrainerConfig(++t).initForEliteFour([ Species.TALONFLAME, Species.CAMERUPT, Species.MAGMORTAR, Species.BLAZIKEN ], Type.FIRE), - [TrainerType.AMARYS]: new TrainerConfig(++t).initForEliteFour([ Species.SKARMORY, Species.EMPOLEON, Species.SCIZOR, Species.METAGROSS ], Type.STEEL), - [TrainerType.LACEY]: new TrainerConfig(++t).initForEliteFour([ Species.EXCADRILL, Species.PRIMARINA, Species.ALCREMIE, Species.GALAR_SLOWBRO ], Type.FAIRY), - [TrainerType.DRAYTON]: new TrainerConfig(++t).initForEliteFour([ Species.DRAGONITE, Species.ARCHALUDON, Species.FLYGON, Species.SCEPTILE ], Type.DRAGON), + [TrainerType.LORELEI]: new TrainerConfig((t = TrainerType.LORELEI)).initForEliteFour(signatureSpecies["LORELEI"], Type.ICE), + [TrainerType.BRUNO]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["BRUNO"], Type.FIGHTING), + [TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AGATHA"], Type.GHOST), + [TrainerType.LANCE]: new TrainerConfig(++t).setName("Lance").initForEliteFour(signatureSpecies["LANCE"], Type.DRAGON), + [TrainerType.WILL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["WILL"], Type.PSYCHIC), + [TrainerType.KOGA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KOGA"], Type.POISON), + [TrainerType.KAREN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KAREN"], Type.DARK), + [TrainerType.SIDNEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SIDNEY"], Type.DARK), + [TrainerType.PHOEBE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["PHOEBE"], Type.GHOST), + [TrainerType.GLACIA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["GLACIA"], Type.ICE), + [TrainerType.DRAKE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRAKE"], Type.DRAGON), + [TrainerType.AARON]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AARON"], Type.BUG), + [TrainerType.BERTHA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["BERTHA"], Type.GROUND), + [TrainerType.FLINT]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["FLINT"], Type.FIRE), + [TrainerType.LUCIAN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["LUCIAN"], Type.PSYCHIC), + [TrainerType.SHAUNTAL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SHAUNTAL"], Type.GHOST), + [TrainerType.MARSHAL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MARSHAL"], Type.FIGHTING), + [TrainerType.GRIMSLEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["GRIMSLEY"], Type.DARK), + [TrainerType.CAITLIN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["CAITLIN"], Type.PSYCHIC), + [TrainerType.MALVA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MALVA"], Type.FIRE), + [TrainerType.SIEBOLD]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SIEBOLD"], Type.WATER), + [TrainerType.WIKSTROM]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["WIKSTROM"], Type.STEEL), + [TrainerType.DRASNA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRASNA"], Type.DRAGON), + [TrainerType.HALA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["HALA"], Type.FIGHTING), + [TrainerType.MOLAYNE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MOLAYNE"], Type.STEEL), + [TrainerType.OLIVIA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["OLIVIA"], Type.ROCK), + [TrainerType.ACEROLA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["ACEROLA"], Type.GHOST), + [TrainerType.KAHILI]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KAHILI"], Type.FLYING), + [TrainerType.MARNIE_ELITE]: new TrainerConfig(++t).setName("Marnie").initForEliteFour(signatureSpecies["MARNIE_ELITE"], Type.DARK), + [TrainerType.NESSA_ELITE]: new TrainerConfig(++t).setName("Nessa").initForEliteFour(signatureSpecies["NESSA_ELITE"], Type.WATER), + [TrainerType.BEA_ELITE]: new TrainerConfig(++t).setName("Bea").initForEliteFour(signatureSpecies["BEA_ELITE"], Type.FIGHTING), + [TrainerType.ALLISTER_ELITE]: new TrainerConfig(++t).setName("Allister").initForEliteFour(signatureSpecies["ALLISTER_ELITE"], Type.GHOST), + [TrainerType.RAIHAN_ELITE]: new TrainerConfig(++t).setName("Raihan").initForEliteFour(signatureSpecies["RAIHAN_ELITE"], Type.DRAGON), + [TrainerType.RIKA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["RIKA"], Type.GROUND), + [TrainerType.POPPY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["POPPY"], Type.STEEL), + [TrainerType.LARRY_ELITE]: new TrainerConfig(++t).setName("Larry").initForEliteFour(signatureSpecies["LARRY_ELITE"], Type.NORMAL, Type.FLYING), + [TrainerType.HASSEL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["HASSEL"], Type.DRAGON), + [TrainerType.CRISPIN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["CRISPIN"], Type.FIRE), + [TrainerType.AMARYS]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AMARYS"], Type.STEEL), + [TrainerType.LACEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["LACEY"], Type.FAIRY), + [TrainerType.DRAYTON]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRAYTON"], Type.DRAGON), - [TrainerType.BLUE]: new TrainerConfig((t = TrainerType.BLUE)).initForChampion([ Species.GYARADOS, Species.MEWTWO, Species.ARCANINE, Species.ALAKAZAM, Species.PIDGEOT ]).setBattleBgm("battle_kanto_champion"), - [TrainerType.RED]: new TrainerConfig(++t).initForChampion([ Species.CHARIZARD, [ Species.LUGIA, Species.HO_OH ], Species.SNORLAX, Species.RAICHU, Species.ESPEON ]).setBattleBgm("battle_johto_champion"), - [TrainerType.LANCE_CHAMPION]: new TrainerConfig(++t).setName("Lance").initForChampion([ Species.DRAGONITE, Species.ZYGARDE, Species.AERODACTYL, Species.KINGDRA, Species.ALOLA_EXEGGUTOR ]).setBattleBgm("battle_johto_champion"), - [TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion([ Species.METAGROSS, [ Species.DIALGA, Species.PALKIA ], Species.SKARMORY, Species.AGGRON, Species.CARBINK ]).setBattleBgm("battle_hoenn_champion"), - [TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion([ Species.MILOTIC, Species.KYOGRE, Species.WHISCASH, Species.WALREIN, Species.LUDICOLO ]).setBattleBgm("battle_hoenn_champion"), - [TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion([ Species.SPIRITOMB, Species.GIRATINA, Species.GARCHOMP, Species.MILOTIC, Species.LUCARIO, Species.TOGEKISS ]).setBattleBgm("battle_sinnoh_champion"), - [TrainerType.ALDER]: new TrainerConfig(++t).initForChampion([ Species.VOLCARONA, Species.GROUDON, Species.BOUFFALANT, Species.ACCELGOR, Species.CONKELDURR ]), - [TrainerType.IRIS]: new TrainerConfig(++t).initForChampion([ Species.HAXORUS, Species.YVELTAL, Species.DRUDDIGON, Species.ARON, Species.LAPRAS ]).setBattleBgm("battle_champion_iris"), - [TrainerType.DIANTHA]: new TrainerConfig(++t).initForChampion([ Species.HAWLUCHA, Species.XERNEAS, Species.GOURGEIST, Species.GOODRA, Species.GARDEVOIR ]), - [TrainerType.HAU]: new TrainerConfig(++t).initForChampion([ Species.ALOLA_RAICHU, [ Species.SOLGALEO, Species.LUNALA ], Species.NOIVERN, [ Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA ], Species.CRABOMINABLE ]), - [TrainerType.GEETA]: new TrainerConfig(++t).initForChampion([ Species.GLIMMORA, Species.MIRAIDON, Species.ESPATHRA, Species.VELUZA, Species.KINGAMBIT ]), - [TrainerType.NEMONA]: new TrainerConfig(++t).initForChampion([ Species.LYCANROC, Species.KORAIDON, Species.KOMMO_O, Species.PAWMOT, Species.DUSKNOIR ]), - [TrainerType.KIERAN]: new TrainerConfig(++t).initForChampion([ Species.POLITOED, [ Species.OGERPON, Species.TERAPAGOS ], Species.HYDRAPPLE, Species.PORYGON_Z, Species.GRIMMSNARL ]), - [TrainerType.LEON]: new TrainerConfig(++t).initForChampion([ Species.DRAGAPULT, [ Species.ZACIAN, Species.ZAMAZENTA ], Species.SEISMITOAD, Species.AEGISLASH, Species.CHARIZARD ]), + [TrainerType.BLUE]: new TrainerConfig((t = TrainerType.BLUE)).initForChampion(signatureSpecies["BLUE"]).setBattleBgm("battle_kanto_champion").setHasDouble("blue_red_double").setDoubleTrainerType(TrainerType.RED).setDoubleTitle("champion_double"), + [TrainerType.RED]: new TrainerConfig(++t).initForChampion(signatureSpecies["RED"]).setBattleBgm("battle_johto_champion").setHasDouble("red_blue_double").setDoubleTrainerType(TrainerType.BLUE).setDoubleTitle("champion_double"), + [TrainerType.LANCE_CHAMPION]: new TrainerConfig(++t).setName("Lance").initForChampion(signatureSpecies["LANCE_CHAMPION"]).setBattleBgm("battle_johto_champion"), + [TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion(signatureSpecies["STEVEN"]).setBattleBgm("battle_hoenn_champion").setHasDouble("steven_wallace_double").setDoubleTrainerType(TrainerType.WALLACE).setDoubleTitle("champion_double"), + [TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion(signatureSpecies["WALLACE"]).setBattleBgm("battle_hoenn_champion").setHasDouble("wallace_steven_double").setDoubleTrainerType(TrainerType.STEVEN).setDoubleTitle("champion_double"), + [TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion(signatureSpecies["CYNTHIA"]).setBattleBgm("battle_sinnoh_champion"), + [TrainerType.ALDER]: new TrainerConfig(++t).initForChampion(signatureSpecies["ALDER"]).setHasDouble("alder_iris_double").setDoubleTrainerType(TrainerType.IRIS).setDoubleTitle("champion_double").setBattleBgm("battle_unova_champion"), + [TrainerType.IRIS]: new TrainerConfig(++t).initForChampion(signatureSpecies["IRIS"]).setBattleBgm("battle_champion_iris").setHasDouble("iris_alder_double").setDoubleTrainerType(TrainerType.ALDER).setDoubleTitle("champion_double"), + [TrainerType.DIANTHA]: new TrainerConfig(++t).initForChampion(signatureSpecies["DIANTHA"]), + [TrainerType.HAU]: new TrainerConfig(++t).initForChampion(signatureSpecies["HAU"]), + [TrainerType.GEETA]: new TrainerConfig(++t).initForChampion(signatureSpecies["GEETA"]), + [TrainerType.NEMONA]: new TrainerConfig(++t).initForChampion(signatureSpecies["NEMONA"]), + [TrainerType.KIERAN]: new TrainerConfig(++t).initForChampion(signatureSpecies["KIERAN"]), + [TrainerType.LEON]: new TrainerConfig(++t).initForChampion(signatureSpecies["LEON"]), [TrainerType.RIVAL]: new TrainerConfig((t = TrainerType.RIVAL)).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL) .setModifierRewardFuncs(() => modifierTypes.SUPER_EXP_CHARM, () => modifierTypes.EXP_SHARE) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE, Species.CHIKORITA, Species.CYNDAQUIL, Species.TOTODILE, Species.TREECKO, Species.TORCHIC, Species.MUDKIP, Species.TURTWIG, Species.CHIMCHAR, Species.PIPLUP, Species.SNIVY, Species.TEPIG, Species.OSHAWOTT, Species.CHESPIN, Species.FENNEKIN, Species.FROAKIE, Species.ROWLET, Species.LITTEN, Species.POPPLIO, Species.GROOKEY, Species.SCORBUNNY, Species.SOBBLE, Species.SPRIGATITO, Species.FUECOCO, Species.QUAXLY ], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEY, Species.HOOTHOOT, Species.TAILLOW, Species.STARLY, Species.PIDOVE, Species.FLETCHLING, Species.PIKIPEK, Species.ROOKIDEE, Species.WATTREL ], TrainerSlot.TRAINER, true)), + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE, Species.CHIKORITA, Species.CYNDAQUIL, Species.TOTODILE, Species.TREECKO, Species.TORCHIC, Species.MUDKIP, Species.TURTWIG, Species.CHIMCHAR, Species.PIPLUP, Species.SNIVY, Species.TEPIG, Species.OSHAWOTT, Species.CHESPIN, Species.FENNEKIN, Species.FROAKIE, Species.ROWLET, Species.LITTEN, Species.POPPLIO, Species.GROOKEY, Species.SCORBUNNY, Species.SOBBLE, Species.SPRIGATITO, Species.FUECOCO, Species.QUAXLY], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEY, Species.HOOTHOOT, Species.TAILLOW, Species.STARLY, Species.PIDOVE, Species.FLETCHLING, Species.PIKIPEK, Species.ROOKIDEE, Species.WATTREL], TrainerSlot.TRAINER, true)), [TrainerType.RIVAL_2]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setMoneyMultiplier(1.25).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL_2) .setModifierRewardFuncs(() => modifierTypes.EXP_SHARE) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.IVYSAUR, Species.CHARMELEON, Species.WARTORTLE, Species.BAYLEEF, Species.QUILAVA, Species.CROCONAW, Species.GROVYLE, Species.COMBUSKEN, Species.MARSHTOMP, Species.GROTLE, Species.MONFERNO, Species.PRINPLUP, Species.SERVINE, Species.PIGNITE, Species.DEWOTT, Species.QUILLADIN, Species.BRAIXEN, Species.FROGADIER, Species.DARTRIX, Species.TORRACAT, Species.BRIONNE, Species.THWACKEY, Species.RABOOT, Species.DRIZZILE, Species.FLORAGATO, Species.CROCALOR, Species.QUAXWELL ], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOTTO, Species.HOOTHOOT, Species.TAILLOW, Species.STARAVIA, Species.TRANQUILL, Species.FLETCHINDER, Species.TRUMBEAK, Species.CORVISQUIRE, Species.WATTREL ], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.IVYSAUR, Species.CHARMELEON, Species.WARTORTLE, Species.BAYLEEF, Species.QUILAVA, Species.CROCONAW, Species.GROVYLE, Species.COMBUSKEN, Species.MARSHTOMP, Species.GROTLE, Species.MONFERNO, Species.PRINPLUP, Species.SERVINE, Species.PIGNITE, Species.DEWOTT, Species.QUILLADIN, Species.BRAIXEN, Species.FROGADIER, Species.DARTRIX, Species.TORRACAT, Species.BRIONNE, Species.THWACKEY, Species.RABOOT, Species.DRIZZILE, Species.FLORAGATO, Species.CROCALOR, Species.QUAXWELL], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOTTO, Species.HOOTHOOT, Species.TAILLOW, Species.STARAVIA, Species.TRANQUILL, Species.FLETCHINDER, Species.TRUMBEAK, Species.CORVISQUIRE, Species.WATTREL], TrainerSlot.TRAINER, true)) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)), [TrainerType.RIVAL_3]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL_3) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL ], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL ], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true)) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) .setSpeciesFilter(species => species.baseTotal >= 540), [TrainerType.RIVAL_4]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setBoss().setStaticParty().setMoneyMultiplier(1.75).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival_2").setPartyTemplates(trainerPartyTemplates.RIVAL_4) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL ], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL ], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true)) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) .setSpeciesFilter(species => species.baseTotal >= 540) .setGenModifiersFunc(party => { const starter = party[0]; - return [ modifierTypes.TERA_SHARD().generateType(null, [ starter.species.type1 ]).withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier ]; + return [modifierTypes.TERA_SHARD().generateType(null, [starter.species.type1]).withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier]; }), [TrainerType.RIVAL_5]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setBoss().setStaticParty().setMoneyMultiplier(2.25).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival_3").setPartyTemplates(trainerPartyTemplates.RIVAL_5) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL ], TrainerSlot.TRAINER, true, + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true, p => p.setBoss(true, 2))) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL ], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true)) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) .setSpeciesFilter(species => species.baseTotal >= 540) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.RAYQUAZA ], TrainerSlot.TRAINER, true, p => { + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.RAYQUAZA], TrainerSlot.TRAINER, true, p => { p.setBoss(true, 3); p.pokeball = PokeballType.MASTER_BALL; p.shiny = true; @@ -1045,22 +1244,22 @@ export const trainerConfigs: TrainerConfigs = { })) .setGenModifiersFunc(party => { const starter = party[0]; - return [ modifierTypes.TERA_SHARD().generateType(null, [ starter.species.type1 ]).withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier ]; + return [modifierTypes.TERA_SHARD().generateType(null, [starter.species.type1]).withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier]; }), [TrainerType.RIVAL_6]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setBoss().setStaticParty().setMoneyMultiplier(3).setEncounterBgm("final").setBattleBgm("battle_rival_3").setPartyTemplates(trainerPartyTemplates.RIVAL_6) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL ], TrainerSlot.TRAINER, true, + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true, p => { p.setBoss(true, 3); p.generateAndPopulateMoveset(); })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL ], TrainerSlot.TRAINER, true, + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true, p => { p.setBoss(true, 2); p.generateAndPopulateMoveset(); })) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) .setSpeciesFilter(species => species.baseTotal >= 540) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.RAYQUAZA ], TrainerSlot.TRAINER, true, p => { + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.RAYQUAZA], TrainerSlot.TRAINER, true, p => { p.setBoss(); p.generateAndPopulateMoveset(); p.pokeball = PokeballType.MASTER_BALL; @@ -1070,6 +1269,6 @@ export const trainerConfigs: TrainerConfigs = { })) .setGenModifiersFunc(party => { const starter = party[0]; - return [ modifierTypes.TERA_SHARD().generateType(null, [ starter.species.type1 ]).withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier ]; + return [modifierTypes.TERA_SHARD().generateType(null, [starter.species.type1]).withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier]; }), }; diff --git a/src/field/trainer.ts b/src/field/trainer.ts index 5aa3969ccb4..081bf6d8d18 100644 --- a/src/field/trainer.ts +++ b/src/field/trainer.ts @@ -1,21 +1,30 @@ import BattleScene from "../battle-scene"; -import { pokemonPrevolutions } from "../data/pokemon-evolutions"; -import PokemonSpecies, { getPokemonSpecies } from "../data/pokemon-species"; -import { TrainerConfig, TrainerPartyCompoundTemplate, TrainerPartyTemplate, TrainerPoolTier, TrainerSlot, trainerConfigs, trainerPartyTemplates } from "../data/trainer-config"; -import { PartyMemberStrength } from "../data/enums/party-member-strength"; -import { TrainerType } from "../data/enums/trainer-type"; -import { EnemyPokemon } from "./pokemon"; +import {pokemonPrevolutions} from "../data/pokemon-evolutions"; +import PokemonSpecies, {getPokemonSpecies} from "../data/pokemon-species"; +import { + TrainerConfig, + TrainerPartyCompoundTemplate, + TrainerPartyTemplate, + TrainerPoolTier, + TrainerSlot, + trainerConfigs, + trainerPartyTemplates, + signatureSpecies +} from "../data/trainer-config"; +import {PartyMemberStrength} from "../data/enums/party-member-strength"; +import {TrainerType} from "../data/enums/trainer-type"; +import {EnemyPokemon} from "./pokemon"; import * as Utils from "../utils"; -import { PersistentModifier } from "../modifier/modifier"; -import { trainerNamePools } from "../data/trainer-names"; -import { ArenaTagSide, ArenaTrapTag } from "#app/data/arena-tag"; +import {PersistentModifier} from "../modifier/modifier"; +import {trainerNamePools} from "../data/trainer-names"; +import {ArenaTagSide, ArenaTrapTag} from "#app/data/arena-tag"; import {getIsInitialized, initI18n} from "#app/plugins/i18n"; import i18next from "i18next"; export enum TrainerVariant { - DEFAULT, - FEMALE, - DOUBLE + DEFAULT, + FEMALE, + DOUBLE } export default class Trainer extends Phaser.GameObjects.Container { @@ -41,7 +50,7 @@ export default class Trainer extends Phaser.GameObjects.Container { if (partnerName) { this.partnerName = partnerName; } else { - [ this.name, this.partnerName ] = this.name.split(" & "); + [this.name, this.partnerName] = this.name.split(" & "); } } else { this.partnerName = partnerName || Utils.randSeedItem(Array.isArray(namePool[0]) ? namePool[1] : namePool); @@ -67,7 +76,7 @@ export default class Trainer extends Phaser.GameObjects.Container { const getSprite = (hasShadow?: boolean, forceFemale?: boolean) => { const ret = this.scene.addFieldSprite(0, 0, this.config.getSpriteKey(variant === TrainerVariant.FEMALE || forceFemale)); ret.setOrigin(0.5, 1); - ret.setPipeline(this.scene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], hasShadow: !!hasShadow }); + ret.setPipeline(this.scene.spritePipeline, {tone: [0.0, 0.0, 0.0, 0.0], hasShadow: !!hasShadow}); return ret; }; @@ -142,6 +151,11 @@ export default class Trainer extends Phaser.GameObjects.Container { } } + if (this.config.titleDouble && this.variant === TrainerVariant.DOUBLE && !this.config.doubleOnly) { + title = this.config.titleDouble; + name = i18next.t(`trainerNames:${this.config.nameDouble.toLowerCase().replace(/\s/g, "_")}`); + } + // Return the formatted name, including the title if it is set. return title ? `${title} ${name}` : name; } @@ -236,15 +250,19 @@ export default class Trainer extends Phaser.GameObjects.Container { const template = this.getPartyTemplate(); const strength: PartyMemberStrength = template.getStrength(index); - if (this.config.partyMemberFuncs.hasOwnProperty(index)) { - ret = this.config.partyMemberFuncs[index](this.scene, level, strength); - return; - } - if (this.config.partyMemberFuncs.hasOwnProperty(index - template.size)) { - ret = this.config.partyMemberFuncs[index - template.size](this.scene, level, template.getStrength(index)); - return; - } + // If the battle is not one of the named trainer doubles + if (!(this.config.trainerTypeDouble && this.isDouble() && !this.config.doubleOnly)) { + + if (this.config.partyMemberFuncs.hasOwnProperty(index)) { + ret = this.config.partyMemberFuncs[index](this.scene, level, strength); + return; + } + if (this.config.partyMemberFuncs.hasOwnProperty(index - template.size)) { + ret = this.config.partyMemberFuncs[index - template.size](this.scene, level, template.getStrength(index)); + return; + } + } let offset = 0; if (template instanceof TrainerPartyCompoundTemplate) { @@ -256,9 +274,65 @@ export default class Trainer extends Phaser.GameObjects.Container { } } - const species = template.isSameSpecies(index) && index > offset - ? getPokemonSpecies(battle.enemyParty[offset].species.getTrainerSpeciesForLevel(level, false, template.getStrength(offset))) - : this.genNewPartyMemberSpecies(level, strength); + // Create an empty species pool (which will be set to one of the species pools based on the index) + let newSpeciesPool = []; + let useNewSpeciesPool = false; + + // If we are in a double battle of named trainers, we need to use alternate species pools (generate half the party from each trainer) + if (this.config.trainerTypeDouble && this.isDouble() && !this.config.doubleOnly) { + + // Use the new species pool for this party generation + useNewSpeciesPool = true; + + + // Get the species pool for the partner trainer and the current trainer + const speciesPoolPartner = signatureSpecies[TrainerType[this.config.trainerTypeDouble]]; + const speciesPool = signatureSpecies[TrainerType[this.config.trainerType]]; + + + // Get the species that are already in the enemy party so we dont generate the same species twice + const AlreadyUsedSpecies = battle.enemyParty.map(p => p.species.speciesId); + + // Filter out the species that are already in the enemy party from the main trainer species pool + const speciesPoolFiltered = speciesPool.filter(species => { + // Since some species pools have arrays in them (use either of those species), we need to check if one of the species is already in the party and filter the whole array if it is + if (Array.isArray(species)) { + return !species.some(s => AlreadyUsedSpecies.includes(s)); + } + return !AlreadyUsedSpecies.includes(species); + }); + + // Filter out the species that are already in the enemy party from the partner trainer species pool + const speciesPoolPartnerFiltered = speciesPoolPartner.filter(species => { + // Since some species pools have arrays in them (use either of those species), we need to check if one of the species is already in the party and filter the whole array if it is + if (Array.isArray(species)) { + return !species.some(s => AlreadyUsedSpecies.includes(s)); + } + return !AlreadyUsedSpecies.includes(species); + }); + + + // If the index is even, use the species pool for the main trainer (that way he only uses his own pokemon in battle) + if (!(index % 2)) { + newSpeciesPool = speciesPoolFiltered; + } else { + // If the index is odd, use the species pool for the partner trainer (that way he only uses his own pokemon in battle) + newSpeciesPool = speciesPoolPartnerFiltered; + } + + // Fallback for when the species pool is empty + if (newSpeciesPool.length === 0) { + // If all pokemon from this pool are already in the party, generate a random species + useNewSpeciesPool = false; + } + } + + // If useNewSpeciesPool is true, we need to generate a new species from the new species pool, otherwise we generate a random species + const species = useNewSpeciesPool + ? getPokemonSpecies(newSpeciesPool[Math.floor(Math.random() * newSpeciesPool.length)]) + : template.isSameSpecies(index) && index > offset + ? getPokemonSpecies(battle.enemyParty[offset].species.getTrainerSpeciesForLevel(level, false, template.getStrength(offset))) + : this.genNewPartyMemberSpecies(level, strength); ret = this.scene.addEnemyPokemon(species, level, !this.isDouble() || !(index % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER); }, this.config.hasStaticParty ? this.config.getDerivedType() + ((index + 1) << 8) : this.scene.currentBattle.waveIndex + (this.config.getDerivedType() << 10) + (((!this.config.useSameSeedForAllMembers ? index : 0) + 1) << 8)); @@ -266,6 +340,7 @@ export default class Trainer extends Phaser.GameObjects.Container { return ret; } + genNewPartyMemberSpecies(level: integer, strength: PartyMemberStrength, attempt?: integer): PokemonSpecies { const battle = this.scene.currentBattle; const template = this.getPartyTemplate(); @@ -340,7 +415,7 @@ export default class Trainer extends Phaser.GameObjects.Container { if (forSwitch && !p.isOnField()) { this.scene.arena.findTagsOnSide(t => t instanceof ArenaTrapTag, ArenaTagSide.ENEMY).map(t => score *= (t as ArenaTrapTag).getMatchupScoreMultiplier(p)); } - return [ party.indexOf(p), score ]; + return [party.indexOf(p), score]; }); return partyMemberScores; @@ -521,5 +596,5 @@ export default class Trainer extends Phaser.GameObjects.Container { } export default interface Trainer { - scene: BattleScene + scene: BattleScene } diff --git a/src/locales/de/trainers.ts b/src/locales/de/trainers.ts index b221330fcf0..e28c0c6e5e9 100644 --- a/src/locales/de/trainers.ts +++ b/src/locales/de/trainers.ts @@ -5,7 +5,9 @@ export const titles: SimpleTranslationEntries = { "elite_four": "Top Vier", "gym_leader": "Arenaleiter", "gym_leader_female": "Arenaleiterin", + "gym_leader_double": "Arenaleiter-Duo", "champion": "Champion", + "champion_double": "Champion-Duo", "rival": "Rivale", "professor": "Professor", "frontier_brain": "Kampfkoryphäen", @@ -241,4 +243,16 @@ export const trainerNames: SimpleTranslationEntries = { "leon": "Delion", "rival": "Finn", "rival_female": "Ivy", + + // Double Names + "blue_red_double": "Blau & Rot", + "red_blue_double": "Rot & Blau", + "tate_liza_double": "Ben & Svenja", + "liza_tate_double": "Svenja & Ben", + "steven_wallace_double": "Troy & Wassili", + "wallace_steven_double": "Wassili & Troy", + "alder_iris_double": "Lauro & Lilia", + "iris_alder_double": "Lilia & Lauro", + "piers_marnie_double": "Nezz & Mary", + "marnie_piers_double": "Mary & Nezz", } as const; diff --git a/src/locales/en/trainers.ts b/src/locales/en/trainers.ts index 8ac2696dc61..334a0223c72 100644 --- a/src/locales/en/trainers.ts +++ b/src/locales/en/trainers.ts @@ -5,7 +5,9 @@ export const titles: SimpleTranslationEntries = { "elite_four": "Elite Four", "gym_leader": "Gym Leader", "gym_leader_female": "Gym Leader", + "gym_leader_double": "Gym Leader Duo", "champion": "Champion", + "champion_double": "Champion Duo", "rival": "Rival", "professor": "Professor", "frontier_brain": "Frontier Brain", @@ -241,4 +243,16 @@ export const trainerNames: SimpleTranslationEntries = { "leon": "Leon", "rival": "Finn", "rival_female": "Ivy", + + // Double Names + "blue_red_double": "Blue & Red", + "red_blue_double": "Red & Blue", + "tate_liza_double": "Tate & Liza", + "liza_tate_double": "Liza & Tate", + "steven_wallace_double": "Steven & Wallace", + "wallace_steven_double": "Wallace & Steven", + "alder_iris_double": "Alder & Iris", + "iris_alder_double": "Iris & Alder", + "marnie_piers_double": "Marnie & Piers", + "piers_marnie_double": "Piers & Marnie", } as const; diff --git a/src/locales/es/trainers.ts b/src/locales/es/trainers.ts index cf858568665..a240009eab9 100644 --- a/src/locales/es/trainers.ts +++ b/src/locales/es/trainers.ts @@ -5,7 +5,9 @@ export const titles: SimpleTranslationEntries = { "elite_four": "Elite Four", "gym_leader": "Gym Leader", "gym_leader_female": "Gym Leader", + "gym_leader_double": "Gym Leader Duo", "champion": "Champion", + "champion_double": "Champion Duo", "rival": "Rival", "professor": "Professor", "frontier_brain": "Frontier Brain", @@ -240,4 +242,16 @@ export const trainerNames: SimpleTranslationEntries = { "leon": "Leon", "rival": "Finn", "rival_female": "Ivy", + + // Double Names + "blue_red_double": "Blue & Red", + "red_blue_double": "Red & Blue", + "tate_liza_double": "Tate & Liza", + "liza_tate_double": "Liza & Tate", + "steven_wallace_double": "Steven & Wallace", + "wallace_steven_double": "Wallace & Steven", + "alder_iris_double": "Alder & Iris", + "iris_alder_double": "Iris & Alder", + "marnie_piers_double": "Marnie & Piers", + "piers_marnie_double": "Piers & Marnie", } as const; diff --git a/src/locales/fr/trainers.ts b/src/locales/fr/trainers.ts index c0e99f529c4..dba69041c79 100644 --- a/src/locales/fr/trainers.ts +++ b/src/locales/fr/trainers.ts @@ -5,7 +5,9 @@ export const titles: SimpleTranslationEntries = { "elite_four": "Conseil 4", "gym_leader": "Champion d’Arène", "gym_leader_female": "Championne d’Arène", + "gym_leader_double": "Gym Leader Duo", "champion": "Maitre·esse", //Written in gender-inclusive language in wait of a potential split of the entry + "champion_double": "Champion Duo", "rival": "Rival·e", //Written in gender-inclusive language in wait of a potential split of the entry "professor": "Professeur·e", //Written in gender-inclusive language in wait of a potential split of the entry "frontier_brain": "Meneur·euse de Zone", //Written in gender-inclusive language in wait of a potential split of the entry @@ -241,4 +243,17 @@ export const trainerNames: SimpleTranslationEntries = { "leon": "Tarak", "rival": "Gwenaël", //Male breton name, a celtic language spoken in Brittany (France) and related to the word for "white" (gwenn). Finn meaning is also "white" in irish/goidelic which are also celtic languages. "rival_female": "Papina", //Litteral translation of ivy, also used as Female name in a North-American indigenous language + + + // Double Names + "blue_red_double": "Blue & Red", + "red_blue_double": "Red & Blue", + "tate_liza_double": "Tate & Liza", + "liza_tate_double": "Liza & Tate", + "steven_wallace_double": "Steven & Wallace", + "wallace_steven_double": "Wallace & Steven", + "alder_iris_double": "Alder & Iris", + "iris_alder_double": "Iris & Alder", + "marnie_piers_double": "Marnie & Piers", + "piers_marnie_double": "Piers & Marnie", } as const; diff --git a/src/locales/it/trainers.ts b/src/locales/it/trainers.ts index 46199b8aa13..a65589b43dd 100644 --- a/src/locales/it/trainers.ts +++ b/src/locales/it/trainers.ts @@ -5,7 +5,9 @@ export const titles: SimpleTranslationEntries = { "elite_four": "Superquattro", "gym_leader": "Capopalestra", "gym_leader_female": "Capopalestra", + "gym_leader_double": "Gym Leader Duo", "champion": "Campione", + "champion_double": "Champion Duo", "rival": "Rivale", "professor": "Professore", "frontier_brain": "Asso Lotta", @@ -241,4 +243,17 @@ export const trainerNames: SimpleTranslationEntries = { "leon": "Leon", "rival": "Finn", "rival_female": "Ivy", + + + // Double Names + "blue_red_double": "Blue & Red", + "red_blue_double": "Red & Blue", + "tate_liza_double": "Tate & Liza", + "liza_tate_double": "Liza & Tate", + "steven_wallace_double": "Steven & Wallace", + "wallace_steven_double": "Wallace & Steven", + "alder_iris_double": "Alder & Iris", + "iris_alder_double": "Iris & Alder", + "marnie_piers_double": "Marnie & Piers", + "piers_marnie_double": "Piers & Marnie", } as const; diff --git a/src/locales/pt_BR/trainers.ts b/src/locales/pt_BR/trainers.ts index 13a165876e3..5cbe19873dd 100644 --- a/src/locales/pt_BR/trainers.ts +++ b/src/locales/pt_BR/trainers.ts @@ -5,7 +5,9 @@ export const titles: SimpleTranslationEntries = { "elite_four": "Elite dos Quatro", "gym_leader": "Líder de Ginásio", "gym_leader_female": "Líder de Ginásio", + "gym_leader_double": "Gym Leader Duo", "champion": "Campeão", + "champion_double": "Champion Duo", "rival": "Rival", "professor": "Professor", "frontier_brain": "Cérebro da Fronteira", @@ -241,4 +243,16 @@ export const trainerNames: SimpleTranslationEntries = { "leon": "Leon", "rival": "Finn", "rival_female": "Ivy", + + // Double Names + "blue_red_double": "Blue & Red", + "red_blue_double": "Red & Blue", + "tate_liza_double": "Tate & Liza", + "liza_tate_double": "Liza & Tate", + "steven_wallace_double": "Steven & Wallace", + "wallace_steven_double": "Wallace & Steven", + "alder_iris_double": "Alder & Iris", + "iris_alder_double": "Iris & Alder", + "marnie_piers_double": "Marnie & Piers", + "piers_marnie_double": "Piers & Marnie", } as const; diff --git a/src/locales/zh_CN/trainers.ts b/src/locales/zh_CN/trainers.ts index 4d8703629c4..66ec51a7b0a 100644 --- a/src/locales/zh_CN/trainers.ts +++ b/src/locales/zh_CN/trainers.ts @@ -5,7 +5,9 @@ export const titles: SimpleTranslationEntries = { "elite_four": "四天王", "gym_leader": "道馆馆主", "gym_leader_female": "道馆馆主", + "gym_leader_double": "Gym Leader Duo", "champion": "冠军", + "champion_double": "Champion Duo", "rival": "劲敌", "professor": "博士", "frontier_brain": "开拓头脑", @@ -297,4 +299,17 @@ export const trainerNames: SimpleTranslationEntries = { // 劲敌 rival "rival": "芬恩", "rival_female": "艾薇", + + + // Double Names + "blue_red_double": "Blue & Red", + "red_blue_double": "Red & Blue", + "tate_liza_double": "Tate & Liza", + "liza_tate_double": "Liza & Tate", + "steven_wallace_double": "Steven & Wallace", + "wallace_steven_double": "Wallace & Steven", + "alder_iris_double": "Alder & Iris", + "iris_alder_double": "Iris & Alder", + "marnie_piers_double": "Marnie & Piers", + "piers_marnie_double": "Piers & Marnie", } as const; diff --git a/src/locales/zh_TW/trainers.ts b/src/locales/zh_TW/trainers.ts index 03b98a97e24..41465f0cf64 100644 --- a/src/locales/zh_TW/trainers.ts +++ b/src/locales/zh_TW/trainers.ts @@ -5,7 +5,9 @@ export const titles: SimpleTranslationEntries = { "elite_four": "四天王", "gym_leader": "道館館主", "gym_leader_female": "道館館主", + "gym_leader_double": "Gym Leader Duo", "champion": "冠軍", + "champion_double": "Champion Duo", "rival": "勁敵", "professor": "博士", "frontier_brain": "開拓頭腦", @@ -296,5 +298,17 @@ export const trainerNames: SimpleTranslationEntries = { // 勁敵 Rival "rival": "芬恩", - "rival_female": "艾薇" + "rival_female": "艾薇", + + // Double Names + "blue_red_double": "Blue & Red", + "red_blue_double": "Red & Blue", + "tate_liza_double": "Tate & Liza", + "liza_tate_double": "Liza & Tate", + "steven_wallace_double": "Steven & Wallace", + "wallace_steven_double": "Wallace & Steven", + "alder_iris_double": "Alder & Iris", + "iris_alder_double": "Iris & Alder", + "marnie_piers_double": "Marnie & Piers", + "piers_marnie_double": "Piers & Marnie", } as const; From caeb22c26b44fb235eec72af9e4ac716530af249 Mon Sep 17 00:00:00 2001 From: Jakub Hanko <60473007+JakubHanko@users.noreply.github.com> Date: Sat, 25 May 2024 15:01:08 +0200 Subject: [PATCH 47/61] Implement Honey Gather (#1360) * Implement Honey Gather * Updated Ability Description --------- Co-authored-by: Benjamin Odom --- src/data/ability.ts | 25 ++++++++++++++++++++++++- src/locales/de/ability.ts | 2 +- src/locales/en/ability.ts | 2 +- src/locales/es/ability.ts | 2 +- src/locales/fr/ability.ts | 2 +- src/locales/it/ability.ts | 2 +- src/locales/pt_BR/ability.ts | 2 +- src/locales/zh_CN/ability.ts | 2 +- src/locales/zh_TW/ability.ts | 2 +- src/phases.ts | 7 ++++--- 10 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index 0bfc85fa363..da68f9271f9 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -3012,6 +3012,29 @@ export class IgnoreTypeStatusEffectImmunityAbAttr extends AbAttr { } } +/** + * Gives money to the user after the battle. + * + * @extends PostBattleAbAttr + * @see {@linkcode applyPostBattle} + */ +export class MoneyAbAttr extends PostBattleAbAttr { + constructor() { + super(); + } + + /** + * @param pokemon {@linkcode Pokemon} that is the user of this ability. + * @param passive N/A + * @param args N/A + * @returns true + */ + applyPostBattle(pokemon: Pokemon, passive: boolean, args: any[]): boolean { + pokemon.scene.currentBattle.moneyScattered += pokemon.scene.getWaveMoneyAmount(0.2); + return true; + } +} + function applyAbAttrsInternal(attrType: { new(...args: any[]): TAttr }, pokemon: Pokemon, applyFunc: AbAttrApplyFunc, args: any[], isAsync: boolean = false, showAbilityInstant: boolean = false, quiet: boolean = false, passive: boolean = false): Promise { return new Promise(resolve => { @@ -3557,7 +3580,7 @@ export function initAbilities() { .attr(PostSummonWeatherChangeAbAttr, WeatherType.SNOW) .attr(PostBiomeChangeWeatherChangeAbAttr, WeatherType.SNOW), new Ability(Abilities.HONEY_GATHER, 4) - .unimplemented(), + .attr(MoneyAbAttr), new Ability(Abilities.FRISK, 4) .attr(FriskAbAttr), new Ability(Abilities.RECKLESS, 4) diff --git a/src/locales/de/ability.ts b/src/locales/de/ability.ts index 17472339717..cd1a15f194a 100644 --- a/src/locales/de/ability.ts +++ b/src/locales/de/ability.ts @@ -471,7 +471,7 @@ export const ability: AbilityTranslationEntries = { }, honeyGather: { name: "Honigmaul", - description: "Das Pokémon sammelt nach Kämpfen eventuell Honig auf.", + description: "The Pokémon gathers Honey after a battle. The Honey is then sold for money.", }, frisk: { name: "Schnüffler", diff --git a/src/locales/en/ability.ts b/src/locales/en/ability.ts index 2ba837f8c69..aff5d95405e 100644 --- a/src/locales/en/ability.ts +++ b/src/locales/en/ability.ts @@ -471,7 +471,7 @@ export const ability: AbilityTranslationEntries = { }, honeyGather: { name: "Honey Gather", - description: "The Pokémon may gather Honey after a battle.", + description: "The Pokémon gathers Honey after a battle. The Honey is then sold for money.", }, frisk: { name: "Frisk", diff --git a/src/locales/es/ability.ts b/src/locales/es/ability.ts index cb6e4836ed5..56f3afe6b02 100644 --- a/src/locales/es/ability.ts +++ b/src/locales/es/ability.ts @@ -471,7 +471,7 @@ export const ability: AbilityTranslationEntries = { }, "honeyGather": { name: "Recogemiel", - description: "Puede que encuentre Miel una vez concluido el combate." + description: "The Pokémon gathers Honey after a battle. The Honey is then sold for money." }, "frisk": { name: "Cacheo", diff --git a/src/locales/fr/ability.ts b/src/locales/fr/ability.ts index 49bfeb53acf..83bb46c7408 100644 --- a/src/locales/fr/ability.ts +++ b/src/locales/fr/ability.ts @@ -471,7 +471,7 @@ export const ability: AbilityTranslationEntries = { }, honeyGather: { name: "Cherche Miel", - description: "Le Pokémon peut parfois trouver du Miel après un combat.", + description: "The Pokémon gathers Honey after a battle. The Honey is then sold for money.", }, frisk: { name: "Fouille", diff --git a/src/locales/it/ability.ts b/src/locales/it/ability.ts index e0e827ff27c..9eb9480f771 100644 --- a/src/locales/it/ability.ts +++ b/src/locales/it/ability.ts @@ -471,7 +471,7 @@ export const ability: AbilityTranslationEntries = { }, honeyGather: { name: "Mielincetta", - description: "Il Pokémon può raccogliere del Miele alla fine della lotta.", + description: "The Pokémon gathers Honey after a battle. The Honey is then sold for money.", }, frisk: { name: "Indagine", diff --git a/src/locales/pt_BR/ability.ts b/src/locales/pt_BR/ability.ts index 060a8b7611e..05ef735bfde 100644 --- a/src/locales/pt_BR/ability.ts +++ b/src/locales/pt_BR/ability.ts @@ -471,7 +471,7 @@ export const ability: AbilityTranslationEntries = { }, honeyGather: { name: "Honey Gather", - description: "O Pokémon pode coletar Mel ao final de uma batalha.", + description: "The Pokémon gathers Honey after a battle. The Honey is then sold for money.", }, frisk: { name: "Frisk", diff --git a/src/locales/zh_CN/ability.ts b/src/locales/zh_CN/ability.ts index cdeb91b0e8f..77034d61743 100644 --- a/src/locales/zh_CN/ability.ts +++ b/src/locales/zh_CN/ability.ts @@ -471,7 +471,7 @@ export const ability: AbilityTranslationEntries = { }, honeyGather: { name: "采蜜", - description: "战斗结束时,有时候会捡来\n甜甜蜜。", + description: "The Pokémon gathers Honey after a battle. The Honey is then sold for money.", }, frisk: { name: "察觉", diff --git a/src/locales/zh_TW/ability.ts b/src/locales/zh_TW/ability.ts index bf374c28f06..f760a9614f6 100644 --- a/src/locales/zh_TW/ability.ts +++ b/src/locales/zh_TW/ability.ts @@ -418,7 +418,7 @@ export const ability: AbilityTranslationEntries = { snowWarning: { name: "降雪", description: "出場時,會將天氣變爲下雪。" }, honeyGather: { name: "採蜜", - description: "戰鬥結束時,有時候會撿來\n甜甜蜜。", + description: "The Pokémon gathers Honey after a battle. The Honey is then sold for money.", }, frisk: { name: "察覺", diff --git a/src/phases.ts b/src/phases.ts index 6d0eb29c707..053f5774ac7 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -2301,9 +2301,6 @@ export class BattleEndPhase extends BattlePhase { super.start(); this.scene.currentBattle.addBattleScore(this.scene); - if (this.scene.currentBattle.moneyScattered) { - this.scene.currentBattle.pickUpScatteredMoney(this.scene); - } this.scene.gameData.gameStats.battles++; if (this.scene.currentBattle.trainer) { @@ -2323,6 +2320,10 @@ export class BattleEndPhase extends BattlePhase { applyPostBattleAbAttrs(PostBattleAbAttr, pokemon); } + if (this.scene.currentBattle.moneyScattered) { + this.scene.currentBattle.pickUpScatteredMoney(this.scene); + } + this.scene.clearEnemyHeldItemModifiers(); const lapsingModifiers = this.scene.findModifiers(m => m instanceof LapsingPersistentModifier || m instanceof LapsingPokemonHeldItemModifier) as (LapsingPersistentModifier | LapsingPokemonHeldItemModifier)[]; From ef28e75b3993f6b6e807f185ea9875c7a5431508 Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Sat, 25 May 2024 15:20:27 +0100 Subject: [PATCH 48/61] hotfix for alder bgm on double battle (#1368) --- src/data/trainer-config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index 5b3fd6c3b23..f4089e76c01 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -1198,7 +1198,7 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion(signatureSpecies["STEVEN"]).setBattleBgm("battle_hoenn_champion").setHasDouble("steven_wallace_double").setDoubleTrainerType(TrainerType.WALLACE).setDoubleTitle("champion_double"), [TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion(signatureSpecies["WALLACE"]).setBattleBgm("battle_hoenn_champion").setHasDouble("wallace_steven_double").setDoubleTrainerType(TrainerType.STEVEN).setDoubleTitle("champion_double"), [TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion(signatureSpecies["CYNTHIA"]).setBattleBgm("battle_sinnoh_champion"), - [TrainerType.ALDER]: new TrainerConfig(++t).initForChampion(signatureSpecies["ALDER"]).setHasDouble("alder_iris_double").setDoubleTrainerType(TrainerType.IRIS).setDoubleTitle("champion_double").setBattleBgm("battle_unova_champion"), + [TrainerType.ALDER]: new TrainerConfig(++t).initForChampion(signatureSpecies["ALDER"]).setHasDouble("alder_iris_double").setDoubleTrainerType(TrainerType.IRIS).setDoubleTitle("champion_double").setBattleBgm("battle_champion_alder"), [TrainerType.IRIS]: new TrainerConfig(++t).initForChampion(signatureSpecies["IRIS"]).setBattleBgm("battle_champion_iris").setHasDouble("iris_alder_double").setDoubleTrainerType(TrainerType.ALDER).setDoubleTitle("champion_double"), [TrainerType.DIANTHA]: new TrainerConfig(++t).initForChampion(signatureSpecies["DIANTHA"]), [TrainerType.HAU]: new TrainerConfig(++t).initForChampion(signatureSpecies["HAU"]), From 97d8275417de4df131f285f12822ef762e3f1af0 Mon Sep 17 00:00:00 2001 From: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Date: Sat, 25 May 2024 16:31:30 +0200 Subject: [PATCH 49/61] localized Honeygather again (#1369) --- src/locales/de/ability.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/de/ability.ts b/src/locales/de/ability.ts index cd1a15f194a..3d8ca7f61f5 100644 --- a/src/locales/de/ability.ts +++ b/src/locales/de/ability.ts @@ -471,7 +471,7 @@ export const ability: AbilityTranslationEntries = { }, honeyGather: { name: "Honigmaul", - description: "The Pokémon gathers Honey after a battle. The Honey is then sold for money.", + description: "Sammelt nach dem Kampf Honig. Dieser wird dann für Geld verkauft.", }, frisk: { name: "Schnüffler", From 5c28e1fb11812c24a018914195048b5e9a27f54d Mon Sep 17 00:00:00 2001 From: Benjamin Odom Date: Sat, 25 May 2024 11:23:53 -0500 Subject: [PATCH 50/61] Adds New BattleSceneEventTypes (#1372) * Add BattleSceneEvents * Update battle-scene-events.ts --- src/battle-scene-events.ts | 55 ++++++++++++++++++++++++++++++++++++-- src/battle-scene.ts | 2 ++ src/phases.ts | 4 ++- 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/src/battle-scene-events.ts b/src/battle-scene-events.ts index be3b79ff609..22959493f06 100644 --- a/src/battle-scene-events.ts +++ b/src/battle-scene-events.ts @@ -1,11 +1,31 @@ import Move from "./data/move"; +/** Alias for all {@linkcode BattleScene} events */ export enum BattleSceneEventType { - MOVE_USED = "onMoveUsed" + /** + * Triggers when a move is successfully used + * @see {@linkcode MoveUsedEvent} + */ + MOVE_USED = "onMoveUsed", + /** + * Triggers on the first turn of a new battle + * @see {@linkcode TurnInitEvent} + */ + TURN_INIT = "onTurnInit", + /** + * Triggers after a turn ends in battle + * @see {@linkcode TurnEndEvent} + */ + TURN_END = "onTurnEnd", + /** + * Triggers when a new {@linkcode Arena} is created during initialization + * @see {@linkcode NewArenaEvent} + */ + NEW_ARENA = "onNewArena", } /** - * Container class for `onMoveUsed` events + * Container class for {@linkcode BattleSceneEventType.MOVE_USED} events * @extends Event */ export class MoveUsedEvent extends Event { @@ -23,3 +43,34 @@ export class MoveUsedEvent extends Event { this.ppUsed = ppUsed; } } +/** + * Container class for {@linkcode BattleSceneEventType.TURN_INIT} events + * @extends Event +*/ +export class TurnInitEvent extends Event { + constructor() { + super(BattleSceneEventType.TURN_INIT); + } +} +/** + * Container class for {@linkcode BattleSceneEventType.TURN_END} events + * @extends Event +*/ +export class TurnEndEvent extends Event { + /** The amount of turns in the current battle */ + public turnCount: number; + constructor(turnCount: number) { + super(BattleSceneEventType.TURN_END); + + this.turnCount = turnCount; + } +} +/** + * Container class for {@linkcode BattleSceneEventType.NEW_ARENA} events + * @extends Event +*/ +export class NewArenaEvent extends Event { + constructor() { + super(BattleSceneEventType.NEW_ARENA); + } +} diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 93f02c26143..bd38ec2a0bc 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -56,6 +56,7 @@ import { Localizable } from "./plugins/i18n"; import * as Overrides from "./overrides"; import {InputsController} from "./inputs-controller"; import {UiInputs} from "./ui-inputs"; +import { NewArenaEvent } from "./battle-scene-events"; export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1"; @@ -995,6 +996,7 @@ export default class BattleScene extends SceneBase { newArena(biome: Biome): Arena { this.arena = new Arena(this, biome, Biome[biome].toLowerCase()); + this.eventTarget.dispatchEvent(new NewArenaEvent()); this.arenaBg.pipelineData = { terrainColorRatio: this.arena.getBgTerrainColorRatioForBiome() }; diff --git a/src/phases.ts b/src/phases.ts index 053f5774ac7..44ec262d3e6 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -61,7 +61,7 @@ import { Abilities } from "./data/enums/abilities"; import * as Overrides from "./overrides"; import { TextStyle, addTextObject } from "./ui/text"; import { Type } from "./data/type"; -import { MoveUsedEvent } from "./battle-scene-events"; +import { MoveUsedEvent, TurnEndEvent, TurnInitEvent } from "./battle-scene-events"; export class LoginPhase extends Phase { @@ -1719,6 +1719,7 @@ export class TurnInitPhase extends FieldPhase { super.start(); //this.scene.pushPhase(new MoveAnimTestPhase(this.scene)); + this.scene.eventTarget.dispatchEvent(new TurnInitEvent()); this.scene.getField().forEach((pokemon, i) => { if (pokemon?.isActive()) { @@ -2252,6 +2253,7 @@ export class TurnEndPhase extends FieldPhase { super.start(); this.scene.currentBattle.incrementTurn(this.scene); + this.scene.eventTarget.dispatchEvent(new TurnEndEvent(this.scene.currentBattle.turn)); const handlePokemon = (pokemon: Pokemon) => { pokemon.lapseTags(BattlerTagLapseType.TURN_END); From f95bd40353f73fb58a4aec26a796287bb0300a4d Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Sat, 25 May 2024 17:45:27 +0100 Subject: [PATCH 51/61] Swapped Aron for Aggron on Iris pokemon pool (#1374) --- src/data/trainer-config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index f4089e76c01..2a35f09fbeb 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -906,7 +906,7 @@ export const signatureSpecies: SignatureSpecies = { WALLACE: [Species.MILOTIC, Species.KYOGRE, Species.WHISCASH, Species.WALREIN, Species.LUDICOLO], CYNTHIA: [Species.SPIRITOMB, Species.GIRATINA, Species.GARCHOMP, Species.MILOTIC, Species.LUCARIO, Species.TOGEKISS], ALDER: [Species.VOLCARONA, Species.GROUDON, Species.BOUFFALANT, Species.ACCELGOR, Species.CONKELDURR], - IRIS: [Species.HAXORUS, Species.YVELTAL, Species.DRUDDIGON, Species.ARON, Species.LAPRAS], + IRIS: [Species.HAXORUS, Species.YVELTAL, Species.DRUDDIGON, Species.AGGRON, Species.LAPRAS], DIANTHA: [Species.HAWLUCHA, Species.XERNEAS, Species.GOURGEIST, Species.GOODRA, Species.GARDEVOIR], HAU: [Species.ALOLA_RAICHU, [Species.SOLGALEO, Species.LUNALA], Species.NOIVERN, [Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA], Species.CRABOMINABLE], GEETA: [Species.GLIMMORA, Species.MIRAIDON, Species.ESPATHRA, Species.VELUZA, Species.KINGAMBIT], From 311f7b7420d447532335b89290b9f7a5711217a9 Mon Sep 17 00:00:00 2001 From: ASCAlex <141498430+ASCAlex@users.noreply.github.com> Date: Sat, 25 May 2024 18:47:31 +0200 Subject: [PATCH 52/61] Fixed German localization for Starf Berry description and localized zippyZap effect (#1373) --- src/locales/de/berry.ts | 2 +- src/locales/de/move.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locales/de/berry.ts b/src/locales/de/berry.ts index 37e4dd47573..330b36fffc8 100644 --- a/src/locales/de/berry.ts +++ b/src/locales/de/berry.ts @@ -39,7 +39,7 @@ export const berry: BerryTranslationEntries = { }, "STARF": { name: "Krambobeere", - effect: "Erhöht eine Statuswert stark, wenn die KP unter 25% sind" + effect: "Erhöht einen zufälligen Statuswert stark, wenn die KP unter 25% sind" }, "LEPPA": { name: "Jonagobeere", diff --git a/src/locales/de/move.ts b/src/locales/de/move.ts index a616ffa4276..4e787d2ccf7 100644 --- a/src/locales/de/move.ts +++ b/src/locales/de/move.ts @@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = { }, "zippyZap": { name: "Britzelturbo", - effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness." + effect: "Ein stürmischer Blitz-Angriff mit hoher Erstschlag- und Volltrefferquote." }, "splishySplash": { name: "Plätschersurfer", From 1b8b0789c0b85faa2c7fe559083d46ce5dc44d06 Mon Sep 17 00:00:00 2001 From: damocleas Date: Sat, 25 May 2024 11:45:07 -0600 Subject: [PATCH 53/61] Made Lab 25% instead of 12.5% to encounter after Factory (#1351) This biome is too rare, this is just a temporary change until biomes are redone. --- src/data/biomes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/biomes.ts b/src/data/biomes.ts index 770101607fa..37d86367f9f 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -55,7 +55,7 @@ export const biomeLinks: BiomeLinks = { [Biome.VOLCANO]: [ Biome.BEACH, [ Biome.ICE_CAVE, 4 ] ], [Biome.GRAVEYARD]: Biome.ABYSS, [Biome.DOJO]: [ Biome.PLAINS, [ Biome.TEMPLE, 3 ] ], - [Biome.FACTORY]: [ Biome.PLAINS, [ Biome.LABORATORY, 8 ] ], + [Biome.FACTORY]: [ Biome.PLAINS, [ Biome.LABORATORY, 4 ] ], [Biome.RUINS]: [ Biome.FOREST ], [Biome.WASTELAND]: Biome.BADLANDS, [Biome.ABYSS]: [ Biome.CAVE, [ Biome.SPACE, 3 ], [ Biome.WASTELAND, 3 ] ], From 93c91bf73a6802cd2a725a1cd05bcd959fbd9b6e Mon Sep 17 00:00:00 2001 From: Nicholas Galauxy Date: Sat, 25 May 2024 12:53:46 -0500 Subject: [PATCH 54/61] Fix incorrectly unselectable starter formes (#1332) * Fix incorrectly unselectable starter formes * Fix linter issue that got merged upstream * Remove battle-bond key from form key overrides based on feedback --- src/data/pokemon-species.ts | 7 +++++++ src/ui/starter-select-ui-handler.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 0d0d77d9512..eb23ea3d60a 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -807,6 +807,9 @@ export class PokemonForm extends PokemonSpeciesForm { public formKey: string; public formSpriteKey: string; + // This is a collection of form keys that have in-run form changes, but should still be separately selectable from the start screen + private starterSelectableKeys: string[] = ["10", "50", "10-pc", "50-pc", "red", "orange", "yellow", "green", "blue", "indigo", "violet"]; + constructor(formName: string, formKey: string, type1: Type, type2: Type, height: number, weight: number, ability1: Abilities, ability2: Abilities, abilityHidden: Abilities, baseTotal: integer, baseHp: integer, baseAtk: integer, baseDef: integer, baseSpatk: integer, baseSpdef: integer, baseSpd: integer, catchRate: integer, baseFriendship: integer, baseExp: integer, genderDiffs?: boolean, formSpriteKey?: string) { @@ -820,6 +823,10 @@ export class PokemonForm extends PokemonSpeciesForm { getFormSpriteKey(_formIndex?: integer) { return this.formSpriteKey !== null ? this.formSpriteKey : this.formKey; } + + isStarterSelectable() { + return !this.formKey || this.starterSelectableKeys.indexOf[this.formKey] !== -1; + } } export enum SpeciesFormKey { diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index a8bc760287f..d4fdf97912d 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -1627,7 +1627,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.canCycleShiny = !!(dexEntry.caughtAttr & DexAttr.NON_SHINY && dexEntry.caughtAttr & DexAttr.SHINY); this.canCycleGender = !!(dexEntry.caughtAttr & DexAttr.MALE && dexEntry.caughtAttr & DexAttr.FEMALE); this.canCycleAbility = [ abilityAttr & AbilityAttr.ABILITY_1, (abilityAttr & AbilityAttr.ABILITY_2) && species.ability2, abilityAttr & AbilityAttr.ABILITY_HIDDEN ].filter(a => a).length > 1; - this.canCycleForm = species.forms.filter(f => !f.formKey || !pokemonFormChanges[species.speciesId]?.find(fc => fc.formKey)) + this.canCycleForm = species.forms.filter(f => f.isStarterSelectable || !pokemonFormChanges[species.speciesId]?.find(fc => fc.formKey)) .map((_, f) => dexEntry.caughtAttr & this.scene.gameData.getFormAttr(f)).filter(f => f).length > 1; this.canCycleNature = this.scene.gameData.getNaturesForAttr(dexEntry.natureAttr).length > 1; this.canCycleVariant = shiny && [ dexEntry.caughtAttr & DexAttr.DEFAULT_VARIANT, dexEntry.caughtAttr & DexAttr.VARIANT_2, dexEntry.caughtAttr & DexAttr.VARIANT_3].filter(v => v).length > 1; From ae0cd86bc3538e89db3c2b778dd17004d69c8237 Mon Sep 17 00:00:00 2001 From: td76099 <85713900+td76099@users.noreply.github.com> Date: Sat, 25 May 2024 15:06:50 -0400 Subject: [PATCH 55/61] Adding clause so right Pokemon in double battle cannot target itself with a spread move when left one dies with no replacement (#1370) --- src/phases.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/phases.ts b/src/phases.ts index 44ec262d3e6..62d944e68e7 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -2646,8 +2646,14 @@ export class MoveEffectPhase extends PokemonPhase { constructor(scene: BattleScene, battlerIndex: BattlerIndex, targets: BattlerIndex[], move: PokemonMove) { super(scene, battlerIndex); - this.move = move; + // In double battles, if the right Pokemon selects a spread move and the left Pokemon dies + // with no party members available to switch in, then the right Pokemon takes the index + // of the left Pokemon and gets hit unless this is checked. + if (targets.includes(battlerIndex) && this.move.getMove().moveTarget === MoveTarget.ALL_NEAR_OTHERS) { + const i = targets.indexOf(battlerIndex); + targets.splice(i,i+1); + } this.targets = targets; } From 6f2d639a7bc6dd8a81da0dbf45061eead4801817 Mon Sep 17 00:00:00 2001 From: nterrien <49344057+nterrien@users.noreply.github.com> Date: Sat, 25 May 2024 22:54:31 +0200 Subject: [PATCH 56/61] Fix French translation of Genesect's Drive (#1379) --- src/locales/fr/modifier-type.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locales/fr/modifier-type.ts b/src/locales/fr/modifier-type.ts index c438b8cbbbc..a09bb656cc4 100644 --- a/src/locales/fr/modifier-type.ts +++ b/src/locales/fr/modifier-type.ts @@ -381,7 +381,7 @@ export const modifierType: ModifierTypeTranslationEntries = { "CORNERSTONE_MASK": "Masque de la Pierre", "SHOCK_DRIVE": "Module Choc", "BURN_DRIVE": "Module Pyro", - "CHILL_DRIVE": "Module Aqua", - "DOUSE_DRIVE": "Module Choc", + "CHILL_DRIVE": "Module Cryo", + "DOUSE_DRIVE": "Module Aqua", }, } as const; From de1c2b2b5bb1b4e7ede63d8bf0a48f3812615f2e Mon Sep 17 00:00:00 2001 From: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Date: Sat, 25 May 2024 22:57:22 +0200 Subject: [PATCH 57/61] Added localization to the biomes. (#1378) * Added localization to the biomes. German Localization by me. (Native German). French Localiztation by sangara42 from Discord * Changed End back to ??? and Space is now Space again it all but German and French * Changed english biome names according to https://wiki.pokerogue.net/biomes:biomes * And we are back to grassy field since apparently the wiki is wrong... --- src/data/biomes.ts | 13 ++++++------ src/locales/de/biome.ts | 40 +++++++++++++++++++++++++++++++++++++ src/locales/de/config.ts | 2 ++ src/locales/en/biome.ts | 40 +++++++++++++++++++++++++++++++++++++ src/locales/en/config.ts | 2 ++ src/locales/es/biome.ts | 40 +++++++++++++++++++++++++++++++++++++ src/locales/es/config.ts | 2 ++ src/locales/fr/biome.ts | 40 +++++++++++++++++++++++++++++++++++++ src/locales/fr/config.ts | 3 +++ src/locales/it/biome.ts | 40 +++++++++++++++++++++++++++++++++++++ src/locales/it/config.ts | 3 +++ src/locales/pt_BR/biome.ts | 40 +++++++++++++++++++++++++++++++++++++ src/locales/pt_BR/config.ts | 3 +++ src/locales/zh_CN/biome.ts | 40 +++++++++++++++++++++++++++++++++++++ src/locales/zh_CN/config.ts | 3 +++ src/locales/zh_TW/biome.ts | 40 +++++++++++++++++++++++++++++++++++++ src/locales/zh_TW/config.ts | 2 ++ src/plugins/i18n.ts | 1 + 18 files changed, 348 insertions(+), 6 deletions(-) create mode 100644 src/locales/de/biome.ts create mode 100644 src/locales/en/biome.ts create mode 100644 src/locales/es/biome.ts create mode 100644 src/locales/fr/biome.ts create mode 100644 src/locales/it/biome.ts create mode 100644 src/locales/pt_BR/biome.ts create mode 100644 src/locales/zh_CN/biome.ts create mode 100644 src/locales/zh_TW/biome.ts diff --git a/src/data/biomes.ts b/src/data/biomes.ts index 37d86367f9f..4a29d10debb 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -6,22 +6,23 @@ import { TrainerType } from "./enums/trainer-type"; import { TimeOfDay } from "./enums/time-of-day"; import { Biome } from "./enums/biome"; import {pokemonEvolutions, SpeciesFormEvolution} from "./pokemon-evolutions"; +import i18next from "i18next"; export function getBiomeName(biome: Biome | -1) { if (biome === -1) { - return "Somewhere you can't remember"; + return i18next.t("biome:unknownLocation"); } switch (biome) { case Biome.GRASS: - return "Grassy Field"; + return i18next.t("biome:GRASS"); case Biome.RUINS: - return "Ancient Ruins"; + return i18next.t("biome:RUINS"); case Biome.ABYSS: - return "The Abyss"; + return i18next.t("biome:ABYSS"); case Biome.END: - return "???"; + return i18next.t("biome:END"); default: - return Utils.toReadableString(Biome[biome]); + return i18next.t(`biome:${Biome[biome].toUpperCase()}`); } } diff --git a/src/locales/de/biome.ts b/src/locales/de/biome.ts new file mode 100644 index 00000000000..6fdbb3c6820 --- /dev/null +++ b/src/locales/de/biome.ts @@ -0,0 +1,40 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const biome: SimpleTranslationEntries = { + "unknownLocation": "An einem unbekannten Ort", + "TOWN": "Stadt", + "PLAINS": "Ebene", + "GRASS": "Grasfeld", + "TALL_GRASS": "Hohes Gras", + "METROPOLIS": "Metropole", + "FOREST": "Wald", + "SEA": "Meer", + "SWAMP": "Sumpf", + "BEACH": "Strand", + "LAKE": "See", + "SEABED": "Meeresboden", + "MOUNTAIN": "Berg", + "BADLANDS": "Kargland", + "CAVE": "Höhle", + "DESERT": "Wüste", + "ICE_CAVE": "Eishöhle", + "MEADOW": "Weide", + "POWER_PLANT": "Kraftwerk", + "VOLCANO": "Vulkan", + "GRAVEYARD": "Friedhof", + "DOJO": "Dojo", + "FACTORY": "Fabrik", + "RUINS": "Alte Ruinen", + "WASTELAND": "Ödland", + "ABYSS": "Der Abgrund", + "SPACE": "Stratosphäre", + "CONSTRUCTION_SITE": "Baustelle", + "JUNGLE": "Dschungel", + "FAIRY_CAVE": "Feenhöhle", + "TEMPLE": "Tempel", + "SLUM": "Elendsviertel", + "SNOWY_FOREST": "Verschneiter Wald", + "ISLAND": "Insel", + "LABORATORY": "Labor", + "END": "???", +} as const; diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index 450383e2fdb..c9b81680632 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -21,6 +21,7 @@ import { weather } from "./weather"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { voucher } from "./voucher"; +import { biome } from "./biome"; export const deConfig = { ability: ability, @@ -48,4 +49,5 @@ export const deConfig = { battleMessageUiHandler: battleMessageUiHandler, berry: berry, voucher: voucher, + biome: biome, }; diff --git a/src/locales/en/biome.ts b/src/locales/en/biome.ts new file mode 100644 index 00000000000..5631b91b836 --- /dev/null +++ b/src/locales/en/biome.ts @@ -0,0 +1,40 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const biome: SimpleTranslationEntries = { + "unknownLocation": "Somewhere you can\'t remember", + "TOWN": "Town", + "PLAINS": "Plains", + "GRASS": "Grassy Field", + "TALL_GRASS": "Tall Grass", + "METROPOLIS": "Metropolis", + "FOREST": "Forest", + "SEA": "Sea", + "SWAMP": "Swamp", + "BEACH": "Beach", + "LAKE": "Lake", + "SEABED": "Seabed", + "MOUNTAIN": "Mountain", + "BADLANDS": "Badlands", + "CAVE": "Cave", + "DESERT": "Desert", + "ICE_CAVE": "Ice Cave", + "MEADOW": "Meadow", + "POWER_PLANT": "Power Plant", + "VOLCANO": "Volcano", + "GRAVEYARD": "Graveyard", + "DOJO": "Dojo", + "FACTORY": "Factory", + "RUINS": "Ancient Ruins", + "WASTELAND": "Wasteland", + "ABYSS": "Abyss", + "SPACE": "Space", + "CONSTRUCTION_SITE": "Construction Site", + "JUNGLE": "Jungle", + "FAIRY_CAVE": "Fairy Cave", + "TEMPLE": "Temple", + "SLUM": "Slum", + "SNOWY_FOREST": "Snowy Forest", + "ISLAND": "Island", + "LABORATORY": "Laboratory", + "END": "???", +} as const; diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index 08902576f54..08989184a2e 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -21,6 +21,7 @@ import { weather } from "./weather"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { voucher } from "./voucher"; +import { biome } from "./biome"; export const enConfig = { ability: ability, @@ -48,4 +49,5 @@ export const enConfig = { battleMessageUiHandler: battleMessageUiHandler, berry: berry, voucher: voucher, + biome: biome, }; diff --git a/src/locales/es/biome.ts b/src/locales/es/biome.ts new file mode 100644 index 00000000000..5631b91b836 --- /dev/null +++ b/src/locales/es/biome.ts @@ -0,0 +1,40 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const biome: SimpleTranslationEntries = { + "unknownLocation": "Somewhere you can\'t remember", + "TOWN": "Town", + "PLAINS": "Plains", + "GRASS": "Grassy Field", + "TALL_GRASS": "Tall Grass", + "METROPOLIS": "Metropolis", + "FOREST": "Forest", + "SEA": "Sea", + "SWAMP": "Swamp", + "BEACH": "Beach", + "LAKE": "Lake", + "SEABED": "Seabed", + "MOUNTAIN": "Mountain", + "BADLANDS": "Badlands", + "CAVE": "Cave", + "DESERT": "Desert", + "ICE_CAVE": "Ice Cave", + "MEADOW": "Meadow", + "POWER_PLANT": "Power Plant", + "VOLCANO": "Volcano", + "GRAVEYARD": "Graveyard", + "DOJO": "Dojo", + "FACTORY": "Factory", + "RUINS": "Ancient Ruins", + "WASTELAND": "Wasteland", + "ABYSS": "Abyss", + "SPACE": "Space", + "CONSTRUCTION_SITE": "Construction Site", + "JUNGLE": "Jungle", + "FAIRY_CAVE": "Fairy Cave", + "TEMPLE": "Temple", + "SLUM": "Slum", + "SNOWY_FOREST": "Snowy Forest", + "ISLAND": "Island", + "LABORATORY": "Laboratory", + "END": "???", +} as const; diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index 0fcbd59ffee..03ad165148c 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -21,6 +21,7 @@ import { weather } from "./weather"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { voucher } from "./voucher"; +import { biome } from "./biome"; export const esConfig = { ability: ability, @@ -48,4 +49,5 @@ export const esConfig = { battleMessageUiHandler: battleMessageUiHandler, berry: berry, voucher: voucher, + biome: biome, }; diff --git a/src/locales/fr/biome.ts b/src/locales/fr/biome.ts new file mode 100644 index 00000000000..42b15396339 --- /dev/null +++ b/src/locales/fr/biome.ts @@ -0,0 +1,40 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const biome: SimpleTranslationEntries = { + "unknownLocation": "Dans un endroit inconnu", + "TOWN": "Ville", + "PLAINS": "Plaines", + "GRASS": "Herbes", + "TALL_GRASS": "Hautes Herbes", + "METROPOLIS": "Métropole", + "FOREST": "Forêt", + "SEA": "Mer", + "SWAMP": "Marécage", + "BEACH": "Plage", + "LAKE": "Lac", + "SEABED": "Fonds Marins", + "MOUNTAIN": "Montagne", + "BADLANDS": "Terres Sauvages", + "CAVE": "Grotte", + "DESERT": "Desert", + "ICE_CAVE": "Caverne Glaciale", + "MEADOW": "Prairie", + "POWER_PLANT": "Centrale Électrique", + "VOLCANO": "Volcan", + "GRAVEYARD": "Cimetière", + "DOJO": "Dojo", + "FACTORY": "Usine", + "RUINS": "Ruines", + "WASTELAND": "Terres Désolées", + "ABYSS": "Gouffre", + "SPACE": "Espace", + "CONSTRUCTION_SITE": "Chantier", + "JUNGLE": "Jungle", + "FAIRY_CAVE": "Grotte Féérique", + "TEMPLE": "Temple", + "SLUM": "Bidonville", + "SNOWY_FOREST": "Forêt Enneigée", + "ISLAND": "Île", + "LABORATORY": "Laboratoire", + "END": "???", +} as const; diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index 1afc206e090..2504b399905 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -21,6 +21,8 @@ import { weather } from "./weather"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { voucher } from "./voucher"; +import { biome } from "./biome"; + export const frConfig = { ability: ability, @@ -48,4 +50,5 @@ export const frConfig = { battleMessageUiHandler: battleMessageUiHandler, berry: berry, voucher: voucher, + biome: biome, }; diff --git a/src/locales/it/biome.ts b/src/locales/it/biome.ts new file mode 100644 index 00000000000..5631b91b836 --- /dev/null +++ b/src/locales/it/biome.ts @@ -0,0 +1,40 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const biome: SimpleTranslationEntries = { + "unknownLocation": "Somewhere you can\'t remember", + "TOWN": "Town", + "PLAINS": "Plains", + "GRASS": "Grassy Field", + "TALL_GRASS": "Tall Grass", + "METROPOLIS": "Metropolis", + "FOREST": "Forest", + "SEA": "Sea", + "SWAMP": "Swamp", + "BEACH": "Beach", + "LAKE": "Lake", + "SEABED": "Seabed", + "MOUNTAIN": "Mountain", + "BADLANDS": "Badlands", + "CAVE": "Cave", + "DESERT": "Desert", + "ICE_CAVE": "Ice Cave", + "MEADOW": "Meadow", + "POWER_PLANT": "Power Plant", + "VOLCANO": "Volcano", + "GRAVEYARD": "Graveyard", + "DOJO": "Dojo", + "FACTORY": "Factory", + "RUINS": "Ancient Ruins", + "WASTELAND": "Wasteland", + "ABYSS": "Abyss", + "SPACE": "Space", + "CONSTRUCTION_SITE": "Construction Site", + "JUNGLE": "Jungle", + "FAIRY_CAVE": "Fairy Cave", + "TEMPLE": "Temple", + "SLUM": "Slum", + "SNOWY_FOREST": "Snowy Forest", + "ISLAND": "Island", + "LABORATORY": "Laboratory", + "END": "???", +} as const; diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index de5bfe32b8a..942ef2063c7 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -21,6 +21,8 @@ import { weather } from "./weather"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { voucher } from "./voucher"; +import { biome } from "./biome"; + export const itConfig = { ability: ability, @@ -48,4 +50,5 @@ export const itConfig = { battleMessageUiHandler: battleMessageUiHandler, berry: berry, voucher: voucher, + biome: biome, }; diff --git a/src/locales/pt_BR/biome.ts b/src/locales/pt_BR/biome.ts new file mode 100644 index 00000000000..5631b91b836 --- /dev/null +++ b/src/locales/pt_BR/biome.ts @@ -0,0 +1,40 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const biome: SimpleTranslationEntries = { + "unknownLocation": "Somewhere you can\'t remember", + "TOWN": "Town", + "PLAINS": "Plains", + "GRASS": "Grassy Field", + "TALL_GRASS": "Tall Grass", + "METROPOLIS": "Metropolis", + "FOREST": "Forest", + "SEA": "Sea", + "SWAMP": "Swamp", + "BEACH": "Beach", + "LAKE": "Lake", + "SEABED": "Seabed", + "MOUNTAIN": "Mountain", + "BADLANDS": "Badlands", + "CAVE": "Cave", + "DESERT": "Desert", + "ICE_CAVE": "Ice Cave", + "MEADOW": "Meadow", + "POWER_PLANT": "Power Plant", + "VOLCANO": "Volcano", + "GRAVEYARD": "Graveyard", + "DOJO": "Dojo", + "FACTORY": "Factory", + "RUINS": "Ancient Ruins", + "WASTELAND": "Wasteland", + "ABYSS": "Abyss", + "SPACE": "Space", + "CONSTRUCTION_SITE": "Construction Site", + "JUNGLE": "Jungle", + "FAIRY_CAVE": "Fairy Cave", + "TEMPLE": "Temple", + "SLUM": "Slum", + "SNOWY_FOREST": "Snowy Forest", + "ISLAND": "Island", + "LABORATORY": "Laboratory", + "END": "???", +} as const; diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index cc847c4e5b4..52a7357e170 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -20,6 +20,8 @@ import { tutorial } from "./tutorial"; import { weather } from "./weather"; import { berry } from "./berry"; import { voucher } from "./voucher"; +import { biome } from "./biome"; + export const ptBrConfig = { @@ -47,4 +49,5 @@ export const ptBrConfig = { modifierType: modifierType, berry: berry, voucher: voucher, + biome: biome, }; diff --git a/src/locales/zh_CN/biome.ts b/src/locales/zh_CN/biome.ts new file mode 100644 index 00000000000..5631b91b836 --- /dev/null +++ b/src/locales/zh_CN/biome.ts @@ -0,0 +1,40 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const biome: SimpleTranslationEntries = { + "unknownLocation": "Somewhere you can\'t remember", + "TOWN": "Town", + "PLAINS": "Plains", + "GRASS": "Grassy Field", + "TALL_GRASS": "Tall Grass", + "METROPOLIS": "Metropolis", + "FOREST": "Forest", + "SEA": "Sea", + "SWAMP": "Swamp", + "BEACH": "Beach", + "LAKE": "Lake", + "SEABED": "Seabed", + "MOUNTAIN": "Mountain", + "BADLANDS": "Badlands", + "CAVE": "Cave", + "DESERT": "Desert", + "ICE_CAVE": "Ice Cave", + "MEADOW": "Meadow", + "POWER_PLANT": "Power Plant", + "VOLCANO": "Volcano", + "GRAVEYARD": "Graveyard", + "DOJO": "Dojo", + "FACTORY": "Factory", + "RUINS": "Ancient Ruins", + "WASTELAND": "Wasteland", + "ABYSS": "Abyss", + "SPACE": "Space", + "CONSTRUCTION_SITE": "Construction Site", + "JUNGLE": "Jungle", + "FAIRY_CAVE": "Fairy Cave", + "TEMPLE": "Temple", + "SLUM": "Slum", + "SNOWY_FOREST": "Snowy Forest", + "ISLAND": "Island", + "LABORATORY": "Laboratory", + "END": "???", +} as const; diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index be096007655..7dd42a392c5 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -21,6 +21,8 @@ import { weather } from "./weather"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { voucher } from "./voucher"; +import { biome } from "./biome"; + export const zhCnConfig = { @@ -49,4 +51,5 @@ export const zhCnConfig = { battleMessageUiHandler: battleMessageUiHandler, berry: berry, voucher: voucher, + biome: biome, }; diff --git a/src/locales/zh_TW/biome.ts b/src/locales/zh_TW/biome.ts new file mode 100644 index 00000000000..5631b91b836 --- /dev/null +++ b/src/locales/zh_TW/biome.ts @@ -0,0 +1,40 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const biome: SimpleTranslationEntries = { + "unknownLocation": "Somewhere you can\'t remember", + "TOWN": "Town", + "PLAINS": "Plains", + "GRASS": "Grassy Field", + "TALL_GRASS": "Tall Grass", + "METROPOLIS": "Metropolis", + "FOREST": "Forest", + "SEA": "Sea", + "SWAMP": "Swamp", + "BEACH": "Beach", + "LAKE": "Lake", + "SEABED": "Seabed", + "MOUNTAIN": "Mountain", + "BADLANDS": "Badlands", + "CAVE": "Cave", + "DESERT": "Desert", + "ICE_CAVE": "Ice Cave", + "MEADOW": "Meadow", + "POWER_PLANT": "Power Plant", + "VOLCANO": "Volcano", + "GRAVEYARD": "Graveyard", + "DOJO": "Dojo", + "FACTORY": "Factory", + "RUINS": "Ancient Ruins", + "WASTELAND": "Wasteland", + "ABYSS": "Abyss", + "SPACE": "Space", + "CONSTRUCTION_SITE": "Construction Site", + "JUNGLE": "Jungle", + "FAIRY_CAVE": "Fairy Cave", + "TEMPLE": "Temple", + "SLUM": "Slum", + "SNOWY_FOREST": "Snowy Forest", + "ISLAND": "Island", + "LABORATORY": "Laboratory", + "END": "???", +} as const; diff --git a/src/locales/zh_TW/config.ts b/src/locales/zh_TW/config.ts index 7dccc07d50e..9a88d7ae7c4 100644 --- a/src/locales/zh_TW/config.ts +++ b/src/locales/zh_TW/config.ts @@ -21,6 +21,7 @@ import { weather } from "./weather"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { voucher } from "./voucher"; +import { biome } from "./biome"; export const zhTWConfig = { ability: ability, @@ -48,4 +49,5 @@ export const zhTWConfig = { battleMessageUiHandler: battleMessageUiHandler, berry: berry, voucher: voucher, + biome: biome, }; diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index 81dab2e3a51..a66a075b5d5 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -161,6 +161,7 @@ declare module "i18next" { battleMessageUiHandler: SimpleTranslationEntries; berry: BerryTranslationEntries; voucher: SimpleTranslationEntries; + biome: SimpleTranslationEntries; }; } } From b1704781192697a8042c0dc4e1098f242706cacf Mon Sep 17 00:00:00 2001 From: Greenlamp2 <44787002+Greenlamp2@users.noreply.github.com> Date: Sun, 26 May 2024 03:36:09 +0200 Subject: [PATCH 58/61] fix conflict without rebase (#1186) --- public/images/pokemon/exp/890-eternamax.png | Bin 0 -> 40595 bytes public/images/pokemon/variant/623_1.json | 3590 +++++++++++++++++ public/images/pokemon/variant/862.json | 32 + .../images/pokemon/variant/_masterlist.json | 65 +- .../pokemon/variant/back/212-mega_2.json | 41 + public/images/pokemon/variant/back/623_1.json | 3590 +++++++++++++++++ public/images/pokemon/variant/back/862.json | 32 + .../pokemon/variant/exp/212-mega_3.json | 2540 ++++++++++++ public/images/pokemon/variant/exp/696_2.json | 692 ++++ public/images/pokemon/variant/exp/729_2.json | 272 ++ public/images/pokemon/variant/exp/729_3.json | 272 ++ public/images/pokemon/variant/exp/747_3.json | 188 + public/images/pokemon/variant/exp/754_2.json | 1133 ++++++ public/images/pokemon/variant/exp/754_3.json | 1133 ++++++ public/images/pokemon/variant/exp/862.json | 32 + .../pokemon/variant/exp/890-eternamax.json | 28 + public/images/pokemon/variant/exp/890.json | 19 + .../pokemon/variant/exp/back/212-mega_2.json | 440 ++ .../pokemon/variant/exp/back/212-mega_3.json | 440 ++ .../pokemon/variant/exp/back/754_2.json | 1112 +++++ .../images/pokemon/variant/exp/back/862.json | 30 + .../images/pokemon/variant/exp/back/970.json | 26 + src/test/pokemonSprite.test.ts | 42 +- 23 files changed, 15712 insertions(+), 37 deletions(-) create mode 100644 public/images/pokemon/exp/890-eternamax.png create mode 100644 public/images/pokemon/variant/623_1.json create mode 100644 public/images/pokemon/variant/862.json create mode 100644 public/images/pokemon/variant/back/212-mega_2.json create mode 100644 public/images/pokemon/variant/back/623_1.json create mode 100644 public/images/pokemon/variant/back/862.json create mode 100644 public/images/pokemon/variant/exp/212-mega_3.json create mode 100644 public/images/pokemon/variant/exp/696_2.json create mode 100644 public/images/pokemon/variant/exp/729_2.json create mode 100644 public/images/pokemon/variant/exp/729_3.json create mode 100644 public/images/pokemon/variant/exp/747_3.json create mode 100644 public/images/pokemon/variant/exp/754_2.json create mode 100644 public/images/pokemon/variant/exp/754_3.json create mode 100644 public/images/pokemon/variant/exp/862.json create mode 100644 public/images/pokemon/variant/exp/890-eternamax.json create mode 100644 public/images/pokemon/variant/exp/890.json create mode 100644 public/images/pokemon/variant/exp/back/212-mega_2.json create mode 100644 public/images/pokemon/variant/exp/back/212-mega_3.json create mode 100644 public/images/pokemon/variant/exp/back/754_2.json create mode 100644 public/images/pokemon/variant/exp/back/862.json create mode 100644 public/images/pokemon/variant/exp/back/970.json diff --git a/public/images/pokemon/exp/890-eternamax.png b/public/images/pokemon/exp/890-eternamax.png new file mode 100644 index 0000000000000000000000000000000000000000..33c8f5f96318b1cf75ab8b8add7e86c833c4b8da GIT binary patch literal 40595 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 D0Q9kL literal 0 HcmV?d00001 diff --git a/public/images/pokemon/variant/623_1.json b/public/images/pokemon/variant/623_1.json new file mode 100644 index 00000000000..3a12266f102 --- /dev/null +++ b/public/images/pokemon/variant/623_1.json @@ -0,0 +1,3590 @@ +{ + "textures": [ + { + "image": "623_1.png", + "format": "RGBA8888", + "size": { + "w": 401, + "h": 401 + }, + "scale": 1, + "frames": [ + { + "filename": "0121.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 83, + "h": 80 + }, + "frame": { + "x": 0, + "y": 0, + "w": 83, + "h": 80 + } + }, + { + "filename": "0122.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 83, + "h": 80 + }, + "frame": { + "x": 0, + "y": 0, + "w": 83, + "h": 80 + } + }, + { + "filename": "0123.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 83, + "h": 80 + }, + "frame": { + "x": 0, + "y": 80, + "w": 83, + "h": 80 + } + }, + { + "filename": "0124.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 83, + "h": 80 + }, + "frame": { + "x": 0, + "y": 80, + "w": 83, + "h": 80 + } + }, + { + "filename": "0125.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 83, + "h": 80 + }, + "frame": { + "x": 83, + "y": 0, + "w": 83, + "h": 80 + } + }, + { + "filename": "0126.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 83, + "h": 80 + }, + "frame": { + "x": 83, + "y": 0, + "w": 83, + "h": 80 + } + }, + { + "filename": "0115.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 83, + "h": 79 + }, + "frame": { + "x": 0, + "y": 160, + "w": 83, + "h": 79 + } + }, + { + "filename": "0116.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 83, + "h": 79 + }, + "frame": { + "x": 0, + "y": 160, + "w": 83, + "h": 79 + } + }, + { + "filename": "0117.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 83, + "h": 79 + }, + "frame": { + "x": 83, + "y": 80, + "w": 83, + "h": 79 + } + }, + { + "filename": "0118.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 83, + "h": 79 + }, + "frame": { + "x": 83, + "y": 80, + "w": 83, + "h": 79 + } + }, + { + "filename": "0119.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 83, + "h": 79 + }, + "frame": { + "x": 166, + "y": 0, + "w": 83, + "h": 79 + } + }, + { + "filename": "0120.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 83, + "h": 79 + }, + "frame": { + "x": 166, + "y": 0, + "w": 83, + "h": 79 + } + }, + { + "filename": "0113.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 81, + "h": 80 + }, + "frame": { + "x": 0, + "y": 239, + "w": 81, + "h": 80 + } + }, + { + "filename": "0114.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 81, + "h": 80 + }, + "frame": { + "x": 0, + "y": 239, + "w": 81, + "h": 80 + } + }, + { + "filename": "0127.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 81, + "h": 80 + }, + "frame": { + "x": 83, + "y": 159, + "w": 81, + "h": 80 + } + }, + { + "filename": "0128.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 81, + "h": 80 + }, + "frame": { + "x": 83, + "y": 159, + "w": 81, + "h": 80 + } + }, + { + "filename": "0129.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 81, + "h": 80 + }, + "frame": { + "x": 166, + "y": 79, + "w": 81, + "h": 80 + } + }, + { + "filename": "0130.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 81, + "h": 80 + }, + "frame": { + "x": 166, + "y": 79, + "w": 81, + "h": 80 + } + }, + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0033.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0034.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0035.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0036.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0067.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0068.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0069.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0070.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0101.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0102.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0103.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0104.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0135.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0136.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0137.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0138.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0169.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0170.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 0, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0031.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0032.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0037.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0038.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0065.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0066.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0071.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0072.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0099.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0100.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0139.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0140.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0167.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0168.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 81, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0105.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 164, + "y": 159, + "w": 79, + "h": 80 + } + }, + { + "filename": "0106.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 164, + "y": 159, + "w": 79, + "h": 80 + } + }, + { + "filename": "0133.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 164, + "y": 159, + "w": 79, + "h": 80 + } + }, + { + "filename": "0134.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 164, + "y": 159, + "w": 79, + "h": 80 + } + }, + { + "filename": "0107.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 79, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0108.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 79, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0109.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 160, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0110.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 160, + "y": 239, + "w": 79, + "h": 80 + } + }, + { + "filename": "0111.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 158, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0112.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 158, + "y": 319, + "w": 79, + "h": 80 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0029.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0030.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0039.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0040.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0063.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0064.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0073.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0074.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0097.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0098.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0141.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0142.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0165.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0166.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 249, + "y": 0, + "w": 79, + "h": 79 + } + }, + { + "filename": "0131.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 247, + "y": 79, + "w": 79, + "h": 80 + } + }, + { + "filename": "0132.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 79, + "h": 80 + }, + "frame": { + "x": 247, + "y": 79, + "w": 79, + "h": 80 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0027.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0028.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0041.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0042.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0061.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0062.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0075.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0076.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0095.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0096.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0143.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0144.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0163.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0164.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 79, + "h": 79 + }, + "frame": { + "x": 243, + "y": 159, + "w": 79, + "h": 79 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0025.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0026.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0043.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0044.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0059.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0060.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0077.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0078.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0093.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0094.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0145.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0146.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0161.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0162.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 2, + "w": 79, + "h": 78 + }, + "frame": { + "x": 322, + "y": 159, + "w": 79, + "h": 78 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0023.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0024.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0045.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0046.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0057.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0058.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0079.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0080.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0091.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0092.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0147.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0148.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0159.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0160.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 3, + "w": 79, + "h": 77 + }, + "frame": { + "x": 322, + "y": 237, + "w": 79, + "h": 77 + } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0021.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0022.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0047.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0048.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0055.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0056.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0081.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0082.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0089.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0090.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0149.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0150.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0157.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0158.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 81, + "h": 77 + }, + "frame": { + "x": 239, + "y": 239, + "w": 81, + "h": 77 + } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0020.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0049.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0050.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0053.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0054.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0083.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0084.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0087.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0088.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0151.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0152.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0155.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0156.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 81, + "h": 76 + }, + "frame": { + "x": 320, + "y": 314, + "w": 81, + "h": 76 + } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 82, + "h": 75 + }, + "frame": { + "x": 237, + "y": 319, + "w": 82, + "h": 75 + } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 82, + "h": 75 + }, + "frame": { + "x": 237, + "y": 319, + "w": 82, + "h": 75 + } + }, + { + "filename": "0051.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 82, + "h": 75 + }, + "frame": { + "x": 237, + "y": 319, + "w": 82, + "h": 75 + } + }, + { + "filename": "0052.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 82, + "h": 75 + }, + "frame": { + "x": 237, + "y": 319, + "w": 82, + "h": 75 + } + }, + { + "filename": "0085.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 82, + "h": 75 + }, + "frame": { + "x": 237, + "y": 319, + "w": 82, + "h": 75 + } + }, + { + "filename": "0086.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 82, + "h": 75 + }, + "frame": { + "x": 237, + "y": 319, + "w": 82, + "h": 75 + } + }, + { + "filename": "0153.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 82, + "h": 75 + }, + "frame": { + "x": 237, + "y": 319, + "w": 82, + "h": 75 + } + }, + { + "filename": "0154.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 83, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 82, + "h": 75 + }, + "frame": { + "x": 237, + "y": 319, + "w": 82, + "h": 75 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:76e8001e2d30637bbf46d66a3c01cc86:32d4799151bd0a494e1cc16c07cc1afb:869abf8e0bcb859d5abfb33d03e5db07$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/862.json b/public/images/pokemon/variant/862.json new file mode 100644 index 00000000000..8b25c875e3f --- /dev/null +++ b/public/images/pokemon/variant/862.json @@ -0,0 +1,32 @@ +{ + "1": { + "1b2627": "1b2627", + "474749": "156a66", + "010101": "010101", + "303034": "094448", + "f5f5f6": "f5ffea", + "b2b3b2": "90c093", + "949496": "1c8155", + "282730": "002729", + "242428": "001b1a", + "6f7071": "01473a", + "df84ad": "ff69fa", + "9b4f69": "d414dd", + "fcfcfc": "fcfcfc" + }, + "2": { + "1b2627": "060724", + "474749": "8655e1", + "010101": "010101", + "303034": "5a3eb9", + "f5f5f6": "342d4c", + "b2b3b2": "18133d", + "949496": "302e89", + "282730": "180c46", + "242428": "161058", + "6f7071": "2e1d7b", + "df84ad": "54f1ff", + "9b4f69": "0099ce", + "fcfcfc": "fcfcfc" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/_masterlist.json b/public/images/pokemon/variant/_masterlist.json index ea9fe53622b..03d0e2ef1c1 100644 --- a/public/images/pokemon/variant/_masterlist.json +++ b/public/images/pokemon/variant/_masterlist.json @@ -1220,7 +1220,7 @@ 1 ], "623": [ - 1, + 2, 1, 1 ], @@ -1754,6 +1754,11 @@ 1, 1 ], + "862": [ + 0, + 1, + 1 + ], "863": [ 0, 1, @@ -1796,8 +1801,8 @@ ], "890-eternamax": [ 0, - 2, - 2 + 1, + 1 ], "890": [ 0, @@ -2499,7 +2504,7 @@ ], "212-mega": [ 1, - 1, + 2, 1 ], "212": [ @@ -2920,7 +2925,7 @@ "426": [ 0, 1, - 1 + 2 ], "427": [ 0, @@ -3323,7 +3328,7 @@ 1 ], "623": [ - 1, + 2, 1, 1 ], @@ -3857,6 +3862,11 @@ 1, 1 ], + "862": [ + 0, + 1, + 1 + ], "863": [ 0, 1, @@ -4175,7 +4185,7 @@ ], "399": [ 0, - 1, + 2, 1 ], "400": [ @@ -4249,7 +4259,7 @@ "212-mega": [ 1, 1, - 1 + 2 ], "282-mega": [ 0, @@ -4473,7 +4483,7 @@ ], "696": [ 0, - 1, + 2, 2 ], "697": [ @@ -4553,8 +4563,8 @@ ], "729": [ 0, - 1, - 1 + 2, + 2 ], "730": [ 0, @@ -4564,7 +4574,7 @@ "747": [ 0, 2, - 1 + 2 ], "748": [ 0, @@ -4578,8 +4588,8 @@ ], "754": [ 0, - 1, - 1 + 2, + 2 ], "755": [ 0, @@ -4746,6 +4756,11 @@ 1, 1 ], + "862": [ + 0, + 1, + 1 + ], "863": [ 0, 1, @@ -4789,7 +4804,12 @@ "890": [ 0, 2, - 2 + 1 + ], + "890-eternamax": [ + 0, + 1, + 1 ], "900": [ 0, @@ -5070,8 +5090,8 @@ ], "212-mega": [ 1, - 1, - 1 + 2, + 2 ], "282-mega": [ 0, @@ -5400,7 +5420,7 @@ ], "754": [ 0, - 1, + 2, 2 ], "755": [ @@ -5563,6 +5583,11 @@ 1, 1 ], + "862": [ + 0, + 1, + 1 + ], "863": [ 0, 1, @@ -5725,8 +5750,8 @@ ], "970": [ 0, - 2, - 2 + 1, + 1 ], "973": [ 1, diff --git a/public/images/pokemon/variant/back/212-mega_2.json b/public/images/pokemon/variant/back/212-mega_2.json new file mode 100644 index 00000000000..4db2440a4d9 --- /dev/null +++ b/public/images/pokemon/variant/back/212-mega_2.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "212-mega_2.png", + "format": "RGBA8888", + "size": { + "w": 86, + "h": 86 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 72, + "h": 86 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 72, + "h": 86 + }, + "frame": { + "x": 0, + "y": 0, + "w": 72, + "h": 86 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:3fba14a8cd6c5a8717bb5ccf414ed76d:5ebfc3bcaa77a0ff9d55a9b15383f0ef:d0a607721d6bb74ae9b6d486116d85e3$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/back/623_1.json b/public/images/pokemon/variant/back/623_1.json new file mode 100644 index 00000000000..893fe66c597 --- /dev/null +++ b/public/images/pokemon/variant/back/623_1.json @@ -0,0 +1,3590 @@ +{ + "textures": [ + { + "image": "623_1.png", + "format": "RGBA8888", + "size": { + "w": 392, + "h": 392 + }, + "scale": 1, + "frames": [ + { + "filename": "0123.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 78, + "h": 79 + }, + "frame": { + "x": 0, + "y": 0, + "w": 78, + "h": 79 + } + }, + { + "filename": "0124.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 78, + "h": 79 + }, + "frame": { + "x": 0, + "y": 0, + "w": 78, + "h": 79 + } + }, + { + "filename": "0115.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 78, + "h": 78 + }, + "frame": { + "x": 0, + "y": 79, + "w": 78, + "h": 78 + } + }, + { + "filename": "0116.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 78, + "h": 78 + }, + "frame": { + "x": 0, + "y": 79, + "w": 78, + "h": 78 + } + }, + { + "filename": "0117.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 78, + "h": 78 + }, + "frame": { + "x": 78, + "y": 0, + "w": 78, + "h": 78 + } + }, + { + "filename": "0118.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 78, + "h": 78 + }, + "frame": { + "x": 78, + "y": 0, + "w": 78, + "h": 78 + } + }, + { + "filename": "0119.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 78, + "h": 78 + }, + "frame": { + "x": 78, + "y": 0, + "w": 78, + "h": 78 + } + }, + { + "filename": "0120.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 78, + "h": 78 + }, + "frame": { + "x": 78, + "y": 0, + "w": 78, + "h": 78 + } + }, + { + "filename": "0121.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 78, + "h": 78 + }, + "frame": { + "x": 0, + "y": 157, + "w": 78, + "h": 78 + } + }, + { + "filename": "0122.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 78, + "h": 78 + }, + "frame": { + "x": 0, + "y": 157, + "w": 78, + "h": 78 + } + }, + { + "filename": "0125.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 77, + "h": 79 + }, + "frame": { + "x": 78, + "y": 78, + "w": 77, + "h": 79 + } + }, + { + "filename": "0126.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 1, + "y": 1, + "w": 77, + "h": 79 + }, + "frame": { + "x": 78, + "y": 78, + "w": 77, + "h": 79 + } + }, + { + "filename": "0127.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 76, + "h": 80 + }, + "frame": { + "x": 0, + "y": 235, + "w": 76, + "h": 80 + } + }, + { + "filename": "0128.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 76, + "h": 80 + }, + "frame": { + "x": 0, + "y": 235, + "w": 76, + "h": 80 + } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0020.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0049.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0050.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0053.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0054.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0083.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0084.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0087.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0088.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0151.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0152.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0155.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0156.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 3, + "w": 74, + "h": 77 + }, + "frame": { + "x": 0, + "y": 315, + "w": 74, + "h": 77 + } + }, + { + "filename": "0113.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 75, + "h": 79 + }, + "frame": { + "x": 156, + "y": 0, + "w": 75, + "h": 79 + } + }, + { + "filename": "0114.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 75, + "h": 79 + }, + "frame": { + "x": 156, + "y": 0, + "w": 75, + "h": 79 + } + }, + { + "filename": "0111.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 74, + "h": 80 + }, + "frame": { + "x": 231, + "y": 0, + "w": 74, + "h": 80 + } + }, + { + "filename": "0112.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 74, + "h": 80 + }, + "frame": { + "x": 231, + "y": 0, + "w": 74, + "h": 80 + } + }, + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0033.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0034.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0035.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0036.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0067.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0068.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0069.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0070.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0101.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0102.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0103.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0104.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0135.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0136.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0137.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0138.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0169.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0170.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 305, + "y": 0, + "w": 73, + "h": 80 + } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0021.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0022.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0047.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0048.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0055.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0056.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0081.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0082.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0089.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0090.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0149.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0150.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0157.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0158.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 2, + "w": 74, + "h": 78 + }, + "frame": { + "x": 78, + "y": 157, + "w": 74, + "h": 78 + } + }, + { + "filename": "0129.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 76, + "y": 235, + "w": 73, + "h": 80 + } + }, + { + "filename": "0130.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 73, + "h": 80 + }, + "frame": { + "x": 76, + "y": 235, + "w": 73, + "h": 80 + } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 3, + "y": 4, + "w": 75, + "h": 76 + }, + "frame": { + "x": 74, + "y": 315, + "w": 75, + "h": 76 + } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 3, + "y": 4, + "w": 75, + "h": 76 + }, + "frame": { + "x": 74, + "y": 315, + "w": 75, + "h": 76 + } + }, + { + "filename": "0051.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 3, + "y": 4, + "w": 75, + "h": 76 + }, + "frame": { + "x": 74, + "y": 315, + "w": 75, + "h": 76 + } + }, + { + "filename": "0052.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 3, + "y": 4, + "w": 75, + "h": 76 + }, + "frame": { + "x": 74, + "y": 315, + "w": 75, + "h": 76 + } + }, + { + "filename": "0085.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 3, + "y": 4, + "w": 75, + "h": 76 + }, + "frame": { + "x": 74, + "y": 315, + "w": 75, + "h": 76 + } + }, + { + "filename": "0086.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 3, + "y": 4, + "w": 75, + "h": 76 + }, + "frame": { + "x": 74, + "y": 315, + "w": 75, + "h": 76 + } + }, + { + "filename": "0153.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 3, + "y": 4, + "w": 75, + "h": 76 + }, + "frame": { + "x": 74, + "y": 315, + "w": 75, + "h": 76 + } + }, + { + "filename": "0154.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 3, + "y": 4, + "w": 75, + "h": 76 + }, + "frame": { + "x": 74, + "y": 315, + "w": 75, + "h": 76 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0031.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0032.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0037.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0038.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0065.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0066.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0071.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0072.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0099.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0100.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0139.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0140.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0167.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0168.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 155, + "y": 79, + "w": 72, + "h": 80 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0029.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0030.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0039.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0040.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0063.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0064.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0073.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0074.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0097.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0098.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0141.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0142.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0165.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0166.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 227, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0027.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0028.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0041.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0042.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0061.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0062.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0075.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0076.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0095.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0096.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0143.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0144.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0163.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0164.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 299, + "y": 80, + "w": 72, + "h": 80 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0025.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0026.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0043.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0044.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0059.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0060.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0077.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0078.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0093.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0094.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0145.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0146.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0161.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0162.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 72, + "h": 79 + }, + "frame": { + "x": 152, + "y": 159, + "w": 72, + "h": 79 + } + }, + { + "filename": "0105.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 149, + "y": 238, + "w": 72, + "h": 80 + } + }, + { + "filename": "0106.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 149, + "y": 238, + "w": 72, + "h": 80 + } + }, + { + "filename": "0133.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 149, + "y": 238, + "w": 72, + "h": 80 + } + }, + { + "filename": "0134.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 149, + "y": 238, + "w": 72, + "h": 80 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0023.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0024.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0045.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0046.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0057.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0058.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0079.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0080.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0091.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0092.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0147.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0148.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0159.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0160.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 72, + "h": 78 + }, + "frame": { + "x": 224, + "y": 160, + "w": 72, + "h": 78 + } + }, + { + "filename": "0107.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 221, + "y": 238, + "w": 72, + "h": 80 + } + }, + { + "filename": "0108.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 221, + "y": 238, + "w": 72, + "h": 80 + } + }, + { + "filename": "0131.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 296, + "y": 160, + "w": 72, + "h": 80 + } + }, + { + "filename": "0132.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 72, + "h": 80 + }, + "frame": { + "x": 296, + "y": 160, + "w": 72, + "h": 80 + } + }, + { + "filename": "0109.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 71, + "h": 80 + }, + "frame": { + "x": 293, + "y": 240, + "w": 71, + "h": 80 + } + }, + { + "filename": "0110.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 78, + "h": 80 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 71, + "h": 80 + }, + "frame": { + "x": 293, + "y": 240, + "w": 71, + "h": 80 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:d2a0b4f8d67951bad9facc61ed8ecd29:029ea763f8f267a92908e8da6c5b70c9:869abf8e0bcb859d5abfb33d03e5db07$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/back/862.json b/public/images/pokemon/variant/back/862.json new file mode 100644 index 00000000000..8f323fb4822 --- /dev/null +++ b/public/images/pokemon/variant/back/862.json @@ -0,0 +1,32 @@ +{ + "1": { + "1b2627": "1b2627", + "010101": "010101", + "474749": "156a66", + "303034": "094448", + "6f7071": "01473a", + "b2b3b2": "90c093", + "463f39": "001b1a", + "949496": "1c8155", + "f5f5f6": "f5ffea", + "9b4f69": "d414dd", + "df84ad": "ff69fa", + "2b2d2e": "052332", + "fcfcfc": "fcfcfc" + }, + "2": { + "1b2627": "180c46", + "010101": "010101", + "474749": "8655e1", + "303034": "5a3eb9", + "6f7071": "2e1d7b", + "b2b3b2": "1f1a43", + "463f39": "161058", + "949496": "302e89", + "f5f5f6": "342d4c", + "9b4f69": "0099ce", + "df84ad": "54f1ff", + "2b2d2e": "060429", + "fcfcfc": "fcfcfc" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/212-mega_3.json b/public/images/pokemon/variant/exp/212-mega_3.json new file mode 100644 index 00000000000..b4d41a44430 --- /dev/null +++ b/public/images/pokemon/variant/exp/212-mega_3.json @@ -0,0 +1,2540 @@ +{ + "textures": [ + { + "image": "212-mega_3.png", + "format": "RGBA8888", + "size": { + "w": 486, + "h": 486 + }, + "scale": 1, + "frames": [ + { + "filename": "0105.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 81 + }, + "frame": { + "x": 0, + "y": 0, + "w": 74, + "h": 81 + } + }, + { + "filename": "0109.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 81 + }, + "frame": { + "x": 0, + "y": 0, + "w": 74, + "h": 81 + } + }, + { + "filename": "0106.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 81 + }, + "frame": { + "x": 74, + "y": 0, + "w": 74, + "h": 81 + } + }, + { + "filename": "0108.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 81 + }, + "frame": { + "x": 74, + "y": 0, + "w": 74, + "h": 81 + } + }, + { + "filename": "0110.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 81 + }, + "frame": { + "x": 74, + "y": 0, + "w": 74, + "h": 81 + } + }, + { + "filename": "0112.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 81 + }, + "frame": { + "x": 74, + "y": 0, + "w": 74, + "h": 81 + } + }, + { + "filename": "0107.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 81 + }, + "frame": { + "x": 148, + "y": 0, + "w": 74, + "h": 81 + } + }, + { + "filename": "0111.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 81 + }, + "frame": { + "x": 148, + "y": 0, + "w": 74, + "h": 81 + } + }, + { + "filename": "0101.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 73, + "h": 81 + }, + "frame": { + "x": 222, + "y": 0, + "w": 73, + "h": 81 + } + }, + { + "filename": "0102.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 73, + "h": 81 + }, + "frame": { + "x": 295, + "y": 0, + "w": 73, + "h": 81 + } + }, + { + "filename": "0103.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 73, + "h": 81 + }, + "frame": { + "x": 368, + "y": 0, + "w": 73, + "h": 81 + } + }, + { + "filename": "0104.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 73, + "h": 81 + }, + "frame": { + "x": 0, + "y": 81, + "w": 73, + "h": 81 + } + }, + { + "filename": "0113.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 73, + "h": 81 + }, + "frame": { + "x": 73, + "y": 81, + "w": 73, + "h": 81 + } + }, + { + "filename": "0114.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 73, + "h": 81 + }, + "frame": { + "x": 146, + "y": 81, + "w": 73, + "h": 81 + } + }, + { + "filename": "0115.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 73, + "h": 81 + }, + "frame": { + "x": 219, + "y": 81, + "w": 73, + "h": 81 + } + }, + { + "filename": "0116.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 73, + "h": 81 + }, + "frame": { + "x": 292, + "y": 81, + "w": 73, + "h": 81 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 365, + "y": 81, + "w": 71, + "h": 81 + } + }, + { + "filename": "0030.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 365, + "y": 81, + "w": 71, + "h": 81 + } + }, + { + "filename": "0054.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 365, + "y": 81, + "w": 71, + "h": 81 + } + }, + { + "filename": "0078.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 365, + "y": 81, + "w": 71, + "h": 81 + } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 0, + "y": 162, + "w": 71, + "h": 81 + } + }, + { + "filename": "0043.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 0, + "y": 162, + "w": 71, + "h": 81 + } + }, + { + "filename": "0067.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 0, + "y": 162, + "w": 71, + "h": 81 + } + }, + { + "filename": "0091.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 0, + "y": 162, + "w": 71, + "h": 81 + } + }, + { + "filename": "0099.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 71, + "y": 162, + "w": 71, + "h": 81 + } + }, + { + "filename": "0100.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 142, + "y": 162, + "w": 71, + "h": 81 + } + }, + { + "filename": "0117.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 213, + "y": 162, + "w": 71, + "h": 81 + } + }, + { + "filename": "0118.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 71, + "h": 81 + }, + "frame": { + "x": 284, + "y": 162, + "w": 71, + "h": 81 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 355, + "y": 162, + "w": 70, + "h": 81 + } + }, + { + "filename": "0027.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 355, + "y": 162, + "w": 70, + "h": 81 + } + }, + { + "filename": "0051.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 355, + "y": 162, + "w": 70, + "h": 81 + } + }, + { + "filename": "0075.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 355, + "y": 162, + "w": 70, + "h": 81 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 0, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0031.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 0, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0055.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 0, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0079.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 0, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 70, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0042.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 70, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0066.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 70, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0090.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 70, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0022.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 140, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0046.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 140, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0070.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 140, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0094.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 70, + "h": 81 + }, + "frame": { + "x": 140, + "y": 243, + "w": 70, + "h": 81 + } + }, + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 210, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0025.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 210, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0049.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 210, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0073.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 210, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 279, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0026.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 279, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0050.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 279, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0074.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 279, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 348, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0029.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 348, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0053.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 348, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0077.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 348, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 417, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0032.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 417, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0056.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 417, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0080.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 417, + "y": 243, + "w": 69, + "h": 81 + } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 0, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0041.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 0, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0065.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 0, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0089.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 0, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0020.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 69, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0044.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 69, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0068.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 69, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0092.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 69, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0023.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 138, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0047.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 138, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0071.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 138, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0095.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 138, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0024.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 207, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0048.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 207, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0072.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 207, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0096.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 207, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0097.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 276, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0098.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 345, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0119.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 414, + "y": 324, + "w": 69, + "h": 81 + } + }, + { + "filename": "0120.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 69, + "h": 81 + }, + "frame": { + "x": 0, + "y": 405, + "w": 69, + "h": 81 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 69, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0028.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 69, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0052.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 69, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0076.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 69, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 137, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 137, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0033.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 137, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0037.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 137, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0057.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 137, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0061.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 137, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0081.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 137, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0085.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 137, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0034.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0036.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0038.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0040.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0058.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0060.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0062.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0064.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0082.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0084.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0086.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0088.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 205, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 273, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 273, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0035.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 273, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0039.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 273, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0059.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 273, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0063.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 273, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0083.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 273, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0087.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 273, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0021.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 341, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0045.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 341, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0069.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 341, + "y": 405, + "w": 68, + "h": 81 + } + }, + { + "filename": "0093.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 74, + "h": 81 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 68, + "h": 81 + }, + "frame": { + "x": 341, + "y": 405, + "w": 68, + "h": 81 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:666ada1ce52f0d7f3c112d5c211fd67e:3a1315874d0fffd95b7d0d57a76f9d9d:d0a607721d6bb74ae9b6d486116d85e3$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/696_2.json b/public/images/pokemon/variant/exp/696_2.json new file mode 100644 index 00000000000..565ab02f4ae --- /dev/null +++ b/public/images/pokemon/variant/exp/696_2.json @@ -0,0 +1,692 @@ +{ + "textures": [ + { + "image": "696_2.png", + "format": "RGBA8888", + "size": { + "w": 135, + "h": 135 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 53, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 53, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 53, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 53, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 53, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 53, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 53, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0020.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 53, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0031.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 53, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0032.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 53, + "y": 0, + "w": 53, + "h": 46 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 0, + "y": 46, + "w": 53, + "h": 46 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 53, + "h": 46 + }, + "frame": { + "x": 0, + "y": 46, + "w": 53, + "h": 46 + } + }, + { + "filename": "0025.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 53, + "h": 43 + }, + "frame": { + "x": 0, + "y": 92, + "w": 53, + "h": 43 + } + }, + { + "filename": "0026.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 53, + "h": 43 + }, + "frame": { + "x": 0, + "y": 92, + "w": 53, + "h": 43 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 53, + "h": 45 + }, + "frame": { + "x": 53, + "y": 46, + "w": 53, + "h": 45 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 53, + "h": 45 + }, + "frame": { + "x": 53, + "y": 46, + "w": 53, + "h": 45 + } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 53, + "h": 45 + }, + "frame": { + "x": 53, + "y": 46, + "w": 53, + "h": 45 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 53, + "h": 45 + }, + "frame": { + "x": 53, + "y": 46, + "w": 53, + "h": 45 + } + }, + { + "filename": "0021.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 53, + "h": 45 + }, + "frame": { + "x": 53, + "y": 46, + "w": 53, + "h": 45 + } + }, + { + "filename": "0022.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 53, + "h": 45 + }, + "frame": { + "x": 53, + "y": 46, + "w": 53, + "h": 45 + } + }, + { + "filename": "0029.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 53, + "h": 45 + }, + "frame": { + "x": 53, + "y": 46, + "w": 53, + "h": 45 + } + }, + { + "filename": "0030.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 53, + "h": 45 + }, + "frame": { + "x": 53, + "y": 46, + "w": 53, + "h": 45 + } + }, + { + "filename": "0023.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 53, + "h": 44 + }, + "frame": { + "x": 53, + "y": 91, + "w": 53, + "h": 44 + } + }, + { + "filename": "0024.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 53, + "h": 44 + }, + "frame": { + "x": 53, + "y": 91, + "w": 53, + "h": 44 + } + }, + { + "filename": "0027.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 53, + "h": 44 + }, + "frame": { + "x": 53, + "y": 91, + "w": 53, + "h": 44 + } + }, + { + "filename": "0028.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 53, + "h": 46 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 53, + "h": 44 + }, + "frame": { + "x": 53, + "y": 91, + "w": 53, + "h": 44 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:f6c90e8287d3ce2aa68c9fef98f6e12f:24cf84ba4764bd88b4e751ca1911a8d5:58b7763fb9abdd043e9bfa400cfafdef$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/729_2.json b/public/images/pokemon/variant/exp/729_2.json new file mode 100644 index 00000000000..530888eaf6e --- /dev/null +++ b/public/images/pokemon/variant/exp/729_2.json @@ -0,0 +1,272 @@ +{ + "textures": [ + { + "image": "729_2.png", + "format": "RGBA8888", + "size": { + "w": 141, + "h": 141 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 49, + "h": 51 + }, + "frame": { + "x": 0, + "y": 0, + "w": 49, + "h": 51 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 49, + "h": 51 + }, + "frame": { + "x": 0, + "y": 51, + "w": 49, + "h": 51 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 49, + "h": 51 + }, + "frame": { + "x": 0, + "y": 51, + "w": 49, + "h": 51 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 48, + "h": 50 + }, + "frame": { + "x": 49, + "y": 0, + "w": 48, + "h": 50 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 48, + "h": 50 + }, + "frame": { + "x": 49, + "y": 0, + "w": 48, + "h": 50 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 42, + "h": 47 + }, + "frame": { + "x": 97, + "y": 0, + "w": 42, + "h": 47 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 42, + "h": 47 + }, + "frame": { + "x": 97, + "y": 0, + "w": 42, + "h": 47 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 40, + "h": 47 + }, + "frame": { + "x": 97, + "y": 47, + "w": 40, + "h": 47 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 46, + "h": 48 + }, + "frame": { + "x": 49, + "y": 50, + "w": 46, + "h": 48 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 46, + "h": 48 + }, + "frame": { + "x": 49, + "y": 50, + "w": 46, + "h": 48 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 45, + "h": 47 + }, + "frame": { + "x": 95, + "y": 94, + "w": 45, + "h": 47 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 45, + "h": 47 + }, + "frame": { + "x": 95, + "y": 94, + "w": 45, + "h": 47 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:4df3ec883b357e664a50e3015060795f:29a8d34f9df9fa51691fda1da5961207:b2d5dd692ec79c7357afdffa7b3670a9$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/729_3.json b/public/images/pokemon/variant/exp/729_3.json new file mode 100644 index 00000000000..632cef739a2 --- /dev/null +++ b/public/images/pokemon/variant/exp/729_3.json @@ -0,0 +1,272 @@ +{ + "textures": [ + { + "image": "729_3.png", + "format": "RGBA8888", + "size": { + "w": 141, + "h": 141 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 49, + "h": 51 + }, + "frame": { + "x": 0, + "y": 0, + "w": 49, + "h": 51 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 49, + "h": 51 + }, + "frame": { + "x": 0, + "y": 51, + "w": 49, + "h": 51 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 49, + "h": 51 + }, + "frame": { + "x": 0, + "y": 51, + "w": 49, + "h": 51 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 48, + "h": 50 + }, + "frame": { + "x": 49, + "y": 0, + "w": 48, + "h": 50 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 48, + "h": 50 + }, + "frame": { + "x": 49, + "y": 0, + "w": 48, + "h": 50 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 42, + "h": 47 + }, + "frame": { + "x": 97, + "y": 0, + "w": 42, + "h": 47 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 42, + "h": 47 + }, + "frame": { + "x": 97, + "y": 0, + "w": 42, + "h": 47 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 40, + "h": 47 + }, + "frame": { + "x": 97, + "y": 47, + "w": 40, + "h": 47 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 46, + "h": 48 + }, + "frame": { + "x": 49, + "y": 50, + "w": 46, + "h": 48 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 46, + "h": 48 + }, + "frame": { + "x": 49, + "y": 50, + "w": 46, + "h": 48 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 45, + "h": 47 + }, + "frame": { + "x": 95, + "y": 94, + "w": 45, + "h": 47 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 50, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 45, + "h": 47 + }, + "frame": { + "x": 95, + "y": 94, + "w": 45, + "h": 47 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:4df3ec883b357e664a50e3015060795f:29a8d34f9df9fa51691fda1da5961207:b2d5dd692ec79c7357afdffa7b3670a9$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/747_3.json b/public/images/pokemon/variant/exp/747_3.json new file mode 100644 index 00000000000..bb29c3787a8 --- /dev/null +++ b/public/images/pokemon/variant/exp/747_3.json @@ -0,0 +1,188 @@ +{ + "textures": [ + { + "image": "747_3.png", + "format": "RGBA8888", + "size": { + "w": 110, + "h": 110 + }, + "scale": 1, + "frames": [ + { + "filename": "0003.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 55, + "h": 47 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 55, + "h": 47 + }, + "frame": { + "x": 0, + "y": 0, + "w": 55, + "h": 47 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 55, + "h": 47 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 55, + "h": 47 + }, + "frame": { + "x": 0, + "y": 0, + "w": 55, + "h": 47 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 55, + "h": 47 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 55, + "h": 47 + }, + "frame": { + "x": 0, + "y": 0, + "w": 55, + "h": 47 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 55, + "h": 47 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 55, + "h": 47 + }, + "frame": { + "x": 0, + "y": 0, + "w": 55, + "h": 47 + } + }, + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 55, + "h": 47 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 55, + "h": 46 + }, + "frame": { + "x": 55, + "y": 0, + "w": 55, + "h": 46 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 55, + "h": 47 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 55, + "h": 46 + }, + "frame": { + "x": 55, + "y": 0, + "w": 55, + "h": 46 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 55, + "h": 47 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 55, + "h": 46 + }, + "frame": { + "x": 55, + "y": 46, + "w": 55, + "h": 46 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 55, + "h": 47 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 55, + "h": 46 + }, + "frame": { + "x": 55, + "y": 46, + "w": 55, + "h": 46 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:e4c4f790c4f0286f608dcdb15a609059:464f7ae7db1c0d034c2a1a65612b0da8:b26f7254994561969f00f765318acf1c$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/754_2.json b/public/images/pokemon/variant/exp/754_2.json new file mode 100644 index 00000000000..5fcde58d92d --- /dev/null +++ b/public/images/pokemon/variant/exp/754_2.json @@ -0,0 +1,1133 @@ +{ + "textures": [ + { + "image": "754_2.png", + "format": "RGBA8888", + "size": { + "w": 234, + "h": 234 + }, + "scale": 1, + "frames": [ + { + "filename": "0036.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0040.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0044.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0037.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0039.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0041.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0043.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0045.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0046.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0022.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0023.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0029.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0030.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0038.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 0, + "y": 68, + "w": 93, + "h": 68 + } + }, + { + "filename": "0042.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 0, + "y": 68, + "w": 93, + "h": 68 + } + }, + { + "filename": "0047.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 68, + "w": 93, + "h": 68 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0021.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0024.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0028.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0031.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0052.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0053.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0035.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 85, + "h": 68 + }, + "frame": { + "x": 0, + "y": 136, + "w": 85, + "h": 68 + } + }, + { + "filename": "0048.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 85, + "h": 68 + }, + "frame": { + "x": 0, + "y": 136, + "w": 85, + "h": 68 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0020.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0025.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0027.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0032.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0051.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0026.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0033.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0050.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0034.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 181, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0049.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 181, + "y": 136, + "w": 48, + "h": 68 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:f79fcee4451cea6aad915f561b31bf78:95fdb55190edb6ce0d5847a4e46b4d5c:f7cb0e9bb3adbe899317e6e2e306035d$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/754_3.json b/public/images/pokemon/variant/exp/754_3.json new file mode 100644 index 00000000000..ce40f9a8231 --- /dev/null +++ b/public/images/pokemon/variant/exp/754_3.json @@ -0,0 +1,1133 @@ +{ + "textures": [ + { + "image": "754_3.png", + "format": "RGBA8888", + "size": { + "w": 234, + "h": 234 + }, + "scale": 1, + "frames": [ + { + "filename": "0036.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0040.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0044.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0037.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0039.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0041.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0043.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0045.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0046.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 0, + "w": 93, + "h": 68 + } + }, + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0022.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0023.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0029.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0030.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 0, + "w": 48, + "h": 68 + } + }, + { + "filename": "0038.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 0, + "y": 68, + "w": 93, + "h": 68 + } + }, + { + "filename": "0042.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 0, + "y": 68, + "w": 93, + "h": 68 + } + }, + { + "filename": "0047.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 93, + "h": 68 + }, + "frame": { + "x": 93, + "y": 68, + "w": 93, + "h": 68 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0021.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0024.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0028.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0031.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0052.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0053.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 186, + "y": 68, + "w": 48, + "h": 68 + } + }, + { + "filename": "0035.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 85, + "h": 68 + }, + "frame": { + "x": 0, + "y": 136, + "w": 85, + "h": 68 + } + }, + { + "filename": "0048.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 85, + "h": 68 + }, + "frame": { + "x": 0, + "y": 136, + "w": 85, + "h": 68 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0020.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0025.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0027.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0032.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0051.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 85, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0026.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0033.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0050.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 133, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0034.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 181, + "y": 136, + "w": 48, + "h": 68 + } + }, + { + "filename": "0049.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 93, + "h": 68 + }, + "spriteSourceSize": { + "x": 23, + "y": 0, + "w": 48, + "h": 68 + }, + "frame": { + "x": 181, + "y": 136, + "w": 48, + "h": 68 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:f79fcee4451cea6aad915f561b31bf78:95fdb55190edb6ce0d5847a4e46b4d5c:f7cb0e9bb3adbe899317e6e2e306035d$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/862.json b/public/images/pokemon/variant/exp/862.json new file mode 100644 index 00000000000..afcf3da4864 --- /dev/null +++ b/public/images/pokemon/variant/exp/862.json @@ -0,0 +1,32 @@ +{ + "1": { + "1b2627": "1b2627", + "474749": "156a66", + "010101": "010101", + "f5f5f6": "f5ffea", + "b2b3b2": "90c093", + "303034": "094448", + "949496": "1c8155", + "463f39": "156a66", + "6f7071": "01473a", + "df84ad": "ff69fa", + "9b4f69": "d414dd", + "fcfcfc": "fcfcfc", + "494d56": "156a66" + }, + "2": { + "1b2627": "060724", + "474749": "8655e1", + "010101": "010101", + "f5f5f6": "342d4c", + "b2b3b2": "18133d", + "303034": "5a3eb9", + "949496": "302e89", + "463f39": "8655e1", + "6f7071": "2e1d7b", + "df84ad": "54f1ff", + "9b4f69": "0099ce", + "fcfcfc": "fcfcfc", + "494d56": "8655e1" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/890-eternamax.json b/public/images/pokemon/variant/exp/890-eternamax.json new file mode 100644 index 00000000000..18f3ca3f097 --- /dev/null +++ b/public/images/pokemon/variant/exp/890-eternamax.json @@ -0,0 +1,28 @@ +{ + "1": { + "25134c": "162a52", + "010101": "010101", + "3622a7": "406d89", + "6461ba": "4989a6", + "31245f": "264864", + "ab2a4c": "0d6fae", + "ffb6b6": "a6fbff", + "ff5657": "45c5e5", + "ffdfdf": "f1faff", + "e23434": "1c98c7", + "ff8c8c": "6ee7f8" + }, + "2": { + "25134c": "354e95", + "010101": "010101", + "3622a7": "bfd1fa", + "6461ba": "e1ecff", + "31245f": "87a3dd", + "ab2a4c": "ac4709", + "ffb6b6": "ffd456", + "ff5657": "d47823", + "ffdfdf": "ffee85", + "e23434": "c86016", + "ff8c8c": "ed972e" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/890.json b/public/images/pokemon/variant/exp/890.json new file mode 100644 index 00000000000..781768fde0d --- /dev/null +++ b/public/images/pokemon/variant/exp/890.json @@ -0,0 +1,19 @@ +{ + "2": { + "26124d": "4963af", + "3a15bc": "bfd1fa", + "010101": "010101", + "b21833": "7b2f0e", + "eb1533": "cb7622", + "9a2433": "732208", + "3d2871": "87a3dd", + "f46d70": "f1bd4b", + "fb2553": "934516", + "675cc5": "675cc5", + "ffbcbc": "de9335", + "12042d": "12042d", + "e22dbc": "298fb9", + "f18cd5": "73e5dc", + "fefefe": "fefefe" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/back/212-mega_2.json b/public/images/pokemon/variant/exp/back/212-mega_2.json new file mode 100644 index 00000000000..9f2d24c2594 --- /dev/null +++ b/public/images/pokemon/variant/exp/back/212-mega_2.json @@ -0,0 +1,440 @@ +{ + "textures": [ + { + "image": "212-mega_2.png", + "format": "RGBA8888", + "size": { + "w": 344, + "h": 344 + }, + "scale": 1, + "frames": [ + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 76, + "h": 86 + }, + "frame": { + "x": 0, + "y": 0, + "w": 76, + "h": 86 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 76, + "h": 86 + }, + "frame": { + "x": 0, + "y": 0, + "w": 76, + "h": 86 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 76, + "h": 86 + }, + "frame": { + "x": 0, + "y": 86, + "w": 76, + "h": 86 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 76, + "h": 86 + }, + "frame": { + "x": 0, + "y": 172, + "w": 76, + "h": 86 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 76, + "h": 86 + }, + "frame": { + "x": 0, + "y": 258, + "w": 76, + "h": 86 + } + }, + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 76, + "y": 0, + "w": 74, + "h": 86 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 150, + "y": 0, + "w": 74, + "h": 86 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 150, + "y": 0, + "w": 74, + "h": 86 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 224, + "y": 0, + "w": 74, + "h": 86 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 76, + "y": 86, + "w": 74, + "h": 86 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 76, + "y": 172, + "w": 74, + "h": 86 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 76, + "y": 258, + "w": 74, + "h": 86 + } + }, + { + "filename": "0020.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 76, + "y": 258, + "w": 74, + "h": 86 + } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 150, + "y": 86, + "w": 74, + "h": 86 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 224, + "y": 86, + "w": 74, + "h": 86 + } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 224, + "y": 86, + "w": 74, + "h": 86 + } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 150, + "y": 172, + "w": 74, + "h": 86 + } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 72, + "h": 86 + }, + "frame": { + "x": 150, + "y": 258, + "w": 72, + "h": 86 + } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 72, + "h": 86 + }, + "frame": { + "x": 222, + "y": 258, + "w": 72, + "h": 86 + } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 71, + "h": 86 + }, + "frame": { + "x": 224, + "y": 172, + "w": 71, + "h": 86 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:1b7ede0d536069418738b9c0f67f14fd:7b469c796eb673d31bdab8ad7b99b881:d0a607721d6bb74ae9b6d486116d85e3$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/back/212-mega_3.json b/public/images/pokemon/variant/exp/back/212-mega_3.json new file mode 100644 index 00000000000..fd9c5893ddc --- /dev/null +++ b/public/images/pokemon/variant/exp/back/212-mega_3.json @@ -0,0 +1,440 @@ +{ + "textures": [ + { + "image": "212-mega_3.png", + "format": "RGBA8888", + "size": { + "w": 344, + "h": 344 + }, + "scale": 1, + "frames": [ + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 76, + "h": 86 + }, + "frame": { + "x": 0, + "y": 0, + "w": 76, + "h": 86 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 76, + "h": 86 + }, + "frame": { + "x": 0, + "y": 0, + "w": 76, + "h": 86 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 76, + "h": 86 + }, + "frame": { + "x": 0, + "y": 86, + "w": 76, + "h": 86 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 76, + "h": 86 + }, + "frame": { + "x": 0, + "y": 172, + "w": 76, + "h": 86 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 76, + "h": 86 + }, + "frame": { + "x": 0, + "y": 258, + "w": 76, + "h": 86 + } + }, + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 76, + "y": 0, + "w": 74, + "h": 86 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 150, + "y": 0, + "w": 74, + "h": 86 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 150, + "y": 0, + "w": 74, + "h": 86 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 224, + "y": 0, + "w": 74, + "h": 86 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 76, + "y": 86, + "w": 74, + "h": 86 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 76, + "y": 172, + "w": 74, + "h": 86 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 76, + "y": 258, + "w": 74, + "h": 86 + } + }, + { + "filename": "0020.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 76, + "y": 258, + "w": 74, + "h": 86 + } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 150, + "y": 86, + "w": 74, + "h": 86 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 224, + "y": 86, + "w": 74, + "h": 86 + } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 224, + "y": 86, + "w": 74, + "h": 86 + } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 74, + "h": 86 + }, + "frame": { + "x": 150, + "y": 172, + "w": 74, + "h": 86 + } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 72, + "h": 86 + }, + "frame": { + "x": 150, + "y": 258, + "w": 72, + "h": 86 + } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 72, + "h": 86 + }, + "frame": { + "x": 222, + "y": 258, + "w": 72, + "h": 86 + } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 79, + "h": 86 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 71, + "h": 86 + }, + "frame": { + "x": 224, + "y": 172, + "w": 71, + "h": 86 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:1b7ede0d536069418738b9c0f67f14fd:7b469c796eb673d31bdab8ad7b99b881:d0a607721d6bb74ae9b6d486116d85e3$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/back/754_2.json b/public/images/pokemon/variant/exp/back/754_2.json new file mode 100644 index 00000000000..f32f0133f99 --- /dev/null +++ b/public/images/pokemon/variant/exp/back/754_2.json @@ -0,0 +1,1112 @@ +{ + "textures": [ + { + "image": "754_2.png", + "format": "RGBA8888", + "size": { + "w": 222, + "h": 222 + }, + "scale": 1, + "frames": [ + { + "filename": "0036.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + }, + "frame": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + } + }, + { + "filename": "0037.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + }, + "frame": { + "x": 92, + "y": 0, + "w": 92, + "h": 68 + } + }, + { + "filename": "0039.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + }, + "frame": { + "x": 92, + "y": 0, + "w": 92, + "h": 68 + } + }, + { + "filename": "0041.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + }, + "frame": { + "x": 92, + "y": 0, + "w": 92, + "h": 68 + } + }, + { + "filename": "0043.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + }, + "frame": { + "x": 92, + "y": 0, + "w": 92, + "h": 68 + } + }, + { + "filename": "0045.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + }, + "frame": { + "x": 92, + "y": 0, + "w": 92, + "h": 68 + } + }, + { + "filename": "0046.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + }, + "frame": { + "x": 92, + "y": 0, + "w": 92, + "h": 68 + } + }, + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 184, + "y": 0, + "w": 38, + "h": 68 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 184, + "y": 0, + "w": 38, + "h": 68 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 184, + "y": 0, + "w": 38, + "h": 68 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 184, + "y": 0, + "w": 38, + "h": 68 + } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 184, + "y": 0, + "w": 38, + "h": 68 + } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 184, + "y": 0, + "w": 38, + "h": 68 + } + }, + { + "filename": "0022.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 184, + "y": 0, + "w": 38, + "h": 68 + } + }, + { + "filename": "0023.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 184, + "y": 0, + "w": 38, + "h": 68 + } + }, + { + "filename": "0029.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 184, + "y": 0, + "w": 38, + "h": 68 + } + }, + { + "filename": "0030.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 184, + "y": 0, + "w": 38, + "h": 68 + } + }, + { + "filename": "0052.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 184, + "y": 0, + "w": 38, + "h": 68 + } + }, + { + "filename": "0038.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + }, + "frame": { + "x": 0, + "y": 68, + "w": 92, + "h": 68 + } + }, + { + "filename": "0042.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + }, + "frame": { + "x": 0, + "y": 68, + "w": 92, + "h": 68 + } + }, + { + "filename": "0040.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + }, + "frame": { + "x": 0, + "y": 136, + "w": 92, + "h": 68 + } + }, + { + "filename": "0044.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 92, + "h": 68 + }, + "frame": { + "x": 0, + "y": 136, + "w": 92, + "h": 68 + } + }, + { + "filename": "0035.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 88, + "h": 68 + }, + "frame": { + "x": 92, + "y": 68, + "w": 88, + "h": 68 + } + }, + { + "filename": "0047.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 88, + "h": 68 + }, + "frame": { + "x": 92, + "y": 68, + "w": 88, + "h": 68 + } + }, + { + "filename": "0034.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 40, + "h": 68 + }, + "frame": { + "x": 180, + "y": 68, + "w": 40, + "h": 68 + } + }, + { + "filename": "0048.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 40, + "h": 68 + }, + "frame": { + "x": 180, + "y": 68, + "w": 40, + "h": 68 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 39, + "h": 68 + }, + "frame": { + "x": 92, + "y": 136, + "w": 39, + "h": 68 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 39, + "h": 68 + }, + "frame": { + "x": 92, + "y": 136, + "w": 39, + "h": 68 + } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 39, + "h": 68 + }, + "frame": { + "x": 92, + "y": 136, + "w": 39, + "h": 68 + } + }, + { + "filename": "0026.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 39, + "h": 68 + }, + "frame": { + "x": 92, + "y": 136, + "w": 39, + "h": 68 + } + }, + { + "filename": "0033.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 39, + "h": 68 + }, + "frame": { + "x": 92, + "y": 136, + "w": 39, + "h": 68 + } + }, + { + "filename": "0049.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 39, + "h": 68 + }, + "frame": { + "x": 92, + "y": 136, + "w": 39, + "h": 68 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 131, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 131, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 131, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 131, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 131, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0021.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 131, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0024.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 131, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0028.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 131, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0031.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 131, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0051.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 131, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 169, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 169, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 169, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 169, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 169, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0020.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 169, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0025.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 169, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0027.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 169, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0032.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 169, + "y": 136, + "w": 38, + "h": 68 + } + }, + { + "filename": "0050.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 92, + "h": 68 + }, + "spriteSourceSize": { + "x": 25, + "y": 0, + "w": 38, + "h": 68 + }, + "frame": { + "x": 169, + "y": 136, + "w": 38, + "h": 68 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:3adad944aac48ad53efa41f8c9916d1c:ea15b954875ad08814f50cbbf849c1b3:f7cb0e9bb3adbe899317e6e2e306035d$" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/back/862.json b/public/images/pokemon/variant/exp/back/862.json new file mode 100644 index 00000000000..d7d0dd5b874 --- /dev/null +++ b/public/images/pokemon/variant/exp/back/862.json @@ -0,0 +1,30 @@ +{ + "1": { + "010101": "010101", + "1b2627": "1b2627", + "474749": "156a66", + "303034": "094448", + "6f7071": "01473a", + "b2b3b2": "90c093", + "463f39": "001b1a", + "f5f5f6": "f5ffea", + "949496": "1c8155", + "9b4f69": "d414dd", + "df84ad": "ff69fa", + "fcfcfc": "fcfcfc" + }, + "2": { + "010101": "010101", + "1b2627": "180c46", + "474749": "8655e1", + "303034": "5a3eb9", + "6f7071": "2e1d7b", + "b2b3b2": "1f1a43", + "463f39": "161058", + "f5f5f6": "342d4c", + "949496": "302e89", + "9b4f69": "0099ce", + "df84ad": "54f1ff", + "fcfcfc": "fcfcfc" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/back/970.json b/public/images/pokemon/variant/exp/back/970.json new file mode 100644 index 00000000000..cc48d2a3f3c --- /dev/null +++ b/public/images/pokemon/variant/exp/back/970.json @@ -0,0 +1,26 @@ +{ + "1": { + "242737": "242737", + "366956": "521d0c", + "41968b": "c57833", + "5de0aa": "fbce5d", + "262b6b": "323b51", + "3253d6": "577b81", + "2c369a": "435469", + "a02c75": "3f4a6f", + "fd84ba": "bbe3ee", + "e0548f": "758eb4" + }, + "2": { + "242737": "2e1d1a", + "366956": "6d171f", + "41968b": "b21a1a", + "5de0aa": "d95e3e", + "262b6b": "b07963", + "3253d6": "ffe6ca", + "2c369a": "d9aa8a", + "a02c75": "153532", + "fd84ba": "429d72", + "e0548f": "28625e" + } +} \ No newline at end of file diff --git a/src/test/pokemonSprite.test.ts b/src/test/pokemonSprite.test.ts index abb6cff483f..07b3cd01cc7 100644 --- a/src/test/pokemonSprite.test.ts +++ b/src/test/pokemonSprite.test.ts @@ -50,41 +50,49 @@ describe("check if every variant's sprite are correctly set", () => { if (name.includes("_")) { const id = name.split("_")[0]; const variant = name.split("_")[1]; + const index = parseInt(variant, 10) - 1; if (ext !== "json") { + const urlJsonFile = `${dirpath}${id}.json`; if (mlist.hasOwnProperty(id)) { - const urlJsonFile = `${dirpath}${id}.json`; const trimmedUrlJsonFilepath = `${trimmedDirpath}${id}.json`; const jsonFileExists = fs.existsSync(urlJsonFile); - if (mlist[id].includes(1)) { + if (mlist[id].includes(1) && !jsonFileExists) { const msg = `[${name}] MISSING JSON ${trimmedUrlJsonFilepath}`; - if (!jsonFileExists && !errors.includes(msg)) { + if (!errors.includes(msg)) { errors.push(msg); } } - } - if (!mlist.hasOwnProperty(id)) { - errors.push(`[${id}] missing key ${id} in masterlist for ${trimmedFilePath}`); - } else if (mlist[id][parseInt(variant, 10) - 1] !== 2) { - const urlJsonFile = `${dirpath}${name}.json`; - const trimmedUrlJsonFilepath = `${trimmedDirpath}${name}.json`; - const jsonFileExists = fs.existsSync(urlJsonFile); - if (mlist[id].includes(1)) { - const msg = `[${id}] MISSING JSON ${trimmedUrlJsonFilepath}`; - if (!jsonFileExists && !errors.includes(msg)) { - errors.push(msg); + if (!mlist.hasOwnProperty(id) && jsonFileExists) { + errors.push(`[${id}] missing key ${id} in masterlist for ${trimmedFilePath}`); + } + if (mlist[id][index] === 1 && jsonFileExists) { + const raw = fs.readFileSync(urlJsonFile, {encoding: "utf8", flag: "r"}); + const data = JSON.parse(raw); + const keys = Object.keys(data); + if (!keys.includes(`${index}`)) { + const urlSpriteJsonFile = `${dirpath}${id}_${variant}.json`; + const trimmedUrlSpriteFilepath = `${trimmedDirpath}${id}_${variant}.json`; + const spriteFileExists = fs.existsSync(urlSpriteJsonFile); + if (spriteFileExists) { + errors.push(`[${id}] [${mlist[id]}] - the value should be 2 for the index ${index} - ${trimmedUrlSpriteFilepath}`); + } } } - errors.push(`[${id}] [${mlist[id]}] - the value should be 2 for the index ${parseInt(variant, 10) - 1} - ${trimmedFilePath}`); } } } else if (!mlist.hasOwnProperty(name)) { - errors.push(`named - missing key ${name} in masterlist for ${trimmedFilePath}`); + errors.push(`[${name}] - missing key ${name} in masterlist for ${trimmedFilePath}`); } else { const raw = fs.readFileSync(filePath, {encoding: "utf8", flag: "r"}); const data = JSON.parse(raw); for (const key of Object.keys(data)) { if (mlist[name][key] !== 1) { - errors.push(`[${name}] [${mlist[name]}] - the value should be 1 for the index ${key} - ${trimmedFilePath}`); + // if 2, check if json there + const urlSpriteJsonFile = `${dirpath}${name}_${parseInt(key, 10) + 1}.json`; + const spriteFileExists = fs.existsSync(urlSpriteJsonFile); + if (!spriteFileExists) { + errors.push(`[${name}] [${mlist[name]}] - the value should be 1 for the index ${key} - ${trimmedFilePath}`); + } } } } From 44f4f14956444108efacf6694b0e40970cc8f25d Mon Sep 17 00:00:00 2001 From: Matthew Olker Date: Sat, 25 May 2024 23:08:36 -0400 Subject: [PATCH 59/61] Update Artist Sprite Fixes --- public/images/pokemon/164.png | Bin 5745 -> 17965 bytes public/images/pokemon/370.png | Bin 965 -> 4430 bytes public/images/pokemon/778.png | Bin 456 -> 3744 bytes .../images/pokemon/892-gigantamax-rapid.png | Bin 1415 -> 1804 bytes public/images/pokemon/892-rapid-strike.png | Bin 1198 -> 1471 bytes public/images/pokemon/898-ice.png | Bin 1275 -> 3744 bytes public/images/pokemon/898-shadow.png | Bin 1366 -> 4082 bytes public/images/pokemon/back/412-sandy.png | Bin 4178 -> 10936 bytes public/images/pokemon/back/798.png | Bin 624 -> 1568 bytes public/images/pokemon/back/898-ice.png | Bin 1147 -> 3429 bytes public/images/pokemon/back/898-shadow.png | Bin 1248 -> 3528 bytes public/images/pokemon/back/shiny/798.png | Bin 624 -> 1572 bytes public/images/pokemon/back/shiny/898-ice.png | Bin 1147 -> 3463 bytes .../images/pokemon/back/shiny/898-shadow.png | Bin 1248 -> 3566 bytes public/images/pokemon/back/shiny/983.png | Bin 898 -> 2342 bytes public/images/pokemon/exp/4145.png | Bin 8413 -> 21718 bytes public/images/pokemon/exp/4222.png | Bin 4395 -> 12064 bytes public/images/pokemon/exp/798.png | Bin 8288 -> 21320 bytes public/images/pokemon/exp/864.png | Bin 12677 -> 34329 bytes public/images/pokemon/exp/898-ice.png | Bin 4803 -> 14596 bytes public/images/pokemon/exp/898-shadow.png | Bin 6120 -> 19638 bytes public/images/pokemon/exp/957.png | Bin 2794 -> 4486 bytes public/images/pokemon/exp/958.png | Bin 6953 -> 11704 bytes public/images/pokemon/exp/959.png | Bin 58471 -> 80869 bytes public/images/pokemon/exp/back/4144.png | Bin 3841 -> 12582 bytes public/images/pokemon/exp/back/4145.png | Bin 2684 -> 9484 bytes public/images/pokemon/exp/back/4146.png | Bin 4324 -> 13756 bytes public/images/pokemon/exp/back/4222.png | Bin 1947 -> 5183 bytes public/images/pokemon/exp/back/798.png | Bin 2920 -> 8049 bytes public/images/pokemon/exp/back/898-ice.png | Bin 3761 -> 12417 bytes public/images/pokemon/exp/back/898-shadow.png | Bin 4588 -> 13658 bytes public/images/pokemon/exp/back/957.png | Bin 2430 -> 3412 bytes public/images/pokemon/exp/back/958.png | Bin 2003 -> 3911 bytes public/images/pokemon/exp/back/959.png | Bin 2972 -> 4807 bytes public/images/pokemon/exp/back/shiny/4222.png | Bin 1947 -> 5251 bytes public/images/pokemon/exp/back/shiny/798.png | Bin 2920 -> 8058 bytes .../images/pokemon/exp/back/shiny/898-ice.png | Bin 3761 -> 12283 bytes .../pokemon/exp/back/shiny/898-shadow.png | Bin 4588 -> 13744 bytes public/images/pokemon/exp/back/shiny/957.png | Bin 2432 -> 3444 bytes public/images/pokemon/exp/back/shiny/958.png | Bin 2004 -> 3911 bytes public/images/pokemon/exp/back/shiny/959.png | Bin 2972 -> 4807 bytes public/images/pokemon/exp/shiny/4145.png | Bin 8413 -> 21940 bytes public/images/pokemon/exp/shiny/4222.png | Bin 4395 -> 11852 bytes public/images/pokemon/exp/shiny/679.png | Bin 4615 -> 4416 bytes public/images/pokemon/exp/shiny/798.png | Bin 8299 -> 21747 bytes public/images/pokemon/exp/shiny/898-ice.png | Bin 4803 -> 14675 bytes .../images/pokemon/exp/shiny/898-shadow.png | Bin 5968 -> 19766 bytes public/images/pokemon/exp/shiny/957.png | Bin 2779 -> 4492 bytes public/images/pokemon/exp/shiny/958.png | Bin 6963 -> 11672 bytes public/images/pokemon/exp/shiny/959.png | Bin 56110 -> 80842 bytes public/images/pokemon/icons/7/798s.png | Bin 471 -> 846 bytes public/images/pokemon/icons/8/864s.png | Bin 902 -> 1339 bytes public/images/pokemon/shiny/164.png | Bin 5746 -> 18016 bytes public/images/pokemon/shiny/370.png | Bin 962 -> 4407 bytes public/images/pokemon/shiny/864.png | Bin 1119 -> 2990 bytes .../pokemon/shiny/892-gigantamax-rapid.png | Bin 1415 -> 1804 bytes .../images/pokemon/shiny/892-rapid-strike.png | Bin 1198 -> 1471 bytes public/images/pokemon/shiny/898-ice.png | Bin 1275 -> 3738 bytes public/images/pokemon/shiny/898-shadow.png | Bin 1366 -> 4082 bytes public/images/pokemon_icons_7.json | 2 +- public/images/pokemon_icons_7.png | Bin 51196 -> 51140 bytes public/images/pokemon_icons_8.json | 2 +- public/images/pokemon_icons_8.png | Bin 74423 -> 74949 bytes 63 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/images/pokemon/164.png b/public/images/pokemon/164.png index a9fb558318e36ae4d418c88b97aaccb00c6efd87..c172959d338d6e052655fec3dd226f0985397d45 100644 GIT binary patch literal 17965 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 literal 5745 zcmZ`-cQ~8x*H0pe6|<;OtBTfEqH2_?RjnPfXzbQjrACcVs&+RuYPD7nBg87PYSgY+ zwM!AZR-@#N@Avm!@B7F5{_&jqzCQOkpYu8AJmb2a7e)p;40POd004mDwyvfL000D? zU0^B-^2@&6k+Mh{-9>0oR%T{qjVpqV8nTX#jv>~18GhEEp1C)@aqN)g>ged0!MbnF zxRVdDWHPzAa(I;z0DNp>UX}bFMME;2m`q$K@o%e%^?=B|@61pg%NgN{FYBzhH+Ps-1ZL zaHZa-h`2QBrJsqHY#e~E8^1RgEKl|+q30?;bPdZLP1~-2xQd}k5iN(}qZhB#TldtG zs=j>8jtG1xf2eV(ZARll*87IAn6RPpPitvY#Uis}E}IWLMFuSifo;_c3KAfVjIvlM zce6u!cdg?1dzoBZuI$m*_WfnkZ!*kCaX7Vc82IBICR#5zn`OX%yWbR9lPsw>`f;AW zCUwB<9zls-7U-1g5b0H?d3fDI=G@~Pb|=syj?5NmoQgmpj%)RqM=O*nh|mE0rv<;_j&gRbHQv<{coOU9{k>-gf)_+NhzeTS`9e-^+aCR!fvR(;}~EbXI%yOWmM zf2dgGbyQUw7dRGHxt}~dD10w%FxasCB=(E_c&in0jD05DDOpe4m7O$HNAN216}Be~ z_?Ihr&fY8kV=tuSag-u|RUcQY-pFwJoG8}K_`k(cxybLuEWs$jjqj8@%c+TRUliVQIB zrM=HHo5?Z*9UXfEzgs!`tT2<~V|~t{J_ktq$nySINAvE#X_2G7&m}twwB-x-_sk@w zR#tyx?Z2KTf!~L7moVK3vNlcs7=F~fIZ?p$N@ZURJpf0O{+{VClknmx8B+^-#RHEd z?N}W8?fbtP6A8Sa*8RKJ@JVkKGIW}eXm(?L^ZXXiuZgD;XdgATv=Fyi!^ z&m7sNuyxX@IE}_0OF4uP-hX{9?+;>BPR}=wu1(|Hg8IUCW`cewi^s85c#QYYa=E5r zYf4p#is@i+#$&U0l7-3>-AOFdmRT^X+Ofx@t*Ak);@4vQwQ-wpg1T)x76BR())rp z(e(t07Z=sN$a)7IhDP%8^9pz8n%bME#{q~P!lY*#dBzFjITo2_U}oawA(nJ(7)Rqc z!618ak}*~*qFUij375O6&Qr<1_j(NGuxtFVCbycVtH~!NTLcFdfl_L}k|ci(!mgoB z7Np#4Y&6Mqqee;0@ojPE#fW=kBOX~n_t60oq|rQ7tI4w#Cp+vbeBkq2?%X3fclcZy zp@#ijjroa0U@2+M<@0xS&+#hekllk9lS&ATITg-K$ElQLHB+LuFJ0BtCvi9BO+|rs z_~*M<9au0w^u}7P93n^7eZ;3is`%0w3`e)C^xG@#dA#Yw{S>6$xY~nC_?#wOl_!n@ z`kpS0N=)^N@V1*%xe;(KwnFaF9j#U~Q(~iw5+Navz8d-%b%sp^Rz2pgcpFiVlO~O7DeU@Aj{YX+`xqsKL@ZJ-ItD$7)%n#Ei-?gX3V*HD1y(V~Ok?zq2 zO9PSD{*F$YWmYK3FXvzN3@$YBPUHYJ`ZE;Q*7PNok6;Y*uVt_o*G`U1#-XDhZdi2^MO*A2l5CI1d{Z>v)*Xx}U!znRF{;MX?`ELv z^F(~Cb>y+@b#K<2(?W`txGV z%md;Y4Y9KxWeNTf4Oi*s=5ODad+Toh%wU@U`tV#2%i0u{U9$VmgvXQ8uf{J(PsRlQ zrlvB_vZO9+!TrI`n)3tP9xyMD)UmNrm1NbY&Jp8!>Lp&GtA@{Cw^?_Xktgh+;^Ml%l9!flwhx<*2Np9&JX9D# zYQ;k&g14v`kAc!l`V=uf7Rr+}Ii=R+%>vAAnn_ZN5r`6o16W& zNwwO-26qX;hrga%iJpj-^;mj!_>wWFQ57U^^VN2j(yhDSm&g~zl5M?CUSr>%E@5_b zFm$3n%@?Ilm90^C5gha-mXdC0w6SX_HeBAK-Hfk6MV&VKI!~XjF2bx`kAL&;G=IN( zLe`Yn3M6-TJa0(yhz5u+ZDB6#al~`Cw9?RcK_YXC>QxS2*)zy%3xmNG3qx7A=ERa! zcWtQnG}L8ElC5pwvYNsbMmy|vy}k@y8)Z;OS^A3>*DZ5S+QDO%UYUQYTm&;pR1{Lp z8$K*@|5yvNnxnU|Wi(ejEI(!)n=?n=>SXT!pn&Va)0GFaxzy-UvhH*D=dL}%EG%>o z5BLq52W=^-#3Ro2(*8|niS2QmmT#M1oeSn~P7@G_g`=I5xRnfA!sN2Wk{K4Rcxf{; zx5vfr=OAVBdmQg8SZU+?WI!6$FO|N5qGY{%%sMp~kXo^C&x$GVceDZsnjw}dMD*Vy zwT37a*3MKG1xPSJZxzccbjb;Uqy)iW^s8GHjwh@zsIisD2$CThD9(o}VxIFb^-nMSDgW$N`(=?ENGpF^0gbKp1c9= zu*X4b%hu8w#-1|;1AgdPehCxp{s0YzF<6&q#n zD7CjIneE+uYa|f6|KU7JOeHG92rf<&7Xqb{tv}Q=)9JmEvQeF2X8d+N1+4j-h9DLx ztM{!~*h>&G$MFgT1TSn6yjzT;>2)&e;2JA0zXV_HPOADY%Vx5#tV;(LfBMt(>v%*q z-IVqoVbWUXwp*d#>opu$7_lyJg?W(Ub;TNz3MCftcALPRag}7R>ko^zMpRHWO$tP! z1qwkA5=qv1nQ<4WnZi&dDI=>3ouVz~Uk;-AQ+7TnYu`I3dH|?O;3?(7p&kDJ~eA-6V4z z_bi2;-3gkfZvL2=%BrH%I643+gW)hK&4~1i+hQKd1TA?Zn0ILWDcAP(#8e*~iw7FQMX=7FPLj z*Jw;%BTZ#wF5N~8^4TFU0hZC|T=(oMuy}f&J?{}+{*qP-JDZs$EetxtL|gQJI=Wo4 zIN-T|7?ydqk_RdKLM#IBvsI2C_XwJZ)GK{p%$v@8pa=o^&UMj=K0@Sd_%hX+BYcA= zR$S(=5O@mLPd7nmB`8;&y#s z<8&R&sS%z;l|-*}(}|iOfH<8CNtCyP!XsifgA8b`YLL;!(@fr6`YHkl(+&x}5_Qu| zBBrD?ZbN{A8SM4~7c92X9hf71FmFrW%YXEc396%2=n zx^RBO*a$?O1v82*mJimC1b9Tecq|#)2~(+xVS<J&i`ddP%2E}gYA{qp z{2UBgb|Ed_{ieLjoWn6Fz_Le4faB`SCtLbTS*r8m%9j*1P<2P(N_UjJi~7m_wYx0{ zO@WjE$*xXVnba0O#m`>fuQ}fxNROd~s;yD6rKoad;As}eRkkH5k`uX7TS}00513+{ zWPCn2E34RQ)N=$nYUiaEw9-vRmf+G_i`qtr%Qn|g>(ZgW6*GHcXl|d#_QJ%JI(#G?Y!f2vc_n;ELFU4jDH~VEAPnJ*dD`Pr|?u$rM_7?>xkw0>=On{W5u)sq%M@| zu0~dP@r?xktu?b@tU9+GW;|5x#04lvVO-)^&9mFujS}7Z$*)}SPd6>s;|~K0T%-NT z@Gbn@634`gI&{H{B|nq)xH8C4DoTgFA;w>~RC(cSW?hxG`{^M;CvNEjYu4kx6S*p* z7iQjz*7=pttktaGkuYu1sWiX_K$IC;=nH!AEwEf0p07>q39RisQbdjKIf&FiCV>V5 zk0ldWnSpshj-55;3@h_!t;tr=hI(k=uLsnr&+-;i;^Kj#gGIie?%NZo_Sw(Cw3)s- z!yGGk&JFvjS9lroIjXT9+BfHeXtiGHYdCgZej!eKOK6x6rVc4IiWuFwXp#A5p`J!` z@cR)-?a{|ST<-)*gu7g_;p>10wE`LHrgLe?zrf}_<>cd9?CX2>k-t{)$bIft^SbY-!{*h%7v@Jas|A;Apw6JoP|Y{%#kz0g_0yenLc{j`M)_YdYynT^r}gJm?aU`?y? zirhQaROgrt0M1O;w!Bs}ODp(bR+22;!3>sD!e?UqK#AM?;oBTH$h~JLFEuOeZk0P) zH2^QO_S0ss&zI&i3`bA~WZi1z+!RA+qU-^PdnUknIRtZmbtt?gSjI@wIEvl+lYiDE zV*V?ZjWz*<7qDf>r>2T#p{Aw-YksnGOu9GswZmT)d@BIH%?E3tEA8Ned1uZ_K1fvc zw#lQ3S$7kl+|>~PFH}S6AUAbI`2CBV)g`Ep!uF6J1(rq-C5s(yDUxeTf>qj3N!Vt}gEO1*+-L>XH9QgxY-J+WK|*CQ^A)Ve>J^I(d^?P_Y=g`v0U833|0iR4NU--xV@BP2XneG42>Hi@A?f(xV z{jdGMV@cBg5B@Lbzp?+}Z)l!T+Pm?`nC$$#cb{M{s?tEUcRyn;m}sQy89;r)e{g%z z;@)!&w5?@2(0am^8MhCXl9 zDU*8zo9<%&xi>jMnc3vFWq29GBJ{5koFe%8d(c+H@;gj$-yqqy02i=@d*dA}`90kH z4hpbAVi8eWYd-Y|;XXXLpw=q7VtLb(rlZZ$ zkRv;t6}96roTD{H6lZfhB6mT4d({|g4p1@-^{ diff --git a/public/images/pokemon/370.png b/public/images/pokemon/370.png index 4bac9f9b833b2d492257d30877b99a7efd9fdfc4..c53d42f9cd314ab1b93028d929d6a7eff7e8d901 100644 GIT binary patch literal 4430 zcmY*bbyU<{*Zl#~J(MFTAu%8|fTZLAGK6%8z>rD`$PmNO4bmYkB`6P4A}vxP3=I;J zA|N$L4*lYKzVBV@{o~wo*53QaS??x0{|yqNn^h{5 zQu-#{a#Yk(1b~`XFEgyd(Ys(}R$SMyaZolT@S)7UVdgB# z)tLdX+``joxs1YC3jwjU?LJf}&wI^*R(jnl{EiRa{rF*_fmiUHS7-x!RzQV@Jq;Yz zYoEvdvOylCN~U;2VOA1u4*q4z-Cu`RJWeUr3ZihV#8*D|7-=s!+oOfjRFntGG}$yW z8qB}aMH6N#MJnJ5UgM~{u1aQ_GGb$BUlu9?_+{f zOx$R8R^It==oQNNljhY|Mox4h;<2*GCy?&Y_Uj8Xd@(jaMS);bfq8>~?(?mWpJ_h< z)Jp{Tije4Ap4QN%Q2Hc1Wi}@I;D*B6X`xltJa3773Tef{#650%hai^3B#8w>2CQ%W zz|#|^$`9t#VgUNfN`EI{WuTBv}PR8$YLe z5CqcfhHH0aF43Bh$%mBF2Gh_=zljs3W&EP5l#JvgrDcDY1S-LIR+vq?SHjv9tCn2; z)tsJ4MFpy(nMVGNl_6r~O-7MXk$7>XF0oGDTe%6t3CJ_DBU&xh=Wj5hLmPlMzce^6 zPEggjFlXfMM%@POq2w6@QCJZo9-4R?t;xd8P={X!u45igl!^fN#@m$Dn7o&sV%dtN z?0NCQ)&=^JEPy5e6hJ7Ghzh&E;_dNK@~Oq6C(#eO4VTP3csz_f=stm4K?^k4c

m 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 BYc>D? delta 955 zcmV;s14R7JBE<)g7=Hu<0002XtPlwR001XYOjJbx0000004ZAcF-om-Ix(edQpIzO z=5w6pt={*9#rKr8|Han-|NmKuztjK#00DGTPE!Ct=GbNc00T@(L_t(|UbU66Zqz^+ zgniN(QBc?oC*>Jv5e)?eMRYA(}6$bktXC%Hf03=BnwuN6tQ@W>&gz5;=FMIn7*|sxaw#{Tvk_1Sn@R*|GHwr!pBwjhZXVhggJgr_XDRY_lIIpVSJfl^-Pkh|O)sixo!Ni4?8+$Xx`Q5>s&M9*lOk8NY zw}&x)a%-0~3j7sJ46O7kS3EkihdG@k`3oinR)6|cNtiZg4zr@E&do!-a12GLs z_)C2B@Ts%o!<@!d%3S7SGriW$DOR|DKObF-16U>ZnUCS+POg~C%*SS0Z9|F??*E35 zHJB$xDRY^RH4b1S?h_xoC0=il5|@dOG2S30E`y0UHy?;8ahaI7I&y81rp#q#;;N*S zxPPpQ`Abv<3{`=ufT1o>6)@BVsse_(Kvlp{7pMvtY64YZ^%ba^z)%tR2>Vbg@DcW* zR-h`Zz5-Pf7%Bo)B@8uzsuG5pKvfAtO`xiTts+o0fvqAzRS8=~f~pd>nm|f6 zXi@@54ZTQ_E-Enz5K6$103tR-RB%L5k){YTDBysjLy@r}iiH7DvFijGMAUI`6dRUF zWUU$Bym{}eS9UO(Z2>7`&z9wUXbV-Il#&6`Y8GKGQ04S2&F6MJnWNa;Ck|;8QE#r9r;7G||@X{|> z%+C|c55>;RS}qbKr-&IQTvLXPlM{>K&(BTgi^a?^4mXV>;xX8n8Ce|RasXz}{8imI52H3ZN4bfe_i~WlJ|C&UW9+{8AKoW!}eExnGFE2re(F+`iE_46#!l9 z0Z_aBhs|Iw0E)7{bq;-T9=d#9QpDmcXDh4R++0fmpKB>E=%LdZt9g$j;($`3&Zthxi`{{&gM}5&R^+h%b~yM9Zd3AWW9ETgVfL z1(`yIK=_}U_z%PWq}jQaiQ4!P(3V&Nr6C$XejWfQDiI(Fdt@un?|lo#M+5oIi_w{w zo%_#%{(V=tO#a9gB!7-$M?^BX5>d|Vn*3S!?g~$*UQipUPL&zMmg;!4Do9IA%up=Rh? z=qPj=x&RGBx1dpI68aT-2O}^EromdU5o`ssU{5#*j)WJ%$?!5bA1;Eoz?EiTr=n?cd`V|I)p<|3Oju?MT93~aB0<#&j8`F+Cg&D?-VWzQItUA^l>xvD zRIYI4MQ`g1<+DyrL=EogS06Xii({| zv`U^zjmmKqDIK93(F5q|^fLNk`gQs{RV`IdRle#b)i%{Ds;|}NsClUI)k@Ub)kf6b zsWa4l)YH_rsduU0(?DsMX@qO!YV6TCtMPOWZH~(v?wpc2hv(eZgf-1HBQ#fN?$aF5 zoYvCT^3%%Fs?s{6^;Da#?V+8jy+iwi_M{F~$4y6|vqR^k&SQoO!;_KDsATjprgSxR z{dFa}^}2()GkV5)QF?`X?Rxk03HmJkB>f%wz4}uIItC#I1qQ7Kw+-=zEW;GTU55RJ zuZ@h2VvIHzbs0S}Rx=JT&Npr~zH34@aW`3J(qMAU6l2OVO*7qXdf5y%vo}jIt1%lg zhs_<#1?IcWhb_<+P8LFo28$a^64R5J!)#@aTGB0pEekEXET35!SjAgyv+B3{Xl-wu zZrx~o$A)4PXj5p@WAm%6nJw40#`fA=@?77!tLJvleQsxN$G6*KchjC~A7a13zSsVP zgQJ7Uq0M2^(ZDg$vDWbhi^d9LZDyT!LOXdmt#&%*^w!zIS?qk+`4<X~g?%56 z2@eae34a)26HyS+zks@6$%2*zuOhu7%OdYYnM6sVdZQJi6QY}=U&naIl*dS8tzuWk zUW(I*6U24LW8oFzvR(TOpM zEs5_rp_~TJ^wNN(wM(bCZ0;`Z6P^ce2XB(^$}i_nB)KM)Cp}7bP2Qe7nc|*Ok@8f) z7E}wKr~0SXrM^xJP1~RLDLp2=Jp-4Km~m7{5vB?IGPN`FGKaIwvx>8%%bb_(Ts9>N z5;bK**^9Ef#WdN^)PTf9vR*Qp{o-l7 zTcBI8wqSIn=gRt3(5j`YdRObOE?Pal#&6AmwS={4Ykw%TE-Wv6xh`g1Pmxy9nxe7w ze(PI{6^cd0H#WFzsN0CzDA+i-Y3`<~O&?2mB^OJrODjs>Z{}{k_?699m0x|@lC)*8 z%%N=0R?Jr6*6Z8cw;d=~F3&F?+a9vLa|dHb$&Qyhm+ZVyVOLSNi?B>BD~Ee(8aT1AWbo&CM;EEoH56tE6@EV8X%6-*|u1-NtOIZ>P7H z9s-9XhaP{M`0e$>L5F*fu#U8SXZT%h2eqT56Y5;vIn|ZYCGC#u9zGg)w718lr{jCe z@An_mJyvsE<#^c%!il02pHAkVoIaIx>gnm^(__6$dheWxJ#(!uyl?Pq(Ao3ne9xWf z_v}A;-u3*k3(gmgUSwVDy5w-FbHIL};|Kd6ItCpEJBJ*Hx-UCj?irppeBz4xmD5+f zub#UWaP88_{E^}7QP*$YNVp-r$-DXJR{E{yw{vdK+*xxMeYfPE(!GlNn)e%iH2tw% z>L5Kn>ODH}V8MesW8ASPKV|>)e!S=*`C-L`&P4Mg+egPHeJ3wJUif(YN!F8@r^P=j z|6Kdbc>FRj6+1QlT=e|YubW?}zu5oM?q%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600XQ^L_t(oh3(j1NK;W92k`Ik zp&lf<;G>9ONlB?-C_~cT`eR$dLMd?xg0cszhanhIF$r`1;wPc85 zFpW%Z2pK{z!4ib%>GUwq?cC!z_m8`)J@|VW_ujMJ&;6aVbAI=@2qCZ=ilUHoI_{9U_hSZfIRp^$Z&Zvm2`JB5YMGb z-87O&s)*063EPi6e=o##cQg^~GMtfnNVh=^8D?QCR1l3HV#iVKlY^0C@KJrY)cd%*LaUPXNS4gb>Ge zW#^pR3Glc zX|TyK;;Xyx4EAX^mt~FZdKr$Q`0OZ(LRcgV6ywf(2U>f8$#CY=BxsjLLd_VBt?06A zb+V>N_5t?cwDM>&4Bwk0m>%u2gri-`cYQWXoDlc)>QQ*A3Q;lq3z1N>HXZo8r~W_hjT9K7aYC{bSb` zdyz=02n1(v`s8sflRkeG(@npD)}9POir===s2)E#Fs zXSM>!aC`>a!%Nz=bUH1bN&s<@DXT8bfJT|)LF_eYRbo_{i;#A3Mj%T#E2X)p9Aa-q z7xTN9%K!i$Hh*A2-Lbr4nBw?STXZbKDT+cUipKElrmb~WUeE2tm6jKH8@nMrW`RaH zyIFG#CjwI3@a(46#%^_Din9}RRRI2uGrL`xGaQgv=-G^Avt6OXWea10PVAw$2qD@& z2ES#HZ3eRiy1H(i*JX=t($F=N-);rOaJse7a_y{kEnA?A5TbkYp~1eYvA|&e6x6K( zq*5u+P3)4&0bP4G92;{qL|7n`6?LmXJLVxyfJ|{lA$q^eRr~=Reo*?`0@+Of0000< KMNUMnLSTXqa|xON delta 442 zcmV;r0Y(0x9moTa7=Hu<0001BUVbG2001FSOjJex|NjsW5I{gcv!`qF;*n-wJ@Shr zrCbD4N^O+PkP=BdXKO_tN^qq%;z(oWj znaTg*a%e)0;A{-%m<*>4=0il31DyOB>t8S*!(@P4ESjbvpuagL!Qmz_=4 z5o2MG<+-?Ru#478x*}E;fugF`={K%o#4?Vk2hc6Cel8=zj1YnVTy=Mgl=Z51O9jTo zBV$$j3%I^FC4Y^l=%dh)qUz?s;dJk?N{bkG8^-;i<$<}@ak|z|D5=)A4uz(yZeDU* zV{}y;lT1I`7NBz4F&M&3Hji||7R z9vUPJPw(Dmi|8pVzFr_|8G`iC@U3tn>(M0y|3B=Kdoxz!x$57T0b+>=bzc<#YJt@} kR{#VaU#X?t(nWsC7Z!MJPYF8^jQ{`u07*qoM6N<$f&i?++5i9m diff --git a/public/images/pokemon/892-gigantamax-rapid.png b/public/images/pokemon/892-gigantamax-rapid.png index 4eb2d75e7363e3a371224bd6aa855b963a49e958..99d50a3f6fb74cf4bc78789e62403e7aba35dcb0 100644 GIT binary patch delta 1801 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 O0000|N3CnsV2F(xk5)ew6wJT{{8>} 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 Eg2AsdQ~&?~ diff --git a/public/images/pokemon/898-ice.png b/public/images/pokemon/898-ice.png index f619da6c751d4747d7c451028a5472ddee42f2e8..7542313f156c6ba38c38484434eb7852de8aad50 100644 GIT binary patch literal 3744 zcmV;R4qx$!P)EX>4Tx04R}tkv&MmKpe$iQ%ki}94siJkfA!+MMWG-6^me@v=v%)FuC*#nlvOW zE{=k0!NHHks)LKOt`4q(Aou~|?BJy6A|?JWDYS_3;J6>}?mh0_0YbCFRI?`vs9McP z#baVNw<`Ky;lmL6FouA{Og)ia%)oVg-NVDzy9m#6KlkV8SMnwUJR)(F=|+usgLrnc zrgPpW4zZG?5T6rI8gxP8N3P2bzi}?wEbz>bkx9)Hhls^u7t3ADN`^{2LmXCAjq-)8 z!wTmu&T6I3+V|uy4Cb|!G}md4B90{_kc0>sb(B#-4G~&3QcR?1Kjz{evHeMM$>b`7 zkz)Z>sE}+w_#gc4)+|gmr&?r8EJaJd5vKk1So*^-y0P$&TJXY@@uVDJ_QtU0~4_i_3FWT>m<8{ps& zm?%>Ay34zJyLeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{01S9ZL_t(|+U=cfNL*JM$NwXCzwPE$Od}-NFa*t~jMP+H zQ?o_lL=&Vc^hH|)-Ll=V!{UfG2tx+DLNKiEYH40n z`C`3d3X$yT?doG;$p|EWG8Cr)Ey;@_?SSO1qTG5+y~jFa6eG;B55G|Qnzm-|Q$4+1 zb@?K*5+|v$?eniw+kd?WPO2PAvZczk<&})~)Asq-nE7A^(&UBow(o3Hel*JbPubqg zV`Um9zx4_vNm7P~f(2J;Nw!t_^8P2Wv9XbsDwE>o|6}G)*Ge)~rJjp_7Mn|Xf4bY) z$>{ZBre{1tVurc@k;EI1>jy4a1X%2 z|7y1PmUOV^ksmIx=dn)~60j%%SwM4&DovFs@9f3JTaS}kYGWUMp#Z?r>N+modW@I% zKbf@cmGxcd`|CFt3-}liZ%GGx40W}@TU&)Y?{+a*1Tqvn3hDZ7d&)CXt`i#_ADte+ zOZ_2&rtoL~{SMFQ*yE+5XZNaIrf2th5^=NM+V zW@fxP17~6yklx{0T^Lv2IRF6o=iMa+@`>gb5(DZztmc%i-*&XCyX=7EAyPf52lmwY z>xKv7>rB4Z6x(%AG{2x-!CY8k^`_HdmZl1lkCEbgBCzJ30Yt+gmfZnpN~CMEH<%(D zhJTy%;pW?ajfMw76=J$|X`x`I0#Z~NKeo9?txNBm?gk7>B>AmZ5=o|_T%$&5@&e?F z!$3QLMX4xMsc~~NkY+BFi^3E`Qv{?!{t8%3rp(r-f^HtPFCXk zR~?_pnKHe@v&uU|`&fU{Q?*xjun2f*bsdAFiCGXol}zgH@R_}4O#zUAx45DK844bC ze1Wd3Oz-fl^8Qdl1+jns+;St)%~?Awwu;e%iRJ{UQ?Ep7>ugh~kIBPpY--dL@|Wi3 z)lSsR6<1NkO!Z4wYI>9ek8fVs0cloiwsp2Cqi_2WYiwY!XqtIxZXUJI*Rz%!2bPsq zw!!kXX&#FHQc@$S?TyY}76+-+89i8z{S4G50v{*$5%oYuE=S>QuSMOF^BNf60T}w| zI{-C6bq#<;26FUmKij_c`Fhstldz zl|j-B$nt>q-g8Nkq}2T;@e&VKgh;l&{-xfWUEzC}S3dg`zijDLH+b96T${Dx_}bG9 zVtfghpA5+L9!QfHlw1PUSKht%Ob_Vm^DF0OrqmBvaai--=KQ;+2XwnDApY~z)N%UY)zfuN|P6~KxtW+AX3udr>J>wal@{WBuR=~aTrEG`Kc$(n)r+_ zs@0B>A_*MDQ-a7>5iBthR01f>?`?;!T=z2>(0H6Q1G=`nqKTEFTFn5GQF%l*cXJNc zW^dq7>jA@ZOoYkaaU+NEOCM3B6YU|b&`k)f7a!U`rS^E%Xb^$Gvty)AJ3z^c21h3pzQ>yAJE&9Ug1UJ+suVMPCT4j3rcV7T%d!iLY6e$hy^oFI zq2>Z;Nv;%`Es&x*tttdP0UQ4@9br3RAT{OypNh27tdIksY1!r)$Jr8jR~>SXzi-tG4t49Fk^Mv*~i-Q3c}%O z&CDugh03za?1l!%Bp^~}E|OR(`=vUwkU-Oh+0)a_lqI@(x^M|#E=~>sbyNb%c42Nd zFDK(KQ*^Rr1hc27o2~uuP{QG9%O=RN!JzKK96=O2O2-C+$j9_GuQ22NK~^3S&~r0W zDK7)-sW9DrXl6hKvaHO2dV0F!7aTNez?iA>+{_dkFUzuv9!A^qG1{q?GEDFAtTOR0 z^?6DGfkz`*eXuE=LP`1Akh|jD|y~>z`(S$yEu=#MyCICMq%mdTwS4 z#|DEr%lHLxbGjm!fXX}VWn8Oz&~DtOLSC#23aQSLR9&3fSaex6&3nfJKFya{-R8w> zr)~oP`(aa^lkPqvphkCL40W~OwNtm*-)x$mI*STsq(x~v!u zC?tsSHLXHFe!`rj+>DgTL%MkDF#{xq1KacV8owf{R&;f%dAi;jdQr`QtQ0KXbf6nw zYy66Ie~N_x_LCGkg}YOKIkqGfx1zuA5ADO+@(PQYORMXqU2I;#W=7X;rZa&k8kl@S ziOfdW>mtO!nV3d3q)t9=nnB-RzNzlx{uEO%xjN0`z3t7YJ90kh*21EI$%FI`&nnSy z2xUz{?AlX}{pFhgpt-Ti%m}0ios42DDU?@g;7p7?^!8aa$~1G+!O;ms!y!wc1j=e0 zogiMRqU%RyBg`x4_;vl$wmMb?hbd-bQm0Ye)3|y(EUYcBn1f#&cah@x;}THXCK6jU z+y^Pw@pJQ2=dWX^t3{*Iz{ig;7Vv3a=$9;>Ws`r;Hh$B*Pd$jWuoDb?v#j8V==U-9GCu=|k(qQ2s`JF>#Fr zd;Zi!5c?g94z0000< KMNUMnLSTZq%RAWs delta 1266 zcmVpe(DNKS|0Log119e*s%99yifzBkA5l`)Ou z6fd5uEMcx`lUf-c?@8*tvV;)I5CW?-$ ztNHq$nQSrivC%i%_cng7W&b(omH2!c)yGy}L%N~z|I z(`%es+)oq4`+pk)JBkAU!&E_GoN%5ix|$tB2Xcym1gitg4vLeLqxgVqXf;`ov5G9B z7UaPk=dK$BM8f9ZH?fgz@G17)bD*kJ(-RG`k`~F`eB!4K8sFNkaOx0?Zbq!%R=~%Lf zmEe6EqDzgP=1RtAdc1<0Ki3CHH~BS>St%USJHMdqIf}OH4(b!g-_IFGKN1F`0C*MIDIAxmnOMiO%l1jC)IQwh&DBN}ujk7rZI_AwZ zF90|O#?}#4;cDFWJ6*pjE9$ektB6QMgo>@iFhHf7cLz4p)r_@VDcg!Fd4{A)rIZ`T zo2rt%MawTXshFDhWhGxKcMeVX!EDhI^$a4k(^P#+)b>OH zfPcM9^pQU&It&_2J)4lrEZnOthIdhpyKQ5C7DY88cdLo^bw|sGjCC zGreVA2XFgb+smvib-Zm}P}&v~UC4^wGuxGVGTVxOGjE<4l~m8>+K%wKnL8Yv$!t&b z$V?Q^=GO4ONYs_}a>{;wLHo{5py1|ky?^?Qc0Ftt0fD%Ju4R)0$ZfjQjPvYf?$3=d^MRGq#6dG#X?2)tDiWsDj}PX07kiJ)c$$SqGCViqErB)*!tiF6UbCXB z8M7eU8=uFrDk?MFf=nW&i6q9xssV^uUV3eS~}-rh_pD%3Qn_I!sLy1e$3K%~VDW6qrHoKY13D zm@GG)NV34DY9b&eAmC=<-83^$DVjg; zFwImz48$`M2GMqPoS4C+n1Gl<$7|T#ENWq@n|90yOufF$OrXcKX0Fq4Hhoszyq)N3 zT9|Db^q3JMwr%QmHN_RKRn$%IO?DaO`ZUt>E^S7bmgZmm*=IHF56zecWr;_xzx%UP c|HK{QKaRm*bpO%avj6}907*qoM6N<$g3!=o+5i9m diff --git a/public/images/pokemon/898-shadow.png b/public/images/pokemon/898-shadow.png index e6f32176686dcbe0c6e9fa7948a66bf0cf29b641..30bdbe224ece45ac6edcc1742fc51ac426955cfe 100644 GIT binary patch literal 4082 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 Q0ssI207*qoM6N<$f<%m*(*OVf diff --git a/public/images/pokemon/back/412-sandy.png b/public/images/pokemon/back/412-sandy.png index 9a1bc03ca61abddadfe0ad688e50a89b6439f65f..c76152b11bc2897fa1abf72b5e32a1993017bcd7 100644 GIT binary patch literal 10936 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 Ue@L)>8v6rOm9-!>ik4CT4~tpgrvLx| literal 4178 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 diff --git a/public/images/pokemon/back/798.png b/public/images/pokemon/back/798.png index 759b3a7934d6229eada0200491f6bde11a39ab73..085db6e0876f31ca50039a9214c935970fb6ef0b 100644 GIT binary patch delta 1562 zcmV+#2Icwi1fUF%8Gi-<006}$^0NQ{010qNS#tmY3labT3lag+-G2N4000|wMObuG zZ)S9NVRB^vLuG7pd2=9BbaiBDZy;1}Z*0M*;d}r91*=I!K~!jg-P&(R8)qB`@Nayv zb~w-*4B1>12cj=ZDl?Q(x`8mpCO9c53Y!_aWg4>1Ep$*Q_z%&|%tqO7F8FbE4K8*G#y45hXVZ!f~{`rPAP?s+bE=bzsj?}?YoeeU;ro_p?( zPgPaOL^vE%0pP}s>prP39)a-5V8h{g zXiucBxICT%y9_|rwgNkbeZJvjVJ6Kv;LT0i9 z0B~ooTX^uPsi`sie=r!t@bHKwRs>pm?h$@VoWeU3zhirQTd42*WZ2lI1~!ATZJDw?fK^o$ilV6BzWbsMJxVDv*WP!@dgVn0%;TiPka2)ewM zL49Q-{LK|w+YVI2Qt)U(`kO0|-`L02?k0L7b$>drNa>ozwQF&tQn!4f&@-Q}NtJC$ zEQO*dT4@tfS3(T9Tx{r-Utt8zZ|nnrV^F~2)I(XO9igMVyq3|xLo+)l2m4+3Kic-q z&@v-#sjxiHwzajvD9bGPm;c^_Y@Zc@F0W;zN8C~&bcxs2)&@Sy1isMPgpY66=q3>& zL4Q~?s1s$&hw$|*09}?@aN>_Qq_ES|3;3XFMXM6FVgPrbfZ%Nz9!y!b3uXry-yToP{1aZ4T4kj_70X@KbOnn-n~Tt!1`D#9=42X2Y+jC zHipx^*KO}hDJb9omJN}qBh80tefoTTtQGljyN+OGvto3o@>pQ)mY>C^1C`e-@P9wZzGp#ZF8dOHy4<`E zz7!lTw{iP&0CKRWRxeAWr?oq_imB(FENz>f+Wufw4JC0m;1sufmUhn?EFvl4fY!DQ zaexptDH5|&_CU7)Eo!%jnhrsvhcj1Eg3epL87vao3tM`)ppoJ=RP}_c0~*i*7nDM7 zlfgAI22vQLGkX`Ov8Om7U>N06eakppiMd-*s}$N zFW;|9XSiiKPz>MD3af7GG*Z+7fMG&VyTF3_HicrO)`VIhNhup%l_e;B7-3@tN~sL{ z=ys+<9kVs^^*v4F_n96o%lK+ZEFVHz*QX?kD4bjRc}Am^5i82fpP%(1%Zl!` z^<=|h#>ln)AHaoWs2B1;7+DluVOhAK;%9{=qspS8?A|%)@UVP7T0T(FXYBfcx|BX; z#e&^oS6lg?t0%+KFXBF79A)4cJDaq9`@+`a)A%b{d0K#8*$=JCT_W%F@07*qoM6N<$f^G959RL6T diff --git a/public/images/pokemon/back/898-ice.png b/public/images/pokemon/back/898-ice.png index 4c23c34d37c5705b1fd70a5a6d0283d91182136e..0436a6ee042194433b7b96f990e1aee6b76dbf87 100644 GIT binary patch literal 3429 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 Hu0mjfePeH% delta 1137 zcmV-%1djXV8v6*48Gi!+008jvbEyCT05DKYR7C&)001al06;eYSW5tRW)Kh%JUl!` zdACwnQiFkyjI7!nXf}0==24Ev*Nm0uCzwMF$g0{6_k8M}aUBCW7K)q?|Z-3~gU)n6qzT{UUH~$N` zEQ`}G+GZ#J=HE!O+)|q!&(iVR=8KrkA4vBi+V>7U-89>fe296IWFxbPu{E9N?S_c~ zmrvv}NB)(>Sjjn)<7Ou3GwG~2?~yCI3<&uwq?0plnV&)qn@TzZoRZHp4C#!Be!CTO z&ZKj=KJ5bnSG z7*+Hd6Shbc<9Nt}ikL2C7E{TX$s0AVV;DkMnJJk_g@2T&H%x>8;AX@KK~OCqk02z( zn9xxZF$8c9-7<$5fYE!h3d&+e{m>rgRFtU8JjcL!zNv~a1fr4B1gB%E?t*%4OamDx zRPqtRBht|1pf-6~Kod$#otuV?kB4@Du-dgGwTe<%LJ+bwr43X(?}ffTIhCdKJ3(vlcv=tSM<1xuAaI_ar*Et8(C6o6^kZKdqpekr7c$ zppX4VTYc8@g@N0gtB?rLl4&(S_*9t?g4IjgT9H@uASOWRH|L8Few+@lx<;IjCTDQ9 zJqQhjLhA8_s44RWp{h2ZY5!&K!F~wZhImml0Dl2C%SPm8Y4?yalD2oj)F{{xB_wyJ zB!7>aw;Q`-_X<)%j)>Z6n%eqfaJ)jpKv2EN+# z*W?Bp{X!=34vBOoJ+vX^&mOmrw5MZR!Dn(eOGq_4$yH4L@)Wrzgc=MMLxcTn?7awbPq-!^*00000NkvXXu0mjf D&@(55 diff --git a/public/images/pokemon/back/898-shadow.png b/public/images/pokemon/back/898-shadow.png index 62ef9f21fc00bbbf1336ad5e955f28617aeea0c2..0bbf0d2083c982123dbae75cc0bdecb49f0733bd 100644 GIT binary patch literal 3528 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 Qng9R*07*qoM6N<$f~V*WlmGw# delta 610 zcmV-o0-gP&4DbYy8Gi!+008p)0)YSk04GpPR7C&)01yxmTxf-4WN~nRk(4nOny0p| zuCC9|&(+}L*Iym`i#h%M{i?agO8@`>0d!JMQvg8b*k%9#0ryEnK~zY`#h2lhtsn@6 z15D_Q@Bh3bV5L@bwEN>yuGOkOHz27kOJzjMTcbq(1C`e-@P9wZzGp%1TpmmO>2mcx zjHTdkxsH1*2OtM~YPGV6dRlv8i@Eu6W6A~fFW&0vw>Uf9yYjz)~vP}LK(4zNQVb`(Qy zH-l?r45%p^*v4F_nDq7%k*kV^baAe>nuqk3g?!7=4i4qVnvzx^RrH}tms}_ zGaD8&CNA|q0Xxf3E@VQOSQK4hS=dn-XN4uB%95cxymQjwVflQte8AB;cKtwEN@rQI zV0U<^{9Dh}lVNEW@iAfQWnhlIo3zLFg|)}Wy`c@-UHQ^jO~ajgFr*7tk4q8~y^^(o w8e!?}&j8$d>@dBQ9oa_1^K*Fr8}iieFaM_-CFj|{sQ>@~07*qoM6N<$fEX>4Tx04R}tkv&MmKpe$iQ%ki}94siJkfA!+MMWG-6^me@v=v%)FuC*#nlvOW zE{=k0!NHHks)LKOt`4q(Aou~|?BJy6A|?JWDYS_3;J6>}?mh0_0YbCFRI?`vs9McP z#baVNw<`Ky;lmL6FouA{Og)ia%)oVg-NVDzy9m#6KlkV8SMnwUJR)(F=|+usgLrnc zrgPpW4zZG?5T6rI8gxP8N3P2bzi}?wEbz>bkx9)Hhls^u7t3ADN`^{2LmXCAjq-)8 z!wTmu&T6I3+V|uy4Cb|!G}md4B90{_kc0>sb(B#-4G~&3QcR?1Kjz{evHeMM$>b`7 zkz)Z>sE}+w_#gc4)+|gmr&?r8EJaJd5vKk1So*^-y0P$&TJXY@@uVDJ_QtU0~4_i_3FWT>m<8{ps& zm?%>Ay34zJyLeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{01ID9L_t(|+U1;WOcQw?$G;_*T;iL_Nn#UYc!6gzC*ry6 zl2Af)d05b!-fiOv9*2T4>?#jA2sznVrc-5_=^z4;hiw^>w~IFKp;G?zj2zaMheejVzIJy{h1FP~o34pHK<`1xi~rLmoj6gaX? zlz3h~y^8TCZ-I|AyarX6zqs^Uw6$Ktfg|1zN0BVcT3j7Icv_w6uDtw)hxB~vS?qRd zzgFw%_nStQiHnie3`MvCm`ZV$6yo7kUX6j-{c(My%^5CkbB2pEEy$7J42B&x-3i9i z>I4%EX*zb;VZ-yOXOVC~Sw&T&swy{UxVWqRFSvlW7oU}vnp2T1%Ua0E4LfYAs$|RU zaCP`}sc|@O3jn~?;lrnn0UpNv;1~klUV)2CLF~HNfSl|s^Sd^Ql_SBK$Vt=iR9svw zGz{l$!ANiht_~kMyFzHHbD*itfr-g^)w+^Eq+_c0dbP#WF_I|L)#1ai!zKhO9%iVy zcNE~T!v)BUdQIEIq?%&xJf!yM@qqry}h>ZbnFMjcUE+&iL4~~IW zVxrY(d>ttRR16h>0HPKN24ERI{eBGel>q>@?;I1j z`o=5BWq^vIdPGo(`sm}MD&z>v&aP05DrqAS<*cdBf#RYUT%xAxNf}x&48yVIc96fL z{zYuJH}HR+RwqjGwxYVk##J2~<>)V>#chvKrE1&y@>@(y&SPS79&-yzNh#VbNr7lR zgz3R%6rAXeY~0HN;Z-oRk+`|CvVu)Hzr*xkGp?Mg0RX(WcH*JGmQOOorCZ!~{G5Ii z01)u@V)yRS>K%&H-(~k;jMB*c4xaR5L; zZ(Br-1Y$4*)_MrjjqSh>?|}SV6#S_kn@S7uab7MDp2S50RGerksu~p`(srgc6K85O z(bMloPrqMNh%ilzEI82(w%i`66QdAmWeVWVE&}4GgB2x$=?*z*_t`!{$@9g#?B=7b{!AyAh!vsT|RLL_EoWXb$s;AWnSI2ES zQ*%-^B!H+I*Fe7dX;Cv+0+86P(bv%=G|H{FSWjryt}d~0bm6UJy9@WBt@Rp4#}_Rm z#?mlpx8AYGhV47QiE(YcO1(AunlISb+xes?3ZS@qQ5(bUF5HLqj#B`xaqq32vNfX| zM50cqi{<7c{s`5VPi*zFf8tF<2f(I%F zCY~FLY&2s>hTk$tv;q@h@bde)9VsE($hgNMbC=g&UTF6X2NeT>(6L_{#3JDGqCuV9KeJY(HF{ z&qE~U^M&DbS|jgmJ%lI_e!m=4S{#D#6~1dIMCtM;yM~(O?xe0S z=aUU--o>TBv2I$ zm0R;;Gy;*1i#gd@_^iBC05K6UO-haNSUi^>3#+xS#^P=b&0@0Gwco9JEQv@oathwa5CtIV%b&@Pjq3>= zQWv&NrAW20l$3kZg?K9L&wp%7Z5>Iqi2xG6Ojum{XoY|L_!lWjXu4WNql~ChOU%3O z9ps0u;;Vd8z~$;nJ-0+MA}%f#e7mn=1k-BX*kL9{|kdrFV&wtmB zLEpc*L?=nbUR#eT_1ok!r&>?0bU9S&xt9i((NyO^MO7m|JfV--vB!p2KP~dGH?(UT zajlqC50?gn>wd(GOr^5-rGaGxyuGNXLef>4Zj>7JK-6-q7+g+vmOzd1z}`^FCK0NY z8>T41Hgz4TRgLRWt@xG@0#ON2PIgwxCRgh!$dhSO!xO3dZ`5FKIFLrfP$OV(NRZ^F zBBQc9;=( zx*ny7ds`!WT)A84$oeCtT9NK*B14PF?_HR-*EVt}usOpeIiZpI-3kKHtZLNc+H&of z*jn6nO(hO-Z*i$YlrQyVk)KsibNy6yIhqwIr4$-sBHf=nm#pEWRjI}GO&25O0P6wf zKHC@bn>=)k1fc4^;xCnkI59ad`TC}ck#cI0QcAoDC#rDS%r5sH!nXf}0==24Ev*Nm0uCzwMF$g0{6_k8M}aUBCW7K)q?|Z-3~gU)n6qzT{UUH~$N` zEQ`}G+GZ#J=HE!O+)|q!&(iVR=8KrkA4vBi+V>7U-89>fe296IWFxbPu{E9N?S_c~ zmrvv}NB)(>Sjjn)<7Ou3GwG~2?~yCI3<&uwq?0plnV&)qn@TzZoRZHp4C#!Be!CTO z&ZKj=KJ5bnSG z7*+Hd6Shbc<9Nt}ikL2C7E{TX$s0AVV;DkMnJJk_g@2T&H%x>8;AX@KK~OCqk02z( zn9xxZF$8c9-7<$5fYE!h3d&+e{m>rgRFtU8JjcL!zNv~a1fr4B1gB%E?t*%4OamDx zRPqtRBht|1pf-6~Kod$#otuV?kB4@Du-dgGwTe<%LJ+bwr43X(?}ffTIhCdKJ3(vlcv=tSM<1xuAaI_ar*Et8(C6o6^kZKdqpekr7c$ zppX4VTYc8@g@N0gtB?rLl4&(S_*9t?g4IjgT9H@uASOWRH|L8Few+@lx<;IjCTDQ9 zJqQhjLhA8_s44RWp{h2ZY5!&K!F~wZhImml0Dl2C%SPm8Y4?yalD2oj)F{{xB_wyJ zB!7>aw;Q`-_X<)%j)>Z6n%eqfaJ)jpKv2EN+# z*W?Bp{X!=34vBOoJ+vX^&mOmrw5MZR!Dn(eOGq_4$yH4L@)Wrzgc=MMLxcTn?7awbPq-!^*00000NkvXXu0mjf D?~5nU diff --git a/public/images/pokemon/back/shiny/898-shadow.png b/public/images/pokemon/back/shiny/898-shadow.png index 3a52e2948d91f336aa4a5695e96073d4f29f29de..a1ea98d1f3fe8e375d6b7024e1614bc82febaa9b 100644 GIT binary patch literal 3566 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 delta 1239 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 M07*qoM6N<$f-`AZk^lez literal 898 zcmV-|1AY97P)!b}v5v z{RokEntokwbCXz!!u2Ld*NYrnFIE=5IytypbV;~gMB&zoNhi3Kfs+*}FC1JDF14a$ zWnQG3qibqW8x>%P!QjiO4)o$=oNe$##L$cV-K1~T86BOIMQ+R22a za?Cdr-5t>Yk5)ALHSzLv3QPqnT2_V4lATBR ztVc$9!KL-2jk9~;aWD=~a!k2;ph5_t6JAO=vlF~G`gL$u!hI|l41UE%csCoL`{q)L zFX7OuoF*T#L&f%a)8Gc327;R$d^fTOH_+YW#OC0pV27LFEZsyadjsxlP%hH7?rfH% zA(Y+i_uvya(2MR(9?Gm08{ryabUO&I+neu!?8Slut9!&iZVZ2B6MWK^qA&NuX(C!M zV1W;&{qRGD2w%5t%j03&R%ni1H_CpS$o2r>@CF-_p>?vuF?A?|I~rQ4CcI5scsRiK zHz=ig{!#d5FaEqYsmEdEVlC_1{>XqrMIC%MlEw7Smm@qqC4AtzI7qkCi;3k^G25%o z*{I+EhZ3Gjbx+;`pZuy^qin*fYVG(P64fx9EfB*mh diff --git a/public/images/pokemon/exp/4145.png b/public/images/pokemon/exp/4145.png index 93705f24a45d87c84efe2fed71ff3b47d61c730b..acdc9bd12c3d4da463bb19956db9c24c65773dc1 100644 GIT binary patch literal 21718 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 literal 8288 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 WKlW6i&KPLS5Cs`k=}JlS!2b_j-OaH8 literal 12677 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 a^3ANqaA4)Q5%AA&AUPRj=`u;9fd2&&VT%d? literal 4803 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 diff --git a/public/images/pokemon/exp/898-shadow.png b/public/images/pokemon/exp/898-shadow.png index 722eedafb213aa878a8ef1a072c0c109cc0d90be..5a41eb6cee02a1ac5bc241673b9dc5fa7b962e75 100644 GIT binary patch literal 19638 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 literal 6120 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 diff --git a/public/images/pokemon/exp/958.png b/public/images/pokemon/exp/958.png index f1bb308dd4c201ae7b5d0a5a9830e8910ac22707..75b5c27a68d8028f52432713bba9bfa1647f6570 100644 GIT binary patch literal 11704 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 literal 6953 zcmXYWcT^MK^LAoFFQF(zBoaU=(u;@&g;1r4fP$fi&_R052c(FAq4y3Vh@kYY5HLWH zE=7gVs}xNDMY_NnzVGjkJ-c_>GxN;O-FwdB4D_{F7P_E3@3F@D@`{|AysegkmX3m_k)(#Dc8V<=VfQc>=arV=n_G%>tbE;#FP|VA z$0d6PQSJAm-__lA8GcoLys}Jr9DjCp_NQqO0)fbg$?f_)CQ>bczDD|w04l2_2LONv zr>%~B9B4%z?O?qiLk}J~i2zPj9i1t=Fv#c3P75q`d~C?f)XSo%9n!r)0$C3_rwZNq zW0r%ht*0xFMcTAnd*Zl$$d6@zj`|Ees1W_Uby2o2O)ziMDiSs0rn z#YZGeWd3xC&d~qN)Q)!yDXZ{DZ#<3rvWZf5KT)%96x3bA_^##_T^Y`kG%-fh_$owM zxxnJMt)z^R)#$lgLMu2W~dp=#QgjOlHhBdcs zufel0-DvGM$rN#@A_3{fx91Zf^m7Vjw&61uhpzYJ(#A!m`c0&VikdL2Qhoh>BDjv6 zH->%Yv}CiRG6$UzCZu)z3O{tAa8D@?b2^p~0H&?1&HAcY?r-wCw#lmP@pK;aYT4}BuzrNG^Hd_Cdo*30cbXZUTYs8( zeD@Ecv#H`Be{`nLwp;A*oJ@CKuKVxnsp+gK({fV4deZ)+&|1mNCvdM8>YYR9%hYVDO{CHN{ zQYDt~*YRaPzA$<+?W*K_g`b%9Y|%4VPOzGFn^$5N0<5b7u5cB-$@%@lp>qd#&}V7M z6_XXQKVVyK{ELezU^dM|4fLhuyZJv6PD8(-o<)YNan20ZmkFwjUk7#OCToqqw}e0Z znNeA|F;&&_J=d{HU0`!Np({tsf`7j{H1_9xQBPLNh(eP$i^PVJ9;1H7ezVO&w|9TG zf8DA{Q&U@dwL43LxGeq?OZgClF7w!cG}Hgu?dgvy^I<*a)xO1(XQ+q*;LantX4!_j z=97MBb+%E80FVqb6NU5WEOE0TnubB=9wVC}TW$9iU_mW3eA4C-K4g-?c#%gf3FVmX(rzJoRs#O&Iz z%Bj2e8iaqIv_UBLZSw*osb8Ot^Uc8pWn1$C(sk_gOPLjXMC7#!eXpZljgMqIkJ-QyVyB_EQhu=@N>258$a7LlK#l9fB_+mX!q{zsG?1Y3;hft z_}67Yv0+U{fog{PTtK(T?U-}L)cX!@nE*ZNH>68CPWcyd-R1#s#5E{i=JeW6?O60Y zW6x#7TVEeST$W#yAqF7DoD7Bm8GM?;98~A$(sz>C{2UK$dXzo;wPLIe{d)5-+uHZ5k>N#%0?zRxbcR z1xo93dS-LgtB8JkfJ1h=h#l_B-m4z2TJJizC# z?cJiyp*G(lt#56&Q2}9PYCiCMdNw~N);FB6BK-+%;S9W-NjNmh#)**I@mOu)^z30` z-fNda{vTkg_t$-{dZd51N7`Mxm;u0-KKR8rf zOK5uC*Lw+*vBh}p62vhHn%B|W{#x7633q3_TKk4zPbg7bGwgv{eJB?!!2TQz@KJ-q zRXwT~P4o0;gKUF3^w*PX-;)EBXreSRT-ly8z=5dM?O37+PH9}~zF9=D5G|k-vx(x8 zuYav=cTFgfifsZHu8C@hjXAtqH!7=*{uJPU$rHC&JV3R- z{x+EqB^6$Yj%xq@u)5!+TeX%Lk>#cA>QxroplM|p&gp8-3$2>?CC^av&2r^%kfNm* z(<5=GWkuWD^qO+Ma>m8yonuQ2y-0Yq2Tx8RBW6cwg7_lSpmkr4V1BO|U;cREku0Fq zJ-bv}MZ)>T2O$$Cmgmq&{JqFVAfm}R_QHTfXuHrZ)o`j~0y?48I9@?j8{Z&j`fk^(6ZXyrhv|dvhzO zE;4ZAWnUju=Amuu-`gu!7t@j*?UE`^>$H*8MnlS812!o8F9R^a~81+KASArvjwW1+6TAT(*Vz zoqvWX;f%oMIfSy%KP&6%)V+u+GKY5cuU+5vQQu49vzjFJHtiaad4=Aan?C$uli-<8 zNjNMQu9J)R*(>?b#s~wI?8YWYU#PZBo*OSNk8Jx$^`*3OPQ zjZFMXgl9Su6^xQT31cj%nW>C<=!>O6AN2C&&(fRXYOU1AnhXPc}dP%|ckOio5! zG_wyW!)c(22UNLMv_RxR7za~E$1l7dTFn74%x-RO;SoCOQ5c)1b(N4uvOE#}A(O$a~<7r-7eazobe~`< z*$GxZ9v)EIZVc3c>f^0-*g1d!fCauv{!nZ|Hs=)u2Gj|VMm%Xp-t+i6BfioDFfzpP z-3#rU8upzpZw#m?U4Y7f9h@MpO4Uh3Hfkz_WOF&EF6QbtGpo2 zFNU+sM|H%G^L;bovI%*vc-<74gSY%GUyIi!Y(TzjfdB9ZVl?^?(oZD8b!)iSfX`H^ zuIYz#vcHUhmpm_UAoY#kTZ!&7YtxestSFNj`K_qVTsSrvYm}V4xJ%cVR-$RO%xG}v zbeVKVUz67C4*s+-qb`lE?5hpm@ERK`XrMQ+6;`cWRw6E5`*i8H(D)OSwVf*4i`mWe z|D{Wa*`K(yTI!>?9eR&!p0=qxb~Az8 zT2Hjv^`2NYDiu0g{J=98rt*23;v%6_d7j$uy;NfGNldy-g5tMeIXeY?!Bm#xtqkd> zEL&)@|5}4cC>K#jR2PVU8n80#uWl;5^ipl;m8tl-EX%A=E_{_8BkE-3$t5H@~)( zxjg$iTob>D)M{VPtxGV9a<*X*WNBsggHlhFD^$&hCR z7sDs)g|Vk3{JR~V7qbap`L>NR$~azeyUc^F$LmQC`JD1#rdGY}7X~qwpzV8L2V**$ z=H*>FeA@Mb_q1_?g|jiM32-4G?NV*RWXZ5gWti^e!4#fG+D`YL4G2n9cbhSkG9?{n z*UGh2Zu??MwSX5|;o9WddVF}sjN$2Y*ZKts6x9`vKgQtN|NahJ$cf`*-K#XVy;w@` zA@?le_KCkPiE{r0C}IEmKNgIjtYzE9Of4L&EFVDE)P!ySY4243>YgglrrCD)oCDA7 z=y$?RPMZVrS^!g1h(Ot;tnsY(_lP&xZlIY|NE9atMp1j@Lfz8(OB?Go!LpTaU(9Rh zYmI3p=I{Akuy0;&6v<1Y`69;ZPUMl5QEKe+at^E9Gjn%u*(CQZkp1yoktub7$IuVY zp<&Uqh$_EHZ%mNN@ZU}1ram*kra5)w2&B`$L=k-YNU&&5UeJN*CoEBeqBKxXoH2b< zUe{uC@=gzMqt%kJT)FU#cr7%6c#*`o44I+HO5gtTPpI_B5D+eD9HndGH}2o69yd{B zV8nHQ_KL6X(A6p=S&|*CL)Ho(l(HtGFcKH?4in|&uwUG{7aK+5(llP~4hR%>&!mwq zh3#~HzVY%qcAw?a0=xZxeeWp#rf<4k4e3Q=*>?*2GCpfoXv;jT>i({z)Jf6CLy?5AQdkAnHm-KXZ-m1psck49RQ-`jSrddZ~f=SZWXI~-}E_D0sUOhmC3U+h#SI5 z(k_@=3nq59{MNMktWTn(XeWQ=Gcd|XCf(W4xqaNSLBOZqYrPqKw)3fuZy_W+qWOt` z>(i^$zQEszgJhmud&*i`xbh?x1ed7e{SFxgi0Exk5#h!rTb#b?*MFx-5J}vYv24^3Ek&9T{b4G zY$&X|h980IW2N{b#ls!`Qs;xl!^pn`l+&+~p%bS{ zyDxjqEZQIOX@wX&L7hA>qS_C%xZshEyhnzljCe;U5?cjt1@q9=4 z>{_S${(mPxDf_-&6W!%-8dgDtl4A=JC1jp(TZ0XMz{B)a#pQ&lb$06ta|MTFOKX;p z;9G3~V=L^{wDP;<#qf8F!Q*zOPu-fAK?|_0gC1X{U|ggvEe=H;ZJ#blgAe~c*^Od3 zrDT~2F0C-W9>02E-2C0e{;^2C7hLorrPMKaEy!8!1G1Up4}D-pE}x{o);OC0xsY`V z_P{L-A^b8}rtGt;asb46N9PW+=6 zwbQ>Z>%8G1ywvbW8@YHcQ@byRZMCGVi_l5eUF(0qA9+1SdW&sLZ`}O};?8?u-1a0n zMFcC+X3>a^PILIBvyex#ATO+0|HzA({M&Z;F7_jb z%oIK~x9}<33dJ8^+y(mg*pajUO$yXwuJ1%omY%wY&yBJl73W3ga#>{mwL%pI?&xni zrpTu0p0mmPfplfQD! zPdJNtVT-1H?itR>B6Z@pJ55xI^4U#ChwW&t@%4{-eI$dRlk%9V$Ru@`&Rb1PBi0d3 zbqr;a86UNIxcGX=LD1f|YBTG71GU6bYeIR*TWXz)Fc|lX-0pwM5!c?Q=uso;;~)K% ziHn~(Wb_gp2+fXphWS%?pJRvQ+w;TQL`5wviTY$=A(~#O>yADLE9VI_=hSF2#D3(C zO^P%*{O~afE;fYNN``Cxm3wSOStoh+I`1FxU7rI*#LTNoPcFs*JU0V_8yXX7g6I#n>@P6-I|k1_lK37jkGQ9g6y5G zl;+`Ep#Rf`j{-U0vOCvT?k#?f_*m*eCKmDiq#v z+@ewx3*RCXm}2XHh2e{X92SSZ?1$kaf*c;v4Dluf_zsi%f57JD%Du5Y`-24*bHDG_ w-^dII{y(wv2S*O_WvP-hBOTF_v@yuj*vhVLuTeDh4;4ULLtnj075)7G0cVgyqW}N^ diff --git a/public/images/pokemon/exp/959.png b/public/images/pokemon/exp/959.png index 07ecd30b2a1d53194fc538e84f3de8fd3bd4b5cd..187f8063e53862f3f64caaf404243aca7d7e8efb 100644 GIT binary patch literal 80869 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 Hu0mjf47!3@@0L!y>eDn$oadz%RxdL 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

fU5(*Fo{AxDtWD1UvqE{V*lpCmC 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%0D2giDolQZGT;NYZpy(G~2!%r7xCRS%$ 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 anQiWaVykdw3j8HAz&kl5*&1o%;Qs|Zk>mgX literal 3841 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 DKWq;E diff --git a/public/images/pokemon/exp/back/4145.png b/public/images/pokemon/exp/back/4145.png index b53890112e9778f00b55ebec1a50982a991d5a02..f3e50eddaa5b015f26f5d95fb59ce0ae7f0eb416 100644 GIT binary patch literal 9484 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 IYZdl?0B7k0iU0rr literal 2684 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 literal 4324 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 delta 1944 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 SdsDms0000*2cyNq%slpNZK;jADOuw67$%~ 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

_{~dO zN5WlS3YoEaeo03%BInK-m~>obB|563ISZ<)@l$-l?zUx_9~bBBm5u7c&+*hLE3}WW z%Et6m^l}1xBBJ#EGLP!)u3gWHaDApVJ)2SYtl)@`>|dfq^GJyNg1a+nv8rX(1+CYs z0~Yz$ruk9Q%``pt_Q|ULei^=$=MHJup65?z&pFT6wpYW*h~MDMwyQ(YH<C=ZkZ^6U>niVbkt}Hj&d$Y{DFlSR*FC)-QrL9y3_=d= zt=HbJtOhT^7z=}CWduvo(6R^#P!3**msQ3B)xu%eH$z9R&xR15W?bMZGB%HeDM3>m zNECH7`Klr(03VJQKaR#OruYMWATe>6iGZ4>Bqs|Zm7B_<3m=R`IO-)>45ri3xGFh- z%LCO~ilpI)KO~e(>0HGrG=xxU>CaRF-qOU)+P47ga{vt}0v9u(M;Y|A#3!BljDb*R z@UcOrsDIv9BU)Ni=8N#W)(IssF+dXwT)YWAI&_x|GWIR}B;L|RJj|$8Ou@u6FN6zN z@<4oynUFI8idq{c`dxCa#QC&JbE7*mB!Zb*5{O}k5o+sJL_C;vR{=)9x;W)++A)Eu zlmcuAF<7Huv`xh=tJFV<=h2SIzlV*M+~(b&V(Bk7NGYOP7$!OSFnty+XmOa2(S$x? z+A^93`=-gj$7hYgDIjo zmNbTemEKAs$h&Oiw5^SR`<^>8>WJ}u9o{?D&;&T2TR84ft`91mHyh(Gj%?H1Bg@nr zrH>^r)*-4ke>-%8C*s{XL@zebH`vcmOtMcHW4{}Q_i*tTzIvHp##9;OD+1Go?sZjr ztBm#n-3^&Sq-F@et3k##ru*cEGW(egGA>PtS7AoD)!)|YcQ=O2WluIG4z{udk-yzB zqnX>SI8b<1>{7++N7l=A;PchyTPo!t?7zIj?BsXJyZrogXXx6;t_voJ(jDk=P=<{0 zSXaMFc`S{@F+rI8?Y-)WDBXwJc7)K`3f6FH@$OJ!anbG$ROQR2t~|Pi;dAa{cBNQh z_~T&j9XpQ$BYO0UH!+gw$tIo@5!Ms9rFF~p=TIVTx?l&oOxi=7+yg_WC2-}oZEE8g z9NNdl3SPwyv{owj?RP{G%ahH}$oQ@PO-7RNUwAHM58SDq#9%aLF~HrYRry)$PT<)21$x3y8Ot?WZtAHaQHe+wf?$a$~oxCOcQoIA%S z7?a>Zak*8_bjHHnHU<)#cIlBq$qqljAWi_njl|`DbTN<PTL=dKm&r z?!USqAPmK=O7-)L#qz79Y)qW=X^`K+LX${AGvGiJ08f)kmV^Vjiix zBPo$@N*TvWH=z^$ccDyq(`smVQ3$WCI7#-yPAU#IR28!y`V&0#U^22%Y)NZWTN_n? zr=r#*|4q*wFVPn^RCT{;1*wLTLG8NQL>?2=xi<|V=-3QJ6a9WpPfh4_1W7#|89C#c z#S@L}QbV>A#mLgvI_U#@uWyp3w9VGtk#ubMWuO!a_kpa*W=|4D0m3G|l}Uy-A=-TKS^IQUR^8=dgqT(+q# zV&T^T`KJ8Kfddjq8qtGjMQ4p1NDNa2(*FWm|C`=T2?W(uTKu|IAm~Y@gZHW*=qu*Q zffA^IP`F|$wUMe)&xqDvK#;|EKRof30su^!&n_*G-Qu?73xTEhH8MV2_G!`DR{ZtX ZJXnW5E~;JpH( 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 literal 4588 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 a{4n>BpF3-kuBo*3jl#HkyEHiCQvL;1{FxyD diff --git a/public/images/pokemon/exp/back/958.png b/public/images/pokemon/exp/back/958.png index 091664cd9162566e4819c473ae9ea844076e4a3c..d9ec3d62b88fed59c1dda1b052c7516a2111df97 100644 GIT binary patch literal 3911 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 H02Tco$f{&p delta 1989 zcmV;$2Riu29@7tyB!4qdOjJbx001#3I#57gYf^)CC_;E?ho6tHt9OXAJ7e2?oMKm7 z0002f#mVWIv+(fnsG6SHSArAX*jWGo00DGTPE!Ct=GbNc00&Me^0Q0&W%@#YgJg+EyhteOpb@8p0{-m1?5cG|9jS8{mDtZa_>iSCEj z=5Ul*bvbMlXoWeNqs&U?h(8Q0vM4=Ko}-4%&8$8zZLF`8Dsz|xNMI#$m`2;8S)hN2r-L1ZVHgO*Nt+h4bIJQZ zE!f@clt|u`2pM1C^6MK#P|sJUpToC|8d&qsk&kPoUVp-k60zZP+?`lV!V|=>nv^uR!XhVtF_EMN2ujvJRB5{+|XV2x9#u;Q#+Nm=K0#3&m>YY74EW)}($Hg#J?7!6$C2 z$~{zi9J_8wd=pMWnvEvm9swH!$b9~kN1!xcCtR^EEKAp_3<7@K;5j* z@4=AE`fUC7ch(mqHiC|5<^lm_J2sw!A>-Ny0wp>&VdEd$E>t}th zYf{UFD!!0AHkTg49OzFFbD=wxPX)`QrP!@+ErtAuv0SiQ11`_ z5OVohg;-y^9I^c$jfIZ~y}wO4j*P`@#1m!nbnu~U29gZ2Uotpc_z zN2=_Y)PQR*zXca!Tb3hTQ+J`gRFz`4;6iT8a`b;}3%{MWN`VV8>)W098b$4;Q*a?; zeF&sIGTTxl6V)oD-ze+*G%5@B%75Cc6<#6zMp<8uG*KI~_EMyZ={Lywb|>~KDt*V#aT!zBOV<9Q4YR(h$R-Yv7V+C}mGwGQ)X;A?rr#jzyN-TrVoMW#>s6hYYJXJY9M^A* z+U1FgG%;u|A+dSvR;hkt)NXI$@jumsqMUni{RXKWpQvhdUVTl!acbvLc5H5<6n#y< zan_fk?AX@l71wW+^`+>KojcZ1AO@l!n4%-O|NmN$2v=fOHC9J-KtN*ei%T9H+n~KR z`pu|air?fgKdr}ae%P;0zklU7?DSjh6-)hQ>0zaQv+%G~zgcuxtKTrcVXEIG_ll{0 zgWM~o`VDfgnCdsky<)20B)wv)-z4^mseYsIim85+)GMa?jUulY>o>~0VyoXM^opf^ zv(PJ+`ptrO_iFt{fmh7+n`Lj|mHG`c4H)V-%rs!A-!RjFoqp3y1AmtKjdBfG>Nm+X zV5#3A_KHB}7Wz%1@!@s4oqnT01H$WcJN;&<1{9Fy`VB%2Xk^ayn`Gk?nRESSkp}#F z#S4Dh>NiTqzfb1g|LpV|h8pl5NPB*MZtJ(lRljMf0Y{K_NWWpO0cVi5*KZzbz}am* zj_5bcHQ@YVXY`u|8h^0XZx(65PQQ7k0R#Ppp$7CT_QCjNy$1X}h1ccVSB|aUK6Gp` z>kA!Q%=$vd7PCHgY+1g&I<_p|9vxejZ;y_x%C}d?mc`qnW9zc*-LZA)_UPEcaC>xY zVYEFvwldkC9a|Y~ua2$Hw|B?ZH*6m}w&VJ3*j^l48N7wpI)AoSzjcnS)o-0+YxP^^ z*kb(_I<{E9m5!~|Z>3|)_1o;&u11Us^_#z|ruF)5c1nB4mg+Z0VpOQ#+$mADe!Gvv z@(*+U_T8~vkl4<#b@~mE*ut^3`fWmD|EC;VuHOcybjq>i`VEj6RO`3Vu|5AzIJR29 zWsa@XZ>eKz^*&qg*n0hTbxN;x?U)7t0E7Y9{HvY>5*|2O9nH$|e*4dUn*jg-0000` X^N8^ga1H|U00000NkvXXu0mjf%0>Az diff --git a/public/images/pokemon/exp/back/959.png b/public/images/pokemon/exp/back/959.png index 12003c8068eafd7a60124d9be4c3e0e577e2ea46..29242f92dd7b5fb364f2835ccabf880fdc6472d5 100644 GIT binary patch literal 4807 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 Yw(s84Pia1XKc4^=XlqoxvFpSC0|CwyfB*mh literal 2972 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 diff --git a/public/images/pokemon/exp/back/shiny/4222.png b/public/images/pokemon/exp/back/shiny/4222.png index 8c92ed356cbbd249713d5e61b392a95bd3ba0fb6..15970729f49c138eb394d0d3df7365e731a47a8d 100644 GIT binary patch literal 5251 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 JPDHLkV1hzQ^?m>V delta 1944 zcmV;J2WR+$DVq1A95g&U$gd42Y>i8cxv6n&v<&+w4Vb7 zV;~O1<6wn@r%R@K!t+GL({sY3{T!&WMfhtidSS{z1{>F&)g|nwK$ZPoqX;|h-oz<1 zev+~mga`XEP*sJ$mu`?(tfR9N&dP%DDFmuOYkQ5aO(O^^+D{m*ZU|q}9qs!-Aq&^R z%sE|jwn-f(#DD1$_I;oVK-(SRLC6wr~(StEa_; zC;K5#WyvwGb-e7J0;YxYd?g+2hd{G%oVO8#vzy}Rl0Eao;Ynq}eh5@0-JqOS-C2u` za5k)tatSWFlQ3&P2C7UJF3NzdFqWGXOL=`X^QZ2vVSmsR?OWlHTqchw3}CH}!pYHH z1JaY}oI8#Kor_-J77mj_6z#h}t8z(cV*nK8=<;-Vaovm%&s7M`9@E{rGvI6)|F+=`#_b^RrvZFgng=9#nTyY8vxjEbrf7790##y zaOOjtWq-b=tT_6+WI|0$#PjGJ<#BYv0Kl6MabCje8rrm@Y)>^auUQ<$9_2@}!UYRhL;*?jq-9NQSrAFN3u%TSG{-l*`Ur>M^)yXVV^}p?8uJ;sV z3aE}{nG@x@tWuOu6O2N293vblSLS*t%E!XQBsfOcP_ByC3V?wZD?Oq*9)ITCw59&G z^N#BgsBYI+iug6xn^E1auitUKhrWKt^&a~ADP8-&qPl+r(Y--mtE)VI7IipO%@^oP zz6w1co_?iFqOavb30I-_a2kVn9Ky6=L|Dk%dr`RNG)8ylxu8tH z;ba#>D6m9aE;gvt?8&bIKI~FM3!I@2{`vj?%q*1$UwGE1769Dk{u?)!Wzcuz^gKr3Kz|{HW8%3UX>`|I z!bH2Fy-85Y!->a8;0xkE5p|zEm#}U+JLf*faukjwvT*8=$H*WwVhA&><*D^8JRM4# zc04uN@hJT-`=6*wg$E-2Xm_4y<-yntR4;c>_1drLkKx6g< z-L_$wY;;`lm@N#{XHU{?I7(@B`yWdcK zmON&Ofu`)SHsK7Z-_U#(JZ1v}&DjG!zRLoAe5DW06Urzw23BYCE_=`bcZj6>4QC!x zXv`KAX|hK>JI6{qX8TP3syB<^F%O)y+4KHvUZQ{CL`%HH4>-}->UF*iFd)7Xmy-$q3t_B4eGZ_E?6k3|9hTwJd>L7uE=YXPZ zKk!28rD^610OT}R2juIo@H6lxi=UdQ-#t%9zelz{4!|7;H{T#%_&q;=jEg7S$kWrU z_ghA#e2UL{wa7+nH$|M z#PcSAHZxL${!dR<1GLhG?ImMzcX4?7<7n@f1th=x7Gj^l2x=eLO9i^y5%YKGTMPf@ zk%>-2J^WX&Z`C)lIy7->#>sJ5w(gSUbGWn9;lIsG*^z%)**6DkM-4RC)b3?g!OD#g zKXN@kPNe_!_Ny;y*&F?eTG~tU-&?%24G3TmuJ`|C|Kt8lYo>g(nb3$r{jE_{M1DiW z*||P zko4}}s$NlKh{uW`wbFJ;1^^ zOQi@(oI;t7Di^x`xIJX^uWvxoz!K;BaGno73?|6Y64%9E=(OsP`34P7ZSb<%asFXxa=4F7>QhLY`?*<< zGDgs|s52KDnR$s-()78B3(70c5s3;yztG(Htzh;zI1mlEPmS=ql;CBP{3;2Xg$L1! z`!xl^tFY}fVi%Z%_{&#B~J*?;B{R(QJ<( z8;PZN*FMl)8INA(EOX{!V(pVTQv&`Xu(&;mr2J{~3K?pL4*Smw8B0b)^iPT2x^bnr zvPKr0uIrN$rrXoqM99!EAw1T*iDl6LP_tG)Bc>$>%dR0P$&F=!EiD~lJ}xau>KM`U zf=JBV)6bzTK|h5x4B6;voTYLTR$_bXrhE?+M8{-+O)Z@zG(3888H>q|zG1x;<{Qzl z;BT-)V)b*VH`7y&>3Mo?%rp=3dbO}DFwdaL&(~r}K_{_aQ~lhaZlZgwj$>{$xfPf- z71JyTmUUZR-^_cI^;}6qTHls}u=Fz|@(1Z%o;marf!W8JgztmT@Z8+)Q_ZB2v=~M& zsvnfLf7=pm_YbXsQ4W0?;o3#q$r`C`dO23rRf4(EXWs&E9z-=WZM`Y;JU=gwVQqef zVe%EXSINuHJcihMnN?HLzBK7n*zN44cz^p^LnG% zb*WXxTD@x-k#4%+Ag2dB#+181i70#A8tI>D5!m-qG!~%KuO2t3)GcDZ z!}MYhEArP5PpG=5$RVJ)tZnXha{v^sk)xV7!oa54Sfvir>ZW(7?$6h=I0PM8R!&am z^fc4v5VU&*RhcxL4v4yM4Z{b*{a%xQu~V}O=N+iFn!dg&Q;<`kFMzXT@9gVSic3s< z=)`WwN-4ql(2y6Gj@_CTEPVfn{l-m+oo?Fa1Wdhp(DN_`-~j&zM(rsTD0kh3Q9~V2}}6wG?B{67?bz)7`$fb<2pqM{TpM7DozgZ(PzNrC?mn zbd8R6Ok|cuYLZ4Zrrle=MqI6Hcjsl3TpO6t#We5SCTP|^{4pmL@PspWXJyNJ-m#0K zyauAL+1fR6z?q*$%8Usjv+UWPBdrk&!awS4Nm7l_W5AUEpH(bzUw6 zUX#(cdF-4Ea>`U0WoI`|d0url2ql+ZrAIEOS`6y->&!o7H&OAg(-* z@4gQ-m{S0tMzd}g<~l<9p4`buk2Hk&KtH{B+WV?d^}m_|uHjd+G#^h7NM(@k!f72o zb8ezhT2RPESK5b1$`74bjAyg?s*&bA$REYudVN5pfhMcAgM;#^xA()<%*0^we{m3G zAm__6115loqumJP8tvN6a5f$-iAXW&N1wzI<8D&ET_{;-3=T3l>&%d?ZnPR4@< z=Wdxt9;u}%vGNJsU0_vhfp6ODL@`1CsX#N@4b~S9BX}5WOt^jJ&~$pqSX0Vyt)azZ zp@;Bx4%X8)1r*I^ZD4Kq`dWD@>oG$#CitvDJSjIwQvns=S7lN$_jS!)oghu{y=r&w zS5fSe;31kxfK1`bC9%k*oDYH$ina-gZDoLw5k$IoOv|;F+)m@IHe}pM$e$_AE33Kx z8&w1c&YpGryWW!U(#Kw3fNs>aA(ZL+x_@t?Al21#Tj)rxri7dmS6`#u!VhN&*6R4g zMB*1_?Do}9u$cA*Wh$?#Sgvdm@v7+(g2<(e2v^quGMc)U9wlEW5%$JP9hNt%Br2|u zhjEejP@P5d;9m(OPN@2pj(p8gW-Tm5*7eRQZttxT;`JA2Mj~YSw61yD^<0JS2U<{G z@x|=tZj5SYJ8c`XEZ-KY(y%E&-*&9}i4K%Wt-zqJC?&JZd*nOH1+sYLf*5*>zI9RZ zN%0Y^;5>)q7XFx)@tdv{P@mX@grR*~=|Z^JZMKlK$_}>hZ}YFTpF^-}J!s3WXaJPr%jGa$>rr?8!xYr zMfnHo!kgEOz?D(q@ry!5VqMcKy~`XApi9QCQc~2_)ivEpHh~pjiP^t{5VKyf{dv4%NW)BIMdZ%v?% zNKHM({#SqCa)eJN6T~L?5K4~9b-^%2X94Y-Q}1_|b3FsDCvJy@(SuMW4EYC;#uwEB5;Q4}o*dMzodd>~#?eLc#1^pmI`E0k`=|w92tx z1#a}Ij%+F{MH00q@BTbuh*i_k)mI5K_UH_ z6dncm{{w@B_ zf4OPZm;gfa$K4)I5MdEo$e_-& z&Ov|iBkJdOvXqh##eR&%9~o{|?m@hysVlQ)Kc^a3biEk5GfsL$OCiDIQ1B&xOLH1k zp8m!5yZ_E?hbsS$D!MKdi2SHA^Opaf8q9>0?jbxSKRHG0`uX{{3gTi$%{NH7xMoUr zg`ZMb;v)MJi2-5;)(^_vHPAbY1oCC%?2 zsxomZ{P<%g+0{_5u9j|}268K&S@(u?dZoH^p>2SA!Pi~ogSEml|A^reKLlg;ItCR& zOYTvaB$<#2SH*mWpgoe;soP-0^Xb%9%U>wy z9(ax3Rk09A1|3y-?}%LZAF1hW!G)5p-w;+$cfKvIfsr`ET;1fm8M!)QlRPQ=Xg z;p-27{s!aCc0lhYB;D3io_@6R`Ft#4o&W8fA+85!Q;&ColrAD0iI7hekkM%Ka=MVvK2*{DiovMs9=qdn z^-oG^s-9{OsJ37-sR>8Zgg)|!oY-p6&(s3iq=|_U)7m*@_@Qg6%P|(W`;yAM97-+O zYn43DP{)(ElxHyfiWg^WDQh+U58~Mz**o46Daom9n6 z)Rdq;@$9V#%gn%)m-eRQPQh4<@o2@EbIMr+dTd3orPdbE@=8}lv<${eX2+iIYS4?k z2tN)wdl=I_xgQFDPwAR7ZniJPIo9K9W-Ws@tXxFOSuOoeeNSc3rP1z*gpJ_Fzcx{BR9n28H znmmH;xSdD6!m_9pjEUExvG?;1wU)*OU7dv^5K#UBQ-6cIn)`Yo_&fv=fD4Czx=PV)Jjb zhQ*baK0`3X{%k!pa|f&Ttu%oGrwj>hXR$p6=SS5aV7rN@mlU6|@!Mx-V>iu6;}YWU z+T6Q$&xA%eO^Vu~3v6e==g*FJg15eFe*glVRI+=aja|I^tKa`5O`j;78Nq%zV1GXX zyTE$-Xsob|0k@HmWbixum_SlU?Mw|HXim7)O2Q;`GI%Ik^rZy6F@9zWi z{rh$`&hJ&*eIBavaX}TE_O5R*nsWY9J=^{Au209T+gc0SgeAwu75+-Et5&Elk6zvYA@Nt3$iGy4?K(&CNztV@|U0#|RsbtvGw5 zDo}~Q_HP_tZY^9EnUDg5ZMniJnMjz=dOJup5YsJz+C+IiGEsxF4M%v+HFge;?eg(; zh6uCDn)r%aw+u`Shf$H2S(l*Sn5;A^{PH&c4diKyN?aihRzBt$@ciX~q6r@RbtBeM zgqK2F?i<(XpJ;^0y-P>>6P$NNsAHC&MlNco87G09Z*eYy z;QV);t6(q6_;;4V^YX ze28hoGbkf&EZ*`1`~Si)w(e37HWZ?MjjQ@=<~$u{lTmqx+dST*IVMe7fAmL}C!Hvj zSQH`}+ZoC*YdNesaAzo8idsA8Mk4<0fnL{^x{xq%@X13}ZV_#-;yYP#c+>Zf9O?5@~#r=H`xIwm%ZzQkh zuGDYThSFXdlNx$b;p}6nu=IrL0JEml&lU%Dt24V_JkS5`+p(hzp#HT5p~WunNe-5W zJbt!a_~JAyCcwG%FjIrJ##`6kFxy(h^N(sk2@GAww{ny#OkUtPAVyVHl zCcH@j!m_ZLblj#u%awQY^7>Gpd-#X1l0x;obYfy+nqUYG8tNYxyVg^WhWdn{A{5=7 z_8nK4+AO6&yk2*-JN9UMiLyj9g!1Lv-(l)=V{)m|x7QoQ7?AX)a$t`#~5+cR6!k)E1P@CWoYG?AIr~x9xiz+pnnY(;I8QFEggry3kEo zuTFx<|DkG1Fs>B_Rws8@fyE50AGDZ4k1*kL_*K6SrdD?LM33xFHhr7cHuhLC;-=$@ zj+LuHLq}mjwn@&U#28{P@41^l@NKX^LSNh`SmK{OsM9$2kaHQq(q;(5RP3o1`7dG; zI~|CUkh7k89vWpvwbduLWMy5hwcu#PZQe(Tk(#HFjHQk8 zb}EbzQcsE!L@A>LYKRYFB3O&1sM6?Bz*YQN{94iSuF4d!$Rdb7EBusKq7)WMw5pRS(lYBI!s?0oN)L77oeEeXx#xRtU~#Eef+U$gHU){r*2Zsi0w=q?j= z(!-K^h~XhQxhH5-ViTUGWyDZ&D7h)$q$8tbXeoHRYwrcdz^5N5!7%&sWXs9+k*)Uo zV~zAKlpBl?Cy9cG9&!i%KMAZR1CJ*hpkyFWlVcEtN$iT;idmz%EUi67l@Jg<9-Fn= z0aMbuizPCJW*c--H=&zw_t&E$UYifvd=_K!pJkin;XFOj^nC?-=+c9Z6MREliJ*=BD%X+?LcwJRX4A&MB z{MV*xoaI}2K-)sO>ouPJjDMt7uiA`q+ZgRTd6-3FmSeR9u(BX472a zd>+JC%D00|{j~V;O|!%*HeD^ed7g8K9;*_V6@j0yc~89arv>;ETRth5Do_-$px9qI zTR}$o*S|d7g6#Het%JDgYrq^2tC~JzxWXpsqxLIJTyE3CaU~y)jpPVC!qKTj+?Kkp5 zs*2n(+NHn4zL39G9F__QFlT9!bA>pHiaw|&(g!6jUpgEfx|yBtSVnm1@?Mrkm93_w^gR7gwQVa~${fMt=j0`FZIPH70KqQ) z-@ghe0S2BJvUfy-Mvs z1wkQmK#FM+Xa+jLl+|V-gX2AgVGD??KuZ+Ieax%i)&y7o+k>aohFoA0-TRcBLSeU? zbNnaN^;162Ev$<@PHe}tCW>C6CABT+OSpBGuUBX3|4lrHKIeTIR*=x_PI&iqOs(zY z)OzQ4Wr%rq#1*-b>aal7h)AOKCZUno->=$xsTn+8>w5vYIXSg{A2@_r9$lP{yGo{^ zd0z&*+_#~1V7ug@$=ZW)MSDYiSWRf+E2b5rClS#)@ zvgRCO>S}jkhFB?Ln{1+xwtSG_mZUDw%p_ipD0;|VFGckD*&5fy0e#B&>W%cTpB-u6 zSWP%K8x0cFqY!~RAf)N3*Ix2B`=m}? zW|!(ve1~LJwwU_>uf&T8mrXoYcrVPENmhY0&iBVR$cXCAMMfB3z`~A|1pnTrmGN^Z zD#B{AMfS(!A)O_d6UM=a7TS~0hM-lp%OQrLnFTaqgmOUPfcsPVw=e4-GX+` zI(rDdPooq3)k7p76;x{r|o6B^=xVW-(KDk|P_(X1#JQ z2y$Ew<{+H;k$i6+lJ<@*q(815dKDES`HhKBPVdYeUOTXiK-;9>9f&w z1u2VsxhBp2zBA@L%viimxY!kLOz`GwO%ZSU7NrVzVL7WF>(#wlIGf&YouU^yFT%>h y;A6FL+|ih-ze$qlq)Qv><=`E=gVG5`Po0d!JM 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 z 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 diff --git a/public/images/pokemon/exp/back/shiny/958.png b/public/images/pokemon/exp/back/shiny/958.png index b4ca792c826ca0807bf1cca47481d793329f38ec..030e88a35bb71e080addb2aa27cb203ae4edf2ac 100644 GIT binary patch literal 3911 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 delta 1990 zcmV;%2RZo19@GzzB!4qdOjJbx001f+7de^0Q0&W%@#YgJg+EyhteOpb@8p0{-m1?5cG|9jS8{mDtZa_>iSCEj z=5Ul*bvbMlXoWeNqs&U?h(8Q0vM4=Ko}-4%&8$8zZLF`8Dsz|xNMI#$m`2;8S)hN2r-L1ZVHgO*Nt+h4bIJQZ zE!f@clt@{Z2pM1C^6MK#P|sIB_8hc~a;*91$j7x(FMr`iiJ1EwH)rB!ETeo2+qUby zl1x4|G2YVK+qE7tHE~eITf}(OCZ0nEShSThwxMPvqlt;~B@54HgqhY3VB}AfFIxQZ zYSx!%TR>`lV!V|=>nv^uR!XhVtF_EMN2oQ%csM8?xv7cq))>QCf^kz5V=W(p^w_6a$wzaCmAQft{A~rQK)Jh2h3?fG)&$AE9uq?}4 z6GbagEYuodNDvXo`5>qQ0RKOSyiQb2Y+|g%Y=7T(enCorV%ET7U2W3U=P(gs84zk& z2Q-71Z9V=h)sPx>X(DPjG1RgfVLzJj|Hl-KV`Yb51h|Mf zRj9>|*I~-)ITM{K!g>&E#wZK}K@jUN0ssHE!Gtg@TPRjDS6gU3wI=nuAoQ2o4nA>H z9e>wW@`rq4Uf;!!Pwct+sa^l2EfafasGRlj9v-S^eY}Spv6J;NXQ5E-tdI9N0_tXc zeh-FR)@SRtzq7s|u@Q7cGZzRb+p+N+3>nux5Gc{H2^;^|cCm^npY;jqyd6dLTR-c2 zU6WcaRPlw}vAOgR=0F##LY1;UrbN~U7k}E0Eqm}BJfg_@=tAGIWe=8ZXi($|MHl*x zZBtL?2y_iNu&*C=W)oq`J) z>q8*zk=d3anW$DF{YF{er%_q3SAW)Ct?&xzH_G~Qq>0*?wU;7QOus?aw>z;{8Nc;v zeRLsbeVY?M#c!=zLTN9c-ypRk6El7*^{o*@`i-)_t%(`GjmY)esNh1#`ocsPX$ilb z11I~EerpxbZGA6y@BD>o-X4_(WBs^XhB*jZ-_1vSV`-rRZz= zjkCTSWyiKYueg4rtS?1>?A)=A0x=K;!4w_I{r}g3M7R>Osowr-DZDP=1z&K_1k?U zmVcP*x9^Vag2Z-?tS$Ju_uGH=+YA5z0001h Y0`rLR5l;jMLjV8(07*qoM6N<$f=>nLj{pDw diff --git a/public/images/pokemon/exp/back/shiny/959.png b/public/images/pokemon/exp/back/shiny/959.png index b79a22297c67383402a31b1a13094c9e2bd5981a..b6931b47fdc66fffd745858922e0f2a494d678d4 100644 GIT binary patch literal 4807 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 XZ~y7XG~d6UPXKeYHLBjo?ZN*6LY)*7 literal 2972 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 diff --git a/public/images/pokemon/exp/shiny/4145.png b/public/images/pokemon/exp/shiny/4145.png index 27b07671c7612b3a56051f18d9e62b573da77f28..bcc4c6f91c289a4b5b8a16afb91ca8246e47a366 100644 GIT binary patch literal 21940 zcmaI7WmFtp(5^kWyK8U_8r(t#4ess|+;wnwcb7nLcXxLU?hYZi6F9^3zUN!#*Y{%< zYc<`wx74m(b=BSB3UU%Ch=hm$008B?q^J@A0KxF_gNFrQ`N>DZ0{#PS_D%L108kr? z^lAtL03dQ(h=?dSDM}QIpo_`Otxpd=R=J(i8)g^YzuN$DuYoXqG8zbe$oU%BJ4b_I(UE2ba1h9s04Qs~ zwtam)5cg3WG9A)uIm$X6>k+TB4VCQag<<|{R4?E?H>p*Vf(@XM7Ik#}xS~UVH_9WZ zo<-d(KbqFWAv?t?HASHrz^<0)bp2V|>ptBSjrWEN>a(|t6FPay#D=OZA z0PhI?v6a1x#yHUVdx-Fm-F_{BmmC*>E@7Sd&`H_En#nkUjy-^B4+Pkj9M!*^W6_wH z#u`T(oSM*L#-u6^BcRby4v9|0irkr=mOY9boM1)ej;7pYTTUm?B;IiZ{Fr{##0J?A z)KTy+^YHSp+A!I4(JlDuzGfyoxTfd@`Tivk{q)#>ukMqM0;nl6ZCrT{wXwhf=$=6+ zwEqj8G++Tl)OER_dOMJ|dFd$)?0z<5EMH&Ok%q{%qGvh2c+N%j718&aR_fZgI52d- zN#sdzW)solw*BEzBswrMwQK)`e3%>h_zCXKg%lU#m8vU@B}q(lyhw&jCZ$n(1Sr`jWi?y^)wkdo1T{a zG9B>dt==N@HiAp#8)GaX%HD#hIQ1vvRSS}X3?L>9bt+7B429JL-PD880zlh_g8W7o z2JK+LwjF>S2O&y^hwayxho2NsX+T>7>yn4T5y)ka@9b~9&A|i5>_2V*y$+$oikjm` ze~CCDj2;v`f{vpU>P#jwLR=TD5l6HS1tWr?K%4|mEdrE;#1THrQz{`Y3pvgIajbnz z=Sy8%MFl;QPuD)8N!Y))Ukd&ByQt6AVQe7S(E0@ckw}i$EE4tTD1? zYeMuy_r&ys;g9hSq}+A3Z{pF{5s(XG98lfXvZu9Ix5sKB=)l}WzlcH`yty2|GJO>H zLi2(D8k0*-hZTiT6(k8{Fl5S4m=WiZZjpBXMumA7CO2UJ)2}5&(k_UJ+2eW8^i= zfduyF!LVJC9mNQ`7dkUKW0jyXc~j-q1(yZ!Q_WKz6p=4QFf&RPzZ&e!0~_dZA|kS- z8l-ZhqQ@L?=t=U4W}%KxZrPs=pIx5$Rhd-fRl81U7P%G~%c>U-OF$)8i&6`#i{cBL zrC%1j7v>k5OWjJh=7lZNEP|}|E&t5&lwUcc+Qf_#|IJF^4Lw@_9mF}wLCK+R{&${u zChPay@9X)oxw1LFf;*MWs`LEpvQCkgp!-5p)nQqQyn2zN!YShr#QwzisS=Z0wjyUv zmwztQZFg;fZC^ZwJQO{GJg4hsWY3EPZv74o?syI(it zUr2RyRJ2hP7rqODAiLTZRMshOTh1;kAeRHT=8ri8$4PACF?QK68#W#*$XxZ@(ro2y zMC_rHBoi=)?USKQGq`fNz)09gA{os2#Poh^(-^Hera&enruNUdngkky+BWs4&CljG zcGpE@mhYu!z+@`kd7QL z01e$d-Vh!|x1P2->YVBRvPEtdZSJ&Ha?^E-@eF){Li0w;kw_d4DlRoEJNhYmr(QRyc(=K?6-nYRw?w#wM2to^D z-S5z^RCu^2+28wHVIIu4#cyZs+1|#=z?Kdb#NJnnL0W*Fx=lKtPQT-{w z-k)L+(2%MTeDMvj6wzn9{n`vh15#kBDLN^}DK13QMZf>_D8MPe`k7gvKkPo7G%RUc zX{0`+7cn1(HQ+LAyjQT7xm%3){CU0AUZ7VfpJ(TpVowYd$^7}ZMpoD3BjzA=7PSQC zY&csuQ}_jMeirQ1?VR7QM(N@f>%Yu@v2x(-;Or7E##oNzsak20X$7TRWjAvK(sy%| z;;&VDa8;0Uil2*r|LT%Ml3mNarx&E@6og8RPjgU_#3({|VQ>6$!yZ~cQ6EuXIG&Yy zuERx*h{KFF~$z2G+>TBpaJv6rHpctgX@_aK?$n8Rvk(7JLhJ5GD;ebcSy zuhpwNtDUD^(`4ZM>uBs*b*AiBxrh2$HM5pr*O1+$e`8Rig_SQ|1M_DVuU6(Cy7KXA zvl%~Y?|ja*BXJ_c2D!OftV`CyR_T^`S}gt+mC1gRcBjUZu9Rk!+Oj*e?Rrd}R8Q9T zUQK8)t(nNTo>rSs+xdOAw%$xar_Mah@@b8#|B00=cbJ_ME6hIzI~}vk5Aqn+{-6ESQ1$NP~y-w7Jl8o1UcMZ zyAdzR^Xi?|IqkUi=W`>k@jGXVOLm)*E##e}?N7&Q&y`2bPPWtQnofA$&HFiXoe?h? z4@5p3|7vwl$pnQ?1^F%wdIR~5*K29Nn!exqbR3gE84d`zuzPp=OA zOFB-IN8Vdk9mY`)RzJ5c3PeJi3YO09nycG`)noN@OI~#Of{X)@RI8WH^xIu+tQj2F zA04BJ9`vf0-sfK)wp(fCiw91_nUw!=g{y0yaZ;+REp0&h0h6BwQcAnL#Ie|Hy?BSB z`4JZXjNUv>p6Tx{?k&;gEVD1Z4^}V1MXD$AHaF^h0aAOCoCnKN9Y3@9bdoZ1XN%1z zdw;wM>*GyueqTF%(EwCgocVR(c>gv`rfe$JRZIK~O?{q1C%x6h936vb;yDced%$ff zS%AUg{U}EudwsY%KJMy_SoUE3w?`u)4y(I^vgw#r5DiAdfA=D}jjc#_Wo7P*dbyoz z1mF<;mGb67^jg!XR?ANa;vqOEWIe9s`g)^UAeq7XF^*vVU~lmFlmsbJGTb2w`kSNg z_+~F2633uJ9K7`6FmKGb!dd-l_r}>`*1KQ(5Br?#b3Cs(VzM-ocGsw?Y^s+;OCl1W zLXr`Xk;*NYss8uYNXMd%l>PSoTse*qtF<#ugnz)W&GvIlpZDL*%1a#FbqLV1_}pE@ zdqdebi;wnck8it6XKbF=UJ3P<6kA+Ns5?JK9!1ocvBQS}NYI zHutJlbuZB6qDdNHKz%|1zwqg1u00A%KgMBi>Ig4A;Z!WT8NuADlaSWSGI{}XY;?LFK5_G+!hs9*QH7-k6& zA$N)yz)CiO0BMoHa-R0*Mo$LyW$ff1^WuY;t`~^X=WU0m#^ETebZMfEPXJ=u?-!ycwRx_puPq$L&&VdK(m_s3C1UeIMNrf&~5}c~jQ0_3|pKu0+7j zNV?c|J6*?X|KO+@bJd)m?1gIR(rgl!uGe6oD-U%@ukr>w-nm(sXLPN9C)1n9YX zb5K7g6MXcJ?BeK>L}4M119r9vkFCq(6?pRrb+!*BI#JtlJjHj3ygz*Bf^w~<#AWet z-LN5~tG=0}nm_rb6>O{PLNd%O^NS%-@_e-xIy3hPao^Qe-wo+PFG~*If!$e_fhGRu z;s$0dQB~wcz7sbDfPYEm2cbP_mvk!gpfV8)q;LfH_Ap6U_t%-0g*zEfg+52fY@kn7${B}WbM*_h<2?IYR!%4j z!aR~4i(HTt7X28E3X{^F(vk_?R?Cy@>uc_N%4OkHSkP&8qVH(Xw}IrIW{yKWOu%B= z!ChT&S(yj5o~mDS!I*iK+Ez=UyrfQU{#&;P323b0&n*!F(o`$i$uoZJ0(UHD}N~B~}!}tou0Gpu; zQa^y`v%=)iGkBJT1pHrtzZxOJ`GU$KxMb<-DaYWGM+Fbb0@k<9)rHB{>X%0>g2J#_ zS%0(34}?wP!SBgTQ!J1x3AdlE4!3W|WgWz%(ulbF!{Yk=ftJi5dzxRe!_E1uDV|yM zP+fk*iI^-MZc{}v$w@BhczazJ2k-SW!>dVj7M3Kl8u{h1(=WRo!Su*_Rd1eRB_MSa!*X4My%Rov!qen`qTlTD;PbY8L;m4Z!yVI#v~f*w*+1|NnT$A;oCy*Yy#Ua6Wg&h*9bSmEl4w6p^MB6GA|a0z#u&4m z4=Ur|5-sr}`YZ2q?=A4KZ}DffR@7zfY5Wy@04R&UjQIDqF>Km5S}`m1b5frlld4nR zmnyKU>34yTP+6K;3~qy-*u(5gE3T;`sVb>L@y;p{5ut$bume4Lfo74o@nCDnyYE0+B0mv(yaUX6s-Ra@+$+HSd31Of!f(vC~ z>4^sDa=b1}`>isx(e%}u&`z@7g;N8vQvUh%W;z;WIrIWbJB6nEtRGK!2&QN=6rDkd z{ZBZ#%7?w_AP}0J1C(;vXB@d=i8Z3Qb31piYtikY9uCSt%2iw&K~w7464brTM{yEH zFI;*7DkhoF&-Z1H)ntwZk@%br;0@GcS(9%V%aKx-a2DiHVMUe;Aw9yrosE5k2FeK% zP~b>%%HfjDbsG5NbwEGmw^M@#PSW-b#t%-^z@dS>zh@9w->iA zTibb?Ba?LiuQf56u&1^Jz2y&uW&Qf}Q~;M^Mk40^21tn!r5)YIb`%n-(esNk(%Gr%6s0B{mL&epkcs{Lo5>g7Lu?y>toK z%7uldFy}H8V0Ah6eIIr?NOgQ#M!XqESY?9$zP_`(EzQ3}32Vifh7FK+qMrzk z#^s7{T*o|L$8B=qlNm-}dhN_VJvUge;p%xRuD(8Yy_@HuhM`AP~^wbJ=cz-Bc$4b=oTX-^7o$Ze$3e{}+GSjz*cdS}o4=gBI=9>tsE}Zr`4H6ZCuVL1Ws8e$R z7BO7Li;f&@1D08*g!qWb;1%S@(uQ(K4f&I4&vmd0C=~b%X@l~|i_M??j8pswX?e{# zPC*d{GEf)QMi7-2^rsISK-EsaN=Uwi%83?1qX|M|baO#IklsPh^MnDYbltXBv4ro{1;u(h@x<>kkkYg_Wia)3bTFZ1g`QeJ*k8w;r+GbM0tH4TP(P#QAdiAtQIqY- z?K;O$;aS~)bJ~aYE?rez=S(UpJq;)AyFwdsUY~| ziD`ht121878|(y#0S_3&fbCV*2i~H;n(ikvWu~>OP2IYLY*wX9bV8&ZshuQBAuCY0Jp|W&zwy=H+7eHw#^+H&8H>RD>9P6xTqcLw~=n=Z66+~r%o=EH_ zZ^6AijK&6@xg2GT?hCCzK&+s)L~)%{s|Y_st5JNvs-lv;;=If1fN(NBlseA{-J=+Z zy@LqxJO&Jk2c8~UWs*sRc{iviw@4?cE&=TCx87>2sTablxyWy#m%66x*V<0`JkY!- zZ#Jvwac^5YhL-jQ`8fF+^h)KvM+eaO0T4_EbP7k@ z{jGUKX9SobecveIaQAu-QkDC3)H72^&>yHo_;NaI_#{jGAZD|zXcFxL79e2U9#Xo&5T_qOP(!6v{zpP{EIIsoxQB|BwWtl3 zM88F=%&rHq0G}-T>uI{Gf*5nPf7%3UHz`DG>t3v|ZXA87)BP#48IB97ltx|LktV8D zB^;LRyFW5t)Tl${zhv=;D_gt7uc5r-;ka*~Pj!JsUQZ1v?Ffp;Fg4WBsz;Sr1iMdt zY8bN4=$Gne)=PYIx)rX{_)l2`fw?GPH@RL88L~shdKm{#)u&W=tUo!vE&iIh)Gc$G zNqh5Dm1i1>bA@Cv-xQ;M4IR;Z0t5~sq^*BbhJu|F#M{oThnQn_P&NC7;q|1Hk5$aA z_p-`&F@)2Ow-QN*JM^pSS2G0Qp;AAIIC?7a5D>-7o2sGc{k7%Qu`U`Z|4+d#&vk=^ z_ONu=Vo?D+PMl2`phNE8_SPCWOj8lF*cNGWAz(xwN+n#YB9RUllnUW53TZd%ciy7G zW@BS^IX|i?Je82_5wv zcugx%{`?rhJ^-Hf?V-Kp#dB-0&UCyZS2bBZK9vPM)rkbZxvgmH=8CJKZYPIwD>hrW zU2`Z6O${1!y14M900)K4E5YyA0N+3yWEZ#xKB^N0gh!mp#PzyvH#D-!xip?99m=eF zw$|c8kjNUnSxNi{QPLHPm*9htaI!N;+z@Ji30dMX_z*HFRO~>)`^YVhjHmjl_uW!e(?D-jF`p5R$hUV9CTUpyw``w>qbF1 ze8;NHj{~a_HnTb3;br@_a-s@S7Q2dqWM<3vt}@E~Qo(1hds=L~kuW#{egsz3*D6{L zbqCVb^l((wK%w=PTaZO9(1r7j;c@QEjU)58-*9EsjllGwO`2$0R8zBOQ9Klt7(bb8 z$^K`zXWLmm#o!36IIPWMLOYXdp_t9T1lDi8ftCVxWjdK{sfHD*m&x7z`3{?{KiD&N zR#|ObNFYDi_2bN8o{nfHZ$MZ8VURmVH7H={fQ?{t@qPEy-%gAb8d`n$B&C-nIXWc9 zLSyLU2|5@%ntgw7IUxb`9DWi=dlK@EQ3H^}D8uMKXX9td5?=?&fp-Y`msFHnaAz9N2jA#t#9= zs(|LKo5?Yn4mo)%cz@3Q4q<7_Sy}&csNH_2Pl=)Zqcz!`i7kt)Q>`v_47sHE>}DXKH| z5nKUvPjj9_+r<0>1kG(J7s*R&aTJ5yR?j}k0jfXXL`kNJ+I^wP7~S3e7te++r)vKs-Etq|e69Onu+K{_eos6AQx|2iSTNYf9?Tn8y zzW?#Ph@5yha4U3IZEZjb+k#jbL&bL$@O@uwe%>d6f^P+#7deoA?!#*-cq#LPS|Bs4S0!P0*n`|YLO^0*fV!j9o-KkBBzyOVV zoN4|TQw>74g3ECn6ti(A-(rP**N4Be4ZA5B7)D<$VP=!3u^?bw`|6de`!_?7J15Canjy z%E$!pSVnl=|F!S~hr!@7;g|wk|Jn9zxUiyaUd*F00{${hraHwAW%9;&@;cG3@q%Fp3^2{&y5zJ*W(pbs^xN@#;M_ zW}4@JK9-7f@#9Do2U_NlhIRflIQWwub~>xaevKin;ulyeWd&5>*X z_nd~q6*U$8d+L;#pQSjqg70zVQIYyN?vs=Zn|;@mXhyn>fQ^@l5UOmL~^qtqsai`AwL z&Q}{p-#KxbWRHnBp-3Ja?Gd>CGy+#7M64dL2D1$)1zV6~dxuOa;FNMOnNht4 z>@2R1_nHj{L)t&g;56rd@EiW$q{ov#2IF%d+<1Ekp%A43Jd9l5M{w=)tM|Vm7hdsn zX*Td8^r)cN>WyveeaVEkX`roskStZ8I31v{f%>~ z-W%;x%%1<#MiyRT>NBK1pUmRdEn3y3yPYZLp=oX z2iVlyA9kIAenhn0L&;f0#TK0!D|*nwEh&N0HD)o>AkP#4tCJV=)7rl7VtjLbxI@^3 z%#yidq3g2$P~}92>c;wUy~a8_P^`RY%l+KSTGvI;<@5{;;jVs*+>9zt&pDA%{t_53 zu1C83J9rZ1-_`-&rIAoz8Gkxv2%ujEMCDM&*)HFbD2u?&MU#vWIuRI(VO(hLNiJC% zemYVsqE+JNe$)JH3npMa;PB;(3lAmt)cKh$_0Y&SJ!n5F7AR!I@0bZg2+M91Gl*p} zU_11at!b`mi!sJ4Qi>*)d>Gr;9eXI!d@8bUu{QqgZn;^{BGGs6(%b>`j=lin5iH{c zSVeJvZOyx)5Fh6*0al)=3;{TUWlANe!#vgB>%XYk#iH4uXL;rdGP!P&v zcz_pRA(G;h3fS;FaGeT@yH}v$UgKnHG{mBxC+>|>7!|j;p=dy9@~dE+?t}-V;~i~_ z6w0zsIWWPI|0RsE$T31fb z!ERgbiZwjRDke{{L?>E_DEg-WVl+OwIcg~G-;oO}ccG#fW!4X?PK7ccwRF83@oQI4 zA=@ho`8O9c`X;a6oi4?Phd|2{5mq}Icqs56t4H#ar5L1D%lNH!NN~l3NdWM@` zaY*Euedmm4p->X;iV63e7XBRw8?qzRNf~!nC~Mg5Dxc%w>QKL!E#Ik1K2WBx!f*zz z26#VzQ}3N)S*S zeU(a_;29ClU3JGmvz|rrBdYpQvR)o1NStpz=z6eyAq(+lXg@2?vV%zL@J);!Hj=9Es&1JR;O?ufphi6+~r8wtce{7XIHcY43$oZb!R)^ zZKE(haA47PBDtme$IMOhxZ8?r$BO1Py5#!4f$ZmM8R2~66FS)qrUhrr*qfo!;0WDY z9rLddD386Z$%Dr;cU@49K_bxw$akDVuY?j6;hlusvV~qhAuIp#eAVuBFxT;RFS{wB zvPRTd5EhA=-{+km&XvBaBG--#GSC_8U8?so7+0!Twoi3~x8{o(HJJg|QXE62$y@0& zC1=~)AHPfX-%Wl`VNy~tQz`^>%Y~pT*%j#$0DN=40S^*i_qJiBwnI)4ovd>LVd=5O z#HBc*qCnsj=N395r?Q#0SYx!Q3QzY8UF5N)kRmA9!VEHGNz^KPdZ@QvCpIm}>0~G#hmSfx zfQ7$_GF??C_joM>bOti(7Vp3n51Q9U&N3(EbVX2zGY=TToJGeK+rT0uGhY3mFo9Gz z`1D8>i_lOhHSr4%>=w`yGTHr6y=J2Lru`sUt^bf)?Qo2E!0x(9RkbxCh;Q2X7%dPP z93Gc(XQGdXPyR;8rMZkp;|*L8z3nm1rAGQ>Bc1_QG}%c9LPjor9_E+`WU|z@K{im{5tb`TdgQq6>2Nb7w|kzkKQdnM(8H~iJDS7moD|gq!^j~~d_XSJ z+A3g%rPD`MoQv)y{}`@lrzMeDyb0e$64|UUi#G2M!we&IxoifAvvykEc#; zwNEuBMG@=CdkM?pc5!>2tebDYnH58$l^<>fqJwmZI^kX0CZyZRmLCby^TF1M_t?|6 zmu@+gwW_`)?jqAdvgizw;*$Fw!$K0rSmRceF7tN}=X)L^=Yg(uT(~icDd7oEO5l$X zp&V-T=`?S$Xo`Jwl_xo&aI;aAnWv{i@~4Zjm#4alnODlM!15RmCxqIL)D~acYp}N9 zf3yG~1e`b;Nmwb{0uGIcK<=+MIN(B3O)Q3uzV!bsrTs4%GuogKME{zAh+icExf|mi z?Zj&?F4O%{zZl8dRfZPYG}WuU{w`pZQ;*9qIyml^*-c}+Ixs^)o`=#!K@7>PAw*u; ztN>v_NqtF~|2V(~$*n|YQ({sm2A|0gCC5AZ&j4wtl~{%}bQ(TkVkzB`v`KFXSLkxO z)!=BS+C{R5tXSkdRUrHm+LaCQ!B7M=h$VZ!|H&cfkThI7-h=XS;ghc~ikB2*-jZ&d z0>I6lzzjktnvvkIqJ?I=#sslW9c)WYScV9AUJGo3gB^fvbzqLwH6I80 z7f_P0k9@+^@ZLp!u=Ki9%AFOFFk7(yDmhZZCk5*m;;j@~yG{(9yQ9Rp?Q=;ai@@NB z9=Bd-zvA~ZaZK1NWeLChct}YQ4s>e#n4YNZ)wiX`>y)ylGm<68%R7drDX4wb>!B$@ z#vbbtt!itm3XPj#k50Y!)2`n3japwJN)?)FO%GCNpM64f()+QQ+A#R}EwR(d<~JVe zd0P_`^sIupFung}Z3yBlZ6BLE)ZNTN~2Ds*}}5TY@6XXzaEKZ&`jlj*UY$!7kBSnd>ODuk)CX$3D3M<5isNnuw3 z{A$VfY>Gj)ssl2VC%4qY${jll5w2jA24gw`mp@O&>;v7#?_OhxNqIV|@dAav$sJ~Y zDi?QtqEj&KY~8k;Rt!QMNq{xju+rX~j!kLGKMt7xsCCiIhWUfTne({0@)z6^aqDrn zAXK_IGs6rCT&FjDv@3sqGqGaS#9qh!Q4y)6NfzpedrUb?`{^!Vv%h zNOH9HWTZ3RI~)g|5J!fu#nf59$V2xn_j?h8(y)9W+`^{e2z88-LqDP0`D9fCoP<_& zg!QkeS!S`PFdffxwxO7U9B>TupisnC^st9{Qbi=Irm$(Ce$+z37J$&KHOu7G3WszL ziTQe129A`8bU>2&KEk}j-lt5WUb=DQOn6M;eFZ+4`LJzZ(DO;yvZ2_#SDjvx#`$17 zxBSaSF+rX6GC04G0-9tbK&X5PMTJMY^1hC9qz!0oZ5?}RJ)NZKa^5P4-8$^lV>1yh zNg`GyWq};A%X1;3kx)m4dL*p7FbGJ|IE>E7Jy8!<2o8GGB2~)7IwX85qgZ$-ZKiFK zxzo-0c}NX;Z=anPu8N(%dlYIhV7*0dKFXiROX(qWJZ1>5FOmXeg2Q}thGK$KJ$mKU zpVmC6+l145`9F6!po zOQMA3s>|?)WF@WC#Rj2tFowQ%8}C&GcgS)X#KfV0{efC%jlJ{hV6FvjLZn^bRW*M% zT5_s7&+3-je`|PlO)zlst2^r+&ZYQRZZkMp-1}_%Z2KoXqUgxwAnskW3AP%PPc=a- z`{h`G{EZIYk*<0sPA~*63#07AG+(w}Ai<1=?RVF^!Y&DVc&7y3j}G`r9@*$AY=*0& zwy31;a#wxig0nGl;x3fUA#ZSEa(tfCyRr3B#m21;cOCS&>ekSkz{h)dpz1=GiOIk& z_aCD(<`CvuSn+hucSr?*q7lVBQ#f9IA5-5^DL&0>v^&Cw+68X4{!l_m^>3I_C!tBk z*lmXlrnUbxEPDYE zrjcJZ?`G(Xssnl@Dy+at8&PmobGyDvMpKl*uP6ft zHv~>pB~v-~O|3~0Syc|Y-%qvwz0LQZ+#=yIe`b;}e(_O9UGa?Ia0fk4{Z?ICym$_2 zV^dTMySOGUM=xFOkjVnKQ(55iF?ZuBOi&6H!cX<)R#9Nu2WPeAOLxFG2RZsSpXwCP z)L(%A;7GT+9jlvG7t-W{s7gTIl~N2Fqi?6G{w zK)2x5AiiLRA7Rsi^2%?u4EYhg(jE#fo_&q*I5WhtrOZ)4UTlj?c9S9qNM=VcVwAro z)q>ZdjtF`b`l*ArB+#L=BczahjLCq>V1o@C5{C~fT6uysp`rYCd z$bOknXz2V56c|z*DmhPH_V+hAKjyR%tM<13Q3gz zHf{y>c$@{W{`q_@T?P|}QrIITpH~#l1RC|45C=M>)M0$gRmjO5vCFG4h?1-)mzW}l zeRI!YDAs(6pP+9jKTm>m@l)$+Kv6x%Ax#{+xThFUnm)oer?Mhz{G>f`1&%wLHmR2{ z&0X1TG(^H!qt8DlO?R&GMMSjo2zEY`$4Xf5E{T$J!18_V!K8R`k(&U zK{WH6-i#Sn!+YGaO|3^<3uIL!&k2#_+D!E3cQacvlQyg<$1B$He*LoJr z(^6y{!+`hPYD@ULH*-}e{!gyM-SZkEH`3v8n_l2)t((Sk4qUWAj}`LKcH9CRrxMyh zxTMWj(n;3Lq~@}+&&SO&KvlK==5SVY?uuVq<*UZGcOk}?1zQzgvS;sOXwxrSy>*{u zswvHI{pH7fpF$&*;iM8AAT5lkpo&XhU(?s={PPXDM#ukatKoV(H(8OCt$&r~aNDcH z@RJXiM;=PTtA3bD&Hvy#@L}B-j%O!Na0vEu4uASo##sFuXlp;}=4W8V=NK|bs(+zM z7c7C@1;dEZ$Y74N%9cWrqQeX4Pn~_NJGd9T&@u+%sx- z_?V^c6Yo<$71MN1f|du5Q~3hgYphPhviW}y*Yf=oWZZCXKe159(`!F>!kNm-NBlrQ z&03;jQF5zW_3SdKPhb97vZmo0;Cuxc0(qC1>-`CAwTQS3sm(lKj7V3J%`23;dw5Og zEwa`D{Bwo^)}b`K8j-Rw_r|Ow#KA;y*u8NW6WZ@l$e$fkmK`7k3(oivz5|&Hl4`%?5f!e-1SlLfVT+AJ)})4> zuYxm|k)+5&!!euhGSS*yUmkEFpo1GtCW>HD9z&Zxgqfj;V6xVxPHodZ@0y3!Bt2B(uHEzb68{>-oOLp3Pr( zCE&p|nYjr2)@4-F80%!3i~saP$yg-Cqq{P5K4hJ?IiO$a2$pd$(~ix^gIS^Cs1Y;? zt*wD%A`w6p;SmKI;0e-4j`7ot(zUug=8kN*YH||*Ged!}4*@vU-u^y2sva*Gf2jsb zeG%s+sI+8>0PF3*TGxU0&+d|G!~Ib^y3Za&AfOk*sYRqmRIP{>Dig=m@;f7ylFhk0fJTK4MHxs)!IbbHfK0CgjSK{oes5#lR7e=x?p zNZ)fJxR9c-yEt1b0Szb7R>0InuPzx!Vaz>yDEl$1+>%z!Y|to?>#@akXAhscd%^mi z9=ik3@^?c<`|&Xu)J-eaopEXPIs~7+w%FDebPq(9Y! zluF!JI-dSSPyB;sjsW2%g>YDAD$Md{_GyukQ0z~B4*?G$$X%Ic@8H5ns~drgbL?Q( z;w#y$$d-kLqoiJ6iNWTv1yyhM|wA5 zNq?M6>i2R-6OBxETPI1-LLCrL{NWvqFHxSXfrExOWPo~eh((!asv!Itlp@D?y+g1r z$1|K84sTo_dKG&$B&cy<7I$^E!{YqGYk)_kM6&SOz5xaE>R;}$9+nqBmq#oGh1fJe zykKvqM5Y9O&eJ~FmrEtPpFs(iScRGE3U(cGikzr}W}8MnzJH(7GSq2RKvLb@YFyUR z%eq@y$NTYnPE)@`b zhk*GR-yo5FDqQI2%nnlpadRYWq!$}Hr7fXWdLkX-@YHEQxTxlxrkWfMUH9G$wy=3VcBhDW&G@(u8h5<-k zCs^p*(*FL>>4=LOn-gv z;K<+A?!xpMgRDWqfxD<|_}HJ#P~_Nb+w4GXvdm2A*UlmKJ`Wo$p!qT0mmro%V{N`1 zvi#kz=oBh`%xbIRrZj1yk%YLiD=hN`KUE*R8e45pQNN|Y0AByjc`?gl;iqJB1!cR@ z!(Mp%JM(06H^BVqv!@Z<>n3c~yvFr@rNgDgj4F(qc0_w;BraYZzZh<3{s zD1?O1tOvV&+ri;5PZN?ttFjUGZZl>fUq%a0HflzG}WAn+DpGZG(B%z||K$v>ePoRlPiBvx#FO2u z$Dx2X?^KRJ?w>q_$15+ex;*%rOE~LWpyGvlM-U>uE!A|i1d{h-h3@KK9DGFFa2&rV zH`7(yz`zSQSrENJ3yGL&v5~o89nI=Oi+_bVmdq{+vZv-&KV=hG7Usqx_aSL>;h5MpL?MvpuvN3nyUAqUAJ{C}oVa%cBjU$(wb_xegEOFM4ilkQ zNgzyNC;VgqSx^XY?xy5gfYV||*aJ$iYdlD{!Dd%>Ml{Pa1v;nN6Ws6C*e~p$C>nEE zwVJkhwTuqn04;GF6g8pW#d z9D?o=OZfeCxmRuEU@bD7C|$x6{_>lpZ~ondGTnIaLDy&Jd~g{o(80Q%i5Ke{8W!n< zOVyXFQWm?hKn!ANW`HfjvcZx8`E?wie`&a@w9}uC|I4H`Oim2pegpjqzqtf5(q_yOQ0cSOJm z76dEw+Dbp9UVI`^9=HZ{Y6%qrW)m>iS%r#_J$Bu`gPsKqX)|04-EDT?#6R9t`OT>_ zGD%D|zY@*P#>j4BZy>zAM5hk%B*7BgKx zr$eCkVjlSEyilu$1#b}Lx-#@|5i6?PFV-AOViN!q)0Pw5rn8!}N(8R4)85~EbiPe- zCO$rWeP{Y^4A$NPq>eO;$YMQ)6SYg=!4T38GoQi;22id(AyQSjmq(0DlAsYL3DF{& z**@BVVgDGB%p@-n##u5GG?P*=;g7Xzxd)##T`%*E^dP3V2K?CtEQ&BnKZoKx{P;?> zlate^`N%2GO=_j%lxaIcIp24N4)C{P6hk$A@Yf z2xhrnRMc_C2b2g}#i~UQpPv%qAuU9r2j@9{PAV3u!$gS>D@Q1#C#)*XJ}J&SN3%4+ z>{5r82gv`QTCO}E%C>FKU}UecFGGx-5ZOtxPMRspkPP9GCA$_;sj*D9Xr!`+F^EBy z7?foi*&lnUhAd&C6;B~g%X{5D@B97UKfd4h-}m4AX71~{=Q{7}KF{+y&f_>wnm72< zt}XqE?*F@~{IKXx4z~F{bCh1R$+sjr%=r&x-vfUTerj#X$L}`w)*j;mzAjL^sG{T9 zl0&*)OlEMOOMzqFr>wwdM#FxM@y8BFMU`E~4FzEr?)^Erj*{&fA$&ymmSuiRm3dhMXZP4KcFD>`+NP;j zFTea`YwXVqMz@FMXqRhNi|!M)!X)OQoA?8B>dijSJMuRjpq&ybm$dp*<&ul8eBe7y zjAyXi?APc~pTBm?>8DA=8|{%|J@*RlT&PuV`Wn`5nDu~<#djm*#RFX7cJbT?PR?WP z+N;tMr}Gn+g-=^bESo;1rOF<^t*p=GQt3xqo8KG0r{5>O$(^%b$!B?g%h5_=KxXhx zQVXMG*1u1w`Mf!%ZSRB%?pBEvd5OCT~i_(EA zirR9S`{K3FkKO5^C;bHP=I|Q0{k%33@p+t7bsLhR zC%lh&==;z$vtk2{QZJ=;*`6`C#UV=UfOZjXM3;m5V*PYd@Z67!958*I1fLDL)5}M8 z-!R$)5Nj!|iZhmShj;%Tt+pk`ZDLth!9JFysdtu9yKMQ`RB~N}*{=K{ks$lNY#y-_ zR;x$0rOUNKxyb7i`P%pjy>;GUI}n>F#E2L(2jCFBvvbV(%%`W;CGCG~0;Am3BCx-r z>GfIGnk9OI`s}3RBT)-X(y3)#jnd({EdZeoip^#^2fgn$dRl^17hrd^T7{dR%hLPa+uP!`J*_;JI-oe{rQhX&@fk6*fNMGz_`pURw?n4>Zt zX2>3IvK@fk`X+JWfv1%D_vI%ud=^HF?>Z4HhvK9leA)2V{1ZFKs(_ z*xf{99naP=sfnA?qx5Lt$kGz|?+D1YIgY;#6QMbYgt^F#h|gwv1Zge|#frv)v#&a? z5{p>eX~%(C*k+!r4RNX{YlqSFxJPXxGz9WqaQ5}tGTy8H)Qr-D!IZF5P4R&RrbR0N zqD(PN+pHwfV|BI7?QO{}e^r9qLF{9_b;-$xXU(4WK|hTL6j9Or|Are48z+Q#_sgOz zIc!x4`V{6L{E@1i)=j!i&-aI$$Fq6Q+EuR1{0$YVO8iRNV$Qr+F`Y}UIAZnO4j#_I zl4J!-sutnImTox0yS1ds)Ykuc|II+Y;}m_$DV}d~|Yi*z%McTw5m9F-zes!k|*cATvs2o=$2GTl)Qd zaONQCa*G%9^W0AKyZkRU`Hn;|FVi@w+46B~vnz4vx&}Uf4-!y)NI<+2{v8$M2B$j_ zO<2-X93THZh2CowJbjcHAaiz_OEM_XeL5iA(hLFG3t0JU6oSb)VBde%MpWDFo#3Gr zW{*e1N75^ufo}PLL+Ure=LZOfhs9U^BdtwJGrI9A`z>5RNYS(754qwIA){+AY^sAP zrE~iT#MO(mH&avf;z2qshJ2A?YyUg2XBkCyM`D_`+q`2(i$~LGT)9`Pg(4bopwUXk z3`>LIuW0a2bu?Rb+2YEYXwmnN-r2Q#H|4xi?DuwQwMD$hRIW!F}l3!=b#)>#!W&3(2EU>FXvC*NW)O7715DBGZ?os@oX&8S3o! zKTiyN1#mJXrmgbD<0=O?Y-qwhJGC_1+@ja)dODaT6PA;D!*N{n2T%=26Ha*bfimer z;$%xCkOt8KwJq%PKA6;@En`d#P=1RQ0si9Id(s102hyF<2!R_?V?CPM!wN0#9N*uq zzZU^XkarG`2up4%+GKKEc)qcOPYiZtk!|F1{}>qq!G#G=Z^-EEUo%}Y5IWP(GB{ZR z@GWe|JVdgpW(@7|5uO7TK@XeOVc)Qv1F{FfcIfSvUBRBQ1pNm1Dxtmrg*ubIiKn+w zR~)+bsST5xL%zfbt9{y(vxuRQ9pO=kT${9?Z1bj&2En%4-;?0LBs9nMZXVoy+{+{f zabdE7M-C<`o+B;wcCQwm_$|)XHdnEt?fzFMU46$QIzu zwlD}y>jTPfVUKTVqOnI%bS^(6oO_RLQhbwf&zj^APsm({aqY&#b#3axMUzQ|d<}-H ze2(M5!KiJA@G7>-SP(ZZG@B~J72fWg+k_~zuo6QvEG>{KnXolb?~a17N3Fu=G1p7O ze6{TVSv#i`!6Y8C-!Z@5_j0P9uGT_lV++9cR#3(p`myi$3v0-CJR(RNEmKxZ0L(fl zS%1@V{hLy!%=F{-Dw?hPNa8wjDM}zDUOUhZdA zPp1sLk1l4C!Sfu5?c&Y_kr6j7CVehz>+iMDbC6%NKS~_3MB@#!F8xE0I^j?Tdnf^l z6hL}(AbXm4n3`{55g591wvmt`VY|i~xZ3ev*!QXqd6W?9=WaG)GU+5XuQ#uZSFxTF z7(0DCf8FA&k1lK;C^b)SCf?=wTFRrHMRQ47?y$5d3KI(HGYB*t#Q%XzJThJxeP0}tK83ke$BRaF6M&J; z!hww><{N#1epwa~AppQY1kAPBM96&eWFv~<|7YyeH1d6)0u`ozY&s|>HB09+_*061 zPcNuLxuw}0Cm0Kgy`ay4SN`aSa!z>{vPFiCH0)wl9DnNo+VdHKi-nvDt}Hll(qz(* zC-POj%4E6w!Cz~FLFderS}|}(LDnwk+px-nzRz0+%Suww`?C5p&m48v9OpWP((Rb1 z^F?A~_<;}!rGlYwq@{~VB!a_S6>o47nOQ?fG6-T~Q?jnfEZ5V|v>T_zJP8w@&#mVZ z^AXC1ol`jLSMlQl>~*Dq!i4;1>NpYxILAKk-R2HPm%&12uqnz+!w6mR7DG}qj@>iP z8)*{BCq_QVN|xT`wU}V=AGQr9TBEEB{?L7V9|7h@eftp38p3ogKws_SAaZKz_55`_)`(>s*)SAzO36KWGsh8SoXrm1-3 zyN{bKAvJ5`@#;*KCxb(^z(>7qAMDSgyAu5rF_jNK$t;mRy*yNWM(N7SY!C)6%T91A ztjYB>H54SxC>1N>Yqoz?@A1vf8jG{NamkbEv2)LG2|KOEXjlNem}shwln~Uf031RW zfiFc4=y=@C<>=SS5j!Ch_NI?cqg< zu2VNbeXGJSe;2pep--L%@_4iQ->XSGJ3iT{r}YPX^-rnC5phLmQmLhGI0$5^go1Mw zVaWMh9^fHD#$b^b<`R}7gj`aVs&{6T4Gg}RXINRwqCe=pDV<@7Pvy5Zs|T_S;h7{K zO6mU9#K~?HM9e84QB?F>7EDSfMhE2acE$cU+WsGMPWrf-{xb!p|G5x?JHb###^}=B z>w0IQTT1eXYxub5g3J_i@0|nU%TRWXYX6<(j3mXI?#Nc(qoV2znyqBzb;2~$!%7DH zOR@RVer0?TXrW@1x+hia-kV?%%@g0TQH`MjmfvIAf{_mr2r}KQM=^P0ype5cN_b0p z1FZjp2gd%ykkvA&|C|IcYxR3FXkyaz=tr;==>&=A#6WF^uh!TIup^?ChmZeGz!+=x z^@hbOW2^#sl}jK`O`Ez#6ZI|egse3UHVhRearit%PxggU#;m@^6PZmYswmc-(%s!D zW+#Slqw|P>#H1G_CV?YOwH$>KpickV`fajP{Mv#`r_;fMH;awjk{x@*ePPX!z$iz9 z2qR4y;5w&s!0Sc7?n9(ky!~tKerB#@rCU<99l*Xb4cXXf6-KNhrgFRCkY%ny$f)At zgUi|438R-Ee`-jLyeBqCub=wTX=w&5D>}btN%%Jj1ZFv40qb?Sw0df&xI4$;$gUC^9GD+vF*8w#B>pRdBSu&6hV{qlI zaB?G>02PdV)l~K_RlQdh&17}p*ed@u#M!DRvbUg4B8pCe|_V;!|gI3B*@=#YerN)fZhKchtSN}i%G_~#yW#E zA>il4Rz7oB0(z8%2f`l1lI4~0e}C!{fiW^X5-Qe)tjL0v(ua&bfU{f$vrZ3bom77D zrD!+`3;>~q6#ySeOugE*`&Gf&?z=sxjzztM(Q<4P`)&z{#r@zqOHu4l->4hYZ%`otZh_$T&_je>BbUf+S8~ zw`Mr~81enyCJjy?f7AagTZl z_$X^91db&#&@~k6#c^KOWFcAUo5w0mf$S^hJR}rL?xjN4nd-|y60tGL`brYbI$0>g nUKKBEdOpbf|7+;tFV2|FfnQ3_t*fBr73_%ZF`EZgJ_-Ke5)v}kzk!ANf~4-8(!CfKZFN0` z7fVD$B+AcY_J-7gnb=2!GTs!k+X#OuoBDi4^6~NUcMK_IPgTYX5Ba^WCJ^bry#+fY zq}TQ;@-ljUOQ$)}X**vl6e@5mS8o6Q&D!GmFC@V%IU^O(k|B|CBjcX1qtxufFen`m z^2pHlhr#hYyd&G-C|(hLc0lh)%i(2OF0Qvr0R+S!HL{oJPncEJ*UO$tigkG_lzp>s zseT8K&yWj#KOd*>c`Es!thlieZ%c!k&kuyjB&0Q_ElMRW^bcxX*vJ9{@$!ZCxsCAuUcY= zA?w5%L4~&NY0hAQ4sbMnLM<7|{H{Ov}{Y5BCF$2m^Iq2`hV}5BBCyh(5MEVgGLIj29#GQ#r z*~&+tWzv+!eBUABI>(uDCj7I1HFsVZ#uprSquV#SjT<&O^v5dkh(@$o39qWwcIfCqvP1iQCO5 zExcfFl%=P!jgfNd_o?dM+Pnc6*fg`$)jS5~QI8WXJ`taPSNjm7S{0wkF1c>OaPu8z zS%q$sLh*1|WHS5-D1*!Xsv_D6uPqelbd>V0PIn1C99ULmiR4X7M6ylxBu)UC5n!7Q z{3tg;O29w}2+_fb@kh=*>w@!clD?X2sZElJrlShtzR6!_@A8*Tc{C@h$P^cfJVM;n zFRjO4+=QK7FRa`5`kVRLC^^R(m(=AMHE53QdLK}{y-~vH@Wpf#)qUu&15N4}{XTAB zw<{ujQBMpn?m?L6V+Mb}h4nw|{czWw^lM?z3Hd^o%q` z+ql4*fZ-mi~MpO?cDB2$wUXMJIV)|QgSZBINszj8H^3iR*idY|jAm7>mjmI0MzV4P02J8_d-O;7NsKkKU1 zKXfYqs{AJQHLkgLgHWVM01FhwVa(s|n2 z<7vUlxs$5J+?~2>HGg5Qs0dvznf~;xkYln`N@b()c+;rJPNA;NX$CnBw*~leBkD@i zAyDz>hxx_WW^472iMFYs#tt#MM@K!G!Wq9+vT(75`tmAi6mzSND!7(NU6T8pawmOd z=eJVy#>*Q1SRAEeNBmya5--?xXkM_J=d&!5)c>JZ9b$aAIsxe~)Ch|EEBf6O`EjO( zF~3}zwE?#yLBIEjm5mMtH-Q)l-z!ysa`ug+qhi%~mMAIglNko{T1w{$`|=5^K>E%I z=>yXbvz#j4`20>;BTohGB$YnR&!3$9I&?gnCo#&ZgacAxI-1gxZN!gA$8{k|x?z>i zJ*yi2Jnr9oUSutqYMb{xaMX_r)MBaKz?u_UmxI&Ed z8fC;!-x}6+%1asJiWTIQi%{1z?y}V!SMW}tObvj%bU~|FbXjCp`Z+NOe$}yWafmPJ z?~N-vvulYeU8Ibi#jV))9G^bmKXjMAdw&8te05OM8&Ifc&=kb8QQ`p|w+k3jfuehd z9eFSA+m}7XIOo$;NE24nag7;HGTcSUG35VFf4amq^WVA3oGxAk^9L zmt3=!S!`lH0S95{0vU!Uvd1G4XGe{4y);`NG?e2eJOJWBQ(DU&Gj%d86%XA7x4)l2 zRxKDv7lFM(vA?0uH>7M!dQ#AaV3E3j%B{Jw>>(X2slll*-8Q6jMGYBm;5AgGcUfW5 z!&EyYt!#@n{QS%7idd?r$vu-@HRP@ZxJ3SHy^p6+1PR`}*RGTd9~)ge%1EYQ*Rt=- z3Wl~_i6cmF>4Xd>pxohumKG>c7mV75oT8g=)IZ~Xy0UP=Yv{q2a~C0Wm>vf1)b7-Y zo^OqwV+BnWMKNgJ1v`A9-Cq{DS=di9`0>S)K(oVLPec5i(0Qt5>A(5=so6ZU;BIWk zRCwDJ!)!qFv*JM#ZRuE8qv=Y9+wBrlu3!sAIh&+MbLM$s2cW7BKE*{rd9{p|Eh2Xw zu4rB;jCp~wp@jdN6gHwFH%oT&fPvH$JR$8-pK|Y^L3209YC|mxp_K5VB<9r9Zx*q_9PmNSCsViLDgPF}kK3Jx zzR$yP5MS>S);{^^X3|XcxQ&N^$!sN>odGc*6Y%iQ^>z^%V6LRNkQJ%zqpG;UHeP+K z;k3|ucEMCy<4&!*g?u0se>kK3R=Ffcc(nYHq0$fu(vf8xcW>^%B(`;A0E!h>j`-;L zSL{Y6Cl-l-{Y;bkjA7j%aNFPARd9;LT4SwcNbYVZG403td8rW;f69QDaIMzO>WJZ6 z!>aUi-%Z5jL&OY0e~vkQiyFbx^&58R;weS5j7O6QZJzuyRj%>@TghgK%A;0&z2W(= zSpM?PeL0yaSBK2U=k+Z|*-n{9%r%)i&JV~|n8A>)5Xk5GBVjRFt^th3dnSQunGIje z;lFTS_P`aR(@U^-Dy>HaBaeJ*UrGK)ghMhj_#1B?a@^l6)Qz>w%`))SDAwO$&qUQZls^Z z=(8qAtD10t6B^A||FCRK337_nJ6n+e66EyP#0W^JEc(6O^ncXFxnL-7K$O8b0`(5Yx&`cQlf0%#t*X>94gzY&gi=SDwoRMBpObL~=qS3+^bI zS-)J$&GL#XA$7{sGN#{jP#Uj%SS2NtC7$mmKLuM@nRPw+v_lPXe?`$ZNg)(XE?}2` z!W(N1bv=ELlvl!3220>$_MSc!)}KtGWw4R%DSobK3Wu89t?&|u_*m_92zZFg>slSQ zMy9GMgIrM1l2WgLWl&V0vEaSNX%g1zS;xXk?Hs{IqrEa3!tG%XOZtLv>hjl~zQz#R zq#Yn41l|rM0_P;cdh;D@f=%Q95gh~<+lgOpfYjOh_D>%cWtKnlumh+)uHTs6Nw!wL zhZoei*75Gz*v|HUYnp8OYOjbjWHrh0Wq;2sV;A%VR+PjQt|>Sm>s1aeb4YevB2O3k z+BE4|w;7-)#KkF}Z`<5bOWU5tf67U8kTG8r}Yp$?!#BEE+p@y$tBQ^o^PRSuH zn;43YK~YJ{ac|bDRwRBMm*5W<(+5pnp^pm{e~aaSyvlqzZ>C%G8*Nn%XjFI(i3Hxy)4lBIUc^w&cMa+gU7WrR4t=@<;1ve3PLVOKPmJQ8q07%9weQ zLF{D5z-0{_>o}hH6kQx{S*Pw-`X;FNx-F{4NC_8!w=CUBC)4AifK8J>L{F7(hlsUw zmn5db5pQL}gXfw!Iz{hK^2*mgIk+HWXMG*YrDQ}=bb`<)2$!yvt>mLp;*%&B?Sgz* z7X)azYw`3$xs@02G!Q?rEH9IAMc%r)m17b1Ga~sIeEn(Gar3<@TQlT9VnR_utqo7C zC1oiBHa1}!ACn;N%CVV5|MF!PbJStF9o*9w827bfilyBwsww;UTaK7Hga*#Jd?o6I zhHdigMMQo{YlYLr@JUf9NYC?p5&NZ3Xd45)fTPO*7AFj^b<64I_!!0$@Nz za3Gs6Q#~(IeQvezXq$%l{+DKN6radji@o?@wO8RkZvg|&UDhYxWPXpPogJ0f4Z|;g zAU1;PkJhmKhcNf{@*&$|_PpFdRf}b+N~U9EP}j)tKl(rXnxz64OCw;3r2>sd16Y)B z!zTaSQc8=dQ2j$@klo~D4=w(KNt@@a)bmYJIP6mWg993x{%Fpe7R^fPz>W})-ea>$ zZa#XtBc#b;aviwrIW77()g4!va+~`$J|?8u-#^-dH{h;;E6B`>+Y0nY%y_&%23^0l z(H)jhrKIH0$y~j z8(J8kGm)9S(I^W-!M5oEoW=82MGflF=J;p8)1w%}4xKFIdO++|znQg@*X8lPO|8rD zbu8=MP^r(;;gSe9Sq3_xIb8)rcEfKL*=)$(+;wZcWwaV=xw&ReNM4u40~InPIyomh z&t74qB4Z!d{3k7eBIXaH%zkPxf#2Ll8LO1eWi(-8Pg_uZ%6^B-r~IX3pqR8MO6Lrq zOxdpbG=qgE@~gRjb5Ex*@5;wRLlW-DR5_f$&9cQbI!{?W|}^@lmE zu^lrpTx{s#ZgZV(;Za^wt7(_Va#^gJtKfrSD@l)~r$1xG_{<9Jvq>Cc-Y>|>K$a5k zO{Z^xgxDVgadvjRy<}`4^{Ux^RSFT}gs7K=R8T!6Z}n)5iwENQiviH0CHY{l6geo?yo|8O1FW$)V~7ep5YfxDZcPA;Xh~ierQ!ni!8Jh@#t$Wnv@@(w;wW#C2KGp>C7)*`0l#ql5k`#m zYzrUt7Yot2U}L(5-G`1l}(BSQs(o$ zC!uJvo5P3g0+{U-20Y{~`38va!K3d9)kS%G=C+dh+953J>oaK(!pBir4Du{|8J&SC zjQvIoN6JkdG6=XDoymZhSt89qCP-?4|^vGbUT5yTXHjE8Tx^$Zd7FlDCq_6(L{WQ|7;yK{LDSsq;j>hRhb zg4Vi76rq8(fC0E=mQ$GzIvOQb34RSiTxmM@{e|A}q5!nnc zjJ%G5yV^;H6WfJiAeuDcs+3xam1!=~kkjm?#oT6n+Lsz(Nvj@By^?T7VO9@Y28b4f zD{2;MsRO&WqqJJLZ~0UTmVs}9NaW4~mO2BEXK^N`W=(9x+aU?o)QkmDzTrB2h0D_> zg-#_KIDolIKY1zvx!kELch|f)c^3g9V-wE9^!FBKZd&-{t%A6KIXf~HDuJH>-7$bE zoE&eFHh}fVkE@1ajA$`gVoboCWRxq1jgE`;%{^L?39nI;V|20E)QoJ+j$^)G0Ckn2 z46LHd`gV|x2VDMX%^$DQ)lFzr-`ttgusfzeNmP4@t8VMt`yCRrPAi1|9Ad_@T6WR+ zQ~welc}jJR{t>xpHx_XB+xr5o)l^>2*lvG?zSc%b9>ek?7mb%EM#%%l>uLxOm{Y}P zcea8xdwNJ2Z*gCyPFU}bRBB>Por=9E&{)j;)cmaIZv-0N$WuHZ+Ivsx|@B%|k%+B(51<9xWdx*&lT3T4y zaV_?QNeoOG+Z%nVvsbl4(jy-mFz5MWz_NP$loJd=`2yZ0Wn~5x_~Tk!7P% zm{0Tzuzq?~wXpb!OUbhOO$A0uHFkolX;b2RK%```;e;5)q`LCcC+4(Y}WEhae?sMA}v?TfQ)21_!!OzHybiAC82}A9=rSl6m4~QLarZX~9fFfaj$S<3bu;mTp>mS&eqevTc z0?nX3)9`*HmyZGBWv|ui(DK``=OI+v^F&dhZEpvaa z&|Y=oacmgPk#Jp;|GaVr9x)(N1C%}2)+s5-a)Tr#al_|kwdk>Q=3k0jt8uJx-J25`Vj0FOZM_4Z^A4>g?WdQv z$4(iEtOC+oc@_7x`iqUTAp67khm?@b6u~h$e3Bt9z4COR=cSeRy{>QPEVbFCj zpp47+yL&A;E14SSdM-6F+pc+PaEA<)mvr=yhlyX8DI#lF;-$T$54LBrbLOQK>+C`r zRGyMYg3ET!U9`5zqXTYZmh*?OaT>|pINe;eoKw?R**r}4!x_6#!;hAA*Ous84p&0V zqE^xxhg^5tPyKI*nt9xkJ$KWF)-7@9KYnv((1BzCY;bfjq^(oyG}d%HHPZOdJJDQI z8i#098;1CcHc(dvJ9js-UPw6ku{|wMCXc0&oE$J=oMS|DFdR~t7sJT`{Wm*5D1M>S zL0P?j``!SFf!a8(ujWq~PKu|I(bZ)b>n;ggZnbWw4f5(&trWu| z^_3h=Sd~8V-Ys$*q;*d$%{}hbN|v8i{~ca!-^S~bz1#GG|HcqXZq=3or1 zcfU~^}lp!RF5*6e9}aEtxLD4Z{iR{|`)#_Gu1wnu<_ zj5rJ)-akMPZaV_3{`7vYs7#wyqWblsA2{H;qnc^7y@}G}r~V7f#M;$ZJLETgm}- zj*uqDbT|_D=Wa&x?p#kwFPd#6ofp>H_9`(tws+h*a)F-fUwBh#GwL=?uB0Hav1*)X4oPaYO+a@f`0lR2%)G8%Ljg#oWuu4k+x zmQZK;UI$?~D0YETXpSX>ekN4}oepolp;GV;sLea08dc@$>)^+JX?ETzK->rwCwKwm z{B~Lc8Ufn8>OIK8;VdbN98K)i7h>kdAWqUfGTQ zwTbu&>-Q>%{nLzOL)PuI8Fc>Fyh?%PvAzIc&`O+2CLgqZgOq4dc`V01vPXW_KcO$-e zXVb*jAN<|b7eA;~Q9u1GryKu|{d-)Nw*+Vt-1wwtcX8F9ND!2Y6{kHB8v9^rK)^jq z8er?qeN@a3H2_T>l%WA}(}&}xkOU%dZ9qZ~jO8XW(y2LBlzGcH2i)pe`e*?WKBAO( zs2Syuho@IwN-*~FFn#A6vi>zjI?X`i$b(r$wlWhB=~a>RWDx4jELw_)w;xOLOhr?k zDxSGd8Q-H5%5awWyCjt(gyIX!&z~d)Ny#BGlrp7Qn3jHo#e3waSTY`HcQI9t3({lDg9YHTF1B zUh)#)8-=o88dA*SKASHg3L} zDa7WOH!GdB%*0B%U5)k(`*8Wi$4Zz_?ImjPBbG;#nGcwTG)P}!G0hKvZj6K#>Ofj}^Umg3^dGUDQ7 z5C^;Omeyt<5N(`SoS<~C2ywrWnp}fAF(YkWY%brjgaol1PK0r8J&vw3Ys>ZfG!7~z z=4k&P-Q6+$(13`#O7u#9vU`~Alg)wyiq9`BboHSZo6V$Wr-G;JFk*E*>UA_ICA#C% z{U+bIn&=;mwt6uiS%ZE1oY7r>cB`h49~P(whHd9ENx4 z1L90zG)iKvh3`q9PZt>Fm3U>k@i#qc%46)ie!s6LOuq55)~UemdP3E=B=Ko@H|7<; zeqgahX>3f?+Xv+F;l*6 zFs_BdKY@ctPBID-NCyb`D9AMLN8BEPLj+C|+D_tjHa2FqP9Sjyv#(BOrerRbP8MWR zG78FCe&~205E)1YEUNCh^3TA|T75A|c!%exR{CTq_xq7(lz5FLH`S5svO%tKWQDbw zhK3NMLW!ncr}FXxrXFUu zma>{`sC8(Ov6y7U9se0mjHX_lzPfCr6PQPvekGb5Yq@)w$o4q(+DF z&1Wnw1)ujsz@^G*F&D<8-)GEmT)(jUM^65jai{h}1NmysVid#OvEeU!eB}dyF!7o@ zZxo-d3|;NX#P{>pXBw%l<=+!22Ky#YB;|hcrMKn7e`zfcD8=ZQ)h(!x;+`;n%vjYm z?&ag8$EE4*$I%f)3wf*Vn&5G6o4Mf0dIL?h4m^5MGxnC+83%XewIdjGrQ?>j1D*e~ z086BZwbhmT9{~tCyk7I5qrAlNCYYyRtGeHMtzwKRuN<|+C#kW8y4*3bJ2XD6+%^!}F(CX>xP}&{ zIA;QPMY+HW>;4O=`#<_o7F?Q!PgXm@Q9ZY}DF7}H*au^$m6<+-? zX>aHYb_VD0GLmM{gO713hpYF+?Xo1#iP!Ha!h~XA%hubiYk1!EZ=3!a5kx-i)nfO- zI?|t9f`lU@q5qrw7?BX?H!%J=0XN%y6nA)EY#JIl1j+V1IwnX!PEJmd5G<+Wl2ksv z`mi6g+VMk)m4^c#2FIO_50aGt6-dSy)zVP2zUI;)Gs==JsFT-HJ4;JGwYQI>=E_i` zBq*u&La@Wy)(sBp5f_xaB}^wnr>n%UDpuTk(C z-4Y}ID3aZAD??pNFEe3k4ZPoI-8SWF5XG*jzS%4ipa4fijT9Dkf^|=k>WhNpX}3`>ql&u`3)n9z#sTckNw8+wdXPW~9 zM{vCwY8ql;6q+GSga__S8dZs{maVAX%lpwmQ6FcUbS|kq7gKA-*MlwW?xX0Rzp~p< zt{|LqDQ9N!+BrN9*XLnf8s)$__#Sls5vw4z#)vfs? zve^b9=`MJY&PA;=4+=BLR#8z%-Cnejcn8#isi9q>^T{?Lsqgo5+RQtW%=`Nb+_nlC zQgU3baCzR!+FA5Yj9Uwf`SAcWyRoxWTT&R&|>pi+wnArM>;S#~s|#%5Tnv zKF`j}PrzoV;gs`!_e*&0(DnMtZ=ARDXY2DfI)S?10;MqG?U`Uxp~$0oN5 zit2HN0cNY?2+tZd%Iuu94xaaW$Da>hCnpVpfKwO>i>9)G{PGOw9(+3;Eeyb?7_RWJjA;Xv=zwC( zdM2c4yjoH5p!qtVC+npBoE{`Xm#M-ac2DW6Qx#mvB6-~d|)W{tOk0rVJbH(Ut_}KH6nGw zJfWWkr8K>gu`63$@SI0a5NABj%kcbs)*hHgKChF@Hoz+)#P2`YF1b!V%n1CWqfPHJ za?Lfbv#Y~IQRV#c$`1qG`%#zlzM2ajg_iGvPXuS+eU}~SjOZ|;tdCKrp?}yc_PWT; z0zZv$Z)+AbG1wzVjb=mhD06qa{d`+QQXS>CurA_ar9g}eT`B~Fxx_>DzB(Kks1~Oo zv2S79K?@CEnc+s8TLkOe1G*2pa#XtzY`$G|&q@EXvdi_aM)#dbA-oVcySEu|=$Nwl zU!l#B{vTy?t9GGTCA|=n2#i#}0&Yu%k z?t-yRDJiRBL<&_ea9@6&E)iVYoF=^Z=y!M>zX!#Re-E%>v4Kln*AmM5vVd16(W$0< zL`y_Kswxga_-IrxW4@TnYN(9<^YNKOJ|hd6hAqtRNW`q{?)u?y$m3y-H+>wDhm^94 zMNmm$f6y$;%Rh{NL~<~s-ij&#cs{IN-Yeyil3dHs{$D(TFiEnX1KywNVXAwjKN;`d zVBx!Yfq4-#*Gn8#A00$N^4ZzA-bKR#JI7vOI<&eiXoE0%`swrWIV7p-a z{mi)?ZgK~^dxe1crL4?BMJIeOqQww%AmB9XM$&yjOiOk_5QzE~&3|fgw$gAZ!B2!L z2xAMYd4|{j9k!<(46BhE%vCS|!z1PJL3}2Cx;wX<-U}%NG55C*SxyDoj|v8VR9+mg z$^tw-$K>snjXnCt{lj{-sFtl74G@~O`c0^3)%t$t#1}M|brATYHCy*DZkpjB$4!68 zL1>uLKx7B`x;4{h=*`N;+SxJes1%jb41&I+b4A1D+pP3s(-ROu{sBmh@9hjeK&#%n z%N}h4QHH!Pu^zQb{EviA@uI%CId$N7RZwN~*@rl1N3Xa% zl+hGRcRhl4t@6ru`g-OHc{bll;~1Kq5OeheS~sEfa!I2{p&S6=Xxuz1>1v^~QXMb& zq3*BjISEXx2VV(OzH5Ca8fL{j7#*oeU@oYBsha@81BvK$u7!cpnX~AIn;BCiR8f*9 z0FqFhPl7{ru7lAb^dKUoI-m$3GiOs)n#qG*>z~UD$LE8!rfXH`?c7Fjtt?-fj94N}27v%I=v{--ANhrjK2k^g_VRvtyBU?3sTM@`&cVwASNkOco90B~;*XPkQ} zbKeH^`J(km5i8`*?x6QW@2br#BY;PC;;89TuSfKQ$;lbv7d;-H#0}3~^vezDE7Hs5 zp|Co^@w1O@;BU`I49$Z8?9n{u|-iY zw2tzlZK11p(N;F93%sF@N=^q!tzK+H*G!f@xcpb(T=;&NyT=}8prfL)Z&WE;!p!iG zUd4#!8O#o5&i*Bd#(;0>-|1c&f70K#`SQeGYRi-*U4>BGX4e%SNisP)`OAMCPW?m~ z*X{mC2ka?{kgA&tO>NI+}06y z3?uTlgOnmy8$|k^niPeroxkj&**!Gc8PFM9=v;=pKBGK4O+w&}ZI*vpj5f;oNf3NF zG%PCPXNi<-Wj}k*f^K?C@<&hNV`v_wNH#!vF1V-N8_zczKV+s9@{1KW`qU`VEB`;b zebnFZ7(dz70Q+YqUZc!}-_h9N7ypzwkgcl0Ku43MWL6NhbaNUX5%|NHPFl+(q#r4u z6g|)MXL1N6VMh>gjYDvAZCAW$_wsmFmiLavR;w@-SVU*uC^**sZXWArKw9-4ZE3p13D%jc_GWC^1Cn1J5&vU4Q#7 zF_P$Jt-4YQ|DBVero$Q~jxxYZM{fB=o6G>!!_4CY{q5l}J~ zlMX?QZ~&Hp?Kczea$1^D$2bD>k&f5eC0e!Zo%b$7Mfl4jtvxLDhSDP+RVbAUq4X>a zmwAo8+pU`PNn;Zv{BTf~d7Y-eB$+MeMx$OD?pWjs5E#$yicww{o1o;!skWJG7&Ua? z&;CEk#gun64iD9|P-vfDmM%=*XsdJFOXKm7D~;N4p{X+FdOWAo0<)2C6<>TMJ~vpT zJIIZK6A^_OHRhv!YdDOVmdod!0S79h^GyDqh*13n>Vl`4dGL8hOVfPV(C8xvd}b#_ z2zdg4aPJ5I<{!j{k{7@*qtFYL=54ewV`f5q7BD_0+D`7Ze-nnXA`l}8Y32ue;rHP4U}I`OqWT5lz)?t*(wczSVe zN8emuEGLvPO-Y)mhjhLSOPup4Cb)byEXHJTGg_X>$rhgG!zgAlTr;7H77^rgi;HFW z&Nc}PF-A0AG*VuuO3dT7mg7xYJaTi|ml^>xUhHV@!gpjlY>Aag0W%E_Q&hxNI})%Z zN`Ix)xYCs{mMYNR^A2~@+A8kdFS#8sRJM@(K92t2E9WyKGM zr-3_6qn50dzA_&m#3J@W0i6?g4{m~z-NEdE?qMiGet)qcAHnQ)Bf=raOxu!6|%DHymYnsU|q1+QNU?pX9_a-qdXUJzYtL7b~?V`JLZEq z3NgVDsm!LlPai#!SFRDG;F`bLv-f0@dDv-;4(a~=`=+tGwso5_EUub--c;2dv?zQCe>C(FraHujSD@U_ixo;;;a;Xngy8k!kWvi zQs&ceScUWYNMAzPP_?t~)%g984xRm}`eBN-r;r=8C1Fdz-80(thbPHav$eMuM6_6y zQ)~f8!l7w!-!WjOM#-?%LFN!MmXTEkmr&mbibO-~b6Hwt z?vzPmy7_a@zfxy@2n=?slsjm+K;igJ%Fj-CJ0hBMh&)qzF@y>Ovw!5ZtR1-fFXj_D z+D5ikyEW?K;-|qR$RCcI$WesMR`Sppq}3@}dbLM-jWp0WmyZ$(WNFeISR>WE`{VqS z!t=zX*JJ-kVCg7IV};zT@>hc}>-)!n_g^RF6Z}Fi!PyP=`d!UrawfUpfsuW!q=nL3 z7NO=G4C0k+0%Af`qll$x#bKp2G%Yxtz=TqJ&XOIej~ZD|hztVq)2ytbk~#7M?m>%HfX{5aJ3wpH##FkBxNkl^KyAhitI)<6WJJs z4?B)+x%ds8{>ajqJS|&%$QQ4;RrK)?DdVRmc!!>HP}2_p&G1Skh{>XDHgv8#eXyh{XrO{ekUJ3+(|2*FS=zH5R zuA81!`O+=otTax?$0Ush997lp8p`~Y00pWw*36COz#V7{Ad>1Pq0GaL7TG%^;l+Q5 zy^`T|zO;diW7TZ$u+zOsg07?sfCyBsz0FHg9o_cJu6BBLgu-81N>5Ouy}u*9N#uB^ zB2Id<2SEX?I|*aur_eDU=LffyScswspJ5rXisqUKAth13=BGuld^^(-a?XFQc82q8r}%yBUPd2 zqDC+0`9m9nTmFdWgGfv}{*_3>zuXZ)Y+s_8Ba7oG^RfC@i%i^8> z1mmrwWXuiKa)XVY$y4)w~LOA}Z*K^3dSt6vwnlwx+5eR{35I zglH420!Lr_TKiKQ=Temq?oiqST~a$vAr@t<=s}!}K|8_!#v$#s|Dmk8?6vZ-TYiZC zp_c!qqcq;yMLio1HjN1q2lp48^&6W}Mq`D76CHpqtIVjVt6>tq@C6;hs<87Upe1DC z%Q9rf>~oLBD5Q`2nq)6#A}c%k&objnecu{m%iqx2uxdBtP)#oIz!7~No_SIr@teGT zzN5u-eR42Ha0N{b4~6ItASvXhGyQfD$BK^Nk_1$ta_BQ0$T#`BW&?}?fC1l7E0t)5 zQC0C8^z+1s8>Nig0h*d8EQ=~Z9;{*K(8vfs*Z|bQ!Bgf;yFPNFVh=bKPG;vG`?%21 zL7UKaHZ+S-DefE#)MxdNg1!pT&8Fo()$|v`f$ln;TALb#O(>CVS^A{Uyv%5ok&uid z@Ne$DK--T!7r0sR8Gy92Of`!l%DnMagDq!(3|2+UMF`gYvE5%L@E5&e_frD*x0L&- zS?c~0%d%qHy-k%I&yL+BL_9z4|5i(pHSh@y0S*tk==pF@>ILH|N-To>q*-slh^769d(-CKQ0*;c31)1iQ8c*M*SRW1cOBx? zth~g0mswmMU@Ywjb|0kYV-_>;evnbj$nrhBn!OB<^|#KL$PI^hdY@Wpdv;YdBl#NM zA`dml2VuuJDu=bFRBUc4ID+LfX=$!K&b&bYSqCEifRI%8bcm>~dDP1)tt6_!OHt(TL-Q{sVg%i|A|DZCxUW^OY3;=> zwkkeLAl?Dk<%zfJl<`kM(>gB#mOlQojT=1p*b_;#oD#%&nX<9Jd@g8V_YhE?c&+9q-(`)+s13OX2_CkUQ;d1&kon-qT(pnrTW+M5#yO{*PX7( zJ$~bpjX?^Zro*#FSdcIDo$g7fFBzemSD)*wI!l+FUQB(M`V8wYT{dbGK~D>|jTuvkp+PYbgb{X>ITS1JA;Ww8n|oS~S_JU2lTBGr_FzrC z&3Sfid489>q;SZBqAlt@*+_ztmmt=JIrh%(PN91^Pp%n!NatS5el}Y;EV~J4%Ba-N z&y1o{h5WGO+qR93@6qaNxGKrKdBg#XY1LH=OP2!c#>ezfnZcOkdOxj*jD-e@9R?f~ zto&IYEPcy_$aKsIN6Id?;g8~i zJG(TLj*V|GyKXO;RpvrIQZ$ip8B8C?CPL!WIS|sT{`RMXBRZVgaZ82OyeD}Hc~_{) z;5Yl3P*Z()R#Hz(ia2|*D``fLiZZs6djh9Fs2rc!lW^6Phr~Q)+#0Gf7O4AWDQ=W6 z)JJ~_JFjadx}Vp6&u~)fe`mv91)b!s=(#v`Z~d7MjH2p1aCT-9iHxK-S0Y2p_Hxb2gE#RW92dbrnG6_zK7@ zkPnixw!upzQ}vEKb^-!k-nx%n+7ZJ=8p&;xA-`l$C{V&Wp&TsjJh8*h&ZgC$qH}c{ z-|bn(*_s^I=|8`5DDRwgr04<`{OUrRq(x@UkrS8@B>SP45|0x^@=82@Wx1-NqQ;Sh zcw=)KL7Z2bl{Ho(fD-J$NB8Tea?V#FE7h#s!z5ak7&(>(kHsuwhz096)IZ8*>DJ3d zRff&$>J&qX$B;$_Eph4}5h_eGjgm~BA#$Rq` zr#Z_+ut94njPc9a3Ql{!ssG>o%3z}JV|Zqptp+V-|3uFh^5tYjN4 zc`98ZHIVhCX1oQMPvEBu!fu^Xup$jpV@7je2z@lSktqXUKZzBp4g*e42|H*FahaEM zd(jxM$^ff)JXA!zbYLlN8mdlftH>m`HI<(BNgKw~o)$dnUE53chcfk(F;ixIql9Yy zS%>C-`~nOTvZj2fulM&{%Ks#)O=zzFoc$OFtJ}&kZ+GQh7nGLRlOz zq1o@Ya+R!fuyc1mQ*UZYyepoQPX2NvR>*vJYw)ito>XbeQ;Xm9vxr_?X1uNTBHWuP zxXt@tZk}CH##9(S=BJUR5P3Bsyl8Gc$f|T1GvNW3D;M#=b*;8w%Cpmr-N$ynQifD0 z&m2U^(%G!H_0ul^fEd|2FRng|C8S>M2P#A)9C0Y5syp`an4XA3hxXEU{=ND6E0vs* zK0js-Ck{lS_9O4x&N>#pCwi#8)B-s;5|w+8iOrvdvDpfRa8&eRz#f;IeputhSm$pp zTsXQtYFE&&xH=31$x55eG%p+#EzlV_y-Il z*1MPM6@}7oMKq1AkL@f~L;Z<=`ht%u>Xnm|iRe^9l?I5hCevkwBXt3ny7}^g*jjrL zJH9gKTtRU1&|ua2GMTw`KiRB;)a=)f?ssm$%;QNPsYis=9^R|{w~)o>US%Et%H-Wi zjAE6`FEGC&lpAMgvLD@xSPes~qrTBov%{L!{Hd;_f!CU;S4lL|!)Z{?Mmu)j+|_%< znsG%#M+**SSXpY_ePH$ivea10=8(^l%10zww5C0$Q;c;~cONbwBiE1q3d2fG+&S+_ zwVFF?)l_xDruGu&29za&-edQO=faU6W>2E;RC+~Kcc;jteJmyXIvnke=#HTI_p5~U zZDk9+$j#MMEAm&}%epYwYjdLzQD92NP!cMhRMN_f&%3*`m$fRx{x45bI%(&O^(T}Js^lRovgne3Tu}@vW3!*HD$egzjsmvMEh!Ube#5! z5la7q@?KNYUJSqcy!=psMhqpI{OAvR6Aj-{5yiLHDywPKngSy_{`ci0z{*Wx*00 zqFBlAt3aF&pd}rf-V6V-KPhoE+-@ae^y4xXkrTdrc9ak%XX`xPh&ve=$Nr$VF-@juM42g$EeXHuUxqyBCa42X@2%Ze2uQ4Y{(ztXEH8UDr;N4z zTobt@(sZVgB*6`4o*5Wd;@IDu;;8KL)h7|j!ogfV#~%97PRUjZWQ8Bu|E-!+;`b%T zPzn=`NTY3~NTG)~DMOEfMvx)-bY)$}f?1@MKyxGFldC7?Wtsnm0g`s))Ogn4rINz_ z<8OBQ#!$8~Ti>sBA2XVk@O@vDNO>{htBDU~XX-*>i)P@?wK<80SB5@Oe&7L{kTZ{@^yYb@x=n=tUL;)6ao#Wty zuMke(^0Aq}>_OsJqB{|nD8EM1ts6I$&&W|`8{Hk}1Cw`eH{Tbk!D}0D7$dx#Lj4+e z*g=xO&o4s&7j>DJI8@)AauU|5nGSI|xv!DuN=JL-x)VKojGF3Av*xlqlSvpv(ddY) zo*RAr{`l-P)zmUsQU}BREn5pu9^9vL`{q*u3Z;hLV?pz<{^`Hx$IK1*Y{Ry9pd$}{ znIgga2X*sVMO-M&V+LX`1IkBf_ASmsDy!|hl_qPrjN@nBB&=eMe7uIb?jt<2(XH3B zRpj{grkyXcTS76K@RnGJXfPPJCGF26KlgU>oW?V?IVIAiGPyGWHI_=nYpdtS#;V~8 zHOCak@jA69`tzCVwMf`#GG$v+K6~(1Hma1vdBNUb)qk|&Zi!~xKP>}TtWfh1jVMs5 z7A~hb#$^dZ?_UO^Nk=!G5gwDS=Mk`enN{3KF!Dhg?!=kKA=ZoJ)5r8LKJhnsndVl%V+}6UU~FAC;}>qEM=IcrYfx zjC=WC=mfq6)Xd#3Bs}JCrzL*WB5?Ks8%>`dai$(#4VyH|*(~$c8sEY+qd$sPL0nqK zTCb-pjl8)&kb8@AR)RuD{d{_<$r4#148P07MJup8xmdB2gr8=g=J%xFtNeVhmJ@L8 z;f_qnlp^wiW);o{;Ya-j1x4E#?Zy2Ll9Wk1LNT?#0Wzz1zkvieD2c#7VyXVd&(HsZ zPJi}Tr`iTMl{Rs0chhWXck-bRqQGJMNsXBWe4c6>Q zGVIZ*s@N@!pf_6lKAr2Ov{Viz7^U0gjA+s};kh9-4UzdexD}5$W w9kqL)_lkBpv51ku#KOOgPQg-kZTJ;Vt!p~tkkx&FziW&R=KM`l^%m4rY literal 4395 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 Z3@Orii!Ke@5c-Av$5^+D;i_Zo{{VNPSa|>d delta 4562 zcmX9>c|26#`=1#z)-1_7krvC?B};@xlx&$agKQ1iMwZByFf(M|%D#8SXsp>~r^p8p z5-K4K*|S9U@AdoL*Zt$3dzSa}Jm)#@=Y85Ph6}%VKs=qGtF4Lk%Ua0}bivUCyIMP> z3>&;Xl?9{Y^paGv^DGGtc}(jj<+1SD@n1!JRBZ>cXh&*9jrNQPGSYT9G+#QDQ@heO z_HpbPW9#Q(+OW-OdpD1pi_cl*!|7u)neKRQcde|cv~Fh2H%&ZQRj=FLH(FDfZ&Bab zJecTLAqEDW@v`cAcR=v8GC$t=BU2Ih>wPGb{eh~eA>*0fNp|MP0d}tllco;>xii~& zio3lDU*eOUvREK|s{{rP_VQdvc7lP$gq>}X+}O*Oa0pgo3>>3Ac$N2q`U*^7<v{>y1pzTwq8s%lv?fGcNDL=|6$1{g7G`1enYpNH zR5v-={L3DMq8vs!ZDaGD1VSQwmY143s-25QtK?TOd;LB1jS`xRSKL%@kEFv+qIc20 zhmTvtt|l{jgI$aI=ZH`U=D~w__m*8z4h&F@p@UM$N(u^7KipddH_=b(1-^g(PPA-w z@1*Oac{;hfckOP@2ht&?Srr*EzyU@d#zmEqq?A|AuJZ=8!zK8rLTPCG`vlAqe3=ZR zkQZ5;z|W6l*yL#deE{_Em%UmusX(7aBGo>?r&*FxZ7emX#imYiMVxa!4+NE-iQvVs zy%a?i7UpTGwJ3X>UV3m{j;KWX-e+mN)322aMd;BbJHC}r^!5TupB9g;3c7SQM@B=Y z_+3g!s(s`4efh8K?Dq2nl-CK7e9JwciwK7`e6e4X&sXmMXrAEv5AWV8Ic5g&&aAIm zU2Kc;c{u0eTQd#L86F*tCO42{=`d(k#nj&1CwPc!pT%W)HR5x!AYKdP~FU{by zcT}+(n(UOz3|QmAsZm`^s*gNo|2w^|R`(9611RuAr`YFZ*WpRljtq)CXy|_W{@8bD ziIeOpudb9%vzqN{zfa_$%@v>l^oGUzaESo|3B2BT?utw+XXYCo&hs!P2wf)6>$*DL zzkmOx?35EjkorKtT+7~sNDg`E5e_p0Pa0PGOMh4)S=L$c#8GZ$LlO#6ZgC% z=m1iW+y^y_4sIndAMMj@a-?C?&}zQ4d{524tXsQPVz7326BrqWudXqgHn1ZSjQC6Q zFJfz~{tASHQS{GG7;{pWp1NZ_+GB*tkAYd6{VU-;422ZMvv1`rSxD`VsQIN!Vx$!f zCj zAL-VLbG;oE?zJCIml7xem^){%5h3ZHTu}#s42|rsoeyLGV)r2Rwy5k)ttaeCYIOr!d-j5%U#fX! zEYt8%WOAd32Ou!lHW{Ni6eI>>HRN>XzxYgyOg3uy#X@3s8e31Cg>Ml-w+!ORuz_oC zEhBLG%s$O8i-?m3PliJ?z8v(!IoGX9nHdlOG0k$F3m5XPD2KkE3>ka1Kepws%y;J; z${>w|M5QvLAOifBaRzgO>rDo8O3=jUkiVxCV*crR!oGW2MK4^&Ly|QUSTa=HuZ&!8 zZrkFQd=)@PA|j(Cnr~=@AVr0Tw>dAe8<|vqCmemnqFspu`lo+i5g3OY|}~8ul;N0r!OjO%c1*6mu6AD-o1X zkPq@@@v>v7Ag1z8rHL5e6Pe%~V`C;}Psv|yXOD@VSg3A!{Zz7+cy)@=!_JR!^kCYg z!gbys8sTDErfWr}kA20p83R41EaUU$i@(LDNtfMi9!-(HtU7*(0lL}T5sW|YVG{AB zLzT*1*(1Atff9UOxTi=uAUVSplus=kFL<(UF~@J>%#JGKD*>C zcaux5OXhfwW?}v!2-4(0IE_Ty?J9uJ4Or|voNMa)ZRu;W>#t!JM3lm>`7czR>{Eqk z?8P8XOb&TfBj5%J3#D;1GFS{M*cUR%K@<${JMU$=TCqHjPR4NpYAq|D1EtVKr0<#n z{O8^u8SNST0LjLDT&f;O-&DE=i@X?Qg2OGqW9ewuj|7z;ME?vY8ZlBOA}W(%^uw-J zVLKkz$nH>cmxGeR!a*h^gWd=o*Yw2Eco$3}eC*m-)P0w7ub4&vq)h3uR67QofmxdZ zAp}Mdj+lae6u;WiccJmVc&bo@WgPm@OiV-*&MwCs0RDXfNJNlqC{_7Tb{BJ}3}MT= zT}I#`PE9;R{JQ&<^|LgW?oef15HzXeg;r8sowqcjSD;sL*-}~6C@VE3qpY{g$a~x2 z@C%D}LiI+svVof^m4Ebj-Q6Ws)b8Rq>jR*}Vsym!N%CQP z&A3Ec)Mr~l=Btq8Ufwn;jtr~L$UtVhhpU+7{CgQZlC$ymc5tsgpLGlM&X=1P>;-!q z-wFYi@YGbfrhs4k&V{QVXb;tVRt@gXyVV!NPwf;+*!&Yj++=MFNwR0@{=A^!cAsS9 zTEtl}e7^qo#?+>x5wJ7+K8pJjhP|D(Zk5L?mBBH)_!WFlmo6@vX3QB7fp(MTOq+HAxJ(Ht3tW~?6Isq7ESikVy*lbR9{-{ z1k_uy>8HvFenB5fbsuFznXx>>fS_E@iVvM~RbKiMx2PPOLhT7l;Mut%goXiW!;j=R zi8AzItwN+C=8dQ#`of35bQj9dA6y92a8MN$A*lC=#qr++1cYR|!kefkaF-5cjwn(2?>{!kneXEh}DdH?Ia2JGN z#k942)#+-3q{JV^&rKNZ!N(oXr9ThQkaZ|KJ9ZU_ z`VEH2%KZpx5G(z}F{ntP30LtmcMg_R?v&RHlLNsmEgC<{v?Qn=Fg@l*itaMGr|8++ z$2yZ*JD=#M#=UQ!$QO(`^=`F-xEK-Jb%w>w&>6Cyes=f<+0RT|{I-5#6hbfLr_c7< z@1>FmP-^%Yn{DTZw~xB7QP4d zMwXw&O5@(FsrV1=>_k;km>7DxwvkKUZtVXgITz+@cpW6YS(|U>(&J4qi)NIH9Y5_*OH;M1kVKdWU7FS_}Pv+d<$VWPZ5 zh9$T{Pl~A9U#cLc{yJ;>>@;4T4pacJ3Fo`l0K06v(mUuCPD=T-Sp99|ZTy6ntJlqa zldf^}NJGE*iMb%)FQ05uPh`Ryk)97>xn`&N zFBai>%)>8%C($Bbp8aGyE!GZ?5jv#2nTz)G#m@&i8MFrD9vL;pMNZl*{1*d z!?C@*cIBs%Ke*=mjoqTDq?PYq^F;xhk4B)ZC=Hh%^7U0GSV zQ@h<#GWf>j9rI>(ST6;Max!HD9>CT^I)t(cn0ut23*a^8HDScqqU~C(RPDQOcAghW zFl^(RBa4F6(kv6PHz!XFahn^%Rsj-9UDb$?SImw(c#3U7l_EyfoDnl3F`mN@hXiD5 z&7rf;uYQ{hFS!4abLIb5vrZ5kW@5M8)bHXE(j=Rhnl6FbLd2Jmi!)ta$B3Eg!$D|! zc75T)it%yE5vz2;&a7w5E2Wtlx*|$~Y8@w}wv(t~Uzm~7@!`>gLcLXTa)KRzhDy}= z%QylTI*s&#LFlZCUq1vYGm{gxRQDtfa3;O`! z8F&S=Z5_=pV^VNB7&i895a`9enQ6#zJ*{iJzX*k5?L#+wI3g@H%`+aSVI5Cm)kVBo zpB*V+L9Cj^LHZ$NJV$*JI=Z6Ypx|y+_XWJfAVC$TS24)y{b&;YfGLKkN@&``fF#S-3{(` zn#d{H2jl&V+PNT||M8P>Y_+$LRW9KX8ppxH_OZ!wZoEJqR)0*|5IbVA{EYr36UgV$ z>?d-7X1;4zQmY{T)HDK>nC%f;x6Ahg$)NgCfz2z1An=>-%Q4i?8j;ZzxJ8A4kM7Mo K+GRKJ!T$rWJem>! diff --git a/public/images/pokemon/exp/shiny/798.png b/public/images/pokemon/exp/shiny/798.png index 61ad84aa4771d9180f2a0d90120599d45eb2540b..b88b0c1efa5a6986c57bf5f4ef3ce22d96338720 100644 GIT binary patch literal 21747 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 literal 8299 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 Y(ggGMzzGb1|E&Wl$*Ia#N}GlKAKA;{-v9sr literal 4803 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 diff --git a/public/images/pokemon/exp/shiny/898-shadow.png b/public/images/pokemon/exp/shiny/898-shadow.png index 73b57448b00a212bcdf970d5b66b7063bbb536ef..8c4e18e6ba82be086f7047b19e68e215ace4118e 100644 GIT binary patch literal 19766 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 W^ZqTbHHYi7MG*_Yb}ru`qbFksOD literal 5968 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 diff --git a/public/images/pokemon/exp/shiny/957.png b/public/images/pokemon/exp/shiny/957.png index ee1ad562a040ccffed34c29240476a077fb8fd2c..195296b89d09b822c4aa8f98c7c8f71f6ec72fa1 100644 GIT binary patch literal 4492 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 Z1pq4(c*wDvsH*?~002ovPDHLkV1ka7XHftE diff --git a/public/images/pokemon/exp/shiny/958.png b/public/images/pokemon/exp/shiny/958.png index 219be3da7e96a58e8ba93c696288f80f83569ad9..50de7da7fda344f07a35f9b2df894ceec2631272 100644 GIT binary patch literal 11672 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®0rv0^rfW21j?cixdRiyvtoP4IMbRcegS9ShcMsLF{gCs-FX1E=j9 zA~T}J5}uG;_t!`7`I_Hb?AX*{X>N5u{pGIfb*qshO}Pf-cAMqeU+RxSzN)vV#O^V3iOzMF8L%}bx$nl@Pm%Y5DDzdN%wn&R>aJ{md-Pv2 ztqw68^?Z&tz+=0)UtVOr6Gm)UF4CCCI?I~dI|;CBtBpK|+@#m7_Vrx1+j%+DKqSj( ziKX+EwxmOh9BN3dor6feiR%_YZoE=i@mnLVNk0I*$Tb&D!;5$JXeiqj6Ky(6ay>0~ z-*>fT_|j19Hq>JK6t0am8*2AkqW=PRd|9v#Z~gS-p8WbjkK|(}?V&*1d&_yO>j13k z;>rtnu?^lQ6#4o!#dfOe-n;_#fGj?gQAM(ie$nom9QHv*4m6-Py#vo2WzUUV+ii^y z)WAhaX9#3dGAUS38FZ>qed+e7S}j~ow85H0C*>}sQbOJYHH(c@&$-W3*`B#&8+s*k zsnRwDY=h{IFd9orn`r|UW3S-)T}=Wq3Hej{Yn#Wl7o@%rgp^L~Wl2tue^R86JVuo4 z?H8$L{l#t;jiWVeS;dDY8K=q%t+a&Otd26W)qvVsi_u^kxenJlM36Wl3Orzt)T@;V z;=IF-Zvqe!WhP-EQHgE6#|5r~4yNT|3%}0D*et5yS~*eDTciJ>A-Pwl)_8h<7uVfK z!8*9^ty4U;7+S|Z*@UMPQ_%Df{bdG{*3@e7k*n)j{~PQ0NR!gSt@`TstQjc_I3=I^ zt;H}aBz>M6fQ){S2-qqS_93YoYFqAu8 zRvmzm5-@WxGkgqqMaEuHg;xMM%7MBcVa+c6AxdW!E>~D8 z+tZy=B(t2M*Z%0gH6p=|pYf35cMq_A)d-r3!bTfv83WCXK2{)+Y$4A&5k&nCYXDo> zIX5Wk3z$QO636sw)z|7cBO8sleg|vSqA}@c|8qSzO7r zUF#G#tnioA<)jS*G5g* z0XT%{mga1lL?g{fqT^!sRX-s|wHPY?T8sO*zDM+LQIGly_ccL#BiErwWQ2^q4>JZ* z_2#!jx%O#RZR1As*b=47C?sOK!nNazbzFxIFtTdEb*;pn>+{tV2AUxF#t7XyE~dC< z#DmrrGwRXt(lpU&XIUHs=D6Nc!dAye|E>5DvD4}NewH_j(8=1=9Jx=GP3e)DLUWlITolnH>b$F-e6~>+E#bA(@=zj3FwPmHE!-zt`!#)4!><7(0&7IaqeS z`MuP&(5Rs=HnqF)ROOhlPNAm5UdQ#(MutXQ;~ykw}m0U*&DOVqdY#oz^3d;_P{!=GRYPr_p`7AeMQ*)!M%Cfd` zOc=AftRNDm_v(tfE?mDeC*pGZI5NLn(jAOMBY&N$ambmUF5iSTWp_(gsVIkl9)goHvM6P9ZFC$AG8S6+{e|;PxZR5IlR~UTd zlEWG^L`g|^(8}7*pO>&MT+2Nu!Tj)ax|rtD7@$(R>L{i5SLMYhxOGfwb!7A}8S76~ zV)x(wd4K=?`?qX8ed#sZ|BS)8?M2nH@@HuQd+x>caKf&DonJ2LUPdO@#`@_*CU}T} zzup9Pajr1f`QJyz3@JBgEBv~kT$~%AOUo=7r7a8Ah3k-$abl^slyN!+MCJLVUSz(x zh$CT=YVnxpUqQ&HLg@4P+(x|9k4vU(3>!)*9<5tN$W_Fy}U8mZThI zT$$OZA@;@0Anq4E(pQ|x#9in9ly<;%Zm>g#M*lKV0ko(-pML*7J$=FT?+(B#*XVq` zLBd0NOHvWw6AE*C{ed{j7jRd<~rk$8@SF9MD=)k^#9L^14HWn zOhbrm^!4=LFG21)NUh|$j=w}Q^o&EM(3Yf{>}Tu~wFw$rKx@*-#@g4cU*g(EMEsUXj<}xdE8{Uhh1Ahlj7h(#y`Jk0BhpA&$Rncv z>a2~mS~+zR;LI}FQtPU@II3FKCXxwrmO;Bo&5Rv+Rj`w>soDlP*vQ6TKXtCblcFRI zrKH@~<(lhgQDsohRgFA_kOrPX5Uw+ck(#5C@CDdpjxxn*nx(JIxoZ#V=*wKIkWO?z z*at@caBZqT&9!V)JJ?u>+C((f_3>p`Rxe=OUAgY5rb=XO`7Mq7ek!cIlaZBcHHMR? z=SU;2*S32tThd4Ym2$l{90mt%oM1y?CNY#O>xZ@?brfI!oFc(C(M)p8jcf5M#w4k5 zt<`8R*vCcxjzXZCm(%Z$?l)7Urdx~7MO53|YsRusQ&vYZq>w}W?oND3st8Qu#dV;C zD{~@Pc`qXyuA|$?Un98w=7#deb?vSOD9*L`R&?qaq=7X)HA(`P%HBAEMp!*abEdD1 z#{kO3a1`Aax2Vb^4#@(q9FfLigfelrMgNLI&mGaVMIa)d57#V!xKh;!t@sslS8$D+ zs@~oUv?d18mvg%#mGuBJ`g1^09QH!v%F4SL>7A)6xF)3g(uXsV2#wCLV6dOoab0*W zVs9nfGe`puxTcXWU=21{HxipKr@5*?ZZeXryql3N*X}%J zT!w4f95d01cAxRBD%*f-Ae?Z00c#~HhbrIdgfh{yjlPoRq_Yg#T3z>aqV~R}2PE0t zaElI${yWobrX@y`?#o<%e4L-2WU(6@OKolLwIDWG7?Sv)bhKaffa^x2k+kP@ zLv*?P3|;TUb)7=3GaKDGrov|17c1{(WZ@bY(VduR@^Pb_m^_(YgK6su*kX__(Yviw zl&L%&u^<@tHFK_AEj(Lni91GyokU}`-@Qkl=0Nj(#cdryXBUUYIV9;l%D1B)XGSQA zI;~umFhhb`YeZceKG@=(?HkD1zrL4czta60-X!Ev^D@LS|RAdqu$+lq`!luD!G9Udbts&TF zwL|yy^+n55WB_qqe#w0nq)lkgC~NBLtLs$gxC>taW^Q_vvucs+5Bwf zy^Kt*ao4U+U*GHMt4%JROw`4OXXBA;jn`~F9tdLuky^|y44*{eHO|l}Vym$W9|GZHc-dl^vUo!;QDfdvjt_9$4_2N zjN$}#RfX}ky{wm{q?;+!@V&~<9rEq@MPE-$E>_;hNOKJ-=9)Bd*!p`V457)jD%PnkES~GZA~#qREl3hnMqNJCjLpt@n*!9~u3JGzeF=!;Lw) z&^N+sy{ks9h1YgdA;&V3nm8vnIdG!Phk~u}8gpB5{Vr8PmgGF)y0`KUMz&lRf2~S= zd4+3I=Cx`8!DJBlASB;H5i(da9$UJQCKuQ1Smd3nkL#SMRDzqCB$v91Yq1tF{b1o5 z+tH?K%raMbIlD6XJ4iCtVdTZ=ziPxaA(NW=EGKrtUE9-K=elD3siQB2GZMwLqR_{3 ztrQE_IBjM&1aoG1J`smZ9Cl;n9gHNi)0rHyMjeOj;93X@vgu;<-ze?xkESxnRvZG@5i`Z6 z3ko+SBf=Dm1j-;4kZmaIbx|7*u(LZBQq%PG+yk&@tYn*`j0~>f z@s8+!ER{y#ri!icTxFuSoQZ0u6rx*VPtZhDqaGA?R0yLLi5>ZTM*1?p66j4(@l=csP&&*o~F8{zsCLQR?5n1@>zg=%Y|`{dJY= zl+W#Wfx<^Jy(>JHYx3}v-Pcz;v&Jvmsw+v}hz+@yU(XsISFlOoHo#rs_I$mMZ+n=zpZZIy#_F zLVqeA>A8N&%@)+VDGIAV#=s#gYYvuImUV^tIXlLg-d`(AmU0qe=&yS#?_s2}B1tE& zYIjwtO8uKmnMtErln5FEL3IiCPS@ISy|L3NTbGK9>$y%dk}ek^>qT$dF6S83Vi}Y6 zbA531KNeS3GM!7(Hjq)}+uQTYGas(a5%iaFXJMVQI>kx-Fv};V2zdcF!B^LOJt&Si_h&|gf(E>tX_0SyZBb*UhnUqMVvykaWwVD zONyK;2d!cy><~fm3eZJc60Nn^k4bN@G3iETz1CFY;nDwCaQ*u$GRUX9b15@VCehMm zckK%-riFDlqY?P!itS~XWOmeN(_d}Oiyj1RJ%}HTlhJA@JeXy**TPz%@pR)_2VOlOwd627kpcR_~ z=Ell98OcMq%9Ui{Ch!xl!8JrE={!4(m3|v?%@*d`yC^YU+mJ!pWFDE|t=|~C)sLO7 zFRtezt|3pk8sBPRD=H*jd)7n^@+bl>Xc?T4Q&1MCec#z<$yw%FGu9L%%$gwgi%RifG z2UV1Et(DSPc^@OoF3Lzzhy4V@pqh&n$OhXsiD1KPtIUNOSwRw>6#^U2TFKr3whpe9 zpr865<#qzbn(PVG=w6%?Sq*ln#fV6^Zb>zdM|4X77RQ<{@xPDpJ#4<_S1v0WLP-9Jl%$l;URGDq6hkzVxm1)UV z!_3mkyBN93#bW@PZXEOI+{Na3tRzsQirBPkwOt!R2Bdu{np_}Q>!3_28tYc1du1Yb zBn;GRj7b`l;F>j)0qJ5b_8s}C=>MA3A=R?=Nv*kdjbxw;YhU<9q3aO8s;p~Oxh{u* zIk%Dd^qS4>E=I26dRdIHywSb0ZV724)nqg?8;;jSsI;MTI!%F2pD??ETW zBnJ7cu!{rISkCy+=>Mt!yK)*06T}aUJD`AJ&e4u zaCXcJ8suC-Pyh<*0!h(E*BV%xYt>ZNlfZUbEC$$|klNVFivn@9qBf!<9~%8%6<$JI zf4qLYAHLx6A!I56LxHmm?T|<+|83+aw)f(8-QZb^ zV|rDBaf($DdmdhAYEn77oI5>G?Ev+l=-;BHnf$uZVH=ryR2!iZ?caU&GaG2zY?F0_ zkvCUUajvavjY14v>o%?hG2Xfi0eN`s-&zdC(mfjJiYnHRjs87Hu3T?T)U$87e7Km{ zAoV)4fi}%Hg$^+CcCIDaF>tN*vH%pWb+wt%SwG_RG28??Tsk0Y2Sb1Yw%F%^`eV_* zTKeM%CLdpAcI9Y2YquMD1lLse(6ve<*Sg-)xRy}d@Q?ta*Nod7u<^`}h|QklB!QUauWzkHWPU1h;rr54qtEgXoN69kDq{rG4_e(H0+Y zi0S|(R%fD|5efL z-cI!K=Rgw_X=l4uwY*O$-{M$xgza~Zu)UCn*G@M4_G9V!S4aPURdqYpDUqGm6A3{t zKp<^g#mWOj=ZR?}a(XP*M;(?p*I6 zAgbg2(XRELqCo$;=>M;(9^g;@@A|BNUG)D~MSsW1gM}aebJ71_rT%h#2Lbfoiv6Sd oTm66ae^GzA{;U6c`sbhj2ho*&hjg3e8~^|S07*qoM6N<$f^6y%vH$=8 literal 56110 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%0D}w3HLQJ88}*A4|S72Ki~;Q`e03 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


dH%|ghFF%bW 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 h3qtNqOP1(v=Mj=H)Om<^mhT>#jhe5VMr;WXa4( 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 diff --git a/public/images/pokemon/shiny/370.png b/public/images/pokemon/shiny/370.png index 5633b01659c2bf0a54e32954a7da87e682a45520..8a7bf0b11a8fd4e09056bbc769baeca921703013 100644 GIT binary patch literal 4407 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 diff --git a/public/images/pokemon/shiny/864.png b/public/images/pokemon/shiny/864.png index 689b5fa73c469398176b0cc7a9dac565e82e82e4..780f52945f2c77598e2d004bdbde5b8b5deab7bd 100644 GIT binary patch literal 2990 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 k-2L3g4V}4uusmw!ne3Orq zub!T`w7R^xzR=Im;osusVwCyv{QUg<|D?r{aZ!x`0004WQchC~2|#Y$6jAVl4^h#VB?9gmd<1=Nn%1HzHU7`Ya^ zD~(r#L1T41g&>>_0pcAl)*?E!eS{N$Icx|Qh))e?#_m&&ToGOaKyV7{HUl|COlTh0 zVLf&qajcPtc#~i<&MV}J2>%=}H#mVOoEtpIvQp~?>wh_@$fIcpD}jUIx90})<#L$? zySa2JVX&J}j4W0HE%XCd%5=q@eGF@}RqhZ?wx%qEd0)yTcouoCaa>|BrO0liEN#W- z1{c&}2qNC$K4D`kEeH_iE(n-}@1Eg=Zq|=HC5>F!gU4|ghSN7y3LI;*k2$qoyE2CN zA>k<{>3>U3i3RLqjtXnGfbH~q!r_}3X4sVnjtBdgr|E*UTEP1e8;^eqCsQS4KPVGE zpV7^hQZ5j07Z8p8w+})Pg14XxWfp!&qgxv-FHDW)$VqG@Yn2x2FVc%?ac)ogiPeyt<9*VU9 z#4(`d$DfO|eHuds1*Q;aixV1E2bO1P-nDPoz*PduYto~=zvEyRrXa^O9aI>u+n&DqHW6K9G!Y==7?3fxIsCNQ-@PjP2~}W z7?iZYZizW>wk8KXf~;x)R5Ls5g4qx|J%2=7$iTk!mfQbi)bm-7xU$A>UL^KdrfFb{ z`*OKV>@k*YYu8}=)^;&EZF~HJ-CTTvDVE<|ylli*x1BEsQf8ei_PSADy>5S=Wxsa1 zj5X`4HoN}pmrF)TkSSu2-{5-3H3WiY*+sk cw@yU(7tq&I)RAC=>Hq)$07*qoM6N<$f(Y~zWB>pF diff --git a/public/images/pokemon/shiny/892-gigantamax-rapid.png b/public/images/pokemon/shiny/892-gigantamax-rapid.png index 0b85b62e8b987c19385032f26ade33fc157d0073..f9c4276359f462445a3fbc60987f8694fb8cd248 100644 GIT binary patch delta 1801 zcmV+k2ln`f3ycns7=H)@0002hMu!Rj0004VQb$4nuFf3k00004XF*Lt006O%3;baP z0000gP)t-s5DiZ-Kk+CnCMz?2U|&rE0Re`f{q^D z22n{wK~!i%y_t(*syY-zp)`Pk|Npyp&145fI1*@kN2@$!R(2jcfi{n7o%rdCYOcz^ zY1&JKii^VeuK`W_KLEbIv~iA81?ZZ`7l7{j`>Sc%6vyjy1faYw`!}C$gMHimG5}Yc z@$dNp(zPj_L4OH1+D$3FaRty;>b4|N1cUFyd1cE8_7++o=I_W)Ek0POGgI|SOn-89vA*3SU> zHvn$8@jl+#X`r1sl++TH`UqeQCm`c(grL6(fS|t#Xn(q<#akK)K!7v;9|4Rj1whBK zeHtd*83(7*#SuUOG!xk&O=^Kj_Gbdv11$NNs!(~GcADl1<-DZwlU{4J`6V99<+4ix z;LlsV2Y2*?DpHk?ZaDS{fK&xS^L3K-HHv#%S^?ghENp@ri{HKogs3yDtD8B4@yLy_wmv!3@EdUOw zt>s@&SObdvJvo4uT5{RjUi&^~cd4?P)__D(a1hDXlRhW=vXwU$1ho}cebgH8NM!zW zACs*!VAe#S4ON9=zo;T`a>sieWh*HT0D zQ*9xJg}xwM0!%hp02w$Btcj4eqx#TXLD&G65MBbvD=zn2N%iA)p5`ln=qmx3Rq^9U ze#!)|To@g}xCDqgiU9Cqa4Q2E(M3ZeA#&3Cq%9x_IRGUf=O%Kh5Ds8rKsXFx2S8VK z{eR*R0XRQ73fN?(Ct|n+@Mu{48Qu0D@3|9My^@r45kOzUfF7h2t@I&(CVkahHV$2@ zB91CgJBq$dTCZqbq_)v?_JX+7$m;2yyA%c-LP)%sA&`2j=YQLu@21&2?2!llcR`8OqJ&*xh6z+VM(z8ebVt^{D zRfC&QQ!!5!fI1`wst_MXUIuZ5`LalpGRv^|L6x=uAC}nhyWD!Hrc5{q=sH=6;DokZ zJl1pMhzBDhqQQY~j=>V5$zA=3|?c@%;Oe6lzdK!|F_0w8dGVWF}|Qh%6y zgb>_|z_7T+Uq{uWYbfp~cJ?hjV*IiZ1bI0_8<5ZEjA~Ud@{dvgWJA;1B8gf zpF-f&h9D`e8L&E40A-#jgbyL;%nm{J0PtF!$!&~ELeV5MsWd8s>qvON|pc}$6gY2qQ9xG1!OEAJ;`R`drY=0HNGTAe^ z(b%!Gr=@iSP{Oo~ptCz~hCPB7fF*=OtpG}BS(%`Z*Y>Bj!~Zdcy@mUl#%RbT`G6@>v7u!K!l)HEPza4 zzV|nAhh2|-sb03|eD22gI>JKrAr?*MWLYd|Kf=3)+3t$x>l2qD+dD*#b; z?(M^#6j)`y59s?mQr7??&;S5}ccnYp0H(g3bdSN#8^Gy1tJ;18cz-lK_6LCOM*!LD z$r&CQ@FW26E%DV_fALEq~qQO%6I8zy`3pRAV=B<8+~db^!ZQ|DpJQ3+NbTzfeW{%0o=c z{HgMaqPm~kpLMWD;W@$?K*tc#D-PD_3}DnhHF?FsI#m`&Pw8ZC!l`zyjyEN|9l##} rKrp~Jqx?{3S`6od8?ucakN*ICN?ui&ke6ow0000 delta 1408 zcmV-`1%LXC4u=bn7=Hu<0000GwrUFi001gbOjJbx000320T2yOC@m%{Gkq{W@nBy~ zYh`qXp#6&?FSWI`xmYIk_4WUkHV?I=T>t<80d!JMQvg8b*k%9#1q(?;K~#8NmDNFO z<3c+M6l)E`1|AyJ=#{^230^@5lQ;H1Zg0t6^+W7Jm3PfHt-V zbbIiPVKqvF@DnP2_?p@!S8h=LEd`H?vVc?mvW1XlE< zzj#^cyhAXZPm(wchCv|^{l#KjSMT8TVWR3Yht-C1Pz25vi?=-&_^GNlr}YU)c_?MU zhzHo;CrW*30u=zm0Udfi|A^OeFn?G^*0(w*0nI7N}F z`Gv}=@Wj$4>CEC@nl5UJkW9?;m$p1Ai18C7JLGaqNC-q?zqIq)K@d!p0GYT%`5{Om zr6lWbDFfTFAHP+m0NrV8<}-R^6SB77p!zI$f*|DXJP(BrZE5ql39;K7qDU$ z4u6bdU}t~>)wfAgIczrveEOJzD`*BP&mrQi8LlzI5sjQc*z6DuD(#MnfHzgrRMUX5 z(8~q87C=yWj^|+x5UFWPC6UAQOVL;ZfC5JlcPLj1M?_r&0C5CZ{QeZ{2B-`S0a{bN z#=Z+#dG`SaG{D~h)RlU_d=3!HL9`TiQ-AqXVD1lKzG~Z-vbqHP9)PSz(Eov&ls^)G z-3Tj$Woh6kxdgHPXEjVmgYXVubP2H2WA*<5!*thWx)}kSA)p_?$UuQWG;&4&W309U z96@$mX%zW)kF6JCYm|XNowiRp zD$f#S;28qbG|}CyN2UmZAH$vN3 zfx#xQSS&6xY61lwGkX)byiCaw#IDQ9rWG)YO>VxK1D$A#s!3;C!0=#f1%_UDULKfI zdcN;BwgLX$-riPVuh;AST0Rqzy=F#d5O<`8(`XYUjKgw`@nR^AbOJk O0000} z0ELP^OaK4?4|GyaQ~&?}|NsC0|NsC0|Ns90)ZCb%00009aDPZya{vGi!vFvd!vV){ zsAK>D1prAzK~z{rt=Nr%swxzQVN?W_+1>x;p7&c|{(G$j07P;{#~g>V+`EeIVOlj4Ri>>`im%#sv*=X%(#ON3xeL z8s>(6P=;X&VSiG3JQp3Xvo28sI}=y1cji&yX`bhxBs(48qjcIinxKnal1QzGL1*E4 zA13k)8LX4FPm$>Q*eS(91&4*AVN$(k$hkBv2d>5IpmGDW6bZL1iwml^pCQ8=tcW#G zDULmj-z61tTvG4tLL-KG_Lg>zZ^5*TOG0%0I6D4!F@LS1558a)XP^qwbK2j< zf#UNtO}T_Xb|k-aopH+XePO-<>BDGrxKf7RXyBMV+hreP|CB-{TA=zbJ;aJoR32c? z&vveH@_(*iN^GE*3mCd|x~;~VWzOCg;Ha`T4a|Z5(yRUBvVt^UhH{jNcNa%6rG+ld zY==asz3>><_9^O|2XDv|;Db-VIr4_@0(aRS9zZ-1lGD{7=tOtk7^6Of|rU8+oUOU{aT zC%Vv<D7G@+#muMlFWS zlpJ*r1$4tYe^=rH9=yIUiJ7NsWni0ILHl@HU7S4C8qW@^HMz~)R96AWxt7I9$KBn2 zz<;zU61myt3y>8RAI#axB1TpoC0H@A)rB#Utty^|-OZ&EfSkyM%+0i2VYR)9wj0u3 ziF9f9LjdY@o?x4X=dF9B4DRASLBKF`A0xj4l_=hzN#_`!LC@TLN>2mJ8wq$6)BQDh zxiC-MKPHwKVIy=Y?N65mPT)cQny@q9ynlgy8iw+~4^r{E+XU--4CU zN_`hztw>N~Us<#sqI%d3$2kJfQdA4(1$R4YM^&g$IR;ksIh@VUIOxV^?nDEpbbH`w(zZiH{w00 zSKZ^zRelKCBq26~tko}Id&;SROoal;RN}z0@NXa?r-1SRi^wgk#8Xg3@+N~_7B{dd zHbI`0UO|cc{T7tSL-%xfo4A3^<$p*ERDuG{6KG-?dIX)RoO_Bo`0`-s2wMCFbX8Ez zt9m~N6^?aG1Eh7!si&xe(Rzsl1L^9<{Q8ZRLAcLg%474@q61!a~<(gPNp?~pgdQ~ti ze3_bg*pEqDkR@3B1*k9c`aXXyCC{-8-+pMiMgyGmXo6h!X4F9~8D}lZj$t*nj^2(M zXeoO8dG8P3;!5DmOiSOMC{3Bt;V&UFRt%l8L9qy1Rz ziy|+LjE=Olw7FO&xw*Og{QUm@{{NRYOZ{pS00001bW%=J06^y0W&i*LFG)l}RCr#E z(XmhCRvZWL=PM|yUjQGX2p#6QA{|TW=7b6ZP%DjeH#DTb6Ms^&Sh!D-x|E?saw|*F zob`q-tvYmNO65v7aJ4Emp6<@md;dU(4op-G{0;rth8}hN626g=<>T*HznF|<%C_+v z0Lb{*P3{mfopdFPcbo@0seIQREAKr($9D+v2i-W4V!KqC2=_R*drYrf_#i>>ekoji zkilldAr(Iye19$W@hJt|ZLjfW;F8KE^)HSPmPxFeI)Sx-^DphnIr03PJz9*xhVyuRPN9BPu^J7^(bF|y>C)?tP{~?1^mNID5n%5Adgc{pcIgMSz1Lz8P#9ZYv>+v9k-$N%ssH`+x&igrps67c{X>b4ldyFZ! z8wi~y@3Z=Ns4;^F#{4aa+iGa=zB4lcI)4UdDXh-jK&Kq)26vd#bIkD&V+06UHHVFH z5E(OWL8hyq;TECl?gK_mbNL3kD(J9JST%?6D21wPW|(zH=)Qx?%pC(Qt5LfJ87+7B z>d>|j>T{DI03fVhL#M&?aj=@gRd{HqVcXnWZR=HyXnQG~H573Ajofh($07*qoM6N<$ Ef)Cs|_W%F@ diff --git a/public/images/pokemon/shiny/898-ice.png b/public/images/pokemon/shiny/898-ice.png index 86d2c3cf2824318f2ab5f200a61d38efd9ec69ac..d262f8c3e9daf7b8a7977052c94e6965901672e6 100644 GIT binary patch literal 3738 zcmV;L4rTF)P)EX>4Tx04R}tkv&MmKpe$iQ%ki}94siJkfA!+MMWG-6^me@v=v%)FuC*#nlvOW zE{=k0!NHHks)LKOt`4q(Aou~|?BJy6A|?JWDYS_3;J6>}?mh0_0YbCFRI?`vs9McP z#baVNw<`Ky;lmL6FouA{Og)ia%)oVg-NVDzy9m#6KlkV8SMnwUJR)(F=|+usgLrnc zrgPpW4zZG?5T6rI8gxP8N3P2bzi}?wEbz>bkx9)Hhls^u7t3ADN`^{2LmXCAjq-)8 z!wTmu&T6I3+V|uy4Cb|!G}md4B90{_kc0>sb(B#-4G~&3QcR?1Kjz{evHeMM$>b`7 zkz)Z>sE}+w_#gc4)+|gmr&?r8EJaJd5vKk1So*^-y0P$&TJXY@@uVDJ_QtU0~4_i_3FWT>m<8{ps& zm?%>Ay34zJyLeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{01R?TL_t(|+U=cvNE~M#$G&?+1&z`^?PlXTHCe=l9I4K!UA*=$;};l7io$ zWhWYBVg45LK`)e=gZ|>S%XA#Q{%eP63u0-J@tD_cvr?i+J0N+>S#Le2w8%PSWFpM|p?gYW!^XtDt4$kJm(MWE za*`_BSLdSJe`yh%R5@fNN|h_~!MOI*zB-4KpWK2pcs91}52WAa6Q<1nWEI9AD`PPE z;C@Jwq%TM#^boTTS0KoAR)8HE#OJ5CZ##Ph|<9c8TFYeh6Z(9ut^S9vXUlveM z@FXgbgGXy2%?2YOmOR7M=roX)Zcgg#+@UI~u^}&Fh^S6ciGaEdf#hBJ)tP^(Gax+1 z-lMg+ITOU*lJGIw@tFHtRiaT+bb?vGsp4+sPG3_946v@E2c0{@FK_>&2Zi}tP*Cs$ zZg(!OoV&`#k}*ZfvWt>gQ?)vVhbJ1rV@c7W5beP%?pA)h@gDn=2l>O3a!pKJSiXQ{*{+sf?UjjcJSJdrJHxY*{!s+G(~_Ui2H>lio*OY zI5Tk{&GoIeKvK(WZ%H0DmUp47wHN-vi&K9aw`gBpx6owcB&4adV29d|AUoBzNTjMPpTU zm8?A{#$Kv5X`W6X7jNBVAXz-_JA=I?dAK^Gg)EnKb`31pw~+!)ppt>>Tk85FR9{4FCpax8mOEo#^j769LvXNYO&-lxBlT zuM8q)K$Ztw{?sK&lCtZq@KZck5hB@x2jA(<*%iKrIWYS(%B%kta`~`pvsPU7dV3H< zOTheOKrStUGkR;2 z9sXHW(Aot}sl;b`p^Ieg+MFs=QL{!UQ(C(K*#=N@S+_e^19e^5UrfP<6sqhk$zuTd zWAgxS&IH+-I>D6&&uW3vvM@oUq{B~9Q{du;T_Z`76gg)fjDYe}PntFH8DCVZ9V0~& zIEtqPk*^|HVkD>pP?+D_4qeIaXELCnIB5oSWj?5hm7-eB0FqI8L^ggoh>Mr5;gy$P zGAzeLs64$#-|%TBB*_A5>(&)|qY^G~OAoCHdlP2m)S=gR zIf#>SyjOyl%($5yi;L^E;G)gm(EyG0x_NnXD_f)L zZ})`UeL_iVX_P1^@w&R51f;Q9b@rpy$sWVCtF*_=V~2a2Dtc^(1G+odN}a!om5;KJ?O>V35jX^5^hGqoE&R#*>zbl98gFQ z<7+HNC(KF8jZ2w4q^YSj21pDCw&(4|-HNDM(bcWy>3VDE88rj4Qm}Z_fo^;)?pCC4 zM_3qOUrC`;xI6WmW3!@hEBZO?ufocFkj2b}<@=^xY+k`;M%Qk}GJ(h#n0!K+TnsPp zix7{WnAWI<)XB$9Gw3_F{iN>W+YzQHY_E$H&mWh7(l*xvONRR( ztW^?hV*SekhRTJ3>{t!w$u{P5! z;b)ivKgG3``5?aj=J)K&_c&K|w8|U-Q-qpnt{RX152kO4Qt?iqHvj+t07*qoM6N<$ Eg4J*#RsaA1 delta 1266 zcmVpe(DNKS|0Log119e*s%99yifzBkA5l`)Ou z6fd5uEMcx`lUf-c?@8*tvV;)I5CW?-$ ztNHq$nQSrivC%i%_cng7W&b(omH2!c)yGy}L%N~z|I z(`%es+)oq4`+pk)JBkAU!&E_GoN%5ix|$tB2Xcym1gitg4vLeLqxgVqXf;`ov5G9B z7UaPk=dK$BM8f9ZH?fgz@G17)bD*kJ(-RG`k`~F`eB!4K8sFNkaOx0?Zbq!%R=~%Lf zmEe6EqDzgP=1RtAdc1<0Ki3CHH~BS>St%USJHMdqIf}OH4(b!g-_IFGKN1F`0C*MIDIAxmnOMiO%l1jC)IQwh&DBN}ujk7rZI_AwZ zF90|O#?}#4;cDFWJ6*pjE9$ektB6QMgo>@iFhHf7cLz4p)r_@VDcg!Fd4{A)rIZ`T zo2rt%MawTXshFDhWhGxKcMeVX!EDhI^$a4k(^P#+)b>OH zfPcM9^pQU&It&_2J)4lrEZnOthIdhpyKQ5C7DY88cdLo^bw|sGjCC zGreVA2XFgb+smvib-Zm}P}&v~UC4^wGuxGVGTVxOGjE<4l~m8>+K%wKnL8Yv$!t&b z$V?Q^=GO4ONYs_}a>{;wLHo{5py1|ky?^?Qc0Ftt0fD%Ju4R)0$ZfjQjPvYf?$3=d^MRGq#6dG#X?2)tDiWsDj}PX07kiJ)c$$SqGCViqErB)*!tiF6UbCXB z8M7eU8=uFrDk?MFf=nW&i6q9xssV^uUV3eS~}-rh_pD%3Qn_I!sLy1e$3K%~VDW6qrHoKY13D zm@GG)NV34DY9b&eAmC=<-83^$DVjg; zFwImz48$`M2GMqPoS4C+n1Gl<$7|T#ENWq@n|90yOufF$OrXcKX0Fq4Hhoszyq)N3 zT9|Db^q3JMwr%QmHN_RKRn$%IO?DaO`ZUt>E^S7bmgZmm*=IHF56zecWr;_xzx%UP c|HK{QKaRm*bpO%avj6}907*qoM6N<$g7bo6n*aa+ diff --git a/public/images/pokemon/shiny/898-shadow.png b/public/images/pokemon/shiny/898-shadow.png index 43393b09ca3fdb9670f6d1bb32f28856832f1774..6744535f16596b6733dc9fbd8ca48dd6702512a6 100644 GIT binary patch literal 4082 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 k_MZ5Dt~H>&gSo`@*=~n&#bW*)luba z#%-rI>WDm^67#i8=tT$SZR42fXsSgWmlt%&M_2-S&1?v|aC^f&SB-VX?s;XS@$RqvU|*wt8)Ny-+_ai?3Vc4e?vtT zwtDhiE+nEXDlSeI^d_k;ABqy7Y$#EsVdj~2QGfBBs&3csdY_$&G8eZrV1{M|10qV# zAKYRgAgL*81RbnSA%F$U(u4)DZG1mVEy@xa-t>oHjzwh=r9DtngL061(tr937<)n4 z(R&p|QPhiy{KW=kxvIUWaj@F}*Ql;`^j}Z4A}!Ark9rw^2k$3jqP(PP{}B)MEh;~G zlYbIg)KqYU=|q9Qi5gOisw$NPM}H~+euCB^ZB%=eUi^UG4MC`5SDHOdwGw=)-ll)Q z2^%aBh9eCf!)pDH7gTm2cjg7HQ9q#{Rqef@@iMB%RJACZ`mz5C3?K}Ls&`qV9#JEB zd+-22N+hU8Rn`k1ZB^CF4S0ge9aYh&%YR?AnTq;K{sbtfsX6b?H@B&l)S#lojX~n; zzsP@yiVkvoR{*fbk&bCJHbToY!WOV&8lx{IxUDL9Nx5pnplXYjOBQr{g4XkV7|4J0 zEBbM&f|XQ*wrU;Ju)l2^48I=maub&|?!UfGoo?d<*3Q7$s>WAHmsHY@~MvLz~@uL{|VAfRKoOKnZ1Z?bo3bO$F71iehNcfbOVh z4(iQ+Y~&FF;p_gVBi#w5Uh~xdRDb5qnGgc>>2gAe=*bT79fgXv1kkBC>G;IuKInlC zT1>j9pqg5C@A{Hbcv7%9MJ^{(K?BUvcQ2Ia-VEUqIV9-GYRDb$p_va(&kpsa__e&&yOPB~cyy1yiP&-}YDuB|Fk`ne#`A5lyI@Rf^ zk(*O(ENpw-QTV9SQ_<7P_%=%`ZOu@zd$u93BtjP2{iIAK;Z%YUEH` Q0ssI207*qoM6N<$f^UPI+yDRo diff --git a/public/images/pokemon_icons_7.json b/public/images/pokemon_icons_7.json index d4b52c7ab36..bd9f404eb26 100644 --- a/public/images/pokemon_icons_7.json +++ b/public/images/pokemon_icons_7.json @@ -5979,6 +5979,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:8e8bd4d6d941cb88610eb6155fd86133:38ee262ea69421a5e49109e3abfe85dd:2e7c5873ead8fd8fce82a0b3fcc86b42$" + "smartupdate": "$TexturePacker:SmartUpdate:a4de8d1c4f7d4f58c929b8b5479e03f1:3c8ac308e19a7f9420a4df8a78188490:2e7c5873ead8fd8fce82a0b3fcc86b42$" } } diff --git a/public/images/pokemon_icons_7.png b/public/images/pokemon_icons_7.png index 40c3e96a588dc74d4d29c742fbffaef4fb0c2e4f..c9a396ed5c60981ba160c14a52f169a6257bb2a5 100644 GIT binary patch literal 51140 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 V>s^DR@Rk4o002ovPDHLkV1hg7m017) diff --git a/public/images/pokemon_icons_8.json b/public/images/pokemon_icons_8.json index bac1c6fbea6..11a2dcc1f4a 100644 --- a/public/images/pokemon_icons_8.json +++ b/public/images/pokemon_icons_8.json @@ -7365,6 +7365,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:c7db0232f46f4f968b13cb4a8cdb7bce:bcba724c9d58839d9045773dbcc992bc:8190d2ecf16422e962cfb1a751b5e1fc$" + "smartupdate": "$TexturePacker:SmartUpdate:4716314f809733c6bcb221809776ba11:4fb09375a87d8a348dc0e609db8a95fd:8190d2ecf16422e962cfb1a751b5e1fc$" } } diff --git a/public/images/pokemon_icons_8.png b/public/images/pokemon_icons_8.png index 0ef0389a5950a1b10160094de5918f8de6abb6dc..8f7b398a0349199ad1fddcb6cb4320d1e657897d 100644 GIT binary patch literal 74949 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 literal 74423 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%0AS^CquI|T_m=U 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 LNkvXXu0mjfPIoP1 From 9aa22d6150ec7d7410b15e136c2a64cf66a65e68 Mon Sep 17 00:00:00 2001 From: Nicholas Galauxy Date: Sat, 25 May 2024 22:31:42 -0500 Subject: [PATCH 60/61] Bugfix: In-Battle Formes are incorrectly selectable (#1388) * Fix incorrectly unselectable starter formes * Fix linter issue that got merged upstream * Remove battle-bond key from form key overrides based on feedback * Fixes being able to select forms that shouldn't be startable * Add Minior Cores as cycleable * Remove unused code from previous implementation --- src/data/pokemon-species.ts | 356 ++++++++++++++-------------- src/ui/starter-select-ui-handler.ts | 2 +- 2 files changed, 178 insertions(+), 180 deletions(-) diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index eb23ea3d60a..73a7ef64ab3 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -135,10 +135,11 @@ export abstract class PokemonSpeciesForm { public baseFriendship: integer; public baseExp: integer; public genderDiffs: boolean; + public isStarterSelectable: boolean; constructor(type1: Type, type2: Type, height: number, weight: number, ability1: Abilities, ability2: Abilities, abilityHidden: Abilities, baseTotal: integer, baseHp: integer, baseAtk: integer, baseDef: integer, baseSpatk: integer, baseSpdef: integer, baseSpd: integer, - catchRate: integer, baseFriendship: integer, baseExp: integer, genderDiffs: boolean) { + catchRate: integer, baseFriendship: integer, baseExp: integer, genderDiffs: boolean, isStarterSelectable: boolean) { this.type1 = type1; this.type2 = type2; this.height = height; @@ -152,6 +153,7 @@ export abstract class PokemonSpeciesForm { this.baseFriendship = baseFriendship; this.baseExp = baseExp; this.genderDiffs = genderDiffs; + this.isStarterSelectable = isStarterSelectable; } /** @@ -812,9 +814,9 @@ export class PokemonForm extends PokemonSpeciesForm { constructor(formName: string, formKey: string, type1: Type, type2: Type, height: number, weight: number, ability1: Abilities, ability2: Abilities, abilityHidden: Abilities, baseTotal: integer, baseHp: integer, baseAtk: integer, baseDef: integer, baseSpatk: integer, baseSpdef: integer, baseSpd: integer, - catchRate: integer, baseFriendship: integer, baseExp: integer, genderDiffs?: boolean, formSpriteKey?: string) { + catchRate: integer, baseFriendship: integer, baseExp: integer, genderDiffs?: boolean, formSpriteKey?: string, isStarterSelectable?: boolean, ) { super(type1, type2, height, weight, ability1, ability2, abilityHidden, baseTotal, baseHp, baseAtk, baseDef, baseSpatk, baseSpdef, baseSpd, - catchRate, baseFriendship, baseExp, !!genderDiffs); + catchRate, baseFriendship, baseExp, !!genderDiffs, (!!isStarterSelectable || !formKey)); this.formName = formName; this.formKey = formKey; this.formSpriteKey = formSpriteKey !== undefined ? formSpriteKey : null; @@ -823,10 +825,6 @@ export class PokemonForm extends PokemonSpeciesForm { getFormSpriteKey(_formIndex?: integer) { return this.formSpriteKey !== null ? this.formSpriteKey : this.formKey; } - - isStarterSelectable() { - return !this.formKey || this.starterSelectableKeys.indexOf[this.formKey] !== -1; - } } export enum SpeciesFormKey { @@ -1088,8 +1086,8 @@ export function initSpecies() { new PokemonSpecies(Species.CHINCHOU, 2, false, false, false, "Angler Pokémon", Type.WATER, Type.ELECTRIC, 0.5, 12, Abilities.VOLT_ABSORB, Abilities.ILLUMINATE, Abilities.WATER_ABSORB, 330, 75, 38, 38, 56, 56, 67, 190, 50, 66, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.LANTURN, 2, false, false, false, "Light Pokémon", Type.WATER, Type.ELECTRIC, 1.2, 22.5, Abilities.VOLT_ABSORB, Abilities.ILLUMINATE, Abilities.WATER_ABSORB, 460, 125, 58, 58, 76, 76, 67, 75, 50, 161, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.PICHU, 2, false, false, false, "Tiny Mouse Pokémon", Type.ELECTRIC, null, 0.3, 2, Abilities.STATIC, Abilities.NONE, Abilities.LIGHTNING_ROD, 205, 20, 40, 15, 35, 35, 60, 190, 70, 41, GrowthRate.MEDIUM_FAST, 50, false, false, - new PokemonForm("Normal", "", Type.ELECTRIC, null, 1.4, 61.5, Abilities.STATIC, Abilities.NONE, Abilities.LIGHTNING_ROD, 205, 20, 40, 15, 35, 35, 60, 190, 70, 41), - new PokemonForm("Spiky-Eared", "spiky", Type.ELECTRIC, null, 1.4, 61.5, Abilities.STATIC, Abilities.NONE, Abilities.LIGHTNING_ROD, 205, 20, 40, 15, 35, 35, 60, 190, 70, 41), + new PokemonForm("Normal", "", Type.ELECTRIC, null, 1.4, 61.5, Abilities.STATIC, Abilities.NONE, Abilities.LIGHTNING_ROD, 205, 20, 40, 15, 35, 35, 60, 190, 70, 41, false, null, true), + new PokemonForm("Spiky-Eared", "spiky", Type.ELECTRIC, null, 1.4, 61.5, Abilities.STATIC, Abilities.NONE, Abilities.LIGHTNING_ROD, 205, 20, 40, 15, 35, 35, 60, 190, 70, 41, false, null, true), ), new PokemonSpecies(Species.CLEFFA, 2, false, false, false, "Star Shape Pokémon", Type.FAIRY, null, 0.3, 3, Abilities.CUTE_CHARM, Abilities.MAGIC_GUARD, Abilities.FRIEND_GUARD, 218, 50, 25, 28, 45, 55, 15, 150, 140, 44, GrowthRate.FAST, 25, false), new PokemonSpecies(Species.IGGLYBUFF, 2, false, false, false, "Balloon Pokémon", Type.NORMAL, Type.FAIRY, 0.3, 1, Abilities.CUTE_CHARM, Abilities.COMPETITIVE, Abilities.FRIEND_GUARD, 210, 90, 30, 15, 40, 20, 15, 170, 50, 42, GrowthRate.FAST, 25, false), @@ -1123,34 +1121,34 @@ export function initSpecies() { new PokemonSpecies(Species.SLOWKING, 2, false, false, false, "Royal Pokémon", Type.WATER, Type.PSYCHIC, 2, 79.5, Abilities.OBLIVIOUS, Abilities.OWN_TEMPO, Abilities.REGENERATOR, 490, 95, 75, 80, 100, 110, 30, 70, 50, 172, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.MISDREAVUS, 2, false, false, false, "Screech Pokémon", Type.GHOST, null, 0.7, 1, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 435, 60, 60, 60, 85, 85, 85, 45, 35, 87, GrowthRate.FAST, 50, false), new PokemonSpecies(Species.UNOWN, 2, false, false, false, "Symbol Pokémon", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, GrowthRate.MEDIUM_FAST, null, false, false, - new PokemonForm("A", "a", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("B", "b", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("C", "c", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("D", "d", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("E", "e", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("F", "f", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("G", "g", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("H", "h", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("I", "i", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("J", "j", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("K", "k", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("L", "l", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("M", "m", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("N", "n", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("O", "o", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("P", "p", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("Q", "q", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("R", "r", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("S", "s", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("T", "t", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("U", "u", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("V", "v", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("W", "w", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("X", "x", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("Y", "y", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("Z", "z", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("!", "exclamation", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), - new PokemonForm("?", "question", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118), + new PokemonForm("A", "a", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("B", "b", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("C", "c", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("D", "d", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("E", "e", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("F", "f", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("G", "g", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("H", "h", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("I", "i", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("J", "j", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("K", "k", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("L", "l", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("M", "m", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("N", "n", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("O", "o", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("P", "p", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("Q", "q", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("R", "r", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("S", "s", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("T", "t", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("U", "u", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("V", "v", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("W", "w", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("X", "x", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("Y", "y", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("Z", "z", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("!", "exclamation", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), + new PokemonForm("?", "question", Type.PSYCHIC, null, 0.5, 5, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 336, 48, 72, 48, 72, 48, 48, 225, 70, 118, false, null, true), ), new PokemonSpecies(Species.WOBBUFFET, 2, false, false, false, "Patient Pokémon", Type.PSYCHIC, null, 1.3, 28.5, Abilities.SHADOW_TAG, Abilities.NONE, Abilities.TELEPATHY, 405, 190, 33, 58, 33, 58, 33, 45, 50, 142, GrowthRate.MEDIUM_FAST, 50, true), new PokemonSpecies(Species.GIRAFARIG, 2, false, false, false, "Long Neck Pokémon", Type.NORMAL, Type.PSYCHIC, 1.5, 41.5, Abilities.INNER_FOCUS, Abilities.EARLY_BIRD, Abilities.SAP_SIPPER, 455, 70, 80, 65, 90, 65, 85, 60, 70, 159, GrowthRate.MEDIUM_FAST, 50, true), @@ -1454,9 +1452,9 @@ export function initSpecies() { new PokemonSpecies(Species.SHIELDON, 4, false, false, false, "Shield Pokémon", Type.ROCK, Type.STEEL, 0.5, 57, Abilities.STURDY, Abilities.NONE, Abilities.SOUNDPROOF, 350, 30, 42, 118, 42, 88, 30, 45, 70, 70, GrowthRate.ERRATIC, 87.5, false), new PokemonSpecies(Species.BASTIODON, 4, false, false, false, "Shield Pokémon", Type.ROCK, Type.STEEL, 1.3, 149.5, Abilities.STURDY, Abilities.NONE, Abilities.SOUNDPROOF, 495, 60, 52, 168, 47, 138, 30, 45, 70, 173, GrowthRate.ERRATIC, 87.5, false), new PokemonSpecies(Species.BURMY, 4, false, false, false, "Bagworm Pokémon", Type.BUG, null, 0.2, 3.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.OVERCOAT, 224, 40, 29, 45, 29, 45, 36, 120, 70, 45, GrowthRate.MEDIUM_FAST, 50, false, true, - new PokemonForm("Plant Cloak", "plant", Type.BUG, null, 0.2, 3.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.OVERCOAT, 224, 40, 29, 45, 29, 45, 36, 120, 70, 45), - new PokemonForm("Sandy Cloak", "sandy", Type.BUG, null, 0.2, 3.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.OVERCOAT, 224, 40, 29, 45, 29, 45, 36, 120, 70, 45), - new PokemonForm("Trash Cloak", "trash", Type.BUG, null, 0.2, 3.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.OVERCOAT, 224, 40, 29, 45, 29, 45, 36, 120, 70, 45), + new PokemonForm("Plant Cloak", "plant", Type.BUG, null, 0.2, 3.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.OVERCOAT, 224, 40, 29, 45, 29, 45, 36, 120, 70, 45, false, null, true), + new PokemonForm("Sandy Cloak", "sandy", Type.BUG, null, 0.2, 3.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.OVERCOAT, 224, 40, 29, 45, 29, 45, 36, 120, 70, 45, false, null, true), + new PokemonForm("Trash Cloak", "trash", Type.BUG, null, 0.2, 3.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.OVERCOAT, 224, 40, 29, 45, 29, 45, 36, 120, 70, 45, false, null, true), ), new PokemonSpecies(Species.WORMADAM, 4, false, false, false, "Bagworm Pokémon", Type.BUG, Type.GRASS, 0.5, 6.5, Abilities.ANTICIPATION, Abilities.NONE, Abilities.OVERCOAT, 424, 60, 59, 85, 79, 105, 36, 45, 70, 148, GrowthRate.MEDIUM_FAST, 0, false, false, new PokemonForm("Plant Cloak", "plant", Type.BUG, Type.GRASS, 0.5, 6.5, Abilities.ANTICIPATION, Abilities.NONE, Abilities.OVERCOAT, 424, 60, 59, 85, 79, 105, 36, 45, 70, 148), @@ -1475,8 +1473,8 @@ export function initSpecies() { new PokemonForm("Sunshine Form", "sunshine", Type.GRASS, null, 0.5, 9.3, Abilities.FLOWER_GIFT, Abilities.NONE, Abilities.NONE, 450, 70, 60, 70, 87, 78, 85, 75, 50, 158), ), new PokemonSpecies(Species.SHELLOS, 4, false, false, false, "Sea Slug Pokémon", Type.WATER, null, 0.3, 6.3, Abilities.STICKY_HOLD, Abilities.STORM_DRAIN, Abilities.SAND_FORCE, 325, 76, 48, 48, 57, 62, 34, 190, 50, 65, GrowthRate.MEDIUM_FAST, 50, false, false, - new PokemonForm("East Sea", "east", Type.WATER, null, 0.3, 6.3, Abilities.STICKY_HOLD, Abilities.STORM_DRAIN, Abilities.SAND_FORCE, 325, 76, 48, 48, 57, 62, 34, 190, 50, 65), - new PokemonForm("West Sea", "west", Type.WATER, null, 0.3, 6.3, Abilities.STICKY_HOLD, Abilities.STORM_DRAIN, Abilities.SAND_FORCE, 325, 76, 48, 48, 57, 62, 34, 190, 50, 65), + new PokemonForm("East Sea", "east", Type.WATER, null, 0.3, 6.3, Abilities.STICKY_HOLD, Abilities.STORM_DRAIN, Abilities.SAND_FORCE, 325, 76, 48, 48, 57, 62, 34, 190, 50, 65, false, null, true), + new PokemonForm("West Sea", "west", Type.WATER, null, 0.3, 6.3, Abilities.STICKY_HOLD, Abilities.STORM_DRAIN, Abilities.SAND_FORCE, 325, 76, 48, 48, 57, 62, 34, 190, 50, 65, false, null, true), ), new PokemonSpecies(Species.GASTRODON, 4, false, false, false, "Sea Slug Pokémon", Type.WATER, Type.GROUND, 0.9, 29.9, Abilities.STICKY_HOLD, Abilities.STORM_DRAIN, Abilities.SAND_FORCE, 475, 111, 83, 68, 92, 82, 39, 75, 50, 166, GrowthRate.MEDIUM_FAST, 50, false, false, new PokemonForm("East Sea", "east", Type.WATER, Type.GROUND, 0.9, 29.9, Abilities.STICKY_HOLD, Abilities.STORM_DRAIN, Abilities.SAND_FORCE, 475, 111, 83, 68, 92, 82, 39, 75, 50, 166), @@ -1553,12 +1551,12 @@ export function initSpecies() { new PokemonSpecies(Species.DUSKNOIR, 4, false, false, false, "Gripper Pokémon", Type.GHOST, null, 2.2, 106.6, Abilities.PRESSURE, Abilities.NONE, Abilities.FRISK, 525, 45, 100, 135, 65, 135, 45, 45, 35, 263, GrowthRate.FAST, 50, false), new PokemonSpecies(Species.FROSLASS, 4, false, false, false, "Snow Land Pokémon", Type.ICE, Type.GHOST, 1.3, 26.6, Abilities.SNOW_CLOAK, Abilities.NONE, Abilities.CURSED_BODY, 480, 70, 80, 70, 80, 70, 110, 75, 50, 168, GrowthRate.MEDIUM_FAST, 0, false), new PokemonSpecies(Species.ROTOM, 4, false, false, false, "Plasma Pokémon", Type.ELECTRIC, Type.GHOST, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 440, 50, 50, 77, 95, 77, 91, 45, 50, 154, GrowthRate.MEDIUM_FAST, null, false, false, - new PokemonForm("Normal", "", Type.ELECTRIC, Type.GHOST, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 440, 50, 50, 77, 95, 77, 91, 45, 50, 154), - new PokemonForm("Heat", "heat", Type.ELECTRIC, Type.FIRE, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 520, 50, 65, 107, 105, 107, 86, 45, 50, 154), - new PokemonForm("Wash", "wash", Type.ELECTRIC, Type.WATER, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 520, 50, 65, 107, 105, 107, 86, 45, 50, 154), - new PokemonForm("Frost", "frost", Type.ELECTRIC, Type.ICE, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 520, 50, 65, 107, 105, 107, 86, 45, 50, 154), - new PokemonForm("Fan", "fan", Type.ELECTRIC, Type.FLYING, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 520, 50, 65, 107, 105, 107, 86, 45, 50, 154), - new PokemonForm("Mow", "mow", Type.ELECTRIC, Type.GRASS, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 520, 50, 65, 107, 105, 107, 86, 45, 50, 154), + new PokemonForm("Normal", "", Type.ELECTRIC, Type.GHOST, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 440, 50, 50, 77, 95, 77, 91, 45, 50, 154, false, null, true), + new PokemonForm("Heat", "heat", Type.ELECTRIC, Type.FIRE, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 520, 50, 65, 107, 105, 107, 86, 45, 50, 154, false, null, true), + new PokemonForm("Wash", "wash", Type.ELECTRIC, Type.WATER, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 520, 50, 65, 107, 105, 107, 86, 45, 50, 154, false, null, true), + new PokemonForm("Frost", "frost", Type.ELECTRIC, Type.ICE, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 520, 50, 65, 107, 105, 107, 86, 45, 50, 154, false, null, true), + new PokemonForm("Fan", "fan", Type.ELECTRIC, Type.FLYING, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 520, 50, 65, 107, 105, 107, 86, 45, 50, 154, false, null, true), + new PokemonForm("Mow", "mow", Type.ELECTRIC, Type.GRASS, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 520, 50, 65, 107, 105, 107, 86, 45, 50, 154, false, null, true), ), new PokemonSpecies(Species.UXIE, 4, true, false, false, "Knowledge Pokémon", Type.PSYCHIC, null, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 580, 75, 75, 130, 75, 130, 95, 3, 140, 290, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.MESPRIT, 4, true, false, false, "Emotion Pokémon", Type.PSYCHIC, null, 0.3, 0.3, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 580, 80, 105, 105, 105, 105, 80, 3, 140, 290, GrowthRate.SLOW, null, false), @@ -1574,7 +1572,7 @@ export function initSpecies() { new PokemonSpecies(Species.HEATRAN, 4, true, false, false, "Lava Dome Pokémon", Type.FIRE, Type.STEEL, 1.7, 430, Abilities.FLASH_FIRE, Abilities.NONE, Abilities.FLAME_BODY, 600, 91, 90, 106, 130, 106, 77, 3, 100, 300, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.REGIGIGAS, 4, true, false, false, "Colossal Pokémon", Type.NORMAL, null, 3.7, 420, Abilities.SLOW_START, Abilities.NONE, Abilities.NORMALIZE, 670, 110, 160, 110, 80, 110, 100, 3, 0, 335, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.GIRATINA, 4, false, true, false, "Renegade Pokémon", Type.GHOST, Type.DRAGON, 4.5, 750, Abilities.PRESSURE, Abilities.NONE, Abilities.TELEPATHY, 680, 150, 100, 120, 100, 120, 90, 3, 0, 340, GrowthRate.SLOW, null, false, true, - new PokemonForm("Altered Forme", "altered", Type.GHOST, Type.DRAGON, 4.5, 750, Abilities.PRESSURE, Abilities.NONE, Abilities.TELEPATHY, 680, 150, 100, 120, 100, 120, 90, 3, 0, 340), + new PokemonForm("Altered Forme", "altered", Type.GHOST, Type.DRAGON, 4.5, 750, Abilities.PRESSURE, Abilities.NONE, Abilities.TELEPATHY, 680, 150, 100, 120, 100, 120, 90, 3, 0, 340, false, null, true), new PokemonForm("Origin Forme", "origin", Type.GHOST, Type.DRAGON, 6.9, 650, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 680, 150, 120, 100, 120, 100, 90, 3, 0, 340), ), new PokemonSpecies(Species.CRESSELIA, 4, true, false, false, "Lunar Pokémon", Type.PSYCHIC, null, 1.5, 85.6, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 580, 120, 70, 110, 75, 120, 85, 3, 100, 300, GrowthRate.SLOW, 0, false), @@ -1582,7 +1580,7 @@ export function initSpecies() { new PokemonSpecies(Species.MANAPHY, 4, false, false, true, "Seafaring Pokémon", Type.WATER, null, 0.3, 1.4, Abilities.HYDRATION, Abilities.NONE, Abilities.NONE, 600, 100, 100, 100, 100, 100, 100, 3, 70, 270, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.DARKRAI, 4, false, false, true, "Pitch-Black Pokémon", Type.DARK, null, 1.5, 50.5, Abilities.BAD_DREAMS, Abilities.NONE, Abilities.NONE, 600, 70, 90, 90, 135, 90, 125, 3, 0, 270, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.SHAYMIN, 4, false, false, true, "Gratitude Pokémon", Type.GRASS, null, 0.2, 2.1, Abilities.NATURAL_CURE, Abilities.NONE, Abilities.NONE, 600, 100, 100, 100, 100, 100, 100, 45, 100, 270, GrowthRate.MEDIUM_SLOW, null, false, true, - new PokemonForm("Land Forme", "land", Type.GRASS, null, 0.2, 2.1, Abilities.NATURAL_CURE, Abilities.NONE, Abilities.NONE, 600, 100, 100, 100, 100, 100, 100, 45, 100, 270), + new PokemonForm("Land Forme", "land", Type.GRASS, null, 0.2, 2.1, Abilities.NATURAL_CURE, Abilities.NONE, Abilities.NONE, 600, 100, 100, 100, 100, 100, 100, 45, 100, 270, false, null, true), new PokemonForm("Sky Forme", "sky", Type.GRASS, Type.FLYING, 0.4, 5.2, Abilities.SERENE_GRACE, Abilities.NONE, Abilities.NONE, 600, 100, 103, 75, 120, 75, 127, 45, 100, 270), ), new PokemonSpecies(Species.ARCEUS, 4, false, false, true, "Alpha Pokémon", Type.NORMAL, null, 3.2, 320, Abilities.MULTITYPE, Abilities.NONE, Abilities.NONE, 720, 120, 120, 120, 120, 120, 120, 3, 0, 324, GrowthRate.SLOW, null, false, true, @@ -1666,9 +1664,9 @@ export function initSpecies() { new PokemonSpecies(Species.PETILIL, 5, false, false, false, "Bulb Pokémon", Type.GRASS, null, 0.5, 6.6, Abilities.CHLOROPHYLL, Abilities.OWN_TEMPO, Abilities.LEAF_GUARD, 280, 45, 35, 50, 70, 50, 30, 190, 50, 56, GrowthRate.MEDIUM_FAST, 0, false), new PokemonSpecies(Species.LILLIGANT, 5, false, false, false, "Flowering Pokémon", Type.GRASS, null, 1.1, 16.3, Abilities.CHLOROPHYLL, Abilities.OWN_TEMPO, Abilities.LEAF_GUARD, 480, 70, 60, 75, 110, 75, 90, 75, 50, 168, GrowthRate.MEDIUM_FAST, 0, false), new PokemonSpecies(Species.BASCULIN, 5, false, false, false, "Hostile Pokémon", Type.WATER, null, 1, 18, Abilities.RECKLESS, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 460, 70, 92, 65, 80, 55, 98, 25, 50, 161, GrowthRate.MEDIUM_FAST, 50, false, false, - new PokemonForm("Red-Striped Form", "red-striped", Type.WATER, null, 1, 18, Abilities.RECKLESS, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 460, 70, 92, 65, 80, 55, 98, 25, 50, 161), - new PokemonForm("Blue-Striped Form", "blue-striped", Type.WATER, null, 1, 18, Abilities.ROCK_HEAD, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 460, 70, 92, 65, 80, 55, 98, 25, 50, 161), - new PokemonForm("White-Striped Form", "white-striped", Type.WATER, null, 1, 18, Abilities.RATTLED, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 460, 70, 92, 65, 80, 55, 98, 25, 50, 161), + new PokemonForm("Red-Striped Form", "red-striped", Type.WATER, null, 1, 18, Abilities.RECKLESS, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 460, 70, 92, 65, 80, 55, 98, 25, 50, 161, false, null, true), + new PokemonForm("Blue-Striped Form", "blue-striped", Type.WATER, null, 1, 18, Abilities.ROCK_HEAD, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 460, 70, 92, 65, 80, 55, 98, 25, 50, 161, false, null, true), + new PokemonForm("White-Striped Form", "white-striped", Type.WATER, null, 1, 18, Abilities.RATTLED, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 460, 70, 92, 65, 80, 55, 98, 25, 50, 161, false, null, true), ), new PokemonSpecies(Species.SANDILE, 5, false, false, false, "Desert Croc Pokémon", Type.GROUND, Type.DARK, 0.7, 15.2, Abilities.INTIMIDATE, Abilities.MOXIE, Abilities.ANGER_POINT, 292, 50, 72, 35, 35, 35, 65, 180, 50, 58, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.KROKOROK, 5, false, false, false, "Desert Croc Pokémon", Type.GROUND, Type.DARK, 1, 33.4, Abilities.INTIMIDATE, Abilities.MOXIE, Abilities.ANGER_POINT, 351, 60, 82, 45, 45, 45, 74, 90, 50, 123, GrowthRate.MEDIUM_SLOW, 50, false), @@ -1711,10 +1709,10 @@ export function initSpecies() { new PokemonSpecies(Species.VANILLISH, 5, false, false, false, "Icy Snow Pokémon", Type.ICE, null, 1.1, 41, Abilities.ICE_BODY, Abilities.SNOW_CLOAK, Abilities.WEAK_ARMOR, 395, 51, 65, 65, 80, 75, 59, 120, 50, 138, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.VANILLUXE, 5, false, false, false, "Snowstorm Pokémon", Type.ICE, null, 1.3, 57.5, Abilities.ICE_BODY, Abilities.SNOW_WARNING, Abilities.WEAK_ARMOR, 535, 71, 95, 85, 110, 95, 79, 45, 50, 268, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.DEERLING, 5, false, false, false, "Season Pokémon", Type.NORMAL, Type.GRASS, 0.6, 19.5, Abilities.CHLOROPHYLL, Abilities.SAP_SIPPER, Abilities.SERENE_GRACE, 335, 60, 60, 50, 40, 50, 75, 190, 70, 67, GrowthRate.MEDIUM_FAST, 50, false, true, - new PokemonForm("Spring Form", "spring", Type.NORMAL, Type.GRASS, 0.6, 19.5, Abilities.CHLOROPHYLL, Abilities.SAP_SIPPER, Abilities.SERENE_GRACE, 335, 60, 60, 50, 40, 50, 75, 190, 70, 67), - new PokemonForm("Summer Form", "summer", Type.NORMAL, Type.GRASS, 0.6, 19.5, Abilities.CHLOROPHYLL, Abilities.SAP_SIPPER, Abilities.SERENE_GRACE, 335, 60, 60, 50, 40, 50, 75, 190, 70, 67), - new PokemonForm("Autumn Form", "autumn", Type.NORMAL, Type.GRASS, 0.6, 19.5, Abilities.CHLOROPHYLL, Abilities.SAP_SIPPER, Abilities.SERENE_GRACE, 335, 60, 60, 50, 40, 50, 75, 190, 70, 67), - new PokemonForm("Winter Form", "winter", Type.NORMAL, Type.GRASS, 0.6, 19.5, Abilities.CHLOROPHYLL, Abilities.SAP_SIPPER, Abilities.SERENE_GRACE, 335, 60, 60, 50, 40, 50, 75, 190, 70, 67), + new PokemonForm("Spring Form", "spring", Type.NORMAL, Type.GRASS, 0.6, 19.5, Abilities.CHLOROPHYLL, Abilities.SAP_SIPPER, Abilities.SERENE_GRACE, 335, 60, 60, 50, 40, 50, 75, 190, 70, 67, false, null, true), + new PokemonForm("Summer Form", "summer", Type.NORMAL, Type.GRASS, 0.6, 19.5, Abilities.CHLOROPHYLL, Abilities.SAP_SIPPER, Abilities.SERENE_GRACE, 335, 60, 60, 50, 40, 50, 75, 190, 70, 67, false, null, true), + new PokemonForm("Autumn Form", "autumn", Type.NORMAL, Type.GRASS, 0.6, 19.5, Abilities.CHLOROPHYLL, Abilities.SAP_SIPPER, Abilities.SERENE_GRACE, 335, 60, 60, 50, 40, 50, 75, 190, 70, 67, false, null, true), + new PokemonForm("Winter Form", "winter", Type.NORMAL, Type.GRASS, 0.6, 19.5, Abilities.CHLOROPHYLL, Abilities.SAP_SIPPER, Abilities.SERENE_GRACE, 335, 60, 60, 50, 40, 50, 75, 190, 70, 67, false, null, true), ), new PokemonSpecies(Species.SAWSBUCK, 5, false, false, false, "Season Pokémon", Type.NORMAL, Type.GRASS, 1.9, 92.5, Abilities.CHLOROPHYLL, Abilities.SAP_SIPPER, Abilities.SERENE_GRACE, 475, 80, 100, 70, 60, 70, 95, 75, 70, 166, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Spring Form", "spring", Type.NORMAL, Type.GRASS, 1.9, 92.5, Abilities.CHLOROPHYLL, Abilities.SAP_SIPPER, Abilities.SERENE_GRACE, 475, 80, 100, 70, 60, 70, 95, 75, 70, 166), @@ -1777,17 +1775,17 @@ export function initSpecies() { new PokemonSpecies(Species.TERRAKION, 5, true, false, false, "Cavern Pokémon", Type.ROCK, Type.FIGHTING, 1.9, 260, Abilities.JUSTIFIED, Abilities.NONE, Abilities.NONE, 580, 91, 129, 90, 72, 90, 108, 3, 35, 290, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.VIRIZION, 5, true, false, false, "Grassland Pokémon", Type.GRASS, Type.FIGHTING, 2, 200, Abilities.JUSTIFIED, Abilities.NONE, Abilities.NONE, 580, 91, 90, 72, 90, 129, 108, 3, 35, 290, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.TORNADUS, 5, true, false, false, "Cyclone Pokémon", Type.FLYING, null, 1.5, 63, Abilities.PRANKSTER, Abilities.NONE, Abilities.DEFIANT, 580, 79, 115, 70, 125, 80, 111, 3, 90, 290, GrowthRate.SLOW, 100, false, true, - new PokemonForm("Incarnate Forme", "incarnate", Type.FLYING, null, 1.5, 63, Abilities.PRANKSTER, Abilities.NONE, Abilities.DEFIANT, 580, 79, 115, 70, 125, 80, 111, 3, 90, 290), + new PokemonForm("Incarnate Forme", "incarnate", Type.FLYING, null, 1.5, 63, Abilities.PRANKSTER, Abilities.NONE, Abilities.DEFIANT, 580, 79, 115, 70, 125, 80, 111, 3, 90, 290, false, null, true), new PokemonForm("Therian Forme", "therian", Type.FLYING, null, 1.4, 63, Abilities.REGENERATOR, Abilities.NONE, Abilities.REGENERATOR, 580, 79, 100, 80, 110, 90, 121, 3, 90, 290), ), new PokemonSpecies(Species.THUNDURUS, 5, true, false, false, "Bolt Strike Pokémon", Type.ELECTRIC, Type.FLYING, 1.5, 61, Abilities.PRANKSTER, Abilities.NONE, Abilities.DEFIANT, 580, 79, 115, 70, 125, 80, 111, 3, 90, 290, GrowthRate.SLOW, 100, false, true, - new PokemonForm("Incarnate Forme", "incarnate", Type.ELECTRIC, Type.FLYING, 1.5, 61, Abilities.PRANKSTER, Abilities.NONE, Abilities.DEFIANT, 580, 79, 115, 70, 125, 80, 111, 3, 90, 290), + new PokemonForm("Incarnate Forme", "incarnate", Type.ELECTRIC, Type.FLYING, 1.5, 61, Abilities.PRANKSTER, Abilities.NONE, Abilities.DEFIANT, 580, 79, 115, 70, 125, 80, 111, 3, 90, 290, false, null, true), new PokemonForm("Therian Forme", "therian", Type.ELECTRIC, Type.FLYING, 3, 61, Abilities.VOLT_ABSORB, Abilities.NONE, Abilities.VOLT_ABSORB, 580, 79, 105, 70, 145, 80, 101, 3, 90, 290), ), new PokemonSpecies(Species.RESHIRAM, 5, false, true, false, "Vast White Pokémon", Type.DRAGON, Type.FIRE, 3.2, 330, Abilities.TURBOBLAZE, Abilities.NONE, Abilities.NONE, 680, 100, 120, 100, 150, 120, 90, 3, 0, 340, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.ZEKROM, 5, false, true, false, "Deep Black Pokémon", Type.DRAGON, Type.ELECTRIC, 2.9, 345, Abilities.TERAVOLT, Abilities.NONE, Abilities.NONE, 680, 100, 150, 120, 120, 100, 90, 3, 0, 340, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.LANDORUS, 5, true, false, false, "Abundance Pokémon", Type.GROUND, Type.FLYING, 1.5, 68, Abilities.SAND_FORCE, Abilities.NONE, Abilities.SHEER_FORCE, 600, 89, 125, 90, 115, 80, 101, 3, 90, 300, GrowthRate.SLOW, 100, false, true, - new PokemonForm("Incarnate Forme", "incarnate", Type.GROUND, Type.FLYING, 1.5, 68, Abilities.SAND_FORCE, Abilities.NONE, Abilities.SHEER_FORCE, 600, 89, 125, 90, 115, 80, 101, 3, 90, 300), + new PokemonForm("Incarnate Forme", "incarnate", Type.GROUND, Type.FLYING, 1.5, 68, Abilities.SAND_FORCE, Abilities.NONE, Abilities.SHEER_FORCE, 600, 89, 125, 90, 115, 80, 101, 3, 90, 300, false, null, true), new PokemonForm("Therian Forme", "therian", Type.GROUND, Type.FLYING, 1.3, 68, Abilities.INTIMIDATE, Abilities.NONE, Abilities.INTIMIDATE, 600, 89, 145, 90, 105, 80, 91, 3, 90, 300), ), new PokemonSpecies(Species.KYUREM, 5, false, true, false, "Boundary Pokémon", Type.DRAGON, Type.ICE, 3, 325, Abilities.PRESSURE, Abilities.NONE, Abilities.NONE, 660, 125, 130, 90, 130, 90, 95, 3, 0, 330, GrowthRate.SLOW, null, false, true, @@ -1800,7 +1798,7 @@ export function initSpecies() { new PokemonForm("Resolute", "resolute", Type.WATER, Type.FIGHTING, 1.4, 48.5, Abilities.JUSTIFIED, Abilities.NONE, Abilities.NONE, 580, 91, 72, 90, 129, 90, 108, 3, 35, 290), ), new PokemonSpecies(Species.MELOETTA, 5, false, false, true, "Melody Pokémon", Type.NORMAL, Type.PSYCHIC, 0.6, 6.5, Abilities.SERENE_GRACE, Abilities.NONE, Abilities.NONE, 600, 100, 77, 77, 128, 128, 90, 3, 100, 270, GrowthRate.SLOW, 0, false, true, - new PokemonForm("Aria Forme", "aria", Type.NORMAL, Type.PSYCHIC, 0.6, 6.5, Abilities.SERENE_GRACE, Abilities.NONE, Abilities.NONE, 600, 100, 77, 77, 128, 128, 90, 3, 100, 270), + new PokemonForm("Aria Forme", "aria", Type.NORMAL, Type.PSYCHIC, 0.6, 6.5, Abilities.SERENE_GRACE, Abilities.NONE, Abilities.NONE, 600, 100, 77, 77, 128, 128, 90, 3, 100, 270, false, null, true), new PokemonForm("Pirouette Forme", "pirouette", Type.NORMAL, Type.FIGHTING, 0.6, 6.5, Abilities.SERENE_GRACE, Abilities.NONE, Abilities.NONE, 600, 100, 128, 90, 77, 77, 128, 3, 100, 270), ), new PokemonSpecies(Species.GENESECT, 5, false, false, true, "Paleozoic Pokémon", Type.BUG, Type.STEEL, 1.5, 82.5, Abilities.DOWNLOAD, Abilities.NONE, Abilities.NONE, 600, 71, 120, 95, 120, 95, 99, 3, 0, 300, GrowthRate.SLOW, null, false, true, @@ -1817,8 +1815,8 @@ export function initSpecies() { new PokemonSpecies(Species.BRAIXEN, 6, false, false, false, "Fox Pokémon", Type.FIRE, null, 1, 14.5, Abilities.BLAZE, Abilities.NONE, Abilities.MAGICIAN, 409, 59, 59, 58, 90, 70, 73, 45, 70, 143, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.DELPHOX, 6, false, false, false, "Fox Pokémon", Type.FIRE, Type.PSYCHIC, 1.5, 39, Abilities.BLAZE, Abilities.NONE, Abilities.MAGICIAN, 534, 75, 69, 72, 114, 100, 104, 45, 70, 240, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.FROAKIE, 6, false, false, false, "Bubble Frog Pokémon", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63, GrowthRate.MEDIUM_SLOW, 87.5, false, false, - new PokemonForm("Normal", "", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63), - new PokemonForm("Battle Bond", "battle-bond", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63, false, ""), + new PokemonForm("Normal", "", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63, false, null, true), + new PokemonForm("Battle Bond", "battle-bond", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63, false, "", true), ), new PokemonSpecies(Species.FROGADIER, 6, false, false, false, "Bubble Frog Pokémon", Type.WATER, null, 0.6, 10.9, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 405, 54, 63, 52, 83, 56, 97, 45, 70, 142, GrowthRate.MEDIUM_SLOW, 87.5, false, false, new PokemonForm("Normal", "", Type.WATER, null, 0.6, 10.9, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 405, 54, 63, 52, 83, 56, 97, 45, 70, 142), @@ -1835,26 +1833,26 @@ export function initSpecies() { new PokemonSpecies(Species.FLETCHINDER, 6, false, false, false, "Ember Pokémon", Type.FIRE, Type.FLYING, 0.7, 16, Abilities.FLAME_BODY, Abilities.NONE, Abilities.GALE_WINGS, 382, 62, 73, 55, 56, 52, 84, 120, 50, 134, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.TALONFLAME, 6, false, false, false, "Scorching Pokémon", Type.FIRE, Type.FLYING, 1.2, 24.5, Abilities.FLAME_BODY, Abilities.NONE, Abilities.GALE_WINGS, 499, 78, 81, 71, 74, 69, 126, 45, 50, 175, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.SCATTERBUG, 6, false, false, false, "Scatterdust Pokémon", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, GrowthRate.MEDIUM_FAST, 50, false, false, - new PokemonForm("Meadow Pattern", "meadow", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Icy Snow Pattern", "icy-snow", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Polar Pattern", "polar", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Tundra Pattern", "tundra", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Continental Pattern", "continental", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Garden Pattern", "garden", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Elegant Pattern", "elegant", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Modern Pattern", "modern", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Marine Pattern", "marine", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Archipelago Pattern", "archipelago", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("High Plains Pattern", "high-plains", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Sandstorm Pattern", "sandstorm", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("River Pattern", "river", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Monsoon Pattern", "monsoon", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Savanna Pattern", "savanna", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Sun Pattern", "sun", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Ocean Pattern", "ocean", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Jungle Pattern", "jungle", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Fancy Pattern", "fancy", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), - new PokemonForm("Poké Ball Pattern", "poke-ball", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), + new PokemonForm("Meadow Pattern", "meadow", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Icy Snow Pattern", "icy-snow", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Polar Pattern", "polar", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Tundra Pattern", "tundra", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Continental Pattern", "continental", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Garden Pattern", "garden", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Elegant Pattern", "elegant", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Modern Pattern", "modern", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Marine Pattern", "marine", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Archipelago Pattern", "archipelago", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("High Plains Pattern", "high-plains", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Sandstorm Pattern", "sandstorm", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("River Pattern", "river", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Monsoon Pattern", "monsoon", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Savanna Pattern", "savanna", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Sun Pattern", "sun", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Ocean Pattern", "ocean", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Jungle Pattern", "jungle", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Fancy Pattern", "fancy", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), + new PokemonForm("Poké Ball Pattern", "poke-ball", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, "", true), ), new PokemonSpecies(Species.SPEWPA, 6, false, false, false, "Scatterdust Pokémon", Type.BUG, null, 0.3, 8.4, Abilities.SHED_SKIN, Abilities.SHED_SKIN, Abilities.FRIEND_GUARD, 213, 45, 22, 60, 27, 30, 29, 120, 70, 75, GrowthRate.MEDIUM_FAST, 50, false, false, new PokemonForm("Meadow Pattern", "meadow", Type.BUG, null, 0.3, 8.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.FRIEND_GUARD, 213, 45, 22, 60, 27, 30, 29, 120, 70, 75, false, ""), @@ -1903,11 +1901,11 @@ export function initSpecies() { new PokemonSpecies(Species.LITLEO, 6, false, false, false, "Lion Cub Pokémon", Type.FIRE, Type.NORMAL, 0.6, 13.5, Abilities.RIVALRY, Abilities.UNNERVE, Abilities.MOXIE, 369, 62, 50, 58, 73, 54, 72, 220, 70, 74, GrowthRate.MEDIUM_SLOW, 12.5, false), new PokemonSpecies(Species.PYROAR, 6, false, false, false, "Royal Pokémon", Type.FIRE, Type.NORMAL, 1.5, 81.5, Abilities.RIVALRY, Abilities.UNNERVE, Abilities.MOXIE, 507, 86, 68, 72, 109, 66, 106, 65, 70, 177, GrowthRate.MEDIUM_SLOW, 12.5, true), new PokemonSpecies(Species.FLABEBE, 6, false, false, false, "Single Bloom Pokémon", Type.FAIRY, null, 0.1, 0.1, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 303, 44, 38, 39, 61, 79, 42, 225, 70, 61, GrowthRate.MEDIUM_FAST, 0, false, false, - new PokemonForm("Red Flower", "red", Type.FAIRY, null, 0.1, 0.1, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 303, 44, 38, 39, 61, 79, 42, 225, 70, 61), - new PokemonForm("Yellow Flower", "yellow", Type.FAIRY, null, 0.1, 0.1, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 303, 44, 38, 39, 61, 79, 42, 225, 70, 61), - new PokemonForm("Orange Flower", "orange", Type.FAIRY, null, 0.1, 0.1, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 303, 44, 38, 39, 61, 79, 42, 225, 70, 61), - new PokemonForm("Blue Flower", "blue", Type.FAIRY, null, 0.1, 0.1, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 303, 44, 38, 39, 61, 79, 42, 225, 70, 61), - new PokemonForm("White Flower", "white", Type.FAIRY, null, 0.1, 0.1, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 303, 44, 38, 39, 61, 79, 42, 225, 70, 61), + new PokemonForm("Red Flower", "red", Type.FAIRY, null, 0.1, 0.1, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 303, 44, 38, 39, 61, 79, 42, 225, 70, 61, false, null, true), + new PokemonForm("Yellow Flower", "yellow", Type.FAIRY, null, 0.1, 0.1, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 303, 44, 38, 39, 61, 79, 42, 225, 70, 61, false, null, true), + new PokemonForm("Orange Flower", "orange", Type.FAIRY, null, 0.1, 0.1, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 303, 44, 38, 39, 61, 79, 42, 225, 70, 61, false, null, true), + new PokemonForm("Blue Flower", "blue", Type.FAIRY, null, 0.1, 0.1, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 303, 44, 38, 39, 61, 79, 42, 225, 70, 61, false, null, true), + new PokemonForm("White Flower", "white", Type.FAIRY, null, 0.1, 0.1, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 303, 44, 38, 39, 61, 79, 42, 225, 70, 61, false, null, true), ), new PokemonSpecies(Species.FLOETTE, 6, false, false, false, "Single Bloom Pokémon", Type.FAIRY, null, 0.2, 0.9, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 371, 54, 45, 47, 75, 98, 52, 120, 70, 130, GrowthRate.MEDIUM_FAST, 0, false, false, new PokemonForm("Red Flower", "red", Type.FAIRY, null, 0.2, 0.9, Abilities.FLOWER_VEIL, Abilities.NONE, Abilities.SYMBIOSIS, 371, 54, 45, 47, 75, 98, 52, 120, 70, 130), @@ -1928,27 +1926,27 @@ export function initSpecies() { new PokemonSpecies(Species.PANCHAM, 6, false, false, false, "Playful Pokémon", Type.FIGHTING, null, 0.6, 8, Abilities.IRON_FIST, Abilities.MOLD_BREAKER, Abilities.SCRAPPY, 348, 67, 82, 62, 46, 48, 43, 220, 50, 70, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.PANGORO, 6, false, false, false, "Daunting Pokémon", Type.FIGHTING, Type.DARK, 2.1, 136, Abilities.IRON_FIST, Abilities.MOLD_BREAKER, Abilities.SCRAPPY, 495, 95, 124, 78, 69, 71, 58, 65, 50, 173, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.FURFROU, 6, false, false, false, "Poodle Pokémon", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, GrowthRate.MEDIUM_FAST, 50, false, true, - new PokemonForm("Natural Form", "", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165), - new PokemonForm("Heart Trim", "heart", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false), - new PokemonForm("Star Trim", "star", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false), - new PokemonForm("Diamond Trim", "diamond", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false), - new PokemonForm("Debutante Trim", "debutante", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false), - new PokemonForm("Matron Trim", "matron", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false), - new PokemonForm("Dandy Trim", "dandy", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false), - new PokemonForm("La Reine Trim", "la-reine", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false), - new PokemonForm("Kabuki Trim", "kabuki", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false), - new PokemonForm("Pharaoh Trim", "pharaoh", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false), + new PokemonForm("Natural Form", "", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, null, true), + new PokemonForm("Heart Trim", "heart", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, null, true), + new PokemonForm("Star Trim", "star", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, null, true), + new PokemonForm("Diamond Trim", "diamond", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, null, true), + new PokemonForm("Debutante Trim", "debutante", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, null, true), + new PokemonForm("Matron Trim", "matron", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, null, true), + new PokemonForm("Dandy Trim", "dandy", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, null, true), + new PokemonForm("La Reine Trim", "la-reine", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, null, true), + new PokemonForm("Kabuki Trim", "kabuki", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, null, true), + new PokemonForm("Pharaoh Trim", "pharaoh", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, null, true), ), new PokemonSpecies(Species.ESPURR, 6, false, false, false, "Restraint Pokémon", Type.PSYCHIC, null, 0.3, 3.5, Abilities.KEEN_EYE, Abilities.INFILTRATOR, Abilities.OWN_TEMPO, 355, 62, 48, 54, 63, 60, 68, 190, 50, 71, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.MEOWSTIC, 6, false, false, false, "Constraint Pokémon", Type.PSYCHIC, null, 0.6, 8.5, Abilities.KEEN_EYE, Abilities.INFILTRATOR, Abilities.PRANKSTER, 466, 74, 48, 76, 83, 81, 104, 75, 50, 163, GrowthRate.MEDIUM_FAST, 50, false, false, - new PokemonForm("Male", "male", Type.PSYCHIC, null, 0.6, 8.5, Abilities.KEEN_EYE, Abilities.INFILTRATOR, Abilities.PRANKSTER, 466, 74, 48, 76, 83, 81, 104, 75, 50, 163, false, ""), - new PokemonForm("Female", "female", Type.PSYCHIC, null, 0.6, 8.5, Abilities.KEEN_EYE, Abilities.INFILTRATOR, Abilities.COMPETITIVE, 466, 74, 48, 76, 83, 81, 104, 75, 50, 163, false), + new PokemonForm("Male", "male", Type.PSYCHIC, null, 0.6, 8.5, Abilities.KEEN_EYE, Abilities.INFILTRATOR, Abilities.PRANKSTER, 466, 74, 48, 76, 83, 81, 104, 75, 50, 163, false, "", true), + new PokemonForm("Female", "female", Type.PSYCHIC, null, 0.6, 8.5, Abilities.KEEN_EYE, Abilities.INFILTRATOR, Abilities.COMPETITIVE, 466, 74, 48, 76, 83, 81, 104, 75, 50, 163, false, null, true), ), new PokemonSpecies(Species.HONEDGE, 6, false, false, false, "Sword Pokémon", Type.STEEL, Type.GHOST, 0.8, 2, Abilities.NO_GUARD, Abilities.NONE, Abilities.NONE, 325, 45, 80, 100, 35, 37, 28, 180, 50, 65, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.DOUBLADE, 6, false, false, false, "Sword Pokémon", Type.STEEL, Type.GHOST, 0.8, 4.5, Abilities.NO_GUARD, Abilities.NONE, Abilities.NONE, 448, 59, 110, 150, 45, 49, 35, 90, 50, 157, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.AEGISLASH, 6, false, false, false, "Royal Sword Pokémon", Type.STEEL, Type.GHOST, 1.7, 53, Abilities.STANCE_CHANGE, Abilities.NONE, Abilities.NONE, 500, 60, 50, 140, 50, 140, 60, 45, 50, 250, GrowthRate.MEDIUM_FAST, 50, false, true, - new PokemonForm("Shield Forme", "shield", Type.STEEL, Type.GHOST, 1.7, 53, Abilities.STANCE_CHANGE, Abilities.NONE, Abilities.NONE, 500, 60, 50, 140, 50, 140, 60, 45, 50, 250, false, ""), - new PokemonForm("Blade Forme", "blade", Type.STEEL, Type.GHOST, 1.7, 53, Abilities.STANCE_CHANGE, Abilities.NONE, Abilities.NONE, 500, 60, 140, 50, 140, 50, 60, 45, 50, 250), + new PokemonForm("Shield Forme", "shield", Type.STEEL, Type.GHOST, 1.7, 53, Abilities.STANCE_CHANGE, Abilities.NONE, Abilities.NONE, 500, 60, 50, 140, 50, 140, 60, 45, 50, 250, false, "", true), + new PokemonForm("Blade Forme", "blade", Type.STEEL, Type.GHOST, 1.7, 53, Abilities.STANCE_CHANGE, Abilities.NONE, Abilities.NONE, 500, 60, 140, 50, 140, 50, 60, 45, 50, 250, false, null, true), ), new PokemonSpecies(Species.SPRITZEE, 6, false, false, false, "Perfume Pokémon", Type.FAIRY, null, 0.2, 0.5, Abilities.HEALER, Abilities.NONE, Abilities.AROMA_VEIL, 341, 78, 52, 60, 63, 65, 23, 200, 50, 68, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.AROMATISSE, 6, false, false, false, "Fragrance Pokémon", Type.FAIRY, null, 0.8, 15.5, Abilities.HEALER, Abilities.NONE, Abilities.AROMA_VEIL, 462, 101, 72, 72, 99, 89, 29, 140, 50, 162, GrowthRate.MEDIUM_FAST, 50, false), @@ -1979,10 +1977,10 @@ export function initSpecies() { new PokemonSpecies(Species.PHANTUMP, 6, false, false, false, "Stump Pokémon", Type.GHOST, Type.GRASS, 0.4, 7, Abilities.NATURAL_CURE, Abilities.FRISK, Abilities.HARVEST, 309, 43, 70, 48, 50, 60, 38, 120, 50, 62, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.TREVENANT, 6, false, false, false, "Elder Tree Pokémon", Type.GHOST, Type.GRASS, 1.5, 71, Abilities.NATURAL_CURE, Abilities.FRISK, Abilities.HARVEST, 474, 85, 110, 76, 65, 82, 56, 60, 50, 166, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.PUMPKABOO, 6, false, false, false, "Pumpkin Pokémon", Type.GHOST, Type.GRASS, 0.4, 5, Abilities.PICKUP, Abilities.FRISK, Abilities.INSOMNIA, 335, 49, 66, 70, 44, 55, 51, 120, 50, 67, GrowthRate.MEDIUM_FAST, 50, false, false, - new PokemonForm("Average Size", "", Type.GHOST, Type.GRASS, 0.4, 5, Abilities.PICKUP, Abilities.FRISK, Abilities.INSOMNIA, 335, 49, 66, 70, 44, 55, 51, 120, 50, 67), - new PokemonForm("Small Size", "small", Type.GHOST, Type.GRASS, 0.3, 3.5, Abilities.PICKUP, Abilities.FRISK, Abilities.INSOMNIA, 335, 44, 66, 70, 44, 55, 56, 120, 50, 67), - new PokemonForm("Large Size", "large", Type.GHOST, Type.GRASS, 0.5, 7.5, Abilities.PICKUP, Abilities.FRISK, Abilities.INSOMNIA, 335, 54, 66, 70, 44, 55, 46, 120, 50, 67), - new PokemonForm("Super Size", "super", Type.GHOST, Type.GRASS, 0.8, 15, Abilities.PICKUP, Abilities.FRISK, Abilities.INSOMNIA, 335, 59, 66, 70, 44, 55, 41, 120, 50, 67), + new PokemonForm("Average Size", "", Type.GHOST, Type.GRASS, 0.4, 5, Abilities.PICKUP, Abilities.FRISK, Abilities.INSOMNIA, 335, 49, 66, 70, 44, 55, 51, 120, 50, 67, false, null, true), + new PokemonForm("Small Size", "small", Type.GHOST, Type.GRASS, 0.3, 3.5, Abilities.PICKUP, Abilities.FRISK, Abilities.INSOMNIA, 335, 44, 66, 70, 44, 55, 56, 120, 50, 67, false, null, true), + new PokemonForm("Large Size", "large", Type.GHOST, Type.GRASS, 0.5, 7.5, Abilities.PICKUP, Abilities.FRISK, Abilities.INSOMNIA, 335, 54, 66, 70, 44, 55, 46, 120, 50, 67, false, null, true), + new PokemonForm("Super Size", "super", Type.GHOST, Type.GRASS, 0.8, 15, Abilities.PICKUP, Abilities.FRISK, Abilities.INSOMNIA, 335, 59, 66, 70, 44, 55, 41, 120, 50, 67, false, null, true), ), new PokemonSpecies(Species.GOURGEIST, 6, false, false, false, "Pumpkin Pokémon", Type.GHOST, Type.GRASS, 0.9, 12.5, Abilities.PICKUP, Abilities.FRISK, Abilities.INSOMNIA, 494, 65, 90, 122, 58, 75, 84, 60, 50, 173, GrowthRate.MEDIUM_FAST, 50, false, false, new PokemonForm("Average Size", "", Type.GHOST, Type.GRASS, 0.9, 12.5, Abilities.PICKUP, Abilities.FRISK, Abilities.INSOMNIA, 494, 65, 90, 122, 58, 75, 84, 60, 50, 173), @@ -1995,15 +1993,15 @@ export function initSpecies() { new PokemonSpecies(Species.NOIBAT, 6, false, false, false, "Sound Wave Pokémon", Type.FLYING, Type.DRAGON, 0.5, 8, Abilities.FRISK, Abilities.INFILTRATOR, Abilities.TELEPATHY, 245, 40, 30, 35, 45, 40, 55, 190, 50, 49, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.NOIVERN, 6, false, false, false, "Sound Wave Pokémon", Type.FLYING, Type.DRAGON, 1.5, 85, Abilities.FRISK, Abilities.INFILTRATOR, Abilities.TELEPATHY, 535, 85, 70, 80, 97, 80, 123, 45, 50, 187, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.XERNEAS, 6, false, true, false, "Life Pokémon", Type.FAIRY, null, 3, 215, Abilities.FAIRY_AURA, Abilities.NONE, Abilities.NONE, 680, 126, 131, 95, 131, 98, 99, 45, 0, 340, GrowthRate.SLOW, null, false, true, - new PokemonForm("Neutral Mode", "neutral", Type.FAIRY, null, 3, 215, Abilities.FAIRY_AURA, Abilities.NONE, Abilities.NONE, 680, 126, 131, 95, 131, 98, 99, 45, 0, 340), + new PokemonForm("Neutral Mode", "neutral", Type.FAIRY, null, 3, 215, Abilities.FAIRY_AURA, Abilities.NONE, Abilities.NONE, 680, 126, 131, 95, 131, 98, 99, 45, 0, 340, false, null, true), new PokemonForm("Active Mode", "active", Type.FAIRY, null, 3, 215, Abilities.FAIRY_AURA, Abilities.NONE, Abilities.NONE, 680, 126, 131, 95, 131, 98, 99, 45, 0, 340) ), new PokemonSpecies(Species.YVELTAL, 6, false, true, false, "Destruction Pokémon", Type.DARK, Type.FLYING, 5.8, 203, Abilities.DARK_AURA, Abilities.NONE, Abilities.NONE, 680, 126, 131, 95, 131, 98, 99, 45, 0, 340, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.ZYGARDE, 6, false, true, false, "Order Pokémon", Type.DRAGON, Type.GROUND, 5, 305, Abilities.AURA_BREAK, Abilities.NONE, Abilities.NONE, 600, 108, 100, 121, 81, 95, 95, 3, 0, 300, GrowthRate.SLOW, null, false, false, - new PokemonForm("50% Forme", "50", Type.DRAGON, Type.GROUND, 5, 305, Abilities.AURA_BREAK, Abilities.NONE, Abilities.NONE, 600, 108, 100, 121, 81, 95, 95, 3, 0, 300, false, ""), - new PokemonForm("10% Forme", "10", Type.DRAGON, Type.GROUND, 1.2, 33.5, Abilities.AURA_BREAK, Abilities.NONE, Abilities.NONE, 486, 54, 100, 71, 61, 85, 115, 3, 0, 300), - new PokemonForm("50% Forme Power Construct", "50-pc", Type.DRAGON, Type.GROUND, 5, 305, Abilities.POWER_CONSTRUCT, Abilities.NONE, Abilities.NONE, 600, 108, 100, 121, 81, 95, 95, 3, 0, 300, false, ""), - new PokemonForm("10% Forme Power Construct", "10-pc", Type.DRAGON, Type.GROUND, 1.2, 33.5, Abilities.POWER_CONSTRUCT, Abilities.NONE, Abilities.NONE, 486, 54, 100, 71, 61, 85, 115, 3, 0, 300, false, "10"), + new PokemonForm("50% Forme", "50", Type.DRAGON, Type.GROUND, 5, 305, Abilities.AURA_BREAK, Abilities.NONE, Abilities.NONE, 600, 108, 100, 121, 81, 95, 95, 3, 0, 300, false, "", true), + new PokemonForm("10% Forme", "10", Type.DRAGON, Type.GROUND, 1.2, 33.5, Abilities.AURA_BREAK, Abilities.NONE, Abilities.NONE, 486, 54, 100, 71, 61, 85, 115, 3, 0, 300, false, null, true), + new PokemonForm("50% Forme Power Construct", "50-pc", Type.DRAGON, Type.GROUND, 5, 305, Abilities.POWER_CONSTRUCT, Abilities.NONE, Abilities.NONE, 600, 108, 100, 121, 81, 95, 95, 3, 0, 300, false, "", true), + new PokemonForm("10% Forme Power Construct", "10-pc", Type.DRAGON, Type.GROUND, 1.2, 33.5, Abilities.POWER_CONSTRUCT, Abilities.NONE, Abilities.NONE, 486, 54, 100, 71, 61, 85, 115, 3, 0, 300, false, "10", true), new PokemonForm("Complete Forme", "complete", Type.DRAGON, Type.GROUND, 4.5, 610, Abilities.POWER_CONSTRUCT, Abilities.NONE, Abilities.NONE, 708, 216, 100, 121, 91, 95, 85, 3, 0, 300), ), new PokemonSpecies(Species.DIANCIE, 6, false, false, true, "Jewel Pokémon", Type.ROCK, Type.FAIRY, 0.7, 8.8, Abilities.CLEAR_BODY, Abilities.NONE, Abilities.NONE, 600, 50, 100, 150, 100, 150, 50, 3, 50, 300, GrowthRate.SLOW, null, false, true, @@ -2035,16 +2033,16 @@ export function initSpecies() { new PokemonSpecies(Species.CRABRAWLER, 7, false, false, false, "Boxing Pokémon", Type.FIGHTING, null, 0.6, 7, Abilities.HYPER_CUTTER, Abilities.IRON_FIST, Abilities.ANGER_POINT, 338, 47, 82, 57, 42, 47, 63, 225, 70, 68, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.CRABOMINABLE, 7, false, false, false, "Woolly Crab Pokémon", Type.FIGHTING, Type.ICE, 1.7, 180, Abilities.HYPER_CUTTER, Abilities.IRON_FIST, Abilities.ANGER_POINT, 478, 97, 132, 77, 62, 67, 43, 60, 70, 167, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.ORICORIO, 7, false, false, false, "Dancing Pokémon", Type.FIRE, Type.FLYING, 0.6, 3.4, Abilities.DANCER, Abilities.NONE, Abilities.NONE, 476, 75, 70, 70, 98, 70, 93, 45, 70, 167, GrowthRate.MEDIUM_FAST, 25, false, false, - new PokemonForm("Baile Style", "baile", Type.FIRE, Type.FLYING, 0.6, 3.4, Abilities.DANCER, Abilities.NONE, Abilities.NONE, 476, 75, 70, 70, 98, 70, 93, 45, 70, 167, false, ""), - new PokemonForm("Pom-Pom Style", "pompom", Type.ELECTRIC, Type.FLYING, 0.6, 3.4, Abilities.DANCER, Abilities.NONE, Abilities.NONE, 476, 75, 70, 70, 98, 70, 93, 45, 70, 167), - new PokemonForm("Pau Style", "pau", Type.PSYCHIC, Type.FLYING, 0.6, 3.4, Abilities.DANCER, Abilities.NONE, Abilities.NONE, 476, 75, 70, 70, 98, 70, 93, 45, 70, 167), - new PokemonForm("Sensu Style", "sensu", Type.GHOST, Type.FLYING, 0.6, 3.4, Abilities.DANCER, Abilities.NONE, Abilities.NONE, 476, 75, 70, 70, 98, 70, 93, 45, 70, 167), + new PokemonForm("Baile Style", "baile", Type.FIRE, Type.FLYING, 0.6, 3.4, Abilities.DANCER, Abilities.NONE, Abilities.NONE, 476, 75, 70, 70, 98, 70, 93, 45, 70, 167, false, "", true), + new PokemonForm("Pom-Pom Style", "pompom", Type.ELECTRIC, Type.FLYING, 0.6, 3.4, Abilities.DANCER, Abilities.NONE, Abilities.NONE, 476, 75, 70, 70, 98, 70, 93, 45, 70, 167, false, null, true), + new PokemonForm("Pau Style", "pau", Type.PSYCHIC, Type.FLYING, 0.6, 3.4, Abilities.DANCER, Abilities.NONE, Abilities.NONE, 476, 75, 70, 70, 98, 70, 93, 45, 70, 167, false, null, true), + new PokemonForm("Sensu Style", "sensu", Type.GHOST, Type.FLYING, 0.6, 3.4, Abilities.DANCER, Abilities.NONE, Abilities.NONE, 476, 75, 70, 70, 98, 70, 93, 45, 70, 167, false, null, true), ), new PokemonSpecies(Species.CUTIEFLY, 7, false, false, false, "Bee Fly Pokémon", Type.BUG, Type.FAIRY, 0.1, 0.2, Abilities.HONEY_GATHER, Abilities.SHIELD_DUST, Abilities.SWEET_VEIL, 304, 40, 45, 40, 55, 40, 84, 190, 50, 61, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.RIBOMBEE, 7, false, false, false, "Bee Fly Pokémon", Type.BUG, Type.FAIRY, 0.2, 0.5, Abilities.HONEY_GATHER, Abilities.SHIELD_DUST, Abilities.SWEET_VEIL, 464, 60, 55, 60, 95, 70, 124, 75, 50, 162, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.ROCKRUFF, 7, false, false, false, "Puppy Pokémon", Type.ROCK, null, 0.5, 9.2, Abilities.KEEN_EYE, Abilities.VITAL_SPIRIT, Abilities.STEADFAST, 280, 45, 65, 40, 30, 40, 60, 190, 50, 56, GrowthRate.MEDIUM_FAST, 50, false, false, - new PokemonForm("Normal", "", Type.ROCK, null, 0.5, 9.2, Abilities.KEEN_EYE, Abilities.VITAL_SPIRIT, Abilities.STEADFAST, 280, 45, 65, 40, 30, 40, 60, 190, 50, 56), - new PokemonForm("Own Tempo", "own-tempo", Type.ROCK, null, 0.5, 9.2, Abilities.OWN_TEMPO, Abilities.NONE, Abilities.OWN_TEMPO, 280, 45, 65, 40, 30, 40, 60, 190, 50, 56, false, ""), + new PokemonForm("Normal", "", Type.ROCK, null, 0.5, 9.2, Abilities.KEEN_EYE, Abilities.VITAL_SPIRIT, Abilities.STEADFAST, 280, 45, 65, 40, 30, 40, 60, 190, 50, 56, false, null, true), + new PokemonForm("Own Tempo", "own-tempo", Type.ROCK, null, 0.5, 9.2, Abilities.OWN_TEMPO, Abilities.NONE, Abilities.OWN_TEMPO, 280, 45, 65, 40, 30, 40, 60, 190, 50, 56, false, "", true), ), new PokemonSpecies(Species.LYCANROC, 7, false, false, false, "Wolf Pokémon", Type.ROCK, null, 0.8, 25, Abilities.KEEN_EYE, Abilities.SAND_RUSH, Abilities.STEADFAST, 487, 75, 115, 65, 55, 65, 112, 90, 50, 170, GrowthRate.MEDIUM_FAST, 50, false, false, new PokemonForm("Midday Form", "midday", Type.ROCK, null, 0.8, 25, Abilities.KEEN_EYE, Abilities.SAND_RUSH, Abilities.STEADFAST, 487, 75, 115, 65, 55, 65, 112, 90, 50, 170, false, ""), @@ -2102,26 +2100,26 @@ export function initSpecies() { new PokemonForm("Type: Fairy", "fairy", Type.FAIRY, null, 2.3, 100.5, Abilities.RKS_SYSTEM, Abilities.NONE, Abilities.NONE, 570, 95, 95, 95, 95, 95, 95, 3, 0, 285), ), new PokemonSpecies(Species.MINIOR, 7, false, false, false, "Meteor Pokémon", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, GrowthRate.MEDIUM_SLOW, null, false, false, - new PokemonForm("Red Meteor Form", "red-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, ""), - new PokemonForm("Orange Meteor Form", "orange-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, ""), - new PokemonForm("Yellow Meteor Form", "yellow-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, ""), - new PokemonForm("Green Meteor Form", "green-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, ""), - new PokemonForm("Blue Meteor Form", "blue-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, ""), - new PokemonForm("Indigo Meteor Form", "indigo-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, ""), - new PokemonForm("Violet Meteor Form", "violet-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, ""), - new PokemonForm("Red Core Form", "red", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154), - new PokemonForm("Orange Core Form", "orange", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154), - new PokemonForm("Yellow Core Form", "yellow", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154), - new PokemonForm("Green Core Form", "green", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154), - new PokemonForm("Blue Core Form", "blue", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154), - new PokemonForm("Indigo Core Form", "indigo", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154), - new PokemonForm("Violet Core Form", "violet", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154), + new PokemonForm("Red Meteor Form", "red-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, "", true), + new PokemonForm("Orange Meteor Form", "orange-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, "", true), + new PokemonForm("Yellow Meteor Form", "yellow-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, "", true), + new PokemonForm("Green Meteor Form", "green-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, "", true), + new PokemonForm("Blue Meteor Form", "blue-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, "", true), + new PokemonForm("Indigo Meteor Form", "indigo-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, "", true), + new PokemonForm("Violet Meteor Form", "violet-meteor", Type.ROCK, Type.FLYING, 0.3, 40, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 440, 60, 60, 100, 60, 100, 60, 30, 70, 154, false, "", true), + new PokemonForm("Red Core Form", "red", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154, false, null, true), + new PokemonForm("Orange Core Form", "orange", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154, false, null, true), + new PokemonForm("Yellow Core Form", "yellow", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154, false, null, true), + new PokemonForm("Green Core Form", "green", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154, false, null, true), + new PokemonForm("Blue Core Form", "blue", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154, false, null, true), + new PokemonForm("Indigo Core Form", "indigo", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154, false, null, true), + new PokemonForm("Violet Core Form", "violet", Type.ROCK, Type.FLYING, 0.3, 0.3, Abilities.SHIELDS_DOWN, Abilities.NONE, Abilities.NONE, 500, 60, 100, 60, 100, 60, 120, 30, 70, 154, false, null, true), ), new PokemonSpecies(Species.KOMALA, 7, false, false, false, "Drowsing Pokémon", Type.NORMAL, null, 0.4, 19.9, Abilities.COMATOSE, Abilities.NONE, Abilities.NONE, 480, 65, 115, 65, 75, 95, 65, 45, 70, 168, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.TURTONATOR, 7, false, false, false, "Blast Turtle Pokémon", Type.FIRE, Type.DRAGON, 2, 212, Abilities.SHELL_ARMOR, Abilities.NONE, Abilities.NONE, 485, 60, 78, 135, 91, 85, 36, 70, 50, 170, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.TOGEDEMARU, 7, false, false, false, "Roly-Poly Pokémon", Type.ELECTRIC, Type.STEEL, 0.3, 3.3, Abilities.IRON_BARBS, Abilities.LIGHTNING_ROD, Abilities.STURDY, 435, 65, 98, 63, 40, 73, 96, 180, 50, 152, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.MIMIKYU, 7, false, false, false, "Disguise Pokémon", Type.GHOST, Type.FAIRY, 0.2, 0.7, Abilities.DISGUISE, Abilities.NONE, Abilities.NONE, 476, 55, 90, 80, 50, 105, 96, 45, 50, 167, GrowthRate.MEDIUM_FAST, 50, false, false, - new PokemonForm("Disguised Form", "disguised", Type.GHOST, Type.FAIRY, 0.2, 0.7, Abilities.DISGUISE, Abilities.NONE, Abilities.NONE, 476, 55, 90, 80, 50, 105, 96, 45, 50, 167, false, ""), + new PokemonForm("Disguised Form", "disguised", Type.GHOST, Type.FAIRY, 0.2, 0.7, Abilities.DISGUISE, Abilities.NONE, Abilities.NONE, 476, 55, 90, 80, 50, 105, 96, 45, 50, 167, false, "", true), new PokemonForm("Busted Form", "busted", Type.GHOST, Type.FAIRY, 0.2, 0.7, Abilities.DISGUISE, Abilities.NONE, Abilities.NONE, 476, 55, 90, 80, 50, 105, 96, 45, 50, 167), ), new PokemonSpecies(Species.BRUXISH, 7, false, false, false, "Gnash Teeth Pokémon", Type.WATER, Type.PSYCHIC, 0.9, 19, Abilities.DAZZLING, Abilities.STRONG_JAW, Abilities.WONDER_SKIN, 475, 68, 105, 70, 70, 70, 92, 80, 70, 166, GrowthRate.MEDIUM_FAST, 50, false), @@ -2255,8 +2253,8 @@ export function initSpecies() { new PokemonSpecies(Species.CLOBBOPUS, 8, false, false, false, "Tantrum Pokémon", Type.FIGHTING, null, 0.6, 4, Abilities.LIMBER, Abilities.NONE, Abilities.TECHNICIAN, 310, 50, 68, 60, 50, 50, 32, 180, 50, 62, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.GRAPPLOCT, 8, false, false, false, "Jujitsu Pokémon", Type.FIGHTING, null, 1.6, 39, Abilities.LIMBER, Abilities.NONE, Abilities.TECHNICIAN, 480, 80, 118, 90, 70, 80, 42, 45, 50, 168, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.SINISTEA, 8, false, false, false, "Black Tea Pokémon", Type.GHOST, null, 0.1, 0.2, Abilities.WEAK_ARMOR, Abilities.NONE, Abilities.CURSED_BODY, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, GrowthRate.MEDIUM_FAST, null, false, false, - new PokemonForm("Phony Form", "phony", Type.GHOST, null, 0.1, 0.2, Abilities.WEAK_ARMOR, Abilities.NONE, Abilities.CURSED_BODY, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, ""), - new PokemonForm("Antique Form", "antique", Type.GHOST, null, 0.1, 0.2, Abilities.WEAK_ARMOR, Abilities.NONE, Abilities.CURSED_BODY, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, ""), + new PokemonForm("Phony Form", "phony", Type.GHOST, null, 0.1, 0.2, Abilities.WEAK_ARMOR, Abilities.NONE, Abilities.CURSED_BODY, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, "", true), + new PokemonForm("Antique Form", "antique", Type.GHOST, null, 0.1, 0.2, Abilities.WEAK_ARMOR, Abilities.NONE, Abilities.CURSED_BODY, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, "", true), ), new PokemonSpecies(Species.POLTEAGEIST, 8, false, false, false, "Black Tea Pokémon", Type.GHOST, null, 0.2, 0.4, Abilities.WEAK_ARMOR, Abilities.NONE, Abilities.CURSED_BODY, 508, 60, 65, 65, 134, 114, 70, 60, 50, 178, GrowthRate.MEDIUM_FAST, null, false, false, new PokemonForm("Phony Form", "phony", Type.GHOST, null, 0.2, 0.4, Abilities.WEAK_ARMOR, Abilities.NONE, Abilities.CURSED_BODY, 508, 60, 65, 65, 134, 114, 70, 60, 50, 178, false, ""), @@ -2282,15 +2280,15 @@ export function initSpecies() { new PokemonSpecies(Species.RUNERIGUS, 8, false, false, false, "Grudge Pokémon", Type.GROUND, Type.GHOST, 1.6, 66.6, Abilities.WANDERING_SPIRIT, Abilities.NONE, Abilities.NONE, 483, 58, 95, 145, 50, 105, 30, 90, 50, 169, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.MILCERY, 8, false, false, false, "Cream Pokémon", Type.FAIRY, null, 0.2, 0.3, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 270, 45, 40, 40, 50, 61, 34, 200, 50, 54, GrowthRate.MEDIUM_FAST, 0, false), new PokemonSpecies(Species.ALCREMIE, 8, false, false, false, "Cream Pokémon", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, GrowthRate.MEDIUM_FAST, 0, false, true, - new PokemonForm("Vanilla Cream", "vanilla-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, ""), - new PokemonForm("Ruby Cream", "ruby-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false), - new PokemonForm("Matcha Cream", "matcha-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false), - new PokemonForm("Mint Cream", "mint-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false), - new PokemonForm("Lemon Cream", "lemon-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false), - new PokemonForm("Salted Cream", "salted-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false), - new PokemonForm("Ruby Swirl", "ruby-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false), - new PokemonForm("Caramel Swirl", "caramel-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false), - new PokemonForm("Rainbow Swirl", "rainbow-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false), + new PokemonForm("Vanilla Cream", "vanilla-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, "", true), + new PokemonForm("Ruby Cream", "ruby-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, null, true), + new PokemonForm("Matcha Cream", "matcha-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, null, true), + new PokemonForm("Mint Cream", "mint-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, null, true), + new PokemonForm("Lemon Cream", "lemon-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, null, true), + new PokemonForm("Salted Cream", "salted-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, null, true), + new PokemonForm("Ruby Swirl", "ruby-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, null, true), + new PokemonForm("Caramel Swirl", "caramel-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, null, true), + new PokemonForm("Rainbow Swirl", "rainbow-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, null, true), new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FAIRY, null, 30, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 595, 80, 70, 85, 140, 150, 65, 100, 50, 173), ), new PokemonSpecies(Species.FALINKS, 8, false, false, false, "Formation Pokémon", Type.FIGHTING, null, 3, 62, Abilities.BATTLE_ARMOR, Abilities.NONE, Abilities.DEFIANT, 470, 65, 100, 100, 70, 60, 75, 45, 50, 165, GrowthRate.MEDIUM_FAST, null, false), @@ -2303,8 +2301,8 @@ export function initSpecies() { new PokemonForm("No Ice", "no-ice", Type.ICE, null, 1.4, 89, Abilities.ICE_FACE, Abilities.NONE, Abilities.NONE, 470, 75, 80, 70, 65, 50, 130, 60, 50, 165), ), new PokemonSpecies(Species.INDEEDEE, 8, false, false, false, "Emotion Pokémon", Type.PSYCHIC, Type.NORMAL, 0.9, 28, Abilities.INNER_FOCUS, Abilities.SYNCHRONIZE, Abilities.PSYCHIC_SURGE, 475, 60, 65, 55, 105, 95, 95, 30, 140, 166, GrowthRate.FAST, 50, false, false, - new PokemonForm("Male", "male", Type.PSYCHIC, Type.NORMAL, 0.9, 28, Abilities.INNER_FOCUS, Abilities.SYNCHRONIZE, Abilities.PSYCHIC_SURGE, 475, 60, 65, 55, 105, 95, 95, 30, 140, 166, false, ""), - new PokemonForm("Female", "female", Type.PSYCHIC, Type.NORMAL, 0.9, 28, Abilities.OWN_TEMPO, Abilities.SYNCHRONIZE, Abilities.PSYCHIC_SURGE, 475, 70, 55, 65, 95, 105, 85, 30, 140, 166), + new PokemonForm("Male", "male", Type.PSYCHIC, Type.NORMAL, 0.9, 28, Abilities.INNER_FOCUS, Abilities.SYNCHRONIZE, Abilities.PSYCHIC_SURGE, 475, 60, 65, 55, 105, 95, 95, 30, 140, 166, false, "", true), + new PokemonForm("Female", "female", Type.PSYCHIC, Type.NORMAL, 0.9, 28, Abilities.OWN_TEMPO, Abilities.SYNCHRONIZE, Abilities.PSYCHIC_SURGE, 475, 70, 55, 65, 95, 105, 85, 30, 140, 166, false, null, true), ), new PokemonSpecies(Species.MORPEKO, 8, false, false, false, "Two-Sided Pokémon", Type.ELECTRIC, Type.DARK, 0.3, 3, Abilities.HUNGER_SWITCH, Abilities.NONE, Abilities.NONE, 436, 58, 95, 58, 70, 58, 97, 180, 50, 153, GrowthRate.MEDIUM_FAST, 50, false, false, new PokemonForm("Full Belly Mode", "full-belly", Type.ELECTRIC, Type.DARK, 0.3, 3, Abilities.HUNGER_SWITCH, Abilities.NONE, Abilities.NONE, 436, 58, 95, 58, 70, 58, 97, 180, 50, 153, false, ""), @@ -2327,11 +2325,11 @@ export function initSpecies() { new PokemonSpecies(Species.DRAKLOAK, 8, false, false, false, "Caretaker Pokémon", Type.DRAGON, Type.GHOST, 1.4, 11, Abilities.CLEAR_BODY, Abilities.INFILTRATOR, Abilities.CURSED_BODY, 410, 68, 80, 50, 60, 50, 102, 45, 50, 144, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.DRAGAPULT, 8, false, false, false, "Stealth Pokémon", Type.DRAGON, Type.GHOST, 3, 50, Abilities.CLEAR_BODY, Abilities.INFILTRATOR, Abilities.CURSED_BODY, 600, 88, 120, 75, 100, 75, 142, 45, 50, 300, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.ZACIAN, 8, false, true, false, "Warrior Pokémon", Type.FAIRY, null, 2.8, 110, Abilities.INTREPID_SWORD, Abilities.NONE, Abilities.NONE, 660, 92, 120, 115, 80, 115, 138, 10, 0, 335, GrowthRate.SLOW, null, false, false, - new PokemonForm("Hero of Many Battles", "hero", Type.FAIRY, null, 2.8, 110, Abilities.INTREPID_SWORD, Abilities.NONE, Abilities.NONE, 660, 92, 120, 115, 80, 115, 138, 10, 0, 335, false, ""), + new PokemonForm("Hero of Many Battles", "hero", Type.FAIRY, null, 2.8, 110, Abilities.INTREPID_SWORD, Abilities.NONE, Abilities.NONE, 660, 92, 120, 115, 80, 115, 138, 10, 0, 335, false, "", true), new PokemonForm("Crowned", "crowned", Type.FAIRY, Type.STEEL, 2.8, 355, Abilities.INTREPID_SWORD, Abilities.NONE, Abilities.NONE, 700, 92, 150, 115, 80, 115, 148, 10, 0, 335), ), new PokemonSpecies(Species.ZAMAZENTA, 8, false, true, false, "Warrior Pokémon", Type.FIGHTING, null, 2.9, 210, Abilities.DAUNTLESS_SHIELD, Abilities.NONE, Abilities.NONE, 660, 92, 120, 115, 80, 115, 138, 10, 0, 335, GrowthRate.SLOW, null, false, false, - new PokemonForm("Hero of Many Battles", "hero", Type.FIGHTING, null, 2.9, 210, Abilities.DAUNTLESS_SHIELD, Abilities.NONE, Abilities.NONE, 660, 92, 120, 115, 80, 115, 138, 10, 0, 335, false, ""), + new PokemonForm("Hero of Many Battles", "hero", Type.FIGHTING, null, 2.9, 210, Abilities.DAUNTLESS_SHIELD, Abilities.NONE, Abilities.NONE, 660, 92, 120, 115, 80, 115, 138, 10, 0, 335, false, "", true), new PokemonForm("Crowned", "crowned", Type.FIGHTING, Type.STEEL, 2.9, 785, Abilities.DAUNTLESS_SHIELD, Abilities.NONE, Abilities.NONE, 700, 92, 120, 140, 80, 140, 128, 10, 0, 335), ), new PokemonSpecies(Species.ETERNATUS, 8, false, true, false, "Gigantic Pokémon", Type.POISON, Type.DRAGON, 20, 950, Abilities.PRESSURE, Abilities.NONE, Abilities.NONE, 690, 140, 85, 95, 145, 95, 130, 255, 0, 345, GrowthRate.SLOW, null, false, true, @@ -2346,8 +2344,8 @@ export function initSpecies() { new PokemonForm("G-Max Rapid Strike Style", SpeciesFormKey.GIGANTAMAX_RAPID, Type.FIGHTING, Type.WATER, 26, 105, Abilities.UNSEEN_FIST, Abilities.NONE, Abilities.NONE, 650, 125, 160, 120, 75, 70, 100, 3, 50, 275), ), new PokemonSpecies(Species.ZARUDE, 8, false, false, true, "Rogue Monkey Pokémon", Type.DARK, Type.GRASS, 1.8, 70, Abilities.LEAF_GUARD, Abilities.NONE, Abilities.NONE, 600, 105, 120, 105, 70, 95, 105, 3, 0, 300, GrowthRate.SLOW, null, false, false, - new PokemonForm("Normal", "", Type.DARK, Type.GRASS, 1.8, 70, Abilities.LEAF_GUARD, Abilities.NONE, Abilities.NONE, 600, 105, 120, 105, 70, 95, 105, 3, 0, 300), - new PokemonForm("Dada", "dada", Type.DARK, Type.GRASS, 1.8, 70, Abilities.LEAF_GUARD, Abilities.NONE, Abilities.NONE, 600, 105, 120, 105, 70, 95, 105, 3, 0, 300), + new PokemonForm("Normal", "", Type.DARK, Type.GRASS, 1.8, 70, Abilities.LEAF_GUARD, Abilities.NONE, Abilities.NONE, 600, 105, 120, 105, 70, 95, 105, 3, 0, 300, false, null, true), + new PokemonForm("Dada", "dada", Type.DARK, Type.GRASS, 1.8, 70, Abilities.LEAF_GUARD, Abilities.NONE, Abilities.NONE, 600, 105, 120, 105, 70, 95, 105, 3, 0, 300, false, null, true), ), new PokemonSpecies(Species.REGIELEKI, 8, true, false, false, "Electron Pokémon", Type.ELECTRIC, null, 1.2, 145, Abilities.TRANSISTOR, Abilities.NONE, Abilities.NONE, 580, 80, 100, 50, 100, 50, 200, 3, 35, 290, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.REGIDRAGO, 8, true, false, false, "Dragon Orb Pokémon", Type.DRAGON, null, 2.1, 200, Abilities.DRAGONS_MAW, Abilities.NONE, Abilities.NONE, 580, 200, 100, 50, 100, 50, 80, 3, 35, 290, GrowthRate.SLOW, null, false), @@ -2362,13 +2360,13 @@ export function initSpecies() { new PokemonSpecies(Species.KLEAVOR, 8, false, false, false, "Axe Pokémon", Type.BUG, Type.ROCK, 1.8, 89, Abilities.SWARM, Abilities.SHEER_FORCE, Abilities.SHARPNESS, 500, 70, 135, 95, 45, 70, 85, 115, 50, 175, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.URSALUNA, 8, false, false, false, "Peat Pokémon", Type.GROUND, Type.NORMAL, 2.4, 290, Abilities.GUTS, Abilities.BULLETPROOF, Abilities.UNNERVE, 550, 130, 140, 105, 45, 80, 50, 75, 50, 275, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.BASCULEGION, 8, false, false, false, "Big Fish Pokémon", Type.WATER, Type.GHOST, 3, 110, Abilities.SWIFT_SWIM, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 530, 120, 112, 65, 80, 75, 78, 135, 50, 265, GrowthRate.MEDIUM_FAST, 50, false, false, - new PokemonForm("Male", "male", Type.WATER, Type.GHOST, 3, 110, Abilities.SWIFT_SWIM, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 530, 120, 112, 65, 80, 75, 78, 135, 50, 265, false, ""), - new PokemonForm("Female", "female", Type.WATER, Type.GHOST, 3, 110, Abilities.SWIFT_SWIM, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 530, 120, 92, 65, 100, 75, 78, 135, 50, 265), + new PokemonForm("Male", "male", Type.WATER, Type.GHOST, 3, 110, Abilities.SWIFT_SWIM, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 530, 120, 112, 65, 80, 75, 78, 135, 50, 265, false, "", true), + new PokemonForm("Female", "female", Type.WATER, Type.GHOST, 3, 110, Abilities.SWIFT_SWIM, Abilities.ADAPTABILITY, Abilities.MOLD_BREAKER, 530, 120, 92, 65, 100, 75, 78, 135, 50, 265, false, null, true), ), new PokemonSpecies(Species.SNEASLER, 8, false, false, false, "Free Climb Pokémon", Type.FIGHTING, Type.POISON, 1.3, 43, Abilities.PRESSURE, Abilities.UNBURDEN, Abilities.POISON_TOUCH, 510, 80, 130, 60, 40, 80, 120, 135, 50, 102, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.OVERQWIL, 8, false, false, false, "Pin Cluster Pokémon", Type.DARK, Type.POISON, 2.5, 60.5, Abilities.POISON_POINT, Abilities.SWIFT_SWIM, Abilities.INTIMIDATE, 510, 85, 115, 95, 65, 65, 85, 135, 50, 179, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.ENAMORUS, 8, true, false, false, "Love-Hate Pokémon", Type.FAIRY, Type.FLYING, 1.6, 48, Abilities.CUTE_CHARM, Abilities.NONE, Abilities.CONTRARY, 580, 74, 115, 70, 135, 80, 106, 3, 50, 116, GrowthRate.SLOW, 0, false, true, - new PokemonForm("Incarnate Forme", "incarnate", Type.FAIRY, Type.FLYING, 1.6, 48, Abilities.CUTE_CHARM, Abilities.NONE, Abilities.CONTRARY, 580, 74, 115, 70, 135, 80, 106, 3, 50, 116), + new PokemonForm("Incarnate Forme", "incarnate", Type.FAIRY, Type.FLYING, 1.6, 48, Abilities.CUTE_CHARM, Abilities.NONE, Abilities.CONTRARY, 580, 74, 115, 70, 135, 80, 106, 3, 50, 116, false, null, true), new PokemonForm("Therian Forme", "therian", Type.FAIRY, Type.FLYING, 1.6, 48, Abilities.OVERCOAT, Abilities.NONE, Abilities.OVERCOAT, 580, 74, 115, 110, 135, 100, 46, 3, 50, 116), ), new PokemonSpecies(Species.SPRIGATITO, 9, false, false, false, "Grass Cat Pokémon", Type.GRASS, null, 0.4, 4.1, Abilities.OVERGROW, Abilities.NONE, Abilities.PROTEAN, 310, 40, 61, 54, 45, 45, 65, 45, 50, 62, GrowthRate.MEDIUM_SLOW, 87.5, false), @@ -2403,10 +2401,10 @@ export function initSpecies() { new PokemonSpecies(Species.DOLLIV, 9, false, false, false, "Olive Pokémon", Type.GRASS, Type.NORMAL, 0.6, 11.9, Abilities.EARLY_BIRD, Abilities.NONE, Abilities.HARVEST, 354, 52, 53, 60, 78, 78, 33, 120, 50, 124, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.ARBOLIVA, 9, false, false, false, "Olive Pokémon", Type.GRASS, Type.NORMAL, 1.4, 48.2, Abilities.SEED_SOWER, Abilities.NONE, Abilities.HARVEST, 510, 78, 69, 90, 125, 109, 39, 45, 50, 255, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.SQUAWKABILLY, 9, false, false, false, "Parrot Pokémon", Type.NORMAL, Type.FLYING, 0.6, 2.4, Abilities.INTIMIDATE, Abilities.HUSTLE, Abilities.GUTS, 417, 82, 96, 51, 45, 51, 92, 190, 50, 146, GrowthRate.ERRATIC, 50, false, false, - new PokemonForm("Green Plumage", "green-plumage", Type.NORMAL, Type.FLYING, 0.6, 2.4, Abilities.INTIMIDATE, Abilities.HUSTLE, Abilities.GUTS, 417, 82, 96, 51, 45, 51, 92, 190, 50, 146), - new PokemonForm("Blue Plumage", "blue-plumage", Type.NORMAL, Type.FLYING, 0.6, 2.4, Abilities.INTIMIDATE, Abilities.HUSTLE, Abilities.GUTS, 417, 82, 96, 51, 45, 51, 92, 190, 50, 146), - new PokemonForm("Yellow Plumage", "yellow-plumage", Type.NORMAL, Type.FLYING, 0.6, 2.4, Abilities.INTIMIDATE, Abilities.HUSTLE, Abilities.SHEER_FORCE, 417, 82, 96, 51, 45, 51, 92, 190, 50, 146), - new PokemonForm("White Plumage", "white-plumage", Type.NORMAL, Type.FLYING, 0.6, 2.4, Abilities.INTIMIDATE, Abilities.HUSTLE, Abilities.SHEER_FORCE, 417, 82, 96, 51, 45, 51, 92, 190, 50, 146), + new PokemonForm("Green Plumage", "green-plumage", Type.NORMAL, Type.FLYING, 0.6, 2.4, Abilities.INTIMIDATE, Abilities.HUSTLE, Abilities.GUTS, 417, 82, 96, 51, 45, 51, 92, 190, 50, 146, false, null, true), + new PokemonForm("Blue Plumage", "blue-plumage", Type.NORMAL, Type.FLYING, 0.6, 2.4, Abilities.INTIMIDATE, Abilities.HUSTLE, Abilities.GUTS, 417, 82, 96, 51, 45, 51, 92, 190, 50, 146, false, null, true), + new PokemonForm("Yellow Plumage", "yellow-plumage", Type.NORMAL, Type.FLYING, 0.6, 2.4, Abilities.INTIMIDATE, Abilities.HUSTLE, Abilities.SHEER_FORCE, 417, 82, 96, 51, 45, 51, 92, 190, 50, 146, false, null, true), + new PokemonForm("White Plumage", "white-plumage", Type.NORMAL, Type.FLYING, 0.6, 2.4, Abilities.INTIMIDATE, Abilities.HUSTLE, Abilities.SHEER_FORCE, 417, 82, 96, 51, 45, 51, 92, 190, 50, 146, false, null, true), ), new PokemonSpecies(Species.NACLI, 9, false, false, false, "Rock Salt Pokémon", Type.ROCK, null, 0.4, 16, Abilities.PURIFYING_SALT, Abilities.STURDY, Abilities.CLEAR_BODY, 280, 55, 55, 75, 35, 35, 25, 255, 50, 56, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.NACLSTACK, 9, false, false, false, "Rock Salt Pokémon", Type.ROCK, null, 0.6, 105, Abilities.PURIFYING_SALT, Abilities.STURDY, Abilities.CLEAR_BODY, 355, 60, 60, 100, 35, 65, 35, 120, 50, 124, GrowthRate.MEDIUM_SLOW, 50, false), @@ -2441,8 +2439,8 @@ export function initSpecies() { new PokemonSpecies(Species.BOMBIRDIER, 9, false, false, false, "Item Drop Pokémon", Type.FLYING, Type.DARK, 1.5, 42.9, Abilities.BIG_PECKS, Abilities.KEEN_EYE, Abilities.ROCKY_PAYLOAD, 485, 70, 103, 85, 60, 85, 82, 25, 50, 243, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.FINIZEN, 9, false, false, false, "Dolphin Pokémon", Type.WATER, null, 1.3, 60.2, Abilities.WATER_VEIL, Abilities.NONE, Abilities.NONE, 315, 70, 45, 40, 45, 40, 75, 200, 50, 63, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.PALAFIN, 9, false, false, false, "Dolphin Pokémon", Type.WATER, null, 1.3, 60.2, Abilities.ZERO_TO_HERO, Abilities.NONE, Abilities.NONE, 457, 100, 70, 72, 53, 62, 100, 45, 50, 160, GrowthRate.SLOW, 50, false, false, - new PokemonForm("Zero Form", "zero", Type.WATER, null, 1.3, 60.2, Abilities.ZERO_TO_HERO, Abilities.NONE, Abilities.ZERO_TO_HERO, 457, 100, 70, 72, 53, 62, 100, 45, 50, 160), - new PokemonForm("Hero Form", "hero", Type.WATER, null, 1.8, 97.4, Abilities.ZERO_TO_HERO, Abilities.NONE, Abilities.ZERO_TO_HERO, 650, 100, 160, 97, 106, 87, 100, 45, 50, 160), + new PokemonForm("Zero Form", "zero", Type.WATER, null, 1.3, 60.2, Abilities.ZERO_TO_HERO, Abilities.NONE, Abilities.ZERO_TO_HERO, 457, 100, 70, 72, 53, 62, 100, 45, 50, 160, false, null, true), + new PokemonForm("Hero Form", "hero", Type.WATER, null, 1.8, 97.4, Abilities.ZERO_TO_HERO, Abilities.NONE, Abilities.ZERO_TO_HERO, 650, 100, 160, 97, 106, 87, 100, 45, 50, 160, false, null, true), ), new PokemonSpecies(Species.VAROOM, 9, false, false, false, "Single-Cyl Pokémon", Type.STEEL, Type.POISON, 1, 35, Abilities.OVERCOAT, Abilities.NONE, Abilities.SLOW_START, 300, 45, 70, 63, 30, 45, 47, 190, 50, 60, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.REVAVROOM, 9, false, false, false, "Multi-Cyl Pokémon", Type.STEEL, Type.POISON, 1.8, 120, Abilities.OVERCOAT, Abilities.NONE, Abilities.FILTER, 500, 80, 119, 90, 54, 67, 90, 75, 50, 175, GrowthRate.MEDIUM_FAST, 50, false), @@ -2458,9 +2456,9 @@ export function initSpecies() { new PokemonSpecies(Species.VELUZA, 9, false, false, false, "Jettison Pokémon", Type.WATER, Type.PSYCHIC, 2.5, 90, Abilities.MOLD_BREAKER, Abilities.NONE, Abilities.SHARPNESS, 478, 90, 102, 73, 78, 65, 70, 100, 50, 167, GrowthRate.FAST, 50, false), new PokemonSpecies(Species.DONDOZO, 9, false, false, false, "Big Catfish Pokémon", Type.WATER, null, 12, 220, Abilities.UNAWARE, Abilities.OBLIVIOUS, Abilities.WATER_VEIL, 530, 150, 100, 115, 65, 65, 35, 25, 50, 265, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.TATSUGIRI, 9, false, false, false, "Mimicry Pokémon", Type.DRAGON, Type.WATER, 0.3, 8, Abilities.COMMANDER, Abilities.NONE, Abilities.STORM_DRAIN, 475, 68, 50, 60, 120, 95, 82, 100, 50, 166, GrowthRate.MEDIUM_SLOW, 50, false, false, - new PokemonForm("Curly Form", "curly", Type.DRAGON, Type.WATER, 0.3, 8, Abilities.COMMANDER, Abilities.NONE, Abilities.STORM_DRAIN, 475, 68, 50, 60, 120, 95, 82, 100, 50, 166), - new PokemonForm("Droopy Form", "droopy", Type.DRAGON, Type.WATER, 0.3, 8, Abilities.COMMANDER, Abilities.NONE, Abilities.STORM_DRAIN, 475, 68, 50, 60, 120, 95, 82, 100, 50, 166), - new PokemonForm("Stretchy Form", "stretchy", Type.DRAGON, Type.WATER, 0.3, 8, Abilities.COMMANDER, Abilities.NONE, Abilities.STORM_DRAIN, 475, 68, 50, 60, 120, 95, 82, 100, 50, 166), + new PokemonForm("Curly Form", "curly", Type.DRAGON, Type.WATER, 0.3, 8, Abilities.COMMANDER, Abilities.NONE, Abilities.STORM_DRAIN, 475, 68, 50, 60, 120, 95, 82, 100, 50, 166, false, null, true), + new PokemonForm("Droopy Form", "droopy", Type.DRAGON, Type.WATER, 0.3, 8, Abilities.COMMANDER, Abilities.NONE, Abilities.STORM_DRAIN, 475, 68, 50, 60, 120, 95, 82, 100, 50, 166, false, null, true), + new PokemonForm("Stretchy Form", "stretchy", Type.DRAGON, Type.WATER, 0.3, 8, Abilities.COMMANDER, Abilities.NONE, Abilities.STORM_DRAIN, 475, 68, 50, 60, 120, 95, 82, 100, 50, 166, false, null, true), ), new PokemonSpecies(Species.ANNIHILAPE, 9, false, false, false, "Rage Monkey Pokémon", Type.FIGHTING, Type.GHOST, 1.2, 56, Abilities.VITAL_SPIRIT, Abilities.INNER_FOCUS, Abilities.DEFIANT, 535, 110, 115, 80, 50, 90, 90, 45, 50, 268, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.CLODSIRE, 9, false, false, false, "Spiny Fish Pokémon", Type.POISON, Type.GROUND, 1.8, 223, Abilities.POISON_POINT, Abilities.WATER_ABSORB, Abilities.UNAWARE, 430, 130, 75, 60, 45, 100, 20, 90, 50, 151, GrowthRate.MEDIUM_FAST, 50, false), @@ -2486,8 +2484,8 @@ export function initSpecies() { new PokemonSpecies(Species.ARCTIBAX, 9, false, false, false, "Ice Fin Pokémon", Type.DRAGON, Type.ICE, 0.8, 30, Abilities.THERMAL_EXCHANGE, Abilities.NONE, Abilities.ICE_BODY, 423, 90, 95, 66, 45, 65, 62, 25, 50, 148, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.BAXCALIBUR, 9, false, false, false, "Ice Dragon Pokémon", Type.DRAGON, Type.ICE, 2.1, 210, Abilities.THERMAL_EXCHANGE, Abilities.NONE, Abilities.ICE_BODY, 600, 115, 145, 92, 75, 86, 87, 10, 50, 300, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.GIMMIGHOUL, 9, false, false, false, "Coin Chest Pokémon", Type.GHOST, null, 0.3, 5, Abilities.RATTLED, Abilities.NONE, Abilities.NONE, 300, 45, 30, 70, 75, 70, 10, 45, 50, 60, GrowthRate.SLOW, null, false, false, - new PokemonForm("Chest Form", "chest", Type.GHOST, null, 0.3, 5, Abilities.RATTLED, Abilities.NONE, Abilities.NONE, 300, 45, 30, 70, 75, 70, 10, 45, 50, 60, false, ""), - new PokemonForm("Roaming Form", "roaming", Type.GHOST, null, 0.1, 1, Abilities.RUN_AWAY, Abilities.NONE, Abilities.NONE, 300, 45, 30, 25, 75, 45, 80, 45, 50, 60), + new PokemonForm("Chest Form", "chest", Type.GHOST, null, 0.3, 5, Abilities.RATTLED, Abilities.NONE, Abilities.NONE, 300, 45, 30, 70, 75, 70, 10, 45, 50, 60, false, "", true), + new PokemonForm("Roaming Form", "roaming", Type.GHOST, null, 0.1, 1, Abilities.RUN_AWAY, Abilities.NONE, Abilities.NONE, 300, 45, 30, 25, 75, 45, 80, 45, 50, 60, false, null, true), ), new PokemonSpecies(Species.GHOLDENGO, 9, false, false, false, "Coin Entity Pokémon", Type.STEEL, Type.GHOST, 1.2, 30, Abilities.GOOD_AS_GOLD, Abilities.NONE, Abilities.NONE, 550, 87, 60, 95, 133, 91, 84, 45, 50, 275, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.WO_CHIEN, 9, true, false, false, "Ruinous Pokémon", Type.DARK, Type.GRASS, 1.5, 74.2, Abilities.TABLETS_OF_RUIN, Abilities.NONE, Abilities.NONE, 570, 85, 85, 100, 95, 135, 70, 6, 0, 285, GrowthRate.SLOW, null, false), @@ -2497,25 +2495,25 @@ export function initSpecies() { new PokemonSpecies(Species.ROARING_MOON, 9, false, false, false, "Paradox Pokémon", Type.DRAGON, Type.DARK, 2, 380, Abilities.PROTOSYNTHESIS, Abilities.NONE, Abilities.NONE, 590, 105, 139, 71, 55, 101, 119, 10, 0, 295, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.IRON_VALIANT, 9, false, false, false, "Paradox Pokémon", Type.FAIRY, Type.FIGHTING, 1.4, 35, Abilities.QUARK_DRIVE, Abilities.NONE, Abilities.NONE, 590, 74, 130, 90, 120, 60, 116, 10, 0, 295, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.KORAIDON, 9, false, true, false, "Paradox Pokémon", Type.FIGHTING, Type.DRAGON, 2.5, 303, Abilities.ORICHALCUM_PULSE, Abilities.NONE, Abilities.NONE, 670, 100, 135, 115, 85, 100, 135, 3, 0, 335, GrowthRate.SLOW, null, false, false, - new PokemonForm("Apex Build", "apex-build", Type.FIGHTING, Type.DRAGON, 2.5, 303, Abilities.ORICHALCUM_PULSE, Abilities.NONE, Abilities.NONE, 670, 100, 135, 115, 85, 100, 135, 3, 0, 335), - new PokemonForm("Limited Build", "limited-build", Type.FIGHTING, Type.DRAGON, 3.5, 303, Abilities.ORICHALCUM_PULSE, Abilities.NONE, Abilities.NONE, 670, 100, 135, 115, 85, 100, 135, 3, 0, 335), - new PokemonForm("Sprinting Build", "sprinting-build", Type.FIGHTING, Type.DRAGON, 3.5, 303, Abilities.ORICHALCUM_PULSE, Abilities.NONE, Abilities.NONE, 670, 100, 135, 115, 85, 100, 135, 3, 0, 335), - new PokemonForm("Swimming Build", "swimming-build", Type.FIGHTING, Type.DRAGON, 3.5, 303, Abilities.ORICHALCUM_PULSE, Abilities.NONE, Abilities.NONE, 670, 100, 135, 115, 85, 100, 135, 3, 0, 335), - new PokemonForm("Gliding Build", "gliding-build", Type.FIGHTING, Type.DRAGON, 3.5, 303, Abilities.ORICHALCUM_PULSE, Abilities.NONE, Abilities.NONE, 670, 100, 135, 115, 85, 100, 135, 3, 0, 335), + new PokemonForm("Apex Build", "apex-build", Type.FIGHTING, Type.DRAGON, 2.5, 303, Abilities.ORICHALCUM_PULSE, Abilities.NONE, Abilities.NONE, 670, 100, 135, 115, 85, 100, 135, 3, 0, 335, false, null, true), + new PokemonForm("Limited Build", "limited-build", Type.FIGHTING, Type.DRAGON, 3.5, 303, Abilities.ORICHALCUM_PULSE, Abilities.NONE, Abilities.NONE, 670, 100, 135, 115, 85, 100, 135, 3, 0, 335, false, null, true), + new PokemonForm("Sprinting Build", "sprinting-build", Type.FIGHTING, Type.DRAGON, 3.5, 303, Abilities.ORICHALCUM_PULSE, Abilities.NONE, Abilities.NONE, 670, 100, 135, 115, 85, 100, 135, 3, 0, 335, false, null, true), + new PokemonForm("Swimming Build", "swimming-build", Type.FIGHTING, Type.DRAGON, 3.5, 303, Abilities.ORICHALCUM_PULSE, Abilities.NONE, Abilities.NONE, 670, 100, 135, 115, 85, 100, 135, 3, 0, 335, false, null, true), + new PokemonForm("Gliding Build", "gliding-build", Type.FIGHTING, Type.DRAGON, 3.5, 303, Abilities.ORICHALCUM_PULSE, Abilities.NONE, Abilities.NONE, 670, 100, 135, 115, 85, 100, 135, 3, 0, 335, false, null, true), ), new PokemonSpecies(Species.MIRAIDON, 9, false, true, false, "Paradox Pokémon", Type.ELECTRIC, Type.DRAGON, 3.5, 240, Abilities.HADRON_ENGINE, Abilities.NONE, Abilities.NONE, 670, 100, 85, 100, 135, 115, 135, 3, 0, 335, GrowthRate.SLOW, null, false, false, - new PokemonForm("Ultimate Mode", "ultimate-mode", Type.ELECTRIC, Type.DRAGON, 3.5, 240, Abilities.HADRON_ENGINE, Abilities.NONE, Abilities.NONE, 670, 100, 85, 100, 135, 115, 135, 3, 0, 335), - new PokemonForm("Low-Power Mode", "low-power-mode", Type.ELECTRIC, Type.DRAGON, 2.8, 240, Abilities.HADRON_ENGINE, Abilities.NONE, Abilities.NONE, 670, 100, 85, 100, 135, 115, 135, 3, 0, 335), - new PokemonForm("Drive Mode", "drive-mode", Type.ELECTRIC, Type.DRAGON, 2.8, 240, Abilities.HADRON_ENGINE, Abilities.NONE, Abilities.NONE, 670, 100, 85, 100, 135, 115, 135, 3, 0, 335), - new PokemonForm("Aquatic Mode", "aquatic-mode", Type.ELECTRIC, Type.DRAGON, 2.8, 240, Abilities.HADRON_ENGINE, Abilities.NONE, Abilities.NONE, 670, 100, 85, 100, 135, 115, 135, 3, 0, 335), - new PokemonForm("Glide Mode", "glide-mode", Type.ELECTRIC, Type.DRAGON, 2.8, 240, Abilities.HADRON_ENGINE, Abilities.NONE, Abilities.NONE, 670, 100, 85, 100, 135, 115, 135, 3, 0, 335), + new PokemonForm("Ultimate Mode", "ultimate-mode", Type.ELECTRIC, Type.DRAGON, 3.5, 240, Abilities.HADRON_ENGINE, Abilities.NONE, Abilities.NONE, 670, 100, 85, 100, 135, 115, 135, 3, 0, 335, false, null, true), + new PokemonForm("Low-Power Mode", "low-power-mode", Type.ELECTRIC, Type.DRAGON, 2.8, 240, Abilities.HADRON_ENGINE, Abilities.NONE, Abilities.NONE, 670, 100, 85, 100, 135, 115, 135, 3, 0, 335, false, null, true), + new PokemonForm("Drive Mode", "drive-mode", Type.ELECTRIC, Type.DRAGON, 2.8, 240, Abilities.HADRON_ENGINE, Abilities.NONE, Abilities.NONE, 670, 100, 85, 100, 135, 115, 135, 3, 0, 335, false, null, true), + new PokemonForm("Aquatic Mode", "aquatic-mode", Type.ELECTRIC, Type.DRAGON, 2.8, 240, Abilities.HADRON_ENGINE, Abilities.NONE, Abilities.NONE, 670, 100, 85, 100, 135, 115, 135, 3, 0, 335, false, null, true), + new PokemonForm("Glide Mode", "glide-mode", Type.ELECTRIC, Type.DRAGON, 2.8, 240, Abilities.HADRON_ENGINE, Abilities.NONE, Abilities.NONE, 670, 100, 85, 100, 135, 115, 135, 3, 0, 335, false, null, true), ), new PokemonSpecies(Species.WALKING_WAKE, 9, false, false, false, "Paradox Pokémon", Type.WATER, Type.DRAGON, 3.5, 280, Abilities.PROTOSYNTHESIS, Abilities.NONE, Abilities.NONE, 590, 99, 83, 91, 125, 83, 109, 5, 0, 295, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.IRON_LEAVES, 9, false, false, false, "Paradox Pokémon", Type.GRASS, Type.PSYCHIC, 1.5, 125, Abilities.QUARK_DRIVE, Abilities.NONE, Abilities.NONE, 590, 90, 130, 88, 70, 108, 104, 5, 0, 295, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.DIPPLIN, 9, false, false, false, "Candy Apple Pokémon", Type.GRASS, Type.DRAGON, 0.4, 9.7, Abilities.SUPERSWEET_SYRUP, Abilities.GLUTTONY, Abilities.STICKY_HOLD, 485, 80, 80, 110, 95, 80, 40, 45, 50, 170, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.POLTCHAGEIST, 9, false, false, false, "Matcha Pokémon", Type.GRASS, Type.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, GrowthRate.SLOW, null, false, false, - new PokemonForm("Counterfeit Form", "counterfeit", Type.GRASS, Type.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62), - new PokemonForm("Artisan Form", "artisan", Type.GRASS, Type.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62), + new PokemonForm("Counterfeit Form", "counterfeit", Type.GRASS, Type.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, null, true), + new PokemonForm("Artisan Form", "artisan", Type.GRASS, Type.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, null, true), ), new PokemonSpecies(Species.SINISTCHA, 9, false, false, false, "Matcha Pokémon", Type.GRASS, Type.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178, GrowthRate.SLOW, null, false, false, new PokemonForm("Unremarkable Form", "unremarkable", Type.GRASS, Type.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178), @@ -2525,7 +2523,7 @@ export function initSpecies() { new PokemonSpecies(Species.MUNKIDORI, 9, true, false, false, "Retainer Pokémon", Type.POISON, Type.PSYCHIC, 1, 12.2, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.FRISK, 555, 88, 75, 66, 130, 90, 106, 3, 0, 276, GrowthRate.SLOW, 100, false), new PokemonSpecies(Species.FEZANDIPITI, 9, true, false, false, "Retainer Pokémon", Type.POISON, Type.FAIRY, 1.4, 30.1, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.TECHNICIAN, 555, 88, 91, 82, 70, 125, 99, 3, 0, 276, GrowthRate.SLOW, 100, false), new PokemonSpecies(Species.OGERPON, 9, true, false, false, "Mask Pokémon", Type.GRASS, null, 1.2, 39.8, Abilities.DEFIANT, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275, GrowthRate.SLOW, 0, false, false, - new PokemonForm("Teal Mask", "teal-mask", Type.GRASS, null, 1.2, 39.8, Abilities.DEFIANT, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275), + new PokemonForm("Teal Mask", "teal-mask", Type.GRASS, null, 1.2, 39.8, Abilities.DEFIANT, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275, false, null, true), new PokemonForm("Wellspring Mask", "wellspring-mask", Type.GRASS, Type.WATER, 1.2, 39.8, Abilities.WATER_ABSORB, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275), new PokemonForm("Hearthflame Mask", "hearthflame-mask", Type.GRASS, Type.FIRE, 1.2, 39.8, Abilities.MOLD_BREAKER, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275), new PokemonForm("Cornerstone Mask", "cornerstone-mask", Type.GRASS, Type.ROCK, 1.2, 39.8, Abilities.STURDY, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275), @@ -2604,9 +2602,9 @@ export function initSpecies() { new PokemonSpecies(Species.HISUI_AVALUGG, 8, false, false, false, "Iceberg Pokémon", Type.ICE, Type.ROCK, 1.4, 262.4, Abilities.STRONG_JAW, Abilities.ICE_BODY, Abilities.STURDY, 514, 95, 127, 184, 34, 36, 38, 55, 50, 180, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.HISUI_DECIDUEYE, 8, false, false, false, "Arrow Quill Pokémon", Type.GRASS, Type.FIGHTING, 1.6, 37, Abilities.OVERGROW, Abilities.NONE, Abilities.SCRAPPY, 530, 88, 112, 80, 95, 95, 60, 45, 50, 239, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.PALDEA_TAUROS, 9, false, false, false, "Wild Bull Pokémon", Type.FIGHTING, null, 1.4, 115, Abilities.INTIMIDATE, Abilities.ANGER_POINT, Abilities.CUD_CHEW, 490, 75, 110, 105, 30, 70, 100, 45, 50, 172, GrowthRate.SLOW, 100, false, false, - new PokemonForm("Combat Breed", "combat", Type.FIGHTING, null, 1.4, 115, Abilities.INTIMIDATE, Abilities.ANGER_POINT, Abilities.CUD_CHEW, 490, 75, 110, 105, 30, 70, 100, 45, 50, 172, false, ""), - new PokemonForm("Blaze Breed", "blaze", Type.FIGHTING, Type.FIRE, 1.4, 85, Abilities.INTIMIDATE, Abilities.ANGER_POINT, Abilities.CUD_CHEW, 490, 75, 110, 105, 30, 70, 100, 45, 50, 172), - new PokemonForm("Aqua Breed", "aqua", Type.FIGHTING, Type.WATER, 1.4, 110, Abilities.INTIMIDATE, Abilities.ANGER_POINT, Abilities.CUD_CHEW, 490, 75, 110, 105, 30, 70, 100, 45, 50, 172), + new PokemonForm("Combat Breed", "combat", Type.FIGHTING, null, 1.4, 115, Abilities.INTIMIDATE, Abilities.ANGER_POINT, Abilities.CUD_CHEW, 490, 75, 110, 105, 30, 70, 100, 45, 50, 172, false, "", true), + new PokemonForm("Blaze Breed", "blaze", Type.FIGHTING, Type.FIRE, 1.4, 85, Abilities.INTIMIDATE, Abilities.ANGER_POINT, Abilities.CUD_CHEW, 490, 75, 110, 105, 30, 70, 100, 45, 50, 172, false, null, true), + new PokemonForm("Aqua Breed", "aqua", Type.FIGHTING, Type.WATER, 1.4, 110, Abilities.INTIMIDATE, Abilities.ANGER_POINT, Abilities.CUD_CHEW, 490, 75, 110, 105, 30, 70, 100, 45, 50, 172, false, null, true), ), new PokemonSpecies(Species.PALDEA_WOOPER, 9, false, false, false, "Water Fish Pokémon", Type.POISON, Type.GROUND, 0.4, 11, Abilities.POISON_POINT, Abilities.WATER_ABSORB, Abilities.UNAWARE, 210, 55, 45, 45, 25, 25, 15, 255, 50, 42, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.BLOODMOON_URSALUNA, 9, false, false, false, "Peat Pokémon", Type.GROUND, Type.NORMAL, 2.7, 333, Abilities.MINDS_EYE, Abilities.NONE, Abilities.NONE, 555, 113, 70, 120, 135, 65, 52, 75, 50, 275, GrowthRate.MEDIUM_FAST, 50, false), diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index d4fdf97912d..5b54152445e 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -1041,7 +1041,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { let newFormIndex = props.formIndex; do { newFormIndex = (newFormIndex + 1) % formCount; - if (this.speciesStarterDexEntry.caughtAttr & this.scene.gameData.getFormAttr(newFormIndex)) { + if (this.lastSpecies.forms[newFormIndex].isStarterSelectable && this.speciesStarterDexEntry.caughtAttr & this.scene.gameData.getFormAttr(newFormIndex)) { break; } } while (newFormIndex !== props.formIndex); From a2996cdd6689882396c14aa4a7687dbd1fd64607 Mon Sep 17 00:00:00 2001 From: SnowCharm <619022098@qq.com> Date: Sun, 26 May 2024 13:33:14 +0800 Subject: [PATCH 61/61] add zh_CN biome.ts (#1389) --- src/locales/zh_CN/biome.ts | 70 +++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/src/locales/zh_CN/biome.ts b/src/locales/zh_CN/biome.ts index 5631b91b836..cd0f1219177 100644 --- a/src/locales/zh_CN/biome.ts +++ b/src/locales/zh_CN/biome.ts @@ -1,40 +1,40 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const biome: SimpleTranslationEntries = { - "unknownLocation": "Somewhere you can\'t remember", - "TOWN": "Town", - "PLAINS": "Plains", - "GRASS": "Grassy Field", - "TALL_GRASS": "Tall Grass", - "METROPOLIS": "Metropolis", - "FOREST": "Forest", - "SEA": "Sea", - "SWAMP": "Swamp", - "BEACH": "Beach", - "LAKE": "Lake", - "SEABED": "Seabed", - "MOUNTAIN": "Mountain", - "BADLANDS": "Badlands", - "CAVE": "Cave", - "DESERT": "Desert", - "ICE_CAVE": "Ice Cave", - "MEADOW": "Meadow", - "POWER_PLANT": "Power Plant", - "VOLCANO": "Volcano", - "GRAVEYARD": "Graveyard", - "DOJO": "Dojo", - "FACTORY": "Factory", - "RUINS": "Ancient Ruins", - "WASTELAND": "Wasteland", - "ABYSS": "Abyss", - "SPACE": "Space", - "CONSTRUCTION_SITE": "Construction Site", - "JUNGLE": "Jungle", - "FAIRY_CAVE": "Fairy Cave", - "TEMPLE": "Temple", - "SLUM": "Slum", - "SNOWY_FOREST": "Snowy Forest", - "ISLAND": "Island", - "LABORATORY": "Laboratory", + "unknownLocation": "未知领域", + "TOWN": "城镇", + "PLAINS": "平原", + "GRASS": "草地", + "TALL_GRASS": "高草", + "METROPOLIS": "都市", + "FOREST": "森林", + "SEA": "海洋", + "SWAMP": "湿地", + "BEACH": "沙滩", + "LAKE": "湖泊", + "SEABED": "海底", + "MOUNTAIN": "山脉", + "BADLANDS": "荒地", + "CAVE": "洞窟", + "DESERT": "沙漠", + "ICE_CAVE": "冰窟", + "MEADOW": "草原", + "POWER_PLANT": "发电厂", + "VOLCANO": "火山", + "GRAVEYARD": "墓地", + "DOJO": "道场", + "FACTORY": "工厂", + "RUINS": "遗迹", + "WASTELAND": "荒地", + "ABYSS": "深穴", + "SPACE": "太空", + "CONSTRUCTION_SITE": "工地", + "JUNGLE": "丛林", + "FAIRY_CAVE": "仙洞", + "TEMPLE": "寺庙", + "SLUM": "陋巷", + "SNOWY_FOREST": "雪原", + "ISLAND": "岛屿", + "LABORATORY": "实验室", "END": "???", } as const;