Merge branch 'beta' into ability_display

This commit is contained in:
Dean 2025-02-15 23:38:56 -08:00 committed by GitHub
commit 2eb67a5d66
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
173 changed files with 29236 additions and 16654 deletions

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
v20.13.1

View File

@ -5,6 +5,7 @@ import importX from 'eslint-plugin-import-x';
export default [ export default [
{ {
name: "eslint-config",
files: ["src/**/*.{ts,tsx,js,jsx}"], files: ["src/**/*.{ts,tsx,js,jsx}"],
ignores: ["dist/*", "build/*", "coverage/*", "public/*", ".github/*", "node_modules/*", ".vscode/*"], ignores: ["dist/*", "build/*", "coverage/*", "public/*", ".github/*", "node_modules/*", ".vscode/*"],
languageOptions: { languageOptions: {
@ -48,5 +49,22 @@ export default [
"no-multiple-empty-lines": ["error", { "max": 2, "maxEOF": 1, "maxBOF": 0 }], // Disallows multiple empty lines "no-multiple-empty-lines": ["error", { "max": 2, "maxEOF": 1, "maxBOF": 0 }], // Disallows multiple empty lines
"@typescript-eslint/consistent-type-imports": "error", // Enforces type-only imports wherever possible "@typescript-eslint/consistent-type-imports": "error", // Enforces type-only imports wherever possible
} }
},
{
name: "eslint-tests",
files: ["src/test/**/**.test.ts"],
languageOptions: {
parser: parser,
parserOptions: {
"project": ["./tsconfig.json"]
}
},
plugins: {
"@typescript-eslint": tseslint
},
rules: {
"@typescript-eslint/no-floating-promises": "error", // Require Promise-like statements to be handled appropriately. - https://typescript-eslint.io/rules/no-floating-promises/
"@typescript-eslint/no-misused-promises": "error", // Disallow Promises in places not designed to handle them. - https://typescript-eslint.io/rules/no-misused-promises/
}
} }
] ]

View File

@ -164,13 +164,13 @@ input:-internal-autofill-selected {
} }
/* Show cycle buttons only on STARTER_SELECT and on touch configuration panel */ /* Show cycle buttons only on STARTER_SELECT and on touch configuration panel */
#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadOpenFilters, #touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='POKEDEX'], [data-ui-mode='POKEDEX_PAGE']) #apadOpenFilters,
#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='RUN_INFO']) #apadCycleForm, #touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='POKEDEX'], [data-ui-mode='POKEDEX_PAGE'], [data-ui-mode='RUN_INFO']) #apadCycleForm,
#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='RUN_INFO']) #apadCycleShiny, #touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='POKEDEX'], [data-ui-mode='POKEDEX_PAGE'], [data-ui-mode='RUN_INFO']) #apadCycleShiny,
#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadCycleNature, #touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadCycleNature,
#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='RUN_INFO']) #apadCycleAbility, #touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='POKEDEX_PAGE'], [data-ui-mode='RUN_INFO']) #apadCycleAbility,
#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadCycleGender, #touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='POKEDEX_PAGE']) #apadCycleGender,
#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadCycleVariant { #touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='POKEDEX']) #apadCycleVariant {
display: none; display: none;
} }

439
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "pokemon-rogue-battle", "name": "pokemon-rogue-battle",
"version": "1.5.2", "version": "1.6.4",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pokemon-rogue-battle", "name": "pokemon-rogue-battle",
"version": "1.5.2", "version": "1.6.4",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@material/material-color-utilities": "^0.2.7", "@material/material-color-utilities": "^0.2.7",
@ -28,7 +28,7 @@
"@types/node": "^20.12.13", "@types/node": "^20.12.13",
"@typescript-eslint/eslint-plugin": "^8.0.0-alpha.54", "@typescript-eslint/eslint-plugin": "^8.0.0-alpha.54",
"@typescript-eslint/parser": "^8.0.0-alpha.54", "@typescript-eslint/parser": "^8.0.0-alpha.54",
"@vitest/coverage-istanbul": "^2.0.4", "@vitest/coverage-istanbul": "^2.1.9",
"dependency-cruiser": "^16.3.10", "dependency-cruiser": "^16.3.10",
"eslint": "^9.7.0", "eslint": "^9.7.0",
"eslint-plugin-import-x": "^4.2.1", "eslint-plugin-import-x": "^4.2.1",
@ -40,9 +40,9 @@
"typedoc": "^0.26.4", "typedoc": "^0.26.4",
"typescript": "^5.5.3", "typescript": "^5.5.3",
"typescript-eslint": "^8.0.0-alpha.54", "typescript-eslint": "^8.0.0-alpha.54",
"vite": "^5.4.8", "vite": "^5.4.14",
"vite-tsconfig-paths": "^4.3.2", "vite-tsconfig-paths": "^4.3.2",
"vitest": "^2.0.4", "vitest": "^2.1.9",
"vitest-canvas-mock": "^0.3.3" "vitest-canvas-mock": "^0.3.3"
}, },
"engines": { "engines": {
@ -269,9 +269,9 @@
} }
}, },
"node_modules/@babel/helper-string-parser": { "node_modules/@babel/helper-string-parser": {
"version": "7.24.8", "version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
"integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -279,9 +279,9 @@
} }
}, },
"node_modules/@babel/helper-validator-identifier": { "node_modules/@babel/helper-validator-identifier": {
"version": "7.24.7", "version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
"integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -406,11 +406,14 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.25.0", "version": "7.26.8",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.0.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.8.tgz",
"integrity": "sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==", "integrity": "sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": {
"@babel/types": "^7.26.8"
},
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
}, },
@ -476,15 +479,14 @@
} }
}, },
"node_modules/@babel/types": { "node_modules/@babel/types": {
"version": "7.25.0", "version": "7.26.8",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.0.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.8.tgz",
"integrity": "sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==", "integrity": "sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/helper-string-parser": "^7.24.8", "@babel/helper-string-parser": "^7.25.9",
"@babel/helper-validator-identifier": "^7.24.7", "@babel/helper-validator-identifier": "^7.25.9"
"to-fast-properties": "^2.0.0"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@ -2145,20 +2147,20 @@
} }
}, },
"node_modules/@vitest/coverage-istanbul": { "node_modules/@vitest/coverage-istanbul": {
"version": "2.0.4", "version": "2.1.9",
"resolved": "https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-2.0.4.tgz", "resolved": "https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-2.1.9.tgz",
"integrity": "sha512-6VibYMkXh8cJm5Bg8JYeOoR4oURlPf4YKP9kuVRE/NKasfYrXPnzSwuxrpgMbgOfPj13KUJXgMB3VAGukECtlQ==", "integrity": "sha512-vdYE4FkC/y2lxcN3Dcj54Bw+ericmDwiex0B8LV5F/YNYEYP1mgVwhPnHwWGAXu38qizkjOuyczKbFTALfzFKw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@istanbuljs/schema": "^0.1.3", "@istanbuljs/schema": "^0.1.3",
"debug": "^4.3.5", "debug": "^4.3.7",
"istanbul-lib-coverage": "^3.2.2", "istanbul-lib-coverage": "^3.2.2",
"istanbul-lib-instrument": "^6.0.3", "istanbul-lib-instrument": "^6.0.3",
"istanbul-lib-report": "^3.0.1", "istanbul-lib-report": "^3.0.1",
"istanbul-lib-source-maps": "^5.0.6", "istanbul-lib-source-maps": "^5.0.6",
"istanbul-reports": "^3.1.7", "istanbul-reports": "^3.1.7",
"magicast": "^0.3.4", "magicast": "^0.3.5",
"test-exclude": "^7.0.1", "test-exclude": "^7.0.1",
"tinyrainbow": "^1.2.0" "tinyrainbow": "^1.2.0"
}, },
@ -2166,29 +2168,56 @@
"url": "https://opencollective.com/vitest" "url": "https://opencollective.com/vitest"
}, },
"peerDependencies": { "peerDependencies": {
"vitest": "2.0.4" "vitest": "2.1.9"
} }
}, },
"node_modules/@vitest/expect": { "node_modules/@vitest/expect": {
"version": "2.0.4", "version": "2.1.9",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.0.4.tgz", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz",
"integrity": "sha512-39jr5EguIoanChvBqe34I8m1hJFI4+jxvdOpD7gslZrVQBKhh8H9eD7J/LJX4zakrw23W+dITQTDqdt43xVcJw==", "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vitest/spy": "2.0.4", "@vitest/spy": "2.1.9",
"@vitest/utils": "2.0.4", "@vitest/utils": "2.1.9",
"chai": "^5.1.1", "chai": "^5.1.2",
"tinyrainbow": "^1.2.0" "tinyrainbow": "^1.2.0"
}, },
"funding": { "funding": {
"url": "https://opencollective.com/vitest" "url": "https://opencollective.com/vitest"
} }
}, },
"node_modules/@vitest/mocker": {
"version": "2.1.9",
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz",
"integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/spy": "2.1.9",
"estree-walker": "^3.0.3",
"magic-string": "^0.30.12"
},
"funding": {
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"msw": "^2.4.9",
"vite": "^5.0.0"
},
"peerDependenciesMeta": {
"msw": {
"optional": true
},
"vite": {
"optional": true
}
}
},
"node_modules/@vitest/pretty-format": { "node_modules/@vitest/pretty-format": {
"version": "2.0.4", "version": "2.1.9",
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.4.tgz", "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz",
"integrity": "sha512-RYZl31STbNGqf4l2eQM1nvKPXE0NhC6Eq0suTTePc4mtMQ1Fn8qZmjV4emZdEdG2NOWGKSCrHZjmTqDCDoeFBw==", "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -2199,13 +2228,13 @@
} }
}, },
"node_modules/@vitest/runner": { "node_modules/@vitest/runner": {
"version": "2.0.4", "version": "2.1.9",
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.0.4.tgz", "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz",
"integrity": "sha512-Gk+9Su/2H2zNfNdeJR124gZckd5st4YoSuhF1Rebi37qTXKnqYyFCd9KP4vl2cQHbtuVKjfEKrNJxHHCW8thbQ==", "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vitest/utils": "2.0.4", "@vitest/utils": "2.1.9",
"pathe": "^1.1.2" "pathe": "^1.1.2"
}, },
"funding": { "funding": {
@ -2213,14 +2242,14 @@
} }
}, },
"node_modules/@vitest/snapshot": { "node_modules/@vitest/snapshot": {
"version": "2.0.4", "version": "2.1.9",
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.0.4.tgz", "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz",
"integrity": "sha512-or6Mzoz/pD7xTvuJMFYEtso1vJo1S5u6zBTinfl+7smGUhqybn6VjzCDMhmTyVOFWwkCMuNjmNNxnyXPgKDoPw==", "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vitest/pretty-format": "2.0.4", "@vitest/pretty-format": "2.1.9",
"magic-string": "^0.30.10", "magic-string": "^0.30.12",
"pathe": "^1.1.2" "pathe": "^1.1.2"
}, },
"funding": { "funding": {
@ -2228,28 +2257,27 @@
} }
}, },
"node_modules/@vitest/spy": { "node_modules/@vitest/spy": {
"version": "2.0.4", "version": "2.1.9",
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.0.4.tgz", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz",
"integrity": "sha512-uTXU56TNoYrTohb+6CseP8IqNwlNdtPwEO0AWl+5j7NelS6x0xZZtP0bDWaLvOfUbaYwhhWp1guzXUxkC7mW7Q==", "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tinyspy": "^3.0.0" "tinyspy": "^3.0.2"
}, },
"funding": { "funding": {
"url": "https://opencollective.com/vitest" "url": "https://opencollective.com/vitest"
} }
}, },
"node_modules/@vitest/utils": { "node_modules/@vitest/utils": {
"version": "2.0.4", "version": "2.1.9",
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.0.4.tgz", "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz",
"integrity": "sha512-Zc75QuuoJhOBnlo99ZVUkJIuq4Oj0zAkrQ2VzCqNCx6wAwViHEh5Fnp4fiJTE9rA+sAoXRf00Z9xGgfEzV6fzQ==", "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vitest/pretty-format": "2.0.4", "@vitest/pretty-format": "2.1.9",
"estree-walker": "^3.0.3", "loupe": "^3.1.2",
"loupe": "^3.1.1",
"tinyrainbow": "^1.2.0" "tinyrainbow": "^1.2.0"
}, },
"funding": { "funding": {
@ -2545,9 +2573,9 @@
"license": "CC-BY-4.0" "license": "CC-BY-4.0"
}, },
"node_modules/chai": { "node_modules/chai": {
"version": "5.1.1", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz",
"integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -2800,13 +2828,13 @@
} }
}, },
"node_modules/debug": { "node_modules/debug": {
"version": "4.3.5", "version": "4.4.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"ms": "2.1.2" "ms": "^2.1.3"
}, },
"engines": { "engines": {
"node": ">=6.0" "node": ">=6.0"
@ -3004,6 +3032,13 @@
"node": ">= 0.4" "node": ">= 0.4"
} }
}, },
"node_modules/es-module-lexer": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz",
"integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==",
"dev": true,
"license": "MIT"
},
"node_modules/esbuild": { "node_modules/esbuild": {
"version": "0.21.5", "version": "0.21.5",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
@ -3450,28 +3485,14 @@
"integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/execa": { "node_modules/expect-type": {
"version": "8.0.1", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz",
"integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==",
"dev": true, "dev": true,
"license": "MIT", "license": "Apache-2.0",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^8.0.1",
"human-signals": "^5.0.0",
"is-stream": "^3.0.0",
"merge-stream": "^2.0.0",
"npm-run-path": "^5.1.0",
"onetime": "^6.0.0",
"signal-exit": "^4.1.0",
"strip-final-newline": "^3.0.0"
},
"engines": { "engines": {
"node": ">=16.17" "node": ">=12.0.0"
},
"funding": {
"url": "https://github.com/sindresorhus/execa?sponsor=1"
} }
}, },
"node_modules/external-editor": { "node_modules/external-editor": {
@ -3695,16 +3716,6 @@
"node": "6.* || 8.* || >= 10.*" "node": "6.* || 8.* || >= 10.*"
} }
}, },
"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,
"license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/get-intrinsic": { "node_modules/get-intrinsic": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
@ -3724,19 +3735,6 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"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,
"license": "MIT",
"engines": {
"node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/get-tsconfig": { "node_modules/get-tsconfig": {
"version": "4.8.0", "version": "4.8.0",
"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.0.tgz", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.0.tgz",
@ -3968,16 +3966,6 @@
"node": ">= 14" "node": ">= 14"
} }
}, },
"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,
"license": "Apache-2.0",
"engines": {
"node": ">=16.17.0"
}
},
"node_modules/i18next": { "node_modules/i18next": {
"version": "23.12.2", "version": "23.12.2",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-23.12.2.tgz", "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.12.2.tgz",
@ -4240,19 +4228,6 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"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,
"license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/isarray": { "node_modules/isarray": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
@ -4716,14 +4691,11 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/loupe": { "node_modules/loupe": {
"version": "3.1.1", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.1.tgz", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz",
"integrity": "sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==", "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT"
"dependencies": {
"get-func-name": "^2.0.1"
}
}, },
"node_modules/lru-cache": { "node_modules/lru-cache": {
"version": "5.1.1", "version": "5.1.1",
@ -4743,9 +4715,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/magic-string": { "node_modules/magic-string": {
"version": "0.30.11", "version": "0.30.17",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
"integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -4753,14 +4725,14 @@
} }
}, },
"node_modules/magicast": { "node_modules/magicast": {
"version": "0.3.4", "version": "0.3.5",
"resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.4.tgz", "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz",
"integrity": "sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==", "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/parser": "^7.24.4", "@babel/parser": "^7.25.4",
"@babel/types": "^7.24.0", "@babel/types": "^7.25.4",
"source-map-js": "^1.2.0" "source-map-js": "^1.2.0"
} }
}, },
@ -4819,13 +4791,6 @@
"url": "https://github.com/sindresorhus/memoize?sponsor=1" "url": "https://github.com/sindresorhus/memoize?sponsor=1"
} }
}, },
"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,
"license": "MIT"
},
"node_modules/merge2": { "node_modules/merge2": {
"version": "1.4.1", "version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@ -4886,19 +4851,6 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"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,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/mimic-function": { "node_modules/mimic-function": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz",
@ -4959,9 +4911,9 @@
} }
}, },
"node_modules/ms": { "node_modules/ms": {
"version": "2.1.2", "version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
@ -5138,35 +5090,6 @@
"integrity": "sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==", "integrity": "sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==",
"dev": true "dev": true
}, },
"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,
"license": "MIT",
"dependencies": {
"path-key": "^4.0.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"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,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/nwsapi": { "node_modules/nwsapi": {
"version": "2.2.12", "version": "2.2.12",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.12.tgz", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.12.tgz",
@ -5182,22 +5105,6 @@
"node": ">= 0.4" "node": ">= 0.4"
} }
}, },
"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,
"license": "MIT",
"dependencies": {
"mimic-fn": "^4.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/optionator": { "node_modules/optionator": {
"version": "0.9.4", "version": "0.9.4",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
@ -5978,9 +5885,9 @@
} }
}, },
"node_modules/std-env": { "node_modules/std-env": {
"version": "3.7.0", "version": "3.8.0",
"resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz",
"integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
@ -6106,19 +6013,6 @@
"node": ">=4" "node": ">=4"
} }
}, },
"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,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/strip-json-comments": { "node_modules/strip-json-comments": {
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
@ -6225,16 +6119,23 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/tinybench": { "node_modules/tinybench": {
"version": "2.8.0", "version": "2.9.0",
"resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
"integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
"dev": true,
"license": "MIT"
},
"node_modules/tinyexec": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
"integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/tinypool": { "node_modules/tinypool": {
"version": "1.0.0", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.0.tgz", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz",
"integrity": "sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==", "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -6252,9 +6153,9 @@
} }
}, },
"node_modules/tinyspy": { "node_modules/tinyspy": {
"version": "3.0.0", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.0.tgz", "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
"integrity": "sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==", "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -6274,16 +6175,6 @@
"node": ">=0.6.0" "node": ">=0.6.0"
} }
}, },
"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,
"license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/to-regex-range": { "node_modules/to-regex-range": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@ -6561,10 +6452,11 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "5.4.8", "version": "5.4.14",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz",
"integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"esbuild": "^0.21.3", "esbuild": "^0.21.3",
"postcss": "^8.4.43", "postcss": "^8.4.43",
@ -6620,16 +6512,16 @@
} }
}, },
"node_modules/vite-node": { "node_modules/vite-node": {
"version": "2.0.4", "version": "2.1.9",
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.0.4.tgz", "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz",
"integrity": "sha512-ZpJVkxcakYtig5iakNeL7N3trufe3M6vGuzYAr4GsbCTwobDeyPJpE4cjDhhPluv8OvQCFzu2LWp6GkoKRITXA==", "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"cac": "^6.7.14", "cac": "^6.7.14",
"debug": "^4.3.5", "debug": "^4.3.7",
"es-module-lexer": "^1.5.4",
"pathe": "^1.1.2", "pathe": "^1.1.2",
"tinyrainbow": "^1.2.0",
"vite": "^5.0.0" "vite": "^5.0.0"
}, },
"bin": { "bin": {
@ -6663,30 +6555,31 @@
} }
}, },
"node_modules/vitest": { "node_modules/vitest": {
"version": "2.0.4", "version": "2.1.9",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-2.0.4.tgz", "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz",
"integrity": "sha512-luNLDpfsnxw5QSW4bISPe6tkxVvv5wn2BBs/PuDRkhXZ319doZyLOBr1sjfB5yCEpTiU7xCAdViM8TNVGPwoog==", "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@ampproject/remapping": "^2.3.0", "@vitest/expect": "2.1.9",
"@vitest/expect": "2.0.4", "@vitest/mocker": "2.1.9",
"@vitest/pretty-format": "^2.0.4", "@vitest/pretty-format": "^2.1.9",
"@vitest/runner": "2.0.4", "@vitest/runner": "2.1.9",
"@vitest/snapshot": "2.0.4", "@vitest/snapshot": "2.1.9",
"@vitest/spy": "2.0.4", "@vitest/spy": "2.1.9",
"@vitest/utils": "2.0.4", "@vitest/utils": "2.1.9",
"chai": "^5.1.1", "chai": "^5.1.2",
"debug": "^4.3.5", "debug": "^4.3.7",
"execa": "^8.0.1", "expect-type": "^1.1.0",
"magic-string": "^0.30.10", "magic-string": "^0.30.12",
"pathe": "^1.1.2", "pathe": "^1.1.2",
"std-env": "^3.7.0", "std-env": "^3.8.0",
"tinybench": "^2.8.0", "tinybench": "^2.9.0",
"tinypool": "^1.0.0", "tinyexec": "^0.3.1",
"tinypool": "^1.0.1",
"tinyrainbow": "^1.2.0", "tinyrainbow": "^1.2.0",
"vite": "^5.0.0", "vite": "^5.0.0",
"vite-node": "2.0.4", "vite-node": "2.1.9",
"why-is-node-running": "^2.3.0" "why-is-node-running": "^2.3.0"
}, },
"bin": { "bin": {
@ -6701,8 +6594,8 @@
"peerDependencies": { "peerDependencies": {
"@edge-runtime/vm": "*", "@edge-runtime/vm": "*",
"@types/node": "^18.0.0 || >=20.0.0", "@types/node": "^18.0.0 || >=20.0.0",
"@vitest/browser": "2.0.4", "@vitest/browser": "2.1.9",
"@vitest/ui": "2.0.4", "@vitest/ui": "2.1.9",
"happy-dom": "*", "happy-dom": "*",
"jsdom": "*" "jsdom": "*"
}, },

View File

@ -1,7 +1,7 @@
{ {
"name": "pokemon-rogue-battle", "name": "pokemon-rogue-battle",
"private": true, "private": true,
"version": "1.5.2", "version": "1.6.4",
"type": "module", "type": "module",
"scripts": { "scripts": {
"start": "vite", "start": "vite",
@ -33,7 +33,7 @@
"@types/node": "^20.12.13", "@types/node": "^20.12.13",
"@typescript-eslint/eslint-plugin": "^8.0.0-alpha.54", "@typescript-eslint/eslint-plugin": "^8.0.0-alpha.54",
"@typescript-eslint/parser": "^8.0.0-alpha.54", "@typescript-eslint/parser": "^8.0.0-alpha.54",
"@vitest/coverage-istanbul": "^2.0.4", "@vitest/coverage-istanbul": "^2.1.9",
"dependency-cruiser": "^16.3.10", "dependency-cruiser": "^16.3.10",
"eslint": "^9.7.0", "eslint": "^9.7.0",
"eslint-plugin-import-x": "^4.2.1", "eslint-plugin-import-x": "^4.2.1",
@ -45,9 +45,9 @@
"typedoc": "^0.26.4", "typedoc": "^0.26.4",
"typescript": "^5.5.3", "typescript": "^5.5.3",
"typescript-eslint": "^8.0.0-alpha.54", "typescript-eslint": "^8.0.0-alpha.54",
"vite": "^5.4.8", "vite": "^5.4.14",
"vite-tsconfig-paths": "^4.3.2", "vite-tsconfig-paths": "^4.3.2",
"vitest": "^2.0.4", "vitest": "^2.1.9",
"vitest-canvas-mock": "^0.3.3" "vitest-canvas-mock": "^0.3.3"
}, },
"dependencies": { "dependencies": {

Binary file not shown.

View File

@ -201,6 +201,8 @@
"6211", "6211",
"6215", "6215",
"6215", "6215",
"6215f",
"6215f",
"65-mega", "65-mega",
"65-mega", "65-mega",
"650", "650",
@ -291,8 +293,8 @@
"666-tundra", "666-tundra",
"667", "667",
"667", "667",
"668-female", "668f",
"668-female", "668f",
"668", "668",
"668", "668",
"669-blue", "669-blue",
@ -1333,6 +1335,8 @@
"6211b", "6211b",
"6215b", "6215b",
"6215b", "6215b",
"6215bf",
"6215bf",
"65b-mega", "65b-mega",
"65b-mega", "65b-mega",
"650b", "650b",
@ -1423,8 +1427,8 @@
"666b-tundra", "666b-tundra",
"667b", "667b",
"667b", "667b",
"668b-female", "668bf",
"668b-female", "668bf",
"668b", "668b",
"668b", "668b",
"669b-blue", "669b-blue",
@ -2467,6 +2471,8 @@
"6211sb", "6211sb",
"6215sb", "6215sb",
"6215sb", "6215sb",
"6215sbf",
"6215sbf",
"65sb-mega", "65sb-mega",
"65sb-mega", "65sb-mega",
"650sb", "650sb",
@ -2559,6 +2565,8 @@
"667sb", "667sb",
"668sb", "668sb",
"668sb", "668sb",
"668sbf",
"668sbf",
"669sb-blue", "669sb-blue",
"669sb-blue", "669sb-blue",
"669sb-orange", "669sb-orange",
@ -3604,6 +3612,8 @@
"6211s", "6211s",
"6215s", "6215s",
"6215s", "6215s",
"6215sf",
"6215sf",
"65s-mega", "65s-mega",
"65s-mega", "65s-mega",
"650s", "650s",
@ -3694,8 +3704,8 @@
"666s-tundra", "666s-tundra",
"667s", "667s",
"667s", "667s",
"668s-female", "668sf",
"668s-female", "668sf",
"668s", "668s",
"668s", "668s",
"669s-blue", "669s-blue",
@ -4587,6 +4597,7 @@
"475-mega_3", "475-mega_3",
"475-mega_3", "475-mega_3",
"6215", "6215",
"6215f",
"653", "653",
"654", "654",
"6549", "6549",
@ -4856,6 +4867,7 @@
"475b-mega_3", "475b-mega_3",
"475b-mega_3", "475b-mega_3",
"6215b", "6215b",
"6215bf",
"653b", "653b",
"654b", "654b",
"6549b", "6549b",

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,41 +0,0 @@
{
"textures": [
{
"image": "668-female.png",
"format": "RGBA8888",
"size": {
"w": 72,
"h": 72
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 63,
"h": 72
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 63,
"h": 72
},
"frame": {
"x": 0,
"y": 0,
"w": 63,
"h": 72
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:3f88e039152d4a967a218cb721938610:e6991ce9c3bad348cbc05ebf9b440302:d99ed0e84a0695b54e479aa98271aba1$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 898 B

View File

@ -1,19 +1,19 @@
{ "frames": [ { "frames": [
{ {
"filename": "0001.png", "filename": "0001.png",
"frame": { "x": 0, "y": 0, "w": 77, "h": 77 }, "frame": { "x": 0, "y": 0, "w": 77, "h": 65 },
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 77, "h": 77 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 77, "h": 65 },
"sourceSize": { "w": 77, "h": 77 }, "sourceSize": { "w": 77, "h": 65 },
"duration": 100 "duration": 100
} }
], ],
"meta": { "meta": {
"app": "https://www.aseprite.org/", "app": "https://www.aseprite.org/",
"version": "1.3.7-x64", "version": "1.3.9.2-x64",
"format": "I8", "format": "I8",
"size": { "w": 77, "h": 77 }, "size": { "w": 77, "h": 65 },
"scale": "1" "scale": "1"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 899 B

After

Width:  |  Height:  |  Size: 890 B

View File

@ -1,41 +0,0 @@
{
"textures": [
{
"image": "668-female.png",
"format": "RGBA8888",
"size": {
"w": 74,
"h": 74
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 74,
"h": 72
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 74,
"h": 72
},
"frame": {
"x": 0,
"y": 0,
"w": 74,
"h": 72
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:3b22b1fc8fabd22888048f909287acba:10bec1e42fb1d39868a624d00345818d:d99ed0e84a0695b54e479aa98271aba1$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 791 B

View File

@ -1,11 +1,11 @@
{ "frames": [ { "frames": [
{ {
"filename": "0001.png", "filename": "0001.png",
"frame": { "x": 0, "y": 0, "w": 77, "h": 77 }, "frame": { "x": 0, "y": 0, "w": 77, "h": 65 },
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 77, "h": 77 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 77, "h": 65 },
"sourceSize": { "w": 77, "h": 77 }, "sourceSize": { "w": 77, "h": 65 },
"duration": 100 "duration": 100
} }
], ],
@ -13,7 +13,7 @@
"app": "https://www.aseprite.org/", "app": "https://www.aseprite.org/",
"version": "1.3.7-x64", "version": "1.3.7-x64",
"format": "I8", "format": "I8",
"size": { "w": 77, "h": 77 }, "size": { "w": 77, "h": 65 },
"scale": "1" "scale": "1"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 899 B

After

Width:  |  Height:  |  Size: 890 B

View File

@ -1,41 +0,0 @@
{
"textures": [
{
"image": "668-female.png",
"format": "RGBA8888",
"size": {
"w": 74,
"h": 74
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 74,
"h": 72
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 74,
"h": 72
},
"frame": {
"x": 0,
"y": 0,
"w": 74,
"h": 72
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:a3f814ea1f5b062df0ecc4e7c343d89b:769178f31dc2505ae0e67b72b1319828:d99ed0e84a0695b54e479aa98271aba1$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 792 B

View File

@ -1,272 +1,659 @@
{ { "frames": [
"textures": [
{
"image": "667.png",
"format": "RGBA8888",
"size": {
"w": 160,
"h": 160
},
"scale": 1,
"frames": [
{ {
"filename": "0001.png", "filename": "0001.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"w": 40, "sourceSize": { "w": 42, "h": 49 },
"h": 46 "duration": 110
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
}
},
{
"filename": "0007.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
}
},
{
"filename": "0005.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 0,
"y": 46,
"w": 40,
"h": 46
}
},
{
"filename": "0006.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 0,
"y": 92,
"w": 40,
"h": 46
}
},
{
"filename": "0011.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 40,
"y": 0,
"w": 40,
"h": 46
}
},
{
"filename": "0012.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 80,
"y": 0,
"w": 40,
"h": 46
}
}, },
{ {
"filename": "0002.png", "filename": "0002.png",
"frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"w": 40, "sourceSize": { "w": 42, "h": 49 },
"h": 46 "duration": 110
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 45
},
"frame": {
"x": 120,
"y": 0,
"w": 40,
"h": 45
}
},
{
"filename": "0008.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 45
},
"frame": {
"x": 120,
"y": 0,
"w": 40,
"h": 45
}
},
{
"filename": "0004.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 45
},
"frame": {
"x": 120,
"y": 45,
"w": 40,
"h": 45
}
},
{
"filename": "0010.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 45
},
"frame": {
"x": 40,
"y": 90,
"w": 40,
"h": 45
}
}, },
{ {
"filename": "0003.png", "filename": "0003.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"w": 40, "sourceSize": { "w": 42, "h": 49 },
"h": 46 "duration": 110
}, },
"spriteSourceSize": { {
"x": 0, "filename": "0004.png",
"y": 2, "frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"w": 40, "rotated": false,
"h": 44 "trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
}, },
"frame": { {
"x": 40, "filename": "0005.png",
"y": 46, "frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"w": 40, "rotated": false,
"h": 44 "trimmed": true,
} "spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0006.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0007.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0008.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
}, },
{ {
"filename": "0009.png", "filename": "0009.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"w": 40, "sourceSize": { "w": 42, "h": 49 },
"h": 46 "duration": 110
}, },
"spriteSourceSize": { {
"x": 0, "filename": "0010.png",
"y": 2, "frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"w": 40, "rotated": false,
"h": 44 "trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
}, },
"frame": { {
"x": 80, "filename": "0011.png",
"y": 46, "frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"w": 40, "rotated": false,
"h": 44 "trimmed": true,
} "spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
} "sourceSize": { "w": 42, "h": 49 },
] "duration": 110
},
{
"filename": "0012.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0013.png",
"frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0014.png",
"frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0015.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0016.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0017.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0018.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0019.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0020.png",
"frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0021.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0022.png",
"frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0023.png",
"frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0024.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0025.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0026.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0027.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0028.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0029.png",
"frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0030.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0031.png",
"frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0032.png",
"frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0033.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0034.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0035.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0036.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0037.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0038.png",
"frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0039.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0040.png",
"frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0041.png",
"frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0042.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0043.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0044.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0045.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0046.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0047.png",
"frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0048.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0049.png",
"frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0050.png",
"frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0051.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0052.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0053.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0054.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0055.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0056.png",
"frame": { "x": 85, "y": 0, "w": 41, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 41, "h": 48 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0057.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0058.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0059.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0060.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0061.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0062.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0063.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0064.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0065.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0066.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0067.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0068.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0069.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0070.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0071.png",
"frame": { "x": 85, "y": 0, "w": 41, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 41, "h": 48 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0072.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
} }
], ],
"meta": { "meta": {
"app": "https://www.codeandweb.com/texturepacker", "app": "https://www.aseprite.org/",
"version": "3.0", "version": "1.3.11-x64",
"smartupdate": "$TexturePacker:SmartUpdate:0c78c1973ebb266716d5a3a4557bca98:3ab4a906b1847f4048e828e5410eae40:02171d511e760c8a3e1b623ad6bf93f5$" "image": "667.png",
"format": "I8",
"size": { "w": 167, "h": 141 },
"scale": "1"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -1,125 +1,659 @@
{ { "frames": [
"textures": [
{
"image": "667.png",
"format": "RGBA8888",
"size": {
"w": 115,
"h": 115
},
"scale": 1,
"frames": [
{ {
"filename": "0001.png", "filename": "0001.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"w": 39, "sourceSize": { "w": 43, "h": 48 },
"h": 42 "duration": 110
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 39,
"h": 42
},
"frame": {
"x": 0,
"y": 0,
"w": 39,
"h": 42
}
}, },
{ {
"filename": "0002.png", "filename": "0002.png",
"frame": { "x": 127, "y": 47, "w": 39, "h": 46 },
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 4, "y": 2, "w": 39, "h": 46 },
"w": 39, "sourceSize": { "w": 43, "h": 48 },
"h": 42 "duration": 110
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 39,
"h": 42
},
"frame": {
"x": 0,
"y": 42,
"w": 39,
"h": 42
}
}, },
{ {
"filename": "0003.png", "filename": "0003.png",
"frame": { "x": 85, "y": 48, "w": 39, "h": 45 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"w": 39, "sourceSize": { "w": 43, "h": 48 },
"h": 42 "duration": 110
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 39,
"h": 41
},
"frame": {
"x": 39,
"y": 0,
"w": 39,
"h": 41
}
}, },
{ {
"filename": "0004.png", "filename": "0004.png",
"frame": { "x": 40, "y": 94, "w": 38, "h": 44 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 5, "y": 4, "w": 38, "h": 44 },
"w": 39, "sourceSize": { "w": 43, "h": 48 },
"h": 42 "duration": 110
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 38,
"h": 42
},
"frame": {
"x": 39,
"y": 41,
"w": 38,
"h": 42
}
}, },
{ {
"filename": "0005.png", "filename": "0005.png",
"frame": { "x": 79, "y": 94, "w": 38, "h": 43 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"w": 39, "sourceSize": { "w": 43, "h": 48 },
"h": 42 "duration": 110
}, },
"spriteSourceSize": { {
"x": 1, "filename": "0006.png",
"y": 0, "frame": { "x": 118, "y": 94, "w": 38, "h": 43 },
"w": 38, "rotated": false,
"h": 42 "trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
}, },
"frame": { {
"x": 77, "filename": "0007.png",
"y": 41, "frame": { "x": 40, "y": 49, "w": 39, "h": 44 },
"w": 38, "rotated": false,
"h": 42 "trimmed": true,
} "spriteSourceSize": { "x": 4, "y": 4, "w": 39, "h": 44 },
} "sourceSize": { "w": 43, "h": 48 },
] "duration": 110
},
{
"filename": "0008.png",
"frame": { "x": 0, "y": 49, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0009.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0010.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0011.png",
"frame": { "x": 127, "y": 47, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 2, "w": 39, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0012.png",
"frame": { "x": 85, "y": 48, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0013.png",
"frame": { "x": 40, "y": 94, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 4, "w": 38, "h": 44 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0014.png",
"frame": { "x": 79, "y": 94, "w": 38, "h": 43 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0015.png",
"frame": { "x": 118, "y": 94, "w": 38, "h": 43 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0016.png",
"frame": { "x": 40, "y": 49, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 39, "h": 44 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0017.png",
"frame": { "x": 0, "y": 49, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0018.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0019.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0020.png",
"frame": { "x": 127, "y": 47, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 2, "w": 39, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0021.png",
"frame": { "x": 85, "y": 48, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0022.png",
"frame": { "x": 40, "y": 94, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 4, "w": 38, "h": 44 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0023.png",
"frame": { "x": 79, "y": 94, "w": 38, "h": 43 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0024.png",
"frame": { "x": 118, "y": 94, "w": 38, "h": 43 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0025.png",
"frame": { "x": 40, "y": 49, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 39, "h": 44 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0026.png",
"frame": { "x": 0, "y": 49, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0027.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0028.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0029.png",
"frame": { "x": 127, "y": 47, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 2, "w": 39, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0030.png",
"frame": { "x": 85, "y": 48, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0031.png",
"frame": { "x": 40, "y": 94, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 4, "w": 38, "h": 44 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0032.png",
"frame": { "x": 79, "y": 94, "w": 38, "h": 43 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0033.png",
"frame": { "x": 118, "y": 94, "w": 38, "h": 43 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0034.png",
"frame": { "x": 40, "y": 49, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 39, "h": 44 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0035.png",
"frame": { "x": 0, "y": 49, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0036.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0037.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0038.png",
"frame": { "x": 127, "y": 47, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 2, "w": 39, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0039.png",
"frame": { "x": 85, "y": 48, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0040.png",
"frame": { "x": 40, "y": 94, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 4, "w": 38, "h": 44 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0041.png",
"frame": { "x": 79, "y": 94, "w": 38, "h": 43 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0042.png",
"frame": { "x": 118, "y": 94, "w": 38, "h": 43 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0043.png",
"frame": { "x": 40, "y": 49, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 39, "h": 44 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0044.png",
"frame": { "x": 0, "y": 49, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0045.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0046.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0047.png",
"frame": { "x": 127, "y": 47, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 2, "w": 39, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0048.png",
"frame": { "x": 85, "y": 48, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0049.png",
"frame": { "x": 40, "y": 94, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 4, "w": 38, "h": 44 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0050.png",
"frame": { "x": 79, "y": 94, "w": 38, "h": 43 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0051.png",
"frame": { "x": 118, "y": 94, "w": 38, "h": 43 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 38, "h": 43 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0052.png",
"frame": { "x": 40, "y": 49, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 39, "h": 44 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0053.png",
"frame": { "x": 0, "y": 49, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 39, "h": 45 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0054.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0055.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0056.png",
"frame": { "x": 85, "y": 0, "w": 41, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 1, "w": 41, "h": 47 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0057.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0058.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 41, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0059.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0060.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 41, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0061.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0062.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 41, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0063.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0064.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 41, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0065.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0066.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 41, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0067.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0068.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 41, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0069.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0070.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 41, "h": 48 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0071.png",
"frame": { "x": 85, "y": 0, "w": 41, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 1, "w": 41, "h": 47 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
},
{
"filename": "0072.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 2, "w": 40, "h": 46 },
"sourceSize": { "w": 43, "h": 48 },
"duration": 110
} }
], ],
"meta": { "meta": {
"app": "https://www.codeandweb.com/texturepacker", "app": "https://www.aseprite.org/",
"version": "3.0", "version": "1.3.11-x64",
"smartupdate": "$TexturePacker:SmartUpdate:0515d906bdf1ec3ad533ac13c4e701ec:195a93073ecc7446c747c2e79ae07d54:02171d511e760c8a3e1b623ad6bf93f5$" "image": "667.png",
"format": "I8",
"size": { "w": 167, "h": 138 },
"scale": "1"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 914 B

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,146 +1,821 @@
{ { "frames": [
"textures": [
{
"image": "668.png",
"format": "RGBA8888",
"size": {
"w": 146,
"h": 146
},
"scale": 1,
"frames": [
{ {
"filename": "0001.png", "filename": "0001.png",
"frame": { "x": 152, "y": 292, "w": 74, "h": 71 },
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"w": 73, "sourceSize": { "w": 80, "h": 74 },
"h": 61 "duration": 100
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 73,
"h": 61
},
"frame": {
"x": 0,
"y": 0,
"w": 73,
"h": 61
}
}, },
{ {
"filename": "0002.png", "filename": "0002.png",
"frame": { "x": 303, "y": 221, "w": 74, "h": 71 },
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"w": 73, "sourceSize": { "w": 80, "h": 74 },
"h": 61 "duration": 100
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 73,
"h": 61
},
"frame": {
"x": 73,
"y": 0,
"w": 73,
"h": 61
}
},
{
"filename": "0006.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 73,
"h": 61
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 73,
"h": 61
},
"frame": {
"x": 73,
"y": 0,
"w": 73,
"h": 61
}
}, },
{ {
"filename": "0003.png", "filename": "0003.png",
"frame": { "x": 383, "y": 147, "w": 75, "h": 72 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 2, "y": 2, "w": 75, "h": 72 },
"w": 73, "sourceSize": { "w": 80, "h": 74 },
"h": 61 "duration": 100
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 73,
"h": 60
},
"frame": {
"x": 0,
"y": 61,
"w": 73,
"h": 60
}
},
{
"filename": "0005.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 73,
"h": 61
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 73,
"h": 60
},
"frame": {
"x": 0,
"y": 61,
"w": 73,
"h": 60
}
}, },
{ {
"filename": "0004.png", "filename": "0004.png",
"frame": { "x": 233, "y": 74, "w": 76, "h": 72 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"w": 73, "sourceSize": { "w": 80, "h": 74 },
"h": 61 "duration": 100
}, },
"spriteSourceSize": { {
"x": 1, "filename": "0005.png",
"y": 2, "frame": { "x": 459, "y": 147, "w": 75, "h": 72 },
"w": 72, "rotated": false,
"h": 59 "trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
}, },
"frame": { {
"x": 73, "filename": "0006.png",
"y": 61, "frame": { "x": 315, "y": 0, "w": 76, "h": 73 },
"w": 72, "rotated": false,
"h": 59 "trimmed": true,
} "spriteSourceSize": { "x": 0, "y": 1, "w": 76, "h": 73 },
} "sourceSize": { "w": 80, "h": 74 },
] "duration": 100
},
{
"filename": "0007.png",
"frame": { "x": 387, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0008.png",
"frame": { "x": 392, "y": 0, "w": 75, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 75, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0009.png",
"frame": { "x": 237, "y": 0, "w": 77, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 77, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0010.png",
"frame": { "x": 0, "y": 0, "w": 78, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 78, "h": 74 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0011.png",
"frame": { "x": 79, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0012.png",
"frame": { "x": 158, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0013.png",
"frame": { "x": 0, "y": 75, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0014.png",
"frame": { "x": 458, "y": 220, "w": 75, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 3, "w": 75, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0015.png",
"frame": { "x": 150, "y": 364, "w": 73, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 73, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0016.png",
"frame": { "x": 152, "y": 292, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0017.png",
"frame": { "x": 303, "y": 221, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0018.png",
"frame": { "x": 383, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0019.png",
"frame": { "x": 233, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0020.png",
"frame": { "x": 459, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0021.png",
"frame": { "x": 315, "y": 0, "w": 76, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 76, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0022.png",
"frame": { "x": 387, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0023.png",
"frame": { "x": 392, "y": 0, "w": 75, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 75, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0024.png",
"frame": { "x": 237, "y": 0, "w": 77, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 77, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0025.png",
"frame": { "x": 0, "y": 0, "w": 78, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 78, "h": 74 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0026.png",
"frame": { "x": 79, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0027.png",
"frame": { "x": 158, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0028.png",
"frame": { "x": 0, "y": 75, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0029.png",
"frame": { "x": 458, "y": 220, "w": 75, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 3, "w": 75, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0030.png",
"frame": { "x": 150, "y": 364, "w": 73, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 73, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0031.png",
"frame": { "x": 152, "y": 292, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0032.png",
"frame": { "x": 303, "y": 221, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0033.png",
"frame": { "x": 383, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0034.png",
"frame": { "x": 233, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0035.png",
"frame": { "x": 459, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0036.png",
"frame": { "x": 315, "y": 0, "w": 76, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 76, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0037.png",
"frame": { "x": 387, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0038.png",
"frame": { "x": 392, "y": 0, "w": 75, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 75, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0039.png",
"frame": { "x": 237, "y": 0, "w": 77, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 77, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0040.png",
"frame": { "x": 0, "y": 0, "w": 78, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 78, "h": 74 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0041.png",
"frame": { "x": 79, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0042.png",
"frame": { "x": 158, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0043.png",
"frame": { "x": 0, "y": 75, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0044.png",
"frame": { "x": 458, "y": 220, "w": 75, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 3, "w": 75, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0045.png",
"frame": { "x": 150, "y": 364, "w": 73, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 73, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0046.png",
"frame": { "x": 152, "y": 292, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0047.png",
"frame": { "x": 303, "y": 221, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0048.png",
"frame": { "x": 383, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0049.png",
"frame": { "x": 233, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0050.png",
"frame": { "x": 459, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0051.png",
"frame": { "x": 315, "y": 0, "w": 76, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 76, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0052.png",
"frame": { "x": 387, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0053.png",
"frame": { "x": 392, "y": 0, "w": 75, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 75, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0054.png",
"frame": { "x": 237, "y": 0, "w": 77, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 77, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0055.png",
"frame": { "x": 0, "y": 0, "w": 78, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 78, "h": 74 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0056.png",
"frame": { "x": 79, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0057.png",
"frame": { "x": 158, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0058.png",
"frame": { "x": 0, "y": 75, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0059.png",
"frame": { "x": 458, "y": 220, "w": 75, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 3, "w": 75, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0060.png",
"frame": { "x": 150, "y": 364, "w": 73, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 73, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0061.png",
"frame": { "x": 152, "y": 292, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0062.png",
"frame": { "x": 458, "y": 292, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0063.png",
"frame": { "x": 303, "y": 364, "w": 74, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 74, "h": 70 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0064.png",
"frame": { "x": 227, "y": 294, "w": 75, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 75, "h": 70 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0065.png",
"frame": { "x": 378, "y": 364, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 5, "w": 75, "h": 69 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0066.png",
"frame": { "x": 303, "y": 293, "w": 75, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 75, "h": 70 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0067.png",
"frame": { "x": 379, "y": 293, "w": 75, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 4, "w": 75, "h": 70 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0068.png",
"frame": { "x": 454, "y": 364, "w": 72, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 8, "y": 3, "w": 72, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0069.png",
"frame": { "x": 70, "y": 365, "w": 68, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 68, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0070.png",
"frame": { "x": 291, "y": 435, "w": 62, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 17, "y": 2, "w": 62, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0071.png",
"frame": { "x": 378, "y": 434, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 15, "y": 2, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0072.png",
"frame": { "x": 224, "y": 365, "w": 66, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 2, "w": 66, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0073.png",
"frame": { "x": 0, "y": 365, "w": 69, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 8, "y": 2, "w": 69, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0074.png",
"frame": { "x": 229, "y": 220, "w": 73, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 1, "w": 73, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0075.png",
"frame": { "x": 468, "y": 0, "w": 75, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 1, "w": 75, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0076.png",
"frame": { "x": 308, "y": 147, "w": 74, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 1, "w": 74, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0077.png",
"frame": { "x": 0, "y": 148, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0078.png",
"frame": { "x": 383, "y": 220, "w": 74, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 74, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0079.png",
"frame": { "x": 231, "y": 147, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0080.png",
"frame": { "x": 79, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0081.png",
"frame": { "x": 156, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0082.png",
"frame": { "x": 310, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0083.png",
"frame": { "x": 464, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0084.png",
"frame": { "x": 77, "y": 147, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0085.png",
"frame": { "x": 154, "y": 147, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0086.png",
"frame": { "x": 76, "y": 220, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0087.png",
"frame": { "x": 152, "y": 220, "w": 76, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 3, "w": 76, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0088.png",
"frame": { "x": 0, "y": 221, "w": 75, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 3, "w": 75, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0089.png",
"frame": { "x": 0, "y": 293, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0090.png",
"frame": { "x": 75, "y": 293, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
} }
], ],
"meta": { "meta": {
"app": "https://www.codeandweb.com/texturepacker", "app": "https://www.aseprite.org/",
"version": "3.0", "version": "1.3.11-x64",
"smartupdate": "$TexturePacker:SmartUpdate:bc67ee0b37e5c8a13762178a52fad862:1ee199920770bc5797feb94424ff9f9a:947bf84d1af493c62e2cef45bb6c19ad$" "image": "668.png",
"format": "I8",
"size": { "w": 543, "h": 507 },
"scale": "1"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 22 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,821 @@
{ "frames": [
{
"filename": "0001.png",
"frame": { "x": 475, "y": 144, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0002.png",
"frame": { "x": 76, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0003.png",
"frame": { "x": 152, "y": 283, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 4, "w": 75, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0004.png",
"frame": { "x": 73, "y": 284, "w": 74, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 5, "w": 74, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0005.png",
"frame": { "x": 460, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0006.png",
"frame": { "x": 227, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0007.png",
"frame": { "x": 385, "y": 284, "w": 75, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 6, "w": 75, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0008.png",
"frame": { "x": 472, "y": 283, "w": 77, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 6, "w": 77, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0009.png",
"frame": { "x": 233, "y": 282, "w": 77, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 5, "w": 77, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0010.png",
"frame": { "x": 396, "y": 215, "w": 76, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 4, "w": 76, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0011.png",
"frame": { "x": 0, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0012.png",
"frame": { "x": 399, "y": 144, "w": 76, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 2, "w": 76, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0013.png",
"frame": { "x": 431, "y": 73, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0014.png",
"frame": { "x": 242, "y": 142, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0015.png",
"frame": { "x": 156, "y": 213, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0016.png",
"frame": { "x": 475, "y": 144, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0017.png",
"frame": { "x": 76, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0018.png",
"frame": { "x": 152, "y": 283, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 4, "w": 75, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0019.png",
"frame": { "x": 73, "y": 284, "w": 74, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 5, "w": 74, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0020.png",
"frame": { "x": 460, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0021.png",
"frame": { "x": 227, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0022.png",
"frame": { "x": 385, "y": 284, "w": 75, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 6, "w": 75, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0023.png",
"frame": { "x": 472, "y": 283, "w": 77, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 6, "w": 77, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0024.png",
"frame": { "x": 233, "y": 282, "w": 77, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 5, "w": 77, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0025.png",
"frame": { "x": 396, "y": 215, "w": 76, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 4, "w": 76, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0026.png",
"frame": { "x": 0, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0027.png",
"frame": { "x": 399, "y": 144, "w": 76, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 2, "w": 76, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0028.png",
"frame": { "x": 431, "y": 73, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0029.png",
"frame": { "x": 242, "y": 142, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0030.png",
"frame": { "x": 156, "y": 213, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0031.png",
"frame": { "x": 475, "y": 144, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0032.png",
"frame": { "x": 76, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0033.png",
"frame": { "x": 152, "y": 283, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 4, "w": 75, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0034.png",
"frame": { "x": 73, "y": 284, "w": 74, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 5, "w": 74, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0035.png",
"frame": { "x": 460, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0036.png",
"frame": { "x": 227, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0037.png",
"frame": { "x": 385, "y": 284, "w": 75, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 6, "w": 75, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0038.png",
"frame": { "x": 472, "y": 283, "w": 77, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 6, "w": 77, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0039.png",
"frame": { "x": 233, "y": 282, "w": 77, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 5, "w": 77, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0040.png",
"frame": { "x": 396, "y": 215, "w": 76, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 4, "w": 76, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0041.png",
"frame": { "x": 0, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0042.png",
"frame": { "x": 399, "y": 144, "w": 76, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 2, "w": 76, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0043.png",
"frame": { "x": 431, "y": 73, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0044.png",
"frame": { "x": 242, "y": 142, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0045.png",
"frame": { "x": 156, "y": 213, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0046.png",
"frame": { "x": 475, "y": 144, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0047.png",
"frame": { "x": 76, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0048.png",
"frame": { "x": 152, "y": 283, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 4, "w": 75, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0049.png",
"frame": { "x": 73, "y": 284, "w": 74, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 5, "w": 74, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0050.png",
"frame": { "x": 460, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0051.png",
"frame": { "x": 227, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0052.png",
"frame": { "x": 385, "y": 284, "w": 75, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 6, "w": 75, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0053.png",
"frame": { "x": 472, "y": 283, "w": 77, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 6, "w": 77, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0054.png",
"frame": { "x": 233, "y": 282, "w": 77, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 5, "w": 77, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0055.png",
"frame": { "x": 396, "y": 215, "w": 76, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 4, "w": 76, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0056.png",
"frame": { "x": 0, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0057.png",
"frame": { "x": 399, "y": 144, "w": 76, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 2, "w": 76, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0058.png",
"frame": { "x": 431, "y": 73, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0059.png",
"frame": { "x": 242, "y": 142, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0060.png",
"frame": { "x": 156, "y": 213, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0061.png",
"frame": { "x": 475, "y": 144, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0062.png",
"frame": { "x": 0, "y": 144, "w": 78, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 10, "y": 3, "w": 78, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0063.png",
"frame": { "x": 233, "y": 213, "w": 78, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 10, "y": 4, "w": 78, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0064.png",
"frame": { "x": 156, "y": 144, "w": 79, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 10, "y": 4, "w": 79, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0065.png",
"frame": { "x": 319, "y": 144, "w": 80, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 9, "y": 5, "w": 80, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0066.png",
"frame": { "x": 242, "y": 73, "w": 80, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 9, "y": 4, "w": 80, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0067.png",
"frame": { "x": 310, "y": 282, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 4, "w": 75, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0068.png",
"frame": { "x": 534, "y": 350, "w": 71, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 17, "y": 4, "w": 71, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0069.png",
"frame": { "x": 301, "y": 351, "w": 67, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 21, "y": 3, "w": 67, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0070.png",
"frame": { "x": 0, "y": 353, "w": 63, "h": 75 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 25, "y": 3, "w": 63, "h": 75 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0071.png",
"frame": { "x": 204, "y": 417, "w": 63, "h": 75 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 25, "y": 2, "w": 63, "h": 75 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0072.png",
"frame": { "x": 139, "y": 352, "w": 65, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 23, "y": 3, "w": 65, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0073.png",
"frame": { "x": 73, "y": 352, "w": 66, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 21, "y": 3, "w": 66, "h": 72 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0074.png",
"frame": { "x": 368, "y": 351, "w": 69, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 18, "y": 4, "w": 69, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0075.png",
"frame": { "x": 0, "y": 284, "w": 73, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 15, "y": 4, "w": 73, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0076.png",
"frame": { "x": 475, "y": 214, "w": 76, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 4, "w": 76, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0077.png",
"frame": { "x": 319, "y": 212, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 10, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0078.png",
"frame": { "x": 82, "y": 73, "w": 80, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 7, "y": 2, "w": 80, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0079.png",
"frame": { "x": 519, "y": 72, "w": 83, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 1, "w": 83, "h": 72 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0080.png",
"frame": { "x": 434, "y": 0, "w": 85, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 0, "w": 85, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0081.png",
"frame": { "x": 261, "y": 0, "w": 86, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 86, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0082.png",
"frame": { "x": 174, "y": 0, "w": 87, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 87, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0083.png",
"frame": { "x": 87, "y": 0, "w": 87, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 87, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0084.png",
"frame": { "x": 0, "y": 0, "w": 87, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 87, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0085.png",
"frame": { "x": 347, "y": 0, "w": 87, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 1, "w": 87, "h": 72 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0086.png",
"frame": { "x": 519, "y": 0, "w": 85, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 1, "w": 85, "h": 72 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0087.png",
"frame": { "x": 347, "y": 72, "w": 84, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 1, "w": 84, "h": 72 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0088.png",
"frame": { "x": 0, "y": 73, "w": 82, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 6, "y": 2, "w": 82, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0089.png",
"frame": { "x": 162, "y": 73, "w": 80, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 8, "y": 2, "w": 80, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0090.png",
"frame": { "x": 78, "y": 144, "w": 78, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 10, "y": 3, "w": 78, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
}
],
"meta": {
"app": "https://www.aseprite.org/",
"version": "1.3.11-x64",
"image": "668-female.png",
"format": "I8",
"size": { "w": 605, "h": 492 },
"scale": "1"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,146 +1,821 @@
{ { "frames": [
"textures": [
{
"image": "668.png",
"format": "RGBA8888",
"size": {
"w": 146,
"h": 146
},
"scale": 1,
"frames": [
{ {
"filename": "0001.png", "filename": "0001.png",
"frame": { "x": 152, "y": 292, "w": 74, "h": 71 },
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"w": 73, "sourceSize": { "w": 80, "h": 74 },
"h": 61 "duration": 100
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 73,
"h": 61
},
"frame": {
"x": 0,
"y": 0,
"w": 73,
"h": 61
}
}, },
{ {
"filename": "0002.png", "filename": "0002.png",
"frame": { "x": 303, "y": 221, "w": 74, "h": 71 },
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"w": 73, "sourceSize": { "w": 80, "h": 74 },
"h": 61 "duration": 100
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 73,
"h": 61
},
"frame": {
"x": 73,
"y": 0,
"w": 73,
"h": 61
}
},
{
"filename": "0006.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 73,
"h": 61
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 73,
"h": 61
},
"frame": {
"x": 73,
"y": 0,
"w": 73,
"h": 61
}
}, },
{ {
"filename": "0003.png", "filename": "0003.png",
"frame": { "x": 383, "y": 147, "w": 75, "h": 72 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 2, "y": 2, "w": 75, "h": 72 },
"w": 73, "sourceSize": { "w": 80, "h": 74 },
"h": 61 "duration": 100
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 73,
"h": 60
},
"frame": {
"x": 0,
"y": 61,
"w": 73,
"h": 60
}
},
{
"filename": "0005.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 73,
"h": 61
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 73,
"h": 60
},
"frame": {
"x": 0,
"y": 61,
"w": 73,
"h": 60
}
}, },
{ {
"filename": "0004.png", "filename": "0004.png",
"frame": { "x": 233, "y": 74, "w": 76, "h": 72 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"w": 73, "sourceSize": { "w": 80, "h": 74 },
"h": 61 "duration": 100
}, },
"spriteSourceSize": { {
"x": 1, "filename": "0005.png",
"y": 2, "frame": { "x": 459, "y": 147, "w": 75, "h": 72 },
"w": 72, "rotated": false,
"h": 59 "trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
}, },
"frame": { {
"x": 73, "filename": "0006.png",
"y": 61, "frame": { "x": 315, "y": 0, "w": 76, "h": 73 },
"w": 72, "rotated": false,
"h": 59 "trimmed": true,
} "spriteSourceSize": { "x": 0, "y": 1, "w": 76, "h": 73 },
} "sourceSize": { "w": 80, "h": 74 },
] "duration": 100
},
{
"filename": "0007.png",
"frame": { "x": 387, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0008.png",
"frame": { "x": 392, "y": 0, "w": 75, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 75, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0009.png",
"frame": { "x": 237, "y": 0, "w": 77, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 77, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0010.png",
"frame": { "x": 0, "y": 0, "w": 78, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 78, "h": 74 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0011.png",
"frame": { "x": 79, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0012.png",
"frame": { "x": 158, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0013.png",
"frame": { "x": 0, "y": 75, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0014.png",
"frame": { "x": 458, "y": 220, "w": 75, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 3, "w": 75, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0015.png",
"frame": { "x": 150, "y": 364, "w": 73, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 73, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0016.png",
"frame": { "x": 152, "y": 292, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0017.png",
"frame": { "x": 303, "y": 221, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0018.png",
"frame": { "x": 383, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0019.png",
"frame": { "x": 233, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0020.png",
"frame": { "x": 459, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0021.png",
"frame": { "x": 315, "y": 0, "w": 76, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 76, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0022.png",
"frame": { "x": 387, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0023.png",
"frame": { "x": 392, "y": 0, "w": 75, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 75, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0024.png",
"frame": { "x": 237, "y": 0, "w": 77, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 77, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0025.png",
"frame": { "x": 0, "y": 0, "w": 78, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 78, "h": 74 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0026.png",
"frame": { "x": 79, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0027.png",
"frame": { "x": 158, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0028.png",
"frame": { "x": 0, "y": 75, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0029.png",
"frame": { "x": 458, "y": 220, "w": 75, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 3, "w": 75, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0030.png",
"frame": { "x": 150, "y": 364, "w": 73, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 73, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0031.png",
"frame": { "x": 152, "y": 292, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0032.png",
"frame": { "x": 303, "y": 221, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0033.png",
"frame": { "x": 383, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0034.png",
"frame": { "x": 233, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0035.png",
"frame": { "x": 459, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0036.png",
"frame": { "x": 315, "y": 0, "w": 76, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 76, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0037.png",
"frame": { "x": 387, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0038.png",
"frame": { "x": 392, "y": 0, "w": 75, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 75, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0039.png",
"frame": { "x": 237, "y": 0, "w": 77, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 77, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0040.png",
"frame": { "x": 0, "y": 0, "w": 78, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 78, "h": 74 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0041.png",
"frame": { "x": 79, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0042.png",
"frame": { "x": 158, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0043.png",
"frame": { "x": 0, "y": 75, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0044.png",
"frame": { "x": 458, "y": 220, "w": 75, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 3, "w": 75, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0045.png",
"frame": { "x": 150, "y": 364, "w": 73, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 73, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0046.png",
"frame": { "x": 152, "y": 292, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0047.png",
"frame": { "x": 303, "y": 221, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0048.png",
"frame": { "x": 383, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0049.png",
"frame": { "x": 233, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0050.png",
"frame": { "x": 459, "y": 147, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0051.png",
"frame": { "x": 315, "y": 0, "w": 76, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 76, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0052.png",
"frame": { "x": 387, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0053.png",
"frame": { "x": 392, "y": 0, "w": 75, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 75, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0054.png",
"frame": { "x": 237, "y": 0, "w": 77, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 77, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0055.png",
"frame": { "x": 0, "y": 0, "w": 78, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 78, "h": 74 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0056.png",
"frame": { "x": 79, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0057.png",
"frame": { "x": 158, "y": 0, "w": 78, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 78, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0058.png",
"frame": { "x": 0, "y": 75, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0059.png",
"frame": { "x": 458, "y": 220, "w": 75, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 3, "w": 75, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0060.png",
"frame": { "x": 150, "y": 364, "w": 73, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 73, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0061.png",
"frame": { "x": 152, "y": 292, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0062.png",
"frame": { "x": 458, "y": 292, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0063.png",
"frame": { "x": 303, "y": 364, "w": 74, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 74, "h": 70 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0064.png",
"frame": { "x": 227, "y": 294, "w": 75, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 75, "h": 70 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0065.png",
"frame": { "x": 378, "y": 364, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 5, "w": 75, "h": 69 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0066.png",
"frame": { "x": 303, "y": 293, "w": 75, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 75, "h": 70 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0067.png",
"frame": { "x": 379, "y": 293, "w": 75, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 4, "w": 75, "h": 70 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0068.png",
"frame": { "x": 454, "y": 364, "w": 72, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 8, "y": 3, "w": 72, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0069.png",
"frame": { "x": 70, "y": 365, "w": 68, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 68, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0070.png",
"frame": { "x": 291, "y": 435, "w": 62, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 17, "y": 2, "w": 62, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0071.png",
"frame": { "x": 378, "y": 434, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 15, "y": 2, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0072.png",
"frame": { "x": 224, "y": 365, "w": 66, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 2, "w": 66, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0073.png",
"frame": { "x": 0, "y": 365, "w": 69, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 8, "y": 2, "w": 69, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0074.png",
"frame": { "x": 229, "y": 220, "w": 73, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 1, "w": 73, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0075.png",
"frame": { "x": 468, "y": 0, "w": 75, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 1, "w": 75, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0076.png",
"frame": { "x": 308, "y": 147, "w": 74, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 1, "w": 74, "h": 73 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0077.png",
"frame": { "x": 0, "y": 148, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0078.png",
"frame": { "x": 383, "y": 220, "w": 74, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 74, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0079.png",
"frame": { "x": 231, "y": 147, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0080.png",
"frame": { "x": 79, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0081.png",
"frame": { "x": 156, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0082.png",
"frame": { "x": 310, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0083.png",
"frame": { "x": 464, "y": 74, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0084.png",
"frame": { "x": 77, "y": 147, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0085.png",
"frame": { "x": 154, "y": 147, "w": 76, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 76, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0086.png",
"frame": { "x": 76, "y": 220, "w": 75, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 2, "w": 75, "h": 72 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0087.png",
"frame": { "x": 152, "y": 220, "w": 76, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 3, "w": 76, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0088.png",
"frame": { "x": 0, "y": 221, "w": 75, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 3, "w": 75, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0089.png",
"frame": { "x": 0, "y": 293, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
},
{
"filename": "0090.png",
"frame": { "x": 75, "y": 293, "w": 74, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 3, "w": 74, "h": 71 },
"sourceSize": { "w": 80, "h": 74 },
"duration": 100
} }
], ],
"meta": { "meta": {
"app": "https://www.codeandweb.com/texturepacker", "app": "https://www.aseprite.org/",
"version": "3.0", "version": "1.3.11-x64",
"smartupdate": "$TexturePacker:SmartUpdate:0e20693ecfc704a58db8c8592fcdc9cc:659468d84f3cc98068a3454a7c68f1e4:947bf84d1af493c62e2cef45bb6c19ad$" "image": "668.png",
"format": "I8",
"size": { "w": 543, "h": 507 },
"scale": "1"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 22 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,820 @@
{ "frames": [
{
"filename": "0001.png",
"frame": { "x": 475, "y": 144, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0002.png",
"frame": { "x": 76, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0003.png",
"frame": { "x": 152, "y": 283, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 4, "w": 75, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0004.png",
"frame": { "x": 73, "y": 284, "w": 74, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 5, "w": 74, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0005.png",
"frame": { "x": 460, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0006.png",
"frame": { "x": 227, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0007.png",
"frame": { "x": 385, "y": 284, "w": 75, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 6, "w": 75, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0008.png",
"frame": { "x": 472, "y": 283, "w": 77, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 6, "w": 77, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0009.png",
"frame": { "x": 233, "y": 282, "w": 77, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 5, "w": 77, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0010.png",
"frame": { "x": 396, "y": 215, "w": 76, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 4, "w": 76, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0011.png",
"frame": { "x": 0, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0012.png",
"frame": { "x": 399, "y": 144, "w": 76, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 2, "w": 76, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0013.png",
"frame": { "x": 431, "y": 73, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0014.png",
"frame": { "x": 242, "y": 142, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0015.png",
"frame": { "x": 156, "y": 213, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0016.png",
"frame": { "x": 475, "y": 144, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0017.png",
"frame": { "x": 76, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0018.png",
"frame": { "x": 152, "y": 283, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 4, "w": 75, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0019.png",
"frame": { "x": 73, "y": 284, "w": 74, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 5, "w": 74, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0020.png",
"frame": { "x": 460, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0021.png",
"frame": { "x": 227, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0022.png",
"frame": { "x": 385, "y": 284, "w": 75, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 6, "w": 75, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0023.png",
"frame": { "x": 472, "y": 283, "w": 77, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 6, "w": 77, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0024.png",
"frame": { "x": 233, "y": 282, "w": 77, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 5, "w": 77, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0025.png",
"frame": { "x": 396, "y": 215, "w": 76, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 4, "w": 76, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0026.png",
"frame": { "x": 0, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0027.png",
"frame": { "x": 399, "y": 144, "w": 76, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 2, "w": 76, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0028.png",
"frame": { "x": 431, "y": 73, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0029.png",
"frame": { "x": 242, "y": 142, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0030.png",
"frame": { "x": 156, "y": 213, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0031.png",
"frame": { "x": 475, "y": 144, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0032.png",
"frame": { "x": 76, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0033.png",
"frame": { "x": 152, "y": 283, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 4, "w": 75, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0034.png",
"frame": { "x": 73, "y": 284, "w": 74, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 5, "w": 74, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0035.png",
"frame": { "x": 460, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0036.png",
"frame": { "x": 227, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0037.png",
"frame": { "x": 385, "y": 284, "w": 75, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 6, "w": 75, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0038.png",
"frame": { "x": 472, "y": 283, "w": 77, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 6, "w": 77, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0039.png",
"frame": { "x": 233, "y": 282, "w": 77, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 5, "w": 77, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0040.png",
"frame": { "x": 396, "y": 215, "w": 76, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 4, "w": 76, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0041.png",
"frame": { "x": 0, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0042.png",
"frame": { "x": 399, "y": 144, "w": 76, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 2, "w": 76, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0043.png",
"frame": { "x": 431, "y": 73, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0044.png",
"frame": { "x": 242, "y": 142, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0045.png",
"frame": { "x": 156, "y": 213, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0046.png",
"frame": { "x": 475, "y": 144, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0047.png",
"frame": { "x": 76, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0048.png",
"frame": { "x": 152, "y": 283, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 4, "w": 75, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0049.png",
"frame": { "x": 73, "y": 284, "w": 74, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 5, "w": 74, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0050.png",
"frame": { "x": 460, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0051.png",
"frame": { "x": 227, "y": 350, "w": 74, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 14, "y": 6, "w": 74, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0052.png",
"frame": { "x": 385, "y": 284, "w": 75, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 6, "w": 75, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0053.png",
"frame": { "x": 472, "y": 283, "w": 77, "h": 67 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 6, "w": 77, "h": 67 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0054.png",
"frame": { "x": 233, "y": 282, "w": 77, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 5, "w": 77, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0055.png",
"frame": { "x": 396, "y": 215, "w": 76, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 4, "w": 76, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0056.png",
"frame": { "x": 0, "y": 214, "w": 76, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 3, "w": 76, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0057.png",
"frame": { "x": 399, "y": 144, "w": 76, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 2, "w": 76, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0058.png",
"frame": { "x": 431, "y": 73, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0059.png",
"frame": { "x": 242, "y": 142, "w": 77, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 2, "w": 77, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0060.png",
"frame": { "x": 156, "y": 213, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0061.png",
"frame": { "x": 475, "y": 144, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 11, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0062.png",
"frame": { "x": 0, "y": 144, "w": 78, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 10, "y": 3, "w": 78, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0063.png",
"frame": { "x": 233, "y": 213, "w": 78, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 10, "y": 4, "w": 78, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0064.png",
"frame": { "x": 156, "y": 144, "w": 79, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 10, "y": 4, "w": 79, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0065.png",
"frame": { "x": 319, "y": 144, "w": 80, "h": 68 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 9, "y": 5, "w": 80, "h": 68 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0066.png",
"frame": { "x": 242, "y": 73, "w": 80, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 9, "y": 4, "w": 80, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0067.png",
"frame": { "x": 310, "y": 282, "w": 75, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 13, "y": 4, "w": 75, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0068.png",
"frame": { "x": 534, "y": 350, "w": 71, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 17, "y": 4, "w": 71, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0069.png",
"frame": { "x": 301, "y": 351, "w": 67, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 21, "y": 3, "w": 67, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0070.png",
"frame": { "x": 0, "y": 353, "w": 63, "h": 75 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 25, "y": 3, "w": 63, "h": 75 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0071.png",
"frame": { "x": 204, "y": 417, "w": 63, "h": 75 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 25, "y": 2, "w": 63, "h": 75 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0072.png",
"frame": { "x": 139, "y": 352, "w": 65, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 23, "y": 3, "w": 65, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0073.png",
"frame": { "x": 73, "y": 352, "w": 66, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 21, "y": 3, "w": 66, "h": 72 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0074.png",
"frame": { "x": 368, "y": 351, "w": 69, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 18, "y": 4, "w": 69, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0075.png",
"frame": { "x": 0, "y": 284, "w": 73, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 15, "y": 4, "w": 73, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0076.png",
"frame": { "x": 475, "y": 214, "w": 76, "h": 69 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 12, "y": 4, "w": 76, "h": 69 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0077.png",
"frame": { "x": 319, "y": 212, "w": 77, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 10, "y": 3, "w": 77, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0078.png",
"frame": { "x": 82, "y": 73, "w": 80, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 7, "y": 2, "w": 80, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0079.png",
"frame": { "x": 519, "y": 72, "w": 83, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 1, "w": 83, "h": 72 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0080.png",
"frame": { "x": 434, "y": 0, "w": 85, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 0, "w": 85, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0081.png",
"frame": { "x": 261, "y": 0, "w": 86, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 86, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0082.png",
"frame": { "x": 174, "y": 0, "w": 87, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 87, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0083.png",
"frame": { "x": 87, "y": 0, "w": 87, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 87, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0084.png",
"frame": { "x": 0, "y": 0, "w": 87, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 0, "w": 87, "h": 73 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0085.png",
"frame": { "x": 347, "y": 0, "w": 87, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 1, "w": 87, "h": 72 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0086.png",
"frame": { "x": 519, "y": 0, "w": 85, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 1, "w": 85, "h": 72 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0087.png",
"frame": { "x": 347, "y": 72, "w": 84, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 1, "w": 84, "h": 72 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0088.png",
"frame": { "x": 0, "y": 73, "w": 82, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 6, "y": 2, "w": 82, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0089.png",
"frame": { "x": 162, "y": 73, "w": 80, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 8, "y": 2, "w": 80, "h": 71 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
},
{
"filename": "0090.png",
"frame": { "x": 78, "y": 144, "w": 78, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 10, "y": 3, "w": 78, "h": 70 },
"sourceSize": { "w": 89, "h": 78 },
"duration": 100
}
],
"meta": {
"app": "https://www.aseprite.org/",
"version": "1.3.11-x64",
"format": "I8",
"size": { "w": 605, "h": 492 },
"scale": "1"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,820 @@
{ "frames": [
{
"filename": "0001.png",
"frame": { "x": 0, "y": 219, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0002.png",
"frame": { "x": 0, "y": 291, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0003.png",
"frame": { "x": 453, "y": 289, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0004.png",
"frame": { "x": 441, "y": 360, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0005.png",
"frame": { "x": 309, "y": 359, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0006.png",
"frame": { "x": 380, "y": 358, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0007.png",
"frame": { "x": 317, "y": 289, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0008.png",
"frame": { "x": 390, "y": 288, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0009.png",
"frame": { "x": 254, "y": 220, "w": 63, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 7, "w": 63, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0010.png",
"frame": { "x": 63, "y": 220, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0011.png",
"frame": { "x": 399, "y": 216, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0012.png",
"frame": { "x": 64, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0013.png",
"frame": { "x": 138, "y": 74, "w": 63, "h": 78 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 0, "w": 63, "h": 78 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0014.png",
"frame": { "x": 201, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0015.png",
"frame": { "x": 264, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0016.png",
"frame": { "x": 0, "y": 219, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0017.png",
"frame": { "x": 0, "y": 291, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0018.png",
"frame": { "x": 453, "y": 289, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0019.png",
"frame": { "x": 441, "y": 360, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0020.png",
"frame": { "x": 309, "y": 359, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0021.png",
"frame": { "x": 380, "y": 358, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0022.png",
"frame": { "x": 317, "y": 289, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0023.png",
"frame": { "x": 390, "y": 288, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0024.png",
"frame": { "x": 254, "y": 220, "w": 63, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 7, "w": 63, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0025.png",
"frame": { "x": 63, "y": 220, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0026.png",
"frame": { "x": 399, "y": 216, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0027.png",
"frame": { "x": 64, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0028.png",
"frame": { "x": 138, "y": 74, "w": 63, "h": 78 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 0, "w": 63, "h": 78 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0029.png",
"frame": { "x": 201, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0030.png",
"frame": { "x": 264, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0031.png",
"frame": { "x": 0, "y": 219, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0032.png",
"frame": { "x": 0, "y": 291, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0033.png",
"frame": { "x": 453, "y": 289, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0034.png",
"frame": { "x": 441, "y": 360, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0035.png",
"frame": { "x": 309, "y": 359, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0036.png",
"frame": { "x": 380, "y": 358, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0037.png",
"frame": { "x": 317, "y": 289, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0038.png",
"frame": { "x": 390, "y": 288, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0039.png",
"frame": { "x": 254, "y": 220, "w": 63, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 7, "w": 63, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0040.png",
"frame": { "x": 63, "y": 220, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0041.png",
"frame": { "x": 399, "y": 216, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0042.png",
"frame": { "x": 64, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0043.png",
"frame": { "x": 138, "y": 74, "w": 63, "h": 78 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 0, "w": 63, "h": 78 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0044.png",
"frame": { "x": 201, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0045.png",
"frame": { "x": 264, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0046.png",
"frame": { "x": 0, "y": 219, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0047.png",
"frame": { "x": 0, "y": 291, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0048.png",
"frame": { "x": 453, "y": 289, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0049.png",
"frame": { "x": 441, "y": 360, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0050.png",
"frame": { "x": 309, "y": 359, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0051.png",
"frame": { "x": 380, "y": 358, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0052.png",
"frame": { "x": 317, "y": 289, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0053.png",
"frame": { "x": 390, "y": 288, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0054.png",
"frame": { "x": 254, "y": 220, "w": 63, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 7, "w": 63, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0055.png",
"frame": { "x": 63, "y": 220, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0056.png",
"frame": { "x": 399, "y": 216, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0057.png",
"frame": { "x": 64, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0058.png",
"frame": { "x": 138, "y": 74, "w": 63, "h": 78 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 0, "w": 63, "h": 78 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0059.png",
"frame": { "x": 201, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0060.png",
"frame": { "x": 264, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0061.png",
"frame": { "x": 0, "y": 219, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0062.png",
"frame": { "x": 0, "y": 147, "w": 64, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 64, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0063.png",
"frame": { "x": 127, "y": 152, "w": 64, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 64, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0064.png",
"frame": { "x": 465, "y": 146, "w": 65, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 65, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0065.png",
"frame": { "x": 399, "y": 146, "w": 66, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 66, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0066.png",
"frame": { "x": 334, "y": 74, "w": 66, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 7, "w": 66, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0067.png",
"frame": { "x": 191, "y": 220, "w": 63, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 7, "w": 63, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0068.png",
"frame": { "x": 126, "y": 223, "w": 62, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 6, "w": 62, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0069.png",
"frame": { "x": 462, "y": 217, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0070.png",
"frame": { "x": 188, "y": 291, "w": 61, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 6, "w": 61, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0071.png",
"frame": { "x": 249, "y": 291, "w": 60, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 5, "w": 60, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0072.png",
"frame": { "x": 62, "y": 292, "w": 60, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 60, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0073.png",
"frame": { "x": 122, "y": 295, "w": 60, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 60, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0074.png",
"frame": { "x": 182, "y": 363, "w": 59, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 6, "w": 59, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0075.png",
"frame": { "x": 60, "y": 364, "w": 59, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 6, "w": 59, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0076.png",
"frame": { "x": 0, "y": 362, "w": 60, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 7, "w": 60, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0077.png",
"frame": { "x": 327, "y": 217, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0078.png",
"frame": { "x": 268, "y": 74, "w": 66, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 66, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0079.png",
"frame": { "x": 0, "y": 74, "w": 69, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 69, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0080.png",
"frame": { "x": 376, "y": 0, "w": 73, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 73, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0081.png",
"frame": { "x": 227, "y": 0, "w": 75, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 75, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0082.png",
"frame": { "x": 76, "y": 0, "w": 76, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 76, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0083.png",
"frame": { "x": 0, "y": 0, "w": 76, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 76, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0084.png",
"frame": { "x": 152, "y": 0, "w": 75, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 75, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0085.png",
"frame": { "x": 302, "y": 0, "w": 74, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 74, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0086.png",
"frame": { "x": 449, "y": 0, "w": 72, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 5, "w": 72, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0087.png",
"frame": { "x": 449, "y": 73, "w": 71, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 71, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0088.png",
"frame": { "x": 69, "y": 74, "w": 69, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 69, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0089.png",
"frame": { "x": 201, "y": 74, "w": 67, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 67, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0090.png",
"frame": { "x": 334, "y": 145, "w": 65, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 65, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
}
],
"meta": {
"app": "https://www.aseprite.org/",
"version": "1.3.11-x64",
"format": "I8",
"size": { "w": 530, "h": 436 },
"scale": "1"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -1,272 +1,659 @@
{ { "frames": [
"textures": [
{
"image": "667.png",
"format": "RGBA8888",
"size": {
"w": 160,
"h": 160
},
"scale": 1,
"frames": [
{ {
"filename": "0001.png", "filename": "0001.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"w": 40, "sourceSize": { "w": 42, "h": 49 },
"h": 46 "duration": 110
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
}
},
{
"filename": "0007.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
}
},
{
"filename": "0005.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 0,
"y": 46,
"w": 40,
"h": 46
}
},
{
"filename": "0006.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 0,
"y": 92,
"w": 40,
"h": 46
}
},
{
"filename": "0011.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 40,
"y": 0,
"w": 40,
"h": 46
}
},
{
"filename": "0012.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 40,
"h": 46
},
"frame": {
"x": 80,
"y": 0,
"w": 40,
"h": 46
}
}, },
{ {
"filename": "0002.png", "filename": "0002.png",
"frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"w": 40, "sourceSize": { "w": 42, "h": 49 },
"h": 46 "duration": 110
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 45
},
"frame": {
"x": 120,
"y": 0,
"w": 40,
"h": 45
}
},
{
"filename": "0008.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 45
},
"frame": {
"x": 120,
"y": 0,
"w": 40,
"h": 45
}
},
{
"filename": "0004.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 45
},
"frame": {
"x": 120,
"y": 45,
"w": 40,
"h": 45
}
},
{
"filename": "0010.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 45
},
"frame": {
"x": 40,
"y": 90,
"w": 40,
"h": 45
}
}, },
{ {
"filename": "0003.png", "filename": "0003.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"w": 40, "sourceSize": { "w": 42, "h": 49 },
"h": 46 "duration": 110
}, },
"spriteSourceSize": { {
"x": 0, "filename": "0004.png",
"y": 2, "frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"w": 40, "rotated": false,
"h": 44 "trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
}, },
"frame": { {
"x": 40, "filename": "0005.png",
"y": 46, "frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"w": 40, "rotated": false,
"h": 44 "trimmed": true,
} "spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0006.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0007.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0008.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
}, },
{ {
"filename": "0009.png", "filename": "0009.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"w": 40, "sourceSize": { "w": 42, "h": 49 },
"h": 46 "duration": 110
}, },
"spriteSourceSize": { {
"x": 0, "filename": "0010.png",
"y": 2, "frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"w": 40, "rotated": false,
"h": 44 "trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
}, },
"frame": { {
"x": 80, "filename": "0011.png",
"y": 46, "frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"w": 40, "rotated": false,
"h": 44 "trimmed": true,
} "spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
} "sourceSize": { "w": 42, "h": 49 },
] "duration": 110
},
{
"filename": "0012.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0013.png",
"frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0014.png",
"frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0015.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0016.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0017.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0018.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0019.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0020.png",
"frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0021.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0022.png",
"frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0023.png",
"frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0024.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0025.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0026.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0027.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0028.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0029.png",
"frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0030.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0031.png",
"frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0032.png",
"frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0033.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0034.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0035.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0036.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0037.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0038.png",
"frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0039.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0040.png",
"frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0041.png",
"frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0042.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0043.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0044.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0045.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0046.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0047.png",
"frame": { "x": 127, "y": 48, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0048.png",
"frame": { "x": 0, "y": 50, "w": 39, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 39, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0049.png",
"frame": { "x": 40, "y": 50, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0050.png",
"frame": { "x": 120, "y": 96, "w": 38, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 38, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0051.png",
"frame": { "x": 80, "y": 96, "w": 39, "h": 44 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 5, "w": 39, "h": 44 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0052.png",
"frame": { "x": 40, "y": 96, "w": 39, "h": 45 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 4, "w": 39, "h": 45 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0053.png",
"frame": { "x": 85, "y": 49, "w": 40, "h": 46 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 3, "w": 40, "h": 46 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0054.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0055.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0056.png",
"frame": { "x": 85, "y": 0, "w": 41, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 41, "h": 48 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0057.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0058.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0059.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0060.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0061.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0062.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0063.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0064.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0065.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0066.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0067.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0068.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0069.png",
"frame": { "x": 0, "y": 0, "w": 42, "h": 49 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 42, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0070.png",
"frame": { "x": 43, "y": 0, "w": 41, "h": 49 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 0, "w": 41, "h": 49 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0071.png",
"frame": { "x": 85, "y": 0, "w": 41, "h": 48 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 1, "w": 41, "h": 48 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
},
{
"filename": "0072.png",
"frame": { "x": 127, "y": 0, "w": 40, "h": 47 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 2, "w": 40, "h": 47 },
"sourceSize": { "w": 42, "h": 49 },
"duration": 110
} }
], ],
"meta": { "meta": {
"app": "https://www.codeandweb.com/texturepacker", "app": "https://www.aseprite.org/",
"version": "3.0", "version": "1.3.11-x64",
"smartupdate": "$TexturePacker:SmartUpdate:fb79c9185dd67d4776808c312f36f7a4:a6c3c7cc2402b26f23f5ac4e23929ba7:02171d511e760c8a3e1b623ad6bf93f5$" "image": "667.png",
"format": "I8",
"size": { "w": 167, "h": 141 },
"scale": "1"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 29 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,820 @@
{ "frames": [
{
"filename": "0001.png",
"frame": { "x": 0, "y": 219, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0002.png",
"frame": { "x": 0, "y": 291, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0003.png",
"frame": { "x": 453, "y": 289, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0004.png",
"frame": { "x": 441, "y": 360, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0005.png",
"frame": { "x": 309, "y": 359, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0006.png",
"frame": { "x": 380, "y": 358, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0007.png",
"frame": { "x": 317, "y": 289, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0008.png",
"frame": { "x": 390, "y": 288, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0009.png",
"frame": { "x": 254, "y": 220, "w": 63, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 7, "w": 63, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0010.png",
"frame": { "x": 63, "y": 220, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0011.png",
"frame": { "x": 399, "y": 216, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0012.png",
"frame": { "x": 64, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0013.png",
"frame": { "x": 138, "y": 74, "w": 63, "h": 78 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 0, "w": 63, "h": 78 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0014.png",
"frame": { "x": 201, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0015.png",
"frame": { "x": 264, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0016.png",
"frame": { "x": 0, "y": 219, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0017.png",
"frame": { "x": 0, "y": 291, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0018.png",
"frame": { "x": 453, "y": 289, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0019.png",
"frame": { "x": 441, "y": 360, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0020.png",
"frame": { "x": 309, "y": 359, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0021.png",
"frame": { "x": 380, "y": 358, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0022.png",
"frame": { "x": 317, "y": 289, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0023.png",
"frame": { "x": 390, "y": 288, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0024.png",
"frame": { "x": 254, "y": 220, "w": 63, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 7, "w": 63, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0025.png",
"frame": { "x": 63, "y": 220, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0026.png",
"frame": { "x": 399, "y": 216, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0027.png",
"frame": { "x": 64, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0028.png",
"frame": { "x": 138, "y": 74, "w": 63, "h": 78 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 0, "w": 63, "h": 78 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0029.png",
"frame": { "x": 201, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0030.png",
"frame": { "x": 264, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0031.png",
"frame": { "x": 0, "y": 219, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0032.png",
"frame": { "x": 0, "y": 291, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0033.png",
"frame": { "x": 453, "y": 289, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0034.png",
"frame": { "x": 441, "y": 360, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0035.png",
"frame": { "x": 309, "y": 359, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0036.png",
"frame": { "x": 380, "y": 358, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0037.png",
"frame": { "x": 317, "y": 289, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0038.png",
"frame": { "x": 390, "y": 288, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0039.png",
"frame": { "x": 254, "y": 220, "w": 63, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 7, "w": 63, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0040.png",
"frame": { "x": 63, "y": 220, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0041.png",
"frame": { "x": 399, "y": 216, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0042.png",
"frame": { "x": 64, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0043.png",
"frame": { "x": 138, "y": 74, "w": 63, "h": 78 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 0, "w": 63, "h": 78 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0044.png",
"frame": { "x": 201, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0045.png",
"frame": { "x": 264, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0046.png",
"frame": { "x": 0, "y": 219, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0047.png",
"frame": { "x": 0, "y": 291, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0048.png",
"frame": { "x": 453, "y": 289, "w": 62, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 62, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0049.png",
"frame": { "x": 441, "y": 360, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0050.png",
"frame": { "x": 309, "y": 359, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0051.png",
"frame": { "x": 380, "y": 358, "w": 61, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 8, "w": 61, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0052.png",
"frame": { "x": 317, "y": 289, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0053.png",
"frame": { "x": 390, "y": 288, "w": 63, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 63, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0054.png",
"frame": { "x": 254, "y": 220, "w": 63, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 7, "w": 63, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0055.png",
"frame": { "x": 63, "y": 220, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0056.png",
"frame": { "x": 399, "y": 216, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0057.png",
"frame": { "x": 64, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0058.png",
"frame": { "x": 138, "y": 74, "w": 63, "h": 78 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 0, "w": 63, "h": 78 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0059.png",
"frame": { "x": 201, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0060.png",
"frame": { "x": 264, "y": 147, "w": 63, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 63, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0061.png",
"frame": { "x": 0, "y": 219, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0062.png",
"frame": { "x": 0, "y": 147, "w": 64, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 64, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0063.png",
"frame": { "x": 127, "y": 152, "w": 64, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 64, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0064.png",
"frame": { "x": 465, "y": 146, "w": 65, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 7, "w": 65, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0065.png",
"frame": { "x": 399, "y": 146, "w": 66, "h": 70 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 8, "w": 66, "h": 70 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0066.png",
"frame": { "x": 334, "y": 74, "w": 66, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 7, "w": 66, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0067.png",
"frame": { "x": 191, "y": 220, "w": 63, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 7, "w": 63, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0068.png",
"frame": { "x": 126, "y": 223, "w": 62, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 6, "w": 62, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0069.png",
"frame": { "x": 462, "y": 217, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 0, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0070.png",
"frame": { "x": 188, "y": 291, "w": 61, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 1, "y": 6, "w": 61, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0071.png",
"frame": { "x": 249, "y": 291, "w": 60, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 2, "y": 5, "w": 60, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0072.png",
"frame": { "x": 62, "y": 292, "w": 60, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 60, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0073.png",
"frame": { "x": 122, "y": 295, "w": 60, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 60, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0074.png",
"frame": { "x": 182, "y": 363, "w": 59, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 6, "w": 59, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0075.png",
"frame": { "x": 60, "y": 364, "w": 59, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 6, "w": 59, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0076.png",
"frame": { "x": 0, "y": 362, "w": 60, "h": 71 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 7, "w": 60, "h": 71 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0077.png",
"frame": { "x": 327, "y": 217, "w": 63, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 6, "w": 63, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0078.png",
"frame": { "x": 268, "y": 74, "w": 66, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 66, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0079.png",
"frame": { "x": 0, "y": 74, "w": 69, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 5, "y": 5, "w": 69, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0080.png",
"frame": { "x": 376, "y": 0, "w": 73, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 73, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0081.png",
"frame": { "x": 227, "y": 0, "w": 75, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 75, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0082.png",
"frame": { "x": 76, "y": 0, "w": 76, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 76, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0083.png",
"frame": { "x": 0, "y": 0, "w": 76, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 76, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0084.png",
"frame": { "x": 152, "y": 0, "w": 75, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 75, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0085.png",
"frame": { "x": 302, "y": 0, "w": 74, "h": 74 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 4, "w": 74, "h": 74 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0086.png",
"frame": { "x": 449, "y": 0, "w": 72, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 4, "y": 5, "w": 72, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0087.png",
"frame": { "x": 449, "y": 73, "w": 71, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 71, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0088.png",
"frame": { "x": 69, "y": 74, "w": 69, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 69, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0089.png",
"frame": { "x": 201, "y": 74, "w": 67, "h": 73 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 5, "w": 67, "h": 73 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
},
{
"filename": "0090.png",
"frame": { "x": 334, "y": 145, "w": 65, "h": 72 },
"rotated": false,
"trimmed": true,
"spriteSourceSize": { "x": 3, "y": 6, "w": 65, "h": 72 },
"sourceSize": { "w": 80, "h": 78 },
"duration": 100
}
],
"meta": {
"app": "https://www.aseprite.org/",
"version": "1.3.11-x64",
"format": "I8",
"size": { "w": 530, "h": 436 },
"scale": "1"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,41 +0,0 @@
{
"textures": [
{
"image": "668-female.png",
"format": "RGBA8888",
"size": {
"w": 72,
"h": 72
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 63,
"h": 72
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 63,
"h": 72
},
"frame": {
"x": 0,
"y": 0,
"w": 63,
"h": 72
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:bf61792d4b290b767953cfbbc5b6234f:c16e73a6866720618f3b4f8e3e0a0877:d99ed0e84a0695b54e479aa98271aba1$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 899 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 899 B

After

Width:  |  Height:  |  Size: 940 B

View File

@ -1397,7 +1397,7 @@
"612": [0, 1, 1], "612": [0, 1, 1],
"616": [0, 1, 1], "616": [0, 1, 1],
"617": [0, 1, 1], "617": [0, 1, 1],
"618": [0, 2, 2], "618": [0, 1, 1],
"619": [0, 1, 1], "619": [0, 1, 1],
"620": [0, 1, 1], "620": [0, 1, 1],
"621": [0, 1, 1], "621": [0, 1, 1],
@ -2143,7 +2143,9 @@
"6705": [0, 1, 1], "6705": [0, 1, 1],
"6706": [0, 1, 1], "6706": [0, 1, 1],
"6713": [0, 1, 1], "6713": [0, 1, 1],
"female": {}, "female": {
"6215": [0, 1, 1]
},
"back": { "back": {
"3-mega": [0, 2, 2], "3-mega": [0, 2, 2],
"6-mega-x": [0, 2, 2], "6-mega-x": [0, 2, 2],
@ -2470,7 +2472,10 @@
"6571": [0, 1, 1], "6571": [0, 1, 1],
"6705": [0, 1, 1], "6705": [0, 1, 1],
"6706": [0, 1, 1], "6706": [0, 1, 1],
"6713": [0, 1, 1] "6713": [0, 1, 1],
"female": {
"6215": [0, 1, 1]
}
} }
} }
} }

View File

@ -0,0 +1,40 @@
{
"1": {
"cebd00": "bdac99",
"ffff00": "f3e6dd",
"6b6319": "987b6d",
"081019": "081019",
"52423a": "312118",
"6b524a": "4a342a",
"bd846b": "8c3841",
"846b63": "6b3838",
"d69c84": "ad4c4c",
"efce42": "eac2bd",
"d6cec5": "d6cec5",
"ffffff": "ffffff",
"081018": "081018",
"735a52": "564038",
"735a53": "564038",
"9c8473": "a08773",
"bda59c": "e6dbd6"
},
"2": {
"cebd00": "58536b",
"ffff00": "707488",
"6b6319": "39314a",
"081019": "081019",
"52423a": "5a2e2e",
"6b524a": "804e48",
"bd846b": "cec9b1",
"846b63": "9c7765",
"d69c84": "f0ead6",
"efce42": "9fadb9",
"d6cec5": "4c8c4c",
"ffffff": "79a962",
"081018": "204a29",
"735a52": "885011",
"735a53": "735555",
"9c8473": "c18a2c",
"bda59c": "efc44b"
}
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -0,0 +1,32 @@
{
"1": {
"724ca2": "12968b",
"9c9bce": "ae8976",
"503678": "0f5d6d",
"956cbe": "31dabb",
"514a80": "402010",
"dcdbf7": "d0b3a4",
"080808": "080808",
"28234b": "220d0a",
"7d6ca4": "672e26",
"584d80": "401914",
"f6f6ff": "f6f6ff",
"bdbdc5": "bdbdc5",
"c52973": "ea903f"
},
"2": {
"724ca2": "982e33",
"9c9bce": "3c8775",
"503678": "601522",
"956cbe": "cc5427",
"514a80": "14273a",
"dcdbf7": "60ae7e",
"080808": "080808",
"28234b": "0a191e",
"7d6ca4": "395962",
"584d80": "1c3942",
"f6f6ff": "f6f6ff",
"bdbdc5": "bdbdc5",
"c52973": "f49633"
}
}

View File

@ -0,0 +1,38 @@
{
"1": {
"503678": "0f5d6d",
"080808": "080808",
"514a80": "402010",
"956cbe": "31dabb",
"9c9bce": "ae8976",
"724ca2": "12968b",
"dcdbf7": "d0b3a4",
"7d6ca4": "853a36",
"c58b08": "6e6f6f",
"ffde7b": "a7a7a7",
"584d80": "562627",
"28234b": "220d0a",
"c52973": "ea903f",
"bdbdc5": "bdbdc5",
"f6f6ff": "f6f6ff",
"000000": "000000"
},
"2": {
"503678": "601522",
"080808": "080808",
"514a80": "14273a",
"956cbe": "cc5427",
"9c9bce": "3c8775",
"724ca2": "982e33",
"dcdbf7": "60ae7e",
"7d6ca4": "395962",
"c58b08": "ffa341",
"ffde7b": "ffe07e",
"584d80": "1c3942",
"28234b": "0a191e",
"c52973": "f49633",
"bdbdc5": "bdbdc5",
"f6f6ff": "f6f6ff",
"000000": "000000"
}
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

@ -1 +1 @@
Subproject commit 2d3765a4f035b4916523bf75b754e153e9d65134 Subproject commit 58dda14ee834204c4bd5ece47694a3c068df4b0e

View File

@ -161,6 +161,7 @@ export default class BattleScene extends SceneBase {
public reroll: boolean = false; public reroll: boolean = false;
public shopCursorTarget: number = ShopCursorTarget.REWARDS; public shopCursorTarget: number = ShopCursorTarget.REWARDS;
public commandCursorMemory: boolean = false; public commandCursorMemory: boolean = false;
public dexForDevs: boolean = false;
public showMovesetFlyout: boolean = true; public showMovesetFlyout: boolean = true;
public showArenaFlyout: boolean = true; public showArenaFlyout: boolean = true;
public showTimeOfDayWidget: boolean = true; public showTimeOfDayWidget: boolean = true;
@ -1400,8 +1401,8 @@ export default class BattleScene extends SceneBase {
return this.currentBattle; return this.currentBattle;
} }
newArena(biome: Biome): Arena { newArena(biome: Biome, playerFaints?: number): Arena {
this.arena = new Arena(biome, Biome[biome].toLowerCase()); this.arena = new Arena(biome, Biome[biome].toLowerCase(), playerFaints);
this.eventTarget.dispatchEvent(new NewArenaEvent()); this.eventTarget.dispatchEvent(new NewArenaEvent());
this.arenaBg.pipelineData = { terrainColorRatio: this.arena.getBgTerrainColorRatioForBiome() }; this.arenaBg.pipelineData = { terrainColorRatio: this.arena.getBgTerrainColorRatioForBiome() };
@ -2352,14 +2353,14 @@ export default class BattleScene extends SceneBase {
} }
/** /**
* Adds Phase to the end of phaseQueuePrepend, or at phaseQueuePrependSpliceIndex * Adds Phase(s) to the end of phaseQueuePrepend, or at phaseQueuePrependSpliceIndex
* @param phase {@linkcode Phase} the phase to add * @param phases {@linkcode Phase} the phase(s) to add
*/ */
unshiftPhase(phase: Phase): void { unshiftPhase(...phases: Phase[]): void {
if (this.phaseQueuePrependSpliceIndex === -1) { if (this.phaseQueuePrependSpliceIndex === -1) {
this.phaseQueuePrepend.push(phase); this.phaseQueuePrepend.push(...phases);
} else { } else {
this.phaseQueuePrepend.splice(this.phaseQueuePrependSpliceIndex, 0, phase); this.phaseQueuePrepend.splice(this.phaseQueuePrependSpliceIndex, 0, ...phases);
} }
} }
@ -2497,32 +2498,38 @@ export default class BattleScene extends SceneBase {
* @param targetPhase {@linkcode Phase} the type of phase to search for in phaseQueue * @param targetPhase {@linkcode Phase} the type of phase to search for in phaseQueue
* @returns boolean if a targetPhase was found and added * @returns boolean if a targetPhase was found and added
*/ */
prependToPhase(phase: Phase, targetPhase: Constructor<Phase>): boolean { prependToPhase(phase: Phase | Phase [], targetPhase: Constructor<Phase>): boolean {
if (!Array.isArray(phase)) {
phase = [ phase ];
}
const targetIndex = this.phaseQueue.findIndex(ph => ph instanceof targetPhase); const targetIndex = this.phaseQueue.findIndex(ph => ph instanceof targetPhase);
if (targetIndex !== -1) { if (targetIndex !== -1) {
this.phaseQueue.splice(targetIndex, 0, phase); this.phaseQueue.splice(targetIndex, 0, ...phase);
return true; return true;
} else { } else {
this.unshiftPhase(phase); this.unshiftPhase(...phase);
return false; return false;
} }
} }
/** /**
* Tries to add the input phase to index after target phase in the {@linkcode phaseQueue}, else simply calls {@linkcode unshiftPhase()} * Tries to add the input phase(s) to index after target phase in the {@linkcode phaseQueue}, else simply calls {@linkcode unshiftPhase()}
* @param phase {@linkcode Phase} the phase to be added * @param phase {@linkcode Phase} the phase(s) to be added
* @param targetPhase {@linkcode Phase} the type of phase to search for in {@linkcode phaseQueue} * @param targetPhase {@linkcode Phase} the type of phase to search for in {@linkcode phaseQueue}
* @returns `true` if a `targetPhase` was found to append to * @returns `true` if a `targetPhase` was found to append to
*/ */
appendToPhase(phase: Phase, targetPhase: Constructor<Phase>): boolean { appendToPhase(phase: Phase | Phase[], targetPhase: Constructor<Phase>): boolean {
if (!Array.isArray(phase)) {
phase = [ phase ];
}
const targetIndex = this.phaseQueue.findIndex(ph => ph instanceof targetPhase); const targetIndex = this.phaseQueue.findIndex(ph => ph instanceof targetPhase);
if (targetIndex !== -1 && this.phaseQueue.length > targetIndex) { if (targetIndex !== -1 && this.phaseQueue.length > targetIndex) {
this.phaseQueue.splice(targetIndex + 1, 0, phase); this.phaseQueue.splice(targetIndex + 1, 0, ...phase);
return true; return true;
} else { } else {
this.unshiftPhase(phase); this.unshiftPhase(...phase);
return false; return false;
} }
} }

View File

@ -101,10 +101,15 @@ export default class Battle {
public battleSeed: string = Utils.randomString(16, true); public battleSeed: string = Utils.randomString(16, true);
private battleSeedState: string | null = null; private battleSeedState: string | null = null;
public moneyScattered: number = 0; public moneyScattered: number = 0;
/** Primarily for double battles, keeps track of last enemy and player pokemon that triggered its ability or used a move */
public lastEnemyInvolved: number;
public lastPlayerInvolved: number;
public lastUsedPokeball: PokeballType | null = null; public lastUsedPokeball: PokeballType | null = null;
/** The number of times a Pokemon on the player's side has fainted this battle */ /**
public playerFaints: number = 0; * Saves the number of times a Pokemon on the enemy's side has fainted during this battle.
/** The number of times a Pokemon on the enemy's side has fainted this battle */ * This is saved here since we encounter a new enemy every wave.
* {@linkcode globalScene.arena.playerFaints} is the corresponding faint counter for the player and needs to be save across waves (reset every arena encounter).
*/
public enemyFaints: number = 0; public enemyFaints: number = 0;
public playerFaintsHistory: FaintLogEntry[] = []; public playerFaintsHistory: FaintLogEntry[] = [];
public enemyFaintsHistory: FaintLogEntry[] = []; public enemyFaintsHistory: FaintLogEntry[] = [];
@ -115,7 +120,7 @@ export default class Battle {
private rngCounter: number = 0; private rngCounter: number = 0;
constructor(gameMode: GameMode, waveIndex: number, battleType: BattleType, trainer?: Trainer, double?: boolean) { constructor(gameMode: GameMode, waveIndex: number, battleType: BattleType, trainer?: Trainer, double: boolean = false) {
this.gameMode = gameMode; this.gameMode = gameMode;
this.waveIndex = waveIndex; this.waveIndex = waveIndex;
this.battleType = battleType; this.battleType = battleType;
@ -124,7 +129,7 @@ export default class Battle {
this.enemyLevels = battleType !== BattleType.TRAINER this.enemyLevels = battleType !== BattleType.TRAINER
? new Array(double ? 2 : 1).fill(null).map(() => this.getLevelForWave()) ? new Array(double ? 2 : 1).fill(null).map(() => this.getLevelForWave())
: trainer?.getPartyLevels(this.waveIndex); : trainer?.getPartyLevels(this.waveIndex);
this.double = double ?? false; this.double = double;
} }
private initBattleSpec(): void { private initBattleSpec(): void {

View File

@ -1037,7 +1037,7 @@ export class PostDefendPerishSongAbAttr extends PostDefendAbAttr {
override canApplyPostDefend(pokemon: Pokemon, passive: boolean, simulated: boolean, attacker: Pokemon, move: Move, hitResult: HitResult | null, args: any[]): boolean { override canApplyPostDefend(pokemon: Pokemon, passive: boolean, simulated: boolean, attacker: Pokemon, move: Move, hitResult: HitResult | null, args: any[]): boolean {
return (move.checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon) && !move.hitsSubstitute(attacker, pokemon)) return (move.checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon) && !move.hitsSubstitute(attacker, pokemon))
&& !(pokemon.getTag(BattlerTagType.PERISH_SONG) || attacker.getTag(BattlerTagType.PERISH_SONG)); && !attacker.getTag(BattlerTagType.PERISH_SONG);
} }
override applyPostDefend(pokemon: Pokemon, _passive: boolean, simulated: boolean, attacker: Pokemon, move: Move, _hitResult: HitResult, _args: any[]): boolean { override applyPostDefend(pokemon: Pokemon, _passive: boolean, simulated: boolean, attacker: Pokemon, move: Move, _hitResult: HitResult, _args: any[]): boolean {
@ -2857,6 +2857,44 @@ export class PreStatStageChangeAbAttr extends AbAttr {
} }
} }
/**
* Reflect all {@linkcode BattleStat} reductions caused by other Pokémon's moves and Abilities.
* Currently only applies to Mirror Armor.
*/
export class ReflectStatStageChangeAbAttr extends PreStatStageChangeAbAttr {
/** {@linkcode BattleStat} to reflect */
private reflectedStat? : BattleStat;
/**
* Apply the {@linkcode ReflectStatStageChangeAbAttr} to an interaction
* @param _pokemon The user pokemon
* @param _passive N/A
* @param simulated `true` if the ability is being simulated by the AI
* @param stat the {@linkcode BattleStat} being affected
* @param cancelled The {@linkcode Utils.BooleanHolder} that will be set to true due to reflection
* @param args
* @returns true because it reflects any stat being lowered
*/
applyPreStatStageChange(_pokemon: Pokemon, _passive: boolean, simulated: boolean, stat: BattleStat, cancelled: Utils.BooleanHolder, args: any[]): boolean {
const attacker: Pokemon = args[0];
const stages = args[1];
this.reflectedStat = stat;
if (!simulated) {
globalScene.unshiftPhase(new StatStageChangePhase(attacker.getBattlerIndex(), false, [ stat ], stages, true, false, true, null, true));
}
cancelled.value = true;
return true;
}
getTriggerMessage(pokemon: Pokemon, abilityName: string, ..._args: any[]): string {
return i18next.t("abilityTriggers:protectStat", {
pokemonNameWithAffix: getPokemonNameWithAffix(pokemon),
abilityName,
statName: this.reflectedStat ? i18next.t(getStatKey(this.reflectedStat)) : i18next.t("battle:stats")
});
}
}
/** /**
* Protect one or all {@linkcode BattleStat} from reductions caused by other Pokémon's moves and Abilities * Protect one or all {@linkcode BattleStat} from reductions caused by other Pokémon's moves and Abilities
*/ */
@ -4621,6 +4659,13 @@ export class InfiltratorAbAttr extends AbAttr {
} }
} }
/**
* Attribute implementing the effects of {@link https://bulbapedia.bulbagarden.net/wiki/Magic_Bounce_(ability) | Magic Bounce}.
* Allows the source to bounce back {@linkcode MoveFlags.REFLECTABLE | Reflectable}
* moves as if the user had used {@linkcode Moves.MAGIC_COAT | Magic Coat}.
*/
export class ReflectStatusMoveAbAttr extends AbAttr { }
export class UncopiableAbilityAbAttr extends AbAttr { export class UncopiableAbilityAbAttr extends AbAttr {
constructor() { constructor() {
super(false); super(false);
@ -6025,8 +6070,11 @@ export function initAbilities() {
}, Stat.SPD, 1) }, Stat.SPD, 1)
.attr(PostIntimidateStatStageChangeAbAttr, [ Stat.SPD ], 1), .attr(PostIntimidateStatStageChangeAbAttr, [ Stat.SPD ], 1),
new Ability(Abilities.MAGIC_BOUNCE, 5) new Ability(Abilities.MAGIC_BOUNCE, 5)
.attr(ReflectStatusMoveAbAttr)
.ignorable() .ignorable()
.unimplemented(), // Interactions with stomping tantrum, instruct, encore, and probably other moves that
// rely on move history
.edgeCase(),
new Ability(Abilities.SAP_SIPPER, 5) new Ability(Abilities.SAP_SIPPER, 5)
.attr(TypeImmunityStatStageChangeAbAttr, Type.GRASS, Stat.ATK, 1) .attr(TypeImmunityStatStageChangeAbAttr, Type.GRASS, Stat.ATK, 1)
.ignorable(), .ignorable(),
@ -6323,8 +6371,8 @@ export function initAbilities() {
new Ability(Abilities.PROPELLER_TAIL, 8) new Ability(Abilities.PROPELLER_TAIL, 8)
.attr(BlockRedirectAbAttr), .attr(BlockRedirectAbAttr),
new Ability(Abilities.MIRROR_ARMOR, 8) new Ability(Abilities.MIRROR_ARMOR, 8)
.ignorable() .attr(ReflectStatStageChangeAbAttr)
.unimplemented(), .ignorable(),
/** /**
* Right now, the logic is attached to Surf and Dive moves. Ideally, the post-defend/hit should be an * Right now, the logic is attached to Surf and Dive moves. Ideally, the post-defend/hit should be an
* ability attribute but the current implementation of move effects for BattlerTag does not support this- in the case * ability attribute but the current implementation of move effects for BattlerTag does not support this- in the case
@ -6351,7 +6399,8 @@ export function initAbilities() {
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => move.hasFlag(MoveFlags.SOUND_BASED), 0.5) .attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => move.hasFlag(MoveFlags.SOUND_BASED), 0.5)
.ignorable(), .ignorable(),
new Ability(Abilities.SAND_SPIT, 8) new Ability(Abilities.SAND_SPIT, 8)
.attr(PostDefendWeatherChangeAbAttr, WeatherType.SANDSTORM, (target, user, move) => move.category !== MoveCategory.STATUS), .attr(PostDefendWeatherChangeAbAttr, WeatherType.SANDSTORM, (target, user, move) => move.category !== MoveCategory.STATUS)
.bypassFaint(),
new Ability(Abilities.ICE_SCALES, 8) new Ability(Abilities.ICE_SCALES, 8)
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => move.category === MoveCategory.SPECIAL, 0.5) .attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => move.category === MoveCategory.SPECIAL, 0.5)
.ignorable(), .ignorable(),
@ -6384,7 +6433,8 @@ export function initAbilities() {
new Ability(Abilities.STEELY_SPIRIT, 8) new Ability(Abilities.STEELY_SPIRIT, 8)
.attr(UserFieldMoveTypePowerBoostAbAttr, Type.STEEL), .attr(UserFieldMoveTypePowerBoostAbAttr, Type.STEEL),
new Ability(Abilities.PERISH_BODY, 8) new Ability(Abilities.PERISH_BODY, 8)
.attr(PostDefendPerishSongAbAttr, 4), .attr(PostDefendPerishSongAbAttr, 4)
.bypassFaint(),
new Ability(Abilities.WANDERING_SPIRIT, 8) new Ability(Abilities.WANDERING_SPIRIT, 8)
.attr(PostDefendAbilitySwapAbAttr) .attr(PostDefendAbilitySwapAbAttr)
.bypassFaint() .bypassFaint()
@ -6442,7 +6492,8 @@ export function initAbilities() {
.attr(PostDefendAbilityGiveAbAttr, Abilities.LINGERING_AROMA) .attr(PostDefendAbilityGiveAbAttr, Abilities.LINGERING_AROMA)
.bypassFaint(), .bypassFaint(),
new Ability(Abilities.SEED_SOWER, 9) new Ability(Abilities.SEED_SOWER, 9)
.attr(PostDefendTerrainChangeAbAttr, TerrainType.GRASSY), .attr(PostDefendTerrainChangeAbAttr, TerrainType.GRASSY)
.bypassFaint(),
new Ability(Abilities.THERMAL_EXCHANGE, 9) new Ability(Abilities.THERMAL_EXCHANGE, 9)
.attr(PostDefendStatStageChangeAbAttr, (target, user, move) => user.getMoveType(move) === Type.FIRE && move.category !== MoveCategory.STATUS, Stat.ATK, 1) .attr(PostDefendStatStageChangeAbAttr, (target, user, move) => user.getMoveType(move) === Type.FIRE && move.category !== MoveCategory.STATUS, Stat.ATK, 1)
.attr(StatusEffectImmunityAbAttr, StatusEffect.BURN) .attr(StatusEffectImmunityAbAttr, StatusEffect.BURN)
@ -6492,15 +6543,13 @@ export function initAbilities() {
.attr(PostWeatherChangeAddBattlerTagAttr, BattlerTagType.PROTOSYNTHESIS, 0, WeatherType.SUNNY, WeatherType.HARSH_SUN) .attr(PostWeatherChangeAddBattlerTagAttr, BattlerTagType.PROTOSYNTHESIS, 0, WeatherType.SUNNY, WeatherType.HARSH_SUN)
.attr(UncopiableAbilityAbAttr) .attr(UncopiableAbilityAbAttr)
.attr(UnswappableAbilityAbAttr) .attr(UnswappableAbilityAbAttr)
.attr(NoTransformAbilityAbAttr) .attr(NoTransformAbilityAbAttr),
.partial(), // While setting the tag, the getbattlestat should ignore all modifiers to stats except stat stages
new Ability(Abilities.QUARK_DRIVE, 9) new Ability(Abilities.QUARK_DRIVE, 9)
.conditionalAttr(getTerrainCondition(TerrainType.ELECTRIC), PostSummonAddBattlerTagAbAttr, BattlerTagType.QUARK_DRIVE, 0, true) .conditionalAttr(getTerrainCondition(TerrainType.ELECTRIC), PostSummonAddBattlerTagAbAttr, BattlerTagType.QUARK_DRIVE, 0, true)
.attr(PostTerrainChangeAddBattlerTagAttr, BattlerTagType.QUARK_DRIVE, 0, TerrainType.ELECTRIC) .attr(PostTerrainChangeAddBattlerTagAttr, BattlerTagType.QUARK_DRIVE, 0, TerrainType.ELECTRIC)
.attr(UncopiableAbilityAbAttr) .attr(UncopiableAbilityAbAttr)
.attr(UnswappableAbilityAbAttr) .attr(UnswappableAbilityAbAttr)
.attr(NoTransformAbilityAbAttr) .attr(NoTransformAbilityAbAttr),
.partial(), // While setting the tag, the getbattlestat should ignore all modifiers to stats except stat stages
new Ability(Abilities.GOOD_AS_GOLD, 9) new Ability(Abilities.GOOD_AS_GOLD, 9)
.attr(MoveImmunityAbAttr, (pokemon, attacker, move) => pokemon !== attacker && move.category === MoveCategory.STATUS && ![ MoveTarget.ENEMY_SIDE, MoveTarget.BOTH_SIDES, MoveTarget.USER_SIDE ].includes(move.moveTarget)) .attr(MoveImmunityAbAttr, (pokemon, attacker, move) => pokemon !== attacker && move.category === MoveCategory.STATUS && ![ MoveTarget.ENEMY_SIDE, MoveTarget.BOTH_SIDES, MoveTarget.USER_SIDE ].includes(move.moveTarget))
.ignorable(), .ignorable(),
@ -6533,8 +6582,8 @@ export function initAbilities() {
new Ability(Abilities.SHARPNESS, 9) new Ability(Abilities.SHARPNESS, 9)
.attr(MovePowerBoostAbAttr, (user, target, move) => move.hasFlag(MoveFlags.SLICING_MOVE), 1.5), .attr(MovePowerBoostAbAttr, (user, target, move) => move.hasFlag(MoveFlags.SLICING_MOVE), 1.5),
new Ability(Abilities.SUPREME_OVERLORD, 9) new Ability(Abilities.SUPREME_OVERLORD, 9)
.attr(VariableMovePowerBoostAbAttr, (user, target, move) => 1 + 0.1 * Math.min(user.isPlayer() ? globalScene.currentBattle.playerFaints : globalScene.currentBattle.enemyFaints, 5)) .attr(VariableMovePowerBoostAbAttr, (user, target, move) => 1 + 0.1 * Math.min(user.isPlayer() ? globalScene.arena.playerFaints : globalScene.currentBattle.enemyFaints, 5))
.partial(), // Counter resets every wave instead of on arena reset .partial(), // Should only boost once, on summon
new Ability(Abilities.COSTAR, 9) new Ability(Abilities.COSTAR, 9)
.attr(PostSummonCopyAllyStatsAbAttr), .attr(PostSummonCopyAllyStatsAbAttr),
new Ability(Abilities.TOXIC_DEBRIS, 9) new Ability(Abilities.TOXIC_DEBRIS, 9)

View File

@ -910,7 +910,7 @@ class StickyWebTag extends ArenaTrapTag {
if (!cancelled.value) { if (!cancelled.value) {
globalScene.queueMessage(i18next.t("arenaTag:stickyWebActivateTrap", { pokemonName: pokemon.getNameToRender() })); globalScene.queueMessage(i18next.t("arenaTag:stickyWebActivateTrap", { pokemonName: pokemon.getNameToRender() }));
const stages = new NumberHolder(-1); const stages = new NumberHolder(-1);
globalScene.unshiftPhase(new StatStageChangePhase(pokemon.getBattlerIndex(), false, [ Stat.SPD ], stages.value)); globalScene.unshiftPhase(new StatStageChangePhase(pokemon.getBattlerIndex(), false, [ Stat.SPD ], stages.value, true, false, true, null, false, true));
return true; return true;
} }
} }

View File

@ -7,10 +7,10 @@ import { Species } from "#enums/species";
export const speciesEggMoves = { export const speciesEggMoves = {
[Species.BULBASAUR]: [ Moves.SAPPY_SEED, Moves.MALIGNANT_CHAIN, Moves.EARTH_POWER, Moves.MATCHA_GOTCHA ], [Species.BULBASAUR]: [ Moves.SAPPY_SEED, Moves.MALIGNANT_CHAIN, Moves.EARTH_POWER, Moves.MATCHA_GOTCHA ],
[Species.CHARMANDER]: [ Moves.DRAGON_DANCE, Moves.BITTER_BLADE, Moves.EARTH_POWER, Moves.OBLIVION_WING ], [Species.CHARMANDER]: [ Moves.DRAGON_DANCE, Moves.BITTER_BLADE, Moves.EARTH_POWER, Moves.OBLIVION_WING ],
[Species.SQUIRTLE]: [ Moves.FREEZE_DRY, Moves.ARMOR_CANNON, Moves.BOUNCY_BUBBLE, Moves.ORIGIN_PULSE ], [Species.SQUIRTLE]: [ Moves.FREEZE_DRY, Moves.ARMOR_CANNON, Moves.SHORE_UP, Moves.ORIGIN_PULSE ],
[Species.CATERPIE]: [ Moves.SANDSEAR_STORM, Moves.SILK_TRAP, Moves.TWIN_BEAM, Moves.BLEAKWIND_STORM ], [Species.CATERPIE]: [ Moves.SANDSEAR_STORM, Moves.SILK_TRAP, Moves.TWIN_BEAM, Moves.BLEAKWIND_STORM ],
[Species.WEEDLE]: [ Moves.THOUSAND_ARROWS, Moves.NOXIOUS_TORQUE, Moves.ATTACK_ORDER, Moves.VICTORY_DANCE ], [Species.WEEDLE]: [ Moves.THOUSAND_ARROWS, Moves.NOXIOUS_TORQUE, Moves.ATTACK_ORDER, Moves.VICTORY_DANCE ],
[Species.PIDGEY]: [ Moves.WILDBOLT_STORM, Moves.SANDSEAR_STORM, Moves.NASTY_PLOT, Moves.BOOMBURST ], [Species.PIDGEY]: [ Moves.BLEAKWIND_STORM, Moves.SANDSEAR_STORM, Moves.CALM_MIND, Moves.BOOMBURST ],
[Species.RATTATA]: [ Moves.HYPER_FANG, Moves.PSYCHIC_FANGS, Moves.FIRE_FANG, Moves.EXTREME_SPEED ], [Species.RATTATA]: [ Moves.HYPER_FANG, Moves.PSYCHIC_FANGS, Moves.FIRE_FANG, Moves.EXTREME_SPEED ],
[Species.SPEAROW]: [ Moves.FLOATY_FALL, Moves.HYPER_DRILL, Moves.TIDY_UP, Moves.TRIPLE_ARROWS ], [Species.SPEAROW]: [ Moves.FLOATY_FALL, Moves.HYPER_DRILL, Moves.TIDY_UP, Moves.TRIPLE_ARROWS ],
[Species.EKANS]: [ Moves.NOXIOUS_TORQUE, Moves.DRAGON_DANCE, Moves.SLACK_OFF, Moves.SHED_TAIL ], [Species.EKANS]: [ Moves.NOXIOUS_TORQUE, Moves.DRAGON_DANCE, Moves.SLACK_OFF, Moves.SHED_TAIL ],
@ -34,7 +34,7 @@ export const speciesEggMoves = {
[Species.TENTACOOL]: [ Moves.BANEFUL_BUNKER, Moves.MALIGNANT_CHAIN, Moves.BOUNCY_BUBBLE, Moves.STRENGTH_SAP ], [Species.TENTACOOL]: [ Moves.BANEFUL_BUNKER, Moves.MALIGNANT_CHAIN, Moves.BOUNCY_BUBBLE, Moves.STRENGTH_SAP ],
[Species.GEODUDE]: [ Moves.FLARE_BLITZ, Moves.HEAD_SMASH, Moves.SHORE_UP, Moves.SHELL_SMASH ], [Species.GEODUDE]: [ Moves.FLARE_BLITZ, Moves.HEAD_SMASH, Moves.SHORE_UP, Moves.SHELL_SMASH ],
[Species.PONYTA]: [ Moves.HEADLONG_RUSH, Moves.FIRE_LASH, Moves.SWORDS_DANCE, Moves.VOLT_TACKLE ], [Species.PONYTA]: [ Moves.HEADLONG_RUSH, Moves.FIRE_LASH, Moves.SWORDS_DANCE, Moves.VOLT_TACKLE ],
[Species.SLOWPOKE]: [ Moves.BOUNCY_BUBBLE, Moves.FROST_BREATH, Moves.SHED_TAIL, Moves.MYSTICAL_POWER ], [Species.SLOWPOKE]: [ Moves.SPLISHY_SPLASH, Moves.FROST_BREATH, Moves.SHED_TAIL, Moves.MYSTICAL_POWER ],
[Species.MAGNEMITE]: [ Moves.PARABOLIC_CHARGE, Moves.FLAMETHROWER, Moves.ICE_BEAM, Moves.THUNDERCLAP ], [Species.MAGNEMITE]: [ Moves.PARABOLIC_CHARGE, Moves.FLAMETHROWER, Moves.ICE_BEAM, Moves.THUNDERCLAP ],
[Species.FARFETCHD]: [ Moves.IVY_CUDGEL, Moves.TRIPLE_ARROWS, Moves.DRILL_RUN, Moves.VICTORY_DANCE ], [Species.FARFETCHD]: [ Moves.IVY_CUDGEL, Moves.TRIPLE_ARROWS, Moves.DRILL_RUN, Moves.VICTORY_DANCE ],
[Species.DODUO]: [ Moves.TRIPLE_AXEL, Moves.HYPER_DRILL, Moves.FLOATY_FALL, Moves.TRIPLE_ARROWS ], [Species.DODUO]: [ Moves.TRIPLE_AXEL, Moves.HYPER_DRILL, Moves.FLOATY_FALL, Moves.TRIPLE_ARROWS ],
@ -52,7 +52,7 @@ export const speciesEggMoves = {
[Species.KOFFING]: [ Moves.SCALD, Moves.RECOVER, Moves.BODY_PRESS, Moves.MALIGNANT_CHAIN ], [Species.KOFFING]: [ Moves.SCALD, Moves.RECOVER, Moves.BODY_PRESS, Moves.MALIGNANT_CHAIN ],
[Species.RHYHORN]: [ Moves.SHORE_UP, Moves.ICE_HAMMER, Moves.ACCELEROCK, Moves.HEAD_SMASH ], [Species.RHYHORN]: [ Moves.SHORE_UP, Moves.ICE_HAMMER, Moves.ACCELEROCK, Moves.HEAD_SMASH ],
[Species.TANGELA]: [ Moves.NATURES_MADNESS, Moves.SNAP_TRAP, Moves.PARTING_SHOT, Moves.SAPPY_SEED ], [Species.TANGELA]: [ Moves.NATURES_MADNESS, Moves.SNAP_TRAP, Moves.PARTING_SHOT, Moves.SAPPY_SEED ],
[Species.KANGASKHAN]: [ Moves.POWER_UP_PUNCH, Moves.TRAILBLAZE, Moves.FACADE, Moves.SEISMIC_TOSS ], [Species.KANGASKHAN]: [ Moves.POWER_UP_PUNCH, Moves.TRAILBLAZE, Moves.COVET, Moves.SEISMIC_TOSS ],
[Species.HORSEA]: [ Moves.SNIPE_SHOT, Moves.FROST_BREATH, Moves.SLUDGE_BOMB, Moves.CLANGING_SCALES ], [Species.HORSEA]: [ Moves.SNIPE_SHOT, Moves.FROST_BREATH, Moves.SLUDGE_BOMB, Moves.CLANGING_SCALES ],
[Species.GOLDEEN]: [ Moves.GLACIAL_LANCE, Moves.SUPERCELL_SLAM, Moves.DRAGON_DANCE, Moves.FISHIOUS_REND ], [Species.GOLDEEN]: [ Moves.GLACIAL_LANCE, Moves.SUPERCELL_SLAM, Moves.DRAGON_DANCE, Moves.FISHIOUS_REND ],
[Species.STARYU]: [ Moves.CALM_MIND, Moves.BOUNCY_BUBBLE, Moves.MOONBLAST, Moves.MYSTICAL_POWER ], [Species.STARYU]: [ Moves.CALM_MIND, Moves.BOUNCY_BUBBLE, Moves.MOONBLAST, Moves.MYSTICAL_POWER ],
@ -112,7 +112,7 @@ export const speciesEggMoves = {
[Species.REMORAID]: [ Moves.WATER_SHURIKEN, Moves.TAKE_HEART, Moves.SHELL_SIDE_ARM, Moves.BOUNCY_BUBBLE ], [Species.REMORAID]: [ Moves.WATER_SHURIKEN, Moves.TAKE_HEART, Moves.SHELL_SIDE_ARM, Moves.BOUNCY_BUBBLE ],
[Species.DELIBIRD]: [ Moves.BONEMERANG, Moves.FLOATY_FALL, Moves.VICTORY_DANCE, Moves.GLACIAL_LANCE ], [Species.DELIBIRD]: [ Moves.BONEMERANG, Moves.FLOATY_FALL, Moves.VICTORY_DANCE, Moves.GLACIAL_LANCE ],
[Species.SKARMORY]: [ Moves.ROOST, Moves.BODY_PRESS, Moves.SPIKY_SHIELD, Moves.BEAK_BLAST ], [Species.SKARMORY]: [ Moves.ROOST, Moves.BODY_PRESS, Moves.SPIKY_SHIELD, Moves.BEAK_BLAST ],
[Species.HOUNDOUR]: [ Moves.EARTH_POWER, Moves.THUNDERBOLT, Moves.MOONBLAST, Moves.FIERY_WRATH ], [Species.HOUNDOUR]: [ Moves.FIERY_WRATH, Moves.THUNDERBOLT, Moves.MOONBLAST, Moves.ARMOR_CANNON ],
[Species.PHANPY]: [ Moves.SHORE_UP, Moves.SWORDS_DANCE, Moves.MOUNTAIN_GALE, Moves.COLLISION_COURSE ], [Species.PHANPY]: [ Moves.SHORE_UP, Moves.SWORDS_DANCE, Moves.MOUNTAIN_GALE, Moves.COLLISION_COURSE ],
[Species.STANTLER]: [ Moves.THUNDEROUS_KICK, Moves.PHOTON_GEYSER, Moves.SWORDS_DANCE, Moves.BOOMBURST ], [Species.STANTLER]: [ Moves.THUNDEROUS_KICK, Moves.PHOTON_GEYSER, Moves.SWORDS_DANCE, Moves.BOOMBURST ],
[Species.SMEARGLE]: [ Moves.CONVERSION, Moves.BURNING_BULWARK, Moves.SALT_CURE, Moves.DARK_VOID ], [Species.SMEARGLE]: [ Moves.CONVERSION, Moves.BURNING_BULWARK, Moves.SALT_CURE, Moves.DARK_VOID ],
@ -132,7 +132,7 @@ export const speciesEggMoves = {
[Species.TREECKO]: [ Moves.NASTY_PLOT, Moves.CORE_ENFORCER, Moves.FLAMETHROWER, Moves.SEED_FLARE ], [Species.TREECKO]: [ Moves.NASTY_PLOT, Moves.CORE_ENFORCER, Moves.FLAMETHROWER, Moves.SEED_FLARE ],
[Species.TORCHIC]: [ Moves.THUNDEROUS_KICK, Moves.ZING_ZAP, Moves.BURNING_BULWARK, Moves.PYRO_BALL ], [Species.TORCHIC]: [ Moves.THUNDEROUS_KICK, Moves.ZING_ZAP, Moves.BURNING_BULWARK, Moves.PYRO_BALL ],
[Species.MUDKIP]: [ Moves.SHORE_UP, Moves.MOUNTAIN_GALE, Moves.AQUA_STEP, Moves.PRECIPICE_BLADES ], [Species.MUDKIP]: [ Moves.SHORE_UP, Moves.MOUNTAIN_GALE, Moves.AQUA_STEP, Moves.PRECIPICE_BLADES ],
[Species.POOCHYENA]: [ Moves.JAW_LOCK, Moves.CLOSE_COMBAT, Moves.DIRE_CLAW, Moves.NO_RETREAT ], [Species.POOCHYENA]: [ Moves.KNOCK_OFF, Moves.CLOSE_COMBAT, Moves.DIRE_CLAW, Moves.VICTORY_DANCE ],
[Species.ZIGZAGOON]: [ Moves.EXTREME_SPEED, Moves.NUZZLE, Moves.HIGH_HORSEPOWER, Moves.TIDY_UP ], [Species.ZIGZAGOON]: [ Moves.EXTREME_SPEED, Moves.NUZZLE, Moves.HIGH_HORSEPOWER, Moves.TIDY_UP ],
[Species.WURMPLE]: [ Moves.BATON_PASS, Moves.BLEAKWIND_STORM, Moves.STORED_POWER, Moves.MALIGNANT_CHAIN ], [Species.WURMPLE]: [ Moves.BATON_PASS, Moves.BLEAKWIND_STORM, Moves.STORED_POWER, Moves.MALIGNANT_CHAIN ],
[Species.LOTAD]: [ Moves.REVELATION_DANCE, Moves.APPLE_ACID, Moves.ICE_BEAM, Moves.QUIVER_DANCE ], [Species.LOTAD]: [ Moves.REVELATION_DANCE, Moves.APPLE_ACID, Moves.ICE_BEAM, Moves.QUIVER_DANCE ],
@ -185,26 +185,26 @@ export const speciesEggMoves = {
[Species.TROPIUS]: [ Moves.STUFF_CHEEKS, Moves.EARTH_POWER, Moves.APPLE_ACID, Moves.SAPPY_SEED ], [Species.TROPIUS]: [ Moves.STUFF_CHEEKS, Moves.EARTH_POWER, Moves.APPLE_ACID, Moves.SAPPY_SEED ],
[Species.ABSOL]: [ Moves.KOWTOW_CLEAVE, Moves.SACRED_SWORD, Moves.PSYBLADE, Moves.BITTER_BLADE ], [Species.ABSOL]: [ Moves.KOWTOW_CLEAVE, Moves.SACRED_SWORD, Moves.PSYBLADE, Moves.BITTER_BLADE ],
[Species.WYNAUT]: [ Moves.RECOVER, Moves.SHED_TAIL, Moves.TAUNT, Moves.COMEUPPANCE ], [Species.WYNAUT]: [ Moves.RECOVER, Moves.SHED_TAIL, Moves.TAUNT, Moves.COMEUPPANCE ],
[Species.SNORUNT]: [ Moves.FREEZY_FROST, Moves.EXTREME_SPEED, Moves.EARTH_POWER, Moves.NO_RETREAT ], [Species.SNORUNT]: [ Moves.SPARKLY_SWIRL, Moves.NASTY_PLOT, Moves.EARTH_POWER, Moves.BLOOD_MOON ],
[Species.SPHEAL]: [ Moves.FLIP_TURN, Moves.FREEZE_DRY, Moves.SLACK_OFF, Moves.STEAM_ERUPTION ], [Species.SPHEAL]: [ Moves.FLIP_TURN, Moves.FREEZE_DRY, Moves.SLACK_OFF, Moves.STEAM_ERUPTION ],
[Species.CLAMPERL]: [ Moves.SHELL_SIDE_ARM, Moves.BOUNCY_BUBBLE, Moves.FREEZE_DRY, Moves.STEAM_ERUPTION ], [Species.CLAMPERL]: [ Moves.SHELL_SIDE_ARM, Moves.BOUNCY_BUBBLE, Moves.FREEZE_DRY, Moves.STEAM_ERUPTION ],
[Species.RELICANTH]: [ Moves.DRAGON_DANCE, Moves.SHORE_UP, Moves.WAVE_CRASH, Moves.DIAMOND_STORM ], [Species.RELICANTH]: [ Moves.DRAGON_DANCE, Moves.SHORE_UP, Moves.WAVE_CRASH, Moves.DIAMOND_STORM ],
[Species.LUVDISC]: [ Moves.BATON_PASS, Moves.HEART_SWAP, Moves.GLITZY_GLOW, Moves.REVIVAL_BLESSING ], [Species.LUVDISC]: [ Moves.BATON_PASS, Moves.HEART_SWAP, Moves.GLITZY_GLOW, Moves.REVIVAL_BLESSING ],
[Species.BAGON]: [ Moves.FLOATY_FALL, Moves.FIRE_LASH, Moves.DRAGON_DANCE, Moves.DRAGON_DARTS ], [Species.BAGON]: [ Moves.HEADLONG_RUSH, Moves.FIRE_LASH, Moves.DRAGON_DANCE, Moves.DRAGON_DARTS ],
[Species.BELDUM]: [ Moves.HEADLONG_RUSH, Moves.DRAIN_PUNCH, Moves.TRIPLE_AXEL, Moves.SHIFT_GEAR ], [Species.BELDUM]: [ Moves.HEADLONG_RUSH, Moves.DRAIN_PUNCH, Moves.TRIPLE_AXEL, Moves.SHIFT_GEAR ],
[Species.REGIROCK]: [ Moves.STONE_AXE, Moves.BODY_PRESS, Moves.SHORE_UP, Moves.SALT_CURE ], [Species.REGIROCK]: [ Moves.STONE_AXE, Moves.BODY_PRESS, Moves.SHORE_UP, Moves.SALT_CURE ],
[Species.REGICE]: [ Moves.EARTH_POWER, Moves.TAKE_HEART, Moves.RECOVER, Moves.FREEZE_DRY ], [Species.REGICE]: [ Moves.EARTH_POWER, Moves.TAKE_HEART, Moves.RECOVER, Moves.FREEZE_DRY ],
[Species.REGISTEEL]: [ Moves.BODY_PRESS, Moves.SIZZLY_SLIDE, Moves.RECOVER, Moves.GIGATON_HAMMER ], [Species.REGISTEEL]: [ Moves.BODY_PRESS, Moves.SIZZLY_SLIDE, Moves.RECOVER, Moves.GIGATON_HAMMER ],
[Species.LATIAS]: [ Moves.CORE_ENFORCER, Moves.FUSION_FLARE, Moves.SPARKLY_SWIRL, Moves.MYSTICAL_POWER ], [Species.LATIAS]: [ Moves.CORE_ENFORCER, Moves.FUSION_FLARE, Moves.SPARKLY_SWIRL, Moves.MYSTICAL_POWER ],
[Species.LATIOS]: [ Moves.CORE_ENFORCER, Moves.BLUE_FLARE, Moves.NASTY_PLOT, Moves.TACHYON_CUTTER ], [Species.LATIOS]: [ Moves.CORE_ENFORCER, Moves.BLUE_FLARE, Moves.NASTY_PLOT, Moves.TACHYON_CUTTER ],
[Species.KYOGRE]: [ Moves.WILDBOLT_STORM, Moves.HURRICANE, Moves.FREEZY_FROST, Moves.BOUNCY_BUBBLE ], [Species.KYOGRE]: [ Moves.RECOVER, Moves.HURRICANE, Moves.FREEZY_FROST, Moves.WILDBOLT_STORM ],
[Species.GROUDON]: [ Moves.STONE_AXE, Moves.SOLAR_BLADE, Moves.MORNING_SUN, Moves.SACRED_FIRE ], [Species.GROUDON]: [ Moves.STONE_AXE, Moves.SOLAR_BLADE, Moves.MORNING_SUN, Moves.SACRED_FIRE ],
[Species.RAYQUAZA]: [ Moves.V_CREATE, Moves.DRAGON_DARTS, Moves.CORE_ENFORCER, Moves.OBLIVION_WING ], [Species.RAYQUAZA]: [ Moves.V_CREATE, Moves.DRAGON_DARTS, Moves.CORE_ENFORCER, Moves.OBLIVION_WING ],
[Species.JIRACHI]: [ Moves.TACHYON_CUTTER, Moves.TRIPLE_ARROWS, Moves.ROCK_SLIDE, Moves.SHELL_SMASH ], [Species.JIRACHI]: [ Moves.TACHYON_CUTTER, Moves.TRIPLE_ARROWS, Moves.ROCK_SLIDE, Moves.SHELL_SMASH ],
[Species.DEOXYS]: [ Moves.COLLISION_COURSE, Moves.FUSION_FLARE, Moves.PARTING_SHOT, Moves.LUMINA_CRASH ], [Species.DEOXYS]: [ Moves.COLLISION_COURSE, Moves.FUSION_FLARE, Moves.PARTING_SHOT, Moves.LUMINA_CRASH ],
[Species.TURTWIG]: [ Moves.SHELL_SMASH, Moves.MIGHTY_CLEAVE, Moves.ICE_SPINNER, Moves.SAPPY_SEED ], [Species.TURTWIG]: [ Moves.SHELL_SMASH, Moves.MIGHTY_CLEAVE, Moves.ICE_SPINNER, Moves.SAPPY_SEED ],
[Species.CHIMCHAR]: [ Moves.FIERY_DANCE, Moves.SECRET_SWORD, Moves.TRIPLE_AXEL, Moves.SACRED_FIRE ], [Species.CHIMCHAR]: [ Moves.THUNDERBOLT, Moves.SECRET_SWORD, Moves.TRIPLE_AXEL, Moves.SACRED_FIRE ],
[Species.PIPLUP]: [ Moves.KINGS_SHIELD, Moves.TACHYON_CUTTER, Moves.FREEZE_DRY, Moves.STEAM_ERUPTION ], [Species.PIPLUP]: [ Moves.KINGS_SHIELD, Moves.TACHYON_CUTTER, Moves.FREEZE_DRY, Moves.STEAM_ERUPTION ],
[Species.STARLY]: [ Moves.SWORDS_DANCE, Moves.HEAD_CHARGE, Moves.FLARE_BLITZ, Moves.EXTREME_SPEED ], [Species.STARLY]: [ Moves.SWORDS_DANCE, Moves.HEAD_CHARGE, Moves.FLARE_BLITZ, Moves.EXTREME_SPEED ],
[Species.BIDOOF]: [ Moves.EXTREME_SPEED, Moves.COSMIC_POWER, Moves.POWER_TRIP, Moves.AQUA_STEP ], [Species.BIDOOF]: [ Moves.EXTREME_SPEED, Moves.COSMIC_POWER, Moves.POWER_TRIP, Moves.AQUA_STEP ],
@ -215,15 +215,15 @@ export const speciesEggMoves = {
[Species.SHIELDON]: [ Moves.SHORE_UP, Moves.BODY_PRESS, Moves.KINGS_SHIELD, Moves.DIAMOND_STORM ], [Species.SHIELDON]: [ Moves.SHORE_UP, Moves.BODY_PRESS, Moves.KINGS_SHIELD, Moves.DIAMOND_STORM ],
[Species.BURMY]: [ Moves.FIERY_DANCE, Moves.DEFEND_ORDER, Moves.HEAL_ORDER, Moves.SAPPY_SEED ], [Species.BURMY]: [ Moves.FIERY_DANCE, Moves.DEFEND_ORDER, Moves.HEAL_ORDER, Moves.SAPPY_SEED ],
[Species.COMBEE]: [ Moves.SPORE, Moves.FLOATY_FALL, Moves.KINGS_SHIELD, Moves.VICTORY_DANCE ], [Species.COMBEE]: [ Moves.SPORE, Moves.FLOATY_FALL, Moves.KINGS_SHIELD, Moves.VICTORY_DANCE ],
[Species.PACHIRISU]: [ Moves.FREEZY_FROST, Moves.SIZZLY_SLIDE, Moves.SLACK_OFF, Moves.ZIPPY_ZAP ], [Species.PACHIRISU]: [ Moves.FREEZY_FROST, Moves.SIZZLY_SLIDE, Moves.SLACK_OFF, Moves.THUNDER_CAGE ],
[Species.BUIZEL]: [ Moves.JET_PUNCH, Moves.TRIPLE_AXEL, Moves.SUPERCELL_SLAM, Moves.SURGING_STRIKES ], [Species.BUIZEL]: [ Moves.JET_PUNCH, Moves.TRIPLE_AXEL, Moves.SUPERCELL_SLAM, Moves.SURGING_STRIKES ],
[Species.CHERUBI]: [ Moves.SLEEP_POWDER, Moves.STRENGTH_SAP, Moves.FIRE_LASH, Moves.FLOWER_TRICK ], [Species.CHERUBI]: [ Moves.SLEEP_POWDER, Moves.STRENGTH_SAP, Moves.FIRE_LASH, Moves.FLOWER_TRICK ],
[Species.SHELLOS]: [ Moves.BOUNCY_BUBBLE, Moves.SCORCHING_SANDS, Moves.FREEZE_DRY, Moves.STEAM_ERUPTION ], [Species.SHELLOS]: [ Moves.BOUNCY_BUBBLE, Moves.SCORCHING_SANDS, Moves.FREEZE_DRY, Moves.STEAM_ERUPTION ],
[Species.DRIFLOON]: [ Moves.WILL_O_WISP, Moves.MIND_BLOWN, Moves.CALM_MIND, Moves.OBLIVION_WING ], [Species.DRIFLOON]: [ Moves.PSYCHO_SHIFT, Moves.MIND_BLOWN, Moves.CALM_MIND, Moves.OBLIVION_WING ],
[Species.BUNEARY]: [ Moves.TRIPLE_AXEL, Moves.SWORDS_DANCE, Moves.THUNDEROUS_KICK, Moves.MULTI_ATTACK ], [Species.BUNEARY]: [ Moves.TRIPLE_AXEL, Moves.EXTREME_SPEED, Moves.THUNDEROUS_KICK, Moves.SWORDS_DANCE ],
[Species.GLAMEOW]: [ Moves.PARTING_SHOT, Moves.HIGH_HORSEPOWER, Moves.SWORDS_DANCE, Moves.EXTREME_SPEED ], [Species.GLAMEOW]: [ Moves.PARTING_SHOT, Moves.HIGH_HORSEPOWER, Moves.SWORDS_DANCE, Moves.EXTREME_SPEED ],
[Species.CHINGLING]: [ Moves.BUZZY_BUZZ, Moves.EERIE_SPELL, Moves.TORCH_SONG, Moves.BOOMBURST ], [Species.CHINGLING]: [ Moves.BUZZY_BUZZ, Moves.EERIE_SPELL, Moves.TORCH_SONG, Moves.BOOMBURST ],
[Species.STUNKY]: [ Moves.CEASELESS_EDGE, Moves.KNOCK_OFF, Moves.RECOVER, Moves.DIRE_CLAW ], [Species.STUNKY]: [ Moves.CEASELESS_EDGE, Moves.FIRE_LASH, Moves.RECOVER, Moves.DIRE_CLAW ],
[Species.BRONZOR]: [ Moves.RECOVER, Moves.TACHYON_CUTTER, Moves.GLARE, Moves.LUMINA_CRASH ], [Species.BRONZOR]: [ Moves.RECOVER, Moves.TACHYON_CUTTER, Moves.GLARE, Moves.LUMINA_CRASH ],
[Species.BONSLY]: [ Moves.ACCELEROCK, Moves.SWORDS_DANCE, Moves.STRENGTH_SAP, Moves.SAPPY_SEED ], [Species.BONSLY]: [ Moves.ACCELEROCK, Moves.SWORDS_DANCE, Moves.STRENGTH_SAP, Moves.SAPPY_SEED ],
[Species.MIME_JR]: [ Moves.CHILLY_RECEPTION, Moves.MOONBLAST, Moves.FROST_BREATH, Moves.LUMINA_CRASH ], [Species.MIME_JR]: [ Moves.CHILLY_RECEPTION, Moves.MOONBLAST, Moves.FROST_BREATH, Moves.LUMINA_CRASH ],
@ -237,18 +237,18 @@ export const speciesEggMoves = {
[Species.SKORUPI]: [ Moves.COIL, Moves.DIRE_CLAW, Moves.CRABHAMMER, Moves.WICKED_BLOW ], [Species.SKORUPI]: [ Moves.COIL, Moves.DIRE_CLAW, Moves.CRABHAMMER, Moves.WICKED_BLOW ],
[Species.CROAGUNK]: [ Moves.DIRE_CLAW, Moves.ICE_SPINNER, Moves.THUNDEROUS_KICK, Moves.VICTORY_DANCE ], [Species.CROAGUNK]: [ Moves.DIRE_CLAW, Moves.ICE_SPINNER, Moves.THUNDEROUS_KICK, Moves.VICTORY_DANCE ],
[Species.CARNIVINE]: [ Moves.STRENGTH_SAP, Moves.FIRE_LASH, Moves.COIL, Moves.SAPPY_SEED ], [Species.CARNIVINE]: [ Moves.STRENGTH_SAP, Moves.FIRE_LASH, Moves.COIL, Moves.SAPPY_SEED ],
[Species.FINNEON]: [ Moves.QUIVER_DANCE, Moves.BOUNCY_BUBBLE, Moves.FREEZE_DRY, Moves.ORIGIN_PULSE ], [Species.FINNEON]: [ Moves.QUIVER_DANCE, Moves.SPLISHY_SPLASH, Moves.FREEZE_DRY, Moves.OBLIVION_WING ],
[Species.MANTYKE]: [ Moves.SPLISHY_SPLASH, Moves.FREEZY_FROST, Moves.NASTY_PLOT, Moves.OBLIVION_WING ], [Species.MANTYKE]: [ Moves.SPLISHY_SPLASH, Moves.FREEZY_FROST, Moves.NASTY_PLOT, Moves.OBLIVION_WING ],
[Species.SNOVER]: [ Moves.LANDS_WRATH, Moves.POWDER, Moves.CALM_MIND, Moves.MATCHA_GOTCHA ], [Species.SNOVER]: [ Moves.LANDS_WRATH, Moves.POWDER, Moves.CALM_MIND, Moves.MATCHA_GOTCHA ],
[Species.ROTOM]: [ Moves.STRENGTH_SAP, Moves.FIERY_DANCE, Moves.SPLISHY_SPLASH, Moves.ELECTRO_DRIFT ], [Species.ROTOM]: [ Moves.STRENGTH_SAP, Moves.FIERY_DANCE, Moves.SPLISHY_SPLASH, Moves.ELECTRO_DRIFT ],
[Species.UXIE]: [ Moves.COSMIC_POWER, Moves.SECRET_SWORD, Moves.RECOVER, Moves.SPARKLY_SWIRL ], [Species.UXIE]: [ Moves.LUMINA_CRASH, Moves.AURA_SPHERE, Moves.RECOVER, Moves.TAIL_GLOW ],
[Species.MESPRIT]: [ Moves.TAIL_GLOW, Moves.AURA_SPHERE, Moves.RECOVER, Moves.LUMINA_CRASH ], [Species.MESPRIT]: [ Moves.PHOTON_GEYSER, Moves.AURA_SPHERE, Moves.RECOVER, Moves.TAIL_GLOW ],
[Species.AZELF]: [ Moves.PSYSTRIKE, Moves.ICE_BEAM, Moves.MOONBLAST, Moves.TAIL_GLOW ], [Species.AZELF]: [ Moves.PSYSTRIKE, Moves.AURA_SPHERE, Moves.ICE_BEAM, Moves.TAIL_GLOW ],
[Species.DIALGA]: [ Moves.CORE_ENFORCER, Moves.TAKE_HEART, Moves.RECOVER, Moves.MAKE_IT_RAIN ], [Species.DIALGA]: [ Moves.CORE_ENFORCER, Moves.TAKE_HEART, Moves.RECOVER, Moves.MAKE_IT_RAIN ],
[Species.PALKIA]: [ Moves.MALIGNANT_CHAIN, Moves.TAKE_HEART, Moves.RECOVER, Moves.ORIGIN_PULSE ], [Species.PALKIA]: [ Moves.MALIGNANT_CHAIN, Moves.TAKE_HEART, Moves.RECOVER, Moves.ORIGIN_PULSE ],
[Species.HEATRAN]: [ Moves.MATCHA_GOTCHA, Moves.RECOVER, Moves.ERUPTION, Moves.TACHYON_CUTTER ], [Species.HEATRAN]: [ Moves.MATCHA_GOTCHA, Moves.RECOVER, Moves.ERUPTION, Moves.TACHYON_CUTTER ],
[Species.REGIGIGAS]: [ Moves.SKILL_SWAP, Moves.RECOVER, Moves.EXTREME_SPEED, Moves.GIGATON_HAMMER ], [Species.REGIGIGAS]: [ Moves.SKILL_SWAP, Moves.RECOVER, Moves.EXTREME_SPEED, Moves.GIGATON_HAMMER ],
[Species.GIRATINA]: [ Moves.DRAGON_DANCE, Moves.GLAIVE_RUSH, Moves.RECOVER, Moves.SPECTRAL_THIEF ], [Species.GIRATINA]: [ Moves.DRAGON_DANCE, Moves.SPECTRAL_THIEF, Moves.RECOVER, Moves.COLLISION_COURSE ],
[Species.CRESSELIA]: [ Moves.COSMIC_POWER, Moves.BODY_PRESS, Moves.SIZZLY_SLIDE, Moves.LUMINA_CRASH ], [Species.CRESSELIA]: [ Moves.COSMIC_POWER, Moves.BODY_PRESS, Moves.SIZZLY_SLIDE, Moves.LUMINA_CRASH ],
[Species.PHIONE]: [ Moves.BOUNCY_BUBBLE, Moves.FREEZE_DRY, Moves.STORED_POWER, Moves.ORIGIN_PULSE ], [Species.PHIONE]: [ Moves.BOUNCY_BUBBLE, Moves.FREEZE_DRY, Moves.STORED_POWER, Moves.ORIGIN_PULSE ],
[Species.MANAPHY]: [ Moves.BOUNCY_BUBBLE, Moves.FROST_BREATH, Moves.WILDBOLT_STORM, Moves.ORIGIN_PULSE ], [Species.MANAPHY]: [ Moves.BOUNCY_BUBBLE, Moves.FROST_BREATH, Moves.WILDBOLT_STORM, Moves.ORIGIN_PULSE ],
@ -264,14 +264,14 @@ export const speciesEggMoves = {
[Species.LILLIPUP]: [ Moves.CLOSE_COMBAT, Moves.BODY_SLAM, Moves.HIGH_HORSEPOWER, Moves.LAST_RESPECTS ], [Species.LILLIPUP]: [ Moves.CLOSE_COMBAT, Moves.BODY_SLAM, Moves.HIGH_HORSEPOWER, Moves.LAST_RESPECTS ],
[Species.PURRLOIN]: [ Moves.ENCORE, Moves.OBSTRUCT, Moves.PARTING_SHOT, Moves.WICKED_BLOW ], [Species.PURRLOIN]: [ Moves.ENCORE, Moves.OBSTRUCT, Moves.PARTING_SHOT, Moves.WICKED_BLOW ],
[Species.PANSAGE]: [ Moves.SWORDS_DANCE, Moves.FIRE_LASH, Moves.EARTHQUAKE, Moves.IVY_CUDGEL ], [Species.PANSAGE]: [ Moves.SWORDS_DANCE, Moves.FIRE_LASH, Moves.EARTHQUAKE, Moves.IVY_CUDGEL ],
[Species.PANSEAR]: [ Moves.NASTY_PLOT, Moves.HYDRO_STEAM, Moves.SCORCHING_SANDS, Moves.TORCH_SONG ], [Species.PANSEAR]: [ Moves.NASTY_PLOT, Moves.HYDRO_STEAM, Moves.EARTH_POWER, Moves.ERUPTION ],
[Species.PANPOUR]: [ Moves.NASTY_PLOT, Moves.ENERGY_BALL, Moves.EARTH_POWER, Moves.STEAM_ERUPTION ], [Species.PANPOUR]: [ Moves.NASTY_PLOT, Moves.ENERGY_BALL, Moves.EARTH_POWER, Moves.WATER_SPOUT ],
[Species.MUNNA]: [ Moves.COSMIC_POWER, Moves.AURA_SPHERE, Moves.LUNAR_BLESSING, Moves.MYSTICAL_POWER ], [Species.MUNNA]: [ Moves.COSMIC_POWER, Moves.AURA_SPHERE, Moves.LUNAR_BLESSING, Moves.MYSTICAL_POWER ],
[Species.PIDOVE]: [ Moves.GUNK_SHOT, Moves.TIDY_UP, Moves.FLOATY_FALL, Moves.TRIPLE_ARROWS ], [Species.PIDOVE]: [ Moves.GUNK_SHOT, Moves.TIDY_UP, Moves.FLOATY_FALL, Moves.TRIPLE_ARROWS ],
[Species.BLITZLE]: [ Moves.HORN_LEECH, Moves.SWORDS_DANCE, Moves.FLARE_BLITZ, Moves.BOLT_STRIKE ], [Species.BLITZLE]: [ Moves.HORN_LEECH, Moves.SWORDS_DANCE, Moves.FLARE_BLITZ, Moves.BOLT_STRIKE ],
[Species.ROGGENROLA]: [ Moves.BODY_PRESS, Moves.CURSE, Moves.SHORE_UP, Moves.DIAMOND_STORM ], [Species.ROGGENROLA]: [ Moves.BODY_PRESS, Moves.CURSE, Moves.SHORE_UP, Moves.DIAMOND_STORM ],
[Species.WOOBAT]: [ Moves.ESPER_WING, Moves.STORED_POWER, Moves.MYSTICAL_FIRE, Moves.OBLIVION_WING ], [Species.WOOBAT]: [ Moves.ESPER_WING, Moves.STORED_POWER, Moves.MYSTICAL_FIRE, Moves.OBLIVION_WING ],
[Species.DRILBUR]: [ Moves.METEOR_MASH, Moves.MOUNTAIN_GALE, Moves.SHIFT_GEAR, Moves.PRECIPICE_BLADES ], [Species.DRILBUR]: [ Moves.METEOR_MASH, Moves.ICE_SPINNER, Moves.SHIFT_GEAR, Moves.THOUSAND_ARROWS ],
[Species.AUDINO]: [ Moves.TAKE_HEART, Moves.MOONBLAST, Moves.WISH, Moves.MATCHA_GOTCHA ], [Species.AUDINO]: [ Moves.TAKE_HEART, Moves.MOONBLAST, Moves.WISH, Moves.MATCHA_GOTCHA ],
[Species.TIMBURR]: [ Moves.MACH_PUNCH, Moves.DRAIN_PUNCH, Moves.ICE_HAMMER, Moves.DOUBLE_IRON_BASH ], [Species.TIMBURR]: [ Moves.MACH_PUNCH, Moves.DRAIN_PUNCH, Moves.ICE_HAMMER, Moves.DOUBLE_IRON_BASH ],
[Species.TYMPOLE]: [ Moves.JET_PUNCH, Moves.HIGH_HORSEPOWER, Moves.BULK_UP, Moves.SURGING_STRIKES ], [Species.TYMPOLE]: [ Moves.JET_PUNCH, Moves.HIGH_HORSEPOWER, Moves.BULK_UP, Moves.SURGING_STRIKES ],
@ -298,18 +298,18 @@ export const speciesEggMoves = {
[Species.SOLOSIS]: [ Moves.MIST_BALL, Moves.SPEED_SWAP, Moves.FLAMETHROWER, Moves.LIGHT_OF_RUIN ], [Species.SOLOSIS]: [ Moves.MIST_BALL, Moves.SPEED_SWAP, Moves.FLAMETHROWER, Moves.LIGHT_OF_RUIN ],
[Species.DUCKLETT]: [ Moves.SPLISHY_SPLASH, Moves.SANDSEAR_STORM, Moves.WILDBOLT_STORM, Moves.QUIVER_DANCE ], [Species.DUCKLETT]: [ Moves.SPLISHY_SPLASH, Moves.SANDSEAR_STORM, Moves.WILDBOLT_STORM, Moves.QUIVER_DANCE ],
[Species.VANILLITE]: [ Moves.EARTH_POWER, Moves.AURORA_VEIL, Moves.CALM_MIND, Moves.SPARKLY_SWIRL ], [Species.VANILLITE]: [ Moves.EARTH_POWER, Moves.AURORA_VEIL, Moves.CALM_MIND, Moves.SPARKLY_SWIRL ],
[Species.DEERLING]: [ Moves.TIDY_UP, Moves.FLOWER_TRICK, Moves.BODY_SLAM, Moves.COMBAT_TORQUE ], [Species.DEERLING]: [ Moves.TIDY_UP, Moves.HEADBUTT, Moves.COMBAT_TORQUE, Moves.FLOWER_TRICK ],
[Species.EMOLGA]: [ Moves.ICICLE_CRASH, Moves.ZING_ZAP, Moves.FLOATY_FALL, Moves.ELECTRIFY ], [Species.EMOLGA]: [ Moves.ICICLE_CRASH, Moves.ZING_ZAP, Moves.FLOATY_FALL, Moves.ELECTRIFY ],
[Species.KARRABLAST]: [ Moves.LEECH_LIFE, Moves.BITTER_BLADE, Moves.OBSTRUCT, Moves.DOUBLE_IRON_BASH ], [Species.KARRABLAST]: [ Moves.LEECH_LIFE, Moves.BITTER_BLADE, Moves.OBSTRUCT, Moves.DOUBLE_IRON_BASH ],
[Species.FOONGUS]: [ Moves.POLLEN_PUFF, Moves.PARTING_SHOT, Moves.FOUL_PLAY, Moves.SAPPY_SEED ], [Species.FOONGUS]: [ Moves.POLLEN_PUFF, Moves.PARTING_SHOT, Moves.FOUL_PLAY, Moves.SAPPY_SEED ],
[Species.FRILLISH]: [ Moves.CALM_MIND, Moves.BUZZY_BUZZ, Moves.FREEZE_DRY, Moves.STEAM_ERUPTION ], [Species.FRILLISH]: [ Moves.CALM_MIND, Moves.BUZZY_BUZZ, Moves.FREEZE_DRY, Moves.STEAM_ERUPTION ],
[Species.ALOMOMOLA]: [ Moves.FLIP_TURN, Moves.HEART_SWAP, Moves.GLITZY_GLOW, Moves.REVIVAL_BLESSING ], [Species.ALOMOMOLA]: [ Moves.FLIP_TURN, Moves.HEART_SWAP, Moves.GLITZY_GLOW, Moves.REVIVAL_BLESSING ],
[Species.JOLTIK]: [ Moves.WILDBOLT_STORM, Moves.PARABOLIC_CHARGE, Moves.EARTH_POWER, Moves.QUIVER_DANCE ], [Species.JOLTIK]: [ Moves.WILDBOLT_STORM, Moves.PARABOLIC_CHARGE, Moves.EARTH_POWER, Moves.QUIVER_DANCE ],
[Species.FERROSEED]: [ Moves.SYNTHESIS, Moves.COMBAT_TORQUE, Moves.SPIKY_SHIELD, Moves.SAPPY_SEED ], [Species.FERROSEED]: [ Moves.SYNTHESIS, Moves.CEASELESS_EDGE, Moves.SPIKY_SHIELD, Moves.SAPPY_SEED ],
[Species.KLINK]: [ Moves.TRIPLE_AXEL, Moves.HIGH_HORSEPOWER, Moves.RECOVER, Moves.AURA_WHEEL ], [Species.KLINK]: [ Moves.TRIPLE_AXEL, Moves.HIGH_HORSEPOWER, Moves.RECOVER, Moves.AURA_WHEEL ],
[Species.TYNAMO]: [ Moves.SCALD, Moves.STRENGTH_SAP, Moves.FIRE_LASH, Moves.AURA_WHEEL ], [Species.TYNAMO]: [ Moves.SCALD, Moves.STRENGTH_SAP, Moves.FIRE_LASH, Moves.AURA_WHEEL ],
[Species.ELGYEM]: [ Moves.THUNDERCLAP, Moves.BADDY_BAD, Moves.AURA_SPHERE, Moves.PHOTON_GEYSER ], [Species.ELGYEM]: [ Moves.THUNDERCLAP, Moves.BADDY_BAD, Moves.AURA_SPHERE, Moves.PHOTON_GEYSER ],
[Species.LITWICK]: [ Moves.PARTING_SHOT, Moves.EARTH_POWER, Moves.MOONBLAST, Moves.TORCH_SONG ], [Species.LITWICK]: [ Moves.GIGA_DRAIN, Moves.EARTH_POWER, Moves.MOONBLAST, Moves.TORCH_SONG ],
[Species.AXEW]: [ Moves.STONE_AXE, Moves.DIRE_CLAW, Moves.BITTER_BLADE, Moves.GLAIVE_RUSH ], [Species.AXEW]: [ Moves.STONE_AXE, Moves.DIRE_CLAW, Moves.BITTER_BLADE, Moves.GLAIVE_RUSH ],
[Species.CUBCHOO]: [ Moves.MOUNTAIN_GALE, Moves.AQUA_STEP, Moves.ICE_SHARD, Moves.COLLISION_COURSE ], [Species.CUBCHOO]: [ Moves.MOUNTAIN_GALE, Moves.AQUA_STEP, Moves.ICE_SHARD, Moves.COLLISION_COURSE ],
[Species.CRYOGONAL]: [ Moves.FREEZING_GLARE, Moves.AURORA_VEIL, Moves.NASTY_PLOT, Moves.ORIGIN_PULSE ], [Species.CRYOGONAL]: [ Moves.FREEZING_GLARE, Moves.AURORA_VEIL, Moves.NASTY_PLOT, Moves.ORIGIN_PULSE ],
@ -325,14 +325,14 @@ export const speciesEggMoves = {
[Species.HEATMOR]: [ Moves.EARTH_POWER, Moves.OVERHEAT, Moves.THUNDERBOLT, Moves.V_CREATE ], [Species.HEATMOR]: [ Moves.EARTH_POWER, Moves.OVERHEAT, Moves.THUNDERBOLT, Moves.V_CREATE ],
[Species.DURANT]: [ Moves.HIGH_HORSEPOWER, Moves.FIRST_IMPRESSION, Moves.SWORDS_DANCE, Moves.BEHEMOTH_BASH ], [Species.DURANT]: [ Moves.HIGH_HORSEPOWER, Moves.FIRST_IMPRESSION, Moves.SWORDS_DANCE, Moves.BEHEMOTH_BASH ],
[Species.DEINO]: [ Moves.FIERY_WRATH, Moves.ESPER_WING, Moves.SLUDGE_BOMB, Moves.FICKLE_BEAM ], [Species.DEINO]: [ Moves.FIERY_WRATH, Moves.ESPER_WING, Moves.SLUDGE_BOMB, Moves.FICKLE_BEAM ],
[Species.LARVESTA]: [ Moves.THUNDERBOLT, Moves.MAGMA_STORM, Moves.EARTH_POWER, Moves.MATCHA_GOTCHA ], [Species.LARVESTA]: [ Moves.THUNDERBOLT, Moves.DAZZLING_GLEAM, Moves.EARTH_POWER, Moves.HYDRO_STEAM ],
[Species.COBALION]: [ Moves.BEHEMOTH_BLADE, Moves.MIGHTY_CLEAVE, Moves.CEASELESS_EDGE, Moves.VICTORY_DANCE ], [Species.COBALION]: [ Moves.BEHEMOTH_BLADE, Moves.MIGHTY_CLEAVE, Moves.CEASELESS_EDGE, Moves.VICTORY_DANCE ],
[Species.TERRAKION]: [ Moves.MIGHTY_CLEAVE, Moves.HEADLONG_RUSH, Moves.CEASELESS_EDGE, Moves.VICTORY_DANCE ], [Species.TERRAKION]: [ Moves.MIGHTY_CLEAVE, Moves.HEADLONG_RUSH, Moves.CEASELESS_EDGE, Moves.VICTORY_DANCE ],
[Species.VIRIZION]: [ Moves.PSYBLADE, Moves.SAPPY_SEED, Moves.CEASELESS_EDGE, Moves.VICTORY_DANCE ], [Species.VIRIZION]: [ Moves.SAPPY_SEED, Moves.PSYBLADE, Moves.CEASELESS_EDGE, Moves.VICTORY_DANCE ],
[Species.TORNADUS]: [ Moves.SANDSEAR_STORM, Moves.PARTING_SHOT, Moves.SPLISHY_SPLASH, Moves.OBLIVION_WING ], [Species.TORNADUS]: [ Moves.SANDSEAR_STORM, Moves.PARTING_SHOT, Moves.SPLISHY_SPLASH, Moves.OBLIVION_WING ],
[Species.THUNDURUS]: [ Moves.SANDSEAR_STORM, Moves.HURRICANE, Moves.FROST_BREATH, Moves.ELECTRO_SHOT ], [Species.THUNDURUS]: [ Moves.SANDSEAR_STORM, Moves.HURRICANE, Moves.FROST_BREATH, Moves.ELECTRO_SHOT ],
[Species.RESHIRAM]: [ Moves.ENERGY_BALL, Moves.TAKE_HEART, Moves.FICKLE_BEAM, Moves.ERUPTION ], [Species.RESHIRAM]: [ Moves.ENERGY_BALL, Moves.TAKE_HEART, Moves.FICKLE_BEAM, Moves.ERUPTION ],
[Species.ZEKROM]: [ Moves.TRIPLE_AXEL, Moves.THUNDEROUS_KICK, Moves.DRAGON_HAMMER, Moves.BOLT_BEAK ], [Species.ZEKROM]: [ Moves.TRIPLE_AXEL, Moves.THUNDEROUS_KICK, Moves.DRAGON_HAMMER, Moves.DRAGON_ENERGY ],
[Species.LANDORUS]: [ Moves.STONE_AXE, Moves.FLOATY_FALL, Moves.ROOST, Moves.BLEAKWIND_STORM ], [Species.LANDORUS]: [ Moves.STONE_AXE, Moves.FLOATY_FALL, Moves.ROOST, Moves.BLEAKWIND_STORM ],
[Species.KYUREM]: [ Moves.DRAGON_DARTS, Moves.GLACIAL_LANCE, Moves.NO_RETREAT, Moves.DRAGON_ENERGY ], [Species.KYUREM]: [ Moves.DRAGON_DARTS, Moves.GLACIAL_LANCE, Moves.NO_RETREAT, Moves.DRAGON_ENERGY ],
[Species.KELDEO]: [ Moves.BOUNCY_BUBBLE, Moves.THUNDERBOLT, Moves.ICE_BEAM, Moves.STEAM_ERUPTION ], [Species.KELDEO]: [ Moves.BOUNCY_BUBBLE, Moves.THUNDERBOLT, Moves.ICE_BEAM, Moves.STEAM_ERUPTION ],
@ -366,35 +366,35 @@ export const speciesEggMoves = {
[Species.CARBINK]: [ Moves.BODY_PRESS, Moves.SHORE_UP, Moves.SPARKLY_SWIRL, Moves.DIAMOND_STORM ], [Species.CARBINK]: [ Moves.BODY_PRESS, Moves.SHORE_UP, Moves.SPARKLY_SWIRL, Moves.DIAMOND_STORM ],
[Species.GOOMY]: [ Moves.DRAGON_HAMMER, Moves.RECOVER, Moves.CALM_MIND, Moves.MAKE_IT_RAIN ], [Species.GOOMY]: [ Moves.DRAGON_HAMMER, Moves.RECOVER, Moves.CALM_MIND, Moves.MAKE_IT_RAIN ],
[Species.KLEFKI]: [ Moves.HEAL_BELL, Moves.ENCORE, Moves.INSTRUCT, Moves.TOPSY_TURVY ], [Species.KLEFKI]: [ Moves.HEAL_BELL, Moves.ENCORE, Moves.INSTRUCT, Moves.TOPSY_TURVY ],
[Species.PHANTUMP]: [ Moves.RAGE_FIST, Moves.SLEEP_POWDER, Moves.SYNTHESIS, Moves.SAPPY_SEED ], [Species.PHANTUMP]: [ Moves.RAGE_FIST, Moves.SLEEP_POWDER, Moves.BULK_UP, Moves.SAPPY_SEED ],
[Species.PUMPKABOO]: [ Moves.SPIRIT_SHACKLE, Moves.FIRE_LASH, Moves.DIRE_CLAW, Moves.SAPPY_SEED ], [Species.PUMPKABOO]: [ Moves.SPIRIT_SHACKLE, Moves.FIRE_LASH, Moves.DIRE_CLAW, Moves.SAPPY_SEED ],
[Species.BERGMITE]: [ Moves.STONE_AXE, Moves.METAL_BURST, Moves.BODY_PRESS, Moves.GLACIAL_LANCE ], [Species.BERGMITE]: [ Moves.STONE_AXE, Moves.METAL_BURST, Moves.BODY_PRESS, Moves.GLACIAL_LANCE ],
[Species.NOIBAT]: [ Moves.AEROBLAST, Moves.OVERDRIVE, Moves.NASTY_PLOT, Moves.CLANGING_SCALES ], [Species.NOIBAT]: [ Moves.AEROBLAST, Moves.OVERDRIVE, Moves.NASTY_PLOT, Moves.CLANGING_SCALES ],
[Species.XERNEAS]: [ Moves.EARTH_POWER, Moves.SPRINGTIDE_STORM, Moves.STRENGTH_SAP, Moves.TAIL_GLOW ], [Species.XERNEAS]: [ Moves.EARTH_POWER, Moves.SPRINGTIDE_STORM, Moves.STRENGTH_SAP, Moves.TAIL_GLOW ],
[Species.YVELTAL]: [ Moves.SHELL_SIDE_ARM, Moves.POWER_TRIP, Moves.FIERY_WRATH, Moves.CLANGOROUS_SOUL ], [Species.YVELTAL]: [ Moves.SLUDGE_WAVE, Moves.POWER_TRIP, Moves.FIERY_WRATH, Moves.CLANGOROUS_SOUL ],
[Species.ZYGARDE]: [ Moves.DRAGON_DARTS, Moves.HEAL_ORDER, Moves.CLANGOROUS_SOUL, Moves.DOUBLE_IRON_BASH ], [Species.ZYGARDE]: [ Moves.DRAGON_DARTS, Moves.HEAL_ORDER, Moves.CLANGOROUS_SOUL, Moves.DOUBLE_IRON_BASH ],
[Species.DIANCIE]: [ Moves.MAGICAL_TORQUE, Moves.FIERY_DANCE, Moves.SHORE_UP, Moves.GEOMANCY ], [Species.DIANCIE]: [ Moves.MAGICAL_TORQUE, Moves.FIERY_DANCE, Moves.SHORE_UP, Moves.GEOMANCY ],
[Species.HOOPA]: [ Moves.PHOTON_GEYSER, Moves.SECRET_SWORD, Moves.FIERY_WRATH, Moves.SHELL_SMASH ], [Species.HOOPA]: [ Moves.PHOTON_GEYSER, Moves.SECRET_SWORD, Moves.FIERY_WRATH, Moves.SHELL_SMASH ],
[Species.VOLCANION]: [ Moves.HYDRO_STEAM, Moves.CALM_MIND, Moves.ENERGY_BALL, Moves.MAGMA_STORM ], [Species.VOLCANION]: [ Moves.HYDRO_STEAM, Moves.CALM_MIND, Moves.SEARING_SHOT, Moves.THUNDERCLAP ],
[Species.ETERNAL_FLOETTE]: [ Moves.MIND_BLOWN, Moves.CHLOROBLAST, Moves.LUSTER_PURGE, Moves.QUIVER_DANCE ], [Species.ETERNAL_FLOETTE]: [ Moves.MIND_BLOWN, Moves.CHLOROBLAST, Moves.LUSTER_PURGE, Moves.QUIVER_DANCE ],
[Species.ROWLET]: [ Moves.THOUSAND_ARROWS, Moves.SHADOW_BONE, Moves.FIRST_IMPRESSION, Moves.VICTORY_DANCE ], [Species.ROWLET]: [ Moves.THOUSAND_ARROWS, Moves.SHADOW_BONE, Moves.FIRST_IMPRESSION, Moves.VICTORY_DANCE ],
[Species.LITTEN]: [ Moves.SUCKER_PUNCH, Moves.PARTING_SHOT, Moves.SLACK_OFF, Moves.SACRED_FIRE ], [Species.LITTEN]: [ Moves.SUCKER_PUNCH, Moves.PARTING_SHOT, Moves.SLACK_OFF, Moves.SACRED_FIRE ],
[Species.POPPLIO]: [ Moves.PSYCHIC_NOISE, Moves.BOUNCY_BUBBLE, Moves.OVERDRIVE, Moves.TORCH_SONG ], [Species.POPPLIO]: [ Moves.PSYCHIC_NOISE, Moves.MOONLIGHT, Moves.OVERDRIVE, Moves.TORCH_SONG ],
[Species.PIKIPEK]: [ Moves.DUAL_WINGBEAT, Moves.BONE_RUSH, Moves.BURNING_BULWARK, Moves.POPULATION_BOMB ], [Species.PIKIPEK]: [ Moves.DUAL_WINGBEAT, Moves.BONE_RUSH, Moves.BURNING_BULWARK, Moves.POPULATION_BOMB ],
[Species.YUNGOOS]: [ Moves.EXTREME_SPEED, Moves.KNOCK_OFF, Moves.TIDY_UP, Moves.MULTI_ATTACK ], [Species.YUNGOOS]: [ Moves.EXTREME_SPEED, Moves.KNOCK_OFF, Moves.TIDY_UP, Moves.MULTI_ATTACK ],
[Species.GRUBBIN]: [ Moves.ICE_BEAM, Moves.EARTH_POWER, Moves.THUNDERCLAP, Moves.QUIVER_DANCE ], [Species.GRUBBIN]: [ Moves.ICE_BEAM, Moves.EARTH_POWER, Moves.THUNDERCLAP, Moves.QUIVER_DANCE ],
[Species.CRABRAWLER]: [ Moves.JET_PUNCH, Moves.SHORE_UP, Moves.SUCKER_PUNCH, Moves.SURGING_STRIKES ], [Species.CRABRAWLER]: [ Moves.JET_PUNCH, Moves.SHORE_UP, Moves.MACH_PUNCH, Moves.SURGING_STRIKES ],
[Species.ORICORIO]: [ Moves.QUIVER_DANCE, Moves.FIERY_DANCE, Moves.THUNDERCLAP, Moves.OBLIVION_WING ], [Species.ORICORIO]: [ Moves.QUIVER_DANCE, Moves.FIERY_DANCE, Moves.THUNDERCLAP, Moves.OBLIVION_WING ],
[Species.CUTIEFLY]: [ Moves.STICKY_WEB, Moves.SLEEP_POWDER, Moves.HEAT_WAVE, Moves.SPARKLY_SWIRL ], [Species.CUTIEFLY]: [ Moves.STICKY_WEB, Moves.SLEEP_POWDER, Moves.HEAT_WAVE, Moves.SPARKLY_SWIRL ],
[Species.ROCKRUFF]: [ Moves.HIGH_HORSEPOWER, Moves.TIDY_UP, Moves.ICE_SPINNER, Moves.MIGHTY_CLEAVE ], [Species.ROCKRUFF]: [ Moves.HIGH_HORSEPOWER, Moves.TIDY_UP, Moves.ICE_SPINNER, Moves.MIGHTY_CLEAVE ],
[Species.WISHIWASHI]: [ Moves.HEAL_ORDER, Moves.FREEZE_DRY, Moves.WATER_SHURIKEN, Moves.TAIL_GLOW ], [Species.WISHIWASHI]: [ Moves.HEAL_ORDER, Moves.FREEZE_DRY, Moves.WATER_SHURIKEN, Moves.TAIL_GLOW ],
[Species.MAREANIE]: [ Moves.CEASELESS_EDGE, Moves.SIZZLY_SLIDE, Moves.BODY_PRESS, Moves.LEECH_SEED ], [Species.MAREANIE]: [ Moves.CEASELESS_EDGE, Moves.SIZZLY_SLIDE, Moves.BODY_PRESS, Moves.LEECH_SEED ],
[Species.MUDBRAY]: [ Moves.BODY_PRESS, Moves.YAWN, Moves.SHORE_UP, Moves.THOUSAND_WAVES ], [Species.MUDBRAY]: [ Moves.BODY_PRESS, Moves.YAWN, Moves.SHORE_UP, Moves.THOUSAND_WAVES ],
[Species.DEWPIDER]: [ Moves.JET_PUNCH, Moves.SILK_TRAP, Moves.SWORDS_DANCE, Moves.AQUA_STEP ], [Species.DEWPIDER]: [ Moves.AQUA_STEP, Moves.SILK_TRAP, Moves.SWORDS_DANCE, Moves.JET_PUNCH ],
[Species.FOMANTIS]: [ Moves.SUPERPOWER, Moves.HEADLONG_RUSH, Moves.ICE_HAMMER, Moves.BITTER_BLADE ], [Species.FOMANTIS]: [ Moves.SUPERPOWER, Moves.HEADLONG_RUSH, Moves.ICE_HAMMER, Moves.BITTER_BLADE ],
[Species.MORELULL]: [ Moves.CALM_MIND, Moves.SAPPY_SEED, Moves.DRAINING_KISS, Moves.MATCHA_GOTCHA ], [Species.MORELULL]: [ Moves.CALM_MIND, Moves.SAPPY_SEED, Moves.DRAINING_KISS, Moves.MATCHA_GOTCHA ],
[Species.SALANDIT]: [ Moves.SCALD, Moves.SLUDGE_WAVE, Moves.CORE_ENFORCER, Moves.ERUPTION ], [Species.SALANDIT]: [ Moves.SCALD, Moves.MALIGNANT_CHAIN, Moves.CORE_ENFORCER, Moves.ERUPTION ],
[Species.STUFFUL]: [ Moves.DRAIN_PUNCH, Moves.METEOR_MASH, Moves.TRIPLE_AXEL, Moves.RAGE_FIST ], [Species.STUFFUL]: [ Moves.DRAIN_PUNCH, Moves.METEOR_MASH, Moves.TRIPLE_AXEL, Moves.RAGE_FIST ],
[Species.BOUNSWEET]: [ Moves.TRIPLE_AXEL, Moves.AQUA_STEP, Moves.THUNDEROUS_KICK, Moves.SAPPY_SEED ], [Species.BOUNSWEET]: [ Moves.TRIPLE_AXEL, Moves.AQUA_STEP, Moves.THUNDEROUS_KICK, Moves.SAPPY_SEED ],
[Species.COMFEY]: [ Moves.REVIVAL_BLESSING, Moves.TAKE_HEART, Moves.STRENGTH_SAP, Moves.MATCHA_GOTCHA ], [Species.COMFEY]: [ Moves.REVIVAL_BLESSING, Moves.TAKE_HEART, Moves.STRENGTH_SAP, Moves.MATCHA_GOTCHA ],
@ -416,25 +416,25 @@ export const speciesEggMoves = {
[Species.TAPU_KOKO]: [ Moves.MAGICAL_TORQUE, Moves.TRIPLE_AXEL, Moves.SWORDS_DANCE, Moves.BOLT_STRIKE ], [Species.TAPU_KOKO]: [ Moves.MAGICAL_TORQUE, Moves.TRIPLE_AXEL, Moves.SWORDS_DANCE, Moves.BOLT_STRIKE ],
[Species.TAPU_LELE]: [ Moves.MOONLIGHT, Moves.NASTY_PLOT, Moves.HEAT_WAVE, Moves.EXPANDING_FORCE ], [Species.TAPU_LELE]: [ Moves.MOONLIGHT, Moves.NASTY_PLOT, Moves.HEAT_WAVE, Moves.EXPANDING_FORCE ],
[Species.TAPU_BULU]: [ Moves.SAPPY_SEED, Moves.DRAIN_PUNCH, Moves.MAGICAL_TORQUE, Moves.VICTORY_DANCE ], [Species.TAPU_BULU]: [ Moves.SAPPY_SEED, Moves.DRAIN_PUNCH, Moves.MAGICAL_TORQUE, Moves.VICTORY_DANCE ],
[Species.TAPU_FINI]: [ Moves.AURA_SPHERE, Moves.EARTH_POWER, Moves.RECOVER, Moves.QUIVER_DANCE ], [Species.TAPU_FINI]: [ Moves.SPRINGTIDE_STORM, Moves.EARTH_POWER, Moves.RECOVER, Moves.QUIVER_DANCE ],
[Species.COSMOG]: [ Moves.PHOTON_GEYSER, Moves.PRECIPICE_BLADES, Moves.SACRED_FIRE, Moves.ASTRAL_BARRAGE ], [Species.COSMOG]: [ Moves.PHOTON_GEYSER, Moves.PRECIPICE_BLADES, Moves.SACRED_FIRE, Moves.ASTRAL_BARRAGE ],
[Species.NIHILEGO]: [ Moves.STRENGTH_SAP, Moves.MALIGNANT_CHAIN, Moves.EARTH_POWER, Moves.QUIVER_DANCE ], [Species.NIHILEGO]: [ Moves.STRENGTH_SAP, Moves.MALIGNANT_CHAIN, Moves.EARTH_POWER, Moves.QUIVER_DANCE ],
[Species.BUZZWOLE]: [ Moves.FIRST_IMPRESSION, Moves.COMBAT_TORQUE, Moves.ROCK_BLAST, Moves.DOUBLE_IRON_BASH ], [Species.BUZZWOLE]: [ Moves.FIRST_IMPRESSION, Moves.COMBAT_TORQUE, Moves.ROCK_BLAST, Moves.DOUBLE_IRON_BASH ],
[Species.PHEROMOSA]: [ Moves.SECRET_SWORD, Moves.MAKE_IT_RAIN, Moves.ATTACK_ORDER, Moves.DIAMOND_STORM ], [Species.PHEROMOSA]: [ Moves.SECRET_SWORD, Moves.MAKE_IT_RAIN, Moves.ATTACK_ORDER, Moves.DIAMOND_STORM ],
[Species.XURKITREE]: [ Moves.FLAMETHROWER, Moves.GIGA_DRAIN, Moves.TAIL_GLOW, Moves.THUNDERCLAP ], [Species.XURKITREE]: [ Moves.FLAMETHROWER, Moves.GIGA_DRAIN, Moves.TAIL_GLOW, Moves.THUNDERCLAP ],
[Species.CELESTEELA]: [ Moves.RECOVER, Moves.BUZZY_BUZZ, Moves.SANDSEAR_STORM, Moves.OBLIVION_WING ], [Species.CELESTEELA]: [ Moves.RECOVER, Moves.BUZZY_BUZZ, Moves.EARTH_POWER, Moves.OBLIVION_WING ],
[Species.KARTANA]: [ Moves.MIGHTY_CLEAVE, Moves.PSYBLADE, Moves.BITTER_BLADE, Moves.BEHEMOTH_BLADE ], [Species.KARTANA]: [ Moves.MIGHTY_CLEAVE, Moves.PSYBLADE, Moves.BITTER_BLADE, Moves.BEHEMOTH_BLADE ],
[Species.GUZZLORD]: [ Moves.SUCKER_PUNCH, Moves.COMEUPPANCE, Moves.SLACK_OFF, Moves.SHED_TAIL ], [Species.GUZZLORD]: [ Moves.SUCKER_PUNCH, Moves.COMEUPPANCE, Moves.SLACK_OFF, Moves.SHED_TAIL ],
[Species.NECROZMA]: [ Moves.DYNAMAX_CANNON, Moves.SACRED_FIRE, Moves.ASTRAL_BARRAGE, Moves.CLANGOROUS_SOUL ], [Species.NECROZMA]: [ Moves.DYNAMAX_CANNON, Moves.SACRED_FIRE, Moves.ASTRAL_BARRAGE, Moves.CLANGOROUS_SOUL ],
[Species.MAGEARNA]: [ Moves.STRENGTH_SAP, Moves.EARTH_POWER, Moves.MOONBLAST, Moves.MAKE_IT_RAIN ], [Species.MAGEARNA]: [ Moves.STRENGTH_SAP, Moves.EARTH_POWER, Moves.MOONBLAST, Moves.MAKE_IT_RAIN ],
[Species.MARSHADOW]: [ Moves.POWER_UP_PUNCH, Moves.TRIPLE_AXEL, Moves.METEOR_MASH, Moves.STORM_THROW ], [Species.MARSHADOW]: [ Moves.POWER_UP_PUNCH, Moves.BONEMERANG, Moves.METEOR_MASH, Moves.TRIPLE_AXEL ],
[Species.POIPOLE]: [ Moves.MALIGNANT_CHAIN, Moves.ICE_BEAM, Moves.ARMOR_CANNON, Moves.CLANGING_SCALES ], [Species.POIPOLE]: [ Moves.MALIGNANT_CHAIN, Moves.ICE_BEAM, Moves.ARMOR_CANNON, Moves.CLANGING_SCALES ],
[Species.STAKATAKA]: [ Moves.HEAVY_SLAM, Moves.SHORE_UP, Moves.CURSE, Moves.SALT_CURE ], [Species.STAKATAKA]: [ Moves.HEAVY_SLAM, Moves.SHORE_UP, Moves.CURSE, Moves.SALT_CURE ],
[Species.BLACEPHALON]: [ Moves.STEEL_BEAM, Moves.MOONBLAST, Moves.CHLOROBLAST, Moves.MOONGEIST_BEAM ], [Species.BLACEPHALON]: [ Moves.STEEL_BEAM, Moves.MOONBLAST, Moves.CHLOROBLAST, Moves.MOONGEIST_BEAM ],
[Species.ZERAORA]: [ Moves.SWORDS_DANCE, Moves.TRIPLE_AXEL, Moves.BOLT_STRIKE, Moves.PYRO_BALL ], [Species.ZERAORA]: [ Moves.SWORDS_DANCE, Moves.U_TURN, Moves.COLLISION_COURSE, Moves.TRIPLE_AXEL ],
[Species.MELTAN]: [ Moves.BULLET_PUNCH, Moves.DRAIN_PUNCH, Moves.BULK_UP, Moves.PLASMA_FISTS ], [Species.MELTAN]: [ Moves.BULLET_PUNCH, Moves.DRAIN_PUNCH, Moves.BULK_UP, Moves.PLASMA_FISTS ],
[Species.ALOLA_RATTATA]: [ Moves.FALSE_SURRENDER, Moves.PSYCHIC_FANGS, Moves.COIL, Moves.EXTREME_SPEED ], [Species.ALOLA_RATTATA]: [ Moves.FALSE_SURRENDER, Moves.PSYCHIC_FANGS, Moves.COIL, Moves.EXTREME_SPEED ],
[Species.ALOLA_SANDSHREW]: [ Moves.SPIKY_SHIELD, Moves.AQUA_CUTTER, Moves.SHIFT_GEAR, Moves.GLACIAL_LANCE ], [Species.ALOLA_SANDSHREW]: [ Moves.SPIKY_SHIELD, Moves.LIQUIDATION, Moves.SHIFT_GEAR, Moves.GLACIAL_LANCE ],
[Species.ALOLA_VULPIX]: [ Moves.MOONBLAST, Moves.PARTING_SHOT, Moves.EARTH_POWER, Moves.REVIVAL_BLESSING ], [Species.ALOLA_VULPIX]: [ Moves.MOONBLAST, Moves.PARTING_SHOT, Moves.EARTH_POWER, Moves.REVIVAL_BLESSING ],
[Species.ALOLA_DIGLETT]: [ Moves.THOUSAND_WAVES, Moves.SWORDS_DANCE, Moves.TRIPLE_DIVE, Moves.MOUNTAIN_GALE ], [Species.ALOLA_DIGLETT]: [ Moves.THOUSAND_WAVES, Moves.SWORDS_DANCE, Moves.TRIPLE_DIVE, Moves.MOUNTAIN_GALE ],
[Species.ALOLA_MEOWTH]: [ Moves.BADDY_BAD, Moves.BUZZY_BUZZ, Moves.PARTING_SHOT, Moves.MAKE_IT_RAIN ], [Species.ALOLA_MEOWTH]: [ Moves.BADDY_BAD, Moves.BUZZY_BUZZ, Moves.PARTING_SHOT, Moves.MAKE_IT_RAIN ],
@ -449,22 +449,22 @@ export const speciesEggMoves = {
[Species.BLIPBUG]: [ Moves.HEAL_ORDER, Moves.LUSTER_PURGE, Moves.SLEEP_POWDER, Moves.TAIL_GLOW ], [Species.BLIPBUG]: [ Moves.HEAL_ORDER, Moves.LUSTER_PURGE, Moves.SLEEP_POWDER, Moves.TAIL_GLOW ],
[Species.NICKIT]: [ Moves.BADDY_BAD, Moves.FLAMETHROWER, Moves.SPARKLY_SWIRL, Moves.MAKE_IT_RAIN ], [Species.NICKIT]: [ Moves.BADDY_BAD, Moves.FLAMETHROWER, Moves.SPARKLY_SWIRL, Moves.MAKE_IT_RAIN ],
[Species.GOSSIFLEUR]: [ Moves.PARTING_SHOT, Moves.STRENGTH_SAP, Moves.SAPPY_SEED, Moves.SEED_FLARE ], [Species.GOSSIFLEUR]: [ Moves.PARTING_SHOT, Moves.STRENGTH_SAP, Moves.SAPPY_SEED, Moves.SEED_FLARE ],
[Species.WOOLOO]: [ Moves.PSYSHIELD_BASH, Moves.MILK_DRINK, Moves.BODY_PRESS, Moves.MULTI_ATTACK ], [Species.WOOLOO]: [ Moves.NUZZLE, Moves.MILK_DRINK, Moves.BODY_PRESS, Moves.MULTI_ATTACK ],
[Species.CHEWTLE]: [ Moves.ICE_FANG, Moves.PSYCHIC_FANGS, Moves.SHELL_SMASH, Moves.MIGHTY_CLEAVE ], [Species.CHEWTLE]: [ Moves.ICE_FANG, Moves.PSYCHIC_FANGS, Moves.SHELL_SMASH, Moves.MIGHTY_CLEAVE ],
[Species.YAMPER]: [ Moves.ICE_FANG, Moves.SWORDS_DANCE, Moves.THUNDER_FANG, Moves.BOLT_STRIKE ], [Species.YAMPER]: [ Moves.ICE_FANG, Moves.SWORDS_DANCE, Moves.THUNDER_FANG, Moves.BOLT_STRIKE ],
[Species.ROLYCOLY]: [ Moves.BITTER_BLADE, Moves.BODY_PRESS, Moves.BULK_UP, Moves.DIAMOND_STORM ], [Species.ROLYCOLY]: [ Moves.BITTER_BLADE, Moves.BODY_PRESS, Moves.BULK_UP, Moves.DIAMOND_STORM ],
[Species.APPLIN]: [ Moves.CORE_ENFORCER, Moves.DRAGON_HAMMER, Moves.FLOWER_TRICK, Moves.MATCHA_GOTCHA ], [Species.APPLIN]: [ Moves.CORE_ENFORCER, Moves.DRAGON_HAMMER, Moves.FLOWER_TRICK, Moves.MATCHA_GOTCHA ],
[Species.SILICOBRA]: [ Moves.SHORE_UP, Moves.SHED_TAIL, Moves.MOUNTAIN_GALE, Moves.THOUSAND_ARROWS ], [Species.SILICOBRA]: [ Moves.SHORE_UP, Moves.SHED_TAIL, Moves.MOUNTAIN_GALE, Moves.THOUSAND_ARROWS ],
[Species.CRAMORANT]: [ Moves.APPLE_ACID, Moves.SURF, Moves.SCORCHING_SANDS, Moves.OBLIVION_WING ], [Species.CRAMORANT]: [ Moves.APPLE_ACID, Moves.SURF, Moves.BOLT_BEAK, Moves.OBLIVION_WING ],
[Species.ARROKUDA]: [ Moves.SUPERCELL_SLAM, Moves.TRIPLE_DIVE, Moves.ICE_SPINNER, Moves.SWORDS_DANCE ], [Species.ARROKUDA]: [ Moves.SUPERCELL_SLAM, Moves.TRIPLE_DIVE, Moves.ICE_SPINNER, Moves.SWORDS_DANCE ],
[Species.TOXEL]: [ Moves.NASTY_PLOT, Moves.BUG_BUZZ, Moves.SPARKLING_ARIA, Moves.TORCH_SONG ], [Species.TOXEL]: [ Moves.NASTY_PLOT, Moves.BUG_BUZZ, Moves.SPARKLING_ARIA, Moves.TORCH_SONG ],
[Species.SIZZLIPEDE]: [ Moves.BURNING_BULWARK, Moves.ZING_ZAP, Moves.FIRST_IMPRESSION, Moves.BITTER_BLADE ], [Species.SIZZLIPEDE]: [ Moves.BURNING_BULWARK, Moves.ZING_ZAP, Moves.FIRST_IMPRESSION, Moves.BITTER_BLADE ],
[Species.CLOBBOPUS]: [ Moves.STORM_THROW, Moves.JET_PUNCH, Moves.MACH_PUNCH, Moves.SURGING_STRIKES ], [Species.CLOBBOPUS]: [ Moves.STORM_THROW, Moves.JET_PUNCH, Moves.MACH_PUNCH, Moves.SURGING_STRIKES ],
[Species.SINISTEA]: [ Moves.SCALD, Moves.TAKE_HEART, Moves.SPARKLY_SWIRL, Moves.MATCHA_GOTCHA ], [Species.SINISTEA]: [ Moves.SPLISHY_SPLASH, Moves.MATCHA_GOTCHA, Moves.DRAINING_KISS, Moves.MOONGEIST_BEAM ],
[Species.HATENNA]: [ Moves.RECOVER, Moves.MOONBLAST, Moves.BUZZY_BUZZ, Moves.TORCH_SONG ], [Species.HATENNA]: [ Moves.RECOVER, Moves.MOONBLAST, Moves.BUZZY_BUZZ, Moves.TORCH_SONG ],
[Species.IMPIDIMP]: [ Moves.ENCORE, Moves.PARTING_SHOT, Moves.TOPSY_TURVY, Moves.WICKED_BLOW ], [Species.IMPIDIMP]: [ Moves.SLACK_OFF, Moves.PARTING_SHOT, Moves.OCTOLOCK, Moves.WICKED_BLOW ],
[Species.MILCERY]: [ Moves.MOONBLAST, Moves.CHILLY_RECEPTION, Moves.EARTH_POWER, Moves.GEOMANCY ], [Species.MILCERY]: [ Moves.MOONBLAST, Moves.CHILLY_RECEPTION, Moves.EARTH_POWER, Moves.GEOMANCY ],
[Species.FALINKS]: [ Moves.COMBAT_TORQUE, Moves.PSYSHIELD_BASH, Moves.HEAL_ORDER, Moves.POPULATION_BOMB ], [Species.FALINKS]: [ Moves.BATON_PASS, Moves.POWER_TRIP, Moves.HEAL_ORDER, Moves.COMBAT_TORQUE ],
[Species.PINCURCHIN]: [ Moves.TRICK_ROOM, Moves.VOLT_SWITCH, Moves.STRENGTH_SAP, Moves.THUNDERCLAP ], [Species.PINCURCHIN]: [ Moves.TRICK_ROOM, Moves.VOLT_SWITCH, Moves.STRENGTH_SAP, Moves.THUNDERCLAP ],
[Species.SNOM]: [ Moves.FROST_BREATH, Moves.HEAL_ORDER, Moves.EARTH_POWER, Moves.SPORE ], [Species.SNOM]: [ Moves.FROST_BREATH, Moves.HEAL_ORDER, Moves.EARTH_POWER, Moves.SPORE ],
[Species.STONJOURNER]: [ Moves.BODY_PRESS, Moves.HELPING_HAND, Moves.ACCELEROCK, Moves.DIAMOND_STORM ], [Species.STONJOURNER]: [ Moves.BODY_PRESS, Moves.HELPING_HAND, Moves.ACCELEROCK, Moves.DIAMOND_STORM ],
@ -484,9 +484,9 @@ export const speciesEggMoves = {
[Species.KUBFU]: [ Moves.METEOR_MASH, Moves.DRAIN_PUNCH, Moves.JET_PUNCH, Moves.DRAGON_DANCE ], [Species.KUBFU]: [ Moves.METEOR_MASH, Moves.DRAIN_PUNCH, Moves.JET_PUNCH, Moves.DRAGON_DANCE ],
[Species.ZARUDE]: [ Moves.SAPPY_SEED, Moves.MIGHTY_CLEAVE, Moves.WICKED_BLOW, Moves.VICTORY_DANCE ], [Species.ZARUDE]: [ Moves.SAPPY_SEED, Moves.MIGHTY_CLEAVE, Moves.WICKED_BLOW, Moves.VICTORY_DANCE ],
[Species.REGIELEKI]: [ Moves.NASTY_PLOT, Moves.ICE_BEAM, Moves.EARTH_POWER, Moves.ELECTRO_DRIFT ], [Species.REGIELEKI]: [ Moves.NASTY_PLOT, Moves.ICE_BEAM, Moves.EARTH_POWER, Moves.ELECTRO_DRIFT ],
[Species.REGIDRAGO]: [ Moves.METEOR_MASH, Moves.FLAMETHROWER, Moves.TAKE_HEART, Moves.DRAGON_DARTS ], [Species.REGIDRAGO]: [ Moves.SHELL_SIDE_ARM, Moves.FLAMETHROWER, Moves.TAKE_HEART, Moves.DRAGON_DARTS ],
[Species.GLASTRIER]: [ Moves.SPEED_SWAP, Moves.SLACK_OFF, Moves.HIGH_HORSEPOWER, Moves.GLACIAL_LANCE ], [Species.GLASTRIER]: [ Moves.SPEED_SWAP, Moves.SLACK_OFF, Moves.HIGH_HORSEPOWER, Moves.GLACIAL_LANCE ],
[Species.SPECTRIER]: [ Moves.EARTH_POWER, Moves.PARTING_SHOT, Moves.AURA_SPHERE, Moves.ASTRAL_BARRAGE ], [Species.SPECTRIER]: [ Moves.EARTH_POWER, Moves.MOONLIGHT, Moves.AURA_SPHERE, Moves.ASTRAL_BARRAGE ],
[Species.CALYREX]: [ Moves.SAPPY_SEED, Moves.RECOVER, Moves.SECRET_SWORD, Moves.PHOTON_GEYSER ], [Species.CALYREX]: [ Moves.SAPPY_SEED, Moves.RECOVER, Moves.SECRET_SWORD, Moves.PHOTON_GEYSER ],
[Species.ENAMORUS]: [ Moves.AEROBLAST, Moves.THOUSAND_ARROWS, Moves.STORED_POWER, Moves.FLEUR_CANNON ], [Species.ENAMORUS]: [ Moves.AEROBLAST, Moves.THOUSAND_ARROWS, Moves.STORED_POWER, Moves.FLEUR_CANNON ],
[Species.GALAR_MEOWTH]: [ Moves.LIQUIDATION, Moves.HORN_LEECH, Moves.BULLET_PUNCH, Moves.BEHEMOTH_BASH ], [Species.GALAR_MEOWTH]: [ Moves.LIQUIDATION, Moves.HORN_LEECH, Moves.BULLET_PUNCH, Moves.BEHEMOTH_BASH ],
@ -494,7 +494,7 @@ export const speciesEggMoves = {
[Species.GALAR_SLOWPOKE]: [ Moves.SHED_TAIL, Moves.BADDY_BAD, Moves.MOONBLAST, Moves.PHOTON_GEYSER ], [Species.GALAR_SLOWPOKE]: [ Moves.SHED_TAIL, Moves.BADDY_BAD, Moves.MOONBLAST, Moves.PHOTON_GEYSER ],
[Species.GALAR_FARFETCHD]: [ Moves.ROOST, Moves.SACRED_SWORD, Moves.KINGS_SHIELD, Moves.BEHEMOTH_BLADE ], [Species.GALAR_FARFETCHD]: [ Moves.ROOST, Moves.SACRED_SWORD, Moves.KINGS_SHIELD, Moves.BEHEMOTH_BLADE ],
[Species.GALAR_ARTICUNO]: [ Moves.SECRET_SWORD, Moves.NIGHT_DAZE, Moves.ICE_BEAM, Moves.OBLIVION_WING ], [Species.GALAR_ARTICUNO]: [ Moves.SECRET_SWORD, Moves.NIGHT_DAZE, Moves.ICE_BEAM, Moves.OBLIVION_WING ],
[Species.GALAR_ZAPDOS]: [ Moves.TIDY_UP, Moves.FLOATY_FALL, Moves.ROOST, Moves.BOLT_BEAK ], [Species.GALAR_ZAPDOS]: [ Moves.POISON_JAB, Moves.FLOATY_FALL, Moves.ROOST, Moves.BOLT_BEAK ],
[Species.GALAR_MOLTRES]: [ Moves.ROOST, Moves.SLUDGE_BOMB, Moves.FLAMETHROWER, Moves.OBLIVION_WING ], [Species.GALAR_MOLTRES]: [ Moves.ROOST, Moves.SLUDGE_BOMB, Moves.FLAMETHROWER, Moves.OBLIVION_WING ],
[Species.GALAR_CORSOLA]: [ Moves.SHELL_SMASH, Moves.AURA_SPHERE, Moves.INFERNAL_PARADE, Moves.ASTRAL_BARRAGE ], [Species.GALAR_CORSOLA]: [ Moves.SHELL_SMASH, Moves.AURA_SPHERE, Moves.INFERNAL_PARADE, Moves.ASTRAL_BARRAGE ],
[Species.GALAR_ZIGZAGOON]: [ Moves.CEASELESS_EDGE, Moves.FACADE, Moves.PARTING_SHOT, Moves.EXTREME_SPEED ], [Species.GALAR_ZIGZAGOON]: [ Moves.CEASELESS_EDGE, Moves.FACADE, Moves.PARTING_SHOT, Moves.EXTREME_SPEED ],
@ -510,7 +510,7 @@ export const speciesEggMoves = {
[Species.SPRIGATITO]: [ Moves.FIRE_LASH, Moves.TRIPLE_AXEL, Moves.SUCKER_PUNCH, Moves.WICKED_BLOW ], [Species.SPRIGATITO]: [ Moves.FIRE_LASH, Moves.TRIPLE_AXEL, Moves.SUCKER_PUNCH, Moves.WICKED_BLOW ],
[Species.FUECOCO]: [ Moves.ALLURING_VOICE, Moves.SLACK_OFF, Moves.OVERDRIVE, Moves.MOONGEIST_BEAM ], [Species.FUECOCO]: [ Moves.ALLURING_VOICE, Moves.SLACK_OFF, Moves.OVERDRIVE, Moves.MOONGEIST_BEAM ],
[Species.QUAXLY]: [ Moves.DRAGON_DANCE, Moves.TRIPLE_AXEL, Moves.POWER_TRIP, Moves.THUNDEROUS_KICK ], [Species.QUAXLY]: [ Moves.DRAGON_DANCE, Moves.TRIPLE_AXEL, Moves.POWER_TRIP, Moves.THUNDEROUS_KICK ],
[Species.LECHONK]: [ Moves.MILK_DRINK, Moves.PSYSHIELD_BASH, Moves.FILLET_AWAY, Moves.MULTI_ATTACK ], [Species.LECHONK]: [ Moves.MILK_DRINK, Moves.PSYSHIELD_BASH, Moves.BLAZING_TORQUE, Moves.FILLET_AWAY ],
[Species.TAROUNTULA]: [ Moves.STONE_AXE, Moves.LEECH_LIFE, Moves.THIEF, Moves.SPORE ], [Species.TAROUNTULA]: [ Moves.STONE_AXE, Moves.LEECH_LIFE, Moves.THIEF, Moves.SPORE ],
[Species.NYMBLE]: [ Moves.KNOCK_OFF, Moves.FELL_STINGER, Moves.ATTACK_ORDER, Moves.WICKED_BLOW ], [Species.NYMBLE]: [ Moves.KNOCK_OFF, Moves.FELL_STINGER, Moves.ATTACK_ORDER, Moves.WICKED_BLOW ],
[Species.PAWMI]: [ Moves.DRAIN_PUNCH, Moves.METEOR_MASH, Moves.JET_PUNCH, Moves.PLASMA_FISTS ], [Species.PAWMI]: [ Moves.DRAIN_PUNCH, Moves.METEOR_MASH, Moves.JET_PUNCH, Moves.PLASMA_FISTS ],
@ -522,13 +522,13 @@ export const speciesEggMoves = {
[Species.CHARCADET]: [ Moves.SACRED_SWORD, Moves.PHOTON_GEYSER, Moves.MOONBLAST, Moves.SPECTRAL_THIEF ], [Species.CHARCADET]: [ Moves.SACRED_SWORD, Moves.PHOTON_GEYSER, Moves.MOONBLAST, Moves.SPECTRAL_THIEF ],
[Species.TADBULB]: [ Moves.PARABOLIC_CHARGE, Moves.SCALD, Moves.EARTH_POWER, Moves.ELECTRO_SHOT ], [Species.TADBULB]: [ Moves.PARABOLIC_CHARGE, Moves.SCALD, Moves.EARTH_POWER, Moves.ELECTRO_SHOT ],
[Species.WATTREL]: [ Moves.NASTY_PLOT, Moves.SPLISHY_SPLASH, Moves.SANDSEAR_STORM, Moves.ELECTRO_SHOT ], [Species.WATTREL]: [ Moves.NASTY_PLOT, Moves.SPLISHY_SPLASH, Moves.SANDSEAR_STORM, Moves.ELECTRO_SHOT ],
[Species.MASCHIFF]: [ Moves.PARTING_SHOT, Moves.CLOSE_COMBAT, Moves.PSYCHIC_FANGS, Moves.NO_RETREAT ], [Species.MASCHIFF]: [ Moves.PARTING_SHOT, Moves.COMBAT_TORQUE, Moves.PSYCHIC_FANGS, Moves.NO_RETREAT ],
[Species.SHROODLE]: [ Moves.GASTRO_ACID, Moves.PARTING_SHOT, Moves.TOXIC, Moves.SKETCH ], [Species.SHROODLE]: [ Moves.GASTRO_ACID, Moves.PARTING_SHOT, Moves.TOXIC, Moves.SKETCH ],
[Species.BRAMBLIN]: [ Moves.TAILWIND, Moves.STRENGTH_SAP, Moves.FLOWER_TRICK, Moves.LAST_RESPECTS ], [Species.BRAMBLIN]: [ Moves.TAILWIND, Moves.STRENGTH_SAP, Moves.FLOWER_TRICK, Moves.LAST_RESPECTS ],
[Species.TOEDSCOOL]: [ Moves.STRENGTH_SAP, Moves.TOPSY_TURVY, Moves.SAPPY_SEED, Moves.TAIL_GLOW ], [Species.TOEDSCOOL]: [ Moves.STRENGTH_SAP, Moves.TOPSY_TURVY, Moves.SAPPY_SEED, Moves.TAIL_GLOW ],
[Species.KLAWF]: [ Moves.CRABHAMMER, Moves.SHORE_UP, Moves.MIGHTY_CLEAVE, Moves.SHELL_SMASH ], [Species.KLAWF]: [ Moves.CRABHAMMER, Moves.SHORE_UP, Moves.MIGHTY_CLEAVE, Moves.SHELL_SMASH ],
[Species.CAPSAKID]: [ Moves.STRENGTH_SAP, Moves.APPLE_ACID, Moves.FROST_BREATH, Moves.TORCH_SONG ], [Species.CAPSAKID]: [ Moves.STRENGTH_SAP, Moves.APPLE_ACID, Moves.FROST_BREATH, Moves.TORCH_SONG ],
[Species.RELLOR]: [ Moves.HEAL_BLOCK, Moves.RECOVER, Moves.HEAT_WAVE, Moves.LUMINA_CRASH ], [Species.RELLOR]: [ Moves.HEAL_BLOCK, Moves.RECOVER, Moves.MAGIC_POWDER, Moves.LUMINA_CRASH ],
[Species.FLITTLE]: [ Moves.COSMIC_POWER, Moves.AURA_SPHERE, Moves.ROOST, Moves.FIERY_DANCE ], [Species.FLITTLE]: [ Moves.COSMIC_POWER, Moves.AURA_SPHERE, Moves.ROOST, Moves.FIERY_DANCE ],
[Species.TINKATINK]: [ Moves.MAGICAL_TORQUE, Moves.PYRO_BALL, Moves.IVY_CUDGEL, Moves.SHIFT_GEAR ], [Species.TINKATINK]: [ Moves.MAGICAL_TORQUE, Moves.PYRO_BALL, Moves.IVY_CUDGEL, Moves.SHIFT_GEAR ],
[Species.WIGLETT]: [ Moves.SHELL_SMASH, Moves.ICICLE_CRASH, Moves.SEED_BOMB, Moves.SURGING_STRIKES ], [Species.WIGLETT]: [ Moves.SHELL_SMASH, Moves.ICICLE_CRASH, Moves.SEED_BOMB, Moves.SURGING_STRIKES ],
@ -537,11 +537,11 @@ export const speciesEggMoves = {
[Species.VAROOM]: [ Moves.COMBAT_TORQUE, Moves.U_TURN, Moves.BLAZING_TORQUE, Moves.NOXIOUS_TORQUE ], [Species.VAROOM]: [ Moves.COMBAT_TORQUE, Moves.U_TURN, Moves.BLAZING_TORQUE, Moves.NOXIOUS_TORQUE ],
[Species.CYCLIZAR]: [ Moves.PARTING_SHOT, Moves.FIRE_LASH, Moves.MAGICAL_TORQUE, Moves.GLAIVE_RUSH ], [Species.CYCLIZAR]: [ Moves.PARTING_SHOT, Moves.FIRE_LASH, Moves.MAGICAL_TORQUE, Moves.GLAIVE_RUSH ],
[Species.ORTHWORM]: [ Moves.SIZZLY_SLIDE, Moves.COIL, Moves.BODY_PRESS, Moves.SHORE_UP ], [Species.ORTHWORM]: [ Moves.SIZZLY_SLIDE, Moves.COIL, Moves.BODY_PRESS, Moves.SHORE_UP ],
[Species.GLIMMET]: [ Moves.CALM_MIND, Moves.EARTH_POWER, Moves.FIERY_DANCE, Moves.MALIGNANT_CHAIN ], [Species.GLIMMET]: [ Moves.CALM_MIND, Moves.GIGA_DRAIN, Moves.FIERY_DANCE, Moves.MALIGNANT_CHAIN ],
[Species.GREAVARD]: [ Moves.SHADOW_BONE, Moves.YAWN, Moves.SHORE_UP, Moves.COLLISION_COURSE ], [Species.GREAVARD]: [ Moves.SHADOW_BONE, Moves.YAWN, Moves.SHORE_UP, Moves.COLLISION_COURSE ],
[Species.FLAMIGO]: [ Moves.THUNDEROUS_KICK, Moves.TRIPLE_AXEL, Moves.FLOATY_FALL, Moves.VICTORY_DANCE ], [Species.FLAMIGO]: [ Moves.THUNDEROUS_KICK, Moves.TRIPLE_AXEL, Moves.FLOATY_FALL, Moves.VICTORY_DANCE ],
[Species.CETODDLE]: [ Moves.MOUNTAIN_GALE, Moves.HIGH_HORSEPOWER, Moves.SLACK_OFF, Moves.DRAGON_DANCE ], [Species.CETODDLE]: [ Moves.ZING_ZAP, Moves.HIGH_HORSEPOWER, Moves.SLACK_OFF, Moves.DRAGON_DANCE ],
[Species.VELUZA]: [ Moves.PSYBLADE, Moves.FLIP_TURN, Moves.ICE_SPINNER, Moves.BITTER_BLADE ], [Species.VELUZA]: [ Moves.PSYBLADE, Moves.LEAF_BLADE, Moves.CEASELESS_EDGE, Moves.BITTER_BLADE ],
[Species.DONDOZO]: [ Moves.SOFT_BOILED, Moves.SIZZLY_SLIDE, Moves.BREAKING_SWIPE, Moves.SALT_CURE ], [Species.DONDOZO]: [ Moves.SOFT_BOILED, Moves.SIZZLY_SLIDE, Moves.BREAKING_SWIPE, Moves.SALT_CURE ],
[Species.TATSUGIRI]: [ Moves.SLUDGE_BOMB, Moves.FILLET_AWAY, Moves.CORE_ENFORCER, Moves.STEAM_ERUPTION ], [Species.TATSUGIRI]: [ Moves.SLUDGE_BOMB, Moves.FILLET_AWAY, Moves.CORE_ENFORCER, Moves.STEAM_ERUPTION ],
[Species.GREAT_TUSK]: [ Moves.STONE_AXE, Moves.MORNING_SUN, Moves.COLLISION_COURSE, Moves.SHIFT_GEAR ], [Species.GREAT_TUSK]: [ Moves.STONE_AXE, Moves.MORNING_SUN, Moves.COLLISION_COURSE, Moves.SHIFT_GEAR ],
@ -551,7 +551,7 @@ export const speciesEggMoves = {
[Species.SLITHER_WING]: [ Moves.MIGHTY_CLEAVE, Moves.THUNDEROUS_KICK, Moves.FIRE_LASH, Moves.VICTORY_DANCE ], [Species.SLITHER_WING]: [ Moves.MIGHTY_CLEAVE, Moves.THUNDEROUS_KICK, Moves.FIRE_LASH, Moves.VICTORY_DANCE ],
[Species.SANDY_SHOCKS]: [ Moves.MORNING_SUN, Moves.ICE_BEAM, Moves.NASTY_PLOT, Moves.THUNDERCLAP ], [Species.SANDY_SHOCKS]: [ Moves.MORNING_SUN, Moves.ICE_BEAM, Moves.NASTY_PLOT, Moves.THUNDERCLAP ],
[Species.IRON_TREADS]: [ Moves.FUSION_BOLT, Moves.BULK_UP, Moves.SHORE_UP, Moves.SUNSTEEL_STRIKE ], [Species.IRON_TREADS]: [ Moves.FUSION_BOLT, Moves.BULK_UP, Moves.SHORE_UP, Moves.SUNSTEEL_STRIKE ],
[Species.IRON_BUNDLE]: [ Moves.EARTH_POWER, Moves.BOUNCY_BUBBLE, Moves.NASTY_PLOT, Moves.STEAM_ERUPTION ], [Species.IRON_BUNDLE]: [ Moves.EARTH_POWER, Moves.SPLISHY_SPLASH, Moves.VOLT_SWITCH, Moves.NASTY_PLOT ],
[Species.IRON_HANDS]: [ Moves.DRAIN_PUNCH, Moves.BULK_UP, Moves.PLASMA_FISTS, Moves.ICE_HAMMER ], [Species.IRON_HANDS]: [ Moves.DRAIN_PUNCH, Moves.BULK_UP, Moves.PLASMA_FISTS, Moves.ICE_HAMMER ],
[Species.IRON_JUGULIS]: [ Moves.FIERY_WRATH, Moves.ROOST, Moves.NASTY_PLOT, Moves.OBLIVION_WING ], [Species.IRON_JUGULIS]: [ Moves.FIERY_WRATH, Moves.ROOST, Moves.NASTY_PLOT, Moves.OBLIVION_WING ],
[Species.IRON_MOTH]: [ Moves.EARTH_POWER, Moves.SEARING_SHOT, Moves.MALIGNANT_CHAIN, Moves.QUIVER_DANCE ], [Species.IRON_MOTH]: [ Moves.EARTH_POWER, Moves.SEARING_SHOT, Moves.MALIGNANT_CHAIN, Moves.QUIVER_DANCE ],
@ -566,7 +566,7 @@ export const speciesEggMoves = {
[Species.IRON_VALIANT]: [ Moves.PLASMA_FISTS, Moves.NO_RETREAT, Moves.SECRET_SWORD, Moves.MAGICAL_TORQUE ], [Species.IRON_VALIANT]: [ Moves.PLASMA_FISTS, Moves.NO_RETREAT, Moves.SECRET_SWORD, Moves.MAGICAL_TORQUE ],
[Species.KORAIDON]: [ Moves.SUNSTEEL_STRIKE, Moves.SOLAR_BLADE, Moves.DRAGON_DARTS, Moves.BITTER_BLADE ], [Species.KORAIDON]: [ Moves.SUNSTEEL_STRIKE, Moves.SOLAR_BLADE, Moves.DRAGON_DARTS, Moves.BITTER_BLADE ],
[Species.MIRAIDON]: [ Moves.ICE_BEAM, Moves.CLANGOROUS_SOUL, Moves.CORE_ENFORCER, Moves.RISING_VOLTAGE ], [Species.MIRAIDON]: [ Moves.ICE_BEAM, Moves.CLANGOROUS_SOUL, Moves.CORE_ENFORCER, Moves.RISING_VOLTAGE ],
[Species.WALKING_WAKE]: [ Moves.BOUNCY_BUBBLE, Moves.NASTY_PLOT, Moves.SLUDGE_WAVE, Moves.CORE_ENFORCER ], [Species.WALKING_WAKE]: [ Moves.BOUNCY_BUBBLE, Moves.FUSION_FLARE, Moves.SLUDGE_WAVE, Moves.CORE_ENFORCER ],
[Species.IRON_LEAVES]: [ Moves.BITTER_BLADE, Moves.U_TURN, Moves.MIGHTY_CLEAVE, Moves.VICTORY_DANCE ], [Species.IRON_LEAVES]: [ Moves.BITTER_BLADE, Moves.U_TURN, Moves.MIGHTY_CLEAVE, Moves.VICTORY_DANCE ],
[Species.POLTCHAGEIST]: [ Moves.PARABOLIC_CHARGE, Moves.BOUNCY_BUBBLE, Moves.LEECH_SEED, Moves.SPARKLY_SWIRL ], [Species.POLTCHAGEIST]: [ Moves.PARABOLIC_CHARGE, Moves.BOUNCY_BUBBLE, Moves.LEECH_SEED, Moves.SPARKLY_SWIRL ],
[Species.OKIDOGI]: [ Moves.COMBAT_TORQUE, Moves.TIDY_UP, Moves.DIRE_CLAW, Moves.WICKED_BLOW ], [Species.OKIDOGI]: [ Moves.COMBAT_TORQUE, Moves.TIDY_UP, Moves.DIRE_CLAW, Moves.WICKED_BLOW ],
@ -578,7 +578,7 @@ export const speciesEggMoves = {
[Species.IRON_BOULDER]: [ Moves.PSYBLADE, Moves.KOWTOW_CLEAVE, Moves.STONE_AXE, Moves.BITTER_BLADE ], [Species.IRON_BOULDER]: [ Moves.PSYBLADE, Moves.KOWTOW_CLEAVE, Moves.STONE_AXE, Moves.BITTER_BLADE ],
[Species.IRON_CROWN]: [ Moves.NASTY_PLOT, Moves.SECRET_SWORD, Moves.PSYSTRIKE, Moves.ELECTRO_DRIFT ], [Species.IRON_CROWN]: [ Moves.NASTY_PLOT, Moves.SECRET_SWORD, Moves.PSYSTRIKE, Moves.ELECTRO_DRIFT ],
[Species.TERAPAGOS]: [ Moves.MOONBLAST, Moves.RECOVER, Moves.ICE_BEAM, Moves.SHELL_SMASH ], [Species.TERAPAGOS]: [ Moves.MOONBLAST, Moves.RECOVER, Moves.ICE_BEAM, Moves.SHELL_SMASH ],
[Species.PECHARUNT]: [ Moves.TAKE_HEART, Moves.BODY_PRESS, Moves.SAPPY_SEED, Moves.KINGS_SHIELD ], [Species.PECHARUNT]: [ Moves.TAKE_HEART, Moves.BODY_PRESS, Moves.SAPPY_SEED, Moves.ASTRAL_BARRAGE ],
[Species.PALDEA_TAUROS]: [ Moves.NO_RETREAT, Moves.BLAZING_TORQUE, Moves.AQUA_STEP, Moves.THUNDEROUS_KICK ], [Species.PALDEA_TAUROS]: [ Moves.NO_RETREAT, Moves.BLAZING_TORQUE, Moves.AQUA_STEP, Moves.THUNDEROUS_KICK ],
[Species.PALDEA_WOOPER]: [ Moves.STONE_AXE, Moves.RECOVER, Moves.BANEFUL_BUNKER, Moves.BARB_BARRAGE ], [Species.PALDEA_WOOPER]: [ Moves.STONE_AXE, Moves.RECOVER, Moves.BANEFUL_BUNKER, Moves.BARB_BARRAGE ],
[Species.BLOODMOON_URSALUNA]: [ Moves.NASTY_PLOT, Moves.ROCK_POLISH, Moves.SANDSEAR_STORM, Moves.BOOMBURST ] [Species.BLOODMOON_URSALUNA]: [ Moves.NASTY_PLOT, Moves.ROCK_POLISH, Moves.SANDSEAR_STORM, Moves.BOOMBURST ]

View File

@ -12,7 +12,7 @@ interface StarterPassiveAbilities {
export const starterPassiveAbilities: StarterPassiveAbilities = { export const starterPassiveAbilities: StarterPassiveAbilities = {
[Species.BULBASAUR]: { 0: Abilities.GRASSY_SURGE }, [Species.BULBASAUR]: { 0: Abilities.GRASSY_SURGE },
[Species.CHARMANDER]: { 0: Abilities.BEAST_BOOST }, [Species.CHARMANDER]: { 0: Abilities.BEAST_BOOST },
[Species.SQUIRTLE]: { 0: Abilities.STURDY }, [Species.SQUIRTLE]: { 0: Abilities.DAUNTLESS_SHIELD },
[Species.CATERPIE]: { 0: Abilities.MAGICIAN }, [Species.CATERPIE]: { 0: Abilities.MAGICIAN },
[Species.WEEDLE]: { 0: Abilities.TINTED_LENS }, [Species.WEEDLE]: { 0: Abilities.TINTED_LENS },
[Species.PIDGEY]: { 0: Abilities.SHEER_FORCE }, [Species.PIDGEY]: { 0: Abilities.SHEER_FORCE },
@ -57,7 +57,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
[Species.KOFFING]: { 0: Abilities.PARENTAL_BOND }, [Species.KOFFING]: { 0: Abilities.PARENTAL_BOND },
[Species.RHYHORN]: { 0: Abilities.FILTER }, [Species.RHYHORN]: { 0: Abilities.FILTER },
[Species.TANGELA]: { 0: Abilities.SEED_SOWER }, [Species.TANGELA]: { 0: Abilities.SEED_SOWER },
[Species.KANGASKHAN]: { 0: Abilities.GUTS }, [Species.KANGASKHAN]: { 0: Abilities.TECHNICIAN },
[Species.HORSEA]: { 0: Abilities.DRAGONS_MAW }, [Species.HORSEA]: { 0: Abilities.DRAGONS_MAW },
[Species.GOLDEEN]: { 0: Abilities.MULTISCALE }, [Species.GOLDEEN]: { 0: Abilities.MULTISCALE },
[Species.STARYU]: { 0: Abilities.REGENERATOR }, [Species.STARYU]: { 0: Abilities.REGENERATOR },
@ -129,7 +129,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
[Species.RAIKOU]: { 0: Abilities.BEAST_BOOST }, [Species.RAIKOU]: { 0: Abilities.BEAST_BOOST },
[Species.ENTEI]: { 0: Abilities.BEAST_BOOST }, [Species.ENTEI]: { 0: Abilities.BEAST_BOOST },
[Species.SUICUNE]: { 0: Abilities.BEAST_BOOST }, [Species.SUICUNE]: { 0: Abilities.BEAST_BOOST },
[Species.LARVITAR]: { 0: Abilities.SAND_RUSH }, [Species.LARVITAR]: { 0: Abilities.SOLID_ROCK },
[Species.LUGIA]: { 0: Abilities.DELTA_STREAM }, [Species.LUGIA]: { 0: Abilities.DELTA_STREAM },
[Species.HO_OH]: { 0: Abilities.MAGIC_GUARD }, [Species.HO_OH]: { 0: Abilities.MAGIC_GUARD },
[Species.CELEBI]: { 0: Abilities.PSYCHIC_SURGE }, [Species.CELEBI]: { 0: Abilities.PSYCHIC_SURGE },
@ -246,11 +246,11 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
[Species.MANTYKE]: { 0: Abilities.UNAWARE }, [Species.MANTYKE]: { 0: Abilities.UNAWARE },
[Species.SNOVER]: { 0: Abilities.GRASSY_SURGE }, [Species.SNOVER]: { 0: Abilities.GRASSY_SURGE },
[Species.ROTOM]: { 0: Abilities.HADRON_ENGINE }, [Species.ROTOM]: { 0: Abilities.HADRON_ENGINE },
[Species.UXIE]: { 0: Abilities.UNAWARE }, [Species.UXIE]: { 0: Abilities.UNNERVE },
[Species.MESPRIT]: { 0: Abilities.MOODY }, [Species.MESPRIT]: { 0: Abilities.MOODY },
[Species.AZELF]: { 0: Abilities.NEUROFORCE }, [Species.AZELF]: { 0: Abilities.NEUROFORCE },
[Species.DIALGA]: { 0: Abilities.LEVITATE }, [Species.DIALGA]: { 0: Abilities.BERSERK },
[Species.PALKIA]: { 0: Abilities.SPEED_BOOST }, [Species.PALKIA]: { 0: Abilities.BERSERK },
[Species.HEATRAN]: { 0: Abilities.EARTH_EATER }, [Species.HEATRAN]: { 0: Abilities.EARTH_EATER },
[Species.REGIGIGAS]: { 0: Abilities.SCRAPPY }, [Species.REGIGIGAS]: { 0: Abilities.SCRAPPY },
[Species.GIRATINA]: { 0: Abilities.SHADOW_SHIELD }, [Species.GIRATINA]: { 0: Abilities.SHADOW_SHIELD },
@ -285,7 +285,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
[Species.SEWADDLE]: { 0: Abilities.SHARPNESS }, [Species.SEWADDLE]: { 0: Abilities.SHARPNESS },
[Species.VENIPEDE]: { 0: Abilities.STAMINA }, [Species.VENIPEDE]: { 0: Abilities.STAMINA },
[Species.COTTONEE]: { 0: Abilities.FLUFFY }, [Species.COTTONEE]: { 0: Abilities.FLUFFY },
[Species.PETILIL]: { 0: Abilities.SIMPLE }, [Species.PETILIL]: { 0: Abilities.FLOWER_VEIL },
[Species.BASCULIN]: { 0: Abilities.SUPREME_OVERLORD }, [Species.BASCULIN]: { 0: Abilities.SUPREME_OVERLORD },
[Species.SANDILE]: { 0: Abilities.TOUGH_CLAWS }, [Species.SANDILE]: { 0: Abilities.TOUGH_CLAWS },
[Species.DARUMAKA]: { 0: Abilities.GORILLA_TACTICS }, [Species.DARUMAKA]: { 0: Abilities.GORILLA_TACTICS },
@ -347,7 +347,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
[Species.CHESPIN]: { 0: Abilities.DAUNTLESS_SHIELD }, [Species.CHESPIN]: { 0: Abilities.DAUNTLESS_SHIELD },
[Species.FENNEKIN]: { 0: Abilities.PSYCHIC_SURGE }, [Species.FENNEKIN]: { 0: Abilities.PSYCHIC_SURGE },
[Species.FROAKIE]: { 0: Abilities.STAKEOUT }, [Species.FROAKIE]: { 0: Abilities.STAKEOUT },
[Species.BUNNELBY]: { 0: Abilities.GUTS }, [Species.BUNNELBY]: { 0: Abilities.THICK_FAT },
[Species.FLETCHLING]: { 0: Abilities.MAGIC_GUARD }, [Species.FLETCHLING]: { 0: Abilities.MAGIC_GUARD },
[Species.SCATTERBUG]: { 0: Abilities.PRANKSTER }, [Species.SCATTERBUG]: { 0: Abilities.PRANKSTER },
[Species.LITLEO]: { 0: Abilities.BEAST_BOOST }, [Species.LITLEO]: { 0: Abilities.BEAST_BOOST },
@ -380,7 +380,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
[Species.ZYGARDE]: { 0: Abilities.ADAPTABILITY }, [Species.ZYGARDE]: { 0: Abilities.ADAPTABILITY },
[Species.DIANCIE]: { 0: Abilities.PRISM_ARMOR }, [Species.DIANCIE]: { 0: Abilities.PRISM_ARMOR },
[Species.HOOPA]: { 0: Abilities.OPPORTUNIST }, [Species.HOOPA]: { 0: Abilities.OPPORTUNIST },
[Species.VOLCANION]: { 0: Abilities.FILTER }, [Species.VOLCANION]: { 0: Abilities.NEUTRALIZING_GAS },
[Species.ETERNAL_FLOETTE]: { 0: Abilities.MAGIC_GUARD }, [Species.ETERNAL_FLOETTE]: { 0: Abilities.MAGIC_GUARD },
[Species.ROWLET]: { 0: Abilities.SNIPER }, [Species.ROWLET]: { 0: Abilities.SNIPER },
@ -395,7 +395,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
[Species.ROCKRUFF]: { 0: Abilities.ROCKY_PAYLOAD }, [Species.ROCKRUFF]: { 0: Abilities.ROCKY_PAYLOAD },
[Species.WISHIWASHI]: { 0: Abilities.REGENERATOR }, [Species.WISHIWASHI]: { 0: Abilities.REGENERATOR },
[Species.MAREANIE]: { 0: Abilities.TOXIC_DEBRIS }, [Species.MAREANIE]: { 0: Abilities.TOXIC_DEBRIS },
[Species.MUDBRAY]: { 0: Abilities.CUD_CHEW }, [Species.MUDBRAY]: { 0: Abilities.SAP_SIPPER },
[Species.DEWPIDER]: { 0: Abilities.TINTED_LENS }, [Species.DEWPIDER]: { 0: Abilities.TINTED_LENS },
[Species.FOMANTIS]: { 0: Abilities.SHARPNESS }, [Species.FOMANTIS]: { 0: Abilities.SHARPNESS },
[Species.MORELULL]: { 0: Abilities.TRIAGE }, [Species.MORELULL]: { 0: Abilities.TRIAGE },
@ -419,8 +419,8 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
[Species.DHELMISE]: { 0: Abilities.WATER_BUBBLE }, [Species.DHELMISE]: { 0: Abilities.WATER_BUBBLE },
[Species.JANGMO_O]: { 0: Abilities.DAUNTLESS_SHIELD }, [Species.JANGMO_O]: { 0: Abilities.DAUNTLESS_SHIELD },
[Species.TAPU_KOKO]: { 0: Abilities.DAUNTLESS_SHIELD }, [Species.TAPU_KOKO]: { 0: Abilities.DAUNTLESS_SHIELD },
[Species.TAPU_LELE]: { 0: Abilities.SHEER_FORCE }, [Species.TAPU_LELE]: { 0: Abilities.BERSERK },
[Species.TAPU_BULU]: { 0: Abilities.TRIAGE }, [Species.TAPU_BULU]: { 0: Abilities.FLOWER_VEIL },
[Species.TAPU_FINI]: { 0: Abilities.FAIRY_AURA }, [Species.TAPU_FINI]: { 0: Abilities.FAIRY_AURA },
[Species.COSMOG]: { 0: Abilities.BEAST_BOOST }, [Species.COSMOG]: { 0: Abilities.BEAST_BOOST },
[Species.NIHILEGO]: { 0: Abilities.LEVITATE }, [Species.NIHILEGO]: { 0: Abilities.LEVITATE },
@ -542,7 +542,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
[Species.VAROOM]: { 0: Abilities.LEVITATE }, [Species.VAROOM]: { 0: Abilities.LEVITATE },
[Species.CYCLIZAR]: { 0: Abilities.PROTEAN }, [Species.CYCLIZAR]: { 0: Abilities.PROTEAN },
[Species.ORTHWORM]: { 0: Abilities.REGENERATOR }, [Species.ORTHWORM]: { 0: Abilities.REGENERATOR },
[Species.GLIMMET]: { 0: Abilities.LEVITATE }, [Species.GLIMMET]: { 0: Abilities.TERA_SHELL },
[Species.GREAVARD]: { 0: Abilities.UNAWARE }, [Species.GREAVARD]: { 0: Abilities.UNAWARE },
[Species.FLAMIGO]: { 0: Abilities.MOXIE }, [Species.FLAMIGO]: { 0: Abilities.MOXIE },
[Species.CETODDLE]: { 0: Abilities.REFRIGERATE }, [Species.CETODDLE]: { 0: Abilities.REFRIGERATE },

View File

@ -92,6 +92,7 @@ export class SpeciesFormEvolution {
public item: EvolutionItem | null; public item: EvolutionItem | null;
public condition: SpeciesEvolutionCondition | null; public condition: SpeciesEvolutionCondition | null;
public wildDelay: SpeciesWildEvolutionDelay; public wildDelay: SpeciesWildEvolutionDelay;
public description: string = "";
constructor(speciesId: Species, preFormKey: string | null, evoFormKey: string | null, level: number, item: EvolutionItem | null, condition: SpeciesEvolutionCondition | null, wildDelay?: SpeciesWildEvolutionDelay) { constructor(speciesId: Species, preFormKey: string | null, evoFormKey: string | null, level: number, item: EvolutionItem | null, condition: SpeciesEvolutionCondition | null, wildDelay?: SpeciesWildEvolutionDelay) {
this.speciesId = speciesId; this.speciesId = speciesId;
@ -101,6 +102,23 @@ export class SpeciesFormEvolution {
this.item = item || EvolutionItem.NONE; this.item = item || EvolutionItem.NONE;
this.condition = condition; this.condition = condition;
this.wildDelay = wildDelay ?? SpeciesWildEvolutionDelay.NONE; this.wildDelay = wildDelay ?? SpeciesWildEvolutionDelay.NONE;
const strings: string[] = [];
if (this.level > 1) {
strings.push(i18next.t("pokemonEvolutions:level") + ` ${this.level}`);
}
if (this.item) {
const itemDescription = i18next.t(`modifierType:EvolutionItem.${EvolutionItem[this.item].toUpperCase()}`);
const rarity = this.item > 50 ? i18next.t("pokemonEvolutions:ULTRA") : i18next.t("pokemonEvolutions:GREAT");
strings.push(i18next.t("pokemonEvolutions:using") + itemDescription + ` (${rarity})`);
}
if (this.condition) {
strings.push(this.condition.description);
}
this.description = strings
.filter(str => str !== "")
.map((str, index) => index > 0 ? str[0].toLowerCase() + str.slice(1) : str)
.join(i18next.t("pokemonEvolutions:connector"));
} }
} }
@ -237,6 +255,7 @@ class WeatherEvolutionCondition extends SpeciesEvolutionCondition {
constructor(weatherTypes: WeatherType[]) { constructor(weatherTypes: WeatherType[]) {
super(() => weatherTypes.indexOf(globalScene.arena.weather?.weatherType || WeatherType.NONE) > -1); super(() => weatherTypes.indexOf(globalScene.arena.weather?.weatherType || WeatherType.NONE) > -1);
this.weatherTypes = weatherTypes; this.weatherTypes = weatherTypes;
this.description = i18next.t("pokemonEvolutions:weather");
} }
} }
@ -1377,7 +1396,7 @@ export const pokemonEvolutions: PokemonEvolutions = {
], ],
[Species.TANDEMAUS]: [ [Species.TANDEMAUS]: [
new SpeciesFormEvolution(Species.MAUSHOLD, "", "three", 25, null, new TandemausEvolutionCondition()), new SpeciesFormEvolution(Species.MAUSHOLD, "", "three", 25, null, new TandemausEvolutionCondition()),
new SpeciesEvolution(Species.MAUSHOLD, 25, null, null) new SpeciesFormEvolution(Species.MAUSHOLD, "", "four", 25, null, null)
], ],
[Species.FIDOUGH]: [ [Species.FIDOUGH]: [
new SpeciesEvolution(Species.DACHSBUN, 26, null, null) new SpeciesEvolution(Species.DACHSBUN, 26, null, null)
@ -1540,7 +1559,7 @@ export const pokemonEvolutions: PokemonEvolutions = {
], ],
[Species.DUNSPARCE]: [ [Species.DUNSPARCE]: [
new SpeciesFormEvolution(Species.DUDUNSPARCE, "", "three-segment", 32, null, new DunsparceEvolutionCondition(), SpeciesWildEvolutionDelay.LONG), new SpeciesFormEvolution(Species.DUDUNSPARCE, "", "three-segment", 32, null, new DunsparceEvolutionCondition(), SpeciesWildEvolutionDelay.LONG),
new SpeciesEvolution(Species.DUDUNSPARCE, 32, null, new MoveEvolutionCondition(Moves.HYPER_DRILL), SpeciesWildEvolutionDelay.LONG) new SpeciesFormEvolution(Species.DUDUNSPARCE, "", "two-segment", 32, null, new MoveEvolutionCondition(Moves.HYPER_DRILL), SpeciesWildEvolutionDelay.LONG)
], ],
[Species.GLIGAR]: [ [Species.GLIGAR]: [
new SpeciesEvolution(Species.GLISCOR, 1, EvolutionItem.RAZOR_FANG, new TimeOfDayEvolutionCondition("night") /* Razor fang at night*/, SpeciesWildEvolutionDelay.VERY_LONG) new SpeciesEvolution(Species.GLISCOR, 1, EvolutionItem.RAZOR_FANG, new TimeOfDayEvolutionCondition("night") /* Razor fang at night*/, SpeciesWildEvolutionDelay.VERY_LONG)

View File

@ -128,7 +128,7 @@ export const speciesStarterCosts = {
[Species.YANMA]: 3, [Species.YANMA]: 3,
[Species.WOOPER]: 2, [Species.WOOPER]: 2,
[Species.MURKROW]: 3, [Species.MURKROW]: 3,
[Species.MISDREAVUS]: 2, [Species.MISDREAVUS]: 3,
[Species.UNOWN]: 1, [Species.UNOWN]: 1,
[Species.GIRAFARIG]: 3, [Species.GIRAFARIG]: 3,
[Species.PINECO]: 2, [Species.PINECO]: 2,
@ -245,7 +245,7 @@ export const speciesStarterCosts = {
[Species.KRICKETOT]: 1, [Species.KRICKETOT]: 1,
[Species.SHINX]: 2, [Species.SHINX]: 2,
[Species.BUDEW]: 3, [Species.BUDEW]: 3,
[Species.CRANIDOS]: 3, [Species.CRANIDOS]: 2,
[Species.SHIELDON]: 3, [Species.SHIELDON]: 3,
[Species.BURMY]: 2, [Species.BURMY]: 2,
[Species.COMBEE]: 2, [Species.COMBEE]: 2,
@ -274,7 +274,7 @@ export const speciesStarterCosts = {
[Species.FINNEON]: 1, [Species.FINNEON]: 1,
[Species.MANTYKE]: 2, [Species.MANTYKE]: 2,
[Species.SNOVER]: 2, [Species.SNOVER]: 2,
[Species.ROTOM]: 5, [Species.ROTOM]: 4,
[Species.UXIE]: 5, [Species.UXIE]: 5,
[Species.MESPRIT]: 5, [Species.MESPRIT]: 5,
[Species.AZELF]: 6, [Species.AZELF]: 6,
@ -287,7 +287,7 @@ export const speciesStarterCosts = {
[Species.PHIONE]: 4, [Species.PHIONE]: 4,
[Species.MANAPHY]: 7, [Species.MANAPHY]: 7,
[Species.DARKRAI]: 7, [Species.DARKRAI]: 7,
[Species.SHAYMIN]: 5, [Species.SHAYMIN]: 6,
[Species.ARCEUS]: 9, [Species.ARCEUS]: 9,
[Species.VICTINI]: 7, [Species.VICTINI]: 7,

View File

@ -1752,7 +1752,7 @@ export class HighestStatBoostTag extends AbilityBattlerTag {
super.onAdd(pokemon); super.onAdd(pokemon);
let highestStat: EffectiveStat; let highestStat: EffectiveStat;
EFFECTIVE_STATS.map(s => pokemon.getEffectiveStat(s)).reduce((highestValue: number, value: number, i: number) => { EFFECTIVE_STATS.map(s => pokemon.getEffectiveStat(s, undefined, undefined, undefined, undefined, undefined, undefined, true)).reduce((highestValue: number, value: number, i: number) => {
if (value > highestValue) { if (value > highestValue) {
highestStat = EFFECTIVE_STATS[i]; highestStat = EFFECTIVE_STATS[i];
return value; return value;
@ -1763,15 +1763,7 @@ export class HighestStatBoostTag extends AbilityBattlerTag {
highestStat = highestStat!; // tell TS compiler it's defined! highestStat = highestStat!; // tell TS compiler it's defined!
this.stat = highestStat; this.stat = highestStat;
switch (this.stat) { this.multiplier = this.stat === Stat.SPD ? 1.5 : 1.3;
case Stat.SPD:
this.multiplier = 1.5;
break;
default:
this.multiplier = 1.3;
break;
}
globalScene.queueMessage(i18next.t("battlerTags:highestStatBoostOnAdd", { pokemonNameWithAffix: getPokemonNameWithAffix(pokemon), statName: i18next.t(getStatKey(highestStat)) }), null, false, null, true); globalScene.queueMessage(i18next.t("battlerTags:highestStatBoostOnAdd", { pokemonNameWithAffix: getPokemonNameWithAffix(pokemon), statName: i18next.t(getStatKey(highestStat)) }), null, false, null, true);
} }
@ -2871,7 +2863,7 @@ export class SyrupBombTag extends BattlerTag {
/** /**
* Telekinesis raises the target into the air for three turns and causes all moves used against the target (aside from OHKO moves) to hit the target unless the target is in a semi-invulnerable state from Fly/Dig. * Telekinesis raises the target into the air for three turns and causes all moves used against the target (aside from OHKO moves) to hit the target unless the target is in a semi-invulnerable state from Fly/Dig.
* The first effect is provided by {@linkcode FloatingTag}, the accuracy-bypass effect is provided by TelekinesisTag * The first effect is provided by {@linkcode FloatingTag}, the accuracy-bypass effect is provided by TelekinesisTag
* The effects of Telekinesis can be baton passed to a teammate. Unlike the mainline games, Telekinesis can be baton-passed to Mega Gengar. * The effects of Telekinesis can be baton passed to a teammate.
* @see {@link https://bulbapedia.bulbagarden.net/wiki/Telekinesis_(move) | Moves.TELEKINESIS} * @see {@link https://bulbapedia.bulbagarden.net/wiki/Telekinesis_(move) | Moves.TELEKINESIS}
*/ */
export class TelekinesisTag extends BattlerTag { export class TelekinesisTag extends BattlerTag {
@ -2983,6 +2975,24 @@ export class PsychoShiftTag extends BattlerTag {
} }
} }
/**
* Tag associated with the move Magic Coat.
*/
export class MagicCoatTag extends BattlerTag {
constructor() {
super(BattlerTagType.MAGIC_COAT, BattlerTagLapseType.TURN_END, 1, Moves.MAGIC_COAT);
}
/**
* Queues the "[PokemonName] shrouded itself with Magic Coat" message when the tag is added.
* @param pokemon - The target {@linkcode Pokemon}
*/
override onAdd(pokemon: Pokemon) {
// "{pokemonNameWithAffix} shrouded itself with Magic Coat!"
globalScene.queueMessage(i18next.t("battlerTags:magicCoatOnAdd", { pokemonNameWithAffix: getPokemonNameWithAffix(pokemon) }));
}
}
/** /**
* Retrieves a {@linkcode BattlerTag} based on the provided tag type, turn count, source move, and source ID. * Retrieves a {@linkcode BattlerTag} based on the provided tag type, turn count, source move, and source ID.
* @param sourceId - The ID of the pokemon adding the tag * @param sourceId - The ID of the pokemon adding the tag
@ -3172,6 +3182,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: number, source
return new GrudgeTag(); return new GrudgeTag();
case BattlerTagType.PSYCHO_SHIFT: case BattlerTagType.PSYCHO_SHIFT:
return new PsychoShiftTag(); return new PsychoShiftTag();
case BattlerTagType.MAGIC_COAT:
return new MagicCoatTag();
case BattlerTagType.NONE: case BattlerTagType.NONE:
default: default:
return new BattlerTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId); return new BattlerTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId);

View File

@ -126,6 +126,8 @@ export enum MoveFlags {
IGNORE_SUBSTITUTE = 1 << 17, IGNORE_SUBSTITUTE = 1 << 17,
/** Indicates a move is able to be redirected to allies in a double battle if the attacker faints */ /** Indicates a move is able to be redirected to allies in a double battle if the attacker faints */
REDIRECT_COUNTER = 1 << 18, REDIRECT_COUNTER = 1 << 18,
/** Indicates a move is able to be reflected by {@linkcode Abilities.MAGIC_BOUNCE} and {@linkcode Moves.MAGIC_COAT} */
REFLECTABLE = 1 << 19,
} }
type MoveConditionFunc = (user: Pokemon, target: Pokemon, move: Move) => boolean; type MoveConditionFunc = (user: Pokemon, target: Pokemon, move: Move) => boolean;
@ -610,6 +612,16 @@ export default class Move implements Localizable {
return this; return this;
} }
/**
* Sets the {@linkcode MoveFlags.REFLECTABLE} flag for the calling Move
* @see {@linkcode Moves.ATTRACT}
* @returns The {@linkcode Move} that called this function
*/
reflectable(): this {
this.setFlag(MoveFlags.REFLECTABLE, true);
return this;
}
/** /**
* Checks if the move flag applies to the pokemon(s) using/receiving the move * Checks if the move flag applies to the pokemon(s) using/receiving the move
* @param flag {@linkcode MoveFlags} MoveFlag to check on user and/or target * @param flag {@linkcode MoveFlags} MoveFlag to check on user and/or target
@ -4368,6 +4380,69 @@ export class CueNextRoundAttr extends MoveEffectAttr {
} }
} }
/**
* Attribute that changes stat stages before the damage is calculated
*/
export class StatChangeBeforeDmgCalcAttr extends MoveAttr {
/**
* Applies Stat Changes before damage is calculated
*
* @param user {@linkcode Pokemon} that called {@linkcode move}
* @param target {@linkcode Pokemon} that is the target of {@linkcode move}
* @param move {@linkcode Move} called by {@linkcode user}
* @param args N/A
*
* @returns true if stat stages where correctly applied
*/
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
return false;
}
}
/**
* Steals the postitive Stat stages of the target before damage calculation so stat changes
* apply to damage calculation (e.g. {@linkcode Moves.SPECTRAL_THIEF})
* {@link https://bulbapedia.bulbagarden.net/wiki/Spectral_Thief_(move) | Spectral Thief}
*/
export class SpectralThiefAttr extends StatChangeBeforeDmgCalcAttr {
/**
* steals max amount of positive stats of the target while not exceeding the limit of max 6 stat stages
*
* @param user {@linkcode Pokemon} that called {@linkcode move}
* @param target {@linkcode Pokemon} that is the target of {@linkcode move}
* @param move {@linkcode Move} called by {@linkcode user}
* @param args N/A
*
* @returns true if stat stages where correctly stolen
*/
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
/**
* Copy all positive stat stages to user and reduce copied stat stages on target.
*/
for (const s of BATTLE_STATS) {
const statStageValueTarget = target.getStatStage(s);
const statStageValueUser = user.getStatStage(s);
if (statStageValueTarget > 0) {
/**
* Only value of up to 6 can be stolen (stat stages don't exceed 6)
*/
const availableToSteal = Math.min(statStageValueTarget, 6 - statStageValueUser);
globalScene.unshiftPhase(new StatStageChangePhase(user.getBattlerIndex(), this.selfTarget, [ s ], availableToSteal));
target.setStatStage(s, statStageValueTarget - availableToSteal);
}
}
target.updateInfo();
user.updateInfo();
globalScene.queueMessage(i18next.t("moveTriggers:stealPositiveStats", { pokemonName: getPokemonNameWithAffix(user), targetName: getPokemonNameWithAffix(target) }));
return true;
}
}
export class VariableAtkAttr extends MoveAttr { export class VariableAtkAttr extends MoveAttr {
constructor() { constructor() {
super(); super();
@ -4559,7 +4634,8 @@ export class TeraMoveCategoryAttr extends VariableMoveCategoryAttr {
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
const category = (args[0] as Utils.NumberHolder); const category = (args[0] as Utils.NumberHolder);
if (user.isTerastallized() && user.getEffectiveStat(Stat.ATK, target, move) > user.getEffectiveStat(Stat.SPATK, target, move)) { if (user.isTerastallized() && user.getEffectiveStat(Stat.ATK, target, move, true, true, false, false, true) >
user.getEffectiveStat(Stat.SPATK, target, move, true, true, false, false, true)) {
category.value = MoveCategory.PHYSICAL; category.value = MoveCategory.PHYSICAL;
return true; return true;
} }
@ -5331,6 +5407,7 @@ export class AddBattlerTagAttr extends MoveEffectAttr {
case BattlerTagType.INGRAIN: case BattlerTagType.INGRAIN:
case BattlerTagType.IGNORE_ACCURACY: case BattlerTagType.IGNORE_ACCURACY:
case BattlerTagType.AQUA_RING: case BattlerTagType.AQUA_RING:
case BattlerTagType.MAGIC_COAT:
return 3; return 3;
case BattlerTagType.PROTECTED: case BattlerTagType.PROTECTED:
case BattlerTagType.FLYING: case BattlerTagType.FLYING:
@ -8333,7 +8410,8 @@ export function initMoves() {
.attr(ForceSwitchOutAttr, false, SwitchType.FORCE_SWITCH) .attr(ForceSwitchOutAttr, false, SwitchType.FORCE_SWITCH)
.ignoresSubstitute() .ignoresSubstitute()
.hidesTarget() .hidesTarget()
.windMove(), .windMove()
.reflectable(),
new ChargingAttackMove(Moves.FLY, Type.FLYING, MoveCategory.PHYSICAL, 90, 95, 15, -1, 0, 1) new ChargingAttackMove(Moves.FLY, Type.FLYING, MoveCategory.PHYSICAL, 90, 95, 15, -1, 0, 1)
.chargeText(i18next.t("moveTriggers:flewUpHigh", { pokemonName: "{USER}" })) .chargeText(i18next.t("moveTriggers:flewUpHigh", { pokemonName: "{USER}" }))
.chargeAttr(SemiInvulnerableAttr, BattlerTagType.FLYING) .chargeAttr(SemiInvulnerableAttr, BattlerTagType.FLYING)
@ -8357,7 +8435,8 @@ export function initMoves() {
new AttackMove(Moves.ROLLING_KICK, Type.FIGHTING, MoveCategory.PHYSICAL, 60, 85, 15, 30, 0, 1) new AttackMove(Moves.ROLLING_KICK, Type.FIGHTING, MoveCategory.PHYSICAL, 60, 85, 15, 30, 0, 1)
.attr(FlinchAttr), .attr(FlinchAttr),
new StatusMove(Moves.SAND_ATTACK, Type.GROUND, 100, 15, -1, 0, 1) new StatusMove(Moves.SAND_ATTACK, Type.GROUND, 100, 15, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.ACC ], -1), .attr(StatStageChangeAttr, [ Stat.ACC ], -1)
.reflectable(),
new AttackMove(Moves.HEADBUTT, Type.NORMAL, MoveCategory.PHYSICAL, 70, 100, 15, 30, 0, 1) new AttackMove(Moves.HEADBUTT, Type.NORMAL, MoveCategory.PHYSICAL, 70, 100, 15, 30, 0, 1)
.attr(FlinchAttr), .attr(FlinchAttr),
new AttackMove(Moves.HORN_ATTACK, Type.NORMAL, MoveCategory.PHYSICAL, 65, 100, 25, -1, 0, 1), new AttackMove(Moves.HORN_ATTACK, Type.NORMAL, MoveCategory.PHYSICAL, 65, 100, 25, -1, 0, 1),
@ -8386,7 +8465,8 @@ export function initMoves() {
.recklessMove(), .recklessMove(),
new StatusMove(Moves.TAIL_WHIP, Type.NORMAL, 100, 30, -1, 0, 1) new StatusMove(Moves.TAIL_WHIP, Type.NORMAL, 100, 30, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.DEF ], -1) .attr(StatStageChangeAttr, [ Stat.DEF ], -1)
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES)
.reflectable(),
new AttackMove(Moves.POISON_STING, Type.POISON, MoveCategory.PHYSICAL, 15, 100, 35, 30, 0, 1) new AttackMove(Moves.POISON_STING, Type.POISON, MoveCategory.PHYSICAL, 15, 100, 35, 30, 0, 1)
.attr(StatusEffectAttr, StatusEffect.POISON) .attr(StatusEffectAttr, StatusEffect.POISON)
.makesContact(false), .makesContact(false),
@ -8399,30 +8479,36 @@ export function initMoves() {
.makesContact(false), .makesContact(false),
new StatusMove(Moves.LEER, Type.NORMAL, 100, 30, -1, 0, 1) new StatusMove(Moves.LEER, Type.NORMAL, 100, 30, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.DEF ], -1) .attr(StatStageChangeAttr, [ Stat.DEF ], -1)
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES)
.reflectable(),
new AttackMove(Moves.BITE, Type.DARK, MoveCategory.PHYSICAL, 60, 100, 25, 30, 0, 1) new AttackMove(Moves.BITE, Type.DARK, MoveCategory.PHYSICAL, 60, 100, 25, 30, 0, 1)
.attr(FlinchAttr) .attr(FlinchAttr)
.bitingMove(), .bitingMove(),
new StatusMove(Moves.GROWL, Type.NORMAL, 100, 40, -1, 0, 1) new StatusMove(Moves.GROWL, Type.NORMAL, 100, 40, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.ATK ], -1) .attr(StatStageChangeAttr, [ Stat.ATK ], -1)
.soundBased() .soundBased()
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES)
.reflectable(),
new StatusMove(Moves.ROAR, Type.NORMAL, -1, 20, -1, -6, 1) new StatusMove(Moves.ROAR, Type.NORMAL, -1, 20, -1, -6, 1)
.attr(ForceSwitchOutAttr, false, SwitchType.FORCE_SWITCH) .attr(ForceSwitchOutAttr, false, SwitchType.FORCE_SWITCH)
.soundBased() .soundBased()
.hidesTarget(), .hidesTarget()
.reflectable(),
new StatusMove(Moves.SING, Type.NORMAL, 55, 15, -1, 0, 1) new StatusMove(Moves.SING, Type.NORMAL, 55, 15, -1, 0, 1)
.attr(StatusEffectAttr, StatusEffect.SLEEP) .attr(StatusEffectAttr, StatusEffect.SLEEP)
.soundBased(), .soundBased()
.reflectable(),
new StatusMove(Moves.SUPERSONIC, Type.NORMAL, 55, 20, -1, 0, 1) new StatusMove(Moves.SUPERSONIC, Type.NORMAL, 55, 20, -1, 0, 1)
.attr(ConfuseAttr) .attr(ConfuseAttr)
.soundBased(), .soundBased()
.reflectable(),
new AttackMove(Moves.SONIC_BOOM, Type.NORMAL, MoveCategory.SPECIAL, -1, 90, 20, -1, 0, 1) new AttackMove(Moves.SONIC_BOOM, Type.NORMAL, MoveCategory.SPECIAL, -1, 90, 20, -1, 0, 1)
.attr(FixedDamageAttr, 20), .attr(FixedDamageAttr, 20),
new StatusMove(Moves.DISABLE, Type.NORMAL, 100, 20, -1, 0, 1) new StatusMove(Moves.DISABLE, Type.NORMAL, 100, 20, -1, 0, 1)
.attr(AddBattlerTagAttr, BattlerTagType.DISABLED, false, true) .attr(AddBattlerTagAttr, BattlerTagType.DISABLED, false, true)
.condition((user, target, move) => target.getMoveHistory().reverse().find(m => m.move !== Moves.NONE && m.move !== Moves.STRUGGLE && !m.virtual) !== undefined) .condition((user, target, move) => target.getMoveHistory().reverse().find(m => m.move !== Moves.NONE && m.move !== Moves.STRUGGLE && !m.virtual) !== undefined)
.ignoresSubstitute(), .ignoresSubstitute()
.reflectable(),
new AttackMove(Moves.ACID, Type.POISON, MoveCategory.SPECIAL, 40, 100, 30, 10, 0, 1) new AttackMove(Moves.ACID, Type.POISON, MoveCategory.SPECIAL, 40, 100, 30, 10, 0, 1)
.attr(StatStageChangeAttr, [ Stat.SPDEF ], -1) .attr(StatStageChangeAttr, [ Stat.SPDEF ], -1)
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES),
@ -8475,7 +8561,8 @@ export function initMoves() {
.triageMove(), .triageMove(),
new StatusMove(Moves.LEECH_SEED, Type.GRASS, 90, 10, -1, 0, 1) new StatusMove(Moves.LEECH_SEED, Type.GRASS, 90, 10, -1, 0, 1)
.attr(LeechSeedAttr) .attr(LeechSeedAttr)
.condition((user, target, move) => !target.getTag(BattlerTagType.SEEDED) && !target.isOfType(Type.GRASS)), .condition((user, target, move) => !target.getTag(BattlerTagType.SEEDED) && !target.isOfType(Type.GRASS))
.reflectable(),
new SelfStatusMove(Moves.GROWTH, Type.NORMAL, -1, 20, -1, 0, 1) new SelfStatusMove(Moves.GROWTH, Type.NORMAL, -1, 20, -1, 0, 1)
.attr(GrowthStatStageChangeAttr), .attr(GrowthStatStageChangeAttr),
new AttackMove(Moves.RAZOR_LEAF, Type.GRASS, MoveCategory.PHYSICAL, 55, 95, 25, -1, 0, 1) new AttackMove(Moves.RAZOR_LEAF, Type.GRASS, MoveCategory.PHYSICAL, 55, 95, 25, -1, 0, 1)
@ -8489,13 +8576,16 @@ export function initMoves() {
.attr(AntiSunlightPowerDecreaseAttr), .attr(AntiSunlightPowerDecreaseAttr),
new StatusMove(Moves.POISON_POWDER, Type.POISON, 75, 35, -1, 0, 1) new StatusMove(Moves.POISON_POWDER, Type.POISON, 75, 35, -1, 0, 1)
.attr(StatusEffectAttr, StatusEffect.POISON) .attr(StatusEffectAttr, StatusEffect.POISON)
.powderMove(), .powderMove()
.reflectable(),
new StatusMove(Moves.STUN_SPORE, Type.GRASS, 75, 30, -1, 0, 1) new StatusMove(Moves.STUN_SPORE, Type.GRASS, 75, 30, -1, 0, 1)
.attr(StatusEffectAttr, StatusEffect.PARALYSIS) .attr(StatusEffectAttr, StatusEffect.PARALYSIS)
.powderMove(), .powderMove()
.reflectable(),
new StatusMove(Moves.SLEEP_POWDER, Type.GRASS, 75, 15, -1, 0, 1) new StatusMove(Moves.SLEEP_POWDER, Type.GRASS, 75, 15, -1, 0, 1)
.attr(StatusEffectAttr, StatusEffect.SLEEP) .attr(StatusEffectAttr, StatusEffect.SLEEP)
.powderMove(), .powderMove()
.reflectable(),
new AttackMove(Moves.PETAL_DANCE, Type.GRASS, MoveCategory.SPECIAL, 120, 100, 10, -1, 0, 1) new AttackMove(Moves.PETAL_DANCE, Type.GRASS, MoveCategory.SPECIAL, 120, 100, 10, -1, 0, 1)
.attr(FrenzyAttr) .attr(FrenzyAttr)
.attr(MissEffectAttr, frenzyMissFunc) .attr(MissEffectAttr, frenzyMissFunc)
@ -8505,7 +8595,8 @@ export function initMoves() {
.target(MoveTarget.RANDOM_NEAR_ENEMY), .target(MoveTarget.RANDOM_NEAR_ENEMY),
new StatusMove(Moves.STRING_SHOT, Type.BUG, 95, 40, -1, 0, 1) new StatusMove(Moves.STRING_SHOT, Type.BUG, 95, 40, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.SPD ], -2) .attr(StatStageChangeAttr, [ Stat.SPD ], -2)
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES)
.reflectable(),
new AttackMove(Moves.DRAGON_RAGE, Type.DRAGON, MoveCategory.SPECIAL, -1, 100, 10, -1, 0, 1) new AttackMove(Moves.DRAGON_RAGE, Type.DRAGON, MoveCategory.SPECIAL, -1, 100, 10, -1, 0, 1)
.attr(FixedDamageAttr, 40), .attr(FixedDamageAttr, 40),
new AttackMove(Moves.FIRE_SPIN, Type.FIRE, MoveCategory.SPECIAL, 35, 85, 15, -1, 0, 1) new AttackMove(Moves.FIRE_SPIN, Type.FIRE, MoveCategory.SPECIAL, 35, 85, 15, -1, 0, 1)
@ -8516,7 +8607,8 @@ export function initMoves() {
.attr(StatusEffectAttr, StatusEffect.PARALYSIS), .attr(StatusEffectAttr, StatusEffect.PARALYSIS),
new StatusMove(Moves.THUNDER_WAVE, Type.ELECTRIC, 90, 20, -1, 0, 1) new StatusMove(Moves.THUNDER_WAVE, Type.ELECTRIC, 90, 20, -1, 0, 1)
.attr(StatusEffectAttr, StatusEffect.PARALYSIS) .attr(StatusEffectAttr, StatusEffect.PARALYSIS)
.attr(RespectAttackTypeImmunityAttr), .attr(RespectAttackTypeImmunityAttr)
.reflectable(),
new AttackMove(Moves.THUNDER, Type.ELECTRIC, MoveCategory.SPECIAL, 110, 70, 10, 30, 0, 1) new AttackMove(Moves.THUNDER, Type.ELECTRIC, MoveCategory.SPECIAL, 110, 70, 10, 30, 0, 1)
.attr(StatusEffectAttr, StatusEffect.PARALYSIS) .attr(StatusEffectAttr, StatusEffect.PARALYSIS)
.attr(ThunderAccuracyAttr) .attr(ThunderAccuracyAttr)
@ -8538,13 +8630,15 @@ export function initMoves() {
.chargeAttr(SemiInvulnerableAttr, BattlerTagType.UNDERGROUND), .chargeAttr(SemiInvulnerableAttr, BattlerTagType.UNDERGROUND),
new StatusMove(Moves.TOXIC, Type.POISON, 90, 10, -1, 0, 1) new StatusMove(Moves.TOXIC, Type.POISON, 90, 10, -1, 0, 1)
.attr(StatusEffectAttr, StatusEffect.TOXIC) .attr(StatusEffectAttr, StatusEffect.TOXIC)
.attr(ToxicAccuracyAttr), .attr(ToxicAccuracyAttr)
.reflectable(),
new AttackMove(Moves.CONFUSION, Type.PSYCHIC, MoveCategory.SPECIAL, 50, 100, 25, 10, 0, 1) new AttackMove(Moves.CONFUSION, Type.PSYCHIC, MoveCategory.SPECIAL, 50, 100, 25, 10, 0, 1)
.attr(ConfuseAttr), .attr(ConfuseAttr),
new AttackMove(Moves.PSYCHIC, Type.PSYCHIC, MoveCategory.SPECIAL, 90, 100, 10, 10, 0, 1) new AttackMove(Moves.PSYCHIC, Type.PSYCHIC, MoveCategory.SPECIAL, 90, 100, 10, 10, 0, 1)
.attr(StatStageChangeAttr, [ Stat.SPDEF ], -1), .attr(StatStageChangeAttr, [ Stat.SPDEF ], -1),
new StatusMove(Moves.HYPNOSIS, Type.PSYCHIC, 60, 20, -1, 0, 1) new StatusMove(Moves.HYPNOSIS, Type.PSYCHIC, 60, 20, -1, 0, 1)
.attr(StatusEffectAttr, StatusEffect.SLEEP), .attr(StatusEffectAttr, StatusEffect.SLEEP)
.reflectable(),
new SelfStatusMove(Moves.MEDITATE, Type.PSYCHIC, -1, 40, -1, 0, 1) new SelfStatusMove(Moves.MEDITATE, Type.PSYCHIC, -1, 40, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.ATK ], 1, true), .attr(StatStageChangeAttr, [ Stat.ATK ], 1, true),
new SelfStatusMove(Moves.AGILITY, Type.PSYCHIC, -1, 30, -1, 0, 1) new SelfStatusMove(Moves.AGILITY, Type.PSYCHIC, -1, 30, -1, 0, 1)
@ -8562,7 +8656,8 @@ export function initMoves() {
.ignoresSubstitute(), .ignoresSubstitute(),
new StatusMove(Moves.SCREECH, Type.NORMAL, 85, 40, -1, 0, 1) new StatusMove(Moves.SCREECH, Type.NORMAL, 85, 40, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.DEF ], -2) .attr(StatStageChangeAttr, [ Stat.DEF ], -2)
.soundBased(), .soundBased()
.reflectable(),
new SelfStatusMove(Moves.DOUBLE_TEAM, Type.NORMAL, -1, 15, -1, 0, 1) new SelfStatusMove(Moves.DOUBLE_TEAM, Type.NORMAL, -1, 15, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.EVA ], 1, true), .attr(StatStageChangeAttr, [ Stat.EVA ], 1, true),
new SelfStatusMove(Moves.RECOVER, Type.NORMAL, -1, 5, -1, 0, 1) new SelfStatusMove(Moves.RECOVER, Type.NORMAL, -1, 5, -1, 0, 1)
@ -8574,9 +8669,11 @@ export function initMoves() {
.attr(AddBattlerTagAttr, BattlerTagType.MINIMIZED, true, false) .attr(AddBattlerTagAttr, BattlerTagType.MINIMIZED, true, false)
.attr(StatStageChangeAttr, [ Stat.EVA ], 2, true), .attr(StatStageChangeAttr, [ Stat.EVA ], 2, true),
new StatusMove(Moves.SMOKESCREEN, Type.NORMAL, 100, 20, -1, 0, 1) new StatusMove(Moves.SMOKESCREEN, Type.NORMAL, 100, 20, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.ACC ], -1), .attr(StatStageChangeAttr, [ Stat.ACC ], -1)
.reflectable(),
new StatusMove(Moves.CONFUSE_RAY, Type.GHOST, 100, 10, -1, 0, 1) new StatusMove(Moves.CONFUSE_RAY, Type.GHOST, 100, 10, -1, 0, 1)
.attr(ConfuseAttr), .attr(ConfuseAttr)
.reflectable(),
new SelfStatusMove(Moves.WITHDRAW, Type.WATER, -1, 40, -1, 0, 1) new SelfStatusMove(Moves.WITHDRAW, Type.WATER, -1, 40, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.DEF ], 1, true), .attr(StatStageChangeAttr, [ Stat.DEF ], 1, true),
new SelfStatusMove(Moves.DEFENSE_CURL, Type.NORMAL, -1, 40, -1, 0, 1) new SelfStatusMove(Moves.DEFENSE_CURL, Type.NORMAL, -1, 40, -1, 0, 1)
@ -8637,7 +8734,8 @@ export function initMoves() {
new SelfStatusMove(Moves.AMNESIA, Type.PSYCHIC, -1, 20, -1, 0, 1) new SelfStatusMove(Moves.AMNESIA, Type.PSYCHIC, -1, 20, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.SPDEF ], 2, true), .attr(StatStageChangeAttr, [ Stat.SPDEF ], 2, true),
new StatusMove(Moves.KINESIS, Type.PSYCHIC, 80, 15, -1, 0, 1) new StatusMove(Moves.KINESIS, Type.PSYCHIC, 80, 15, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.ACC ], -1), .attr(StatStageChangeAttr, [ Stat.ACC ], -1)
.reflectable(),
new SelfStatusMove(Moves.SOFT_BOILED, Type.NORMAL, -1, 5, -1, 0, 1) new SelfStatusMove(Moves.SOFT_BOILED, Type.NORMAL, -1, 5, -1, 0, 1)
.attr(HealAttr, 0.5) .attr(HealAttr, 0.5)
.triageMove(), .triageMove(),
@ -8647,14 +8745,16 @@ export function initMoves() {
.condition(failOnGravityCondition) .condition(failOnGravityCondition)
.recklessMove(), .recklessMove(),
new StatusMove(Moves.GLARE, Type.NORMAL, 100, 30, -1, 0, 1) new StatusMove(Moves.GLARE, Type.NORMAL, 100, 30, -1, 0, 1)
.attr(StatusEffectAttr, StatusEffect.PARALYSIS), .attr(StatusEffectAttr, StatusEffect.PARALYSIS)
.reflectable(),
new AttackMove(Moves.DREAM_EATER, Type.PSYCHIC, MoveCategory.SPECIAL, 100, 100, 15, -1, 0, 1) new AttackMove(Moves.DREAM_EATER, Type.PSYCHIC, MoveCategory.SPECIAL, 100, 100, 15, -1, 0, 1)
.attr(HitHealAttr) .attr(HitHealAttr)
.condition(targetSleptOrComatoseCondition) .condition(targetSleptOrComatoseCondition)
.triageMove(), .triageMove(),
new StatusMove(Moves.POISON_GAS, Type.POISON, 90, 40, -1, 0, 1) new StatusMove(Moves.POISON_GAS, Type.POISON, 90, 40, -1, 0, 1)
.attr(StatusEffectAttr, StatusEffect.POISON) .attr(StatusEffectAttr, StatusEffect.POISON)
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES)
.reflectable(),
new AttackMove(Moves.BARRAGE, Type.NORMAL, MoveCategory.PHYSICAL, 15, 85, 20, -1, 0, 1) new AttackMove(Moves.BARRAGE, Type.NORMAL, MoveCategory.PHYSICAL, 15, 85, 20, -1, 0, 1)
.attr(MultiHitAttr) .attr(MultiHitAttr)
.makesContact(false) .makesContact(false)
@ -8663,7 +8763,8 @@ export function initMoves() {
.attr(HitHealAttr) .attr(HitHealAttr)
.triageMove(), .triageMove(),
new StatusMove(Moves.LOVELY_KISS, Type.NORMAL, 75, 10, -1, 0, 1) new StatusMove(Moves.LOVELY_KISS, Type.NORMAL, 75, 10, -1, 0, 1)
.attr(StatusEffectAttr, StatusEffect.SLEEP), .attr(StatusEffectAttr, StatusEffect.SLEEP)
.reflectable(),
new ChargingAttackMove(Moves.SKY_ATTACK, Type.FLYING, MoveCategory.PHYSICAL, 140, 90, 5, 30, 0, 1) new ChargingAttackMove(Moves.SKY_ATTACK, Type.FLYING, MoveCategory.PHYSICAL, 140, 90, 5, 30, 0, 1)
.chargeText(i18next.t("moveTriggers:isGlowing", { pokemonName: "{USER}" })) .chargeText(i18next.t("moveTriggers:isGlowing", { pokemonName: "{USER}" }))
.attr(HighCritAttr) .attr(HighCritAttr)
@ -8682,9 +8783,11 @@ export function initMoves() {
.punchingMove(), .punchingMove(),
new StatusMove(Moves.SPORE, Type.GRASS, 100, 15, -1, 0, 1) new StatusMove(Moves.SPORE, Type.GRASS, 100, 15, -1, 0, 1)
.attr(StatusEffectAttr, StatusEffect.SLEEP) .attr(StatusEffectAttr, StatusEffect.SLEEP)
.powderMove(), .powderMove()
.reflectable(),
new StatusMove(Moves.FLASH, Type.NORMAL, 100, 20, -1, 0, 1) new StatusMove(Moves.FLASH, Type.NORMAL, 100, 20, -1, 0, 1)
.attr(StatStageChangeAttr, [ Stat.ACC ], -1), .attr(StatStageChangeAttr, [ Stat.ACC ], -1)
.reflectable(),
new AttackMove(Moves.PSYWAVE, Type.PSYCHIC, MoveCategory.SPECIAL, -1, 100, 15, -1, 0, 1) new AttackMove(Moves.PSYWAVE, Type.PSYCHIC, MoveCategory.SPECIAL, -1, 100, 15, -1, 0, 1)
.attr(RandomLevelDamageAttr), .attr(RandomLevelDamageAttr),
new SelfStatusMove(Moves.SPLASH, Type.NORMAL, -1, 40, -1, 0, 1) new SelfStatusMove(Moves.SPLASH, Type.NORMAL, -1, 40, -1, 0, 1)
@ -8743,7 +8846,8 @@ export function initMoves() {
.attr(StealHeldItemChanceAttr, 0.3), .attr(StealHeldItemChanceAttr, 0.3),
new StatusMove(Moves.SPIDER_WEB, Type.BUG, -1, 10, -1, 0, 2) new StatusMove(Moves.SPIDER_WEB, Type.BUG, -1, 10, -1, 0, 2)
.condition(failIfGhostTypeCondition) .condition(failIfGhostTypeCondition)
.attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, false, true, 1), .attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, false, true, 1)
.reflectable(),
new StatusMove(Moves.MIND_READER, Type.NORMAL, -1, 5, -1, 0, 2) new StatusMove(Moves.MIND_READER, Type.NORMAL, -1, 5, -1, 0, 2)
.attr(IgnoreAccuracyAttr), .attr(IgnoreAccuracyAttr),
new StatusMove(Moves.NIGHTMARE, Type.GHOST, 100, 15, -1, 0, 2) new StatusMove(Moves.NIGHTMARE, Type.GHOST, 100, 15, -1, 0, 2)
@ -8774,12 +8878,14 @@ export function initMoves() {
new StatusMove(Moves.COTTON_SPORE, Type.GRASS, 100, 40, -1, 0, 2) new StatusMove(Moves.COTTON_SPORE, Type.GRASS, 100, 40, -1, 0, 2)
.attr(StatStageChangeAttr, [ Stat.SPD ], -2) .attr(StatStageChangeAttr, [ Stat.SPD ], -2)
.powderMove() .powderMove()
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES)
.reflectable(),
new AttackMove(Moves.REVERSAL, Type.FIGHTING, MoveCategory.PHYSICAL, -1, 100, 15, -1, 0, 2) new AttackMove(Moves.REVERSAL, Type.FIGHTING, MoveCategory.PHYSICAL, -1, 100, 15, -1, 0, 2)
.attr(LowHpPowerAttr), .attr(LowHpPowerAttr),
new StatusMove(Moves.SPITE, Type.GHOST, 100, 10, -1, 0, 2) new StatusMove(Moves.SPITE, Type.GHOST, 100, 10, -1, 0, 2)
.ignoresSubstitute() .ignoresSubstitute()
.attr(ReducePpMoveAttr, 4), .attr(ReducePpMoveAttr, 4)
.reflectable(),
new AttackMove(Moves.POWDER_SNOW, Type.ICE, MoveCategory.SPECIAL, 40, 100, 25, 10, 0, 2) new AttackMove(Moves.POWDER_SNOW, Type.ICE, MoveCategory.SPECIAL, 40, 100, 25, 10, 0, 2)
.attr(StatusEffectAttr, StatusEffect.FREEZE) .attr(StatusEffectAttr, StatusEffect.FREEZE)
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES),
@ -8789,10 +8895,12 @@ export function initMoves() {
new AttackMove(Moves.MACH_PUNCH, Type.FIGHTING, MoveCategory.PHYSICAL, 40, 100, 30, -1, 1, 2) new AttackMove(Moves.MACH_PUNCH, Type.FIGHTING, MoveCategory.PHYSICAL, 40, 100, 30, -1, 1, 2)
.punchingMove(), .punchingMove(),
new StatusMove(Moves.SCARY_FACE, Type.NORMAL, 100, 10, -1, 0, 2) new StatusMove(Moves.SCARY_FACE, Type.NORMAL, 100, 10, -1, 0, 2)
.attr(StatStageChangeAttr, [ Stat.SPD ], -2), .attr(StatStageChangeAttr, [ Stat.SPD ], -2)
.reflectable(),
new AttackMove(Moves.FEINT_ATTACK, Type.DARK, MoveCategory.PHYSICAL, 60, -1, 20, -1, 0, 2), new AttackMove(Moves.FEINT_ATTACK, Type.DARK, MoveCategory.PHYSICAL, 60, -1, 20, -1, 0, 2),
new StatusMove(Moves.SWEET_KISS, Type.FAIRY, 75, 10, -1, 0, 2) new StatusMove(Moves.SWEET_KISS, Type.FAIRY, 75, 10, -1, 0, 2)
.attr(ConfuseAttr), .attr(ConfuseAttr)
.reflectable(),
new SelfStatusMove(Moves.BELLY_DRUM, Type.NORMAL, -1, 10, -1, 0, 2) new SelfStatusMove(Moves.BELLY_DRUM, Type.NORMAL, -1, 10, -1, 0, 2)
.attr(CutHpStatStageBoostAttr, [ Stat.ATK ], 12, 2, (user) => { .attr(CutHpStatStageBoostAttr, [ Stat.ATK ], 12, 2, (user) => {
globalScene.queueMessage(i18next.t("moveTriggers:cutOwnHpAndMaximizedStat", { pokemonName: getPokemonNameWithAffix(user), statName: i18next.t(getStatKey(Stat.ATK)) })); globalScene.queueMessage(i18next.t("moveTriggers:cutOwnHpAndMaximizedStat", { pokemonName: getPokemonNameWithAffix(user), statName: i18next.t(getStatKey(Stat.ATK)) }));
@ -8807,13 +8915,15 @@ export function initMoves() {
.ballBombMove(), .ballBombMove(),
new StatusMove(Moves.SPIKES, Type.GROUND, -1, 20, -1, 0, 2) new StatusMove(Moves.SPIKES, Type.GROUND, -1, 20, -1, 0, 2)
.attr(AddArenaTrapTagAttr, ArenaTagType.SPIKES) .attr(AddArenaTrapTagAttr, ArenaTagType.SPIKES)
.target(MoveTarget.ENEMY_SIDE), .target(MoveTarget.ENEMY_SIDE)
.reflectable(),
new AttackMove(Moves.ZAP_CANNON, Type.ELECTRIC, MoveCategory.SPECIAL, 120, 50, 5, 100, 0, 2) new AttackMove(Moves.ZAP_CANNON, Type.ELECTRIC, MoveCategory.SPECIAL, 120, 50, 5, 100, 0, 2)
.attr(StatusEffectAttr, StatusEffect.PARALYSIS) .attr(StatusEffectAttr, StatusEffect.PARALYSIS)
.ballBombMove(), .ballBombMove(),
new StatusMove(Moves.FORESIGHT, Type.NORMAL, -1, 40, -1, 0, 2) new StatusMove(Moves.FORESIGHT, Type.NORMAL, -1, 40, -1, 0, 2)
.attr(ExposedMoveAttr, BattlerTagType.IGNORE_GHOST) .attr(ExposedMoveAttr, BattlerTagType.IGNORE_GHOST)
.ignoresSubstitute(), .ignoresSubstitute()
.reflectable(),
new SelfStatusMove(Moves.DESTINY_BOND, Type.GHOST, -1, 5, -1, 0, 2) new SelfStatusMove(Moves.DESTINY_BOND, Type.GHOST, -1, 5, -1, 0, 2)
.ignoresProtect() .ignoresProtect()
.attr(DestinyBondAttr) .attr(DestinyBondAttr)
@ -8859,7 +8969,8 @@ export function initMoves() {
.attr(ProtectAttr, BattlerTagType.ENDURING) .attr(ProtectAttr, BattlerTagType.ENDURING)
.condition(failIfLastCondition), .condition(failIfLastCondition),
new StatusMove(Moves.CHARM, Type.FAIRY, 100, 20, -1, 0, 2) new StatusMove(Moves.CHARM, Type.FAIRY, 100, 20, -1, 0, 2)
.attr(StatStageChangeAttr, [ Stat.ATK ], -2), .attr(StatStageChangeAttr, [ Stat.ATK ], -2)
.reflectable(),
new AttackMove(Moves.ROLLOUT, Type.ROCK, MoveCategory.PHYSICAL, 30, 90, 20, -1, 0, 2) new AttackMove(Moves.ROLLOUT, Type.ROCK, MoveCategory.PHYSICAL, 30, 90, 20, -1, 0, 2)
.partial() // Does not lock the user, also does not increase damage properly .partial() // Does not lock the user, also does not increase damage properly
.attr(ConsecutiveUseDoublePowerAttr, 5, true, true, Moves.DEFENSE_CURL), .attr(ConsecutiveUseDoublePowerAttr, 5, true, true, Moves.DEFENSE_CURL),
@ -8867,7 +8978,8 @@ export function initMoves() {
.attr(SurviveDamageAttr), .attr(SurviveDamageAttr),
new StatusMove(Moves.SWAGGER, Type.NORMAL, 85, 15, -1, 0, 2) new StatusMove(Moves.SWAGGER, Type.NORMAL, 85, 15, -1, 0, 2)
.attr(StatStageChangeAttr, [ Stat.ATK ], 2) .attr(StatStageChangeAttr, [ Stat.ATK ], 2)
.attr(ConfuseAttr), .attr(ConfuseAttr)
.reflectable(),
new SelfStatusMove(Moves.MILK_DRINK, Type.NORMAL, -1, 5, -1, 0, 2) new SelfStatusMove(Moves.MILK_DRINK, Type.NORMAL, -1, 5, -1, 0, 2)
.attr(HealAttr, 0.5) .attr(HealAttr, 0.5)
.triageMove(), .triageMove(),
@ -8880,11 +8992,13 @@ export function initMoves() {
.attr(StatStageChangeAttr, [ Stat.DEF ], 1, true), .attr(StatStageChangeAttr, [ Stat.DEF ], 1, true),
new StatusMove(Moves.MEAN_LOOK, Type.NORMAL, -1, 5, -1, 0, 2) new StatusMove(Moves.MEAN_LOOK, Type.NORMAL, -1, 5, -1, 0, 2)
.condition(failIfGhostTypeCondition) .condition(failIfGhostTypeCondition)
.attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, false, true, 1), .attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, false, true, 1)
.reflectable(),
new StatusMove(Moves.ATTRACT, Type.NORMAL, 100, 15, -1, 0, 2) new StatusMove(Moves.ATTRACT, Type.NORMAL, 100, 15, -1, 0, 2)
.attr(AddBattlerTagAttr, BattlerTagType.INFATUATED) .attr(AddBattlerTagAttr, BattlerTagType.INFATUATED)
.ignoresSubstitute() .ignoresSubstitute()
.condition((user, target, move) => user.isOppositeGender(target)), .condition((user, target, move) => user.isOppositeGender(target))
.reflectable(),
new SelfStatusMove(Moves.SLEEP_TALK, Type.NORMAL, -1, 10, -1, 0, 2) new SelfStatusMove(Moves.SLEEP_TALK, Type.NORMAL, -1, 10, -1, 0, 2)
.attr(BypassSleepAttr) .attr(BypassSleepAttr)
.attr(RandomMovesetMoveAttr, invalidSleepTalkMoves, false) .attr(RandomMovesetMoveAttr, invalidSleepTalkMoves, false)
@ -8931,7 +9045,8 @@ export function initMoves() {
new StatusMove(Moves.ENCORE, Type.NORMAL, 100, 5, -1, 0, 2) new StatusMove(Moves.ENCORE, Type.NORMAL, 100, 5, -1, 0, 2)
.attr(AddBattlerTagAttr, BattlerTagType.ENCORE, false, true) .attr(AddBattlerTagAttr, BattlerTagType.ENCORE, false, true)
.ignoresSubstitute() .ignoresSubstitute()
.condition((user, target, move) => new EncoreTag(user.id).canAdd(target)), .condition((user, target, move) => new EncoreTag(user.id).canAdd(target))
.reflectable(),
new AttackMove(Moves.PURSUIT, Type.DARK, MoveCategory.PHYSICAL, 40, 100, 20, -1, 0, 2) new AttackMove(Moves.PURSUIT, Type.DARK, MoveCategory.PHYSICAL, 40, 100, 20, -1, 0, 2)
.partial(), // No effect implemented .partial(), // No effect implemented
new AttackMove(Moves.RAPID_SPIN, Type.NORMAL, MoveCategory.PHYSICAL, 50, 100, 40, 100, 0, 2) new AttackMove(Moves.RAPID_SPIN, Type.NORMAL, MoveCategory.PHYSICAL, 50, 100, 40, 100, 0, 2)
@ -8952,7 +9067,8 @@ export function initMoves() {
.attr(RemoveArenaTrapAttr), .attr(RemoveArenaTrapAttr),
new StatusMove(Moves.SWEET_SCENT, Type.NORMAL, 100, 20, -1, 0, 2) new StatusMove(Moves.SWEET_SCENT, Type.NORMAL, 100, 20, -1, 0, 2)
.attr(StatStageChangeAttr, [ Stat.EVA ], -2) .attr(StatStageChangeAttr, [ Stat.EVA ], -2)
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES)
.reflectable(),
new AttackMove(Moves.IRON_TAIL, Type.STEEL, MoveCategory.PHYSICAL, 100, 75, 15, 30, 0, 2) new AttackMove(Moves.IRON_TAIL, Type.STEEL, MoveCategory.PHYSICAL, 100, 75, 15, 30, 0, 2)
.attr(StatStageChangeAttr, [ Stat.DEF ], -1), .attr(StatStageChangeAttr, [ Stat.DEF ], -1),
new AttackMove(Moves.METAL_CLAW, Type.STEEL, MoveCategory.PHYSICAL, 50, 95, 35, 10, 0, 2) new AttackMove(Moves.METAL_CLAW, Type.STEEL, MoveCategory.PHYSICAL, 50, 95, 35, 10, 0, 2)
@ -9040,12 +9156,15 @@ export function initMoves() {
new StatusMove(Moves.TORMENT, Type.DARK, 100, 15, -1, 0, 3) new StatusMove(Moves.TORMENT, Type.DARK, 100, 15, -1, 0, 3)
.ignoresSubstitute() .ignoresSubstitute()
.edgeCase() // Incomplete implementation because of Uproar's partial implementation .edgeCase() // Incomplete implementation because of Uproar's partial implementation
.attr(AddBattlerTagAttr, BattlerTagType.TORMENT, false, true, 1), .attr(AddBattlerTagAttr, BattlerTagType.TORMENT, false, true, 1)
.reflectable(),
new StatusMove(Moves.FLATTER, Type.DARK, 100, 15, -1, 0, 3) new StatusMove(Moves.FLATTER, Type.DARK, 100, 15, -1, 0, 3)
.attr(StatStageChangeAttr, [ Stat.SPATK ], 1) .attr(StatStageChangeAttr, [ Stat.SPATK ], 1)
.attr(ConfuseAttr), .attr(ConfuseAttr)
.reflectable(),
new StatusMove(Moves.WILL_O_WISP, Type.FIRE, 85, 15, -1, 0, 3) new StatusMove(Moves.WILL_O_WISP, Type.FIRE, 85, 15, -1, 0, 3)
.attr(StatusEffectAttr, StatusEffect.BURN), .attr(StatusEffectAttr, StatusEffect.BURN)
.reflectable(),
new StatusMove(Moves.MEMENTO, Type.DARK, 100, 10, -1, 0, 3) new StatusMove(Moves.MEMENTO, Type.DARK, 100, 10, -1, 0, 3)
.attr(SacrificialAttrOnHit) .attr(SacrificialAttrOnHit)
.attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], -2), .attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], -2),
@ -9069,7 +9188,8 @@ export function initMoves() {
.attr(AddBattlerTagAttr, BattlerTagType.CHARGED, true, false), .attr(AddBattlerTagAttr, BattlerTagType.CHARGED, true, false),
new StatusMove(Moves.TAUNT, Type.DARK, 100, 20, -1, 0, 3) new StatusMove(Moves.TAUNT, Type.DARK, 100, 20, -1, 0, 3)
.ignoresSubstitute() .ignoresSubstitute()
.attr(AddBattlerTagAttr, BattlerTagType.TAUNT, false, true, 4), .attr(AddBattlerTagAttr, BattlerTagType.TAUNT, false, true, 4)
.reflectable(),
new StatusMove(Moves.HELPING_HAND, Type.NORMAL, -1, 20, -1, 5, 3) new StatusMove(Moves.HELPING_HAND, Type.NORMAL, -1, 20, -1, 5, 3)
.attr(AddBattlerTagAttr, BattlerTagType.HELPING_HAND) .attr(AddBattlerTagAttr, BattlerTagType.HELPING_HAND)
.ignoresSubstitute() .ignoresSubstitute()
@ -9092,7 +9212,12 @@ export function initMoves() {
new AttackMove(Moves.SUPERPOWER, Type.FIGHTING, MoveCategory.PHYSICAL, 120, 100, 5, -1, 0, 3) new AttackMove(Moves.SUPERPOWER, Type.FIGHTING, MoveCategory.PHYSICAL, 120, 100, 5, -1, 0, 3)
.attr(StatStageChangeAttr, [ Stat.ATK, Stat.DEF ], -1, true), .attr(StatStageChangeAttr, [ Stat.ATK, Stat.DEF ], -1, true),
new SelfStatusMove(Moves.MAGIC_COAT, Type.PSYCHIC, -1, 15, -1, 4, 3) new SelfStatusMove(Moves.MAGIC_COAT, Type.PSYCHIC, -1, 15, -1, 4, 3)
.unimplemented(), .attr(AddBattlerTagAttr, BattlerTagType.MAGIC_COAT, true, true, 0)
.condition(failIfLastCondition)
// Interactions with stomping tantrum, instruct, and other moves that
// rely on move history
// Also will not reflect roar / whirlwind if the target has ForceSwitchOutImmunityAbAttr
.edgeCase(),
new SelfStatusMove(Moves.RECYCLE, Type.NORMAL, -1, 10, -1, 0, 3) new SelfStatusMove(Moves.RECYCLE, Type.NORMAL, -1, 10, -1, 0, 3)
.unimplemented(), .unimplemented(),
new AttackMove(Moves.REVENGE, Type.FIGHTING, MoveCategory.PHYSICAL, 60, 100, 10, -1, -4, 3) new AttackMove(Moves.REVENGE, Type.FIGHTING, MoveCategory.PHYSICAL, 60, 100, 10, -1, -4, 3)
@ -9101,7 +9226,8 @@ export function initMoves() {
.attr(RemoveScreensAttr), .attr(RemoveScreensAttr),
new StatusMove(Moves.YAWN, Type.NORMAL, -1, 10, -1, 0, 3) new StatusMove(Moves.YAWN, Type.NORMAL, -1, 10, -1, 0, 3)
.attr(AddBattlerTagAttr, BattlerTagType.DROWSY, false, true) .attr(AddBattlerTagAttr, BattlerTagType.DROWSY, false, true)
.condition((user, target, move) => !target.status && !target.isSafeguarded(user)), .condition((user, target, move) => !target.status && !target.isSafeguarded(user))
.reflectable(),
new AttackMove(Moves.KNOCK_OFF, Type.DARK, MoveCategory.PHYSICAL, 65, 100, 20, -1, 0, 3) new AttackMove(Moves.KNOCK_OFF, Type.DARK, MoveCategory.PHYSICAL, 65, 100, 20, -1, 0, 3)
.attr(MovePowerMultiplierAttr, (user, target, move) => target.getHeldItems().filter(i => i.isTransferable).length > 0 ? 1.5 : 1) .attr(MovePowerMultiplierAttr, (user, target, move) => target.getHeldItems().filter(i => i.isTransferable).length > 0 ? 1.5 : 1)
.attr(RemoveHeldItemAttr, false), .attr(RemoveHeldItemAttr, false),
@ -9145,7 +9271,8 @@ export function initMoves() {
.ballBombMove(), .ballBombMove(),
new StatusMove(Moves.FEATHER_DANCE, Type.FLYING, 100, 15, -1, 0, 3) new StatusMove(Moves.FEATHER_DANCE, Type.FLYING, 100, 15, -1, 0, 3)
.attr(StatStageChangeAttr, [ Stat.ATK ], -2) .attr(StatStageChangeAttr, [ Stat.ATK ], -2)
.danceMove(), .danceMove()
.reflectable(),
new StatusMove(Moves.TEETER_DANCE, Type.NORMAL, 100, 20, -1, 0, 3) new StatusMove(Moves.TEETER_DANCE, Type.NORMAL, 100, 20, -1, 0, 3)
.attr(ConfuseAttr) .attr(ConfuseAttr)
.danceMove() .danceMove()
@ -9191,7 +9318,8 @@ export function initMoves() {
.attr(PartyStatusCureAttr, i18next.t("moveTriggers:soothingAromaWaftedThroughArea"), Abilities.SAP_SIPPER) .attr(PartyStatusCureAttr, i18next.t("moveTriggers:soothingAromaWaftedThroughArea"), Abilities.SAP_SIPPER)
.target(MoveTarget.PARTY), .target(MoveTarget.PARTY),
new StatusMove(Moves.FAKE_TEARS, Type.DARK, 100, 20, -1, 0, 3) new StatusMove(Moves.FAKE_TEARS, Type.DARK, 100, 20, -1, 0, 3)
.attr(StatStageChangeAttr, [ Stat.SPDEF ], -2), .attr(StatStageChangeAttr, [ Stat.SPDEF ], -2)
.reflectable(),
new AttackMove(Moves.AIR_CUTTER, Type.FLYING, MoveCategory.SPECIAL, 60, 95, 25, -1, 0, 3) new AttackMove(Moves.AIR_CUTTER, Type.FLYING, MoveCategory.SPECIAL, 60, 95, 25, -1, 0, 3)
.attr(HighCritAttr) .attr(HighCritAttr)
.slicingMove() .slicingMove()
@ -9202,7 +9330,8 @@ export function initMoves() {
.attr(HealStatusEffectAttr, true, StatusEffect.FREEZE), .attr(HealStatusEffectAttr, true, StatusEffect.FREEZE),
new StatusMove(Moves.ODOR_SLEUTH, Type.NORMAL, -1, 40, -1, 0, 3) new StatusMove(Moves.ODOR_SLEUTH, Type.NORMAL, -1, 40, -1, 0, 3)
.attr(ExposedMoveAttr, BattlerTagType.IGNORE_GHOST) .attr(ExposedMoveAttr, BattlerTagType.IGNORE_GHOST)
.ignoresSubstitute(), .ignoresSubstitute()
.reflectable(),
new AttackMove(Moves.ROCK_TOMB, Type.ROCK, MoveCategory.PHYSICAL, 60, 95, 15, 100, 0, 3) new AttackMove(Moves.ROCK_TOMB, Type.ROCK, MoveCategory.PHYSICAL, 60, 95, 15, 100, 0, 3)
.attr(StatStageChangeAttr, [ Stat.SPD ], -1) .attr(StatStageChangeAttr, [ Stat.SPD ], -1)
.makesContact(false), .makesContact(false),
@ -9211,12 +9340,15 @@ export function initMoves() {
.windMove(), .windMove(),
new StatusMove(Moves.METAL_SOUND, Type.STEEL, 85, 40, -1, 0, 3) new StatusMove(Moves.METAL_SOUND, Type.STEEL, 85, 40, -1, 0, 3)
.attr(StatStageChangeAttr, [ Stat.SPDEF ], -2) .attr(StatStageChangeAttr, [ Stat.SPDEF ], -2)
.soundBased(), .soundBased()
.reflectable(),
new StatusMove(Moves.GRASS_WHISTLE, Type.GRASS, 55, 15, -1, 0, 3) new StatusMove(Moves.GRASS_WHISTLE, Type.GRASS, 55, 15, -1, 0, 3)
.attr(StatusEffectAttr, StatusEffect.SLEEP) .attr(StatusEffectAttr, StatusEffect.SLEEP)
.soundBased(), .soundBased()
.reflectable(),
new StatusMove(Moves.TICKLE, Type.NORMAL, 100, 20, -1, 0, 3) new StatusMove(Moves.TICKLE, Type.NORMAL, 100, 20, -1, 0, 3)
.attr(StatStageChangeAttr, [ Stat.ATK, Stat.DEF ], -1), .attr(StatStageChangeAttr, [ Stat.ATK, Stat.DEF ], -1)
.reflectable(),
new SelfStatusMove(Moves.COSMIC_POWER, Type.PSYCHIC, -1, 20, -1, 0, 3) new SelfStatusMove(Moves.COSMIC_POWER, Type.PSYCHIC, -1, 20, -1, 0, 3)
.attr(StatStageChangeAttr, [ Stat.DEF, Stat.SPDEF ], 1, true), .attr(StatStageChangeAttr, [ Stat.DEF, Stat.SPDEF ], 1, true),
new AttackMove(Moves.WATER_SPOUT, Type.WATER, MoveCategory.SPECIAL, 150, 100, 5, -1, 0, 3) new AttackMove(Moves.WATER_SPOUT, Type.WATER, MoveCategory.SPECIAL, 150, 100, 5, -1, 0, 3)
@ -9254,7 +9386,8 @@ export function initMoves() {
.attr(StatStageChangeAttr, [ Stat.DEF ], 2, true), .attr(StatStageChangeAttr, [ Stat.DEF ], 2, true),
new StatusMove(Moves.BLOCK, Type.NORMAL, -1, 5, -1, 0, 3) new StatusMove(Moves.BLOCK, Type.NORMAL, -1, 5, -1, 0, 3)
.condition(failIfGhostTypeCondition) .condition(failIfGhostTypeCondition)
.attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, false, true, 1), .attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, false, true, 1)
.reflectable(),
new StatusMove(Moves.HOWL, Type.NORMAL, -1, 40, -1, 0, 3) new StatusMove(Moves.HOWL, Type.NORMAL, -1, 40, -1, 0, 3)
.attr(StatStageChangeAttr, [ Stat.ATK ], 1) .attr(StatStageChangeAttr, [ Stat.ATK ], 1)
.soundBased() .soundBased()
@ -9317,7 +9450,8 @@ export function initMoves() {
.target(MoveTarget.BOTH_SIDES), .target(MoveTarget.BOTH_SIDES),
new StatusMove(Moves.MIRACLE_EYE, Type.PSYCHIC, -1, 40, -1, 0, 4) new StatusMove(Moves.MIRACLE_EYE, Type.PSYCHIC, -1, 40, -1, 0, 4)
.attr(ExposedMoveAttr, BattlerTagType.IGNORE_DARK) .attr(ExposedMoveAttr, BattlerTagType.IGNORE_DARK)
.ignoresSubstitute(), .ignoresSubstitute()
.reflectable(),
new AttackMove(Moves.WAKE_UP_SLAP, Type.FIGHTING, MoveCategory.PHYSICAL, 70, 100, 10, -1, 0, 4) new AttackMove(Moves.WAKE_UP_SLAP, Type.FIGHTING, MoveCategory.PHYSICAL, 70, 100, 10, -1, 0, 4)
.attr(MovePowerMultiplierAttr, (user, target, move) => targetSleptOrComatoseCondition(user, target, move) ? 2 : 1) .attr(MovePowerMultiplierAttr, (user, target, move) => targetSleptOrComatoseCondition(user, target, move) ? 2 : 1)
.attr(HealStatusEffectAttr, false, StatusEffect.SLEEP), .attr(HealStatusEffectAttr, false, StatusEffect.SLEEP),
@ -9329,7 +9463,8 @@ export function initMoves() {
.ballBombMove(), .ballBombMove(),
new SelfStatusMove(Moves.HEALING_WISH, Type.PSYCHIC, -1, 10, -1, 0, 4) new SelfStatusMove(Moves.HEALING_WISH, Type.PSYCHIC, -1, 10, -1, 0, 4)
.attr(SacrificialFullRestoreAttr, false, "moveTriggers:sacrificialFullRestore") .attr(SacrificialFullRestoreAttr, false, "moveTriggers:sacrificialFullRestore")
.triageMove(), .triageMove()
.condition(failIfLastInPartyCondition),
new AttackMove(Moves.BRINE, Type.WATER, MoveCategory.SPECIAL, 65, 100, 10, -1, 0, 4) new AttackMove(Moves.BRINE, Type.WATER, MoveCategory.SPECIAL, 65, 100, 10, -1, 0, 4)
.attr(MovePowerMultiplierAttr, (user, target, move) => target.getHpRatio() < 0.5 ? 2 : 1), .attr(MovePowerMultiplierAttr, (user, target, move) => target.getHpRatio() < 0.5 ? 2 : 1),
new AttackMove(Moves.NATURAL_GIFT, Type.NORMAL, MoveCategory.PHYSICAL, -1, 100, 15, -1, 0, 4) new AttackMove(Moves.NATURAL_GIFT, Type.NORMAL, MoveCategory.PHYSICAL, -1, 100, 15, -1, 0, 4)
@ -9363,6 +9498,7 @@ export function initMoves() {
new AttackMove(Moves.ASSURANCE, Type.DARK, MoveCategory.PHYSICAL, 60, 100, 10, -1, 0, 4) 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), .attr(MovePowerMultiplierAttr, (user, target, move) => target.turnData.damageTaken > 0 ? 2 : 1),
new StatusMove(Moves.EMBARGO, Type.DARK, 100, 15, -1, 0, 4) new StatusMove(Moves.EMBARGO, Type.DARK, 100, 15, -1, 0, 4)
.reflectable()
.unimplemented(), .unimplemented(),
new AttackMove(Moves.FLING, Type.DARK, MoveCategory.PHYSICAL, -1, 100, 10, -1, 0, 4) new AttackMove(Moves.FLING, Type.DARK, MoveCategory.PHYSICAL, -1, 100, 10, -1, 0, 4)
.makesContact(false) .makesContact(false)
@ -9382,14 +9518,16 @@ export function initMoves() {
.attr(LessPPMorePowerAttr), .attr(LessPPMorePowerAttr),
new StatusMove(Moves.HEAL_BLOCK, Type.PSYCHIC, 100, 15, -1, 0, 4) new StatusMove(Moves.HEAL_BLOCK, Type.PSYCHIC, 100, 15, -1, 0, 4)
.attr(AddBattlerTagAttr, BattlerTagType.HEAL_BLOCK, false, true, 5) .attr(AddBattlerTagAttr, BattlerTagType.HEAL_BLOCK, false, true, 5)
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES)
.reflectable(),
new AttackMove(Moves.WRING_OUT, Type.NORMAL, MoveCategory.SPECIAL, -1, 100, 5, -1, 0, 4) new AttackMove(Moves.WRING_OUT, Type.NORMAL, MoveCategory.SPECIAL, -1, 100, 5, -1, 0, 4)
.attr(OpponentHighHpPowerAttr, 120) .attr(OpponentHighHpPowerAttr, 120)
.makesContact(), .makesContact(),
new SelfStatusMove(Moves.POWER_TRICK, Type.PSYCHIC, -1, 10, -1, 0, 4) new SelfStatusMove(Moves.POWER_TRICK, Type.PSYCHIC, -1, 10, -1, 0, 4)
.attr(AddBattlerTagAttr, BattlerTagType.POWER_TRICK, true), .attr(AddBattlerTagAttr, BattlerTagType.POWER_TRICK, true),
new StatusMove(Moves.GASTRO_ACID, Type.POISON, 100, 10, -1, 0, 4) new StatusMove(Moves.GASTRO_ACID, Type.POISON, 100, 10, -1, 0, 4)
.attr(SuppressAbilitiesAttr), .attr(SuppressAbilitiesAttr)
.reflectable(),
new StatusMove(Moves.LUCKY_CHANT, Type.NORMAL, -1, 30, -1, 0, 4) new StatusMove(Moves.LUCKY_CHANT, Type.NORMAL, -1, 30, -1, 0, 4)
.attr(AddArenaTagAttr, ArenaTagType.NO_CRIT, 5, true, true) .attr(AddArenaTagAttr, ArenaTagType.NO_CRIT, 5, true, true)
.target(MoveTarget.USER_SIDE), .target(MoveTarget.USER_SIDE),
@ -9411,12 +9549,14 @@ export function initMoves() {
new AttackMove(Moves.LAST_RESORT, Type.NORMAL, MoveCategory.PHYSICAL, 140, 100, 5, -1, 0, 4) new AttackMove(Moves.LAST_RESORT, Type.NORMAL, MoveCategory.PHYSICAL, 140, 100, 5, -1, 0, 4)
.attr(LastResortAttr), .attr(LastResortAttr),
new StatusMove(Moves.WORRY_SEED, Type.GRASS, 100, 10, -1, 0, 4) new StatusMove(Moves.WORRY_SEED, Type.GRASS, 100, 10, -1, 0, 4)
.attr(AbilityChangeAttr, Abilities.INSOMNIA), .attr(AbilityChangeAttr, Abilities.INSOMNIA)
.reflectable(),
new AttackMove(Moves.SUCKER_PUNCH, Type.DARK, MoveCategory.PHYSICAL, 70, 100, 5, -1, 1, 4) new AttackMove(Moves.SUCKER_PUNCH, Type.DARK, MoveCategory.PHYSICAL, 70, 100, 5, -1, 1, 4)
.condition((user, target, move) => globalScene.currentBattle.turnCommands[target.getBattlerIndex()]?.command === Command.FIGHT && !target.turnData.acted && allMoves[globalScene.currentBattle.turnCommands[target.getBattlerIndex()]?.move?.move!].category !== MoveCategory.STATUS), // TODO: is this bang correct? .condition((user, target, move) => globalScene.currentBattle.turnCommands[target.getBattlerIndex()]?.command === Command.FIGHT && !target.turnData.acted && allMoves[globalScene.currentBattle.turnCommands[target.getBattlerIndex()]?.move?.move!].category !== MoveCategory.STATUS), // TODO: is this bang correct?
new StatusMove(Moves.TOXIC_SPIKES, Type.POISON, -1, 20, -1, 0, 4) new StatusMove(Moves.TOXIC_SPIKES, Type.POISON, -1, 20, -1, 0, 4)
.attr(AddArenaTrapTagAttr, ArenaTagType.TOXIC_SPIKES) .attr(AddArenaTrapTagAttr, ArenaTagType.TOXIC_SPIKES)
.target(MoveTarget.ENEMY_SIDE), .target(MoveTarget.ENEMY_SIDE)
.reflectable(),
new StatusMove(Moves.HEART_SWAP, Type.PSYCHIC, -1, 10, -1, 0, 4) new StatusMove(Moves.HEART_SWAP, Type.PSYCHIC, -1, 10, -1, 0, 4)
.attr(SwapStatStagesAttr, BATTLE_STATS) .attr(SwapStatStagesAttr, BATTLE_STATS)
.ignoresSubstitute(), .ignoresSubstitute(),
@ -9528,7 +9668,8 @@ export function initMoves() {
.attr(ClearTerrainAttr) .attr(ClearTerrainAttr)
.attr(RemoveScreensAttr, false) .attr(RemoveScreensAttr, false)
.attr(RemoveArenaTrapAttr, true) .attr(RemoveArenaTrapAttr, true)
.attr(RemoveArenaTagsAttr, [ ArenaTagType.MIST, ArenaTagType.SAFEGUARD ], false), .attr(RemoveArenaTagsAttr, [ ArenaTagType.MIST, ArenaTagType.SAFEGUARD ], false)
.reflectable(),
new StatusMove(Moves.TRICK_ROOM, Type.PSYCHIC, -1, 5, -1, -7, 4) new StatusMove(Moves.TRICK_ROOM, Type.PSYCHIC, -1, 5, -1, -7, 4)
.attr(AddArenaTagAttr, ArenaTagType.TRICK_ROOM, 5) .attr(AddArenaTagAttr, ArenaTagType.TRICK_ROOM, 5)
.ignoresProtect() .ignoresProtect()
@ -9566,10 +9707,12 @@ export function initMoves() {
new StatusMove(Moves.CAPTIVATE, Type.NORMAL, 100, 20, -1, 0, 4) new StatusMove(Moves.CAPTIVATE, Type.NORMAL, 100, 20, -1, 0, 4)
.attr(StatStageChangeAttr, [ Stat.SPATK ], -2) .attr(StatStageChangeAttr, [ Stat.SPATK ], -2)
.condition((user, target, move) => target.isOppositeGender(user)) .condition((user, target, move) => target.isOppositeGender(user))
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES)
.reflectable(),
new StatusMove(Moves.STEALTH_ROCK, Type.ROCK, -1, 20, -1, 0, 4) new StatusMove(Moves.STEALTH_ROCK, Type.ROCK, -1, 20, -1, 0, 4)
.attr(AddArenaTrapTagAttr, ArenaTagType.STEALTH_ROCK) .attr(AddArenaTrapTagAttr, ArenaTagType.STEALTH_ROCK)
.target(MoveTarget.ENEMY_SIDE), .target(MoveTarget.ENEMY_SIDE)
.reflectable(),
new AttackMove(Moves.GRASS_KNOT, Type.GRASS, MoveCategory.SPECIAL, -1, 100, 20, -1, 0, 4) new AttackMove(Moves.GRASS_KNOT, Type.GRASS, MoveCategory.SPECIAL, -1, 100, 20, -1, 0, 4)
.attr(WeightPowerAttr) .attr(WeightPowerAttr)
.makesContact(), .makesContact(),
@ -9606,14 +9749,16 @@ export function initMoves() {
new SelfStatusMove(Moves.LUNAR_DANCE, Type.PSYCHIC, -1, 10, -1, 0, 4) new SelfStatusMove(Moves.LUNAR_DANCE, Type.PSYCHIC, -1, 10, -1, 0, 4)
.attr(SacrificialFullRestoreAttr, true, "moveTriggers:lunarDanceRestore") .attr(SacrificialFullRestoreAttr, true, "moveTriggers:lunarDanceRestore")
.danceMove() .danceMove()
.triageMove(), .triageMove()
.condition(failIfLastInPartyCondition),
new AttackMove(Moves.CRUSH_GRIP, Type.NORMAL, MoveCategory.PHYSICAL, -1, 100, 5, -1, 0, 4) new AttackMove(Moves.CRUSH_GRIP, Type.NORMAL, MoveCategory.PHYSICAL, -1, 100, 5, -1, 0, 4)
.attr(OpponentHighHpPowerAttr, 120), .attr(OpponentHighHpPowerAttr, 120),
new AttackMove(Moves.MAGMA_STORM, Type.FIRE, MoveCategory.SPECIAL, 100, 75, 5, -1, 0, 4) new AttackMove(Moves.MAGMA_STORM, Type.FIRE, MoveCategory.SPECIAL, 100, 75, 5, -1, 0, 4)
.attr(TrapAttr, BattlerTagType.MAGMA_STORM), .attr(TrapAttr, BattlerTagType.MAGMA_STORM),
new StatusMove(Moves.DARK_VOID, Type.DARK, 80, 10, -1, 0, 4) //Accuracy from Generations 4-6 new StatusMove(Moves.DARK_VOID, Type.DARK, 80, 10, -1, 0, 4) //Accuracy from Generations 4-6
.attr(StatusEffectAttr, StatusEffect.SLEEP) .attr(StatusEffectAttr, StatusEffect.SLEEP)
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES)
.reflectable(),
new AttackMove(Moves.SEED_FLARE, Type.GRASS, MoveCategory.SPECIAL, 120, 85, 5, 40, 0, 4) new AttackMove(Moves.SEED_FLARE, Type.GRASS, MoveCategory.SPECIAL, 120, 85, 5, 40, 0, 4)
.attr(StatStageChangeAttr, [ Stat.SPDEF ], -2), .attr(StatStageChangeAttr, [ Stat.SPDEF ], -2),
new AttackMove(Moves.OMINOUS_WIND, Type.GHOST, MoveCategory.SPECIAL, 60, 100, 5, 10, 0, 4) new AttackMove(Moves.OMINOUS_WIND, Type.GHOST, MoveCategory.SPECIAL, 60, 100, 5, 10, 0, 4)
@ -9653,7 +9798,8 @@ export function initMoves() {
.condition((_user, target, _move) => !(target.species.speciesId === Species.GENGAR && target.getFormKey() === "mega")) .condition((_user, target, _move) => !(target.species.speciesId === Species.GENGAR && target.getFormKey() === "mega"))
.condition((_user, target, _move) => Utils.isNullOrUndefined(target.getTag(BattlerTagType.INGRAIN)) && Utils.isNullOrUndefined(target.getTag(BattlerTagType.IGNORE_FLYING))) .condition((_user, target, _move) => Utils.isNullOrUndefined(target.getTag(BattlerTagType.INGRAIN)) && Utils.isNullOrUndefined(target.getTag(BattlerTagType.IGNORE_FLYING)))
.attr(AddBattlerTagAttr, BattlerTagType.TELEKINESIS, false, true, 3) .attr(AddBattlerTagAttr, BattlerTagType.TELEKINESIS, false, true, 3)
.attr(AddBattlerTagAttr, BattlerTagType.FLOATING, false, true, 3), .attr(AddBattlerTagAttr, BattlerTagType.FLOATING, false, true, 3)
.reflectable(),
new StatusMove(Moves.MAGIC_ROOM, Type.PSYCHIC, -1, 10, -1, 0, 5) new StatusMove(Moves.MAGIC_ROOM, Type.PSYCHIC, -1, 10, -1, 0, 5)
.ignoresProtect() .ignoresProtect()
.target(MoveTarget.BOTH_SIDES) .target(MoveTarget.BOTH_SIDES)
@ -9686,7 +9832,8 @@ export function initMoves() {
.attr(ElectroBallPowerAttr) .attr(ElectroBallPowerAttr)
.ballBombMove(), .ballBombMove(),
new StatusMove(Moves.SOAK, Type.WATER, 100, 20, -1, 0, 5) new StatusMove(Moves.SOAK, Type.WATER, 100, 20, -1, 0, 5)
.attr(ChangeTypeAttr, Type.WATER), .attr(ChangeTypeAttr, Type.WATER)
.reflectable(),
new AttackMove(Moves.FLAME_CHARGE, Type.FIRE, MoveCategory.PHYSICAL, 50, 100, 20, 100, 0, 5) new AttackMove(Moves.FLAME_CHARGE, Type.FIRE, MoveCategory.PHYSICAL, 50, 100, 20, 100, 0, 5)
.attr(StatStageChangeAttr, [ Stat.SPD ], 1, true), .attr(StatStageChangeAttr, [ Stat.SPD ], 1, true),
new SelfStatusMove(Moves.COIL, Type.POISON, -1, 20, -1, 0, 5) new SelfStatusMove(Moves.COIL, Type.POISON, -1, 20, -1, 0, 5)
@ -9699,9 +9846,11 @@ export function initMoves() {
new AttackMove(Moves.FOUL_PLAY, Type.DARK, MoveCategory.PHYSICAL, 95, 100, 15, -1, 0, 5) new AttackMove(Moves.FOUL_PLAY, Type.DARK, MoveCategory.PHYSICAL, 95, 100, 15, -1, 0, 5)
.attr(TargetAtkUserAtkAttr), .attr(TargetAtkUserAtkAttr),
new StatusMove(Moves.SIMPLE_BEAM, Type.NORMAL, 100, 15, -1, 0, 5) new StatusMove(Moves.SIMPLE_BEAM, Type.NORMAL, 100, 15, -1, 0, 5)
.attr(AbilityChangeAttr, Abilities.SIMPLE), .attr(AbilityChangeAttr, Abilities.SIMPLE)
.reflectable(),
new StatusMove(Moves.ENTRAINMENT, Type.NORMAL, 100, 15, -1, 0, 5) new StatusMove(Moves.ENTRAINMENT, Type.NORMAL, 100, 15, -1, 0, 5)
.attr(AbilityGiveAttr), .attr(AbilityGiveAttr)
.reflectable(),
new StatusMove(Moves.AFTER_YOU, Type.NORMAL, -1, 15, -1, 0, 5) new StatusMove(Moves.AFTER_YOU, Type.NORMAL, -1, 15, -1, 0, 5)
.ignoresProtect() .ignoresProtect()
.ignoresSubstitute() .ignoresSubstitute()
@ -9739,7 +9888,8 @@ export function initMoves() {
new StatusMove(Moves.HEAL_PULSE, Type.PSYCHIC, -1, 10, -1, 0, 5) new StatusMove(Moves.HEAL_PULSE, Type.PSYCHIC, -1, 10, -1, 0, 5)
.attr(HealAttr, 0.5, false, false) .attr(HealAttr, 0.5, false, false)
.pulseMove() .pulseMove()
.triageMove(), .triageMove()
.reflectable(),
new AttackMove(Moves.HEX, Type.GHOST, MoveCategory.SPECIAL, 65, 100, 10, -1, 0, 5) new AttackMove(Moves.HEX, Type.GHOST, MoveCategory.SPECIAL, 65, 100, 10, -1, 0, 5)
.attr( .attr(
MovePowerMultiplierAttr, MovePowerMultiplierAttr,
@ -9942,7 +10092,8 @@ export function initMoves() {
.attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], 1, false, { condition: (user, target, move) => target.isOfType(Type.GRASS) && target.isGrounded() }), .attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], 1, false, { condition: (user, target, move) => target.isOfType(Type.GRASS) && target.isGrounded() }),
new StatusMove(Moves.STICKY_WEB, Type.BUG, -1, 20, -1, 0, 6) new StatusMove(Moves.STICKY_WEB, Type.BUG, -1, 20, -1, 0, 6)
.attr(AddArenaTrapTagAttr, ArenaTagType.STICKY_WEB) .attr(AddArenaTrapTagAttr, ArenaTagType.STICKY_WEB)
.target(MoveTarget.ENEMY_SIDE), .target(MoveTarget.ENEMY_SIDE)
.reflectable(),
new AttackMove(Moves.FELL_STINGER, Type.BUG, MoveCategory.PHYSICAL, 50, 100, 25, -1, 0, 6) new AttackMove(Moves.FELL_STINGER, Type.BUG, MoveCategory.PHYSICAL, 50, 100, 25, -1, 0, 6)
.attr(PostVictoryStatStageChangeAttr, [ Stat.ATK ], 3, true ), .attr(PostVictoryStatStageChangeAttr, [ Stat.ATK ], 3, true ),
new ChargingAttackMove(Moves.PHANTOM_FORCE, Type.GHOST, MoveCategory.PHYSICAL, 90, 100, 10, -1, 0, 6) new ChargingAttackMove(Moves.PHANTOM_FORCE, Type.GHOST, MoveCategory.PHYSICAL, 90, 100, 10, -1, 0, 6)
@ -9950,10 +10101,12 @@ export function initMoves() {
.chargeAttr(SemiInvulnerableAttr, BattlerTagType.HIDDEN) .chargeAttr(SemiInvulnerableAttr, BattlerTagType.HIDDEN)
.ignoresProtect(), .ignoresProtect(),
new StatusMove(Moves.TRICK_OR_TREAT, Type.GHOST, 100, 20, -1, 0, 6) new StatusMove(Moves.TRICK_OR_TREAT, Type.GHOST, 100, 20, -1, 0, 6)
.attr(AddTypeAttr, Type.GHOST), .attr(AddTypeAttr, Type.GHOST)
.reflectable(),
new StatusMove(Moves.NOBLE_ROAR, Type.NORMAL, 100, 30, -1, 0, 6) new StatusMove(Moves.NOBLE_ROAR, Type.NORMAL, 100, 30, -1, 0, 6)
.attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], -1) .attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], -1)
.soundBased(), .soundBased()
.reflectable(),
new StatusMove(Moves.ION_DELUGE, Type.ELECTRIC, -1, 25, -1, 1, 6) new StatusMove(Moves.ION_DELUGE, Type.ELECTRIC, -1, 25, -1, 1, 6)
.attr(AddArenaTagAttr, ArenaTagType.ION_DELUGE) .attr(AddArenaTagAttr, ArenaTagType.ION_DELUGE)
.target(MoveTarget.BOTH_SIDES), .target(MoveTarget.BOTH_SIDES),
@ -9962,7 +10115,8 @@ export function initMoves() {
.target(MoveTarget.ALL_NEAR_OTHERS) .target(MoveTarget.ALL_NEAR_OTHERS)
.triageMove(), .triageMove(),
new StatusMove(Moves.FORESTS_CURSE, Type.GRASS, 100, 20, -1, 0, 6) new StatusMove(Moves.FORESTS_CURSE, Type.GRASS, 100, 20, -1, 0, 6)
.attr(AddTypeAttr, Type.GRASS), .attr(AddTypeAttr, Type.GRASS)
.reflectable(),
new AttackMove(Moves.PETAL_BLIZZARD, Type.GRASS, MoveCategory.PHYSICAL, 90, 100, 15, -1, 0, 6) new AttackMove(Moves.PETAL_BLIZZARD, Type.GRASS, MoveCategory.PHYSICAL, 90, 100, 15, -1, 0, 6)
.windMove() .windMove()
.makesContact(false) .makesContact(false)
@ -9976,9 +10130,11 @@ export function initMoves() {
new StatusMove(Moves.PARTING_SHOT, Type.DARK, 100, 20, -1, 0, 6) new StatusMove(Moves.PARTING_SHOT, Type.DARK, 100, 20, -1, 0, 6)
.attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], -1, false, { trigger: MoveEffectTrigger.PRE_APPLY }) .attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], -1, false, { trigger: MoveEffectTrigger.PRE_APPLY })
.attr(ForceSwitchOutAttr, true) .attr(ForceSwitchOutAttr, true)
.soundBased(), .soundBased()
.reflectable(),
new StatusMove(Moves.TOPSY_TURVY, Type.DARK, -1, 20, -1, 0, 6) new StatusMove(Moves.TOPSY_TURVY, Type.DARK, -1, 20, -1, 0, 6)
.attr(InvertStatsAttr), .attr(InvertStatsAttr)
.reflectable(),
new AttackMove(Moves.DRAINING_KISS, Type.FAIRY, MoveCategory.SPECIAL, 50, 100, 10, -1, 0, 6) new AttackMove(Moves.DRAINING_KISS, Type.FAIRY, MoveCategory.SPECIAL, 50, 100, 10, -1, 0, 6)
.attr(HitHealAttr, 0.75) .attr(HitHealAttr, 0.75)
.makesContact() .makesContact()
@ -10017,10 +10173,12 @@ export function initMoves() {
.condition(failIfLastCondition), .condition(failIfLastCondition),
new StatusMove(Moves.PLAY_NICE, Type.NORMAL, -1, 20, -1, 0, 6) new StatusMove(Moves.PLAY_NICE, Type.NORMAL, -1, 20, -1, 0, 6)
.attr(StatStageChangeAttr, [ Stat.ATK ], -1) .attr(StatStageChangeAttr, [ Stat.ATK ], -1)
.ignoresSubstitute(), .ignoresSubstitute()
.reflectable(),
new StatusMove(Moves.CONFIDE, Type.NORMAL, -1, 20, -1, 0, 6) new StatusMove(Moves.CONFIDE, Type.NORMAL, -1, 20, -1, 0, 6)
.attr(StatStageChangeAttr, [ Stat.SPATK ], -1) .attr(StatStageChangeAttr, [ Stat.SPATK ], -1)
.soundBased(), .soundBased()
.reflectable(),
new AttackMove(Moves.DIAMOND_STORM, Type.ROCK, MoveCategory.PHYSICAL, 100, 95, 5, 50, 0, 6) new AttackMove(Moves.DIAMOND_STORM, Type.ROCK, MoveCategory.PHYSICAL, 100, 95, 5, 50, 0, 6)
.attr(StatStageChangeAttr, [ Stat.DEF ], 2, true, { firstTargetOnly: true }) .attr(StatStageChangeAttr, [ Stat.DEF ], 2, true, { firstTargetOnly: true })
.makesContact(false) .makesContact(false)
@ -10047,14 +10205,17 @@ export function initMoves() {
.condition(failIfSingleBattle) .condition(failIfSingleBattle)
.target(MoveTarget.NEAR_ALLY), .target(MoveTarget.NEAR_ALLY),
new StatusMove(Moves.EERIE_IMPULSE, Type.ELECTRIC, 100, 15, -1, 0, 6) new StatusMove(Moves.EERIE_IMPULSE, Type.ELECTRIC, 100, 15, -1, 0, 6)
.attr(StatStageChangeAttr, [ Stat.SPATK ], -2), .attr(StatStageChangeAttr, [ Stat.SPATK ], -2)
.reflectable(),
new StatusMove(Moves.VENOM_DRENCH, Type.POISON, 100, 20, -1, 0, 6) new StatusMove(Moves.VENOM_DRENCH, Type.POISON, 100, 20, -1, 0, 6)
.attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK, Stat.SPD ], -1, false, { condition: (user, target, move) => target.status?.effect === StatusEffect.POISON || target.status?.effect === StatusEffect.TOXIC }) .attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK, Stat.SPD ], -1, false, { condition: (user, target, move) => target.status?.effect === StatusEffect.POISON || target.status?.effect === StatusEffect.TOXIC })
.target(MoveTarget.ALL_NEAR_ENEMIES), .target(MoveTarget.ALL_NEAR_ENEMIES)
.reflectable(),
new StatusMove(Moves.POWDER, Type.BUG, 100, 20, -1, 1, 6) new StatusMove(Moves.POWDER, Type.BUG, 100, 20, -1, 1, 6)
.attr(AddBattlerTagAttr, BattlerTagType.POWDER, false, true) .attr(AddBattlerTagAttr, BattlerTagType.POWDER, false, true)
.ignoresSubstitute() .ignoresSubstitute()
.powderMove(), .powderMove()
.reflectable(),
new ChargingSelfStatusMove(Moves.GEOMANCY, Type.FAIRY, -1, 10, -1, 0, 6) new ChargingSelfStatusMove(Moves.GEOMANCY, Type.FAIRY, -1, 10, -1, 0, 6)
.chargeText(i18next.t("moveTriggers:isChargingPower", { pokemonName: "{USER}" })) .chargeText(i18next.t("moveTriggers:isChargingPower", { pokemonName: "{USER}" }))
.attr(StatStageChangeAttr, [ Stat.SPATK, Stat.SPDEF, Stat.SPD ], 2, true), .attr(StatStageChangeAttr, [ Stat.SPATK, Stat.SPDEF, Stat.SPD ], 2, true),
@ -10076,7 +10237,8 @@ export function initMoves() {
.ignoresSubstitute() .ignoresSubstitute()
.target(MoveTarget.NEAR_ALLY), .target(MoveTarget.NEAR_ALLY),
new StatusMove(Moves.BABY_DOLL_EYES, Type.FAIRY, 100, 30, -1, 1, 6) new StatusMove(Moves.BABY_DOLL_EYES, Type.FAIRY, 100, 30, -1, 1, 6)
.attr(StatStageChangeAttr, [ Stat.ATK ], -1), .attr(StatStageChangeAttr, [ Stat.ATK ], -1)
.reflectable(),
new AttackMove(Moves.NUZZLE, Type.ELECTRIC, MoveCategory.PHYSICAL, 20, 100, 20, 100, 0, 6) new AttackMove(Moves.NUZZLE, Type.ELECTRIC, MoveCategory.PHYSICAL, 20, 100, 20, 100, 0, 6)
.attr(StatusEffectAttr, StatusEffect.PARALYSIS), .attr(StatusEffectAttr, StatusEffect.PARALYSIS),
new AttackMove(Moves.HOLD_BACK, Type.NORMAL, MoveCategory.PHYSICAL, 40, 100, 40, -1, 0, 6) new AttackMove(Moves.HOLD_BACK, Type.NORMAL, MoveCategory.PHYSICAL, 40, 100, 40, -1, 0, 6)
@ -10220,13 +10382,15 @@ export function initMoves() {
.punchingMove(), .punchingMove(),
new StatusMove(Moves.FLORAL_HEALING, Type.FAIRY, -1, 10, -1, 0, 7) new StatusMove(Moves.FLORAL_HEALING, Type.FAIRY, -1, 10, -1, 0, 7)
.attr(BoostHealAttr, 0.5, 2 / 3, true, false, (user, target, move) => globalScene.arena.terrain?.terrainType === TerrainType.GRASSY) .attr(BoostHealAttr, 0.5, 2 / 3, true, false, (user, target, move) => globalScene.arena.terrain?.terrainType === TerrainType.GRASSY)
.triageMove(), .triageMove()
.reflectable(),
new AttackMove(Moves.HIGH_HORSEPOWER, Type.GROUND, MoveCategory.PHYSICAL, 95, 95, 10, -1, 0, 7), new AttackMove(Moves.HIGH_HORSEPOWER, Type.GROUND, MoveCategory.PHYSICAL, 95, 95, 10, -1, 0, 7),
new StatusMove(Moves.STRENGTH_SAP, Type.GRASS, 100, 10, -1, 0, 7) new StatusMove(Moves.STRENGTH_SAP, Type.GRASS, 100, 10, -1, 0, 7)
.attr(HitHealAttr, null, Stat.ATK) .attr(HitHealAttr, null, Stat.ATK)
.attr(StatStageChangeAttr, [ Stat.ATK ], -1) .attr(StatStageChangeAttr, [ Stat.ATK ], -1)
.condition((user, target, move) => target.getStatStage(Stat.ATK) > -6) .condition((user, target, move) => target.getStatStage(Stat.ATK) > -6)
.triageMove(), .triageMove()
.reflectable(),
new ChargingAttackMove(Moves.SOLAR_BLADE, Type.GRASS, MoveCategory.PHYSICAL, 125, 100, 10, -1, 0, 7) new ChargingAttackMove(Moves.SOLAR_BLADE, Type.GRASS, MoveCategory.PHYSICAL, 125, 100, 10, -1, 0, 7)
.chargeText(i18next.t("moveTriggers:isGlowing", { pokemonName: "{USER}" })) .chargeText(i18next.t("moveTriggers:isGlowing", { pokemonName: "{USER}" }))
.chargeAttr(WeatherInstantChargeAttr, [ WeatherType.SUNNY, WeatherType.HARSH_SUN ]) .chargeAttr(WeatherInstantChargeAttr, [ WeatherType.SUNNY, WeatherType.HARSH_SUN ])
@ -10236,10 +10400,12 @@ export function initMoves() {
.makesContact(false), .makesContact(false),
new StatusMove(Moves.SPOTLIGHT, Type.NORMAL, -1, 15, -1, 3, 7) new StatusMove(Moves.SPOTLIGHT, Type.NORMAL, -1, 15, -1, 3, 7)
.attr(AddBattlerTagAttr, BattlerTagType.CENTER_OF_ATTENTION, false) .attr(AddBattlerTagAttr, BattlerTagType.CENTER_OF_ATTENTION, false)
.condition(failIfSingleBattle), .condition(failIfSingleBattle)
.reflectable(),
new StatusMove(Moves.TOXIC_THREAD, Type.POISON, 100, 20, -1, 0, 7) new StatusMove(Moves.TOXIC_THREAD, Type.POISON, 100, 20, -1, 0, 7)
.attr(StatusEffectAttr, StatusEffect.POISON) .attr(StatusEffectAttr, StatusEffect.POISON)
.attr(StatStageChangeAttr, [ Stat.SPD ], -1), .attr(StatStageChangeAttr, [ Stat.SPD ], -1)
.reflectable(),
new SelfStatusMove(Moves.LASER_FOCUS, Type.NORMAL, -1, 30, -1, 0, 7) new SelfStatusMove(Moves.LASER_FOCUS, Type.NORMAL, -1, 30, -1, 0, 7)
.attr(AddBattlerTagAttr, BattlerTagType.ALWAYS_CRIT, true, false), .attr(AddBattlerTagAttr, BattlerTagType.ALWAYS_CRIT, true, false),
new StatusMove(Moves.GEAR_UP, Type.STEEL, -1, 20, -1, 0, 7) new StatusMove(Moves.GEAR_UP, Type.STEEL, -1, 20, -1, 0, 7)
@ -10283,7 +10449,8 @@ export function initMoves() {
(user: Pokemon, target: Pokemon, move: Move) => isNonVolatileStatusEffect(target.status?.effect!)) // TODO: is this bang correct? (user: Pokemon, target: Pokemon, move: Move) => isNonVolatileStatusEffect(target.status?.effect!)) // TODO: is this bang correct?
.attr(HealAttr, 0.5) .attr(HealAttr, 0.5)
.attr(HealStatusEffectAttr, false, getNonVolatileStatusEffects()) .attr(HealStatusEffectAttr, false, getNonVolatileStatusEffects())
.triageMove(), .triageMove()
.reflectable(),
new AttackMove(Moves.REVELATION_DANCE, Type.NORMAL, MoveCategory.SPECIAL, 90, 100, 15, -1, 0, 7) new AttackMove(Moves.REVELATION_DANCE, Type.NORMAL, MoveCategory.SPECIAL, 90, 100, 15, -1, 0, 7)
.danceMove() .danceMove()
.attr(MatchUserTypeAttr), .attr(MatchUserTypeAttr),
@ -10365,14 +10532,15 @@ export function initMoves() {
new AttackMove(Moves.PRISMATIC_LASER, Type.PSYCHIC, MoveCategory.SPECIAL, 160, 100, 10, -1, 0, 7) new AttackMove(Moves.PRISMATIC_LASER, Type.PSYCHIC, MoveCategory.SPECIAL, 160, 100, 10, -1, 0, 7)
.attr(RechargeAttr), .attr(RechargeAttr),
new AttackMove(Moves.SPECTRAL_THIEF, Type.GHOST, MoveCategory.PHYSICAL, 90, 100, 10, -1, 0, 7) new AttackMove(Moves.SPECTRAL_THIEF, Type.GHOST, MoveCategory.PHYSICAL, 90, 100, 10, -1, 0, 7)
.ignoresSubstitute() .attr(SpectralThiefAttr)
.partial(), // Does not steal stats .ignoresSubstitute(),
new AttackMove(Moves.SUNSTEEL_STRIKE, Type.STEEL, MoveCategory.PHYSICAL, 100, 100, 5, -1, 0, 7) new AttackMove(Moves.SUNSTEEL_STRIKE, Type.STEEL, MoveCategory.PHYSICAL, 100, 100, 5, -1, 0, 7)
.ignoresAbilities(), .ignoresAbilities(),
new AttackMove(Moves.MOONGEIST_BEAM, Type.GHOST, MoveCategory.SPECIAL, 100, 100, 5, -1, 0, 7) new AttackMove(Moves.MOONGEIST_BEAM, Type.GHOST, MoveCategory.SPECIAL, 100, 100, 5, -1, 0, 7)
.ignoresAbilities(), .ignoresAbilities(),
new StatusMove(Moves.TEARFUL_LOOK, Type.NORMAL, -1, 20, -1, 0, 7) new StatusMove(Moves.TEARFUL_LOOK, Type.NORMAL, -1, 20, -1, 0, 7)
.attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], -1), .attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], -1)
.reflectable(),
new AttackMove(Moves.ZING_ZAP, Type.ELECTRIC, MoveCategory.PHYSICAL, 80, 100, 10, 30, 0, 7) new AttackMove(Moves.ZING_ZAP, Type.ELECTRIC, MoveCategory.PHYSICAL, 80, 100, 10, 30, 0, 7)
.attr(FlinchAttr), .attr(FlinchAttr),
new AttackMove(Moves.NATURES_MADNESS, Type.FAIRY, MoveCategory.SPECIAL, -1, 90, 10, -1, 0, 7) new AttackMove(Moves.NATURES_MADNESS, Type.FAIRY, MoveCategory.SPECIAL, -1, 90, 10, -1, 0, 7)
@ -10429,9 +10597,8 @@ export function initMoves() {
new AttackMove(Moves.PIKA_PAPOW, Type.ELECTRIC, MoveCategory.SPECIAL, -1, -1, 20, -1, 0, 7) new AttackMove(Moves.PIKA_PAPOW, Type.ELECTRIC, MoveCategory.SPECIAL, -1, -1, 20, -1, 0, 7)
.attr(FriendshipPowerAttr), .attr(FriendshipPowerAttr),
new AttackMove(Moves.BOUNCY_BUBBLE, Type.WATER, MoveCategory.SPECIAL, 60, 100, 20, -1, 0, 7) new AttackMove(Moves.BOUNCY_BUBBLE, Type.WATER, MoveCategory.SPECIAL, 60, 100, 20, -1, 0, 7)
.attr(HitHealAttr) // Custom .attr(HitHealAttr, 1)
.triageMove() .triageMove(),
.target(MoveTarget.ALL_NEAR_ENEMIES),
new AttackMove(Moves.BUZZY_BUZZ, Type.ELECTRIC, MoveCategory.SPECIAL, 60, 100, 20, 100, 0, 7) new AttackMove(Moves.BUZZY_BUZZ, Type.ELECTRIC, MoveCategory.SPECIAL, 60, 100, 20, 100, 0, 7)
.attr(StatusEffectAttr, StatusEffect.PARALYSIS), .attr(StatusEffectAttr, StatusEffect.PARALYSIS),
new AttackMove(Moves.SIZZLY_SLIDE, Type.FIRE, MoveCategory.PHYSICAL, 60, 100, 20, 100, 0, 7) new AttackMove(Moves.SIZZLY_SLIDE, Type.FIRE, MoveCategory.PHYSICAL, 60, 100, 20, 100, 0, 7)
@ -10492,10 +10659,12 @@ export function initMoves() {
.condition((user, target, move) => user.getTag(TrappedTag)?.sourceMove !== Moves.NO_RETREAT), // fails if the user is currently trapped by No Retreat .condition((user, target, move) => user.getTag(TrappedTag)?.sourceMove !== Moves.NO_RETREAT), // fails if the user is currently trapped by No Retreat
new StatusMove(Moves.TAR_SHOT, Type.ROCK, 100, 15, -1, 0, 8) new StatusMove(Moves.TAR_SHOT, Type.ROCK, 100, 15, -1, 0, 8)
.attr(StatStageChangeAttr, [ Stat.SPD ], -1) .attr(StatStageChangeAttr, [ Stat.SPD ], -1)
.attr(AddBattlerTagAttr, BattlerTagType.TAR_SHOT, false), .attr(AddBattlerTagAttr, BattlerTagType.TAR_SHOT, false)
.reflectable(),
new StatusMove(Moves.MAGIC_POWDER, Type.PSYCHIC, 100, 20, -1, 0, 8) new StatusMove(Moves.MAGIC_POWDER, Type.PSYCHIC, 100, 20, -1, 0, 8)
.attr(ChangeTypeAttr, Type.PSYCHIC) .attr(ChangeTypeAttr, Type.PSYCHIC)
.powderMove(), .powderMove()
.reflectable(),
new AttackMove(Moves.DRAGON_DARTS, Type.DRAGON, MoveCategory.PHYSICAL, 50, 100, 10, -1, 0, 8) new AttackMove(Moves.DRAGON_DARTS, Type.DRAGON, MoveCategory.PHYSICAL, 50, 100, 10, -1, 0, 8)
.attr(MultiHitAttr, MultiHitType._2) .attr(MultiHitAttr, MultiHitType._2)
.makesContact(false) .makesContact(false)
@ -10672,6 +10841,7 @@ export function initMoves() {
.makesContact(false), .makesContact(false),
new StatusMove(Moves.CORROSIVE_GAS, Type.POISON, 100, 40, -1, 0, 8) new StatusMove(Moves.CORROSIVE_GAS, Type.POISON, 100, 40, -1, 0, 8)
.target(MoveTarget.ALL_NEAR_OTHERS) .target(MoveTarget.ALL_NEAR_OTHERS)
.reflectable()
.unimplemented(), .unimplemented(),
new StatusMove(Moves.COACHING, Type.FIGHTING, -1, 10, -1, 0, 8) new StatusMove(Moves.COACHING, Type.FIGHTING, -1, 10, -1, 0, 8)
.attr(StatStageChangeAttr, [ Stat.ATK, Stat.DEF ], 1) .attr(StatStageChangeAttr, [ Stat.ATK, Stat.DEF ], 1)
@ -10906,8 +11076,7 @@ export function initMoves() {
.attr(TeraMoveCategoryAttr) .attr(TeraMoveCategoryAttr)
.attr(TeraBlastTypeAttr) .attr(TeraBlastTypeAttr)
.attr(TeraBlastPowerAttr) .attr(TeraBlastPowerAttr)
.attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], -1, true, { condition: (user, target, move) => user.isTerastallized() && user.isOfType(Type.STELLAR) }) .attr(StatStageChangeAttr, [ Stat.ATK, Stat.SPATK ], -1, true, { condition: (user, target, move) => user.isTerastallized() && user.isOfType(Type.STELLAR) }),
.partial(), /** Does not ignore abilities that affect stats, relevant in determining the move's category {@see TeraMoveCategoryAttr} */
new SelfStatusMove(Moves.SILK_TRAP, Type.BUG, -1, 10, -1, 4, 9) new SelfStatusMove(Moves.SILK_TRAP, Type.BUG, -1, 10, -1, 4, 9)
.attr(ProtectAttr, BattlerTagType.SILK_TRAP) .attr(ProtectAttr, BattlerTagType.SILK_TRAP)
.condition(failIfLastCondition), .condition(failIfLastCondition),
@ -10917,8 +11086,7 @@ export function initMoves() {
.attr(ConfuseAttr) .attr(ConfuseAttr)
.recklessMove(), .recklessMove(),
new AttackMove(Moves.LAST_RESPECTS, Type.GHOST, MoveCategory.PHYSICAL, 50, 100, 10, -1, 0, 9) new AttackMove(Moves.LAST_RESPECTS, Type.GHOST, MoveCategory.PHYSICAL, 50, 100, 10, -1, 0, 9)
.partial() // Counter resets every wave instead of on arena reset .attr(MovePowerMultiplierAttr, (user, target, move) => 1 + Math.min(user.isPlayer() ? globalScene.arena.playerFaints : globalScene.currentBattle.enemyFaints, 100))
.attr(MovePowerMultiplierAttr, (user, target, move) => 1 + Math.min(user.isPlayer() ? globalScene.currentBattle.playerFaints : globalScene.currentBattle.enemyFaints, 100))
.makesContact(false), .makesContact(false),
new AttackMove(Moves.LUMINA_CRASH, Type.PSYCHIC, MoveCategory.SPECIAL, 80, 100, 10, 100, 0, 9) new AttackMove(Moves.LUMINA_CRASH, Type.PSYCHIC, MoveCategory.SPECIAL, 80, 100, 10, 100, 0, 9)
.attr(StatStageChangeAttr, [ Stat.SPDEF ], -2), .attr(StatStageChangeAttr, [ Stat.SPDEF ], -2),

View File

@ -41,8 +41,6 @@ export const FunAndGamesEncounter: MysteryEncounter =
.withSceneWaveRangeRequirement(...CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES) .withSceneWaveRangeRequirement(...CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES)
.withSceneRequirement(new MoneyRequirement(0, 1.5)) // Cost equal to 1 Max Potion to play .withSceneRequirement(new MoneyRequirement(0, 1.5)) // Cost equal to 1 Max Potion to play
.withAutoHideIntroVisuals(false) .withAutoHideIntroVisuals(false)
// Allows using move without a visible enemy pokemon
.withBattleAnimationsWithoutTargets(true)
// The Wobbuffet won't use moves // The Wobbuffet won't use moves
.withSkipEnemyBattleTurns(true) .withSkipEnemyBattleTurns(true)
// Will skip COMMAND selection menu and go straight to FIGHT (move select) menu // Will skip COMMAND selection menu and go straight to FIGHT (move select) menu

View File

@ -315,7 +315,7 @@ async function summonSafariPokemon() {
const ivScannerModifier = globalScene.findModifier(m => m instanceof IvScannerModifier); const ivScannerModifier = globalScene.findModifier(m => m instanceof IvScannerModifier);
if (ivScannerModifier) { if (ivScannerModifier) {
globalScene.pushPhase(new ScanIvsPhase(pokemon.getBattlerIndex(), Math.min(ivScannerModifier.getStackCount() * 2, 6))); globalScene.pushPhase(new ScanIvsPhase(pokemon.getBattlerIndex()));
} }
} }

View File

@ -887,16 +887,21 @@ export function getRandomEncounterSpecies(level: number, isBoss: boolean = false
let bossSpecies: PokemonSpecies; let bossSpecies: PokemonSpecies;
let isEventEncounter = false; let isEventEncounter = false;
const eventEncounters = globalScene.eventManager.getEventEncounters(); const eventEncounters = globalScene.eventManager.getEventEncounters();
let formIndex;
if (eventEncounters.length > 0 && randSeedInt(2) === 1) { if (eventEncounters.length > 0 && randSeedInt(2) === 1) {
const eventEncounter = randSeedItem(eventEncounters); const eventEncounter = randSeedItem(eventEncounters);
const levelSpecies = getPokemonSpecies(eventEncounter.species).getWildSpeciesForLevel(level, !eventEncounter.blockEvolution, isBoss, globalScene.gameMode); const levelSpecies = getPokemonSpecies(eventEncounter.species).getWildSpeciesForLevel(level, !eventEncounter.blockEvolution, isBoss, globalScene.gameMode);
isEventEncounter = true; isEventEncounter = true;
bossSpecies = getPokemonSpecies(levelSpecies); bossSpecies = getPokemonSpecies(levelSpecies);
formIndex = eventEncounter.formIndex;
} else { } else {
bossSpecies = globalScene.arena.randomSpecies(globalScene.currentBattle.waveIndex, level, 0, getPartyLuckValue(globalScene.getPlayerParty()), isBoss); bossSpecies = globalScene.arena.randomSpecies(globalScene.currentBattle.waveIndex, level, 0, getPartyLuckValue(globalScene.getPlayerParty()), isBoss);
} }
const ret = new EnemyPokemon(bossSpecies, level, TrainerSlot.NONE, isBoss); const ret = new EnemyPokemon(bossSpecies, level, TrainerSlot.NONE, isBoss);
if (formIndex) {
ret.formIndex = formIndex;
}
//Reroll shiny for event encounters //Reroll shiny for event encounters
if (isEventEncounter && !ret.shiny) { if (isEventEncounter && !ret.shiny) {

View File

@ -328,7 +328,8 @@ export class SpeciesFormChangeMoveLearnedTrigger extends SpeciesFormChangeTrigge
this.move = move; this.move = move;
this.known = known; this.known = known;
const moveKey = Moves[this.move].split("_").filter(f => f).map((f, i) => i ? `${f[0]}${f.slice(1).toLowerCase()}` : f.toLowerCase()).join("") as unknown as string; const moveKey = Moves[this.move].split("_").filter(f => f).map((f, i) => i ? `${f[0]}${f.slice(1).toLowerCase()}` : f.toLowerCase()).join("") as unknown as string;
this.description = i18next.t("pokemonEvolutions:Forms.moveLearned", { move: i18next.t(`move:${moveKey}.name`) }); this.description = known ? i18next.t("pokemonEvolutions:Forms.moveLearned", { move: i18next.t(`move:${moveKey}.name`) }) :
i18next.t("pokemonEvolutions:Forms.moveForgotten", { move: i18next.t(`move:${moveKey}.name`) });
} }
canChange(pokemon: Pokemon): boolean { canChange(pokemon: Pokemon): boolean {

Some files were not shown because too many files have changed in this diff Show More