diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index e678a297852..07aed42a5a7 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -41,4 +41,6 @@ jobs:
files: |
https://pokerogue.net/
https://pokerogue.net/index.html
- https://pokerogue.net/manifest.json
\ No newline at end of file
+ https://pokerogue.net/manifest.json
+ https://pokerogue.net/manifest.webmanifest
+ https://pokerogue.net/service-worker.js
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 4cf3196a72b..55f9203a81d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,5 +33,6 @@ public/images/pokemon/icons/input/output/*
public/images/character/*/
src/data/battle-anim-raw-data*.ts
src/data/battle-anim-data.ts
+src/overrides.ts
coverage
\ No newline at end of file
diff --git a/index.css b/index.css
index 9a507ad6766..dd47387adee 100644
--- a/index.css
+++ b/index.css
@@ -150,6 +150,10 @@ body {
display: none;
}
+#touchControls:not([data-ui-mode='COMMAND']):not([data-ui-mode='FIGHT']):not([data-ui-mode='BALL']):not([data-ui-mode='TARGET_SELECT']) #apad #apadStats {
+ display: none;
+}
+
#apad .apadRectBtnContainer + .apadSqBtnContainer {
top: calc(var(--controls-size) * -1.9);
left: calc(var(--controls-size) * -0.9);
diff --git a/index.html b/index.html
index bd316330a99..177a92efce6 100644
--- a/index.html
+++ b/index.html
@@ -74,6 +74,9 @@
V
+
+ C
+
diff --git a/package-lock.json b/package-lock.json
index 5521dcc86a8..7db944a4533 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,16 +1,17 @@
{
"name": "pokemon-rogue-battle",
- "version": "1.0.1",
+ "version": "1.0.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "pokemon-rogue-battle",
- "version": "1.0.1",
+ "version": "1.0.4",
"dependencies": {
"@material/material-color-utilities": "^0.2.7",
"crypto-js": "^4.2.0",
"i18next": "^23.11.1",
+ "i18next-browser-languagedetector": "^7.2.1",
"json-stable-stringify": "^1.1.0",
"phaser": "^3.70.0",
"phaser3-rex-plugins": "^1.1.84"
@@ -2772,6 +2773,14 @@
"@babel/runtime": "^7.23.2"
}
},
+ "node_modules/i18next-browser-languagedetector": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.1.tgz",
+ "integrity": "sha512-h/pM34bcH6tbz8WgGXcmWauNpQupCGr25XPp9cZwZInR9XHSjIFDYp1SIok7zSPsTOMxdvuLyu86V+g2Kycnfw==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.2"
+ }
+ },
"node_modules/i18next-http-backend": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.5.0.tgz",
diff --git a/package.json b/package.json
index 47408b13730..d5ffb651f54 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "pokemon-rogue-battle",
"private": true,
- "version": "1.0.3",
+ "version": "1.0.4",
"type": "module",
"scripts": {
"start": "vite",
@@ -31,6 +31,7 @@
"@material/material-color-utilities": "^0.2.7",
"crypto-js": "^4.2.0",
"i18next": "^23.11.1",
+ "i18next-browser-languagedetector": "^7.2.1",
"json-stable-stringify": "^1.1.0",
"phaser": "^3.70.0",
"phaser3-rex-plugins": "^1.1.84"
diff --git a/public/audio/se/shing.wav b/public/audio/se/shing.wav
new file mode 100644
index 00000000000..e693cb207fc
Binary files /dev/null and b/public/audio/se/shing.wav differ
diff --git a/public/images/pbinfo_stat_numbers.json b/public/images/pbinfo_stat_numbers.json
new file mode 100644
index 00000000000..32170690aa0
--- /dev/null
+++ b/public/images/pbinfo_stat_numbers.json
@@ -0,0 +1,293 @@
+{
+ "textures": [
+ {
+ "image": "pbinfo_stat_numbers.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 117,
+ "h": 8
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "+1",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "+2",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 9,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "+3",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 18,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "+4",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 27,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "+5",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 36,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "+6",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 45,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-1",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 54,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-2",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 63,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-3",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 72,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-4",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 81,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-5",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 90,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-6",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 99,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "0",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 108,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:794aa4af3291db5abd8a2667626c1998:1a6706ad557b92f9bf099c23e02af4a6:6537c634087637bb27e8a1edb1ee2e35$"
+ }
+}
diff --git a/public/images/pokemon/676-dandy.png b/public/images/pokemon/676-dandy.png
index f7303f7ec04..738b9eaec07 100644
Binary files a/public/images/pokemon/676-dandy.png and b/public/images/pokemon/676-dandy.png differ
diff --git a/public/images/pokemon/676-debutante.png b/public/images/pokemon/676-debutante.png
index b33fb39c8a8..2be51b49d14 100644
Binary files a/public/images/pokemon/676-debutante.png and b/public/images/pokemon/676-debutante.png differ
diff --git a/public/images/pokemon/676-diamond.png b/public/images/pokemon/676-diamond.png
index 1bd0628a543..5662825df7d 100644
Binary files a/public/images/pokemon/676-diamond.png and b/public/images/pokemon/676-diamond.png differ
diff --git a/public/images/pokemon/676-heart.png b/public/images/pokemon/676-heart.png
index de6d3ebb7f6..2747c376bca 100644
Binary files a/public/images/pokemon/676-heart.png and b/public/images/pokemon/676-heart.png differ
diff --git a/public/images/pokemon/676-kabuki.png b/public/images/pokemon/676-kabuki.png
index c402730a5e8..1a9a2ad1689 100644
Binary files a/public/images/pokemon/676-kabuki.png and b/public/images/pokemon/676-kabuki.png differ
diff --git a/public/images/pokemon/676-la-reine.png b/public/images/pokemon/676-la-reine.png
index b9cf78ac6a6..1ca19430e66 100644
Binary files a/public/images/pokemon/676-la-reine.png and b/public/images/pokemon/676-la-reine.png differ
diff --git a/public/images/pokemon/676-matron.png b/public/images/pokemon/676-matron.png
index 4f88ee06a1e..0ea64fcd55e 100644
Binary files a/public/images/pokemon/676-matron.png and b/public/images/pokemon/676-matron.png differ
diff --git a/public/images/pokemon/676-pharaoh.png b/public/images/pokemon/676-pharaoh.png
index 6bcc2914010..d3019440c8a 100644
Binary files a/public/images/pokemon/676-pharaoh.png and b/public/images/pokemon/676-pharaoh.png differ
diff --git a/public/images/pokemon/676-star.png b/public/images/pokemon/676-star.png
index 540ba4a2dba..de93346cb74 100644
Binary files a/public/images/pokemon/676-star.png and b/public/images/pokemon/676-star.png differ
diff --git a/public/images/pokemon/869-caramel-swirl.json b/public/images/pokemon/869-caramel-swirl.json
new file mode 100644
index 00000000000..fb8f0afb857
--- /dev/null
+++ b/public/images/pokemon/869-caramel-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-caramel-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.5,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 28,
+ "y": 20,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:e565b3b962f894b4de5291159fced6f2:dec57ba4f1836b6834da2da4c98c442a:a9efacddd6da069c39eca521bf0c5c93$"
+ }
+}
diff --git a/public/images/pokemon/869-caramel-swirl.png b/public/images/pokemon/869-caramel-swirl.png
new file mode 100644
index 00000000000..c6bf967942f
Binary files /dev/null and b/public/images/pokemon/869-caramel-swirl.png differ
diff --git a/public/images/pokemon/869-lemon-cream.json b/public/images/pokemon/869-lemon-cream.json
new file mode 100644
index 00000000000..419a5c70a55
--- /dev/null
+++ b/public/images/pokemon/869-lemon-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-lemon-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.5,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 28,
+ "y": 20,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:8a99ba9bf3bfb93bba7c6010553d9e0e:b231a3962960f61ce4d970d95bde3f3c:0284bb2fb44231f3756d5e41407b29dc$"
+ }
+}
diff --git a/public/images/pokemon/869-lemon-cream.png b/public/images/pokemon/869-lemon-cream.png
new file mode 100644
index 00000000000..88e238ece14
Binary files /dev/null and b/public/images/pokemon/869-lemon-cream.png differ
diff --git a/public/images/pokemon/869-matcha-cream.json b/public/images/pokemon/869-matcha-cream.json
new file mode 100644
index 00000000000..aa1e47ae680
--- /dev/null
+++ b/public/images/pokemon/869-matcha-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-matcha-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.5,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 28,
+ "y": 20,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:713d1a6f0fbac3236c31960e722f4425:29a82de035ed4f33426b4bb6943c4036:3607dee150b69bb8409f07bf4b436c27$"
+ }
+}
diff --git a/public/images/pokemon/869-matcha-cream.png b/public/images/pokemon/869-matcha-cream.png
new file mode 100644
index 00000000000..5e282236ceb
Binary files /dev/null and b/public/images/pokemon/869-matcha-cream.png differ
diff --git a/public/images/pokemon/869-mint-cream.json b/public/images/pokemon/869-mint-cream.json
new file mode 100644
index 00000000000..3d103861c5c
--- /dev/null
+++ b/public/images/pokemon/869-mint-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-mint-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.5,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 28,
+ "y": 20,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:5deaa7830e8cbf001dce6c800a9e3da2:4c9255c2ad6d33fc00a90e447fb8a344:5a3d349b5aaedd43ed9c9acbc0c8652a$"
+ }
+}
diff --git a/public/images/pokemon/869-mint-cream.png b/public/images/pokemon/869-mint-cream.png
new file mode 100644
index 00000000000..d67741eaa57
Binary files /dev/null and b/public/images/pokemon/869-mint-cream.png differ
diff --git a/public/images/pokemon/869-rainbow-swirl.json b/public/images/pokemon/869-rainbow-swirl.json
new file mode 100644
index 00000000000..b3ac889bcf4
--- /dev/null
+++ b/public/images/pokemon/869-rainbow-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-rainbow-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.5,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 28,
+ "y": 20,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:1a4d1bc0283fdcf9704523ff9c304937:8122f937b67cb25a772bdb63688456b7:5efb62c1b2c8ccb825172755b6a5956b$"
+ }
+}
diff --git a/public/images/pokemon/869-rainbow-swirl.png b/public/images/pokemon/869-rainbow-swirl.png
new file mode 100644
index 00000000000..2e75b933316
Binary files /dev/null and b/public/images/pokemon/869-rainbow-swirl.png differ
diff --git a/public/images/pokemon/869-ruby-cream.json b/public/images/pokemon/869-ruby-cream.json
new file mode 100644
index 00000000000..f7af720c93b
--- /dev/null
+++ b/public/images/pokemon/869-ruby-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-ruby-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.5,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 28,
+ "y": 20,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:e03bb56ed3208e982eb0bec819d53bf6:2c86ae79dcda2aeecdcf0c025c16d3c3:36b2afa6f1e593bd875572a5eaa54a8f$"
+ }
+}
diff --git a/public/images/pokemon/869-ruby-cream.png b/public/images/pokemon/869-ruby-cream.png
new file mode 100644
index 00000000000..c699e109e08
Binary files /dev/null and b/public/images/pokemon/869-ruby-cream.png differ
diff --git a/public/images/pokemon/869-ruby-swirl.json b/public/images/pokemon/869-ruby-swirl.json
new file mode 100644
index 00000000000..8773a4a9b80
--- /dev/null
+++ b/public/images/pokemon/869-ruby-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-ruby-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.5,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 28,
+ "y": 20,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:3c79af909f9735d7ece0527b789506f2:0b973ea05d9bc875560323eb9df5efe3:ea7e9be6cfcdb9bb39d201b2ab117eae$"
+ }
+}
diff --git a/public/images/pokemon/869-ruby-swirl.png b/public/images/pokemon/869-ruby-swirl.png
new file mode 100644
index 00000000000..3ce92c3e363
Binary files /dev/null and b/public/images/pokemon/869-ruby-swirl.png differ
diff --git a/public/images/pokemon/869-salted-cream.json b/public/images/pokemon/869-salted-cream.json
new file mode 100644
index 00000000000..b812a0c9823
--- /dev/null
+++ b/public/images/pokemon/869-salted-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-salted-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.5,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 28,
+ "y": 20,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:bb169ea1db5dad0a39dcd54df8356c06:608e3745adcb907d1f382e251ad807f4:6e5c7cbfd1699b5560a39643a258e386$"
+ }
+}
diff --git a/public/images/pokemon/869-salted-cream.png b/public/images/pokemon/869-salted-cream.png
new file mode 100644
index 00000000000..d8f495476fe
Binary files /dev/null and b/public/images/pokemon/869-salted-cream.png differ
diff --git a/public/images/pokemon/back/869-caramel-swirl.json b/public/images/pokemon/back/869-caramel-swirl.json
new file mode 100644
index 00000000000..edf2b5a9a76
--- /dev/null
+++ b/public/images/pokemon/back/869-caramel-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-caramel-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.333,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 30,
+ "y": 20,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:2e4ddfde96ab312ce7d94315e5d95a9c:7f74b65259ec1e4bcb1f62f02643d8a7:a9efacddd6da069c39eca521bf0c5c93$"
+ }
+}
diff --git a/public/images/pokemon/back/869-caramel-swirl.png b/public/images/pokemon/back/869-caramel-swirl.png
new file mode 100644
index 00000000000..74556910bc1
Binary files /dev/null and b/public/images/pokemon/back/869-caramel-swirl.png differ
diff --git a/public/images/pokemon/back/869-lemon-cream.json b/public/images/pokemon/back/869-lemon-cream.json
new file mode 100644
index 00000000000..7e8eb3f1f08
--- /dev/null
+++ b/public/images/pokemon/back/869-lemon-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-lemon-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.333,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 30,
+ "y": 20,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:003640cdcb017af6d6fb7cce7ae5e1df:4dc2b3e45490e0868ac99d9aa7102c07:0284bb2fb44231f3756d5e41407b29dc$"
+ }
+}
diff --git a/public/images/pokemon/back/869-lemon-cream.png b/public/images/pokemon/back/869-lemon-cream.png
new file mode 100644
index 00000000000..749e7c7aa65
Binary files /dev/null and b/public/images/pokemon/back/869-lemon-cream.png differ
diff --git a/public/images/pokemon/back/869-matcha-cream.json b/public/images/pokemon/back/869-matcha-cream.json
new file mode 100644
index 00000000000..261272c0247
--- /dev/null
+++ b/public/images/pokemon/back/869-matcha-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-matcha-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.333,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 30,
+ "y": 20,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:78c1fa20bd0f496a72dacd28367a66ad:96033ef5b7aeeb9456771109824bd27d:3607dee150b69bb8409f07bf4b436c27$"
+ }
+}
diff --git a/public/images/pokemon/back/869-matcha-cream.png b/public/images/pokemon/back/869-matcha-cream.png
new file mode 100644
index 00000000000..32570610f13
Binary files /dev/null and b/public/images/pokemon/back/869-matcha-cream.png differ
diff --git a/public/images/pokemon/back/869-mint-cream.json b/public/images/pokemon/back/869-mint-cream.json
new file mode 100644
index 00000000000..23db1b920ea
--- /dev/null
+++ b/public/images/pokemon/back/869-mint-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-mint-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.333,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 30,
+ "y": 20,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:567b2cbeb4dd05e9ea75a9745678a661:daa4e8bd833c1f1b8fcef7664611a23f:5a3d349b5aaedd43ed9c9acbc0c8652a$"
+ }
+}
diff --git a/public/images/pokemon/back/869-mint-cream.png b/public/images/pokemon/back/869-mint-cream.png
new file mode 100644
index 00000000000..ec1976d3568
Binary files /dev/null and b/public/images/pokemon/back/869-mint-cream.png differ
diff --git a/public/images/pokemon/back/869-rainbow-swirl.json b/public/images/pokemon/back/869-rainbow-swirl.json
new file mode 100644
index 00000000000..f19a4443388
--- /dev/null
+++ b/public/images/pokemon/back/869-rainbow-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-rainbow-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.333,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 30,
+ "y": 20,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:3be6ab13976cde5a336b4186625bf386:e472d87a989050125ac960a9e53d8c77:5efb62c1b2c8ccb825172755b6a5956b$"
+ }
+}
diff --git a/public/images/pokemon/back/869-rainbow-swirl.png b/public/images/pokemon/back/869-rainbow-swirl.png
new file mode 100644
index 00000000000..5454202ef27
Binary files /dev/null and b/public/images/pokemon/back/869-rainbow-swirl.png differ
diff --git a/public/images/pokemon/back/869-ruby-cream.json b/public/images/pokemon/back/869-ruby-cream.json
new file mode 100644
index 00000000000..ac2e4e0fa1d
--- /dev/null
+++ b/public/images/pokemon/back/869-ruby-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-ruby-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.333,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 30,
+ "y": 20,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:5e1a2e975f94fce84da322e45069c702:68247ca18f9dd3e2bc269dc772ad069d:36b2afa6f1e593bd875572a5eaa54a8f$"
+ }
+}
diff --git a/public/images/pokemon/back/869-ruby-cream.png b/public/images/pokemon/back/869-ruby-cream.png
new file mode 100644
index 00000000000..00cbd472026
Binary files /dev/null and b/public/images/pokemon/back/869-ruby-cream.png differ
diff --git a/public/images/pokemon/back/869-ruby-swirl.json b/public/images/pokemon/back/869-ruby-swirl.json
new file mode 100644
index 00000000000..ac2d6213f18
--- /dev/null
+++ b/public/images/pokemon/back/869-ruby-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-ruby-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.333,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 30,
+ "y": 20,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:74597d1dd20480b7437d63ffff36fdc6:712fef9349381ad34ea1cf553353507e:ea7e9be6cfcdb9bb39d201b2ab117eae$"
+ }
+}
diff --git a/public/images/pokemon/back/869-ruby-swirl.png b/public/images/pokemon/back/869-ruby-swirl.png
new file mode 100644
index 00000000000..96f91ba6c52
Binary files /dev/null and b/public/images/pokemon/back/869-ruby-swirl.png differ
diff --git a/public/images/pokemon/back/869-salted-cream.json b/public/images/pokemon/back/869-salted-cream.json
new file mode 100644
index 00000000000..995a0769f15
--- /dev/null
+++ b/public/images/pokemon/back/869-salted-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-salted-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 0.333,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 96,
+ "h": 96
+ },
+ "spriteSourceSize": {
+ "x": 30,
+ "y": 20,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:e2389a610f198709cf6d31d9265f1dec:150abb49e4602321790850b291b4a7fb:6e5c7cbfd1699b5560a39643a258e386$"
+ }
+}
diff --git a/public/images/pokemon/back/869-salted-cream.png b/public/images/pokemon/back/869-salted-cream.png
new file mode 100644
index 00000000000..7b81e6e7fa3
Binary files /dev/null and b/public/images/pokemon/back/869-salted-cream.png differ
diff --git a/public/images/pokemon/back/shiny/676-dandy.json b/public/images/pokemon/back/shiny/676-dandy.json
index c2bbb272d46..b13560feb7d 100644
--- a/public/images/pokemon/back/shiny/676-dandy.json
+++ b/public/images/pokemon/back/shiny/676-dandy.json
@@ -4,30 +4,30 @@
"image": "676-dandy.png",
"format": "RGBA8888",
"size": {
- "w": 72,
- "h": 72
+ "w": 66,
+ "h": 66
},
- "scale": 1,
+ "scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 62,
- "h": 72
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 62,
- "h": 72
+ "x": 20,
+ "y": 14,
+ "w": 56,
+ "h": 66
},
"frame": {
"x": 0,
"y": 0,
- "w": 62,
- "h": 72
+ "w": 56,
+ "h": 66
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:9a72775f436bbda574bf3721630310fb:f01538e7a19ca3d0d2fea48cd27d8a4c:b5a287256e260744fe6660dc2ceefd11$"
+ "smartupdate": "$TexturePacker:SmartUpdate:30c2972a226f8e360e323bea40a8005e:232a9bbcc4dba00a033204f1ec06cffd:b5a287256e260744fe6660dc2ceefd11$"
}
}
diff --git a/public/images/pokemon/back/shiny/676-dandy.png b/public/images/pokemon/back/shiny/676-dandy.png
index 634a2b0c8a9..f8c77d88326 100644
Binary files a/public/images/pokemon/back/shiny/676-dandy.png and b/public/images/pokemon/back/shiny/676-dandy.png differ
diff --git a/public/images/pokemon/back/shiny/676-debutante.json b/public/images/pokemon/back/shiny/676-debutante.json
index b1067eed9f9..0469fb6702b 100644
--- a/public/images/pokemon/back/shiny/676-debutante.json
+++ b/public/images/pokemon/back/shiny/676-debutante.json
@@ -4,30 +4,30 @@
"image": "676-debutante.png",
"format": "RGBA8888",
"size": {
- "w": 68,
- "h": 68
+ "w": 62,
+ "h": 62
},
- "scale": 1,
+ "scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 57,
- "h": 68
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 57,
- "h": 68
+ "x": 25,
+ "y": 18,
+ "w": 51,
+ "h": 62
},
"frame": {
"x": 0,
"y": 0,
- "w": 57,
- "h": 68
+ "w": 51,
+ "h": 62
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:6d038d8d188d6e545741353c2dd5b812:6f39eb82deb32d251df708f5d4edc9f1:bf2f862a1c8881133f9f3ffbf44602fa$"
+ "smartupdate": "$TexturePacker:SmartUpdate:5a68081e37dfebc3935ecf4a4fbee3ad:71cbee6966c08512b0617eba3ce34a49:bf2f862a1c8881133f9f3ffbf44602fa$"
}
}
diff --git a/public/images/pokemon/back/shiny/676-debutante.png b/public/images/pokemon/back/shiny/676-debutante.png
index 3a7a0d7abc2..965e0aaf86d 100644
Binary files a/public/images/pokemon/back/shiny/676-debutante.png and b/public/images/pokemon/back/shiny/676-debutante.png differ
diff --git a/public/images/pokemon/back/shiny/676-diamond.json b/public/images/pokemon/back/shiny/676-diamond.json
index 2df54c70a2d..50319863eb3 100644
--- a/public/images/pokemon/back/shiny/676-diamond.json
+++ b/public/images/pokemon/back/shiny/676-diamond.json
@@ -4,30 +4,30 @@
"image": "676-diamond.png",
"format": "RGBA8888",
"size": {
- "w": 74,
- "h": 74
+ "w": 68,
+ "h": 68
},
- "scale": 1,
+ "scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 51,
- "h": 74
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 51,
- "h": 74
+ "x": 27,
+ "y": 12,
+ "w": 45,
+ "h": 68
},
"frame": {
"x": 0,
"y": 0,
- "w": 51,
- "h": 74
+ "w": 45,
+ "h": 68
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:6e2189160ebb9fff02e9a051ee296d91:47037a1746645a551e31781cb8262e1f:88c467fc09249b0d2f579d44eacd528d$"
+ "smartupdate": "$TexturePacker:SmartUpdate:2d32af44d56592301808b561e6fa22f6:c70b6710f9c7ebb5268979a777193386:88c467fc09249b0d2f579d44eacd528d$"
}
}
diff --git a/public/images/pokemon/back/shiny/676-diamond.png b/public/images/pokemon/back/shiny/676-diamond.png
index d737c62b507..9ea8ff97838 100644
Binary files a/public/images/pokemon/back/shiny/676-diamond.png and b/public/images/pokemon/back/shiny/676-diamond.png differ
diff --git a/public/images/pokemon/back/shiny/676-heart.json b/public/images/pokemon/back/shiny/676-heart.json
index 6ebd9b679e9..6202b4b2050 100644
--- a/public/images/pokemon/back/shiny/676-heart.json
+++ b/public/images/pokemon/back/shiny/676-heart.json
@@ -4,30 +4,30 @@
"image": "676-heart.png",
"format": "RGBA8888",
"size": {
- "w": 71,
- "h": 71
+ "w": 65,
+ "h": 65
},
- "scale": 1,
+ "scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 52,
- "h": 71
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 52,
- "h": 71
+ "x": 26,
+ "y": 15,
+ "w": 46,
+ "h": 65
},
"frame": {
"x": 0,
"y": 0,
- "w": 52,
- "h": 71
+ "w": 46,
+ "h": 65
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:bd54cfc49b95a12709696441044b115c:dce25f0e6474cad17709f18c96ffb3e5:e11d4dd16bff2ef69bc5ca683c44ca7c$"
+ "smartupdate": "$TexturePacker:SmartUpdate:e936d451ba0b36434d6444cb1b80f4d9:0b0d0b49e11fcc790a20130e3ab18ca5:e11d4dd16bff2ef69bc5ca683c44ca7c$"
}
}
diff --git a/public/images/pokemon/back/shiny/676-heart.png b/public/images/pokemon/back/shiny/676-heart.png
index fac541f4438..e44c8218aba 100644
Binary files a/public/images/pokemon/back/shiny/676-heart.png and b/public/images/pokemon/back/shiny/676-heart.png differ
diff --git a/public/images/pokemon/back/shiny/676-kabuki.json b/public/images/pokemon/back/shiny/676-kabuki.json
index 140e74be3b3..87bcba2e93c 100644
--- a/public/images/pokemon/back/shiny/676-kabuki.json
+++ b/public/images/pokemon/back/shiny/676-kabuki.json
@@ -4,30 +4,30 @@
"image": "676-kabuki.png",
"format": "RGBA8888",
"size": {
- "w": 71,
- "h": 71
+ "w": 65,
+ "h": 65
},
- "scale": 1,
+ "scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 55,
- "h": 71
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 55,
- "h": 71
+ "x": 23,
+ "y": 15,
+ "w": 49,
+ "h": 65
},
"frame": {
"x": 0,
"y": 0,
- "w": 55,
- "h": 71
+ "w": 49,
+ "h": 65
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:5bd5ad9678c59b2b1d85a6af103ba1ba:2f6c7f2792f64728b478333fc2c65138:c3cad56aa65d2ee971ceebc435a14ee6$"
+ "smartupdate": "$TexturePacker:SmartUpdate:517d96cd6baa5b7616a51e8c4fed7a55:0a0f239ab3df60459410fab5eba8a4e6:c3cad56aa65d2ee971ceebc435a14ee6$"
}
}
diff --git a/public/images/pokemon/back/shiny/676-kabuki.png b/public/images/pokemon/back/shiny/676-kabuki.png
index bbb1a776ece..e81aada06bd 100644
Binary files a/public/images/pokemon/back/shiny/676-kabuki.png and b/public/images/pokemon/back/shiny/676-kabuki.png differ
diff --git a/public/images/pokemon/back/shiny/676-la-reine.json b/public/images/pokemon/back/shiny/676-la-reine.json
index 88ddfdc23ac..a5b408946b3 100644
--- a/public/images/pokemon/back/shiny/676-la-reine.json
+++ b/public/images/pokemon/back/shiny/676-la-reine.json
@@ -4,30 +4,30 @@
"image": "676-la-reine.png",
"format": "RGBA8888",
"size": {
- "w": 69,
- "h": 69
+ "w": 63,
+ "h": 63
},
- "scale": 1,
+ "scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 54,
- "h": 69
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 54,
- "h": 69
+ "x": 24,
+ "y": 17,
+ "w": 48,
+ "h": 63
},
"frame": {
"x": 0,
"y": 0,
- "w": 54,
- "h": 69
+ "w": 48,
+ "h": 63
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:e01297ffc2dd40460e87b64750997ca6:3261fa54b4c9574937d670de782ca3e8:b99821e87dffda3297dd25a224a9029f$"
+ "smartupdate": "$TexturePacker:SmartUpdate:e2179e3c9dfa079f84af302283187a80:518e57f1e0614d1aedad1d9826def3d4:b99821e87dffda3297dd25a224a9029f$"
}
}
diff --git a/public/images/pokemon/back/shiny/676-la-reine.png b/public/images/pokemon/back/shiny/676-la-reine.png
index e4d699e5fe8..78e43bc30af 100644
Binary files a/public/images/pokemon/back/shiny/676-la-reine.png and b/public/images/pokemon/back/shiny/676-la-reine.png differ
diff --git a/public/images/pokemon/back/shiny/676-matron.json b/public/images/pokemon/back/shiny/676-matron.json
index 6bf6d37dd2a..b24180fa85e 100644
--- a/public/images/pokemon/back/shiny/676-matron.json
+++ b/public/images/pokemon/back/shiny/676-matron.json
@@ -4,30 +4,30 @@
"image": "676-matron.png",
"format": "RGBA8888",
"size": {
- "w": 68,
- "h": 68
+ "w": 62,
+ "h": 62
},
- "scale": 1,
+ "scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 53,
- "h": 68
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 53,
- "h": 68
+ "x": 26,
+ "y": 18,
+ "w": 47,
+ "h": 62
},
"frame": {
"x": 0,
"y": 0,
- "w": 53,
- "h": 68
+ "w": 47,
+ "h": 62
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:262f28877dc9ef9e7920282c4b36b8dd:18b55adc9c377d1b24d6b236e1f39177:020798583d07c479020bb0af34cf8bb6$"
+ "smartupdate": "$TexturePacker:SmartUpdate:6c9b45763eb4fedb5ec7099762f23606:884e9813686e91cf2a2cd9f51652a875:020798583d07c479020bb0af34cf8bb6$"
}
}
diff --git a/public/images/pokemon/back/shiny/676-matron.png b/public/images/pokemon/back/shiny/676-matron.png
index 1867cf457aa..0324b0baf94 100644
Binary files a/public/images/pokemon/back/shiny/676-matron.png and b/public/images/pokemon/back/shiny/676-matron.png differ
diff --git a/public/images/pokemon/back/shiny/676-pharaoh.json b/public/images/pokemon/back/shiny/676-pharaoh.json
index da483501127..9b18b969754 100644
--- a/public/images/pokemon/back/shiny/676-pharaoh.json
+++ b/public/images/pokemon/back/shiny/676-pharaoh.json
@@ -4,30 +4,30 @@
"image": "676-pharaoh.png",
"format": "RGBA8888",
"size": {
- "w": 70,
- "h": 70
+ "w": 64,
+ "h": 64
},
- "scale": 1,
+ "scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 53,
- "h": 70
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 53,
- "h": 70
+ "x": 25,
+ "y": 16,
+ "w": 47,
+ "h": 64
},
"frame": {
"x": 0,
"y": 0,
- "w": 53,
- "h": 70
+ "w": 47,
+ "h": 64
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:a5d56fc494b2194036a8d6d1d876a296:6260eeb9aa48a1047c8ec12842ac28c6:904b7ab6f57249c96beea4b5f72deb53$"
+ "smartupdate": "$TexturePacker:SmartUpdate:5143f43786377eae745a9355e5e1cc24:158aa35a349be4cf7c56820170aa4546:904b7ab6f57249c96beea4b5f72deb53$"
}
}
diff --git a/public/images/pokemon/back/shiny/676-pharaoh.png b/public/images/pokemon/back/shiny/676-pharaoh.png
index 4c139a498d2..563c2f93e21 100644
Binary files a/public/images/pokemon/back/shiny/676-pharaoh.png and b/public/images/pokemon/back/shiny/676-pharaoh.png differ
diff --git a/public/images/pokemon/back/shiny/676-star.json b/public/images/pokemon/back/shiny/676-star.json
index 1ef3e6a6111..6ca9f42e5c3 100644
--- a/public/images/pokemon/back/shiny/676-star.json
+++ b/public/images/pokemon/back/shiny/676-star.json
@@ -4,30 +4,30 @@
"image": "676-star.png",
"format": "RGBA8888",
"size": {
- "w": 72,
- "h": 72
+ "w": 66,
+ "h": 66
},
- "scale": 1,
+ "scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 54,
- "h": 72
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 54,
- "h": 72
+ "x": 24,
+ "y": 14,
+ "w": 48,
+ "h": 66
},
"frame": {
"x": 0,
"y": 0,
- "w": 54,
- "h": 72
+ "w": 48,
+ "h": 66
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:6be66775c485bf44d69f7cd44e346324:c9e3d3db02b6ea0720a20b9bbd159d79:dd7fedf66b493b0bbdef5d25e0041dd8$"
+ "smartupdate": "$TexturePacker:SmartUpdate:d9af00245cb6498c9dec7508ed563454:12f19bad174b64678e8b8be8455f2b5a:dd7fedf66b493b0bbdef5d25e0041dd8$"
}
}
diff --git a/public/images/pokemon/back/shiny/676-star.png b/public/images/pokemon/back/shiny/676-star.png
index 0ad91515631..0f388480b4f 100644
Binary files a/public/images/pokemon/back/shiny/676-star.png and b/public/images/pokemon/back/shiny/676-star.png differ
diff --git a/public/images/pokemon/back/shiny/678.json b/public/images/pokemon/back/shiny/678.json
index 98341ac8e5c..14101a5b062 100644
--- a/public/images/pokemon/back/shiny/678.json
+++ b/public/images/pokemon/back/shiny/678.json
@@ -4,219 +4,30 @@
"image": "678.png",
"format": "RGBA8888",
"size": {
- "w": 157,
- "h": 157
+ "w": 55,
+ "h": 55
},
- "scale": 1,
+ "scale": 0.333,
"frames": [
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 96,
- "h": 96
- },
- "spriteSourceSize": {
- "x": 25,
- "y": 16,
- "w": 54,
- "h": 60
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 54,
- "h": 60
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 96,
- "h": 96
- },
- "spriteSourceSize": {
- "x": 25,
- "y": 16,
- "w": 54,
- "h": 60
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 54,
- "h": 60
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 96,
- "h": 96
- },
- "spriteSourceSize": {
- "x": 25,
- "y": 15,
- "w": 53,
- "h": 61
- },
- "frame": {
- "x": 54,
- "y": 0,
- "w": 53,
- "h": 61
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 96,
- "h": 96
- },
- "spriteSourceSize": {
- "x": 25,
- "y": 15,
- "w": 53,
- "h": 61
- },
- "frame": {
- "x": 54,
- "y": 0,
- "w": 53,
- "h": 61
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 96,
- "h": 96
- },
- "spriteSourceSize": {
- "x": 24,
- "y": 15,
- "w": 52,
- "h": 61
- },
- "frame": {
- "x": 0,
- "y": 60,
- "w": 52,
- "h": 61
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 96,
- "h": 96
- },
- "spriteSourceSize": {
- "x": 24,
- "y": 15,
- "w": 52,
- "h": 61
- },
- "frame": {
- "x": 0,
- "y": 60,
- "w": 52,
- "h": 61
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 96,
- "h": 96
- },
- "spriteSourceSize": {
- "x": 26,
- "y": 16,
- "w": 54,
- "h": 60
- },
- "frame": {
- "x": 52,
- "y": 61,
- "w": 54,
- "h": 60
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 96,
- "h": 96
- },
- "spriteSourceSize": {
- "x": 24,
- "y": 17,
- "w": 51,
- "h": 59
- },
- "frame": {
- "x": 106,
- "y": 61,
- "w": 51,
- "h": 59
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 96,
- "h": 96
- },
- "spriteSourceSize": {
- "x": 24,
- "y": 17,
- "w": 51,
- "h": 59
- },
- "frame": {
- "x": 106,
- "y": 61,
- "w": 51,
- "h": 59
- }
- },
{
"filename": "0001.png",
"rotated": false,
- "trimmed": true,
+ "trimmed": false,
"sourceSize": {
"w": 96,
"h": 96
},
"spriteSourceSize": {
- "x": 23,
- "y": 19,
- "w": 50,
- "h": 57
+ "x": 25,
+ "y": 20,
+ "w": 46,
+ "h": 55
},
"frame": {
- "x": 107,
+ "x": 0,
"y": 0,
- "w": 50,
- "h": 57
+ "w": 46,
+ "h": 55
}
}
]
@@ -225,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:ab77ad452685ab677c7e5e70a386e880:27bb9b07316cb5c401e67e15e2b0f06a:887aa14e4a3a3e9141c6ae460f968db1$"
+ "smartupdate": "$TexturePacker:SmartUpdate:7b46b2656390e5ddac94370837e7cdaa:7f76286d5acb65066eff0c2532fa7fea:887aa14e4a3a3e9141c6ae460f968db1$"
}
}
diff --git a/public/images/pokemon/back/shiny/678.png b/public/images/pokemon/back/shiny/678.png
index 7bb6cfc0b88..3e9d72b066e 100644
Binary files a/public/images/pokemon/back/shiny/678.png and b/public/images/pokemon/back/shiny/678.png differ
diff --git a/public/images/pokemon/back/shiny/869-caramel-swirl.json b/public/images/pokemon/back/shiny/869-caramel-swirl.json
new file mode 100644
index 00000000000..c189169e6c0
--- /dev/null
+++ b/public/images/pokemon/back/shiny/869-caramel-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-caramel-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 36,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:9282a977590712360ae72153b51f6d19:8a8b13830aca0ac27048eddc715c72bd:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/back/shiny/869-caramel-swirl.png b/public/images/pokemon/back/shiny/869-caramel-swirl.png
new file mode 100644
index 00000000000..5407d6e73de
Binary files /dev/null and b/public/images/pokemon/back/shiny/869-caramel-swirl.png differ
diff --git a/public/images/pokemon/back/shiny/869-lemon-cream.json b/public/images/pokemon/back/shiny/869-lemon-cream.json
new file mode 100644
index 00000000000..51ea7fa51ae
--- /dev/null
+++ b/public/images/pokemon/back/shiny/869-lemon-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-lemon-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 36,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:9282a977590712360ae72153b51f6d19:8a8b13830aca0ac27048eddc715c72bd:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/back/shiny/869-lemon-cream.png b/public/images/pokemon/back/shiny/869-lemon-cream.png
new file mode 100644
index 00000000000..5407d6e73de
Binary files /dev/null and b/public/images/pokemon/back/shiny/869-lemon-cream.png differ
diff --git a/public/images/pokemon/back/shiny/869-matcha-cream.json b/public/images/pokemon/back/shiny/869-matcha-cream.json
new file mode 100644
index 00000000000..344546032ff
--- /dev/null
+++ b/public/images/pokemon/back/shiny/869-matcha-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-matcha-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 36,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:9282a977590712360ae72153b51f6d19:8a8b13830aca0ac27048eddc715c72bd:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/back/shiny/869-matcha-cream.png b/public/images/pokemon/back/shiny/869-matcha-cream.png
new file mode 100644
index 00000000000..5407d6e73de
Binary files /dev/null and b/public/images/pokemon/back/shiny/869-matcha-cream.png differ
diff --git a/public/images/pokemon/back/shiny/869-mint-cream.json b/public/images/pokemon/back/shiny/869-mint-cream.json
new file mode 100644
index 00000000000..21eaa4e016c
--- /dev/null
+++ b/public/images/pokemon/back/shiny/869-mint-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-mint-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 36,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:9282a977590712360ae72153b51f6d19:8a8b13830aca0ac27048eddc715c72bd:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/back/shiny/869-mint-cream.png b/public/images/pokemon/back/shiny/869-mint-cream.png
new file mode 100644
index 00000000000..5407d6e73de
Binary files /dev/null and b/public/images/pokemon/back/shiny/869-mint-cream.png differ
diff --git a/public/images/pokemon/back/shiny/869-rainbow-swirl.json b/public/images/pokemon/back/shiny/869-rainbow-swirl.json
new file mode 100644
index 00000000000..cb5a4c26c96
--- /dev/null
+++ b/public/images/pokemon/back/shiny/869-rainbow-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-rainbow-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 36,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:9282a977590712360ae72153b51f6d19:8a8b13830aca0ac27048eddc715c72bd:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/back/shiny/869-rainbow-swirl.png b/public/images/pokemon/back/shiny/869-rainbow-swirl.png
new file mode 100644
index 00000000000..5407d6e73de
Binary files /dev/null and b/public/images/pokemon/back/shiny/869-rainbow-swirl.png differ
diff --git a/public/images/pokemon/back/shiny/869-ruby-cream.json b/public/images/pokemon/back/shiny/869-ruby-cream.json
new file mode 100644
index 00000000000..bd3277d2dd4
--- /dev/null
+++ b/public/images/pokemon/back/shiny/869-ruby-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-ruby-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 36,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:9282a977590712360ae72153b51f6d19:8a8b13830aca0ac27048eddc715c72bd:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/back/shiny/869-ruby-cream.png b/public/images/pokemon/back/shiny/869-ruby-cream.png
new file mode 100644
index 00000000000..5407d6e73de
Binary files /dev/null and b/public/images/pokemon/back/shiny/869-ruby-cream.png differ
diff --git a/public/images/pokemon/back/shiny/869-ruby-swirl.json b/public/images/pokemon/back/shiny/869-ruby-swirl.json
new file mode 100644
index 00000000000..8a487e00562
--- /dev/null
+++ b/public/images/pokemon/back/shiny/869-ruby-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-ruby-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 36,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:9282a977590712360ae72153b51f6d19:8a8b13830aca0ac27048eddc715c72bd:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/back/shiny/869-ruby-swirl.png b/public/images/pokemon/back/shiny/869-ruby-swirl.png
new file mode 100644
index 00000000000..5407d6e73de
Binary files /dev/null and b/public/images/pokemon/back/shiny/869-ruby-swirl.png differ
diff --git a/public/images/pokemon/back/shiny/869-salted-cream.json b/public/images/pokemon/back/shiny/869-salted-cream.json
new file mode 100644
index 00000000000..e3aeb125b45
--- /dev/null
+++ b/public/images/pokemon/back/shiny/869-salted-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-salted-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 36,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 36,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:9282a977590712360ae72153b51f6d19:8a8b13830aca0ac27048eddc715c72bd:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/back/shiny/869-salted-cream.png b/public/images/pokemon/back/shiny/869-salted-cream.png
new file mode 100644
index 00000000000..5407d6e73de
Binary files /dev/null and b/public/images/pokemon/back/shiny/869-salted-cream.png differ
diff --git a/public/images/pokemon/icons/869s-caramel-swirl.png b/public/images/pokemon/icons/869s-caramel-swirl.png
new file mode 100644
index 00000000000..32cb4cc7d56
Binary files /dev/null and b/public/images/pokemon/icons/869s-caramel-swirl.png differ
diff --git a/public/images/pokemon/icons/869s-lemon-cream.png b/public/images/pokemon/icons/869s-lemon-cream.png
new file mode 100644
index 00000000000..32cb4cc7d56
Binary files /dev/null and b/public/images/pokemon/icons/869s-lemon-cream.png differ
diff --git a/public/images/pokemon/icons/869s-matcha-cream.png b/public/images/pokemon/icons/869s-matcha-cream.png
new file mode 100644
index 00000000000..32cb4cc7d56
Binary files /dev/null and b/public/images/pokemon/icons/869s-matcha-cream.png differ
diff --git a/public/images/pokemon/icons/869s-mint-cream.png b/public/images/pokemon/icons/869s-mint-cream.png
new file mode 100644
index 00000000000..32cb4cc7d56
Binary files /dev/null and b/public/images/pokemon/icons/869s-mint-cream.png differ
diff --git a/public/images/pokemon/icons/869s-rainbow-swirl.png b/public/images/pokemon/icons/869s-rainbow-swirl.png
new file mode 100644
index 00000000000..32cb4cc7d56
Binary files /dev/null and b/public/images/pokemon/icons/869s-rainbow-swirl.png differ
diff --git a/public/images/pokemon/icons/869s-ruby-cream.png b/public/images/pokemon/icons/869s-ruby-cream.png
new file mode 100644
index 00000000000..32cb4cc7d56
Binary files /dev/null and b/public/images/pokemon/icons/869s-ruby-cream.png differ
diff --git a/public/images/pokemon/icons/869s-ruby-swirl.png b/public/images/pokemon/icons/869s-ruby-swirl.png
new file mode 100644
index 00000000000..32cb4cc7d56
Binary files /dev/null and b/public/images/pokemon/icons/869s-ruby-swirl.png differ
diff --git a/public/images/pokemon/icons/869s-salted-cream.png b/public/images/pokemon/icons/869s-salted-cream.png
new file mode 100644
index 00000000000..32cb4cc7d56
Binary files /dev/null and b/public/images/pokemon/icons/869s-salted-cream.png differ
diff --git a/public/images/pokemon/shiny/676-dandy.json b/public/images/pokemon/shiny/676-dandy.json
index 2bb36e87e27..770db5763b3 100644
--- a/public/images/pokemon/shiny/676-dandy.json
+++ b/public/images/pokemon/shiny/676-dandy.json
@@ -4,30 +4,30 @@
"image": "676-dandy.png",
"format": "RGBA8888",
"size": {
- "w": 71,
- "h": 71
+ "w": 65,
+ "h": 65
},
- "scale": 1,
+ "scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 56,
- "h": 71
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 56,
- "h": 71
+ "x": 22,
+ "y": 15,
+ "w": 50,
+ "h": 65
},
"frame": {
"x": 0,
"y": 0,
- "w": 56,
- "h": 71
+ "w": 50,
+ "h": 65
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:cd88917bff3fae3d6ff808096f539d70:17a1912fd81d23ce8a7209e27ad3e9ed:b5a287256e260744fe6660dc2ceefd11$"
+ "smartupdate": "$TexturePacker:SmartUpdate:30639f5b87709c77f1b970be4078abf4:7b6183e776852f811a1e5c3fa15805fc:b5a287256e260744fe6660dc2ceefd11$"
}
}
diff --git a/public/images/pokemon/shiny/676-dandy.png b/public/images/pokemon/shiny/676-dandy.png
index f7303f7ec04..d0e19946a24 100644
Binary files a/public/images/pokemon/shiny/676-dandy.png and b/public/images/pokemon/shiny/676-dandy.png differ
diff --git a/public/images/pokemon/shiny/676-debutante.json b/public/images/pokemon/shiny/676-debutante.json
index fa4859812ed..720b39294e4 100644
--- a/public/images/pokemon/shiny/676-debutante.json
+++ b/public/images/pokemon/shiny/676-debutante.json
@@ -4,30 +4,30 @@
"image": "676-debutante.png",
"format": "RGBA8888",
"size": {
- "w": 67,
- "h": 67
+ "w": 61,
+ "h": 61
},
- "scale": 1,
+ "scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 56,
- "h": 67
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 56,
- "h": 67
+ "x": 20,
+ "y": 19,
+ "w": 50,
+ "h": 61
},
"frame": {
"x": 0,
"y": 0,
- "w": 56,
- "h": 67
+ "w": 50,
+ "h": 61
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:68f3a2720b7b1e5e59f628f021cac698:07d06d321fff31976e1b993edb972e4f:bf2f862a1c8881133f9f3ffbf44602fa$"
+ "smartupdate": "$TexturePacker:SmartUpdate:2ccaadba59ae7a3f23287601b725067d:18ae045d433354fd8b461b528bba113d:bf2f862a1c8881133f9f3ffbf44602fa$"
}
}
diff --git a/public/images/pokemon/shiny/676-debutante.png b/public/images/pokemon/shiny/676-debutante.png
index b33fb39c8a8..ff8d8d76dbe 100644
Binary files a/public/images/pokemon/shiny/676-debutante.png and b/public/images/pokemon/shiny/676-debutante.png differ
diff --git a/public/images/pokemon/shiny/676-diamond.json b/public/images/pokemon/shiny/676-diamond.json
index 9098c46140e..8ceec5a6f3a 100644
--- a/public/images/pokemon/shiny/676-diamond.json
+++ b/public/images/pokemon/shiny/676-diamond.json
@@ -4,30 +4,30 @@
"image": "676-diamond.png",
"format": "RGBA8888",
"size": {
- "w": 74,
- "h": 74
+ "w": 68,
+ "h": 68
},
- "scale": 1,
+ "scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 53,
- "h": 74
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 53,
- "h": 74
+ "x": 24,
+ "y": 12,
+ "w": 47,
+ "h": 68
},
"frame": {
"x": 0,
"y": 0,
- "w": 53,
- "h": 74
+ "w": 47,
+ "h": 68
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:e054ccb4d021c87a6a02c6728403d87a:c7e104da9393ec52b9e6d37f92fc20d9:88c467fc09249b0d2f579d44eacd528d$"
+ "smartupdate": "$TexturePacker:SmartUpdate:bd55e138e32873b99b7a1a2e237d5278:befb394d45c46c22e2711f4c6d5d9623:88c467fc09249b0d2f579d44eacd528d$"
}
}
diff --git a/public/images/pokemon/shiny/676-diamond.png b/public/images/pokemon/shiny/676-diamond.png
index 1bd0628a543..a29257968a3 100644
Binary files a/public/images/pokemon/shiny/676-diamond.png and b/public/images/pokemon/shiny/676-diamond.png differ
diff --git a/public/images/pokemon/shiny/676-heart.json b/public/images/pokemon/shiny/676-heart.json
index 43f03c195eb..a330e953d10 100644
--- a/public/images/pokemon/shiny/676-heart.json
+++ b/public/images/pokemon/shiny/676-heart.json
@@ -4,30 +4,30 @@
"image": "676-heart.png",
"format": "RGBA8888",
"size": {
- "w": 72,
- "h": 72
+ "w": 66,
+ "h": 66
},
- "scale": 1,
+ "scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 54,
- "h": 72
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 54,
- "h": 72
+ "x": 24,
+ "y": 14,
+ "w": 48,
+ "h": 66
},
"frame": {
"x": 0,
"y": 0,
- "w": 54,
- "h": 72
+ "w": 48,
+ "h": 66
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:adb921bf32ae497738fbecc12e2aab07:421a40542b16cdb2cc154c85e963b40d:e11d4dd16bff2ef69bc5ca683c44ca7c$"
+ "smartupdate": "$TexturePacker:SmartUpdate:6a000209d8789ed27cdd0700711ccc27:75157608bd339b63c9a7ce68e259b3b7:e11d4dd16bff2ef69bc5ca683c44ca7c$"
}
}
diff --git a/public/images/pokemon/shiny/676-heart.png b/public/images/pokemon/shiny/676-heart.png
index de6d3ebb7f6..39c7e8b900c 100644
Binary files a/public/images/pokemon/shiny/676-heart.png and b/public/images/pokemon/shiny/676-heart.png differ
diff --git a/public/images/pokemon/shiny/676-kabuki.json b/public/images/pokemon/shiny/676-kabuki.json
index 7121f0b3030..a892c23d256 100644
--- a/public/images/pokemon/shiny/676-kabuki.json
+++ b/public/images/pokemon/shiny/676-kabuki.json
@@ -4,30 +4,30 @@
"image": "676-kabuki.png",
"format": "RGBA8888",
"size": {
- "w": 70,
- "h": 70
+ "w": 64,
+ "h": 64
},
- "scale": 1,
+ "scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 58,
- "h": 70
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 58,
- "h": 70
+ "x": 22,
+ "y": 16,
+ "w": 52,
+ "h": 64
},
"frame": {
"x": 0,
"y": 0,
- "w": 58,
- "h": 70
+ "w": 52,
+ "h": 64
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:ef8ecfc1b406aa668e3f8daf0dfbaae7:08eecd31f557298e1570ec3490acffe2:c3cad56aa65d2ee971ceebc435a14ee6$"
+ "smartupdate": "$TexturePacker:SmartUpdate:cd44f74e9b1dc4a581bd72f235552344:1404c36e03543b4eb1d1a4d5916a6652:c3cad56aa65d2ee971ceebc435a14ee6$"
}
}
diff --git a/public/images/pokemon/shiny/676-kabuki.png b/public/images/pokemon/shiny/676-kabuki.png
index c402730a5e8..d11cff6c87e 100644
Binary files a/public/images/pokemon/shiny/676-kabuki.png and b/public/images/pokemon/shiny/676-kabuki.png differ
diff --git a/public/images/pokemon/shiny/676-la-reine.json b/public/images/pokemon/shiny/676-la-reine.json
index dc3c4d596a1..24299b06187 100644
--- a/public/images/pokemon/shiny/676-la-reine.json
+++ b/public/images/pokemon/shiny/676-la-reine.json
@@ -4,30 +4,30 @@
"image": "676-la-reine.png",
"format": "RGBA8888",
"size": {
- "w": 69,
- "h": 69
+ "w": 63,
+ "h": 63
},
- "scale": 1,
+ "scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 55,
- "h": 69
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 55,
- "h": 69
+ "x": 23,
+ "y": 17,
+ "w": 49,
+ "h": 63
},
"frame": {
"x": 0,
"y": 0,
- "w": 55,
- "h": 69
+ "w": 49,
+ "h": 63
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:6ba780e3e4c772966f8fa209410a9370:c56ae957d7acb10c7373b842af3a8786:b99821e87dffda3297dd25a224a9029f$"
+ "smartupdate": "$TexturePacker:SmartUpdate:1982df9d4acf87f005bb76829bd78a65:e3590ee437367a91742856b3887339a8:b99821e87dffda3297dd25a224a9029f$"
}
}
diff --git a/public/images/pokemon/shiny/676-la-reine.png b/public/images/pokemon/shiny/676-la-reine.png
index b9cf78ac6a6..7eed3ef20a2 100644
Binary files a/public/images/pokemon/shiny/676-la-reine.png and b/public/images/pokemon/shiny/676-la-reine.png differ
diff --git a/public/images/pokemon/shiny/676-matron.json b/public/images/pokemon/shiny/676-matron.json
index fac13c6551f..def3de9d349 100644
--- a/public/images/pokemon/shiny/676-matron.json
+++ b/public/images/pokemon/shiny/676-matron.json
@@ -4,30 +4,30 @@
"image": "676-matron.png",
"format": "RGBA8888",
"size": {
- "w": 68,
- "h": 68
+ "w": 62,
+ "h": 62
},
- "scale": 1,
+ "scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 52,
- "h": 68
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 52,
- "h": 68
+ "x": 23,
+ "y": 18,
+ "w": 46,
+ "h": 62
},
"frame": {
"x": 0,
"y": 0,
- "w": 52,
- "h": 68
+ "w": 46,
+ "h": 62
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:89ab717076c514df8295db07981b18e9:72a9977db421d061829c639e3b50a617:020798583d07c479020bb0af34cf8bb6$"
+ "smartupdate": "$TexturePacker:SmartUpdate:e2bcb6e27807980dfb68c17e65a7e8bd:d2409a3631a4a2263717bf5aa7e273b2:020798583d07c479020bb0af34cf8bb6$"
}
}
diff --git a/public/images/pokemon/shiny/676-matron.png b/public/images/pokemon/shiny/676-matron.png
index 4f88ee06a1e..14e31ce77b7 100644
Binary files a/public/images/pokemon/shiny/676-matron.png and b/public/images/pokemon/shiny/676-matron.png differ
diff --git a/public/images/pokemon/shiny/676-pharaoh.json b/public/images/pokemon/shiny/676-pharaoh.json
index 6acf62a9f31..0cb4f035c81 100644
--- a/public/images/pokemon/shiny/676-pharaoh.json
+++ b/public/images/pokemon/shiny/676-pharaoh.json
@@ -4,30 +4,30 @@
"image": "676-pharaoh.png",
"format": "RGBA8888",
"size": {
- "w": 69,
- "h": 69
+ "w": 63,
+ "h": 63
},
- "scale": 1,
+ "scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 52,
- "h": 69
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 52,
- "h": 69
+ "x": 25,
+ "y": 17,
+ "w": 46,
+ "h": 63
},
"frame": {
"x": 0,
"y": 0,
- "w": 52,
- "h": 69
+ "w": 46,
+ "h": 63
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:85c709f8538d07088a17e53a7c85afa0:623b4bc6698ef1a984b6bad42e68115b:904b7ab6f57249c96beea4b5f72deb53$"
+ "smartupdate": "$TexturePacker:SmartUpdate:bdf2959fe7e2556fe6d031d7de04fc6c:fbff7f59a6ed25ee3eef955cbb3b9a56:904b7ab6f57249c96beea4b5f72deb53$"
}
}
diff --git a/public/images/pokemon/shiny/676-pharaoh.png b/public/images/pokemon/shiny/676-pharaoh.png
index 6bcc2914010..32b78156f7d 100644
Binary files a/public/images/pokemon/shiny/676-pharaoh.png and b/public/images/pokemon/shiny/676-pharaoh.png differ
diff --git a/public/images/pokemon/shiny/676-star.json b/public/images/pokemon/shiny/676-star.json
index 0686d348789..db4d10dde76 100644
--- a/public/images/pokemon/shiny/676-star.json
+++ b/public/images/pokemon/shiny/676-star.json
@@ -4,30 +4,30 @@
"image": "676-star.png",
"format": "RGBA8888",
"size": {
- "w": 72,
- "h": 72
+ "w": 66,
+ "h": 66
},
- "scale": 1,
+ "scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
- "w": 56,
- "h": 72
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 56,
- "h": 72
+ "x": 24,
+ "y": 14,
+ "w": 50,
+ "h": 66
},
"frame": {
"x": 0,
"y": 0,
- "w": 56,
- "h": 72
+ "w": 50,
+ "h": 66
}
}
]
@@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:56c2df4ee634b690a816b79120bc3600:d7eefc05e299310d05d389e05997e449:dd7fedf66b493b0bbdef5d25e0041dd8$"
+ "smartupdate": "$TexturePacker:SmartUpdate:a3f92eef83bcae7716ee78c669738785:156a85da733d2e878a00be0efc1c4d38:dd7fedf66b493b0bbdef5d25e0041dd8$"
}
}
diff --git a/public/images/pokemon/shiny/676-star.png b/public/images/pokemon/shiny/676-star.png
index 540ba4a2dba..d7a327566b9 100644
Binary files a/public/images/pokemon/shiny/676-star.png and b/public/images/pokemon/shiny/676-star.png differ
diff --git a/public/images/pokemon/shiny/678.json b/public/images/pokemon/shiny/678.json
index 3b0b49acd46..681f8466719 100644
--- a/public/images/pokemon/shiny/678.json
+++ b/public/images/pokemon/shiny/678.json
@@ -4,240 +4,30 @@
"image": "678.png",
"format": "RGBA8888",
"size": {
- "w": 130,
- "h": 130
+ "w": 56,
+ "h": 56
},
- "scale": 1,
+ "scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
- "trimmed": true,
+ "trimmed": false,
"sourceSize": {
- "w": 80,
- "h": 80
+ "w": 96,
+ "h": 96
},
"spriteSourceSize": {
- "x": 18,
- "y": 11,
- "w": 44,
- "h": 57
+ "x": 25,
+ "y": 20,
+ "w": 45,
+ "h": 56
},
"frame": {
"x": 0,
"y": 0,
- "w": 44,
- "h": 57
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 80,
- "h": 80
- },
- "spriteSourceSize": {
- "x": 18,
- "y": 11,
- "w": 44,
- "h": 57
- },
- "frame": {
- "x": 0,
- "y": 57,
- "w": 44,
- "h": 57
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 80,
- "h": 80
- },
- "spriteSourceSize": {
- "x": 18,
- "y": 11,
- "w": 44,
- "h": 57
- },
- "frame": {
- "x": 0,
- "y": 57,
- "w": 44,
- "h": 57
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 80,
- "h": 80
- },
- "spriteSourceSize": {
- "x": 21,
- "y": 15,
- "w": 44,
- "h": 53
- },
- "frame": {
- "x": 44,
- "y": 0,
- "w": 44,
- "h": 53
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 80,
- "h": 80
- },
- "spriteSourceSize": {
- "x": 21,
- "y": 15,
- "w": 44,
- "h": 53
- },
- "frame": {
- "x": 44,
- "y": 0,
- "w": 44,
- "h": 53
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 80,
- "h": 80
- },
- "spriteSourceSize": {
- "x": 24,
- "y": 12,
- "w": 42,
+ "w": 45,
"h": 56
- },
- "frame": {
- "x": 88,
- "y": 0,
- "w": 42,
- "h": 56
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 80,
- "h": 80
- },
- "spriteSourceSize": {
- "x": 24,
- "y": 12,
- "w": 42,
- "h": 56
- },
- "frame": {
- "x": 88,
- "y": 0,
- "w": 42,
- "h": 56
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 80,
- "h": 80
- },
- "spriteSourceSize": {
- "x": 20,
- "y": 11,
- "w": 43,
- "h": 57
- },
- "frame": {
- "x": 44,
- "y": 53,
- "w": 43,
- "h": 57
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 80,
- "h": 80
- },
- "spriteSourceSize": {
- "x": 20,
- "y": 11,
- "w": 43,
- "h": 57
- },
- "frame": {
- "x": 44,
- "y": 53,
- "w": 43,
- "h": 57
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 80,
- "h": 80
- },
- "spriteSourceSize": {
- "x": 22,
- "y": 13,
- "w": 43,
- "h": 55
- },
- "frame": {
- "x": 87,
- "y": 56,
- "w": 43,
- "h": 55
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 80,
- "h": 80
- },
- "spriteSourceSize": {
- "x": 22,
- "y": 13,
- "w": 43,
- "h": 55
- },
- "frame": {
- "x": 87,
- "y": 56,
- "w": 43,
- "h": 55
}
}
]
@@ -246,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:9579cbb834c4127f905679ba92633a05:64ed3d991add5e47034b1ca9aad80a4c:887aa14e4a3a3e9141c6ae460f968db1$"
+ "smartupdate": "$TexturePacker:SmartUpdate:ee6cbb7807c28f4b3f12e8dcf4da4888:77056356d7cbf2a4fb20508f50dbd3ce:887aa14e4a3a3e9141c6ae460f968db1$"
}
}
diff --git a/public/images/pokemon/shiny/678.png b/public/images/pokemon/shiny/678.png
index f41018c9838..a2ec8d89519 100644
Binary files a/public/images/pokemon/shiny/678.png and b/public/images/pokemon/shiny/678.png differ
diff --git a/public/images/pokemon/shiny/869-caramel-swirl.json b/public/images/pokemon/shiny/869-caramel-swirl.json
new file mode 100644
index 00000000000..d08055197ee
--- /dev/null
+++ b/public/images/pokemon/shiny/869-caramel-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-caramel-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 39,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:05eade73b3ac133b2b6bfabb37d329b4:51719e2b4400ad80a2715f69594d3317:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/shiny/869-caramel-swirl.png b/public/images/pokemon/shiny/869-caramel-swirl.png
new file mode 100644
index 00000000000..803686aed5d
Binary files /dev/null and b/public/images/pokemon/shiny/869-caramel-swirl.png differ
diff --git a/public/images/pokemon/shiny/869-lemon-cream.json b/public/images/pokemon/shiny/869-lemon-cream.json
new file mode 100644
index 00000000000..1160af92907
--- /dev/null
+++ b/public/images/pokemon/shiny/869-lemon-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-lemon-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 39,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:05eade73b3ac133b2b6bfabb37d329b4:51719e2b4400ad80a2715f69594d3317:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/shiny/869-lemon-cream.png b/public/images/pokemon/shiny/869-lemon-cream.png
new file mode 100644
index 00000000000..803686aed5d
Binary files /dev/null and b/public/images/pokemon/shiny/869-lemon-cream.png differ
diff --git a/public/images/pokemon/shiny/869-matcha-cream.json b/public/images/pokemon/shiny/869-matcha-cream.json
new file mode 100644
index 00000000000..149ee6e1077
--- /dev/null
+++ b/public/images/pokemon/shiny/869-matcha-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-matcha-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 39,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:05eade73b3ac133b2b6bfabb37d329b4:51719e2b4400ad80a2715f69594d3317:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/shiny/869-matcha-cream.png b/public/images/pokemon/shiny/869-matcha-cream.png
new file mode 100644
index 00000000000..803686aed5d
Binary files /dev/null and b/public/images/pokemon/shiny/869-matcha-cream.png differ
diff --git a/public/images/pokemon/shiny/869-mint-cream.json b/public/images/pokemon/shiny/869-mint-cream.json
new file mode 100644
index 00000000000..aac46fcf4c1
--- /dev/null
+++ b/public/images/pokemon/shiny/869-mint-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-mint-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 39,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:05eade73b3ac133b2b6bfabb37d329b4:51719e2b4400ad80a2715f69594d3317:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/shiny/869-mint-cream.png b/public/images/pokemon/shiny/869-mint-cream.png
new file mode 100644
index 00000000000..803686aed5d
Binary files /dev/null and b/public/images/pokemon/shiny/869-mint-cream.png differ
diff --git a/public/images/pokemon/shiny/869-rainbow-swirl.json b/public/images/pokemon/shiny/869-rainbow-swirl.json
new file mode 100644
index 00000000000..195e1077d76
--- /dev/null
+++ b/public/images/pokemon/shiny/869-rainbow-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-rainbow-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 39,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:05eade73b3ac133b2b6bfabb37d329b4:51719e2b4400ad80a2715f69594d3317:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/shiny/869-rainbow-swirl.png b/public/images/pokemon/shiny/869-rainbow-swirl.png
new file mode 100644
index 00000000000..803686aed5d
Binary files /dev/null and b/public/images/pokemon/shiny/869-rainbow-swirl.png differ
diff --git a/public/images/pokemon/shiny/869-ruby-cream.json b/public/images/pokemon/shiny/869-ruby-cream.json
new file mode 100644
index 00000000000..1b2b9f59acc
--- /dev/null
+++ b/public/images/pokemon/shiny/869-ruby-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-ruby-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 39,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:05eade73b3ac133b2b6bfabb37d329b4:51719e2b4400ad80a2715f69594d3317:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/shiny/869-ruby-cream.png b/public/images/pokemon/shiny/869-ruby-cream.png
new file mode 100644
index 00000000000..803686aed5d
Binary files /dev/null and b/public/images/pokemon/shiny/869-ruby-cream.png differ
diff --git a/public/images/pokemon/shiny/869-ruby-swirl.json b/public/images/pokemon/shiny/869-ruby-swirl.json
new file mode 100644
index 00000000000..384a8d9f362
--- /dev/null
+++ b/public/images/pokemon/shiny/869-ruby-swirl.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-ruby-swirl.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 39,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:05eade73b3ac133b2b6bfabb37d329b4:51719e2b4400ad80a2715f69594d3317:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/shiny/869-ruby-swirl.png b/public/images/pokemon/shiny/869-ruby-swirl.png
new file mode 100644
index 00000000000..803686aed5d
Binary files /dev/null and b/public/images/pokemon/shiny/869-ruby-swirl.png differ
diff --git a/public/images/pokemon/shiny/869-salted-cream.json b/public/images/pokemon/shiny/869-salted-cream.json
new file mode 100644
index 00000000000..b3e92c77f8c
--- /dev/null
+++ b/public/images/pokemon/shiny/869-salted-cream.json
@@ -0,0 +1,41 @@
+{
+ "textures": [
+ {
+ "image": "869-salted-cream.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 55,
+ "h": 55
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "0001.png",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 39,
+ "h": 55
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 39,
+ "h": 55
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:05eade73b3ac133b2b6bfabb37d329b4:51719e2b4400ad80a2715f69594d3317:18cea997ef38e1531596f96f8db4f25e$"
+ }
+}
diff --git a/public/images/pokemon/shiny/869-salted-cream.png b/public/images/pokemon/shiny/869-salted-cream.png
new file mode 100644
index 00000000000..803686aed5d
Binary files /dev/null and b/public/images/pokemon/shiny/869-salted-cream.png differ
diff --git a/public/images/pokemon_icons_6.json b/public/images/pokemon_icons_6.json
index 48a676cc9ca..f0d7a46c7d4 100644
--- a/public/images/pokemon_icons_6.json
+++ b/public/images/pokemon_icons_6.json
@@ -5,7 +5,7 @@
"format": "RGBA8888",
"size": {
"w": 254,
- "h": 554
+ "h": 557
},
"scale": 1,
"frames": [
@@ -556,7 +556,7 @@
}
},
{
- "filename": "708",
+ "filename": "675",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -564,16 +564,37 @@
"h": 30
},
"spriteSourceSize": {
- "x": 6,
- "y": 7,
- "w": 25,
- "h": 21
+ "x": 7,
+ "y": 4,
+ "w": 28,
+ "h": 24
},
"frame": {
"x": 0,
"y": 533,
- "w": 25,
- "h": 21
+ "w": 28,
+ "h": 24
+ }
+ },
+ {
+ "filename": "675s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 4,
+ "w": 28,
+ "h": 24
+ },
+ "frame": {
+ "x": 28,
+ "y": 533,
+ "w": 28,
+ "h": 24
}
},
{
@@ -597,27 +618,6 @@
"h": 27
}
},
- {
- "filename": "708s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 7,
- "w": 25,
- "h": 21
- },
- "frame": {
- "x": 25,
- "y": 533,
- "w": 25,
- "h": 21
- }
- },
{
"filename": "691",
"rotated": false,
@@ -661,7 +661,7 @@
}
},
{
- "filename": "675",
+ "filename": "715",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -669,7 +669,7 @@
"h": 30
},
"spriteSourceSize": {
- "x": 7,
+ "x": 6,
"y": 4,
"w": 28,
"h": 24
@@ -786,6 +786,27 @@
"h": 22
}
},
+ {
+ "filename": "658-ash",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 7,
+ "w": 30,
+ "h": 23
+ },
+ "frame": {
+ "x": 132,
+ "y": 49,
+ "w": 30,
+ "h": 23
+ }
+ },
{
"filename": "658",
"rotated": false,
@@ -801,8 +822,8 @@
"h": 22
},
"frame": {
- "x": 132,
- "y": 49,
+ "x": 162,
+ "y": 50,
"w": 30,
"h": 22
}
@@ -822,7 +843,7 @@
"h": 23
},
"frame": {
- "x": 162,
+ "x": 192,
"y": 50,
"w": 30,
"h": 23
@@ -843,8 +864,8 @@
"h": 22
},
"frame": {
- "x": 192,
- "y": 50,
+ "x": 222,
+ "y": 51,
"w": 30,
"h": 22
}
@@ -864,51 +885,9 @@
"h": 22
},
"frame": {
- "x": 222,
- "y": 51,
- "w": 30,
- "h": 22
- }
- },
- {
- "filename": "654",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 20,
- "h": 22
- },
- "frame": {
- "x": 50,
+ "x": 38,
"y": 54,
- "w": 20,
- "h": 22
- }
- },
- {
- "filename": "705",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 6,
- "w": 15,
- "h": 22
- },
- "frame": {
- "x": 35,
- "y": 56,
- "w": 15,
+ "w": 30,
"h": 22
}
},
@@ -927,119 +906,14 @@
"h": 22
},
"frame": {
- "x": 70,
- "y": 70,
+ "x": 35,
+ "y": 76,
"w": 30,
"h": 22
}
},
{
- "filename": "675s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 28,
- "h": 24
- },
- "frame": {
- "x": 100,
- "y": 70,
- "w": 28,
- "h": 24
- }
- },
- {
- "filename": "715",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 4,
- "w": 28,
- "h": 24
- },
- "frame": {
- "x": 128,
- "y": 71,
- "w": 28,
- "h": 24
- }
- },
- {
- "filename": "715s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 4,
- "w": 28,
- "h": 24
- },
- "frame": {
- "x": 156,
- "y": 73,
- "w": 28,
- "h": 24
- }
- },
- {
- "filename": "654s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 20,
- "h": 22
- },
- "frame": {
- "x": 50,
- "y": 76,
- "w": 20,
- "h": 22
- }
- },
- {
- "filename": "705s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 6,
- "w": 15,
- "h": 22
- },
- "frame": {
- "x": 35,
- "y": 78,
- "w": 15,
- "h": 22
- }
- },
- {
- "filename": "676-diamond",
+ "filename": "671-orange",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -1048,15 +922,15 @@
},
"spriteSourceSize": {
"x": 8,
- "y": 0,
- "w": 24,
- "h": 28
+ "y": 3,
+ "w": 26,
+ "h": 27
},
"frame": {
"x": 32,
- "y": 100,
- "w": 24,
- "h": 28
+ "y": 98,
+ "w": 26,
+ "h": 27
}
},
{
@@ -1075,32 +949,11 @@
},
"frame": {
"x": 32,
- "y": 128,
+ "y": 125,
"w": 26,
"h": 24
}
},
- {
- "filename": "671-orange",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 3,
- "w": 26,
- "h": 27
- },
- "frame": {
- "x": 29,
- "y": 152,
- "w": 26,
- "h": 27
- }
- },
{
"filename": "671-red",
"rotated": false,
@@ -1117,7 +970,7 @@
},
"frame": {
"x": 29,
- "y": 179,
+ "y": 149,
"w": 26,
"h": 27
}
@@ -1137,12 +990,54 @@
"h": 27
},
"frame": {
- "x": 28,
- "y": 206,
+ "x": 29,
+ "y": 176,
"w": 26,
"h": 27
}
},
+ {
+ "filename": "676-diamond",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 0,
+ "w": 24,
+ "h": 28
+ },
+ "frame": {
+ "x": 58,
+ "y": 98,
+ "w": 24,
+ "h": 28
+ }
+ },
+ {
+ "filename": "652s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 4,
+ "w": 26,
+ "h": 24
+ },
+ "frame": {
+ "x": 58,
+ "y": 126,
+ "w": 26,
+ "h": 24
+ }
+ },
{
"filename": "671-yellow",
"rotated": false,
@@ -1158,8 +1053,8 @@
"h": 27
},
"frame": {
- "x": 28,
- "y": 233,
+ "x": 55,
+ "y": 150,
"w": 26,
"h": 27
}
@@ -1179,12 +1074,33 @@
"h": 27
},
"frame": {
- "x": 28,
- "y": 260,
+ "x": 55,
+ "y": 177,
"w": 26,
"h": 27
}
},
+ {
+ "filename": "650",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 6,
+ "w": 17,
+ "h": 22
+ },
+ "frame": {
+ "x": 65,
+ "y": 76,
+ "w": 17,
+ "h": 22
+ }
+ },
{
"filename": "671s-orange",
"rotated": false,
@@ -1200,8 +1116,29 @@
"h": 27
},
"frame": {
- "x": 28,
- "y": 287,
+ "x": 82,
+ "y": 70,
+ "w": 26,
+ "h": 27
+ }
+ },
+ {
+ "filename": "671s-red",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 26,
+ "h": 27
+ },
+ "frame": {
+ "x": 82,
+ "y": 97,
"w": 26,
"h": 27
}
@@ -1221,33 +1158,12 @@
"h": 28
},
"frame": {
- "x": 56,
- "y": 98,
+ "x": 108,
+ "y": 70,
"w": 24,
"h": 28
}
},
- {
- "filename": "671s-red",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 3,
- "w": 26,
- "h": 27
- },
- "frame": {
- "x": 58,
- "y": 126,
- "w": 26,
- "h": 27
- }
- },
{
"filename": "671s-white",
"rotated": false,
@@ -1263,8 +1179,8 @@
"h": 27
},
"frame": {
- "x": 55,
- "y": 153,
+ "x": 132,
+ "y": 72,
"w": 26,
"h": 27
}
@@ -1284,12 +1200,54 @@
"h": 27
},
"frame": {
- "x": 55,
- "y": 180,
+ "x": 158,
+ "y": 72,
"w": 26,
"h": 27
}
},
+ {
+ "filename": "676-dandy",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 24,
+ "h": 26
+ },
+ "frame": {
+ "x": 108,
+ "y": 98,
+ "w": 24,
+ "h": 26
+ }
+ },
+ {
+ "filename": "715s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 4,
+ "w": 28,
+ "h": 24
+ },
+ "frame": {
+ "x": 132,
+ "y": 99,
+ "w": 28,
+ "h": 24
+ }
+ },
{
"filename": "676-star",
"rotated": false,
@@ -1305,8 +1263,8 @@
"h": 27
},
"frame": {
- "x": 54,
- "y": 207,
+ "x": 84,
+ "y": 124,
"w": 26,
"h": 27
}
@@ -1326,12 +1284,54 @@
"h": 27
},
"frame": {
- "x": 54,
- "y": 234,
+ "x": 81,
+ "y": 151,
"w": 26,
"h": 27
}
},
+ {
+ "filename": "660",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 3,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 81,
+ "y": 178,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "676",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 1,
+ "w": 24,
+ "h": 27
+ },
+ "frame": {
+ "x": 110,
+ "y": 124,
+ "w": 24,
+ "h": 27
+ }
+ },
{
"filename": "721",
"rotated": false,
@@ -1347,138 +1347,12 @@
"h": 27
},
"frame": {
- "x": 54,
- "y": 261,
+ "x": 107,
+ "y": 151,
"w": 25,
"h": 27
}
},
- {
- "filename": "676-heart",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 25,
- "h": 26
- },
- "frame": {
- "x": 54,
- "y": 288,
- "w": 25,
- "h": 26
- }
- },
- {
- "filename": "685",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 5,
- "w": 20,
- "h": 23
- },
- "frame": {
- "x": 80,
- "y": 92,
- "w": 20,
- "h": 23
- }
- },
- {
- "filename": "655",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 27,
- "h": 23
- },
- "frame": {
- "x": 100,
- "y": 94,
- "w": 27,
- "h": 23
- }
- },
- {
- "filename": "655s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 27,
- "h": 23
- },
- "frame": {
- "x": 127,
- "y": 95,
- "w": 27,
- "h": 23
- }
- },
- {
- "filename": "707s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 5,
- "w": 27,
- "h": 24
- },
- "frame": {
- "x": 154,
- "y": 97,
- "w": 27,
- "h": 24
- }
- },
- {
- "filename": "713",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 27,
- "h": 24
- },
- "frame": {
- "x": 28,
- "y": 314,
- "w": 27,
- "h": 24
- }
- },
{
"filename": "721s",
"rotated": false,
@@ -1494,243 +1368,12 @@
"h": 27
},
"frame": {
- "x": 27,
- "y": 338,
+ "x": 134,
+ "y": 123,
"w": 25,
"h": 27
}
},
- {
- "filename": "652s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 4,
- "w": 26,
- "h": 24
- },
- "frame": {
- "x": 55,
- "y": 314,
- "w": 26,
- "h": 24
- }
- },
- {
- "filename": "660",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 52,
- "y": 338,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "684",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 12,
- "w": 17,
- "h": 16
- },
- "frame": {
- "x": 27,
- "y": 365,
- "w": 17,
- "h": 16
- }
- },
- {
- "filename": "676",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 1,
- "w": 24,
- "h": 27
- },
- "frame": {
- "x": 30,
- "y": 381,
- "w": 24,
- "h": 27
- }
- },
- {
- "filename": "676s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 1,
- "w": 24,
- "h": 27
- },
- "frame": {
- "x": 30,
- "y": 408,
- "w": 24,
- "h": 27
- }
- },
- {
- "filename": "699",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 1,
- "w": 24,
- "h": 27
- },
- "frame": {
- "x": 30,
- "y": 435,
- "w": 24,
- "h": 27
- }
- },
- {
- "filename": "699s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 1,
- "w": 24,
- "h": 27
- },
- "frame": {
- "x": 30,
- "y": 462,
- "w": 24,
- "h": 27
- }
- },
- {
- "filename": "676-dandy",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 24,
- "h": 26
- },
- "frame": {
- "x": 30,
- "y": 489,
- "w": 24,
- "h": 26
- }
- },
- {
- "filename": "672",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 10,
- "w": 17,
- "h": 18
- },
- "frame": {
- "x": 30,
- "y": 515,
- "w": 17,
- "h": 18
- }
- },
- {
- "filename": "682",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 12,
- "w": 15,
- "h": 16
- },
- "frame": {
- "x": 44,
- "y": 365,
- "w": 15,
- "h": 16
- }
- },
- {
- "filename": "651",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 21,
- "h": 22
- },
- "frame": {
- "x": 59,
- "y": 363,
- "w": 21,
- "h": 22
- }
- },
{
"filename": "660s",
"rotated": false,
@@ -1746,8 +1389,8 @@
"h": 25
},
"frame": {
- "x": 54,
- "y": 385,
+ "x": 107,
+ "y": 178,
"w": 26,
"h": 25
}
@@ -1767,8 +1410,8 @@
"h": 25
},
"frame": {
- "x": 54,
- "y": 410,
+ "x": 160,
+ "y": 99,
"w": 26,
"h": 25
}
@@ -1788,12 +1431,33 @@
"h": 25
},
"frame": {
- "x": 54,
- "y": 435,
+ "x": 159,
+ "y": 124,
"w": 26,
"h": 25
}
},
+ {
+ "filename": "676-heart",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 25,
+ "h": 26
+ },
+ "frame": {
+ "x": 184,
+ "y": 73,
+ "w": 25,
+ "h": 26
+ }
+ },
{
"filename": "666-elegant",
"rotated": false,
@@ -1809,12 +1473,33 @@
"h": 25
},
"frame": {
- "x": 54,
- "y": 460,
+ "x": 209,
+ "y": 73,
"w": 26,
"h": 25
}
},
+ {
+ "filename": "683",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 5,
+ "w": 19,
+ "h": 23
+ },
+ "frame": {
+ "x": 235,
+ "y": 73,
+ "w": 19,
+ "h": 23
+ }
+ },
{
"filename": "666-fancy",
"rotated": false,
@@ -1830,14 +1515,14 @@
"h": 25
},
"frame": {
- "x": 54,
- "y": 485,
+ "x": 186,
+ "y": 99,
"w": 26,
"h": 25
}
},
{
- "filename": "659",
+ "filename": "666-garden",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -1845,20 +1530,83 @@
"h": 30
},
"spriteSourceSize": {
- "x": 11,
- "y": 3,
- "w": 16,
+ "x": 8,
+ "y": 2,
+ "w": 26,
"h": 25
},
"frame": {
- "x": 184,
- "y": 73,
- "w": 16,
+ "x": 185,
+ "y": 124,
+ "w": 26,
"h": 25
}
},
{
- "filename": "695",
+ "filename": "676-pharaoh",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 24,
+ "h": 26
+ },
+ "frame": {
+ "x": 212,
+ "y": 98,
+ "w": 24,
+ "h": 26
+ }
+ },
+ {
+ "filename": "679",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 14,
+ "y": 4,
+ "w": 18,
+ "h": 24
+ },
+ "frame": {
+ "x": 236,
+ "y": 96,
+ "w": 18,
+ "h": 24
+ }
+ },
+ {
+ "filename": "666-high-plains",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 211,
+ "y": 124,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "698",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -1868,13 +1616,1063 @@
"spriteSourceSize": {
"x": 11,
"y": 4,
- "w": 22,
+ "w": 17,
"h": 24
},
"frame": {
- "x": 200,
- "y": 72,
- "w": 22,
+ "x": 237,
+ "y": 120,
+ "w": 17,
+ "h": 24
+ }
+ },
+ {
+ "filename": "698s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 4,
+ "w": 17,
+ "h": 24
+ },
+ "frame": {
+ "x": 237,
+ "y": 144,
+ "w": 17,
+ "h": 24
+ }
+ },
+ {
+ "filename": "676s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 1,
+ "w": 24,
+ "h": 27
+ },
+ "frame": {
+ "x": 132,
+ "y": 151,
+ "w": 24,
+ "h": 27
+ }
+ },
+ {
+ "filename": "666-icy-snow",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 133,
+ "y": 178,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-jungle",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 29,
+ "y": 203,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-marine",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 28,
+ "y": 228,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-meadow",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 28,
+ "y": 253,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-modern",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 28,
+ "y": 278,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-monsoon",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 55,
+ "y": 204,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-ocean",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 81,
+ "y": 203,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-poke-ball",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 107,
+ "y": 203,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-polar",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 133,
+ "y": 203,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-river",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 54,
+ "y": 229,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-sandstorm",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 54,
+ "y": 254,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-savanna",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 54,
+ "y": 279,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-sun",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 28,
+ "y": 303,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666-tundra",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 27,
+ "y": 328,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-archipelago",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 27,
+ "y": 353,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-continental",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 54,
+ "y": 304,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-elegant",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 53,
+ "y": 329,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-fancy",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 53,
+ "y": 354,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "711-large",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 4,
+ "w": 23,
+ "h": 25
+ },
+ "frame": {
+ "x": 30,
+ "y": 378,
+ "w": 23,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-garden",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 53,
+ "y": 379,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "711-super",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 23,
+ "h": 25
+ },
+ "frame": {
+ "x": 30,
+ "y": 403,
+ "w": 23,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-high-plains",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 53,
+ "y": 404,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "711s-large",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 4,
+ "w": 23,
+ "h": 25
+ },
+ "frame": {
+ "x": 30,
+ "y": 428,
+ "w": 23,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-icy-snow",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 53,
+ "y": 429,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "711s-super",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 23,
+ "h": 25
+ },
+ "frame": {
+ "x": 30,
+ "y": 453,
+ "w": 23,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-jungle",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 53,
+ "y": 454,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "657",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 8,
+ "w": 23,
+ "h": 22
+ },
+ "frame": {
+ "x": 30,
+ "y": 478,
+ "w": 23,
+ "h": 22
+ }
+ },
+ {
+ "filename": "699",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 1,
+ "w": 24,
+ "h": 27
+ },
+ "frame": {
+ "x": 30,
+ "y": 500,
+ "w": 24,
+ "h": 27
+ }
+ },
+ {
+ "filename": "708",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 7,
+ "w": 25,
+ "h": 21
+ },
+ "frame": {
+ "x": 53,
+ "y": 479,
+ "w": 25,
+ "h": 21
+ }
+ },
+ {
+ "filename": "699s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 1,
+ "w": 24,
+ "h": 27
+ },
+ "frame": {
+ "x": 54,
+ "y": 500,
+ "w": 24,
+ "h": 27
+ }
+ },
+ {
+ "filename": "676s-dandy",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 24,
+ "h": 26
+ },
+ "frame": {
+ "x": 56,
+ "y": 527,
+ "w": 24,
+ "h": 26
+ }
+ },
+ {
+ "filename": "655",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 5,
+ "w": 27,
+ "h": 23
+ },
+ "frame": {
+ "x": 159,
+ "y": 149,
+ "w": 27,
+ "h": 23
+ }
+ },
+ {
+ "filename": "655s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 5,
+ "w": 27,
+ "h": 23
+ },
+ "frame": {
+ "x": 186,
+ "y": 149,
+ "w": 27,
+ "h": 23
+ }
+ },
+ {
+ "filename": "676-matron",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 24,
+ "h": 25
+ },
+ "frame": {
+ "x": 213,
+ "y": 149,
+ "w": 24,
+ "h": 25
+ }
+ },
+ {
+ "filename": "650s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 6,
+ "w": 17,
+ "h": 22
+ },
+ "frame": {
+ "x": 237,
+ "y": 168,
+ "w": 17,
+ "h": 22
+ }
+ },
+ {
+ "filename": "666s-marine",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 159,
+ "y": 172,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-meadow",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 185,
+ "y": 172,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-modern",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 211,
+ "y": 174,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-monsoon",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 159,
+ "y": 197,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-ocean",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 185,
+ "y": 197,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-poke-ball",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 211,
+ "y": 199,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "710-large",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 8,
+ "w": 17,
+ "h": 20
+ },
+ "frame": {
+ "x": 237,
+ "y": 190,
+ "w": 17,
+ "h": 20
+ }
+ },
+ {
+ "filename": "710s-large",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 8,
+ "w": 17,
+ "h": 20
+ },
+ "frame": {
+ "x": 237,
+ "y": 210,
+ "w": 17,
+ "h": 20
+ }
+ },
+ {
+ "filename": "707s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 5,
+ "w": 27,
+ "h": 24
+ },
+ "frame": {
+ "x": 159,
+ "y": 222,
+ "w": 27,
+ "h": 24
+ }
+ },
+ {
+ "filename": "676-debutante",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 3,
+ "w": 25,
+ "h": 25
+ },
+ "frame": {
+ "x": 186,
+ "y": 222,
+ "w": 25,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-polar",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 211,
+ "y": 224,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "653",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 9,
+ "w": 17,
+ "h": 19
+ },
+ "frame": {
+ "x": 237,
+ "y": 230,
+ "w": 17,
+ "h": 19
+ }
+ },
+ {
+ "filename": "713",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 4,
+ "w": 27,
+ "h": 24
+ },
+ "frame": {
+ "x": 81,
+ "y": 228,
+ "w": 27,
"h": 24
}
},
@@ -1893,14 +2691,35 @@
"h": 24
},
"frame": {
- "x": 222,
- "y": 73,
+ "x": 108,
+ "y": 228,
"w": 27,
"h": 24
}
},
{
- "filename": "666-garden",
+ "filename": "676s-matron",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 24,
+ "h": 25
+ },
+ "frame": {
+ "x": 135,
+ "y": 228,
+ "w": 24,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-river",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -1914,14 +2733,14 @@
"h": 25
},
"frame": {
- "x": 181,
- "y": 98,
+ "x": 80,
+ "y": 252,
"w": 26,
"h": 25
}
},
{
- "filename": "666-high-plains",
+ "filename": "666s-sandstorm",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -1935,12 +2754,264 @@
"h": 25
},
"frame": {
- "x": 207,
- "y": 97,
+ "x": 80,
+ "y": 277,
"w": 26,
"h": 25
}
},
+ {
+ "filename": "666s-savanna",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 106,
+ "y": 252,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-sun",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 80,
+ "y": 302,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "666s-tundra",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 106,
+ "y": 277,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "676-kabuki",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 25,
+ "h": 25
+ },
+ "frame": {
+ "x": 106,
+ "y": 302,
+ "w": 25,
+ "h": 25
+ }
+ },
+ {
+ "filename": "676s-heart",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 25,
+ "h": 26
+ },
+ "frame": {
+ "x": 132,
+ "y": 253,
+ "w": 25,
+ "h": 26
+ }
+ },
+ {
+ "filename": "676-la-reine",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 3,
+ "w": 25,
+ "h": 25
+ },
+ "frame": {
+ "x": 132,
+ "y": 279,
+ "w": 25,
+ "h": 25
+ }
+ },
+ {
+ "filename": "676s-debutante",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 3,
+ "w": 25,
+ "h": 25
+ },
+ "frame": {
+ "x": 131,
+ "y": 304,
+ "w": 25,
+ "h": 25
+ }
+ },
+ {
+ "filename": "676s-kabuki",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 25,
+ "h": 25
+ },
+ "frame": {
+ "x": 159,
+ "y": 246,
+ "w": 25,
+ "h": 25
+ }
+ },
+ {
+ "filename": "676s-la-reine",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 3,
+ "w": 25,
+ "h": 25
+ },
+ "frame": {
+ "x": 157,
+ "y": 271,
+ "w": 25,
+ "h": 25
+ }
+ },
+ {
+ "filename": "709",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 25,
+ "h": 25
+ },
+ "frame": {
+ "x": 184,
+ "y": 247,
+ "w": 25,
+ "h": 25
+ }
+ },
+ {
+ "filename": "709s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 25,
+ "h": 25
+ },
+ "frame": {
+ "x": 182,
+ "y": 272,
+ "w": 25,
+ "h": 25
+ }
+ },
+ {
+ "filename": "676s-pharaoh",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 24,
+ "h": 26
+ },
+ "frame": {
+ "x": 209,
+ "y": 249,
+ "w": 24,
+ "h": 26
+ }
+ },
{
"filename": "711",
"rotated": false,
@@ -1957,7 +3028,7 @@
},
"frame": {
"x": 233,
- "y": 97,
+ "y": 249,
"w": 21,
"h": 23
}
@@ -1978,977 +3049,11 @@
},
"frame": {
"x": 233,
- "y": 120,
+ "y": 272,
"w": 21,
"h": 23
}
},
- {
- "filename": "666-icy-snow",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 207,
- "y": 122,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "651s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 21,
- "h": 22
- },
- "frame": {
- "x": 233,
- "y": 143,
- "w": 21,
- "h": 22
- }
- },
- {
- "filename": "659s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 3,
- "w": 16,
- "h": 25
- },
- "frame": {
- "x": 84,
- "y": 115,
- "w": 16,
- "h": 25
- }
- },
- {
- "filename": "666-jungle",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 100,
- "y": 117,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666-marine",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 126,
- "y": 118,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666-meadow",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 152,
- "y": 121,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666-modern",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 178,
- "y": 123,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "665",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 11,
- "w": 16,
- "h": 17
- },
- "frame": {
- "x": 84,
- "y": 140,
- "w": 16,
- "h": 17
- }
- },
- {
- "filename": "666-monsoon",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 100,
- "y": 142,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666-ocean",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 126,
- "y": 143,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666-poke-ball",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 152,
- "y": 146,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666-polar",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 178,
- "y": 148,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "683",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 5,
- "w": 19,
- "h": 23
- },
- "frame": {
- "x": 81,
- "y": 157,
- "w": 19,
- "h": 23
- }
- },
- {
- "filename": "666-river",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 204,
- "y": 147,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "676-pharaoh",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 24,
- "h": 26
- },
- "frame": {
- "x": 230,
- "y": 165,
- "w": 24,
- "h": 26
- }
- },
- {
- "filename": "666-sandstorm",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 204,
- "y": 172,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "676s-dandy",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 24,
- "h": 26
- },
- "frame": {
- "x": 230,
- "y": 191,
- "w": 24,
- "h": 26
- }
- },
- {
- "filename": "676s-heart",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 25,
- "h": 26
- },
- "frame": {
- "x": 81,
- "y": 180,
- "w": 25,
- "h": 26
- }
- },
- {
- "filename": "703",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 15,
- "w": 14,
- "h": 13
- },
- "frame": {
- "x": 100,
- "y": 167,
- "w": 14,
- "h": 13
- }
- },
- {
- "filename": "676s-pharaoh",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 24,
- "h": 26
- },
- "frame": {
- "x": 106,
- "y": 180,
- "w": 24,
- "h": 26
- }
- },
- {
- "filename": "695s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 4,
- "w": 22,
- "h": 24
- },
- "frame": {
- "x": 130,
- "y": 168,
- "w": 22,
- "h": 24
- }
- },
- {
- "filename": "666-savanna",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 152,
- "y": 171,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666-sun",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 178,
- "y": 173,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666-tundra",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 204,
- "y": 197,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "676-matron",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 3,
- "w": 24,
- "h": 25
- },
- "frame": {
- "x": 230,
- "y": 217,
- "w": 24,
- "h": 25
- }
- },
- {
- "filename": "662",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 8,
- "w": 22,
- "h": 20
- },
- "frame": {
- "x": 130,
- "y": 192,
- "w": 22,
- "h": 20
- }
- },
- {
- "filename": "666s-archipelago",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 152,
- "y": 196,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666s-continental",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 178,
- "y": 198,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666s-elegant",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 204,
- "y": 222,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "676s-matron",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 3,
- "w": 24,
- "h": 25
- },
- "frame": {
- "x": 230,
- "y": 242,
- "w": 24,
- "h": 25
- }
- },
- {
- "filename": "666s-fancy",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 54,
- "y": 510,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "701",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 9,
- "w": 23,
- "h": 19
- },
- "frame": {
- "x": 50,
- "y": 535,
- "w": 23,
- "h": 19
- }
- },
- {
- "filename": "701s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 9,
- "w": 23,
- "h": 19
- },
- "frame": {
- "x": 73,
- "y": 535,
- "w": 23,
- "h": 19
- }
- },
- {
- "filename": "666s-garden",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 78,
- "y": 338,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666s-high-plains",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 80,
- "y": 363,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666s-icy-snow",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 80,
- "y": 388,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666s-jungle",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 80,
- "y": 413,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666s-marine",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 80,
- "y": 438,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666s-meadow",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 80,
- "y": 463,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666s-modern",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 80,
- "y": 488,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "657",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 8,
- "w": 23,
- "h": 22
- },
- "frame": {
- "x": 80,
- "y": 513,
- "w": 23,
- "h": 22
- }
- },
- {
- "filename": "720",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 8,
- "w": 21,
- "h": 19
- },
- "frame": {
- "x": 96,
- "y": 535,
- "w": 21,
- "h": 19
- }
- },
- {
- "filename": "650",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 6,
- "w": 17,
- "h": 22
- },
- "frame": {
- "x": 103,
- "y": 513,
- "w": 17,
- "h": 22
- }
- },
- {
- "filename": "720s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 8,
- "w": 21,
- "h": 19
- },
- "frame": {
- "x": 117,
- "y": 535,
- "w": 21,
- "h": 19
- }
- },
- {
- "filename": "666s-monsoon",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 104,
- "y": 206,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "662s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 8,
- "w": 22,
- "h": 20
- },
- "frame": {
- "x": 130,
- "y": 212,
- "w": 22,
- "h": 20
- }
- },
{
"filename": "687",
"rotated": false,
@@ -2964,14 +3069,14 @@
"h": 25
},
"frame": {
- "x": 80,
- "y": 207,
+ "x": 207,
+ "y": 275,
"w": 24,
"h": 25
}
},
{
- "filename": "666s-ocean",
+ "filename": "657s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -2979,16 +3084,37 @@
"h": 30
},
"spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
+ "x": 10,
+ "y": 8,
+ "w": 23,
+ "h": 22
},
"frame": {
- "x": 80,
- "y": 232,
- "w": 26,
- "h": 25
+ "x": 231,
+ "y": 295,
+ "w": 23,
+ "h": 22
+ }
+ },
+ {
+ "filename": "708s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 7,
+ "w": 25,
+ "h": 21
+ },
+ "frame": {
+ "x": 157,
+ "y": 296,
+ "w": 25,
+ "h": 21
}
},
{
@@ -3006,96 +3132,12 @@
"h": 25
},
"frame": {
- "x": 106,
- "y": 231,
+ "x": 182,
+ "y": 297,
"w": 24,
"h": 25
}
},
- {
- "filename": "666s-poke-ball",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 130,
- "y": 232,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "700",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 5,
- "w": 22,
- "h": 23
- },
- "frame": {
- "x": 156,
- "y": 221,
- "w": 22,
- "h": 23
- }
- },
- {
- "filename": "666s-polar",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 178,
- "y": 223,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666s-river",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 204,
- "y": 247,
- "w": 26,
- "h": 25
- }
- },
{
"filename": "706",
"rotated": false,
@@ -3111,75 +3153,12 @@
"h": 24
},
"frame": {
- "x": 230,
- "y": 267,
+ "x": 206,
+ "y": 300,
"w": 24,
"h": 24
}
},
- {
- "filename": "700s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 5,
- "w": 22,
- "h": 23
- },
- "frame": {
- "x": 156,
- "y": 244,
- "w": 22,
- "h": 23
- }
- },
- {
- "filename": "666s-sandstorm",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 178,
- "y": 248,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666s-savanna",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 204,
- "y": 272,
- "w": 26,
- "h": 25
- }
- },
{
"filename": "706s",
"rotated": false,
@@ -3196,116 +3175,11 @@
},
"frame": {
"x": 230,
- "y": 291,
+ "y": 317,
"w": 24,
"h": 24
}
},
- {
- "filename": "685s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 5,
- "w": 20,
- "h": 23
- },
- "frame": {
- "x": 81,
- "y": 315,
- "w": 20,
- "h": 23
- }
- },
- {
- "filename": "666s-sun",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 80,
- "y": 257,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "666s-tundra",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 79,
- "y": 282,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "711-large",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 4,
- "w": 23,
- "h": 25
- },
- "frame": {
- "x": 106,
- "y": 256,
- "w": 23,
- "h": 25
- }
- },
- {
- "filename": "676-debutante",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 25,
- "h": 25
- },
- "frame": {
- "x": 129,
- "y": 257,
- "w": 25,
- "h": 25
- }
- },
{
"filename": "692",
"rotated": false,
@@ -3321,14 +3195,14 @@
"h": 17
},
"frame": {
- "x": 154,
- "y": 267,
+ "x": 156,
+ "y": 317,
"w": 24,
"h": 17
}
},
{
- "filename": "676-kabuki",
+ "filename": "692s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -3337,246 +3211,15 @@
},
"spriteSourceSize": {
"x": 8,
- "y": 3,
- "w": 25,
- "h": 25
+ "y": 11,
+ "w": 24,
+ "h": 17
},
"frame": {
- "x": 178,
- "y": 273,
- "w": 25,
- "h": 25
- }
- },
- {
- "filename": "676-la-reine",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 25,
- "h": 25
- },
- "frame": {
- "x": 105,
- "y": 282,
- "w": 25,
- "h": 25
- }
- },
- {
- "filename": "711-super",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 3,
- "w": 23,
- "h": 25
- },
- "frame": {
- "x": 130,
- "y": 282,
- "w": 23,
- "h": 25
- }
- },
- {
- "filename": "676s-debutante",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 25,
- "h": 25
- },
- "frame": {
- "x": 153,
- "y": 284,
- "w": 25,
- "h": 25
- }
- },
- {
- "filename": "676s-kabuki",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 3,
- "w": 25,
- "h": 25
- },
- "frame": {
- "x": 101,
- "y": 307,
- "w": 25,
- "h": 25
- }
- },
- {
- "filename": "676s-la-reine",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 25,
- "h": 25
- },
- "frame": {
- "x": 126,
- "y": 307,
- "w": 25,
- "h": 25
- }
- },
- {
- "filename": "709",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 3,
- "w": 25,
- "h": 25
- },
- "frame": {
- "x": 151,
- "y": 309,
- "w": 25,
- "h": 25
- }
- },
- {
- "filename": "709s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 3,
- "w": 25,
- "h": 25
- },
- "frame": {
- "x": 104,
- "y": 332,
- "w": 25,
- "h": 25
- }
- },
- {
- "filename": "678-female",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 21,
- "h": 22
- },
- "frame": {
- "x": 129,
- "y": 332,
- "w": 21,
- "h": 22
- }
- },
- {
- "filename": "657s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 8,
- "w": 23,
- "h": 22
- },
- "frame": {
- "x": 150,
- "y": 334,
- "w": 23,
- "h": 22
- }
- },
- {
- "filename": "711s-large",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 4,
- "w": 23,
- "h": 25
- },
- "frame": {
- "x": 106,
- "y": 357,
- "w": 23,
- "h": 25
- }
- },
- {
- "filename": "711s-super",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 3,
- "w": 23,
- "h": 25
- },
- "frame": {
- "x": 106,
- "y": 382,
- "w": 23,
- "h": 25
+ "x": 180,
+ "y": 322,
+ "w": 24,
+ "h": 17
}
},
{
@@ -3594,12 +3237,75 @@
"h": 22
},
"frame": {
- "x": 106,
- "y": 407,
+ "x": 204,
+ "y": 324,
"w": 23,
"h": 22
}
},
+ {
+ "filename": "659",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 3,
+ "w": 16,
+ "h": 25
+ },
+ "frame": {
+ "x": 78,
+ "y": 479,
+ "w": 16,
+ "h": 25
+ }
+ },
+ {
+ "filename": "683s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 5,
+ "w": 19,
+ "h": 23
+ },
+ "frame": {
+ "x": 78,
+ "y": 504,
+ "w": 19,
+ "h": 23
+ }
+ },
+ {
+ "filename": "659s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 3,
+ "w": 16,
+ "h": 25
+ },
+ "frame": {
+ "x": 80,
+ "y": 527,
+ "w": 16,
+ "h": 25
+ }
+ },
{
"filename": "673s",
"rotated": false,
@@ -3615,14 +3321,119 @@
"h": 22
},
"frame": {
- "x": 106,
- "y": 429,
+ "x": 227,
+ "y": 341,
"w": 23,
"h": 22
}
},
{
- "filename": "678",
+ "filename": "679s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 14,
+ "y": 4,
+ "w": 18,
+ "h": 24
+ },
+ "frame": {
+ "x": 79,
+ "y": 329,
+ "w": 18,
+ "h": 24
+ }
+ },
+ {
+ "filename": "695",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 4,
+ "w": 22,
+ "h": 24
+ },
+ "frame": {
+ "x": 97,
+ "y": 327,
+ "w": 22,
+ "h": 24
+ }
+ },
+ {
+ "filename": "695s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 4,
+ "w": 22,
+ "h": 24
+ },
+ "frame": {
+ "x": 79,
+ "y": 353,
+ "w": 22,
+ "h": 24
+ }
+ },
+ {
+ "filename": "700",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 5,
+ "w": 22,
+ "h": 23
+ },
+ "frame": {
+ "x": 79,
+ "y": 377,
+ "w": 22,
+ "h": 23
+ }
+ },
+ {
+ "filename": "700s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 5,
+ "w": 22,
+ "h": 23
+ },
+ "frame": {
+ "x": 79,
+ "y": 400,
+ "w": 22,
+ "h": 23
+ }
+ },
+ {
+ "filename": "651",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -3636,56 +3447,14 @@
"h": 22
},
"frame": {
- "x": 129,
- "y": 354,
+ "x": 79,
+ "y": 423,
"w": 21,
"h": 22
}
},
{
- "filename": "2670",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 7,
- "w": 23,
- "h": 21
- },
- "frame": {
- "x": 106,
- "y": 451,
- "w": 23,
- "h": 21
- }
- },
- {
- "filename": "2670s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 7,
- "w": 23,
- "h": 21
- },
- "frame": {
- "x": 106,
- "y": 472,
- "w": 23,
- "h": 21
- }
- },
- {
- "filename": "667",
+ "filename": "651s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -3694,15 +3463,120 @@
},
"spriteSourceSize": {
"x": 10,
- "y": 8,
+ "y": 6,
"w": 21,
- "h": 20
+ "h": 22
},
"frame": {
- "x": 106,
- "y": 493,
+ "x": 79,
+ "y": 445,
"w": 21,
- "h": 20
+ "h": 22
+ }
+ },
+ {
+ "filename": "685",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 5,
+ "w": 20,
+ "h": 23
+ },
+ "frame": {
+ "x": 101,
+ "y": 351,
+ "w": 20,
+ "h": 23
+ }
+ },
+ {
+ "filename": "685s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 5,
+ "w": 20,
+ "h": 23
+ },
+ "frame": {
+ "x": 101,
+ "y": 374,
+ "w": 20,
+ "h": 23
+ }
+ },
+ {
+ "filename": "654",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 20,
+ "h": 22
+ },
+ "frame": {
+ "x": 101,
+ "y": 397,
+ "w": 20,
+ "h": 22
+ }
+ },
+ {
+ "filename": "678-female",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 21,
+ "h": 22
+ },
+ "frame": {
+ "x": 119,
+ "y": 329,
+ "w": 21,
+ "h": 22
+ }
+ },
+ {
+ "filename": "688",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 4,
+ "w": 16,
+ "h": 24
+ },
+ "frame": {
+ "x": 140,
+ "y": 329,
+ "w": 16,
+ "h": 24
}
},
{
@@ -3720,12 +3594,117 @@
"h": 22
},
"frame": {
- "x": 120,
- "y": 513,
+ "x": 121,
+ "y": 351,
"w": 19,
"h": 22
}
},
+ {
+ "filename": "701",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 9,
+ "w": 23,
+ "h": 19
+ },
+ "frame": {
+ "x": 156,
+ "y": 334,
+ "w": 23,
+ "h": 19
+ }
+ },
+ {
+ "filename": "2670",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 7,
+ "w": 23,
+ "h": 21
+ },
+ "frame": {
+ "x": 140,
+ "y": 353,
+ "w": 23,
+ "h": 21
+ }
+ },
+ {
+ "filename": "670-orange",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 19,
+ "h": 22
+ },
+ "frame": {
+ "x": 121,
+ "y": 373,
+ "w": 19,
+ "h": 22
+ }
+ },
+ {
+ "filename": "2670s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 7,
+ "w": 23,
+ "h": 21
+ },
+ "frame": {
+ "x": 140,
+ "y": 374,
+ "w": 23,
+ "h": 21
+ }
+ },
+ {
+ "filename": "678",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 21,
+ "h": 22
+ },
+ "frame": {
+ "x": 121,
+ "y": 395,
+ "w": 21,
+ "h": 22
+ }
+ },
{
"filename": "678s-female",
"rotated": false,
@@ -3741,12 +3720,33 @@
"h": 22
},
"frame": {
- "x": 129,
- "y": 376,
+ "x": 142,
+ "y": 395,
"w": 21,
"h": 22
}
},
+ {
+ "filename": "688s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 4,
+ "w": 16,
+ "h": 24
+ },
+ "frame": {
+ "x": 163,
+ "y": 353,
+ "w": 16,
+ "h": 24
+ }
+ },
{
"filename": "678s",
"rotated": false,
@@ -3762,12 +3762,180 @@
"h": 22
},
"frame": {
- "x": 150,
- "y": 356,
+ "x": 179,
+ "y": 339,
"w": 21,
"h": 22
}
},
+ {
+ "filename": "654s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 20,
+ "h": 22
+ },
+ "frame": {
+ "x": 163,
+ "y": 377,
+ "w": 20,
+ "h": 22
+ }
+ },
+ {
+ "filename": "662",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 8,
+ "w": 22,
+ "h": 20
+ },
+ "frame": {
+ "x": 163,
+ "y": 399,
+ "w": 22,
+ "h": 20
+ }
+ },
+ {
+ "filename": "684",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 12,
+ "w": 17,
+ "h": 16
+ },
+ "frame": {
+ "x": 179,
+ "y": 361,
+ "w": 17,
+ "h": 16
+ }
+ },
+ {
+ "filename": "670-red",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 19,
+ "h": 22
+ },
+ "frame": {
+ "x": 183,
+ "y": 377,
+ "w": 19,
+ "h": 22
+ }
+ },
+ {
+ "filename": "662s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 8,
+ "w": 22,
+ "h": 20
+ },
+ "frame": {
+ "x": 185,
+ "y": 399,
+ "w": 22,
+ "h": 20
+ }
+ },
+ {
+ "filename": "696",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 12,
+ "w": 20,
+ "h": 17
+ },
+ "frame": {
+ "x": 207,
+ "y": 346,
+ "w": 20,
+ "h": 17
+ }
+ },
+ {
+ "filename": "701s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 9,
+ "w": 23,
+ "h": 19
+ },
+ "frame": {
+ "x": 121,
+ "y": 417,
+ "w": 23,
+ "h": 19
+ }
+ },
+ {
+ "filename": "696s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 12,
+ "w": 20,
+ "h": 17
+ },
+ "frame": {
+ "x": 101,
+ "y": 419,
+ "w": 20,
+ "h": 17
+ }
+ },
{
"filename": "719",
"rotated": false,
@@ -3783,8 +3951,8 @@
"h": 22
},
"frame": {
- "x": 129,
- "y": 398,
+ "x": 100,
+ "y": 436,
"w": 21,
"h": 22
}
@@ -3804,14 +3972,14 @@
"h": 22
},
"frame": {
- "x": 150,
- "y": 378,
+ "x": 121,
+ "y": 436,
"w": 21,
"h": 22
}
},
{
- "filename": "679",
+ "filename": "670-white",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -3819,20 +3987,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 14,
- "y": 4,
- "w": 18,
- "h": 24
+ "x": 10,
+ "y": 6,
+ "w": 19,
+ "h": 22
},
"frame": {
- "x": 129,
- "y": 420,
- "w": 18,
- "h": 24
+ "x": 144,
+ "y": 417,
+ "w": 19,
+ "h": 22
}
},
{
- "filename": "679s",
+ "filename": "667",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -3840,16 +4008,16 @@
"h": 30
},
"spriteSourceSize": {
- "x": 14,
- "y": 4,
- "w": 18,
- "h": 24
+ "x": 10,
+ "y": 8,
+ "w": 21,
+ "h": 20
},
"frame": {
- "x": 129,
- "y": 444,
- "w": 18,
- "h": 24
+ "x": 163,
+ "y": 419,
+ "w": 21,
+ "h": 20
}
},
{
@@ -3867,117 +4035,12 @@
"h": 20
},
"frame": {
- "x": 150,
- "y": 400,
+ "x": 184,
+ "y": 419,
"w": 21,
"h": 20
}
},
- {
- "filename": "683s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 5,
- "w": 19,
- "h": 23
- },
- "frame": {
- "x": 147,
- "y": 420,
- "w": 19,
- "h": 23
- }
- },
- {
- "filename": "670-orange",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 19,
- "h": 22
- },
- "frame": {
- "x": 147,
- "y": 443,
- "w": 19,
- "h": 22
- }
- },
- {
- "filename": "698",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 4,
- "w": 17,
- "h": 24
- },
- "frame": {
- "x": 129,
- "y": 468,
- "w": 17,
- "h": 24
- }
- },
- {
- "filename": "656",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 10,
- "w": 18,
- "h": 19
- },
- "frame": {
- "x": 138,
- "y": 535,
- "w": 18,
- "h": 19
- }
- },
- {
- "filename": "692s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 11,
- "w": 24,
- "h": 17
- },
- "frame": {
- "x": 178,
- "y": 298,
- "w": 24,
- "h": 17
- }
- },
{
"filename": "714",
"rotated": false,
@@ -3993,8 +4056,29 @@
"h": 20
},
"frame": {
- "x": 176,
- "y": 315,
+ "x": 142,
+ "y": 439,
+ "w": 21,
+ "h": 20
+ }
+ },
+ {
+ "filename": "714s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 6,
+ "w": 21,
+ "h": 20
+ },
+ "frame": {
+ "x": 163,
+ "y": 439,
"w": 21,
"h": 20
}
@@ -4014,14 +4098,14 @@
"h": 21
},
"frame": {
- "x": 173,
- "y": 335,
+ "x": 184,
+ "y": 439,
"w": 20,
"h": 21
}
},
{
- "filename": "670-red",
+ "filename": "702",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4029,20 +4113,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 19,
- "h": 22
+ "x": 8,
+ "y": 11,
+ "w": 22,
+ "h": 17
},
"frame": {
- "x": 171,
- "y": 356,
- "w": 19,
- "h": 22
+ "x": 100,
+ "y": 458,
+ "w": 22,
+ "h": 17
}
},
{
- "filename": "670-white",
+ "filename": "710s-super",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4051,15 +4135,57 @@
},
"spriteSourceSize": {
"x": 10,
- "y": 6,
- "w": 19,
- "h": 22
+ "y": 7,
+ "w": 20,
+ "h": 21
},
"frame": {
- "x": 171,
- "y": 378,
- "w": 19,
- "h": 22
+ "x": 122,
+ "y": 458,
+ "w": 20,
+ "h": 21
+ }
+ },
+ {
+ "filename": "720",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 8,
+ "w": 21,
+ "h": 19
+ },
+ "frame": {
+ "x": 142,
+ "y": 459,
+ "w": 21,
+ "h": 19
+ }
+ },
+ {
+ "filename": "720s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 8,
+ "w": 21,
+ "h": 19
+ },
+ "frame": {
+ "x": 163,
+ "y": 459,
+ "w": 21,
+ "h": 19
}
},
{
@@ -4077,8 +4203,8 @@
"h": 22
},
"frame": {
- "x": 171,
- "y": 400,
+ "x": 184,
+ "y": 460,
"w": 19,
"h": 22
}
@@ -4098,8 +4224,8 @@
"h": 22
},
"frame": {
- "x": 166,
- "y": 422,
+ "x": 94,
+ "y": 475,
"w": 19,
"h": 22
}
@@ -4119,12 +4245,327 @@
"h": 22
},
"frame": {
- "x": 166,
- "y": 444,
+ "x": 97,
+ "y": 497,
"w": 19,
"h": 22
}
},
+ {
+ "filename": "702s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 11,
+ "w": 22,
+ "h": 17
+ },
+ "frame": {
+ "x": 113,
+ "y": 479,
+ "w": 22,
+ "h": 17
+ }
+ },
+ {
+ "filename": "670s-red",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 19,
+ "h": 22
+ },
+ "frame": {
+ "x": 116,
+ "y": 496,
+ "w": 19,
+ "h": 22
+ }
+ },
+ {
+ "filename": "670s-white",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 19,
+ "h": 22
+ },
+ "frame": {
+ "x": 135,
+ "y": 479,
+ "w": 19,
+ "h": 22
+ }
+ },
+ {
+ "filename": "670s-yellow",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 19,
+ "h": 22
+ },
+ "frame": {
+ "x": 154,
+ "y": 478,
+ "w": 19,
+ "h": 22
+ }
+ },
+ {
+ "filename": "656",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 10,
+ "w": 18,
+ "h": 19
+ },
+ "frame": {
+ "x": 135,
+ "y": 501,
+ "w": 18,
+ "h": 19
+ }
+ },
+ {
+ "filename": "656s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 10,
+ "w": 18,
+ "h": 19
+ },
+ "frame": {
+ "x": 97,
+ "y": 519,
+ "w": 18,
+ "h": 19
+ }
+ },
+ {
+ "filename": "653s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 9,
+ "w": 17,
+ "h": 19
+ },
+ "frame": {
+ "x": 96,
+ "y": 538,
+ "w": 17,
+ "h": 19
+ }
+ },
+ {
+ "filename": "710",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 9,
+ "w": 17,
+ "h": 19
+ },
+ "frame": {
+ "x": 113,
+ "y": 538,
+ "w": 17,
+ "h": 19
+ }
+ },
+ {
+ "filename": "674",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 9,
+ "w": 15,
+ "h": 19
+ },
+ "frame": {
+ "x": 115,
+ "y": 519,
+ "w": 15,
+ "h": 19
+ }
+ },
+ {
+ "filename": "711-small",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 6,
+ "w": 18,
+ "h": 22
+ },
+ "frame": {
+ "x": 130,
+ "y": 520,
+ "w": 18,
+ "h": 22
+ }
+ },
+ {
+ "filename": "661",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 13,
+ "w": 18,
+ "h": 15
+ },
+ "frame": {
+ "x": 130,
+ "y": 542,
+ "w": 18,
+ "h": 15
+ }
+ },
+ {
+ "filename": "705",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 13,
+ "y": 6,
+ "w": 15,
+ "h": 22
+ },
+ "frame": {
+ "x": 148,
+ "y": 520,
+ "w": 15,
+ "h": 22
+ }
+ },
+ {
+ "filename": "661s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 13,
+ "w": 18,
+ "h": 15
+ },
+ "frame": {
+ "x": 148,
+ "y": 542,
+ "w": 18,
+ "h": 15
+ }
+ },
+ {
+ "filename": "674s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 9,
+ "w": 15,
+ "h": 19
+ },
+ "frame": {
+ "x": 153,
+ "y": 501,
+ "w": 15,
+ "h": 19
+ }
+ },
+ {
+ "filename": "705s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 13,
+ "y": 6,
+ "w": 15,
+ "h": 22
+ },
+ "frame": {
+ "x": 163,
+ "y": 520,
+ "w": 15,
+ "h": 22
+ }
+ },
{
"filename": "686",
"rotated": false,
@@ -4140,14 +4581,14 @@
"h": 20
},
"frame": {
- "x": 127,
- "y": 493,
+ "x": 168,
+ "y": 500,
"w": 18,
"h": 20
}
},
{
- "filename": "650s",
+ "filename": "672",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4155,16 +4596,16 @@
"h": 30
},
"spriteSourceSize": {
- "x": 12,
- "y": 6,
+ "x": 11,
+ "y": 10,
"w": 17,
- "h": 22
+ "h": 18
},
"frame": {
- "x": 139,
- "y": 513,
+ "x": 173,
+ "y": 482,
"w": 17,
- "h": 22
+ "h": 18
}
},
{
@@ -4182,119 +4623,14 @@
"h": 21
},
"frame": {
- "x": 145,
- "y": 492,
+ "x": 190,
+ "y": 482,
"w": 14,
"h": 21
}
},
{
- "filename": "688",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 4,
- "w": 16,
- "h": 24
- },
- "frame": {
- "x": 146,
- "y": 468,
- "w": 16,
- "h": 24
- }
- },
- {
- "filename": "670s-red",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 19,
- "h": 22
- },
- "frame": {
- "x": 162,
- "y": 466,
- "w": 19,
- "h": 22
- }
- },
- {
- "filename": "688s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 4,
- "w": 16,
- "h": 24
- },
- "frame": {
- "x": 185,
- "y": 422,
- "w": 16,
- "h": 24
- }
- },
- {
- "filename": "670s-white",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 19,
- "h": 22
- },
- "frame": {
- "x": 185,
- "y": 446,
- "w": 19,
- "h": 22
- }
- },
- {
- "filename": "714s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 6,
- "w": 21,
- "h": 20
- },
- "frame": {
- "x": 181,
- "y": 468,
- "w": 21,
- "h": 20
- }
- },
- {
- "filename": "698s",
+ "filename": "686s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4303,120 +4639,15 @@
},
"spriteSourceSize": {
"x": 11,
- "y": 4,
- "w": 17,
- "h": 24
- },
- "frame": {
- "x": 156,
- "y": 513,
- "w": 17,
- "h": 24
- }
- },
- {
- "filename": "702",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 11,
- "w": 22,
- "h": 17
- },
- "frame": {
- "x": 156,
- "y": 537,
- "w": 22,
- "h": 17
- }
- },
- {
- "filename": "664s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 7,
- "w": 14,
- "h": 21
- },
- "frame": {
- "x": 159,
- "y": 492,
- "w": 14,
- "h": 21
- }
- },
- {
- "filename": "670s-yellow",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 19,
- "h": 22
- },
- "frame": {
- "x": 173,
- "y": 488,
- "w": 19,
- "h": 22
- }
- },
- {
- "filename": "710s-super",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 7,
- "w": 20,
- "h": 21
- },
- "frame": {
- "x": 173,
- "y": 510,
- "w": 20,
- "h": 21
- }
- },
- {
- "filename": "711-small",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 6,
+ "y": 8,
"w": 18,
- "h": 22
+ "h": 20
},
"frame": {
- "x": 192,
- "y": 488,
+ "x": 186,
+ "y": 503,
"w": 18,
- "h": 22
+ "h": 20
}
},
{
@@ -4434,14 +4665,14 @@
"h": 21
},
"frame": {
- "x": 193,
- "y": 510,
+ "x": 178,
+ "y": 523,
"w": 18,
"h": 21
}
},
{
- "filename": "696",
+ "filename": "664s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4449,16 +4680,58 @@
"h": 30
},
"spriteSourceSize": {
- "x": 10,
- "y": 12,
- "w": 20,
- "h": 17
+ "x": 13,
+ "y": 7,
+ "w": 14,
+ "h": 21
},
"frame": {
- "x": 210,
- "y": 297,
- "w": 20,
- "h": 17
+ "x": 196,
+ "y": 523,
+ "w": 14,
+ "h": 21
+ }
+ },
+ {
+ "filename": "703",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 13,
+ "y": 15,
+ "w": 14,
+ "h": 13
+ },
+ "frame": {
+ "x": 166,
+ "y": 544,
+ "w": 14,
+ "h": 13
+ }
+ },
+ {
+ "filename": "703s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 13,
+ "y": 15,
+ "w": 14,
+ "h": 13
+ },
+ "frame": {
+ "x": 180,
+ "y": 544,
+ "w": 14,
+ "h": 13
}
},
{
@@ -4476,8 +4749,8 @@
"h": 22
},
"frame": {
- "x": 178,
- "y": 531,
+ "x": 203,
+ "y": 460,
"w": 18,
"h": 22
}
@@ -4497,243 +4770,12 @@
"h": 21
},
"frame": {
- "x": 196,
- "y": 531,
+ "x": 204,
+ "y": 439,
"w": 18,
"h": 21
}
},
- {
- "filename": "686s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 8,
- "w": 18,
- "h": 20
- },
- "frame": {
- "x": 202,
- "y": 468,
- "w": 18,
- "h": 20
- }
- },
- {
- "filename": "710-large",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 8,
- "w": 17,
- "h": 20
- },
- "frame": {
- "x": 210,
- "y": 488,
- "w": 17,
- "h": 20
- }
- },
- {
- "filename": "710s-large",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 8,
- "w": 17,
- "h": 20
- },
- "frame": {
- "x": 211,
- "y": 508,
- "w": 17,
- "h": 20
- }
- },
- {
- "filename": "653",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 9,
- "w": 17,
- "h": 19
- },
- "frame": {
- "x": 214,
- "y": 528,
- "w": 17,
- "h": 19
- }
- },
- {
- "filename": "653s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 9,
- "w": 17,
- "h": 19
- },
- "frame": {
- "x": 197,
- "y": 315,
- "w": 17,
- "h": 19
- }
- },
- {
- "filename": "677",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 10,
- "w": 16,
- "h": 18
- },
- "frame": {
- "x": 214,
- "y": 314,
- "w": 16,
- "h": 18
- }
- },
- {
- "filename": "702s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 11,
- "w": 22,
- "h": 17
- },
- "frame": {
- "x": 230,
- "y": 315,
- "w": 22,
- "h": 17
- }
- },
- {
- "filename": "656s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 10,
- "w": 18,
- "h": 19
- },
- "frame": {
- "x": 193,
- "y": 335,
- "w": 18,
- "h": 19
- }
- },
- {
- "filename": "674",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 9,
- "w": 15,
- "h": 19
- },
- "frame": {
- "x": 190,
- "y": 356,
- "w": 15,
- "h": 19
- }
- },
- {
- "filename": "674s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 9,
- "w": 15,
- "h": 19
- },
- "frame": {
- "x": 190,
- "y": 375,
- "w": 15,
- "h": 19
- }
- },
- {
- "filename": "710",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 9,
- "w": 17,
- "h": 19
- },
- "frame": {
- "x": 190,
- "y": 394,
- "w": 17,
- "h": 19
- }
- },
{
"filename": "710s",
"rotated": false,
@@ -4749,8 +4791,8 @@
"h": 19
},
"frame": {
- "x": 205,
- "y": 354,
+ "x": 204,
+ "y": 482,
"w": 17,
"h": 19
}
@@ -4770,8 +4812,8 @@
"h": 18
},
"frame": {
- "x": 205,
- "y": 373,
+ "x": 204,
+ "y": 501,
"w": 17,
"h": 18
}
@@ -4791,14 +4833,14 @@
"h": 18
},
"frame": {
- "x": 207,
- "y": 391,
+ "x": 210,
+ "y": 519,
"w": 15,
"h": 18
}
},
{
- "filename": "696s",
+ "filename": "665",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4806,18 +4848,39 @@
"h": 30
},
"spriteSourceSize": {
- "x": 10,
- "y": 12,
- "w": 20,
+ "x": 12,
+ "y": 11,
+ "w": 16,
"h": 17
},
"frame": {
- "x": 214,
- "y": 332,
- "w": 20,
+ "x": 210,
+ "y": 537,
+ "w": 16,
"h": 17
}
},
+ {
+ "filename": "704",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 14,
+ "y": 14,
+ "w": 12,
+ "h": 14
+ },
+ "frame": {
+ "x": 196,
+ "y": 363,
+ "w": 12,
+ "h": 14
+ }
+ },
{
"filename": "694",
"rotated": false,
@@ -4833,8 +4896,8 @@
"h": 17
},
"frame": {
- "x": 234,
- "y": 332,
+ "x": 208,
+ "y": 363,
"w": 18,
"h": 17
}
@@ -4854,33 +4917,12 @@
"h": 17
},
"frame": {
- "x": 222,
- "y": 349,
+ "x": 226,
+ "y": 363,
"w": 18,
"h": 17
}
},
- {
- "filename": "703s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 15,
- "w": 14,
- "h": 13
- },
- "frame": {
- "x": 240,
- "y": 349,
- "w": 14,
- "h": 13
- }
- },
{
"filename": "712",
"rotated": false,
@@ -4896,33 +4938,12 @@
"h": 18
},
"frame": {
- "x": 222,
- "y": 366,
+ "x": 202,
+ "y": 380,
"w": 17,
"h": 18
}
},
- {
- "filename": "669-orange",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 10,
- "w": 15,
- "h": 18
- },
- "frame": {
- "x": 239,
- "y": 366,
- "w": 15,
- "h": 18
- }
- },
{
"filename": "712s",
"rotated": false,
@@ -4938,12 +4959,54 @@
"h": 18
},
"frame": {
- "x": 222,
- "y": 384,
+ "x": 219,
+ "y": 380,
"w": 17,
"h": 18
}
},
+ {
+ "filename": "677",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 10,
+ "w": 16,
+ "h": 18
+ },
+ "frame": {
+ "x": 207,
+ "y": 398,
+ "w": 16,
+ "h": 18
+ }
+ },
+ {
+ "filename": "669-orange",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 13,
+ "y": 10,
+ "w": 15,
+ "h": 18
+ },
+ "frame": {
+ "x": 223,
+ "y": 398,
+ "w": 15,
+ "h": 18
+ }
+ },
{
"filename": "669-red",
"rotated": false,
@@ -4959,75 +5022,12 @@
"h": 18
},
"frame": {
- "x": 239,
- "y": 384,
+ "x": 236,
+ "y": 380,
"w": 15,
"h": 18
}
},
- {
- "filename": "661",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 13,
- "w": 18,
- "h": 15
- },
- "frame": {
- "x": 222,
- "y": 402,
- "w": 18,
- "h": 15
- }
- },
- {
- "filename": "669-white",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 10,
- "w": 15,
- "h": 18
- },
- "frame": {
- "x": 207,
- "y": 409,
- "w": 15,
- "h": 18
- }
- },
- {
- "filename": "661s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 13,
- "w": 18,
- "h": 15
- },
- "frame": {
- "x": 222,
- "y": 417,
- "w": 18,
- "h": 15
- }
- },
{
"filename": "677s",
"rotated": false,
@@ -5043,14 +5043,14 @@
"h": 18
},
"frame": {
- "x": 201,
- "y": 427,
+ "x": 238,
+ "y": 398,
"w": 16,
"h": 18
}
},
{
- "filename": "669-yellow",
+ "filename": "669-white",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -5064,54 +5064,12 @@
"h": 18
},
"frame": {
- "x": 204,
- "y": 445,
+ "x": 205,
+ "y": 419,
"w": 15,
"h": 18
}
},
- {
- "filename": "704",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 14,
- "w": 12,
- "h": 14
- },
- "frame": {
- "x": 240,
- "y": 402,
- "w": 12,
- "h": 14
- }
- },
- {
- "filename": "704s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 14,
- "w": 12,
- "h": 14
- },
- "frame": {
- "x": 240,
- "y": 416,
- "w": 12,
- "h": 14
- }
- },
{
"filename": "665s",
"rotated": false,
@@ -5127,8 +5085,8 @@
"h": 17
},
"frame": {
- "x": 219,
- "y": 432,
+ "x": 220,
+ "y": 416,
"w": 16,
"h": 17
}
@@ -5148,12 +5106,33 @@
"h": 16
},
"frame": {
- "x": 219,
- "y": 449,
+ "x": 236,
+ "y": 416,
"w": 17,
"h": 16
}
},
+ {
+ "filename": "669-yellow",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 13,
+ "y": 10,
+ "w": 15,
+ "h": 18
+ },
+ "frame": {
+ "x": 222,
+ "y": 433,
+ "w": 15,
+ "h": 18
+ }
+ },
{
"filename": "669s-blue",
"rotated": false,
@@ -5169,31 +5148,10 @@
"h": 18
},
"frame": {
- "x": 220,
- "y": 465,
- "w": 15,
- "h": 18
- }
- },
- {
- "filename": "710-small",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 9,
- "w": 15,
- "h": 17
- },
- "frame": {
- "x": 235,
+ "x": 237,
"y": 432,
"w": 15,
- "h": 17
+ "h": 18
}
},
{
@@ -5211,8 +5169,8 @@
"h": 18
},
"frame": {
- "x": 236,
- "y": 449,
+ "x": 222,
+ "y": 451,
"w": 15,
"h": 18
}
@@ -5232,8 +5190,8 @@
"h": 18
},
"frame": {
- "x": 235,
- "y": 467,
+ "x": 237,
+ "y": 450,
"w": 15,
"h": 18
}
@@ -5253,8 +5211,8 @@
"h": 18
},
"frame": {
- "x": 227,
- "y": 485,
+ "x": 221,
+ "y": 469,
"w": 15,
"h": 18
}
@@ -5274,12 +5232,54 @@
"h": 18
},
"frame": {
- "x": 228,
- "y": 503,
+ "x": 221,
+ "y": 487,
"w": 15,
"h": 18
}
},
+ {
+ "filename": "704s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 14,
+ "y": 14,
+ "w": 12,
+ "h": 14
+ },
+ "frame": {
+ "x": 221,
+ "y": 505,
+ "w": 12,
+ "h": 14
+ }
+ },
+ {
+ "filename": "710-small",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 9,
+ "w": 15,
+ "h": 17
+ },
+ "frame": {
+ "x": 225,
+ "y": 519,
+ "w": 15,
+ "h": 17
+ }
+ },
{
"filename": "710s-small",
"rotated": false,
@@ -5295,12 +5295,33 @@
"h": 17
},
"frame": {
- "x": 231,
- "y": 521,
+ "x": 226,
+ "y": 536,
"w": 15,
"h": 17
}
},
+ {
+ "filename": "682",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 12,
+ "w": 15,
+ "h": 16
+ },
+ "frame": {
+ "x": 236,
+ "y": 469,
+ "w": 15,
+ "h": 16
+ }
+ },
{
"filename": "682s",
"rotated": false,
@@ -5316,8 +5337,8 @@
"h": 16
},
"frame": {
- "x": 231,
- "y": 538,
+ "x": 236,
+ "y": 485,
"w": 15,
"h": 16
}
@@ -5328,6 +5349,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:049c5b1c50b54f73bca369d3cece4336:2c861a7365c9c9423b050bde6e7e0742:96737d38f2029744a75c1ee001bc1929$"
+ "smartupdate": "$TexturePacker:SmartUpdate:a80f4550917ab6469d19d3cdd7fc8ebc:a52ccf05d060a2fd0a793e2f02508109:96737d38f2029744a75c1ee001bc1929$"
}
}
diff --git a/public/images/pokemon_icons_6.png b/public/images/pokemon_icons_6.png
index 9373aca8b70..46ff8597ce2 100644
Binary files a/public/images/pokemon_icons_6.png and b/public/images/pokemon_icons_6.png differ
diff --git a/public/images/pokemon_icons_8.json b/public/images/pokemon_icons_8.json
index 20f95930bed..430d114ff91 100644
--- a/public/images/pokemon_icons_8.json
+++ b/public/images/pokemon_icons_8.json
@@ -4,8 +4,8 @@
"image": "pokemon_icons_8.png",
"format": "RGBA8888",
"size": {
- "w": 251,
- "h": 796
+ "w": 254,
+ "h": 798
},
"scale": 1,
"frames": [
@@ -282,27 +282,6 @@
"h": 24
}
},
- {
- "filename": "834",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 3,
- "w": 34,
- "h": 23
- },
- "frame": {
- "x": 217,
- "y": 0,
- "w": 34,
- "h": 23
- }
- },
{
"filename": "815-gigantamax",
"rotated": false,
@@ -660,48 +639,6 @@
"h": 28
}
},
- {
- "filename": "834s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 3,
- "w": 34,
- "h": 23
- },
- "frame": {
- "x": 217,
- "y": 23,
- "w": 34,
- "h": 23
- }
- },
- {
- "filename": "4083s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 1,
- "y": 3,
- "w": 38,
- "h": 24
- },
- "frame": {
- "x": 179,
- "y": 24,
- "w": 38,
- "h": 24
- }
- },
{
"filename": "905-incarnate",
"rotated": false,
@@ -849,6 +786,27 @@
"h": 27
}
},
+ {
+ "filename": "834",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 3,
+ "y": 3,
+ "w": 34,
+ "h": 23
+ },
+ "frame": {
+ "x": 217,
+ "y": 0,
+ "w": 34,
+ "h": 23
+ }
+ },
{
"filename": "864",
"rotated": false,
@@ -871,7 +829,7 @@
}
},
{
- "filename": "864s",
+ "filename": "4083s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -879,20 +837,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 5,
- "y": 1,
- "w": 30,
- "h": 27
+ "x": 1,
+ "y": 3,
+ "w": 38,
+ "h": 24
},
"frame": {
"x": 34,
"y": 117,
- "w": 30,
- "h": 27
+ "w": 38,
+ "h": 24
}
},
{
- "filename": "879-gigantamax",
+ "filename": "834s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -900,457 +858,16 @@
"h": 30
},
"spriteSourceSize": {
- "x": 6,
- "y": 0,
- "w": 27,
- "h": 30
- },
- "frame": {
- "x": 31,
- "y": 144,
- "w": 27,
- "h": 30
- }
- },
- {
- "filename": "879s-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 0,
- "w": 27,
- "h": 30
- },
- "frame": {
- "x": 31,
- "y": 174,
- "w": 27,
- "h": 30
- }
- },
- {
- "filename": "884-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 0,
- "w": 27,
- "h": 30
- },
- "frame": {
- "x": 30,
- "y": 204,
- "w": 27,
- "h": 30
- }
- },
- {
- "filename": "884s-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 0,
- "w": 27,
- "h": 30
- },
- "frame": {
- "x": 30,
- "y": 234,
- "w": 27,
- "h": 30
- }
- },
- {
- "filename": "861-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 26,
- "h": 30
- },
- "frame": {
- "x": 30,
- "y": 264,
- "w": 26,
- "h": 30
- }
- },
- {
- "filename": "861s-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 26,
- "h": 30
- },
- "frame": {
- "x": 30,
- "y": 294,
- "w": 26,
- "h": 30
- }
- },
- {
- "filename": "898-shadow",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 26,
- "h": 30
- },
- "frame": {
- "x": 30,
- "y": 324,
- "w": 26,
- "h": 30
- }
- },
- {
- "filename": "898s-shadow",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 26,
- "h": 30
- },
- "frame": {
- "x": 30,
- "y": 354,
- "w": 26,
- "h": 30
- }
- },
- {
- "filename": "839-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 25,
- "h": 30
- },
- "frame": {
- "x": 30,
- "y": 384,
- "w": 25,
- "h": 30
- }
- },
- {
- "filename": "839s-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 25,
- "h": 30
- },
- "frame": {
- "x": 30,
- "y": 414,
- "w": 25,
- "h": 30
- }
- },
- {
- "filename": "4555",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 25,
- "h": 30
- },
- "frame": {
- "x": 29,
- "y": 444,
- "w": 25,
- "h": 30
- }
- },
- {
- "filename": "4555s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 25,
- "h": 30
- },
- "frame": {
- "x": 29,
- "y": 474,
- "w": 25,
- "h": 30
- }
- },
- {
- "filename": "898-ice",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 0,
- "w": 24,
- "h": 29
- },
- "frame": {
- "x": 29,
- "y": 504,
- "w": 24,
- "h": 29
- }
- },
- {
- "filename": "898s-ice",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 0,
- "w": 24,
- "h": 29
- },
- "frame": {
- "x": 29,
- "y": 533,
- "w": 24,
- "h": 29
- }
- },
- {
- "filename": "841-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 0,
- "w": 21,
- "h": 30
- },
- "frame": {
- "x": 32,
- "y": 562,
- "w": 21,
- "h": 30
- }
- },
- {
- "filename": "841s-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 0,
- "w": 21,
- "h": 30
- },
- "frame": {
- "x": 32,
- "y": 592,
- "w": 21,
- "h": 30
- }
- },
- {
- "filename": "842-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 0,
- "w": 21,
- "h": 30
- },
- "frame": {
- "x": 32,
- "y": 622,
- "w": 21,
- "h": 30
- }
- },
- {
- "filename": "845",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 24,
- "h": 26
- },
- "frame": {
- "x": 32,
- "y": 652,
- "w": 24,
- "h": 26
- }
- },
- {
- "filename": "892-gigantamax-single",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 0,
- "w": 23,
- "h": 29
- },
- "frame": {
- "x": 33,
- "y": 678,
- "w": 23,
- "h": 29
- }
- },
- {
- "filename": "4110",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 5,
- "y": 1,
- "w": 29,
- "h": 28
- },
- "frame": {
- "x": 31,
- "y": 707,
- "w": 29,
- "h": 28
- }
- },
- {
- "filename": "826-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 5,
+ "x": 3,
"y": 3,
- "w": 30,
- "h": 25
+ "w": 34,
+ "h": 23
},
"frame": {
- "x": 31,
- "y": 735,
- "w": 30,
- "h": 25
- }
- },
- {
- "filename": "834-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 5,
- "y": 1,
- "w": 29,
- "h": 27
- },
- "frame": {
- "x": 30,
- "y": 760,
- "w": 29,
- "h": 27
+ "x": 179,
+ "y": 24,
+ "w": 34,
+ "h": 23
}
},
{
@@ -1369,7 +886,7 @@
},
"frame": {
"x": 178,
- "y": 48,
+ "y": 47,
"w": 33,
"h": 24
}
@@ -1411,7 +928,7 @@
},
"frame": {
"x": 178,
- "y": 72,
+ "y": 71,
"w": 33,
"h": 24
}
@@ -1438,7 +955,7 @@
}
},
{
- "filename": "4110s",
+ "filename": "864s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -1448,14 +965,14 @@
"spriteSourceSize": {
"x": 5,
"y": 1,
- "w": 29,
- "h": 28
+ "w": 30,
+ "h": 27
},
"frame": {
"x": 70,
"y": 80,
- "w": 29,
- "h": 28
+ "w": 30,
+ "h": 27
}
},
{
@@ -1480,7 +997,7 @@
}
},
{
- "filename": "834s-gigantamax",
+ "filename": "887",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -1489,14 +1006,329 @@
},
"spriteSourceSize": {
"x": 5,
- "y": 1,
- "w": 29,
- "h": 27
+ "y": 2,
+ "w": 30,
+ "h": 26
+ },
+ "frame": {
+ "x": 100,
+ "y": 81,
+ "w": 30,
+ "h": 26
+ }
+ },
+ {
+ "filename": "879-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 0,
+ "w": 27,
+ "h": 30
+ },
+ "frame": {
+ "x": 72,
+ "y": 107,
+ "w": 27,
+ "h": 30
+ }
+ },
+ {
+ "filename": "879s-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 0,
+ "w": 27,
+ "h": 30
},
"frame": {
"x": 99,
+ "y": 107,
+ "w": 27,
+ "h": 30
+ }
+ },
+ {
+ "filename": "813",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 2,
+ "w": 17,
+ "h": 26
+ },
+ "frame": {
+ "x": 130,
"y": 81,
- "w": 29,
+ "w": 17,
+ "h": 26
+ }
+ },
+ {
+ "filename": "870",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 4,
+ "y": 3,
+ "w": 31,
+ "h": 23
+ },
+ "frame": {
+ "x": 147,
+ "y": 80,
+ "w": 31,
+ "h": 23
+ }
+ },
+ {
+ "filename": "839-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 0,
+ "w": 25,
+ "h": 30
+ },
+ "frame": {
+ "x": 126,
+ "y": 107,
+ "w": 25,
+ "h": 30
+ }
+ },
+ {
+ "filename": "884-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 0,
+ "w": 27,
+ "h": 30
+ },
+ "frame": {
+ "x": 151,
+ "y": 103,
+ "w": 27,
+ "h": 30
+ }
+ },
+ {
+ "filename": "884s-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 0,
+ "w": 27,
+ "h": 30
+ },
+ "frame": {
+ "x": 178,
+ "y": 95,
+ "w": 27,
+ "h": 30
+ }
+ },
+ {
+ "filename": "839s-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 0,
+ "w": 25,
+ "h": 30
+ },
+ "frame": {
+ "x": 205,
+ "y": 95,
+ "w": 25,
+ "h": 30
+ }
+ },
+ {
+ "filename": "898-ice",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 0,
+ "w": 24,
+ "h": 29
+ },
+ "frame": {
+ "x": 230,
+ "y": 23,
+ "w": 24,
+ "h": 29
+ }
+ },
+ {
+ "filename": "869-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 0,
+ "w": 17,
+ "h": 30
+ },
+ "frame": {
+ "x": 213,
+ "y": 24,
+ "w": 17,
+ "h": 30
+ }
+ },
+ {
+ "filename": "898s-ice",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 0,
+ "w": 24,
+ "h": 29
+ },
+ "frame": {
+ "x": 230,
+ "y": 52,
+ "w": 24,
+ "h": 29
+ }
+ },
+ {
+ "filename": "876",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 19,
+ "h": 24
+ },
+ "frame": {
+ "x": 211,
+ "y": 54,
+ "w": 19,
+ "h": 24
+ }
+ },
+ {
+ "filename": "6157",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 1,
+ "w": 24,
+ "h": 27
+ },
+ "frame": {
+ "x": 230,
+ "y": 81,
+ "w": 24,
+ "h": 27
+ }
+ },
+ {
+ "filename": "852",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 19,
+ "h": 17
+ },
+ "frame": {
+ "x": 211,
+ "y": 78,
+ "w": 19,
+ "h": 17
+ }
+ },
+ {
+ "filename": "6157s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 1,
+ "w": 24,
+ "h": 27
+ },
+ "frame": {
+ "x": 230,
+ "y": 108,
+ "w": 24,
"h": 27
}
},
@@ -1515,14 +1347,14 @@
"h": 24
},
"frame": {
- "x": 70,
- "y": 108,
+ "x": 178,
+ "y": 125,
"w": 32,
"h": 24
}
},
{
- "filename": "812",
+ "filename": "863",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -1530,251 +1362,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 7,
+ "x": 10,
"y": 3,
- "w": 26,
+ "w": 20,
"h": 24
},
"frame": {
- "x": 102,
- "y": 108,
- "w": 26,
+ "x": 210,
+ "y": 125,
+ "w": 20,
"h": 24
}
},
{
- "filename": "842s-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 0,
- "w": 21,
- "h": 30
- },
- "frame": {
- "x": 128,
- "y": 81,
- "w": 21,
- "h": 30
- }
- },
- {
- "filename": "845-gulping",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 5,
- "y": 1,
- "w": 29,
- "h": 27
- },
- "frame": {
- "x": 149,
- "y": 80,
- "w": 29,
- "h": 27
- }
- },
- {
- "filename": "811",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 3,
- "w": 22,
- "h": 24
- },
- "frame": {
- "x": 128,
- "y": 111,
- "w": 22,
- "h": 24
- }
- },
- {
- "filename": "845s-gulping",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 5,
- "y": 1,
- "w": 29,
- "h": 27
- },
- "frame": {
- "x": 150,
- "y": 107,
- "w": 29,
- "h": 27
- }
- },
- {
- "filename": "887",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 5,
- "y": 2,
- "w": 30,
- "h": 26
- },
- "frame": {
- "x": 179,
- "y": 96,
- "w": 30,
- "h": 26
- }
- },
- {
- "filename": "826s-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 5,
- "y": 3,
- "w": 30,
- "h": 25
- },
- "frame": {
- "x": 179,
- "y": 122,
- "w": 30,
- "h": 25
- }
- },
- {
- "filename": "870",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 4,
- "y": 3,
- "w": 31,
- "h": 23
- },
- "frame": {
- "x": 64,
- "y": 132,
- "w": 31,
- "h": 23
- }
- },
- {
- "filename": "870s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 4,
- "y": 3,
- "w": 31,
- "h": 23
- },
- "frame": {
- "x": 95,
- "y": 132,
- "w": 31,
- "h": 23
- }
- },
- {
- "filename": "887s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 5,
- "y": 2,
- "w": 30,
- "h": 26
- },
- "frame": {
- "x": 58,
- "y": 155,
- "w": 30,
- "h": 26
- }
- },
- {
- "filename": "895",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 2,
- "w": 28,
- "h": 26
- },
- "frame": {
- "x": 88,
- "y": 155,
- "w": 28,
- "h": 26
- }
- },
- {
- "filename": "6503",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 5,
- "y": 5,
- "w": 31,
- "h": 23
- },
- "frame": {
- "x": 58,
- "y": 181,
- "w": 31,
- "h": 23
- }
- },
- {
- "filename": "905-therian",
+ "filename": "845",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -1783,36 +1384,15 @@
},
"spriteSourceSize": {
"x": 8,
- "y": 1,
- "w": 28,
- "h": 27
+ "y": 2,
+ "w": 24,
+ "h": 26
},
"frame": {
- "x": 57,
- "y": 204,
- "w": 28,
- "h": 27
- }
- },
- {
- "filename": "905s-therian",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 1,
- "w": 28,
- "h": 27
- },
- "frame": {
- "x": 57,
- "y": 231,
- "w": 28,
- "h": 27
+ "x": 230,
+ "y": 135,
+ "w": 24,
+ "h": 26
}
},
{
@@ -1830,14 +1410,14 @@
"h": 24
},
"frame": {
- "x": 89,
- "y": 181,
+ "x": 151,
+ "y": 133,
"w": 27,
"h": 24
}
},
{
- "filename": "6059",
+ "filename": "870s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -1845,146 +1425,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 28,
- "h": 27
- },
- "frame": {
- "x": 85,
- "y": 205,
- "w": 28,
- "h": 27
- }
- },
- {
- "filename": "895s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 2,
- "w": 28,
- "h": 26
- },
- "frame": {
- "x": 85,
- "y": 232,
- "w": 28,
- "h": 26
- }
- },
- {
- "filename": "812s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
+ "x": 4,
"y": 3,
- "w": 26,
- "h": 24
- },
- "frame": {
- "x": 126,
- "y": 135,
- "w": 26,
- "h": 24
- }
- },
- {
- "filename": "823s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 27,
- "h": 24
- },
- "frame": {
- "x": 152,
- "y": 134,
- "w": 27,
- "h": 24
- }
- },
- {
- "filename": "6059s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 28,
- "h": 27
- },
- "frame": {
- "x": 116,
- "y": 159,
- "w": 28,
- "h": 27
- }
- },
- {
- "filename": "888",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 28,
- "h": 23
- },
- "frame": {
- "x": 116,
- "y": 186,
- "w": 28,
- "h": 23
- }
- },
- {
- "filename": "6503s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 5,
- "y": 5,
"w": 31,
"h": 23
},
"frame": {
- "x": 113,
- "y": 209,
+ "x": 178,
+ "y": 149,
"w": 31,
"h": 23
}
},
{
- "filename": "894",
+ "filename": "814",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -1992,20 +1446,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 5,
+ "x": 9,
"y": 3,
- "w": 30,
+ "w": 21,
"h": 23
},
"frame": {
- "x": 113,
- "y": 232,
- "w": 30,
+ "x": 209,
+ "y": 149,
+ "w": 21,
"h": 23
}
},
{
- "filename": "894s",
+ "filename": "845s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -2013,100 +1467,16 @@
"h": 30
},
"spriteSourceSize": {
- "x": 5,
- "y": 3,
- "w": 30,
- "h": 23
+ "x": 8,
+ "y": 2,
+ "w": 24,
+ "h": 26
},
"frame": {
- "x": 179,
- "y": 147,
- "w": 30,
- "h": 23
- }
- },
- {
- "filename": "828",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 27,
- "h": 24
- },
- "frame": {
- "x": 152,
- "y": 158,
- "w": 27,
- "h": 24
- }
- },
- {
- "filename": "889",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 1,
- "w": 26,
- "h": 27
- },
- "frame": {
- "x": 144,
- "y": 182,
- "w": 26,
- "h": 27
- }
- },
- {
- "filename": "828s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 27,
- "h": 24
- },
- "frame": {
- "x": 144,
- "y": 209,
- "w": 27,
- "h": 24
- }
- },
- {
- "filename": "888s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 28,
- "h": 23
- },
- "frame": {
- "x": 143,
- "y": 233,
- "w": 28,
- "h": 23
+ "x": 230,
+ "y": 161,
+ "w": 24,
+ "h": 26
}
},
{
@@ -2124,8 +1494,8 @@
"h": 22
},
"frame": {
- "x": 179,
- "y": 170,
+ "x": 72,
+ "y": 137,
"w": 31,
"h": 22
}
@@ -2145,14 +1515,287 @@
"h": 22
},
"frame": {
- "x": 57,
- "y": 258,
+ "x": 103,
+ "y": 137,
"w": 31,
"h": 22
}
},
{
- "filename": "889s",
+ "filename": "813s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 2,
+ "w": 17,
+ "h": 26
+ },
+ "frame": {
+ "x": 134,
+ "y": 137,
+ "w": 17,
+ "h": 26
+ }
+ },
+ {
+ "filename": "823s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 3,
+ "w": 27,
+ "h": 24
+ },
+ "frame": {
+ "x": 151,
+ "y": 157,
+ "w": 27,
+ "h": 24
+ }
+ },
+ {
+ "filename": "6503",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 5,
+ "y": 5,
+ "w": 31,
+ "h": 23
+ },
+ "frame": {
+ "x": 178,
+ "y": 172,
+ "w": 31,
+ "h": 23
+ }
+ },
+ {
+ "filename": "814s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 21,
+ "h": 23
+ },
+ "frame": {
+ "x": 209,
+ "y": 172,
+ "w": 21,
+ "h": 23
+ }
+ },
+ {
+ "filename": "892-gigantamax-rapid",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 24,
+ "h": 26
+ },
+ "frame": {
+ "x": 230,
+ "y": 187,
+ "w": 24,
+ "h": 26
+ }
+ },
+ {
+ "filename": "6503s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 5,
+ "y": 5,
+ "w": 31,
+ "h": 23
+ },
+ "frame": {
+ "x": 34,
+ "y": 141,
+ "w": 31,
+ "h": 23
+ }
+ },
+ {
+ "filename": "4110",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 5,
+ "y": 1,
+ "w": 29,
+ "h": 28
+ },
+ "frame": {
+ "x": 31,
+ "y": 164,
+ "w": 29,
+ "h": 28
+ }
+ },
+ {
+ "filename": "826-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 5,
+ "y": 3,
+ "w": 30,
+ "h": 25
+ },
+ "frame": {
+ "x": 31,
+ "y": 192,
+ "w": 30,
+ "h": 25
+ }
+ },
+ {
+ "filename": "4110s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 5,
+ "y": 1,
+ "w": 29,
+ "h": 28
+ },
+ "frame": {
+ "x": 30,
+ "y": 217,
+ "w": 29,
+ "h": 28
+ }
+ },
+ {
+ "filename": "834-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 5,
+ "y": 1,
+ "w": 29,
+ "h": 27
+ },
+ "frame": {
+ "x": 30,
+ "y": 245,
+ "w": 29,
+ "h": 27
+ }
+ },
+ {
+ "filename": "834s-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 5,
+ "y": 1,
+ "w": 29,
+ "h": 27
+ },
+ "frame": {
+ "x": 30,
+ "y": 272,
+ "w": 29,
+ "h": 27
+ }
+ },
+ {
+ "filename": "845-gulping",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 5,
+ "y": 1,
+ "w": 29,
+ "h": 27
+ },
+ "frame": {
+ "x": 30,
+ "y": 299,
+ "w": 29,
+ "h": 27
+ }
+ },
+ {
+ "filename": "845s-gulping",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 5,
+ "y": 1,
+ "w": 29,
+ "h": 27
+ },
+ "frame": {
+ "x": 30,
+ "y": 326,
+ "w": 29,
+ "h": 27
+ }
+ },
+ {
+ "filename": "861-gigantamax",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -2161,15 +1804,57 @@
},
"spriteSourceSize": {
"x": 7,
- "y": 1,
+ "y": 0,
"w": 26,
- "h": 27
+ "h": 30
},
"frame": {
- "x": 56,
- "y": 280,
+ "x": 30,
+ "y": 353,
"w": 26,
- "h": 27
+ "h": 30
+ }
+ },
+ {
+ "filename": "861s-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 0,
+ "w": 26,
+ "h": 30
+ },
+ "frame": {
+ "x": 30,
+ "y": 383,
+ "w": 26,
+ "h": 30
+ }
+ },
+ {
+ "filename": "898-shadow",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 0,
+ "w": 26,
+ "h": 30
+ },
+ "frame": {
+ "x": 30,
+ "y": 413,
+ "w": 26,
+ "h": 30
}
},
{
@@ -2187,14 +1872,14 @@
"h": 28
},
"frame": {
- "x": 56,
- "y": 307,
+ "x": 60,
+ "y": 164,
"w": 25,
"h": 28
}
},
{
- "filename": "4555s-zen",
+ "filename": "887s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -2202,16 +1887,16 @@
"h": 30
},
"spriteSourceSize": {
- "x": 7,
- "y": 1,
- "w": 25,
- "h": 28
+ "x": 5,
+ "y": 2,
+ "w": 30,
+ "h": 26
},
"frame": {
- "x": 56,
- "y": 335,
- "w": 25,
- "h": 28
+ "x": 85,
+ "y": 159,
+ "w": 30,
+ "h": 26
}
},
{
@@ -2229,14 +1914,182 @@
"h": 27
},
"frame": {
- "x": 88,
- "y": 258,
+ "x": 61,
+ "y": 192,
"w": 25,
"h": 27
}
},
{
- "filename": "904",
+ "filename": "898s-shadow",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 0,
+ "w": 26,
+ "h": 30
+ },
+ "frame": {
+ "x": 59,
+ "y": 219,
+ "w": 26,
+ "h": 30
+ }
+ },
+ {
+ "filename": "4555",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 0,
+ "w": 25,
+ "h": 30
+ },
+ "frame": {
+ "x": 59,
+ "y": 249,
+ "w": 25,
+ "h": 30
+ }
+ },
+ {
+ "filename": "4555s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 0,
+ "w": 25,
+ "h": 30
+ },
+ "frame": {
+ "x": 59,
+ "y": 279,
+ "w": 25,
+ "h": 30
+ }
+ },
+ {
+ "filename": "4555s-zen",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 1,
+ "w": 25,
+ "h": 28
+ },
+ "frame": {
+ "x": 59,
+ "y": 309,
+ "w": 25,
+ "h": 28
+ }
+ },
+ {
+ "filename": "905-therian",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 1,
+ "w": 28,
+ "h": 27
+ },
+ "frame": {
+ "x": 86,
+ "y": 185,
+ "w": 28,
+ "h": 27
+ }
+ },
+ {
+ "filename": "876s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 19,
+ "h": 24
+ },
+ "frame": {
+ "x": 115,
+ "y": 159,
+ "w": 19,
+ "h": 24
+ }
+ },
+ {
+ "filename": "859",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 5,
+ "w": 17,
+ "h": 20
+ },
+ "frame": {
+ "x": 134,
+ "y": 163,
+ "w": 17,
+ "h": 20
+ }
+ },
+ {
+ "filename": "828",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 3,
+ "w": 27,
+ "h": 24
+ },
+ "frame": {
+ "x": 151,
+ "y": 181,
+ "w": 27,
+ "h": 24
+ }
+ },
+ {
+ "filename": "812",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -2246,18 +2099,249 @@
"spriteSourceSize": {
"x": 7,
"y": 3,
+ "w": 26,
+ "h": 24
+ },
+ "frame": {
+ "x": 59,
+ "y": 337,
+ "w": 26,
+ "h": 24
+ }
+ },
+ {
+ "filename": "905s-therian",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 1,
"w": 28,
+ "h": 27
+ },
+ "frame": {
+ "x": 56,
+ "y": 361,
+ "w": 28,
+ "h": 27
+ }
+ },
+ {
+ "filename": "6059",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 2,
+ "w": 28,
+ "h": 27
+ },
+ "frame": {
+ "x": 56,
+ "y": 388,
+ "w": 28,
+ "h": 27
+ }
+ },
+ {
+ "filename": "6059s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 2,
+ "w": 28,
+ "h": 27
+ },
+ "frame": {
+ "x": 56,
+ "y": 415,
+ "w": 28,
+ "h": 27
+ }
+ },
+ {
+ "filename": "826s-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 5,
+ "y": 3,
+ "w": 30,
"h": 25
},
"frame": {
- "x": 113,
- "y": 255,
- "w": 28,
+ "x": 178,
+ "y": 195,
+ "w": 30,
"h": 25
}
},
{
- "filename": "904s",
+ "filename": "818",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 1,
+ "w": 22,
+ "h": 27
+ },
+ "frame": {
+ "x": 208,
+ "y": 195,
+ "w": 22,
+ "h": 27
+ }
+ },
+ {
+ "filename": "892s-gigantamax-rapid",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 24,
+ "h": 26
+ },
+ "frame": {
+ "x": 230,
+ "y": 213,
+ "w": 24,
+ "h": 26
+ }
+ },
+ {
+ "filename": "888",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 3,
+ "w": 28,
+ "h": 23
+ },
+ "frame": {
+ "x": 86,
+ "y": 212,
+ "w": 28,
+ "h": 23
+ }
+ },
+ {
+ "filename": "894",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 5,
+ "y": 3,
+ "w": 30,
+ "h": 23
+ },
+ "frame": {
+ "x": 85,
+ "y": 235,
+ "w": 30,
+ "h": 23
+ }
+ },
+ {
+ "filename": "895",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 2,
+ "w": 28,
+ "h": 26
+ },
+ "frame": {
+ "x": 84,
+ "y": 258,
+ "w": 28,
+ "h": 26
+ }
+ },
+ {
+ "filename": "895s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 2,
+ "w": 28,
+ "h": 26
+ },
+ "frame": {
+ "x": 84,
+ "y": 284,
+ "w": 28,
+ "h": 26
+ }
+ },
+ {
+ "filename": "889",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 1,
+ "w": 26,
+ "h": 27
+ },
+ "frame": {
+ "x": 84,
+ "y": 310,
+ "w": 26,
+ "h": 27
+ }
+ },
+ {
+ "filename": "812s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -2267,14 +2351,35 @@
"spriteSourceSize": {
"x": 7,
"y": 3,
- "w": 28,
- "h": 25
+ "w": 26,
+ "h": 24
},
"frame": {
- "x": 141,
- "y": 256,
- "w": 28,
- "h": 25
+ "x": 85,
+ "y": 337,
+ "w": 26,
+ "h": 24
+ }
+ },
+ {
+ "filename": "889s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 1,
+ "w": 26,
+ "h": 27
+ },
+ "frame": {
+ "x": 84,
+ "y": 361,
+ "w": 26,
+ "h": 27
}
},
{
@@ -2292,8 +2397,8 @@
"h": 27
},
"frame": {
- "x": 56,
- "y": 363,
+ "x": 84,
+ "y": 388,
"w": 25,
"h": 27
}
@@ -2313,56 +2418,14 @@
"h": 27
},
"frame": {
- "x": 55,
- "y": 390,
+ "x": 84,
+ "y": 415,
"w": 25,
"h": 27
}
},
{
- "filename": "862s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 1,
- "w": 25,
- "h": 27
- },
- "frame": {
- "x": 55,
- "y": 417,
- "w": 25,
- "h": 27
- }
- },
- {
- "filename": "892s-gigantamax-single",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 0,
- "w": 23,
- "h": 29
- },
- "frame": {
- "x": 54,
- "y": 444,
- "w": 23,
- "h": 29
- }
- },
- {
- "filename": "6157",
+ "filename": "841-gigantamax",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -2371,124 +2434,19 @@
},
"spriteSourceSize": {
"x": 9,
- "y": 1,
- "w": 24,
- "h": 27
- },
- "frame": {
- "x": 54,
- "y": 473,
- "w": 24,
- "h": 27
- }
- },
- {
- "filename": "901",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 5,
- "w": 28,
- "h": 23
- },
- "frame": {
- "x": 82,
- "y": 285,
- "w": 28,
- "h": 23
- }
- },
- {
- "filename": "841",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 27,
- "h": 24
- },
- "frame": {
- "x": 81,
- "y": 308,
- "w": 27,
- "h": 24
- }
- },
- {
- "filename": "841s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 27,
- "h": 24
- },
- "frame": {
- "x": 81,
- "y": 332,
- "w": 27,
- "h": 24
- }
- },
- {
- "filename": "842",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 81,
- "y": 356,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "869-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
"y": 0,
- "w": 17,
+ "w": 21,
"h": 30
},
"frame": {
- "x": 211,
- "y": 48,
- "w": 17,
+ "x": 112,
+ "y": 258,
+ "w": 21,
"h": 30
}
},
{
- "filename": "892",
+ "filename": "811",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -2496,270 +2454,18 @@
"h": 30
},
"spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 23,
- "h": 25
- },
- "frame": {
- "x": 228,
- "y": 46,
- "w": 23,
- "h": 25
- }
- },
- {
- "filename": "892s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 23,
- "h": 25
- },
- "frame": {
- "x": 228,
- "y": 71,
- "w": 23,
- "h": 25
- }
- },
- {
- "filename": "813",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 17,
- "h": 26
- },
- "frame": {
- "x": 211,
- "y": 78,
- "w": 17,
- "h": 26
- }
- },
- {
- "filename": "820",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
+ "x": 9,
"y": 3,
- "w": 23,
+ "w": 22,
"h": 24
},
"frame": {
- "x": 228,
- "y": 96,
- "w": 23,
+ "x": 112,
+ "y": 288,
+ "w": 22,
"h": 24
}
},
- {
- "filename": "876",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 3,
- "w": 19,
- "h": 24
- },
- "frame": {
- "x": 209,
- "y": 104,
- "w": 19,
- "h": 24
- }
- },
- {
- "filename": "820s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 3,
- "w": 23,
- "h": 24
- },
- "frame": {
- "x": 228,
- "y": 120,
- "w": 23,
- "h": 24
- }
- },
- {
- "filename": "876s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 3,
- "w": 19,
- "h": 24
- },
- "frame": {
- "x": 209,
- "y": 128,
- "w": 19,
- "h": 24
- }
- },
- {
- "filename": "866",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 3,
- "w": 23,
- "h": 24
- },
- "frame": {
- "x": 228,
- "y": 144,
- "w": 23,
- "h": 24
- }
- },
- {
- "filename": "852",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 19,
- "h": 17
- },
- "frame": {
- "x": 209,
- "y": 152,
- "w": 19,
- "h": 17
- }
- },
- {
- "filename": "866s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 3,
- "w": 23,
- "h": 24
- },
- "frame": {
- "x": 228,
- "y": 168,
- "w": 23,
- "h": 24
- }
- },
- {
- "filename": "881",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 3,
- "w": 18,
- "h": 23
- },
- "frame": {
- "x": 210,
- "y": 169,
- "w": 18,
- "h": 23
- }
- },
- {
- "filename": "842s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 2,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 81,
- "y": 381,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "861",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 25,
- "h": 26
- },
- "frame": {
- "x": 80,
- "y": 406,
- "w": 25,
- "h": 26
- }
- },
{
"filename": "839",
"rotated": false,
@@ -2775,96 +2481,12 @@
"h": 25
},
"frame": {
- "x": 80,
- "y": 432,
+ "x": 110,
+ "y": 312,
"w": 25,
"h": 25
}
},
- {
- "filename": "847",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 7,
- "w": 27,
- "h": 16
- },
- "frame": {
- "x": 77,
- "y": 457,
- "w": 27,
- "h": 16
- }
- },
- {
- "filename": "861s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 25,
- "h": 26
- },
- "frame": {
- "x": 78,
- "y": 473,
- "w": 25,
- "h": 26
- }
- },
- {
- "filename": "847s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 7,
- "w": 27,
- "h": 16
- },
- "frame": {
- "x": 170,
- "y": 192,
- "w": 27,
- "h": 16
- }
- },
- {
- "filename": "6157s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 1,
- "w": 24,
- "h": 27
- },
- "frame": {
- "x": 171,
- "y": 208,
- "w": 24,
- "h": 27
- }
- },
{
"filename": "817",
"rotated": false,
@@ -2880,14 +2502,14 @@
"h": 24
},
"frame": {
- "x": 171,
- "y": 235,
+ "x": 111,
+ "y": 337,
"w": 24,
"h": 24
}
},
{
- "filename": "880",
+ "filename": "862s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -2896,271 +2518,19 @@
},
"spriteSourceSize": {
"x": 7,
- "y": 4,
- "w": 26,
- "h": 22
- },
- "frame": {
- "x": 169,
- "y": 259,
- "w": 26,
- "h": 22
- }
- },
- {
- "filename": "901s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 5,
- "w": 28,
- "h": 23
- },
- "frame": {
- "x": 197,
- "y": 192,
- "w": 28,
- "h": 23
- }
- },
- {
- "filename": "6706",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 4,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 225,
- "y": 192,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "4145",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 28,
- "h": 23
- },
- "frame": {
- "x": 195,
- "y": 215,
- "w": 28,
- "h": 23
- }
- },
- {
- "filename": "4145s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 28,
- "h": 23
- },
- "frame": {
- "x": 223,
- "y": 217,
- "w": 28,
- "h": 23
- }
- },
- {
- "filename": "6706s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 4,
- "w": 26,
- "h": 25
- },
- "frame": {
- "x": 195,
- "y": 238,
- "w": 26,
- "h": 25
- }
- },
- {
- "filename": "4078",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 27,
- "h": 23
- },
- "frame": {
- "x": 221,
- "y": 240,
- "w": 27,
- "h": 23
- }
- },
- {
- "filename": "4146",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 6,
- "w": 28,
- "h": 18
- },
- "frame": {
- "x": 195,
- "y": 263,
- "w": 28,
- "h": 18
- }
- },
- {
- "filename": "4146s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 6,
- "w": 28,
- "h": 18
- },
- "frame": {
- "x": 223,
- "y": 263,
- "w": 28,
- "h": 18
- }
- },
- {
- "filename": "869s-gigantamax",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 0,
- "w": 17,
- "h": 30
- },
- "frame": {
- "x": 108,
- "y": 308,
- "w": 17,
- "h": 30
- }
- },
- {
- "filename": "810",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 3,
- "w": 19,
- "h": 23
+ "y": 1,
+ "w": 25,
+ "h": 27
},
"frame": {
"x": 110,
- "y": 285,
- "w": 19,
- "h": 23
- }
- },
- {
- "filename": "810s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 3,
- "w": 19,
- "h": 23
- },
- "frame": {
- "x": 108,
- "y": 338,
- "w": 19,
- "h": 23
- }
- },
- {
- "filename": "818",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 1,
- "w": 22,
- "h": 27
- },
- "frame": {
- "x": 107,
"y": 361,
- "w": 22,
+ "w": 25,
"h": 27
}
},
{
- "filename": "811s",
+ "filename": "892-gigantamax-single",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -3168,58 +2538,16 @@
"h": 30
},
"spriteSourceSize": {
- "x": 9,
- "y": 3,
- "w": 22,
- "h": 24
+ "x": 8,
+ "y": 0,
+ "w": 23,
+ "h": 29
},
"frame": {
- "x": 107,
+ "x": 109,
"y": 388,
- "w": 22,
- "h": 24
- }
- },
- {
- "filename": "845s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 24,
- "h": 26
- },
- "frame": {
- "x": 105,
- "y": 412,
- "w": 24,
- "h": 26
- }
- },
- {
- "filename": "817s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 3,
- "w": 24,
- "h": 24
- },
- "frame": {
- "x": 105,
- "y": 438,
- "w": 24,
- "h": 24
+ "w": 23,
+ "h": 29
}
},
{
@@ -3237,14 +2565,14 @@
"h": 25
},
"frame": {
- "x": 104,
- "y": 462,
+ "x": 109,
+ "y": 417,
"w": 25,
"h": 25
}
},
{
- "filename": "880s",
+ "filename": "881",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -3252,20 +2580,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 26,
- "h": 22
+ "x": 11,
+ "y": 3,
+ "w": 18,
+ "h": 23
},
"frame": {
- "x": 103,
- "y": 487,
- "w": 26,
- "h": 22
+ "x": 133,
+ "y": 183,
+ "w": 18,
+ "h": 23
}
},
{
- "filename": "844",
+ "filename": "810",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -3273,79 +2601,16 @@
"h": 30
},
"spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 25,
- "h": 19
+ "x": 10,
+ "y": 3,
+ "w": 19,
+ "h": 23
},
"frame": {
- "x": 78,
- "y": 499,
- "w": 25,
- "h": 19
- }
- },
- {
- "filename": "827",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 4,
- "w": 24,
- "h": 21
- },
- "frame": {
- "x": 54,
- "y": 500,
- "w": 24,
- "h": 21
- }
- },
- {
- "filename": "892-gigantamax-rapid",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 24,
- "h": 26
- },
- "frame": {
- "x": 53,
- "y": 521,
- "w": 24,
- "h": 26
- }
- },
- {
- "filename": "892s-gigantamax-rapid",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 2,
- "w": 24,
- "h": 26
- },
- "frame": {
- "x": 53,
- "y": 547,
- "w": 24,
- "h": 26
+ "x": 114,
+ "y": 185,
+ "w": 19,
+ "h": 23
}
},
{
@@ -3363,35 +2628,14 @@
"h": 27
},
"frame": {
- "x": 53,
- "y": 573,
+ "x": 114,
+ "y": 208,
"w": 22,
"h": 27
}
},
{
- "filename": "899",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 1,
- "w": 22,
- "h": 27
- },
- "frame": {
- "x": 53,
- "y": 600,
- "w": 22,
- "h": 27
- }
- },
- {
- "filename": "858",
+ "filename": "816",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -3400,539 +2644,14 @@
},
"spriteSourceSize": {
"x": 9,
- "y": 2,
+ "y": 3,
"w": 22,
- "h": 25
+ "h": 23
},
"frame": {
- "x": 53,
- "y": 627,
+ "x": 115,
+ "y": 235,
"w": 22,
- "h": 25
- }
- },
- {
- "filename": "899s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 1,
- "w": 22,
- "h": 27
- },
- "frame": {
- "x": 56,
- "y": 652,
- "w": 22,
- "h": 27
- }
- },
- {
- "filename": "6724",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 1,
- "w": 17,
- "h": 28
- },
- "frame": {
- "x": 56,
- "y": 679,
- "w": 17,
- "h": 28
- }
- },
- {
- "filename": "6724s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 1,
- "w": 17,
- "h": 28
- },
- "frame": {
- "x": 60,
- "y": 707,
- "w": 17,
- "h": 28
- }
- },
- {
- "filename": "813s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 17,
- "h": 26
- },
- "frame": {
- "x": 61,
- "y": 735,
- "w": 17,
- "h": 26
- }
- },
- {
- "filename": "903",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 1,
- "w": 21,
- "h": 27
- },
- "frame": {
- "x": 59,
- "y": 761,
- "w": 21,
- "h": 27
- }
- },
- {
- "filename": "886",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 26,
- "h": 24
- },
- "frame": {
- "x": 103,
- "y": 509,
- "w": 26,
- "h": 24
- }
- },
- {
- "filename": "844s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 25,
- "h": 19
- },
- "frame": {
- "x": 78,
- "y": 518,
- "w": 25,
- "h": 19
- }
- },
- {
- "filename": "886s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 26,
- "h": 24
- },
- "frame": {
- "x": 77,
- "y": 537,
- "w": 26,
- "h": 24
- }
- },
- {
- "filename": "897",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 26,
- "h": 24
- },
- "frame": {
- "x": 103,
- "y": 533,
- "w": 26,
- "h": 24
- }
- },
- {
- "filename": "892-rapid-strike",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 26,
- "h": 22
- },
- "frame": {
- "x": 77,
- "y": 561,
- "w": 26,
- "h": 22
- }
- },
- {
- "filename": "897s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 26,
- "h": 24
- },
- "frame": {
- "x": 103,
- "y": 557,
- "w": 26,
- "h": 24
- }
- },
- {
- "filename": "900",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 25,
- "h": 25
- },
- "frame": {
- "x": 75,
- "y": 583,
- "w": 25,
- "h": 25
- }
- },
- {
- "filename": "900s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 25,
- "h": 25
- },
- "frame": {
- "x": 75,
- "y": 608,
- "w": 25,
- "h": 25
- }
- },
- {
- "filename": "6628",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 10,
- "w": 25,
- "h": 19
- },
- "frame": {
- "x": 75,
- "y": 633,
- "w": 25,
- "h": 19
- }
- },
- {
- "filename": "903s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 1,
- "w": 21,
- "h": 27
- },
- "frame": {
- "x": 78,
- "y": 652,
- "w": 21,
- "h": 27
- }
- },
- {
- "filename": "4078s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 6,
- "y": 3,
- "w": 27,
- "h": 23
- },
- "frame": {
- "x": 73,
- "y": 679,
- "w": 27,
- "h": 23
- }
- },
- {
- "filename": "858s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 2,
- "w": 22,
- "h": 25
- },
- "frame": {
- "x": 77,
- "y": 702,
- "w": 22,
- "h": 25
- }
- },
- {
- "filename": "4199",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 1,
- "w": 20,
- "h": 27
- },
- "frame": {
- "x": 78,
- "y": 727,
- "w": 20,
- "h": 27
- }
- },
- {
- "filename": "4199s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 1,
- "w": 20,
- "h": 27
- },
- "frame": {
- "x": 80,
- "y": 754,
- "w": 20,
- "h": 27
- }
- },
- {
- "filename": "846",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 7,
- "w": 25,
- "h": 15
- },
- "frame": {
- "x": 80,
- "y": 781,
- "w": 25,
- "h": 15
- }
- },
- {
- "filename": "6713",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 27,
- "h": 23
- },
- "frame": {
- "x": 129,
- "y": 281,
- "w": 27,
- "h": 23
- }
- },
- {
- "filename": "6713s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 27,
- "h": 23
- },
- "frame": {
- "x": 156,
- "y": 281,
- "w": 27,
- "h": 23
- }
- },
- {
- "filename": "879",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 25,
- "h": 23
- },
- "frame": {
- "x": 183,
- "y": 281,
- "w": 25,
- "h": 23
- }
- },
- {
- "filename": "879s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 25,
- "h": 23
- },
- "frame": {
- "x": 208,
- "y": 281,
- "w": 25,
- "h": 23
- }
- },
- {
- "filename": "881s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 3,
- "w": 18,
- "h": 23
- },
- "frame": {
- "x": 233,
- "y": 281,
- "w": 18,
"h": 23
}
},
@@ -3951,14 +2670,14 @@
"h": 29
},
"frame": {
- "x": 125,
- "y": 308,
+ "x": 136,
+ "y": 206,
"w": 15,
"h": 29
}
},
{
- "filename": "892s-rapid-strike",
+ "filename": "828s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -3966,20 +2685,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 26,
- "h": 22
+ "x": 6,
+ "y": 3,
+ "w": 27,
+ "h": 24
},
"frame": {
- "x": 140,
- "y": 304,
- "w": 26,
- "h": 22
+ "x": 151,
+ "y": 205,
+ "w": 27,
+ "h": 24
}
},
{
- "filename": "873",
+ "filename": "894s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -3987,62 +2706,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 25,
- "h": 22
+ "x": 5,
+ "y": 3,
+ "w": 30,
+ "h": 23
},
"frame": {
- "x": 166,
- "y": 304,
- "w": 25,
- "h": 22
+ "x": 178,
+ "y": 220,
+ "w": 30,
+ "h": 23
}
},
{
- "filename": "873s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 25,
- "h": 22
- },
- "frame": {
- "x": 191,
- "y": 304,
- "w": 25,
- "h": 22
- }
- },
- {
- "filename": "878",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 25,
- "h": 22
- },
- "frame": {
- "x": 216,
- "y": 304,
- "w": 25,
- "h": 22
- }
- },
- {
- "filename": "838",
+ "filename": "811s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4056,14 +2733,14 @@
"h": 24
},
"frame": {
- "x": 127,
- "y": 337,
+ "x": 208,
+ "y": 222,
"w": 22,
"h": 24
}
},
{
- "filename": "884",
+ "filename": "817s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4071,60 +2748,270 @@
"h": 30
},
"spriteSourceSize": {
- "x": 9,
- "y": 2,
- "w": 22,
- "h": 25
- },
- "frame": {
- "x": 129,
- "y": 361,
- "w": 22,
- "h": 25
- }
- },
- {
- "filename": "884s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 2,
- "w": 22,
- "h": 25
- },
- "frame": {
- "x": 129,
- "y": 386,
- "w": 22,
- "h": 25
- }
- },
- {
- "filename": "838s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
+ "x": 8,
"y": 3,
- "w": 22,
+ "w": 24,
"h": 24
},
"frame": {
- "x": 129,
- "y": 411,
- "w": 22,
+ "x": 230,
+ "y": 239,
+ "w": 24,
"h": 24
}
},
+ {
+ "filename": "841",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 3,
+ "w": 27,
+ "h": 24
+ },
+ "frame": {
+ "x": 151,
+ "y": 229,
+ "w": 27,
+ "h": 24
+ }
+ },
+ {
+ "filename": "875-no-ice",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 13,
+ "y": 3,
+ "w": 14,
+ "h": 23
+ },
+ "frame": {
+ "x": 137,
+ "y": 235,
+ "w": 14,
+ "h": 23
+ }
+ },
+ {
+ "filename": "841s-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 0,
+ "w": 21,
+ "h": 30
+ },
+ "frame": {
+ "x": 133,
+ "y": 258,
+ "w": 21,
+ "h": 30
+ }
+ },
+ {
+ "filename": "892s-gigantamax-single",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 0,
+ "w": 23,
+ "h": 29
+ },
+ "frame": {
+ "x": 154,
+ "y": 253,
+ "w": 23,
+ "h": 29
+ }
+ },
+ {
+ "filename": "820",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 23,
+ "h": 24
+ },
+ "frame": {
+ "x": 134,
+ "y": 288,
+ "w": 23,
+ "h": 24
+ }
+ },
+ {
+ "filename": "842-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 0,
+ "w": 21,
+ "h": 30
+ },
+ "frame": {
+ "x": 135,
+ "y": 312,
+ "w": 21,
+ "h": 30
+ }
+ },
+ {
+ "filename": "842s-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 0,
+ "w": 21,
+ "h": 30
+ },
+ "frame": {
+ "x": 135,
+ "y": 342,
+ "w": 21,
+ "h": 30
+ }
+ },
+ {
+ "filename": "869s-gigantamax",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 0,
+ "w": 17,
+ "h": 30
+ },
+ "frame": {
+ "x": 157,
+ "y": 282,
+ "w": 17,
+ "h": 30
+ }
+ },
+ {
+ "filename": "899",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 1,
+ "w": 22,
+ "h": 27
+ },
+ "frame": {
+ "x": 156,
+ "y": 312,
+ "w": 22,
+ "h": 27
+ }
+ },
+ {
+ "filename": "899s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 1,
+ "w": 22,
+ "h": 27
+ },
+ "frame": {
+ "x": 156,
+ "y": 339,
+ "w": 22,
+ "h": 27
+ }
+ },
+ {
+ "filename": "888s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 3,
+ "w": 28,
+ "h": 23
+ },
+ "frame": {
+ "x": 178,
+ "y": 243,
+ "w": 28,
+ "h": 23
+ }
+ },
+ {
+ "filename": "827",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 4,
+ "w": 24,
+ "h": 21
+ },
+ "frame": {
+ "x": 206,
+ "y": 246,
+ "w": 24,
+ "h": 21
+ }
+ },
{
"filename": "896",
"rotated": false,
@@ -4140,12 +3027,54 @@
"h": 24
},
"frame": {
- "x": 129,
- "y": 435,
+ "x": 230,
+ "y": 263,
"w": 24,
"h": 24
}
},
+ {
+ "filename": "901",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 5,
+ "w": 28,
+ "h": 23
+ },
+ "frame": {
+ "x": 177,
+ "y": 266,
+ "w": 28,
+ "h": 23
+ }
+ },
+ {
+ "filename": "861",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 2,
+ "w": 25,
+ "h": 26
+ },
+ "frame": {
+ "x": 205,
+ "y": 267,
+ "w": 25,
+ "h": 26
+ }
+ },
{
"filename": "896s",
"rotated": false,
@@ -4161,12 +3090,54 @@
"h": 24
},
"frame": {
- "x": 129,
- "y": 459,
+ "x": 230,
+ "y": 287,
"w": 24,
"h": 24
}
},
+ {
+ "filename": "901s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 5,
+ "w": 28,
+ "h": 23
+ },
+ "frame": {
+ "x": 174,
+ "y": 289,
+ "w": 28,
+ "h": 23
+ }
+ },
+ {
+ "filename": "904",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 3,
+ "w": 28,
+ "h": 25
+ },
+ "frame": {
+ "x": 202,
+ "y": 293,
+ "w": 28,
+ "h": 25
+ }
+ },
{
"filename": "4080",
"rotated": false,
@@ -4182,8 +3153,8 @@
"h": 23
},
"frame": {
- "x": 129,
- "y": 483,
+ "x": 230,
+ "y": 311,
"w": 24,
"h": 23
}
@@ -4203,14 +3174,14 @@
"h": 23
},
"frame": {
- "x": 129,
- "y": 506,
+ "x": 178,
+ "y": 312,
"w": 24,
"h": 23
}
},
{
- "filename": "6571",
+ "filename": "904s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4219,57 +3190,15 @@
},
"spriteSourceSize": {
"x": 7,
- "y": 5,
- "w": 25,
- "h": 23
+ "y": 3,
+ "w": 28,
+ "h": 25
},
"frame": {
- "x": 129,
- "y": 529,
- "w": 25,
- "h": 23
- }
- },
- {
- "filename": "6571s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 25,
- "h": 23
- },
- "frame": {
- "x": 129,
- "y": 552,
- "w": 25,
- "h": 23
- }
- },
- {
- "filename": "878s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 25,
- "h": 22
- },
- "frame": {
- "x": 149,
- "y": 326,
- "w": 25,
- "h": 22
+ "x": 202,
+ "y": 318,
+ "w": 28,
+ "h": 25
}
},
{
@@ -4287,8 +3216,8 @@
"h": 21
},
"frame": {
- "x": 174,
- "y": 326,
+ "x": 230,
+ "y": 334,
"w": 24,
"h": 21
}
@@ -4308,14 +3237,14 @@
"h": 21
},
"frame": {
- "x": 198,
- "y": 326,
+ "x": 178,
+ "y": 335,
"w": 24,
"h": 21
}
},
{
- "filename": "814",
+ "filename": "4145",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4323,20 +3252,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 9,
+ "x": 6,
"y": 3,
- "w": 21,
+ "w": 28,
"h": 23
},
"frame": {
- "x": 222,
- "y": 326,
- "w": 21,
+ "x": 202,
+ "y": 343,
+ "w": 28,
"h": 23
}
},
{
- "filename": "853",
+ "filename": "4077s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4345,19 +3274,19 @@
},
"spriteSourceSize": {
"x": 8,
- "y": 3,
- "w": 23,
- "h": 23
+ "y": 4,
+ "w": 24,
+ "h": 21
},
"frame": {
- "x": 151,
- "y": 348,
- "w": 23,
- "h": 23
+ "x": 230,
+ "y": 355,
+ "w": 24,
+ "h": 21
}
},
{
- "filename": "853s",
+ "filename": "885",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4366,19 +3295,19 @@
},
"spriteSourceSize": {
"x": 8,
- "y": 3,
- "w": 23,
- "h": 23
+ "y": 6,
+ "w": 24,
+ "h": 17
},
"frame": {
- "x": 174,
- "y": 347,
- "w": 23,
- "h": 23
+ "x": 178,
+ "y": 356,
+ "w": 24,
+ "h": 17
}
},
{
- "filename": "6628s",
+ "filename": "4145s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4386,20 +3315,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 7,
- "y": 10,
- "w": 25,
- "h": 19
+ "x": 6,
+ "y": 3,
+ "w": 28,
+ "h": 23
},
"frame": {
- "x": 197,
- "y": 347,
- "w": 25,
- "h": 19
+ "x": 202,
+ "y": 366,
+ "w": 28,
+ "h": 23
}
},
{
- "filename": "816",
+ "filename": "6211",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4407,16 +3336,16 @@
"h": 30
},
"spriteSourceSize": {
- "x": 9,
- "y": 3,
- "w": 22,
- "h": 23
+ "x": 8,
+ "y": 9,
+ "w": 24,
+ "h": 19
},
"frame": {
- "x": 151,
- "y": 371,
- "w": 22,
- "h": 23
+ "x": 230,
+ "y": 376,
+ "w": 24,
+ "h": 19
}
},
{
@@ -4434,14 +3363,203 @@
"h": 23
},
"frame": {
- "x": 151,
- "y": 394,
+ "x": 135,
+ "y": 372,
"w": 22,
"h": 23
}
},
{
- "filename": "4618",
+ "filename": "903",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 1,
+ "w": 21,
+ "h": 27
+ },
+ "frame": {
+ "x": 157,
+ "y": 366,
+ "w": 21,
+ "h": 27
+ }
+ },
+ {
+ "filename": "6211s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 9,
+ "w": 24,
+ "h": 19
+ },
+ "frame": {
+ "x": 178,
+ "y": 373,
+ "w": 24,
+ "h": 19
+ }
+ },
+ {
+ "filename": "873",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 4,
+ "w": 25,
+ "h": 22
+ },
+ "frame": {
+ "x": 132,
+ "y": 395,
+ "w": 25,
+ "h": 22
+ }
+ },
+ {
+ "filename": "842",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 134,
+ "y": 417,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "820s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 23,
+ "h": 24
+ },
+ "frame": {
+ "x": 157,
+ "y": 393,
+ "w": 23,
+ "h": 24
+ }
+ },
+ {
+ "filename": "842s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 2,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 180,
+ "y": 392,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "841s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 3,
+ "w": 27,
+ "h": 24
+ },
+ "frame": {
+ "x": 160,
+ "y": 417,
+ "w": 27,
+ "h": 24
+ }
+ },
+ {
+ "filename": "892",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 2,
+ "w": 23,
+ "h": 25
+ },
+ "frame": {
+ "x": 206,
+ "y": 389,
+ "w": 23,
+ "h": 25
+ }
+ },
+ {
+ "filename": "861s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 2,
+ "w": 25,
+ "h": 26
+ },
+ "frame": {
+ "x": 229,
+ "y": 395,
+ "w": 25,
+ "h": 26
+ }
+ },
+ {
+ "filename": "838",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4450,15 +3568,57 @@
},
"spriteSourceSize": {
"x": 9,
- "y": 6,
+ "y": 3,
"w": 22,
- "h": 18
+ "h": 24
},
"frame": {
- "x": 151,
+ "x": 187,
"y": 417,
"w": 22,
- "h": 18
+ "h": 24
+ }
+ },
+ {
+ "filename": "4199",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 1,
+ "w": 20,
+ "h": 27
+ },
+ "frame": {
+ "x": 209,
+ "y": 414,
+ "w": 20,
+ "h": 27
+ }
+ },
+ {
+ "filename": "900",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 3,
+ "w": 25,
+ "h": 25
+ },
+ "frame": {
+ "x": 229,
+ "y": 421,
+ "w": 25,
+ "h": 25
}
},
{
@@ -4476,12 +3636,33 @@
"h": 29
},
"frame": {
- "x": 153,
- "y": 435,
+ "x": 31,
+ "y": 706,
"w": 15,
"h": 29
}
},
+ {
+ "filename": "849",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 2,
+ "w": 16,
+ "h": 25
+ },
+ "frame": {
+ "x": 31,
+ "y": 735,
+ "w": 16,
+ "h": 25
+ }
+ },
{
"filename": "875",
"rotated": false,
@@ -4497,12 +3678,411 @@
"h": 27
},
"frame": {
- "x": 153,
- "y": 464,
+ "x": 30,
+ "y": 760,
"w": 17,
"h": 27
}
},
+ {
+ "filename": "850",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 10,
+ "w": 21,
+ "h": 10
+ },
+ "frame": {
+ "x": 0,
+ "y": 787,
+ "w": 21,
+ "h": 10
+ }
+ },
+ {
+ "filename": "850s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 10,
+ "w": 21,
+ "h": 10
+ },
+ "frame": {
+ "x": 21,
+ "y": 787,
+ "w": 21,
+ "h": 10
+ }
+ },
+ {
+ "filename": "4146",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 6,
+ "w": 28,
+ "h": 18
+ },
+ "frame": {
+ "x": 56,
+ "y": 442,
+ "w": 28,
+ "h": 18
+ }
+ },
+ {
+ "filename": "4146s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 6,
+ "w": 28,
+ "h": 18
+ },
+ "frame": {
+ "x": 84,
+ "y": 442,
+ "w": 28,
+ "h": 18
+ }
+ },
+ {
+ "filename": "4078",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 3,
+ "w": 27,
+ "h": 23
+ },
+ "frame": {
+ "x": 112,
+ "y": 442,
+ "w": 27,
+ "h": 23
+ }
+ },
+ {
+ "filename": "838s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 22,
+ "h": 24
+ },
+ "frame": {
+ "x": 139,
+ "y": 442,
+ "w": 22,
+ "h": 24
+ }
+ },
+ {
+ "filename": "6706",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 4,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 161,
+ "y": 441,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "6706s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 4,
+ "w": 26,
+ "h": 25
+ },
+ "frame": {
+ "x": 187,
+ "y": 441,
+ "w": 26,
+ "h": 25
+ }
+ },
+ {
+ "filename": "849s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 2,
+ "w": 16,
+ "h": 25
+ },
+ "frame": {
+ "x": 213,
+ "y": 441,
+ "w": 16,
+ "h": 25
+ }
+ },
+ {
+ "filename": "900s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 3,
+ "w": 25,
+ "h": 25
+ },
+ "frame": {
+ "x": 229,
+ "y": 446,
+ "w": 25,
+ "h": 25
+ }
+ },
+ {
+ "filename": "880",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 4,
+ "w": 26,
+ "h": 22
+ },
+ "frame": {
+ "x": 30,
+ "y": 443,
+ "w": 26,
+ "h": 22
+ }
+ },
+ {
+ "filename": "886",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 3,
+ "w": 26,
+ "h": 24
+ },
+ "frame": {
+ "x": 29,
+ "y": 465,
+ "w": 26,
+ "h": 24
+ }
+ },
+ {
+ "filename": "886s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 3,
+ "w": 26,
+ "h": 24
+ },
+ "frame": {
+ "x": 29,
+ "y": 489,
+ "w": 26,
+ "h": 24
+ }
+ },
+ {
+ "filename": "897",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 3,
+ "w": 26,
+ "h": 24
+ },
+ "frame": {
+ "x": 29,
+ "y": 513,
+ "w": 26,
+ "h": 24
+ }
+ },
+ {
+ "filename": "903s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 1,
+ "w": 21,
+ "h": 27
+ },
+ "frame": {
+ "x": 29,
+ "y": 537,
+ "w": 21,
+ "h": 27
+ }
+ },
+ {
+ "filename": "4199s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 1,
+ "w": 20,
+ "h": 27
+ },
+ "frame": {
+ "x": 32,
+ "y": 564,
+ "w": 20,
+ "h": 27
+ }
+ },
+ {
+ "filename": "858",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 2,
+ "w": 22,
+ "h": 25
+ },
+ "frame": {
+ "x": 32,
+ "y": 591,
+ "w": 22,
+ "h": 25
+ }
+ },
+ {
+ "filename": "858s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 2,
+ "w": 22,
+ "h": 25
+ },
+ "frame": {
+ "x": 32,
+ "y": 616,
+ "w": 22,
+ "h": 25
+ }
+ },
+ {
+ "filename": "884",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 2,
+ "w": 22,
+ "h": 25
+ },
+ "frame": {
+ "x": 32,
+ "y": 641,
+ "w": 22,
+ "h": 25
+ }
+ },
{
"filename": "875s",
"rotated": false,
@@ -4518,14 +4098,14 @@
"h": 27
},
"frame": {
- "x": 153,
- "y": 491,
+ "x": 50,
+ "y": 537,
"w": 17,
"h": 27
}
},
{
- "filename": "814s",
+ "filename": "884s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4534,40 +4114,19 @@
},
"spriteSourceSize": {
"x": 9,
- "y": 3,
- "w": 21,
- "h": 23
+ "y": 2,
+ "w": 22,
+ "h": 25
},
"frame": {
- "x": 222,
- "y": 349,
- "w": 21,
- "h": 23
+ "x": 52,
+ "y": 564,
+ "w": 22,
+ "h": 25
}
},
{
- "filename": "846s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 7,
- "w": 25,
- "h": 15
- },
- "frame": {
- "x": 197,
- "y": 366,
- "w": 25,
- "h": 15
- }
- },
- {
- "filename": "883",
+ "filename": "892s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4576,19 +4135,19 @@
},
"spriteSourceSize": {
"x": 8,
- "y": 4,
+ "y": 2,
"w": 23,
- "h": 21
+ "h": 25
},
"frame": {
- "x": 174,
- "y": 370,
+ "x": 54,
+ "y": 589,
"w": 23,
- "h": 21
+ "h": 25
}
},
{
- "filename": "855",
+ "filename": "866",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4596,15 +4155,162 @@
"h": 30
},
"spriteSourceSize": {
- "x": 9,
+ "x": 8,
"y": 3,
- "w": 22,
+ "w": 23,
+ "h": 24
+ },
+ "frame": {
+ "x": 54,
+ "y": 614,
+ "w": 23,
+ "h": 24
+ }
+ },
+ {
+ "filename": "866s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 23,
+ "h": 24
+ },
+ "frame": {
+ "x": 54,
+ "y": 638,
+ "w": 23,
+ "h": 24
+ }
+ },
+ {
+ "filename": "897s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 3,
+ "w": 26,
+ "h": 24
+ },
+ "frame": {
+ "x": 33,
+ "y": 666,
+ "w": 26,
+ "h": 24
+ }
+ },
+ {
+ "filename": "847",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 7,
+ "w": 27,
+ "h": 16
+ },
+ "frame": {
+ "x": 33,
+ "y": 690,
+ "w": 27,
+ "h": 16
+ }
+ },
+ {
+ "filename": "6724",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 1,
+ "w": 17,
+ "h": 28
+ },
+ "frame": {
+ "x": 46,
+ "y": 706,
+ "w": 17,
+ "h": 28
+ }
+ },
+ {
+ "filename": "6724s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 1,
+ "w": 17,
+ "h": 28
+ },
+ "frame": {
+ "x": 47,
+ "y": 734,
+ "w": 17,
+ "h": 28
+ }
+ },
+ {
+ "filename": "863s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 20,
+ "h": 24
+ },
+ "frame": {
+ "x": 47,
+ "y": 762,
+ "w": 20,
+ "h": 24
+ }
+ },
+ {
+ "filename": "810s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 19,
"h": 23
},
"frame": {
- "x": 173,
- "y": 391,
- "w": 22,
+ "x": 59,
+ "y": 662,
+ "w": 19,
"h": 23
}
},
@@ -4623,35 +4329,14 @@
"h": 21
},
"frame": {
- "x": 173,
- "y": 414,
+ "x": 60,
+ "y": 685,
"w": 22,
"h": 21
}
},
{
- "filename": "855s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 3,
- "w": 22,
- "h": 23
- },
- "frame": {
- "x": 168,
- "y": 435,
- "w": 22,
- "h": 23
- }
- },
- {
- "filename": "863",
+ "filename": "830",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4661,18 +4346,18 @@
"spriteSourceSize": {
"x": 10,
"y": 3,
- "w": 20,
- "h": 24
+ "w": 19,
+ "h": 23
},
"frame": {
- "x": 170,
- "y": 458,
- "w": 20,
- "h": 24
+ "x": 63,
+ "y": 706,
+ "w": 19,
+ "h": 23
}
},
{
- "filename": "863s",
+ "filename": "830s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4682,18 +4367,60 @@
"spriteSourceSize": {
"x": 10,
"y": 3,
- "w": 20,
- "h": 24
+ "w": 19,
+ "h": 23
},
"frame": {
- "x": 170,
- "y": 482,
- "w": 20,
- "h": 24
+ "x": 64,
+ "y": 729,
+ "w": 19,
+ "h": 23
}
},
{
- "filename": "4079",
+ "filename": "847s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 7,
+ "w": 27,
+ "h": 16
+ },
+ "frame": {
+ "x": 56,
+ "y": 460,
+ "w": 27,
+ "h": 16
+ }
+ },
+ {
+ "filename": "4078s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 6,
+ "y": 3,
+ "w": 27,
+ "h": 23
+ },
+ "frame": {
+ "x": 55,
+ "y": 476,
+ "w": 27,
+ "h": 23
+ }
+ },
+ {
+ "filename": "6713",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4702,19 +4429,19 @@
},
"spriteSourceSize": {
"x": 7,
- "y": 8,
- "w": 26,
- "h": 14
+ "y": 5,
+ "w": 27,
+ "h": 23
},
"frame": {
- "x": 197,
- "y": 381,
- "w": 26,
- "h": 14
+ "x": 55,
+ "y": 499,
+ "w": 27,
+ "h": 23
}
},
{
- "filename": "860",
+ "filename": "846",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4722,20 +4449,62 @@
"h": 30
},
"spriteSourceSize": {
- "x": 9,
+ "x": 7,
+ "y": 7,
+ "w": 25,
+ "h": 15
+ },
+ "frame": {
+ "x": 55,
+ "y": 522,
+ "w": 25,
+ "h": 15
+ }
+ },
+ {
+ "filename": "6713s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 5,
+ "w": 27,
+ "h": 23
+ },
+ "frame": {
+ "x": 83,
+ "y": 460,
+ "w": 27,
+ "h": 23
+ }
+ },
+ {
+ "filename": "879",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
"y": 3,
- "w": 22,
+ "w": 25,
"h": 23
},
"frame": {
- "x": 195,
- "y": 395,
- "w": 22,
+ "x": 82,
+ "y": 483,
+ "w": 25,
"h": 23
}
},
{
- "filename": "819s",
+ "filename": "880s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4743,20 +4512,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 9,
+ "x": 7,
"y": 4,
- "w": 22,
- "h": 21
+ "w": 26,
+ "h": 22
},
"frame": {
- "x": 195,
- "y": 418,
- "w": 22,
- "h": 21
+ "x": 110,
+ "y": 465,
+ "w": 26,
+ "h": 22
}
},
{
- "filename": "860s",
+ "filename": "892-rapid-strike",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4764,20 +4533,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 9,
- "y": 3,
- "w": 22,
- "h": 23
+ "x": 7,
+ "y": 4,
+ "w": 26,
+ "h": 22
},
"frame": {
- "x": 190,
- "y": 439,
- "w": 22,
- "h": 23
+ "x": 136,
+ "y": 466,
+ "w": 26,
+ "h": 22
}
},
{
- "filename": "876-female",
+ "filename": "892s-rapid-strike",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4785,15 +4554,183 @@
"h": 30
},
"spriteSourceSize": {
- "x": 9,
+ "x": 7,
+ "y": 4,
+ "w": 26,
+ "h": 22
+ },
+ "frame": {
+ "x": 162,
+ "y": 466,
+ "w": 26,
+ "h": 22
+ }
+ },
+ {
+ "filename": "873s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 4,
+ "w": 25,
+ "h": 22
+ },
+ "frame": {
+ "x": 188,
+ "y": 466,
+ "w": 25,
+ "h": 22
+ }
+ },
+ {
+ "filename": "833",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
"y": 3,
- "w": 22,
+ "w": 16,
"h": 23
},
"frame": {
- "x": 190,
- "y": 462,
- "w": 22,
+ "x": 213,
+ "y": 466,
+ "w": 16,
+ "h": 23
+ }
+ },
+ {
+ "filename": "879s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 3,
+ "w": 25,
+ "h": 23
+ },
+ "frame": {
+ "x": 229,
+ "y": 471,
+ "w": 25,
+ "h": 23
+ }
+ },
+ {
+ "filename": "844",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 5,
+ "w": 25,
+ "h": 19
+ },
+ "frame": {
+ "x": 82,
+ "y": 506,
+ "w": 25,
+ "h": 19
+ }
+ },
+ {
+ "filename": "6571",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 5,
+ "w": 25,
+ "h": 23
+ },
+ "frame": {
+ "x": 107,
+ "y": 487,
+ "w": 25,
+ "h": 23
+ }
+ },
+ {
+ "filename": "878",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 4,
+ "w": 25,
+ "h": 22
+ },
+ "frame": {
+ "x": 132,
+ "y": 488,
+ "w": 25,
+ "h": 22
+ }
+ },
+ {
+ "filename": "878s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 4,
+ "w": 25,
+ "h": 22
+ },
+ "frame": {
+ "x": 157,
+ "y": 488,
+ "w": 25,
+ "h": 22
+ }
+ },
+ {
+ "filename": "6571s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 5,
+ "w": 25,
+ "h": 23
+ },
+ "frame": {
+ "x": 182,
+ "y": 488,
+ "w": 25,
"h": 23
}
},
@@ -4812,14 +4749,14 @@
"h": 22
},
"frame": {
- "x": 190,
- "y": 485,
+ "x": 207,
+ "y": 489,
"w": 22,
"h": 22
}
},
{
- "filename": "876s-female",
+ "filename": "844s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -4827,440 +4764,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 9,
- "y": 3,
- "w": 22,
- "h": 23
- },
- "frame": {
- "x": 223,
- "y": 372,
- "w": 22,
- "h": 23
- }
- },
- {
- "filename": "882",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 3,
- "w": 22,
- "h": 23
- },
- "frame": {
- "x": 217,
- "y": 395,
- "w": 22,
- "h": 23
- }
- },
- {
- "filename": "832s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 4,
- "w": 22,
- "h": 22
- },
- "frame": {
- "x": 217,
- "y": 418,
- "w": 22,
- "h": 22
- }
- },
- {
- "filename": "882s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 3,
- "w": 22,
- "h": 23
- },
- "frame": {
- "x": 212,
- "y": 440,
- "w": 22,
- "h": 23
- }
- },
- {
- "filename": "877-hangry",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 4,
- "w": 17,
- "h": 21
- },
- "frame": {
- "x": 234,
- "y": 440,
- "w": 17,
- "h": 21
- }
- },
- {
- "filename": "836",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 4,
- "w": 22,
- "h": 22
- },
- "frame": {
- "x": 212,
- "y": 463,
- "w": 22,
- "h": 22
- }
- },
- {
- "filename": "877",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 4,
- "w": 17,
- "h": 21
- },
- "frame": {
- "x": 234,
- "y": 461,
- "w": 17,
- "h": 21
- }
- },
- {
- "filename": "836s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 4,
- "w": 22,
- "h": 22
- },
- "frame": {
- "x": 212,
- "y": 485,
- "w": 22,
- "h": 22
- }
- },
- {
- "filename": "877s-hangry",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 4,
- "w": 17,
- "h": 21
- },
- "frame": {
- "x": 234,
- "y": 482,
- "w": 17,
- "h": 21
- }
- },
- {
- "filename": "877s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 4,
- "w": 17,
- "h": 21
- },
- "frame": {
- "x": 234,
- "y": 503,
- "w": 17,
- "h": 21
- }
- },
- {
- "filename": "825",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 20,
- "h": 18
- },
- "frame": {
- "x": 170,
- "y": 506,
- "w": 20,
- "h": 18
- }
- },
- {
- "filename": "885",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 6,
- "w": 24,
- "h": 17
- },
- "frame": {
- "x": 190,
- "y": 507,
- "w": 24,
- "h": 17
- }
- },
- {
- "filename": "825s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 20,
- "h": 18
- },
- "frame": {
- "x": 214,
- "y": 507,
- "w": 20,
- "h": 18
- }
- },
- {
- "filename": "6215",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 7,
- "w": 17,
- "h": 21
- },
- "frame": {
- "x": 234,
- "y": 524,
- "w": 17,
- "h": 21
- }
- },
- {
- "filename": "849",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 2,
- "w": 16,
- "h": 25
- },
- "frame": {
- "x": 154,
- "y": 518,
- "w": 16,
- "h": 25
- }
- },
- {
- "filename": "4077s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 4,
- "w": 24,
- "h": 21
- },
- "frame": {
- "x": 170,
- "y": 524,
- "w": 24,
- "h": 21
- }
- },
- {
- "filename": "849s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 2,
- "w": 16,
- "h": 25
- },
- "frame": {
- "x": 154,
- "y": 543,
- "w": 16,
- "h": 25
- }
- },
- {
- "filename": "857",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 4,
- "w": 22,
- "h": 22
- },
- "frame": {
- "x": 170,
- "y": 545,
- "w": 22,
- "h": 22
- }
- },
- {
- "filename": "830",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 3,
- "w": 19,
- "h": 23
- },
- "frame": {
- "x": 194,
- "y": 524,
- "w": 19,
- "h": 23
- }
- },
- {
- "filename": "4052",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 4,
- "w": 21,
- "h": 21
- },
- "frame": {
- "x": 213,
- "y": 525,
- "w": 21,
- "h": 21
- }
- },
- {
- "filename": "835",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
+ "x": 7,
"y": 5,
- "w": 22,
- "h": 20
+ "w": 25,
+ "h": 19
},
"frame": {
- "x": 192,
- "y": 547,
- "w": 22,
- "h": 20
+ "x": 229,
+ "y": 494,
+ "w": 25,
+ "h": 19
}
},
{
- "filename": "857s",
+ "filename": "846s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -5268,20 +4785,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 9,
- "y": 4,
- "w": 22,
- "h": 22
+ "x": 7,
+ "y": 7,
+ "w": 25,
+ "h": 15
},
"frame": {
- "x": 214,
- "y": 546,
- "w": 22,
- "h": 22
+ "x": 107,
+ "y": 510,
+ "w": 25,
+ "h": 15
}
},
{
- "filename": "849-lowkey",
+ "filename": "4079",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -5289,35 +4806,14 @@
"h": 30
},
"spriteSourceSize": {
- "x": 12,
- "y": 3,
- "w": 15,
- "h": 23
- },
- "frame": {
- "x": 236,
- "y": 545,
- "w": 15,
- "h": 23
- }
- },
- {
- "filename": "4079s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 14,
+ "x": 7,
+ "y": 8,
"w": 26,
"h": 14
},
"frame": {
- "x": 129,
- "y": 575,
+ "x": 132,
+ "y": 510,
"w": 26,
"h": 14
}
@@ -5337,14 +4833,14 @@
"h": 17
},
"frame": {
- "x": 105,
- "y": 581,
+ "x": 158,
+ "y": 510,
"w": 24,
"h": 17
}
},
{
- "filename": "883s",
+ "filename": "6628",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -5352,83 +4848,20 @@
"h": 30
},
"spriteSourceSize": {
- "x": 8,
- "y": 4,
- "w": 23,
- "h": 21
- },
- "frame": {
- "x": 100,
- "y": 598,
- "w": 23,
- "h": 21
- }
- },
- {
- "filename": "830s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 3,
- "w": 19,
- "h": 23
- },
- "frame": {
- "x": 100,
- "y": 619,
- "w": 19,
- "h": 23
- }
- },
- {
- "filename": "6211",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 9,
- "w": 24,
+ "x": 7,
+ "y": 10,
+ "w": 25,
"h": 19
},
"frame": {
- "x": 129,
- "y": 589,
- "w": 24,
+ "x": 182,
+ "y": 511,
+ "w": 25,
"h": 19
}
},
{
- "filename": "821",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 7,
- "w": 19,
- "h": 16
- },
- "frame": {
- "x": 100,
- "y": 642,
- "w": 19,
- "h": 16
- }
- },
- {
- "filename": "4052s",
+ "filename": "819s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -5438,16 +4871,247 @@
"spriteSourceSize": {
"x": 9,
"y": 4,
- "w": 21,
+ "w": 22,
"h": 21
},
"frame": {
- "x": 99,
- "y": 658,
- "w": 21,
+ "x": 207,
+ "y": 511,
+ "w": 22,
"h": 21
}
},
+ {
+ "filename": "6628s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 7,
+ "y": 10,
+ "w": 25,
+ "h": 19
+ },
+ "frame": {
+ "x": 229,
+ "y": 513,
+ "w": 25,
+ "h": 19
+ }
+ },
+ {
+ "filename": "833s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 3,
+ "w": 16,
+ "h": 23
+ },
+ "frame": {
+ "x": 67,
+ "y": 537,
+ "w": 16,
+ "h": 23
+ }
+ },
+ {
+ "filename": "853",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 23,
+ "h": 23
+ },
+ "frame": {
+ "x": 83,
+ "y": 525,
+ "w": 23,
+ "h": 23
+ }
+ },
+ {
+ "filename": "853s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 3,
+ "w": 23,
+ "h": 23
+ },
+ "frame": {
+ "x": 106,
+ "y": 525,
+ "w": 23,
+ "h": 23
+ }
+ },
+ {
+ "filename": "4079s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 14,
+ "w": 26,
+ "h": 14
+ },
+ "frame": {
+ "x": 83,
+ "y": 548,
+ "w": 26,
+ "h": 14
+ }
+ },
+ {
+ "filename": "822",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 5,
+ "w": 22,
+ "h": 19
+ },
+ "frame": {
+ "x": 109,
+ "y": 548,
+ "w": 22,
+ "h": 19
+ }
+ },
+ {
+ "filename": "855",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 22,
+ "h": 23
+ },
+ "frame": {
+ "x": 74,
+ "y": 562,
+ "w": 22,
+ "h": 23
+ }
+ },
+ {
+ "filename": "855s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 22,
+ "h": 23
+ },
+ "frame": {
+ "x": 77,
+ "y": 585,
+ "w": 22,
+ "h": 23
+ }
+ },
+ {
+ "filename": "860",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 22,
+ "h": 23
+ },
+ "frame": {
+ "x": 77,
+ "y": 608,
+ "w": 22,
+ "h": 23
+ }
+ },
+ {
+ "filename": "860s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 22,
+ "h": 23
+ },
+ "frame": {
+ "x": 77,
+ "y": 631,
+ "w": 22,
+ "h": 23
+ }
+ },
+ {
+ "filename": "876-female",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 22,
+ "h": 23
+ },
+ "frame": {
+ "x": 78,
+ "y": 654,
+ "w": 22,
+ "h": 23
+ }
+ },
{
"filename": "856",
"rotated": false,
@@ -5463,8 +5127,8 @@
"h": 23
},
"frame": {
- "x": 100,
- "y": 679,
+ "x": 82,
+ "y": 677,
"w": 19,
"h": 23
}
@@ -5484,285 +5148,12 @@
"h": 23
},
"frame": {
- "x": 99,
- "y": 702,
+ "x": 82,
+ "y": 700,
"w": 19,
"h": 23
}
},
- {
- "filename": "824",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 4,
- "w": 15,
- "h": 21
- },
- "frame": {
- "x": 155,
- "y": 568,
- "w": 15,
- "h": 21
- }
- },
- {
- "filename": "6211s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 8,
- "y": 9,
- "w": 24,
- "h": 19
- },
- "frame": {
- "x": 170,
- "y": 567,
- "w": 24,
- "h": 19
- }
- },
- {
- "filename": "831",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 5,
- "w": 20,
- "h": 19
- },
- "frame": {
- "x": 194,
- "y": 567,
- "w": 20,
- "h": 19
- }
- },
- {
- "filename": "822",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 5,
- "w": 22,
- "h": 19
- },
- "frame": {
- "x": 214,
- "y": 568,
- "w": 22,
- "h": 19
- }
- },
- {
- "filename": "849s-lowkey",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 3,
- "w": 15,
- "h": 23
- },
- "frame": {
- "x": 236,
- "y": 568,
- "w": 15,
- "h": 23
- }
- },
- {
- "filename": "822s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 5,
- "w": 22,
- "h": 19
- },
- "frame": {
- "x": 153,
- "y": 589,
- "w": 22,
- "h": 19
- }
- },
- {
- "filename": "835s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 5,
- "w": 22,
- "h": 20
- },
- "frame": {
- "x": 175,
- "y": 586,
- "w": 22,
- "h": 20
- }
- },
- {
- "filename": "859",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 5,
- "w": 17,
- "h": 20
- },
- "frame": {
- "x": 197,
- "y": 586,
- "w": 17,
- "h": 20
- }
- },
- {
- "filename": "4144",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 5,
- "w": 22,
- "h": 19
- },
- "frame": {
- "x": 214,
- "y": 587,
- "w": 22,
- "h": 19
- }
- },
- {
- "filename": "6705",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 6,
- "w": 15,
- "h": 22
- },
- "frame": {
- "x": 236,
- "y": 591,
- "w": 15,
- "h": 22
- }
- },
- {
- "filename": "833",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 3,
- "w": 16,
- "h": 23
- },
- "frame": {
- "x": 119,
- "y": 619,
- "w": 16,
- "h": 23
- }
- },
- {
- "filename": "821s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 7,
- "w": 19,
- "h": 16
- },
- "frame": {
- "x": 119,
- "y": 642,
- "w": 19,
- "h": 16
- }
- },
- {
- "filename": "848",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 4,
- "w": 18,
- "h": 21
- },
- "frame": {
- "x": 120,
- "y": 658,
- "w": 18,
- "h": 21
- }
- },
{
"filename": "869-caramel-swirl",
"rotated": false,
@@ -5778,12 +5169,33 @@
"h": 23
},
"frame": {
- "x": 119,
- "y": 679,
+ "x": 83,
+ "y": 723,
"w": 19,
"h": 23
}
},
+ {
+ "filename": "4618",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 6,
+ "w": 22,
+ "h": 18
+ },
+ "frame": {
+ "x": 96,
+ "y": 567,
+ "w": 22,
+ "h": 18
+ }
+ },
{
"filename": "869-lemon-cream",
"rotated": false,
@@ -5799,8 +5211,8 @@
"h": 23
},
"frame": {
- "x": 118,
- "y": 702,
+ "x": 99,
+ "y": 585,
"w": 19,
"h": 23
}
@@ -5820,7 +5232,7 @@
"h": 23
},
"frame": {
- "x": 135,
+ "x": 99,
"y": 608,
"w": 19,
"h": 23
@@ -5841,33 +5253,12 @@
"h": 23
},
"frame": {
- "x": 154,
- "y": 608,
+ "x": 99,
+ "y": 631,
"w": 19,
"h": 23
}
},
- {
- "filename": "850",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 10,
- "w": 21,
- "h": 10
- },
- "frame": {
- "x": 135,
- "y": 631,
- "w": 21,
- "h": 10
- }
- },
{
"filename": "869-rainbow-swirl",
"rotated": false,
@@ -5883,8 +5274,8 @@
"h": 23
},
"frame": {
- "x": 138,
- "y": 641,
+ "x": 100,
+ "y": 654,
"w": 19,
"h": 23
}
@@ -5904,75 +5295,12 @@
"h": 23
},
"frame": {
- "x": 138,
- "y": 664,
+ "x": 101,
+ "y": 677,
"w": 19,
"h": 23
}
},
- {
- "filename": "831s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 5,
- "w": 20,
- "h": 19
- },
- "frame": {
- "x": 138,
- "y": 687,
- "w": 20,
- "h": 19
- }
- },
- {
- "filename": "4144s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 5,
- "w": 22,
- "h": 19
- },
- "frame": {
- "x": 137,
- "y": 706,
- "w": 22,
- "h": 19
- }
- },
- {
- "filename": "833s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 3,
- "w": 16,
- "h": 23
- },
- "frame": {
- "x": 157,
- "y": 631,
- "w": 16,
- "h": 23
- }
- },
{
"filename": "869-ruby-swirl",
"rotated": false,
@@ -5988,8 +5316,8 @@
"h": 23
},
"frame": {
- "x": 157,
- "y": 654,
+ "x": 101,
+ "y": 700,
"w": 19,
"h": 23
}
@@ -6009,12 +5337,54 @@
"h": 23
},
"frame": {
- "x": 158,
- "y": 677,
+ "x": 102,
+ "y": 723,
"w": 19,
"h": 23
}
},
+ {
+ "filename": "849-lowkey",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 3,
+ "w": 15,
+ "h": 23
+ },
+ "frame": {
+ "x": 118,
+ "y": 567,
+ "w": 15,
+ "h": 23
+ }
+ },
+ {
+ "filename": "849s-lowkey",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 3,
+ "w": 15,
+ "h": 23
+ },
+ "frame": {
+ "x": 118,
+ "y": 590,
+ "w": 15,
+ "h": 23
+ }
+ },
{
"filename": "869",
"rotated": false,
@@ -6030,12 +5400,390 @@
"h": 23
},
"frame": {
- "x": 159,
+ "x": 118,
+ "y": 613,
+ "w": 19,
+ "h": 23
+ }
+ },
+ {
+ "filename": "825",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 20,
+ "h": 18
+ },
+ "frame": {
+ "x": 118,
+ "y": 636,
+ "w": 20,
+ "h": 18
+ }
+ },
+ {
+ "filename": "869s-caramel-swirl",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 19,
+ "h": 23
+ },
+ "frame": {
+ "x": 119,
+ "y": 654,
+ "w": 19,
+ "h": 23
+ }
+ },
+ {
+ "filename": "869s-lemon-cream",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 19,
+ "h": 23
+ },
+ "frame": {
+ "x": 120,
+ "y": 677,
+ "w": 19,
+ "h": 23
+ }
+ },
+ {
+ "filename": "869s-matcha-cream",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 19,
+ "h": 23
+ },
+ "frame": {
+ "x": 120,
"y": 700,
"w": 19,
"h": 23
}
},
+ {
+ "filename": "869s-mint-cream",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 19,
+ "h": 23
+ },
+ "frame": {
+ "x": 121,
+ "y": 723,
+ "w": 19,
+ "h": 23
+ }
+ },
+ {
+ "filename": "869s-rainbow-swirl",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 19,
+ "h": 23
+ },
+ "frame": {
+ "x": 67,
+ "y": 752,
+ "w": 19,
+ "h": 23
+ }
+ },
+ {
+ "filename": "876s-female",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 22,
+ "h": 23
+ },
+ "frame": {
+ "x": 67,
+ "y": 775,
+ "w": 22,
+ "h": 23
+ }
+ },
+ {
+ "filename": "882",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 22,
+ "h": 23
+ },
+ "frame": {
+ "x": 86,
+ "y": 746,
+ "w": 22,
+ "h": 23
+ }
+ },
+ {
+ "filename": "882s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 3,
+ "w": 22,
+ "h": 23
+ },
+ "frame": {
+ "x": 108,
+ "y": 746,
+ "w": 22,
+ "h": 23
+ }
+ },
+ {
+ "filename": "832s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 4,
+ "w": 22,
+ "h": 22
+ },
+ "frame": {
+ "x": 89,
+ "y": 769,
+ "w": 22,
+ "h": 22
+ }
+ },
+ {
+ "filename": "836",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 4,
+ "w": 22,
+ "h": 22
+ },
+ "frame": {
+ "x": 111,
+ "y": 769,
+ "w": 22,
+ "h": 22
+ }
+ },
+ {
+ "filename": "869s-ruby-cream",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 19,
+ "h": 23
+ },
+ "frame": {
+ "x": 130,
+ "y": 746,
+ "w": 19,
+ "h": 23
+ }
+ },
+ {
+ "filename": "836s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 4,
+ "w": 22,
+ "h": 22
+ },
+ "frame": {
+ "x": 133,
+ "y": 769,
+ "w": 22,
+ "h": 22
+ }
+ },
+ {
+ "filename": "869s-ruby-swirl",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 19,
+ "h": 23
+ },
+ "frame": {
+ "x": 129,
+ "y": 525,
+ "w": 19,
+ "h": 23
+ }
+ },
+ {
+ "filename": "822s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 5,
+ "w": 22,
+ "h": 19
+ },
+ "frame": {
+ "x": 131,
+ "y": 548,
+ "w": 22,
+ "h": 19
+ }
+ },
+ {
+ "filename": "857",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 4,
+ "w": 22,
+ "h": 22
+ },
+ "frame": {
+ "x": 133,
+ "y": 567,
+ "w": 22,
+ "h": 22
+ }
+ },
+ {
+ "filename": "857s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 4,
+ "w": 22,
+ "h": 22
+ },
+ "frame": {
+ "x": 133,
+ "y": 589,
+ "w": 22,
+ "h": 22
+ }
+ },
+ {
+ "filename": "869s-salted-cream",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 3,
+ "w": 19,
+ "h": 23
+ },
+ "frame": {
+ "x": 137,
+ "y": 611,
+ "w": 19,
+ "h": 23
+ }
+ },
{
"filename": "869s",
"rotated": false,
@@ -6051,12 +5799,180 @@
"h": 23
},
"frame": {
- "x": 173,
- "y": 608,
+ "x": 138,
+ "y": 634,
"w": 19,
"h": 23
}
},
+ {
+ "filename": "835",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 5,
+ "w": 22,
+ "h": 20
+ },
+ "frame": {
+ "x": 138,
+ "y": 657,
+ "w": 22,
+ "h": 20
+ }
+ },
+ {
+ "filename": "883",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 4,
+ "w": 23,
+ "h": 21
+ },
+ "frame": {
+ "x": 139,
+ "y": 677,
+ "w": 23,
+ "h": 21
+ }
+ },
+ {
+ "filename": "883s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 8,
+ "y": 4,
+ "w": 23,
+ "h": 21
+ },
+ "frame": {
+ "x": 139,
+ "y": 698,
+ "w": 23,
+ "h": 21
+ }
+ },
+ {
+ "filename": "835s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 5,
+ "w": 22,
+ "h": 20
+ },
+ "frame": {
+ "x": 140,
+ "y": 719,
+ "w": 22,
+ "h": 20
+ }
+ },
+ {
+ "filename": "4052",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 4,
+ "w": 21,
+ "h": 21
+ },
+ "frame": {
+ "x": 148,
+ "y": 527,
+ "w": 21,
+ "h": 21
+ }
+ },
+ {
+ "filename": "831",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 5,
+ "w": 20,
+ "h": 19
+ },
+ "frame": {
+ "x": 153,
+ "y": 548,
+ "w": 20,
+ "h": 19
+ }
+ },
+ {
+ "filename": "881s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 3,
+ "w": 18,
+ "h": 23
+ },
+ "frame": {
+ "x": 155,
+ "y": 567,
+ "w": 18,
+ "h": 23
+ }
+ },
+ {
+ "filename": "848",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 4,
+ "w": 18,
+ "h": 21
+ },
+ "frame": {
+ "x": 155,
+ "y": 590,
+ "w": 18,
+ "h": 21
+ }
+ },
{
"filename": "6549",
"rotated": false,
@@ -6072,12 +5988,264 @@
"h": 23
},
"frame": {
- "x": 173,
- "y": 631,
+ "x": 156,
+ "y": 611,
"w": 16,
"h": 23
}
},
+ {
+ "filename": "6549s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 5,
+ "w": 16,
+ "h": 23
+ },
+ "frame": {
+ "x": 157,
+ "y": 634,
+ "w": 16,
+ "h": 23
+ }
+ },
+ {
+ "filename": "859s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 5,
+ "w": 17,
+ "h": 20
+ },
+ "frame": {
+ "x": 160,
+ "y": 657,
+ "w": 17,
+ "h": 20
+ }
+ },
+ {
+ "filename": "875s-no-ice",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 13,
+ "y": 3,
+ "w": 14,
+ "h": 23
+ },
+ "frame": {
+ "x": 162,
+ "y": 677,
+ "w": 14,
+ "h": 23
+ }
+ },
+ {
+ "filename": "891",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 4,
+ "w": 18,
+ "h": 22
+ },
+ "frame": {
+ "x": 162,
+ "y": 700,
+ "w": 18,
+ "h": 22
+ }
+ },
+ {
+ "filename": "825s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 20,
+ "h": 18
+ },
+ "frame": {
+ "x": 162,
+ "y": 722,
+ "w": 20,
+ "h": 18
+ }
+ },
+ {
+ "filename": "4618s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 6,
+ "w": 22,
+ "h": 18
+ },
+ "frame": {
+ "x": 169,
+ "y": 530,
+ "w": 22,
+ "h": 18
+ }
+ },
+ {
+ "filename": "891s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 4,
+ "w": 18,
+ "h": 22
+ },
+ "frame": {
+ "x": 173,
+ "y": 548,
+ "w": 18,
+ "h": 22
+ }
+ },
+ {
+ "filename": "898",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 4,
+ "w": 19,
+ "h": 22
+ },
+ "frame": {
+ "x": 173,
+ "y": 570,
+ "w": 19,
+ "h": 22
+ }
+ },
+ {
+ "filename": "831s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 5,
+ "w": 20,
+ "h": 19
+ },
+ "frame": {
+ "x": 173,
+ "y": 592,
+ "w": 20,
+ "h": 19
+ }
+ },
+ {
+ "filename": "4052s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 4,
+ "w": 21,
+ "h": 21
+ },
+ "frame": {
+ "x": 172,
+ "y": 611,
+ "w": 21,
+ "h": 21
+ }
+ },
+ {
+ "filename": "898s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 4,
+ "w": 19,
+ "h": 22
+ },
+ "frame": {
+ "x": 173,
+ "y": 632,
+ "w": 19,
+ "h": 22
+ }
+ },
+ {
+ "filename": "6705",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 13,
+ "y": 6,
+ "w": 15,
+ "h": 22
+ },
+ "frame": {
+ "x": 191,
+ "y": 530,
+ "w": 15,
+ "h": 22
+ }
+ },
{
"filename": "4264",
"rotated": false,
@@ -6093,8 +6261,8 @@
"h": 20
},
"frame": {
- "x": 192,
- "y": 606,
+ "x": 206,
+ "y": 532,
"w": 22,
"h": 20
}
@@ -6114,96 +6282,12 @@
"h": 20
},
"frame": {
- "x": 214,
- "y": 606,
+ "x": 228,
+ "y": 532,
"w": 22,
"h": 20
}
},
- {
- "filename": "6705s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 6,
- "w": 15,
- "h": 22
- },
- "frame": {
- "x": 236,
- "y": 613,
- "w": 15,
- "h": 22
- }
- },
- {
- "filename": "875-no-ice",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 3,
- "w": 14,
- "h": 23
- },
- "frame": {
- "x": 176,
- "y": 654,
- "w": 14,
- "h": 23
- }
- },
- {
- "filename": "875s-no-ice",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 3,
- "w": 14,
- "h": 23
- },
- "frame": {
- "x": 177,
- "y": 677,
- "w": 14,
- "h": 23
- }
- },
- {
- "filename": "6549s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 5,
- "w": 16,
- "h": 23
- },
- "frame": {
- "x": 178,
- "y": 700,
- "w": 16,
- "h": 23
- }
- },
{
"filename": "4263",
"rotated": false,
@@ -6218,221 +6302,11 @@
"w": 22,
"h": 16
},
- "frame": {
- "x": 192,
- "y": 626,
- "w": 22,
- "h": 16
- }
- },
- {
- "filename": "4263s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 7,
- "w": 22,
- "h": 16
- },
- "frame": {
- "x": 214,
- "y": 626,
- "w": 22,
- "h": 16
- }
- },
- {
- "filename": "824s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 4,
- "w": 15,
- "h": 21
- },
- "frame": {
- "x": 236,
- "y": 635,
- "w": 15,
- "h": 21
- }
- },
- {
- "filename": "850s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 10,
- "w": 21,
- "h": 10
- },
- "frame": {
- "x": 189,
- "y": 642,
- "w": 21,
- "h": 10
- }
- },
- {
- "filename": "898",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 4,
- "w": 19,
- "h": 22
- },
- "frame": {
- "x": 190,
- "y": 652,
- "w": 19,
- "h": 22
- }
- },
- {
- "filename": "891",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 4,
- "w": 18,
- "h": 22
- },
"frame": {
"x": 191,
- "y": 674,
- "w": 18,
- "h": 22
- }
- },
- {
- "filename": "891s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 4,
- "w": 18,
- "h": 22
- },
- "frame": {
- "x": 194,
- "y": 696,
- "w": 18,
- "h": 22
- }
- },
- {
- "filename": "4562",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 7,
+ "y": 552,
"w": 22,
"h": 16
- },
- "frame": {
- "x": 210,
- "y": 642,
- "w": 22,
- "h": 16
- }
- },
- {
- "filename": "898s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 4,
- "w": 19,
- "h": 22
- },
- "frame": {
- "x": 209,
- "y": 658,
- "w": 19,
- "h": 22
- }
- },
- {
- "filename": "4562s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 9,
- "y": 7,
- "w": 22,
- "h": 16
- },
- "frame": {
- "x": 209,
- "y": 680,
- "w": 22,
- "h": 16
- }
- },
- {
- "filename": "6570",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 6,
- "w": 18,
- "h": 22
- },
- "frame": {
- "x": 212,
- "y": 696,
- "w": 18,
- "h": 22
}
},
{
@@ -6450,14 +6324,14 @@
"h": 20
},
"frame": {
- "x": 230,
- "y": 696,
+ "x": 192,
+ "y": 568,
"w": 21,
"h": 20
}
},
{
- "filename": "4222s",
+ "filename": "4144",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -6467,14 +6341,14 @@
"spriteSourceSize": {
"x": 9,
"y": 5,
- "w": 21,
- "h": 20
+ "w": 22,
+ "h": 19
},
"frame": {
- "x": 230,
- "y": 716,
- "w": 21,
- "h": 20
+ "x": 213,
+ "y": 552,
+ "w": 22,
+ "h": 19
}
},
{
@@ -6492,35 +6366,14 @@
"h": 19
},
"frame": {
- "x": 232,
- "y": 656,
+ "x": 235,
+ "y": 552,
"w": 19,
"h": 19
}
},
{
- "filename": "848s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 4,
- "w": 18,
- "h": 21
- },
- "frame": {
- "x": 231,
- "y": 675,
- "w": 18,
- "h": 21
- }
- },
- {
- "filename": "4618s",
+ "filename": "4144s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -6529,99 +6382,15 @@
},
"spriteSourceSize": {
"x": 9,
- "y": 6,
+ "y": 5,
"w": 22,
- "h": 18
+ "h": 19
},
"frame": {
- "x": 194,
- "y": 718,
+ "x": 213,
+ "y": 571,
"w": 22,
- "h": 18
- }
- },
- {
- "filename": "6100",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 14,
- "w": 14,
- "h": 14
- },
- "frame": {
- "x": 216,
- "y": 718,
- "w": 14,
- "h": 14
- }
- },
- {
- "filename": "6058",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 8,
- "w": 21,
- "h": 20
- },
- "frame": {
- "x": 99,
- "y": 725,
- "w": 21,
- "h": 20
- }
- },
- {
- "filename": "6058s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 8,
- "w": 21,
- "h": 20
- },
- "frame": {
- "x": 120,
- "y": 725,
- "w": 21,
- "h": 20
- }
- },
- {
- "filename": "6570s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 6,
- "w": 18,
- "h": 22
- },
- "frame": {
- "x": 141,
- "y": 725,
- "w": 18,
- "h": 22
+ "h": 19
}
},
{
@@ -6639,14 +6408,14 @@
"h": 19
},
"frame": {
- "x": 159,
- "y": 723,
+ "x": 235,
+ "y": 571,
"w": 19,
"h": 19
}
},
{
- "filename": "868",
+ "filename": "6570",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -6656,18 +6425,18 @@
"spriteSourceSize": {
"x": 12,
"y": 6,
- "w": 16,
- "h": 17
+ "w": 18,
+ "h": 22
},
"frame": {
- "x": 178,
- "y": 723,
- "w": 16,
- "h": 17
+ "x": 193,
+ "y": 588,
+ "w": 18,
+ "h": 22
}
},
{
- "filename": "6215s",
+ "filename": "6570s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -6676,17 +6445,206 @@
},
"spriteSourceSize": {
"x": 12,
+ "y": 6,
+ "w": 18,
+ "h": 22
+ },
+ "frame": {
+ "x": 193,
+ "y": 610,
+ "w": 18,
+ "h": 22
+ }
+ },
+ {
+ "filename": "848s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 4,
+ "w": 18,
+ "h": 21
+ },
+ "frame": {
+ "x": 192,
+ "y": 632,
+ "w": 18,
+ "h": 21
+ }
+ },
+ {
+ "filename": "4222s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 5,
+ "w": 21,
+ "h": 20
+ },
+ "frame": {
+ "x": 211,
+ "y": 590,
+ "w": 21,
+ "h": 20
+ }
+ },
+ {
+ "filename": "4263s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
"y": 7,
+ "w": 22,
+ "h": 16
+ },
+ "frame": {
+ "x": 232,
+ "y": 590,
+ "w": 22,
+ "h": 16
+ }
+ },
+ {
+ "filename": "4562",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 7,
+ "w": 22,
+ "h": 16
+ },
+ "frame": {
+ "x": 232,
+ "y": 606,
+ "w": 22,
+ "h": 16
+ }
+ },
+ {
+ "filename": "6058",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 8,
+ "w": 21,
+ "h": 20
+ },
+ "frame": {
+ "x": 211,
+ "y": 610,
+ "w": 21,
+ "h": 20
+ }
+ },
+ {
+ "filename": "4562s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 9,
+ "y": 7,
+ "w": 22,
+ "h": 16
+ },
+ "frame": {
+ "x": 232,
+ "y": 622,
+ "w": 22,
+ "h": 16
+ }
+ },
+ {
+ "filename": "6705s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 13,
+ "y": 6,
+ "w": 15,
+ "h": 22
+ },
+ "frame": {
+ "x": 177,
+ "y": 654,
+ "w": 15,
+ "h": 22
+ }
+ },
+ {
+ "filename": "877-hangry",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 4,
"w": 17,
"h": 21
},
"frame": {
- "x": 100,
- "y": 745,
+ "x": 192,
+ "y": 653,
"w": 17,
"h": 21
}
},
+ {
+ "filename": "6058s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 8,
+ "w": 21,
+ "h": 20
+ },
+ "frame": {
+ "x": 211,
+ "y": 630,
+ "w": 21,
+ "h": 20
+ }
+ },
{
"filename": "837",
"rotated": false,
@@ -6702,12 +6660,411 @@
"h": 17
},
"frame": {
- "x": 117,
- "y": 745,
+ "x": 232,
+ "y": 638,
"w": 20,
"h": 17
}
},
+ {
+ "filename": "824",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 4,
+ "w": 15,
+ "h": 21
+ },
+ "frame": {
+ "x": 176,
+ "y": 677,
+ "w": 15,
+ "h": 21
+ }
+ },
+ {
+ "filename": "824s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 4,
+ "w": 15,
+ "h": 21
+ },
+ "frame": {
+ "x": 180,
+ "y": 698,
+ "w": 15,
+ "h": 21
+ }
+ },
+ {
+ "filename": "877",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 4,
+ "w": 17,
+ "h": 21
+ },
+ "frame": {
+ "x": 182,
+ "y": 719,
+ "w": 17,
+ "h": 21
+ }
+ },
+ {
+ "filename": "837s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 20,
+ "h": 17
+ },
+ "frame": {
+ "x": 210,
+ "y": 650,
+ "w": 20,
+ "h": 17
+ }
+ },
+ {
+ "filename": "821",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 7,
+ "w": 19,
+ "h": 16
+ },
+ "frame": {
+ "x": 230,
+ "y": 655,
+ "w": 19,
+ "h": 16
+ }
+ },
+ {
+ "filename": "821s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 7,
+ "w": 19,
+ "h": 16
+ },
+ "frame": {
+ "x": 209,
+ "y": 667,
+ "w": 19,
+ "h": 16
+ }
+ },
+ {
+ "filename": "852s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 19,
+ "h": 17
+ },
+ "frame": {
+ "x": 228,
+ "y": 671,
+ "w": 19,
+ "h": 17
+ }
+ },
+ {
+ "filename": "829",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 6,
+ "w": 17,
+ "h": 18
+ },
+ "frame": {
+ "x": 192,
+ "y": 674,
+ "w": 17,
+ "h": 18
+ }
+ },
+ {
+ "filename": "871",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 19,
+ "h": 17
+ },
+ "frame": {
+ "x": 209,
+ "y": 683,
+ "w": 19,
+ "h": 17
+ }
+ },
+ {
+ "filename": "871s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 10,
+ "y": 6,
+ "w": 19,
+ "h": 17
+ },
+ "frame": {
+ "x": 228,
+ "y": 688,
+ "w": 19,
+ "h": 17
+ }
+ },
+ {
+ "filename": "6100",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 13,
+ "y": 14,
+ "w": 14,
+ "h": 14
+ },
+ "frame": {
+ "x": 195,
+ "y": 692,
+ "w": 14,
+ "h": 14
+ }
+ },
+ {
+ "filename": "843",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 5,
+ "w": 18,
+ "h": 19
+ },
+ "frame": {
+ "x": 209,
+ "y": 700,
+ "w": 18,
+ "h": 19
+ }
+ },
+ {
+ "filename": "843s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 5,
+ "w": 18,
+ "h": 19
+ },
+ "frame": {
+ "x": 227,
+ "y": 705,
+ "w": 18,
+ "h": 19
+ }
+ },
+ {
+ "filename": "877s-hangry",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 4,
+ "w": 17,
+ "h": 21
+ },
+ "frame": {
+ "x": 199,
+ "y": 719,
+ "w": 17,
+ "h": 21
+ }
+ },
+ {
+ "filename": "829s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 6,
+ "w": 17,
+ "h": 18
+ },
+ "frame": {
+ "x": 216,
+ "y": 724,
+ "w": 17,
+ "h": 18
+ }
+ },
+ {
+ "filename": "877s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 4,
+ "w": 17,
+ "h": 21
+ },
+ "frame": {
+ "x": 233,
+ "y": 724,
+ "w": 17,
+ "h": 21
+ }
+ },
+ {
+ "filename": "6215",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 7,
+ "w": 17,
+ "h": 21
+ },
+ "frame": {
+ "x": 149,
+ "y": 745,
+ "w": 17,
+ "h": 21
+ }
+ },
+ {
+ "filename": "6215s",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 7,
+ "w": 17,
+ "h": 21
+ },
+ "frame": {
+ "x": 166,
+ "y": 740,
+ "w": 17,
+ "h": 21
+ }
+ },
+ {
+ "filename": "868",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 6,
+ "w": 16,
+ "h": 17
+ },
+ "frame": {
+ "x": 183,
+ "y": 740,
+ "w": 16,
+ "h": 17
+ }
+ },
{
"filename": "4554",
"rotated": false,
@@ -6723,96 +7080,12 @@
"h": 15
},
"frame": {
- "x": 100,
- "y": 766,
+ "x": 199,
+ "y": 740,
"w": 17,
"h": 15
}
},
- {
- "filename": "4554s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 7,
- "w": 17,
- "h": 15
- },
- "frame": {
- "x": 105,
- "y": 781,
- "w": 17,
- "h": 15
- }
- },
- {
- "filename": "843",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 5,
- "w": 18,
- "h": 19
- },
- "frame": {
- "x": 117,
- "y": 762,
- "w": 18,
- "h": 19
- }
- },
- {
- "filename": "837s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 20,
- "h": 17
- },
- "frame": {
- "x": 137,
- "y": 747,
- "w": 20,
- "h": 17
- }
- },
- {
- "filename": "852s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 19,
- "h": 17
- },
- "frame": {
- "x": 135,
- "y": 764,
- "w": 19,
- "h": 17
- }
- },
{
"filename": "854",
"rotated": false,
@@ -6828,8 +7101,8 @@
"h": 14
},
"frame": {
- "x": 122,
- "y": 781,
+ "x": 216,
+ "y": 742,
"w": 17,
"h": 14
}
@@ -6849,75 +7122,12 @@
"h": 14
},
"frame": {
- "x": 139,
- "y": 781,
+ "x": 233,
+ "y": 745,
"w": 17,
"h": 14
}
},
- {
- "filename": "871",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 19,
- "h": 17
- },
- "frame": {
- "x": 159,
- "y": 742,
- "w": 19,
- "h": 17
- }
- },
- {
- "filename": "843s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 5,
- "w": 18,
- "h": 19
- },
- "frame": {
- "x": 178,
- "y": 740,
- "w": 18,
- "h": 19
- }
- },
- {
- "filename": "859s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 5,
- "w": 17,
- "h": 20
- },
- "frame": {
- "x": 196,
- "y": 736,
- "w": 17,
- "h": 20
- }
- },
{
"filename": "840",
"rotated": false,
@@ -6933,35 +7143,14 @@
"h": 17
},
"frame": {
- "x": 154,
- "y": 764,
+ "x": 155,
+ "y": 766,
"w": 15,
"h": 17
}
},
{
- "filename": "871s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 6,
- "w": 19,
- "h": 17
- },
- "frame": {
- "x": 169,
- "y": 759,
- "w": 19,
- "h": 17
- }
- },
- {
- "filename": "872",
+ "filename": "4554s",
"rotated": false,
"trimmed": true,
"sourceSize": {
@@ -6970,36 +7159,15 @@
},
"spriteSourceSize": {
"x": 11,
- "y": 8,
+ "y": 7,
"w": 17,
- "h": 14
+ "h": 15
},
"frame": {
- "x": 156,
- "y": 781,
+ "x": 155,
+ "y": 783,
"w": 17,
- "h": 14
- }
- },
- {
- "filename": "829",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 6,
- "w": 17,
- "h": 18
- },
- "frame": {
- "x": 173,
- "y": 776,
- "w": 17,
- "h": 18
+ "h": 15
}
},
{
@@ -7017,33 +7185,12 @@
"h": 17
},
"frame": {
- "x": 188,
- "y": 759,
+ "x": 170,
+ "y": 761,
"w": 15,
"h": 17
}
},
- {
- "filename": "829s",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 6,
- "w": 17,
- "h": 18
- },
- "frame": {
- "x": 190,
- "y": 776,
- "w": 17,
- "h": 18
- }
- },
{
"filename": "868s",
"rotated": false,
@@ -7059,33 +7206,12 @@
"h": 17
},
"frame": {
- "x": 203,
- "y": 756,
+ "x": 185,
+ "y": 757,
"w": 16,
"h": 17
}
},
- {
- "filename": "6101",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 40,
- "h": 30
- },
- "spriteSourceSize": {
- "x": 12,
- "y": 12,
- "w": 16,
- "h": 16
- },
- "frame": {
- "x": 207,
- "y": 773,
- "w": 16,
- "h": 16
- }
- },
{
"filename": "6100s",
"rotated": false,
@@ -7101,12 +7227,33 @@
"h": 14
},
"frame": {
- "x": 216,
- "y": 732,
+ "x": 201,
+ "y": 755,
"w": 14,
"h": 14
}
},
+ {
+ "filename": "872",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 11,
+ "y": 8,
+ "w": 17,
+ "h": 14
+ },
+ "frame": {
+ "x": 215,
+ "y": 756,
+ "w": 17,
+ "h": 14
+ }
+ },
{
"filename": "872s",
"rotated": false,
@@ -7122,12 +7269,33 @@
"h": 14
},
"frame": {
- "x": 230,
- "y": 736,
+ "x": 232,
+ "y": 759,
"w": 17,
"h": 14
}
},
+ {
+ "filename": "6101",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 40,
+ "h": 30
+ },
+ "spriteSourceSize": {
+ "x": 12,
+ "y": 12,
+ "w": 16,
+ "h": 16
+ },
+ "frame": {
+ "x": 172,
+ "y": 778,
+ "w": 16,
+ "h": 16
+ }
+ },
{
"filename": "6101s",
"rotated": false,
@@ -7143,8 +7311,8 @@
"h": 16
},
"frame": {
- "x": 219,
- "y": 750,
+ "x": 188,
+ "y": 774,
"w": 16,
"h": 16
}
@@ -7155,6 +7323,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:a5e8bbe68acd6fa6a6192a11dcd3d8dd:daf54543be918b4f74a0d25a8e946ce0:8190d2ecf16422e962cfb1a751b5e1fc$"
+ "smartupdate": "$TexturePacker:SmartUpdate:76f12e2db074120d5e364d7bac497210:e1ea47956220c560d403105ff317eb1a:8190d2ecf16422e962cfb1a751b5e1fc$"
}
}
diff --git a/public/images/pokemon_icons_8.png b/public/images/pokemon_icons_8.png
index 0d2ddcec281..70b4e280ccb 100644
Binary files a/public/images/pokemon_icons_8.png and b/public/images/pokemon_icons_8.png differ
diff --git a/public/images/ui/achv_bar_4.png b/public/images/ui/achv_bar_4.png
index cc06af91620..f14026c7a34 100644
Binary files a/public/images/ui/achv_bar_4.png and b/public/images/ui/achv_bar_4.png differ
diff --git a/public/images/ui/achv_bar_5.png b/public/images/ui/achv_bar_5.png
new file mode 100644
index 00000000000..cc06af91620
Binary files /dev/null and b/public/images/ui/achv_bar_5.png differ
diff --git a/public/images/ui/legacy/achv_bar_4.png b/public/images/ui/legacy/achv_bar_4.png
index dae7a30dec0..d52fbfd055e 100644
Binary files a/public/images/ui/legacy/achv_bar_4.png and b/public/images/ui/legacy/achv_bar_4.png differ
diff --git a/public/images/ui/legacy/achv_bar_5.png b/public/images/ui/legacy/achv_bar_5.png
new file mode 100644
index 00000000000..dae7a30dec0
Binary files /dev/null and b/public/images/ui/legacy/achv_bar_5.png differ
diff --git a/public/images/ui/legacy/pbinfo_enemy_boss_stats.png b/public/images/ui/legacy/pbinfo_enemy_boss_stats.png
new file mode 100644
index 00000000000..94c9f2a1817
Binary files /dev/null and b/public/images/ui/legacy/pbinfo_enemy_boss_stats.png differ
diff --git a/public/images/ui/legacy/pbinfo_enemy_mini_stats.png b/public/images/ui/legacy/pbinfo_enemy_mini_stats.png
new file mode 100644
index 00000000000..eb32e694134
Binary files /dev/null and b/public/images/ui/legacy/pbinfo_enemy_mini_stats.png differ
diff --git a/public/images/ui/legacy/pbinfo_player_mini_stats.png b/public/images/ui/legacy/pbinfo_player_mini_stats.png
new file mode 100644
index 00000000000..dd2b7e65ba3
Binary files /dev/null and b/public/images/ui/legacy/pbinfo_player_mini_stats.png differ
diff --git a/public/images/ui/legacy/pbinfo_player_stats.png b/public/images/ui/legacy/pbinfo_player_stats.png
new file mode 100644
index 00000000000..078248624bc
Binary files /dev/null and b/public/images/ui/legacy/pbinfo_player_stats.png differ
diff --git a/public/images/ui/legacy/pbinfo_stat.json b/public/images/ui/legacy/pbinfo_stat.json
new file mode 100644
index 00000000000..b7da47fc192
--- /dev/null
+++ b/public/images/ui/legacy/pbinfo_stat.json
@@ -0,0 +1,188 @@
+{
+ "textures": [
+ {
+ "image": "pbinfo_stat.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 112,
+ "h": 6
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "SPATK",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 19,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 1,
+ "y": 2,
+ "w": 18,
+ "h": 6
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 18,
+ "h": 6
+ }
+ },
+ {
+ "filename": "SPDEF",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 19,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 1,
+ "y": 2,
+ "w": 18,
+ "h": 6
+ },
+ "frame": {
+ "x": 18,
+ "y": 0,
+ "w": 18,
+ "h": 6
+ }
+ },
+ {
+ "filename": "CRIT",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 17,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 1,
+ "y": 2,
+ "w": 16,
+ "h": 6
+ },
+ "frame": {
+ "x": 36,
+ "y": 0,
+ "w": 16,
+ "h": 6
+ }
+ },
+ {
+ "filename": "ACC",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 13,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 1,
+ "y": 2,
+ "w": 12,
+ "h": 6
+ },
+ "frame": {
+ "x": 52,
+ "y": 0,
+ "w": 12,
+ "h": 6
+ }
+ },
+ {
+ "filename": "ATK",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 13,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 1,
+ "y": 2,
+ "w": 12,
+ "h": 6
+ },
+ "frame": {
+ "x": 64,
+ "y": 0,
+ "w": 12,
+ "h": 6
+ }
+ },
+ {
+ "filename": "DEF",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 13,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 1,
+ "y": 2,
+ "w": 12,
+ "h": 6
+ },
+ "frame": {
+ "x": 76,
+ "y": 0,
+ "w": 12,
+ "h": 6
+ }
+ },
+ {
+ "filename": "EVA",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 13,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 1,
+ "y": 2,
+ "w": 12,
+ "h": 6
+ },
+ "frame": {
+ "x": 88,
+ "y": 0,
+ "w": 12,
+ "h": 6
+ }
+ },
+ {
+ "filename": "SPD",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 13,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 1,
+ "y": 2,
+ "w": 12,
+ "h": 6
+ },
+ "frame": {
+ "x": 100,
+ "y": 0,
+ "w": 12,
+ "h": 6
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:40d30205ce8efd40dfa86cd11b0491d6:7076db6ed74199dcfb38fc8cd4d4a0e8:05882267d3999884e0491134e98b1b53$"
+ }
+}
diff --git a/public/images/ui/legacy/pbinfo_stat.png b/public/images/ui/legacy/pbinfo_stat.png
new file mode 100644
index 00000000000..62ec3758772
Binary files /dev/null and b/public/images/ui/legacy/pbinfo_stat.png differ
diff --git a/public/images/ui/legacy/pbinfo_stat_numbers.json b/public/images/ui/legacy/pbinfo_stat_numbers.json
new file mode 100644
index 00000000000..fa7d757990f
--- /dev/null
+++ b/public/images/ui/legacy/pbinfo_stat_numbers.json
@@ -0,0 +1,293 @@
+{
+ "textures": [
+ {
+ "image": "pbinfo_stat_numbers.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 117,
+ "h": 8
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "1",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "2",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 9,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "3",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 18,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "4",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 27,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "5",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 36,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "6",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 45,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-1",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 54,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-2",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 63,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-3",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 72,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-4",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 81,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-5",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 90,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-6",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 99,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "0",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 108,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:1f22b7cb085faf9e9764273fa5e70c28:afc5587ebacca78d178ac7e0c434591b:6537c634087637bb27e8a1edb1ee2e35$"
+ }
+}
diff --git a/public/images/ui/legacy/pbinfo_stat_numbers.png b/public/images/ui/legacy/pbinfo_stat_numbers.png
new file mode 100644
index 00000000000..ee1453b2107
Binary files /dev/null and b/public/images/ui/legacy/pbinfo_stat_numbers.png differ
diff --git a/public/images/ui/pbinfo_enemy_boss.png b/public/images/ui/pbinfo_enemy_boss.png
index 58edefa164f..ff5ba661450 100644
Binary files a/public/images/ui/pbinfo_enemy_boss.png and b/public/images/ui/pbinfo_enemy_boss.png differ
diff --git a/public/images/ui/pbinfo_enemy_boss_stats.png b/public/images/ui/pbinfo_enemy_boss_stats.png
new file mode 100644
index 00000000000..7148a7af475
Binary files /dev/null and b/public/images/ui/pbinfo_enemy_boss_stats.png differ
diff --git a/public/images/ui/pbinfo_enemy_mini.png b/public/images/ui/pbinfo_enemy_mini.png
index 5250cb6f070..a7ff3cb9b82 100644
Binary files a/public/images/ui/pbinfo_enemy_mini.png and b/public/images/ui/pbinfo_enemy_mini.png differ
diff --git a/public/images/ui/pbinfo_enemy_mini_stats.png b/public/images/ui/pbinfo_enemy_mini_stats.png
new file mode 100644
index 00000000000..69ac5d49411
Binary files /dev/null and b/public/images/ui/pbinfo_enemy_mini_stats.png differ
diff --git a/public/images/ui/pbinfo_enemy_type.png b/public/images/ui/pbinfo_enemy_type.png
index 021a120070c..9bac63e5e72 100644
Binary files a/public/images/ui/pbinfo_enemy_type.png and b/public/images/ui/pbinfo_enemy_type.png differ
diff --git a/public/images/ui/pbinfo_enemy_type1.png b/public/images/ui/pbinfo_enemy_type1.png
index 89b84d7f630..6d94871e8da 100644
Binary files a/public/images/ui/pbinfo_enemy_type1.png and b/public/images/ui/pbinfo_enemy_type1.png differ
diff --git a/public/images/ui/pbinfo_enemy_type2.png b/public/images/ui/pbinfo_enemy_type2.png
index d1f9818d7bd..56a1989f2cd 100644
Binary files a/public/images/ui/pbinfo_enemy_type2.png and b/public/images/ui/pbinfo_enemy_type2.png differ
diff --git a/public/images/ui/pbinfo_player.png b/public/images/ui/pbinfo_player.png
index 9d3e03bd66d..fee08f71044 100644
Binary files a/public/images/ui/pbinfo_player.png and b/public/images/ui/pbinfo_player.png differ
diff --git a/public/images/ui/pbinfo_player_mini.png b/public/images/ui/pbinfo_player_mini.png
index db276227233..f12d46bb4ff 100644
Binary files a/public/images/ui/pbinfo_player_mini.png and b/public/images/ui/pbinfo_player_mini.png differ
diff --git a/public/images/ui/pbinfo_player_mini_stats.png b/public/images/ui/pbinfo_player_mini_stats.png
new file mode 100644
index 00000000000..7ce3bd1af1e
Binary files /dev/null and b/public/images/ui/pbinfo_player_mini_stats.png differ
diff --git a/public/images/ui/pbinfo_player_stats.png b/public/images/ui/pbinfo_player_stats.png
new file mode 100644
index 00000000000..cda978979aa
Binary files /dev/null and b/public/images/ui/pbinfo_player_stats.png differ
diff --git a/public/images/ui/pbinfo_player_type1.png b/public/images/ui/pbinfo_player_type1.png
index d1f9818d7bd..56a1989f2cd 100644
Binary files a/public/images/ui/pbinfo_player_type1.png and b/public/images/ui/pbinfo_player_type1.png differ
diff --git a/public/images/ui/pbinfo_player_type2.png b/public/images/ui/pbinfo_player_type2.png
index 89b84d7f630..6d94871e8da 100644
Binary files a/public/images/ui/pbinfo_player_type2.png and b/public/images/ui/pbinfo_player_type2.png differ
diff --git a/public/images/ui/pbinfo_stat.json b/public/images/ui/pbinfo_stat.json
new file mode 100644
index 00000000000..f431e5afafd
--- /dev/null
+++ b/public/images/ui/pbinfo_stat.json
@@ -0,0 +1,188 @@
+{
+ "textures": [
+ {
+ "image": "pbinfo_stat.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 120,
+ "h": 7
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "SPATK",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 19,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 1,
+ "w": 19,
+ "h": 7
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 19,
+ "h": 7
+ }
+ },
+ {
+ "filename": "SPDEF",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 19,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 1,
+ "w": 19,
+ "h": 7
+ },
+ "frame": {
+ "x": 19,
+ "y": 0,
+ "w": 19,
+ "h": 7
+ }
+ },
+ {
+ "filename": "CRIT",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 17,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 1,
+ "w": 17,
+ "h": 7
+ },
+ "frame": {
+ "x": 38,
+ "y": 0,
+ "w": 17,
+ "h": 7
+ }
+ },
+ {
+ "filename": "ACC",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 13,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 1,
+ "w": 13,
+ "h": 7
+ },
+ "frame": {
+ "x": 55,
+ "y": 0,
+ "w": 13,
+ "h": 7
+ }
+ },
+ {
+ "filename": "ATK",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 13,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 1,
+ "w": 13,
+ "h": 7
+ },
+ "frame": {
+ "x": 68,
+ "y": 0,
+ "w": 13,
+ "h": 7
+ }
+ },
+ {
+ "filename": "DEF",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 13,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 1,
+ "w": 13,
+ "h": 7
+ },
+ "frame": {
+ "x": 81,
+ "y": 0,
+ "w": 13,
+ "h": 7
+ }
+ },
+ {
+ "filename": "EVA",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 13,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 1,
+ "w": 13,
+ "h": 7
+ },
+ "frame": {
+ "x": 94,
+ "y": 0,
+ "w": 13,
+ "h": 7
+ }
+ },
+ {
+ "filename": "SPD",
+ "rotated": false,
+ "trimmed": true,
+ "sourceSize": {
+ "w": 13,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 1,
+ "w": 13,
+ "h": 7
+ },
+ "frame": {
+ "x": 107,
+ "y": 0,
+ "w": 13,
+ "h": 7
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:86fbd1b45d46271597a7d9de482aaa74:df702dd9d88db50369f1a096f82fd915:05882267d3999884e0491134e98b1b53$"
+ }
+}
diff --git a/public/images/ui/pbinfo_stat.png b/public/images/ui/pbinfo_stat.png
new file mode 100644
index 00000000000..46169091e7c
Binary files /dev/null and b/public/images/ui/pbinfo_stat.png differ
diff --git a/public/images/ui/pbinfo_stat_numbers.json b/public/images/ui/pbinfo_stat_numbers.json
new file mode 100644
index 00000000000..ec4f7117bb7
--- /dev/null
+++ b/public/images/ui/pbinfo_stat_numbers.json
@@ -0,0 +1,293 @@
+{
+ "textures": [
+ {
+ "image": "pbinfo_stat_numbers.png",
+ "format": "RGBA8888",
+ "size": {
+ "w": 117,
+ "h": 8
+ },
+ "scale": 1,
+ "frames": [
+ {
+ "filename": "1",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "2",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 9,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "3",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 18,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "4",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 27,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "5",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 36,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "6",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 45,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-1",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 54,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-2",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 63,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-3",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 72,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-4",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 81,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-5",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 90,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "-6",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 99,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ },
+ {
+ "filename": "0",
+ "rotated": false,
+ "trimmed": false,
+ "sourceSize": {
+ "w": 9,
+ "h": 8
+ },
+ "spriteSourceSize": {
+ "x": 0,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ },
+ "frame": {
+ "x": 108,
+ "y": 0,
+ "w": 9,
+ "h": 8
+ }
+ }
+ ]
+ }
+ ],
+ "meta": {
+ "app": "https://www.codeandweb.com/texturepacker",
+ "version": "3.0",
+ "smartupdate": "$TexturePacker:SmartUpdate:b0719fae0d9b670a727148cdc7202249:afc5587ebacca78d178ac7e0c434591b:4825a9f02f72f1fe28a724c6c5dffb37$"
+ }
+}
diff --git a/public/images/ui/pbinfo_stat_numbers.png b/public/images/ui/pbinfo_stat_numbers.png
new file mode 100644
index 00000000000..c778ba99273
Binary files /dev/null and b/public/images/ui/pbinfo_stat_numbers.png differ
diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest
index e6eedd27e2f..4b5f2dbadd1 100644
--- a/public/manifest.webmanifest
+++ b/public/manifest.webmanifest
@@ -3,8 +3,8 @@
"short_name": "PokéRogue",
"description": "A Pokémon fangame heavily inspired by the roguelite genre. Battle endlessly while gathering stacking items, exploring many different biomes, and reaching Pokémon stats you never thought possible.",
"scope": "/",
- "start_url": "/",
- "display": "standalone",
+ "start_url": "https://pokerogue.net",
+ "display": "fullscreen",
"background_color": "#8c8c8c",
"theme_color": "#8c8c8c",
"icons": [
diff --git a/service-worker.js b/public/service-worker.js
similarity index 100%
rename from service-worker.js
rename to public/service-worker.js
diff --git a/src/battle-scene.ts b/src/battle-scene.ts
index 512a196b175..cbf363f689a 100644
--- a/src/battle-scene.ts
+++ b/src/battle-scene.ts
@@ -60,23 +60,10 @@ import { SceneBase } from './scene-base';
import CandyBar from './ui/candy-bar';
import { Variant, variantData } from './data/variant';
import { Localizable } from './plugins/i18n';
+import { STARTING_WAVE_OVERRIDE, OPP_SPECIES_OVERRIDE, SEED_OVERRIDE, STARTING_BIOME_OVERRIDE } from './overrides';
export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1";
-export const SEED_OVERRIDE = '';
-export const STARTER_SPECIES_OVERRIDE = 0;
-export const STARTER_FORM_OVERRIDE = 0;
-export const STARTING_LEVEL_OVERRIDE = 0;
-export const STARTING_WAVE_OVERRIDE = 0;
-export const STARTING_BIOME_OVERRIDE = Biome.TOWN;
-export const STARTING_MONEY_OVERRIDE = 0;
-
-export const ABILITY_OVERRIDE = Abilities.NONE;
-export const MOVE_OVERRIDE = Moves.NONE;
-export const OPP_SPECIES_OVERRIDE = 0;
-export const OPP_ABILITY_OVERRIDE = Abilities.NONE;
-export const OPP_MOVE_OVERRIDE = Moves.NONE;
-
const DEBUG_RNG = false;
export const startingWave = STARTING_WAVE_OVERRIDE || 1;
@@ -98,6 +85,7 @@ export enum Button {
ACTION,
CANCEL,
MENU,
+ STATS,
CYCLE_SHINY,
CYCLE_FORM,
CYCLE_GENDER,
@@ -209,25 +197,26 @@ export default class BattleScene extends SceneBase {
private movementButtonLock: Button;
// using a dualshock controller as a map
- private gamepadKeyConfig = {
- [Button.UP]: 12, // up
- [Button.DOWN]: 13, // down
- [Button.LEFT]: 14, // left
- [Button.RIGHT]: 15, // right
- [Button.SUBMIT]: 17, // touchpad
- [Button.ACTION]: 0, // X
- [Button.CANCEL]: 1, // O
- [Button.MENU]: 9, // options
- [Button.CYCLE_SHINY]: 5, // RB
- [Button.CYCLE_FORM]: 4, // LB
- [Button.CYCLE_GENDER]: 6, // LT
- [Button.CYCLE_ABILITY]: 7, // RT
- [Button.CYCLE_NATURE]: 2, // square
- [Button.CYCLE_VARIANT]: 3, // triangle
- [Button.SPEED_UP]: 10, // L3
- [Button.SLOW_DOWN]: 11 // R3
- };
- public gamepadButtonStates: boolean[] = new Array(17).fill(false);
+ private gamepadKeyConfig = {
+ [Button.UP]: 12, // up
+ [Button.DOWN]: 13, // down
+ [Button.LEFT]: 14, // left
+ [Button.RIGHT]: 15, // right
+ [Button.SUBMIT]: 17, // touchpad
+ [Button.ACTION]: 0, // X
+ [Button.CANCEL]: 1, // O
+ [Button.MENU]: 9, // options
+ [Button.STATS]: 8, // share
+ [Button.CYCLE_SHINY]: 5, // RB
+ [Button.CYCLE_FORM]: 4, // LB
+ [Button.CYCLE_GENDER]: 6, // LT
+ [Button.CYCLE_ABILITY]: 7, // RT
+ [Button.CYCLE_NATURE]: 2, // square
+ [Button.CYCLE_VARIANT]: 3, // triangle
+ [Button.SPEED_UP]: 10, // L3
+ [Button.SLOW_DOWN]: 11 // R3
+ };
+ public gamepadButtonStates: boolean[] = new Array(17).fill(false);
public rngCounter: integer = 0;
public rngSeedOverride: string = '';
@@ -531,10 +520,23 @@ export default class BattleScene extends SceneBase {
.then(v => {
Object.keys(v).forEach(k => variantData[k] = v[k]);
if (this.experimentalSprites) {
- const expTree = variantData['exp'];
- Object.keys(expTree).forEach(ek => {
- variantData[ek] = expTree[ek];
- });
+ const expVariantData = variantData['exp'];
+ const traverseVariantData = (keys: string[]) => {
+ let variantTree = variantData;
+ let expTree = expVariantData;
+ keys.map((k: string, i: integer) => {
+ if (i < keys.length - 1) {
+ variantTree = variantTree[k];
+ expTree = expTree[k];
+ } else if (variantTree.hasOwnProperty(k) && expTree.hasOwnProperty(k)) {
+ if ([ 'back', 'female' ].includes(k))
+ traverseVariantData(keys.concat(k));
+ else
+ variantTree[k] = expTree[k];
+ }
+ });
+ };
+ Object.keys(expVariantData).forEach(ek => traverseVariantData([ ek ]));
}
Promise.resolve();
});
@@ -615,6 +617,7 @@ export default class BattleScene extends SceneBase {
[Button.ACTION]: [keyCodes.SPACE, keyCodes.ENTER, keyCodes.Z],
[Button.CANCEL]: [keyCodes.BACKSPACE, keyCodes.X],
[Button.MENU]: [keyCodes.ESC, keyCodes.M],
+ [Button.STATS]: [keyCodes.SHIFT, keyCodes.C],
[Button.CYCLE_SHINY]: [keyCodes.R],
[Button.CYCLE_FORM]: [keyCodes.F],
[Button.CYCLE_GENDER]: [keyCodes.G],
@@ -1041,17 +1044,26 @@ export default class BattleScene extends SceneBase {
case Species.BASCULIN:
case Species.DEERLING:
case Species.SAWSBUCK:
+ case Species.FROAKIE:
+ case Species.FROGADIER:
case Species.VIVILLON:
case Species.FLABEBE:
case Species.FLOETTE:
case Species.FLORGES:
+ case Species.FURFROU:
case Species.ORICORIO:
case Species.SQUAWKABILLY:
case Species.TATSUGIRI:
case Species.PALDEA_TAUROS:
return Utils.randSeedInt(species.forms.length);
+ case Species.GRENINJA:
+ return Utils.randSeedInt(2);
+ case Species.ZYGARDE:
+ return Utils.randSeedInt(3);
case Species.MINIOR:
return Utils.randSeedInt(6);
+ case Species.ALCREMIE:
+ return Utils.randSeedInt(9);
case Species.MEOWSTIC:
case Species.INDEEDEE:
case Species.BASCULEGION:
@@ -1423,8 +1435,16 @@ export default class BattleScene extends SceneBase {
if (this.ui?.getMode() === Mode.SETTINGS)
(this.ui.getHandler() as SettingsUiHandler).show([]);
}
- } else
- return;
+ } else {
+ let pressed = false;
+ if (this.ui && (this.buttonJustReleased(Button.STATS) || (pressed = this.buttonJustPressed(Button.STATS)))) {
+ for (let p of this.getField().filter(p => p?.isActive(true)))
+ p.toggleStats(pressed);
+ if (pressed)
+ this.setLastProcessedMovementTime(Button.STATS);
+ } else
+ return;
+ }
if (inputSuccess && this.enableVibration && typeof navigator.vibrate !== 'undefined')
navigator.vibrate(vibrationLength || 10);
}
@@ -1434,7 +1454,7 @@ export default class BattleScene extends SceneBase {
* or not. It will only return true once, until the key is released and pressed down
* again.
*/
- gamepadButtonJustDown(button: Phaser.Input.Gamepad.Button) : boolean {
+ gamepadButtonJustDown(button: Phaser.Input.Gamepad.Button): boolean {
if (!button || !this.gamepadSupport)
return false;
@@ -1454,6 +1474,23 @@ export default class BattleScene extends SceneBase {
return this.buttonKeys[button].some(k => Phaser.Input.Keyboard.JustDown(k)) || this.gamepadButtonJustDown(gamepad?.buttons[this.gamepadKeyConfig[button]]);
}
+ /**
+ * gamepadButtonJustUp returns true if @param button has just been released
+ * or not. It will only return true once, until the key is released and pressed down
+ * again.
+ */
+ gamepadButtonJustUp(button: Phaser.Input.Gamepad.Button): boolean {
+ if (!button || !this.gamepadSupport)
+ return false;
+
+ return !this.gamepadButtonStates[button.index];
+ }
+
+ buttonJustReleased(button: Button): boolean {
+ const gamepad = this.input.gamepad?.gamepads[0];
+ return this.buttonKeys[button].some(k => Phaser.Input.Keyboard.JustUp(k)) || this.gamepadButtonJustUp(gamepad?.buttons[this.gamepadKeyConfig[button]]);
+ }
+
/**
* repeatInputDurationJustPassed returns true if @param button has been held down long
* enough to fire a repeated input. A button must claim the movementButtonLock before
diff --git a/src/data/ability.ts b/src/data/ability.ts
index fff85fcabc1..960818a24de 100644
--- a/src/data/ability.ts
+++ b/src/data/ability.ts
@@ -580,6 +580,35 @@ export class PostDefendStatChangeAbAttr extends PostDefendAbAttr {
}
}
+export class PostDefendHpGatedStatChangeAbAttr extends PostDefendAbAttr {
+ private condition: PokemonDefendCondition;
+ private hpGate: number;
+ private stats: BattleStat[];
+ private levels: integer;
+ private selfTarget: boolean;
+
+ constructor(condition: PokemonDefendCondition, hpGate: number, stats: BattleStat[], levels: integer, selfTarget: boolean = true) {
+ super(true);
+
+ this.condition = condition;
+ this.hpGate = hpGate;
+ this.stats = stats;
+ this.levels = levels;
+ this.selfTarget = selfTarget;
+ }
+
+ applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean {
+ const hpGateFlat: integer = Math.ceil(pokemon.getMaxHp() * this.hpGate)
+ const lastAttackReceived = pokemon.turnData.attacksReceived[pokemon.turnData.attacksReceived.length - 1]
+ if (this.condition(pokemon, attacker, move.getMove()) && (pokemon.hp <= hpGateFlat && (pokemon.hp + lastAttackReceived.damage) > hpGateFlat)) {
+ pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, (this.selfTarget ? pokemon : attacker).getBattlerIndex(), true, this.stats, this.levels));
+ return true;
+ }
+
+ return false;
+ }
+}
+
export class PostDefendApplyArenaTrapTagAbAttr extends PostDefendAbAttr {
private condition: PokemonDefendCondition;
private tagType: ArenaTagType;
@@ -679,6 +708,19 @@ export class PostDefendContactApplyStatusEffectAbAttr extends PostDefendAbAttr {
}
}
+export class EffectSporeAbAttr extends PostDefendContactApplyStatusEffectAbAttr {
+ constructor() {
+ super(10, StatusEffect.POISON, StatusEffect.PARALYSIS, StatusEffect.SLEEP);
+ }
+
+ applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean {
+ if (attacker.hasAbility(Abilities.OVERCOAT) || attacker.isOfType(Type.GRASS)) {
+ return false;
+ }
+ return super.applyPostDefend(pokemon, passive, attacker, move, hitResult, args);
+ }
+}
+
export class PostDefendContactApplyTagChanceAbAttr extends PostDefendAbAttr {
private chance: integer;
private tagType: BattlerTagType;
@@ -906,8 +948,8 @@ export class MovePowerBoostAbAttr extends VariableMovePowerAbAttr {
private condition: PokemonAttackCondition;
private powerMultiplier: number;
- constructor(condition: PokemonAttackCondition, powerMultiplier: number) {
- super(true);
+ constructor(condition: PokemonAttackCondition, powerMultiplier: number, showAbility: boolean = true) {
+ super(showAbility);
this.condition = condition;
this.powerMultiplier = powerMultiplier;
}
@@ -976,16 +1018,19 @@ export class FieldMoveTypePowerBoostAbAttr extends FieldMovePowerBoostAbAttr {
export class BattleStatMultiplierAbAttr extends AbAttr {
private battleStat: BattleStat;
private multiplier: number;
+ private condition: PokemonAttackCondition;
- constructor(battleStat: BattleStat, multiplier: number) {
+ constructor(battleStat: BattleStat, multiplier: number, condition?: PokemonAttackCondition) {
super(false);
this.battleStat = battleStat;
this.multiplier = multiplier;
+ this.condition = condition;
}
applyBattleStat(pokemon: Pokemon, passive: boolean, battleStat: BattleStat, statValue: Utils.NumberHolder, args: any[]): boolean | Promise {
- if (battleStat === this.battleStat) {
+ const move = (args[0] as Move);
+ if (battleStat === this.battleStat && (!this.condition || this.condition(pokemon, null, move))) {
statValue.value *= this.multiplier;
return true;
}
@@ -1148,6 +1193,26 @@ class PostVictoryStatChangeAbAttr extends PostVictoryAbAttr {
}
}
+export class PostVictoryFormChangeAbAttr extends PostVictoryAbAttr {
+ private formFunc: (p: Pokemon) => integer;
+
+ constructor(formFunc: ((p: Pokemon) => integer)) {
+ super(true);
+
+ this.formFunc = formFunc;
+ }
+
+ applyPostVictory(pokemon: Pokemon, passive: boolean, args: any[]): boolean | Promise {
+ const formIndex = this.formFunc(pokemon);
+ if (formIndex !== pokemon.formIndex) {
+ pokemon.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeManualTrigger, false);
+ return true;
+ }
+
+ return false;
+ }
+}
+
export class PostKnockOutAbAttr extends AbAttr {
applyPostKnockOut(pokemon: Pokemon, passive: boolean, knockedOut: Pokemon, args: any[]): boolean | Promise {
return false;
@@ -1382,6 +1447,7 @@ export class TraceAbAttr extends PostSummonAbAttr {
const targets = pokemon.getOpponents();
if (!targets.length)
return false;
+
let target: Pokemon;
if (targets.length > 1)
pokemon.scene.executeWithSeedOffset(() => target = Utils.randSeedItem(targets), pokemon.scene.currentBattle.waveIndex);
@@ -1407,6 +1473,9 @@ export class PostSummonTransformAbAttr extends PostSummonAbAttr {
applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
const targets = pokemon.getOpponents();
+ if (!targets.length)
+ return false;
+
let target: Pokemon;
if (targets.length > 1)
pokemon.scene.executeWithSeedOffset(() => target = Utils.randSeedItem(targets), pokemon.scene.currentBattle.waveIndex);
@@ -1569,6 +1638,27 @@ export class BonusCritAbAttr extends AbAttr {
}
}
+export class MultCritAbAttr extends AbAttr {
+ public multAmount: number;
+
+ constructor(multAmount: number) {
+ super(true);
+
+ this.multAmount = multAmount;
+ }
+
+ apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
+ const critMult = args[0] as Utils.NumberHolder;
+ if (critMult.value > 1){
+ critMult.value *= this.multAmount;
+ return true;
+ }
+
+ return false;
+ }
+}
+
+
export class BlockNonDirectDamageAbAttr extends AbAttr {
apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
cancelled.value = true;
@@ -1695,6 +1785,53 @@ function getAnticipationCondition(): AbAttrCondition {
};
}
+export class ForewarnAbAttr extends PostSummonAbAttr {
+ constructor() {
+ super(true);
+ }
+
+ applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
+ let maxPowerSeen = 0;
+ let maxMove = "";
+ let movePower = 0;
+ for (let opponent of pokemon.getOpponents()) {
+ for (let move of opponent.moveset) {
+ if (move.getMove() instanceof StatusMove) {
+ movePower = 1;
+ } else if (move.getMove().findAttr(attr => attr instanceof OneHitKOAttr)) {
+ movePower = 150;
+ } else if (move.getMove().id === Moves.COUNTER || move.getMove().id === Moves.MIRROR_COAT || move.getMove().id === Moves.METAL_BURST) {
+ movePower = 120;
+ } else if (move.getMove().power === -1) {
+ movePower = 80;
+ } else {
+ movePower = move.getMove().power;
+ }
+
+ if (movePower > maxPowerSeen) {
+ maxPowerSeen = movePower;
+ maxMove = move.getName();
+ }
+ }
+ }
+ pokemon.scene.queueMessage(getPokemonMessage(pokemon, " was forewarned about " + maxMove + "!"));
+ return true;
+ }
+}
+
+export class FriskAbAttr extends PostSummonAbAttr {
+ constructor() {
+ super(true);
+ }
+
+ applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
+ for (let opponent of pokemon.getOpponents()) {
+ pokemon.scene.queueMessage(getPokemonMessage(pokemon, " frisked " + opponent.name + "\'s " + opponent.getAbility().name + "!"));
+ }
+ return true;
+ }
+}
+
export class PostWeatherChangeAbAttr extends AbAttr {
applyPostWeatherChange(pokemon: Pokemon, passive: boolean, weather: WeatherType, args: any[]): boolean {
return false;
@@ -2545,7 +2682,7 @@ export function initAbilities() {
.attr(TypeImmunityAbAttr, Type.GROUND, (pokemon: Pokemon) => !pokemon.getTag(BattlerTagType.IGNORE_FLYING) && !pokemon.scene.arena.getTag(ArenaTagType.GRAVITY) && !pokemon.getTag(BattlerTagType.GROUNDED))
.ignorable(),
new Ability(Abilities.EFFECT_SPORE, 3)
- .attr(PostDefendContactApplyStatusEffectAbAttr, 10, StatusEffect.POISON, StatusEffect.PARALYSIS, StatusEffect.SLEEP),
+ .attr(EffectSporeAbAttr),
new Ability(Abilities.SYNCHRONIZE, 3)
.attr(SyncEncounterNatureAbAttr)
.unimplemented(),
@@ -2622,8 +2759,8 @@ export function initAbilities() {
new Ability(Abilities.TRUANT, 3)
.attr(PostSummonAddBattlerTagAbAttr, BattlerTagType.TRUANT, 1, false),
new Ability(Abilities.HUSTLE, 3)
- .attr(BattleStatMultiplierAbAttr, BattleStat.ATK, 1.5)
- .attr(BattleStatMultiplierAbAttr, BattleStat.ACC, 0.8),
+ .attr(BattleStatMultiplierAbAttr, BattleStat.ATK, 1.5, (user, target, move) => move.category == MoveCategory.PHYSICAL)
+ .attr(BattleStatMultiplierAbAttr, BattleStat.ACC, 0.8, (user, target, move) => move.category == MoveCategory.PHYSICAL),
new Ability(Abilities.CUTE_CHARM, 3)
.attr(PostDefendContactApplyTagChanceAbAttr, 30, BattlerTagType.INFATUATED),
new Ability(Abilities.PLUS, 3)
@@ -2685,7 +2822,7 @@ export function initAbilities() {
.attr(TypeImmunityStatChangeAbAttr, Type.ELECTRIC, BattleStat.SPD, 1)
.ignorable(),
new Ability(Abilities.RIVALRY, 4)
- .attr(MovePowerBoostAbAttr, (user, target, move) => user.gender !== Gender.GENDERLESS && target.gender !== Gender.GENDERLESS && user.gender === target.gender, 1.25)
+ .attr(MovePowerBoostAbAttr, (user, target, move) => user.gender !== Gender.GENDERLESS && target.gender !== Gender.GENDERLESS && user.gender === target.gender, 1.25, true)
.attr(MovePowerBoostAbAttr, (user, target, move) => user.gender !== Gender.GENDERLESS && target.gender !== Gender.GENDERLESS && user.gender !== target.gender, 0.75),
new Ability(Abilities.STEADFAST, 4)
.attr(FlinchStatChangeAbAttr, BattleStat.SPD, 1),
@@ -2736,7 +2873,7 @@ export function initAbilities() {
.attr(MoveTypeChangeAttr, Type.NORMAL, 1.2, (user, target, move) => move.id !== Moves.HIDDEN_POWER && move.id !== Moves.WEATHER_BALL &&
move.id !== Moves.NATURAL_GIFT && move.id !== Moves.JUDGMENT && move.id !== Moves.TECHNO_BLAST),
new Ability(Abilities.SNIPER, 4)
- .unimplemented(),
+ .attr(MultCritAbAttr, 1.5),
new Ability(Abilities.MAGIC_GUARD, 4)
.attr(BlockNonDirectDamageAbAttr),
new Ability(Abilities.NO_GUARD, 4)
@@ -2764,7 +2901,7 @@ export function initAbilities() {
new Ability(Abilities.ANTICIPATION, 4)
.conditionalAttr(getAnticipationCondition(), PostSummonMessageAbAttr, (pokemon: Pokemon) => getPokemonMessage(pokemon, ' shuddered!')),
new Ability(Abilities.FOREWARN, 4)
- .unimplemented(),
+ .attr(ForewarnAbAttr),
new Ability(Abilities.UNAWARE, 4)
.attr(IgnoreOpponentStatChangesAbAttr)
.ignorable(),
@@ -2793,7 +2930,7 @@ export function initAbilities() {
new Ability(Abilities.HONEY_GATHER, 4)
.unimplemented(),
new Ability(Abilities.FRISK, 4)
- .unimplemented(),
+ .attr(FriskAbAttr),
new Ability(Abilities.RECKLESS, 4)
.attr(MovePowerBoostAbAttr, (user, target, move) => move.getAttrs(RecoilAttr).length && move.id !== Moves.STRUGGLE, 1.2),
new Ability(Abilities.MULTITYPE, 4)
@@ -3030,7 +3167,7 @@ export function initAbilities() {
new Ability(Abilities.STEELWORKER, 7)
.attr(MoveTypePowerBoostAbAttr, Type.STEEL),
new Ability(Abilities.BERSERK, 7)
- .unimplemented(),
+ .attr(PostDefendHpGatedStatChangeAbAttr, (target, user, move) => move.category !== MoveCategory.STATUS, 0.5, [BattleStat.SPATK], 1),
new Ability(Abilities.SLUSH_RUSH, 7)
.attr(BattleStatMultiplierAbAttr, BattleStat.SPD, 2)
.condition(getWeatherCondition(WeatherType.HAIL, WeatherType.SNOW)),
@@ -3067,17 +3204,21 @@ export function initAbilities() {
.ignorable()
.partial(),
new Ability(Abilities.BATTLE_BOND, 7)
+ .attr(PostVictoryFormChangeAbAttr, p => p.getFormKey() ? 2 : 1)
.attr(UncopiableAbilityAbAttr)
.attr(UnswappableAbilityAbAttr)
.attr(UnsuppressableAbilityAbAttr)
.attr(NoFusionAbilityAbAttr)
- .unimplemented(),
- new Ability(Abilities.POWER_CONSTRUCT, 7)
+ .partial(),
+ new Ability(Abilities.POWER_CONSTRUCT, 7) // TODO: 10% Power Construct Zygarde isn't accounted for yet. If changed, update Zygarde's getSpeciesFormIndex entry accordingly
+ .attr(PostBattleInitFormChangeAbAttr, p => p.getHpRatio() <= 0.5 ? 4 : 2)
+ .attr(PostSummonFormChangeAbAttr, p => p.getHpRatio() <= 0.5 ? 4 : 2)
+ .attr(PostTurnFormChangeAbAttr, p => p.getHpRatio() <= 0.5 ? 4 : 2)
.attr(UncopiableAbilityAbAttr)
.attr(UnswappableAbilityAbAttr)
.attr(UnsuppressableAbilityAbAttr)
.attr(NoFusionAbilityAbAttr)
- .unimplemented(),
+ .partial(),
new Ability(Abilities.CORROSION, 7)
.unimplemented(),
new Ability(Abilities.COMATOSE, 7)
@@ -3263,7 +3404,8 @@ export function initAbilities() {
.attr(StatusEffectImmunityAbAttr, StatusEffect.BURN)
.ignorable(),
new Ability(Abilities.ANGER_SHELL, 9)
- .unimplemented(),
+ .attr(PostDefendHpGatedStatChangeAbAttr, (target, user, move) => move.category !== MoveCategory.STATUS, 0.5, [ BattleStat.ATK, BattleStat.SPATK, BattleStat.SPD ], 1)
+ .attr(PostDefendHpGatedStatChangeAbAttr, (target, user, move) => move.category !== MoveCategory.STATUS, 0.5, [ BattleStat.DEF, BattleStat.SPDEF ], -1),
new Ability(Abilities.PURIFYING_SALT, 9)
.attr(StatusEffectImmunityAbAttr)
.attr(ReceivedTypeDamageMultiplierAbAttr, Type.GHOST, 0.5)
diff --git a/src/data/arena-tag.ts b/src/data/arena-tag.ts
index bb76a9880b3..8942cfe4b3e 100644
--- a/src/data/arena-tag.ts
+++ b/src/data/arena-tag.ts
@@ -1,10 +1,10 @@
import { Arena } from "../field/arena";
import { Type } from "./type";
import * as Utils from "../utils";
-import { MoveCategory, StatChangeAttr, allMoves } from "./move";
+import { MoveCategory, allMoves } from "./move";
import { getPokemonMessage } from "../messages";
import Pokemon, { HitResult, PokemonMove } from "../field/pokemon";
-import { MoveEffectPhase, StatChangePhase } from "../phases";
+import { MoveEffectPhase, PokemonHealPhase, StatChangePhase} from "../phases";
import { StatusEffect } from "./status-effect";
import { BattlerIndex } from "../battle";
import { Moves } from "./enums/moves";
@@ -146,6 +146,31 @@ class AuroraVeilTag extends WeakenMoveScreenTag {
}
}
+class WishTag extends ArenaTag {
+ private battlerIndex: BattlerIndex;
+ private triggerMessage: string;
+ private healHp: number;
+
+ constructor(turnCount: integer, sourceId: integer, side: ArenaTagSide) {
+ super(ArenaTagType.WISH, turnCount, Moves.WISH, sourceId, side);
+ }
+
+ onAdd(arena: Arena): void {
+ const user = arena.scene.getPokemonById(this.sourceId);
+ this.battlerIndex = user.getBattlerIndex();
+ this.triggerMessage = getPokemonMessage(user, '\'s wish\ncame true!');
+ this.healHp = Math.max(Math.floor(user.getMaxHp() / 2), 1);
+ }
+
+ onRemove(arena: Arena): void {
+ const target = arena.scene.getField()[this.battlerIndex];
+ if (target?.isActive(true)) {
+ arena.scene.queueMessage(this.triggerMessage);
+ arena.scene.unshiftPhase(new PokemonHealPhase(target.scene, target.getBattlerIndex(), this.healHp, null, true, false));
+ }
+ }
+}
+
export class WeakenMoveTypeTag extends ArenaTag {
private weakenedType: Type;
@@ -457,6 +482,20 @@ export class GravityTag extends ArenaTag {
}
}
+class TailwindTag extends ArenaTag {
+ constructor(turnCount: integer, sourceId: integer, side: ArenaTagSide) {
+ super(ArenaTagType.TAILWIND, turnCount, Moves.TAILWIND, sourceId, side);
+ }
+
+ onAdd(arena: Arena): void {
+ arena.scene.queueMessage(`The Tailwind blew from behind${this.side === ArenaTagSide.PLAYER ? '\nyour' : this.side === ArenaTagSide.ENEMY ? '\nthe opposing' : ''} team!`);
+ }
+
+ onRemove(arena: Arena): void {
+ arena.scene.queueMessage(`${this.side === ArenaTagSide.PLAYER ? 'Your' : this.side === ArenaTagSide.ENEMY ? 'The opposing' : ''} team's Tailwind petered out!`);
+ }
+}
+
export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMove: Moves, sourceId: integer, targetIndex?: BattlerIndex, side: ArenaTagSide = ArenaTagSide.BOTH): ArenaTag {
switch (tagType) {
case ArenaTagType.MIST:
@@ -472,6 +511,8 @@ export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMov
case ArenaTagType.FUTURE_SIGHT:
case ArenaTagType.DOOM_DESIRE:
return new DelayedAttackTag(tagType, sourceMove, sourceId, targetIndex);
+ case ArenaTagType.WISH:
+ return new WishTag(turnCount, sourceId, side);
case ArenaTagType.STEALTH_ROCK:
return new StealthRockTag(sourceId, side);
case ArenaTagType.STICKY_WEB:
@@ -486,5 +527,7 @@ export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMov
return new LightScreenTag(turnCount, sourceId, side);
case ArenaTagType.AURORA_VEIL:
return new AuroraVeilTag(turnCount, sourceId, side);
+ case ArenaTagType.TAILWIND:
+ return new TailwindTag(turnCount, sourceId, side);
}
}
diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts
index b12d15968f6..183306d5066 100644
--- a/src/data/battler-tags.ts
+++ b/src/data/battler-tags.ts
@@ -163,6 +163,29 @@ export class FlinchedTag extends BattlerTag {
}
}
+export class InterruptedTag extends BattlerTag {
+ constructor(sourceMove: Moves){
+ super(BattlerTagType.INTERRUPTED, BattlerTagLapseType.PRE_MOVE, 0, sourceMove)
+ }
+
+ canAdd(pokemon: Pokemon): boolean {
+ return !!pokemon.getTag(BattlerTagType.FLYING)
+ }
+
+ onAdd(pokemon: Pokemon): void {
+ super.onAdd(pokemon);
+
+ pokemon.getMoveQueue().shift()
+ pokemon.pushMoveHistory({move: Moves.NONE, result: MoveResult.OTHER})
+ }
+
+ lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean {
+ super.lapse(pokemon, lapseType);
+ (pokemon.scene.getCurrentPhase() as MovePhase).cancel();
+ return true
+ }
+}
+
export class ConfusedTag extends BattlerTag {
constructor(turnCount: integer, sourceMove: Moves) {
super(BattlerTagType.CONFUSED, BattlerTagLapseType.MOVE, turnCount, sourceMove);
@@ -276,6 +299,10 @@ export class SeedTag extends BattlerTag {
super(BattlerTagType.SEEDED, BattlerTagLapseType.TURN_END, 1, Moves.LEECH_SEED, sourceId);
}
+ canAdd(pokemon: Pokemon): boolean {
+ return !pokemon.isOfType(Type.GRASS);
+ }
+
onAdd(pokemon: Pokemon): void {
super.onAdd(pokemon);
@@ -364,6 +391,12 @@ export class FrenzyTag extends BattlerTag {
}
}
+export class ChargingTag extends BattlerTag {
+ constructor(sourceMove: Moves, sourceId: integer) {
+ super(BattlerTagType.CHARGING, BattlerTagLapseType.CUSTOM, 1, sourceMove, sourceId);
+ }
+}
+
export class EncoreTag extends BattlerTag {
public moveId: Moves;
@@ -951,6 +984,19 @@ export class HideSpriteTag extends BattlerTag {
}
}
+export class TypeImmuneTag extends BattlerTag {
+ public immuneType: Type;
+ constructor(tagType: BattlerTagType, sourceMove: Moves, immuneType: Type, length: number) {
+ super(tagType, BattlerTagLapseType.TURN_END, 1, sourceMove);
+ }
+}
+
+export class MagnetRisenTag extends TypeImmuneTag {
+ constructor(tagType: BattlerTagType, sourceMove: Moves) {
+ super(tagType, sourceMove, Type.GROUND, 5);
+ }
+}
+
export class TypeBoostTag extends BattlerTag {
public boostedType: Type;
public boostValue: number;
@@ -1077,6 +1123,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourc
return new RechargingTag(sourceMove);
case BattlerTagType.FLINCHED:
return new FlinchedTag(sourceMove);
+ case BattlerTagType.INTERRUPTED:
+ return new InterruptedTag(sourceMove);
case BattlerTagType.CONFUSED:
return new ConfusedTag(turnCount, sourceMove);
case BattlerTagType.INFATUATED:
@@ -1087,6 +1135,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourc
return new NightmareTag();
case BattlerTagType.FRENZY:
return new FrenzyTag(sourceMove, sourceId);
+ case BattlerTagType.CHARGING:
+ return new ChargingTag(sourceMove, sourceId);
case BattlerTagType.ENCORE:
return new EncoreTag(sourceId);
case BattlerTagType.HELPING_HAND:
@@ -1174,6 +1224,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourc
return new CursedTag(sourceId);
case BattlerTagType.CHARGED:
return new TypeBoostTag(tagType, sourceMove, Type.ELECTRIC, 2, true);
+ case BattlerTagType.MAGNET_RISEN:
+ return new MagnetRisenTag(tagType, sourceMove);
case BattlerTagType.NONE:
default:
return new BattlerTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId);
diff --git a/src/data/berry.ts b/src/data/berry.ts
index b28772373b1..1228bb54904 100644
--- a/src/data/berry.ts
+++ b/src/data/berry.ts
@@ -99,6 +99,8 @@ export function getBerryEffectFunc(berryType: BerryType): BerryEffectFunc {
case BerryType.SITRUS:
case BerryType.ENIGMA:
return (pokemon: Pokemon) => {
+ if (pokemon.battleData)
+ pokemon.battleData.berriesEaten.push(berryType);
const hpHealed = new Utils.NumberHolder(Math.floor(pokemon.getMaxHp() / 4));
applyAbAttrs(DoubleBerryEffectAbAttr, pokemon, null, hpHealed);
pokemon.scene.unshiftPhase(new PokemonHealPhase(pokemon.scene, pokemon.getBattlerIndex(),
@@ -106,6 +108,8 @@ export function getBerryEffectFunc(berryType: BerryType): BerryEffectFunc {
};
case BerryType.LUM:
return (pokemon: Pokemon) => {
+ if (pokemon.battleData)
+ pokemon.battleData.berriesEaten.push(berryType);
if (pokemon.status) {
pokemon.scene.queueMessage(getPokemonMessage(pokemon, getStatusEffectHealText(pokemon.status.effect)));
pokemon.resetStatus();
@@ -119,6 +123,8 @@ export function getBerryEffectFunc(berryType: BerryType): BerryEffectFunc {
case BerryType.APICOT:
case BerryType.SALAC:
return (pokemon: Pokemon) => {
+ if (pokemon.battleData)
+ pokemon.battleData.berriesEaten.push(berryType);
const battleStat = (berryType - BerryType.LIECHI) as BattleStat;
const statLevels = new Utils.NumberHolder(1);
applyAbAttrs(DoubleBerryEffectAbAttr, pokemon, null, statLevels);
@@ -126,16 +132,22 @@ export function getBerryEffectFunc(berryType: BerryType): BerryEffectFunc {
};
case BerryType.LANSAT:
return (pokemon: Pokemon) => {
+ if (pokemon.battleData)
+ pokemon.battleData.berriesEaten.push(berryType);
pokemon.addTag(BattlerTagType.CRIT_BOOST);
};
case BerryType.STARF:
return (pokemon: Pokemon) => {
+ if (pokemon.battleData)
+ pokemon.battleData.berriesEaten.push(berryType);
const statLevels = new Utils.NumberHolder(2);
applyAbAttrs(DoubleBerryEffectAbAttr, pokemon, null, statLevels);
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [ BattleStat.RAND ], statLevels.value));
};
case BerryType.LEPPA:
return (pokemon: Pokemon) => {
+ if (pokemon.battleData)
+ pokemon.battleData.berriesEaten.push(berryType);
const ppRestoreMove = pokemon.getMoveset().find(m => !m.getPpRatio());
ppRestoreMove.ppUsed = Math.max(ppRestoreMove.ppUsed - 10, 0);
pokemon.scene.queueMessage(getPokemonMessage(pokemon, ` restored PP to its move ${ppRestoreMove.getName()}\nusing its ${getBerryName(berryType)}!`));
diff --git a/src/data/biomes.ts b/src/data/biomes.ts
index d6e84bcbc7c..61da0410dcf 100644
--- a/src/data/biomes.ts
+++ b/src/data/biomes.ts
@@ -241,10 +241,10 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.ALL]: [ { 1: [ Species.BULBASAUR ], 16: [ Species.IVYSAUR ], 32: [ Species.VENUSAUR ] }, Species.GROWLITHE, { 1: [ Species.TURTWIG ], 18: [ Species.GROTLE ], 32: [ Species.TORTERRA ] } ]
},
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.SUDOWOODO ] },
- [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
+ [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.VIRIZION ] },
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [ Species.JUMPLUFF, Species.SUNFLORA, Species.WHIMSICOTT ], [TimeOfDay.DAY]: [ Species.JUMPLUFF, Species.SUNFLORA, Species.WHIMSICOTT ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.VENUSAUR, Species.SUDOWOODO, Species.TORTERRA ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.VIRIZION ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
},
[Biome.TALL_GRASS]: {
@@ -487,14 +487,14 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.NIGHT]: [ Species.ARBOK, Species.CLODSIRE ],
[TimeOfDay.ALL]: [ Species.POLIWRATH, Species.SWALOT, Species.WHISCASH, Species.GASTRODON, Species.SEISMITOAD, Species.STUNFISK, Species.TOXAPEX ]
},
- [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.FERALIGATR, Species.POLITOED, Species.SWAMPERT ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: {
+ [BiomePoolTier.BOSS_RARE]: {
[TimeOfDay.DAWN]: [ Species.GALAR_SLOWBRO, Species.GALAR_SLOWKING, Species.HISUI_GOODRA ],
[TimeOfDay.DAY]: [ Species.GALAR_SLOWBRO, Species.GALAR_SLOWKING, Species.HISUI_GOODRA ],
[TimeOfDay.DUSK]: [],
[TimeOfDay.NIGHT]: [],
- [TimeOfDay.ALL]: [ Species.AZELF, Species.NAGANADEL, Species.GALAR_STUNFISK ]
+ [TimeOfDay.ALL]: [ Species.FERALIGATR, Species.POLITOED, Species.SWAMPERT, Species.GALAR_STUNFISK ]
},
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.AZELF, Species.NAGANADEL ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
},
[Biome.BEACH]: {
@@ -521,7 +521,7 @@ export const biomePokemonPools: BiomePokemonPools = {
},
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.QUAXLY ], 16: [ Species.QUAXWELL ], 36: [ Species.QUAQUAVAL ] }, Species.TATSUGIRI ] },
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.TIRTOUGA ], 37: [ Species.CARRACOSTA ] } ] },
- [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KELDEO ] },
+ [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CRESSELIA, Species.KELDEO, Species.TAPU_FINI ] },
[BiomePoolTier.BOSS]: {
[TimeOfDay.DAWN]: [ Species.STARMIE ],
[TimeOfDay.DAY]: [ Species.STARMIE ],
@@ -530,7 +530,7 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.ALL]: [ Species.KINGLER, Species.CRAWDAUNT, Species.WORMADAM, Species.CRUSTLE, Species.BARBARACLE, Species.CLAWITZER, Species.TOXAPEX, Species.PALOSSAND ]
},
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CARRACOSTA, Species.QUAQUAVAL ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KELDEO ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CRESSELIA, Species.KELDEO, Species.TAPU_FINI ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
},
[Biome.LAKE]: {
@@ -615,7 +615,7 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.DAY]: [],
[TimeOfDay.DUSK]: [],
[TimeOfDay.NIGHT]: [],
- [TimeOfDay.ALL]: [ Species.QWILFISH, Species.CORSOLA, Species.OCTILLERY, { 1: [ Species.MANTYKE ], 20: [ Species.MANTINE ] }, Species.ALOMOMOLA, { 1: [ Species.TYNAMO ], 39: [ Species.EELEKTRIK ] }, Species.DHELMISE ]
+ [TimeOfDay.ALL]: [ Species.QWILFISH, Species.CORSOLA, Species.OCTILLERY, { 1: [ Species.MANTYKE ], 52: [ Species.MANTINE ] }, Species.ALOMOMOLA, { 1: [ Species.TYNAMO ], 39: [ Species.EELEKTRIK ] }, Species.DHELMISE ]
},
[BiomePoolTier.SUPER_RARE]: {
[TimeOfDay.DAWN]: [],
@@ -640,8 +640,14 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.NIGHT]: [],
[TimeOfDay.ALL]: [ Species.LANTURN, Species.QWILFISH, Species.CORSOLA, Species.OCTILLERY, Species.MANTINE, Species.WAILORD, Species.HUNTAIL, Species.GOREBYSS, Species.LUVDISC, Species.JELLICENT, Species.ALOMOMOLA, Species.DRAGALGE, Species.BARRASKEWDA, Species.DONDOZO ]
},
- [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.OMASTAR, Species.KABUTOPS, Species.RELICANTH, Species.EELEKTROSS, Species.PYUKUMUKU, Species.DHELMISE, Species.ARCTOVISH, Species.BASCULEGION ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MILOTIC, Species.NIHILEGO, Species.CURSOLA, Species.OVERQWIL ] },
+ [BiomePoolTier.BOSS_RARE]: {
+ [TimeOfDay.DAWN]: [],
+ [TimeOfDay.DAY]: [],
+ [TimeOfDay.DUSK]: [],
+ [TimeOfDay.NIGHT]: [],
+ [TimeOfDay.ALL]: [ Species.OMASTAR, Species.KABUTOPS, Species.RELICANTH, Species.EELEKTROSS, Species.PYUKUMUKU, Species.DHELMISE, Species.CURSOLA, Species.ARCTOVISH, Species.BASCULEGION, Species.OVERQWIL ]
+ },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MILOTIC, Species.NIHILEGO ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KYOGRE ] }
},
[Biome.MOUNTAIN]: {
@@ -840,7 +846,7 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.ALL]: [ { 1: [ Species.DARUMAKA ], 35: [ Species.DARMANITAN ] } ]
},
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.LILEEP ], 40: [ Species.CRADILY ] }, { 1: [ Species.ANORITH ], 40: [ Species.ARMALDO ] } ] },
- [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGIROCK, Species.PHEROMOSA ] },
+ [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGIROCK, Species.TAPU_BULU, Species.PHEROMOSA ] },
[BiomePoolTier.BOSS]: {
[TimeOfDay.DAWN]: [ Species.HIPPOWDON, Species.HELIOLISK, Species.RABSCA ],
[TimeOfDay.DAY]: [ Species.HIPPOWDON, Species.HELIOLISK, Species.RABSCA ],
@@ -849,7 +855,7 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.ALL]: [ Species.SANDSLASH, Species.DRAPION, Species.DARMANITAN, Species.MARACTUS, Species.SANDACONDA, Species.BRAMBLEGHAST ]
},
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CRADILY, Species.ARMALDO ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGIROCK, Species.PHEROMOSA ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGIROCK, Species.TAPU_BULU, Species.PHEROMOSA ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
},
[Biome.ICE_CAVE]: {
@@ -951,9 +957,9 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.NIGHT]: [],
[TimeOfDay.ALL]: [ Species.TAUROS, Species.MILTANK, Species.GARDEVOIR, Species.PURUGLY, Species.ZEBSTRIKA, Species.FLORGES, Species.RIBOMBEE, Species.DUBWOOL ]
},
- [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.BLISSEY, Species.SYLVEON, Species.FLAPPLE, Species.APPLETUN, Species.MEOWSCARADA, Species.HYDRAPPLE ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [ Species.HISUI_LILLIGANT ], [TimeOfDay.DAY]: [ Species.HISUI_LILLIGANT ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MELOETTA ] },
- [BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
+ [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [ Species.HISUI_LILLIGANT ], [TimeOfDay.DAY]: [ Species.HISUI_LILLIGANT ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.BLISSEY, Species.SYLVEON, Species.FLAPPLE, Species.APPLETUN, Species.MEOWSCARADA, Species.HYDRAPPLE ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MELOETTA ] },
+ [BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.SHAYMIN ] }
},
[Biome.POWER_PLANT]: {
[BiomePoolTier.COMMON]: {
@@ -984,8 +990,8 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.NIGHT]: [],
[TimeOfDay.ALL]: [ Species.RAICHU, Species.MANECTRIC, Species.LUXRAY, Species.MAGNEZONE, Species.ELECTIVIRE, Species.DEDENNE, Species.VIKAVOLT, Species.TOGEDEMARU, Species.PAWMOT, Species.BELLIBOLT ]
},
- [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.JOLTEON, Species.AMPHAROS ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZAPDOS, Species.RAIKOU, Species.THUNDURUS, Species.XURKITREE, Species.ZERAORA, Species.REGIELEKI, Species.HISUI_ELECTRODE ] },
+ [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.JOLTEON, Species.AMPHAROS, Species.HISUI_ELECTRODE ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZAPDOS, Species.RAIKOU, Species.THUNDURUS, Species.XURKITREE, Species.ZERAORA, Species.REGIELEKI ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZEKROM ] }
},
[Biome.VOLCANO]: {
@@ -1035,9 +1041,9 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.DAY]: [],
[TimeOfDay.DUSK]: [],
[TimeOfDay.NIGHT]: [],
- [TimeOfDay.ALL]: [ Species.CHARIZARD, Species.FLAREON, Species.TYPHLOSION, Species.INFERNAPE, Species.EMBOAR, Species.VOLCARONA, Species.DELPHOX, Species.INCINEROAR, Species.CINDERACE, Species.ARMAROUGE ]
+ [TimeOfDay.ALL]: [ Species.CHARIZARD, Species.FLAREON, Species.TYPHLOSION, Species.INFERNAPE, Species.EMBOAR, Species.VOLCARONA, Species.DELPHOX, Species.INCINEROAR, Species.CINDERACE, Species.ARMAROUGE, Species.HISUI_ARCANINE ]
},
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MOLTRES, Species.ENTEI, Species.ROTOM, Species.HEATRAN, Species.VOLCANION, Species.CHI_YU, Species.HISUI_ARCANINE ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MOLTRES, Species.ENTEI, Species.ROTOM, Species.HEATRAN, Species.VOLCANION, Species.CHI_YU ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.RESHIRAM ] }
},
[Biome.GRAVEYARD]: {
@@ -1074,8 +1080,8 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.NIGHT]: [],
[TimeOfDay.ALL]: [ Species.GENGAR, Species.BANETTE, Species.DRIFBLIM, Species.MISMAGIUS, Species.DUSKNOIR, Species.CHANDELURE, Species.TREVENANT, Species.GOURGEIST, Species.MIMIKYU, Species.POLTEAGEIST, Species.HOUNDSTONE ]
},
- [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.SKELEDIRGE, Species.CERULEDGE ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MARSHADOW, Species.SPECTRIER, Species.HISUI_TYPHLOSION ] },
+ [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.SKELEDIRGE, Species.CERULEDGE, Species.HISUI_TYPHLOSION ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MARSHADOW, Species.SPECTRIER ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GIRATINA ] }
},
[Biome.DOJO]: {
@@ -1109,8 +1115,8 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.NIGHT]: [],
[TimeOfDay.ALL]: [ Species.HITMONLEE, Species.HITMONCHAN, Species.HARIYAMA, Species.MEDICHAM, Species.LUCARIO, Species.TOXICROAK, Species.THROH, Species.SAWK, Species.SCRAFTY, Species.MIENSHAO, Species.BEWEAR, Species.GRAPPLOCT, Species.ANNIHILAPE ]
},
- [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HITMONTOP, Species.GALLADE, Species.PANGORO ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.TERRAKION, Species.SIRFETCHD, Species.URSHIFU, Species.HISUI_DECIDUEYE ] },
+ [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HITMONTOP, Species.GALLADE, Species.PANGORO, Species.SIRFETCHD, Species.HISUI_DECIDUEYE ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.TERRAKION, Species.URSHIFU ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZAMAZENTA, Species.GALAR_ZAPDOS ] }
},
[Biome.FACTORY]: {
@@ -1128,8 +1134,8 @@ export const biomePokemonPools: BiomePokemonPools = {
]
},
[BiomePoolTier.UNCOMMON]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.BRONZOR ], 33: [ Species.BRONZONG ] }, Species.KLEFKI ] },
- [BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
- [BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.PORYGON ], 30: [ Species.PORYGON2 ] }, { 1: [ Species.BELDUM ], 20: [ Species.METANG ], 45: [ Species.METAGROSS ] } ] },
+ [BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.PORYGON ], 30: [ Species.PORYGON2 ] } ] },
+ [BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.BELDUM ], 20: [ Species.METANG ], 45: [ Species.METAGROSS ] } ] },
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GENESECT, Species.MAGEARNA ] },
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KLINKLANG, Species.KLEFKI ] },
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
@@ -1168,8 +1174,8 @@ export const biomePokemonPools: BiomePokemonPools = {
},
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGISTEEL, Species.FEZANDIPITI ] },
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ALAKAZAM, Species.HYPNO, Species.XATU, Species.GRUMPIG, Species.CLAYDOL, Species.SIGILYPH, Species.GOTHITELLE, Species.BEHEEYEM, Species.TINKATON ] },
- [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [ Species.ESPEON ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MR_MIME, Species.WOBBUFFET, Species.ARCHEOPS ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.RUNERIGUS ], [TimeOfDay.NIGHT]: [ Species.RUNERIGUS ], [TimeOfDay.ALL]: [ Species.REGISTEEL, Species.FEZANDIPITI ] },
+ [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [ Species.ESPEON ], [TimeOfDay.DUSK]: [ Species.RUNERIGUS ], [TimeOfDay.NIGHT]: [ Species.RUNERIGUS ], [TimeOfDay.ALL]: [ Species.MR_MIME, Species.WOBBUFFET, Species.ARCHEOPS ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGISTEEL, Species.FEZANDIPITI ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KORAIDON ] }
},
[Biome.WASTELAND]: {
@@ -1245,7 +1251,7 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.ALL]: [ Species.ABSOL, Species.SPIRITOMB, { 1: [ Species.ZORUA ], 30: [ Species.ZOROARK ] }, { 1: [ Species.DEINO ], 50: [ Species.ZWEILOUS ], 64: [ Species.HYDREIGON ] } ]
},
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.UMBREON ] },
- [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DARKRAI, Species.GUZZLORD, Species.GALAR_MOLTRES ] },
+ [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DARKRAI, Species.GALAR_MOLTRES ] },
[BiomePoolTier.BOSS]: {
[TimeOfDay.DAWN]: [],
[TimeOfDay.DAY]: [],
@@ -1253,8 +1259,8 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.NIGHT]: [],
[TimeOfDay.ALL]: [ Species.HOUNDOOM, Species.SABLEYE, Species.ABSOL, Species.HONCHKROW, Species.SPIRITOMB, Species.LIEPARD, Species.ZOROARK, Species.HYDREIGON, Species.THIEVUL, Species.GRIMMSNARL, Species.MABOSSTIFF, Species.KINGAMBIT ]
},
- [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.UMBREON ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DARKRAI, Species.GUZZLORD, Species.HISUI_SAMUROTT ] },
+ [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.UMBREON, Species.HISUI_SAMUROTT ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DARKRAI ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.PALKIA, Species.YVELTAL, Species.GALAR_MOLTRES ] }
},
[Biome.SPACE]: {
@@ -1274,10 +1280,10 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.ALL]: [ { 1: [ Species.BELDUM ], 20: [ Species.METANG ], 45: [ Species.METAGROSS ] }, Species.SIGILYPH, { 1: [ Species.SOLOSIS ], 32: [ Species.DUOSION ], 41: [ Species.REUNICLUS ] } ]
},
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.PORYGON ], 30: [ Species.PORYGON2 ] } ] },
- [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CRESSELIA, { 1: [ Species.COSMOG ], 43: [ Species.COSMOEM ] }, Species.CELESTEELA ] },
+ [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.COSMOG ], 43: [ Species.COSMOEM ] }, Species.CELESTEELA ] },
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [ Species.SOLROCK ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [ Species.LUNATONE ], [TimeOfDay.ALL]: [ Species.CLEFABLE, Species.BRONZONG, Species.MUSHARNA, Species.REUNICLUS, Species.MINIOR ] },
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.METAGROSS, Species.PORYGON_Z ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CRESSELIA, Species.CELESTEELA ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CELESTEELA ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [ Species.SOLGALEO ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [ Species.LUNALA ], [TimeOfDay.ALL]: [ Species.RAYQUAZA, Species.NECROZMA ] }
},
[Biome.CONSTRUCTION_SITE]: {
@@ -1307,10 +1313,10 @@ export const biomePokemonPools: BiomePokemonPools = {
},
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ { 1: [ Species.GALAR_MEOWTH ], 28: [ Species.PERRSERKER ] } ], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ONIX, Species.HITMONLEE, Species.HITMONCHAN, Species.DURALUDON ] },
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DITTO, Species.HITMONTOP ] },
- [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.COBALION ] },
+ [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.COBALION, Species.STAKATAKA ] },
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MACHAMP, Species.CONKELDURR ] },
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.PERRSERKER ], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ARCHALUDON ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.COBALION ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.COBALION, Species.STAKATAKA ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
},
[Biome.JUNGLE]: {
@@ -1319,7 +1325,7 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.DAY]: [ Species.VESPIQUEN, { 1: [ Species.CHERUBI ], 25: [ Species.CHERRIM ] }, { 1: [ Species.SEWADDLE ], 20: [ Species.SWADLOON ], 30: [ Species.LEAVANNY ] } ],
[TimeOfDay.DUSK]: [ Species.SHROOMISH, { 1: [ Species.PURRLOIN ], 20: [ Species.LIEPARD ] }, { 1: [ Species.FOONGUS ], 39: [ Species.AMOONGUSS ] } ],
[TimeOfDay.NIGHT]: [ { 1: [ Species.SPINARAK ], 22: [ Species.ARIADOS ] }, Species.SHROOMISH, { 1: [ Species.PURRLOIN ], 20: [ Species.LIEPARD ] }, { 1: [ Species.FOONGUS ], 39: [ Species.AMOONGUSS ] } ],
- [TimeOfDay.ALL]: [ Species.AIPOM, { 1: [ Species.BLITZLE ], 27: [ Species.ZEBSTRIKA ] }, { 1: [ Species.PIKIPEK ], 14: [ Species.TRUMBEAK ], 36: [ Species.TOUCANNON ] } ]
+ [TimeOfDay.ALL]: [ Species.AIPOM, { 1: [ Species.BLITZLE ], 27: [ Species.ZEBSTRIKA ] }, { 1: [ Species.PIKIPEK ], 14: [ Species.TRUMBEAK ], 28: [ Species.TOUCANNON ] } ]
},
[BiomePoolTier.UNCOMMON]: {
[TimeOfDay.DAWN]: [ Species.EXEGGCUTE, Species.TROPIUS, Species.COMBEE, Species.KOMALA ],
@@ -1352,7 +1358,7 @@ export const biomePokemonPools: BiomePokemonPools = {
]
},
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KANGASKHAN, Species.CHATOT, Species.KLEAVOR ] },
- [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.VIRIZION, Species.BUZZWOLE, Species.ZARUDE, Species.MUNKIDORI ] },
+ [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.TAPU_LELE, Species.BUZZWOLE, Species.ZARUDE, Species.MUNKIDORI ] },
[BiomePoolTier.BOSS]: {
[TimeOfDay.DAWN]: [ Species.EXEGGUTOR, Species.TROPIUS, Species.CHERRIM, Species.LEAVANNY, Species.KOMALA ],
[TimeOfDay.DAY]: [ Species.EXEGGUTOR, Species.TROPIUS, Species.CHERRIM, Species.LEAVANNY, Species.KOMALA ],
@@ -1367,7 +1373,7 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.NIGHT]: [],
[TimeOfDay.ALL]: [ Species.KANGASKHAN, Species.SCIZOR, Species.SLAKING, Species.LEAFEON, Species.SERPERIOR, Species.RILLABOOM ]
},
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.VIRIZION, Species.BUZZWOLE, Species.ZARUDE, Species.MUNKIDORI ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.TAPU_LELE, Species.BUZZWOLE, Species.ZARUDE, Species.MUNKIDORI ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KLEAVOR ] }
},
[Biome.FAIRY_CAVE]: {
@@ -1445,10 +1451,10 @@ export const biomePokemonPools: BiomePokemonPools = {
},
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.GIMMIGHOUL ], 40: [ Species.GHOLDENGO ] } ] },
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
- [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HOOPA, Species.TAPU_KOKO, Species.TAPU_LELE, Species.TAPU_BULU, Species.TAPU_FINI ] },
+ [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HOOPA, Species.TAPU_KOKO ] },
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CHIMECHO, Species.COFAGRIGUS, Species.GOLURK, Species.AEGISLASH ] },
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GHOLDENGO ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HOOPA, Species.TAPU_KOKO, Species.TAPU_LELE, Species.TAPU_BULU, Species.TAPU_FINI ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HOOPA, Species.TAPU_KOKO ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGIGIGAS ] }
},
[Biome.SLUM]: {
@@ -1479,10 +1485,10 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.ALL]: [ { 1: [ Species.VAROOM ], 40: [ Species.REVAVROOM ] } ]
},
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
- [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
+ [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GUZZLORD ] },
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.SKUNTANK, Species.WATCHOG ], [TimeOfDay.NIGHT]: [ Species.SKUNTANK, Species.WATCHOG ], [TimeOfDay.ALL]: [ Species.MUK, Species.WEEZING, Species.WORMADAM, Species.GARBODOR ] },
- [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.TOXTRICITY, Species.OBSTAGOON ], [TimeOfDay.NIGHT]: [ Species.TOXTRICITY, Species.OBSTAGOON ], [TimeOfDay.ALL]: [ Species.REVAVROOM ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GALAR_WEEZING ] },
+ [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.TOXTRICITY, Species.OBSTAGOON ], [TimeOfDay.NIGHT]: [ Species.TOXTRICITY, Species.OBSTAGOON ], [TimeOfDay.ALL]: [ Species.REVAVROOM, Species.GALAR_WEEZING ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GUZZLORD ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
},
[Biome.SNOWY_FOREST]: {
@@ -1516,14 +1522,14 @@ export const biomePokemonPools: BiomePokemonPools = {
},
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GLASTRIER, Species.CHIEN_PAO, Species.GALAR_ARTICUNO ] },
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [ Species.WYRDEER ], [TimeOfDay.DAY]: [ Species.WYRDEER ], [TimeOfDay.DUSK]: [ Species.FROSMOTH ], [TimeOfDay.NIGHT]: [ Species.FROSMOTH ], [TimeOfDay.ALL]: [ Species.ABOMASNOW, Species.URSALUNA ] },
- [BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ARCTOZOLT, Species.ALOLA_SANDSLASH, Species.ALOLA_NINETALES ] },
- [BiomePoolTier.BOSS_SUPER_RARE]: {
+ [BiomePoolTier.BOSS_RARE]: {
[TimeOfDay.DAWN]: [ Species.SNEASLER, Species.GALAR_DARMANITAN ],
[TimeOfDay.DAY]: [ Species.SNEASLER, Species.GALAR_DARMANITAN ],
[TimeOfDay.DUSK]: [ Species.HISUI_ZOROARK ],
[TimeOfDay.NIGHT]: [ Species.HISUI_ZOROARK ],
- [TimeOfDay.ALL]: [ Species.MR_RIME, Species.GLASTRIER, Species.CHIEN_PAO ]
+ [TimeOfDay.ALL]: [ Species.MR_RIME, Species.ARCTOZOLT, Species.ALOLA_SANDSLASH, Species.ALOLA_NINETALES ]
},
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GLASTRIER, Species.CHIEN_PAO ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZACIAN, Species.GALAR_ARTICUNO ] }
},
[Biome.ISLAND]: {
@@ -1550,7 +1556,7 @@ export const biomePokemonPools: BiomePokemonPools = {
},
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
- [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.STAKATAKA, Species.BLACEPHALON ] },
+ [BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.BLACEPHALON ] },
[BiomePoolTier.BOSS]: {
[TimeOfDay.DAWN]: [ Species.ALOLA_RAICHU, Species.ALOLA_EXEGGUTOR ],
[TimeOfDay.DAY]: [ Species.ALOLA_RAICHU, Species.ALOLA_EXEGGUTOR ],
@@ -1559,7 +1565,7 @@ export const biomePokemonPools: BiomePokemonPools = {
[TimeOfDay.ALL]: [ Species.ORICORIO, Species.BRUXISH, Species.ALOLA_SANDSLASH, Species.ALOLA_NINETALES, Species.ALOLA_DUGTRIO, Species.ALOLA_GOLEM, Species.ALOLA_MUK ]
},
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
- [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.STAKATAKA, Species.BLACEPHALON ] },
+ [BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.BLACEPHALON ] },
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
},
[Biome.LABORATORY]: {
@@ -2708,7 +2714,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.PORYGON, Type.NORMAL, -1, [
- [ Biome.FACTORY, BiomePoolTier.SUPER_RARE ],
+ [ Biome.FACTORY, BiomePoolTier.RARE ],
[ Biome.SPACE, BiomePoolTier.SUPER_RARE ],
[ Biome.LABORATORY, BiomePoolTier.RARE ]
]
@@ -3165,7 +3171,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.PORYGON2, Type.NORMAL, -1, [
- [ Biome.FACTORY, BiomePoolTier.SUPER_RARE ],
+ [ Biome.FACTORY, BiomePoolTier.RARE ],
[ Biome.SPACE, BiomePoolTier.SUPER_RARE ],
[ Biome.LABORATORY, BiomePoolTier.RARE ]
]
@@ -4371,8 +4377,8 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.CRESSELIA, Type.PSYCHIC, -1, [
- [ Biome.SPACE, BiomePoolTier.ULTRA_RARE ],
- [ Biome.SPACE, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.BEACH, BiomePoolTier.ULTRA_RARE ],
+ [ Biome.BEACH, BiomePoolTier.BOSS_SUPER_RARE ]
]
],
[ Species.PHIONE, Type.WATER, -1, [ ]
@@ -4384,7 +4390,9 @@ export const biomeTrainerPools: BiomeTrainerPools = {
[ Biome.ABYSS, BiomePoolTier.BOSS_SUPER_RARE ]
]
],
- [ Species.SHAYMIN, Type.GRASS, -1, [ ]
+ [ Species.SHAYMIN, Type.GRASS, -1, [
+ [ Biome.MEADOW, BiomePoolTier.BOSS_ULTRA_RARE ]
+ ]
],
[ Species.ARCEUS, Type.NORMAL, -1, [ ]
],
@@ -5103,8 +5111,8 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.VIRIZION, Type.GRASS, Type.FIGHTING, [
- [ Biome.JUNGLE, BiomePoolTier.ULTRA_RARE ],
- [ Biome.JUNGLE, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.GRASS, BiomePoolTier.ULTRA_RARE ],
+ [ Biome.GRASS, BiomePoolTier.BOSS_SUPER_RARE ]
]
],
[ Species.TORNADUS, Type.FLYING, -1, [
@@ -5779,18 +5787,18 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.TAPU_LELE, Type.PSYCHIC, Type.FAIRY, [
- [ Biome.TEMPLE, BiomePoolTier.ULTRA_RARE ],
- [ Biome.TEMPLE, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.JUNGLE, BiomePoolTier.ULTRA_RARE ],
+ [ Biome.JUNGLE, BiomePoolTier.BOSS_SUPER_RARE ]
]
],
[ Species.TAPU_BULU, Type.GRASS, Type.FAIRY, [
- [ Biome.TEMPLE, BiomePoolTier.ULTRA_RARE ],
- [ Biome.TEMPLE, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.DESERT, BiomePoolTier.ULTRA_RARE ],
+ [ Biome.DESERT, BiomePoolTier.BOSS_SUPER_RARE ]
]
],
[ Species.TAPU_FINI, Type.WATER, Type.FAIRY, [
- [ Biome.TEMPLE, BiomePoolTier.ULTRA_RARE ],
- [ Biome.TEMPLE, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.BEACH, BiomePoolTier.ULTRA_RARE ],
+ [ Biome.BEACH, BiomePoolTier.BOSS_SUPER_RARE ]
]
],
[ Species.COSMOG, Type.PSYCHIC, -1, [
@@ -5840,8 +5848,8 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.GUZZLORD, Type.DARK, Type.DRAGON, [
- [ Biome.ABYSS, BiomePoolTier.ULTRA_RARE ],
- [ Biome.ABYSS, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.SLUM, BiomePoolTier.ULTRA_RARE ],
+ [ Biome.SLUM, BiomePoolTier.BOSS_SUPER_RARE ]
]
],
[ Species.NECROZMA, Type.PSYCHIC, -1, [
@@ -5867,8 +5875,8 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.STAKATAKA, Type.ROCK, Type.STEEL, [
- [ Biome.ISLAND, BiomePoolTier.ULTRA_RARE ],
- [ Biome.ISLAND, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.CONSTRUCTION_SITE, BiomePoolTier.ULTRA_RARE ],
+ [ Biome.CONSTRUCTION_SITE, BiomePoolTier.BOSS_SUPER_RARE ]
]
],
[ Species.BLACEPHALON, Type.FIRE, Type.GHOST, [
@@ -6129,21 +6137,21 @@ export const biomeTrainerPools: BiomeTrainerPools = {
],
[ Species.CURSOLA, Type.GHOST, -1, [
[ Biome.SEABED, BiomePoolTier.SUPER_RARE ],
- [ Biome.SEABED, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.SEABED, BiomePoolTier.BOSS_RARE ]
]
],
[ Species.SIRFETCHD, Type.FIGHTING, -1, [
- [ Biome.DOJO, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.DOJO, BiomePoolTier.BOSS_RARE ]
]
],
[ Species.MR_RIME, Type.ICE, Type.PSYCHIC, [
[ Biome.SNOWY_FOREST, BiomePoolTier.SUPER_RARE ],
- [ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_RARE ]
]
],
[ Species.RUNERIGUS, Type.GROUND, Type.GHOST, [
[ Biome.RUINS, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ],
- [ Biome.RUINS, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ]
+ [ Biome.RUINS, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ]
]
],
[ Species.MILCERY, Type.FAIRY, -1, [
@@ -6305,11 +6313,11 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.SNEASLER, Type.FIGHTING, Type.POISON, [
- [ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
+ [ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
]
],
[ Species.OVERQWIL, Type.DARK, Type.POISON, [
- [ Biome.SEABED, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.SEABED, BiomePoolTier.BOSS_RARE ]
]
],
[ Species.ENAMORUS, Type.FAIRY, Type.FLYING, [
@@ -6972,7 +6980,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
],
[ Species.GALAR_SLOWBRO, Type.POISON, Type.PSYCHIC, [
[ Biome.SWAMP, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ],
- [ Biome.SWAMP, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
+ [ Biome.SWAMP, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
]
],
[ Species.GALAR_FARFETCHD, Type.FIGHTING, -1, [
@@ -6980,7 +6988,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.GALAR_WEEZING, Type.POISON, Type.FAIRY, [
- [ Biome.SLUM, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.SLUM, BiomePoolTier.BOSS_RARE ]
]
],
[ Species.GALAR_MR_MIME, Type.ICE, Type.PSYCHIC, [
@@ -7003,7 +7011,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.GALAR_SLOWKING, Type.POISON, Type.PSYCHIC, [
- [ Biome.SWAMP, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
+ [ Biome.SWAMP, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
]
],
[ Species.GALAR_CORSOLA, Type.GHOST, -1, [
@@ -7024,7 +7032,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
],
[ Species.GALAR_DARMANITAN, Type.ICE, -1, [
[ Biome.SNOWY_FOREST, BiomePoolTier.RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ],
- [ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
+ [ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
]
],
[ Species.GALAR_YAMASK, Type.GROUND, Type.GHOST, [
@@ -7033,7 +7041,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
],
[ Species.GALAR_STUNFISK, Type.GROUND, Type.STEEL, [
[ Biome.SWAMP, BiomePoolTier.SUPER_RARE ],
- [ Biome.SWAMP, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.SWAMP, BiomePoolTier.BOSS_RARE ]
]
],
[ Species.HISUI_GROWLITHE, Type.FIRE, Type.ROCK, [
@@ -7041,7 +7049,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.HISUI_ARCANINE, Type.FIRE, Type.ROCK, [
- [ Biome.VOLCANO, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.VOLCANO, BiomePoolTier.BOSS_RARE ]
]
],
[ Species.HISUI_VOLTORB, Type.ELECTRIC, Type.GRASS, [
@@ -7049,11 +7057,11 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.HISUI_ELECTRODE, Type.ELECTRIC, Type.GRASS, [
- [ Biome.POWER_PLANT, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.POWER_PLANT, BiomePoolTier.BOSS_RARE ]
]
],
[ Species.HISUI_TYPHLOSION, Type.FIRE, Type.GHOST, [
- [ Biome.GRAVEYARD, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.GRAVEYARD, BiomePoolTier.BOSS_RARE ]
]
],
[ Species.HISUI_QWILFISH, Type.DARK, Type.POISON, [
@@ -7065,11 +7073,11 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.HISUI_SAMUROTT, Type.WATER, Type.DARK, [
- [ Biome.ABYSS, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.ABYSS, BiomePoolTier.BOSS_RARE ]
]
],
[ Species.HISUI_LILLIGANT, Type.GRASS, Type.FIGHTING, [
- [ Biome.MEADOW, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
+ [ Biome.MEADOW, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
]
],
[ Species.HISUI_ZORUA, Type.NORMAL, Type.GHOST, [
@@ -7078,7 +7086,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
],
[ Species.HISUI_ZOROARK, Type.NORMAL, Type.GHOST, [
[ Biome.SNOWY_FOREST, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ],
- [ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ]
+ [ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ]
]
],
[ Species.HISUI_BRAVIARY, Type.PSYCHIC, Type.FLYING, [
@@ -7091,7 +7099,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
],
[ Species.HISUI_GOODRA, Type.STEEL, Type.DRAGON, [
[ Biome.SWAMP, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ],
- [ Biome.SWAMP, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
+ [ Biome.SWAMP, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
]
],
[ Species.HISUI_AVALUGG, Type.ICE, Type.ROCK, [
@@ -7099,7 +7107,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ Species.HISUI_DECIDUEYE, Type.GRASS, Type.FIGHTING, [
- [ Biome.DOJO, BiomePoolTier.BOSS_SUPER_RARE ]
+ [ Biome.DOJO, BiomePoolTier.BOSS_RARE ]
]
],
[ Species.PALDEA_TAUROS, Type.FIGHTING, -1, [
diff --git a/src/data/egg-moves.ts b/src/data/egg-moves.ts
index f2b9a55d3fa..221496a177d 100644
--- a/src/data/egg-moves.ts
+++ b/src/data/egg-moves.ts
@@ -62,7 +62,7 @@ export const speciesEggMoves = {
[Species.MAGIKARP]: [ Moves.FLIP_TURN, Moves.ICE_SPINNER, Moves.LIQUIDATION, Moves.DRAGON_ASCENT ],
[Species.LAPRAS]: [ Moves.RECOVER, Moves.FREEZE_DRY, Moves.CHILLY_RECEPTION, Moves.BOOMBURST ],
[Species.DITTO]: [ Moves.MIMIC, Moves.COPYCAT, Moves.ME_FIRST, Moves.METRONOME ],
- [Species.EEVEE]: [ Moves.WISH, Moves.REVELATION_DANCE, Moves.SIZZLY_SLIDE, Moves.NO_RETREAT ],
+ [Species.EEVEE]: [ Moves.WISH, Moves.REVELATION_DANCE, Moves.TRI_ATTACK, Moves.NO_RETREAT ],
[Species.PORYGON]: [ Moves.BUZZY_BUZZ, Moves.AURA_SPHERE, Moves.TOPSY_TURVY, Moves.TECHNO_BLAST ],
[Species.OMANYTE]: [ Moves.SCALD, Moves.EARTH_POWER, Moves.POWER_GEM, Moves.STRENGTH_SAP ],
[Species.KABUTO]: [ Moves.CEASELESS_EDGE, Moves.DRILL_RUN, Moves.AQUA_CUTTER, Moves.MIGHTY_CLEAVE ],
@@ -81,7 +81,7 @@ export const speciesEggMoves = {
[Species.LEDYBA]: [ Moves.POLLEN_PUFF, Moves.THIEF, Moves.PARTING_SHOT, Moves.SPORE ],
[Species.SPINARAK]: [ Moves.PARTING_SHOT, Moves.MEGAHORN, Moves.SILK_TRAP, Moves.STRENGTH_SAP ],
[Species.CHINCHOU]: [ Moves.THUNDERCLAP, Moves.BOUNCY_BUBBLE, Moves.VOLT_SWITCH, Moves.TAIL_GLOW ],
- [Species.PICHU]: [ Moves.PIKA_PAPOW, Moves.SPLISHY_SPLASH, Moves.FLOATY_FALL, Moves.ZIPPY_ZAP ],
+ [Species.PICHU]: [ Moves.THUNDERCLAP, Moves.SPLISHY_SPLASH, Moves.FLOATY_FALL, Moves.THUNDER_CAGE ],
[Species.CLEFFA]: [ Moves.TAKE_HEART, Moves.POWER_GEM, Moves.WISH, Moves.LIGHT_OF_RUIN ],
[Species.IGGLYBUFF]: [ Moves.MOONBLAST, Moves.APPLE_ACID, Moves.WISH, Moves.BOOMBURST ],
[Species.TOGEPI]: [ Moves.SCORCHING_SANDS, Moves.ROOST, Moves.MOONBLAST, Moves.FIERY_DANCE ],
@@ -458,9 +458,9 @@ export const speciesEggMoves = {
[Species.MORPEKO]: [ Moves.TRIPLE_AXEL, Moves.OBSTRUCT, Moves.PARTING_SHOT, Moves.SWORDS_DANCE ],
[Species.CUFANT]: [ Moves.LIQUIDATION, Moves.HEAVY_SLAM, Moves.CLOSE_COMBAT, Moves.GIGATON_HAMMER ],
[Species.DRACOZOLT]: [ Moves.TRIPLE_AXEL, Moves.DRAGON_HAMMER, Moves.FIRE_LASH, Moves.DRAGON_DANCE ],
- [Species.ARCTOZOLT]: [ Moves.TRIPLE_AXEL, Moves.EARTHQUAKE, Moves.HIGH_HORSEPOWER, Moves.SHIFT_GEAR ],
+ [Species.ARCTOZOLT]: [ Moves.TRIPLE_AXEL, Moves.LIQUIDATION, Moves.HIGH_HORSEPOWER, Moves.SHIFT_GEAR ],
[Species.DRACOVISH]: [ Moves.TRIPLE_AXEL, Moves.DRAGON_HAMMER, Moves.THUNDER_FANG, Moves.DRAGON_DANCE ],
- [Species.ARCTOVISH]: [ Moves.TRIPLE_AXEL, Moves.EARTHQUAKE, Moves.HIGH_HORSEPOWER, Moves.SHIFT_GEAR ],
+ [Species.ARCTOVISH]: [ Moves.TRIPLE_AXEL, Moves.SUPERCELL_SLAM, Moves.HIGH_HORSEPOWER, Moves.SHIFT_GEAR ],
[Species.DURALUDON]: [ Moves.CALM_MIND, Moves.BODY_PRESS, Moves.EARTH_POWER, Moves.RECOVER ],
[Species.DREEPY]: [ Moves.DRAGON_ENERGY, Moves.SHED_TAIL, Moves.BLAZING_TORQUE, Moves.SPECTRAL_THIEF ],
[Species.ZACIAN]: [ Moves.MAGICAL_TORQUE, Moves.BITTER_BLADE, Moves.LEAF_BLADE, Moves.VICTORY_DANCE ],
diff --git a/src/data/enums/arena-tag-type.ts b/src/data/enums/arena-tag-type.ts
index cc08ca4fdcf..2ecac8b5677 100644
--- a/src/data/enums/arena-tag-type.ts
+++ b/src/data/enums/arena-tag-type.ts
@@ -8,11 +8,13 @@ export enum ArenaTagType {
MIST = "MIST",
FUTURE_SIGHT = "FUTURE_SIGHT",
DOOM_DESIRE = "DOOM_DESIRE",
+ WISH = "WISH",
STEALTH_ROCK = "STEALTH_ROCK",
STICKY_WEB = "STICKY_WEB",
TRICK_ROOM = "TRICK_ROOM",
GRAVITY = "GRAVITY",
REFLECT = "REFLECT",
LIGHT_SCREEN = "LIGHT_SCREEN",
- AURORA_VEIL = "AURORA_VEIL"
+ AURORA_VEIL = "AURORA_VEIL",
+ TAILWIND = "TAILWIND"
}
diff --git a/src/data/enums/battler-tag-type.ts b/src/data/enums/battler-tag-type.ts
index 4d810b737aa..d18ccf1c52f 100644
--- a/src/data/enums/battler-tag-type.ts
+++ b/src/data/enums/battler-tag-type.ts
@@ -3,11 +3,13 @@ export enum BattlerTagType {
NONE = "NONE",
RECHARGING = "RECHARGING",
FLINCHED = "FLINCHED",
+ INTERRUPTED = "INTERRUPTED",
CONFUSED = "CONFUSED",
INFATUATED = "INFATUATED",
SEEDED = "SEEDED",
NIGHTMARE = "NIGHTMARE",
FRENZY = "FRENZY",
+ CHARGING = "CHARGING",
ENCORE = "ENCORE",
HELPING_HAND = "HELPING_HAND",
INGRAIN = "INGRAIN",
@@ -52,5 +54,6 @@ export enum BattlerTagType {
SALT_CURED = "SALT_CURED",
CURSED = "CURSED",
CHARGED = "CHARGED",
- GROUNDED = "GROUNDED"
+ GROUNDED = "GROUNDED",
+ MAGNET_RISEN = "MAGNET_RISEN"
}
diff --git a/src/data/move.ts b/src/data/move.ts
index 9329d21c1d4..0fedea1ec0e 100644
--- a/src/data/move.ts
+++ b/src/data/move.ts
@@ -557,7 +557,7 @@ export class TargetHalfHpDamageAttr extends FixedDamageAttr {
}
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
- (args[0] as Utils.IntegerHolder).value = Math.floor(target.hp / 2);
+ (args[0] as Utils.IntegerHolder).value = Math.max(Math.floor(target.hp / 2), 1);
return true;
}
@@ -685,7 +685,7 @@ export class RecoilAttr extends MoveEffectAttr {
return false;
const recoilDamage = Math.max(Math.floor((!this.useHp ? user.turnData.damageDealt : user.getMaxHp()) * this.damageRatio),
- !this.useHp && user.turnData.damageDealt ? 1 : 0);
+ user.turnData.damageDealt ? 1 : 0);
if (!recoilDamage)
return false;
@@ -1009,6 +1009,25 @@ export class StatusEffectAttr extends MoveEffectAttr {
}
}
+export class MultiStatusEffectAttr extends StatusEffectAttr {
+ public effects: StatusEffect[];
+
+ constructor(effects: StatusEffect[], selfTarget?: boolean, cureTurn?: integer, overrideStatus?: boolean) {
+ super(effects[0], selfTarget, cureTurn, overrideStatus);
+ this.effects = effects;
+ }
+
+ apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
+ this.effect = Utils.randSeedItem(this.effects);
+ const result = super.apply(user, target, move, args);
+ return result;
+ }
+
+ getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): number {
+ return !(this.selfTarget ? user : target).status && (this.selfTarget ? user : target).canSetStatus(this.effect, true) ? Math.floor(move.chance * -0.1) : 0;
+ }
+}
+
export class PsychoShiftEffectAttr extends MoveEffectAttr {
constructor() {
super(false, MoveEffectTrigger.HIT);
@@ -1306,10 +1325,13 @@ export class ChargeAttr extends OverrideMoveEffectAttr {
user.getMoveQueue().push({ move: move.id, targets: [ target.getBattlerIndex() ], ignorePP: true });
if (this.sameTurn)
user.scene.pushMovePhase(new MovePhase(user.scene, user, [ target.getBattlerIndex() ], user.moveset.find(m => m.moveId === move.id), true), this.followUpPriority);
+ user.addTag(BattlerTagType.CHARGING, 1, move.id, user.id);
resolve(true);
});
- } else
+ } else {
+ user.lapseTag(BattlerTagType.CHARGING);
resolve(false);
+ }
});
}
@@ -1551,6 +1573,8 @@ export class CopyStatsAttr extends MoveEffectAttr {
user.addTag(BattlerTagType.CRIT_BOOST, 0, move.id);
else
user.removeTag(BattlerTagType.CRIT_BOOST);
+ target.updateInfo();
+ user.updateInfo();
target.scene.queueMessage(getPokemonMessage(user, 'copied\n') + getPokemonMessage(target, `'s stat changes!`));
@@ -1565,6 +1589,8 @@ export class InvertStatsAttr extends MoveEffectAttr {
for (let s = 0; s < target.summonData.battleStats.length; s++)
target.summonData.battleStats[s] *= -1;
+ target.updateInfo();
+ user.updateInfo();
target.scene.queueMessage(getPokemonMessage(target, `'s stat changes\nwere all reversed!`));
@@ -1579,6 +1605,8 @@ export class ResetStatsAttr extends MoveEffectAttr {
for (let s = 0; s < target.summonData.battleStats.length; s++)
target.summonData.battleStats[s] = 0;
+ target.updateInfo();
+ user.updateInfo();
target.scene.queueMessage(getPokemonMessage(target, `'s stat changes\nwere eliminated!`));
@@ -1745,13 +1773,13 @@ export class BattleStatRatioPowerAttr extends VariablePowerAttr {
if (this.invert) {
// Gyro ball uses a specific formula
- let userSpeed = user.getStat(this.stat);
+ let userSpeed = user.getBattleStat(this.stat);
if (userSpeed < 1) {
// Gen 6+ always have 1 base power
power.value = 1;
return true;
}
- let bp = Math.floor(Math.min(150, 25 * target.getStat(this.stat) / userSpeed + 1));
+ let bp = Math.floor(Math.min(150, 25 * target.getBattleStat(this.stat) / userSpeed + 1));
power.value = bp;
return true;
}
@@ -1993,6 +2021,17 @@ export class PresentPowerAttr extends VariablePowerAttr {
}
}
+export class KnockOffPowerAttr extends VariablePowerAttr {
+ apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
+ if(target.getHeldItems().length > 0){
+ (args[0] as Utils.NumberHolder).value *= 1.5;
+ return true;
+ }
+
+ return false;
+ }
+}
+
export class VariableAtkAttr extends MoveAttr {
constructor() {
super();
@@ -2466,7 +2505,7 @@ export class FrenzyAttr extends MoveEffectAttr {
if (!user.getMoveQueue().length) {
if (!user.getTag(BattlerTagType.FRENZY)) {
- const turnCount = user.randSeedIntRange(2, 3);
+ const turnCount = user.randSeedIntRange(1, 2);
new Array(turnCount).fill(null).map(() => user.getMoveQueue().push({ move: move.id, targets: [ target.getBattlerIndex() ], ignorePP: true }));
user.addTag(BattlerTagType.FRENZY, 1, move.id, user.id);
} else {
@@ -2590,7 +2629,7 @@ export class CurseAttr extends MoveEffectAttr {
}
let curseRecoilDamage = Math.floor(user.getMaxHp() / 2);
user.damageAndUpdate(curseRecoilDamage, HitResult.OTHER, false, true, true);
- user.scene.queueMessage(getPokemonMessage(user, ' cut its own HP!'));
+ user.scene.queueMessage(getPokemonMessage(user, ` cut its own HP\nand laid a curse on the ${target.name}!`));
target.addTag(BattlerTagType.CURSED, 0, move.id, user.id);
return true;
} else {
@@ -3099,11 +3138,23 @@ export class RandomMovesetMoveAttr extends OverrideMoveEffectAttr {
const moveTargets = getMoveTargets(user, move.moveId);
if (!moveTargets.targets.length)
return false;
- const targets = moveTargets.multiple || moveTargets.targets.length === 1
- ? moveTargets.targets
- : moveTargets.targets.indexOf(target.getBattlerIndex()) > -1
- ? [ target.getBattlerIndex() ]
- : [ moveTargets.targets[user.randSeedInt(moveTargets.targets.length)] ];
+ let selectTargets: BattlerIndex[];
+ switch (true) {
+ case (moveTargets.multiple || moveTargets.targets.length === 1): {
+ selectTargets = moveTargets.targets;
+ break;
+ }
+ case (moveTargets.targets.indexOf(target.getBattlerIndex()) > -1): {
+ selectTargets = [ target.getBattlerIndex() ];
+ break;
+ }
+ default: {
+ moveTargets.targets.splice(moveTargets.targets.indexOf(user.getAlly().getBattlerIndex()));
+ selectTargets = [ moveTargets.targets[user.randSeedInt(moveTargets.targets.length)] ];
+ break;
+ }
+ }
+ const targets = selectTargets;
user.getMoveQueue().push({ move: move.moveId, targets: targets, ignorePP: true });
user.scene.unshiftPhase(new MovePhase(user.scene, user, targets, moveset[moveIndex], true));
return true;
@@ -3557,6 +3608,23 @@ export class SwitchAbilitiesAttr extends MoveEffectAttr {
}
}
+export class SuppressAbilitiesAttr extends MoveEffectAttr {
+ apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
+ if (!super.apply(user, target, move, args))
+ return false;
+
+ target.summonData.abilitySuppressed = true;
+
+ target.scene.queueMessage(getPokemonMessage(target, ` ability\nwas suppressed!`));
+
+ return true;
+ }
+
+ getCondition(): MoveConditionFunc {
+ return (user, target, move) => !target.getAbility().hasAttr(UnsuppressableAbilityAbAttr);
+ }
+}
+
export class TransformAttr extends MoveEffectAttr {
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise {
return new Promise(resolve => {
@@ -3608,6 +3676,20 @@ export class MoneyAttr extends MoveEffectAttr {
}
}
+export class LastResortAttr extends MoveAttr {
+ getCondition(): MoveConditionFunc {
+ return (user: Pokemon, target: Pokemon, move: Move) => {
+ const uniqueUsedMoveIds = new Set();
+ const movesetMoveIds = user.getMoveset().map(m => m.moveId);
+ user.getMoveHistory().map(m => {
+ if (m.move !== move.id && movesetMoveIds.find(mm => mm === m.move))
+ uniqueUsedMoveIds.add(m.move);
+ });
+ return uniqueUsedMoveIds.size >= movesetMoveIds.length - 1;
+ };
+ }
+}
+
const failOnGravityCondition: MoveConditionFunc = (user, target, move) => !user.scene.arena.getTag(ArenaTagType.GRAVITY);
const failOnBossCondition: MoveConditionFunc = (user, target, move) => !target.isBossImmune();
@@ -3669,6 +3751,19 @@ export class FirstMoveCondition extends MoveCondition {
}
}
+export class hitsSameTypeAttr extends VariableMoveTypeMultiplierAttr {
+ apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
+ const multiplier = args[0] as Utils.NumberHolder;
+ if (!user.getTypes().some(type => target.getTypes().includes(type))){
+ multiplier.value = 0;
+ return true;
+ }
+ return false;
+ }
+}
+
+const unknownTypeCondition: MoveConditionFunc = (user, target, move) => !user.getTypes().includes(Type.UNKNOWN);
+
export type MoveTargetSet = {
targets: BattlerIndex[];
multiple: boolean;
@@ -4152,9 +4247,7 @@ export function initMoves() {
new SelfStatusMove(Moves.CONVERSION, Type.NORMAL, -1, 30, -1, 0, 1)
.attr(FirstMoveTypeAttr),
new AttackMove(Moves.TRI_ATTACK, Type.NORMAL, MoveCategory.SPECIAL, 80, 100, 10, 20, 0, 1)
- .attr(StatusEffectAttr, StatusEffect.PARALYSIS)
- .attr(StatusEffectAttr, StatusEffect.BURN)
- .attr(StatusEffectAttr, StatusEffect.FREEZE),
+ .attr(MultiStatusEffectAttr, [StatusEffect.BURN, StatusEffect.FREEZE, StatusEffect.PARALYSIS]),
new AttackMove(Moves.SUPER_FANG, Type.NORMAL, MoveCategory.PHYSICAL, -1, 90, 10, -1, 0, 1)
.attr(TargetHalfHpDamageAttr),
new AttackMove(Moves.SLASH, Type.NORMAL, MoveCategory.PHYSICAL, 70, 100, 20, -1, 0, 1)
@@ -4481,7 +4574,7 @@ export function initMoves() {
.attr(AbilityCopyAttr),
new SelfStatusMove(Moves.WISH, Type.NORMAL, -1, 10, -1, 0, 3)
.triageMove()
- .unimplemented(),
+ .attr(AddArenaTagAttr, ArenaTagType.WISH, 2, true),
new SelfStatusMove(Moves.ASSIST, Type.NORMAL, -1, 20, -1, 0, 3)
.attr(RandomMovesetMoveAttr, true)
.ignoresVirtual(),
@@ -4501,6 +4594,7 @@ export function initMoves() {
.attr(AddBattlerTagAttr, BattlerTagType.DROWSY, false, true)
.condition((user, target, move) => !target.status),
new AttackMove(Moves.KNOCK_OFF, Type.DARK, MoveCategory.PHYSICAL, 65, 100, 20, -1, 0, 3)
+ .attr(KnockOffPowerAttr)
.partial(),
new AttackMove(Moves.ENDEAVOR, Type.NORMAL, MoveCategory.PHYSICAL, -1, 100, 5, -1, 0, 3)
.attr(MatchHpAttr)
@@ -4726,8 +4820,8 @@ export function initMoves() {
.partial(),
new StatusMove(Moves.TAILWIND, Type.FLYING, -1, 15, -1, 0, 4)
.windMove()
- .target(MoveTarget.USER_SIDE)
- .unimplemented(),
+ .attr(AddArenaTagAttr, ArenaTagType.TAILWIND, 4, true)
+ .target(MoveTarget.USER_SIDE),
new StatusMove(Moves.ACUPRESSURE, Type.NORMAL, -1, 30, -1, 0, 4)
.attr(StatChangeAttr, BattleStat.RAND, 2)
.target(MoveTarget.USER_OR_NEAR_ALLY),
@@ -4769,7 +4863,7 @@ export function initMoves() {
new SelfStatusMove(Moves.POWER_TRICK, Type.PSYCHIC, -1, 10, -1, 0, 4)
.unimplemented(),
new StatusMove(Moves.GASTRO_ACID, Type.POISON, 100, 10, -1, 0, 4)
- .unimplemented(),
+ .attr(SuppressAbilitiesAttr),
new StatusMove(Moves.LUCKY_CHANT, Type.NORMAL, -1, 30, -1, 0, 4)
.attr(AddBattlerTagAttr, BattlerTagType.NO_CRIT, false, false, 5)
.target(MoveTarget.USER_SIDE)
@@ -4788,15 +4882,7 @@ export function initMoves() {
new AttackMove(Moves.PUNISHMENT, Type.DARK, MoveCategory.PHYSICAL, -1, 100, 5, -1, 0, 4)
.unimplemented(),
new AttackMove(Moves.LAST_RESORT, Type.NORMAL, MoveCategory.PHYSICAL, 140, 100, 5, -1, 0, 4)
- .condition((user, target, move) => {
- const uniqueUsedMoveIds = new Set();
- const movesetMoveIds = user.getMoveset().map(m => m.moveId);
- user.getMoveHistory().map(m => {
- if (m.move !== move.id && movesetMoveIds.find(mm => mm === m.move))
- uniqueUsedMoveIds.add(m.move);
- });
- return uniqueUsedMoveIds.size >= movesetMoveIds.length - 1;
- }),
+ .attr(LastResortAttr),
new StatusMove(Moves.WORRY_SEED, Type.GRASS, 100, 10, -1, 0, 4)
.attr(AbilityChangeAttr, Abilities.INSOMNIA),
new AttackMove(Moves.SUCKER_PUNCH, Type.DARK, MoveCategory.PHYSICAL, 70, 100, 5, -1, 1, 4)
@@ -4809,6 +4895,10 @@ export function initMoves() {
new SelfStatusMove(Moves.AQUA_RING, Type.WATER, -1, 20, -1, 0, 4)
.attr(AddBattlerTagAttr, BattlerTagType.AQUA_RING, true, true),
new SelfStatusMove(Moves.MAGNET_RISE, Type.ELECTRIC, -1, 10, -1, 0, 4)
+ .attr(AddBattlerTagAttr, BattlerTagType.MAGNET_RISEN, true, true)
+ .condition((user, target, move) => !user.scene.arena.getTag(ArenaTagType.GRAVITY) &&
+ !user.getTag(BattlerTagType.IGNORE_FLYING) && !user.getTag(BattlerTagType.INGRAIN) &&
+ !user.getTag(BattlerTagType.MAGNET_RISEN))
.unimplemented(),
new AttackMove(Moves.FLARE_BLITZ, Type.FIRE, MoveCategory.PHYSICAL, 120, 100, 15, 10, 0, 4)
.attr(RecoilAttr, false, 0.33)
@@ -5035,6 +5125,8 @@ export function initMoves() {
.unimplemented(),
new AttackMove(Moves.SMACK_DOWN, Type.ROCK, MoveCategory.PHYSICAL, 50, 100, 15, 100, 0, 5)
.attr(AddBattlerTagAttr, BattlerTagType.IGNORE_FLYING, false, false, 5)
+ .attr(AddBattlerTagAttr, BattlerTagType.INTERRUPTED)
+ .attr(RemoveBattlerTagAttr, [BattlerTagType.FLYING])
.attr(HitsTagAttr, BattlerTagType.FLYING, false)
.makesContact(false),
new AttackMove(Moves.STORM_THROW, Type.FIGHTING, MoveCategory.PHYSICAL, 60, 100, 10, -1, 0, 5)
@@ -5052,7 +5144,8 @@ export function initMoves() {
.condition(failOnMaxCondition),
new AttackMove(Moves.SYNCHRONOISE, Type.PSYCHIC, MoveCategory.SPECIAL, 120, 100, 10, -1, 0, 5)
.target(MoveTarget.ALL_NEAR_OTHERS)
- .partial(),
+ .condition(unknownTypeCondition)
+ .attr(hitsSameTypeAttr),
new AttackMove(Moves.ELECTRO_BALL, Type.ELECTRIC, MoveCategory.SPECIAL, -1, 100, 10, -1, 0, 5)
.attr(BattleStatRatioPowerAttr, Stat.SPD)
.ballBombMove(),
@@ -5122,7 +5215,7 @@ export function initMoves() {
new StatusMove(Moves.QUASH, Type.DARK, 100, 15, -1, 0, 5)
.unimplemented(),
new AttackMove(Moves.ACROBATICS, Type.FLYING, MoveCategory.PHYSICAL, 55, 100, 15, -1, 0, 5)
- .partial(),
+ .attr(MovePowerMultiplierAttr, (user, target, move) => Math.max(1, 2 - 0.2 * user.getHeldItems().reduce((v, m) => v + m.stackCount, 0))),
new StatusMove(Moves.REFLECT_TYPE, Type.NORMAL, -1, 15, -1, 0, 5)
.attr(CopyTypeAttr),
new AttackMove(Moves.RETALIATE, Type.NORMAL, MoveCategory.PHYSICAL, 70, 100, 5, -1, 0, 5)
@@ -5252,7 +5345,7 @@ export function initMoves() {
new StatusMove(Moves.MAT_BLOCK, Type.FIGHTING, -1, 10, -1, 0, 6)
.unimplemented(),
new AttackMove(Moves.BELCH, Type.POISON, MoveCategory.SPECIAL, 120, 90, 10, -1, 0, 6)
- .partial(),
+ .condition((user, target, move) => user.battleData.berriesEaten.length > 0),
new StatusMove(Moves.ROTOTILLER, Type.GROUND, -1, 10, 100, 0, 6)
.target(MoveTarget.ALL)
.unimplemented(),
@@ -5355,7 +5448,7 @@ export function initMoves() {
new StatusMove(Moves.EERIE_IMPULSE, Type.ELECTRIC, 100, 15, -1, 0, 6)
.attr(StatChangeAttr, BattleStat.SPATK, -2),
new StatusMove(Moves.VENOM_DRENCH, Type.POISON, 100, 20, 100, 0, 6)
- .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPATK, BattleStat.SPD ], -1, false, (user, target, move) => target.status?.effect === StatusEffect.POISON)
+ .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPATK, BattleStat.SPD ], -1, false, (user, target, move) => target.status?.effect === StatusEffect.POISON || target.status?.effect === StatusEffect.TOXIC)
.target(MoveTarget.ALL_NEAR_ENEMIES),
new StatusMove(Moves.POWDER, Type.BUG, 100, 20, -1, 1, 6)
.powderMove()
@@ -5397,6 +5490,8 @@ export function initMoves() {
new AttackMove(Moves.THOUSAND_ARROWS, Type.GROUND, MoveCategory.PHYSICAL, 90, 100, 10, 100, 0, 6)
.attr(NeutralDamageAgainstFlyingTypeMultiplierAttr)
.attr(HitsTagAttr, BattlerTagType.FLYING, false)
+ .attr(AddBattlerTagAttr, BattlerTagType.INTERRUPTED)
+ .attr(RemoveBattlerTagAttr, [BattlerTagType.FLYING])
.makesContact(false)
.target(MoveTarget.ALL_NEAR_ENEMIES),
new AttackMove(Moves.THOUSAND_WAVES, Type.GROUND, MoveCategory.PHYSICAL, 90, 100, 10, -1, 0, 6)
@@ -5968,9 +6063,7 @@ export function initMoves() {
.soundBased()
.partial(),
new AttackMove(Moves.DIRE_CLAW, Type.POISON, MoveCategory.PHYSICAL, 80, 100, 15, 50, 0, 8)
- .attr(StatusEffectAttr, StatusEffect.POISON)
- .attr(StatusEffectAttr, StatusEffect.PARALYSIS)
- .attr(StatusEffectAttr, StatusEffect.SLEEP),
+ .attr(MultiStatusEffectAttr, [StatusEffect.POISON, StatusEffect.PARALYSIS, StatusEffect.SLEEP]),
new AttackMove(Moves.PSYSHIELD_BASH, Type.PSYCHIC, MoveCategory.PHYSICAL, 70, 90, 10, 100, 0, 8)
.attr(StatChangeAttr, BattleStat.DEF, 1, true),
new SelfStatusMove(Moves.POWER_SHIFT, Type.NORMAL, -1, 10, 100, 0, 8)
@@ -6285,8 +6378,7 @@ export function initMoves() {
}), // TODO Add Instruct/Encore interaction
new AttackMove(Moves.COMEUPPANCE, Type.DARK, MoveCategory.PHYSICAL, 1, 100, 10, -1, 0, 9)
.attr(CounterDamageAttr, (move: Move) => (move.category === MoveCategory.PHYSICAL || move.category === MoveCategory.SPECIAL), 1.5)
- .target(MoveTarget.ATTACKER)
- .partial(),
+ .target(MoveTarget.ATTACKER),
new AttackMove(Moves.AQUA_CUTTER, Type.WATER, MoveCategory.PHYSICAL, 70, 100, 20, -1, 0, 9)
.attr(HighCritAttr)
.slicingMove()
@@ -6340,6 +6432,7 @@ export function initMoves() {
new AttackMove(Moves.THUNDERCLAP, Type.ELECTRIC, MoveCategory.SPECIAL, 70, 100, 5, -1, 1, 9)
.condition((user, target, move) => user.scene.currentBattle.turnCommands[target.getBattlerIndex()].command === Command.FIGHT && !target.turnData.acted && allMoves[user.scene.currentBattle.turnCommands[target.getBattlerIndex()].move.move].category !== MoveCategory.STATUS),
new AttackMove(Moves.MIGHTY_CLEAVE, Type.ROCK, MoveCategory.PHYSICAL, 95, 100, 5, -1, 0, 9)
+ .slicingMove()
.ignoresProtect(),
new AttackMove(Moves.TACHYON_CUTTER, Type.STEEL, MoveCategory.SPECIAL, 50, -1, 10, -1, 0, 9)
.attr(MultiHitAttr, MultiHitType._2)
diff --git a/src/data/pokemon-evolutions.ts b/src/data/pokemon-evolutions.ts
index 0c1dfe06ca1..0d09277ad47 100644
--- a/src/data/pokemon-evolutions.ts
+++ b/src/data/pokemon-evolutions.ts
@@ -1421,7 +1421,15 @@ export const pokemonEvolutions: PokemonEvolutions = {
new SpeciesFormEvolution(Species.POLTEAGEIST, 'antique', 'antique', 1, EvolutionItem.CHIPPED_POT, null, SpeciesWildEvolutionDelay.LONG)
],
[Species.MILCERY]: [
- new SpeciesEvolution(Species.ALCREMIE, 1, EvolutionItem.STRAWBERRY_SWEET, null, SpeciesWildEvolutionDelay.LONG)
+ new SpeciesFormEvolution(Species.ALCREMIE, '', 'vanilla-cream', 1, EvolutionItem.STRAWBERRY_SWEET, new SpeciesEvolutionCondition(p => p.scene.arena.biomeType === Biome.TOWN || p.scene.arena.biomeType === Biome.PLAINS || p.scene.arena.biomeType === Biome.GRASS || p.scene.arena.biomeType === Biome.TALL_GRASS || p.scene.arena.biomeType === Biome.METROPOLIS), SpeciesWildEvolutionDelay.LONG),
+ new SpeciesFormEvolution(Species.ALCREMIE, '', 'ruby-cream', 1, EvolutionItem.STRAWBERRY_SWEET, new SpeciesEvolutionCondition(p => p.scene.arena.biomeType === Biome.BADLANDS || p.scene.arena.biomeType === Biome.VOLCANO || p.scene.arena.biomeType === Biome.GRAVEYARD || p.scene.arena.biomeType === Biome.FACTORY || p.scene.arena.biomeType === Biome.SLUM), SpeciesWildEvolutionDelay.LONG),
+ new SpeciesFormEvolution(Species.ALCREMIE, '', 'matcha-cream', 1, EvolutionItem.STRAWBERRY_SWEET, new SpeciesEvolutionCondition(p => p.scene.arena.biomeType === Biome.FOREST || p.scene.arena.biomeType === Biome.SWAMP || p.scene.arena.biomeType === Biome.MEADOW || p.scene.arena.biomeType === Biome.JUNGLE), SpeciesWildEvolutionDelay.LONG),
+ new SpeciesFormEvolution(Species.ALCREMIE, '', 'mint-cream', 1, EvolutionItem.STRAWBERRY_SWEET, new SpeciesEvolutionCondition(p => p.scene.arena.biomeType === Biome.SEA || p.scene.arena.biomeType === Biome.BEACH || p.scene.arena.biomeType === Biome.LAKE || p.scene.arena.biomeType === Biome.SEABED), SpeciesWildEvolutionDelay.LONG),
+ new SpeciesFormEvolution(Species.ALCREMIE, '', 'lemon-cream', 1, EvolutionItem.STRAWBERRY_SWEET, new SpeciesEvolutionCondition(p => p.scene.arena.biomeType === Biome.DESERT || p.scene.arena.biomeType === Biome.POWER_PLANT || p.scene.arena.biomeType === Biome.DOJO || p.scene.arena.biomeType === Biome.RUINS || p.scene.arena.biomeType === Biome.CONSTRUCTION_SITE), SpeciesWildEvolutionDelay.LONG),
+ new SpeciesFormEvolution(Species.ALCREMIE, '', 'salted-cream', 1, EvolutionItem.STRAWBERRY_SWEET, new SpeciesEvolutionCondition(p => p.scene.arena.biomeType === Biome.MOUNTAIN || p.scene.arena.biomeType === Biome.CAVE || p.scene.arena.biomeType === Biome.ICE_CAVE || p.scene.arena.biomeType === Biome.FAIRY_CAVE || p.scene.arena.biomeType === Biome.SNOWY_FOREST), SpeciesWildEvolutionDelay.LONG),
+ new SpeciesFormEvolution(Species.ALCREMIE, '', 'ruby-swirl', 1, EvolutionItem.STRAWBERRY_SWEET, new SpeciesEvolutionCondition(p => p.scene.arena.biomeType === Biome.WASTELAND || p.scene.arena.biomeType === Biome.LABORATORY), SpeciesWildEvolutionDelay.LONG),
+ new SpeciesFormEvolution(Species.ALCREMIE, '', 'caramel-swirl', 1, EvolutionItem.STRAWBERRY_SWEET, new SpeciesEvolutionCondition(p => p.scene.arena.biomeType === Biome.TEMPLE || p.scene.arena.biomeType === Biome.ISLAND), SpeciesWildEvolutionDelay.LONG),
+ new SpeciesFormEvolution(Species.ALCREMIE, '', 'rainbow-swirl', 1, EvolutionItem.STRAWBERRY_SWEET, new SpeciesEvolutionCondition(p => p.scene.arena.biomeType === Biome.ABYSS || p.scene.arena.biomeType === Biome.SPACE || p.scene.arena.biomeType === Biome.END), SpeciesWildEvolutionDelay.LONG)
],
[Species.DURALUDON]: [
new SpeciesFormEvolution(Species.ARCHALUDON, '', '', 1, EvolutionItem.METAL_ALLOY, null, SpeciesWildEvolutionDelay.VERY_LONG)
diff --git a/src/data/pokemon-forms.ts b/src/data/pokemon-forms.ts
index e8dbef822d5..87094af2028 100644
--- a/src/data/pokemon-forms.ts
+++ b/src/data/pokemon-forms.ts
@@ -542,11 +542,21 @@ export const pokemonFormChanges: PokemonFormChanges = {
new SpeciesFormChange(Species.MELOETTA, 'pirouette', 'aria', new SpeciesFormChangePostMoveTrigger(Moves.RELIC_SONG), true),
new SpeciesFormChange(Species.MELOETTA, 'pirouette', 'aria', new SpeciesFormChangeActiveTrigger(false), true)
],
+ [Species.GRENINJA]: [
+ new SpeciesFormChange(Species.GRENINJA, 'battle-bond', 'ash', new SpeciesFormChangeManualTrigger(), true),
+ new SpeciesFormChange(Species.GRENINJA, 'ash', 'battle-bond', new SpeciesFormChangeManualTrigger(), true)
+ ],
[Species.AEGISLASH]: [
new SpeciesFormChange(Species.AEGISLASH, 'blade', 'shield', new SpeciesFormChangePreMoveTrigger(Moves.KINGS_SHIELD), true, new SpeciesFormChangeCondition(p => p.hasAbility(Abilities.STANCE_CHANGE))),
new SpeciesFormChange(Species.AEGISLASH, 'shield', 'blade', new SpeciesFormChangePreMoveTrigger(m => allMoves[m].category !== MoveCategory.STATUS), true, new SpeciesFormChangeCondition(p => p.hasAbility(Abilities.STANCE_CHANGE))),
new SpeciesFormChange(Species.AEGISLASH, 'blade', 'shield', new SpeciesFormChangeActiveTrigger(false), true)
],
+ [Species.ZYGARDE]: [
+ new SpeciesFormChange(Species.ZYGARDE, '50-pc', 'complete', new SpeciesFormChangeManualTrigger(), true),
+ new SpeciesFormChange(Species.ZYGARDE, 'complete', '50-pc', new SpeciesFormChangeManualTrigger(), true),
+ new SpeciesFormChange(Species.ZYGARDE, '10-pc', 'complete', new SpeciesFormChangeManualTrigger(), true),
+ new SpeciesFormChange(Species.ZYGARDE, 'complete', '10-pc', new SpeciesFormChangeManualTrigger(), true)
+ ],
[Species.DIANCIE]: [
new SpeciesFormChange(Species.DIANCIE, '', SpeciesFormKey.MEGA, new SpeciesFormChangeItemTrigger(FormChangeItem.DIANCITE))
],
@@ -630,7 +640,15 @@ export const pokemonFormChanges: PokemonFormChanges = {
new SpeciesFormChange(Species.GRIMMSNARL, '', SpeciesFormKey.GIGANTAMAX, new SpeciesFormChangeItemTrigger(FormChangeItem.MAX_MUSHROOMS))
],
[Species.ALCREMIE]: [
- new SpeciesFormChange(Species.ALCREMIE, 'vanilla-cream', SpeciesFormKey.GIGANTAMAX, new SpeciesFormChangeItemTrigger(FormChangeItem.MAX_MUSHROOMS))
+ new SpeciesFormChange(Species.ALCREMIE, 'vanilla-cream', SpeciesFormKey.GIGANTAMAX, new SpeciesFormChangeItemTrigger(FormChangeItem.MAX_MUSHROOMS)),
+ new SpeciesFormChange(Species.ALCREMIE, 'ruby-cream', SpeciesFormKey.GIGANTAMAX, new SpeciesFormChangeItemTrigger(FormChangeItem.MAX_MUSHROOMS)),
+ new SpeciesFormChange(Species.ALCREMIE, 'matcha-cream', SpeciesFormKey.GIGANTAMAX, new SpeciesFormChangeItemTrigger(FormChangeItem.MAX_MUSHROOMS)),
+ new SpeciesFormChange(Species.ALCREMIE, 'mint-cream', SpeciesFormKey.GIGANTAMAX, new SpeciesFormChangeItemTrigger(FormChangeItem.MAX_MUSHROOMS)),
+ new SpeciesFormChange(Species.ALCREMIE, 'lemon-cream', SpeciesFormKey.GIGANTAMAX, new SpeciesFormChangeItemTrigger(FormChangeItem.MAX_MUSHROOMS)),
+ new SpeciesFormChange(Species.ALCREMIE, 'salted-cream', SpeciesFormKey.GIGANTAMAX, new SpeciesFormChangeItemTrigger(FormChangeItem.MAX_MUSHROOMS)),
+ new SpeciesFormChange(Species.ALCREMIE, 'ruby-swirl', SpeciesFormKey.GIGANTAMAX, new SpeciesFormChangeItemTrigger(FormChangeItem.MAX_MUSHROOMS)),
+ new SpeciesFormChange(Species.ALCREMIE, 'caramel-swirl', SpeciesFormKey.GIGANTAMAX, new SpeciesFormChangeItemTrigger(FormChangeItem.MAX_MUSHROOMS)),
+ new SpeciesFormChange(Species.ALCREMIE, 'rainbow-swirl', SpeciesFormKey.GIGANTAMAX, new SpeciesFormChangeItemTrigger(FormChangeItem.MAX_MUSHROOMS))
],
[Species.MORPEKO]: [
new SpeciesFormChange(Species.MORPEKO, 'full-belly', 'hangry', new SpeciesFormChangeManualTrigger(), true),
diff --git a/src/data/pokemon-level-moves.ts b/src/data/pokemon-level-moves.ts
index 5788c9c61c8..0b545d1bd63 100644
--- a/src/data/pokemon-level-moves.ts
+++ b/src/data/pokemon-level-moves.ts
@@ -396,9 +396,10 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 36, Moves.THUNDERBOLT ],
[ 40, Moves.LIGHT_SCREEN ],
[ 44, Moves.THUNDER ],
+ [ 48, Moves.PIKA_PAPOW ],
],
[Species.RAICHU]: [
- [ 0, Moves.THUNDER_PUNCH ],
+ [ 0, Moves.ZIPPY_ZAP ],
[ 1, Moves.TAIL_WHIP ],
[ 1, Moves.GROWL ],
[ 1, Moves.THUNDER_SHOCK ],
@@ -418,7 +419,9 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.ELECTRO_BALL ],
[ 1, Moves.PLAY_NICE ],
[ 1, Moves.NUZZLE ],
+ [ 1, Moves.THUNDER_PUNCH ],
[ 5, Moves.THUNDERBOLT ],
+ [ 50, Moves.PIKA_PAPOW ],
],
[Species.SANDSHREW]: [
[ 1, Moves.SCRATCH ],
@@ -2231,9 +2234,10 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 45, Moves.CHARM ],
[ 50, Moves.DOUBLE_EDGE ],
[ 55, Moves.LAST_RESORT ],
+ [ 60, Moves.VEEVEE_VOLLEY ],
],
[Species.VAPOREON]: [
- [ 0, Moves.WATER_GUN ],
+ [ 0, Moves.BOUNCY_BUBBLE ],
[ 1, Moves.TACKLE ],
[ 1, Moves.TAKE_DOWN ],
[ 1, Moves.DOUBLE_EDGE ],
@@ -2247,19 +2251,20 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.COVET ],
[ 1, Moves.COPYCAT ],
[ 5, Moves.SAND_ATTACK ],
- [ 10, Moves.QUICK_ATTACK ],
- [ 15, Moves.BABY_DOLL_EYES ],
- [ 20, Moves.HAZE ],
- [ 25, Moves.WATER_PULSE ],
- [ 30, Moves.AURORA_BEAM ],
- [ 35, Moves.AQUA_RING ],
- [ 40, Moves.MUDDY_WATER ],
- [ 45, Moves.ACID_ARMOR ],
- [ 50, Moves.HYDRO_PUMP ],
- [ 55, Moves.LAST_RESORT ],
+ [ 10, Moves.WATER_GUN ],
+ [ 15, Moves.QUICK_ATTACK ],
+ [ 20, Moves.BABY_DOLL_EYES ],
+ [ 25, Moves.HAZE ],
+ [ 30, Moves.WATER_PULSE ],
+ [ 35, Moves.AURORA_BEAM ],
+ [ 40, Moves.AQUA_RING ],
+ [ 45, Moves.MUDDY_WATER ],
+ [ 50, Moves.ACID_ARMOR ],
+ [ 55, Moves.HYDRO_PUMP ],
+ [ 60, Moves.LAST_RESORT ],
],
[Species.JOLTEON]: [
- [ 0, Moves.THUNDER_SHOCK ],
+ [ 0, Moves.BUZZY_BUZZ ],
[ 1, Moves.TACKLE ],
[ 1, Moves.TAKE_DOWN ],
[ 1, Moves.DOUBLE_EDGE ],
@@ -2273,19 +2278,20 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.COVET ],
[ 1, Moves.COPYCAT ],
[ 5, Moves.SAND_ATTACK ],
- [ 10, Moves.QUICK_ATTACK ],
- [ 15, Moves.BABY_DOLL_EYES ],
- [ 20, Moves.THUNDER_WAVE ],
- [ 25, Moves.DOUBLE_KICK ],
- [ 30, Moves.THUNDER_FANG ],
- [ 35, Moves.PIN_MISSILE ],
- [ 40, Moves.DISCHARGE ],
- [ 45, Moves.AGILITY ],
- [ 50, Moves.THUNDER ],
- [ 55, Moves.LAST_RESORT ],
+ [ 10, Moves.THUNDER_SHOCK ],
+ [ 15, Moves.QUICK_ATTACK ],
+ [ 20, Moves.BABY_DOLL_EYES ],
+ [ 25, Moves.THUNDER_WAVE ],
+ [ 30, Moves.DOUBLE_KICK ],
+ [ 35, Moves.THUNDER_FANG ],
+ [ 40, Moves.PIN_MISSILE ],
+ [ 45, Moves.DISCHARGE ],
+ [ 50, Moves.AGILITY ],
+ [ 55, Moves.THUNDER ],
+ [ 60, Moves.LAST_RESORT ],
],
[Species.FLAREON]: [
- [ 0, Moves.EMBER ],
+ [ 0, Moves.SIZZLY_SLIDE ],
[ 1, Moves.TACKLE ],
[ 1, Moves.TAKE_DOWN ],
[ 1, Moves.DOUBLE_EDGE ],
@@ -2298,16 +2304,17 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.COVET ],
[ 1, Moves.COPYCAT ],
[ 5, Moves.SAND_ATTACK ],
- [ 10, Moves.QUICK_ATTACK ],
- [ 15, Moves.BABY_DOLL_EYES ],
- [ 20, Moves.SMOG ],
- [ 25, Moves.BITE ],
- [ 30, Moves.FIRE_FANG ],
- [ 35, Moves.FIRE_SPIN ],
- [ 40, Moves.LAVA_PLUME ],
- [ 45, Moves.SCARY_FACE ],
- [ 50, Moves.FLARE_BLITZ ],
- [ 55, Moves.LAST_RESORT ],
+ [ 10, Moves.EMBER ],
+ [ 15, Moves.QUICK_ATTACK ],
+ [ 20, Moves.BABY_DOLL_EYES ],
+ [ 25, Moves.SMOG ],
+ [ 30, Moves.BITE ],
+ [ 35, Moves.FIRE_FANG ],
+ [ 40, Moves.FIRE_SPIN ],
+ [ 45, Moves.LAVA_PLUME ],
+ [ 50, Moves.SCARY_FACE ],
+ [ 55, Moves.FLARE_BLITZ ],
+ [ 60, Moves.LAST_RESORT ],
],
[Species.PORYGON]: [
[ 1, Moves.TACKLE ],
@@ -3325,7 +3332,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 52, Moves.EARTHQUAKE ],
],
[Species.ESPEON]: [
- [ 0, Moves.CONFUSION ],
+ [ 0, Moves.GLITZY_GLOW ],
[ 1, Moves.TACKLE ],
[ 1, Moves.TAKE_DOWN ],
[ 1, Moves.DOUBLE_EDGE ],
@@ -3338,19 +3345,20 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.COVET ],
[ 1, Moves.COPYCAT ],
[ 5, Moves.SAND_ATTACK ],
- [ 10, Moves.QUICK_ATTACK ],
- [ 15, Moves.BABY_DOLL_EYES ],
- [ 20, Moves.SWIFT ],
- [ 25, Moves.PSYBEAM ],
- [ 30, Moves.MORNING_SUN ],
- [ 35, Moves.POWER_SWAP ],
- [ 40, Moves.PSYCHIC ],
- [ 45, Moves.PSYCH_UP ],
- [ 50, Moves.FUTURE_SIGHT ],
- [ 55, Moves.LAST_RESORT ],
+ [ 10, Moves.CONFUSION ],
+ [ 15, Moves.QUICK_ATTACK ],
+ [ 20, Moves.BABY_DOLL_EYES ],
+ [ 25, Moves.SWIFT ],
+ [ 30, Moves.PSYBEAM ],
+ [ 35, Moves.MORNING_SUN ],
+ [ 40, Moves.POWER_SWAP ],
+ [ 45, Moves.PSYCHIC ],
+ [ 50, Moves.PSYCH_UP ],
+ [ 55, Moves.FUTURE_SIGHT ],
+ [ 60, Moves.LAST_RESORT ],
],
[Species.UMBREON]: [
- [ 0, Moves.SNARL ],
+ [ 0, Moves.BADDY_BAD ],
[ 1, Moves.TACKLE ],
[ 1, Moves.TAKE_DOWN ],
[ 1, Moves.DOUBLE_EDGE ],
@@ -3364,16 +3372,17 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.COVET ],
[ 1, Moves.COPYCAT ],
[ 5, Moves.SAND_ATTACK ],
- [ 10, Moves.QUICK_ATTACK ],
- [ 15, Moves.BABY_DOLL_EYES ],
- [ 20, Moves.CONFUSE_RAY ],
- [ 25, Moves.ASSURANCE ],
- [ 30, Moves.MOONLIGHT ],
- [ 35, Moves.GUARD_SWAP ],
- [ 40, Moves.DARK_PULSE ],
- [ 45, Moves.SCREECH ],
- [ 50, Moves.MEAN_LOOK ],
- [ 55, Moves.LAST_RESORT ],
+ [ 10, Moves.SNARL ],
+ [ 15, Moves.QUICK_ATTACK ],
+ [ 20, Moves.BABY_DOLL_EYES ],
+ [ 25, Moves.CONFUSE_RAY ],
+ [ 30, Moves.ASSURANCE ],
+ [ 35, Moves.MOONLIGHT ],
+ [ 40, Moves.GUARD_SWAP ],
+ [ 45, Moves.DARK_PULSE ],
+ [ 50, Moves.SCREECH ],
+ [ 55, Moves.MEAN_LOOK ],
+ [ 60, Moves.LAST_RESORT ],
],
[Species.MURKROW]: [
[ 1, Moves.PECK ],
@@ -4269,6 +4278,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 30, Moves.ANCIENT_POWER ],
[ 40, Moves.LIFE_DEW ],
[ 50, Moves.LEECH_SEED ],
+ [ 55, Moves.HEAL_BLOCK ],
[ 60, Moves.RECOVER ],
[ 70, Moves.FUTURE_SIGHT ],
[ 80, Moves.HEALING_WISH ],
@@ -4967,6 +4977,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 23, Moves.ABSORB ],
[ 29, Moves.SHADOW_SNEAK ],
[ 36, Moves.FURY_SWIPES ],
+ [ 41, Moves.HEAL_BLOCK ],
[ 43, Moves.MIND_READER ],
[ 50, Moves.SHADOW_BALL ],
[ 57, Moves.SPITE ],
@@ -5586,7 +5597,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[Species.SPINDA]: [
[ 1, Moves.TACKLE ],
[ 5, Moves.COPYCAT ],
- [ 10, Moves.TEETER_DANCE ],
+ [ 10, Moves.DIZZY_PUNCH ],
[ 14, Moves.PSYBEAM ],
[ 19, Moves.HYPNOSIS ],
[ 23, Moves.BODY_SLAM ],
@@ -5787,6 +5798,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 20, Moves.PSYSHOCK ],
[ 25, Moves.COSMIC_POWER ],
[ 30, Moves.PSYCHIC ],
+ [ 33, Moves.HEAL_BLOCK ],
[ 35, Moves.STONE_EDGE ],
[ 40, Moves.FUTURE_SIGHT ],
[ 45, Moves.MAGIC_ROOM ],
@@ -5805,6 +5817,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 20, Moves.ZEN_HEADBUTT ],
[ 25, Moves.COSMIC_POWER ],
[ 30, Moves.PSYCHIC ],
+ [ 33, Moves.HEAL_BLOCK ],
[ 35, Moves.STONE_EDGE ],
[ 40, Moves.SOLAR_BEAM ],
[ 45, Moves.WONDER_ROOM ],
@@ -5881,6 +5894,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 3, Moves.RAPID_SPIN ],
[ 6, Moves.CONFUSION ],
[ 9, Moves.ROCK_TOMB ],
+ [ 10, Moves.HEAL_BLOCK ],
[ 12, Moves.POWER_TRICK ],
[ 15, Moves.PSYBEAM ],
[ 18, Moves.ANCIENT_POWER ],
@@ -5902,6 +5916,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.MUD_SLAP ],
[ 1, Moves.RAPID_SPIN ],
[ 9, Moves.ROCK_TOMB ],
+ [ 10, Moves.HEAL_BLOCK ],
[ 12, Moves.POWER_TRICK ],
[ 15, Moves.PSYBEAM ],
[ 18, Moves.ANCIENT_POWER ],
@@ -6497,6 +6512,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[Species.LATIOS]: [
[ 1, Moves.DRAGON_DANCE ],
[ 1, Moves.STORED_POWER ],
+ [ 1, Moves.HEAL_BLOCK ],
[ 5, Moves.HELPING_HAND ],
[ 10, Moves.RECOVER ],
[ 15, Moves.CONFUSION ],
@@ -7355,6 +7371,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 36, Moves.IRON_DEFENSE ],
[ 40, Moves.METAL_SOUND ],
[ 44, Moves.FUTURE_SIGHT ],
+ [ 45, Moves.HEAL_BLOCK ],
],
[Species.BRONZONG]: [
[ 0, Moves.BLOCK ],
@@ -7373,6 +7390,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 38, Moves.IRON_DEFENSE ],
[ 44, Moves.METAL_SOUND ],
[ 50, Moves.FUTURE_SIGHT ],
+ [ 52, Moves.HEAL_BLOCK ],
[ 56, Moves.RAIN_DANCE ],
],
[Species.BONSLY]: [
@@ -7932,7 +7950,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 49, Moves.U_TURN ],
],
[Species.LEAFEON]: [
- [ 0, Moves.RAZOR_LEAF ],
+ [ 0, Moves.SAPPY_SEED ],
[ 1, Moves.TACKLE ],
[ 1, Moves.TAKE_DOWN ],
[ 1, Moves.DOUBLE_EDGE ],
@@ -7946,19 +7964,20 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.COVET ],
[ 1, Moves.COPYCAT ],
[ 5, Moves.SAND_ATTACK ],
- [ 10, Moves.QUICK_ATTACK ],
- [ 15, Moves.BABY_DOLL_EYES ],
- [ 20, Moves.LEECH_SEED ],
- [ 25, Moves.MAGICAL_LEAF ],
- [ 30, Moves.SYNTHESIS ],
- [ 35, Moves.SUNNY_DAY ],
- [ 40, Moves.GIGA_DRAIN ],
- [ 45, Moves.SWORDS_DANCE ],
- [ 50, Moves.LEAF_BLADE ],
- [ 55, Moves.LAST_RESORT ],
+ [ 10, Moves.RAZOR_LEAF ],
+ [ 15, Moves.QUICK_ATTACK ],
+ [ 20, Moves.BABY_DOLL_EYES ],
+ [ 25, Moves.LEECH_SEED ],
+ [ 30, Moves.MAGICAL_LEAF ],
+ [ 35, Moves.SYNTHESIS ],
+ [ 40, Moves.SUNNY_DAY ],
+ [ 45, Moves.GIGA_DRAIN ],
+ [ 50, Moves.SWORDS_DANCE ],
+ [ 55, Moves.LEAF_BLADE ],
+ [ 60, Moves.LAST_RESORT ],
],
[Species.GLACEON]: [
- [ 0, Moves.ICY_WIND ],
+ [ 0, Moves.FREEZY_FROST ],
[ 1, Moves.TACKLE ],
[ 1, Moves.TAKE_DOWN ],
[ 1, Moves.DOUBLE_EDGE ],
@@ -7971,16 +7990,17 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.COVET ],
[ 1, Moves.COPYCAT ],
[ 5, Moves.SAND_ATTACK ],
- [ 10, Moves.QUICK_ATTACK ],
- [ 15, Moves.BABY_DOLL_EYES ],
- [ 20, Moves.ICE_SHARD ],
- [ 25, Moves.BITE ],
- [ 30, Moves.ICE_FANG ],
- [ 35, Moves.SNOWSCAPE ],
- [ 40, Moves.FREEZE_DRY ],
- [ 45, Moves.MIRROR_COAT ],
- [ 50, Moves.BLIZZARD ],
- [ 55, Moves.LAST_RESORT ],
+ [ 10, Moves.ICY_WIND ],
+ [ 15, Moves.QUICK_ATTACK ],
+ [ 20, Moves.BABY_DOLL_EYES ],
+ [ 25, Moves.ICE_SHARD ],
+ [ 30, Moves.BITE ],
+ [ 35, Moves.ICE_FANG ],
+ [ 40, Moves.SNOWSCAPE ],
+ [ 45, Moves.FREEZE_DRY ],
+ [ 50, Moves.MIRROR_COAT ],
+ [ 55, Moves.BLIZZARD ],
+ [ 60, Moves.LAST_RESORT ],
],
[Species.GLISCOR]: [
[ 1, Moves.SAND_ATTACK ],
@@ -9480,6 +9500,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[Species.YAMASK]: [
[ 1, Moves.PROTECT ],
[ 1, Moves.ASTONISH ],
+ [ 1, Moves.HEAL_BLOCK ],
[ 4, Moves.HAZE ],
[ 8, Moves.NIGHT_SHADE ],
[ 12, Moves.DISABLE ],
@@ -9502,6 +9523,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.PROTECT ],
[ 1, Moves.SCARY_FACE ],
[ 1, Moves.ASTONISH ],
+ [ 1, Moves.HEAL_BLOCK ],
[ 12, Moves.DISABLE ],
[ 16, Moves.WILL_O_WISP ],
[ 20, Moves.CRAFTY_SHIELD ],
@@ -9709,6 +9731,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 24, Moves.HYPNOSIS ],
[ 28, Moves.FAKE_TEARS ],
[ 33, Moves.PSYCH_UP ],
+ [ 34, Moves.HEAL_BLOCK ],
[ 36, Moves.PSYCHIC ],
[ 40, Moves.FLATTER ],
[ 44, Moves.FUTURE_SIGHT ],
@@ -9724,6 +9747,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 20, Moves.PSYSHOCK ],
[ 24, Moves.HYPNOSIS ],
[ 28, Moves.FAKE_TEARS ],
+ [ 34, Moves.HEAL_BLOCK ],
[ 35, Moves.PSYCH_UP ],
[ 46, Moves.FLATTER ],
[ 52, Moves.FUTURE_SIGHT ],
@@ -9739,6 +9763,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 20, Moves.PSYSHOCK ],
[ 24, Moves.HYPNOSIS ],
[ 28, Moves.FAKE_TEARS ],
+ [ 34, Moves.HEAL_BLOCK ],
[ 35, Moves.PSYCH_UP ],
[ 40, Moves.PSYCHIC ],
[ 48, Moves.FLATTER ],
@@ -9760,6 +9785,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 36, Moves.PSYCHIC ],
[ 40, Moves.SKILL_SWAP ],
[ 44, Moves.FUTURE_SIGHT ],
+ [ 46, Moves.HEAL_BLOCK ],
[ 48, Moves.WONDER_ROOM ],
],
[Species.DUOSION]: [
@@ -9776,6 +9802,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 35, Moves.PAIN_SPLIT ],
[ 40, Moves.PSYCHIC ],
[ 46, Moves.SKILL_SWAP ],
+ [ 50, Moves.HEAL_BLOCK ],
[ 52, Moves.FUTURE_SIGHT ],
[ 58, Moves.WONDER_ROOM ],
],
@@ -9794,6 +9821,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 35, Moves.PAIN_SPLIT ],
[ 40, Moves.PSYCHIC ],
[ 48, Moves.SKILL_SWAP ],
+ [ 54, Moves.HEAL_BLOCK ],
[ 56, Moves.FUTURE_SIGHT ],
[ 64, Moves.WONDER_ROOM ],
],
@@ -10198,6 +10226,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.GROWL ],
[ 1, Moves.CONFUSION ],
[ 6, Moves.IMPRISON ],
+ [ 8, Moves.HEAL_BLOCK ],
[ 12, Moves.TELEPORT ],
[ 18, Moves.PSYBEAM ],
[ 24, Moves.GUARD_SPLIT ],
@@ -10215,6 +10244,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.TELEPORT ],
[ 1, Moves.IMPRISON ],
[ 1, Moves.PSYCHIC_TERRAIN ],
+ [ 8, Moves.HEAL_BLOCK ],
[ 18, Moves.PSYBEAM ],
[ 24, Moves.GUARD_SPLIT ],
[ 24, Moves.POWER_SPLIT ],
@@ -10873,6 +10903,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 20, Moves.SHOCK_WAVE ],
[ 25, Moves.AGILITY ],
[ 30, Moves.CHARGE ],
+ [ 31, Moves.HEAL_BLOCK ],
[ 35, Moves.VOLT_SWITCH ],
[ 40, Moves.CRUNCH ],
[ 45, Moves.DISCHARGE ],
@@ -11822,7 +11853,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 66, Moves.HYPER_BEAM ],
],
[Species.SYLVEON]: [
- [ 0, Moves.DISARMING_VOICE ],
+ [ 0, Moves.SPARKLY_SWIRL ],
[ 1, Moves.TACKLE ],
[ 1, Moves.TAKE_DOWN ],
[ 1, Moves.DOUBLE_EDGE ],
@@ -11835,16 +11866,17 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.COVET ],
[ 1, Moves.COPYCAT ],
[ 5, Moves.SAND_ATTACK ],
- [ 10, Moves.QUICK_ATTACK ],
- [ 15, Moves.BABY_DOLL_EYES ],
- [ 20, Moves.SWIFT ],
- [ 25, Moves.LIGHT_SCREEN ],
- [ 30, Moves.DRAINING_KISS ],
- [ 35, Moves.MISTY_TERRAIN ],
- [ 40, Moves.SKILL_SWAP ],
- [ 45, Moves.PSYCH_UP ],
- [ 50, Moves.MOONBLAST ],
- [ 55, Moves.LAST_RESORT ],
+ [ 10, Moves.DISARMING_VOICE ],
+ [ 15, Moves.QUICK_ATTACK ],
+ [ 20, Moves.BABY_DOLL_EYES ],
+ [ 25, Moves.SWIFT ],
+ [ 30, Moves.LIGHT_SCREEN ],
+ [ 35, Moves.DRAINING_KISS ],
+ [ 40, Moves.MISTY_TERRAIN ],
+ [ 45, Moves.SKILL_SWAP ],
+ [ 50, Moves.PSYCH_UP ],
+ [ 55, Moves.MOONBLAST ],
+ [ 60, Moves.LAST_RESORT ],
],
[Species.HAWLUCHA]: [
[ 1, Moves.TACKLE ],
@@ -11960,6 +11992,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 40, Moves.PLAY_ROUGH ],
[ 44, Moves.MAGIC_ROOM ],
[ 48, Moves.FOUL_PLAY ],
+ [ 50, Moves.HEAL_BLOCK ],
[ 52, Moves.LAST_RESORT ],
],
[Species.PHANTUMP]: [
@@ -13033,6 +13066,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 45, Moves.IRON_HEAD ],
[ 50, Moves.TAKE_DOWN ],
[ 55, Moves.DOUBLE_EDGE ],
+ [ 60, Moves.HEAL_BLOCK ],
],
[Species.SILVALLY]: [
[ 0, Moves.MULTI_ATTACK ],
@@ -13047,6 +13081,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.ICE_FANG ],
[ 1, Moves.FIRE_FANG ],
[ 1, Moves.IRON_HEAD ],
+ [ 1, Moves.HEAL_BLOCK ],
[ 15, Moves.DOUBLE_HIT ],
[ 20, Moves.METAL_SOUND ],
[ 25, Moves.CRUSH_CLAW ],
@@ -17237,6 +17272,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
],
[Species.ALOLA_RAICHU]: [
[ 0, Moves.PSYCHIC ],
+ [ 0, Moves.ZIPPY_ZAP ],
[ 1, Moves.TAIL_WHIP ],
[ 1, Moves.GROWL ],
[ 1, Moves.THUNDER_SHOCK ],
@@ -17257,6 +17293,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
[ 1, Moves.PLAY_NICE ],
[ 1, Moves.NUZZLE ],
[ 5, Moves.THUNDERBOLT ],
+ [ 50, Moves.PIKA_PAPOW ],
],
[Species.ALOLA_SANDSHREW]: [
[ 1, Moves.SCRATCH ],
diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts
index 8be93672f34..d118adc0fd8 100644
--- a/src/data/pokemon-species.ts
+++ b/src/data/pokemon-species.ts
@@ -138,9 +138,9 @@ export abstract class PokemonSpeciesForm {
this.genderDiffs = genderDiffs;
}
- getRootSpeciesId(): Species {
+ getRootSpeciesId(forStarter: boolean = false): Species {
let ret = this.speciesId;
- while (pokemonPrevolutions.hasOwnProperty(ret))
+ while (pokemonPrevolutions.hasOwnProperty(ret) && (!forStarter || !speciesStarters.hasOwnProperty(ret)))
ret = pokemonPrevolutions[ret];
return ret;
}
@@ -367,8 +367,8 @@ export abstract class PokemonSpeciesForm {
loadAssets(scene: BattleScene, female: boolean, formIndex?: integer, shiny?: boolean, variant?: Variant, startLoad?: boolean): Promise {
return new Promise(resolve => {
const spriteKey = this.getSpriteKey(female, formIndex, shiny, variant);
- scene.load.audio(this.getCryKey(formIndex), `audio/cry/${this.getCryKey(formIndex)}.m4a`);
scene.loadPokemonAtlas(spriteKey, this.getSpriteAtlasPath(female, formIndex, shiny, variant));
+ scene.load.audio(this.getCryKey(formIndex), `audio/cry/${this.getCryKey(formIndex)}.m4a`);
scene.load.once(Phaser.Loader.Events.COMPLETE, () => {
const originalWarn = console.warn;
// Ignore warnings for missing frames, because there will be a lot
@@ -1748,8 +1748,14 @@ export function initSpecies() {
new PokemonSpecies(Species.FENNEKIN, 6, false, false, false, "Fox Pokémon", Type.FIRE, null, 0.4, 9.4, Abilities.BLAZE, Abilities.NONE, Abilities.MAGICIAN, 307, 40, 45, 40, 62, 60, 60, 45, 70, 61, GrowthRate.MEDIUM_SLOW, 87.5, false),
new PokemonSpecies(Species.BRAIXEN, 6, false, false, false, "Fox Pokémon", Type.FIRE, null, 1, 14.5, Abilities.BLAZE, Abilities.NONE, Abilities.MAGICIAN, 409, 59, 59, 58, 90, 70, 73, 45, 70, 143, GrowthRate.MEDIUM_SLOW, 87.5, false),
new PokemonSpecies(Species.DELPHOX, 6, false, false, false, "Fox Pokémon", Type.FIRE, Type.PSYCHIC, 1.5, 39, Abilities.BLAZE, Abilities.NONE, Abilities.MAGICIAN, 534, 75, 69, 72, 114, 100, 104, 45, 70, 240, GrowthRate.MEDIUM_SLOW, 87.5, false),
- new PokemonSpecies(Species.FROAKIE, 6, false, false, false, "Bubble Frog Pokémon", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63, GrowthRate.MEDIUM_SLOW, 87.5, false),
- new PokemonSpecies(Species.FROGADIER, 6, false, false, false, "Bubble Frog Pokémon", Type.WATER, null, 0.6, 10.9, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 405, 54, 63, 52, 83, 56, 97, 45, 70, 142, GrowthRate.MEDIUM_SLOW, 87.5, false),
+ new PokemonSpecies(Species.FROAKIE, 6, false, false, false, "Bubble Frog Pokémon", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63, GrowthRate.MEDIUM_SLOW, 87.5, false, false,
+ new PokemonForm("Normal", "", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63),
+ new PokemonForm("Battle Bond", "battle-bond", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63, false, ""),
+ ),
+ new PokemonSpecies(Species.FROGADIER, 6, false, false, false, "Bubble Frog Pokémon", Type.WATER, null, 0.6, 10.9, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 405, 54, 63, 52, 83, 56, 97, 45, 70, 142, GrowthRate.MEDIUM_SLOW, 87.5, false, false,
+ new PokemonForm("Normal", "", Type.WATER, null, 0.6, 10.9, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 405, 54, 63, 52, 83, 56, 97, 45, 70, 142),
+ new PokemonForm("Battle Bond", "battle-bond", Type.WATER, null, 0.6, 10.9, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 405, 54, 63, 52, 83, 56, 97, 45, 70, 142, false, ""),
+ ),
new PokemonSpecies(Species.GRENINJA, 6, false, false, false, "Ninja Pokémon", Type.WATER, Type.DARK, 1.5, 40, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 530, 72, 95, 67, 103, 71, 122, 45, 70, 239, GrowthRate.MEDIUM_SLOW, 87.5, false, false,
new PokemonForm("Normal", "", Type.WATER, Type.DARK, 1.5, 40, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 530, 72, 95, 67, 103, 71, 122, 45, 70, 239),
new PokemonForm("Battle Bond", "battle-bond", Type.WATER, Type.DARK, 1.5, 40, Abilities.BATTLE_BOND, Abilities.NONE, Abilities.BATTLE_BOND, 530, 72, 95, 67, 103, 71, 122, 45, 70, 239, false, ""),
@@ -1855,15 +1861,15 @@ export function initSpecies() {
new PokemonSpecies(Species.PANGORO, 6, false, false, false, "Daunting Pokémon", Type.FIGHTING, Type.DARK, 2.1, 136, Abilities.IRON_FIST, Abilities.MOLD_BREAKER, Abilities.SCRAPPY, 495, 95, 124, 78, 69, 71, 58, 65, 50, 173, GrowthRate.MEDIUM_FAST, 50, false),
new PokemonSpecies(Species.FURFROU, 6, false, false, false, "Poodle Pokémon", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, GrowthRate.MEDIUM_FAST, 50, false, true,
new PokemonForm("Natural Form", "", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165),
- new PokemonForm("Heart Trim", "heart", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, ""),
- new PokemonForm("Star Trim", "star", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, ""),
- new PokemonForm("Diamond Trim", "diamond", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, ""),
- new PokemonForm("Debutante Trim", "debutante", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, ""),
- new PokemonForm("Matron Trim", "matron", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, ""),
- new PokemonForm("Dandy Trim", "dandy", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, ""),
- new PokemonForm("La Reine Trim", "la-reine", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, ""),
- new PokemonForm("Kabuki Trim", "kabuki", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, ""),
- new PokemonForm("Pharaoh Trim", "pharaoh", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false, ""),
+ new PokemonForm("Heart Trim", "heart", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false),
+ new PokemonForm("Star Trim", "star", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false),
+ new PokemonForm("Diamond Trim", "diamond", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false),
+ new PokemonForm("Debutante Trim", "debutante", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false),
+ new PokemonForm("Matron Trim", "matron", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false),
+ new PokemonForm("Dandy Trim", "dandy", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false),
+ new PokemonForm("La Reine Trim", "la-reine", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false),
+ new PokemonForm("Kabuki Trim", "kabuki", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false),
+ new PokemonForm("Pharaoh Trim", "pharaoh", Type.NORMAL, null, 1.2, 28, Abilities.FUR_COAT, Abilities.NONE, Abilities.NONE, 472, 75, 80, 60, 65, 90, 102, 160, 70, 165, false),
),
new PokemonSpecies(Species.ESPURR, 6, false, false, false, "Restraint Pokémon", Type.PSYCHIC, null, 0.3, 3.5, Abilities.KEEN_EYE, Abilities.INFILTRATOR, Abilities.OWN_TEMPO, 355, 62, 48, 54, 63, 60, 68, 190, 50, 71, GrowthRate.MEDIUM_FAST, 50, false),
new PokemonSpecies(Species.MEOWSTIC, 6, false, false, false, "Constraint Pokémon", Type.PSYCHIC, null, 0.6, 8.5, Abilities.KEEN_EYE, Abilities.INFILTRATOR, Abilities.PRANKSTER, 466, 74, 48, 76, 83, 81, 104, 75, 50, 163, GrowthRate.MEDIUM_FAST, 50, false, false,
@@ -2209,14 +2215,14 @@ export function initSpecies() {
new PokemonSpecies(Species.MILCERY, 8, false, false, false, "Cream Pokémon", Type.FAIRY, null, 0.2, 0.3, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 270, 45, 40, 40, 50, 61, 34, 200, 50, 54, GrowthRate.MEDIUM_FAST, 0, false),
new PokemonSpecies(Species.ALCREMIE, 8, false, false, false, "Cream Pokémon", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, GrowthRate.MEDIUM_FAST, 0, false, true,
new PokemonForm("Vanilla Cream", "vanilla-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, ""),
- new PokemonForm("Ruby Cream", "ruby-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, ""),
- new PokemonForm("Matcha Cream", "matcha-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, ""),
- new PokemonForm("Mint Cream", "mint-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, ""),
- new PokemonForm("Lemon Cream", "lemon-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, ""),
- new PokemonForm("Salted Cream", "salted-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, ""),
- new PokemonForm("Ruby Swirl", "ruby-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, ""),
- new PokemonForm("Caramel Swirl", "caramel-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, ""),
- new PokemonForm("Rainbow Swirl", "rainbow-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, ""),
+ new PokemonForm("Ruby Cream", "ruby-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false),
+ new PokemonForm("Matcha Cream", "matcha-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false),
+ new PokemonForm("Mint Cream", "mint-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false),
+ new PokemonForm("Lemon Cream", "lemon-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false),
+ new PokemonForm("Salted Cream", "salted-cream", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false),
+ new PokemonForm("Ruby Swirl", "ruby-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false),
+ new PokemonForm("Caramel Swirl", "caramel-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false),
+ new PokemonForm("Rainbow Swirl", "rainbow-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false),
new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FAIRY, null, 30, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 595, 80, 70, 85, 140, 150, 65, 100, 50, 173),
),
new PokemonSpecies(Species.FALINKS, 8, false, false, false, "Formation Pokémon", Type.FIGHTING, null, 3, 62, Abilities.BATTLE_ARMOR, Abilities.NONE, Abilities.DEFIANT, 470, 65, 100, 100, 70, 60, 75, 45, 50, 165, GrowthRate.MEDIUM_FAST, null, false),
@@ -3150,6 +3156,30 @@ export const noStarterFormKeys: string[] = [
SpeciesFormKey.ETERNAMAX
].map(k => k.toString());
+export function getStarterValueFriendshipCap(value: integer): integer {
+ switch (value) {
+ case 1:
+ return 20;
+ case 2:
+ return 40;
+ case 3:
+ return 60;
+ case 4:
+ return 100;
+ case 5:
+ return 140;
+ case 6:
+ return 200;
+ case 7:
+ return 280;
+ case 8:
+ case 9:
+ return 450;
+ default:
+ return 600;
+ }
+}
+
export const starterPassiveAbilities = {
[Species.BULBASAUR]: Abilities.SOLAR_POWER,
[Species.CHARMANDER]: Abilities.INTIMIDATE,
@@ -3179,7 +3209,7 @@ export const starterPassiveAbilities = {
[Species.BELLSPROUT]: Abilities.CORROSION,
[Species.TENTACOOL]: Abilities.INNARDS_OUT,
[Species.GEODUDE]: Abilities.ROCKY_PAYLOAD,
- [Species.PONYTA]: Abilities.PIXILATE,
+ [Species.PONYTA]: Abilities.MAGIC_GUARD,
[Species.SLOWPOKE]: Abilities.UNAWARE,
[Species.MAGNEMITE]: Abilities.MOTOR_DRIVE,
[Species.FARFETCHD]: Abilities.PURE_POWER,
@@ -3205,7 +3235,7 @@ export const starterPassiveAbilities = {
[Species.SCYTHER]: Abilities.SPEED_BOOST,
[Species.PINSIR]: Abilities.SAP_SIPPER,
[Species.TAUROS]: Abilities.ROCK_HEAD,
- [Species.MAGIKARP]: Abilities.BERSERK,
+ [Species.MAGIKARP]: Abilities.MULTISCALE,
[Species.LAPRAS]: Abilities.LIQUID_VOICE,
[Species.DITTO]: Abilities.GOOEY,
[Species.EEVEE]: Abilities.PROTEAN,
@@ -3219,16 +3249,16 @@ export const starterPassiveAbilities = {
[Species.DRATINI]: Abilities.DELTA_STREAM,
[Species.MEWTWO]: Abilities.NEUROFORCE,
[Species.MEW]: Abilities.PROTEAN,
- [Species.CHIKORITA]: Abilities.RIPEN,
+ [Species.CHIKORITA]: Abilities.THICK_FAT,
[Species.CYNDAQUIL]: Abilities.TURBOBLAZE,
[Species.TOTODILE]: Abilities.TOUGH_CLAWS,
[Species.SENTRET]: Abilities.FLUFFY,
[Species.HOOTHOOT]: Abilities.CURSED_BODY,
- [Species.LEDYBA]: Abilities.SCREEN_CLEANER,
+ [Species.LEDYBA]: Abilities.PRANKSTER,
[Species.SPINARAK]: Abilities.PRANKSTER,
[Species.CHINCHOU]: Abilities.REGENERATOR,
[Species.PICHU]: Abilities.TRANSISTOR,
- [Species.CLEFFA]: Abilities.MISTY_SURGE,
+ [Species.CLEFFA]: Abilities.MAGIC_BOUNCE,
[Species.IGGLYBUFF]: Abilities.SERENE_GRACE,
[Species.TOGEPI]: Abilities.OPPORTUNIST,
[Species.NATU]: Abilities.TINTED_LENS,
@@ -3246,7 +3276,7 @@ export const starterPassiveAbilities = {
[Species.DUNSPARCE]: Abilities.MARVEL_SCALE,
[Species.GLIGAR]: Abilities.MERCILESS,
[Species.SNUBBULL]: Abilities.BALL_FETCH,
- [Species.QWILFISH]: Abilities.LIQUID_OOZE,
+ [Species.QWILFISH]: Abilities.TOXIC_DEBRIS,
[Species.SHUCKLE]: Abilities.WELL_BAKED_BODY,
[Species.HERACROSS]: Abilities.QUICK_FEET,
[Species.SNEASEL]: Abilities.MOXIE,
@@ -3262,7 +3292,7 @@ export const starterPassiveAbilities = {
[Species.STANTLER]: Abilities.MAGIC_GUARD,
[Species.SMEARGLE]: Abilities.QUICK_DRAW,
[Species.TYROGUE]: Abilities.STAMINA,
- [Species.SMOOCHUM]: Abilities.CUTE_CHARM,
+ [Species.SMOOCHUM]: Abilities.DAZZLING,
[Species.ELEKID]: Abilities.IRON_FIST,
[Species.MAGBY]: Abilities.CONTRARY,
[Species.MILTANK]: Abilities.GLUTTONY,
@@ -3270,10 +3300,10 @@ export const starterPassiveAbilities = {
[Species.ENTEI]: Abilities.MOXIE,
[Species.SUICUNE]: Abilities.UNAWARE,
[Species.LARVITAR]: Abilities.SAND_FORCE,
- [Species.LUGIA]: Abilities.STORM_DRAIN,
+ [Species.LUGIA]: Abilities.DELTA_STREAM,
[Species.HO_OH]: Abilities.MAGIC_GUARD,
[Species.CELEBI]: Abilities.GRASSY_SURGE,
- [Species.TREECKO]: Abilities.GRASSY_SURGE,
+ [Species.TREECKO]: Abilities.TINTED_LENS,
[Species.TORCHIC]: Abilities.RECKLESS,
[Species.MUDKIP]: Abilities.REGENERATOR,
[Species.POOCHYENA]: Abilities.STRONG_JAW,
@@ -3290,7 +3320,7 @@ export const starterPassiveAbilities = {
[Species.NINCADA]: Abilities.OVERCOAT,
[Species.WHISMUR]: Abilities.PUNK_ROCK,
[Species.MAKUHITA]: Abilities.STAMINA,
- [Species.AZURILL]: Abilities.UNNERVE,
+ [Species.AZURILL]: Abilities.MISTY_SURGE,
[Species.NOSEPASS]: Abilities.LEVITATE,
[Species.SKITTY]: Abilities.SCRAPPY,
[Species.SABLEYE]: Abilities.UNNERVE,
@@ -3321,7 +3351,7 @@ export const starterPassiveAbilities = {
[Species.BALTOY]: Abilities.OWN_TEMPO,
[Species.LILEEP]: Abilities.WATER_ABSORB,
[Species.ANORITH]: Abilities.WATER_ABSORB,
- [Species.FEEBAS]: Abilities.PASTEL_VEIL,
+ [Species.FEEBAS]: Abilities.MAGIC_GUARD,
[Species.CASTFORM]: Abilities.ADAPTABILITY,
[Species.KECLEON]: Abilities.ADAPTABILITY,
[Species.SHUPPET]: Abilities.MUMMY,
@@ -3336,13 +3366,13 @@ export const starterPassiveAbilities = {
[Species.LUVDISC]: Abilities.PICKUP,
[Species.BAGON]: Abilities.GALE_WINGS,
[Species.BELDUM]: Abilities.IRON_FIST,
- [Species.REGIROCK]: Abilities.REGENERATOR,
- [Species.REGICE]: Abilities.ICE_SCALES,
- [Species.REGISTEEL]: Abilities.STEELY_SPIRIT,
- [Species.LATIAS]: Abilities.SERENE_GRACE,
- [Species.LATIOS]: Abilities.SERENE_GRACE,
+ [Species.REGIROCK]: Abilities.SAND_STREAM,
+ [Species.REGICE]: Abilities.SNOW_WARNING,
+ [Species.REGISTEEL]: Abilities.FILTER,
+ [Species.LATIAS]: Abilities.SOUL_HEART,
+ [Species.LATIOS]: Abilities.TINTED_LENS,
[Species.KYOGRE]: Abilities.HYDRATION,
- [Species.GROUDON]: Abilities.EARTH_EATER,
+ [Species.GROUDON]: Abilities.PROTOSYNTHESIS,
[Species.RAYQUAZA]: Abilities.UNNERVE,
[Species.JIRACHI]: Abilities.COMATOSE,
[Species.DEOXYS]: Abilities.PROTEAN,
@@ -3384,16 +3414,16 @@ export const starterPassiveAbilities = {
[Species.MANTYKE]: Abilities.STORM_DRAIN,
[Species.SNOVER]: Abilities.SNOW_CLOAK,
[Species.ROTOM]: Abilities.HADRON_ENGINE,
- [Species.UXIE]: Abilities.ILLUSION,
+ [Species.UXIE]: Abilities.UNAWARE,
[Species.MESPRIT]: Abilities.MOODY,
[Species.AZELF]: Abilities.NEUROFORCE,
[Species.DIALGA]: Abilities.SPEED_BOOST,
- [Species.PALKIA]: Abilities.MAGIC_BOUNCE,
- [Species.HEATRAN]: Abilities.ROUGH_SKIN,
+ [Species.PALKIA]: Abilities.MULTISCALE,
+ [Species.HEATRAN]: Abilities.FILTER,
[Species.REGIGIGAS]: Abilities.MINDS_EYE,
- [Species.GIRATINA]: Abilities.SHADOW_TAG,
+ [Species.GIRATINA]: Abilities.SHADOW_SHIELD,
[Species.CRESSELIA]: Abilities.MAGIC_BOUNCE,
- [Species.PHIONE]: Abilities.SWIFT_SWIM,
+ [Species.PHIONE]: Abilities.SIMPLE,
[Species.MANAPHY]: Abilities.SIMPLE,
[Species.DARKRAI]: Abilities.UNNERVE,
[Species.SHAYMIN]: Abilities.FLOWER_VEIL,
@@ -3401,7 +3431,7 @@ export const starterPassiveAbilities = {
[Species.VICTINI]: Abilities.SUPER_LUCK,
[Species.SNIVY]: Abilities.MULTISCALE,
[Species.TEPIG]: Abilities.ROCK_HEAD,
- [Species.OSHAWOTT]: Abilities.MOLD_BREAKER,
+ [Species.OSHAWOTT]: Abilities.QUICK_DRAW,
[Species.PATRAT]: Abilities.STAKEOUT,
[Species.LILLIPUP]: Abilities.BALL_FETCH,
[Species.PURRLOIN]: Abilities.DEFIANT,
@@ -3414,14 +3444,14 @@ export const starterPassiveAbilities = {
[Species.ROGGENROLA]: Abilities.SOLID_ROCK,
[Species.WOOBAT]: Abilities.SOUL_HEART,
[Species.DRILBUR]: Abilities.SAND_STREAM,
- [Species.AUDINO]: Abilities.SERENE_GRACE,
+ [Species.AUDINO]: Abilities.FRIEND_GUARD,
[Species.TIMBURR]: Abilities.STAMINA,
[Species.TYMPOLE]: Abilities.MOODY,
[Species.THROH]: Abilities.SIMPLE,
[Species.SAWK]: Abilities.DEFIANT,
[Species.SEWADDLE]: Abilities.SHARPNESS,
[Species.VENIPEDE]: Abilities.INTIMIDATE,
- [Species.COTTONEE]: Abilities.MISTY_SURGE,
+ [Species.COTTONEE]: Abilities.FLUFFY,
[Species.PETILIL]: Abilities.DANCER,
[Species.BASCULIN]: Abilities.OPPORTUNIST,
[Species.SANDILE]: Abilities.STRONG_JAW,
@@ -3430,7 +3460,7 @@ export const starterPassiveAbilities = {
[Species.DWEBBLE]: Abilities.STAMINA,
[Species.SCRAGGY]: Abilities.ROCK_HEAD,
[Species.SIGILYPH]: Abilities.MAGICIAN,
- [Species.YAMASK]: Abilities.GOOD_AS_GOLD,
+ [Species.YAMASK]: Abilities.PURIFYING_SALT,
[Species.TIRTOUGA]: Abilities.SHELL_ARMOR,
[Species.ARCHEN]: Abilities.ROCKY_PAYLOAD,
[Species.TRUBBISH]: Abilities.GOOEY,
@@ -3470,16 +3500,16 @@ export const starterPassiveAbilities = {
[Species.LARVESTA]: Abilities.DROUGHT,
[Species.COBALION]: Abilities.INTREPID_SWORD,
[Species.TERRAKION]: Abilities.ROCKY_PAYLOAD,
- [Species.VIRIZION]: Abilities.SYMBIOSIS,
- [Species.TORNADUS]: Abilities.DELTA_STREAM,
+ [Species.VIRIZION]: Abilities.SHARPNESS,
+ [Species.TORNADUS]: Abilities.DRIZZLE,
[Species.THUNDURUS]: Abilities.DRIZZLE,
[Species.RESHIRAM]: Abilities.ORICHALCUM_PULSE,
[Species.ZEKROM]: Abilities.HADRON_ENGINE,
- [Species.LANDORUS]: Abilities.PRANKSTER,
+ [Species.LANDORUS]: Abilities.STORM_DRAIN,
[Species.KYUREM]: Abilities.SNOW_WARNING,
- [Species.KELDEO]: Abilities.SHARPNESS,
- [Species.MELOETTA]: Abilities.PUNK_ROCK,
- [Species.GENESECT]: Abilities.MEGA_LAUNCHER,
+ [Species.KELDEO]: Abilities.GRIM_NEIGH,
+ [Species.MELOETTA]: Abilities.MINDS_EYE,
+ [Species.GENESECT]: Abilities.REGENERATOR,
[Species.CHESPIN]: Abilities.IRON_BARBS,
[Species.FENNEKIN]: Abilities.MAGIC_BOUNCE,
[Species.FROAKIE]: Abilities.ADAPTABILITY,
@@ -3491,7 +3521,7 @@ export const starterPassiveAbilities = {
[Species.SKIDDO]: Abilities.GRASSY_SURGE,
[Species.PANCHAM]: Abilities.FLUFFY,
[Species.FURFROU]: Abilities.BALL_FETCH,
- [Species.ESPURR]: Abilities.PSYCHIC_SURGE,
+ [Species.ESPURR]: Abilities.FUR_COAT,
[Species.HONEDGE]: Abilities.SHARPNESS,
[Species.SPRITZEE]: Abilities.MISTY_SURGE,
[Species.SWIRLIX]: Abilities.WELL_BAKED_BODY,
@@ -3511,14 +3541,14 @@ export const starterPassiveAbilities = {
[Species.PUMPKABOO]: Abilities.FLASH_FIRE,
[Species.BERGMITE]: Abilities.MIRROR_ARMOR,
[Species.NOIBAT]: Abilities.PUNK_ROCK,
- [Species.XERNEAS]: Abilities.COMPETITIVE,
- [Species.YVELTAL]: Abilities.DEFIANT,
- [Species.ZYGARDE]: Abilities.REGENERATOR,
- [Species.DIANCIE]: Abilities.QUEENLY_MAJESTY,
- [Species.HOOPA]: Abilities.TRACE,
+ [Species.XERNEAS]: Abilities.MISTY_SURGE,
+ [Species.YVELTAL]: Abilities.SOUL_HEART,
+ [Species.ZYGARDE]: Abilities.HUGE_POWER,
+ [Species.DIANCIE]: Abilities.LEVITATE,
+ [Species.HOOPA]: Abilities.OPPORTUNIST,
[Species.VOLCANION]: Abilities.FILTER,
[Species.ROWLET]: Abilities.SNIPER,
- [Species.LITTEN]: Abilities.PRANKSTER,
+ [Species.LITTEN]: Abilities.FLAME_BODY,
[Species.POPPLIO]: Abilities.PUNK_ROCK,
[Species.PIKIPEK]: Abilities.ANGER_POINT,
[Species.YUNGOOS]: Abilities.HUGE_POWER,
@@ -3547,39 +3577,39 @@ export const starterPassiveAbilities = {
[Species.KOMALA]: Abilities.GUTS,
[Species.TURTONATOR]: Abilities.ANGER_SHELL,
[Species.TOGEDEMARU]: Abilities.STATIC,
- [Species.MIMIKYU]: Abilities.CURSED_BODY,
+ [Species.MIMIKYU]: Abilities.TOUGH_CLAWS,
[Species.BRUXISH]: Abilities.MULTISCALE,
[Species.DRAMPA]: Abilities.FLASH_FIRE,
[Species.DHELMISE]: Abilities.INFILTRATOR,
[Species.JANGMO_O]: Abilities.DANCER,
- [Species.TAPU_KOKO]: Abilities.GALVANIZE,
- [Species.TAPU_LELE]: Abilities.BERSERK,
- [Species.TAPU_BULU]: Abilities.FLOWER_VEIL,
+ [Species.TAPU_KOKO]: Abilities.TRANSISTOR,
+ [Species.TAPU_LELE]: Abilities.SHEER_FORCE,
+ [Species.TAPU_BULU]: Abilities.GRASS_PELT,
[Species.TAPU_FINI]: Abilities.FAIRY_AURA,
[Species.COSMOG]: Abilities.BEAST_BOOST,
- [Species.NIHILEGO]: Abilities.POISON_PUPPETEER,
+ [Species.NIHILEGO]: Abilities.LEVITATE,
[Species.BUZZWOLE]: Abilities.MOXIE,
- [Species.PHEROMOSA]: Abilities.MOXIE,
- [Species.XURKITREE]: Abilities.LIGHTNING_ROD,
- [Species.CELESTEELA]: Abilities.CHLOROPHYLL,
+ [Species.PHEROMOSA]: Abilities.TINTED_LENS,
+ [Species.XURKITREE]: Abilities.TRANSISTOR,
+ [Species.CELESTEELA]: Abilities.HEATPROOF,
[Species.KARTANA]: Abilities.SHARPNESS,
- [Species.GUZZLORD]: Abilities.GLUTTONY,
+ [Species.GUZZLORD]: Abilities.INNARDS_OUT,
[Species.NECROZMA]: Abilities.BEAST_BOOST,
[Species.MAGEARNA]: Abilities.STEELY_SPIRIT,
[Species.MARSHADOW]: Abilities.IRON_FIST,
- [Species.POIPOLE]: Abilities.MERCILESS,
- [Species.STAKATAKA]: Abilities.DAUNTLESS_SHIELD,
+ [Species.POIPOLE]: Abilities.SHEER_FORCE,
+ [Species.STAKATAKA]: Abilities.SOLID_ROCK,
[Species.BLACEPHALON]: Abilities.MAGIC_GUARD,
- [Species.ZERAORA]: Abilities.MOTOR_DRIVE,
- [Species.MELTAN]: Abilities.FULL_METAL_BODY,
+ [Species.ZERAORA]: Abilities.TOUGH_CLAWS,
+ [Species.MELTAN]: Abilities.STEELY_SPIRIT,
[Species.GROOKEY]: Abilities.GRASS_PELT,
[Species.SCORBUNNY]: Abilities.RECKLESS,
[Species.SOBBLE]: Abilities.SUPER_LUCK,
[Species.SKWOVET]: Abilities.HONEY_GATHER,
[Species.ROOKIDEE]: Abilities.IRON_BARBS,
- [Species.BLIPBUG]: Abilities.TINTED_LENS,
+ [Species.BLIPBUG]: Abilities.PSYCHIC_SURGE,
[Species.NICKIT]: Abilities.INTIMIDATE,
- [Species.GOSSIFLEUR]: Abilities.STORM_DRAIN,
+ [Species.GOSSIFLEUR]: Abilities.GRASSY_SURGE,
[Species.WOOLOO]: Abilities.ROCK_HEAD,
[Species.CHEWTLE]: Abilities.ROCK_HEAD,
[Species.YAMPER]: Abilities.STAKEOUT,
@@ -3594,7 +3624,7 @@ export const starterPassiveAbilities = {
[Species.SINISTEA]: Abilities.WATER_ABSORB,
[Species.HATENNA]: Abilities.MAGIC_GUARD,
[Species.IMPIDIMP]: Abilities.TANGLING_HAIR,
- [Species.MILCERY]: Abilities.WELL_BAKED_BODY,
+ [Species.MILCERY]: Abilities.MISTY_SURGE,
[Species.FALINKS]: Abilities.MOXIE,
[Species.PINCURCHIN]: Abilities.IRON_BARBS,
[Species.SNOM]: Abilities.SNOW_WARNING,
@@ -3609,17 +3639,17 @@ export const starterPassiveAbilities = {
[Species.ARCTOVISH]: Abilities.STRONG_JAW,
[Species.DURALUDON]: Abilities.MEGA_LAUNCHER,
[Species.DREEPY]: Abilities.PARENTAL_BOND,
- [Species.ZACIAN]: Abilities.GUARD_DOG,
- [Species.ZAMAZENTA]: Abilities.GUARD_DOG,
+ [Species.ZACIAN]: Abilities.UNNERVE,
+ [Species.ZAMAZENTA]: Abilities.STAMINA,
[Species.ETERNATUS]: Abilities.SUPREME_OVERLORD,
[Species.KUBFU]: Abilities.IRON_FIST,
- [Species.ZARUDE]: Abilities.PRANKSTER,
- [Species.REGIELEKI]: Abilities.LEVITATE,
- [Species.REGIDRAGO]: Abilities.INTIMIDATE,
+ [Species.ZARUDE]: Abilities.GRASSY_SURGE,
+ [Species.REGIELEKI]: Abilities.ELECTRIC_SURGE,
+ [Species.REGIDRAGO]: Abilities.MULTISCALE,
[Species.GLASTRIER]: Abilities.FILTER,
- [Species.SPECTRIER]: Abilities.PERISH_BODY,
+ [Species.SPECTRIER]: Abilities.SHADOW_SHIELD,
[Species.CALYREX]: Abilities.HARVEST,
- [Species.ENAMORUS]: Abilities.PRANKSTER,
+ [Species.ENAMORUS]: Abilities.FAIRY_AURA,
[Species.SPRIGATITO]: Abilities.MAGICIAN,
[Species.FUECOCO]: Abilities.EARTH_EATER,
[Species.QUAXLY]: Abilities.DANCER,
@@ -3644,9 +3674,9 @@ export const starterPassiveAbilities = {
[Species.RELLOR]: Abilities.MAGIC_GUARD,
[Species.FLITTLE]: Abilities.COMPETITIVE,
[Species.TINKATINK]: Abilities.HUGE_POWER,
- [Species.WIGLETT]: Abilities.STORM_DRAIN,
+ [Species.WIGLETT]: Abilities.STURDY,
[Species.BOMBIRDIER]: Abilities.UNAWARE,
- [Species.FINIZEN]: Abilities.LIQUID_VOICE,
+ [Species.FINIZEN]: Abilities.IRON_FIST,
[Species.VAROOM]: Abilities.SPEED_BOOST,
[Species.CYCLIZAR]: Abilities.PROTEAN,
[Species.ORTHWORM]: Abilities.HEATPROOF,
@@ -3658,55 +3688,55 @@ export const starterPassiveAbilities = {
[Species.DONDOZO]: Abilities.GLUTTONY,
[Species.TATSUGIRI]: Abilities.WATER_BUBBLE,
[Species.GREAT_TUSK]: Abilities.INTIMIDATE,
- [Species.SCREAM_TAIL]: Abilities.PIXILATE,
+ [Species.SCREAM_TAIL]: Abilities.UNAWARE,
[Species.BRUTE_BONNET]: Abilities.BEAST_BOOST,
[Species.FLUTTER_MANE]: Abilities.DAZZLING,
- [Species.SLITHER_WING]: Abilities.MOXIE,
+ [Species.SLITHER_WING]: Abilities.SCRAPPY,
[Species.SANDY_SHOCKS]: Abilities.EARTH_EATER,
- [Species.IRON_TREADS]: Abilities.BULLETPROOF,
+ [Species.IRON_TREADS]: Abilities.STEELY_SPIRIT,
[Species.IRON_BUNDLE]: Abilities.SNOW_WARNING,
[Species.IRON_HANDS]: Abilities.IRON_FIST,
- [Species.IRON_JUGULIS]: Abilities.NO_GUARD,
+ [Species.IRON_JUGULIS]: Abilities.AERILATE,
[Species.IRON_MOTH]: Abilities.LEVITATE,
[Species.IRON_THORNS]: Abilities.SAND_STREAM,
[Species.FRIGIBAX]: Abilities.THICK_FAT,
[Species.GIMMIGHOUL]: Abilities.SUPER_LUCK,
- [Species.WO_CHIEN]: Abilities.TRIAGE,
- [Species.CHIEN_PAO]: Abilities.REFRIGERATE,
+ [Species.WO_CHIEN]: Abilities.GRASSY_SURGE,
+ [Species.CHIEN_PAO]: Abilities.INTREPID_SWORD,
[Species.TING_LU]: Abilities.STAMINA,
- [Species.CHI_YU]: Abilities.BLAZE,
- [Species.ROARING_MOON]: Abilities.AERILATE,
+ [Species.CHI_YU]: Abilities.DROUGHT,
+ [Species.ROARING_MOON]: Abilities.TOUGH_CLAWS,
[Species.IRON_VALIANT]: Abilities.DOWNLOAD,
[Species.KORAIDON]: Abilities.PROTOSYNTHESIS,
[Species.MIRAIDON]: Abilities.QUARK_DRIVE,
[Species.WALKING_WAKE]: Abilities.BEAST_BOOST,
[Species.IRON_LEAVES]: Abilities.SHARPNESS,
[Species.POLTCHAGEIST]: Abilities.FLAME_BODY,
- [Species.OKIDOGI]: Abilities.INTIMIDATE,
- [Species.MUNKIDORI]: Abilities.PRANKSTER,
- [Species.FEZANDIPITI]: Abilities.DAZZLING,
+ [Species.OKIDOGI]: Abilities.FUR_COAT,
+ [Species.MUNKIDORI]: Abilities.NEUROFORCE,
+ [Species.FEZANDIPITI]: Abilities.LEVITATE,
[Species.OGERPON]: Abilities.OPPORTUNIST,
[Species.GOUGING_FIRE]: Abilities.BEAST_BOOST,
[Species.RAGING_BOLT]: Abilities.BEAST_BOOST,
[Species.IRON_BOULDER]: Abilities.SHARPNESS,
[Species.IRON_CROWN]: Abilities.SHARPNESS,
- [Species.TERAPAGOS]: Abilities.PROTEAN,
- [Species.PECHARUNT]: Abilities.CORROSION,
+ [Species.TERAPAGOS]: Abilities.REGENERATOR,
+ [Species.PECHARUNT]: Abilities.TOXIC_CHAIN,
[Species.ALOLA_RATTATA]: Abilities.CHEEK_POUCH,
[Species.ALOLA_SANDSHREW]: Abilities.ICE_BODY,
[Species.ALOLA_VULPIX]: Abilities.ICE_BODY,
- [Species.ALOLA_DIGLETT]: Abilities.CUTE_CHARM,
+ [Species.ALOLA_DIGLETT]: Abilities.STURDY,
[Species.ALOLA_MEOWTH]: Abilities.UNNERVE,
[Species.ALOLA_GEODUDE]: Abilities.ELECTROMORPHOSIS,
[Species.ALOLA_GRIMER]: Abilities.MERCILESS,
[Species.ETERNAL_FLOETTE]: Abilities.MAGIC_GUARD,
[Species.GALAR_MEOWTH]: Abilities.SUPER_LUCK,
- [Species.GALAR_PONYTA]: Abilities.MAGIC_GUARD,
+ [Species.GALAR_PONYTA]: Abilities.PIXILATE,
[Species.GALAR_SLOWPOKE]: Abilities.POISON_TOUCH,
[Species.GALAR_FARFETCHD]: Abilities.SUPER_LUCK,
[Species.GALAR_ARTICUNO]: Abilities.SERENE_GRACE,
[Species.GALAR_ZAPDOS]: Abilities.TOUGH_CLAWS,
- [Species.GALAR_MOLTRES]: Abilities.REGENERATOR,
+ [Species.GALAR_MOLTRES]: Abilities.DARK_AURA,
[Species.GALAR_CORSOLA]: Abilities.SHADOW_TAG,
[Species.GALAR_ZIGZAGOON]: Abilities.PICKPOCKET,
[Species.GALAR_DARUMAKA]: Abilities.FLASH_FIRE,
diff --git a/src/data/splash-messages.ts b/src/data/splash-messages.ts
index 11629cf05d7..198ff07cec9 100644
--- a/src/data/splash-messages.ts
+++ b/src/data/splash-messages.ts
@@ -33,6 +33,5 @@ splashMessages.push(...[
'Also Try Emerald Rogue!',
'Also Try Radical Red!',
'Eevee Expo!',
- 'YNOproject!',
- 'Shh, don\'t tell Sam!'
+ 'YNOproject!'
]);
\ No newline at end of file
diff --git a/src/data/tms.ts b/src/data/tms.ts
index 71264d16c62..332eb2234b1 100644
--- a/src/data/tms.ts
+++ b/src/data/tms.ts
@@ -29550,7 +29550,6 @@ export const tmSpecies: TmSpecies = {
Species.MURKROW,
Species.SLOWKING,
Species.MISDREAVUS,
- Species.UNOWN,
Species.GIRAFARIG,
Species.PINECO,
Species.FORRETRESS,
@@ -62012,21 +62011,49 @@ export const tmSpecies: TmSpecies = {
Species.ALOLA_MAROWAK,
],
[Moves.TERA_BLAST]: [
+ Species.BULBASAUR,
+ Species.IVYSAUR,
+ Species.VENUSAUR,
Species.CHARMANDER,
Species.CHARMELEON,
Species.CHARIZARD,
+ Species.SQUIRTLE,
+ Species.WARTORTLE,
+ Species.BLASTOISE,
+ Species.BUTTERFREE,
+ Species.BEEDRILL,
+ Species.PIDGEY,
+ Species.PIDGEOTTO,
+ Species.PIDGEOT,
+ Species.RATTATA,
+ Species.RATICATE,
+ Species.SPEAROW,
+ Species.FEAROW,
Species.EKANS,
Species.ARBOK,
Species.PIKACHU,
Species.RAICHU,
Species.SANDSHREW,
Species.SANDSLASH,
+ Species.NIDORAN_F,
+ Species.NIDORINA,
+ Species.NIDOQUEEN,
+ Species.NIDORAN_M,
+ Species.NIDORINO,
+ Species.NIDOKING,
Species.CLEFAIRY,
Species.CLEFABLE,
Species.VULPIX,
Species.NINETALES,
Species.JIGGLYPUFF,
Species.WIGGLYTUFF,
+ Species.ZUBAT,
+ Species.GOLBAT,
+ Species.ODDISH,
+ Species.GLOOM,
+ Species.VILEPLUME,
+ Species.PARAS,
+ Species.PARASECT,
Species.VENONAT,
Species.VENOMOTH,
Species.DIGLETT,
@@ -62042,16 +62069,31 @@ export const tmSpecies: TmSpecies = {
Species.POLIWAG,
Species.POLIWHIRL,
Species.POLIWRATH,
+ Species.ABRA,
+ Species.KADABRA,
+ Species.ALAKAZAM,
+ Species.MACHOP,
+ Species.MACHOKE,
+ Species.MACHAMP,
Species.BELLSPROUT,
Species.WEEPINBELL,
Species.VICTREEBEL,
+ Species.TENTACOOL,
+ Species.TENTACRUEL,
Species.GEODUDE,
Species.GRAVELER,
Species.GOLEM,
+ Species.PONYTA,
+ Species.RAPIDASH,
Species.SLOWPOKE,
Species.SLOWBRO,
Species.MAGNEMITE,
Species.MAGNETON,
+ Species.FARFETCHD,
+ Species.DODUO,
+ Species.DODRIO,
+ Species.SEEL,
+ Species.DEWGONG,
Species.GRIMER,
Species.MUK,
Species.SHELLDER,
@@ -62059,20 +62101,52 @@ export const tmSpecies: TmSpecies = {
Species.GASTLY,
Species.HAUNTER,
Species.GENGAR,
+ Species.ONIX,
Species.DROWZEE,
Species.HYPNO,
+ Species.KRABBY,
+ Species.KINGLER,
Species.VOLTORB,
Species.ELECTRODE,
+ Species.EXEGGCUTE,
+ Species.EXEGGUTOR,
+ Species.CUBONE,
+ Species.MAROWAK,
+ Species.HITMONLEE,
+ Species.HITMONCHAN,
+ Species.LICKITUNG,
Species.KOFFING,
Species.WEEZING,
+ Species.RHYHORN,
+ Species.RHYDON,
Species.CHANSEY,
+ Species.TANGELA,
+ Species.KANGASKHAN,
+ Species.HORSEA,
+ Species.SEADRA,
+ Species.GOLDEEN,
+ Species.SEAKING,
+ Species.STARYU,
+ Species.STARMIE,
+ Species.MR_MIME,
Species.SCYTHER,
+ Species.JYNX,
+ Species.ELECTABUZZ,
+ Species.MAGMAR,
+ Species.PINSIR,
Species.TAUROS,
Species.GYARADOS,
+ Species.LAPRAS,
Species.EEVEE,
Species.VAPOREON,
Species.JOLTEON,
Species.FLAREON,
+ Species.PORYGON,
+ Species.OMANYTE,
+ Species.OMASTAR,
+ Species.KABUTO,
+ Species.KABUTOPS,
+ Species.AERODACTYL,
Species.SNORLAX,
Species.ARTICUNO,
Species.ZAPDOS,
@@ -62082,21 +62156,37 @@ export const tmSpecies: TmSpecies = {
Species.DRAGONITE,
Species.MEWTWO,
Species.MEW,
+ Species.CHIKORITA,
+ Species.BAYLEEF,
+ Species.MEGANIUM,
Species.CYNDAQUIL,
Species.QUILAVA,
Species.TYPHLOSION,
+ Species.TOTODILE,
+ Species.CROCONAW,
+ Species.FERALIGATR,
Species.SENTRET,
Species.FURRET,
Species.HOOTHOOT,
Species.NOCTOWL,
+ Species.LEDYBA,
+ Species.LEDIAN,
Species.SPINARAK,
Species.ARIADOS,
+ Species.CROBAT,
+ Species.CHINCHOU,
+ Species.LANTURN,
Species.PICHU,
Species.CLEFFA,
Species.IGGLYBUFF,
+ Species.TOGEPI,
+ Species.TOGETIC,
+ Species.NATU,
+ Species.XATU,
Species.MAREEP,
Species.FLAAFFY,
Species.AMPHAROS,
+ Species.BELLOSSOM,
Species.MARILL,
Species.AZUMARILL,
Species.SUDOWOODO,
@@ -62120,8 +62210,12 @@ export const tmSpecies: TmSpecies = {
Species.FORRETRESS,
Species.DUNSPARCE,
Species.GLIGAR,
+ Species.STEELIX,
+ Species.SNUBBULL,
+ Species.GRANBULL,
Species.QWILFISH,
Species.SCIZOR,
+ Species.SHUCKLE,
Species.HERACROSS,
Species.SNEASEL,
Species.TEDDIURSA,
@@ -62130,24 +62224,58 @@ export const tmSpecies: TmSpecies = {
Species.MAGCARGO,
Species.SWINUB,
Species.PILOSWINE,
+ Species.CORSOLA,
+ Species.REMORAID,
+ Species.OCTILLERY,
Species.DELIBIRD,
+ Species.MANTINE,
+ Species.SKARMORY,
Species.HOUNDOUR,
Species.HOUNDOOM,
+ Species.KINGDRA,
Species.PHANPY,
Species.DONPHAN,
+ Species.PORYGON2,
Species.STANTLER,
+ Species.TYROGUE,
+ Species.HITMONTOP,
+ Species.SMOOCHUM,
+ Species.ELEKID,
+ Species.MAGBY,
+ Species.MILTANK,
Species.BLISSEY,
+ Species.RAIKOU,
+ Species.ENTEI,
+ Species.SUICUNE,
Species.LARVITAR,
Species.PUPITAR,
Species.TYRANITAR,
+ Species.LUGIA,
+ Species.HO_OH,
+ Species.CELEBI,
+ Species.TREECKO,
+ Species.GROVYLE,
+ Species.SCEPTILE,
+ Species.TORCHIC,
+ Species.COMBUSKEN,
+ Species.BLAZIKEN,
+ Species.MUDKIP,
+ Species.MARSHTOMP,
+ Species.SWAMPERT,
Species.POOCHYENA,
Species.MIGHTYENA,
+ Species.ZIGZAGOON,
+ Species.LINOONE,
+ Species.BEAUTIFLY,
+ Species.DUSTOX,
Species.LOTAD,
Species.LOMBRE,
Species.LUDICOLO,
Species.SEEDOT,
Species.NUZLEAF,
Species.SHIFTRY,
+ Species.TAILLOW,
+ Species.SWELLOW,
Species.WINGULL,
Species.PELIPPER,
Species.RALTS,
@@ -62160,49 +62288,101 @@ export const tmSpecies: TmSpecies = {
Species.SLAKOTH,
Species.VIGOROTH,
Species.SLAKING,
+ Species.NINCADA,
+ Species.NINJASK,
+ Species.SHEDINJA,
+ Species.WHISMUR,
+ Species.LOUDRED,
+ Species.EXPLOUD,
Species.MAKUHITA,
Species.HARIYAMA,
Species.AZURILL,
Species.NOSEPASS,
+ Species.SKITTY,
+ Species.DELCATTY,
Species.SABLEYE,
+ Species.MAWILE,
+ Species.ARON,
+ Species.LAIRON,
+ Species.AGGRON,
Species.MEDITITE,
Species.MEDICHAM,
+ Species.ELECTRIKE,
+ Species.MANECTRIC,
+ Species.PLUSLE,
+ Species.MINUN,
Species.VOLBEAT,
Species.ILLUMISE,
+ Species.ROSELIA,
Species.GULPIN,
Species.SWALOT,
+ Species.CARVANHA,
+ Species.SHARPEDO,
+ Species.WAILMER,
+ Species.WAILORD,
Species.NUMEL,
Species.CAMERUPT,
Species.TORKOAL,
Species.SPOINK,
Species.GRUMPIG,
+ Species.SPINDA,
+ Species.TRAPINCH,
+ Species.VIBRAVA,
+ Species.FLYGON,
Species.CACNEA,
Species.CACTURNE,
Species.SWABLU,
Species.ALTARIA,
Species.ZANGOOSE,
Species.SEVIPER,
+ Species.LUNATONE,
+ Species.SOLROCK,
Species.BARBOACH,
Species.WHISCASH,
Species.CORPHISH,
Species.CRAWDAUNT,
+ Species.BALTOY,
+ Species.CLAYDOL,
+ Species.LILEEP,
+ Species.CRADILY,
+ Species.ANORITH,
+ Species.ARMALDO,
Species.FEEBAS,
Species.MILOTIC,
+ Species.CASTFORM,
+ Species.KECLEON,
Species.SHUPPET,
Species.BANETTE,
Species.DUSKULL,
Species.DUSCLOPS,
Species.TROPIUS,
Species.CHIMECHO,
+ Species.ABSOL,
Species.SNORUNT,
Species.GLALIE,
+ Species.SPHEAL,
+ Species.SEALEO,
+ Species.WALREIN,
+ Species.CLAMPERL,
+ Species.HUNTAIL,
+ Species.GOREBYSS,
+ Species.RELICANTH,
Species.LUVDISC,
Species.BAGON,
Species.SHELGON,
Species.SALAMENCE,
+ Species.METANG,
+ Species.METAGROSS,
+ Species.REGIROCK,
+ Species.REGICE,
+ Species.REGISTEEL,
+ Species.LATIAS,
+ Species.LATIOS,
Species.KYOGRE,
Species.GROUDON,
Species.RAYQUAZA,
+ Species.JIRACHI,
+ Species.DEOXYS,
Species.TURTWIG,
Species.GROTLE,
Species.TORTERRA,
@@ -62215,30 +62395,49 @@ export const tmSpecies: TmSpecies = {
Species.STARLY,
Species.STARAVIA,
Species.STARAPTOR,
+ Species.BIDOOF,
+ Species.BIBAREL,
Species.KRICKETOT,
Species.KRICKETUNE,
Species.SHINX,
Species.LUXIO,
Species.LUXRAY,
+ Species.BUDEW,
+ Species.ROSERADE,
+ Species.CRANIDOS,
+ Species.RAMPARDOS,
+ Species.SHIELDON,
+ Species.BASTIODON,
+ Species.BURMY,
+ Species.WORMADAM,
+ Species.MOTHIM,
Species.COMBEE,
Species.VESPIQUEN,
Species.PACHIRISU,
Species.BUIZEL,
Species.FLOATZEL,
+ Species.CHERUBI,
+ Species.CHERRIM,
Species.SHELLOS,
Species.GASTRODON,
Species.AMBIPOM,
Species.DRIFLOON,
Species.DRIFBLIM,
+ Species.BUNEARY,
+ Species.LOPUNNY,
Species.MISMAGIUS,
Species.HONCHKROW,
+ Species.GLAMEOW,
+ Species.PURUGLY,
Species.CHINGLING,
Species.STUNKY,
Species.SKUNTANK,
Species.BRONZOR,
Species.BRONZONG,
Species.BONSLY,
+ Species.MIME_JR,
Species.HAPPINY,
+ Species.CHATOT,
Species.SPIRITOMB,
Species.GIBLE,
Species.GABITE,
@@ -62248,19 +62447,30 @@ export const tmSpecies: TmSpecies = {
Species.LUCARIO,
Species.HIPPOPOTAS,
Species.HIPPOWDON,
+ Species.SKORUPI,
+ Species.DRAPION,
Species.CROAGUNK,
Species.TOXICROAK,
+ Species.CARNIVINE,
Species.FINNEON,
Species.LUMINEON,
+ Species.MANTYKE,
Species.SNOVER,
Species.ABOMASNOW,
Species.WEAVILE,
Species.MAGNEZONE,
+ Species.LICKILICKY,
+ Species.RHYPERIOR,
+ Species.TANGROWTH,
+ Species.ELECTIVIRE,
+ Species.MAGMORTAR,
+ Species.TOGEKISS,
Species.YANMEGA,
Species.LEAFEON,
Species.GLACEON,
Species.GLISCOR,
Species.MAMOSWINE,
+ Species.PORYGON_Z,
Species.GALLADE,
Species.PROBOPASS,
Species.DUSKNOIR,
@@ -62272,39 +62482,127 @@ export const tmSpecies: TmSpecies = {
Species.DIALGA,
Species.PALKIA,
Species.HEATRAN,
+ Species.REGIGIGAS,
Species.GIRATINA,
Species.CRESSELIA,
+ Species.PHIONE,
+ Species.MANAPHY,
+ Species.DARKRAI,
+ Species.SHAYMIN,
Species.ARCEUS,
+ Species.VICTINI,
+ Species.SNIVY,
+ Species.SERVINE,
+ Species.SERPERIOR,
+ Species.TEPIG,
+ Species.PIGNITE,
+ Species.EMBOAR,
Species.OSHAWOTT,
Species.DEWOTT,
Species.SAMUROTT,
+ Species.PATRAT,
+ Species.WATCHOG,
+ Species.LILLIPUP,
+ Species.HERDIER,
+ Species.STOUTLAND,
+ Species.PURRLOIN,
+ Species.LIEPARD,
+ Species.PANSAGE,
+ Species.SIMISAGE,
+ Species.PANSEAR,
+ Species.SIMISEAR,
+ Species.PANPOUR,
+ Species.SIMIPOUR,
+ Species.MUNNA,
+ Species.MUSHARNA,
+ Species.PIDOVE,
+ Species.TRANQUILL,
+ Species.UNFEZANT,
+ Species.BLITZLE,
+ Species.ZEBSTRIKA,
+ Species.ROGGENROLA,
+ Species.BOLDORE,
+ Species.GIGALITH,
+ Species.WOOBAT,
+ Species.SWOOBAT,
+ Species.DRILBUR,
+ Species.EXCADRILL,
+ Species.AUDINO,
Species.TIMBURR,
Species.GURDURR,
Species.CONKELDURR,
+ Species.TYMPOLE,
+ Species.PALPITOAD,
+ Species.SEISMITOAD,
+ Species.THROH,
+ Species.SAWK,
Species.SEWADDLE,
Species.SWADLOON,
Species.LEAVANNY,
+ Species.VENIPEDE,
+ Species.WHIRLIPEDE,
+ Species.SCOLIPEDE,
+ Species.COTTONEE,
+ Species.WHIMSICOTT,
Species.PETILIL,
Species.LILLIGANT,
Species.BASCULIN,
Species.SANDILE,
Species.KROKOROK,
Species.KROOKODILE,
+ Species.DARUMAKA,
+ Species.DARMANITAN,
+ Species.MARACTUS,
+ Species.DWEBBLE,
+ Species.CRUSTLE,
+ Species.SCRAGGY,
+ Species.SCRAFTY,
+ Species.SIGILYPH,
+ Species.YAMASK,
+ Species.COFAGRIGUS,
+ Species.TIRTOUGA,
+ Species.CARRACOSTA,
+ Species.ARCHEN,
+ Species.ARCHEOPS,
+ Species.TRUBBISH,
+ Species.GARBODOR,
Species.ZORUA,
Species.ZOROARK,
+ Species.MINCCINO,
+ Species.CINCCINO,
Species.GOTHITA,
Species.GOTHORITA,
Species.GOTHITELLE,
+ Species.SOLOSIS,
+ Species.DUOSION,
+ Species.REUNICLUS,
Species.DUCKLETT,
Species.SWANNA,
+ Species.VANILLITE,
+ Species.VANILLISH,
+ Species.VANILLUXE,
Species.DEERLING,
Species.SAWSBUCK,
+ Species.EMOLGA,
+ Species.KARRABLAST,
+ Species.ESCAVALIER,
Species.FOONGUS,
Species.AMOONGUSS,
+ Species.FRILLISH,
+ Species.JELLICENT,
Species.ALOMOMOLA,
+ Species.JOLTIK,
+ Species.GALVANTULA,
+ Species.FERROSEED,
+ Species.FERROTHORN,
+ Species.KLINK,
+ Species.KLANG,
+ Species.KLINKLANG,
Species.TYNAMO,
Species.EELEKTRIK,
Species.EELEKTROSS,
+ Species.ELGYEM,
+ Species.BEHEEYEM,
Species.LITWICK,
Species.LAMPENT,
Species.CHANDELURE,
@@ -62314,23 +62612,40 @@ export const tmSpecies: TmSpecies = {
Species.CUBCHOO,
Species.BEARTIC,
Species.CRYOGONAL,
+ Species.SHELMET,
+ Species.ACCELGOR,
+ Species.STUNFISK,
Species.MIENFOO,
Species.MIENSHAO,
+ Species.DRUDDIGON,
+ Species.GOLETT,
+ Species.GOLURK,
Species.PAWNIARD,
Species.BISHARP,
+ Species.BOUFFALANT,
Species.RUFFLET,
Species.BRAVIARY,
Species.VULLABY,
Species.MANDIBUZZ,
+ Species.HEATMOR,
+ Species.DURANT,
Species.DEINO,
Species.ZWEILOUS,
Species.HYDREIGON,
Species.LARVESTA,
Species.VOLCARONA,
+ Species.COBALION,
+ Species.TERRAKION,
+ Species.VIRIZION,
Species.TORNADUS,
Species.THUNDURUS,
+ Species.RESHIRAM,
+ Species.ZEKROM,
Species.LANDORUS,
+ Species.KYUREM,
+ Species.KELDEO,
Species.MELOETTA,
+ Species.GENESECT,
Species.CHESPIN,
Species.QUILLADIN,
Species.CHESNAUGHT,
@@ -62345,6 +62660,8 @@ export const tmSpecies: TmSpecies = {
'battle-bond',
'ash',
],
+ Species.BUNNELBY,
+ Species.DIGGERSBY,
Species.FLETCHLING,
Species.FLETCHINDER,
Species.TALONFLAME,
@@ -62354,14 +62671,43 @@ export const tmSpecies: TmSpecies = {
Species.LITLEO,
Species.PYROAR,
Species.FLABEBE,
- Species.FLOETTE,
+ [
+ Species.FLOETTE,
+ 'red',
+ 'yellow',
+ 'orange',
+ 'blue',
+ 'white',
+ ],
Species.FLORGES,
Species.SKIDDO,
Species.GOGOAT,
+ Species.PANCHAM,
+ Species.PANGORO,
+ Species.FURFROU,
+ Species.ESPURR,
+ Species.MEOWSTIC,
+ Species.HONEDGE,
+ Species.DOUBLADE,
+ Species.AEGISLASH,
+ Species.SPRITZEE,
+ Species.AROMATISSE,
+ Species.SWIRLIX,
+ Species.SLURPUFF,
+ Species.INKAY,
+ Species.MALAMAR,
+ Species.BINACLE,
+ Species.BARBARACLE,
Species.SKRELP,
Species.DRAGALGE,
Species.CLAUNCHER,
Species.CLAWITZER,
+ Species.HELIOPTILE,
+ Species.HELIOLISK,
+ Species.TYRUNT,
+ Species.TYRANTRUM,
+ Species.AMAURA,
+ Species.AURORUS,
Species.SYLVEON,
Species.HAWLUCHA,
Species.DEDENNE,
@@ -62372,16 +62718,30 @@ export const tmSpecies: TmSpecies = {
Species.KLEFKI,
Species.PHANTUMP,
Species.TREVENANT,
+ Species.PUMPKABOO,
+ Species.GOURGEIST,
Species.BERGMITE,
Species.AVALUGG,
Species.NOIBAT,
Species.NOIVERN,
+ Species.XERNEAS,
+ Species.YVELTAL,
+ Species.ZYGARDE,
Species.DIANCIE,
Species.HOOPA,
Species.VOLCANION,
Species.ROWLET,
Species.DARTRIX,
Species.DECIDUEYE,
+ Species.LITTEN,
+ Species.TORRACAT,
+ Species.INCINEROAR,
+ Species.POPPLIO,
+ Species.BRIONNE,
+ Species.PRIMARINA,
+ Species.PIKIPEK,
+ Species.TRUMBEAK,
+ Species.TOUCANNON,
Species.YUNGOOS,
Species.GUMSHOOS,
Species.GRUBBIN,
@@ -62394,28 +62754,84 @@ export const tmSpecies: TmSpecies = {
Species.RIBOMBEE,
Species.ROCKRUFF,
Species.LYCANROC,
+ Species.WISHIWASHI,
Species.MAREANIE,
Species.TOXAPEX,
Species.MUDBRAY,
Species.MUDSDALE,
+ Species.DEWPIDER,
+ Species.ARAQUANID,
Species.FOMANTIS,
Species.LURANTIS,
+ Species.MORELULL,
+ Species.SHIINOTIC,
Species.SALANDIT,
Species.SALAZZLE,
+ Species.STUFFUL,
+ Species.BEWEAR,
Species.BOUNSWEET,
Species.STEENEE,
Species.TSAREENA,
+ Species.COMFEY,
Species.ORANGURU,
Species.PASSIMIAN,
+ Species.WIMPOD,
+ Species.GOLISOPOD,
Species.SANDYGAST,
Species.PALOSSAND,
+ Species.TYPE_NULL,
+ Species.SILVALLY,
+ Species.MINIOR,
Species.KOMALA,
+ Species.TURTONATOR,
+ Species.TOGEDEMARU,
Species.MIMIKYU,
Species.BRUXISH,
+ Species.DRAMPA,
+ Species.DHELMISE,
Species.JANGMO_O,
Species.HAKAMO_O,
Species.KOMMO_O,
+ Species.TAPU_KOKO,
+ Species.TAPU_LELE,
+ Species.TAPU_BULU,
+ Species.TAPU_FINI,
+ Species.SOLGALEO,
+ Species.LUNALA,
+ Species.NIHILEGO,
+ Species.BUZZWOLE,
+ Species.PHEROMOSA,
+ Species.XURKITREE,
+ Species.CELESTEELA,
+ Species.KARTANA,
+ Species.GUZZLORD,
+ Species.NECROZMA,
Species.MAGEARNA,
+ Species.MARSHADOW,
+ Species.POIPOLE,
+ Species.NAGANADEL,
+ Species.STAKATAKA,
+ Species.BLACEPHALON,
+ Species.ZERAORA,
+ Species.ALOLA_RATTATA,
+ Species.ALOLA_RATICATE,
+ Species.ALOLA_RAICHU,
+ Species.ALOLA_SANDSHREW,
+ Species.ALOLA_SANDSLASH,
+ Species.ALOLA_VULPIX,
+ Species.ALOLA_NINETALES,
+ Species.ALOLA_DIGLETT,
+ Species.ALOLA_DUGTRIO,
+ Species.ALOLA_MEOWTH,
+ Species.ALOLA_PERSIAN,
+ Species.ALOLA_GEODUDE,
+ Species.ALOLA_GRAVELER,
+ Species.ALOLA_GOLEM,
+ Species.ALOLA_GRIMER,
+ Species.ALOLA_MUK,
+ Species.ALOLA_EXEGGUTOR,
+ Species.ALOLA_MAROWAK,
+ Species.ETERNAL_FLOETTE,
Species.GROOKEY,
Species.THWACKEY,
Species.RILLABOOM,
@@ -62596,21 +63012,6 @@ export const tmSpecies: TmSpecies = {
Species.MUNKIDORI,
Species.FEZANDIPITI,
Species.OGERPON,
- Species.ALOLA_RAICHU,
- Species.ALOLA_SANDSHREW,
- Species.ALOLA_SANDSLASH,
- Species.ALOLA_VULPIX,
- Species.ALOLA_NINETALES,
- Species.ALOLA_DIGLETT,
- Species.ALOLA_DUGTRIO,
- Species.ALOLA_MEOWTH,
- Species.ALOLA_PERSIAN,
- Species.ALOLA_GEODUDE,
- Species.ALOLA_GRAVELER,
- Species.ALOLA_GOLEM,
- Species.ALOLA_GRIMER,
- Species.ALOLA_MUK,
- Species.ETERNAL_FLOETTE,
Species.GALAR_MEOWTH,
Species.GALAR_SLOWPOKE,
Species.GALAR_SLOWBRO,
diff --git a/src/data/trainer-names.ts b/src/data/trainer-names.ts
index a1c83af0779..348976eae92 100644
--- a/src/data/trainer-names.ts
+++ b/src/data/trainer-names.ts
@@ -97,7 +97,7 @@ export const trainerNamePools = {
[TrainerType.MAID]: ["Belinda","Sophie","Emily","Elena","Clare","Alica","Tanya","Tammy"],
[TrainerType.MUSICIAN]: ["Boris","Preston","Charles","Clyde","Vincent","Dalton","Kirk","Shawn","Fabian","Fernando","Joseph","Marcos","Arturo","Jerry","Lonnie","Tony"],
[TrainerType.NURSERY_AIDE]: ["Autumn","Briana","Leah","Miho","Ethel","Hollie","Ilse","June","Kimya","Rosalyn"],
- [TrainerType.OFFICER]: ["Dirk","Keith","Alex","Bobby","Caleb","Danny","Dylan","Thomas","Daniel","Jeff","Braven","Dell","Neagle","Haruki","Mitchell","Sheriff","Raymond"],
+ [TrainerType.OFFICER]: ["Dirk","Keith","Alex","Bobby","Caleb","Danny","Dylan","Thomas","Daniel","Jeff","Braven","Dell","Neagle","Haruki","Mitchell","Raymond"],
[TrainerType.PARASOL_LADY]: ["Angelica","Clarissa","Madeline","Akari","Annabell","Kayley","Rachel","Alexa","Sabrina","April","Gwyneth","Laura","Lumi","Mariah","Melita","Nicole","Tihana","Ingrid","Tyra"],
[TrainerType.PILOT]: ["Chase","Leonard","Ted","Elron","Ewing","Flynn","Winslow"],
[TrainerType.POKEFAN]: [["Alex","Allan","Brandon","Carter","Colin","Derek","Jeremy","Joshua","Rex","Robert","Trevor","William","Colton","Miguel","Francisco","Kaleb","Leonard","Boone","Elliot","Jude","Norbert","Corey","Gabe","Baxter"],["Beverly","Georgia","Jaime","Ruth","Isabel","Marissa","Vanessa","Annika","Bethany","Kimberly","Meredith","Rebekah","Eleanor","Darcy","Lydia","Sachiko","Abigail","Agnes","Lydie","Roisin","Tara","Carmen","Janet"]],
@@ -106,7 +106,7 @@ export const trainerNamePools = {
[TrainerType.RANGER]: [["Carlos","Jackson","Sebastian","Gav","Lorenzo","Logan","Nicolas","Trenton","Deshawn","Dwayne","Jeffery","Kyler","Taylor","Alain","Claude","Crofton","Forrest","Harry","Jaden","Keith","Lewis","Miguel","Pedro","Ralph","Richard","Bret","Daryl","Eddie","Johan","Leaf","Louis","Maxwell","Parker","Rick","Steve","Bjorn","Chaise","Dean","Lee","Maurice","Nash","Ralf","Reed","Shinobu","Silas"],["Catherine","Jenna","Sophia","Merdith","Nora","Beth","Chelsea","Katelyn","Madeline","Allison","Ashlee","Felicia","Krista","Annie","Audra","Brenda","Chloris","Eliza","Heidi","Irene","Mary","Mylene","Shanti","Shelly","Thalia","Anja","Briana","Dianna","Elaine","Elle","Hillary","Katie","Lena","Lois","Malory","Melita","Mikiko","Naoko","Serenity","Ambre","Brooke","Clementine","Melina","Petra","Twiggy"]],
[TrainerType.RICH]: [["Alfred","Edward","Gregory","Preston","Thomas","Tucker","Walter","Clifford","Everett","Micah","Nate","Pierre","Terrance","Arthur","Brooks","Emanuel","Lamar","Jeremy","Leonardo","Milton","Frederic","Renaud","Robert","Yan","Daniel","Sheldon","Stonewall","Gerald","Ronald","Smith","Stanley","Reginald","Orson","Wilco","Caden","Glenn"],["Rebecca","Reina","Cassandra","Emilia","Grace","Marian","Elizabeth","Kathleen","Sayuri","Caroline","Judy"]],
[TrainerType.RICH_KID]: [["Garret","Winston","Dawson","Enrique","Jason","Roman","Trey","Liam","Anthony","Brad","Cody","Manuel","Martin","Pierce","Rolan","Keenan","Filbert","Antoin","Cyus","Diek","Dugo","Flitz","Jurek","Lond","Perd","Quint","Basto","Benit","Brot","Denc","Guyit","Marcon","Perc","Puros","Roex","Sainz","Symin","Tark","Venak"],["Anette","Brianna","Cindy","Colleen","Daphne","Elizabeth","Naomi","Sarah","Charlotte","Gillian","Jacki","Lady","Melissa","Celeste","Colette","Elizandra","Isabel","Lynette","Magnolia","Sophie","Lina","Dulcie","Auro","Brin","Caril","Eloos","Gwin","Illa","Kowly","Rima","Ristin","Vesey","Brena","Deasy","Denslon","Kylet","Nemi","Rene","Sanol","Stouner","Sturk","Talmen","Zoila"]],
- [TrainerType.ROUGHNECK]: ["Camron","Corey","Gabriel","Isaiah","Jamal","Koji","Luke","Paxton","Raul","Zeek","Kirby","Chance","Dave","Fletcher","Johnny","Reese","Joey","Roughneck","Ricky","Silvester","Martin"],
+ [TrainerType.ROUGHNECK]: ["Camron","Corey","Gabriel","Isaiah","Jamal","Koji","Luke","Paxton","Raul","Zeek","Kirby","Chance","Dave","Fletcher","Johnny","Reese","Joey","Ricky","Silvester","Martin"],
[TrainerType.SCIENTIST]: [["Jed","Marc","Mitch","Rich","Ross","Beau","Braydon","Connor","Ed","Ivan","Jerry","Jose","Joshua","Parker","Rodney","Taylor","Ted","Travis","Zackery","Darrius","Emilio","Fredrick","Shaun","Stefano","Travon","Daniel","Garett","Gregg","Linden","Lowell","Trenton","Dudley","Luke","Markus","Nathan","Orville","Randall","Ron","Ronald","Simon","Steve","William","Franklin","Clarke","Jacques","Terrance","Ernst","Justus","Ikaika","Jayson","Kyle","Reid","Tyrone","Adam","Albert","Alphonse","Cory","Donnie","Elton","Francis","Gordon","Herbert","Humphrey","Jordan","Julian","Keaton","Levi","Melvin","Murray","West","Craig","Coren","Dubik","Kotan","Lethco","Mante","Mort","Myron","Odlow","Ribek","Roeck","Vogi","Vonder","Zogo","Doimo","Doton","Durel","Hildon","Kukla","Messa","Nanot","Platen","Raburn","Reman","Acrod","Coffy","Elrok","Foss","Hardig","Hombol","Hospel","Kaller","Klots","Krilok","Limar","Loket","Mesak","Morbit","Newin","Orill","Tabor","Tekot"],["Blythe","Chan","Kathrine","Marie","Maria","Naoko","Samantha","Satomi","Shannon","Athena","Caroline","Lumi","Lumina","Marissa","Sonia"]],
[TrainerType.SMASHER]: ["Aspen","Elena","Mari","Amy","Lizzy"],
[TrainerType.SNOW_WORKER]: [["Braden","Brendon","Colin","Conrad","Dillan","Gary","Gerardo","Holden","Jackson","Mason","Quentin","Willy","Noel","Arnold","Brady","Brand","Cairn","Cliff","Don","Eddie","Felix","Filipe","Glenn","Gus","Heath","Matthew","Patton","Rich","Rob","Ryan","Scott","Shelby","Sterling","Tyler","Victor","Zack","Friedrich","Herman","Isaac","Leo","Maynard","Mitchell","Morgann","Nathan","Niel","Pasqual","Paul","Tavarius","Tibor","Dimitri","Narek","Yusif","Frank","Jeff","Vaclav","Ovid","Francis","Keith","Russel","Sangon","Toway","Bomber","Chean","Demit","Hubor","Kebile","Laber","Ordo","Retay","Ronix","Wagel","Dobit","Kaster","Lobel","Releo","Saken","Rustix"],["Georgia","Sandra","Yvonne"]],
diff --git a/src/field/arena.ts b/src/field/arena.ts
index 910d998d68e..5b14560d407 100644
--- a/src/field/arena.ts
+++ b/src/field/arena.ts
@@ -18,8 +18,7 @@ import { TimeOfDay } from "../data/enums/time-of-day";
import { Terrain, TerrainType } from "../data/terrain";
import { PostTerrainChangeAbAttr, PostWeatherChangeAbAttr, applyPostTerrainChangeAbAttrs, applyPostWeatherChangeAbAttrs } from "../data/ability";
import Pokemon from "./pokemon";
-
-const WEATHER_OVERRIDE = WeatherType.NONE;
+import { WEATHER_OVERRIDE } from '../overrides';
export class Arena {
public scene: BattleScene;
diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts
index d834ffb35b0..27728680c5f 100644
--- a/src/field/pokemon.ts
+++ b/src/field/pokemon.ts
@@ -1,16 +1,16 @@
import Phaser from 'phaser';
-import BattleScene, { ABILITY_OVERRIDE, AnySound, MOVE_OVERRIDE, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE } from '../battle-scene';
+import BattleScene, { AnySound } from '../battle-scene';
import { Variant, VariantSet, variantColorCache } from '#app/data/variant';
import { variantData } from '#app/data/variant';
import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from '../ui/battle-info';
import { Moves } from "../data/enums/moves";
-import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr } from "../data/move";
-import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, starterPassiveAbilities } from '../data/pokemon-species';
+import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr, CounterDamageAttr } from "../data/move";
+import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from '../data/pokemon-species';
import * as Utils from '../utils';
import { Type, TypeDamageMultiplier, getTypeDamageMultiplier, getTypeRgb } from '../data/type';
import { getLevelTotalExp } from '../data/exp';
import { Stat } from '../data/pokemon-stat';
-import { AttackTypeBoosterModifier, DamageMoneyRewardModifier, EnemyDamageBoosterModifier, EnemyDamageReducerModifier, EnemyEndureChanceModifier, EnemyFusionChanceModifier, HiddenAbilityRateBoosterModifier, PokemonBaseStatModifier, PokemonHeldItemModifier, PokemonMultiHitModifier, PokemonNatureWeightModifier, ShinyRateBoosterModifier, SurviveDamageModifier, TempBattleStatBoosterModifier, TerastallizeModifier } from '../modifier/modifier';
+import { AttackTypeBoosterModifier, DamageMoneyRewardModifier, EnemyDamageBoosterModifier, EnemyDamageReducerModifier, EnemyEndureChanceModifier, EnemyFusionChanceModifier, HiddenAbilityRateBoosterModifier, PokemonBaseStatModifier, PokemonFriendshipBoosterModifier, PokemonHeldItemModifier, PokemonMultiHitModifier, PokemonNatureWeightModifier, ShinyRateBoosterModifier, SurviveDamageModifier, TempBattleStatBoosterModifier, TerastallizeModifier } from '../modifier/modifier';
import { PokeballType } from '../data/pokeball';
import { Gender } from '../data/gender';
import { initMoveAnim, loadMoveAnimAssets } from '../data/battle-anims';
@@ -27,7 +27,7 @@ import { TempBattleStat } from '../data/temp-battle-stat';
import { ArenaTagSide, WeakenMoveScreenTag, WeakenMoveTypeTag } from '../data/arena-tag';
import { ArenaTagType } from "../data/enums/arena-tag-type";
import { Biome } from "../data/enums/biome";
-import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr } from '../data/ability';
+import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr } from '../data/ability';
import { Abilities } from "#app/data/enums/abilities";
import PokemonData from '../system/pokemon-data';
import Battle, { BattlerIndex } from '../battle';
@@ -37,12 +37,15 @@ import PartyUiHandler, { PartyOption, PartyUiMode } from '../ui/party-ui-handler
import SoundFade from 'phaser3-rex-plugins/plugins/soundfade';
import { LevelMoves } from '../data/pokemon-level-moves';
import { DamageAchv, achvs } from '../system/achv';
-import { DexAttr, StarterMoveset } from '../system/game-data';
+import { DexAttr, StarterDataEntry, StarterMoveset } from '../system/game-data';
import { QuantizerCelebi, argbFromRgba, rgbaFromArgb } from '@material/material-color-utilities';
import { Nature, getNatureStatMultiplier } from '../data/nature';
import { SpeciesFormChange, SpeciesFormChangeActiveTrigger, SpeciesFormChangeMoveLearnedTrigger, SpeciesFormChangePostMoveTrigger, SpeciesFormChangeStatusEffectTrigger } from '../data/pokemon-forms';
import { TerrainType } from '../data/terrain';
import { TrainerSlot } from '../data/trainer-config';
+import { BerryType } from '../data/berry';
+import { ABILITY_OVERRIDE, MOVE_OVERRIDE, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE, OPP_SHINY_OVERRIDE, OPP_VARIANT_OVERRIDE } from '../overrides';
+import i18next from '../plugins/i18n';
export enum FieldPosition {
CENTER,
@@ -454,6 +457,12 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
return 1;
}
+ getHeldItems(): PokemonHeldItemModifier[] {
+ if (!this.scene)
+ return [];
+ return this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier && (m as PokemonHeldItemModifier).pokemonId === this.id, this.isPlayer()) as PokemonHeldItemModifier[];
+ }
+
updateScale(): void {
this.setScale(this.getSpriteScale());
}
@@ -580,6 +589,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
ret *= 1.5;
break;
case Stat.SPD:
+ // Check both the player and enemy to see if Tailwind should be multiplying the speed of the Pokemon
+ if ((this.isPlayer() && this.scene.arena.getTagOnSide(ArenaTagType.TAILWIND, ArenaTagSide.PLAYER))
+ || (!this.isPlayer() && this.scene.arena.getTagOnSide(ArenaTagType.TAILWIND, ArenaTagSide.ENEMY)))
+ ret *= 2;
+
if (this.getTag(BattlerTagType.SLOW_START))
ret >>= 1;
if (this.status && this.status.effect === StatusEffect.PARALYSIS)
@@ -657,7 +671,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
getHpRatio(precise: boolean = false): number {
return precise
? this.hp / this.getMaxHp()
- : ((this.hp / this.getMaxHp()) * 100) / 100;
+ : Math.round((this.hp / this.getMaxHp()) * 100) / 100;
}
generateGender(): void {
@@ -997,11 +1011,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
let shinyThreshold = new Utils.IntegerHolder(32);
if (thresholdOverride === undefined) {
- if (!this.hasTrainer()) {
- if (new Date() < new Date('4/29/2024'))
- shinyThreshold.value *= 2;
+ if (!this.hasTrainer())
this.scene.applyModifiers(ShinyRateBoosterModifier, true, shinyThreshold);
- }
} else
shinyThreshold.value = thresholdOverride;
@@ -1181,6 +1192,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
return this.battleInfo.updateInfo(this, instant);
}
+ toggleStats(visible: boolean): void {
+ this.battleInfo.toggleStats(visible);
+ }
+
addExp(exp: integer) {
const maxExpLevel = this.scene.getMaxExpLevel();
const initialExp = this.exp;
@@ -1317,7 +1332,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
}
const sourceAtk = new Utils.IntegerHolder(source.getBattleStat(isPhysical ? Stat.ATK : Stat.SPATK, this, null, isCritical));
const targetDef = new Utils.IntegerHolder(this.getBattleStat(isPhysical ? Stat.DEF : Stat.SPDEF, source, move, isCritical));
- const criticalMultiplier = isCritical ? 1.5 : 1;
+ const criticalMultiplier = new Utils.NumberHolder(isCritical ? 1.5 : 1);
+ applyAbAttrs(MultCritAbAttr, source, null, criticalMultiplier);
const screenMultiplier = new Utils.NumberHolder(1);
if (!isCritical) {
this.scene.arena.applyTagsForSide(WeakenMoveScreenTag, this.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY, move.category, this.scene.currentBattle.double, screenMultiplier);
@@ -1340,7 +1356,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
applyMoveAttrs(VariableDefAttr, source, this, move, targetDef);
if (!isTypeImmune) {
- damage.value = Math.ceil(((((2 * source.level / 5 + 2) * power.value * sourceAtk.value / targetDef.value) / 50) + 2) * stabMultiplier.value * typeMultiplier.value * arenaAttackTypeMultiplier * screenMultiplier.value * ((this.scene.randBattleSeedInt(15) + 85) / 100) * criticalMultiplier);
+ damage.value = Math.ceil(((((2 * source.level / 5 + 2) * power.value * sourceAtk.value / targetDef.value) / 50) + 2) * stabMultiplier.value * typeMultiplier.value * arenaAttackTypeMultiplier * screenMultiplier.value * ((this.scene.randBattleSeedInt(15) + 85) / 100) * criticalMultiplier.value);
if (isPhysical && source.status && source.status.effect === StatusEffect.BURN) {
const burnDamageReductionCancelled = new Utils.BooleanHolder(false);
applyAbAttrs(BypassBurnDamageReductionAbAttr, source, burnDamageReductionCancelled);
@@ -1408,7 +1424,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
damage.value = this.damageAndUpdate(damage.value, result as DamageResult, isCritical, oneHitKo, oneHitKo);
this.turnData.damageTaken += damage.value;
if (isCritical)
- this.scene.queueMessage('A critical hit!');
+ this.scene.queueMessage(i18next.t('battle:hitResultCriticalHit'));
this.scene.setPhaseQueueSplice();
if (source.isPlayer()) {
this.scene.validateAchvs(DamageAchv, damage);
@@ -1426,16 +1442,16 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
if (source.turnData.hitsLeft === 1) {
switch (result) {
case HitResult.SUPER_EFFECTIVE:
- this.scene.queueMessage('It\'s super effective!');
+ this.scene.queueMessage(i18next.t('battle:hitResultSuperEffective'));
break;
case HitResult.NOT_VERY_EFFECTIVE:
- this.scene.queueMessage('It\'s not very effective…');
+ this.scene.queueMessage(i18next.t('battle:hitResultNotVeryEffective'));
break;
case HitResult.NO_EFFECT:
- this.scene.queueMessage(`It doesn\'t affect ${this.name}!`);
+ this.scene.queueMessage(i18next.t('battle:hitResultNoEffect', { pokemonName: this.name }));
break;
case HitResult.ONE_HIT_KO:
- this.scene.queueMessage('It\'s a one-hit KO!');
+ this.scene.queueMessage(i18next.t('battle:hitResultOneHitKO'));
break;
}
}
@@ -1452,7 +1468,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
defendingSidePlayField.forEach((p) => applyPreDefendAbAttrs(FieldPriorityMoveImmunityAbAttr, p, source, battlerMove, cancelled, typeMultiplier));
}
if (!typeMultiplier.value)
- this.scene.queueMessage(`It doesn\'t affect ${this.name}!`);
+ this.scene.queueMessage(i18next.t('battle:hitResultNoEffect', { pokemonName: this.name }));
result = cancelled.value || !typeMultiplier.value ? HitResult.NO_EFFECT : HitResult.STATUS;
break;
}
@@ -1622,6 +1638,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
this.summonData.tags.push(tag);
if (this instanceof PlayerPokemon && source.summonData.battleStats.find(bs => bs === 6))
this.scene.validateAchv(achvs.TRANSFER_MAX_BATTLE_STAT);
+ this.updateInfo();
}
getMoveHistory(): TurnMove[] {
@@ -1922,6 +1939,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
}
this.summonDataPrimer = null;
}
+ this.updateInfo();
}
resetBattleData(): void {
@@ -2350,6 +2368,37 @@ export class PlayerPokemon extends Pokemon {
}, PartyUiHandler.FilterNonFainted);
});
}
+
+ addFriendship(friendship: integer): void {
+ const starterSpeciesId = this.species.getRootSpeciesId();
+ const fusionStarterSpeciesId = this.isFusion() ? this.fusionSpecies.getRootSpeciesId() : 0;
+ const starterData = [
+ this.scene.gameData.starterData[starterSpeciesId],
+ fusionStarterSpeciesId ? this.scene.gameData.starterData[fusionStarterSpeciesId] : null
+ ].filter(d => d);
+ const amount = new Utils.IntegerHolder(friendship);
+ const starterAmount = new Utils.IntegerHolder(Math.floor(friendship * (this.scene.gameMode.isClassic ? 2 : 1) / (fusionStarterSpeciesId ? 2 : 1)));
+ if (amount.value > 0) {
+ this.scene.applyModifier(PokemonFriendshipBoosterModifier, true, this, amount);
+ this.scene.applyModifier(PokemonFriendshipBoosterModifier, true, this, starterAmount);
+
+ this.friendship = Math.min(this.friendship + amount.value, 255);
+ if (this.friendship === 255)
+ this.scene.validateAchv(achvs.MAX_FRIENDSHIP);
+ starterData.forEach((sd: StarterDataEntry, i: integer) => {
+ const speciesId = !i ? starterSpeciesId : fusionStarterSpeciesId as Species;
+ sd.friendship = (sd.friendship || 0) + starterAmount.value;
+ if (sd.friendship >= getStarterValueFriendshipCap(speciesStarters[speciesId])) {
+ this.scene.gameData.addStarterCandy(getPokemonSpecies(speciesId), 1);
+ sd.friendship = 0;
+ }
+ });
+ } else {
+ this.friendship = Math.max(this.friendship + amount.value, 0);
+ for (let sd of starterData)
+ sd.friendship = Math.max((sd.friendship || 0) + starterAmount.value, 0);
+ }
+ }
getPossibleEvolution(evolution: SpeciesFormEvolution): Promise {
return new Promise(resolve => {
@@ -2417,12 +2466,17 @@ export class PlayerPokemon extends Pokemon {
private handleSpecialEvolutions(evolution: SpeciesFormEvolution) {
const isFusion = evolution instanceof FusionSpeciesFormEvolution;
- if ((!isFusion ? this.species : this.fusionSpecies).speciesId === Species.NINCADA && evolution.speciesId === Species.NINJASK) {
- const newEvolution = pokemonEvolutions[this.species.speciesId][1];
+
+ const evoSpecies = (!isFusion ? this.species : this.fusionSpecies)
+ if (evoSpecies.speciesId === Species.NINCADA && evolution.speciesId === Species.NINJASK) {
+ const newEvolution = pokemonEvolutions[evoSpecies.speciesId][1];
+
if (newEvolution.condition.predicate(this)) {
const newPokemon = this.scene.addPlayerPokemon(this.species, this.level, this.abilityIndex, this.formIndex, undefined, this.shiny, this.variant, this.ivs, this.nature);
newPokemon.natureOverride = this.natureOverride;
- newPokemon.moveset = this.moveset.slice();
+ newPokemon.moveset = this.copyMoveset();
+ newPokemon.luck = this.luck;
+
newPokemon.fusionSpecies = this.fusionSpecies;
newPokemon.fusionFormIndex = this.fusionFormIndex;
newPokemon.fusionAbilityIndex = this.fusionAbilityIndex;
@@ -2430,8 +2484,9 @@ export class PlayerPokemon extends Pokemon {
newPokemon.fusionVariant = this.fusionVariant;
newPokemon.fusionGender = this.fusionGender;
newPokemon.fusionLuck = this.fusionLuck;
+
this.scene.getParty().push(newPokemon);
- newPokemon.evolve(newEvolution);
+ newPokemon.evolve(!isFusion ? newEvolution : new FusionSpeciesFormEvolution(this.id, newEvolution));
const modifiers = this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier
&& (m as PokemonHeldItemModifier).pokemonId === this.id, true) as PokemonHeldItemModifier[];
modifiers.forEach(m => {
@@ -2529,6 +2584,15 @@ export class PlayerPokemon extends Pokemon {
this.updateFusionPalette();
});
}
+
+ /** Returns a deep copy of this Pokemon's moveset array */
+ copyMoveset(): PokemonMove[] {
+ let newMoveset = [];
+ this.moveset.forEach(move =>
+ newMoveset.push(new PokemonMove(move.moveId, 0, move.ppUp, move.virtual)));
+
+ return newMoveset;
+ }
}
export class EnemyPokemon extends Pokemon {
@@ -2549,9 +2613,15 @@ export class EnemyPokemon extends Pokemon {
this.generateAndPopulateMoveset();
this.trySetShiny();
-
- if (this.shiny)
+ if (OPP_SHINY_OVERRIDE) {
+ this.shiny = true;
+ this.initShinySparkle();
+ }
+ if (this.shiny) {
this.variant = this.generateVariant();
+ if (OPP_VARIANT_OVERRIDE)
+ this.variant = OPP_VARIANT_OVERRIDE;
+ }
this.luck = (this.shiny ? this.variant + 1 : 0) + (this.fusionShiny ? this.fusionVariant + 1 : 0);
@@ -2661,9 +2731,13 @@ export class EnemyPokemon extends Pokemon {
let targetScores: integer[] = [];
for (let mt of moveTargets[move.id]) {
+ // Prevent a target score from being calculated when there isn't a target
+ if (mt === -1)
+ break;
+
const target = this.scene.getField()[mt];
let targetScore = move.getUserBenefitScore(this, target, move) + move.getTargetBenefitScore(this, target, move) * (mt < BattlerIndex.ENEMY === this.isPlayer() ? 1 : -1);
- if (move.name.endsWith(' (N)'))
+ if (move.name.endsWith(' (N)') || !move.applyConditions(this, target, move))
targetScore = -20;
else if (move instanceof AttackMove) {
const effectiveness = target.getAttackMoveEffectiveness(this, pokemonMove);
@@ -2731,8 +2805,14 @@ export class EnemyPokemon extends Pokemon {
return scoreA < scoreB ? 1 : scoreA > scoreB ? -1 : 0;
});
- if (!sortedBenefitScores.length)
+ if (!sortedBenefitScores.length) {
+ // Set target to -1 when using a counter move
+ // This is the same as when the player does so
+ if (!!move.findAttr(attr => attr instanceof CounterDamageAttr))
+ return [-1];
+
return [];
+ }
let targetWeights = sortedBenefitScores.map(s => s[1]);
const lowestWeight = targetWeights[targetWeights.length - 1];
@@ -2983,6 +3063,7 @@ export class PokemonSummonData {
export class PokemonBattleData {
public hitCount: integer = 0;
public endured: boolean = false;
+ public berriesEaten: BerryType[] = [];
}
export class PokemonBattleSummonData {
diff --git a/src/game-mode.ts b/src/game-mode.ts
index 0ac3f0503f1..76c97b4c9ac 100644
--- a/src/game-mode.ts
+++ b/src/game-mode.ts
@@ -1,10 +1,11 @@
import { fixedBattles } from "./battle";
-import BattleScene, { STARTING_BIOME_OVERRIDE, STARTING_LEVEL_OVERRIDE, STARTING_MONEY_OVERRIDE } from "./battle-scene";
+import BattleScene from "./battle-scene";
import { Biome } from "./data/enums/biome";
import { Species } from "./data/enums/species";
import PokemonSpecies, { allSpecies } from "./data/pokemon-species";
import { Arena } from "./field/arena";
import * as Utils from "./utils";
+import { STARTING_BIOME_OVERRIDE, STARTING_LEVEL_OVERRIDE, STARTING_MONEY_OVERRIDE } from './overrides';
export enum GameModes {
CLASSIC,
diff --git a/src/loading-scene.ts b/src/loading-scene.ts
index 2f37b900ab5..05b6c9f50b1 100644
--- a/src/loading-scene.ts
+++ b/src/loading-scene.ts
@@ -39,15 +39,21 @@ export class LoadingScene extends SceneBase {
}
this.loadAtlas('namebox', 'ui');
this.loadImage('pbinfo_player', 'ui');
+ this.loadImage('pbinfo_player_stats', 'ui');
this.loadImage('pbinfo_player_mini', 'ui');
+ this.loadImage('pbinfo_player_mini_stats', 'ui');
this.loadAtlas('pbinfo_player_type', 'ui');
this.loadAtlas('pbinfo_player_type1', 'ui');
this.loadAtlas('pbinfo_player_type2', 'ui');
this.loadImage('pbinfo_enemy_mini', 'ui');
+ this.loadImage('pbinfo_enemy_mini_stats', 'ui');
this.loadImage('pbinfo_enemy_boss', 'ui');
+ this.loadImage('pbinfo_enemy_boss_stats', 'ui');
this.loadAtlas('pbinfo_enemy_type', 'ui');
this.loadAtlas('pbinfo_enemy_type1', 'ui');
this.loadAtlas('pbinfo_enemy_type2', 'ui');
+ this.loadAtlas('pbinfo_stat', 'ui');
+ this.loadAtlas('pbinfo_stat_numbers', 'ui');
this.loadImage('overlay_lv', 'ui');
this.loadAtlas('numbers', 'ui');
this.loadAtlas('numbers_red', 'ui');
@@ -61,6 +67,7 @@ export class LoadingScene extends SceneBase {
this.loadImage('achv_bar_2', 'ui');
this.loadImage('achv_bar_3', 'ui');
this.loadImage('achv_bar_4', 'ui');
+ this.loadImage('achv_bar_5', 'ui');
this.loadImage('shiny_star', 'ui', 'shiny.png');
this.loadImage('shiny_star_1', 'ui', 'shiny_1.png');
this.loadImage('shiny_star_2', 'ui', 'shiny_2.png');
@@ -216,6 +223,7 @@ export class LoadingScene extends SceneBase {
this.loadSe('sparkle');
this.loadSe('restore');
this.loadSe('shine');
+ this.loadSe('shing');
this.loadSe('charge');
this.loadSe('beam');
this.loadSe('upgrade');
diff --git a/src/locales/de/battle.ts b/src/locales/de/battle.ts
new file mode 100644
index 00000000000..61191a1165a
--- /dev/null
+++ b/src/locales/de/battle.ts
@@ -0,0 +1,52 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const battle: SimpleTranslationEntries = {
+ "bossAppeared": "{{bossName}} erscheint.",
+ "trainerAppeared": "{{trainerName}}\nmöchte kämpfen!",
+ "singleWildAppeared": "Ein wildes {{pokemonName}} erscheint!",
+ "multiWildAppeared": "Ein wildes {{pokemonName1}}\nund {{pokemonName2}} erscheinen!",
+ "playerComeBack": "Komm zurück, {{pokemonName}}!",
+ "trainerComeBack": "{{trainerName}} ruft {{pokemonName}} zurück!",
+ "playerGo": "Los! {{pokemonName}}!",
+ "trainerGo": "{{trainerName}} sendet {{pokemonName}} raus!",
+ "switchQuestion": "Willst du\n{{pokemonName}} auswechseln?",
+ "trainerDefeated": `You defeated\n{{trainerName}}!`,
+ "pokemonCaught": "{{pokemonName}} was caught!",
+ "pokemon": "Pokémon",
+ "sendOutPokemon": "Los! {{pokemonName}}!",
+ "hitResultCriticalHit": "A critical hit!",
+ "hitResultSuperEffective": "It's super effective!",
+ "hitResultNotVeryEffective": "It's not very effective…",
+ "hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
+ "hitResultOneHitKO": "It's a one-hit KO!",
+ "attackFailed": "But it failed!",
+ "attackHitsCount": `Hit {{count}} time(s)!`,
+ "expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!",
+ "levelUp": "{{pokemonName}} grew to\nLv. {{level}}!",
+ "learnMove": "{{pokemonName}} learned\n{{moveName}}!",
+ "learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.",
+ "learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.",
+ "learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?",
+ "learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?",
+ "learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
+ "learnMoveForgetQuestion": "Which move should be forgotten?",
+ "learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
+ "levelCapUp": "Das Levellimit\nhat sich zu {{levelCap}} erhöht!",
+ "moveNotImplemented": "{{moveName}} ist noch nicht implementiert und kann nicht ausgewählt werden.",
+ "moveDisabled": "{{moveName}} ist deaktiviert!",
+ "noPokeballForce": "Eine unsichtbare Kraft\nverhindert die Nutzung von Pokébällen.",
+ "noPokeballTrainer": "Du kannst das Pokémon\neines anderen Trainers nicht fangen!",
+ "noPokeballMulti": "Du kannst erst einen Pokéball werden,\nwenn nur noch ein Pokémon übrig ist!",
+ "noPokeballStrong": "Das Ziel-Pokémon ist zu stark, um gefangen zu werden!\nDu musst es zuerst schwächen!",
+ "noEscapeForce": "Eine unsichtbare Kraft\nverhindert die Flucht.",
+ "noEscapeTrainer": "Du kannst nicht\naus einem Trainerkampf fliehen!",
+ "noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nverhindert {{escapeVerb}}!",
+ "runAwaySuccess": "You got away safely!",
+ "runAwayCannotEscape": 'You can\'t escape!',
+ "escapeVerbSwitch": "auswechseln",
+ "escapeVerbFlee": "flucht",
+ "notDisabled": "{{moveName}} ist\nnicht mehr deaktiviert!",
+ "skipItemQuestion": "Are you sure you want to skip taking an item?",
+ "eggHatching": "Oh?",
+ "ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?"
+} as const;
\ No newline at end of file
diff --git a/src/locales/de/fight-ui-handler.ts b/src/locales/de/fight-ui-handler.ts
new file mode 100644
index 00000000000..1ce9e0317bf
--- /dev/null
+++ b/src/locales/de/fight-ui-handler.ts
@@ -0,0 +1,6 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const fightUiHandler: SimpleTranslationEntries = {
+ "pp": "PP",
+ "power": "POWER",
+} as const;
\ No newline at end of file
diff --git a/src/locales/de/menu.ts b/src/locales/de/menu.ts
index d70cd83c50d..3f86ae41a7e 100644
--- a/src/locales/de/menu.ts
+++ b/src/locales/de/menu.ts
@@ -35,28 +35,13 @@ export const menu: SimpleTranslationEntries = {
"boyOrGirl": "Bist du ein Junge oder ein Mädchen?",
"boy": "Junge",
"girl": "Mädchen",
- "bossAppeared": "{{bossName}} erscheint.",
- "trainerAppeared": "{{trainerName}}\nmöchte kämpfen!",
- "singleWildAppeared": "Ein wildes {{pokemonName}} erscheint!",
- "multiWildAppeared": "Ein wildes {{pokemonName1}}\nund {{pokemonName2}} erscheinen!",
- "playerComeBack": "Komm zurück, {{pokemonName}}!",
- "trainerComeBack": "{{trainerName}} ruft {{pokemonName}} zurück!",
- "playerGo": "Los! {{pokemonName}}!",
- "trainerGo": "{{trainerName}} sendet {{pokemonName}} raus!",
- "switchQuestion": "Willst du\n{{pokemonName}} auswechseln?",
- "pokemon": "Pokémon",
- "sendOutPokemon": "Los! {{pokemonName}}!",
- "levelCapUp": "Das Levellimit\nhat sich zu {{levelCap}} erhöht!",
- "moveNotImplemented": "{{moveName}} ist noch nicht implementiert und kann nicht ausgewählt werden.",
- "moveDisabled": "{{moveName}} ist deaktiviert!",
- "noPokeballForce": "Eine unsichtbare Kraft\nverhindert die Nutzung von Pokébällen.",
- "noPokeballTrainer": "Du kannst das Pokémon\neines anderen Trainers nicht fangen!",
- "noPokeballMulti": "Du kannst erst einen Pokéball werden,\nwenn nur noch ein Pokémon übrig ist!",
- "noPokeballStrong": "Das Ziel-Pokémon ist zu stark, um gefangen zu werden!\nDu musst es zuerst schwächen!",
- "noEscapeForce": "Eine unsichtbare Kraft\nverhindert die Flucht.",
- "noEscapeTrainer": "Du kannst nicht\naus einem Trainerkampf fliehen!",
- "noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nverhindert {{escapeVerb}}!",
- "escapeVerbSwitch": "auswechseln",
- "escapeVerbFlee": "flucht",
- "notDisabled": "{{moveName}} ist\nnicht mehr deaktiviert!",
+ "dailyRankings": "Daily Rankings",
+ "weeklyRankings": "Weekly Rankings",
+ "noRankings": "No Rankings",
+ "loading": "Loading…",
+ "playersOnline": "Players Online",
+ "empty":"Empty",
+ "yes":"Yes",
+ "no":"No",
+ "confirmStartTeam":'Begin with these Pokémon?',
} as const;
\ No newline at end of file
diff --git a/src/locales/de/pokemon.ts b/src/locales/de/pokemon.ts
index 09be8894eb4..9efecb819cd 100644
--- a/src/locales/de/pokemon.ts
+++ b/src/locales/de/pokemon.ts
@@ -1,380 +1,380 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const pokemon: SimpleTranslationEntries = {
- "bulbasaur": "Bulbasaur",
- "ivysaur": "Ivysaur",
- "venusaur": "Venusaur",
- "charmander": "Charmander",
- "charmeleon": "Charmeleon",
- "charizard": "Charizard",
- "squirtle": "Squirtle",
- "wartortle": "Wartortle",
- "blastoise": "Blastoise",
- "caterpie": "Caterpie",
- "metapod": "Metapod",
- "butterfree": "Butterfree",
- "weedle": "Weedle",
- "kakuna": "Kakuna",
- "beedrill": "Beedrill",
- "pidgey": "Pidgey",
- "pidgeotto": "Pidgeotto",
- "pidgeot": "Pidgeot",
- "rattata": "Rattata",
- "raticate": "Raticate",
- "spearow": "Spearow",
- "fearow": "Fearow",
- "ekans": "Ekans",
+ "bulbasaur": "Bisasam",
+ "ivysaur": "Bisaknosp",
+ "venusaur": "Bisaflor",
+ "charmander": "Glumanda",
+ "charmeleon": "Glutexo",
+ "charizard": "Glurak",
+ "squirtle": "Schiggy",
+ "wartortle": "Schillok",
+ "blastoise": "Turtok",
+ "caterpie": "Raupy",
+ "metapod": "Safcon",
+ "butterfree": "Smettbo",
+ "weedle": "Hornliu",
+ "kakuna": "Kokuna",
+ "beedrill": "Bibor",
+ "pidgey": "Taubsi",
+ "pidgeotto": "Tauboga",
+ "pidgeot": "Tauboss",
+ "rattata": "Rattfratz",
+ "raticate": "Rattikarl",
+ "spearow": "Habitak",
+ "fearow": "Ibitak",
+ "ekans": "Rettan",
"arbok": "Arbok",
"pikachu": "Pikachu",
"raichu": "Raichu",
- "sandshrew": "Sandshrew",
- "sandslash": "Sandslash",
+ "sandshrew": "Sandan",
+ "sandslash": "Sandamer",
"nidoran_f": "Nidoran♀",
"nidorina": "Nidorina",
"nidoqueen": "Nidoqueen",
"nidoran_m": "Nidoran♂",
"nidorino": "Nidorino",
"nidoking": "Nidoking",
- "clefairy": "Clefairy",
- "clefable": "Clefable",
+ "clefairy": "Piepi",
+ "clefable": "Pixi",
"vulpix": "Vulpix",
- "ninetales": "Ninetales",
- "jigglypuff": "Jigglypuff",
- "wigglytuff": "Wigglytuff",
+ "ninetales": "Vulnona",
+ "jigglypuff": "Pummeluff",
+ "wigglytuff": "Knuddeluff",
"zubat": "Zubat",
"golbat": "Golbat",
- "oddish": "Oddish",
- "gloom": "Gloom",
- "vileplume": "Vileplume",
+ "oddish": "Myrapla",
+ "gloom": "Duflor",
+ "vileplume": "Giflor",
"paras": "Paras",
- "parasect": "Parasect",
- "venonat": "Venonat",
- "venomoth": "Venomoth",
- "diglett": "Diglett",
- "dugtrio": "Dugtrio",
- "meowth": "Meowth",
- "persian": "Persian",
- "psyduck": "Psyduck",
- "golduck": "Golduck",
- "mankey": "Mankey",
- "primeape": "Primeape",
- "growlithe": "Growlithe",
- "arcanine": "Arcanine",
- "poliwag": "Poliwag",
- "poliwhirl": "Poliwhirl",
- "poliwrath": "Poliwrath",
+ "parasect": "Parasek",
+ "venonat": "Bluzuk",
+ "venomoth": "Omot",
+ "diglett": "Digda",
+ "dugtrio": "Digdri",
+ "meowth": "Mauzi",
+ "persian": "Snobilikat",
+ "psyduck": "Enton",
+ "golduck": "Entoron",
+ "mankey": "Menki",
+ "primeape": "Rasaff",
+ "growlithe": "Fukano",
+ "arcanine": "Arkani",
+ "poliwag": "Quapsel",
+ "poliwhirl": "Quaputzi",
+ "poliwrath": "Quappo",
"abra": "Abra",
"kadabra": "Kadabra",
- "alakazam": "Alakazam",
- "machop": "Machop",
- "machoke": "Machoke",
- "machamp": "Machamp",
- "bellsprout": "Bellsprout",
- "weepinbell": "Weepinbell",
- "victreebel": "Victreebel",
- "tentacool": "Tentacool",
- "tentacruel": "Tentacruel",
- "geodude": "Geodude",
- "graveler": "Graveler",
- "golem": "Golem",
- "ponyta": "Ponyta",
- "rapidash": "Rapidash",
- "slowpoke": "Slowpoke",
- "slowbro": "Slowbro",
- "magnemite": "Magnemite",
+ "alakazam": "Simsala",
+ "machop": "Machollo",
+ "machoke": "Maschock",
+ "machamp": "Machomei",
+ "bellsprout": "Knofensa",
+ "weepinbell": "Ultrigaria",
+ "victreebel": "Sarzenia",
+ "tentacool": "Tentacha",
+ "tentacruel": "Tentoxa",
+ "geodude": "Kleinstein",
+ "graveler": "Georok",
+ "golem": "Geowaz",
+ "ponyta": "Ponita",
+ "rapidash": "Gallopa",
+ "slowpoke": "Flegmon",
+ "slowbro": "Lahmus",
+ "magnemite": "Magnetilo",
"magneton": "Magneton",
- "farfetchd": "Farfetch'd",
- "doduo": "Doduo",
- "dodrio": "Dodrio",
- "seel": "Seel",
- "dewgong": "Dewgong",
- "grimer": "Grimer",
- "muk": "Muk",
- "shellder": "Shellder",
- "cloyster": "Cloyster",
- "gastly": "Gastly",
- "haunter": "Haunter",
+ "farfetchd": "Porenta",
+ "doduo": "Dodu",
+ "dodrio": "Dodri",
+ "seel": "Jurob",
+ "dewgong": "Jugong",
+ "grimer": "Sleima",
+ "muk": "Sleimok",
+ "shellder": "Muschas",
+ "cloyster": "Austos",
+ "gastly": "Nebulak",
+ "haunter": "Alpollo",
"gengar": "Gengar",
"onix": "Onix",
- "drowzee": "Drowzee",
+ "drowzee": "Traumato",
"hypno": "Hypno",
"krabby": "Krabby",
"kingler": "Kingler",
- "voltorb": "Voltorb",
- "electrode": "Electrode",
- "exeggcute": "Exeggcute",
- "exeggutor": "Exeggutor",
- "cubone": "Cubone",
- "marowak": "Marowak",
- "hitmonlee": "Hitmonlee",
- "hitmonchan": "Hitmonchan",
- "lickitung": "Lickitung",
- "koffing": "Koffing",
- "weezing": "Weezing",
- "rhyhorn": "Rhyhorn",
- "rhydon": "Rhydon",
- "chansey": "Chansey",
+ "voltorb": "Voltobal",
+ "electrode": "Lektrobal",
+ "exeggcute": "Owei",
+ "exeggutor": "Kokowei",
+ "cubone": "Tragosso",
+ "marowak": "Knogga",
+ "hitmonlee": "Kicklee",
+ "hitmonchan": "Nockchan",
+ "lickitung": "Schlurp",
+ "koffing": "Smogon",
+ "weezing": "Smogmog",
+ "rhyhorn": "Rihorn",
+ "rhydon": "Rizeros",
+ "chansey": "Chaneira",
"tangela": "Tangela",
- "kangaskhan": "Kangaskhan",
- "horsea": "Horsea",
- "seadra": "Seadra",
- "goldeen": "Goldeen",
- "seaking": "Seaking",
- "staryu": "Staryu",
+ "kangaskhan": "Kangama",
+ "horsea": "Seeper",
+ "seadra": "Seemon",
+ "goldeen": "Goldini",
+ "seaking": "Golking",
+ "staryu": "Sterndu",
"starmie": "Starmie",
- "mr_mime": "Mr. Mime",
- "scyther": "Scyther",
- "jynx": "Jynx",
- "electabuzz": "Electabuzz",
+ "mr_mime": "Pantimos",
+ "scyther": "Sichlor",
+ "jynx": "Rossana",
+ "electabuzz": "Elektek",
"magmar": "Magmar",
"pinsir": "Pinsir",
"tauros": "Tauros",
- "magikarp": "Magikarp",
- "gyarados": "Gyarados",
+ "magikarp": "Karpador",
+ "gyarados": "Garados",
"lapras": "Lapras",
"ditto": "Ditto",
- "eevee": "Eevee",
- "vaporeon": "Vaporeon",
- "jolteon": "Jolteon",
- "flareon": "Flareon",
+ "eevee": "Evoli",
+ "vaporeon": "Aquana",
+ "jolteon": "Blitza",
+ "flareon": "Flamara",
"porygon": "Porygon",
- "omanyte": "Omanyte",
- "omastar": "Omastar",
+ "omanyte": "Amonitas",
+ "omastar": "Amoroso",
"kabuto": "Kabuto",
"kabutops": "Kabutops",
"aerodactyl": "Aerodactyl",
- "snorlax": "Snorlax",
- "articuno": "Articuno",
+ "snorlax": "Relaxo",
+ "articuno": "Arktos",
"zapdos": "Zapdos",
- "moltres": "Moltres",
+ "moltres": "Lavados",
"dratini": "Dratini",
- "dragonair": "Dragonair",
- "dragonite": "Dragonite",
- "mewtwo": "Mewtwo",
+ "dragonair": "Dragonir",
+ "dragonite": "Dragoran",
+ "mewtwo": "Mewtu",
"mew": "Mew",
- "chikorita": "Chikorita",
- "bayleef": "Bayleef",
- "meganium": "Meganium",
- "cyndaquil": "Cyndaquil",
- "quilava": "Quilava",
- "typhlosion": "Typhlosion",
- "totodile": "Totodile",
- "croconaw": "Croconaw",
- "feraligatr": "Feraligatr",
- "sentret": "Sentret",
- "furret": "Furret",
+ "chikorita": "Endivie",
+ "bayleef": "Lorblatt",
+ "meganium": "Meganie",
+ "cyndaquil": "Feurigel",
+ "quilava": "Igelavar",
+ "typhlosion": "Tornupto",
+ "totodile": "Karnimani",
+ "croconaw": "Tyracroc",
+ "feraligatr": "Impergator",
+ "sentret": "Wiesor",
+ "furret": "Wiesenior",
"hoothoot": "Hoothoot",
- "noctowl": "Noctowl",
+ "noctowl": "Noctuh",
"ledyba": "Ledyba",
"ledian": "Ledian",
- "spinarak": "Spinarak",
+ "spinarak": "Webarak",
"ariados": "Ariados",
- "crobat": "Crobat",
- "chinchou": "Chinchou",
+ "crobat": "Iksbat",
+ "chinchou": "Lampi",
"lanturn": "Lanturn",
"pichu": "Pichu",
- "cleffa": "Cleffa",
- "igglybuff": "Igglybuff",
+ "cleffa": "Pii",
+ "igglybuff": "Fluffeluff",
"togepi": "Togepi",
"togetic": "Togetic",
"natu": "Natu",
"xatu": "Xatu",
- "mareep": "Mareep",
- "flaaffy": "Flaaffy",
+ "mareep": "Voltilamm",
+ "flaaffy": "Waaty",
"ampharos": "Ampharos",
- "bellossom": "Bellossom",
+ "bellossom": "Blubella",
"marill": "Marill",
"azumarill": "Azumarill",
- "sudowoodo": "Sudowoodo",
- "politoed": "Politoed",
- "hoppip": "Hoppip",
- "skiploom": "Skiploom",
- "jumpluff": "Jumpluff",
- "aipom": "Aipom",
- "sunkern": "Sunkern",
- "sunflora": "Sunflora",
+ "sudowoodo": "Mogelbaum",
+ "politoed": "Quaxo",
+ "hoppip": "Hoppspross",
+ "skiploom": "Hubelupf",
+ "jumpluff": "Papungha",
+ "aipom": "Griffel",
+ "sunkern": "Sonnkern",
+ "sunflora": "Sonnflora",
"yanma": "Yanma",
- "wooper": "Wooper",
- "quagsire": "Quagsire",
- "espeon": "Espeon",
- "umbreon": "Umbreon",
- "murkrow": "Murkrow",
- "slowking": "Slowking",
- "misdreavus": "Misdreavus",
- "unown": "Unown",
- "wobbuffet": "Wobbuffet",
+ "wooper": "Felino",
+ "quagsire": "Morlord",
+ "espeon": "Psiana",
+ "umbreon": "Nachtara",
+ "murkrow": "Kramurx",
+ "slowking": "Laschoking",
+ "misdreavus": "Traunfugil",
+ "unown": "Icognito",
+ "wobbuffet": "Woingenau",
"girafarig": "Girafarig",
- "pineco": "Pineco",
- "forretress": "Forretress",
- "dunsparce": "Dunsparce",
- "gligar": "Gligar",
- "steelix": "Steelix",
+ "pineco": "Tannza",
+ "forretress": "Forstellka",
+ "dunsparce": "Dummisel",
+ "gligar": "Skorgla",
+ "steelix": "Stahlos",
"snubbull": "Snubbull",
"granbull": "Granbull",
- "qwilfish": "Qwilfish",
- "scizor": "Scizor",
- "shuckle": "Shuckle",
- "heracross": "Heracross",
- "sneasel": "Sneasel",
+ "qwilfish": "Baldorfish",
+ "scizor": "Scherox",
+ "shuckle": "Pottrott",
+ "heracross": "Skaraborn",
+ "sneasel": "Sniebel",
"teddiursa": "Teddiursa",
"ursaring": "Ursaring",
- "slugma": "Slugma",
+ "slugma": "Schneckmag",
"magcargo": "Magcargo",
- "swinub": "Swinub",
- "piloswine": "Piloswine",
- "corsola": "Corsola",
+ "swinub": "Quiekel",
+ "piloswine": "Keifel",
+ "corsola": "Corasonn",
"remoraid": "Remoraid",
"octillery": "Octillery",
- "delibird": "Delibird",
- "mantine": "Mantine",
- "skarmory": "Skarmory",
- "houndour": "Houndour",
- "houndoom": "Houndoom",
- "kingdra": "Kingdra",
+ "delibird": "Botogel",
+ "mantine": "Mantax",
+ "skarmory": "Panzaeron",
+ "houndour": "Hunduster",
+ "houndoom": "Hundemon",
+ "kingdra": "Seedraking",
"phanpy": "Phanpy",
"donphan": "Donphan",
"porygon2": "Porygon2",
- "stantler": "Stantler",
- "smeargle": "Smeargle",
- "tyrogue": "Tyrogue",
- "hitmontop": "Hitmontop",
- "smoochum": "Smoochum",
+ "stantler": "Damhirplex",
+ "smeargle": "Farbeagle",
+ "tyrogue": "Rabauz",
+ "hitmontop": "Kapoera",
+ "smoochum": "Kussilla",
"elekid": "Elekid",
"magby": "Magby",
"miltank": "Miltank",
- "blissey": "Blissey",
+ "blissey": "Heiteira",
"raikou": "Raikou",
"entei": "Entei",
"suicune": "Suicune",
"larvitar": "Larvitar",
"pupitar": "Pupitar",
- "tyranitar": "Tyranitar",
+ "tyranitar": "Despotar",
"lugia": "Lugia",
"ho_oh": "Ho-Oh",
"celebi": "Celebi",
- "treecko": "Treecko",
- "grovyle": "Grovyle",
- "sceptile": "Sceptile",
- "torchic": "Torchic",
- "combusken": "Combusken",
- "blaziken": "Blaziken",
- "mudkip": "Mudkip",
- "marshtomp": "Marshtomp",
- "swampert": "Swampert",
- "poochyena": "Poochyena",
- "mightyena": "Mightyena",
- "zigzagoon": "Zigzagoon",
- "linoone": "Linoone",
- "wurmple": "Wurmple",
- "silcoon": "Silcoon",
- "beautifly": "Beautifly",
- "cascoon": "Cascoon",
- "dustox": "Dustox",
- "lotad": "Lotad",
- "lombre": "Lombre",
- "ludicolo": "Ludicolo",
- "seedot": "Seedot",
- "nuzleaf": "Nuzleaf",
- "shiftry": "Shiftry",
- "taillow": "Taillow",
- "swellow": "Swellow",
+ "treecko": "Geckarbor",
+ "grovyle": "Reptain",
+ "sceptile": "Gewaldro",
+ "torchic": "Flemmli",
+ "combusken": "Jungglut",
+ "blaziken": "Lohgock",
+ "mudkip": "Hydropi",
+ "marshtomp": "Moorabbel",
+ "swampert": "Sumpex",
+ "poochyena": "Fiffyen",
+ "mightyena": "Magnayen",
+ "zigzagoon": "Zigzachs",
+ "linoone": "Geradaks",
+ "wurmple": "Waumpel",
+ "silcoon": "Schaloko",
+ "beautifly": "Papinella",
+ "cascoon": "Panekon",
+ "dustox": "Pudox",
+ "lotad": "Loturzel",
+ "lombre": "Lombrero",
+ "ludicolo": "Kappalores",
+ "seedot": "Samurzel",
+ "nuzleaf": "Blanas",
+ "shiftry": "Tengulist",
+ "taillow": "Schwalbini",
+ "swellow": "Schwalboss",
"wingull": "Wingull",
"pelipper": "Pelipper",
- "ralts": "Ralts",
+ "ralts": "Trasla",
"kirlia": "Kirlia",
"gardevoir": "Gardevoir",
- "surskit": "Surskit",
- "masquerain": "Masquerain",
- "shroomish": "Shroomish",
- "breloom": "Breloom",
- "slakoth": "Slakoth",
- "vigoroth": "Vigoroth",
- "slaking": "Slaking",
+ "surskit": "Geweiher",
+ "masquerain": "Maskeregen",
+ "shroomish": "Knilz",
+ "breloom": "Kapilz",
+ "slakoth": "Bummelz",
+ "vigoroth": "Muntier",
+ "slaking": "Letarking",
"nincada": "Nincada",
"ninjask": "Ninjask",
- "shedinja": "Shedinja",
- "whismur": "Whismur",
- "loudred": "Loudred",
- "exploud": "Exploud",
+ "shedinja": "Ninjatom",
+ "whismur": "Flurmel",
+ "loudred": "Krakeelo",
+ "exploud": "Krawumms",
"makuhita": "Makuhita",
"hariyama": "Hariyama",
"azurill": "Azurill",
- "nosepass": "Nosepass",
- "skitty": "Skitty",
- "delcatty": "Delcatty",
- "sableye": "Sableye",
- "mawile": "Mawile",
- "aron": "Aron",
- "lairon": "Lairon",
- "aggron": "Aggron",
+ "nosepass": "Nasgnet",
+ "skitty": "Eneco",
+ "delcatty": "Enekoro",
+ "sableye": "Zobiris",
+ "mawile": "Flunkifer",
+ "aron": "Stollunior",
+ "lairon": "Stollrak",
+ "aggron": "Stolloss",
"meditite": "Meditite",
- "medicham": "Medicham",
- "electrike": "Electrike",
- "manectric": "Manectric",
+ "medicham": "Meditalis",
+ "electrike": "Frizelbliz",
+ "manectric": "Voltenso",
"plusle": "Plusle",
"minun": "Minun",
"volbeat": "Volbeat",
"illumise": "Illumise",
"roselia": "Roselia",
- "gulpin": "Gulpin",
- "swalot": "Swalot",
- "carvanha": "Carvanha",
- "sharpedo": "Sharpedo",
+ "gulpin": "Schluppuck",
+ "swalot": "Schluckwech",
+ "carvanha": "Kanivanha",
+ "sharpedo": "Tohaido",
"wailmer": "Wailmer",
"wailord": "Wailord",
- "numel": "Numel",
+ "numel": "Camaub",
"camerupt": "Camerupt",
- "torkoal": "Torkoal",
+ "torkoal": "Qurtel",
"spoink": "Spoink",
- "grumpig": "Grumpig",
- "spinda": "Spinda",
- "trapinch": "Trapinch",
+ "grumpig": "Groink",
+ "spinda": "Pandir",
+ "trapinch": "Knacklion",
"vibrava": "Vibrava",
- "flygon": "Flygon",
- "cacnea": "Cacnea",
- "cacturne": "Cacturne",
- "swablu": "Swablu",
+ "flygon": "Libelldra",
+ "cacnea": "Tuska",
+ "cacturne": "Noktuska",
+ "swablu": "Wablu",
"altaria": "Altaria",
- "zangoose": "Zangoose",
- "seviper": "Seviper",
- "lunatone": "Lunatone",
- "solrock": "Solrock",
- "barboach": "Barboach",
- "whiscash": "Whiscash",
- "corphish": "Corphish",
- "crawdaunt": "Crawdaunt",
- "baltoy": "Baltoy",
- "claydol": "Claydol",
- "lileep": "Lileep",
- "cradily": "Cradily",
+ "zangoose": "Sengo",
+ "seviper": "Vipitis",
+ "lunatone": "Lunastein",
+ "solrock": "Sonnfel",
+ "barboach": "Schmerbe",
+ "whiscash": "Welsar",
+ "corphish": "Krebscorps",
+ "crawdaunt": "Krebutack",
+ "baltoy": "Puppance",
+ "claydol": "Lepumentas",
+ "lileep": "Liliep",
+ "cradily": "Wielie",
"anorith": "Anorith",
"armaldo": "Armaldo",
- "feebas": "Feebas",
+ "feebas": "Barschwa",
"milotic": "Milotic",
- "castform": "Castform",
+ "castform": "Formeo",
"kecleon": "Kecleon",
"shuppet": "Shuppet",
"banette": "Banette",
- "duskull": "Duskull",
- "dusclops": "Dusclops",
+ "duskull": "Zwirrlicht",
+ "dusclops": "Zwirrklop",
"tropius": "Tropius",
- "chimecho": "Chimecho",
+ "chimecho": "Palimpalim",
"absol": "Absol",
- "wynaut": "Wynaut",
- "snorunt": "Snorunt",
- "glalie": "Glalie",
- "spheal": "Spheal",
- "sealeo": "Sealeo",
- "walrein": "Walrein",
- "clamperl": "Clamperl",
- "huntail": "Huntail",
- "gorebyss": "Gorebyss",
+ "wynaut": "Isso",
+ "snorunt": "Schneppke",
+ "glalie": "Firnontor",
+ "spheal": "Seemops",
+ "sealeo": "Seejong",
+ "walrein": "Walraisa",
+ "clamperl": "Perlu",
+ "huntail": "Aalabyss",
+ "gorebyss": "Saganabyss",
"relicanth": "Relicanth",
- "luvdisc": "Luvdisc",
- "bagon": "Bagon",
- "shelgon": "Shelgon",
- "salamence": "Salamence",
- "beldum": "Beldum",
+ "luvdisc": "Liebiskus",
+ "bagon": "Kindwurm",
+ "shelgon": "Draschel",
+ "salamence": "Brutalanda",
+ "beldum": "Tanhel",
"metang": "Metang",
"metagross": "Metagross",
"regirock": "Regirock",
@@ -387,102 +387,102 @@ export const pokemon: SimpleTranslationEntries = {
"rayquaza": "Rayquaza",
"jirachi": "Jirachi",
"deoxys": "Deoxys",
- "turtwig": "Turtwig",
- "grotle": "Grotle",
- "torterra": "Torterra",
- "chimchar": "Chimchar",
- "monferno": "Monferno",
- "infernape": "Infernape",
- "piplup": "Piplup",
- "prinplup": "Prinplup",
- "empoleon": "Empoleon",
- "starly": "Starly",
+ "turtwig": "Chelast",
+ "grotle": "Chelcarain",
+ "torterra": "Chelterrar",
+ "chimchar": "Panflam",
+ "monferno": "Panpyro",
+ "infernape": "Panferno",
+ "piplup": "Plinfa",
+ "prinplup": "Pilprin",
+ "empoleon": "Impoleon",
+ "starly": "Staralili",
"staravia": "Staravia",
"staraptor": "Staraptor",
- "bidoof": "Bidoof",
- "bibarel": "Bibarel",
- "kricketot": "Kricketot",
- "kricketune": "Kricketune",
- "shinx": "Shinx",
+ "bidoof": "Bidiza",
+ "bibarel": "Bidifas",
+ "kricketot": "Zirpurze",
+ "kricketune": "Zirpeise",
+ "shinx": "Sheinux",
"luxio": "Luxio",
"luxray": "Luxray",
- "budew": "Budew",
+ "budew": "Knospi",
"roserade": "Roserade",
- "cranidos": "Cranidos",
- "rampardos": "Rampardos",
- "shieldon": "Shieldon",
- "bastiodon": "Bastiodon",
+ "cranidos": "Koknodon",
+ "rampardos": "Rameidon",
+ "shieldon": "Schilterus",
+ "bastiodon": "Bollterus",
"burmy": "Burmy",
- "wormadam": "Wormadam",
- "mothim": "Mothim",
- "combee": "Combee",
- "vespiquen": "Vespiquen",
+ "wormadam": "Burmadame",
+ "mothim": "Moterpel",
+ "combee": "Wadribie",
+ "vespiquen": "Hornwiesel",
"pachirisu": "Pachirisu",
- "buizel": "Buizel",
- "floatzel": "Floatzel",
- "cherubi": "Cherubi",
- "cherrim": "Cherrim",
- "shellos": "Shellos",
+ "buizel": "Bamelin",
+ "floatzel": "Bojelin",
+ "cherubi": "Kikugi",
+ "cherrim": "Kinoso",
+ "shellos": "Schalellos",
"gastrodon": "Gastrodon",
- "ambipom": "Ambipom",
- "drifloon": "Drifloon",
- "drifblim": "Drifblim",
- "buneary": "Buneary",
- "lopunny": "Lopunny",
- "mismagius": "Mismagius",
- "honchkrow": "Honchkrow",
- "glameow": "Glameow",
- "purugly": "Purugly",
- "chingling": "Chingling",
- "stunky": "Stunky",
+ "ambipom": "Ambidifel",
+ "drifloon": "Driftlon",
+ "drifblim": "Drifzepeli",
+ "buneary": "Haspiror",
+ "lopunny": "Schlapor",
+ "mismagius": "Traunmagil",
+ "honchkrow": "Kramshef",
+ "glameow": "Charmian",
+ "purugly": "Shnurgarst",
+ "chingling": "Klingplim",
+ "stunky": "Skunkapuh",
"skuntank": "Skuntank",
- "bronzor": "Bronzor",
+ "bronzor": "Bronzel",
"bronzong": "Bronzong",
- "bonsly": "Bonsly",
- "mime_jr": "Mime Jr.",
- "happiny": "Happiny",
- "chatot": "Chatot",
- "spiritomb": "Spiritomb",
- "gible": "Gible",
- "gabite": "Gabite",
- "garchomp": "Garchomp",
- "munchlax": "Munchlax",
+ "bonsly": "Mobai",
+ "mime_jr": "Pantimimi",
+ "happiny": "Wonneira",
+ "chatot": "Plaudagei",
+ "spiritomb": "Kryppuk",
+ "gible": "Kaumalat",
+ "gabite": "Knarksel",
+ "garchomp": "Knackrack",
+ "munchlax": "Mampfaxo",
"riolu": "Riolu",
"lucario": "Lucario",
"hippopotas": "Hippopotas",
- "hippowdon": "Hippowdon",
- "skorupi": "Skorupi",
- "drapion": "Drapion",
- "croagunk": "Croagunk",
- "toxicroak": "Toxicroak",
- "carnivine": "Carnivine",
+ "hippowdon": "Hippoterus",
+ "skorupi": "Pionskora",
+ "drapion": "Piondragi",
+ "croagunk": "Glibunkel",
+ "toxicroak": "Toxiquak",
+ "carnivine": "Venuflibis",
"finneon": "Finneon",
"lumineon": "Lumineon",
- "mantyke": "Mantyke",
- "snover": "Snover",
- "abomasnow": "Abomasnow",
- "weavile": "Weavile",
+ "mantyke": "Mantirps",
+ "snover": "Shnebedeck",
+ "abomasnow": "Rexblisar",
+ "weavile": "Snibunna",
"magnezone": "Magnezone",
- "lickilicky": "Lickilicky",
- "rhyperior": "Rhyperior",
- "tangrowth": "Tangrowth",
- "electivire": "Electivire",
- "magmortar": "Magmortar",
+ "lickilicky": "Schlurplek",
+ "rhyperior": "Rihornior",
+ "tangrowth": "Tangoloss",
+ "electivire": "Elevoltek",
+ "magmortar": "Magbrant",
"togekiss": "Togekiss",
"yanmega": "Yanmega",
- "leafeon": "Leafeon",
- "glaceon": "Glaceon",
- "gliscor": "Gliscor",
- "mamoswine": "Mamoswine",
+ "leafeon": "Folipurba",
+ "glaceon": "Glaziola",
+ "gliscor": "Skorgro",
+ "mamoswine": "Mamutel",
"porygon_z": "Porygon-Z",
- "gallade": "Gallade",
- "probopass": "Probopass",
- "dusknoir": "Dusknoir",
- "froslass": "Froslass",
+ "gallade": "Galagladi",
+ "probopass": "Voluminas",
+ "dusknoir": "Zwirrfinst",
+ "froslass": "Frosdedje",
"rotom": "Rotom",
- "uxie": "Uxie",
- "mesprit": "Mesprit",
- "azelf": "Azelf",
+ "uxie": "Selfe",
+ "mesprit": "Vesprit",
+ "azelf": "Tobutz",
"dialga": "Dialga",
"palkia": "Palkia",
"heatran": "Heatran",
@@ -495,318 +495,318 @@ export const pokemon: SimpleTranslationEntries = {
"shaymin": "Shaymin",
"arceus": "Arceus",
"victini": "Victini",
- "snivy": "Snivy",
- "servine": "Servine",
- "serperior": "Serperior",
- "tepig": "Tepig",
- "pignite": "Pignite",
- "emboar": "Emboar",
- "oshawott": "Oshawott",
- "dewott": "Dewott",
- "samurott": "Samurott",
- "patrat": "Patrat",
- "watchog": "Watchog",
- "lillipup": "Lillipup",
- "herdier": "Herdier",
- "stoutland": "Stoutland",
- "purrloin": "Purrloin",
- "liepard": "Liepard",
- "pansage": "Pansage",
- "simisage": "Simisage",
- "pansear": "Pansear",
- "simisear": "Simisear",
- "panpour": "Panpour",
- "simipour": "Simipour",
- "munna": "Munna",
- "musharna": "Musharna",
- "pidove": "Pidove",
- "tranquill": "Tranquill",
- "unfezant": "Unfezant",
- "blitzle": "Blitzle",
- "zebstrika": "Zebstrika",
- "roggenrola": "Roggenrola",
- "boldore": "Boldore",
- "gigalith": "Gigalith",
- "woobat": "Woobat",
- "swoobat": "Swoobat",
- "drilbur": "Drilbur",
- "excadrill": "Excadrill",
- "audino": "Audino",
- "timburr": "Timburr",
- "gurdurr": "Gurdurr",
- "conkeldurr": "Conkeldurr",
- "tympole": "Tympole",
- "palpitoad": "Palpitoad",
- "seismitoad": "Seismitoad",
- "throh": "Throh",
- "sawk": "Sawk",
- "sewaddle": "Sewaddle",
- "swadloon": "Swadloon",
- "leavanny": "Leavanny",
- "venipede": "Venipede",
- "whirlipede": "Whirlipede",
- "scolipede": "Scolipede",
- "cottonee": "Cottonee",
- "whimsicott": "Whimsicott",
- "petilil": "Petilil",
- "lilligant": "Lilligant",
- "basculin": "Basculin",
- "sandile": "Sandile",
- "krokorok": "Krokorok",
- "krookodile": "Krookodile",
- "darumaka": "Darumaka",
- "darmanitan": "Darmanitan",
- "maractus": "Maractus",
- "dwebble": "Dwebble",
- "crustle": "Crustle",
- "scraggy": "Scraggy",
- "scrafty": "Scrafty",
- "sigilyph": "Sigilyph",
- "yamask": "Yamask",
- "cofagrigus": "Cofagrigus",
- "tirtouga": "Tirtouga",
- "carracosta": "Carracosta",
- "archen": "Archen",
- "archeops": "Archeops",
- "trubbish": "Trubbish",
- "garbodor": "Garbodor",
+ "snivy": "Serpifeu",
+ "servine": "Efoserp",
+ "serperior": "Serpiroyal",
+ "tepig": "Floink",
+ "pignite": "Ferkokel",
+ "emboar": "Flambirex",
+ "oshawott": "Ottaro",
+ "dewott": "Zwottronin",
+ "samurott": "Admurai",
+ "patrat": "Nagelotz",
+ "watchog": "Kukmarda",
+ "lillipup": "Yorkleff",
+ "herdier": "Terribark",
+ "stoutland": "Bissbark",
+ "purrloin": "Felilou",
+ "liepard": "Kleoparda",
+ "pansage": "Vegimak",
+ "simisage": "Vegichita",
+ "pansear": "Grillmak",
+ "simisear": "Grillchita",
+ "panpour": "Sodamak",
+ "simipour": "Sodachita",
+ "munna": "Somniam",
+ "musharna": "Somnivora",
+ "pidove": "Dusslgurr",
+ "tranquill": "Navitaub",
+ "unfezant": "Fasasnob",
+ "blitzle": "Elezeba",
+ "zebstrika": "Zebritz",
+ "roggenrola": "Kiesling",
+ "boldore": "Sedimantur",
+ "gigalith": "Brockoloss",
+ "woobat": "Fleknoil",
+ "swoobat": "Fletiamo",
+ "drilbur": "Rotomurf",
+ "excadrill": "Stalobor",
+ "audino": "Ohrdoch",
+ "timburr": "Praktibalk",
+ "gurdurr": "Strepoli",
+ "conkeldurr": "Meistagriff",
+ "tympole": "Schallquap",
+ "palpitoad": "Membrana",
+ "seismitoad": "Branawarz",
+ "throh": "Juitesto",
+ "sawk": "Karadonis",
+ "sewaddle": "Strawickl",
+ "swadloon": "Folikon",
+ "leavanny": "Matrifol",
+ "venipede": "Toxiped",
+ "whirlipede": "Rollum",
+ "scolipede": "Cerapendra",
+ "cottonee": "Waumboll",
+ "whimsicott": "Elfun",
+ "petilil": "Lilminip",
+ "lilligant": "Dressella",
+ "basculin": "Barschuft",
+ "sandile": "Ganovil",
+ "krokorok": "Rokkaiman",
+ "krookodile": "Rabigator",
+ "darumaka": "Flampion",
+ "darmanitan": "Flampavian",
+ "maractus": "Maracamba",
+ "dwebble": "Lithomith",
+ "crustle": "Castellith",
+ "scraggy": "Zurrokex",
+ "scrafty": "Irokex",
+ "sigilyph": "Symvolara",
+ "yamask": "Makabaja",
+ "cofagrigus": "Echnatoll",
+ "tirtouga": "Galapaflos",
+ "carracosta": "Karippas",
+ "archen": "Flapteryx",
+ "archeops": "Aeropteryx",
+ "trubbish": "Unratütox",
+ "garbodor": "Deponitox",
"zorua": "Zorua",
"zoroark": "Zoroark",
- "minccino": "Minccino",
- "cinccino": "Cinccino",
- "gothita": "Gothita",
- "gothorita": "Gothorita",
- "gothitelle": "Gothitelle",
- "solosis": "Solosis",
- "duosion": "Duosion",
- "reuniclus": "Reuniclus",
- "ducklett": "Ducklett",
- "swanna": "Swanna",
- "vanillite": "Vanillite",
- "vanillish": "Vanillish",
- "vanilluxe": "Vanilluxe",
- "deerling": "Deerling",
- "sawsbuck": "Sawsbuck",
+ "minccino": "Picochilla",
+ "cinccino": "Chillabell",
+ "gothita": "Mollimorba",
+ "gothorita": "Hypnomorba",
+ "gothitelle": "Morbitesse",
+ "solosis": "Monozyto",
+ "duosion": "Mitodos",
+ "reuniclus": "Zytomega",
+ "ducklett": "Piccolente",
+ "swanna": "Swaroness",
+ "vanillite": "Gelatini",
+ "vanillish": "Gelatroppo",
+ "vanilluxe": "Gelatwino",
+ "deerling": "Sesokitz",
+ "sawsbuck": "Kronjuwild",
"emolga": "Emolga",
- "karrablast": "Karrablast",
- "escavalier": "Escavalier",
- "foongus": "Foongus",
- "amoonguss": "Amoonguss",
- "frillish": "Frillish",
- "jellicent": "Jellicent",
- "alomomola": "Alomomola",
- "joltik": "Joltik",
- "galvantula": "Galvantula",
- "ferroseed": "Ferroseed",
- "ferrothorn": "Ferrothorn",
- "klink": "Klink",
- "klang": "Klang",
- "klinklang": "Klinklang",
- "tynamo": "Tynamo",
- "eelektrik": "Eelektrik",
- "eelektross": "Eelektross",
- "elgyem": "Elgyem",
- "beheeyem": "Beheeyem",
- "litwick": "Litwick",
- "lampent": "Lampent",
- "chandelure": "Chandelure",
- "axew": "Axew",
- "fraxure": "Fraxure",
- "haxorus": "Haxorus",
- "cubchoo": "Cubchoo",
- "beartic": "Beartic",
- "cryogonal": "Cryogonal",
- "shelmet": "Shelmet",
- "accelgor": "Accelgor",
- "stunfisk": "Stunfisk",
- "mienfoo": "Mienfoo",
- "mienshao": "Mienshao",
- "druddigon": "Druddigon",
- "golett": "Golett",
- "golurk": "Golurk",
- "pawniard": "Pawniard",
- "bisharp": "Bisharp",
- "bouffalant": "Bouffalant",
- "rufflet": "Rufflet",
- "braviary": "Braviary",
- "vullaby": "Vullaby",
- "mandibuzz": "Mandibuzz",
- "heatmor": "Heatmor",
- "durant": "Durant",
- "deino": "Deino",
- "zweilous": "Zweilous",
- "hydreigon": "Hydreigon",
- "larvesta": "Larvesta",
- "volcarona": "Volcarona",
- "cobalion": "Cobalion",
- "terrakion": "Terrakion",
- "virizion": "Virizion",
- "tornadus": "Tornadus",
- "thundurus": "Thundurus",
+ "karrablast": "Laukaps",
+ "escavalier": "Cavalanzas",
+ "foongus": "Tarnpignon",
+ "amoonguss": "Hutsassa",
+ "frillish": "Quabbel",
+ "jellicent": "Apoquallyp",
+ "alomomola": "Mamolida",
+ "joltik": "Wattzapf",
+ "galvantula": "Voltula",
+ "ferroseed": "Kastadur",
+ "ferrothorn": "Tentantel",
+ "klink": "Klikk",
+ "klang": "Kliklak",
+ "klinklang": "Klikdiklak",
+ "tynamo": "Zapplardin",
+ "eelektrik": "Zapplalek",
+ "eelektross": "Zapplarang",
+ "elgyem": "Pygraulon",
+ "beheeyem": "Megalon",
+ "litwick": "Lichtel",
+ "lampent": "Laternecto",
+ "chandelure": "Skelabra",
+ "axew": "Milza",
+ "fraxure": "Scharfax",
+ "haxorus": "Maxax",
+ "cubchoo": "Petznief",
+ "beartic": "Siberio",
+ "cryogonal": "Frigometri",
+ "shelmet": "Schnuthelm",
+ "accelgor": "Hydragil",
+ "stunfisk": "Flunschlik",
+ "mienfoo": "Lin-Fu",
+ "mienshao": "Wie-Shu",
+ "druddigon": "Shardrago",
+ "golett": "Golbit",
+ "golurk": "Golgantes",
+ "pawniard": "Gladiantri",
+ "bisharp": "Ceasurio",
+ "bouffalant": "Bisofank",
+ "rufflet": "Geronimatz",
+ "braviary": "Washakwil",
+ "vullaby": "Skallyk",
+ "mandibuzz": "Grypheldis",
+ "heatmor": "Furnifraß",
+ "durant": "Fermicula",
+ "deino": "Kapuno",
+ "zweilous": "Duodino",
+ "hydreigon": "Trikephalo",
+ "larvesta": "Ignivor",
+ "volcarona": "Ramoth",
+ "cobalion": "Kobalium",
+ "terrakion": "Terrakium",
+ "virizion": "Viridium",
+ "tornadus": "Boreos",
+ "thundurus": "Voltolos",
"reshiram": "Reshiram",
"zekrom": "Zekrom",
- "landorus": "Landorus",
+ "landorus": "Dementeros",
"kyurem": "Kyurem",
"keldeo": "Keldeo",
"meloetta": "Meloetta",
"genesect": "Genesect",
- "chespin": "Chespin",
- "quilladin": "Quilladin",
- "chesnaught": "Chesnaught",
- "fennekin": "Fennekin",
- "braixen": "Braixen",
- "delphox": "Delphox",
- "froakie": "Froakie",
- "frogadier": "Frogadier",
- "greninja": "Greninja",
- "bunnelby": "Bunnelby",
- "diggersby": "Diggersby",
- "fletchling": "Fletchling",
- "fletchinder": "Fletchinder",
- "talonflame": "Talonflame",
- "scatterbug": "Scatterbug",
- "spewpa": "Spewpa",
+ "chespin": "Igamaro",
+ "quilladin": "Igastarnish",
+ "chesnaught": "Brigaron",
+ "fennekin": "Fynx",
+ "braixen": "Rutena",
+ "delphox": "Fennexis",
+ "froakie": "Froxy",
+ "frogadier": "Amphizel",
+ "greninja": "Quajutsu",
+ "bunnelby": "Scoppel",
+ "diggersby": "Grebbit",
+ "fletchling": "Dartiri",
+ "fletchinder": "Dartignis",
+ "talonflame": "Fiaro",
+ "scatterbug": "Purmel",
+ "spewpa": "Puponcho",
"vivillon": "Vivillon",
- "litleo": "Litleo",
- "pyroar": "Pyroar",
+ "litleo": "Leufeo",
+ "pyroar": "Pyroleo",
"flabebe": "Flabébé",
"floette": "Floette",
"florges": "Florges",
- "skiddo": "Skiddo",
- "gogoat": "Gogoat",
- "pancham": "Pancham",
- "pangoro": "Pangoro",
- "furfrou": "Furfrou",
- "espurr": "Espurr",
- "meowstic": "Meowstic",
- "honedge": "Honedge",
- "doublade": "Doublade",
- "aegislash": "Aegislash",
- "spritzee": "Spritzee",
- "aromatisse": "Aromatisse",
- "swirlix": "Swirlix",
- "slurpuff": "Slurpuff",
- "inkay": "Inkay",
- "malamar": "Malamar",
- "binacle": "Binacle",
- "barbaracle": "Barbaracle",
- "skrelp": "Skrelp",
- "dragalge": "Dragalge",
- "clauncher": "Clauncher",
- "clawitzer": "Clawitzer",
- "helioptile": "Helioptile",
- "heliolisk": "Heliolisk",
- "tyrunt": "Tyrunt",
- "tyrantrum": "Tyrantrum",
- "amaura": "Amaura",
- "aurorus": "Aurorus",
- "sylveon": "Sylveon",
- "hawlucha": "Hawlucha",
+ "skiddo": "Mähikel",
+ "gogoat": "Chevrumm",
+ "pancham": "Pam-Pam",
+ "pangoro": "Pandrago",
+ "furfrou": "Coiffwaff",
+ "espurr": "Psiau",
+ "meowstic": "Psiaugon",
+ "honedge": "Gramokles",
+ "doublade": "Duokles",
+ "aegislash": "Durengard",
+ "spritzee": "Parfi",
+ "aromatisse": "Parfinesse",
+ "swirlix": "Flauschling",
+ "slurpuff": "Sabbaione",
+ "inkay": "Iscalar",
+ "malamar": "Calamanero",
+ "binacle": "Bithora",
+ "barbaracle": "Thanathora",
+ "skrelp": "Algitt",
+ "dragalge": "Tandrak",
+ "clauncher": "Scampisto",
+ "clawitzer": "Wummer",
+ "helioptile": "Eguana",
+ "heliolisk": "Elezard",
+ "tyrunt": "Balgoras",
+ "tyrantrum": "Monargoras",
+ "amaura": "Amarino",
+ "aurorus": "Amagarga",
+ "sylveon": "Feelinara",
+ "hawlucha": "Resladero",
"dedenne": "Dedenne",
- "carbink": "Carbink",
- "goomy": "Goomy",
- "sliggoo": "Sliggoo",
- "goodra": "Goodra",
- "klefki": "Klefki",
- "phantump": "Phantump",
- "trevenant": "Trevenant",
- "pumpkaboo": "Pumpkaboo",
- "gourgeist": "Gourgeist",
- "bergmite": "Bergmite",
- "avalugg": "Avalugg",
- "noibat": "Noibat",
- "noivern": "Noivern",
+ "carbink": "Rocara",
+ "goomy": "Viscora",
+ "sliggoo": "Viscargot",
+ "goodra": "Viscogon",
+ "klefki": "Clavion",
+ "phantump": "Paragoni",
+ "trevenant": "Trombork",
+ "pumpkaboo": "Irrbis",
+ "gourgeist": "Pumpdjinn",
+ "bergmite": "Arktip",
+ "avalugg": "Arktilas",
+ "noibat": "eF-eM",
+ "noivern": "UHaFnir",
"xerneas": "Xerneas",
"yveltal": "Yveltal",
"zygarde": "Zygarde",
"diancie": "Diancie",
"hoopa": "Hoopa",
"volcanion": "Volcanion",
- "rowlet": "Rowlet",
- "dartrix": "Dartrix",
- "decidueye": "Decidueye",
- "litten": "Litten",
- "torracat": "Torracat",
- "incineroar": "Incineroar",
- "popplio": "Popplio",
- "brionne": "Brionne",
- "primarina": "Primarina",
- "pikipek": "Pikipek",
- "trumbeak": "Trumbeak",
- "toucannon": "Toucannon",
- "yungoos": "Yungoos",
- "gumshoos": "Gumshoos",
- "grubbin": "Grubbin",
- "charjabug": "Charjabug",
- "vikavolt": "Vikavolt",
- "crabrawler": "Crabrawler",
- "crabominable": "Crabominable",
- "oricorio": "Oricorio",
- "cutiefly": "Cutiefly",
- "ribombee": "Ribombee",
- "rockruff": "Rockruff",
- "lycanroc": "Lycanroc",
- "wishiwashi": "Wishiwashi",
- "mareanie": "Mareanie",
- "toxapex": "Toxapex",
- "mudbray": "Mudbray",
- "mudsdale": "Mudsdale",
- "dewpider": "Dewpider",
- "araquanid": "Araquanid",
- "fomantis": "Fomantis",
- "lurantis": "Lurantis",
- "morelull": "Morelull",
- "shiinotic": "Shiinotic",
- "salandit": "Salandit",
- "salazzle": "Salazzle",
- "stufful": "Stufful",
- "bewear": "Bewear",
- "bounsweet": "Bounsweet",
- "steenee": "Steenee",
- "tsareena": "Tsareena",
- "comfey": "Comfey",
- "oranguru": "Oranguru",
- "passimian": "Passimian",
- "wimpod": "Wimpod",
- "golisopod": "Golisopod",
- "sandygast": "Sandygast",
- "palossand": "Palossand",
- "pyukumuku": "Pyukumuku",
- "type_null": "Type: Null",
- "silvally": "Silvally",
- "minior": "Minior",
- "komala": "Komala",
+ "rowlet": "Bauz",
+ "dartrix": "Arboretoss",
+ "decidueye": "Silvarro",
+ "litten": "Flamiau",
+ "torracat": "Miezunder",
+ "incineroar": "Fuegro",
+ "popplio": "Robball",
+ "brionne": "Marikeck",
+ "primarina": "Primarene",
+ "pikipek": "Peppeck",
+ "trumbeak": "Trompeck",
+ "toucannon": "Tukanon",
+ "yungoos": "Mangunior",
+ "gumshoos": "Manguspektor",
+ "grubbin": "Mabula",
+ "charjabug": "Akkup",
+ "vikavolt": "Donarion",
+ "crabrawler": "Krabbox",
+ "crabominable": "Krawell",
+ "oricorio": "Choreogel",
+ "cutiefly": "Wommel",
+ "ribombee": "Bandelby",
+ "rockruff": "Wuffels",
+ "lycanroc": "Wolwerock",
+ "wishiwashi": "Lusardin",
+ "mareanie": "Garstella",
+ "toxapex": "Aggrostella",
+ "mudbray": "Pampuli",
+ "mudsdale": "Pampross",
+ "dewpider": "Araqua",
+ "araquanid": "Aranestro",
+ "fomantis": "Imantis",
+ "lurantis": "Mantidea",
+ "morelull": "Bubungus",
+ "shiinotic": "Lamellus",
+ "salandit": "Molunk",
+ "salazzle": "Amfira",
+ "stufful": "Velursi",
+ "bewear": "Kosturso",
+ "bounsweet": "Frubberl",
+ "steenee": "Frubaila",
+ "tsareena": "Fruyal",
+ "comfey": "Curelei",
+ "oranguru": "Kommandutan",
+ "passimian": "Quartermak",
+ "wimpod": "Reißlaus",
+ "golisopod": "Tectass",
+ "sandygast": "Sankabuh",
+ "palossand": "Colossand",
+ "pyukumuku": "Gufa",
+ "type_null": "Typ:Null",
+ "silvally": "Amigento",
+ "minior": "Meteno",
+ "komala": "Koalelu",
"turtonator": "Turtonator",
"togedemaru": "Togedemaru",
- "mimikyu": "Mimikyu",
- "bruxish": "Bruxish",
- "drampa": "Drampa",
- "dhelmise": "Dhelmise",
- "jangmo_o": "Jangmo-o",
- "hakamo_o": "Hakamo-o",
- "kommo_o": "Kommo-o",
- "tapu_koko": "Tapu Koko",
- "tapu_lele": "Tapu Lele",
- "tapu_bulu": "Tapu Bulu",
- "tapu_fini": "Tapu Fini",
+ "mimikyu": "Mimigma",
+ "bruxish": "Knirfish",
+ "drampa": "Sen-Long",
+ "dhelmise": "Moruda",
+ "jangmo_o": "Miniras",
+ "hakamo_o": "Mediras",
+ "kommo_o": "Grandiras",
+ "tapu_koko": "Kapu-Riki",
+ "tapu_lele": "Kapu-Fala",
+ "tapu_bulu": "Kapu-Toro",
+ "tapu_fini": "Kapu-Kime",
"cosmog": "Cosmog",
- "cosmoem": "Cosmoem",
+ "cosmoem": "Cosmovum",
"solgaleo": "Solgaleo",
"lunala": "Lunala",
- "nihilego": "Nihilego",
- "buzzwole": "Buzzwole",
- "pheromosa": "Pheromosa",
- "xurkitree": "Xurkitree",
- "celesteela": "Celesteela",
- "kartana": "Kartana",
- "guzzlord": "Guzzlord",
+ "nihilego": "Anego",
+ "buzzwole": "Masskito",
+ "pheromosa": "Schabelle",
+ "xurkitree": "Voltriant",
+ "celesteela": "Kaguron",
+ "kartana": "Katagami",
+ "guzzlord": "Schlingking",
"necrozma": "Necrozma",
"magearna": "Magearna",
"marshadow": "Marshadow",
- "poipole": "Poipole",
- "naganadel": "Naganadel",
- "stakataka": "Stakataka",
- "blacephalon": "Blacephalon",
+ "poipole": "Venicro",
+ "naganadel": "Agoyon",
+ "stakataka": "Muramura",
+ "blacephalon": "Kopplosio",
"zeraora": "Zeraora",
"meltan": "Meltan",
"melmetal": "Melmetal",
diff --git a/src/locales/de/tutorial.ts b/src/locales/de/tutorial.ts
new file mode 100644
index 00000000000..2773b6710ba
--- /dev/null
+++ b/src/locales/de/tutorial.ts
@@ -0,0 +1,42 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const tutorial: SimpleTranslationEntries = {
+ "intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
+ $This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
+ $The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
+ $If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`,
+
+ "accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`,
+
+ "menu": `From this menu you can access the settings.
+ $From the settings you can change game speed, window style, and other options.
+ $There are also various other features here, so be sure to check them all!`,
+
+ "starterSelect": `From this screen, you can select your starters.\nThese are your initial party members.
+ $Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
+ $You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
+ $The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`,
+
+ "pokerus": `A daily random 3 selectable starters have a purple border.
+ $If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`,
+
+ "statChange": `Stat changes persist across battles as long as your Pokémon aren't recalled.
+ $Your Pokémon are recalled before a trainer battle and before entering a new biome.
+ $You can also view the stat changes for the Pokémon on the field by holding C or Shift.`,
+
+ "selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
+ $These range from consumables, to Pokémon held items, to passive permanent items.
+ $Most non-consumable item effects will stack in various ways.
+ $Some items will only show up if they can be used, such as evolution items.
+ $You can also transfer held items between Pokémon using the transfer option.
+ $The transfer option will appear in the bottom right once you have obtained a held item.
+ $You may purchase consumable items with money, and a larger variety will be available the further you get.
+ $Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`,
+
+ "eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs.
+ $Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
+ $Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
+ $Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
+ $Some Pokémon can only even be obtained from eggs.
+ $There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`,
+} as const;
\ No newline at end of file
diff --git a/src/locales/en/battle.ts b/src/locales/en/battle.ts
new file mode 100644
index 00000000000..599672a1b19
--- /dev/null
+++ b/src/locales/en/battle.ts
@@ -0,0 +1,52 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const battle: SimpleTranslationEntries = {
+ "bossAppeared": "{{bossName}} appeared.",
+ "trainerAppeared": "{{trainerName}}\nwould like to battle!",
+ "singleWildAppeared": "A wild {{pokemonName}} appeared!",
+ "multiWildAppeared": "A wild {{pokemonName1}}\nand {{pokemonName2}} appeared!",
+ "playerComeBack": "Come back, {{pokemonName}}!",
+ "trainerComeBack": "{{trainerName}} withdrew {{pokemonName}}!",
+ "playerGo": "Go! {{pokemonName}}!",
+ "trainerGo": "{{trainerName}} sent out {{pokemonName}}!",
+ "switchQuestion": "Will you switch\n{{pokemonName}}?",
+ "trainerDefeated": `You defeated\n{{trainerName}}!`,
+ "pokemonCaught": "{{pokemonName}} was caught!",
+ "pokemon": "Pokémon",
+ "sendOutPokemon": "Go! {{pokemonName}}!",
+ "hitResultCriticalHit": "A critical hit!",
+ "hitResultSuperEffective": "It's super effective!",
+ "hitResultNotVeryEffective": "It's not very effective…",
+ "hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
+ "hitResultOneHitKO": "It's a one-hit KO!",
+ "attackFailed": "But it failed!",
+ "attackHitsCount": `Hit {{count}} time(s)!`,
+ "expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!",
+ "levelUp": "{{pokemonName}} grew to\nLv. {{level}}!",
+ "learnMove": "{{pokemonName}} learned\n{{moveName}}!",
+ "learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.",
+ "learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.",
+ "learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?",
+ "learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?",
+ "learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
+ "learnMoveForgetQuestion": "Which move should be forgotten?",
+ "learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
+ "levelCapUp": "The level cap\nhas increased to {{levelCap}}!",
+ "moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.",
+ "moveDisabled": "{{moveName}} is disabled!",
+ "noPokeballForce": "An unseen force\nprevents using Poké Balls.",
+ "noPokeballTrainer": "You can't catch\nanother trainer's Pokémon!",
+ "noPokeballMulti": "You can only throw a Poké Ball\nwhen there is one Pokémon remaining!",
+ "noPokeballStrong": "The target Pokémon is too strong to be caught!\nYou need to weaken it first!",
+ "noEscapeForce": "An unseen force\nprevents escape.",
+ "noEscapeTrainer": "You can't run\nfrom a trainer battle!",
+ "noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nprevents {{escapeVerb}}!",
+ "runAwaySuccess": "You got away safely!",
+ "runAwayCannotEscape": 'You can\'t escape!',
+ "escapeVerbSwitch": "switching",
+ "escapeVerbFlee": "fleeing",
+ "notDisabled": "{{moveName}} is disabled\nno more!",
+ "skipItemQuestion": "Are you sure you want to skip taking an item?",
+ "eggHatching": "Oh?",
+ "ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?"
+} as const;
\ No newline at end of file
diff --git a/src/locales/en/menu.ts b/src/locales/en/menu.ts
index bce59c02c11..887f3d87834 100644
--- a/src/locales/en/menu.ts
+++ b/src/locales/en/menu.ts
@@ -35,47 +35,13 @@ export const menu: SimpleTranslationEntries = {
"boyOrGirl": "Are you a boy or a girl?",
"boy": "Boy",
"girl": "Girl",
- "bossAppeared": "{{bossName}} appeared.",
- "trainerAppeared": "{{trainerName}}\nwould like to battle!",
- "singleWildAppeared": "A wild {{pokemonName}} appeared!",
- "multiWildAppeared": "A wild {{pokemonName1}}\nand {{pokemonName2}} appeared!",
- "playerComeBack": "Come back, {{pokemonName}}!",
- "trainerComeBack": "{{trainerName}} withdrew {{pokemonName}}!",
- "playerGo": "Go! {{pokemonName}}!",
- "trainerGo": "{{trainerName}} sent out {{pokemonName}}!",
- "switchQuestion": "Will you switch\n{{pokemonName}}?",
- "trainerDefeated": `You defeated\n{{trainerName}}!`,
- "pokemonCaught": "{{pokemonName}} was caught!",
- "pokemon": "Pokémon",
- "sendOutPokemon": "Go! {{pokemonName}}!",
- "attackFailed": "But it failed!",
- "attackHitsCount": `Hit {{count}} time(s)!`,
- "expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!",
- "levelUp": "{{pokemonName}} grew to\nLv. {{level}}!",
- "learnMove": "{{pokemonName}} learned\n{{moveName}}!",
- "learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.",
- "learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.",
- "learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?",
- "learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?",
- "learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
- "learnMoveForgetQuestion": "Which move should be forgotten?",
- "learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
- "levelCapUp": "The level cap\nhas increased to {{levelCap}}!",
- "moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.",
- "moveDisabled": "{{moveName}} is disabled!",
- "noPokeballForce": "An unseen force\nprevents using Poké Balls.",
- "noPokeballTrainer": "You can't catch\nanother trainer's Pokémon!",
- "noPokeballMulti": "You can only throw a Poké Ball\nwhen there is one Pokémon remaining!",
- "noPokeballStrong": "The target Pokémon is too strong to be caught!\nYou need to weaken it first!",
- "noEscapeForce": "An unseen force\nprevents escape.",
- "noEscapeTrainer": "You can't run\nfrom a trainer battle!",
- "noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nprevents {{escapeVerb}}!",
- "runAwaySuccess": "You got away safely!",
- "runAwayCannotEscape": 'You can\'t escape!',
- "escapeVerbSwitch": "switching",
- "escapeVerbFlee": "fleeing",
- "notDisabled": "{{moveName}} is disabled\nno more!",
- "skipItemQuestion": "Are you sure you want to skip taking an item?",
- "eggHatching": "Oh?",
- "ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?",
+ "dailyRankings": "Daily Rankings",
+ "weeklyRankings": "Weekly Rankings",
+ "noRankings": "No Rankings",
+ "loading": "Loading…",
+ "playersOnline": "Players Online",
+ "empty":"Empty",
+ "yes":"Yes",
+ "no":"No",
+ "confirmStartTeam":'Begin with these Pokémon?',
} as const;
\ No newline at end of file
diff --git a/src/locales/en/tutorial.ts b/src/locales/en/tutorial.ts
new file mode 100644
index 00000000000..2773b6710ba
--- /dev/null
+++ b/src/locales/en/tutorial.ts
@@ -0,0 +1,42 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const tutorial: SimpleTranslationEntries = {
+ "intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
+ $This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
+ $The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
+ $If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`,
+
+ "accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`,
+
+ "menu": `From this menu you can access the settings.
+ $From the settings you can change game speed, window style, and other options.
+ $There are also various other features here, so be sure to check them all!`,
+
+ "starterSelect": `From this screen, you can select your starters.\nThese are your initial party members.
+ $Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
+ $You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
+ $The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`,
+
+ "pokerus": `A daily random 3 selectable starters have a purple border.
+ $If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`,
+
+ "statChange": `Stat changes persist across battles as long as your Pokémon aren't recalled.
+ $Your Pokémon are recalled before a trainer battle and before entering a new biome.
+ $You can also view the stat changes for the Pokémon on the field by holding C or Shift.`,
+
+ "selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
+ $These range from consumables, to Pokémon held items, to passive permanent items.
+ $Most non-consumable item effects will stack in various ways.
+ $Some items will only show up if they can be used, such as evolution items.
+ $You can also transfer held items between Pokémon using the transfer option.
+ $The transfer option will appear in the bottom right once you have obtained a held item.
+ $You may purchase consumable items with money, and a larger variety will be available the further you get.
+ $Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`,
+
+ "eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs.
+ $Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
+ $Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
+ $Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
+ $Some Pokémon can only even be obtained from eggs.
+ $There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`,
+} as const;
\ No newline at end of file
diff --git a/src/locales/es/battle.ts b/src/locales/es/battle.ts
new file mode 100644
index 00000000000..1d4345a6f5b
--- /dev/null
+++ b/src/locales/es/battle.ts
@@ -0,0 +1,52 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const battle: SimpleTranslationEntries = {
+ "bossAppeared": "¡{{bossName}} te corta el paso!",
+ "trainerAppeared": "¡{{trainerName}}\nte desafía!",
+ "singleWildAppeared": "¡Un {{pokemonName}} salvaje te corta el paso!",
+ "multiWildAppeared": "¡Un {{pokemonName1}} y un {{pokemonName2}} salvajes\nte cortan el paso!",
+ "playerComeBack": "¡{{pokemonName}}, ven aquí!",
+ "trainerComeBack": "¡{{trainerName}} retira a {{pokemonName}} del combate!",
+ "playerGo": "¡Adelante, {{pokemonName}}!",
+ "trainerGo": "¡{{trainerName}} saca a {{pokemonName}}!",
+ "switchQuestion": "¿Quieres cambiar a\n{{pokemonName}}?",
+ "trainerDefeated": "¡Has derrotado a\n{{trainerName}}!",
+ "pokemonCaught": "¡{{pokemonName}} atrapado!",
+ "pokemon": "Pokémon",
+ "sendOutPokemon": "¡Adelante, {{pokemonName}}!",
+ "hitResultCriticalHit": "A critical hit!",
+ "hitResultSuperEffective": "It's super effective!",
+ "hitResultNotVeryEffective": "It's not very effective…",
+ "hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
+ "hitResultOneHitKO": "It's a one-hit KO!",
+ "attackFailed": "¡Pero ha fallado!",
+ "attackHitsCount": `N.º de golpes: {{count}}.`,
+ "expGain": "{{pokemonName}} ha ganado\n{{exp}} puntos de experiencia.",
+ "levelUp": "¡{{pokemonName}} ha subido al \nNv. {{level}}!",
+ "learnMove": "¡{{pokemonName}} ha aprendido {{moveName}}!",
+ "learnMovePrompt": "{{pokemonName}} quiere aprender {{moveName}}.",
+ "learnMoveLimitReached": "Pero, {{pokemonName}} ya conoce\ncuatro movimientos.",
+ "learnMoveReplaceQuestion": "¿Quieres sustituir uno de sus movimientos por {{moveName}}?",
+ "learnMoveStopTeaching": "¿Prefieres que no aprenda\n{{moveName}}?",
+ "learnMoveNotLearned": "{{pokemonName}} no ha aprendido {{moveName}}.",
+ "learnMoveForgetQuestion": "¿Qué movimiento quieres que olvide?",
+ "learnMoveForgetSuccess": "{{pokemonName}} ha olvidado cómo utilizar {{moveName}}.",
+ "levelCapUp": "¡Se ha incrementado el\nnivel máximo a {{levelCap}}!",
+ "moveNotImplemented": "{{moveName}} aún no está implementado y no se puede seleccionar.",
+ "moveDisabled": "!No puede usar {{moveName}} porque ha sido anulado!",
+ "noPokeballForce": "Una fuerza misteriosa\nte impide usar Poké Balls.",
+ "noPokeballTrainer": "¡No puedes atrapar a los\nPokémon de los demás!",
+ "noPokeballMulti": "¡No se pueden lanzar Poké Balls\ncuando hay más de un Pokémon!",
+ "noPokeballStrong": "¡Este Pokémon es demasiado fuerte para ser capturado!\nNecesitas bajarle los PS primero!",
+ "noEscapeForce": "Una fuerza misteriosa\nte impide huir.",
+ "noEscapeTrainer": "¡No puedes huir de los\ncombates contra Entrenadores!",
+ "noEscapePokemon": "¡El movimiento {{moveName}} de {{pokemonName}} impide la huida!",
+ "runAwaySuccess": "¡Escapas sin problemas!",
+ "runAwayCannotEscape": "¡No has podido escapar!",
+ "escapeVerbSwitch": "cambiar",
+ "escapeVerbFlee": "huir",
+ "notDisabled": "¡El movimiento {{moveName}}\nya no está anulado!",
+ "skipItemQuestion": "¿Estás seguro de que no quieres coger un objeto?",
+ "eggHatching": "¿Y esto?",
+ "ivScannerUseQuestion": "¿Quieres usar el Escáner de IVs en {{pokemonName}}?"
+} as const;
\ No newline at end of file
diff --git a/src/locales/es/command-ui-handler.ts b/src/locales/es/command-ui-handler.ts
index 237e779db03..66a892f8fd3 100644
--- a/src/locales/es/command-ui-handler.ts
+++ b/src/locales/es/command-ui-handler.ts
@@ -2,7 +2,7 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const commandUiHandler: SimpleTranslationEntries = {
"fight": "Luchar",
- "ball": "Ball",
+ "ball": "Balls",
"pokemon": "Pokémon",
"run": "Huir",
"actionMessage": "¿Qué debería\nhacer {{pokemonName}}?",
diff --git a/src/locales/es/fight-ui-handler.ts b/src/locales/es/fight-ui-handler.ts
new file mode 100644
index 00000000000..b431e3b7065
--- /dev/null
+++ b/src/locales/es/fight-ui-handler.ts
@@ -0,0 +1,6 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const fightUiHandler: SimpleTranslationEntries = {
+ "pp": "PP",
+ "power": "POTENCIA",
+} as const;
diff --git a/src/locales/es/menu.ts b/src/locales/es/menu.ts
index dc1c50b3821..5569c1e1668 100644
--- a/src/locales/es/menu.ts
+++ b/src/locales/es/menu.ts
@@ -19,47 +19,13 @@ export const menu: SimpleTranslationEntries = {
"boyOrGirl": "¿Eres un chico o una chica?",
"boy": "Chico",
"girl": "Chica",
- "bossAppeared": "¡{{bossName}} te corta el paso!",
- "trainerAppeared": "¡{{trainerName}}\nte desafía!",
- "singleWildAppeared": "¡Un {{pokemonName}} salvaje te corta el paso!",
- "multiWildAppeared": "¡Un {{pokemonName1}} y un {{pokemonName2}} salvajes\nte cortan el paso!",
- "playerComeBack": "¡{{pokemonName}}, ven aquí!",
- "trainerComeBack": "¡{{trainerName}} retira a {{pokemonName}} del combate!",
- "playerGo": "¡Adelante, {{pokemonName}}!",
- "trainerGo": "¡{{trainerName}} saca a {{pokemonName}}!",
- "switchQuestion": "¿Quieres cambiar a\n{{pokemonName}}?",
- "trainerDefeated": "¡Has derrotado a\n{{trainerName}}!",
- "pokemonCaught": "¡{{pokemonName}} atrapado!",
- "pokemon": "Pokémon",
- "sendOutPokemon": "¡Adelante, {{pokemonName}}!",
- "attackFailed": "¡Pero ha fallado!",
- "attackHitsCount": `N.º de golpes: {{count}}.`,
- "expGain": "{{pokemonName}} ha ganado\n{{exp}} puntos de experiencia.",
- "levelUp": "¡{{pokemonName}} ha subido al \nNv. {{level}}!",
- "learnMove": "¡{{pokemonName}} ha aprendido {{moveName}}!",
- "learnMovePrompt": "{{pokemonName}} quiere aprender {{moveName}}.",
- "learnMoveLimitReached": "Pero, {{pokemonName}} ya conoce\ncuatro movimientos.",
- "learnMoveReplaceQuestion": "¿Quieres sustituir uno de sus movimientos por {{moveName}}?",
- "learnMoveStopTeaching": "¿Prefieres que no aprenda\n{{moveName}}?",
- "learnMoveNotLearned": "{{pokemonName}} no ha aprendido {{moveName}}.",
- "learnMoveForgetQuestion": "¿Qué movimiento quieres que olvide?",
- "learnMoveForgetSuccess": "{{pokemonName}} ha olvidado cómo utilizar {{moveName}}.",
- "levelCapUp": "¡Se ha incrementado el\nnivel máximo a {{levelCap}}!",
- "moveNotImplemented": "{{moveName}} aún no está implementado y no se puede seleccionar.",
- "moveDisabled": "!No puede usar {{moveName}} porque ha sido anulado!",
- "noPokeballForce": "Una fuerza misteriosa\nte impide usar Poké Balls.",
- "noPokeballTrainer": "¡No puedes atrapar a los\nPokémon de los demás!",
- "noPokeballMulti": "¡No se pueden lanzar Poké Balls\ncuando hay más de un Pokémon!",
- "noPokeballStrong": "¡Este Pokémon es demasiado fuerte para ser capturado!\nNecesitas bajarle los PS primero!",
- "noEscapeForce": "Una fuerza misteriosa\nte impide huir.",
- "noEscapeTrainer": "¡No puedes huir de los\ncombates contra Entrenadores!",
- "noEscapePokemon": "¡El movimiento {{moveName}} de {{pokemonName}} impide la huida!",
- "runAwaySuccess": "¡Escapas sin problemas!",
- "runAwayCannotEscape": "¡No has podido escapar!",
- "escapeVerbSwitch": "cambiar",
- "escapeVerbFlee": "huir",
- "notDisabled": "¡El movimiento {{moveName}}\nya no está anulado!",
- "skipItemQuestion": "¿Estás seguro de que no quieres coger un objeto?",
- "eggHatching": "¿Y esto?",
- "ivScannerUseQuestion": "¿Quieres usar el Escáner de IVs en {{pokemonName}}?"
+ "dailyRankings": "Rankings Diarios",
+ "weeklyRankings": "Rankings Semanales",
+ "noRankings": "Sin Rankings",
+ "loading": "Cargando…",
+ "playersOnline": "Jugadores en Línea",
+ "empty":"Vacío",
+ "yes":"Sí",
+ "no":"No",
+ "confirmStartTeam":'¿Comenzar con estos Pokémon?',
} as const;
\ No newline at end of file
diff --git a/src/locales/es/tutorial.ts b/src/locales/es/tutorial.ts
new file mode 100644
index 00000000000..e179ca55cee
--- /dev/null
+++ b/src/locales/es/tutorial.ts
@@ -0,0 +1,49 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const tutorial: SimpleTranslationEntries = {
+ "intro": `¡Bienvenido/a a PokéRogue! Este es un fangame de Pokémon centrado en el combate con elementos roguelite.
+ $Este juego no está monetizado y no reclamamos ningún derecho de propiedad sobre Pokémon ni sobre ninguno de
+ $los recursos con copyright utilizados.
+ $El juego está en proceso, pero es completamente jugable.\nPara reportar bugs, por favor, hazlo en nuestra
+ $comunidad de Discord.
+ $Si el juego va lento, por favor, asegúrate de que tengas activada la opción 'Aceleración de gráficos' en los
+ $ajustes de tu navegador.`,
+
+ "accessMenu": `Para acceder al menú, pulsa M o Escape cuando\ntengas el control.
+ $El menú contiene la configuración y otras funciones.`,
+
+ "menu": `Desde este menú podrás acceder a la configuración.
+ $Podrás cambiar la velocidad del juego, el estilo de la ventana y demás.
+ $Hay más opciones, ¡así que pruébalas todas!`,
+
+ "starterSelect": `En esta pantalla podrás elegir tus iniciales. Estos serán tus\nmiembros de equipo al comenzar la partida.
+ $Cada inicial tiene un valor. Tu equipo puede contener hasta 6\nmiembros mientras el valor total no pase de 10.
+ $También puedes elegir su género, habilidad y forma\ndependiendo de las variantes que hayas conseguido.
+ $Los IVs de los iniciales corresponderán al valor más alto de\nlos Pokémon de la misma especie que hayas obtenido.
+ $¡Así que intenta conseguir muchos Pokémon de la misma\nespecie!`,
+
+ "pokerus": `Cada día, 3 iniciales aleatorios tendrán un borde morado.
+ $Si ves un inicial que tengas con este borde, prueba a\nañadirlo a tu equipo. ¡No olvides revisar sus datos!`,
+
+ "statChange": `Los cambios de estadísticas se mantienen entre combates\nmientras que el Pokémon no vuelva a la Poké Ball.
+ $Tus Pokémon vuelven a sus Poké Balls antes de combates contra entrenadores y de entrar a un nuevo bioma.
+ $También puedes ver los cambios de estadísticas del Pokémon en campo manteniendo pulsado C o Shift.`,
+
+ "selectItem": `Tras cada combate, tendrás la opción de elegir entre tres objetos aleatorios. Solo podrás escoger uno.
+ $Estos objetos pueden ser consumibles, objetos equipables u objetos pasivos permanentes (hasta acabar la partida).
+ $La mayoría de los efectos de objetos no consumibles se acumularán de varias maneras.
+ $Algunos objetos solo aparecerán si pueden ser utilizados, como las piedras evolutivas.
+ $También puedes transferir objetos equipados entre Pokémon utilizando la opción de transferir.
+ $La opción de transferir aparecerá en la parte inferior derecha una vez hayas obtenido un objeto equipable.
+ $También puedes comprar objetos consumibles con dinero y su variedad irá aumentando según tu avance.
+ $Asegúrate de comprar antes de escoger un objeto aleatorio, ya que se avanzará al siguiente combate.`,
+
+ "eggGacha": `En esta pantalla podrás canjear tus vales por huevos\nde Pokémon.
+ $Los huevos deben eclosionar y estarán más cerca de\nhacerlo tras cada combate.
+ $Los huevos más raros tardarán más en eclosionar.
+ $Los Pokémon que hayan salido del huevo no se\nañadirán a tu equipo, pero sí a tus iniciales.
+ $Los Pokémon salidos de un huevo suelen tener mejores\nIVs que los Pokémon salvajes.
+ $Algunos Pokémon solo pueden ser obtenidos de huevos.
+ $Hay 3 máquinas diferentes entre las que elegir, cada\nuna con zdiferentes bonificaciones.
+ $¡Así que escoge la que más te interese!`,
+} as const;
\ No newline at end of file
diff --git a/src/locales/fr/battle.ts b/src/locales/fr/battle.ts
new file mode 100644
index 00000000000..742a8f63d77
--- /dev/null
+++ b/src/locales/fr/battle.ts
@@ -0,0 +1,52 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const battle: SimpleTranslationEntries = {
+ "bossAppeared": "Un {{bossName}} apparaît.",
+ "trainerAppeared": "Un combat est lancé\npar {{trainerName}} !",
+ "singleWildAppeared": "Un {{pokemonName}} sauvage apparaît !",
+ "multiWildAppeared": "Un {{pokemonName1}} et un {{pokemonName2}}\nsauvages apparaissent !",
+ "playerComeBack": "{{pokemonName}}, on change !\nReviens !",
+ "trainerComeBack": "{{trainerName}} retire {{pokemonName}} !",
+ "playerGo": "{{pokemonName}} ! Go !",
+ "trainerGo": "{{pokemonName}} est envoyé par\n{{trainerName}} !",
+ "switchQuestion": "Voulez-vous changer\n{{pokemonName}} ?",
+ "trainerDefeated": `Vous avez battu\n{{trainerName}} !`,
+ "pokemonCaught": "Vous avez attrapé {{pokemonName}} !",
+ "pokemon": "Pokémon",
+ "sendOutPokemon": "{{pokemonName}} ! Go !",
+ "hitResultCriticalHit": "Coup critique !",
+ "hitResultSuperEffective": "C’est super efficace !",
+ "hitResultNotVeryEffective": "Ce n’est pas très efficace…",
+ "hitResultNoEffect": "Ça n’affecte pas {{pokemonName}}…",
+ "hitResultOneHitKO": "K.O. en un coup !",
+ "attackFailed": "Mais cela échoue !",
+ "attackHitsCount": `Touché {{count}} fois !`,
+ "expGain": "{{pokemonName}} gagne\n{{exp}} Points d’Exp !",
+ "levelUp": "{{pokemonName}} monte au\nN. {{level}} !",
+ "learnMove": "{{pokemonName}} apprend \n{{moveName}} !",
+ "learnMovePrompt": "{{pokemonName}} veut apprendre\n{{moveName}}.",
+ "learnMoveLimitReached": "Cependant, {{pokemonName}} connait\ndéjà quatre capacités.",
+ "learnMoveReplaceQuestion": "Voulez-vous oublier une capacité\net la remplacer par {{moveName}} ?",
+ "learnMoveStopTeaching": "Arrêter d’apprendre\n{{moveName}} ?",
+ "learnMoveNotLearned": "{{pokemonName}} n’a pas appris\n{{moveName}}.",
+ "learnMoveForgetQuestion": "Quelle capacité doit être oubliée ?",
+ "learnMoveForgetSuccess": "{{pokemonName}} oublie comment\nutiliser {{moveName}}.",
+ "levelCapUp": "La limite de niveau\na été augmentée à {{levelCap}} !",
+ "moveNotImplemented": "{{moveName}} n’est pas encore implémenté et ne peut pas être sélectionné.",
+ "moveDisabled": "{{moveName}} est sous entrave !",
+ "noPokeballForce": "Une force mystérieuse\nempêche l’utilisation des Poké Balls.",
+ "noPokeballTrainer": "Le Dresseur détourne la Ball\nVoler, c’est mal !",
+ "noPokeballMulti": "Impossible ! On ne peut pas viser\nquand il y a deux Pokémon !",
+ "noPokeballStrong": "Le Pokémon est trop fort pour être capturé !\nVous devez d’abord l’affaiblir !",
+ "noEscapeForce": "Une force mystérieuse\nempêche la fuite.",
+ "noEscapeTrainer": "On ne s’enfuit pas d’un\ncombat de Dresseurs !",
+ "noEscapePokemon": "{{moveName}} de {{pokemonName}}\nempêche {{escapeVerb}} !",
+ "runAwaySuccess": "Vous prenez la fuite !",
+ "runAwayCannotEscape": "Fuite impossible !",
+ "escapeVerbSwitch": "le changement",
+ "escapeVerbFlee": "la fuite",
+ "notDisabled": "{{moveName}} n’est plus sous entrave !",
+ "skipItemQuestion": "Êtes-vous sûr·e de ne pas vouloir prendre d’objet ?",
+ "eggHatching": "Oh ?",
+ "ivScannerUseQuestion": "Utiliser le Scanner d’IV sur {{pokemonName}} ?"
+} as const;
diff --git a/src/locales/fr/menu-ui-handler.ts b/src/locales/fr/menu-ui-handler.ts
index 684a8cc07ba..54328a05eb1 100644
--- a/src/locales/fr/menu-ui-handler.ts
+++ b/src/locales/fr/menu-ui-handler.ts
@@ -13,9 +13,9 @@ export const menuUiHandler: SimpleTranslationEntries = {
"LOG_OUT": "Déconnexion",
"slot": "Emplacement {{slotNumber}}",
"importSession": "Importer session",
- "importSlotSelect": "Sélectionnez l'emplacement vers lequel importer les données.",
+ "importSlotSelect": "Sélectionnez l’emplacement vers lequel importer les données.",
"exportSession": "Exporter session",
- "exportSlotSelect": "Sélectionnez l'emplacement depuis lequel exporter les données.",
+ "exportSlotSelect": "Sélectionnez l’emplacement depuis lequel exporter les données.",
"importData": "Importer données",
"exportData": "Exporter données",
"cancel": "Retour",
diff --git a/src/locales/fr/menu.ts b/src/locales/fr/menu.ts
index 015132bc6c5..7cea2c6d306 100644
--- a/src/locales/fr/menu.ts
+++ b/src/locales/fr/menu.ts
@@ -30,47 +30,13 @@ export const menu: SimpleTranslationEntries = {
"boyOrGirl": "Es-tu un garçon ou une fille ?",
"boy": "Garçon",
"girl": "Fille",
- "bossAppeared": "Un {{bossName}} apparaît.",
- "trainerAppeared": "Un combat est lancé\npar {{trainerName}} !",
- "singleWildAppeared": "Un {{pokemonName}} sauvage apparaît !",
- "multiWildAppeared": "Un {{pokemonName1}} et un {{pokemonName2}}\nsauvages apparaissent !",
- "playerComeBack": "{{pokemonName}}, on change !\nReviens !",
- "trainerComeBack": "{{trainerName}} retire {{pokemonName}} !",
- "playerGo": "{{pokemonName}} ! Go !",
- "trainerGo": "{{pokemonName}} est envoyé par\n{{trainerName}} !",
- "switchQuestion": "Voulez-vous changer\n{{pokemonName}} ?",
- "trainerDefeated": `Vous avez battu\n{{trainerName}} !`,
- "pokemonCaught": "Vous avez attrapé {{pokemonName}} !",
- "pokemon": "Pokémon",
- "sendOutPokemon": "{{pokemonName}} ! Go !",
- "attackFailed": "Mais cela échoue !",
- "attackHitsCount": `Touché {{count}} fois !`,
- "expGain": "{{pokemonName}} gagne\n{{exp}} Points d’Exp !",
- "levelUp": "{{pokemonName}} monte au\nN. {{level}} !",
- "learnMove": "{{pokemonName}} apprend \n{{moveName}} !",
- "learnMovePrompt": "{{pokemonName}} veut apprendre\n{{moveName}}.",
- "learnMoveLimitReached": "Cependant, {{pokemonName}} connait\ndéjà quatre capacités.",
- "learnMoveReplaceQuestion": "Voulez-vous oublier une capacité\net la remplacer par {{moveName}} ?",
- "learnMoveStopTeaching": "Arrêter d’apprendre\n{{moveName}} ?",
- "learnMoveNotLearned": "{{pokemonName}} n’a pas appris\n{{moveName}}.",
- "learnMoveForgetQuestion": "Quelle capacité doit être oubliée ?",
- "learnMoveForgetSuccess": "{{pokemonName}} oublie comment\nutiliser {{moveName}}.",
- "levelCapUp": "La limite de niveau\na été augmentée à {{levelCap}} !",
- "moveNotImplemented": "{{moveName}} n’est pas encore implémenté et ne peut pas être sélectionné.",
- "moveDisabled": "{{moveName}} est sous entrave !",
- "noPokeballForce": "Une force mystérieuse\nempêche l’utilisation des Poké Balls.",
- "noPokeballTrainer": "Le Dresseur détourne la Ball\nVoler, c’est mal !",
- "noPokeballMulti": "Impossible ! On ne peut pas viser\nquand il y a deux Pokémon!",
- "noPokeballStrong": "Le Pokémon est trop fort pour être capturé !\nVous devez d’abord l’affaiblir !",
- "noEscapeForce": "Une force mystérieuse\nempêche la fuite.",
- "noEscapeTrainer": "On ne s’enfuit pas d’un\ncombat de Dresseurs !",
- "noEscapePokemon": "{{moveName}} de {{pokemonName}}\nempêche {{escapeVerb}} !",
- "runAwaySuccess": "Vous prenez la fuite !",
- "runAwayCannotEscape": "Fuite impossible !",
- "escapeVerbSwitch": "le changement",
- "escapeVerbFlee": "la fuite",
- "notDisabled": "{{moveName}} n’est plus sous entrave !",
- "skipItemQuestion": "Êtes-vous sûr·e de ne pas vouloir prendre d’objet ?",
- "eggHatching": "Oh ?",
- "ivScannerUseQuestion": "Utiliser le Scanner d’IV sur {{pokemonName}} ?",
+ "dailyRankings": "Classement du Jour",
+ "weeklyRankings": "Classement de la Semaine",
+ "noRankings": "Pas de Classement",
+ "loading": "Chargement…",
+ "playersOnline": "Joueurs Connectés",
+ "empty":"Vide",
+ "yes":"Oui",
+ "no":"Non",
+ "confirmStartTeam":'Commencer avec ces Pokémon ?',
} as const;
diff --git a/src/locales/fr/move.ts b/src/locales/fr/move.ts
index ba3d1e2badc..b6d17252b59 100644
--- a/src/locales/fr/move.ts
+++ b/src/locales/fr/move.ts
@@ -390,7 +390,7 @@ export const move: MoveTranslationEntries = {
effect: "Le lanceur se relaxe et allège son corps pour beaucoup augmenter sa Vitesse."
},
"quickAttack": {
- name: "Vive-attaque",
+ name: "Vive-Attaque",
effect: "Le lanceur fonce sur la cible si rapidement qu’on parvient à peine à le discerner. Frappe en priorité."
},
"rage": {
@@ -1090,7 +1090,7 @@ export const move: MoveTranslationEntries = {
effect: "Imite la cible et copie son talent."
},
"wish": {
- name: "Voeu",
+ name: "Vœu",
effect: "Un vœu qui permet au lanceur ou au Pokémon entrant sur le terrain au tour suivant de récupérer la moitié des PV max du lanceur."
},
"assist": {
@@ -1410,7 +1410,7 @@ export const move: MoveTranslationEntries = {
effect: "Le lanceur projette une aura aquatique sur la cible, et peut la rendre confuse."
},
"doomDesire": {
- name: "Voeu Destructeur",
+ name: "Vœu Destructeur",
effect: "Le lanceur génère une sphère lumineuse qu’il projette sur l’ennemi deux tours plus tard."
},
"psychoBoost": {
@@ -1442,7 +1442,7 @@ export const move: MoveTranslationEntries = {
effect: "Le lanceur effectue une rotation rapide et frappe la cible. Plus la Vitesse du lanceur est basse par rapport à celle de la cible, plus il inflige de dégâts."
},
"healingWish": {
- name: "Voeu Soin",
+ name: "Vœu Soin",
effect: "Le lanceur tombe K.O. pour soigner les altérations de statut et les PV du Pokémon qui viendra le remplacer sur le terrain."
},
"brine": {
@@ -1786,7 +1786,7 @@ export const move: MoveTranslationEntries = {
effect: "Le lanceur fait flotter des pierres autour de la cible qui blessent tout adversaire entrant au combat."
},
"grassKnot": {
- name: "Noeud Herbe",
+ name: "Nœud Herbe",
effect: "Le lanceur fait des nœuds dans l’herbe pour faire trébucher la cible. Plus la cible est lourde, plus la puissance de cette capacité augmente."
},
"chatter": {
@@ -2030,7 +2030,7 @@ export const move: MoveTranslationEntries = {
effect: "Le lanceur emmène l’ennemi dans les airs au premier tour et le lâche dans le vide au second. L’ennemi saisi ne peut pas attaquer."
},
"shiftGear": {
- name: "Chgt Vitesse",
+ name: "Change-Vitesse",
effect: "Le lanceur fait tourner ses engrenages. Cela augmente son Attaque et augmente beaucoup sa Vitesse."
},
"circleThrow": {
@@ -2858,7 +2858,7 @@ export const move: MoveTranslationEntries = {
effect: "Le lanceur attaque avec un rayon de lumière mystérieux. Ignore le talent de la cible."
},
"tearfulLook": {
- name: "Larme à l’Oeil",
+ name: "Larme à l’Œil",
effect: "Le lanceur regarde la cible avec des yeux remplis de larmes. Celle-ci perd toute combativité et voit son Attaque et son Attaque Spéciale baisser."
},
"zingZap": {
@@ -3362,7 +3362,7 @@ export const move: MoveTranslationEntries = {
effect: "Le lanceur entaille la cible avec ses ailes renforcées par une émanation psychique. Taux de critiques élevé. Cela augmente la Vitesse du lanceur."
},
"bitterMalice": {
- name: "Coeur de Rancoeur",
+ name: "Cœur de Rancœur",
effect: "Une rancœur glaciale frappe la cible et baisse son Attaque."
},
"shelter": {
diff --git a/src/locales/fr/pokemon.ts b/src/locales/fr/pokemon.ts
index fa543852b19..fc0ed5e1074 100644
--- a/src/locales/fr/pokemon.ts
+++ b/src/locales/fr/pokemon.ts
@@ -75,7 +75,7 @@ export const pokemon: SimpleTranslationEntries = {
"tentacool": "Tentacool",
"tentacruel": "Tentacruel",
"geodude": "Racaillou",
- "graveler": "Gravalanche",
+ "graveler": "Gravalanch",
"golem": "Grolem",
"ponyta": "Ponyta",
"rapidash": "Galopa",
@@ -279,7 +279,7 @@ export const pokemon: SimpleTranslationEntries = {
"taillow": "Nirondelle",
"swellow": "Hélédelle",
"wingull": "Goélise",
- "pelipper": "Békipan",
+ "pelipper": "Bekipan",
"ralts": "Tarsal",
"kirlia": "Kirlia",
"gardevoir": "Gardevoir",
@@ -307,7 +307,7 @@ export const pokemon: SimpleTranslationEntries = {
"aron": "Galekid",
"lairon": "Galegon",
"aggron": "Galeking",
- "meditite": "Méditika",
+ "meditite": "Méditikka",
"medicham": "Charmina",
"electrike": "Dynavolt",
"manectric": "Élecsprint",
@@ -573,7 +573,7 @@ export const pokemon: SimpleTranslationEntries = {
"zorua": "Zorua",
"zoroark": "Zoroark",
"minccino": "Chinchidou",
- "cinccino": "Pasmilla",
+ "cinccino": "Pashmilla",
"gothita": "Scrutella",
"gothorita": "Mesmérella",
"gothitelle": "Sidérella",
@@ -766,7 +766,7 @@ export const pokemon: SimpleTranslationEntries = {
"tsareena": "Sucreine",
"comfey": "Guérilande",
"oranguru": "Gouroutan",
- "passimian": "Quatermac",
+ "passimian": "Quartermac",
"wimpod": "Sovkipou",
"golisopod": "Sarmuraï",
"sandygast": "Bacabouh",
diff --git a/src/locales/fr/tutorial.ts b/src/locales/fr/tutorial.ts
new file mode 100644
index 00000000000..bcd76d61da2
--- /dev/null
+++ b/src/locales/fr/tutorial.ts
@@ -0,0 +1,47 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const tutorial: SimpleTranslationEntries = {
+ "intro": `Bienvenue dans PokéRogue, un fangame axé sur les combats Pokémon avec des éléments roguelite !
+ $Ce jeu n’est pas monétisé et nous ne prétendons pas à la propriété de Pokémon, ni des éléments sous copyright
+ $utilisés.
+ $Ce jeu est toujours en développement, mais entièrement jouable.
+ $Tout signalement de bugs passe par le serveur Discord.
+ $Si le jeu est lent, vérifiez que l’Accélération Matérielle est activée dans les paramètres du navigateur.`,
+
+ "accessMenu": `Accédez au menu avec M ou Échap lors de l’attente d’une\naction.
+ $Il contient les paramètres et diverses fonctionnalités`,
+
+ "menu": `Vous pouvez accéder aux paramètres depuis ce menu.
+ $Vous pouvez entre autres y changer la vitesse du jeu ou le style de fenêtre.
+ $Il y a également toute une variété d’autres fonctionnalités,
+ $jetez-y un œil !`,
+
+ "starterSelect": `Choisissez vos starters depuis cet écran.\nIls formeront votre équipe de départ.
+ $Chacun possède une valeur. Votre équipe peut avoir jusqu’à\n6 membres, tant que vous ne dépassez pas un cout de 10.
+ $Vous pouvez aussi choisir le sexe, le talent et la forme en\nfonction des variants déjà capturés ou éclos.
+ $Les IVs d’un starter sont les meilleurs de tous ceux de son\nespèce déjà obtenus. Essayez donc d’en obtenir plusieurs !`,
+
+ "pokerus": `Chaque jour, 3 starters tirés aléatoirement ont un contour
+ $violet. Si un starter que vous possédez l’a, essayez de
+ $l’ajouter à votre équipe. Vérifiez bien son résumé !`,
+
+ "statChange": `Les changements de stats restent à travers les combats tant que le Pokémon n’est pas rappelé.
+ $Vos Pokémon sont rappelés avant un combat de Dresseur et avant d’entrer dans un nouveau biome.
+ $Vous pouvez également voir en combat les changements de stats d’un Pokémon en maintenant C ou Maj.`,
+
+ "selectItem": `Après chaque combat, vous avez le choix entre 3 objets\ntirés au sort. Vous ne pouvez en prendre qu’un.
+ $Cela peut être des objets consommables, des objets à\nfaire tenir, ou des objets passifs aux effets permanents.
+ $La plupart des effets des objets non-consommables se cumuleront de diverses manières.
+ $Certains objets apparaîtront s’ils peuvent être utilisés, comme les objets d’évolution.
+ $Vous pouvez aussi transférer des objets tenus entre Pokémon en utilisant l’option de transfert.
+ $L’option de transfert apparaît en bas à droite dès que vous avez obtenu un objet à faire tenir.
+ $Vous pouvez acheter des consommables avec de l’argent.\nPlus vous progressez, plus le choix sera varié.
+ $Choisir un des objets gratuits déclenchera le prochain combat, donc faites bien tous vos achats avant.`,
+
+ "eggGacha": `Depuis cet écran, vous pouvez échanger vos coupons\ncontre des Œufs de Pokémon.
+ $Les Œufs éclosent après avoir remporté un certain nombre\nde combats. Les plus rares mettent plus de temps.
+ $Les Pokémon éclos ne rejoindront pas votre équipe,\nmais seront ajoutés à vos starters.
+ $Les Pokémon issus d’Œufs ont généralement de\nmeilleurs IVs que les Pokémon sauvages.
+ $Certains Pokémon ne peuvent être obtenus\nque dans des Œufs.
+ $Il y a 3 différentes machines à actionner avec différents\nbonus, prenez celle qui vous convient le mieux !`,
+} as const;
diff --git a/src/locales/it/battle.ts b/src/locales/it/battle.ts
new file mode 100644
index 00000000000..599672a1b19
--- /dev/null
+++ b/src/locales/it/battle.ts
@@ -0,0 +1,52 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const battle: SimpleTranslationEntries = {
+ "bossAppeared": "{{bossName}} appeared.",
+ "trainerAppeared": "{{trainerName}}\nwould like to battle!",
+ "singleWildAppeared": "A wild {{pokemonName}} appeared!",
+ "multiWildAppeared": "A wild {{pokemonName1}}\nand {{pokemonName2}} appeared!",
+ "playerComeBack": "Come back, {{pokemonName}}!",
+ "trainerComeBack": "{{trainerName}} withdrew {{pokemonName}}!",
+ "playerGo": "Go! {{pokemonName}}!",
+ "trainerGo": "{{trainerName}} sent out {{pokemonName}}!",
+ "switchQuestion": "Will you switch\n{{pokemonName}}?",
+ "trainerDefeated": `You defeated\n{{trainerName}}!`,
+ "pokemonCaught": "{{pokemonName}} was caught!",
+ "pokemon": "Pokémon",
+ "sendOutPokemon": "Go! {{pokemonName}}!",
+ "hitResultCriticalHit": "A critical hit!",
+ "hitResultSuperEffective": "It's super effective!",
+ "hitResultNotVeryEffective": "It's not very effective…",
+ "hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
+ "hitResultOneHitKO": "It's a one-hit KO!",
+ "attackFailed": "But it failed!",
+ "attackHitsCount": `Hit {{count}} time(s)!`,
+ "expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!",
+ "levelUp": "{{pokemonName}} grew to\nLv. {{level}}!",
+ "learnMove": "{{pokemonName}} learned\n{{moveName}}!",
+ "learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.",
+ "learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.",
+ "learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?",
+ "learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?",
+ "learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
+ "learnMoveForgetQuestion": "Which move should be forgotten?",
+ "learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
+ "levelCapUp": "The level cap\nhas increased to {{levelCap}}!",
+ "moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.",
+ "moveDisabled": "{{moveName}} is disabled!",
+ "noPokeballForce": "An unseen force\nprevents using Poké Balls.",
+ "noPokeballTrainer": "You can't catch\nanother trainer's Pokémon!",
+ "noPokeballMulti": "You can only throw a Poké Ball\nwhen there is one Pokémon remaining!",
+ "noPokeballStrong": "The target Pokémon is too strong to be caught!\nYou need to weaken it first!",
+ "noEscapeForce": "An unseen force\nprevents escape.",
+ "noEscapeTrainer": "You can't run\nfrom a trainer battle!",
+ "noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nprevents {{escapeVerb}}!",
+ "runAwaySuccess": "You got away safely!",
+ "runAwayCannotEscape": 'You can\'t escape!',
+ "escapeVerbSwitch": "switching",
+ "escapeVerbFlee": "fleeing",
+ "notDisabled": "{{moveName}} is disabled\nno more!",
+ "skipItemQuestion": "Are you sure you want to skip taking an item?",
+ "eggHatching": "Oh?",
+ "ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?"
+} as const;
\ No newline at end of file
diff --git a/src/locales/it/fight-ui-handler.ts b/src/locales/it/fight-ui-handler.ts
new file mode 100644
index 00000000000..1ce9e0317bf
--- /dev/null
+++ b/src/locales/it/fight-ui-handler.ts
@@ -0,0 +1,6 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const fightUiHandler: SimpleTranslationEntries = {
+ "pp": "PP",
+ "power": "POWER",
+} as const;
\ No newline at end of file
diff --git a/src/locales/it/menu.ts b/src/locales/it/menu.ts
index 872315d77c0..33c128c137e 100644
--- a/src/locales/it/menu.ts
+++ b/src/locales/it/menu.ts
@@ -1,10 +1,47 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
+/**
+ * The menu namespace holds most miscellaneous text that isn't directly part of the game's
+ * contents or directly related to Pokemon data. This includes menu navigation, settings,
+ * account interactions, descriptive text, etc.
+ */
export const menu: SimpleTranslationEntries = {
"cancel": "Annulla",
"continue": "Continua",
"newGame": "Nuova Partita",
"loadGame": "Carica Partita",
"dailyRun": "Corsa Giornaliera (Beta)",
- "selectGameMode": "Seleziona una modalità di gioco."
+ "selectGameMode": "Seleziona una modalità di gioco.",
+ "logInOrCreateAccount": "Log in or create an account to start. No email required!",
+ "username": "Username",
+ "password": "Password",
+ "login": "Login",
+ "register": "Register",
+ "emptyUsername": "Username must not be empty",
+ "invalidLoginUsername": "The provided username is invalid",
+ "invalidRegisterUsername": "Username must only contain letters, numbers, or underscores",
+ "invalidLoginPassword": "The provided password is invalid",
+ "invalidRegisterPassword": "Password must be 6 characters or longer",
+ "usernameAlreadyUsed": "The provided username is already in use",
+ "accountNonExistent": "The provided user does not exist",
+ "unmatchingPassword": "The provided password does not match",
+ "passwordNotMatchingConfirmPassword": "Password must match confirm password",
+ "confirmPassword": "Confirm Password",
+ "registrationAgeWarning": "By registering, you confirm you are of 13 years of age or older.",
+ "backToLogin": "Back to Login",
+ "failedToLoadSaveData": "Failed to load save data. Please reload the page.\nIf this continues, please contact the administrator.",
+ "sessionSuccess": "Session loaded successfully.",
+ "failedToLoadSession": "Your session data could not be loaded.\nIt may be corrupted.",
+ "boyOrGirl": "Are you a boy or a girl?",
+ "boy": "Boy",
+ "girl": "Girl",
+ "dailyRankings": "Daily Rankings",
+ "weeklyRankings": "Weekly Rankings",
+ "noRankings": "No Rankings",
+ "loading": "Loading…",
+ "playersOnline": "Players Online",
+ "empty":"Empty",
+ "yes":"Yes",
+ "no":"No",
+ "confirmStartTeam":'Begin with these Pokémon?',
} as const;
\ No newline at end of file
diff --git a/src/locales/it/pokemon-stat.ts b/src/locales/it/pokemon-stat.ts
index 7a209461b11..b2c023aa383 100644
--- a/src/locales/it/pokemon-stat.ts
+++ b/src/locales/it/pokemon-stat.ts
@@ -1,16 +1,16 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const pokemonStat: SimpleTranslationEntries = {
- "HP": "Max. HP",
- "HPshortened": "MaxHP",
- "ATK": "Attack",
- "ATKshortened": "Atk",
- "DEF": "Defense",
- "DEFshortened": "Def",
- "SPATK": "Sp. Atk",
- "SPATKshortened": "SpAtk",
- "SPDEF": "Sp. Def",
- "SPDEFshortened": "SpDef",
- "SPD": "Speed",
- "SPDshortened": "Spd"
-} as const;
\ No newline at end of file
+ "HP": "PS Max",
+ "HPshortened": "PS",
+ "ATK": "Attacco",
+ "ATKshortened": "Att",
+ "DEF": "Difesa",
+ "DEFshortened": "Dif",
+ "SPATK": "Att. Sp.",
+ "SPATKshortened": "AttSp",
+ "SPDEF": "Dif. Sp.",
+ "SPDEFshortened": "DifSp",
+ "SPD": "Velocità",
+ "SPDshortened": "Vel"
+} as const;
diff --git a/src/locales/it/tutorial.ts b/src/locales/it/tutorial.ts
new file mode 100644
index 00000000000..898dcead8a4
--- /dev/null
+++ b/src/locales/it/tutorial.ts
@@ -0,0 +1,42 @@
+import { SimpleTranslationEntries } from "#app/plugins/i18n";
+
+export const tutorial: SimpleTranslationEntries = {
+ "intro": `Benvenuto in PokéRogue! Questo gioco si concentra sulle battaglie, con elementi roguelite.
+ $Questo gioco non è monetizzato e non siamo proprietari di Pokemon e Assets presenti nel gioco.
+ $Il gioco è work-in-progress ma giocabile al 100%.\nPer reportare eventuali bugs è possibile discuterne sul nostro Discord.
+ $Se il game risulta 'lento', assicurati di aver abilitato l'Accelerazione Hardware nelle impostazioni del tuo Browser`,
+
+ "accessMenu": `Per accedere al menù, press M o Esc.\nDal menù puoi cambiare impostazioni, controllare la wiki e accedere a varie features.`,
+
+ "menu": `Da questo menù puoi accedere alle impostazioni.
+ $Dalle impostazioni puoi cambiare velocità di gioco, stile di finestra e altre opzioni.
+ $Ci sono varie funzionalità, controlla bene e non perderti nulla!`,
+
+ "starterSelect": `Da questa schermata puoi selezionare il tuo starter.\nQuesti sono i membri iniziali del tuo parti.
+ $Ogni starter ha un valore. Puoi avere fino a \n6 Pokèmon, avendo a disposizione un massimo di 10 punti.
+ $Puoi anche selezionare Sesso, Abilità, e Forma a seconda delle\nvarianti che hai catturato o schiuso.
+ $Le IVs di una specie sono le migliori rispetto a tutte quelle che hai\ncatturato o schiuso, quindi prova a catturarne il piu possibile!`,
+
+ "pokerus": `Giornalmente 3 Starter casuali disponibili avranno il bordo viola.
+ $Se possiedi uno di questi starter,\nprova ad aggiungerlo al party. Ricorda di controllare le info!`,
+
+ "statChange": `I cambiamenti alle statistiche persistono fintanto che i tuoi pokèmon resteranno in campo.
+ $I tuoi pokemon verranno richiamati quando incontrerai un allenatore o al cambiamento di bioma.
+ $Puoi anche vedere i cambiamenti alle statistiche in corso tenendo premuto C o Shift`,
+
+ "selectItem": `Dopo ogni battaglia avrai disponibili tre item.\nPotrai prenderne solo uno.
+ $Questi spaziano tra consumabili, item tenuti da Pokèmon o con un effetto passivo permanente.
+ $La maggior parte degli Item non Consumabili possono stackare in diversi modi.
+ $Alcuni Item risulteranno disponibili solo se possono essere usati, come Item Evolutivi.
+ $Puoi anche passare un Item tenuto da un Pokèmon ad un altro attraverso l'opzione 'trasferisci strumento'.
+ $L'opzione 'trasferisci strumento' sarà disponibile solo dopo aver assegnato uno strumento ad un Pokèmon.
+ $Puoi acquistare consumabili con le monete, progredendo saranno poi disponibili ulteriori oggetti.
+ $Assicurati di fare un acquisto prima di selezionare un item casuale, poichè passerai subito alla lotta successiva.`,
+
+ "eggGacha": `Da questa schermata, puoi riscattare i tuoi vouchers in cambio di\nuova Pokèmon.
+ $Le uova vanno schiuse e saranno sempre più vicine alla schiusura dopo\nogni battaglia. Le uova più rare impiegheranno più battaglie per la schiusura.
+ $I Pokémon schiusi non verranno aggiunti alla tua squadra, saranno\naggiunti ai tuoi starters.
+ $I Pokémon schiusi generalmente hanno IVs migliori rispetto ai\n Pokémon selvatici.
+ $Alcuni Pokémon possono essere ottenuti solo tramite uova.
+ $Ci sono 3 diversi macchinari con differenti\nbonus, scegli quello che preferisci!`,
+} as const;
\ No newline at end of file
diff --git a/src/main.ts b/src/main.ts
index 6a00693fc71..b3b4d5f3cc6 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -9,6 +9,23 @@ import BBCodeText from 'phaser3-rex-plugins/plugins/bbcodetext';
import TransitionImagePackPlugin from 'phaser3-rex-plugins/templates/transitionimagepack/transitionimagepack-plugin.js';
import { LoadingScene } from './loading-scene';
+
+// Catch global errors and display them in an alert so users can report the issue.
+window.onerror = function (message, source, lineno, colno, error) {
+ console.error(error);
+ let errorString = `Received unhandled error. Open browser console and click OK to see details.\nError: ${message}\nSource: ${source}\nLine: ${lineno}\nColumn: ${colno}\nStack: ${error.stack}`;
+ //alert(errorString);
+ // Avoids logging the error a second time.
+ return true;
+};
+
+// Catch global promise rejections and display them in an alert so users can report the issue.
+window.addEventListener('unhandledrejection', (event) => {
+ let errorString = `Received unhandled promise rejection. Open browser console and click OK to see details.\nReason: ${event.reason}`;
+ console.error(event.reason);
+ //alert(errorString);
+});
+
const config: Phaser.Types.Core.GameConfig = {
type: Phaser.WEBGL,
parent: 'app',
diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts
index 6237e8b5a50..4229b8be3b7 100644
--- a/src/modifier/modifier-type.ts
+++ b/src/modifier/modifier-type.ts
@@ -1058,7 +1058,6 @@ const modifierPool: ModifierPool = {
new WeightedModifierType(modifierTypes.ATTACK_TYPE_BOOSTER, 10),
new WeightedModifierType(modifierTypes.TM_ULTRA, 8),
new WeightedModifierType(modifierTypes.RARER_CANDY, 4),
- new WeightedModifierType(modifierTypes.SOOTHE_BELL, (party: Pokemon[]) => party.find(p => (pokemonEvolutions.hasOwnProperty(p.species.speciesId) && pokemonEvolutions[p.species.speciesId].find(e => e.condition && e.condition instanceof SpeciesFriendshipEvolutionCondition)) || p.moveset.find(m => m.moveId === Moves.RETURN)) ? 16 : 0, 16),
new WeightedModifierType(modifierTypes.GOLDEN_PUNCH, 2),
new WeightedModifierType(modifierTypes.IV_SCANNER, 4),
new WeightedModifierType(modifierTypes.EXP_CHARM, 8),
@@ -1078,6 +1077,7 @@ const modifierPool: ModifierPool = {
new WeightedModifierType(modifierTypes.BATON, 2),
new WeightedModifierType(modifierTypes.SOUL_DEW, 8),
//new WeightedModifierType(modifierTypes.OVAL_CHARM, 6),
+ new WeightedModifierType(modifierTypes.SOOTHE_BELL, 4),
new WeightedModifierType(modifierTypes.ABILITY_CHARM, 6),
new WeightedModifierType(modifierTypes.FOCUS_BAND, 5),
new WeightedModifierType(modifierTypes.KINGS_ROCK, 3),
diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts
index d8fad1466b9..88b009d3a48 100644
--- a/src/modifier/modifier.ts
+++ b/src/modifier/modifier.ts
@@ -1111,9 +1111,7 @@ export class PokemonLevelIncrementModifier extends ConsumablePokemonModifier {
pokemon.levelExp = 0;
}
- const friendshipIncrease = new Utils.IntegerHolder(5);
- pokemon.scene.applyModifier(PokemonFriendshipBoosterModifier, true, pokemon, friendshipIncrease);
- pokemon.friendship = Math.min(pokemon.friendship + friendshipIncrease.value, 255);
+ pokemon.addFriendship(5);
pokemon.scene.unshiftPhase(new LevelUpPhase(pokemon.scene, pokemon.scene.getParty().indexOf(pokemon), pokemon.level - levelCount.value, pokemon.level));
@@ -1392,13 +1390,14 @@ export class PokemonFriendshipBoosterModifier extends PokemonHeldItemModifier {
}
apply(args: any[]): boolean {
- (args[1] as Utils.IntegerHolder).value *= 1 + 0.5 * this.getStackCount();
+ const friendship = args[1] as Utils.IntegerHolder;
+ friendship.value = Math.floor(friendship.value * (1 + 0.5 * this.getStackCount()));
return true;
}
getMaxHeldItemCount(pokemon: Pokemon): integer {
- return 5;
+ return 3;
}
}
diff --git a/src/overrides.ts b/src/overrides.ts
new file mode 100644
index 00000000000..732b1a5a45b
--- /dev/null
+++ b/src/overrides.ts
@@ -0,0 +1,23 @@
+import { Species } from './data/enums/species';
+import { Abilities } from "./data/enums/abilities";
+import { Biome } from "./data/enums/biome";
+import { Moves } from "./data/enums/moves";
+import { WeatherType } from "./data/weather";
+
+export const SEED_OVERRIDE = '';
+export const STARTER_SPECIES_OVERRIDE = 0;
+export const STARTER_FORM_OVERRIDE = 0;
+export const STARTING_LEVEL_OVERRIDE = 0;
+export const STARTING_WAVE_OVERRIDE = 0;
+export const STARTING_BIOME_OVERRIDE = Biome.TOWN;
+export const STARTING_MONEY_OVERRIDE = 0;
+export const WEATHER_OVERRIDE = WeatherType.NONE;
+
+export const ABILITY_OVERRIDE = Abilities.NONE;
+export const MOVE_OVERRIDE = Moves.NONE;
+export const OPP_SPECIES_OVERRIDE = 0;
+export const OPP_ABILITY_OVERRIDE = Abilities.NONE;
+export const OPP_MOVE_OVERRIDE = Moves.NONE;
+
+export const OPP_SHINY_OVERRIDE = false;
+export const OPP_VARIANT_OVERRIDE = 0;
diff --git a/src/phases.ts b/src/phases.ts
index 9b288510dab..3d80b22ebd2 100644
--- a/src/phases.ts
+++ b/src/phases.ts
@@ -1,12 +1,12 @@
-import BattleScene, { STARTER_FORM_OVERRIDE, STARTER_SPECIES_OVERRIDE, bypassLogin, startingWave } from "./battle-scene";
+import BattleScene, { bypassLogin, startingWave } from "./battle-scene";
import { default as Pokemon, PlayerPokemon, EnemyPokemon, PokemonMove, MoveResult, DamageResult, FieldPosition, HitResult, TurnMove } from "./field/pokemon";
import * as Utils from './utils';
import { Moves } from "./data/enums/moves";
-import { allMoves, applyMoveAttrs, BypassSleepAttr, ChargeAttr, applyFilteredMoveAttrs, HitsTagAttr, MissEffectAttr, MoveAttr, MoveEffectAttr, MoveFlags, MultiHitAttr, OverrideMoveEffectAttr, VariableAccuracyAttr, MoveTarget, OneHitKOAttr, getMoveTargets, MoveTargetSet, MoveEffectTrigger, CopyMoveAttr, AttackMove, SelfStatusMove, DelayedAttackAttr, RechargeAttr, PreMoveMessageAttr, HealStatusEffectAttr, IgnoreOpponentStatChangesAttr, NoEffectAttr, FixedDamageAttr, OneHitKOAccuracyAttr } from "./data/move";
+import { allMoves, applyMoveAttrs, BypassSleepAttr, ChargeAttr, applyFilteredMoveAttrs, HitsTagAttr, MissEffectAttr, MoveAttr, MoveEffectAttr, MoveFlags, MultiHitAttr, OverrideMoveEffectAttr, VariableAccuracyAttr, MoveTarget, OneHitKOAttr, getMoveTargets, MoveTargetSet, MoveEffectTrigger, CopyMoveAttr, AttackMove, SelfStatusMove, DelayedAttackAttr, RechargeAttr, PreMoveMessageAttr, HealStatusEffectAttr, IgnoreOpponentStatChangesAttr, NoEffectAttr, FixedDamageAttr, OneHitKOAccuracyAttr, ForceSwitchOutAttr } from "./data/move";
import { Mode } from './ui/ui';
import { Command } from "./ui/command-ui-handler";
import { Stat } from "./data/pokemon-stat";
-import { BerryModifier, ContactHeldItemTransferChanceModifier, EnemyAttackStatusEffectChanceModifier, EnemyPersistentModifier, EnemyStatusEffectHealChanceModifier, EnemyTurnHealModifier, ExpBalanceModifier, ExpBoosterModifier, ExpShareModifier, ExtraModifierModifier, FlinchChanceModifier, FusePokemonModifier, HealingBoosterModifier, HitHealModifier, LapsingPersistentModifier, MapModifier, Modifier, MultipleParticipantExpBonusModifier, PersistentModifier, PokemonExpBoosterModifier, PokemonHeldItemModifier, PokemonInstantReviveModifier, SwitchEffectTransferModifier, TempBattleStatBoosterModifier, TurnHealModifier, TurnHeldItemTransferModifier, MoneyMultiplierModifier, MoneyInterestModifier, IvScannerModifier, PokemonFriendshipBoosterModifier, LapsingPokemonHeldItemModifier, PokemonMultiHitModifier, PokemonMoveAccuracyBoosterModifier } from "./modifier/modifier";
+import { BerryModifier, ContactHeldItemTransferChanceModifier, EnemyAttackStatusEffectChanceModifier, EnemyPersistentModifier, EnemyStatusEffectHealChanceModifier, EnemyTurnHealModifier, ExpBalanceModifier, ExpBoosterModifier, ExpShareModifier, ExtraModifierModifier, FlinchChanceModifier, FusePokemonModifier, HealingBoosterModifier, HitHealModifier, LapsingPersistentModifier, MapModifier, Modifier, MultipleParticipantExpBonusModifier, PersistentModifier, PokemonExpBoosterModifier, PokemonHeldItemModifier, PokemonInstantReviveModifier, SwitchEffectTransferModifier, TempBattleStatBoosterModifier, TurnHealModifier, TurnHeldItemTransferModifier, MoneyMultiplierModifier, MoneyInterestModifier, IvScannerModifier, LapsingPokemonHeldItemModifier, PokemonMultiHitModifier, PokemonMoveAccuracyBoosterModifier } from "./modifier/modifier";
import PartyUiHandler, { PartyOption, PartyUiMode } from "./ui/party-ui-handler";
import { doPokeballBounceAnim, getPokeballAtlasKey, getPokeballCatchMultiplier, getPokeballTintColor, PokeballType } from "./data/pokeball";
import { CommonAnim, CommonBattleAnim, MoveAnim, initMoveAnim, loadMoveAnimAssets } from "./data/battle-anims";
@@ -19,7 +19,7 @@ import { BattleStat, getBattleStatLevelChangeDescription, getBattleStatName } fr
import { biomeLinks, getBiomeName } from "./data/biomes";
import { Biome } from "./data/enums/biome";
import { ModifierTier } from "./modifier/modifier-tier";
-import { FusePokemonModifierType, ModifierPoolType, ModifierType, ModifierTypeFunc, ModifierTypeOption, PokemonModifierType, PokemonMoveModifierType, RememberMoveModifierType, TmModifierType, getDailyRunStarterModifiers, getEnemyBuffModifierForWave, getModifierType, getPlayerModifierTypeOptions, getPlayerShopModifierTypeOptionsForWave, modifierTypes, regenerateModifierPoolThresholds } from "./modifier/modifier-type";
+import { FusePokemonModifierType, ModifierPoolType, ModifierType, ModifierTypeFunc, ModifierTypeOption, PokemonModifierType, PokemonMoveModifierType, PokemonPpRestoreModifierType, PokemonPpUpModifierType, RememberMoveModifierType, TmModifierType, getDailyRunStarterModifiers, getEnemyBuffModifierForWave, getModifierType, getPlayerModifierTypeOptions, getPlayerShopModifierTypeOptionsForWave, modifierTypes, regenerateModifierPoolThresholds } from "./modifier/modifier-type";
import SoundFade from "phaser3-rex-plugins/plugins/soundfade";
import { BattlerTagLapseType, EncoreTag, HideSpriteTag as HiddenTag, ProtectedTag, TrappedTag } from "./data/battler-tags";
import { BattlerTagType } from "./data/enums/battler-tag-type";
@@ -58,6 +58,7 @@ import { GameModes, gameModes } from "./game-mode";
import { getPokemonSpecies, speciesStarters } from "./data/pokemon-species";
import i18next from './plugins/i18n';
import { Abilities } from "./data/enums/abilities";
+import { STARTER_FORM_OVERRIDE, STARTER_SPECIES_OVERRIDE } from './overrides';
export class LoginPhase extends Phase {
private showText: boolean;
@@ -331,6 +332,8 @@ export class TitlePhase extends Phase {
this.scene.sessionPlayTime = 0;
this.end();
});
+ }).catch(err => {
+ console.error("Failed to load daily run:\n", err);
});
});
}
@@ -815,14 +818,14 @@ export class EncounterPhase extends BattlePhase {
const enemyField = this.scene.getEnemyField();
if (this.scene.currentBattle.battleSpec === BattleSpec.FINAL_BOSS)
- return i18next.t('menu:bossAppeared', {bossName: enemyField[0].name});
+ return i18next.t('battle:bossAppeared', {bossName: enemyField[0].name});
if (this.scene.currentBattle.battleType === BattleType.TRAINER)
- return i18next.t('menu:trainerAppeared', {trainerName: this.scene.currentBattle.trainer.getName(TrainerSlot.NONE, true)});
+ return i18next.t('battle:trainerAppeared', {trainerName: this.scene.currentBattle.trainer.getName(TrainerSlot.NONE, true)});
return enemyField.length === 1
- ? i18next.t('menu:singleWildAppeared', {pokemonName: enemyField[0].name})
- : i18next.t('menu:multiWildAppeared', {pokemonName1: enemyField[0].name, pokemonName2: enemyField[1].name})
+ ? i18next.t('battle:singleWildAppeared', {pokemonName: enemyField[0].name})
+ : i18next.t('battle:multiWildAppeared', {pokemonName1: enemyField[0].name, pokemonName2: enemyField[1].name})
}
doEncounterCommon(showEncounterMessage: boolean = true) {
@@ -1187,7 +1190,7 @@ export class SummonPhase extends PartyMemberPokemonPhase {
}
if (this.player) {
- this.scene.ui.showText(i18next.t('menu:playerGo', { pokemonName: this.getPokemon().name }));
+ this.scene.ui.showText(i18next.t('battle:playerGo', { pokemonName: this.getPokemon().name }));
if (this.player)
this.scene.pbTray.hide();
this.scene.trainer.setTexture(`trainer_${this.scene.gameData.gender === PlayerGender.FEMALE ? 'f' : 'm'}_back_pb`);
@@ -1355,8 +1358,8 @@ export class SwitchSummonPhase extends SummonPhase {
applyPreSwitchOutAbAttrs(PreSwitchOutAbAttr, pokemon);
this.scene.ui.showText(this.player ?
- i18next.t('menu:playerComeBack', { pokemonName: pokemon.name }) :
- i18next.t('menu:trainerComeBack', {
+ i18next.t('battle:playerComeBack', { pokemonName: pokemon.name }) :
+ i18next.t('battle:trainerComeBack', {
trainerName: this.scene.currentBattle.trainer.getName(!(this.fieldIndex % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER),
pokemonName: pokemon.name
})
@@ -1396,8 +1399,8 @@ export class SwitchSummonPhase extends SummonPhase {
party[this.fieldIndex] = switchedPokemon;
const showTextAndSummon = () => {
this.scene.ui.showText(this.player ?
- i18next.t('menu:playerGo', { pokemonName: switchedPokemon.name }) :
- i18next.t('menu:trainerGo', {
+ i18next.t('battle:playerGo', { pokemonName: switchedPokemon.name }) :
+ i18next.t('battle:trainerGo', {
trainerName: this.scene.currentBattle.trainer.getName(!(this.fieldIndex % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER),
pokemonName: this.getPokemon().name
})
@@ -1421,9 +1424,11 @@ export class SwitchSummonPhase extends SummonPhase {
super.onEnd();
const pokemon = this.getPokemon();
+ const moveId = pokemon.scene.currentBattle.turnCommands[this.fieldIndex]?.move?.move;
+ const lastUsedMove = moveId ? allMoves[moveId] : undefined;
// Compensate for turn spent summoning
- if (pokemon.scene.currentBattle.turnCommands[this.fieldIndex]?.command === Command.POKEMON)
+ if (pokemon.scene.currentBattle.turnCommands[this.fieldIndex]?.command === Command.POKEMON || !!lastUsedMove?.findAttr(attr => attr instanceof ForceSwitchOutAttr)) //check if hard switch OR pivot move was used
pokemon.battleSummonData.turnCount--;
if (this.batonPass && pokemon)
@@ -1542,7 +1547,7 @@ export class CheckSwitchPhase extends BattlePhase {
return;
}
- this.scene.ui.showText(i18next.t('menu:switchQuestion', { pokemonName: this.useName ? pokemon.name : i18next.t('menu:pokemon') }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:switchQuestion', { pokemonName: this.useName ? pokemon.name : i18next.t('battle:pokemon') }), null, () => {
this.scene.ui.setMode(Mode.CONFIRM, () => {
this.scene.ui.setMode(Mode.MESSAGE);
this.scene.tryRemovePhase(p => p instanceof PostSummonPhase && p.player && p.fieldIndex === this.fieldIndex);
@@ -1562,7 +1567,7 @@ export class SummonMissingPhase extends SummonPhase {
}
preSummon(): void {
- this.scene.ui.showText(i18next.t('menu:sendOutPokemon', { pokemonName: this.getPokemon().name}));
+ this.scene.ui.showText(i18next.t('battle:sendOutPokemon', { pokemonName: this.getPokemon().name}));
this.scene.time.delayedCall(250, () => this.summon());
}
}
@@ -1577,7 +1582,7 @@ export class LevelCapPhase extends FieldPhase {
this.scene.ui.setMode(Mode.MESSAGE).then(() => {
this.scene.playSound('level_up_fanfare');
- this.scene.ui.showText(i18next.t('menu:levelCapUp', { levelCap: this.scene.getMaxExpLevel() }), null, () => this.end(), null, true);
+ this.scene.ui.showText(i18next.t('battle:levelCapUp', { levelCap: this.scene.getMaxExpLevel() }), null, () => this.end(), null, true);
this.executeForAll(pokemon => pokemon.updateInfo(true));
});
}
@@ -1671,7 +1676,7 @@ export class CommandPhase extends FieldPhase {
const move = playerPokemon.getMoveset()[cursor];
if (move.getName().endsWith(' (N)')) {
this.scene.ui.setMode(Mode.MESSAGE);
- this.scene.ui.showText(i18next.t('menu:moveNotImplemented', { moveName: move.getName().slice(0, -4) }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:moveNotImplemented', { moveName: move.getName().slice(0, -4) }), null, () => {
this.scene.ui.clearText();
this.scene.ui.setMode(Mode.FIGHT, this.fieldIndex);
}, null, true);
@@ -1682,6 +1687,8 @@ export class CommandPhase extends FieldPhase {
console.log(moveTargets, playerPokemon.name);
if (moveTargets.targets.length <= 1 || moveTargets.multiple)
turnCommand.move.targets = moveTargets.targets;
+ else if(playerPokemon.getTag(BattlerTagType.CHARGING) && playerPokemon.getMoveQueue().length >= 1)
+ turnCommand.move.targets = playerPokemon.getMoveQueue()[0].targets;
else
this.scene.unshiftPhase(new SelectTargetPhase(this.scene, this.fieldIndex));
this.scene.currentBattle.turnCommands[this.fieldIndex] = turnCommand;
@@ -1690,7 +1697,7 @@ export class CommandPhase extends FieldPhase {
const move = playerPokemon.getMoveset()[cursor];
if (playerPokemon.summonData.disabledMove === move.moveId) {
this.scene.ui.setMode(Mode.MESSAGE);
- this.scene.ui.showText(i18next.t('menu:moveDisabled', { moveName: move.getName() }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:moveDisabled', { moveName: move.getName() }), null, () => {
this.scene.ui.clearText();
this.scene.ui.setMode(Mode.FIGHT, this.fieldIndex);
}, null, true);
@@ -1698,17 +1705,17 @@ export class CommandPhase extends FieldPhase {
}
break;
case Command.BALL:
- if (this.scene.arena.biomeType === Biome.END && (!this.scene.gameMode.isClassic || this.scene.gameData.getStarterCount(d => !!d.caughtAttr) < Object.keys(speciesStarters).length - 1)) {
+ if (this.scene.arena.biomeType === Biome.END && (!this.scene.gameMode.isClassic || (this.scene.getEnemyField().filter(p => p.isActive(true)).some(p => !p.scene.gameData.dexData[p.species.speciesId].caughtAttr) && this.scene.gameData.getStarterCount(d => !!d.caughtAttr) < Object.keys(speciesStarters).length - 1))) {
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
this.scene.ui.setMode(Mode.MESSAGE);
- this.scene.ui.showText(i18next.t('menu:noPokeballForce'), null, () => {
+ this.scene.ui.showText(i18next.t('battle:noPokeballForce'), null, () => {
this.scene.ui.showText(null, 0);
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
}, null, true);
} else if (this.scene.currentBattle.battleType === BattleType.TRAINER) {
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
this.scene.ui.setMode(Mode.MESSAGE);
- this.scene.ui.showText(i18next.t('menu:noPokeballTrainer'), null, () => {
+ this.scene.ui.showText(i18next.t('battle:noPokeballTrainer'), null, () => {
this.scene.ui.showText(null, 0);
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
}, null, true);
@@ -1717,7 +1724,7 @@ export class CommandPhase extends FieldPhase {
if (targets.length > 1) {
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
this.scene.ui.setMode(Mode.MESSAGE);
- this.scene.ui.showText(i18next.t('menu:noPokeballMulti'), null, () => {
+ this.scene.ui.showText(i18next.t('battle:noPokeballMulti'), null, () => {
this.scene.ui.showText(null, 0);
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
}, null, true);
@@ -1726,7 +1733,7 @@ export class CommandPhase extends FieldPhase {
if (targetPokemon.isBoss() && targetPokemon.bossSegmentIndex >= 1 && !targetPokemon.hasAbility(Abilities.WONDER_GUARD, false, true) && cursor < PokeballType.MASTER_BALL) {
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
this.scene.ui.setMode(Mode.MESSAGE);
- this.scene.ui.showText(i18next.t('menu:noPokeballStrong'), null, () => {
+ this.scene.ui.showText(i18next.t('battle:noPokeballStrong'), null, () => {
this.scene.ui.showText(null, 0);
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
}, null, true);
@@ -1746,14 +1753,14 @@ export class CommandPhase extends FieldPhase {
if (!isSwitch && this.scene.arena.biomeType === Biome.END) {
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
this.scene.ui.setMode(Mode.MESSAGE);
- this.scene.ui.showText(i18next.t('menu:noEscapeForce'), null, () => {
+ this.scene.ui.showText(i18next.t('battle:noEscapeForce'), null, () => {
this.scene.ui.showText(null, 0);
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
}, null, true);
} else if (!isSwitch && this.scene.currentBattle.battleType === BattleType.TRAINER) {
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
this.scene.ui.setMode(Mode.MESSAGE);
- this.scene.ui.showText(i18next.t('menu:noEscapeTrainer'), null, () => {
+ this.scene.ui.showText(i18next.t('battle:noEscapeTrainer'), null, () => {
this.scene.ui.showText(null, 0);
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
}, null, true);
@@ -1776,10 +1783,10 @@ export class CommandPhase extends FieldPhase {
this.scene.ui.setMode(Mode.MESSAGE);
}
this.scene.ui.showText(
- i18next.t('menu:noEscapePokemon', {
+ i18next.t('battle:noEscapePokemon', {
pokemonName: this.scene.getPokemonById(trapTag.sourceId).name,
moveName: trapTag.getMoveName(),
- escapeVerb: isSwitch ? i18next.t('menu:escapeVerbSwitch') : i18next.t('menu:escapeVerbFlee')
+ escapeVerb: isSwitch ? i18next.t('battle:escapeVerbSwitch') : i18next.t('battle:escapeVerbFlee')
}),
null,
() => {
@@ -2029,7 +2036,7 @@ export class TurnEndPhase extends FieldPhase {
pokemon.lapseTags(BattlerTagLapseType.TURN_END);
if (pokemon.summonData.disabledMove && !--pokemon.summonData.disabledTurns) {
- this.scene.pushPhase(new MessagePhase(this.scene, i18next.t('menu:notDisabled', { moveName: allMoves[pokemon.summonData.disabledMove].name })));
+ this.scene.pushPhase(new MessagePhase(this.scene, i18next.t('battle:notDisabled', { moveName: allMoves[pokemon.summonData.disabledMove].name })));
pokemon.summonData.disabledMove = Moves.NONE;
}
@@ -2323,13 +2330,14 @@ export class MovePhase extends BattlePhase {
showMoveText(): void {
if (this.move.getMove().getAttrs(ChargeAttr).length) {
- this.scene.queueMessage(getPokemonMessage(this.pokemon, ` used\n${this.move.getName()}!`), 500);
const lastMove = this.pokemon.getLastXMoves() as TurnMove[];
- if (!lastMove.length || lastMove[0].move !== this.move.getMove().id || lastMove[0].result !== MoveResult.OTHER)
+ if (!lastMove.length || lastMove[0].move !== this.move.getMove().id || lastMove[0].result !== MoveResult.OTHER){
+ this.scene.queueMessage(getPokemonMessage(this.pokemon, ` used\n${this.move.getName()}!`), 500);
return;
+ }
}
- if (this.pokemon.getTag(BattlerTagType.RECHARGING))
+ if (this.pokemon.getTag(BattlerTagType.RECHARGING || BattlerTagType.INTERRUPTED))
return;
this.scene.queueMessage(getPokemonMessage(this.pokemon, ` used\n${this.move.getName()}!`), 500);
@@ -2337,7 +2345,7 @@ export class MovePhase extends BattlePhase {
}
showFailedText(failedText: string = null): void {
- this.scene.queueMessage(failedText || i18next.t('menu:attackFailed'));
+ this.scene.queueMessage(failedText || i18next.t('battle:attackFailed'));
}
end() {
@@ -2400,7 +2408,7 @@ export class MoveEffectPhase extends PokemonPhase {
moveHistoryEntry.result = MoveResult.MISS;
applyMoveAttrs(MissEffectAttr, user, null, this.move.getMove());
} else {
- this.scene.queueMessage(i18next.t('menu:attackFailed'));
+ this.scene.queueMessage(i18next.t('battle:attackFailed'));
moveHistoryEntry.result = MoveResult.FAIL;
}
return this.end();
@@ -2484,7 +2492,7 @@ export class MoveEffectPhase extends PokemonPhase {
else {
const hitsTotal = user.turnData.hitCount - Math.max(user.turnData.hitsLeft, 0);
if (hitsTotal > 1)
- this.scene.queueMessage(i18next.t('menu:attackHitsCount', { count: hitsTotal }));
+ this.scene.queueMessage(i18next.t('battle:attackHitsCount', { count: hitsTotal }));
this.scene.applyModifiers(HitHealModifier, this.player, user);
}
}
@@ -2546,7 +2554,7 @@ export class MoveEffectPhase extends PokemonPhase {
: 3 / (3 + Math.min(targetEvasionLevel.value - userAccuracyLevel.value, 6));
}
- applyBattleStatMultiplierAbAttrs(BattleStatMultiplierAbAttr, user, BattleStat.ACC, accuracyMultiplier);
+ applyBattleStatMultiplierAbAttrs(BattleStatMultiplierAbAttr, user, BattleStat.ACC, accuracyMultiplier, this.move.getMove());
const evasionMultiplier = new Utils.NumberHolder(1);
applyBattleStatMultiplierAbAttrs(BattleStatMultiplierAbAttr, this.getTarget(), BattleStat.EVA, evasionMultiplier);
@@ -2669,7 +2677,6 @@ export class StatChangePhase extends PokemonPhase {
let random = false;
- const allStats = Utils.getEnumValues(BattleStat);
if (this.stats.length === 1 && this.stats[0] === BattleStat.RAND) {
this.stats[0] = this.getRandomStat();
random = true;
@@ -2710,8 +2717,11 @@ export class StatChangePhase extends PokemonPhase {
for (let stat of filteredStats)
pokemon.summonData.battleStats[stat] = Math.max(Math.min(pokemon.summonData.battleStats[stat] + levels.value, 6), -6);
- applyPostStatChangeAbAttrs(PostStatChangeAbAttr, pokemon, filteredStats, this.levels, this.selfTarget)
- this.end();
+ applyPostStatChangeAbAttrs(PostStatChangeAbAttr, pokemon, filteredStats, this.levels, this.selfTarget);
+
+ pokemon.updateInfo();
+
+ handleTutorial(this.scene, Tutorial.Stat_Change).then(() => super.end());
};
if (relLevels.filter(l => l).length && this.scene.moveAnimations) {
@@ -3148,8 +3158,8 @@ export class FaintPhase extends PokemonPhase {
this.scene.getField(true).filter(p => p !== pokemon).forEach(p => p.removeTagsBySourceId(pokemon.id));
pokemon.faintCry(() => {
- const friendshipDecrease = new Utils.IntegerHolder(10);
- pokemon.friendship = Math.max(pokemon.friendship - friendshipDecrease.value, 0);
+ if (pokemon instanceof PlayerPokemon)
+ pokemon.addFriendship(-10);
pokemon.hideInfo();
this.scene.playSound('faint');
this.scene.tweens.add({
@@ -3220,13 +3230,8 @@ export class VictoryPhase extends PokemonPhase {
for (let partyMember of expPartyMembers) {
const pId = partyMember.id;
const participated = participantIds.has(pId);
- if (participated) {
- const friendshipIncrease = new Utils.IntegerHolder(2);
- this.scene.applyModifier(PokemonFriendshipBoosterModifier, true, partyMember, friendshipIncrease);
- partyMember.friendship = Math.min(partyMember.friendship + friendshipIncrease.value, 255);
- if (partyMember.friendship === 255)
- this.scene.validateAchv(achvs.MAX_FRIENDSHIP);
- }
+ if (participated)
+ partyMember.addFriendship(2);
else if (!expShareModifier) {
partyMemberExp.push(0);
continue;
@@ -3335,10 +3340,10 @@ export class TrainerVictoryPhase extends BattlePhase {
const trainerType = this.scene.currentBattle.trainer.config.trainerType;
if (vouchers.hasOwnProperty(TrainerType[trainerType])) {
if (!this.scene.validateVoucher(vouchers[TrainerType[trainerType]]) && this.scene.currentBattle.trainer.config.isBoss)
- this.scene.pushPhase(new ModifierRewardPhase(this.scene, modifierTypes.VOUCHER));
+ this.scene.unshiftPhase(new ModifierRewardPhase(this.scene, [ modifierTypes.VOUCHER, modifierTypes.VOUCHER, modifierTypes.VOUCHER_PLUS, modifierTypes.VOUCHER_PREMIUM ][vouchers[TrainerType[trainerType]].voucherType]));
}
- this.scene.ui.showText(i18next.t('menu:trainerDefeated', { trainerName: this.scene.currentBattle.trainer.getName(TrainerSlot.NONE, true) }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:trainerDefeated', { trainerName: this.scene.currentBattle.trainer.getName(TrainerSlot.NONE, true) }), null, () => {
const victoryMessages = this.scene.currentBattle.trainer.getVictoryMessages();
const showMessage = () => {
let message: string;
@@ -3605,7 +3610,7 @@ export class ExpPhase extends PlayerPartyMemberPokemonPhase {
let exp = new Utils.NumberHolder(this.expValue);
this.scene.applyModifiers(ExpBoosterModifier, true, exp);
exp.value = Math.floor(exp.value);
- this.scene.ui.showText(i18next.t('menu:expGain', { pokemonName: pokemon.name, exp: exp.value }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:expGain', { pokemonName: pokemon.name, exp: exp.value }), null, () => {
const lastLevel = pokemon.level;
let newLevel: integer;
pokemon.addExp(exp.value);
@@ -3693,7 +3698,7 @@ export class LevelUpPhase extends PlayerPartyMemberPokemonPhase {
pokemon.calculateStats();
pokemon.updateInfo();
this.scene.playSound('level_up_fanfare');
- this.scene.ui.showText(i18next.t('menu:levelUp', { pokemonName: this.getPokemon().name, level: this.level }), null, () => this.scene.ui.getMessageHandler().promptLevelUpStats(this.partyMemberIndex, prevStats, false).then(() => this.end()), null, true);
+ this.scene.ui.showText(i18next.t('battle:levelUp', { pokemonName: this.getPokemon().name, level: this.level }), null, () => this.scene.ui.getMessageHandler().promptLevelUpStats(this.partyMemberIndex, prevStats, false).then(() => this.end()), null, true);
if (this.level <= 100) {
const levelMoves = this.getPokemon().getLevelMoves(this.lastLevel + 1);
for (let lm of levelMoves)
@@ -3742,7 +3747,7 @@ export class LearnMovePhase extends PlayerPartyMemberPokemonPhase {
.then(() => {
this.scene.ui.setMode(messageMode).then(() => {
this.scene.playSound('level_up_fanfare');
- this.scene.ui.showText(i18next.t('menu:learnMove', { pokemonName: pokemon.name, moveName: move.name }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:learnMove', { pokemonName: pokemon.name, moveName: move.name }), null, () => {
this.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeMoveLearnedTrigger, true);
this.end();
}, messageMode === Mode.EVOLUTION_SCENE ? 1000 : null, true);
@@ -3751,15 +3756,15 @@ export class LearnMovePhase extends PlayerPartyMemberPokemonPhase {
});
} else {
this.scene.ui.setMode(messageMode).then(() => {
- this.scene.ui.showText(i18next.t('menu:learnMovePrompt', { pokemonName: pokemon.name, moveName: move.name }), null, () => {
- this.scene.ui.showText(i18next.t('menu:learnMoveLimitReached', { pokemonName: pokemon.name }), null, () => {
- this.scene.ui.showText(i18next.t('menu:learnMoveReplaceQuestion', { moveName: move.name }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:learnMovePrompt', { pokemonName: pokemon.name, moveName: move.name }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:learnMoveLimitReached', { pokemonName: pokemon.name }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:learnMoveReplaceQuestion', { moveName: move.name }), null, () => {
const noHandler = () => {
this.scene.ui.setMode(messageMode).then(() => {
- this.scene.ui.showText(i18next.t('menu:learnMoveStopTeaching', { moveName: move.name }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:learnMoveStopTeaching', { moveName: move.name }), null, () => {
this.scene.ui.setModeWithoutClear(Mode.CONFIRM, () => {
this.scene.ui.setMode(messageMode);
- this.scene.ui.showText(i18next.t('menu:learnMoveNotLearned', { pokemonName: pokemon.name, moveName: move.name }), null, () => this.end(), null, true);
+ this.scene.ui.showText(i18next.t('battle:learnMoveNotLearned', { pokemonName: pokemon.name, moveName: move.name }), null, () => this.end(), null, true);
}, () => {
this.scene.ui.setMode(messageMode);
this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.partyMemberIndex, this.moveId));
@@ -3770,7 +3775,7 @@ export class LearnMovePhase extends PlayerPartyMemberPokemonPhase {
};
this.scene.ui.setModeWithoutClear(Mode.CONFIRM, () => {
this.scene.ui.setMode(messageMode);
- this.scene.ui.showText(i18next.t('menu:learnMoveForgetQuestion'), null, () => {
+ this.scene.ui.showText(i18next.t('battle:learnMoveForgetQuestion'), null, () => {
this.scene.ui.setModeWithoutClear(Mode.SUMMARY, this.getPokemon(), SummaryUiMode.LEARN_MOVE, move, (moveIndex: integer) => {
if (moveIndex === 4) {
noHandler();
@@ -3778,7 +3783,7 @@ export class LearnMovePhase extends PlayerPartyMemberPokemonPhase {
}
this.scene.ui.setMode(messageMode).then(() => {
this.scene.ui.showText('@d{32}1, @d{15}2, and@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Poof!', null, () => {
- this.scene.ui.showText(i18next.t('menu:learnMoveForgetSuccess', { pokemonName: pokemon.name, moveName: pokemon.moveset[moveIndex].getName() }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:learnMoveForgetSuccess', { pokemonName: pokemon.name, moveName: pokemon.moveset[moveIndex].getName() }), null, () => {
this.scene.ui.showText('And…', null, () => {
pokemon.setMove(moveIndex, Moves.NONE);
this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.partyMemberIndex, this.moveId));
@@ -4091,9 +4096,9 @@ export class AttemptCapturePhase extends PokemonPhase {
this.scene.pokemonInfoContainer.show(pokemon, true);
- this.scene.gameData.updateSpeciesDexIvs(pokemon.species.speciesId, pokemon.ivs);
+ this.scene.gameData.updateSpeciesDexIvs(pokemon.species.getRootSpeciesId(true), pokemon.ivs);
- this.scene.ui.showText(i18next.t('menu:pokemonCaught', { pokemonName: pokemon.name }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:pokemonCaught', { pokemonName: pokemon.name }), null, () => {
const end = () => {
this.scene.pokemonInfoContainer.hide();
this.removePb();
@@ -4179,7 +4184,7 @@ export class AttemptRunPhase extends PokemonPhase {
if (playerPokemon.randSeedInt(256) < escapeChance.value) {
this.scene.playSound('flee');
- this.scene.queueMessage(i18next.t('menu:runAwaySuccess'), null, true, 500);
+ this.scene.queueMessage(i18next.t('battle:runAwaySuccess'), null, true, 500);
this.scene.tweens.add({
targets: [ this.scene.arenaEnemy, enemyField ].flat(),
@@ -4200,7 +4205,7 @@ export class AttemptRunPhase extends PokemonPhase {
this.scene.pushPhase(new BattleEndPhase(this.scene));
this.scene.pushPhase(new NewBattlePhase(this.scene));
} else
- this.scene.queueMessage(i18next.t('menu:runAwayCannotEscape'), null, true, 500);
+ this.scene.queueMessage(i18next.t('battle:runAwayCannotEscape'), null, true, 500);
this.end();
}
@@ -4232,7 +4237,7 @@ export class SelectModifierPhase extends BattlePhase {
const modifierSelectCallback = (rowCursor: integer, cursor: integer) => {
if (rowCursor < 0 || cursor < 0) {
- this.scene.ui.showText(i18next.t('menu:skipItemQuestion'), null, () => {
+ this.scene.ui.showText(i18next.t('battle:skipItemQuestion'), null, () => {
this.scene.ui.setOverlayMode(Mode.CONFIRM, () => {
this.scene.ui.revertMode();
this.scene.ui.setMode(Mode.MESSAGE);
@@ -4336,6 +4341,7 @@ export class SelectModifierPhase extends BattlePhase {
const isMoveModifier = modifierType instanceof PokemonMoveModifierType;
const isTmModifier = modifierType instanceof TmModifierType;
const isRememberMoveModifier = modifierType instanceof RememberMoveModifierType;
+ const isPpRestoreModifier = modifierType instanceof PokemonPpRestoreModifierType;
const partyUiMode = isMoveModifier ? PartyUiMode.MOVE_MODIFIER
: isTmModifier ? PartyUiMode.TM_MODIFIER
: isRememberMoveModifier ? PartyUiMode.REMEMBER_MOVE_MODIFIER
@@ -4355,7 +4361,7 @@ export class SelectModifierPhase extends BattlePhase {
});
} else
this.scene.ui.setMode(Mode.MODIFIER_SELECT, this.isPlayer(), typeOptions, modifierSelectCallback, this.getRerollCost(typeOptions, this.scene.lockModifierTiers));
- }, pokemonModifierType.selectFilter, modifierType instanceof PokemonMoveModifierType ? (modifierType as PokemonMoveModifierType).moveSelectFilter : undefined, tmMoveId);
+ }, pokemonModifierType.selectFilter, modifierType instanceof PokemonMoveModifierType ? (modifierType as PokemonMoveModifierType).moveSelectFilter : undefined, tmMoveId, isPpRestoreModifier);
}
} else
applyModifier(modifierType.newModifier());
@@ -4410,7 +4416,7 @@ export class EggLapsePhase extends Phase {
});
if (eggsToHatch.length) {
- this.scene.queueMessage(i18next.t('menu:eggHatching'));
+ this.scene.queueMessage(i18next.t('battle:eggHatching'));
for (let egg of eggsToHatch)
this.scene.unshiftPhase(new EggHatchPhase(this.scene, egg));
@@ -4504,7 +4510,7 @@ export class ScanIvsPhase extends PokemonPhase {
const pokemon = this.getPokemon();
- this.scene.ui.showText(i18next.t('menu:ivScannerUseQuestion', { pokemonName: pokemon.name }), null, () => {
+ this.scene.ui.showText(i18next.t('battle:ivScannerUseQuestion', { pokemonName: pokemon.name }), null, () => {
this.scene.ui.setMode(Mode.CONFIRM, () => {
this.scene.ui.setMode(Mode.MESSAGE);
this.scene.ui.clearText();
diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts
index adc1f3d5295..4d770ae0a12 100644
--- a/src/plugins/i18n.ts
+++ b/src/plugins/i18n.ts
@@ -1,4 +1,6 @@
import i18next from 'i18next';
+import LanguageDetector from 'i18next-browser-languagedetector';
+
import { menu as enMenu } from '../locales/en/menu';
import { menu as esMenu } from '../locales/es/menu';
import { menu as itMenu } from '../locales/it/menu';
@@ -11,6 +13,12 @@ import { menuUiHandler as frMenuUiHandler } from '../locales/fr/menu-ui-handler.
import { menuUiHandler as itMenuUiHandler } from '../locales/it/menu-ui-handler.js';
import { menuUiHandler as deMenuUiHandler } from '../locales/de/menu-ui-handler.js';
+import { battle as enBattle } from '../locales/en/battle';
+import { battle as esBattle } from '../locales/es/battle';
+import { battle as itBattle } from '../locales/it/battle';
+import { battle as frBattle } from '../locales/fr/battle';
+import { battle as deBattle } from '../locales/de/battle';
+
import { move as enMove } from '../locales/en/move';
import { move as esMove } from '../locales/es/move';
import { move as frMove } from '../locales/fr/move';
@@ -43,13 +51,21 @@ import { commandUiHandler as frCommandUiHandler } from '../locales/fr/command-ui
import { commandUiHandler as deCommandUiHandler } from '../locales/de/command-ui-handler';
import { fightUiHandler as enFightUiHandler } from '../locales/en/fight-ui-handler';
+import { fightUiHandler as esFightUiHandler } from '../locales/es/fight-ui-handler';
import { fightUiHandler as frFightUiHandler } from '../locales/fr/fight-ui-handler';
+import { fightUiHandler as itFightUiHandler } from '../locales/it/fight-ui-handler';
+import { fightUiHandler as deFightUiHandler } from '../locales/de/fight-ui-handler';
+
+import { tutorial as enTutorial } from '../locales/en/tutorial';
+import { tutorial as esTutorial } from '../locales/es/tutorial';
+import { tutorial as frTutorial } from '../locales/fr/tutorial';
+import { tutorial as itTutorial} from '../locales/it/tutorial';
+import { tutorial as deTutorial } from '../locales/de/tutorial';
export interface SimpleTranslationEntries {
[key: string]: string
}
-
export interface MoveTranslationEntry {
name: string,
effect: string
@@ -72,10 +88,8 @@ export interface Localizable {
localize(): void;
}
-const DEFAULT_LANGUAGE_OVERRIDE = '';
-
export function initI18n(): void {
- let lang = 'en';
+ let lang = '';
if (localStorage.getItem('prLang'))
lang = localStorage.getItem('prLang');
@@ -86,18 +100,20 @@ export function initI18n(): void {
* Q: How do I add a new language?
* A: To add a new language, create a new folder in the locales directory with the language code.
* Each language folder should contain a file for each namespace (ex. menu.ts) with the translations.
+ * Don't forget to declare new language in `supportedLngs` i18next initializer
*
* Q: How do I add a new namespace?
* A: To add a new namespace, create a new file in each language folder with the translations.
* Then update the `resources` field in the init() call and the CustomTypeOptions interface.
- *
+ *
* Q: How do I make a language selectable in the settings?
* A: In src/system/settings.ts, add a new case to the Setting.Language switch statement.
*/
- i18next.init({
- lng: DEFAULT_LANGUAGE_OVERRIDE ? DEFAULT_LANGUAGE_OVERRIDE : lang,
+ i18next.use(LanguageDetector).init({
+ lng: lang,
fallbackLng: 'en',
+ supportedLngs: ['en', 'es', 'fr', 'it', 'de'],
debug: true,
interpolation: {
escapeValue: false,
@@ -106,6 +122,7 @@ export function initI18n(): void {
en: {
menu: enMenu,
menuUiHandler: enMenuUiHandler,
+ battle: enBattle,
move: enMove,
ability: enAbility,
pokeball: enPokeball,
@@ -113,20 +130,25 @@ export function initI18n(): void {
pokemonStat: enPokemonStat,
commandUiHandler: enCommandUiHandler,
fightUiHandler: enFightUiHandler,
+ tutorial: enTutorial,
},
es: {
menu: esMenu,
menuUiHandler: esMenuUiHandler,
+ battle: esBattle,
move: esMove,
ability: esAbility,
pokeball: esPokeball,
pokemon: esPokemon,
pokemonStat: esPokemonStat,
commandUiHandler: esCommandUiHandler,
+ fightUiHandler: esFightUiHandler,
+ tutorial: esTutorial,
},
fr: {
menu: frMenu,
menuUiHandler: frMenuUiHandler,
+ battle: frBattle,
move: frMove,
ability: frAbility,
pokeball: frPokeball,
@@ -134,21 +156,28 @@ export function initI18n(): void {
pokemonStat: frPokemonStat,
commandUiHandler: frCommandUiHandler,
fightUiHandler: frFightUiHandler,
+ tutorial: frTutorial,
},
it: {
menu: itMenu,
menuUiHandler: itMenuUiHandler,
+ battle: itBattle,
pokemonStat: itPokemonStat,
+ fightUiHandler: itFightUiHandler,
+ tutorial: itTutorial,
},
de: {
menu: deMenu,
menuUiHandler: deMenuUiHandler,
+ battle: deBattle,
move: deMove,
ability: deAbility,
pokeball: dePokeball,
pokemon: dePokemon,
pokemonStat: dePokemonStat,
commandUiHandler: deCommandUiHandler,
+ fightUiHandler: deFightUiHandler,
+ tutorial: deTutorial,
}
},
});
@@ -161,12 +190,14 @@ declare module 'i18next' {
menu: typeof enMenu;
menuUiHandler: typeof enMenuUiHandler;
move: typeof enMove;
+ battle: typeof enBattle,
ability: typeof enAbility;
pokeball: typeof enPokeball;
pokemon: typeof enPokemon;
pokemonStat: typeof enPokemonStat;
commandUiHandler: typeof enCommandUiHandler;
fightUiHandler: typeof enFightUiHandler;
+ tutorial: typeof enTutorial;
};
}
}
diff --git a/src/system/achv.ts b/src/system/achv.ts
index 2307347db3a..f63dd5b2810 100644
--- a/src/system/achv.ts
+++ b/src/system/achv.ts
@@ -7,6 +7,7 @@ export enum AchvTier {
COMMON,
GREAT,
ULTRA,
+ ROGUE,
MASTER
}
@@ -50,8 +51,10 @@ export class Achv {
}
getTier(): AchvTier {
- if (this.score >= 100)
+ if (this.score >= 150)
return AchvTier.MASTER;
+ if (this.score >= 100)
+ return AchvTier.ROGUE;
if (this.score >= 50)
return AchvTier.ULTRA;
if (this.score >= 25)
diff --git a/src/system/game-data.ts b/src/system/game-data.ts
index e11c2dcc572..6410c52a2b8 100644
--- a/src/system/game-data.ts
+++ b/src/system/game-data.ts
@@ -169,6 +169,7 @@ export interface StarterDataEntry {
moveset: StarterMoveset | StarterFormMoveData;
eggMoves: integer;
candyCount: integer;
+ friendship: integer;
abilityAttr: integer;
passiveAttr: integer;
valueReduction: integer;
@@ -988,6 +989,7 @@ export class GameData {
moveset: null,
eggMoves: 0,
candyCount: 0,
+ friendship: 0,
abilityAttr: defaultStarterSpecies.includes(speciesId) ? AbilityAttr.ABILITY_1 : 0,
passiveAttr: 0,
valueReduction: 0
@@ -1035,6 +1037,7 @@ export class GameData {
const hasPrevolution = pokemonPrevolutions.hasOwnProperty(species.speciesId);
const newCatch = !caughtAttr;
+ const hasNewAttr = (caughtAttr & dexAttr) !== dexAttr;
if (incrementCount) {
if (!fromEgg) {
@@ -1057,7 +1060,7 @@ export class GameData {
this.gameStats.shinyPokemonHatched++;
}
- if (!hasPrevolution)
+ if (!hasPrevolution && (!pokemon.scene.gameMode.isDaily || hasNewAttr || fromEgg))
this.addStarterCandy(species, (1 * (pokemon.isShiny() ? 5 * Math.pow(2, pokemon.variant || 0) : 1)) * (fromEgg || pokemon.isBoss() ? 2 : 1));
}
diff --git a/src/system/voucher.ts b/src/system/voucher.ts
index c3bae6f0878..276e74eeb0d 100644
--- a/src/system/voucher.ts
+++ b/src/system/voucher.ts
@@ -44,7 +44,7 @@ export class Voucher {
case VoucherType.PREMIUM:
return AchvTier.ULTRA;
case VoucherType.GOLDEN:
- return AchvTier.MASTER;
+ return AchvTier.ROGUE;
}
}
}
diff --git a/src/tutorial.ts b/src/tutorial.ts
index a924243ac33..88e88fa809c 100644
--- a/src/tutorial.ts
+++ b/src/tutorial.ts
@@ -1,6 +1,7 @@
import BattleScene from "./battle-scene";
import AwaitableUiHandler from "./ui/awaitable-ui-handler";
import { Mode } from "./ui/ui";
+import i18next from './plugins/i18n';
export enum Tutorial {
Intro = "INTRO",
@@ -8,6 +9,7 @@ export enum Tutorial {
Menu = "MENU",
Starter_Select = "STARTER_SELECT",
Pokerus = "POKERUS",
+ Stat_Change = "STAT_CHANGE",
Select_Item = "SELECT_ITEM",
Egg_Gacha = "EGG_GACHA"
}
@@ -15,63 +17,47 @@ export enum Tutorial {
const tutorialHandlers = {
[Tutorial.Intro]: (scene: BattleScene) => {
return new Promise(resolve => {
- scene.ui.showText(`Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
- $This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
- $The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
- $If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`, null, () => resolve(), null, true);
+ scene.ui.showText(i18next.t("tutorial:intro"), null, () => resolve(), null, true);
});
},
[Tutorial.Access_Menu]: (scene: BattleScene) => {
return new Promise(resolve => {
if (scene.enableTouchControls)
return resolve();
- scene.showFieldOverlay(1000).then(() => scene.ui.showText(`To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`, null, () => scene.hideFieldOverlay(1000).then(() => resolve()), null, true));
+ scene.showFieldOverlay(1000).then(() => scene.ui.showText(i18next.t("tutorial:accessMenu"), null, () => scene.hideFieldOverlay(1000).then(() => resolve()), null, true));
});
},
[Tutorial.Menu]: (scene: BattleScene) => {
return new Promise(resolve => {
scene.gameData.saveTutorialFlag(Tutorial.Access_Menu, true);
- scene.ui.showText(`From this menu you can access the settings.
- $From the settings you can change game speed, window style, and other options.
- $There are also various other features here, so be sure to check them all!`, null, () => scene.ui.showText('', null, () => resolve()), null, true);
+ scene.ui.showText(i18next.t("tutorial:menu"), null, () => scene.ui.showText('', null, () => resolve()), null, true);
});
},
[Tutorial.Starter_Select]: (scene: BattleScene) => {
return new Promise(resolve => {
- scene.ui.showText(`From this screen, you can select your starters.\nThese are your initial party members.
- $Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
- $You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
- $The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`, null, () => scene.ui.showText('', null, () => resolve()), null, true);
+ scene.ui.showText(i18next.t("tutorial:starterSelect"), null, () => scene.ui.showText('', null, () => resolve()), null, true);
});
},
[Tutorial.Pokerus]: (scene: BattleScene) => {
return new Promise(resolve => {
- scene.ui.showText(`A daily random 3 selectable starters have a purple border.
- $If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`, null, () => scene.ui.showText('', null, () => resolve()), null, true);
+ scene.ui.showText(i18next.t("tutorial:pokerus"), null, () => scene.ui.showText('', null, () => resolve()), null, true);
+ });
+ },
+ [Tutorial.Stat_Change]: (scene: BattleScene) => {
+ return new Promise(resolve => {
+ scene.showFieldOverlay(1000).then(() => scene.ui.showText(i18next.t("tutorial:statChange"), null, () => scene.ui.showText('', null, () => scene.hideFieldOverlay(1000).then(() => resolve())), null, true));
});
},
[Tutorial.Select_Item]: (scene: BattleScene) => {
return new Promise(resolve => {
scene.ui.setModeWithoutClear(Mode.MESSAGE).then(() => {
- scene.ui.showText(`After every battle, you are given a choice of 3 random items.\nYou may only pick one.
- $These range from consumables, to Pokémon held items, to passive permanent items.
- $Most non-consumable item effects will stack in various ways.
- $Some items will only show up if they can be used, such as evolution items.
- $You can also transfer held items between Pokémon using the transfer option.
- $The transfer option will appear in the bottom right once you have obtained a held item.
- $You may purchase consumable items with money, and a larger variety will be available the further you get.
- $Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`, null, () => scene.ui.showText('', null, () => scene.ui.setModeWithoutClear(Mode.MODIFIER_SELECT).then(() => resolve())), null, true);
+ scene.ui.showText(i18next.t("tutorial:selectItem"), null, () => scene.ui.showText('', null, () => scene.ui.setModeWithoutClear(Mode.MODIFIER_SELECT).then(() => resolve())), null, true);
});
});
},
[Tutorial.Egg_Gacha]: (scene: BattleScene) => {
return new Promise(resolve => {
- scene.ui.showText(`From this screen, you can redeem your vouchers for\nPokémon eggs.
- $Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
- $Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
- $Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
- $Some Pokémon can only even be obtained from eggs.
- $There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`, null, () => scene.ui.showText('', null, () => resolve()), null, true);
+ scene.ui.showText(i18next.t("tutorial:eggGacha"), null, () => scene.ui.showText('', null, () => resolve()), null, true);
});
},
};
@@ -94,4 +80,4 @@ export function handleTutorial(scene: BattleScene, tutorial: Tutorial): Promise<
resolve(true);
});
});
-}
\ No newline at end of file
+}
diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts
index ae794a256fa..2ca0457c801 100644
--- a/src/ui/battle-info.ts
+++ b/src/ui/battle-info.ts
@@ -7,6 +7,9 @@ import { StatusEffect } from '../data/status-effect';
import BattleScene from '../battle-scene';
import { Type, getTypeRgb } from '../data/type';
import { getVariantTint } from '#app/data/variant';
+import { BattleStat } from '#app/data/battle-stat';
+
+const battleStatOrder = [ BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.ACC, BattleStat.EVA, BattleStat.SPD ];
export default class BattleInfo extends Phaser.GameObjects.Container {
private player: boolean;
@@ -24,6 +27,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
private lastLevelExp: integer;
private lastLevel: integer;
private lastLevelCapped: boolean;
+ private lastBattleStats: string;
private box: Phaser.GameObjects.Sprite;
private nameText: Phaser.GameObjects.Text;
@@ -46,6 +50,11 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
public expMaskRect: Phaser.GameObjects.Graphics;
+ private statsContainer: Phaser.GameObjects.Container;
+ private statsBox: Phaser.GameObjects.Sprite;
+ private statValuesContainer: Phaser.GameObjects.Container;
+ private statNumbers: Phaser.GameObjects.Sprite[];
+
constructor(scene: Phaser.Scene, x: number, y: number, player: boolean) {
super(scene, x, y);
this.player = player;
@@ -138,18 +147,6 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
this.levelNumbersContainer = this.scene.add.container(9.5, (this.scene as BattleScene).uiTheme ? 0 : -0.5);
this.levelContainer.add(this.levelNumbersContainer);
- this.type1Icon = this.scene.add.sprite(player ? -139 : -15, player ? -17 : -15.5, `pbinfo_${player ? 'player' : 'enemy'}_type1`);
- this.type1Icon.setOrigin(0, 0);
- this.add(this.type1Icon);
-
- this.type2Icon = this.scene.add.sprite(player ? -139 : -15, player ? -1 : -2.5, `pbinfo_${player ? 'player' : 'enemy'}_type2`);
- this.type2Icon.setOrigin(0, 0);
- this.add(this.type2Icon);
-
- this.type3Icon = this.scene.add.sprite(player ? -154 : 0, player ? -17 : -15.5, `pbinfo_${player ? 'player' : 'enemy'}_type`);
- this.type3Icon.setOrigin(0, 0);
- this.add(this.type3Icon);
-
if (this.player) {
this.hpNumbersContainer = this.scene.add.container(-15, 10);
this.add(this.hpNumbersContainer);
@@ -171,6 +168,46 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
this.expBar = expBar;
this.expMaskRect = expMaskRect;
}
+
+ this.statsContainer = this.scene.add.container(0, 0);
+ this.statsContainer.setAlpha(0);
+ this.add(this.statsContainer);
+
+ this.statsBox = this.scene.add.sprite(0, 0, `${this.getTextureName()}_stats`);
+ this.statsBox.setOrigin(1, 0.5);
+ this.statsContainer.add(this.statsBox);
+
+ const statLabels: Phaser.GameObjects.Sprite[] = [];
+ this.statNumbers = [];
+
+ this.statValuesContainer = this.scene.add.container(0, 0);
+ this.statsContainer.add(this.statValuesContainer);
+
+ battleStatOrder.map((s, i) => {
+ const statX = i > 1 ? this.statNumbers[i - 2].x + this.statNumbers[i - 2].width + 4 : -this.statsBox.width + 8;
+ const statY = -this.statsBox.height / 2 + 4 + (i < battleStatOrder.length - 1 ? (i % 2 ? 10 : 0) : 5);
+ const statLabel = this.scene.add.sprite(statX, statY, 'pbinfo_stat', BattleStat[s]);
+ statLabel.setOrigin(0, 0);
+ statLabels.push(statLabel);
+ this.statValuesContainer.add(statLabel);
+
+ const statNumber = this.scene.add.sprite(statX + statLabel.width, statY, 'pbinfo_stat_numbers', '3');
+ statNumber.setOrigin(0, 0);
+ this.statNumbers.push(statNumber);
+ this.statValuesContainer.add(statNumber);
+ });
+
+ this.type1Icon = this.scene.add.sprite(player ? -139 : -15, player ? -17 : -15.5, `pbinfo_${player ? 'player' : 'enemy'}_type1`);
+ this.type1Icon.setOrigin(0, 0);
+ this.add(this.type1Icon);
+
+ this.type2Icon = this.scene.add.sprite(player ? -139 : -15, player ? -1 : -2.5, `pbinfo_${player ? 'player' : 'enemy'}_type2`);
+ this.type2Icon.setOrigin(0, 0);
+ this.add(this.type2Icon);
+
+ this.type3Icon = this.scene.add.sprite(player ? -154 : 0, player ? -17 : -15.5, `pbinfo_${player ? 'player' : 'enemy'}_type`);
+ this.type3Icon.setOrigin(0, 0);
+ this.add(this.type3Icon);
}
initInfo(pokemon: Pokemon) {
@@ -258,7 +295,14 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
this.expMaskRect.x = (pokemon.levelExp / getLevelTotalExp(pokemon.level, pokemon.species.growthRate)) * 510;
this.lastExp = pokemon.exp;
this.lastLevelExp = pokemon.levelExp;
+
+ this.statValuesContainer.setPosition(8, 7)
}
+
+ const battleStats = battleStatOrder.map(() => 0);
+
+ this.lastBattleStats = battleStats.join('');
+ this.updateBattleStats(battleStats);
}
getTextureName(): string {
@@ -272,6 +316,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
this.mini = mini;
this.box.setTexture(this.getTextureName());
+ this.statsBox.setTexture(`${this.getTextureName()}_stats`);
if (this.player)
this.y -= 12 * (mini ? 1 : -1);
@@ -284,21 +329,34 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
el.y += -8 * (mini ? 1 : -1);
});
+ this.statValuesContainer.x += 2 * (mini ? 1 : -1);
+ this.statValuesContainer.y += -7 * (mini ? 1 : -1);
+
const toggledElements = [ this.hpNumbersContainer, this.expBar ];
toggledElements.forEach(el => el.setVisible(!mini));
}
+ toggleStats(visible: boolean): void {
+ this.scene.tweens.add({
+ targets: this.statsContainer,
+ duration: Utils.fixedInt(125),
+ ease: 'Sine.easeInOut',
+ alpha: visible ? 1 : 0
+ });
+ }
+
updateBossSegments(pokemon: EnemyPokemon): void {
const boss = !!pokemon.bossSegments;
if (boss !== this.boss) {
this.boss = boss;
- [ this.nameText, this.genderText, this.teraIcon, this.splicedIcon, this.shinyIcon, this.ownedIcon, this.statusIndicator, this.levelContainer ].map(e => e.x += 48 * (boss ? -1 : 1));
+ [ this.nameText, this.genderText, this.teraIcon, this.splicedIcon, this.shinyIcon, this.ownedIcon, this.statusIndicator, this.levelContainer, this.statValuesContainer ].map(e => e.x += 48 * (boss ? -1 : 1));
this.hpBar.x += 38 * (boss ? -1 : 1);
this.hpBar.y += 2 * (this.boss ? -1 : 1);
this.hpBar.setTexture(`overlay_hp${boss ? '_boss' : ''}`);
this.box.setTexture(this.getTextureName());
+ this.statsBox.setTexture(`${this.getTextureName()}_stats`);
}
this.bossSegments = boss ? pokemon.bossSegments : 0;
@@ -317,6 +375,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
const divider = this.scene.add.rectangle(0, 0, 1, this.hpBar.height - (uiTheme ? 0 : 1), pokemon.bossSegmentIndex >= s ? 0xFFFFFF : 0x404040)
divider.setOrigin(0.5, 0);
this.add(divider);
+ this.moveBelow(divider as Phaser.GameObjects.GameObject, this.statsContainer);
divider.setPositionRelative(this.hpBar, dividerX, uiTheme ? 0 : 1);
this.hpBarSegmentDividers.push(divider);
@@ -439,6 +498,16 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
this.lastLevel = pokemon.level;
}
+ const battleStats = pokemon.summonData
+ ? pokemon.summonData.battleStats
+ : battleStatOrder.map(() => 0);
+ const battleStatsStr = battleStats.join('');
+
+ if (this.lastBattleStats !== battleStatsStr) {
+ this.updateBattleStats(battleStats);
+ this.lastBattleStats = battleStatsStr;
+ }
+
this.shinyIcon.setVisible(pokemon.isShiny());
resolve();
@@ -513,7 +582,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
});
}
- setLevel(level: integer) {
+ setLevel(level: integer): void {
const isCapped = level >= (this.scene as BattleScene).getMaxExpLevel();
this.levelNumbersContainer.removeAll(true);
const levelStr = level.toString();
@@ -522,7 +591,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
this.levelContainer.setX((this.player ? -41 : -50) - 8 * Math.max(levelStr.length - 3, 0));
}
- setHpNumbers(hp: integer, maxHp: integer) {
+ setHpNumbers(hp: integer, maxHp: integer): void {
if (!this.player || !this.scene)
return;
this.hpNumbersContainer.removeAll(true);
@@ -535,6 +604,12 @@ export default class BattleInfo extends Phaser.GameObjects.Container {
for (let i = hpStr.length - 1; i >= 0; i--)
this.hpNumbersContainer.add(this.scene.add.image(offset++ * -8, 0, 'numbers', hpStr[i]));
}
+
+ updateBattleStats(battleStats: integer[]): void {
+ battleStatOrder.map((s, i) => {
+ this.statNumbers[i].setFrame(battleStats[s].toString());
+ });
+ }
}
export class PlayerBattleInfo extends BattleInfo {
diff --git a/src/ui/battle-message-ui-handler.ts b/src/ui/battle-message-ui-handler.ts
index 7bf983c34ed..5e2cb56518f 100644
--- a/src/ui/battle-message-ui-handler.ts
+++ b/src/ui/battle-message-ui-handler.ts
@@ -1,15 +1,16 @@
import BattleScene, { Button } from "../battle-scene";
-import { addTextObject, TextStyle } from "./text";
+import { addBBCodeTextObject, addTextObject, getTextColor, TextStyle } from "./text";
import { Mode } from "./ui";
import * as Utils from "../utils";
import MessageUiHandler from "./message-ui-handler";
import { getStatName, Stat } from "../data/pokemon-stat";
import { addWindow } from "./ui-theme";
+import BBCodeText from "phaser3-rex-plugins/plugins/bbcodetext";
export default class BattleMessageUiHandler extends MessageUiHandler {
private levelUpStatsContainer: Phaser.GameObjects.Container;
private levelUpStatsIncrContent: Phaser.GameObjects.Text;
- private levelUpStatsValuesContent: Phaser.GameObjects.Text;
+ private levelUpStatsValuesContent: BBCodeText;
private nameBox: Phaser.GameObjects.NineSlice;
private nameText: Phaser.GameObjects.Text;
@@ -29,7 +30,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler {
this.textCallbackTimer = null;
const bg = this.scene.add.sprite(0, 0, 'bg', this.scene.windowType);
- bg.setOrigin(0, 1);
+ bg.setOrigin(0, 1);
ui.add(bg);
this.bg = bg;
@@ -95,18 +96,19 @@ export default class BattleMessageUiHandler extends MessageUiHandler {
this.levelUpStatsContainer = levelUpStatsContainer;
- const levelUpStatsBg = addWindow(this.scene, (this.scene.game.canvas.width / 6), -100, 128, 100);
- levelUpStatsBg.setOrigin(1, 0);
- levelUpStatsContainer.add(levelUpStatsBg);
-
- const levelUpStatsLabelsContent = addTextObject(this.scene, (this.scene.game.canvas.width / 6) - 121, -94, '', TextStyle.WINDOW, { maxLines: 6 });
+ const levelUpStatsLabelsContent = addTextObject(this.scene, (this.scene.game.canvas.width / 6) - 73, -94, '', TextStyle.WINDOW, { maxLines: 6 });
let levelUpStatsLabelText = '';
const stats = Utils.getEnumValues(Stat);
for (let s of stats)
levelUpStatsLabelText += `${getStatName(s)}\n`;
-
levelUpStatsLabelsContent.text = levelUpStatsLabelText;
+ levelUpStatsLabelsContent.x -= levelUpStatsLabelsContent.displayWidth;
+
+ const levelUpStatsBg = addWindow(this.scene, (this.scene.game.canvas.width / 6), -100, 80 + levelUpStatsLabelsContent.displayWidth, 100);
+ levelUpStatsBg.setOrigin(1, 0);
+ levelUpStatsContainer.add(levelUpStatsBg);
+
levelUpStatsContainer.add(levelUpStatsLabelsContent);
const levelUpStatsIncrContent = addTextObject(this.scene, (this.scene.game.canvas.width / 6) - 50, -94, '+\n+\n+\n+\n+\n+', TextStyle.WINDOW, { maxLines: 6 });
@@ -114,7 +116,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler {
this.levelUpStatsIncrContent = levelUpStatsIncrContent;
- const levelUpStatsValuesContent = addTextObject(this.scene, (this.scene.game.canvas.width / 6) - 7, -94, '', TextStyle.WINDOW, { maxLines: 6 });
+ const levelUpStatsValuesContent = addBBCodeTextObject(this.scene, (this.scene.game.canvas.width / 6) - 7, -94, '', TextStyle.WINDOW, { maxLines: 6 , lineSpacing: 5});
levelUpStatsValuesContent.setOrigin(1, 0);
levelUpStatsValuesContent.setAlign('right');
levelUpStatsContainer.add(levelUpStatsValuesContent);
@@ -208,7 +210,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler {
} else
shownStats = stats;
for (let s of stats)
- levelUpStatsValuesText += `${shownStats.indexOf(s) > -1 ? this.getIvDescriptor(ivs[s]) : '???'}\n`;
+ levelUpStatsValuesText += `${shownStats.indexOf(s) > -1 ? this.getIvDescriptor(ivs[s], s, pokemonId) : '???'}\n`;
this.levelUpStatsValuesContent.text = levelUpStatsValuesText;
this.levelUpStatsIncrContent.setVisible(false);
this.levelUpStatsContainer.setVisible(true);
@@ -221,18 +223,30 @@ export default class BattleMessageUiHandler extends MessageUiHandler {
});
}
- getIvDescriptor(value: integer): string {
+ getIvDescriptor(value: integer, typeIv: integer, pokemonId: integer): string {
+ const starterSpecies = this.scene.getPokemonById(pokemonId).species.getRootSpeciesId(true);
+ const starterIvs: number[] = this.scene.gameData.dexData[starterSpecies].ivs;
+ const uiTheme = (this.scene as BattleScene).uiTheme; // Assuming uiTheme is accessible
+
+ // Function to wrap text in color based on comparison
+ const coloredText = (text: string, isBetter: boolean) => {
+ const textStyle: TextStyle = isBetter ? TextStyle.SUMMARY_GREEN : TextStyle.SUMMARY;
+ const color = getTextColor(textStyle, false, uiTheme);
+ return `[color=${color}][shadow=${getTextColor(textStyle, true, uiTheme)}]${text}[/shadow][/color]`;
+ };
+
if (value > 30)
- return 'Best';
+ return coloredText('Best', value > starterIvs[typeIv]);
if (value === 30)
- return 'Fantastic';
+ return coloredText('Fantastic', value > starterIvs[typeIv]);
if (value > 20)
- return 'Very Good';
+ return coloredText('Very Good', value > starterIvs[typeIv]);
if (value > 10)
- return 'Pretty Good';
- if (value)
- return 'Decent';
- return 'No Good';
+ return coloredText('Pretty Good', value > starterIvs[typeIv]);
+ if (value > 0)
+ return coloredText('Decent', value > starterIvs[typeIv]);
+
+ return coloredText('No Good', value > starterIvs[typeIv]);
}
showNameText(name: string): void {
@@ -244,4 +258,4 @@ export default class BattleMessageUiHandler extends MessageUiHandler {
hideNameText(): void {
this.nameBoxContainer.setVisible(false);
}
-}
\ No newline at end of file
+}
diff --git a/src/ui/candy-bar.ts b/src/ui/candy-bar.ts
index 2219e07479d..a4cc1295028 100644
--- a/src/ui/candy-bar.ts
+++ b/src/ui/candy-bar.ts
@@ -69,6 +69,8 @@ export default class CandyBar extends Phaser.GameObjects.Container {
if (this.tween)
this.tween.stop();
+ (this.scene as BattleScene).playSound('shing');
+
this.tween = this.scene.tweens.add({
targets: this,
x: (this.scene.game.canvas.width / 6) - (this.bg.width - 5),
diff --git a/src/ui/confirm-ui-handler.ts b/src/ui/confirm-ui-handler.ts
index d9e7726d826..a220b6f3a3d 100644
--- a/src/ui/confirm-ui-handler.ts
+++ b/src/ui/confirm-ui-handler.ts
@@ -1,6 +1,7 @@
import BattleScene, { Button } from "../battle-scene";
import AbstractOptionSelectUiHandler, { OptionSelectConfig } from "./abstact-option-select-ui-handler";
import { Mode } from "./ui";
+import i18next from "i18next";
export default class ConfirmUiHandler extends AbstractOptionSelectUiHandler {
private switchCheck: boolean;
@@ -19,14 +20,14 @@ export default class ConfirmUiHandler extends AbstractOptionSelectUiHandler {
const config: OptionSelectConfig = {
options: [
{
- label: 'Yes',
+ label: i18next.t("menu:yes"),
handler: () => {
args[0]();
return true;
}
},
{
- label: 'No',
+ label: i18next.t("menu:no"),
handler: () => {
args[1]();
return true;
diff --git a/src/ui/daily-run-scoreboard.ts b/src/ui/daily-run-scoreboard.ts
index 90fef5ba5e4..8b258b3a702 100644
--- a/src/ui/daily-run-scoreboard.ts
+++ b/src/ui/daily-run-scoreboard.ts
@@ -2,6 +2,7 @@ import BattleScene from "../battle-scene";
import { TextStyle, addTextObject } from "./text";
import { WindowVariant, addWindow } from "./ui-theme";
import * as Utils from "../utils";
+import i18next from "i18next";
interface RankingEntry {
rank: integer,
@@ -10,6 +11,7 @@ interface RankingEntry {
wave: integer
}
+// Don't forget to update translations when adding a new category
enum ScoreboardCategory {
DAILY,
WEEKLY
@@ -39,7 +41,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
const titleWindow = addWindow(this.scene, 0, 0, 114, 18, false, false, null, null, WindowVariant.THIN);
this.add(titleWindow);
- this.titleLabel = addTextObject(this.scene, titleWindow.displayWidth / 2, titleWindow.displayHeight / 2, 'Daily Rankings', TextStyle.WINDOW, { fontSize: '64px' });
+ this.titleLabel = addTextObject(this.scene, titleWindow.displayWidth / 2, titleWindow.displayHeight / 2, i18next.t('menu:loading'), TextStyle.WINDOW, { fontSize: '64px' });
this.titleLabel.setOrigin(0.5, 0.5);
this.add(this.titleLabel);
@@ -141,7 +143,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
update(category: ScoreboardCategory = this.category, page: integer = this.page) {
this.rankingsContainer.removeAll(true);
- this.loadingLabel.setText('Loading…');
+ this.loadingLabel.setText(i18next.t('menu:loading'));
this.loadingLabel.setVisible(true);
if (category !== this.category)
@@ -155,7 +157,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
.then(jsonResponse => {
this.page = page;
this.category = category;
- this.titleLabel.setText(`${Utils.toReadableString(ScoreboardCategory[category])} Rankings`);
+ this.titleLabel.setText(`${i18next.t(`menu:${ScoreboardCategory[category].toLowerCase()}Rankings`)}`);
this.prevPageButton.setAlpha(page > 1 ? 1 : 0.5);
this.nextPageButton.setAlpha(page < this.pageCount ? 1 : 0.5);
this.pageNumberLabel.setText(page.toString());
@@ -163,9 +165,9 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
this.loadingLabel.setVisible(false);
this.updateRankings(jsonResponse);
} else
- this.loadingLabel.setText('No Rankings');
+ this.loadingLabel.setText(i18next.t('menu:noRankings'));
});
- });
+ }).catch(err => { console.error("Failed to load daily rankings:\n", err) });
}
}
diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts
index 30558b5bda0..35014fa7027 100644
--- a/src/ui/party-ui-handler.ts
+++ b/src/ui/party-ui-handler.ts
@@ -90,6 +90,7 @@ export default class PartyUiHandler extends MessageUiHandler {
private selectFilter: PokemonSelectFilter | PokemonModifierTransferSelectFilter;
private moveSelectFilter: PokemonMoveSelectFilter;
private tmMoveId: Moves;
+ private showMovePp: boolean;
private iconAnimHandler: PokemonIconAnimHandler;
@@ -185,6 +186,7 @@ export default class PartyUiHandler extends MessageUiHandler {
? args[4] as PokemonMoveSelectFilter
: PartyUiHandler.FilterAllMoves;
this.tmMoveId = args.length > 5 && args[5] ? args[5] : Moves.NONE;
+ this.showMovePp = args.length > 6 && args[6];
this.partyContainer.setVisible(true);
this.partyBg.setTexture(`party_bg${this.scene.currentBattle.double ? '_double' : ''}`);
@@ -383,6 +385,7 @@ export default class PartyUiHandler extends MessageUiHandler {
}
const slotCount = this.partySlots.length;
+ const battlerCount = this.scene.currentBattle.getBattlerCount();
switch (button) {
case Button.UP:
@@ -392,14 +395,20 @@ export default class PartyUiHandler extends MessageUiHandler {
success = this.setCursor(this.cursor < 6 ? this.cursor < slotCount - 1 ? this.cursor + 1 : 6 : 0);
break;
case Button.LEFT:
- if (this.cursor >= this.scene.currentBattle.getBattlerCount() && this.cursor < 6)
+ if (this.cursor >= battlerCount && this.cursor <= 6)
success = this.setCursor(0);
break;
case Button.RIGHT:
- const battlerCount = this.scene.currentBattle.getBattlerCount();
- if (slotCount > battlerCount && this.cursor < battlerCount)
- success = this.setCursor(this.lastCursor < 6 ? this.lastCursor || battlerCount : battlerCount);
+ if (slotCount === battlerCount){
+ success = this.setCursor(6);
break;
+ } else if (battlerCount >= 2 && slotCount > battlerCount && this.getCursor() === 0 && this.lastCursor === 1){
+ success = this.setCursor(2);
+ break;
+ } else if (slotCount > battlerCount && this.cursor < battlerCount){
+ success = this.setCursor(this.lastCursor < 6 ? this.lastCursor || battlerCount : battlerCount);
+ break;
+ }
}
}
@@ -656,7 +665,14 @@ export default class PartyUiHandler extends MessageUiHandler {
case PartyOption.MOVE_2:
case PartyOption.MOVE_3:
case PartyOption.MOVE_4:
- optionName = pokemon.moveset[option - PartyOption.MOVE_1].getName();
+ const move = pokemon.moveset[option - PartyOption.MOVE_1];
+ if(this.showMovePp) {
+ const maxPP = move.getMovePp();
+ const currPP = maxPP - move.ppUsed;
+ optionName = `${move.getName()} ${currPP}/${maxPP}`;
+ } else {
+ optionName = move.getName();
+ }
break;
default:
if (formChangeItemModifiers && option >= PartyOption.FORM_CHANGE_ITEM) {
diff --git a/src/ui/pokemon-info-container.ts b/src/ui/pokemon-info-container.ts
index 4d8ecfe0b03..572a28f10c8 100644
--- a/src/ui/pokemon-info-container.ts
+++ b/src/ui/pokemon-info-container.ts
@@ -161,8 +161,9 @@ export default class PokemonInfoContainer extends Phaser.GameObjects.Container {
if (isFusion)
this.pokemonFusionShinyIcon.setTint(getVariantTint(pokemon.fusionVariant));
- const originalIvs: integer[] = this.scene.gameData.dexData[pokemon.species.speciesId].caughtAttr
- ? this.scene.gameData.dexData[pokemon.species.speciesId].ivs
+ const starterSpeciesId = pokemon.species.getRootSpeciesId(true);
+ const originalIvs: integer[] = this.scene.gameData.dexData[starterSpeciesId].caughtAttr
+ ? this.scene.gameData.dexData[starterSpeciesId].ivs
: null;
this.statsContainer.updateIvs(pokemon.ivs, originalIvs);
diff --git a/src/ui/save-slot-select-ui-handler.ts b/src/ui/save-slot-select-ui-handler.ts
index 181b0643cb9..69ac94d99ba 100644
--- a/src/ui/save-slot-select-ui-handler.ts
+++ b/src/ui/save-slot-select-ui-handler.ts
@@ -8,6 +8,7 @@ import * as Utils from "../utils";
import PokemonData from "../system/pokemon-data";
import { PokemonHeldItemModifier } from "../modifier/modifier";
import MessageUiHandler from "./message-ui-handler";
+import i18next from "i18next";
const sessionSlotCount = 5;
@@ -258,7 +259,7 @@ class SessionSlot extends Phaser.GameObjects.Container {
async setupWithData(data: SessionSaveData) {
this.remove(this.loadingLabel, true);
- const gameModeLabel = addTextObject(this.scene, 8, 5, `${gameModes[data.gameMode].getName()} - Wave ${data.waveIndex}`, TextStyle.WINDOW);
+ const gameModeLabel = addTextObject(this.scene, 8, 5, `${gameModes[data.gameMode]?.getName() || 'Unknown'} - Wave ${data.waveIndex}`, TextStyle.WINDOW);
this.add(gameModeLabel);
const timestampLabel = addTextObject(this.scene, 8, 19, new Date(data.timestamp).toLocaleString(), TextStyle.WINDOW);
@@ -314,7 +315,7 @@ class SessionSlot extends Phaser.GameObjects.Container {
this.scene.gameData.getSession(this.slotId).then(async sessionData => {
if (!sessionData) {
this.hasData = false;
- this.loadingLabel.setText('Empty');
+ this.loadingLabel.setText(i18next.t("menu:empty"));
resolve(false);
return;
}
diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts
index 2fd67ac0485..7cc99d81fb7 100644
--- a/src/ui/starter-select-ui-handler.ts
+++ b/src/ui/starter-select-ui-handler.ts
@@ -27,6 +27,7 @@ import { argbFromRgba } from "@material/material-color-utilities";
import { OptionSelectItem } from "./abstact-option-select-ui-handler";
import { pokemonPrevolutions } from "#app/data/pokemon-evolutions";
import { Variant, getVariantTint } from "#app/data/variant";
+import i18next from "i18next";
export type StarterSelectCallback = (starters: Starter[]) => void;
@@ -203,7 +204,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.starterSelectContainer.add(this.shinyOverlay);
const starterContainerWindow = addWindow(this.scene, 141, 1, 178, 178);
-
+
this.starterSelectContainer.add(addWindow(this.scene, 107, 1, 34, 58));
this.starterSelectContainer.add(addWindow(this.scene, 107, 59, 34, 91));
this.starterSelectContainer.add(addWindow(this.scene, 107, 145, 34, 34, true));
@@ -318,7 +319,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.genCursorObj.setVisible(false);
this.genCursorObj.setOrigin(0, 0);
this.starterSelectContainer.add(this.genCursorObj);
-
+
this.valueLimitLabel = addTextObject(this.scene, 124, 150, '0/10', TextStyle.TOOLTIP_CONTENT);
this.valueLimitLabel.setOrigin(0.5, 0);
this.starterSelectContainer.add(this.valueLimitLabel);
@@ -333,7 +334,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.starterSelectContainer.add(this.startCursorObj);
const starterSpecies: Species[] = [];
-
+
for (let g = 0; g < this.starterSelectGenIconContainers.length; g++) {
let s = 0;
this.genSpecies.push([]);
@@ -498,7 +499,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
const eggMovesLabel = addTextObject(this.scene, -46, 0, 'Egg Moves', TextStyle.WINDOW_ALT);
eggMovesLabel.setOrigin(0.5, 0);
-
+
this.pokemonEggMovesContainer.add(eggMovesLabel);
for (let m = 0; m < 4; m++) {
@@ -552,7 +553,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
species = getPokemonSpecies(randomSpeciesId);
pokerusCursor = this.genSpecies[species.generation - 1].indexOf(species);
};
-
+
let dupe = false;
do {
@@ -1049,7 +1050,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
}
}
}
-
+
if (success)
ui.playSelect();
else if (error)
@@ -1086,7 +1087,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.scene.gameData.starterData[speciesId].moveset = this.starterMoveset.slice(0) as StarterMoveset;
this.setSpeciesDetails(this.lastSpecies, undefined, undefined, undefined, undefined, undefined, undefined, false);
}
-
+
updateInstructions(): void {
let instructionLines = [ ];
let cycleInstructionLines = [];
@@ -1212,7 +1213,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
setGenMode(genMode: boolean): boolean {
this.genCursorObj.setVisible(genMode && !this.startCursorObj.visible);
this.cursorObj.setVisible(!genMode && !this.startCursorObj.visible);
-
+
if (genMode !== this.genMode) {
this.genMode = genMode;
@@ -1311,7 +1312,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
const defaultAbilityIndex = this.scene.gameData.getStarterSpeciesDefaultAbilityIndex(species);
const defaultNature = this.scene.gameData.getSpeciesDefaultNature(species);
props = this.scene.gameData.getSpeciesDexAttrProps(species, defaultDexAttr);
-
+
this.setSpeciesDetails(species, props.shiny, props.formIndex, props.female, props.variant, defaultAbilityIndex, defaultNature);
}
@@ -1319,7 +1320,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.setTypeIcons(speciesForm.type1, speciesForm.type2);
this.pokemonSprite.clearTint();
- if (this.pokerusCursors.find((cursor: integer, i: integer) => cursor === this.cursor && this.pokerusGens[i] === this.genCursor))
+ if (this.pokerusCursors.find((cursor: integer, i: integer) => cursor === this.cursor && this.pokerusGens[i] === this.getGenCursorWithScroll()))
handleTutorial(this.scene, Tutorial.Pokerus);
} else {
this.pokemonGrowthRateText.setText('');
@@ -1341,7 +1342,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
const defaultAbilityIndex = this.scene.gameData.getStarterSpeciesDefaultAbilityIndex(species);
const defaultNature = this.scene.gameData.getSpeciesDefaultNature(species);
const props = this.scene.gameData.getSpeciesDexAttrProps(species, defaultDexAttr);
-
+
this.setSpeciesDetails(species, props.shiny, props.formIndex, props.female, props.variant, defaultAbilityIndex, defaultNature, true);
this.pokemonSprite.setTint(0x808080);
}
@@ -1507,7 +1508,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.speciesStarterMoves.push(speciesEggMoves[species.speciesId][em]);
}
}
-
+
const speciesMoveData = this.scene.gameData.starterData[species.speciesId].moveset;
let moveData: StarterMoveset = speciesMoveData
? Array.isArray(speciesMoveData)
@@ -1653,7 +1654,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.clearText();
};
- ui.showText('Begin with these Pokémon?', null, () => {
+ ui.showText(i18next.t("menu:confirmStartTeam"), null, () => {
ui.setModeWithoutClear(Mode.CONFIRM, () => {
const startRun = (gameMode: GameModes) => {
this.scene.gameMode = gameModes[gameMode];
@@ -1696,7 +1697,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.statsContainer.updateIvs(null);
}
}
-
+
showStats(): void {
if (!this.speciesStarterDexEntry)
return;
diff --git a/src/ui/stats-container.ts b/src/ui/stats-container.ts
index 0144658051f..b8d9c59a4d7 100644
--- a/src/ui/stats-container.ts
+++ b/src/ui/stats-container.ts
@@ -4,7 +4,8 @@ import { Stat, getStatName } from "../data/pokemon-stat";
import { TextStyle, addBBCodeTextObject, addTextObject, getTextColor } from "./text";
const ivChartSize = 24;
-const ivChartStatCoordMultipliers = [ [ 0, 1 ], [ 0.825, 0.5 ], [ 0.825, -0.5 ], [ 0, -1 ], [ -0.825, -0.5 ], [ -0.825, 0.5 ] ];
+const ivChartStatCoordMultipliers = [ [ 0, -1 ], [ 0.825, -0.5 ], [ 0.825, 0.5 ], [ -0.825, -0.5 ], [ -0.825, 0.5 ], [ 0, 1 ] ];
+const ivChartStatIndexes = [0,1,2,5,4,3] // swap special attack and speed
const defaultIvChartData = new Array(12).fill(null).map(() => 0);
export class StatsContainer extends Phaser.GameObjects.Container {
@@ -22,7 +23,7 @@ export class StatsContainer extends Phaser.GameObjects.Container {
}
setup() {
- const ivChartBgData = new Array(6).fill(null).map((_, i: integer) => [ ivChartSize * ivChartStatCoordMultipliers[i][0], ivChartSize * ivChartStatCoordMultipliers[i][1] ] ).flat();
+ const ivChartBgData = new Array(6).fill(null).map((_, i: integer) => [ ivChartSize * ivChartStatCoordMultipliers[ivChartStatIndexes[i]][0], ivChartSize * ivChartStatCoordMultipliers[ivChartStatIndexes[i]][1] ] ).flat();
const ivChartBg = this.scene.add.polygon(48, 44, ivChartBgData, 0xd8e0f0, 0.625);
ivChartBg.setOrigin(0, 0);
@@ -62,7 +63,7 @@ export class StatsContainer extends Phaser.GameObjects.Container {
updateIvs(ivs: integer[], originalIvs?: integer[]): void {
if (ivs) {
- const ivChartData = new Array(6).fill(null).map((_, i) => [ (ivs[i] / 31) * ivChartSize * ivChartStatCoordMultipliers[i][0], (ivs[i] / 31) * ivChartSize * ivChartStatCoordMultipliers[i][1] ] ).flat();
+ const ivChartData = new Array(6).fill(null).map((_, i) => [ (ivs[ivChartStatIndexes[i]] / 31) * ivChartSize * ivChartStatCoordMultipliers[ivChartStatIndexes[i]][0], (ivs[ivChartStatIndexes[i]] / 31) * ivChartSize * ivChartStatCoordMultipliers[ivChartStatIndexes[i]][1] ] ).flat();
const lastIvChartData = this.statsIvsCache || defaultIvChartData;
this.statsIvsCache = ivChartData.slice(0);
diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts
index 44003a7c8fc..7776e21782f 100644
--- a/src/ui/summary-ui-handler.ts
+++ b/src/ui/summary-ui-handler.ts
@@ -364,9 +364,16 @@ export default class SummaryUiHandler extends UiHandler {
case Button.LEFT:
this.moveSelect = false;
this.setCursor(Page.STATS);
- this.hideMoveEffect();
- success = true;
- break;
+ if (this.summaryUiMode === SummaryUiMode.LEARN_MOVE){
+ this.hideMoveEffect();
+ this.destroyBlinkCursor();
+ success = true;
+ break;
+ } else {
+ this.hideMoveSelect();
+ success = true;
+ break;
+ }
}
}
} else {
@@ -426,16 +433,15 @@ export default class SummaryUiHandler extends UiHandler {
}
setCursor(cursor: integer, overrideChanged: boolean = false): boolean {
- let changed: boolean;
+ let changed: boolean = overrideChanged || this.moveCursor !== cursor;
if (this.moveSelect) {
- changed = overrideChanged || this.moveCursor !== cursor;
- if (changed) {
this.moveCursor = cursor;
const selectedMove = this.getSelectedMove();
if (selectedMove) {
+ this.moveDescriptionText.setY(84);
this.movePowerText.setText(selectedMove.power >= 0 ? selectedMove.power.toString() : '---');
this.moveAccuracyText.setText(selectedMove.accuracy >= 0 ? selectedMove.accuracy.toString() : '---');
this.moveCategoryIcon.setFrame(MoveCategory[selectedMove.category].toLowerCase());
@@ -452,7 +458,6 @@ export default class SummaryUiHandler extends UiHandler {
}
if (moveDescriptionLineCount > 3) {
- this.moveDescriptionText.setY(84);
this.descriptionScrollTween = this.scene.tweens.add({
targets: this.moveDescriptionText,
delay: Utils.fixedInt(2000),
@@ -462,7 +467,6 @@ export default class SummaryUiHandler extends UiHandler {
y: `-=${14.83 * (moveDescriptionLineCount - 3)}`
});
}
- }
if (!this.moveCursorObj) {
this.moveCursorObj = this.scene.add.sprite(-2, 0, 'summary_moves_cursor', 'highlight');
@@ -527,6 +531,11 @@ export default class SummaryUiHandler extends UiHandler {
this.setCursor(0, true);
this.showMoveEffect();
}
+ else if (this.cursor===Page.MOVES) {
+ this.moveCursorObj = null;
+ this.showMoveSelect();
+ this.showMoveEffect();
+ }
}
else
this.summaryPageTransitionContainer.x -= 214;
@@ -871,6 +880,12 @@ export default class SummaryUiHandler extends UiHandler {
this.moveSelect = false;
this.extraMoveRowContainer.setVisible(false);
this.moveDescriptionText.setText('');
+
+ this.destroyBlinkCursor();
+ this.hideMoveEffect();
+ }
+
+ destroyBlinkCursor(){
if (this.moveCursorBlinkTimer) {
this.moveCursorBlinkTimer.destroy();
this.moveCursorBlinkTimer = null;
@@ -883,8 +898,6 @@ export default class SummaryUiHandler extends UiHandler {
this.selectedMoveCursorObj.destroy();
this.selectedMoveCursorObj = null;
}
-
- this.hideMoveEffect();
}
showMoveEffect(instant?: boolean) {
diff --git a/src/ui/text.ts b/src/ui/text.ts
index bfb02d06e27..a8cce878240 100644
--- a/src/ui/text.ts
+++ b/src/ui/text.ts
@@ -19,6 +19,7 @@ export enum TextStyle {
SUMMARY_PINK,
SUMMARY_GOLD,
SUMMARY_GRAY,
+ SUMMARY_GREEN,
MONEY,
SETTINGS_LABEL,
SETTINGS_SELECTED,
@@ -82,6 +83,7 @@ function getTextStyleOptions(style: TextStyle, uiTheme: UiTheme, extraStyleOptio
case TextStyle.SUMMARY_PINK:
case TextStyle.SUMMARY_GOLD:
case TextStyle.SUMMARY_GRAY:
+ case TextStyle.SUMMARY_GREEN:
case TextStyle.WINDOW:
case TextStyle.WINDOW_ALT:
case TextStyle.MESSAGE:
@@ -160,6 +162,8 @@ export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: Ui
return !shadow ? '#e8e8a8' : '#a0a060';
case TextStyle.SUMMARY_GRAY:
return !shadow ? '#a0a0a0' : '#636363';
+ case TextStyle.SUMMARY_GREEN:
+ return !shadow ? '#78c850' : '#306850';
case TextStyle.SETTINGS_LABEL:
return !shadow ? '#f8b050' : '#c07800';
case TextStyle.SETTINGS_SELECTED:
diff --git a/src/ui/title-ui-handler.ts b/src/ui/title-ui-handler.ts
index 6c96e475929..6f873c6b0a1 100644
--- a/src/ui/title-ui-handler.ts
+++ b/src/ui/title-ui-handler.ts
@@ -5,6 +5,7 @@ import { Mode } from "./ui";
import * as Utils from "../utils";
import { TextStyle, addTextObject } from "./text";
import { battleCountSplashMessage, splashMessages } from "../data/splash-messages";
+import i18next from "i18next";
export default class TitleUiHandler extends OptionSelectUiHandler {
private titleContainer: Phaser.GameObjects.Container;
@@ -37,7 +38,7 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
this.titleContainer.add(this.dailyRunScoreboard);
- this.playerCountLabel = addTextObject(this.scene, (this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.height / 6) - 90, '? Players Online', TextStyle.MESSAGE, { fontSize: '54px' });
+ this.playerCountLabel = addTextObject(this.scene, (this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.height / 6) - 90, `? ${i18next.t("menu:playersOnline")}`, TextStyle.MESSAGE, { fontSize: '54px' });
this.playerCountLabel.setOrigin(1, 0);
this.titleContainer.add(this.playerCountLabel);
@@ -61,9 +62,12 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
Utils.apiFetch(`game/titlestats`)
.then(request => request.json())
.then(stats => {
- this.playerCountLabel.setText(`${stats.playerCount} Players Online`);
+ this.playerCountLabel.setText(`${stats.playerCount} ${i18next.t("menu:playersOnline")}`);
if (this.splashMessage === battleCountSplashMessage)
this.splashMessageText.setText(battleCountSplashMessage.replace('{COUNT}', stats.battleCount.toLocaleString('en-US')));
+ })
+ .catch(err => {
+ console.error("Failed to fetch title stats:\n", err);
});
}
diff --git a/tsconfig.json b/tsconfig.json
index c07d12b010c..ab6fd748bfc 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -6,7 +6,7 @@
"resolveJsonModule": true,
"esModuleInterop": true,
"strictNullChecks": false,
- "sourceMap": true,
+ "sourceMap": false,
"strict": false,
"rootDir": "./src",
"baseUrl": "./src",
diff --git a/vite.config.js b/vite.config.js
index f257239cafa..220747b98e3 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -8,7 +8,7 @@ export default defineConfig(({ mode }) => {
clearScreen: false,
build: {
minify: 'esbuild',
- sourcemap: true
+ sourcemap: false
},
esbuild: {
pure: mode === 'production' ? [ 'console.log' ] : [],