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 a8c20cc49ed..d5ffb651f54 100644 --- a/package.json +++ b/package.json @@ -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/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/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 738b9eaec07..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 2be51b49d14..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 5662825df7d..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 2747c376bca..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 1a9a2ad1689..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 1ca19430e66..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 0ea64fcd55e..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 d3019440c8a..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 de93346cb74..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/src/data/arena-tag.ts b/src/data/arena-tag.ts index bb76a9880b3..a879c68d4ce 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; @@ -472,6 +497,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: diff --git a/src/data/enums/arena-tag-type.ts b/src/data/enums/arena-tag-type.ts index cc08ca4fdcf..8478b6f3f57 100644 --- a/src/data/enums/arena-tag-type.ts +++ b/src/data/enums/arena-tag-type.ts @@ -8,6 +8,7 @@ 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", diff --git a/src/data/move.ts b/src/data/move.ts index a95ce9c91f4..5d5fec95729 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -4493,7 +4493,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(), diff --git a/src/locales/de/pokemon.ts b/src/locales/de/pokemon.ts index 08fdbf01d02..db92ccc5c18 100644 --- a/src/locales/de/pokemon.ts +++ b/src/locales/de/pokemon.ts @@ -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,116 +495,116 @@ 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", + "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": "Elgyem", "beheeyem": "Beheeyem", "litwick": "Litwick", diff --git a/src/locales/fr/menu.ts b/src/locales/fr/menu.ts index 911445bcdca..037f0f3b5e2 100644 --- a/src/locales/fr/menu.ts +++ b/src/locales/fr/menu.ts @@ -73,9 +73,9 @@ export const menu: SimpleTranslationEntries = { "skipItemQuestion": "Êtes-vous sûr·e de ne pas vouloir prendre d’objet ?", "eggHatching": "Oh ?", "ivScannerUseQuestion": "Utiliser le Scanner d’IV sur {{pokemonName}} ?", - "rankings": "Rankings", - "dailyRankings": "Daily Rankings", - "noRankings": "No Rankings", - "loading": "Loading…", - "playersOnline": "Players Online" + "rankings": "Classement", + "dailyRankings": "Classement du Jour", + "noRankings": "Pas de Classement", + "loading": "Chargement…", + "playersOnline": "Joueurs Connectés" } as const; diff --git a/src/locales/fr/tutorial.ts b/src/locales/fr/tutorial.ts index 2722c02ad45..c9f8a392e1e 100644 --- a/src/locales/fr/tutorial.ts +++ b/src/locales/fr/tutorial.ts @@ -1,38 +1,43 @@ 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!`, + "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.`, - "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!`, + "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`, - "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!`, + "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 !`, - "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.`, + "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 coût 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 !`, - "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!`, + "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é !`, + + "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; \ No newline at end of file diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index b12bda1f419..22a407c3b42 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'; @@ -55,7 +57,6 @@ export interface SimpleTranslationEntries { [key: string]: string } - export interface MoveTranslationEntry { name: string, effect: string @@ -78,10 +79,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'); @@ -92,18 +91,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, diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index 30558b5bda0..29a4037f12f 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -383,6 +383,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 +393,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; + } } } diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 2fd67ac0485..f1e058b12cf 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -203,7 +203,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 +318,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 +333,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 +498,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 +552,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { species = getPokemonSpecies(randomSpeciesId); pokerusCursor = this.genSpecies[species.generation - 1].indexOf(species); }; - + let dupe = false; do { @@ -1049,7 +1049,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } } } - + if (success) ui.playSelect(); else if (error) @@ -1086,7 +1086,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 +1212,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 +1311,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 +1319,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 +1341,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 +1507,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) @@ -1696,7 +1696,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.statsContainer.updateIvs(null); } } - + showStats(): void { if (!this.speciesStarterDexEntry) return; diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts index 44003a7c8fc..cf5eb3639fd 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,11 +433,9 @@ 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(); @@ -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) {