diff --git a/public/audio/bgm/battle_legendary_k.mp3 b/public/audio/bgm/battle_legendary_kyurem.mp3 similarity index 100% rename from public/audio/bgm/battle_legendary_k.mp3 rename to public/audio/bgm/battle_legendary_kyurem.mp3 diff --git a/public/audio/bgm/battle_legendary_regis.mp3 b/public/audio/bgm/battle_legendary_regis.mp3 new file mode 100644 index 00000000000..227d544d91b Binary files /dev/null and b/public/audio/bgm/battle_legendary_regis.mp3 differ diff --git a/public/audio/bgm/battle_legendary_rz.mp3 b/public/audio/bgm/battle_legendary_res_zek.mp3 similarity index 100% rename from public/audio/bgm/battle_legendary_rz.mp3 rename to public/audio/bgm/battle_legendary_res_zek.mp3 diff --git a/public/audio/bgm/battle_legendary.mp3 b/public/audio/bgm/battle_legendary_unova.mp3 similarity index 100% rename from public/audio/bgm/battle_legendary.mp3 rename to public/audio/bgm/battle_legendary_unova.mp3 diff --git a/public/images/pokemon/676-dandy.json b/public/images/pokemon/676-dandy.json index 44ac790a466..f7a72a0d573 100644 --- a/public/images/pokemon/676-dandy.json +++ b/public/images/pokemon/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:29165e5c573c8a4235076355ce5d29d5:17a1912fd81d23ce8a7209e27ad3e9ed:b5a287256e260744fe6660dc2ceefd11$" + "smartupdate": "$TexturePacker:SmartUpdate:c09947cc1f66b7a7bf844a7caaa3bd76:20ba7e14cce8a9ee80955d94d19ae46f:b5a287256e260744fe6660dc2ceefd11$" } } diff --git a/public/images/pokemon/676-dandy.png b/public/images/pokemon/676-dandy.png index 738b9eaec07..1e9f9b7bb2c 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.json b/public/images/pokemon/676-debutante.json index f547be68ff9..13f12a90a0b 100644 --- a/public/images/pokemon/676-debutante.json +++ b/public/images/pokemon/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:689efba1d73755e99f598016fd321c3c:07d06d321fff31976e1b993edb972e4f:bf2f862a1c8881133f9f3ffbf44602fa$" + "smartupdate": "$TexturePacker:SmartUpdate:107780a0e7447bf89ae4998e24021f8b:7623c7ab8d7b6bc5f755e8a1f81ea257:bf2f862a1c8881133f9f3ffbf44602fa$" } } diff --git a/public/images/pokemon/676-debutante.png b/public/images/pokemon/676-debutante.png index 2be51b49d14..92390b17f34 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.json b/public/images/pokemon/676-diamond.json index dec7fd8eafc..4fbb8896674 100644 --- a/public/images/pokemon/676-diamond.json +++ b/public/images/pokemon/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:b33f3de937219e7763316531398d7bbd:c7e104da9393ec52b9e6d37f92fc20d9:88c467fc09249b0d2f579d44eacd528d$" + "smartupdate": "$TexturePacker:SmartUpdate:90477dc67c3429f2f0430f0a868ed85c:bd69660307b7d945313b73a256c24d57:88c467fc09249b0d2f579d44eacd528d$" } } diff --git a/public/images/pokemon/676-diamond.png b/public/images/pokemon/676-diamond.png index 5662825df7d..3915b78ec26 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.json b/public/images/pokemon/676-heart.json index a16c480e339..ac8ea41b392 100644 --- a/public/images/pokemon/676-heart.json +++ b/public/images/pokemon/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:15e433a2269dd4043b1614811a1b8fbd:421a40542b16cdb2cc154c85e963b40d:e11d4dd16bff2ef69bc5ca683c44ca7c$" + "smartupdate": "$TexturePacker:SmartUpdate:a9b1c7a73abb563b1ecadad8b517794e:2273c7342204f52860d8e96670ddf46a:e11d4dd16bff2ef69bc5ca683c44ca7c$" } } diff --git a/public/images/pokemon/676-heart.png b/public/images/pokemon/676-heart.png index 2747c376bca..99327208605 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.json b/public/images/pokemon/676-kabuki.json index fa358e84812..68e5b1839bc 100644 --- a/public/images/pokemon/676-kabuki.json +++ b/public/images/pokemon/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:7f4056b1c055475f905d048c8d8d2969:08eecd31f557298e1570ec3490acffe2:c3cad56aa65d2ee971ceebc435a14ee6$" + "smartupdate": "$TexturePacker:SmartUpdate:d36abbc31bcd28664e28eb50f8e4719d:43c9d8bb344b7a1373b93f493badb47e:c3cad56aa65d2ee971ceebc435a14ee6$" } } diff --git a/public/images/pokemon/676-kabuki.png b/public/images/pokemon/676-kabuki.png index 1a9a2ad1689..c4f6473c75b 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.json b/public/images/pokemon/676-la-reine.json index 1b7457c31ff..39ffdb2a63e 100644 --- a/public/images/pokemon/676-la-reine.json +++ b/public/images/pokemon/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:d209428aca72f49f1e9ee3e97f1c18ab:c56ae957d7acb10c7373b842af3a8786:b99821e87dffda3297dd25a224a9029f$" + "smartupdate": "$TexturePacker:SmartUpdate:81b2b5d853a3d2527630ca0b2fea6569:98097941483e509b7962c50b179d132f:b99821e87dffda3297dd25a224a9029f$" } } diff --git a/public/images/pokemon/676-la-reine.png b/public/images/pokemon/676-la-reine.png index 1ca19430e66..e649e6d74c8 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.json b/public/images/pokemon/676-matron.json index b85aebf61ea..1479610e73d 100644 --- a/public/images/pokemon/676-matron.json +++ b/public/images/pokemon/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:698fab0e5221743b912637e774bfaecd:72a9977db421d061829c639e3b50a617:020798583d07c479020bb0af34cf8bb6$" + "smartupdate": "$TexturePacker:SmartUpdate:50d9857668a013306b96adc3777a22b2:7d3708f1b5b6eeb8419815fc6734bf06:020798583d07c479020bb0af34cf8bb6$" } } diff --git a/public/images/pokemon/676-matron.png b/public/images/pokemon/676-matron.png index 0ea64fcd55e..98142c41661 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.json b/public/images/pokemon/676-pharaoh.json index abd2fab0692..6497ddaf1c5 100644 --- a/public/images/pokemon/676-pharaoh.json +++ b/public/images/pokemon/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:5c1df95bcf0d53d4f1b9f1bf77690598:623b4bc6698ef1a984b6bad42e68115b:904b7ab6f57249c96beea4b5f72deb53$" + "smartupdate": "$TexturePacker:SmartUpdate:69f1be06f9a7175f294267b08e7ba275:42e7e4068e30b78248d3629cffa5d2ec:904b7ab6f57249c96beea4b5f72deb53$" } } diff --git a/public/images/pokemon/676-pharaoh.png b/public/images/pokemon/676-pharaoh.png index d3019440c8a..cced072318b 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.json b/public/images/pokemon/676-star.json index e5442941ac8..aeb84ebb11a 100644 --- a/public/images/pokemon/676-star.json +++ b/public/images/pokemon/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:31c1ce60aa953fb647ff40c50ac54cf1:d7eefc05e299310d05d389e05997e449:dd7fedf66b493b0bbdef5d25e0041dd8$" + "smartupdate": "$TexturePacker:SmartUpdate:fde8824a7749541f5af1cc14e6281670:204c6eb602358a5c7c1389b42317ffce:dd7fedf66b493b0bbdef5d25e0041dd8$" } } diff --git a/public/images/pokemon/676-star.png b/public/images/pokemon/676-star.png index de93346cb74..7a1044bda75 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/back/676-dandy.json b/public/images/pokemon/back/676-dandy.json index 15491bd02f9..a1086d11f16 100644 --- a/public/images/pokemon/back/676-dandy.json +++ b/public/images/pokemon/back/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:92d02eca8d05166d15bfa8b79ac478b9:f01538e7a19ca3d0d2fea48cd27d8a4c:b5a287256e260744fe6660dc2ceefd11$" + "smartupdate": "$TexturePacker:SmartUpdate:24899e1e616c6a0b9143d36903f9249e:8132d78c7f1f4ab0f673c82868b6a090:b5a287256e260744fe6660dc2ceefd11$" } } diff --git a/public/images/pokemon/back/676-dandy.png b/public/images/pokemon/back/676-dandy.png index 634a2b0c8a9..f8052549668 100644 Binary files a/public/images/pokemon/back/676-dandy.png and b/public/images/pokemon/back/676-dandy.png differ diff --git a/public/images/pokemon/back/676-debutante.json b/public/images/pokemon/back/676-debutante.json index b0405824a50..0388807203e 100644 --- a/public/images/pokemon/back/676-debutante.json +++ b/public/images/pokemon/back/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:76ef75ea5c9561531c220cdb7f78934d:6f39eb82deb32d251df708f5d4edc9f1:bf2f862a1c8881133f9f3ffbf44602fa$" + "smartupdate": "$TexturePacker:SmartUpdate:ba172ad89c93e6e6f36f621c38e54754:7c9d0d13f309221141cd334833e412a5:bf2f862a1c8881133f9f3ffbf44602fa$" } } diff --git a/public/images/pokemon/back/676-debutante.png b/public/images/pokemon/back/676-debutante.png index 3a7a0d7abc2..507ea4addbe 100644 Binary files a/public/images/pokemon/back/676-debutante.png and b/public/images/pokemon/back/676-debutante.png differ diff --git a/public/images/pokemon/back/676-diamond.json b/public/images/pokemon/back/676-diamond.json index 365afd2bdc5..ef5a64e38e9 100644 --- a/public/images/pokemon/back/676-diamond.json +++ b/public/images/pokemon/back/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:d2b094f0534f6acd2e5bbe67b8e94fa8:47037a1746645a551e31781cb8262e1f:88c467fc09249b0d2f579d44eacd528d$" + "smartupdate": "$TexturePacker:SmartUpdate:0a6f3993923b87e1c16c84b1aa8c3705:6d59d20d1b0cd07c3e7a16eadf0de4cf:88c467fc09249b0d2f579d44eacd528d$" } } diff --git a/public/images/pokemon/back/676-diamond.png b/public/images/pokemon/back/676-diamond.png index d737c62b507..9498e4e75be 100644 Binary files a/public/images/pokemon/back/676-diamond.png and b/public/images/pokemon/back/676-diamond.png differ diff --git a/public/images/pokemon/back/676-heart.json b/public/images/pokemon/back/676-heart.json index 81c1c4d8978..b51d7b20112 100644 --- a/public/images/pokemon/back/676-heart.json +++ b/public/images/pokemon/back/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:537e6149183f630be038f053dd62d27d:dce25f0e6474cad17709f18c96ffb3e5:e11d4dd16bff2ef69bc5ca683c44ca7c$" + "smartupdate": "$TexturePacker:SmartUpdate:f99ca7d216355ffd449999125499d32e:cf2dd50594846ac631d9da32cd66dceb:e11d4dd16bff2ef69bc5ca683c44ca7c$" } } diff --git a/public/images/pokemon/back/676-heart.png b/public/images/pokemon/back/676-heart.png index fac541f4438..49c83c6c113 100644 Binary files a/public/images/pokemon/back/676-heart.png and b/public/images/pokemon/back/676-heart.png differ diff --git a/public/images/pokemon/back/676-kabuki.json b/public/images/pokemon/back/676-kabuki.json index 3ead18ecde2..e5aa1171f25 100644 --- a/public/images/pokemon/back/676-kabuki.json +++ b/public/images/pokemon/back/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:dfc02a08763810a151fc4e22c23a3093:2f6c7f2792f64728b478333fc2c65138:c3cad56aa65d2ee971ceebc435a14ee6$" + "smartupdate": "$TexturePacker:SmartUpdate:8de2d15ea2537eb2104a72a133418e94:903840ea77662ae31175e482a712402a:c3cad56aa65d2ee971ceebc435a14ee6$" } } diff --git a/public/images/pokemon/back/676-kabuki.png b/public/images/pokemon/back/676-kabuki.png index bbb1a776ece..2aa6fccce61 100644 Binary files a/public/images/pokemon/back/676-kabuki.png and b/public/images/pokemon/back/676-kabuki.png differ diff --git a/public/images/pokemon/back/676-la-reine.json b/public/images/pokemon/back/676-la-reine.json index b5de6c65b72..57e55b1217a 100644 --- a/public/images/pokemon/back/676-la-reine.json +++ b/public/images/pokemon/back/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:014beffd470b78d94c3234500d9dee5b:3261fa54b4c9574937d670de782ca3e8:b99821e87dffda3297dd25a224a9029f$" + "smartupdate": "$TexturePacker:SmartUpdate:b72b1f5723bb276f4a555ccdbb3ed4c0:0ab778e99ee37c883a0b1a0f918f1bee:b99821e87dffda3297dd25a224a9029f$" } } diff --git a/public/images/pokemon/back/676-la-reine.png b/public/images/pokemon/back/676-la-reine.png index e4d699e5fe8..2147e5cab01 100644 Binary files a/public/images/pokemon/back/676-la-reine.png and b/public/images/pokemon/back/676-la-reine.png differ diff --git a/public/images/pokemon/back/676-matron.json b/public/images/pokemon/back/676-matron.json index c9cca4f56be..864b6b47611 100644 --- a/public/images/pokemon/back/676-matron.json +++ b/public/images/pokemon/back/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:a9199442be3400b8a70f8ad212790732:18b55adc9c377d1b24d6b236e1f39177:020798583d07c479020bb0af34cf8bb6$" + "smartupdate": "$TexturePacker:SmartUpdate:d447de0737ae7f9ca8690e7f039a884d:1ffc2bfd67fda79ede1d0e489bf36c94:020798583d07c479020bb0af34cf8bb6$" } } diff --git a/public/images/pokemon/back/676-matron.png b/public/images/pokemon/back/676-matron.png index 1867cf457aa..38092e4fefe 100644 Binary files a/public/images/pokemon/back/676-matron.png and b/public/images/pokemon/back/676-matron.png differ diff --git a/public/images/pokemon/back/676-pharaoh.json b/public/images/pokemon/back/676-pharaoh.json index b43902fd665..428354fdbc7 100644 --- a/public/images/pokemon/back/676-pharaoh.json +++ b/public/images/pokemon/back/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:be799b3acab0a591e7b2d4a2ad903c94:6260eeb9aa48a1047c8ec12842ac28c6:904b7ab6f57249c96beea4b5f72deb53$" + "smartupdate": "$TexturePacker:SmartUpdate:729eefb95778889aa11840e684f35af8:9c72a2d345e9be40096dffd6b99a7ba0:904b7ab6f57249c96beea4b5f72deb53$" } } diff --git a/public/images/pokemon/back/676-pharaoh.png b/public/images/pokemon/back/676-pharaoh.png index 4c139a498d2..a7ca046406f 100644 Binary files a/public/images/pokemon/back/676-pharaoh.png and b/public/images/pokemon/back/676-pharaoh.png differ diff --git a/public/images/pokemon/back/676-star.json b/public/images/pokemon/back/676-star.json index bbc9eebe37f..2e0b0f3090b 100644 --- a/public/images/pokemon/back/676-star.json +++ b/public/images/pokemon/back/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:8a18f8f110bc4f6f6e86ca95b9a566b8:c9e3d3db02b6ea0720a20b9bbd159d79:dd7fedf66b493b0bbdef5d25e0041dd8$" + "smartupdate": "$TexturePacker:SmartUpdate:37e89522e7b92408df9d52c3d98137ea:241a531f0918e0a4b616569e7d4bc186:dd7fedf66b493b0bbdef5d25e0041dd8$" } } diff --git a/public/images/pokemon/back/676-star.png b/public/images/pokemon/back/676-star.png index 0ad91515631..9b082488381 100644 Binary files a/public/images/pokemon/back/676-star.png and b/public/images/pokemon/back/676-star.png differ diff --git a/src/battle-scene.ts b/src/battle-scene.ts index ed30dcee79f..3971ca66be1 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -1,4 +1,4 @@ -import Phaser, { Time } from 'phaser'; +import Phaser from 'phaser'; import UI, { Mode } from './ui/ui'; import { NextEncounterPhase, NewBiomeEncounterPhase, SelectBiomePhase, MessagePhase, TurnInitPhase, ReturnPhase, LevelCapPhase, ShowTrainerPhase, LoginPhase, MovePhase, TitlePhase, SwitchPhase } from './phases'; import Pokemon, { PlayerPokemon, EnemyPokemon } from './field/pokemon'; @@ -53,13 +53,14 @@ import CharSprite from './ui/char-sprite'; import DamageNumberHandler from './field/damage-number-handler'; import PokemonInfoContainer from './ui/pokemon-info-container'; import { biomeDepths, getBiomeName } from './data/biomes'; -import { initTouchControls } from './touch-controls'; import { UiTheme } from './enums/ui-theme'; 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'; +import {InputsController} from "./inputs-controller"; +import {UiInputs} from "./ui-inputs"; export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1"; @@ -68,33 +69,12 @@ const DEBUG_RNG = false; export const startingWave = STARTING_WAVE_OVERRIDE || 1; const expSpriteKeys: string[] = []; -const repeatInputDelayMillis = 250; export let starterColors: StarterColors; interface StarterColors { [key: string]: [string, string] } -export enum Button { - UP, - DOWN, - LEFT, - RIGHT, - SUBMIT, - ACTION, - CANCEL, - MENU, - STATS, - CYCLE_SHINY, - CYCLE_FORM, - CYCLE_GENDER, - CYCLE_ABILITY, - CYCLE_NATURE, - CYCLE_VARIANT, - SPEED_UP, - SLOW_DOWN -} - export interface PokeballCounts { [pb: string]: integer; } @@ -103,6 +83,8 @@ export type AnySound = Phaser.Sound.WebAudioSound | Phaser.Sound.HTML5AudioSound export default class BattleScene extends SceneBase { public rexUI: UIPlugin; + public inputController: InputsController; + public uiInputs: UiInputs; public sessionPlayTime: integer = null; public masterVolume: number = 0.5; @@ -123,7 +105,8 @@ export default class BattleScene extends SceneBase { public gamepadSupport: boolean = true; public enableTouchControls: boolean = false; public enableVibration: boolean = false; - + public abSwapped: boolean = false; + public disableMenu: boolean = false; public gameData: GameData; @@ -191,34 +174,6 @@ export default class BattleScene extends SceneBase { private bgmResumeTimer: Phaser.Time.TimerEvent; private bgmCache: Set = new Set(); private playTimeTimer: Phaser.Time.TimerEvent; - - private buttonKeys: Phaser.Input.Keyboard.Key[][]; - private lastProcessedButtonPressTimes: Map = new Map(); - // movementButtonLock ensures only a single movement key is firing repeated inputs - // (i.e. by holding down a button) at a time - 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.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 = ''; @@ -263,7 +218,7 @@ export default class BattleScene extends SceneBase { return ret; }; } - + populateAnims(); await this.initVariantData(); @@ -271,13 +226,13 @@ export default class BattleScene extends SceneBase { create() { initGameSpeed.apply(this); + this.inputController = new InputsController(this); + this.uiInputs = new UiInputs(this, this.inputController); this.gameData = new GameData(this); addUiThemeOverrides(this); - this.setupControls(); - this.load.setBaseURL(); this.spritePipeline = new SpritePipeline(this.game); @@ -290,7 +245,7 @@ export default class BattleScene extends SceneBase { } update() { - this.checkInput(); + this.inputController.update(); this.ui?.update(); } @@ -609,42 +564,6 @@ export default class BattleScene extends SceneBase { return true; } - setupControls() { - const keyCodes = Phaser.Input.Keyboard.KeyCodes; - const keyConfig = { - [Button.UP]: [keyCodes.UP, keyCodes.W], - [Button.DOWN]: [keyCodes.DOWN, keyCodes.S], - [Button.LEFT]: [keyCodes.LEFT, keyCodes.A], - [Button.RIGHT]: [keyCodes.RIGHT, keyCodes.D], - [Button.SUBMIT]: [keyCodes.ENTER], - [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], - [Button.CYCLE_ABILITY]: [keyCodes.E], - [Button.CYCLE_NATURE]: [keyCodes.N], - [Button.CYCLE_VARIANT]: [keyCodes.V], - [Button.SPEED_UP]: [keyCodes.PLUS], - [Button.SLOW_DOWN]: [keyCodes.MINUS] - }; - const mobileKeyConfig = {}; - this.buttonKeys = []; - for (let b of Utils.getEnumValues(Button)) { - const keys: Phaser.Input.Keyboard.Key[] = []; - if (keyConfig.hasOwnProperty(b)) { - for (let k of keyConfig[b]) - keys.push(this.input.keyboard.addKey(k, false)); - mobileKeyConfig[Button[b]] = keys[0]; - } - this.buttonKeys[b] = keys; - } - - initTouchControls(mobileKeyConfig); - } - getParty(): PlayerPokemon[] { return this.party; } @@ -1116,7 +1035,7 @@ export default class BattleScene extends SceneBase { return 5; let isBoss: boolean; - if (forceBoss || (species && (species.pseudoLegendary || species.legendary || species.mythical))) + if (forceBoss || (species && (species.subLegendary || species.legendary || species.mythical))) isBoss = true; else { this.executeWithSeedOffset(() => { @@ -1348,177 +1267,6 @@ export default class BattleScene extends SceneBase { return biomes[Utils.randSeedInt(biomes.length)]; } - checkInput(): boolean { - let inputSuccess = false; - let vibrationLength = 0; - if (this.buttonJustPressed(Button.UP) || this.repeatInputDurationJustPassed(Button.UP)) { - inputSuccess = this.ui.processInput(Button.UP); - vibrationLength = 5; - this.setLastProcessedMovementTime(Button.UP) - } else if (this.buttonJustPressed(Button.DOWN) || this.repeatInputDurationJustPassed(Button.DOWN)) { - inputSuccess = this.ui.processInput(Button.DOWN); - vibrationLength = 5; - this.setLastProcessedMovementTime(Button.DOWN) - } else if (this.buttonJustPressed(Button.LEFT) || this.repeatInputDurationJustPassed(Button.LEFT)) { - inputSuccess = this.ui.processInput(Button.LEFT); - vibrationLength = 5; - this.setLastProcessedMovementTime(Button.LEFT) - } else if (this.buttonJustPressed(Button.RIGHT) || this.repeatInputDurationJustPassed(Button.RIGHT)) { - inputSuccess = this.ui.processInput(Button.RIGHT); - vibrationLength = 5; - this.setLastProcessedMovementTime(Button.RIGHT) - } else if (this.buttonJustPressed(Button.SUBMIT) || this.repeatInputDurationJustPassed(Button.SUBMIT)) { - inputSuccess = this.ui.processInput(Button.SUBMIT) || this.ui.processInput(Button.ACTION); - this.setLastProcessedMovementTime(Button.SUBMIT); - } else if (this.buttonJustPressed(Button.ACTION) || this.repeatInputDurationJustPassed(Button.ACTION)) { - inputSuccess = this.ui.processInput(Button.ACTION); - this.setLastProcessedMovementTime(Button.ACTION); - } else if (this.buttonJustPressed(Button.CANCEL)|| this.repeatInputDurationJustPassed(Button.CANCEL)) { - inputSuccess = this.ui.processInput(Button.CANCEL); - this.setLastProcessedMovementTime(Button.CANCEL); - } else if (this.buttonJustPressed(Button.MENU)) { - if (this.disableMenu) - return; - switch (this.ui?.getMode()) { - case Mode.MESSAGE: - if (!(this.ui.getHandler() as MessageUiHandler).pendingPrompt) - return; - case Mode.TITLE: - case Mode.COMMAND: - case Mode.FIGHT: - case Mode.BALL: - case Mode.TARGET_SELECT: - case Mode.SAVE_SLOT: - case Mode.PARTY: - case Mode.SUMMARY: - case Mode.STARTER_SELECT: - case Mode.CONFIRM: - case Mode.OPTION_SELECT: - this.ui.setOverlayMode(Mode.MENU); - inputSuccess = true; - break; - case Mode.MENU: - case Mode.SETTINGS: - case Mode.ACHIEVEMENTS: - this.ui.revertMode(); - this.playSound('select'); - inputSuccess = true; - break; - default: - return; - } - } else if (this.ui?.getHandler() instanceof StarterSelectUiHandler) { - if (this.buttonJustPressed(Button.CYCLE_SHINY)) { - inputSuccess = this.ui.processInput(Button.CYCLE_SHINY); - this.setLastProcessedMovementTime(Button.CYCLE_SHINY); - } else if (this.buttonJustPressed(Button.CYCLE_FORM)) { - inputSuccess = this.ui.processInput(Button.CYCLE_FORM); - this.setLastProcessedMovementTime(Button.CYCLE_FORM); - } else if (this.buttonJustPressed(Button.CYCLE_GENDER)) { - inputSuccess = this.ui.processInput(Button.CYCLE_GENDER); - this.setLastProcessedMovementTime(Button.CYCLE_GENDER); - } else if (this.buttonJustPressed(Button.CYCLE_ABILITY)) { - inputSuccess = this.ui.processInput(Button.CYCLE_ABILITY); - this.setLastProcessedMovementTime(Button.CYCLE_ABILITY); - } else if (this.buttonJustPressed(Button.CYCLE_NATURE)) { - inputSuccess = this.ui.processInput(Button.CYCLE_NATURE); - this.setLastProcessedMovementTime(Button.CYCLE_NATURE); - } else if (this.buttonJustPressed(Button.CYCLE_VARIANT)) { - inputSuccess = this.ui.processInput(Button.CYCLE_VARIANT); - this.setLastProcessedMovementTime(Button.CYCLE_VARIANT); - } else - return; - } else if (this.buttonJustPressed(Button.SPEED_UP)) { - if (this.gameSpeed < 5) { - this.gameData.saveSetting(Setting.Game_Speed, settingOptions[Setting.Game_Speed].indexOf(`${this.gameSpeed}x`) + 1); - if (this.ui?.getMode() === Mode.SETTINGS) - (this.ui.getHandler() as SettingsUiHandler).show([]); - } - } else if (this.buttonJustPressed(Button.SLOW_DOWN)) { - if (this.gameSpeed > 1) { - this.gameData.saveSetting(Setting.Game_Speed, Math.max(settingOptions[Setting.Game_Speed].indexOf(`${this.gameSpeed}x`) - 1, 0)); - if (this.ui?.getMode() === Mode.SETTINGS) - (this.ui.getHandler() as SettingsUiHandler).show([]); - } - } 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); - } - - /** - * gamepadButtonJustDown returns true if @param button has just been pressed down - * or not. It will only return true once, until the key is released and pressed down - * again. - */ - gamepadButtonJustDown(button: Phaser.Input.Gamepad.Button): boolean { - if (!button || !this.gamepadSupport) - return false; - - let ret = false; - if (button.pressed) { - if (!this.gamepadButtonStates[button.index]) - ret = true; - this.gamepadButtonStates[button.index] = true; - } else - this.gamepadButtonStates[button.index] = false; - - return ret; - } - - buttonJustPressed(button: Button): boolean { - const gamepad = this.input.gamepad?.gamepads[0]; - 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 - * firing a repeated input - this is to prevent multiple buttons from firing repeatedly. - */ - repeatInputDurationJustPassed(button: Button): boolean { - if (this.movementButtonLock !== null && this.movementButtonLock !== button) { - return false; - } - if (this.buttonKeys[button].every(k => k.isUp) && this.gamepadButtonStates.every(b => b == false)) { - this.movementButtonLock = null; - return false; - } - if (this.time.now - this.lastProcessedButtonPressTimes.get(button) >= repeatInputDelayMillis) { - return true; - } - } - - setLastProcessedMovementTime(button: Button) { - this.lastProcessedButtonPressTimes.set(button, this.time.now); - this.movementButtonLock = button; - } - isBgmPlaying(): boolean { return this.bgm && this.bgm.isPlaying; } @@ -1676,11 +1424,13 @@ export default class BattleScene extends SceneBase { return 13.122; case 'battle_unova_gym': return 19.145; - case 'battle_legendary': + case 'battle_legendary_regis': //B2W2 Legendary Titan Battle + return 49.500; + case 'battle_legendary_unova': //BW Unova Legendary Battle return 13.855; - case 'battle_legendary_k': + case 'battle_legendary_kyurem': //BW Kyurem Battle return 18.314; - case 'battle_legendary_rz': + case 'battle_legendary_res_zek': //BW Reshiram & Zekrom Battle return 18.329; case 'battle_rival': return 13.689; diff --git a/src/battle.ts b/src/battle.ts index 97dec471649..580bad9a508 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -194,12 +194,18 @@ export default class Battle { return 'battle_final'; return 'battle_final_encounter'; } - if (pokemon.species.legendary || pokemon.species.pseudoLegendary || pokemon.species.mythical) { + if (pokemon.species.legendary || pokemon.species.subLegendary || pokemon.species.mythical) { + if (pokemon.species.speciesId === Species.REGIROCK || pokemon.species.speciesId === Species.REGICE || pokemon.species.speciesId === Species.REGISTEEL || pokemon.species.speciesId === Species.REGIGIGAS || pokemon.species.speciesId === Species.REGIELEKI || pokemon.species.speciesId === Species.REGIDRAGO) + return 'battle_legendary_regis'; + if (pokemon.species.speciesId === Species.COBALION || pokemon.species.speciesId === Species.TERRAKION || pokemon.species.speciesId === Species.VIRIZION || pokemon.species.speciesId === Species.TORNADUS || pokemon.species.speciesId === Species.THUNDURUS || pokemon.species.speciesId === Species.LANDORUS || pokemon.species.speciesId === Species.KELDEO || pokemon.species.speciesId === Species.MELOETTA || pokemon.species.speciesId === Species.GENESECT) + return 'battle_legendary_unova'; + if (pokemon.species.speciesId === Species.RESHIRAM || pokemon.species.speciesId === Species.ZEKROM) + return 'battle_legendary_res_zek'; if (pokemon.species.speciesId === Species.KYUREM) - return 'battle_legendary_k'; + return 'battle_legendary_kyurem'; if (pokemon.species.legendary) - return 'battle_legendary_rz'; - return 'battle_legendary'; + return 'battle_legendary_res_zek'; + return 'battle_legendary_unova'; } } diff --git a/src/configs/pad_dualshock.ts b/src/configs/pad_dualshock.ts new file mode 100644 index 00000000000..4f66ff8c00a --- /dev/null +++ b/src/configs/pad_dualshock.ts @@ -0,0 +1,29 @@ +/** + * Dualshock mapping + */ +const pad_dualshock = { + padID: 'Dualshock', + padType: 'Sony', + gamepadMapping: { + RC_S: 0, + RC_E: 1, + RC_W: 2, + RC_N: 3, + START: 9, // Options + SELECT: 8, // Share + LB: 4, + RB: 5, + LT: 6, + RT: 7, + LS: 10, + RS: 11, + LC_N: 12, + LC_S: 13, + LC_W: 14, + LC_E: 15, + MENU: 16, + TOUCH: 17 + }, +}; + +export default pad_dualshock; diff --git a/src/configs/pad_generic.ts b/src/configs/pad_generic.ts new file mode 100644 index 00000000000..19b5d3df16e --- /dev/null +++ b/src/configs/pad_generic.ts @@ -0,0 +1,27 @@ +/** + * Generic pad mapping + */ +const pad_generic = { + padID: 'Generic', + padType: 'generic', + gamepadMapping: { + RC_S: 0, + RC_E: 1, + RC_W: 2, + RC_N: 3, + START: 9, + SELECT: 8, + LB: 4, + RB: 5, + LT: 6, + RT: 7, + LS: 10, + RS: 11, + LC_N: 12, + LC_S: 13, + LC_W: 14, + LC_E: 15 + }, +}; + +export default pad_generic; diff --git a/src/configs/pad_unlicensedSNES.ts b/src/configs/pad_unlicensedSNES.ts new file mode 100644 index 00000000000..ba8ee538d30 --- /dev/null +++ b/src/configs/pad_unlicensedSNES.ts @@ -0,0 +1,23 @@ +/** + * 081f-e401 - UnlicensedSNES + */ +const pad_unlicensedSNES = { + padID: '081f-e401', + padType: 'snes', + gamepadMapping : { + RC_S: 2, + RC_E: 1, + RC_W: 3, + RC_N: 0, + START: 9, + SELECT: 8, + LB: 4, + RB: 5, + LC_N: 12, + LC_S: 13, + LC_W: 14, + LC_E: 15 + } +}; + +export default pad_unlicensedSNES; diff --git a/src/configs/pad_xbox360.ts b/src/configs/pad_xbox360.ts new file mode 100644 index 00000000000..e44ebb54b64 --- /dev/null +++ b/src/configs/pad_xbox360.ts @@ -0,0 +1,28 @@ +/** + * Generic pad mapping + */ +const pad_xbox360 = { + padID: 'Xbox 360 controller (XInput STANDARD GAMEPAD)', + padType: 'xbox', + gamepadMapping: { + RC_S: 0, + RC_E: 1, + RC_W: 2, + RC_N: 3, + START: 9, + SELECT: 8, + LB: 4, + RB: 5, + LT: 6, + RT: 7, + LS: 10, + RS: 11, + LC_N: 12, + LC_S: 13, + LC_W: 14, + LC_E: 15, + MENU: 16 + }, +}; + +export default pad_xbox360; diff --git a/src/data/ability.ts b/src/data/ability.ts index 57d1402ad8d..ff183a28432 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -20,6 +20,8 @@ import { SpeciesFormChangeManualTrigger } from "./pokemon-forms"; import { Abilities } from "./enums/abilities"; import i18next, { Localizable } from "#app/plugins/i18n.js"; import { Command } from "../ui/command-ui-handler"; +import Battle from "#app/battle.js"; +import { ability } from "#app/locales/en/ability.js"; export class Ability implements Localizable { public id: Abilities; @@ -247,7 +249,7 @@ export class PreDefendFormChangeAbAttr extends PreDefendAbAttr { } export class PreDefendFullHpEndureAbAttr extends PreDefendAbAttr { applyPreDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, cancelled: Utils.BooleanHolder, args: any[]): boolean { - if (pokemon.getHpRatio() < 1 || (args[0] as Utils.NumberHolder).value < pokemon.hp) + if (pokemon.getMaxHp() <= 1 && (pokemon.getHpRatio() < 1 || (args[0] as Utils.NumberHolder).value < pokemon.hp)) return false; return pokemon.addTag(BattlerTagType.STURDY, 1); @@ -1271,6 +1273,40 @@ export class IgnoreOpponentStatChangesAbAttr extends AbAttr { } } +export class IntimidateImmunityAbAttr extends AbAttr { + constructor() { + super(false); + } + + apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean { + cancelled.value = true; + return true; + } + + getTriggerMessage(pokemon: Pokemon, abilityName: string, ...args: any[]): string { + return getPokemonMessage(pokemon, `'s ${abilityName} prevented it from being Intimidated!`); + } +} + +export class PostIntimidateStatChangeAbAttr extends AbAttr { + private stats: BattleStat[]; + private levels: integer; + private overwrites: boolean; + + constructor(stats: BattleStat[], levels: integer, overwrites?: boolean) { + super(true) + this.stats = stats + this.levels = levels + this.overwrites = !!overwrites + } + + apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean { + pokemon.scene.pushPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), false, this.stats, this.levels)); + cancelled.value = this.overwrites; + return true; + } +} + export class PostSummonAbAttr extends AbAttr { applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean | Promise { return false; @@ -1313,34 +1349,36 @@ export class PostSummonStatChangeAbAttr extends PostSummonAbAttr { private stats: BattleStat[]; private levels: integer; private selfTarget: boolean; + private intimidate: boolean; - constructor(stats: BattleStat | BattleStat[], levels: integer, selfTarget?: boolean) { - super(); + constructor(stats: BattleStat | BattleStat[], levels: integer, selfTarget?: boolean, intimidate?: boolean) { + super(false); this.stats = typeof(stats) === 'number' ? [ stats as BattleStat ] : stats as BattleStat[]; this.levels = levels; this.selfTarget = !!selfTarget; + this.intimidate = !!intimidate; } applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean { - const statChangePhases: StatChangePhase[] = []; - - if (this.selfTarget) - statChangePhases.push(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, this.stats, this.levels)); - else { - for (let opponent of pokemon.getOpponents()) - statChangePhases.push(new StatChangePhase(pokemon.scene, opponent.getBattlerIndex(), false, this.stats, this.levels)); + queueShowAbility(pokemon, passive); // TODO: Better solution than manually showing the ability here + if (this.selfTarget) { + pokemon.scene.pushPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, this.stats, this.levels)); + return true; } - - for (let statChangePhase of statChangePhases) { - if (!this.selfTarget && !statChangePhase.getPokemon().summonData) - pokemon.scene.pushPhase(statChangePhase); // TODO: This causes the ability bar to be shown at the wrong time - else + for (let opponent of pokemon.getOpponents()) { + const cancelled = new Utils.BooleanHolder(false) + if (this.intimidate) { + applyAbAttrs(IntimidateImmunityAbAttr, opponent, cancelled); + applyAbAttrs(PostIntimidateStatChangeAbAttr, opponent, cancelled); + } + if (!cancelled.value) { + const statChangePhase = new StatChangePhase(pokemon.scene, opponent.getBattlerIndex(), false, this.stats, this.levels); pokemon.scene.unshiftPhase(statChangePhase); + } } - return true; } } @@ -2316,6 +2354,13 @@ export class FlinchStatChangeAbAttr extends FlinchEffectAbAttr { export class IncreasePpAbAttr extends AbAttr { } +export class ForceSwitchOutImmunityAbAttr extends AbAttr { + apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean { + cancelled.value = true; + return true; + } +} + export class ReduceBerryUseThresholdAbAttr extends AbAttr { constructor() { super(); @@ -2647,7 +2692,8 @@ export function initAbilities() { .condition(getWeatherCondition(WeatherType.SANDSTORM)) .ignorable(), new Ability(Abilities.STATIC, 3) - .attr(PostDefendContactApplyStatusEffectAbAttr, 30, StatusEffect.PARALYSIS), + .attr(PostDefendContactApplyStatusEffectAbAttr, 30, StatusEffect.PARALYSIS) + .bypassFaint(), new Ability(Abilities.VOLT_ABSORB, 3) .attr(TypeImmunityHealAbAttr, Type.ELECTRIC) .ignorable(), @@ -2656,6 +2702,7 @@ export function initAbilities() { .ignorable(), new Ability(Abilities.OBLIVIOUS, 3) .attr(BattlerTagImmunityAbAttr, BattlerTagType.INFATUATED) + .attr(IntimidateImmunityAbAttr) .ignorable(), new Ability(Abilities.CLOUD_NINE, 3) .attr(SuppressWeatherEffectAbAttr, true), @@ -2678,12 +2725,13 @@ export function initAbilities() { .unimplemented(), new Ability(Abilities.OWN_TEMPO, 3) .attr(BattlerTagImmunityAbAttr, BattlerTagType.CONFUSED) + .attr(IntimidateImmunityAbAttr) .ignorable(), new Ability(Abilities.SUCTION_CUPS, 3) - .ignorable() - .unimplemented(), + .attr(ForceSwitchOutImmunityAbAttr) + .ignorable(), new Ability(Abilities.INTIMIDATE, 3) - .attr(PostSummonStatChangeAbAttr, BattleStat.ATK, -1), + .attr(PostSummonStatChangeAbAttr, BattleStat.ATK, -1, false, true), new Ability(Abilities.SHADOW_TAG, 3) .attr(ArenaTrapAbAttr), new Ability(Abilities.ROUGH_SKIN, 3) @@ -2729,9 +2777,11 @@ export function initAbilities() { new Ability(Abilities.HUGE_POWER, 3) .attr(BattleStatMultiplierAbAttr, BattleStat.ATK, 2), new Ability(Abilities.POISON_POINT, 3) - .attr(PostDefendContactApplyStatusEffectAbAttr, 30, StatusEffect.POISON), + .attr(PostDefendContactApplyStatusEffectAbAttr, 30, StatusEffect.POISON) + .bypassFaint(), new Ability(Abilities.INNER_FOCUS, 3) .attr(BattlerTagImmunityAbAttr, BattlerTagType.FLINCHED) + .attr(IntimidateImmunityAbAttr) .ignorable(), new Ability(Abilities.MAGMA_ARMOR, 3) .attr(StatusEffectImmunityAbAttr, StatusEffect.FREEZE) @@ -2761,7 +2811,8 @@ export function initAbilities() { new Ability(Abilities.EARLY_BIRD, 3) .attr(ReduceStatusEffectDurationAbAttr, StatusEffect.SLEEP), new Ability(Abilities.FLAME_BODY, 3) - .attr(PostDefendContactApplyStatusEffectAbAttr, 30, StatusEffect.BURN), + .attr(PostDefendContactApplyStatusEffectAbAttr, 30, StatusEffect.BURN) + .bypassFaint(), new Ability(Abilities.RUN_AWAY, 3) .attr(RunSuccessAbAttr), new Ability(Abilities.KEEN_EYE, 3) @@ -2928,8 +2979,9 @@ export function initAbilities() { .ignorable(), new Ability(Abilities.SLOW_START, 4) .attr(PostSummonAddBattlerTagAbAttr, BattlerTagType.SLOW_START, 5), - new Ability(Abilities.SCRAPPY, 4) - .unimplemented(), + new Ability(Abilities.SCRAPPY, 4) + .attr(IntimidateImmunityAbAttr) + .partial(), new Ability(Abilities.STORM_DRAIN, 4) .attr(RedirectTypeMoveAbAttr, Type.WATER) .attr(TypeImmunityStatChangeAbAttr, Type.WATER, BattleStat.SPATK, 1) @@ -3048,7 +3100,7 @@ export function initAbilities() { new Ability(Abilities.RATTLED, 5) .attr(PostDefendStatChangeAbAttr, (target, user, move) => move.category !== MoveCategory.STATUS && (move.type === Type.DARK || move.type === Type.BUG || move.type === Type.GHOST), BattleStat.SPD, 1) - .partial(), + .attr(PostIntimidateStatChangeAbAttr, [BattleStat.SPD], 1), new Ability(Abilities.MAGIC_BOUNCE, 5) .ignorable() .unimplemented(), @@ -3433,8 +3485,9 @@ export function initAbilities() { .ignorable() .partial(), new Ability(Abilities.GUARD_DOG, 9) - .ignorable() - .unimplemented(), + .attr(PostIntimidateStatChangeAbAttr, [BattleStat.ATK], 1, true) + .attr(ForceSwitchOutImmunityAbAttr) + .ignorable(), new Ability(Abilities.ROCKY_PAYLOAD, 9) .attr(MoveTypePowerBoostAbAttr, Type.ROCK), new Ability(Abilities.WIND_POWER, 9) diff --git a/src/data/api.ts b/src/data/api.ts index 1f2690c6a14..fcfe956710a 100644 --- a/src/data/api.ts +++ b/src/data/api.ts @@ -340,7 +340,7 @@ export async function printPokemon() { const speciesKey = (pokemonSpecies as any).key as string; enumStr += ` ${speciesKey}${pokemonSpecies.speciesId >= 2000 ? ` = ${pokemonSpecies.speciesId}` : ''},\n`; - pokemonSpeciesStr += ` new PokemonSpecies(Species.${speciesKey}, "${pokemonSpecies.name}", ${pokemonSpecies.generation}, ${pokemonSpecies.pseudoLegendary}, ${pokemonSpecies.legendary}, ${pokemonSpecies.mythical}, "${pokemonSpecies.species}", Type.${Type[pokemonSpecies.type1]}, ${pokemonSpecies.type2 ? `Type.${Type[pokemonSpecies.type2]}` : 'null'}, ${pokemonSpecies.height}, ${pokemonSpecies.weight}, Abilities.${Abilities[pokemonSpecies.ability1]}, Abilities.${Abilities[pokemonSpecies.ability2]}, Abilities.${Abilities[pokemonSpecies.abilityHidden]}, ${pokemonSpecies.baseTotal}, ${pokemonSpecies.baseStats[0]}, ${pokemonSpecies.baseStats[1]}, ${pokemonSpecies.baseStats[2]}, ${pokemonSpecies.baseStats[3]}, ${pokemonSpecies.baseStats[4]}, ${pokemonSpecies.baseStats[5]}, ${pokemonSpecies.catchRate}, ${pokemonSpecies.baseFriendship}, ${pokemonSpecies.baseExp}, GrowthRate.${GrowthRate[pokemonSpecies.growthRate]}, ${pokemonSpecies.malePercent}, ${pokemonSpecies.genderDiffs}`; + pokemonSpeciesStr += ` new PokemonSpecies(Species.${speciesKey}, "${pokemonSpecies.name}", ${pokemonSpecies.generation}, ${pokemonSpecies.subLegendary}, ${pokemonSpecies.legendary}, ${pokemonSpecies.mythical}, "${pokemonSpecies.species}", Type.${Type[pokemonSpecies.type1]}, ${pokemonSpecies.type2 ? `Type.${Type[pokemonSpecies.type2]}` : 'null'}, ${pokemonSpecies.height}, ${pokemonSpecies.weight}, Abilities.${Abilities[pokemonSpecies.ability1]}, Abilities.${Abilities[pokemonSpecies.ability2]}, Abilities.${Abilities[pokemonSpecies.abilityHidden]}, ${pokemonSpecies.baseTotal}, ${pokemonSpecies.baseStats[0]}, ${pokemonSpecies.baseStats[1]}, ${pokemonSpecies.baseStats[2]}, ${pokemonSpecies.baseStats[3]}, ${pokemonSpecies.baseStats[4]}, ${pokemonSpecies.baseStats[5]}, ${pokemonSpecies.catchRate}, ${pokemonSpecies.baseFriendship}, ${pokemonSpecies.baseExp}, GrowthRate.${GrowthRate[pokemonSpecies.growthRate]}, ${pokemonSpecies.malePercent}, ${pokemonSpecies.genderDiffs}`; if (pokemonSpecies.forms.length > 1) { pokemonSpeciesStr += `, ${pokemonSpecies.canChangeForm},`; for (let form of pokemonSpecies.forms) diff --git a/src/data/move.ts b/src/data/move.ts index 60e492deb31..653ffc93c0a 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -12,7 +12,7 @@ import * as Utils from "../utils"; import { WeatherType } from "./weather"; import { ArenaTagSide, ArenaTrapTag } from "./arena-tag"; import { ArenaTagType } from "./enums/arena-tag-type"; -import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, NoTransformAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr, MoveAbilityBypassAbAttr, ReverseDrainAbAttr, FieldPreventExplosiveMovesAbAttr } from "./ability"; +import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, NoTransformAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr, MoveAbilityBypassAbAttr, ReverseDrainAbAttr, FieldPreventExplosiveMovesAbAttr, ForceSwitchOutImmunityAbAttr } from "./ability"; import { Abilities } from "./enums/abilities"; import { allAbilities } from './ability'; import { PokemonHeldItemModifier } from "../modifier/modifier"; @@ -326,6 +326,15 @@ export default class Move implements Localizable { return true; } + getFailedText(user: Pokemon, target: Pokemon, move: Move, cancelled: Utils.BooleanHolder): string | null { + for (let attr of this.attrs) { + let failedText = attr.getFailedText(user, target, move, cancelled); + if (failedText !== null) + return failedText; + } + return null; + } + getUserBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer { let score = 0; @@ -422,6 +431,10 @@ export abstract class MoveAttr { return null; } + getFailedText(user: Pokemon, target: Pokemon, move: Move, cancelled: Utils.BooleanHolder): string | null { + return null; + } + getUserBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer { return 0; } @@ -434,7 +447,9 @@ export abstract class MoveAttr { export enum MoveEffectTrigger { PRE_APPLY, POST_APPLY, - HIT + HIT, + /** Triggers one time after all target effects have applied */ + POST_TARGET, } export class MoveEffectAttr extends MoveAttr { @@ -727,19 +742,33 @@ export class SacrificialAttr extends MoveEffectAttr { } } +/** + * Attribute used for moves which cut the user's Max HP in half. + * Triggers using POST_TARGET. + */ export class HalfSacrificialAttr extends MoveEffectAttr { constructor() { - super(true, MoveEffectTrigger.PRE_APPLY); + super(true, MoveEffectTrigger.POST_TARGET); } + /** + * Cut's the user's Max HP in half and displays the appropriate recoil message + * @param user Pokemon that used the move + * @param target N/A + * @param move Move with this attribute + * @param args N/A + * @returns true if the function succeeds + */ apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { if (!super.apply(user, target, move, args)) return false; const cancelled = new Utils.BooleanHolder(false); + // Check to see if the Pokemon has an ability that blocks non-direct damage applyAbAttrs(BlockNonDirectDamageAbAttr, user, cancelled); if (!cancelled.value){ user.damageAndUpdate(Math.ceil(user.getMaxHp()/2), HitResult.OTHER, false, true, true); + user.scene.queueMessage(getPokemonMessage(user, ' cut its own HP to power up its move!')); // Queue recoil message } return true; } @@ -1452,8 +1481,8 @@ export class StatChangeAttr extends MoveEffectAttr { private condition: MoveConditionFunc; private showMessage: boolean; - constructor(stats: BattleStat | BattleStat[], levels: integer, selfTarget?: boolean, condition?: MoveConditionFunc, showMessage: boolean = true, firstHitOnly: boolean = false) { - super(selfTarget, MoveEffectTrigger.HIT, firstHitOnly); + constructor(stats: BattleStat | BattleStat[], levels: integer, selfTarget?: boolean, condition?: MoveConditionFunc, showMessage: boolean = true, firstHitOnly: boolean = false, moveEffectTrigger: MoveEffectTrigger = MoveEffectTrigger.HIT) { + super(selfTarget, moveEffectTrigger, firstHitOnly); this.stats = typeof(stats) === 'number' ? [ stats as BattleStat ] : stats as BattleStat[]; @@ -2692,26 +2721,19 @@ export class AddBattlerTagAttr extends MoveEffectAttr { export class CurseAttr extends MoveEffectAttr { apply(user: Pokemon, target: Pokemon, move:Move, args: any[]): boolean { - // Determine the correct target based on the user's type - if (!user.getTypes(true).includes(Type.GHOST)) { - // For non-Ghost types, target the user itself - target = user; - } - if (user.getTypes(true).includes(Type.GHOST)) { if (target.getTag(BattlerTagType.CURSED)) { user.scene.queueMessage('But it failed!'); return false; } - let curseRecoilDamage = Math.floor(user.getMaxHp() / 2); + let curseRecoilDamage = Math.max(1, Math.floor(user.getMaxHp() / 2)); user.damageAndUpdate(curseRecoilDamage, HitResult.OTHER, false, true, true); 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 { - target = user; - user.scene.unshiftPhase(new StatChangePhase(user.scene, user.getBattlerIndex(), this.selfTarget, [BattleStat.ATK, BattleStat.DEF], 1)); - user.scene.unshiftPhase(new StatChangePhase(user.scene, user.getBattlerIndex(), this.selfTarget, [BattleStat.SPD], -1)); + user.scene.unshiftPhase(new StatChangePhase(user.scene, user.getBattlerIndex(), true, [BattleStat.ATK, BattleStat.DEF], 1)); + user.scene.unshiftPhase(new StatChangePhase(user.scene, user.getBattlerIndex(), true, [BattleStat.SPD], -1)); return true; } } @@ -2876,7 +2898,7 @@ export class AddArenaTagAttr extends MoveEffectAttr { public tagType: ArenaTagType; public turnCount: integer; private failOnOverlap: boolean; - private selfSideTarget: boolean; + public selfSideTarget: boolean; constructor(tagType: ArenaTagType, turnCount?: integer, failOnOverlap: boolean = false, selfSideTarget: boolean = false) { super(true, MoveEffectTrigger.POST_APPLY, true); @@ -2909,9 +2931,10 @@ export class AddArenaTagAttr extends MoveEffectAttr { export class AddArenaTrapTagAttr extends AddArenaTagAttr { getCondition(): MoveConditionFunc { return (user, target, move) => { - if (move.category !== MoveCategory.STATUS || !user.scene.arena.getTag(this.tagType)) + const side = (this.selfSideTarget ? user : target).isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY; + if (move.category !== MoveCategory.STATUS || !user.scene.arena.getTagOnSide(this.tagType, side)) return true; - const tag = user.scene.arena.getTag(this.tagType) as ArenaTrapTag; + const tag = user.scene.arena.getTagOnSide(this.tagType, side) as ArenaTrapTag; return tag.layers < tag.maxLayers; }; } @@ -2963,16 +2986,14 @@ export class ForceSwitchOutAttr extends MoveEffectAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise { return new Promise(resolve => { - if (!this.user && target.isMax()) - return resolve(false); - + // Check if the move category is not STATUS or if the switch out condition is not met - if (move.category !== MoveCategory.STATUS && !this.getSwitchOutCondition()(user, target, move)) { + if (!this.getSwitchOutCondition()(user, target, move)) { //Apply effects before switch out i.e. poison point, flame body, etc applyPostDefendAbAttrs(PostDefendContactApplyStatusEffectAbAttr, target, user, new PokemonMove(move.id), null); return resolve(false); } - + // Move the switch out logic inside the conditional block // This ensures that the switch out only happens when the conditions are met const switchOutTarget = this.user ? user : target; @@ -3019,15 +3040,24 @@ export class ForceSwitchOutAttr extends MoveEffectAttr { resolve(true); }); } - + getCondition(): MoveConditionFunc { - return (user, target, move) => move.category !== MoveCategory.STATUS || this.getSwitchOutCondition()(user, target, move); + return (user, target, move) => (move.category !== MoveCategory.STATUS || this.getSwitchOutCondition()(user, target, move)); + } + + getFailedText(user: Pokemon, target: Pokemon, move: Move, cancelled: Utils.BooleanHolder): string | null { + const blockedByAbility = new Utils.BooleanHolder(false); + applyAbAttrs(ForceSwitchOutImmunityAbAttr, target, blockedByAbility); + return blockedByAbility.value ? getPokemonMessage(target, ` can't be switched out!`) : null; } getSwitchOutCondition(): MoveConditionFunc { return (user, target, move) => { const switchOutTarget = (this.user ? user : target); const player = switchOutTarget instanceof PlayerPokemon; + + if (!this.user && move.category == MoveCategory.STATUS && (target.hasAbilityWithAttr(ForceSwitchOutImmunityAbAttr) || target.isMax())) + return false; if (!player && !user.scene.currentBattle.battleType) { if (this.batonPass) @@ -3791,6 +3821,9 @@ const failOnMaxCondition: MoveConditionFunc = (user, target, move) => !target.is const failIfDampCondition: MoveConditionFunc = (user, target, move) => { const cancelled = new Utils.BooleanHolder(false); user.scene.getField(true).map(p=>applyAbAttrs(FieldPreventExplosiveMovesAbAttr, p, cancelled)); + // Queue a message if an ability prevented usage of the move + if (cancelled.value) + user.scene.queueMessage(getPokemonMessage(user, ` cannot use ${move.name}!`)); return !cancelled.value; } @@ -4384,10 +4417,8 @@ export function initMoves() { .condition((user, target, move) => user.status?.effect === StatusEffect.SLEEP) .soundBased(), new StatusMove(Moves.CURSE, Type.GHOST, -1, 10, -1, 0, 2) - .attr(StatChangeAttr, BattleStat.SPD, -1, true) - .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.DEF ], 1, true) - .target(MoveTarget.USER) - .partial(), + .attr(CurseAttr) + .ignoresProtect(true), new AttackMove(Moves.FLAIL, Type.NORMAL, MoveCategory.PHYSICAL, -1, 100, 15, -1, 0, 2) .attr(LowHpPowerAttr), new StatusMove(Moves.CONVERSION_2, Type.NORMAL, -1, 30, -1, 0, 2) @@ -5479,7 +5510,7 @@ export function initMoves() { .soundBased() .target(MoveTarget.ALL_NEAR_ENEMIES), new StatusMove(Moves.PARTING_SHOT, Type.DARK, 100, 20, 100, 0, 6) - .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPATK ], -1) + .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPATK ], -1, false, null, true, true, MoveEffectTrigger.PRE_APPLY) .attr(ForceSwitchOutAttr, true, false) .soundBased(), new StatusMove(Moves.TOPSY_TURVY, Type.DARK, -1, 20, -1, 0, 6) @@ -5888,7 +5919,7 @@ export function initMoves() { new AttackMove(Moves.PIKA_PAPOW, Type.ELECTRIC, MoveCategory.SPECIAL, -1, -1, 20, -1, 0, 7) .attr(FriendshipPowerAttr), new AttackMove(Moves.BOUNCY_BUBBLE, Type.WATER, MoveCategory.SPECIAL, 60, 100, 20, -1, 0, 7) - .attr(HitHealAttr) + .attr(HitHealAttr, 1.0) .triageMove(), new AttackMove(Moves.BUZZY_BUZZ, Type.ELECTRIC, MoveCategory.SPECIAL, 60, 100, 20, 100, 0, 7) .attr(StatusEffectAttr, StatusEffect.PARALYSIS), @@ -6231,7 +6262,7 @@ export function initMoves() { .partial(), new SelfStatusMove(Moves.TAKE_HEART, Type.PSYCHIC, -1, 10, -1, 0, 8) .attr(StatChangeAttr, [ BattleStat.SPATK, BattleStat.SPDEF ], 1, true) - .partial(), + .attr(HealStatusEffectAttr, true, StatusEffect.PARALYSIS, StatusEffect.POISON, StatusEffect.TOXIC, StatusEffect.BURN, StatusEffect.SLEEP), /* Unused new AttackMove(Moves.G_MAX_WILDFIRE, Type.FIRE, MoveCategory.PHYSICAL, 10, -1, 10, -1, 0, 8) .target(MoveTarget.ALL_NEAR_ENEMIES) diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index d118adc0fd8..7f33d9ec731 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -476,7 +476,7 @@ export abstract class PokemonSpeciesForm { export default class PokemonSpecies extends PokemonSpeciesForm implements Localizable { public name: string; - public pseudoLegendary: boolean; + public subLegendary: boolean; public legendary: boolean; public mythical: boolean; public species: string; @@ -486,7 +486,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali public canChangeForm: boolean; public forms: PokemonForm[]; - constructor(id: Species, generation: integer, pseudoLegendary: boolean, legendary: boolean, mythical: boolean, species: string, + constructor(id: Species, generation: integer, subLegendary: boolean, legendary: boolean, mythical: boolean, species: string, type1: Type, type2: Type, height: number, weight: number, ability1: Abilities, ability2: Abilities, abilityHidden: Abilities, baseTotal: integer, baseHp: integer, baseAtk: integer, baseDef: integer, baseSpatk: integer, baseSpdef: integer, baseSpd: integer, catchRate: integer, baseFriendship: integer, baseExp: integer, growthRate: GrowthRate, malePercent: number, @@ -496,7 +496,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali this.speciesId = id; this.formIndex = 0; this.generation = generation; - this.pseudoLegendary = pseudoLegendary; + this.subLegendary = subLegendary; this.legendary = legendary; this.mythical = mythical; this.species = species; @@ -712,14 +712,14 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali getCompatibleFusionSpeciesFilter(): PokemonSpeciesFilter { const hasEvolution = pokemonEvolutions.hasOwnProperty(this.speciesId); const hasPrevolution = pokemonPrevolutions.hasOwnProperty(this.speciesId); - const pseudoLegendary = this.pseudoLegendary; + const pseudoLegendary = this.subLegendary; const legendary = this.legendary; const mythical = this.mythical; return species => { return (pseudoLegendary || legendary || mythical || (pokemonEvolutions.hasOwnProperty(species.speciesId) === hasEvolution && pokemonPrevolutions.hasOwnProperty(species.speciesId) === hasPrevolution)) - && species.pseudoLegendary === pseudoLegendary + && species.subLegendary === pseudoLegendary && species.legendary === legendary && species.mythical === mythical && (this.isTrainerForbidden() || !species.isTrainerForbidden()); diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index 044bd4ec858..36d76edcfab 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -212,7 +212,7 @@ export class TrainerConfig { this.battleBgm = 'battle_trainer'; this.victoryBgm = 'victory_trainer'; this.partyTemplates = [ trainerPartyTemplates.TWO_AVG ]; - this.speciesFilter = species => (allowLegendaries || (!species.legendary && !species.pseudoLegendary && !species.mythical)) && !species.isTrainerForbidden(); + this.speciesFilter = species => (allowLegendaries || (!species.legendary && !species.subLegendary && !species.mythical)) && !species.isTrainerForbidden(); } getKey(): string { @@ -509,7 +509,7 @@ function getRandomPartyMemberFunc(speciesPool: Species[], trainerSlot: TrainerSl function getSpeciesFilterRandomPartyMemberFunc(speciesFilter: PokemonSpeciesFilter, trainerSlot: TrainerSlot = TrainerSlot.TRAINER, allowLegendaries?: boolean, postProcess?: (EnemyPokemon: EnemyPokemon) => void): PartyMemberFunc { const originalSpeciesFilter = speciesFilter; - speciesFilter = (species: PokemonSpecies) => (allowLegendaries || (!species.legendary && !species.pseudoLegendary && !species.mythical)) && !species.isTrainerForbidden() && originalSpeciesFilter(species); + speciesFilter = (species: PokemonSpecies) => (allowLegendaries || (!species.legendary && !species.subLegendary && !species.mythical)) && !species.isTrainerForbidden() && originalSpeciesFilter(species); return (scene: BattleScene, level: integer, strength: PartyMemberStrength) => { const ret = scene.addEnemyPokemon(getPokemonSpecies(scene.randomSpecies(scene.currentBattle.waveIndex, level, false, speciesFilter).getTrainerSpeciesForLevel(level, true, strength)), level, trainerSlot, undefined, undefined, postProcess); return ret; diff --git a/src/egg-hatch-phase.ts b/src/egg-hatch-phase.ts index 19934ad6e81..70f2d5f388e 100644 --- a/src/egg-hatch-phase.ts +++ b/src/egg-hatch-phase.ts @@ -241,10 +241,12 @@ export class EggHatchPhase extends Phase { doReveal(): void { const isShiny = this.pokemon.isShiny(); - if (this.pokemon.species.mythical) - this.scene.validateAchv(achvs.HATCH_MYTHICAL); + if (this.pokemon.species.subLegendary) + this.scene.validateAchv(achvs.HATCH_SUB_LEGENDARY); if (this.pokemon.species.legendary) this.scene.validateAchv(achvs.HATCH_LEGENDARY); + if (this.pokemon.species.mythical) + this.scene.validateAchv(achvs.HATCH_MYTHICAL); if (isShiny) this.scene.validateAchv(achvs.HATCH_SHINY); this.eggContainer.setVisible(false); diff --git a/src/enums/buttons.ts b/src/enums/buttons.ts new file mode 100644 index 00000000000..034c5a2af83 --- /dev/null +++ b/src/enums/buttons.ts @@ -0,0 +1,19 @@ +export enum Button { + UP, + DOWN, + LEFT, + RIGHT, + SUBMIT, + ACTION, + CANCEL, + MENU, + STATS, + CYCLE_SHINY, + CYCLE_FORM, + CYCLE_GENDER, + CYCLE_ABILITY, + CYCLE_NATURE, + CYCLE_VARIANT, + SPEED_UP, + SLOW_DOWN +} diff --git a/src/field/arena.ts b/src/field/arena.ts index 6026560c14d..e8cc98c0ae5 100644 --- a/src/field/arena.ts +++ b/src/field/arena.ts @@ -106,7 +106,7 @@ export class Arena { ret = getPokemonSpecies(species); - if (ret.pseudoLegendary || ret.legendary || ret.mythical) { + if (ret.subLegendary || ret.legendary || ret.mythical) { switch (true) { case (ret.baseTotal >= 720): regen = level < 90; @@ -492,7 +492,7 @@ export class Arena { } addTag(tagType: ArenaTagType, turnCount: integer, sourceMove: Moves, sourceId: integer, side: ArenaTagSide = ArenaTagSide.BOTH, targetIndex?: BattlerIndex): boolean { - const existingTag = this.getTag(tagType); + const existingTag = this.getTagOnSide(tagType, side); if (existingTag) { existingTag.onOverlap(this); return false; diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 620195d4f92..70ad0b33d75 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1913,6 +1913,21 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { applyAbAttrs(ReduceStatusEffectDurationAbAttr, this, null, effect, statusCureTurn); this.setFrameRate(4); + + // If the user is invulnerable, lets remove their invulnerability when they fall asleep + const invulnerableTags = [ + BattlerTagType.UNDERGROUND, + BattlerTagType.UNDERWATER, + BattlerTagType.HIDDEN, + BattlerTagType.FLYING + ]; + + const tag = invulnerableTags.find((t) => this.getTag(t)); + + if (tag) { + this.removeTag(tag); + this.getMoveQueue().pop(); + } } this.status = new Status(effect, 0, statusCureTurn?.value); diff --git a/src/game-mode.ts b/src/game-mode.ts index 319f608b52f..253c8c22647 100644 --- a/src/game-mode.ts +++ b/src/game-mode.ts @@ -133,7 +133,7 @@ export class GameMode implements GameModeConfig { getOverrideSpecies(waveIndex: integer): PokemonSpecies { if (this.isDaily && this.isWaveFinal(waveIndex)) { - const allFinalBossSpecies = allSpecies.filter(s => (s.pseudoLegendary || s.legendary || s.mythical) + const allFinalBossSpecies = allSpecies.filter(s => (s.subLegendary || s.legendary || s.mythical) && s.baseTotal >= 600 && s.speciesId !== Species.ETERNATUS && s.speciesId !== Species.ARCEUS); return Utils.randSeedItem(allFinalBossSpecies); } diff --git a/src/inputs-controller.ts b/src/inputs-controller.ts new file mode 100644 index 00000000000..83182629d05 --- /dev/null +++ b/src/inputs-controller.ts @@ -0,0 +1,277 @@ +import Phaser, {Time} from "phaser"; +import * as Utils from "./utils"; +import {initTouchControls} from './touch-controls'; +import pad_generic from "./configs/pad_generic"; +import pad_unlicensedSNES from "./configs/pad_unlicensedSNES"; +import pad_xbox360 from "./configs/pad_xbox360"; +import pad_dualshock from "./configs/pad_dualshock"; +import {Button} from "./enums/buttons"; + +export interface GamepadMapping { + [key: string]: number; +} + +export interface GamepadConfig { + padID: string; + padType: string; + gamepadMapping: GamepadMapping; +} + +export interface ActionGamepadMapping { + [key: string]: Button; +} + +const repeatInputDelayMillis = 250; + +export class InputsController { + private buttonKeys: Phaser.Input.Keyboard.Key[][]; + private gamepads: Array = new Array(); + private scene: Phaser.Scene; + + // buttonLock ensures only a single movement key is firing repeated inputs + // (i.e. by holding down a button) at a time + private buttonLock: Button; + private interactions: Map> = new Map(); + private time: Time; + private player: Map = new Map(); + + constructor(scene: Phaser.Scene) { + this.scene = scene; + this.time = this.scene.time; + this.buttonKeys = []; + + for (const b of Utils.getEnumValues(Button)) { + this.interactions[b] = { + pressTime: false, + isPressed: false, + } + } + // We don't want the menu key to be repeated + delete this.interactions[Button.MENU]; + delete this.interactions[Button.STATS]; + this.init(); + } + + init(): void { + this.events = new Phaser.Events.EventEmitter(); + // Handle the game losing focus + this.scene.game.events.on(Phaser.Core.Events.BLUR, () => { + this.loseFocus() + }) + + if (typeof this.scene.input.gamepad !== 'undefined') { + this.scene.input.gamepad.on('connected', function (thisGamepad) { + this.refreshGamepads(); + this.setupGamepad(thisGamepad); + }, this); + + // Check to see if the gamepad has already been setup by the browser + this.scene.input.gamepad.refreshPads(); + if (this.scene.input.gamepad.total) { + this.refreshGamepads(); + for (const thisGamepad of this.gamepads) { + this.scene.input.gamepad.emit('connected', thisGamepad); + } + } + + this.scene.input.gamepad.on('down', this.gamepadButtonDown, this); + this.scene.input.gamepad.on('up', this.gamepadButtonUp, this); + } + + // Keyboard + this.setupKeyboardControls(); + } + + loseFocus(): void { + this.deactivatePressedKey(); + } + + update(): void { + for (const b of Utils.getEnumValues(Button)) { + if (!this.interactions.hasOwnProperty(b)) continue; + if (this.repeatInputDurationJustPassed(b) && this.interactions[b].isPressed) { + this.events.emit('input_down', { + controller_type: 'repeated', + button: b, + }); + this.setLastProcessedMovementTime(b); + } + } + } + + setupGamepad(thisGamepad: Phaser.Input.Gamepad.Gamepad): void { + let gamepadID = thisGamepad.id.toLowerCase(); + const mappedPad = this.mapGamepad(gamepadID); + this.player['mapping'] = mappedPad.gamepadMapping; + } + + refreshGamepads(): void { + // Sometimes, gamepads are undefined. For some reason. + this.gamepads = this.scene.input.gamepad.gamepads.filter(function (el) { + return el != null; + }); + + for (const [index, thisGamepad] of this.gamepads.entries()) { + thisGamepad.index = index; // Overwrite the gamepad index, in case we had undefined gamepads earlier + } + } + + getActionGamepadMapping(): ActionGamepadMapping { + const gamepadMapping = {}; + if (!this.player?.mapping) return gamepadMapping; + gamepadMapping[this.player.mapping.LC_N] = Button.UP; + gamepadMapping[this.player.mapping.LC_S] = Button.DOWN; + gamepadMapping[this.player.mapping.LC_W] = Button.LEFT; + gamepadMapping[this.player.mapping.LC_E] = Button.RIGHT; + gamepadMapping[this.player.mapping.TOUCH] = Button.SUBMIT; + gamepadMapping[this.player.mapping.RC_S] = this.scene.abSwapped ? Button.CANCEL : Button.ACTION; + gamepadMapping[this.player.mapping.RC_E] = this.scene.abSwapped ? Button.ACTION : Button.CANCEL; + gamepadMapping[this.player.mapping.SELECT] = Button.STATS; + gamepadMapping[this.player.mapping.START] = Button.MENU; + gamepadMapping[this.player.mapping.RB] = Button.CYCLE_SHINY; + gamepadMapping[this.player.mapping.LB] = Button.CYCLE_FORM; + gamepadMapping[this.player.mapping.LT] = Button.CYCLE_GENDER; + gamepadMapping[this.player.mapping.RT] = Button.CYCLE_ABILITY; + gamepadMapping[this.player.mapping.RC_W] = Button.CYCLE_NATURE; + gamepadMapping[this.player.mapping.RC_N] = Button.CYCLE_VARIANT; + gamepadMapping[this.player.mapping.LS] = Button.SPEED_UP; + gamepadMapping[this.player.mapping.RS] = Button.SLOW_DOWN; + + return gamepadMapping; + } + + gamepadButtonDown(pad: Phaser.Input.Gamepad.Gamepad, button: Phaser.Input.Gamepad.Button, value: number): void { + if (!this.scene.gamepadSupport) return; + const actionMapping = this.getActionGamepadMapping(); + const buttonDown = actionMapping.hasOwnProperty(button.index) && actionMapping[button.index]; + if (buttonDown !== undefined) { + this.events.emit('input_down', { + controller_type: 'gamepad', + button: buttonDown, + }); + this.setLastProcessedMovementTime(buttonDown); + } + } + + gamepadButtonUp(pad: Phaser.Input.Gamepad.Gamepad, button: Phaser.Input.Gamepad.Button, value: number): void { + if (!this.scene.gamepadSupport) return; + const actionMapping = this.getActionGamepadMapping(); + const buttonUp = actionMapping.hasOwnProperty(button.index) && actionMapping[button.index]; + if (buttonUp !== undefined) { + this.events.emit('input_up', { + controller_type: 'gamepad', + button: buttonUp, + }); + this.delLastProcessedMovementTime(buttonUp); + } + } + + setupKeyboardControls(): void { + const keyCodes = Phaser.Input.Keyboard.KeyCodes; + const keyConfig = { + [Button.UP]: [keyCodes.UP, keyCodes.W], + [Button.DOWN]: [keyCodes.DOWN, keyCodes.S], + [Button.LEFT]: [keyCodes.LEFT, keyCodes.A], + [Button.RIGHT]: [keyCodes.RIGHT, keyCodes.D], + [Button.SUBMIT]: [keyCodes.ENTER], + [Button.ACTION]: [keyCodes.SPACE, 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], + [Button.CYCLE_ABILITY]: [keyCodes.E], + [Button.CYCLE_NATURE]: [keyCodes.N], + [Button.CYCLE_VARIANT]: [keyCodes.V], + [Button.SPEED_UP]: [keyCodes.PLUS], + [Button.SLOW_DOWN]: [keyCodes.MINUS] + }; + const mobileKeyConfig = {}; + for (const b of Utils.getEnumValues(Button)) { + const keys: Phaser.Input.Keyboard.Key[] = []; + if (keyConfig.hasOwnProperty(b)) { + for (let k of keyConfig[b]) + keys.push(this.scene.input.keyboard.addKey(k, false)); + mobileKeyConfig[Button[b]] = keys[0]; + } + this.buttonKeys[b] = keys; + } + + initTouchControls(mobileKeyConfig); + this.listenInputKeyboard(); + } + + listenInputKeyboard(): void { + this.buttonKeys.forEach((row, index) => { + for (const key of row) { + key.on('down', () => { + this.events.emit('input_down', { + controller_type: 'keyboard', + button: index, + }); + this.setLastProcessedMovementTime(index); + }); + key.on('up', () => { + this.events.emit('input_up', { + controller_type: 'keyboard', + button: index, + }); + this.delLastProcessedMovementTime(index); + }); + } + }); + } + + mapGamepad(id: string): GamepadConfig { + id = id.toLowerCase(); + + if (id.includes('081f') && id.includes('e401')) { + return pad_unlicensedSNES; + } else if (id.includes('xbox') && id.includes('360')) { + return pad_xbox360; + } else if (id.includes('054c')) { + return pad_dualshock; + } + + return pad_generic; + } + + /** + * repeatInputDurationJustPassed returns true if @param button has been held down long + * enough to fire a repeated input. A button must claim the buttonLock before + * firing a repeated input - this is to prevent multiple buttons from firing repeatedly. + */ + repeatInputDurationJustPassed(button: Button): boolean { + if (this.buttonLock === null || this.buttonLock !== button) { + return false; + } + if (this.time.now - this.interactions[button].pressTime >= repeatInputDelayMillis) { + this.buttonLock = null; + return true; + } + } + + setLastProcessedMovementTime(button: Button): void { + if (!this.interactions.hasOwnProperty(button)) return; + this.buttonLock = button; + this.interactions[button].pressTime = this.time.now; + this.interactions[button].isPressed = true; + } + + delLastProcessedMovementTime(button: Button): void { + if (!this.interactions.hasOwnProperty(button)) return; + this.buttonLock = null; + this.interactions[button].pressTime = null; + this.interactions[button].isPressed = false; + } + + deactivatePressedKey(): void { + this.buttonLock = null; + for (const b of Utils.getEnumValues(Button)) { + if (!this.interactions.hasOwnProperty(b)) return; + this.interactions[b].pressTime = null; + this.interactions[b].isPressed = false; + } + } +} \ No newline at end of file diff --git a/src/locales/es/battle.ts b/src/locales/es/battle.ts index 1d4345a6f5b..2d7087d6cba 100644 --- a/src/locales/es/battle.ts +++ b/src/locales/es/battle.ts @@ -24,7 +24,7 @@ export const battle: SimpleTranslationEntries = { "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}}.", + "learnMovePrompt": "{{pokemonName}} quiere aprender\n{{moveName}}.", "learnMoveLimitReached": "Pero, {{pokemonName}} ya conoce\ncuatro movimientos.", "learnMoveReplaceQuestion": "¿Quieres sustituir uno de sus movimientos por {{moveName}}?", "learnMoveStopTeaching": "¿Prefieres que no aprenda\n{{moveName}}?", diff --git a/src/locales/it/battle.ts b/src/locales/it/battle.ts index 161221cb6ca..52a4ee66ccf 100644 --- a/src/locales/it/battle.ts +++ b/src/locales/it/battle.ts @@ -24,7 +24,7 @@ export const battle: SimpleTranslationEntries = { "expGain": "{{pokemonName}} ha guadagnato\n{{exp}} Punti Esperienza!", "levelUp": "{{pokemonName}} è salito al \nLivello {{level}}!", "learnMove": "{{pokemonName}} impara \n{{moveName}}!", - "learnMovePrompt": "{{pokemonName}} vorrebbe imparare \l{{moveName}}.", + "learnMovePrompt": "{{pokemonName}} vorrebbe imparare\n{{moveName}}.", "learnMoveLimitReached": "Tuttavia, {{pokemonName}} \nconosce già quattro mosse.", "learnMoveReplaceQuestion": "Vuoi che ne dimentichi una e al suo \nposto la sostituisca con {{moveName}}?", "learnMoveStopTeaching": "Vuoi smettere di fargli imparare \n{{moveName}}?", diff --git a/src/locales/it/move.ts b/src/locales/it/move.ts index f0c1c623a05..116a14b5d90 100644 --- a/src/locales/it/move.ts +++ b/src/locales/it/move.ts @@ -1,3812 +1,3812 @@ import { MoveTranslationEntries } from "#app/plugins/i18n"; export const move: MoveTranslationEntries = { - "pound": { - name: "Pound", - effect: "The target is physically pounded with a long tail, a foreleg, or the like." + pound: { + name: "Botta", + effect: "Colpisce il nemico con la coda o le zampe anteriori.", }, - "karateChop": { - name: "Karate Chop", - effect: "The target is attacked with a sharp chop. Critical hits land more easily." + karateChop: { + name: "Colpokarate", + effect: "Colpisce il nemico con un colpo netto. Probabile brutto colpo.", }, - "doubleSlap": { - name: "Double Slap", - effect: "The target is slapped repeatedly, back and forth, two to five times in a row." + doubleSlap: { + name: "Doppiasberla", + effect: "Schiaffeggia il nemico da due a cinque volte di fila.", }, - "cometPunch": { - name: "Comet Punch", - effect: "The target is hit with a flurry of punches that strike two to five times in a row." + cometPunch: { + name: "Cometapugno", + effect: "Colpisce il nemico con una scarica di pugni da due a cinque volte di fila.", }, - "megaPunch": { - name: "Mega Punch", - effect: "The target is slugged by a punch thrown with muscle-packed power." + megaPunch: { + name: "Megapugno", + effect: "Colpisce il nemico con un pugno poderoso.", }, - "payDay": { - name: "Pay Day", - effect: "Numerous coins are hurled at the target to inflict damage. Money is earned after the battle." + payDay: { + name: "Giornopaga", + effect: "Colpisce il nemico con una gran quantità di monete recuperabili dopo la lotta.", }, - "firePunch": { - name: "Fire Punch", - effect: "The target is punched with a fiery fist. This may also leave the target with a burn." + firePunch: { + name: "Fuocopugno", + effect: "Colpisce il nemico con un pugno ardente che può scottarlo.", }, - "icePunch": { - name: "Ice Punch", - effect: "The target is punched with an icy fist. This may also leave the target frozen." + icePunch: { + name: "Gelopugno", + effect: "Colpisce il nemico con un pugno di ghiaccio che può congelarlo.", }, - "thunderPunch": { - name: "Thunder Punch", - effect: "The target is punched with an electrified fist. This may also leave the target with paralysis." + thunderPunch: { + name: "Tuonopugno", + effect: "Colpisce il nemico con un pugno elettrico che può paralizzarlo.", }, - "scratch": { - name: "Scratch", - effect: "Hard, pointed, sharp claws rake the target to inflict damage." + scratch: { + name: "Graffio", + effect: "Infligge danni al nemico con artigli acuminati, duri e affilati.", }, - "viseGrip": { - name: "Vise Grip", - effect: "The target is gripped and squeezed from both sides to inflict damage." + viseGrip: { + name: "Presa", + effect: "Stringe il nemico in una morsa usando enormi e possenti tenaglie.", }, - "guillotine": { - name: "Guillotine", - effect: "A vicious, tearing attack with big pincers. The target faints instantly if this attack hits." + guillotine: { + name: "Ghigliottina", + effect: "Attacca il nemico con pericolose tenaglie. Se l'attacco va a segno, il nemico va subito KO.", }, - "razorWind": { - name: "Razor Wind", - effect: "In this two-turn attack, blades of wind hit opposing Pokémon on the second turn. Critical hits land more easily." + razorWind: { + name: "Ventagliente", + effect: "Chi la usa genera un turbine al primo turno e attacca al secondo. Probabile brutto colpo.", }, - "swordsDance": { - name: "Swords Dance", - effect: "A frenetic dance to uplift the fighting spirit. This sharply raises the user's Attack stat." + swordsDance: { + name: "Danzaspada", + effect: "Danza frenetica che incrementa lo spirito combattivo. Chi la usa aumenta di molto il suo Attacco.", }, - "cut": { - name: "Cut", - effect: "The target is cut with a scythe or claw." + cut: { + name: "Taglio", + effect: "Attacca il nemico con artigli o falci affilate. Fuori dalla lotta si usa per tagliare piccoli alberi.", }, - "gust": { - name: "Gust", - effect: "A gust of wind is whipped up by wings and launched at the target to inflict damage." + gust: { + name: "Raffica", + effect: "Infligge danni al nemico con una folata di vento sollevata dalle ali.", }, - "wingAttack": { - name: "Wing Attack", - effect: "The target is struck with large, imposing wings spread wide to inflict damage." + wingAttack: { + name: "Attacco d'Ala", + effect: "Infligge danni al nemico spiegando delle grandi ali possenti.", }, - "whirlwind": { - name: "Whirlwind", - effect: "The target is blown away, and a different Pokémon is dragged out. In the wild, this ends a battle against a single Pokémon." + whirlwind: { + name: "Turbine", + effect: "Il bersaglio è spazzato via ed è costretto a lasciare il posto ad un altro. Se è selvatico, la lotta finisce.", }, - "fly": { - name: "Fly", - effect: "The user flies up into the sky and then strikes its target on the next turn." + fly: { + name: "Volo", + effect: "Chi la usa si alza in volo per attaccare al turno seguente. Fuori dalla lotta permette di volare in città già visitate.", }, - "bind": { - name: "Bind", - effect: "Things such as long bodies or tentacles are used to bind and squeeze the target for four to five turns." + bind: { + name: "Legatutto", + effect: "Lega e stritola il nemico per quattro o cinque turni con tentacoli o con un corpo lungo.", }, - "slam": { - name: "Slam", - effect: "The target is slammed with a long tail, vines, or the like to inflict damage." + slam: { + name: "Schianto", + effect: "Infligge danni al nemico con una coda, una liana o simili.", }, - "vineWhip": { - name: "Vine Whip", - effect: "The target is struck with slender, whiplike vines to inflict damage." + vineWhip: { + name: "Frustata", + effect: "Infligge danni al nemico con liane sottili simili a fruste.", }, - "stomp": { - name: "Stomp", - effect: "The target is stomped with a big foot. This may also make the target flinch." + stomp: { + name: "Pestone", + effect: "Colpisce il nemico con un grosso piede e può anche farlo tentennare.", }, - "doubleKick": { - name: "Double Kick", - effect: "The target is quickly kicked twice in succession using both feet." + doubleKick: { + name: "Doppiocalcio", + effect: "Colpisce il nemico due volte con un paio di rapidi calci inferti con entrambi i piedi.", }, - "megaKick": { - name: "Mega Kick", - effect: "The target is attacked by a kick launched with muscle-packed power." + megaKick: { + name: "Megacalcio", + effect: "Colpisce il nemico con un calcio sferrato con la forza di muscoli poderosi.", }, - "jumpKick": { - name: "Jump Kick", - effect: "The user jumps up high, then strikes with a kick. If the kick misses, the user hurts itself." + jumpKick: { + name: "Calciosalto", + effect: "Permette di saltare in alto per attaccare con un calcio. Se non va a buon fine, chi la usa si ferisce.", }, - "rollingKick": { - name: "Rolling Kick", - effect: "The user lashes out with a quick, spinning kick. This may also make the target flinch." + rollingKick: { + name: "Calciorullo", + effect: "Chi la usa infierisce sul nemico con un calcio rotante. Può anche farlo tentennare.", }, - "sandAttack": { - name: "Sand Attack", - effect: "Sand is hurled in the target's face, reducing the target's accuracy." + sandAttack: { + name: "Turbosabbia", + effect: "Getta sabbia in faccia al nemico e ne riduce la precisione.", }, - "headbutt": { - name: "Headbutt", - effect: "The user sticks out its head and attacks by charging straight into the target. This may also make the target flinch." + headbutt: { + name: "Bottintesta", + effect: "Chi la usa si lancia diritto di testa contro il nemico. Può anche far tentennare.", }, - "hornAttack": { - name: "Horn Attack", - effect: "The target is jabbed with a sharply pointed horn to inflict damage." + hornAttack: { + name: "Incornata", + effect: "Danneggia il nemico infilzandolo con un corno affilato.", }, - "furyAttack": { - name: "Fury Attack", - effect: "The target is jabbed repeatedly with a horn or beak two to five times in a row." + furyAttack: { + name: "Furia", + effect: "Infilza il nemico con corna affilate o un becco da due a cinque volte di fila.", }, - "hornDrill": { - name: "Horn Drill", - effect: "The user stabs the target with a horn that rotates like a drill. The target faints instantly if this attack hits." + hornDrill: { + name: "Perforcorno", + effect: "Colpisce il nemico con un corno perforante come un trapano. Se il colpo va a segno, il nemico va KO.", }, - "tackle": { - name: "Tackle", - effect: "A physical attack in which the user charges and slams into the target with its whole body." + tackle: { + name: "Azione", + effect: "Attacco fisico che colpisce il nemico investendolo con tutto il corpo.", }, - "bodySlam": { - name: "Body Slam", - effect: "The user drops onto the target with its full body weight. This may also leave the target with paralysis." + bodySlam: { + name: "Corposcontro", + effect: "Chi la usa carica il nemico con tutto il corpo. Può causarne anche la paralisi.", }, - "wrap": { - name: "Wrap", - effect: "A long body, vines, or the like are used to wrap and squeeze the target for four to five turns." + wrap: { + name: "Avvolgibotta", + effect: "Avvolge e stritola il nemico con un corpo lungo o con piante rampicanti per quattro o cinque turni.", }, - "takeDown": { - name: "Take Down", - effect: "A reckless, full-body charge attack for slamming into the target. This also damages the user a little." + takeDown: { + name: "Riduttore", + effect: "Carica spericolata con tutto il corpo contro il nemico. Danneggia un po' anche chi la usa.", }, - "thrash": { - name: "Thrash", - effect: "The user rampages and attacks for two to three turns. The user then becomes confused." + thrash: { + name: "Colpo", + effect: "Assale e attacca il nemico per due o tre turni, ma confonde chi la usa.", }, - "doubleEdge": { - name: "Double-Edge", - effect: "A reckless, life-risking tackle in which the user rushes the target. This also damages the user quite a lot." + doubleEdge: { + name: "Sdoppiatore", + effect: "Carica spietata e pericolosa che danneggia molto anche chi la usa.", }, - "tailWhip": { - name: "Tail Whip", - effect: "The user wags its tail cutely, making opposing Pokémon less wary and lowering their Defense stats." + tailWhip: { + name: "Colpocoda", + effect: "Chi la usa agita la coda per distrarre i nemici, riducendone la Difesa.", }, - "poisonSting": { - name: "Poison Sting", - effect: "The user stabs the target with a poisonous stinger. This may also poison the target." + poisonSting: { + name: "Velenospina", + effect: "Colpisce il nemico con un aculeo tossico che può anche avvelenarlo.", }, - "twineedle": { - name: "Twineedle", - effect: "The user damages the target twice in succession by jabbing it with two spikes. This may also poison the target." + twineedle: { + name: "Doppio Ago", + effect: "Colpisce il nemico due volte di seguito con un paio di aghi. Può anche avvelenarlo.", }, - "pinMissile": { - name: "Pin Missile", - effect: "Sharp spikes are shot at the target in rapid succession. They hit two to five times in a row." + pinMissile: { + name: "Missilspillo", + effect: "Il nemico viene colpito da due a cinque volte con spilli appuntiti in rapida successione.", }, - "leer": { - name: "Leer", - effect: "The user gives opposing Pokémon an intimidating leer that lowers the Defense stat." + leer: { + name: "Fulmisguardo", + effect: "Il nemico viene guardato con sguardo intimidatorio da occhi acuti. Viene ridotta la difesa dell'avversario.", }, - "bite": { - name: "Bite", - effect: "The target is bitten with viciously sharp fangs. This may also make the target flinch." + bite: { + name: "Morso", + effect: "Il nemico viene morso da denti affilatissimi che possono farlo tentennare.", }, - "growl": { - name: "Growl", - effect: "The user growls in an endearing way, making opposing Pokémon less wary. This lowers their Attack stats." + growl: { + name: "Ruggito", + effect: "Il Pokémon ruggisce con cattiveria. Viene ridotto l'attacco dell'avversario.", }, - "roar": { - name: "Roar", - effect: "The target is scared off, and a different Pokémon is dragged out. In the wild, this ends a battle against a single Pokémon." + roar: { + name: "Boato", + effect: "Il bersaglio è costretto a lasciare il campo e viene sostituito. Mette fine alle lotte contro Pokémon selvatici.", }, - "sing": { - name: "Sing", - effect: "A soothing lullaby is sung in a calming voice that puts the target into a deep slumber." + sing: { + name: "Canto", + effect: "Una ninna nanna è cantata con voce calma per far addormentare il nemico.", }, - "supersonic": { - name: "Supersonic", - effect: "The user generates odd sound waves from its body that confuse the target." + supersonic: { + name: "Supersuono", + effect: "Chi la usa genera dal proprio corpo strane onde acustiche che possono confondere il nemico.", }, - "sonicBoom": { - name: "Sonic Boom", - effect: "The target is hit with a destructive shock wave that always inflicts 20 HP damage." + sonicBoom: { + name: "Sonicboom", + effect: "Il nemico viene colpito con un suono distruttivo che infligge un danno sempre 20 PS.", }, - "disable": { - name: "Disable", - effect: "For four turns, this move prevents the target from using the move it last used." + disable: { + name: "Inibitore", + effect: "Per quattro turni impedisce al bersaglio di riutilizzare l'ultima mossa usata.", }, - "acid": { - name: "Acid", - effect: "Opposing Pokémon are attacked with a spray of harsh acid. This may also lower their Sp. Def stats." + acid: { + name: "Acido", + effect: "Colpisce i nemici intorno spruzzando un acido corrosivo. Può anche ridurne la Difesa Speciale.", }, - "ember": { - name: "Ember", - effect: "The target is attacked with small flames. This may also leave the target with a burn." + ember: { + name: "Braciere", + effect: "Il Pokémon attacca con piccole fiamme. Possono scottare il nemico.", }, - "flamethrower": { - name: "Flamethrower", - effect: "The target is scorched with an intense blast of fire. This may also leave the target with a burn." + flamethrower: { + name: "Lanciafiamme", + effect: "Il nemico viene colpito da intense fiammate che possono anche scottarlo.", }, - "mist": { - name: "Mist", - effect: "The user cloaks itself and its allies in a white mist that prevents any of their stats from being lowered for five turns." + mist: { + name: "Nebbia", + effect: "Chi la usa attira una nebbia che blocca la riduzione alle statistiche della sua squadra per cinque turni.", }, - "waterGun": { - name: "Water Gun", - effect: "The target is blasted with a forceful shot of water." + waterGun: { + name: "Pistolacqua", + effect: "Il nemico è colpito da un potente getto d'acqua.", }, - "hydroPump": { - name: "Hydro Pump", - effect: "The target is blasted by a huge volume of water launched under great pressure." + hydroPump: { + name: "Idropompa", + effect: "Il nemico è travolto da un potente getto d'acqua spruzzato ad altissima pressione.", }, - "surf": { + surf: { name: "Surf", - effect: "The user attacks everything around it by swamping its surroundings with a giant wave." + effect: "Un'onda enorme sommerge il campo di lotta. Fuori dalla lotta si usa per spostarsi sull'acqua.", }, - "iceBeam": { - name: "Ice Beam", - effect: "The target is struck with an icy-cold beam of energy. This may also leave the target frozen." + iceBeam: { + name: "Geloraggio", + effect: "Il nemico è colpito da un raggio di energia gelida che può anche congelarlo.", }, - "blizzard": { - name: "Blizzard", - effect: "A howling blizzard is summoned to strike opposing Pokémon. This may also leave the opposing Pokémon frozen." + blizzard: { + name: "Bora", + effect: "Colpisce i bersagli con una tremenda tempesta di ghiaccio che può anche congelarli.", }, - "psybeam": { - name: "Psybeam", - effect: "The target is attacked with a peculiar ray. This may also leave the target confused." + psybeam: { + name: "Psicoraggio", + effect: "Il nemico è attaccato con un raggio psichico. Può anche lasciare il nemico confuso.", }, - "bubbleBeam": { - name: "Bubble Beam", - effect: "A spray of bubbles is forcefully ejected at the target. This may also lower the target's Speed stat." + bubbleBeam: { + name: "Bollaraggio", + effect: "Colpisce il nemico con una forte scarica di bolle. Può anche ridurne la Velocità.", }, - "auroraBeam": { - name: "Aurora Beam", - effect: "The target is hit with a rainbow-colored beam. This may also lower the target's Attack stat." + auroraBeam: { + name: "Raggiaurora", + effect: "Il nemico viene colpito da un fascio color arcobaleno. Può ridurre l'attacco dell'avversario.", }, - "hyperBeam": { - name: "Hyper Beam", - effect: "The target is attacked with a powerful beam. The user can't move on the next turn." + hyperBeam: { + name: "Iper Raggio", + effect: "Colpisce il nemico con un potente raggio. Chi la usa salta il turno successivo per recuperare energia.", }, - "peck": { - name: "Peck", - effect: "The target is jabbed with a sharply pointed beak or horn." + peck: { + name: "Beccata", + effect: "Colpisce il nemico con un becco appuntito o un corno.", }, - "drillPeck": { - name: "Drill Peck", - effect: "A corkscrewing attack that strikes the target with a sharp beak acting as a drill." + drillPeck: { + name: "Perforbecco", + effect: "Attacco a spirale con un becco aguzzo che fa da trapano.", }, - "submission": { - name: "Submission", - effect: "The user grabs the target and recklessly dives for the ground. This also damages the user a little." + submission: { + name: "Sottomissione", + effect: "Chi la usa carica il nemico in modo spericolato, ma danneggia anche se stesso.", }, - "lowKick": { - name: "Low Kick", - effect: "A powerful low kick that makes the target fall over. The heavier the target, the greater the move's power." + lowKick: { + name: "Colpo Basso", + effect: "Un calcio basso e potente che fa cadere il nemico. Danneggia maggiormente i nemici più pesanti.", }, - "counter": { - name: "Counter", - effect: "A retaliation move that counters any physical attack, inflicting double the damage taken." + counter: { + name: "Contrattacco", + effect: "Una mossa di ritorsione che contrasta qualsiasi attacco fisico, infliggendo il doppio dei danni subiti.", }, - "seismicToss": { - name: "Seismic Toss", - effect: "The target is thrown using the power of gravity. It inflicts damage equal to the user's level." + seismicToss: { + name: "Movimento Sismico", + effect: "Colpisce il bersaglio con la forza di gravità. Infligge un danno pari al livello di chi la usa.", }, - "strength": { - name: "Strength", - effect: "The target is slugged with a punch thrown at maximum power." + strength: { + name: "Forza", + effect: "Colpisce il nemico con un'enorme energia. Fuori dalla lotta si usa per spostare i massi.", }, - "absorb": { - name: "Absorb", - effect: "A nutrient-draining attack. The user's HP is restored by half the damage taken by the target." + absorb: { + name: "Assorbimento", + effect: "Mossa che assorbe PS. Chi la usa recupera una quantità di PS pari alla metà del danno inferto.", }, - "megaDrain": { - name: "Mega Drain", - effect: "A nutrient-draining attack. The user's HP is restored by half the damage taken by the target." + megaDrain: { + name: "Megassorbimento", + effect: "Mossa che assorbe PS. Chi la usa recupera un quantità di PS pari alla metà del danno inferto.", }, - "leechSeed": { - name: "Leech Seed", - effect: "A seed is planted on the target. It steals some HP from the target every turn." + leechSeed: { + name: "Parassiseme", + effect: "Vengono piantati semi sul bersaglio. Questi sottraggono PS a ogni turno permettendo a chi la usa di curarsi.", }, - "growth": { - name: "Growth", - effect: "The user's body grows all at once, raising the Attack and Sp. Atk stats." + growth: { + name: "Crescita", + effect: "Provoca la crescita immediata del corpo e l'aumento dell'Attacco e dell'Attacco Speciale di chi la usa.", }, - "razorLeaf": { - name: "Razor Leaf", - effect: "Sharp-edged leaves are launched to slash at opposing Pokémon. Critical hits land more easily." + razorLeaf: { + name: "Foglielama", + effect: "Foglie taglienti sferzano i nemici intorno. Probabile brutto colpo.", }, - "solarBeam": { - name: "Solar Beam", - effect: "In this two-turn attack, the user gathers light, then blasts a bundled beam on the next turn." + solarBeam: { + name: "Solarraggio", + effect: "Chi la usa assorbe luce al primo turno per proiettare un raggio intenso al turno successivo.", }, - "poisonPowder": { - name: "Poison Powder", - effect: "The user scatters a cloud of poisonous dust that poisons the target." + poisonPowder: { + name: "Velenpolvere", + effect: "Una nube di polvere velenosa è sparsa sul nemico. Può avvelenare il bersaglio.", }, - "stunSpore": { - name: "Stun Spore", - effect: "The user scatters a cloud of numbing powder that paralyzes the target." + stunSpore: { + name: "Paralizzante", + effect: "Investe il bersaglio con una nuvola di polvere che paralizza.", }, - "sleepPowder": { - name: "Sleep Powder", - effect: "The user scatters a big cloud of sleep-inducing dust around the target." + sleepPowder: { + name: "Sonnifero", + effect: "Investe il bersaglio con una grande nuvola di polvere soporifera che lo fa addormentare.", }, - "petalDance": { - name: "Petal Dance", - effect: "The user attacks the target by scattering petals for two to three turns. The user then becomes confused." + petalDance: { + name: "Petalodanza", + effect: "Attacca il nemico cospargendolo di petali per due o tre turni, ma chi la usa rimane confuso.", }, - "stringShot": { - name: "String Shot", - effect: "Opposing Pokémon are bound with silk blown from the user's mouth that harshly lowers the Speed stat." + stringShot: { + name: "Millebave", + effect: "Chi la usa produce della seta che avvolge i nemici e ne riduce la Velocità.", }, - "dragonRage": { - name: "Dragon Rage", - effect: "This attack hits the target with a shock wave of pure rage. This attack always inflicts 40 HP damage." + dragonRage: { + name: "Ira di Drago", + effect: "Colpisce il nemico con un'onda d'urto generata dall'ira. Questo attacco provoca sempre un danno di 40 PS.", }, - "fireSpin": { - name: "Fire Spin", - effect: "The target becomes trapped within a fierce vortex of fire that rages for four to five turns." + fireSpin: { + name: "Turbofuoco", + effect: "Intrappola il bersaglio in un turbine di fuoco che dura per quattro o cinque turni.", }, - "thunderShock": { - name: "Thunder Shock", - effect: "A jolt of electricity crashes down on the target to inflict damage. This may also leave the target with paralysis." + thunderShock: { + name: "Tuonoshock", + effect: "Danneggia il bersaglio con una scarica elettrica che può anche paralizzarlo.", }, - "thunderbolt": { - name: "Thunderbolt", - effect: "A strong electric blast crashes down on the target. This may also leave the target with paralysis." + thunderbolt: { + name: "Fulmine", + effect: "Il bersaglio viene colpito da una potente scarica elettrica che può anche paralizzarlo.", }, - "thunderWave": { - name: "Thunder Wave", - effect: "The user launches a weak jolt of electricity that paralyzes the target." + thunderWave: { + name: "Tuononda", + effect: "Il nemico viene colpito da una debole scarica elettrica che, se va a segno, ne causa la paralisi.", }, - "thunder": { - name: "Thunder", - effect: "A wicked thunderbolt is dropped on the target to inflict damage. This may also leave the target with paralysis." + thunder: { + name: "Tuono", + effect: "Il nemico è colpito da un lampo molto violento che può anche paralizzarlo.", }, - "rockThrow": { - name: "Rock Throw", - effect: "The user picks up and throws a small rock at the target to attack." + rockThrow: { + name: "Sassata", + effect: "Chi la usa solleva una roccia e la lancia contro il nemico.", }, - "earthquake": { - name: "Earthquake", - effect: "The user sets off an earthquake that strikes every Pokémon around it." + earthquake: { + name: "Terremoto", + effect: "Chi la usa provoca un potente sisma che colpisce gli altri Pokémon in campo.", }, - "fissure": { - name: "Fissure", - effect: "The user opens up a fissure in the ground and drops the target in. The target faints instantly if this attack hits." + fissure: { + name: "Abisso", + effect: "Chi la usa crea una spaccatura nel terreno e cerca di gettarvici dentro il nemico. Se va a segno, il nemico va KO.", }, - "dig": { - name: "Dig", - effect: "The user burrows into the ground, then attacks on the next turn." + dig: { + name: "Fossa", + effect: "Chi la usa scava al primo turno e attacca al successivo. Fuori dalla lotta fa uscire da alcuni luoghi.", }, - "toxic": { - name: "Toxic", - effect: "A move that leaves the target badly poisoned. Its poison damage worsens every turn." + toxic: { + name: "Tossina", + effect: "Una mossa che lascia l'obiettivo gravemente avvelenato. Il danno da veleno peggiora ad ogni turno.", }, - "confusion": { - name: "Confusion", - effect: "The target is hit by a weak telekinetic force. This may also confuse the target." + confusion: { + name: "Confusione", + effect: "Colpisce il nemico con una leggera forza telecinetica e può anche confonderlo.", }, - "psychic": { - name: "Psychic", - effect: "The target is hit by a strong telekinetic force. This may also lower the target's Sp. Def stat." + psychic: { + name: "Psichico", + effect: "Il nemico viene colpito da una potente forza telecinetica che può anche ridurne la Difesa Speciale.", }, - "hypnosis": { - name: "Hypnosis", - effect: "The user employs hypnotic suggestion to make the target fall into a deep sleep." + hypnosis: { + name: "Ipnosi", + effect: "Chi la usa si avvale della suggestione ipnotica per far addormentare il nemico.", }, - "meditate": { - name: "Meditate", - effect: "The user meditates to awaken the power deep within its body and raise its Attack stat." + meditate: { + name: "Meditazione", + effect: "Il Pokémon medita risvegliando il potere nel profondo del suo corpo ed aumentando il suo Attacco.", }, - "agility": { - name: "Agility", - effect: "The user relaxes and lightens its body to move faster. This sharply raises the Speed stat." + agility: { + name: "Agilità", + effect: "Chi la usa rilassa e alleggerisce il proprio corpo per far salire di molto la Velocità.", }, - "quickAttack": { - name: "Quick Attack", - effect: "The user lunges at the target at a speed that makes it almost invisible. This move always goes first." + quickAttack: { + name: "Attacco Rapido", + effect: "Chi la usa colpisce sempre per primo e ad una tale velocità da rendersi quasi invisibile.", }, - "rage": { - name: "Rage", - effect: "As long as this move is in use, the power of rage raises the Attack stat each time the user is hit in battle." + rage: { + name: "Ira", + effect: "Questa mossa ha il potere di aumentare la statistica Attacco ogni volta che chi la usa viene colpito durante una lotta.", }, - "teleport": { - name: "Teleport", - effect: "The user switches places with a party Pokémon in waiting, if any. If a wild Pokémon uses this move, it flees." + teleport: { + name: "Teletrasporto", + effect: "Fa fuggire dai Pokémon selvatici. Fuori dalla lotta porta all'ultimo Centro Pokémon visitato.", }, - "nightShade": { - name: "Night Shade", - effect: "The user makes the target see a frightening mirage. It inflicts damage equal to the user's level." + nightShade: { + name: "Ombra Notturna", + effect: "Fa apparire un orribile miraggio al nemico e infligge un danno pari al livello di chi la usa.", }, - "mimic": { - name: "Mimic", - effect: "The user copies the target's last move. The move can be used during battle until the Pokémon is switched out." + mimic: { + name: "Mimica", + effect: "Copia l'ultima mossa usata dal bersaglio. La mossa copiata si può utilizzare fino alla sostituzione del Pokémon.", }, - "screech": { - name: "Screech", - effect: "An earsplitting screech harshly lowers the target's Defense stat." + screech: { + name: "Stridio", + effect: "Stridio assordante che riduce di molto la Difesa del nemico.", }, - "doubleTeam": { - name: "Double Team", - effect: "By moving rapidly, the user makes illusory copies of itself to raise its evasiveness." + doubleTeam: { + name: "Doppioteam", + effect: "Chi la usa si muove in fretta e crea copie illusorie di se stesso che aumentano la capacità di elusione.", }, - "recover": { - name: "Recover", - effect: "Restoring its own cells, the user restores its own HP by half of its max HP." + recover: { + name: "Ripresa", + effect: "Una mossa di auto-guarigione. Il Pokémon ripristina i suoi PS fino a metà dei suoi PS massimi.", }, - "harden": { - name: "Harden", - effect: "The user stiffens all the muscles in its body to raise its Defense stat." + harden: { + name: "Rafforzatore", + effect: "Tutti i muscoli del corpo si tonificano per aumentare la Difesa.", }, - "minimize": { - name: "Minimize", - effect: "The user compresses its body to make itself look smaller, which sharply raises its evasiveness." + minimize: { + name: "Minimizzato", + effect: "Il corpo di chi la usa si comprime e diventa più piccolo. La sua capacità di elusione aumenta di molto.", }, - "smokescreen": { - name: "Smokescreen", - effect: "The user releases an obscuring cloud of smoke or ink. This lowers the target's accuracy." + smokescreen: { + name: "Muro di Fumo", + effect: "Il Pokémon rilascia un'oscura cortina di fumo che riduce la precisione del nemico.", }, - "confuseRay": { - name: "Confuse Ray", - effect: "The target is exposed to a sinister ray that triggers confusion." + confuseRay: { + name: "Stordiraggio", + effect: "Il nemico è colpito da un raggio sinistro che lo confonde.", }, - "withdraw": { - name: "Withdraw", - effect: "The user withdraws its body into its hard shell, raising its Defense stat." + withdraw: { + name: "Ritirata", + effect: "Il corpo si ritira nel suo duro guscio per aumentare la Difesa.", }, - "defenseCurl": { - name: "Defense Curl", - effect: "The user curls up to conceal weak spots and raise its Defense stat." + defenseCurl: { + name: "Ricciolscudo", + effect: "Chi la usa si raggomitola per nascondere i punti deboli e aumentare la propria Difesa.", }, - "barrier": { - name: "Barrier", - effect: "The user throws up a sturdy wall that sharply raises its Defense stat." + barrier: { + name: "Barriera", + effect: "Innalza una barriera resistente che aumenta molto la Difesa.", }, - "lightScreen": { - name: "Light Screen", - effect: "A wondrous wall of light is put up to reduce damage from special attacks for five turns." + lightScreen: { + name: "Schermoluce", + effect: "Innalza una barriera di luce fantastica per ridurre i danni degli attacchi speciali alla squadra per cinque turni.", }, - "haze": { - name: "Haze", - effect: "The user creates a haze that eliminates every stat change among all the Pokémon engaged in battle." + haze: { + name: "Nube", + effect: "Chi la usa crea una nube nera che annulla ogni modifica delle statistiche di tutti i Pokémon in campo.", }, - "reflect": { - name: "Reflect", - effect: "A wondrous wall of light is put up to reduce damage from physical attacks for five turns." + reflect: { + name: "Riflesso", + effect: "Innalza una barriera di luce fantastica per ridurre i danni degli attacchi fisici alla squadra per cinque turni.", }, - "focusEnergy": { - name: "Focus Energy", - effect: "The user takes a deep breath and focuses so that critical hits land more easily." + focusEnergy: { + name: "Focalenergia", + effect: "Chi la usa fa un profondo respiro e si concentra per rendere più probabili i brutti colpi.", }, - "bide": { - name: "Bide", - effect: "The user endures attacks for two turns, then strikes back to cause double the damage taken." + bide: { + name: "Pazienza", + effect: "Chi la usa subisce attacchi per due turni e poi restituisce il danno moltiplicato per due.", }, - "metronome": { - name: "Metronome", - effect: "The user waggles a finger and stimulates its brain into randomly using nearly any move." + metronome: { + name: "Metronomo", + effect: "Il Pokémon fa di no con il dito e stimola il cervello a usare a caso una delle tante mosse esistenti.", }, - "mirrorMove": { - name: "Mirror Move", - effect: "The user counters the target by mimicking the target's last move." + mirrorMove: { + name: "Speculmossa", + effect: "Chi la usa colpisce il bersaglio copiandone l'ultima mossa usata.", }, - "selfDestruct": { - name: "Self-Destruct", - effect: "The user attacks everything around it by causing an explosion. The user faints upon using this move." + selfDestruct: { + name: "Autodistruzione", + effect: "Chi la usa esplode e infligge danni agli altri Pokémon in campo, ma poi va KO.", }, - "eggBomb": { - name: "Egg Bomb", - effect: "A large egg is hurled at the target with maximum force to inflict damage." + eggBomb: { + name: "Uovobomba", + effect: "Colpisce il nemico con un grande uovo scaraventato con enorme forza.", }, - "lick": { - name: "Lick", - effect: "The target is licked with a long tongue, causing damage. This may also leave the target with paralysis." + lick: { + name: "Leccata", + effect: "Una lingua lunga infligge danni al nemico e può anche paralizzarlo.", }, - "smog": { + smog: { name: "Smog", - effect: "The target is attacked with a discharge of filthy gases. This may also poison the target." + effect: "Colpisce il nemico con una scarica di gas maleodoranti. Può anche avvelenarlo.", }, - "sludge": { - name: "Sludge", - effect: "Unsanitary sludge is hurled at the target. This may also poison the target." + sludge: { + name: "Fango", + effect: "Lancio di fango malsano che arreca danno al nemico. Può anche avvelenarlo.", }, - "boneClub": { - name: "Bone Club", - effect: "The user clubs the target with a bone. This may also make the target flinch." + boneClub: { + name: "Ossoclava", + effect: "Il Pokémon colpisce il nemico con un bastone d'osso. Può anche fare tentennare l'obiettivo.", }, - "fireBlast": { - name: "Fire Blast", - effect: "The target is attacked with an intense blast of all-consuming fire. This may also leave the target with a burn." + fireBlast: { + name: "Fuocobomba", + effect: "Investe il nemico con un'intensa fiammata che fa terra bruciata. Può anche scottarlo.", }, - "waterfall": { - name: "Waterfall", - effect: "The user charges at the target and may make it flinch." + waterfall: { + name: "Cascata", + effect: "Carica il nemico a grande velocità e può farlo tentennare. Fuori dalla lotta fa risalire le cascate.", }, - "clamp": { - name: "Clamp", - effect: "The target is clamped and squeezed by the user's very thick and sturdy shell for four to five turns." + clamp: { + name: "Tenaglia", + effect: "Chi la usa intrappola e stritola il nemico con la sua corazza spessa e forte per quattro o cinque turni.", }, - "swift": { - name: "Swift", - effect: "Star-shaped rays are shot at opposing Pokémon. This attack never misses." + swift: { + name: "Comete", + effect: "Colpisce i nemici con raggi a forma di stella. Questo attacco è infallibile.", }, - "skullBash": { - name: "Skull Bash", - effect: "The user tucks in its head to raise its Defense stat on the first turn, then rams the target on the next turn." + skullBash: { + name: "Capocciata", + effect: "Chi la usa ritira la testa per aumentare la Difesa e poi attacca al turno successivo.", }, - "spikeCannon": { - name: "Spike Cannon", - effect: "Sharp spikes are shot at the target in rapid succession. They hit two to five times in a row." + spikeCannon: { + name: "Sparalance", + effect: "Il nemico viene colpito da due a cinque volte in rapida successione da spilli appuntiti.", }, - "constrict": { - name: "Constrict", - effect: "The target is attacked with long, creeping tentacles, vines, or the like. This may also lower the target's Speed stat." + constrict: { + name: "Limitazione", + effect: "Colpisce il nemico con lunghi tentacoli o piante rampicanti. Può anche ridurne la Velocità.", }, - "amnesia": { + amnesia: { name: "Amnesia", - effect: "The user temporarily empties its mind to forget its concerns. This sharply raises the user's Sp. Def stat." + effect: "Vuoto di memoria che aumenta esponenzialmente la difesa speciale.", }, - "kinesis": { - name: "Kinesis", - effect: "The user distracts the target by bending a spoon. This lowers the target's accuracy." + kinesis: { + name: "Cinèsi", + effect: "Chi la usa distrae il bersaglio piegando un cucchiaio e ne riduce la precisione.", }, - "softBoiled": { - name: "Soft-Boiled", - effect: "The user restores its own HP by up to half of its max HP." + softBoiled: { + name: "Covauova", + effect: "Chi la usa recupera metà dei propri PS massimi. Fuori dalla lotta può anche far trasferire PS ai propri compagni.", }, - "highJumpKick": { - name: "High Jump Kick", - effect: "The target is attacked with a knee kick from a jump. If it misses, the user is hurt instead." + highJumpKick: { + name: "Calcinvolo", + effect: "Chi la usa colpisce il nemico con una ginocchiata in volo: se fallisce, subisce danni.", }, - "glare": { - name: "Glare", - effect: "The user intimidates the target with the pattern on its belly to cause paralysis." + glare: { + name: "Sguardo Feroce", + effect: "Chi la usa spaventa il nemico con uno sguardo terrificante e ne causa la paralisi.", }, - "dreamEater": { - name: "Dream Eater", - effect: "The user eats the dreams of a sleeping target. The user's HP is restored by half the damage taken by the target." + dreamEater: { + name: "Mangiasogni", + effect: "Attacco che funziona solo su un nemico che dorme. Chi lo usa riceve metà dei PS persi dal nemico.", }, - "poisonGas": { - name: "Poison Gas", - effect: "A cloud of poison gas is sprayed in the face of opposing Pokémon, poisoning those it hits." + poisonGas: { + name: "Velenogas", + effect: "Spruzza in faccia al nemico una nuvola di gas tossico che avvelena.", }, - "barrage": { - name: "Barrage", - effect: "Round objects are hurled at the target to strike two to five times in a row." + barrage: { + name: "Attacco Pioggia", + effect: "Piovono enormi sfere sulla testa del nemico da due a cinque volte di fila.", }, - "leechLife": { - name: "Leech Life", - effect: "The user drains the target's blood. The user's HP is restored by half the damage taken by the target." + leechLife: { + name: "Sanguisuga", + effect: "Mossa succhiasangue. Chi la usa recupera una quantità di PS pari alla metà del danno inferto.", }, - "lovelyKiss": { - name: "Lovely Kiss", - effect: "With a scary face, the user tries to force a kiss on the target. If it succeeds, the target falls asleep." + lovelyKiss: { + name: "Demonbacio", + effect: "Chi la usa intimidisce il bersaglio con una faccia paurosa e gli schiocca un bacio che lo fa addormentare.", }, - "skyAttack": { - name: "Sky Attack", - effect: "A second-turn attack move where critical hits land more easily. This may also make the target flinch." + skyAttack: { + name: "Aeroattacco", + effect: "Un attacco in due turni e probabile brutto colpo. Può anche far tentennare il nemico.", }, - "transform": { - name: "Transform", - effect: "The user transforms into a copy of the target right down to having the same move set." + transform: { + name: "Trasformazione", + effect: "Chi la usa si trasforma in una copia esatta del bersaglio per sfruttarne le caratteristiche.", }, - "bubble": { - name: "Bubble", - effect: "A spray of countless bubbles is jetted at the opposing Pokémon. This may also lower their Speed stat." + bubble: { + name: "Bolla", + effect: "Uno spruzzo di bolle viene lanciato sul nemico. Può ridurne la velocità.", }, - "dizzyPunch": { - name: "Dizzy Punch", - effect: "The target is hit with rhythmically launched punches. This may also leave the target confused." + dizzyPunch: { + name: "Stordipugno", + effect: "Colpisce il bersaglio con una sequenza di pugni che può anche confonderlo.", }, - "spore": { - name: "Spore", - effect: "The user scatters bursts of spores that induce sleep." + spore: { + name: "Spora", + effect: "Nube di spore che fa sempre addormentare il bersaglio.", }, - "flash": { + flash: { name: "Flash", - effect: "The user flashes a bright light that cuts the target's accuracy." + effect: "Il Pokémon usa un lampo di luce contro il nemico riducendone la precisione. Può essere usata per illuminare luoghi oscuri.", }, - "psywave": { - name: "Psywave", - effect: "The target is attacked with an odd psychic wave. The attack varies in intensity." + psywave: { + name: "Psiconda", + effect: "Il nemico è attaccato con una strana onda di energia. L'intensità dell'attacco è variabile.", }, - "splash": { + splash: { name: "Splash", - effect: "The user just flops and splashes around to no effect at all..." + effect: "Chi la usa sguazza nell'acqua, senza ottenere alcun effetto.", }, - "acidArmor": { - name: "Acid Armor", - effect: "The user alters its cellular structure to liquefy itself, sharply raising its Defense stat." + acidArmor: { + name: "Scudo Acido", + effect: "Il Pokémon modifica la sua struttura cellulare liquefandosi, per aumentare esponenzialmente la sua difesa.", }, - "crabhammer": { - name: "Crabhammer", - effect: "The target is hammered with a large pincer. Critical hits land more easily." + crabhammer: { + name: "Martellata", + effect: "Colpisce il nemico con una grande tenaglia. Probabile brutto colpo.", }, - "explosion": { - name: "Explosion", - effect: "The user attacks everything around it by causing a tremendous explosion. The user faints upon using this move." + explosion: { + name: "Esplosione", + effect: "Chi la usa esplode per infliggere danni agli altri Pokémon attorno, ma va KO.", }, - "furySwipes": { - name: "Fury Swipes", - effect: "The target is raked with sharp claws or scythes quickly two to five times in a row." + furySwipes: { + name: "Sfuriate", + effect: "Colpisce il nemico con artigli o falci affilate da due a cinque volte in rapida successione.", }, - "bonemerang": { - name: "Bonemerang", - effect: "The user throws the bone it holds. The bone loops around to hit the target twice—coming and going." + bonemerang: { + name: "Ossomerang", + effect: "Chi la usa lancia l'osso che tiene. L'osso colpisce due volte e ritorna come un vero e proprio boomerang.", }, - "rest": { - name: "Rest", - effect: "The user goes to sleep for two turns. This fully restores the user's HP and heals any status conditions." + rest: { + name: "Riposo", + effect: "Il Pokémon si addormenta per due turni per curare tutti i PS e qualsiasi problema di stato.", }, - "rockSlide": { - name: "Rock Slide", - effect: "Large boulders are hurled at opposing Pokémon to inflict damage. This may also make the opposing Pokémon flinch." + rockSlide: { + name: "Frana", + effect: "I nemici vengono colpiti da grandi massi che possono anche farli tentennare.", }, - "hyperFang": { - name: "Hyper Fang", - effect: "The user bites hard on the target with its sharp front fangs. This may also make the target flinch." + hyperFang: { + name: "Iperzanna", + effect: "Il Pokémon morde il nemico con zanne taglienti. Può anche farlo tentennare.", }, - "sharpen": { - name: "Sharpen", - effect: "The user makes its edges more jagged, which raises its Attack stat." + sharpen: { + name: "Affilatore", + effect: "Chi la usa riduce il numero di poligoni sul proprio corpo per accentuarne gli spigoli e aumentare l'Attacco.", }, - "conversion": { - name: "Conversion", - effect: "The user changes its type to become the same type as the move at the top of the list of moves it knows." + conversion: { + name: "Conversione", + effect: "Il tipo di chi la usa muta in quello di una sua mossa a caso.", }, - "triAttack": { - name: "Tri Attack", - effect: "The user strikes with a simultaneous three-beam attack. This may also burn, freeze, or paralyze the target." + triAttack: { + name: "Tripletta", + effect: "Colpisce il nemico con tre sfere simultanee che possono anche paralizzarlo, scottarlo o congelarlo.", }, - "superFang": { - name: "Super Fang", - effect: "The user chomps hard on the target with its sharp front fangs. This cuts the target's HP in half." + superFang: { + name: "Superzanna", + effect: "Chi la usa salta sul nemico azzannandolo con i suoi incisivi affilati e facendogli perdere metà dei PS.", }, - "slash": { - name: "Slash", - effect: "The target is attacked with a slash of claws or blades. Critical hits land more easily." + slash: { + name: "Lacerazione", + effect: "Attacca il nemico con artigli, falci o altro. Probabile brutto colpo.", }, - "substitute": { - name: "Substitute", - effect: "The user creates a substitute for itself using some of its HP. The substitute serves as the user's decoy." + substitute: { + name: "Sostituto", + effect: "Chi la usa crea una copia di se stesso usando alcuni PS. La copia serve come esca per il nemico.", }, - "struggle": { - name: "Struggle", - effect: "This attack is used in desperation only if the user has no PP. It also damages the user a little." + struggle: { + name: "Scontro", + effect: "Mossa da usare solo in caso estremo, quando non si hanno più PP. Danneggia anche chi la usa.", }, - "sketch": { - name: "Sketch", - effect: "It enables the user to permanently learn the move last used by the target. Once used, Sketch disappears." + sketch: { + name: "Schizzo", + effect: "Permette a chi la usa di imparare l'ultima mossa usata dal bersaglio. La nuova mossa appresa sostituisce Schizzo.", }, - "tripleKick": { - name: "Triple Kick", - effect: "A consecutive three-kick attack that becomes more powerful with each successful hit." + tripleKick: { + name: "Triplocalcio", + effect: "Chi la usa esegue fino a tre calci consecutivi la cui potenza aumenta ad ogni colpo.", }, - "thief": { - name: "Thief", - effect: "The user attacks and has a 30% chance to steal the target's held item simultaneously." + thief: { + name: "Furto", + effect: "Il Pokémon attacca e contemporaneamente ruba lo strumento tenuto dal nemico. Non ruberà nulla, se si possiede già uno strumento.", }, - "spiderWeb": { - name: "Spider Web", - effect: "The user ensnares the target with thin, gooey silk so it can't flee from battle." + spiderWeb: { + name: "Ragnatela", + effect: "Copre il nemico con un filo di seta sottile e appiccicoso. Il nemico non può fuggire.", }, - "mindReader": { - name: "Mind Reader", - effect: "The user senses the target's movements with its mind to ensure its next attack does not miss the target." + mindReader: { + name: "Leggimente", + effect: "Il Pokémon percepisce i movimenti del nemico con la mente per garantire il successo della mossa successiva.", }, - "nightmare": { - name: "Nightmare", - effect: "A sleeping target sees a nightmare that inflicts some damage every turn." + nightmare: { + name: "Incubo", + effect: "Il nemico addormentato ha un incubo e perde PS ad ogni turno.", }, - "flameWheel": { - name: "Flame Wheel", - effect: "The user cloaks itself in fire and charges at the target. This may also leave the target with a burn." + flameWheel: { + name: "Ruotafuoco", + effect: "Il Pokémon si avvolge nel fuoco e carica il nemico. Può scottare.", }, - "snore": { - name: "Snore", - effect: "This attack can be used only if the user is asleep. The harsh noise may also make the target flinch." + snore: { + name: "Russare", + effect: "Mossa da usare solo mentre si dorme. Il chiasso assordante può anche far tentennare il nemico.", }, - "curse": { - name: "Curse", - effect: "A move that works differently for the Ghost type than for all other types." + curse: { + name: "Maledizione", + effect: "Una mossa che agisce in modo diverso se chi la usa è di tipo Spettro.", }, - "flail": { - name: "Flail", - effect: "The user flails about aimlessly to attack. The less HP the user has, the greater the move's power." + flail: { + name: "Flagello", + effect: "Chi la usa si dimena per attaccare. È più efficace se i suoi PS sono bassi.", }, - "conversion2": { - name: "Conversion 2", - effect: "The user changes its type to make itself resistant to the type of the attack the target used last." + conversion2: { + name: "Conversione2", + effect: "Chi la usa cambia tipo per rendersi resistente al tipo dell'ultima mossa usata dal bersaglio.", }, - "aeroblast": { - name: "Aeroblast", - effect: "A vortex of air is shot at the target to inflict damage. Critical hits land more easily." + aeroblast: { + name: "Aerocolpo", + effect: "Colpisce il nemico con un vortice d'aria per danneggiarlo. Probabile brutto colpo.", }, - "cottonSpore": { - name: "Cotton Spore", - effect: "The user releases cotton-like spores that cling to opposing Pokémon, which harshly lowers their Speed stats." + cottonSpore: { + name: "Cottonspora", + effect: "Rilascia spore simili al cotone che si attaccano ai nemici nei paraggi e ne riducono di molto la Velocità.", }, - "reversal": { - name: "Reversal", - effect: "An all-out attack that becomes more powerful the less HP the user has." + reversal: { + name: "Contropiede", + effect: "Chi la usa attacca con tutte le sue forze. Più i PS sono bassi, maggiore è la potenza di questa mossa.", }, - "spite": { - name: "Spite", - effect: "The user unleashes its grudge on the move last used by the target by cutting 4 PP from it." + spite: { + name: "Dispetto", + effect: "Chi la usa sfoga la propria rabbia sull'ultima mossa usata dal bersaglio e le sottrae quattro PP.", }, - "powderSnow": { - name: "Powder Snow", - effect: "The user attacks with a chilling gust of powdery snow. This may also freeze opposing Pokémon." + powderSnow: { + name: "Polneve", + effect: "Attacca il nemico con una raffica di neve farinosa e può anche congelarlo.", }, - "protect": { - name: "Protect", - effect: "This move enables the user to protect itself from all attacks. Its chance of failing rises if it is used in succession." + protect: { + name: "Protezione", + effect: "Permette di eludere tutti gli attacchi. Se usata in successione può fallire.", }, - "machPunch": { - name: "Mach Punch", - effect: "The user throws a punch at blinding speed. This move always goes first." + machPunch: { + name: "Pugnorapido", + effect: "Chi la usa tira un pugno a velocità impressionante e colpisce di sicuro per primo.", }, - "scaryFace": { - name: "Scary Face", - effect: "The user frightens the target with a scary face to harshly lower its Speed stat." + scaryFace: { + name: "Visotruce", + effect: "Chi la usa spaventa il nemico con una faccia terribile e ne riduce di molto la Velocità.", }, - "feintAttack": { - name: "Feint Attack", - effect: "The user approaches the target disarmingly, then throws a sucker punch. This attack never misses." + feintAttack: { + name: "Finta", + effect: "Chi la usa si avvicina al nemico facendo finta di niente, per poi scagliare un pugno infallibile a tradimento.", }, - "sweetKiss": { - name: "Sweet Kiss", - effect: "The user kisses the target with a sweet, angelic cuteness that causes confusion." + sweetKiss: { + name: "Dolcebacio", + effect: "Chi la usa bacia il nemico con una dolcezza angelica, confondendolo.", }, - "bellyDrum": { - name: "Belly Drum", - effect: "The user maximizes its Attack stat in exchange for HP equal to half its max HP." + bellyDrum: { + name: "Panciamburo", + effect: "Chi la usa massimizza l'Attacco in cambio di metà dei PS massimi.", }, - "sludgeBomb": { - name: "Sludge Bomb", - effect: "Unsanitary sludge is hurled at the target. This may also poison the target." + sludgeBomb: { + name: "Fangobomba", + effect: "Chi la usa attacca lanciando fango sul bersaglio. Può anche avvelenarlo.", }, - "mudSlap": { - name: "Mud-Slap", - effect: "The user hurls mud in the target's face to inflict damage and lower its accuracy." + mudSlap: { + name: "Fangosberla", + effect: "Chi la usa butta fango in faccia al nemico per arrecargli danni e ridurne la precisione.", }, - "octazooka": { + octazooka: { name: "Octazooka", - effect: "The user attacks by spraying ink in the target's face or eyes. This may also lower the target's accuracy." + effect: "Chi la usa spruzza del'inchiostro in faccia al nemico. Può anche ridurne la precisione.", }, - "spikes": { - name: "Spikes", - effect: "The user lays a trap of spikes at the opposing team's feet. The trap hurts Pokémon that switch into battle." + spikes: { + name: "Punte", + effect: "Chi la usa piazza sul terreno una trappola di punte che danneggia i nemici quando scendono in campo.", }, - "zapCannon": { - name: "Zap Cannon", - effect: "The user fires an electric blast like a cannon to inflict damage and cause paralysis." + zapCannon: { + name: "Falcecannone", + effect: "Chi la usa provoca un'esplosione elettrica che infligge danni e paralizza il nemico.", }, - "foresight": { - name: "Foresight", - effect: "Enables a Ghost-type target to be hit by Normal- and Fighting-type attacks. This also enables an evasive target to be hit." + foresight: { + name: "Preveggenza", + effect: "Chi la usa rende i Pokémon di tipo Spettro vulnerabili a qualsiasi tipo di mossa e può, inoltre, colpire i nemici sfuggenti.", }, - "destinyBond": { - name: "Destiny Bond", - effect: "After using this move, if the user faints, the Pokémon that landed the knockout hit also faints. Its chance of failing rises if it is used in succession." + destinyBond: { + name: "Destinobbligato", + effect: "Se chi la usa va KO prima del proprio turno, chi ha sferrato il colpo da KO fa la stessa fine.", }, - "perishSong": { - name: "Perish Song", - effect: "Any Pokémon that hears this song faints in three turns, unless it switches out of battle." + perishSong: { + name: "Ultimocanto", + effect: "Ogni Pokémon che sente questo canto va KO in tre turni, se non lo si sostituisce.", }, - "icyWind": { - name: "Icy Wind", - effect: "The user attacks with a gust of chilled air. This also lowers opposing Pokémon's Speed stats." + icyWind: { + name: "Ventogelato", + effect: "Chi la usa attacca i nemici con una folata di aria gelida e ne riduce anche la Velocità.", }, - "detect": { - name: "Detect", - effect: "This move enables the user to protect itself from all attacks. Its chance of failing rises if it is used in succession." + detect: { + name: "Individua", + effect: "Consente al Pokémon di evitare tutti gli attacchi. Può fallire se usato in successione.", }, - "boneRush": { - name: "Bone Rush", - effect: "The user strikes the target with a hard bone two to five times in a row." + boneRush: { + name: "Ossoraffica", + effect: "Chi la usa colpisce il nemico con un osso duro, da 2 a 5 volte di fila.", }, - "lockOn": { - name: "Lock-On", - effect: "The user takes sure aim at the target. This ensures the next attack does not miss the target." + lockOn: { + name: "Localizza", + effect: "Chi la usa punta il nemico con precisione. La mossa successiva andrà a segno.", }, - "outrage": { - name: "Outrage", - effect: "The user rampages and attacks for two to three turns. The user then becomes confused." + outrage: { + name: "Oltraggio", + effect: "Chi la usa sfoga la sua ira e attacca il nemico per due o tre turni prima di essere lasciato in preda alla confusione.", }, - "sandstorm": { - name: "Sandstorm", - effect: "A five-turn sandstorm is summoned to hurt all combatants except Rock, Ground, and Steel types. It raises the Sp. Def stat of Rock types." + sandstorm: { + name: "Terrempesta", + effect: "Causa una tempesta di sabbia per cinque turni che danneggia tutti i tipi in campo esclusi Terra, Roccia e Acciaio.", }, - "gigaDrain": { - name: "Giga Drain", - effect: "A nutrient-draining attack. The user's HP is restored by half the damage taken by the target." + gigaDrain: { + name: "Gigassorbimento", + effect: "Mossa che assorbe PS. Chi la usa recupera un quantità di PS pari alla metà del danno inferto.", }, - "endure": { - name: "Endure", - effect: "The user endures any attack with at least 1 HP. Its chance of failing rises if it is used in succession." + endure: { + name: "Resistenza", + effect: "Chi la usa resta con un PS anche se subisce un colpo da KO in quel turno. Usata in successione può fallire.", }, - "charm": { - name: "Charm", - effect: "The user gazes at the target rather charmingly, making it less wary. This harshly lowers the target's Attack stat." + charm: { + name: "Fascino", + effect: "Ammalia il nemico con lo sguardo per renderlo meno cauto. Riduce molto l'Attacco del nemico.", }, - "rollout": { - name: "Rollout", - effect: "The user continually rolls into the target over five turns. It becomes more powerful each time it hits." + rollout: { + name: "Rotolamento", + effect: "Chi la usa colpisce il nemico rotolando per cinque turni, con aumento progressivo della potenza ogni volta che va a segno.", }, - "falseSwipe": { - name: "False Swipe", - effect: "A restrained attack that prevents the target from fainting. The target is left with at least 1 HP." + falseSwipe: { + name: "Falsofinale", + effect: "Chi la usa trattiene il colpo per impedire al nemico di andare KO, lasciandolo con almeno un PS.", }, - "swagger": { - name: "Swagger", - effect: "The user enrages and confuses the target. However, this also sharply raises the target's Attack stat." + swagger: { + name: "Bullo", + effect: "Chi la usa provoca il bersaglio e lo confonde, facendo aumentare però di molto il suo Attacco.", }, - "milkDrink": { - name: "Milk Drink", - effect: "The user restores its own HP by up to half of its max HP." + milkDrink: { + name: "Buonlatte", + effect: "Chi la usa recupera metà dei propri PS massimi. Fuori dalla lotta può anche far trasferire PS ai propri compagni.", }, - "spark": { - name: "Spark", - effect: "The user throws an electrically charged tackle at the target. This may also leave the target with paralysis." + spark: { + name: "Scintilla", + effect: "Colpisce il nemico con una carica elettrica e può anche paralizzarlo.", }, - "furyCutter": { - name: "Fury Cutter", - effect: "The target is slashed with scythes or claws. This attack becomes more powerful if it hits in succession." + furyCutter: { + name: "Tagliofuria", + effect: "Colpisce il nemico con falci o artigli. Se usata in successione aumenta di potenza ogni volta che va a segno.", }, - "steelWing": { - name: "Steel Wing", - effect: "The target is hit with wings of steel. This may also raise the user's Defense stat." + steelWing: { + name: "Alacciaio", + effect: "Colpisce il nemico con ali d'acciaio. Può anche aumentare la Difesa di chi la usa.", }, - "meanLook": { - name: "Mean Look", - effect: "The user pins the target with a dark, arresting look. The target becomes unable to flee." + meanLook: { + name: "Malosguardo", + effect: "Chi la usa blocca il nemico con uno sguardo oscuro e ammaliante, impedendogli la fuga.", }, - "attract": { - name: "Attract", - effect: "If it is the opposite gender of the user, the target becomes infatuated and less likely to attack." + attract: { + name: "Attrazione", + effect: "Se il nemico è del sesso opposto, s'infatua e attacca con meno probabilità.", }, - "sleepTalk": { - name: "Sleep Talk", - effect: "While it is asleep, the user randomly uses one of the moves it knows." + sleepTalk: { + name: "Sonnolalia", + effect: "Chi la usa sfodera a caso una delle proprie mosse mentre sta dormendo.", }, - "healBell": { - name: "Heal Bell", - effect: "The user makes a soothing bell chime to heal the status conditions of all the party Pokémon." + healBell: { + name: "Rintoccasana", + effect: "Chi la usa fa suonare le campane per curare completamente tutta la squadra.", }, - "return": { - name: "Return", - effect: "This full-power attack grows more powerful the more the user likes its Trainer." + return: { + name: "Ritorno", + effect: "Mossa che diventa tanto più potente quanto maggiore è il grado di affezione del Pokémon per il proprio Allenatore.", }, - "present": { - name: "Present", - effect: "The user attacks by giving the target a gift with a hidden trap. It restores HP sometimes, however." + present: { + name: "Regalino", + effect: "Chi la usa dà un regalo bomba al bersaglio. A volte, però, può fargli recuperare PS.", }, - "frustration": { - name: "Frustration", - effect: "This full-power attack grows more powerful the less the user likes its Trainer." + frustration: { + name: "Frustrazione", + effect: "Mossa che diventa tanto più potente quanto minore è il grado di affezione del Pokémon per il proprio Allenatore.", }, - "safeguard": { - name: "Safeguard", - effect: "The user creates a protective field that prevents status conditions for five turns." + safeguard: { + name: "Salvaguardia", + effect: "Chi la usa crea un campo protettivo che difende tutta la squadra dai problemi di stato per cinque turni.", }, - "painSplit": { - name: "Pain Split", - effect: "The user adds its HP to the target's HP, then equally shares the combined HP with the target." + painSplit: { + name: "Malcomune", + effect: "Chi la usa somma i propri PS a quelli di un altro Pokémon per poi dividerli in parti uguali.", }, - "sacredFire": { - name: "Sacred Fire", - effect: "The target is razed with a mystical fire of great intensity. This may also leave the target with a burn." + sacredFire: { + name: "Magifuoco", + effect: "Colpisce il nemico con un fuoco mistico di enorme intensità che può anche causargli una scottatura.", }, - "magnitude": { - name: "Magnitude", - effect: "The user attacks everything around it with a ground-shaking quake. Its power varies." + magnitude: { + name: "Magnitudo", + effect: "Chi la usa scatena un terremoto d'intensità variabile che danneggia gli altri Pokémon in campo.", }, - "dynamicPunch": { - name: "Dynamic Punch", - effect: "The user punches the target with full, concentrated power. This confuses the target if it hits." + dynamicPunch: { + name: "Dinamipugno", + effect: "Colpisce il nemico con un pugno davvero forte. Se va a segno, lo confonde.", }, - "megahorn": { - name: "Megahorn", - effect: "Using its tough and impressive horn, the user rams into the target with no letup." + megahorn: { + name: "Megacorno", + effect: "Chi la usa utilizza il suo corno per montare con grande forza il nemico.", }, - "dragonBreath": { - name: "Dragon Breath", - effect: "The user exhales a mighty gust that inflicts damage. This may also leave the target with paralysis." + dragonBreath: { + name: "Dragospiro", + effect: "Investe il nemico con una raffica potentissima che arreca danni. Può anche paralizzarlo.", }, - "batonPass": { - name: "Baton Pass", - effect: "The user switches places with a party Pokémon in waiting and passes along any stat changes." + batonPass: { + name: "Staffetta", + effect: "Chi la usa è sostituito da un Pokémon della squadra, che eredita anche ogni modifica alle statistiche.", }, - "encore": { - name: "Encore", - effect: "The user compels the target to keep using the move it encored for three turns." + encore: { + name: "Ripeti", + effect: "Chi la usa costringe il nemico a continuare ad utilizzare solo l'ultima mossa utilizzata da 2 a 6 turni.", }, - "pursuit": { - name: "Pursuit", - effect: "The power of this attack move is doubled if it's used on a target that's switching out of battle." + pursuit: { + name: "Inseguimento", + effect: "Una mossa d'attacco che infligge un danno doppio se il nemico è in fase di sostituzione.", }, - "rapidSpin": { - name: "Rapid Spin", - effect: "A spin attack that can also eliminate such moves as Bind, Wrap, and Leech Seed. This also raises the user's Speed stat." + rapidSpin: { + name: "Rapigiro", + effect: "Un attacco roteante che elimina gli effetti delle mosse Legatutto, Avvolgibotta, Parassiseme e Punte.", }, - "sweetScent": { - name: "Sweet Scent", - effect: "A sweet scent that harshly lowers opposing Pokémon's evasiveness." + sweetScent: { + name: "Profumino", + effect: "Un dolce profumo che alletta il nemico per ridurne l'elusione. Attira anche Pokémon selvatici.", }, - "ironTail": { - name: "Iron Tail", - effect: "The target is slammed with a steel-hard tail. This may also lower the target's Defense stat." + ironTail: { + name: "Codacciaio", + effect: "Il nemico viene colpito da una robusta coda d'acciaio. Può anche ridurne la Difesa.", }, - "metalClaw": { - name: "Metal Claw", - effect: "The target is raked with steel claws. This may also raise the user's Attack stat." + metalClaw: { + name: "Ferrartigli", + effect: "Colpisce il nemico con artigli d'acciaio. Può anche aumentare l'Attacco di chi la usa.", }, - "vitalThrow": { - name: "Vital Throw", - effect: "The user attacks last. In return, this throw move never misses." + vitalThrow: { + name: "Vitaltiro", + effect: "Chi la usa attacca per ultimo, ma il colpo è sempre infallibile.", }, - "morningSun": { - name: "Morning Sun", - effect: "The user restores its own HP. The amount of HP regained varies with the weather." + morningSun: { + name: "Mattindoro", + effect: "Chi la usa recupera PS. Il numero di PS recuperati dipende dalle condizioni atmosferiche.", }, - "synthesis": { - name: "Synthesis", - effect: "The user restores its own HP. The amount of HP regained varies with the weather." + synthesis: { + name: "Sintesi", + effect: "Chi la usa recupera PS. Il numero di PS recuperati dipende dalle condizioni atmosferiche.", }, - "moonlight": { - name: "Moonlight", - effect: "The user restores its own HP. The amount of HP regained varies with the weather." + moonlight: { + name: "Lucelunare", + effect: "Chi la usa recupera PS. Il numero di PS recuperati dipende dalle condizioni atmosferiche.", }, - "hiddenPower": { - name: "Hidden Power", - effect: "A unique attack that varies in type depending on the Pokémon using it." + hiddenPower: { + name: "Introforza", + effect: "Mossa singolare che cambia tipo e potenza a seconda del Pokémon che la usa.", }, - "crossChop": { - name: "Cross Chop", - effect: "The user delivers a double chop with its forearms crossed. Critical hits land more easily." + crossChop: { + name: "Incrocolpo", + effect: "Investe il nemico con un colpo sferrato con entrambe le braccia incrociate. Probabile brutto colpo.", }, - "twister": { - name: "Twister", - effect: "The user whips up a vicious tornado to tear at opposing Pokémon. This may also make them flinch." + twister: { + name: "Tornado", + effect: "Un potente tornado si abbatte sul nemico. Può anche far tentennare.", }, - "rainDance": { - name: "Rain Dance", - effect: "The user summons a heavy rain that falls for five turns, powering up Water-type moves. It lowers the power of Fire-type moves." + rainDance: { + name: "Pioggiadanza", + effect: "Chi la usa provoca una forte pioggia per cinque turni, potenziando le mosse di tipo Acqua.", }, - "sunnyDay": { - name: "Sunny Day", - effect: "The user intensifies the sun for five turns, powering up Fire-type moves. It lowers the power of Water-type moves." + sunnyDay: { + name: "Giornodisole", + effect: "Chi la usa intensifica i raggi solari per cinque turni, potenziando le mosse di tipo Fuoco.", }, - "crunch": { - name: "Crunch", - effect: "The user crunches up the target with sharp fangs. This may also lower the target's Defense stat." + crunch: { + name: "Sgranocchio", + effect: "Il nemico viene morso con denti affilati. Può anche ridurne la Difesa.", }, - "mirrorCoat": { - name: "Mirror Coat", - effect: "A retaliation move that counters any special attack, inflicting double the damage taken." + mirrorCoat: { + name: "Specchiovelo", + effect: "Mossa che replica ogni attacco speciale, arrecando il doppio del danno ricevuto.", }, - "psychUp": { - name: "Psych Up", - effect: "The user hypnotizes itself into copying any stat change made by the target." + psychUp: { + name: "Psicamisù", + effect: "Chi la usa s'ipnotizza per copiare ogni modifica alle statistiche del bersaglio.", }, - "extremeSpeed": { - name: "Extreme Speed", - effect: "The user charges the target at blinding speed. This move always goes first." + extremeSpeed: { + name: "Extrarapido", + effect: "Chi la usa carica il nemico a velocità impressionante ed attacca sempre per primo.", }, - "ancientPower": { - name: "Ancient Power", - effect: "The user attacks with a prehistoric power. This may also raise all the user's stats at once." + ancientPower: { + name: "Forzantica", + effect: "Colpisce il nemico con una forza primordiale. Può aumentare tutte le statistiche.", }, - "shadowBall": { - name: "Shadow Ball", - effect: "The user hurls a shadowy blob at the target. This may also lower the target's Sp. Def stat." + shadowBall: { + name: "Palla Ombra", + effect: "Lancia sul nemico una sfera nera. Può anche ridurne la Difesa Speciale.", }, - "futureSight": { - name: "Future Sight", - effect: "Two turns after this move is used, a hunk of psychic energy attacks the target." + futureSight: { + name: "Divinazione", + effect: "Due turni dopo l'utilizzo di questa mossa, il nemico viene attaccato con energia psichica.", }, - "rockSmash": { - name: "Rock Smash", - effect: "The user attacks with a punch. This may also lower the target's Defense stat." + rockSmash: { + name: "Spaccaroccia", + effect: "Il nemico viene colpito da un pugno in grado di frantumare anche la roccia. Può anche ridurne la Difesa.", }, - "whirlpool": { - name: "Whirlpool", - effect: "The user traps the target in a violent swirling whirlpool for four to five turns." + whirlpool: { + name: "Mulinello", + effect: "Intrappola il nemico in un turbine d'acqua che dura per quattro o cinque turni infliggendogli dei danni ogni turno.", }, - "beatUp": { - name: "Beat Up", - effect: "The user gets all party Pokémon to attack the target. The more party Pokémon, the greater the number of attacks." + beatUp: { + name: "Picchiaduro", + effect: "Chi la usa chiama in aiuto i Pokémon della squadra: più ce ne sono, maggiore è il numero di attacchi.", }, - "fakeOut": { - name: "Fake Out", - effect: "This attack hits first and makes the target flinch. It only works the first turn each time the user enters battle." + fakeOut: { + name: "Bruciapelo", + effect: "Mossa che fa agire per primo e fa tentennare il nemico. Funziona solo appena sceso in campo.", }, - "uproar": { - name: "Uproar", - effect: "The user attacks in an uproar for three turns. During that time, no Pokémon can fall asleep." + uproar: { + name: "Baraonda", + effect: "Chi la usa attacca per tre turni con un frastuono che non fa dormire nessuno.", }, - "stockpile": { - name: "Stockpile", - effect: "The user charges up power and raises both its Defense and Sp. Def stats. The move can be used three times." + stockpile: { + name: "Accumulo", + effect: "Chi la usa accumula energia aumentando la Difesa e la Difesa Speciale. Si può utilizzare tre volte.", }, - "spitUp": { - name: "Spit Up", - effect: "The power stored using the move Stockpile is released at once in an attack. The more power is stored, the greater the move's power." + spitUp: { + name: "Sfoghenergia", + effect: "Tutta l'energia accumulata in precedenza con Accumulo è rilasciata nell'attacco. Maggiore è l'energia, più danni si arrecano.", }, - "swallow": { - name: "Swallow", - effect: "The power stored using the move Stockpile is absorbed by the user to heal its HP. Storing more power heals more HP." + swallow: { + name: "Introenergia", + effect: "Chi la usa assorbe l'energia raccolta con la mossa Accumulo e recupera PS. Maggiore è l'energia, più PS si recuperano.", }, - "heatWave": { - name: "Heat Wave", - effect: "The user attacks by exhaling hot breath on opposing Pokémon. This may also leave those Pokémon with a burn." + heatWave: { + name: "Ondacalda", + effect: "Chi la usa investe i nemici con una folata di vento caldo. Può anche scottare.", }, - "hail": { - name: "Hail", - effect: "The user summons a hailstorm lasting five turns. It damages all Pokémon except Ice types." + hail: { + name: "Grandine", + effect: "Chi la usa causa una grandinata che dura cinque turni. Danneggia tutti i Pokémon tranne quelli di tipo Ghiaccio.", }, - "torment": { - name: "Torment", - effect: "The user torments and enrages the target, making it incapable of using the same move twice in a row." + torment: { + name: "Attaccalite", + effect: "Chi la usa tormenta e fa infuriare il nemico, impedendogli di usare la stessa mossa due volte di seguito.", }, - "flatter": { - name: "Flatter", - effect: "Flattery is used to confuse the target. However, this also raises the target's Sp. Atk stat." + flatter: { + name: "Adulazione", + effect: "Adula il bersaglio e lo confonde, ma ne aumenta l'Attacco Speciale.", }, - "willOWisp": { - name: "Will-O-Wisp", - effect: "The user shoots a sinister flame at the target to inflict a burn." + willOWisp: { + name: "Fuocofatuo", + effect: "Fiamme intense di colore viola causano una scottatura al nemico.", }, - "memento": { + memento: { name: "Memento", - effect: "The user faints when using this move. In return, this harshly lowers the target's Attack and Sp. Atk stats." + effect: "Chi la usa va KO. Tuttavia, riduce di molto l'Attacco e l'Attacco Speciale del nemico.", }, - "facade": { - name: "Facade", - effect: "This attack move doubles its power if the user is poisoned, burned, or paralyzed." + facade: { + name: "Facciata", + effect: "Mossa d'attacco che raddoppia la potenza se chi la usa è scottato, avvelenato o paralizzato.", }, - "focusPunch": { - name: "Focus Punch", - effect: "The user focuses its mind before launching a punch. This move fails if the user is hit before it is used." + focusPunch: { + name: "Centripugno", + effect: "Chi la usa prende la mira prima di sferrare un pugno. Fallirà se verrà colpito prima di eseguire la mossa.", }, - "smellingSalts": { - name: "Smelling Salts", - effect: "This attack's power is doubled when used on a target with paralysis. This also cures the target's paralysis, however." + smellingSalts: { + name: "Maniereforti", + effect: "Infligge un danno doppio ad un bersaglio paralizzato, ma ne cura anche la paralisi.", }, - "followMe": { - name: "Follow Me", - effect: "The user draws attention to itself, making all targets take aim only at the user." + followMe: { + name: "Sonoqui", + effect: "Chi la usa attrae l'attenzione su di sé, costringendo i nemici a sceglierlo sempre come bersaglio.", }, - "naturePower": { - name: "Nature Power", - effect: "This attack makes use of nature's power. Its effects vary depending on the user's environment." + naturePower: { + name: "Naturforza", + effect: "Mossa che fa uso della forza della natura. Il suo effetto varia in base all'ambiente.", }, - "charge": { - name: "Charge", - effect: "The user boosts the power of the Electric move it uses on the next turn. This also raises the user's Sp. Def stat." + charge: { + name: "Sottocarica", + effect: "Potenzia la mossa di tipo Elettro usata subito dopo. Aumenta anche la Difesa Speciale di chi la usa.", }, - "taunt": { - name: "Taunt", - effect: "The target is taunted into a rage that allows it to use only attack moves for three turns." + taunt: { + name: "Provocazione", + effect: "Provoca il nemico, inducendolo ad usare solo mosse d'attacco per tre turni.", }, - "helpingHand": { - name: "Helping Hand", - effect: "The user assists an ally by boosting the power of that ally's attack." + helpingHand: { + name: "Altruismo", + effect: "Mossa che aumenta la potenza dell'attacco di un alleato.", }, - "trick": { - name: "Trick", - effect: "The user catches the target off guard and swaps its held item with its own." + trick: { + name: "Raggiro", + effect: "Chi la usa coglie il bersaglio in contropiede e l'obbliga a cambiare il suo strumento con il proprio.", }, - "rolePlay": { - name: "Role Play", - effect: "The user mimics the target completely, copying the target's Ability." + rolePlay: { + name: "Giocodiruolo", + effect: "Chi la usa mima in tutto il bersaglio, copiandone l'abilità.", }, - "wish": { - name: "Wish", - effect: "One turn after this move is used, the user's or its replacement's HP is restored by half the user's max HP." + wish: { + name: "Desiderio", + effect: "Permette di recuperare metà dei PS massimi al turno successivo.", }, - "assist": { - name: "Assist", - effect: "The user hurriedly and randomly uses a move among those known by ally Pokémon." + assist: { + name: "Assistente", + effect: "Chi la usa utilizza in fretta e a caso una delle mosse degli altri Pokémon della squadra.", }, - "ingrain": { - name: "Ingrain", - effect: "The user lays roots that restore its HP on every turn. Because it's rooted, it can't switch out." + ingrain: { + name: "Radicamento", + effect: "Chi la usa mette delle radici che gli fanno recuperare PS a ogni turno. Non può essere sostituito.", }, - "superpower": { - name: "Superpower", - effect: "The user attacks the target with great power. However, this also lowers the user's Attack and Defense stats." + superpower: { + name: "Troppoforte", + effect: "Chi la usa attacca il nemico con grande forza, ma il suo Attacco e la sua Difesa diminuiscono.", }, - "magicCoat": { - name: "Magic Coat", - effect: "Moves like Leech Seed and moves that inflict status conditions are blocked by a barrier and reflected back to the user of those moves." + magicCoat: { + name: "Magivelo", + effect: "Una barriera rimanda al mittente l'effetto di mosse come Parassiseme e di mosse che influenzano lo stato.", }, - "recycle": { - name: "Recycle", - effect: "The user recycles a held item that has been used in battle so it can be used again." + recycle: { + name: "Riciclo", + effect: "Chi la usa ricicla uno strumento tenuto, già usato nella lotta, e lo può riutilizzare.", }, - "revenge": { - name: "Revenge", - effect: "This attack move's power is doubled if the user has been hurt by the opponent in the same turn." + revenge: { + name: "Vendetta", + effect: "Mossa d'attacco che infligge un danno doppio se si è stati colpiti dal nemico nello stesso turno.", }, - "brickBreak": { - name: "Brick Break", - effect: "The user attacks with a swift chop. It can also break barriers, such as Light Screen and Reflect." + brickBreak: { + name: "Breccia", + effect: "Colpisce il nemico con una mano e rompe barriere come Riflesso e Schermoluce.", }, - "yawn": { - name: "Yawn", - effect: "The user lets loose a huge yawn that lulls the target into falling asleep on the next turn." + yawn: { + name: "Sbadiglio", + effect: "Chi la usa fa un grande sbadiglio che addormenta il nemico al turno seguente.", }, - "knockOff": { - name: "Knock Off", - effect: "The user slaps down the target's held item, and that item can't be used in that battle. The move does more damage if the target has a held item." + knockOff: { + name: "Privazione", + effect: "Attacco che blocca anche lo strumento tenuto dal nemico, impedendone l'uso nella lotta.", }, - "endeavor": { - name: "Endeavor", - effect: "This attack move cuts down the target's HP to equal the user's HP." + endeavor: { + name: "Rimonta", + effect: "Attacco che riduce i PS del nemico a una quantità pari ai PS di chi la usa.", }, - "eruption": { - name: "Eruption", - effect: "The user attacks opposing Pokémon with explosive fury. The lower the user's HP, the lower the move's power." + eruption: { + name: "Eruzione", + effect: "Attacco impetuoso ed esplosivo la cui potenza è proporzionale ai PS di chi lo usa.", }, - "skillSwap": { - name: "Skill Swap", - effect: "The user employs its psychic power to exchange Abilities with the target." + skillSwap: { + name: "Baratto", + effect: "Chi la usa sfrutta le sue facoltà mentali per scambiare l'abilità con il bersaglio.", }, - "imprison": { - name: "Imprison", - effect: "If opposing Pokémon know any move also known by the user, they are prevented from using it." + imprison: { + name: "Esclusiva", + effect: "Chi la usa impedisce al nemico di usare mosse che conoscono entrambi.", }, - "refresh": { - name: "Refresh", - effect: "The user rests to cure itself of poisoning, a burn, or paralysis." + refresh: { + name: "Rinfrescata", + effect: "Chi la usa riposa per curarsi da avvelenamento, paralisi e scottatura.", }, - "grudge": { - name: "Grudge", - effect: "If the user faints, the user's grudge fully depletes the PP of the opponent's move that knocked it out." + grudge: { + name: "Rancore", + effect: "Se chi la usa va KO, i PP della mossa nemica che lo ha messo fuori gioco si azzerano.", }, - "snatch": { - name: "Snatch", - effect: "The user steals the effects of any attempts to use a healing or stat-changing move." + snatch: { + name: "Scippo", + effect: "Chi la usa ruba e utilizza la mossa curativa o modifica-statistiche che il bersaglio stava per usare.", }, - "secretPower": { - name: "Secret Power", - effect: "The additional effects of this attack depend upon where it was used." + secretPower: { + name: "Forzasegreta", + effect: "Attacco che può avere un effetto aggiuntivo a seconda del luogo in cui si trova chi lo usa.", }, - "dive": { - name: "Dive", - effect: "Diving on the first turn, the user floats up and attacks on the next turn." + dive: { + name: "Sub", + effect: "Chi la usa si tuffa in acqua per emergere e attaccare al turno seguente. Fuori dalla lotta permette di immergersi sott'acqua.", }, - "armThrust": { - name: "Arm Thrust", - effect: "The user lets loose a flurry of open-palmed arm thrusts that hit two to five times in a row." + armThrust: { + name: "Sberletese", + effect: "Raffica di ceffoni che colpisce da due a cinque volte di fila.", }, - "camouflage": { - name: "Camouflage", - effect: "The user's type is changed depending on its environment, such as at water's edge, in grass, or in a cave." + camouflage: { + name: "Camuffamento", + effect: "Modifica il tipo di chi la usa a seconda del luogo, ad esempio sull'acqua, nell'erba o in una grotta.", }, - "tailGlow": { - name: "Tail Glow", - effect: "The user stares at flashing lights to focus its mind, drastically raising its Sp. Atk stat." + tailGlow: { + name: "Codadiluce", + effect: "Chi la usa fissa una luce forte per concentrarsi e aumentare moltissimo l'Attacco Speciale.", }, - "lusterPurge": { - name: "Luster Purge", - effect: "The user lets loose a damaging burst of light. This may also lower the target's Sp. Def stat." + lusterPurge: { + name: "Abbagliante", + effect: "Chi la usa scatena un'esplosione abbagliante che può anche ridurre la Difesa Speciale del Pokémon colpito.", }, - "mistBall": { - name: "Mist Ball", - effect: "A mist-like flurry of down envelops and damages the target. This may also lower the target's Sp. Atk stat." + mistBall: { + name: "Foschisfera", + effect: "Una sfera coperta di nebbia danneggia il nemico. Può anche ridurre l'Attacco Speciale.", }, - "featherDance": { - name: "Feather Dance", - effect: "The user covers the target's body with a mass of down that harshly lowers its Attack stat." + featherDance: { + name: "Danzadipiume", + effect: "Chi la usa copre il nemico con un manto di piume che riduce di molto il suo Attacco.", }, - "teeterDance": { - name: "Teeter Dance", - effect: "The user performs a wobbly dance that confuses the Pokémon around it." + teeterDance: { + name: "Strampadanza", + effect: "Chi la usa esegue una danza goffa che confonde tutti i Pokémon attorno.", }, - "blazeKick": { - name: "Blaze Kick", - effect: "The user launches a kick that lands a critical hit more easily. This may also leave the target with a burn." + blazeKick: { + name: "Calciardente", + effect: "Chi la usa tira un calcio. Probabile brutto colpo. Può anche causare una scottatura.", }, - "mudSport": { - name: "Mud Sport", - effect: "The user kicks up mud on the battlefield. This weakens Electric-type moves for five turns." + mudSport: { + name: "Fangata", + effect: "Chi la usa si ricopre di fango indebolendo le mosse di tipo Elettro finché resta in campo.", }, - "iceBall": { - name: "Ice Ball", - effect: "The user attacks the target for five turns. The move's power increases each time it hits." + iceBall: { + name: "Palla Gelo", + effect: "Chi la usa attacca il nemico rotolando per cinque turni, con aumento progressivo della potenza ogni volta che va a segno.", }, - "needleArm": { - name: "Needle Arm", - effect: "The user attacks by wildly swinging its thorny arms. This may also make the target flinch." + needleArm: { + name: "Pugnospine", + effect: "Chi la usa attacca colpendo il bersaglio con i suoi arti pieni di spine. Può far tentennare il Pokémon colpito.", }, - "slackOff": { - name: "Slack Off", - effect: "The user slacks off, restoring its own HP by up to half of its max HP." + slackOff: { + name: "Pigro", + effect: "Chi la usa si rilassa recuperando metà dei propri PS massimi.", }, - "hyperVoice": { - name: "Hyper Voice", - effect: "The user lets loose a horribly echoing shout with the power to inflict damage." + hyperVoice: { + name: "Granvoce", + effect: "Chi la usa lancia un urlo straziante che danneggia i nemici.", }, - "poisonFang": { - name: "Poison Fang", - effect: "The user bites the target with toxic fangs. This may also leave the target badly poisoned." + poisonFang: { + name: "Velenodenti", + effect: "Chi la usa morde il nemico con denti avvelenati che possono anche iperavvelenarlo.", }, - "crushClaw": { - name: "Crush Claw", - effect: "The user slashes the target with hard and sharp claws. This may also lower the target's Defense stat." + crushClaw: { + name: "Tritartigli", + effect: "Colpisce il nemico con artigli robusti e affilati che possono ridurne la Difesa.", }, - "blastBurn": { - name: "Blast Burn", - effect: "The target is razed by a fiery explosion. The user can't move on the next turn." + blastBurn: { + name: "Incendio", + effect: "Potente esplosione che danneggia il nemico, ma fa saltare il turno successivo a chi la provoca.", }, - "hydroCannon": { - name: "Hydro Cannon", - effect: "The target is hit with a watery blast. The user can't move on the next turn." + hydroCannon: { + name: "Idrocannone", + effect: "Colpisce il nemico con un potente getto d'acqua. Chi la usa salta il turno successivo.", }, - "meteorMash": { - name: "Meteor Mash", - effect: "The target is hit with a hard punch fired like a meteor. This may also raise the user's Attack stat." + meteorMash: { + name: "Meteorpugno", + effect: "Colpisce il nemico con un pugno veloce come una meteora. Può far pure salire l'Attacco di chi la usa.", }, - "astonish": { - name: "Astonish", - effect: "The user attacks the target while shouting in a startling fashion. This may also make the target flinch." + astonish: { + name: "Sgomento", + effect: "Chi la usa attacca il bersaglio emettendo un verso terrificante. Può anche farlo tentennare.", }, - "weatherBall": { - name: "Weather Ball", - effect: "This attack move varies in power and type depending on the weather." + weatherBall: { + name: "Palla Clima", + effect: "Mossa d'attacco che varia tipo e forza in base alle condizioni atmosferiche.", }, - "aromatherapy": { - name: "Aromatherapy", - effect: "The user releases a soothing scent that heals all status conditions affecting the user's party." + aromatherapy: { + name: "Aromaterapia", + effect: "Chi la usa rilascia un dolce profumo che cura tutti problemi di stato propri e degli alleati.", }, - "fakeTears": { - name: "Fake Tears", - effect: "The user feigns crying to fluster the target, harshly lowering its Sp. Def stat." + fakeTears: { + name: "Falselacrime", + effect: "Chi la usa inscena un pianto teatrale per commuovere il nemico. Ne riduce di molto la Difesa Speciale.", }, - "airCutter": { - name: "Air Cutter", - effect: "The user launches razor-like wind to slash opposing Pokémon. Critical hits land more easily." + airCutter: { + name: "Aerasoio", + effect: "Chi la usa provoca un vento tagliente che sferza i nemici. Probabile brutto colpo.", }, - "overheat": { - name: "Overheat", - effect: "The user attacks the target at full power. The attack's recoil harshly lowers the user's Sp. Atk stat." + overheat: { + name: "Vampata", + effect: "Chi la usa sferra un potente attacco, ma il contraccolpo riduce di molto il suo Attacco Speciale.", }, - "odorSleuth": { - name: "Odor Sleuth", - effect: "Enables a Ghost-type target to be hit by Normal- and Fighting-type attacks. This also enables an evasive target to be hit." + odorSleuth: { + name: "Segugio", + effect: "Chi la usa rende i Pokémon di tipo Spettro vulnerabili a qualsiasi tipo di mossa e può, inoltre, colpire i nemici sfuggenti.", }, - "rockTomb": { - name: "Rock Tomb", - effect: "Boulders are hurled at the target. This also lowers the target's Speed stat by preventing its movement." + rockTomb: { + name: "Rocciotomba", + effect: "Colpisce il nemico con rocce. Inoltre, lo rallenta riducendone la Velocità.", }, - "silverWind": { - name: "Silver Wind", - effect: "The target is attacked with powdery scales blown by the wind. This may also raise all the user's stats." + silverWind: { + name: "Ventargenteo", + effect: "Attacca con un forte vento di polvere di squame. Tutte le statistiche di chi la usa possono salire.", }, - "metalSound": { - name: "Metal Sound", - effect: "A horrible sound like scraping metal harshly lowers the target's Sp. Def stat." + metalSound: { + name: "Ferrostrido", + effect: "Orribile stridio, simile a quello prodotto dal metallo, che riduce di molto la Difesa Speciale del nemico.", }, - "grassWhistle": { - name: "Grass Whistle", - effect: "The user plays a pleasant melody that lulls the target into a deep sleep." + grassWhistle: { + name: "Meloderba", + effect: "Una dolce melodia culla il bersaglio e lo costringe ad addormentarsi.", }, - "tickle": { - name: "Tickle", - effect: "The user tickles the target into laughing, reducing its Attack and Defense stats." + tickle: { + name: "Solletico", + effect: "Chi la usa solletica il nemico e lo fa ridere, riducendo il suo Attacco e la sua Difesa.", }, - "cosmicPower": { - name: "Cosmic Power", - effect: "The user absorbs a mystical power from space to raise its Defense and Sp. Def stats." + cosmicPower: { + name: "Cosmoforza", + effect: "Chi la usa assorbe una forza mistica dallo spazio che aumenta la Difesa e la Difesa Speciale.", }, - "waterSpout": { - name: "Water Spout", - effect: "The user spouts water to damage opposing Pokémon. The lower the user's HP, the lower the move's power." + waterSpout: { + name: "Zampillo", + effect: "Lancia un getto d'acqua contro il nemico che ha davanti e quelli adiacenti. La potenza è proporzionale al numero di PS di chi la usa.", }, - "signalBeam": { - name: "Signal Beam", - effect: "The user attacks with a sinister beam of light. This may also confuse the target." + signalBeam: { + name: "Segnoraggio", + effect: "Chi la usa attacca con uno strano raggio di luce che può anche confondere il Pokémon colpito.", }, - "shadowPunch": { - name: "Shadow Punch", - effect: "The user throws a punch from the shadows. This attack never misses." + shadowPunch: { + name: "Pugnodombra", + effect: "Il nemico riceve un pugno proveniente dalle tenebre. Questa mossa è infallibile.", }, - "extrasensory": { - name: "Extrasensory", - effect: "The user attacks with an odd, unseeable power. This may also make the target flinch." + extrasensory: { + name: "Extrasenso", + effect: "Chi la usa attacca con una misteriosa forza invisibile. Può far tentennare il nemico.", }, - "skyUppercut": { - name: "Sky Uppercut", - effect: "The user attacks the target with an uppercut thrown skyward with force." + skyUppercut: { + name: "Stramontante", + effect: "Chi la usa attacca il nemico con un montante che può arrivare fino in cielo.", }, - "sandTomb": { - name: "Sand Tomb", - effect: "The user traps the target inside a harshly raging sandstorm for four to five turns." + sandTomb: { + name: "Sabbiotomba", + effect: "Chi la usa intrappola il nemico in un turbine di sabbia per quattro o cinque turni.", }, - "sheerCold": { - name: "Sheer Cold", - effect: "The target faints instantly. It's less likely to hit the target if it's used by Pokémon other than Ice types." + sheerCold: { + name: "Purogelo", + effect: "Ondata di freddo penetrante che, se va a segno, fa andare KO il nemico.", }, - "muddyWater": { - name: "Muddy Water", - effect: "The user attacks by shooting muddy water at opposing Pokémon. This may also lower their accuracy." + muddyWater: { + name: "Fanghiglia", + effect: "Chi la usa attacca con un getto di fango che può anche ridurre la precisione dei nemici.", }, - "bulletSeed": { - name: "Bullet Seed", - effect: "The user forcefully shoots seeds at the target two to five times in a row." + bulletSeed: { + name: "Semitraglia", + effect: "Chi la usa spara da due a cinque raffiche di semi contro il bersaglio in successione.", }, - "aerialAce": { - name: "Aerial Ace", - effect: "The user confounds the target with speed, then slashes. This attack never misses." + aerialAce: { + name: "Aeroassalto", + effect: "Chi la usa attacca il nemico a grande velocità. Questa mossa è infallibile.", }, - "icicleSpear": { - name: "Icicle Spear", - effect: "The user launches sharp icicles at the target two to five times in a row." + icicleSpear: { + name: "Gelolancia", + effect: "Chi la usa spara ghiaccioli affilati contro il nemico da due a cinque volte di fila.", }, - "ironDefense": { - name: "Iron Defense", - effect: "The user hardens its body's surface like iron, sharply raising its Defense stat." + ironDefense: { + name: "Ferroscudo", + effect: "Il corpo di chi la usa si indurisce come il ferro, facendone salire di molto la Difesa.", }, - "block": { - name: "Block", - effect: "The user blocks the target's way with arms spread wide to prevent escape." + block: { + name: "Blocco", + effect: "Chi la usa sbarra la strada al nemico impedendone la fuga o la sostituzione.", }, - "howl": { - name: "Howl", - effect: "The user howls loudly to raise the spirit of itself and allies. This raises their Attack stats." + howl: { + name: "Gridodilotta", + effect: "Chi la usa emette un verso molto forte per darsi coraggio e aumentare l'Attacco.", }, - "dragonClaw": { - name: "Dragon Claw", - effect: "The user slashes the target with huge sharp claws." + dragonClaw: { + name: "Dragartigli", + effect: "Chi la usa attacca con artigli affilati che graffiano il nemico rapidamente e con grande forza.", }, - "frenzyPlant": { - name: "Frenzy Plant", - effect: "The user slams the target with the roots of an enormous tree. The user can't move on the next turn." + frenzyPlant: { + name: "Radicalbero", + effect: "Un groviglio di radici colpisce il nemico. Chi la usa salta il turno successivo.", }, - "bulkUp": { - name: "Bulk Up", - effect: "The user tenses its muscles to bulk up its body, raising both its Attack and Defense stats." + bulkUp: { + name: "Granfisico", + effect: "Chi la usa tende i muscoli per gonfiare il corpo, aumentando Difesa e Attacco.", }, - "bounce": { - name: "Bounce", - effect: "The user bounces up high, then drops on the target on the second turn. This may also leave the target with paralysis." + bounce: { + name: "Rimbalzo", + effect: "Chi la usa balza in alto e ricade sul nemico dopo un turno. Può anche paralizzare.", }, - "mudShot": { - name: "Mud Shot", - effect: "The user attacks by hurling a blob of mud at the target. This also lowers the target's Speed stat." + mudShot: { + name: "Colpodifango", + effect: "Chi la usa attacca lanciando fango sul nemico. Riduce anche la Velocità.", }, - "poisonTail": { - name: "Poison Tail", - effect: "The user hits the target with its tail. This may also poison the target. Critical hits land more easily." + poisonTail: { + name: "Velenocoda", + effect: "Chi la usa colpisce con la coda e può avvelenare il nemico. Probabile brutto colpo.", }, - "covet": { - name: "Covet", - effect: "The user endearingly approaches the target, then has a 30% chance to steal the target's held item." + covet: { + name: "Supplica", + effect: "Chi la usa attacca il bersaglio sorridendo e gli ruba lo strumento che tiene.", }, - "voltTackle": { - name: "Volt Tackle", - effect: "The user electrifies itself and charges the target. This also damages the user quite a lot. This attack may leave the target with paralysis." + voltTackle: { + name: "Locomovolt", + effect: "Chi la usa si carica di elettricità e poi attacca. Può paralizzare il nemico. Il contraccolpo causa seri danni.", }, - "magicalLeaf": { - name: "Magical Leaf", - effect: "The user scatters curious leaves that chase the target. This attack never misses." + magicalLeaf: { + name: "Fogliamagica", + effect: "Chi la usa sparpaglia strane foglie che inseguono il bersaglio. Questa mossa è infallibile.", }, - "waterSport": { - name: "Water Sport", - effect: "The user soaks the battlefield with water. This weakens Fire-type moves for five turns." + waterSport: { + name: "Docciascudo", + effect: "Chi la usa s'impregna d'acqua indebolendo le mosse di tipo Fuoco finché resta in campo.", }, - "calmMind": { - name: "Calm Mind", - effect: "The user quietly focuses its mind and calms its spirit to raise its Sp. Atk and Sp. Def stats." + calmMind: { + name: "Calmamente", + effect: "Chi la usa, meditando, placa il proprio spirito per aumentare l'Attacco Speciale e la Difesa Speciale.", }, - "leafBlade": { - name: "Leaf Blade", - effect: "The user handles a sharp leaf like a sword and attacks by cutting its target. Critical hits land more easily." + leafBlade: { + name: "Fendifoglia", + effect: "Colpisce il nemico usando una foglia affilata come una spada. Probabile brutto colpo.", }, - "dragonDance": { - name: "Dragon Dance", - effect: "The user vigorously performs a mystic, powerful dance that raises its Attack and Speed stats." + dragonDance: { + name: "Dragodanza", + effect: "Danza mistica e vigorosa che aumenta l'Attacco e la Velocità di chi la usa.", }, - "rockBlast": { - name: "Rock Blast", - effect: "The user hurls hard rocks at the target. Two to five rocks are launched in a row." + rockBlast: { + name: "Cadutamassi", + effect: "Colpisce il nemico con dei massi pesanti lanciati in rapida successione. Il numero di massi varia da due a cinque.", }, - "shockWave": { - name: "Shock Wave", - effect: "The user strikes the target with a quick jolt of electricity. This attack never misses." + shockWave: { + name: "Ondashock", + effect: "Chi la usa colpisce il nemico con una scossa di elettricità. È impossibile eludere questa mossa.", }, - "waterPulse": { - name: "Water Pulse", - effect: "The user attacks the target with a pulsing blast of water. This may also confuse the target." + waterPulse: { + name: "Idropulsar", + effect: "Il nemico viene colpito da un getto d'acqua potentissimo che può anche confonderlo.", }, - "doomDesire": { - name: "Doom Desire", - effect: "Two turns after this move is used, a concentrated bundle of light blasts the target." + doomDesire: { + name: "Desiderio Fatale", + effect: "Intensa luce solare che colpisce il nemico dopo due turni dall'uso della mossa.", }, - "psychoBoost": { - name: "Psycho Boost", - effect: "The user attacks the target at full power. The attack's recoil harshly lowers the user's Sp. Atk stat." + psychoBoost: { + name: "Psicoslancio", + effect: "Chi la usa sferra un potente attacco, ma il contraccolpo riduce di molto il suo Attacco Speciale.", }, - "roost": { - name: "Roost", - effect: "The user lands and rests its body. This move restores the user's HP by up to half of its max HP." + roost: { + name: "Trespolo", + effect: "Chi la usa sta fermo e riposa, recuperando metà dei propri PS massimi.", }, - "gravity": { - name: "Gravity", - effect: "This move enables Flying-type Pokémon or Pokémon with the Levitate Ability to be hit by Ground-type moves. Moves that involve flying can't be used." + gravity: { + name: "Gravità", + effect: "Intensifica la gravità per cinque turni. Le mosse che fanno volare e Levitazione sono inutilizzabili.", }, - "miracleEye": { - name: "Miracle Eye", - effect: "Enables a Dark-type target to be hit by Psychic-type attacks. This also enables an evasive target to be hit." + miracleEye: { + name: "Miracolvista", + effect: "Chi la usa rende i Pokémon di tipo Buio vulnerabili a qualsiasi tipo di mossa e può, inoltre, colpire i nemici sfuggenti.", }, - "wakeUpSlap": { - name: "Wake-Up Slap", - effect: "This attack inflicts big damage on a sleeping target. This also wakes the target up, however." + wakeUpSlap: { + name: "Svegliopacca", + effect: "Un attacco che infligge doppi danni se il nemico è Addormentato. Inoltre, lo sveglierà dal sonno.", }, - "hammerArm": { - name: "Hammer Arm", - effect: "The user swings and hits with its strong, heavy fist. It lowers the user's Speed, however." + hammerArm: { + name: "Martelpugno", + effect: "Chi la usa colpisce il nemico con il suo pugno forte e pesante, ma perde Velocità.", }, - "gyroBall": { - name: "Gyro Ball", - effect: "The user tackles the target with a high-speed spin. The slower the user compared to the target, the greater the move's power." + gyroBall: { + name: "Vortexpalla", + effect: "Chi la usa colpisce il nemico con un vortice rapidissimo. Più lento è chi la usa, maggiore è il danno.", }, - "healingWish": { - name: "Healing Wish", - effect: "The user faints. In return, the Pokémon taking its place will have its HP restored and status conditions cured." + healingWish: { + name: "Curardore", + effect: "Chi la usa va KO, ma il Pokémon che lo sostituisce recupera tutti i PS e risolve i problemi di stato.", }, - "brine": { - name: "Brine", - effect: "If the target's HP is half or less, this attack will hit with double the power." + brine: { + name: "Acquadisale", + effect: "Se i PS del nemico sono scesi a metà o meno, questa mossa colpirà con il doppio della potenza.", }, - "naturalGift": { - name: "Natural Gift", - effect: "The user draws power to attack by using its held Berry. The Berry determines the move's type and power." + naturalGift: { + name: "Dononaturale", + effect: "Chi la usa trae forza dalla Bacca che tiene. Da questa dipendono il tipo e la forza dell'attacco.", }, - "feint": { - name: "Feint", - effect: "This attack hits a target using a move such as Protect or Detect. This also lifts the effects of those moves." + feint: { + name: "Fintoattacco", + effect: "Un attacco che colpisce un nemico che ha usato Protezione od Individua. Ne rimuoverà inoltre gli effetti.", }, - "pluck": { - name: "Pluck", - effect: "The user pecks the target. If the target is holding a Berry, the user eats it and gains its effect." + pluck: { + name: "Spennata", + effect: "Chi la usa becca il bersaglio. Inoltre, se questi tiene una Bacca, gliela ruba e ne sfrutta gli effetti.", }, - "tailwind": { - name: "Tailwind", - effect: "The user whips up a turbulent whirlwind that ups the Speed stats of the user and its allies for four turns." + tailwind: { + name: "Ventoincoda", + effect: "Chi la usa crea turbolente raffiche di vento che aumentano la sua Velocità e quella di tutti i Pokémon della squadra.", }, - "acupressure": { - name: "Acupressure", - effect: "The user applies pressure to stress points, sharply boosting one of its or its allies' stats." + acupressure: { + name: "Acupressione", + effect: "Chi la usa esercita pressione su alcuni punti nevralgici e aumenta di molto una statistica a caso.", }, - "metalBurst": { - name: "Metal Burst", - effect: "The user retaliates with much greater force against the opponent that last inflicted damage on it." + metalBurst: { + name: "Metalscoppio", + effect: "Chi la usa si vendica sul nemico che l'ha appena ferito con una mossa anche più potente.", }, - "uTurn": { - name: "U-turn", - effect: "After making its attack, the user rushes back to switch places with a party Pokémon in waiting." + uTurn: { + name: "Retromarcia", + effect: "Dopo aver selezionato questo attacco, chi la usa colpisce il nemico per poi essere sostituito con un altro Pokémon della squadra.", }, - "closeCombat": { - name: "Close Combat", - effect: "The user fights the target up close without guarding itself. This also lowers the user's Defense and Sp. Def stats." + closeCombat: { + name: "Zuffa", + effect: "Chi la usa attacca abbassando la guardia. La propria Difesa e la Difesa Speciale si riducono.", }, - "payback": { - name: "Payback", - effect: "The user stores power, then attacks. If the user moves after the target, this attack's power will be doubled." + payback: { + name: "Rivincita", + effect: "Chi la usa accumula forza, poi attacca. La potenza raddoppia se agisce dopo il Pokémon nemico.", }, - "assurance": { - name: "Assurance", - effect: "If the target has already taken some damage in the same turn, this attack's power is doubled." + assurance: { + name: "Garanzia", + effect: "Se il nemico ha già subito dei danni nello stesso turno, la potenza di questa mossa raddoppia.", }, - "embargo": { - name: "Embargo", - effect: "This move prevents the target from using its held item for five turns. Its Trainer is also prevented from using items on it." + embargo: { + name: "Divieto", + effect: "Impedisce al nemico di usare lo strumento che tiene e al suo Allenatore di usarne altri sul Pokémon.", }, - "fling": { - name: "Fling", - effect: "The user flings its held item at the target to attack. This move's power and effects depend on the item." + fling: { + name: "Lancio", + effect: "Chi la usa lancia sul nemico lo strumento che tiene. La forza e l'effetto dipendono dallo strumento.", }, - "psychoShift": { - name: "Psycho Shift", - effect: "Using its psychic power of suggestion, the user transfers its status conditions to the target." + psychoShift: { + name: "Psicotrasfer", + effect: "Con la forza psichica e la suggestione, chi la usa può trasferire i suoi problemi di stato al Pokémon colpito.", }, - "trumpCard": { - name: "Trump Card", - effect: "The fewer PP this move has, the greater its power." + trumpCard: { + name: "Asso", + effect: "Minori PP rimangono a questa mossa, e maggiori danni apporterà al nemico.", }, - "healBlock": { - name: "Heal Block", - effect: "For five turns, the user prevents the opposing team from using any moves, Abilities, or held items that recover HP." + healBlock: { + name: "Anticura", + effect: "Chi la usa impedisce al nemico di utilizzare mosse o abilità recupera-PS per cinque turni.", }, - "wringOut": { - name: "Wring Out", - effect: "The user powerfully wrings the target. The more HP the target has, the greater the move's power." + wringOut: { + name: "Strizzata", + effect: "Chi la usa stritola con forza il nemico. Più PS ha il nemico, maggiore è la potenza della mossa.", }, - "powerTrick": { - name: "Power Trick", - effect: "The user employs its psychic power to switch its Attack stat with its Defense stat." + powerTrick: { + name: "Ingannoforza", + effect: "Mossa psichica che permette a chi la usa di scambiare i valori delle sue statistiche di Attacco e Difesa.", }, - "gastroAcid": { - name: "Gastro Acid", - effect: "The user hurls up its stomach acids on the target. The fluid eliminates the effect of the target's Ability." + gastroAcid: { + name: "Gastroacido", + effect: "Chi la usa lancia acidi gastrici sul nemico. Il fluido annulla l'abilità del nemico.", }, - "luckyChant": { - name: "Lucky Chant", - effect: "The user chants an incantation toward the sky, preventing opposing Pokémon from landing critical hits for five turns." + luckyChant: { + name: "Fortuncanto", + effect: "Chi la usa rivolge un incantesimo al cielo, impedendo al nemico di sferrare brutti colpi alla squadra.", }, - "meFirst": { - name: "Me First", - effect: "The user cuts ahead of the target to copy and use the target's intended move with greater power. This move fails if it isn't used first." + meFirst: { + name: "Precedenza", + effect: "Se chi la usa è più veloce del nemico, gli ruba la mossa e gliela ritorce contro con potenza persino maggiore.", }, - "copycat": { - name: "Copycat", - effect: "The user mimics the move used immediately before it. The move fails if no other move has been used yet." + copycat: { + name: "Copione", + effect: "Chi la usa imita l'ultima mossa usata dal nemico. La mossa fallisce se questo non ha selezionato alcuna mossa.", }, - "powerSwap": { - name: "Power Swap", - effect: "The user employs its psychic power to switch changes to its Attack and Sp. Atk stats with the target." + powerSwap: { + name: "Barattoforza", + effect: "Chi la usa sfrutta la sua forza psichica per scambiare le modifiche ad Attacco e Attacco Speciale con il bersaglio.", }, - "guardSwap": { - name: "Guard Swap", - effect: "The user employs its psychic power to switch changes to its Defense and Sp. Def stats with the target." + guardSwap: { + name: "Barattoscudo", + effect: "Chi la usa sfrutta la sua forza psichica per scambiare le modifiche a Difesa e a Difesa Speciale con il bersaglio.", }, - "punishment": { - name: "Punishment", - effect: "The more the target has powered up with stat changes, the greater the move's power." + punishment: { + name: "Punizione", + effect: "Questa mossa diventa più potente ogni volta che il nemico aumenta le proprie statistiche.", }, - "lastResort": { - name: "Last Resort", - effect: "This move can be used only after the user has used all the other moves it knows in the battle." + lastResort: { + name: "Ultimascelta", + effect: "Per usare questa mossa, bisogna prima avvalersi in lotta di tutte le altre mosse conosciute.", }, - "worrySeed": { - name: "Worry Seed", - effect: "A seed that causes worry is planted on the target. It prevents sleep by making the target's Ability Insomnia." + worrySeed: { + name: "Affannoseme", + effect: "Un seme che causa ansia viene piantato sul bersaglio. Ne muta l'abilità in Insonnia e ne previene o rimuove il sonno.", }, - "suckerPunch": { - name: "Sucker Punch", - effect: "This move enables the user to attack first. This move fails if the target is not readying an attack." + suckerPunch: { + name: "Sbigoattacco", + effect: "Chi la usa può attaccare per primo. Fallisce se il nemico non sta preparando un attacco.", }, - "toxicSpikes": { - name: "Toxic Spikes", - effect: "The user lays a trap of poison spikes at the feet of the opposing team. The spikes will poison opposing Pokémon that switch into battle." + toxicSpikes: { + name: "Fielepunte", + effect: "Chi la usa piazza ai piedi del nemico delle punte avvelenate. Avvelena ogni nemico che entra in lotta.", }, - "heartSwap": { - name: "Heart Swap", - effect: "The user employs its psychic power to switch stat changes with the target." + heartSwap: { + name: "Cuorbaratto", + effect: "Chi la usa sfrutta la sua forza psichica per scambiare le modifiche alle statistiche con il bersaglio.", }, - "aquaRing": { - name: "Aqua Ring", - effect: "The user envelops itself in a veil made of water. It regains some HP every turn." + aquaRing: { + name: "Acquanello", + effect: "Chi la usa si avvolge in un velo d'acqua. Recupera alcuni PS ad ogni turno.", }, - "magnetRise": { - name: "Magnet Rise", - effect: "The user levitates using electrically generated magnetism for five turns." + magnetRise: { + name: "Magnetascesa", + effect: "Chi la usa si solleva in aria per cinque turni grazie a un campo elettromagnetico.", }, - "flareBlitz": { - name: "Flare Blitz", - effect: "The user cloaks itself in fire and charges the target. This also damages the user quite a lot. This attack may leave the target with a burn." + flareBlitz: { + name: "Fuococarica", + effect: "Chi la usa si ricopre di fuoco e carica il bersaglio, ma subisce il contraccolpo. Può anche scottare.", }, - "forcePalm": { - name: "Force Palm", - effect: "The target is attacked with a shock wave. This may also leave the target with paralysis." + forcePalm: { + name: "Palmoforza", + effect: "Chi la usa attacca con un'onda d'urto che può anche paralizzare il bersaglio.", }, - "auraSphere": { - name: "Aura Sphere", - effect: "The user lets loose a blast of aura power from deep within its body at the target. This attack never misses." + auraSphere: { + name: "Sferapulsar", + effect: "Chi la usa rilascia una forza eterea dal profondo del corpo. La mossa è infallibile.", }, - "rockPolish": { - name: "Rock Polish", - effect: "The user polishes its body to reduce drag. This sharply raises the Speed stat." + rockPolish: { + name: "Lucidatura", + effect: "Chi la usa leviga il proprio corpo per ridurne l'attrito. Aumenta di molto la Velocità.", }, - "poisonJab": { - name: "Poison Jab", - effect: "The target is stabbed with a tentacle, arm, or the like steeped in poison. This may also poison the target." + poisonJab: { + name: "Velenpuntura", + effect: "Il nemico viene colpito con un tentacolo od un braccio intriso di veleno. Può anche avvelenarlo.", }, - "darkPulse": { - name: "Dark Pulse", - effect: "The user releases a horrible aura imbued with dark thoughts. This may also make the target flinch." + darkPulse: { + name: "Neropulsar", + effect: "Chi la usa emana un'aura impregnata di oscuri pensieri. Può anche far tentennare il Pokémon colpito.", }, - "nightSlash": { - name: "Night Slash", - effect: "The user slashes the target the instant an opportunity arises. Critical hits land more easily." + nightSlash: { + name: "Nottesferza", + effect: "Chi la usa colpisce il nemico appena si presenta l'occasione. Probabile brutto colpo.", }, - "aquaTail": { - name: "Aqua Tail", - effect: "The user attacks by swinging its tail as if it were a vicious wave in a raging storm." + aquaTail: { + name: "Idrondata", + effect: "Chi la usa attacca agitando la coda come se fosse una violenta ondata in una tempesta furiosa.", }, - "seedBomb": { - name: "Seed Bomb", - effect: "The user slams a barrage of hard-shelled seeds down on the target from above." + seedBomb: { + name: "Semebomba", + effect: "Chi la usa emette una raffica di semi dal guscio duro che colpiscono il bersaglio dall'alto.", }, - "airSlash": { - name: "Air Slash", - effect: "The user attacks with a blade of air that slices even the sky. This may also make the target flinch." + airSlash: { + name: "Eterelama", + effect: "Chi la usa attacca con un vento tagliente che squarcia il cielo. Può anche far tentennare il Pokémon colpito.", }, - "xScissor": { - name: "X-Scissor", - effect: "The user slashes at the target by crossing its scythes or claws as if they were a pair of scissors." + xScissor: { + name: "Forbice X", + effect: "Chi la usa colpisce il nemico usando le sue falci o artigli come se fossero un paio di forbici.", }, - "bugBuzz": { - name: "Bug Buzz", - effect: "The user generates a damaging sound wave by vibration. This may also lower the target's Sp. Def stat." + bugBuzz: { + name: "Ronzio", + effect: "Chi la usa muove le ali per creare un suono che danneggia il nemico. Può anche ridurne la Difesa Speciale.", }, - "dragonPulse": { - name: "Dragon Pulse", - effect: "The target is attacked with a shock wave generated by the user's gaping mouth." + dragonPulse: { + name: "Dragopulsar", + effect: "Chi la usa attacca un'onda d'urto generata spalancando la bocca.", }, - "dragonRush": { - name: "Dragon Rush", - effect: "The user tackles the target while exhibiting overwhelming menace. This may also make the target flinch." + dragonRush: { + name: "Dragofuria", + effect: "Chi la usa attacca con fare minaccioso e in questo modo può anche far tentennare il nemico.", }, - "powerGem": { - name: "Power Gem", - effect: "The user attacks with a ray of light that sparkles as if it were made of gemstones." + powerGem: { + name: "Gemmoforza", + effect: "Chi la usa attacca con un raggio di luce che brilla come se fosse fatto di pietre preziose.", }, - "drainPunch": { - name: "Drain Punch", - effect: "An energy-draining punch. The user's HP is restored by half the damage taken by the target." + drainPunch: { + name: "Assorbipugno", + effect: "Pugno che assorbe energia. Fa recuperare una quantità di PS pari alla metà del danno inferto.", }, - "vacuumWave": { - name: "Vacuum Wave", - effect: "The user whirls its fists to send a wave of pure vacuum at the target. This move always goes first." + vacuumWave: { + name: "Vuotonda", + effect: "Chi la usa rotea i pugni per lanciare un'onda di vuoto assoluto verso il nemico. Attacca per primo.", }, - "focusBlast": { - name: "Focus Blast", - effect: "The user heightens its mental focus and unleashes its power. This may also lower the target's Sp. Def stat." + focusBlast: { + name: "Focalcolpo", + effect: "Chi la usa incrementa la sua concentrazione mentale per scatenare il suo potere. Può ridurre la Difesa Speciale del nemico.", }, - "energyBall": { - name: "Energy Ball", - effect: "The user draws power from nature and fires it at the target. This may also lower the target's Sp. Def stat." + energyBall: { + name: "Energipalla", + effect: "Chi la usa attinge energia dalla natura e la scaglia contro il bersaglio. Può anche ridurne la Difesa Speciale.", }, - "braveBird": { - name: "Brave Bird", - effect: "The user tucks in its wings and charges from a low altitude. This also damages the user quite a lot." + braveBird: { + name: "Baldeali", + effect: "Chi la usa si nasconde sotto le ali e carica da bassa quota. Tuttavia, subisce considerevoli danni.", }, - "earthPower": { - name: "Earth Power", - effect: "The user makes the ground under the target erupt with power. This may also lower the target's Sp. Def stat." + earthPower: { + name: "Geoforza", + effect: "Dal terreno sotto il nemico si sprigiona una forza devastante. Può anche ridurne la Difesa Speciale.", }, - "switcheroo": { - name: "Switcheroo", - effect: "The user trades held items with the target faster than the eye can follow." + switcheroo: { + name: "Rapidscambio", + effect: "Chi la usa scambia in maniera fulminea il proprio oggetto con quello del nemico.", }, - "gigaImpact": { - name: "Giga Impact", - effect: "The user charges at the target using every bit of its power. The user can't move on the next turn." + gigaImpact: { + name: "Gigaimpatto", + effect: "Chi la usa carica il nemico usando tutta la sua forza, ma al turno successivo deve riposare.", }, - "nastyPlot": { - name: "Nasty Plot", - effect: "The user stimulates its brain by thinking bad thoughts. This sharply raises the user's Sp. Atk stat." + nastyPlot: { + name: "Congiura", + effect: "Chi la usa stimola il cervello pensando a cose cattive. Aumenta di molto l'Attacco Speciale.", }, - "bulletPunch": { - name: "Bullet Punch", - effect: "The user strikes the target with tough punches as fast as bullets. This move always goes first." + bulletPunch: { + name: "Pugnoscarica", + effect: "Chi la usa attacca con una scarica di pugni veloci come proiettili. Con questa mossa si colpisce per primi.", }, - "avalanche": { - name: "Avalanche", - effect: "The power of this attack move is doubled if the user has been hurt by the target in the same turn." + avalanche: { + name: "Slavina", + effect: "Un attacco che infligge doppi danni se l'utilizzatore ha subito un attacco nello stesso turno.", }, - "iceShard": { - name: "Ice Shard", - effect: "The user flash-freezes chunks of ice and hurls them at the target. This move always goes first." + iceShard: { + name: "Geloscheggia", + effect: "Chi la usa crea dei pezzi di ghiaccio e li lancia. Con questa mossa si colpisce per primi.", }, - "shadowClaw": { - name: "Shadow Claw", - effect: "The user slashes with a sharp claw made from shadows. Critical hits land more easily." + shadowClaw: { + name: "Ombrartigli", + effect: "Chi la usa attacca con artigli d'ombra che colpiscono con gran forza. Probabile brutto colpo.", }, - "thunderFang": { - name: "Thunder Fang", - effect: "The user bites with electrified fangs. This may also make the target flinch or leave it with paralysis." + thunderFang: { + name: "Fulmindenti", + effect: "Chi la usa morde con denti elettrificati che possono anche paralizzare o far tentennare il nemico.", }, - "iceFang": { - name: "Ice Fang", - effect: "The user bites with cold-infused fangs. This may also make the target flinch or leave it frozen." + iceFang: { + name: "Gelodenti", + effect: "Chi la usa morde il nemico con denti di ghiaccio. Può causare congelamento e tentennamento.", }, - "fireFang": { - name: "Fire Fang", - effect: "The user bites with flame-cloaked fangs. This may also make the target flinch or leave it with a burn." + fireFang: { + name: "Rogodenti", + effect: "Chi la usa morde il nemico con denti infuocati. Può causare scottatura e tentennamento.", }, - "shadowSneak": { - name: "Shadow Sneak", - effect: "The user extends its shadow and attacks the target from behind. This move always goes first." + shadowSneak: { + name: "Furtivombra", + effect: "Chi la usa estende la sua ombra e attacca il nemico alle spalle. Con questa mossa si colpisce per primi.", }, - "mudBomb": { - name: "Mud Bomb", - effect: "The user launches a hard-packed mud ball to attack. This may also lower the target's accuracy." + mudBomb: { + name: "Pantanobomba", + effect: "Chi la usa lancia dure palle di fango sul nemico. Può anche ridurne la Precisione.", }, - "psychoCut": { - name: "Psycho Cut", - effect: "The user tears at the target with blades formed by psychic power. Critical hits land more easily." + psychoCut: { + name: "Psicotaglio", + effect: "Chi la usa colpisce il nemico con lame fatte di forza psichica. Probabile brutto colpo.", }, - "zenHeadbutt": { - name: "Zen Headbutt", - effect: "The user focuses its willpower to its head and attacks the target. This may also make the target flinch." + zenHeadbutt: { + name: "Cozzata Zen", + effect: "Chi la usa concentra la forza nella testa e si lancia contro il nemico. Può anche farlo tentennare.", }, - "mirrorShot": { - name: "Mirror Shot", - effect: "The user lets loose a flash of energy at the target from its polished body. This may also lower the target's accuracy." + mirrorShot: { + name: "Cristalcolpo", + effect: "Chi la usa colpisce il nemico lanciando fasci d'energia dal suo corpo. Può ridurne la precisione.", }, - "flashCannon": { - name: "Flash Cannon", - effect: "The user gathers all its light energy and releases it all at once. This may also lower the target's Sp. Def stat." + flashCannon: { + name: "Cannonflash", + effect: "Chi la usa attacca raccogliendo e rilasciando energia luminosa. Può ridurre la Difesa Speciale del nemico.", }, - "rockClimb": { - name: "Rock Climb", - effect: "The user attacks the target by smashing into it with incredible force. This may also confuse the target." + rockClimb: { + name: "Scalaroccia", + effect: "Chi la usa carica con impeto incredibile. Il colpo può confondere il nemico.", }, - "defog": { - name: "Defog", - effect: "A strong wind blows away the target's barriers such as Reflect or Light Screen. This also lowers the target's evasiveness." + defog: { + name: "Scacciabruma", + effect: "Chi la usa spazza via barriere come Riflesso e Schermoluce con un forte vento e riduce la capacità d'elusione del nemico.", }, - "trickRoom": { - name: "Trick Room", - effect: "The user creates a bizarre area in which slower Pokémon get to move first for five turns." + trickRoom: { + name: "Distortozona", + effect: "Chi la usa crea una dimensione in cui i Pokémon più lenti si muovono per primi per cinque turni.", }, - "dracoMeteor": { - name: "Draco Meteor", - effect: "Comets are summoned down from the sky onto the target. The attack's recoil harshly lowers the user's Sp. Atk stat." + dracoMeteor: { + name: "Dragobolide", + effect: "Attacca con meteore che cadono dal cielo. Il contraccolpo fa calare di molto l'Attacco Speciale di chi la usa.", }, - "discharge": { - name: "Discharge", - effect: "The user strikes everything around it by letting loose a flare of electricity. This may also cause paralysis." + discharge: { + name: "Scarica", + effect: "Chi la usa colpisce i Pokémon che ha intorno con un bagliore elettrico. Può anche causare paralisi.", }, - "lavaPlume": { - name: "Lava Plume", - effect: "The user torches everything around it in an inferno of scarlet flames. This may also leave those it hits with a burn." + lavaPlume: { + name: "Lavasbuffo", + effect: "Chi la usa lancia fiamme scarlatte sugli altri Pokémon in campo. Può anche scottare.", }, - "leafStorm": { - name: "Leaf Storm", - effect: "The user whips up a storm of leaves around the target. The attack's recoil harshly lowers the user's Sp. Atk stat." + leafStorm: { + name: "Verdebufera", + effect: "Si forma una tempesta di foglie affilate. Il contraccolpo riduce di molto l'Attacco Speciale di chi la usa.", }, - "powerWhip": { - name: "Power Whip", - effect: "The user violently whirls its vines, tentacles, or the like to harshly lash the target." + powerWhip: { + name: "Vigorcolpo", + effect: "Chi la usa agita violentemente liane o tentacoli per sferzare il bersaglio.", }, - "rockWrecker": { - name: "Rock Wrecker", - effect: "The user launches a huge boulder at the target to attack. The user can't move on the next turn." + rockWrecker: { + name: "Devastomasso", + effect: "Chi la usa attacca il nemico con un enorme masso, ma si deve riposare al turno successivo.", }, - "crossPoison": { - name: "Cross Poison", - effect: "A slashing attack with a poisonous blade that may also poison the target. Critical hits land more easily." + crossPoison: { + name: "Velenocroce", + effect: "Attacco con zanne avvelenate che può anche avvelenare il Pokémon colpito. Probabile brutto colpo.", }, - "gunkShot": { - name: "Gunk Shot", - effect: "The user shoots filthy garbage at the target to attack. This may also poison the target." + gunkShot: { + name: "Sporcolancio", + effect: "Chi la usa attacca il nemico con rifiuti sudici che possono anche avvelenarlo.", }, - "ironHead": { - name: "Iron Head", - effect: "The user slams the target with its steel-hard head. This may also make the target flinch." + ironHead: { + name: "Metaltestata", + effect: "Chi la usa colpisce il nemico con la sua testa dura come l'acciaio. Può anche farlo tentennare.", }, - "magnetBomb": { - name: "Magnet Bomb", - effect: "The user launches steel bombs that stick to the target. This attack never misses." + magnetBomb: { + name: "Bombagnete", + effect: "Chi la usa lancia bombe d'acciaio che si attaccano al nemico. Una mossa infallibile.", }, - "stoneEdge": { - name: "Stone Edge", - effect: "The user stabs the target from below with sharpened stones. Critical hits land more easily." + stoneEdge: { + name: "Pietrataglio", + effect: "Chi la usa colpisce il nemico dal basso con pietre affilate. Probabile brutto colpo.", }, - "captivate": { - name: "Captivate", - effect: "If any opposing Pokémon is the opposite gender of the user, it is charmed, which harshly lowers its Sp. Atk stat." + captivate: { + name: "Incanto", + effect: "Se il nemico è del sesso opposto di chi la usa, sarà ammaliato e il suo Attacco Speciale diminuirà di molto.", }, - "stealthRock": { - name: "Stealth Rock", - effect: "The user lays a trap of levitating stones around the opposing team. The trap hurts opposing Pokémon that switch into battle." + stealthRock: { + name: "Levitoroccia", + effect: "Chi la usa piazza una trappola di rocce sospese che danneggia i nemici che entrano in lotta.", }, - "grassKnot": { - name: "Grass Knot", - effect: "The user snares the target with grass and trips it. The heavier the target, the greater the move's power." + grassKnot: { + name: "Laccioerboso", + effect: "Chi la usa intrappola il bersaglio con l'erba e lo fa cadere. Danneggia maggiormente i Pokémon più pesanti.", }, - "chatter": { - name: "Chatter", - effect: "The user attacks the target with sound waves of deafening chatter. This confuses the target." + chatter: { + name: "Schiamazzo", + effect: "Chi la usa attacca creando un'onda sonora con le parole imparate. Può anche confondere il nemico.", }, - "judgment": { - name: "Judgment", - effect: "The user releases countless shots of light at the target. This move's type varies depending on the kind of Plate the user is holding." + judgment: { + name: "Giudizio", + effect: "Chi la usa rilascia numerosi colpi di luce. Il tipo varia a seconda della Lastra tenuta.", }, - "bugBite": { - name: "Bug Bite", - effect: "The user bites the target. If the target is holding a Berry, the user eats it and gains its effect." + bugBite: { + name: "Coleomorso", + effect: "Chi la usa morde il nemico. Inoltre, se questi tiene una Bacca, gliela ruba e ne sfrutta gli effetti.", }, - "chargeBeam": { - name: "Charge Beam", - effect: "The user attacks the target with an electric charge. The user may use any remaining electricity to raise its Sp. Atk stat." + chargeBeam: { + name: "Raggioscossa", + effect: "Chi la usa lancia un fascio di elettricità molto intensa. Può anche aumentare il suo Attacco Speciale.", }, - "woodHammer": { - name: "Wood Hammer", - effect: "The user slams its rugged body into the target to attack. This also damages the user quite a lot." + woodHammer: { + name: "Mazzuolegno", + effect: "Chi la usa si lancia con tutto il corpo contro il bersaglio, ma subisce anche considerevoli danni.", }, - "aquaJet": { - name: "Aqua Jet", - effect: "The user lunges at the target at a speed that makes it almost invisible. This move always goes first." + aquaJet: { + name: "Acquagetto", + effect: "Chi la usa colpisce sempre per primo e a una tale velocità da rendersi quasi invisibile.", }, - "attackOrder": { - name: "Attack Order", - effect: "The user calls out its underlings to pummel the target. Critical hits land more easily." + attackOrder: { + name: "Comandourto", + effect: "Chi la usa raduna i suoi sgherri per colpire il nemico. Probabile brutto colpo.", }, - "defendOrder": { - name: "Defend Order", - effect: "The user calls out its underlings to shield its body, raising its Defense and Sp. Def stats." + defendOrder: { + name: "Comandoscudo", + effect: "Chi la usa raduna i suoi sgherri per creare uno scudo, aumentando Difesa e Difesa Speciale.", }, - "healOrder": { - name: "Heal Order", - effect: "The user calls out its underlings to heal it. The user regains up to half of its max HP." + healOrder: { + name: "Comandocura", + effect: "Chi la usa raduna i propri sgherri per farsi curare. Recupera metà dei PS massimi.", }, - "headSmash": { - name: "Head Smash", - effect: "The user attacks the target with a hazardous, full-power headbutt. This also damages the user terribly." + headSmash: { + name: "Zuccata", + effect: "Chi la usa attacca con tutta la potenza di cui dispone, ma subisce danni considerevoli.", }, - "doubleHit": { - name: "Double Hit", - effect: "The user slams the target with a long tail, vines, or a tentacle. The target is hit twice in a row." + doubleHit: { + name: "Doppiosmash", + effect: "Chi la usa colpisce il nemico con la coda due volte di fila.", }, - "roarOfTime": { - name: "Roar of Time", - effect: "The user blasts the target with power that distorts even time. The user can't move on the next turn." + roarOfTime: { + name: "Fragortempo", + effect: "Chi la usa colpisce il nemico con una forza capace di alterare il tempo, ma deve stare fermo il turno dopo.", }, - "spacialRend": { - name: "Spacial Rend", - effect: "The user tears the target along with the space around it. Critical hits land more easily." + spacialRend: { + name: "Fendispazio", + effect: "Chi la usa lacera il nemico e lo spazio che lo circonda. Probabile brutto colpo.", }, - "lunarDance": { - name: "Lunar Dance", - effect: "The user faints. In return, the Pokémon taking its place will have its status and HP fully restored." + lunarDance: { + name: "Lunardanza", + effect: "Chi la usa va KO. Il Pokémon che lo sostituisce risolve i propri problemi di stato e recupera PS e PP.", }, - "crushGrip": { - name: "Crush Grip", - effect: "The target is crushed with great force. The more HP the target has left, the greater this move's power." + crushGrip: { + name: "Sbriciolmano", + effect: "Colpisce il nemico con grande forza. Più PS ha il nemico, maggiore è la potenza della mossa.", }, - "magmaStorm": { - name: "Magma Storm", - effect: "The target becomes trapped within a maelstrom of fire that rages for four to five turns." + magmaStorm: { + name: "Magmaclisma", + effect: "Intrappola il nemico in un turbine di fuoco che dura per quattro o cinque turni.", }, - "darkVoid": { - name: "Dark Void", - effect: "Opposing Pokémon are dragged into a world of total darkness that makes them sleep." + darkVoid: { + name: "Vuototetro", + effect: "Trascina i nemici in un mondo di totale oscurità e li fa addormentare.", }, - "seedFlare": { - name: "Seed Flare", - effect: "The user emits a shock wave from its body to attack its target. This may also harshly lower the target's Sp. Def stat." + seedFlare: { + name: "Infuriaseme", + effect: "Chi la usa genera un'onda d'urto dal suo corpo. Può anche ridurre di molto la Difesa Speciale del bersaglio.", }, - "ominousWind": { - name: "Ominous Wind", - effect: "The user blasts the target with a gust of repulsive wind. This may also raise all the user's stats at once." + ominousWind: { + name: "Funestovento", + effect: "Chi la usa crea una raffica di vento ripugnante. Può aumentare tutte le statistiche di chi la usa.", }, - "shadowForce": { - name: "Shadow Force", - effect: "The user disappears, then strikes the target on the next turn. This move hits even if the target protects itself." + shadowForce: { + name: "Oscurotuffo", + effect: "Chi la usa sparisce e poi colpisce il nemico al turno successivo. Evita pure Protezione o Individua.", }, - "honeClaws": { - name: "Hone Claws", - effect: "The user sharpens its claws to boost its Attack stat and accuracy." + honeClaws: { + name: "Unghiaguzze", + effect: "Chi la usa affila i propri artigli, aumentando Attacco e precisione.", }, - "wideGuard": { - name: "Wide Guard", - effect: "The user and its allies are protected from wide-ranging attacks for one turn." + wideGuard: { + name: "Bodyguard", + effect: "Chi la usa para tutti i colpi diretti alla intera squadra per un turno. Se usata in successione può fallire.", }, - "guardSplit": { - name: "Guard Split", - effect: "The user employs its psychic power to average its Defense and Sp. Def stats with those of the target." + guardSplit: { + name: "Paridifesa", + effect: "Chi la usa sfrutta la sua forza psichica per sommare Difesa e Difesa Speciale a quelle del bersaglio e dividerle equamente.", }, - "powerSplit": { - name: "Power Split", - effect: "The user employs its psychic power to average its Attack and Sp. Atk stats with those of the target." + powerSplit: { + name: "Pariattacco", + effect: "Chi la usa sfrutta la sua forza psichica per sommare Attacco e Attacco Speciale a quelli del bersaglio e dividerli equamente.", }, - "wonderRoom": { - name: "Wonder Room", - effect: "The user creates a bizarre area in which Pokémon's Defense and Sp. Def stats are swapped for five turns." + wonderRoom: { + name: "Mirabilzona", + effect: "Chi la usa crea una dimensione in cui Difesa e Difesa Speciale di tutti i Pokémon vengono scambiate per cinque turni.", }, - "psyshock": { - name: "Psyshock", - effect: "The user materializes an odd psychic wave to attack the target. This attack does physical damage." + psyshock: { + name: "Psicoshock", + effect: "Chi la usa attacca il bersaglio facendo materializzare un misterioso raggio psichico che provoca danni fisici.", }, - "venoshock": { - name: "Venoshock", - effect: "The user drenches the target in a special poisonous liquid. This move's power is doubled if the target is poisoned." + venoshock: { + name: "Velenoshock", + effect: "Lancia uno speciale liquido tossico sul bersaglio. Se questi è avvelenato, il danno provocato raddoppia.", }, - "autotomize": { - name: "Autotomize", - effect: "The user sheds part of its body to make itself lighter and sharply raise its Speed stat." + autotomize: { + name: "Sganciapesi", + effect: "Chi la usa si libera di tutti i pesi in eccesso, alleggerendosi e aumentando di molto la propria Velocità.", }, - "ragePowder": { - name: "Rage Powder", - effect: "The user scatters a cloud of irritating powder to draw attention to itself. Opposing Pokémon aim only at the user." + ragePowder: { + name: "Polverabbia", + effect: "Chi la usa attira l'attenzione dei nemici cospargendosi di una polvere irritante e diventando bersaglio di tutti gli attacchi.", }, - "telekinesis": { - name: "Telekinesis", - effect: "The user makes the target float with its psychic power. The target is easier to hit for three turns." + telekinesis: { + name: "Telecinesi", + effect: "Chi la usa fa fluttuare in aria il bersaglio, rendendolo facile da colpire per tre turni.", }, - "magicRoom": { - name: "Magic Room", - effect: "The user creates a bizarre area in which Pokémon's held items lose their effects for five turns." + magicRoom: { + name: "Magicozona", + effect: "Chi la usa crea una dimensione in cui l'effetto degli strumenti tenuti da tutti i Pokémon è annullato per cinque turni.", }, - "smackDown": { - name: "Smack Down", - effect: "The user throws a stone or similar projectile to attack the target. A flying Pokémon will fall to the ground when it's hit." + smackDown: { + name: "Abbattimento", + effect: "Chi la usa lancia una pietra o un proiettile. Può colpire anche un bersaglio in volo e farlo cadere.", }, - "stormThrow": { - name: "Storm Throw", - effect: "The user strikes the target with a fierce blow. This attack always results in a critical hit." + stormThrow: { + name: "Tempestretta", + effect: "Chi la usa sferra un colpo micidiale al bersaglio, stritolandolo. Brutto colpo assicurato.", }, - "flameBurst": { - name: "Flame Burst", - effect: "The user attacks the target with a bursting flame. The bursting flame damages Pokémon next to the target as well." + flameBurst: { + name: "Pirolancio", + effect: "Chi la usa emana una fiammata che colpisce il bersaglio e si propaga fino a raggiungere i Pokémon accanto.", }, - "sludgeWave": { - name: "Sludge Wave", - effect: "The user strikes everything around it by swamping the area with a giant sludge wave. This may also poison those hit." + sludgeWave: { + name: "Fangonda", + effect: "Lancia un'onda di fango che attacca tutti i Pokémon nelle vicinanze. Può anche avvelenare.", }, - "quiverDance": { - name: "Quiver Dance", - effect: "The user lightly performs a beautiful, mystic dance. This boosts the user's Sp. Atk, Sp. Def, and Speed stats." + quiverDance: { + name: "Eledanza", + effect: "Danza leggiadra ed elegante che aumenta l'Attacco Speciale, la Difesa Speciale e la Velocità di chi la usa.", }, - "heavySlam": { - name: "Heavy Slam", - effect: "The user slams into the target with its heavy body. The more the user outweighs the target, the greater the move's power." + heavySlam: { + name: "Pesobomba", + effect: "Chi la usa si lancia contro il bersaglio con tutto il proprio peso. Più è pesante rispetto ad esso e più danni causa.", }, - "synchronoise": { - name: "Synchronoise", - effect: "Using an odd shock wave, the user inflicts damage on any Pokémon of the same type in the area around it." + synchronoise: { + name: "Sincrumore", + effect: "Chi la usa infligge danni a tutti i Pokémon del suo stesso tipo che ha vicino usando misteriose onde elettromagnetiche.", }, - "electroBall": { - name: "Electro Ball", - effect: "The user hurls an electric orb at the target. The faster the user is than the target, the greater the move's power." + electroBall: { + name: "Energisfera", + effect: "Chi la usa attacca con una sfera d'energia elettrica. Più è rapido rispetto al bersaglio e più danni arreca.", }, - "soak": { - name: "Soak", - effect: "The user shoots a torrent of water at the target and changes the target's type to Water." + soak: { + name: "Inondazione", + effect: "Chi la usa proietta un lungo getto d'acqua contro il bersaglio e lo rende un Pokémon di tipo Acqua.", }, - "flameCharge": { - name: "Flame Charge", - effect: "Cloaking itself in flame, the user attacks the target. Then, building up more power, the user raises its Speed stat." + flameCharge: { + name: "Nitrocarica", + effect: "Chi la usa si copre di fuoco e attacca il bersaglio. Concentrandosi aumenta, inoltre, la propria Velocità.", }, - "coil": { - name: "Coil", - effect: "The user coils up and concentrates. This raises its Attack and Defense stats as well as its accuracy." + coil: { + name: "Arrotola", + effect: "Chi la usa si concentra, aumentando Attacco, Difesa e precisione.", }, - "lowSweep": { - name: "Low Sweep", - effect: "The user makes a swift attack on the target's legs, which lowers the target's Speed stat." + lowSweep: { + name: "Calciobasso", + effect: "Chi la usa colpisce con un attacco fulmineo la parte inferiore del corpo del bersaglio, riducendone la Velocità.", }, - "acidSpray": { - name: "Acid Spray", - effect: "The user spits fluid that works to melt the target. This harshly lowers the target's Sp. Def stat." + acidSpray: { + name: "Acidobomba", + effect: "Chi la usa attacca il bersaglio con un acido altamente corrosivo. Il fluido riduce di molto la Difesa Speciale del bersaglio.", }, - "foulPlay": { - name: "Foul Play", - effect: "The user turns the target's power against it. The higher the target's Attack stat, the greater the damage it deals." + foulPlay: { + name: "Ripicca", + effect: "Chi la usa sfrutta la forza del bersaglio. Il danno inflitto è proporzionale all'Attacco dell'avversario.", }, - "simpleBeam": { - name: "Simple Beam", - effect: "The user's mysterious psychic wave changes the target's Ability to Simple." + simpleBeam: { + name: "Ondisinvolta", + effect: "Chi la usa emette un misterioso raggio psichico che trasforma l'abilità del Pokémon colpito in Disinvoltura.", }, - "entrainment": { - name: "Entrainment", - effect: "The user dances with an odd rhythm that compels the target to mimic it, making the target's Ability the same as the user's." + entrainment: { + name: "Saltamicizia", + effect: "Chi la usa saltella con un buffo ritmo, invitando il bersaglio a imitarlo e rendendo la sua abilità identica alla propria.", }, - "afterYou": { - name: "After You", - effect: "The user helps the target and makes it use its move right after the user." + afterYou: { + name: "Cortesia", + effect: "Chi la usa aiuta un bersaglio più lento permettendogli di agire subito dopo.", }, - "round": { - name: "Round", - effect: "The user attacks the target with a song. Others can join in the Round to increase the power of the attack." + round: { + name: "Coro", + effect: "Attacca il bersaglio con una melodia. Se usata ripetutamente da uno o più Pokémon i danni inflitti aumentano.", }, - "echoedVoice": { - name: "Echoed Voice", - effect: "The user attacks the target with an echoing voice. If this move is used every turn, its power is increased." + echoedVoice: { + name: "Echeggiavoce", + effect: "Attacca il bersaglio con la propria voce echeggiante. Se usata a ripetizione da uno o più Pokémon il danno aumenta.", }, - "chipAway": { - name: "Chip Away", - effect: "Looking for an opening, the user strikes consistently. The target's stat changes don't affect this attack's damage." + chipAway: { + name: "Insidia", + effect: "Chi la usa attacca non appena il bersaglio abbassa la guardia. Il danno inflitto prescinde dalle modifiche alle statistiche.", }, - "clearSmog": { - name: "Clear Smog", - effect: "The user attacks the target by throwing a clump of special mud. All stat changes are returned to normal." + clearSmog: { + name: "Pulifumo", + effect: "Attacca il bersaglio lanciandogli contro una nuvola di fumo speciale, che annulla ogni modifica alle statistiche.", }, - "storedPower": { - name: "Stored Power", - effect: "The user attacks the target with stored power. The more the user's stats are raised, the greater the move's power." + storedPower: { + name: "Veicolaforza", + effect: "Attacca il bersaglio con l'energia accumulata. Più sono state aumentate le statistiche, maggiore è il danno inflitto.", }, - "quickGuard": { - name: "Quick Guard", - effect: "The user protects itself and its allies from priority moves." + quickGuard: { + name: "Anticipo", + effect: "Chi la usa protegge tutta la squadra dalle mosse dei nemici che fanno colpire per primi. Se usata in successione può fallire.", }, - "allySwitch": { - name: "Ally Switch", - effect: "The user teleports using a strange power and switches places with one of its allies." + allySwitch: { + name: "Cambiaposto", + effect: "Chi la usa si teletrasporta al posto di un compagno in campo, grazie ad un misterioso potere.", }, - "scald": { - name: "Scald", - effect: "The user shoots boiling hot water at its target. This may also leave the target with a burn." + scald: { + name: "Idrovampata", + effect: "Chi la usa attacca il bersaglio con un getto d'acqua bollente che può anche scottarlo.", }, - "shellSmash": { - name: "Shell Smash", - effect: "The user breaks its shell, which lowers Defense and Sp. Def stats but sharply raises its Attack, Sp. Atk, and Speed stats." + shellSmash: { + name: "Gettaguscio", + effect: "Chi la usa si disfa del guscio. Difesa e Dif. Sp. calano, ma aumentano di molto Attacco, Att. Sp. e Velocità.", }, - "healPulse": { - name: "Heal Pulse", - effect: "The user emits a healing pulse that restores the target's HP by up to half of its max HP." + healPulse: { + name: "Curapulsar", + effect: "Chi la usa lancia un'onda rilassante che fa recuperare al bersaglio metà dei suoi PS massimi.", }, - "hex": { - name: "Hex", - effect: "This relentless attack does massive damage to a target affected by status conditions." + hex: { + name: "Sciagura", + effect: "Attacco che causa un danno enorme se il bersaglio ha problemi di stato.", }, - "skyDrop": { - name: "Sky Drop", - effect: "The user takes the target into the sky, then drops it during the next turn. The target cannot attack while in the sky." + skyDrop: { + name: "Cadutalibera", + effect: "Porta il bersaglio in cielo e lo scaglia a terra al turno successivo. Il bersaglio catturato non può muoversi.", }, - "shiftGear": { - name: "Shift Gear", - effect: "The user rotates its gears, raising its Attack stat and sharply raising its Speed stat." + shiftGear: { + name: "Cambiomarcia", + effect: "Facendo ruotare gli ingranaggi, chi la usa aumenta non solo il proprio Attacco, ma anche di molto la propria Velocità.", }, - "circleThrow": { - name: "Circle Throw", - effect: "The target is thrown, and a different Pokémon is dragged out. In the wild, this ends a battle against a single Pokémon." + circleThrow: { + name: "Ribaltiro", + effect: "Il bersaglio è scaraventato via ed è costretto a lasciare il posto a un altro. Se è selvatico, la lotta finisce.", }, - "incinerate": { - name: "Incinerate", - effect: "The user attacks opposing Pokémon with fire. If a Pokémon is holding a certain item, such as a Berry, the item becomes burned up and unusable." + incinerate: { + name: "Bruciatutto", + effect: "Attacca il nemico con una fiammata. Se il nemico ha una Bacca, viene divorata dalle fiamme.", }, - "quash": { - name: "Quash", - effect: "The user suppresses the target and makes its move go last." + quash: { + name: "Spintone", + effect: "Chi la usa trattiene il bersaglio, costringendolo ad agire per ultimo.", }, - "acrobatics": { - name: "Acrobatics", - effect: "The user nimbly strikes the target. If the user is not holding an item, this attack inflicts massive damage." + acrobatics: { + name: "Acrobazia", + effect: "Attacca rapidamente il bersaglio. Se chi la usa non ha uno strumento, infligge al nemico grossi danni.", }, - "reflectType": { - name: "Reflect Type", - effect: "The user reflects the target's type, making the user the same type as the target." + reflectType: { + name: "Riflettipo", + effect: "Chi la usa cambia il proprio tipo in quello del bersaglio.", }, - "retaliate": { - name: "Retaliate", - effect: "The user gets revenge for a fainted ally. If an ally fainted in the previous turn, this move's power is increased." + retaliate: { + name: "Nemesi", + effect: "Vendica un compagno messo KO. Se ciò è accaduto al turno precedente, il danno è maggiore.", }, - "finalGambit": { - name: "Final Gambit", - effect: "The user risks everything to attack its target. The user faints but does damage equal to its HP." + finalGambit: { + name: "Azzardo", + effect: "Chi la usa attacca con tutta la potenza di cui dispone e va KO, ma infligge al bersaglio un danno pari ai PS che ha perso.", }, - "bestow": { - name: "Bestow", - effect: "The user passes its held item to the target when the target isn't holding an item." + bestow: { + name: "Cediregalo", + effect: "Chi la usa consegna il proprio strumento al bersaglio se ne è sprovvisto.", }, - "inferno": { - name: "Inferno", - effect: "The user attacks by engulfing the target in an intense fire. This leaves the target with a burn." + inferno: { + name: "Marchiatura", + effect: "Il bersaglio viene avvolto da intense fiammate che causano scottature.", }, - "waterPledge": { - name: "Water Pledge", - effect: "A column of water hits the target. When used with its fire equivalent, its power increases and a rainbow appears." + waterPledge: { + name: "Acquapatto", + effect: "Attacca il nemico con una colonna d'acqua. Se usata con Fiammapatto, aumentano gli effetti e un arcobaleno appare in cielo.", }, - "firePledge": { - name: "Fire Pledge", - effect: "A column of fire hits the target. When used with its grass equivalent, its power increases and a vast sea of fire appears." + firePledge: { + name: "Fiammapatto", + effect: "Attacca il nemico con una colonna di fuoco. Se usata con Erbapatto, aumentano gli effetti e il campo diventa un mare di fuoco.", }, - "grassPledge": { - name: "Grass Pledge", - effect: "A column of grass hits the target. When used with its water equivalent, its power increases and a vast swamp appears." + grassPledge: { + name: "Erbapatto", + effect: "Attacca il bersaglio con una colonna d'erba. Se usata con Acquapatto, gli effetti aumentano e il campo diventa una palude.", }, - "voltSwitch": { - name: "Volt Switch", - effect: "After making its attack, the user rushes back to switch places with a party Pokémon in waiting." + voltSwitch: { + name: "Invertivolt", + effect: "Chi usa questa mossa fa marcia indietro per farsi sostituire dopo aver sferrato l'attacco.", }, - "struggleBug": { - name: "Struggle Bug", - effect: "While resisting, the user attacks opposing Pokémon. This lowers the Sp. Atk stats of those hit." + struggleBug: { + name: "Entomoblocco", + effect: "Colpisce i nemici opponendo resistenza e riducendo il loro Attacco Speciale.", }, - "bulldoze": { - name: "Bulldoze", - effect: "The user strikes everything around it by stomping down on the ground. This lowers the Speed stats of those hit." + bulldoze: { + name: "Battiterra", + effect: "Chi la usa calpesta il terreno e scatena un terremoto che danneggia tutti i Pokémon nei paraggi e ne riduce anche la Velocità.", }, - "frostBreath": { - name: "Frost Breath", - effect: "The user blows its cold breath on the target. This attack always results in a critical hit." + frostBreath: { + name: "Alitogelido", + effect: "Chi la usa attacca il bersaglio con un soffio d'aria gelida. Brutto colpo assicurato.", }, - "dragonTail": { - name: "Dragon Tail", - effect: "The target is knocked away, and a different Pokémon is dragged out. In the wild, this ends a battle against a single Pokémon." + dragonTail: { + name: "Codadrago", + effect: "Chi la usa fa volar via il bersaglio in modo che venga sostituito. Se il bersaglio è un Pokémon selvatico, la lotta finisce.", }, - "workUp": { - name: "Work Up", - effect: "The user is roused, and its Attack and Sp. Atk stats increase." + workUp: { + name: "Cuordileone", + effect: "Chi la usa si tira su di morale, aumentando il proprio Attacco e l'Attacco Speciale.", }, - "electroweb": { - name: "Electroweb", - effect: "The user attacks and captures opposing Pokémon using an electric net. This lowers their Speed stats." + electroweb: { + name: "Elettrotela", + effect: "Chi la usa attacca i nemici catturandoli con una ragnatela elettrica e riducendone la Velocità.", }, - "wildCharge": { - name: "Wild Charge", - effect: "The user shrouds itself in electricity and smashes into its target. This also damages the user a little." + wildCharge: { + name: "Sprizzalampo", + effect: "Chi la usa si carica di elettricità per poi scagliarsi sul bersaglio, ma subisce dei danni per il contraccolpo.", }, - "drillRun": { - name: "Drill Run", - effect: "The user crashes into its target while rotating its body like a drill. Critical hits land more easily." + drillRun: { + name: "Giravvita", + effect: "Chi la usa si scaglia sul bersaglio ruotando su se stesso come un trapano perforante. Probabile brutto colpo.", }, - "dualChop": { - name: "Dual Chop", - effect: "The user attacks its target by hitting it with brutal strikes. The target is hit twice in a row." + dualChop: { + name: "Doppiocolpo", + effect: "Chi la usa attacca due volte il bersaglio con dei colpi estremamente forti.", }, - "heartStamp": { - name: "Heart Stamp", - effect: "The user unleashes a vicious blow after its cute act makes the target less wary. This may also make the target flinch." + heartStamp: { + name: "Cuorestampo", + effect: "Chi la usa distrae il nemico con un faccino innocente per poi sferrargli un colpo devastante che può farlo tentennare.", }, - "hornLeech": { - name: "Horn Leech", - effect: "The user drains the target's energy with its horns. The user's HP is restored by half the damage taken by the target." + hornLeech: { + name: "Legnicorno", + effect: "Chi la usa infilza il bersaglio con le corna e assorbe una quantità di PS pari a metà del danno inferto.", }, - "sacredSword": { - name: "Sacred Sword", - effect: "The user attacks by slicing with a long horn. The target's stat changes don't affect this attack's damage." + sacredSword: { + name: "Spadasolenne", + effect: "Chi la usa taglia il nemico con una spada magica. Il danno inflitto ignora le modifiche alle statistiche del bersaglio.", }, - "razorShell": { - name: "Razor Shell", - effect: "The user cuts its target with sharp shells. This may also lower the target's Defense stat." + razorShell: { + name: "Conchilama", + effect: "Chi la usa colpisce il bersaglio con il suo guscio affilato. Il colpo può anche ridurre la Difesa del bersaglio.", }, - "heatCrash": { - name: "Heat Crash", - effect: "The user slams its target with its flame-covered body. The more the user outweighs the target, the greater the move's power." + heatCrash: { + name: "Marchiafuoco", + effect: "Chi la usa carica con il suo corpo rovente. Più è pesante rispetto al bersaglio e più danni causa.", }, - "leafTornado": { - name: "Leaf Tornado", - effect: "The user attacks its target by encircling it in sharp leaves. This attack may also lower the target's accuracy." + leafTornado: { + name: "Vorticerba", + effect: "Chi la usa avvolge e attacca il bersaglio con foglie affilate che possono anche ridurne la precisione.", }, - "steamroller": { - name: "Steamroller", - effect: "The user crushes its target by rolling over the target with its rolled-up body. This may also make the target flinch." + steamroller: { + name: "Rulloduro", + effect: "Chi la usa ruota su se stesso ad alta velocità e schiaccia il bersaglio. Può anche farlo tentennare.", }, - "cottonGuard": { - name: "Cotton Guard", - effect: "The user protects itself by wrapping its body in soft cotton, which drastically raises the user's Defense stat." + cottonGuard: { + name: "Cotonscudo", + effect: "Chi la usa avvolge il proprio corpo con del cotone molto morbido, proteggendosi e aumentando moltissimo la propria Difesa.", }, - "nightDaze": { - name: "Night Daze", - effect: "The user lets loose a pitch-black shock wave at its target. This may also lower the target's accuracy." + nightDaze: { + name: "Urtoscuro", + effect: "Chi la usa attacca il bersaglio con un'onda d'urto oscura che può ridurne la precisione.", }, - "psystrike": { - name: "Psystrike", - effect: "The user materializes an odd psychic wave to attack the target. This attack does physical damage." + psystrike: { + name: "Psicobotta", + effect: "Chi la usa attacca il bersaglio facendo materializzare un misterioso raggio psichico che provoca danni fisici.", }, - "tailSlap": { - name: "Tail Slap", - effect: "The user attacks by striking the target with its hard tail. It hits the target two to five times in a row." + tailSlap: { + name: "Spazzasberla", + effect: "Chi la usa colpisce il bersaglio con la sua coda dura da due a cinque volte di fila.", }, - "hurricane": { - name: "Hurricane", - effect: "The user attacks by wrapping its opponent in a fierce wind that flies up into the sky. This may also confuse the target." + hurricane: { + name: "Tifone", + effect: "Chi la usa attacca il bersaglio avvolgendolo con un vento fortissimo. Può anche confonderlo.", }, - "headCharge": { - name: "Head Charge", - effect: "The user charges its head into its target, using its powerful guard hair. This also damages the user a little." + headCharge: { + name: "Ricciolata", + effect: "Chi la usa carica il bersaglio con la sua testa in stile afro, ma subisce un po' di danni per il contraccolpo.", }, - "gearGrind": { - name: "Gear Grind", - effect: "The user attacks by throwing steel gears at its target twice." + gearGrind: { + name: "Ingracolpo", + effect: "Chi la usa colpisce il bersaglio due volte di fila lanciandogli contro dei dischi d'acciaio.", }, - "searingShot": { - name: "Searing Shot", - effect: "The user torches everything around it in an inferno of scarlet flames. This may also leave those it hits with a burn." + searingShot: { + name: "Sparafuoco", + effect: "Chi la usa lancia fiamme scarlatte sui Pokémon intorno a sé. Può anche scottare.", }, - "technoBlast": { - name: "Techno Blast", - effect: "The user fires a beam of light at its target. The move's type changes depending on the Drive the user holds." + technoBlast: { + name: "Tecnobotto", + effect: "Chi la usa rilascia un colpo di luce contro il bersaglio. Il tipo varia a seconda del modulo che ha.", }, - "relicSong": { - name: "Relic Song", - effect: "The user sings an ancient song and attacks by appealing to the hearts of the listening opposing Pokémon. This may also induce sleep." + relicSong: { + name: "Cantoantico", + effect: "Chi la usa attacca i nemici intonando un'antica melodia che colpisce il loro spirito. Può anche farli addormentare.", }, - "secretSword": { - name: "Secret Sword", - effect: "The user cuts with its long horn. The odd power contained in the horn does physical damage to the target." + secretSword: { + name: "Spadamistica", + effect: "Chi la usa attacca il bersaglio tagliandolo con una spada mistica. La misteriosa energia sprigionata provoca danni fisici.", }, - "glaciate": { - name: "Glaciate", - effect: "The user attacks by blowing freezing cold air at opposing Pokémon. This lowers their Speed stats." + glaciate: { + name: "Gelamondo", + effect: "Chi la usa attacca i nemici con una folata d'aria gelida e ne riduce anche la Velocità.", }, - "boltStrike": { - name: "Bolt Strike", - effect: "The user surrounds itself with a great amount of electricity and charges its target. This may also leave the target with paralysis." + boltStrike: { + name: "Lucesiluro", + effect: "Colpisce il bersaglio con una possente carica elettrica e può anche paralizzarlo.", }, - "blueFlare": { - name: "Blue Flare", - effect: "The user attacks by engulfing the target in an intense, yet beautiful, blue flame. This may also leave the target with a burn." + blueFlare: { + name: "Fuocoblu", + effect: "Chi la usa attacca il bersaglio avvolgendolo con magnifiche e intense fiamme blu che possono anche scottarlo.", }, - "fieryDance": { - name: "Fiery Dance", - effect: "Cloaked in flames, the user attacks the target by dancing and flapping its wings. This may also raise the user's Sp. Atk stat." + fieryDance: { + name: "Voldifuoco", + effect: "Chi la usa avvolge il bersaglio tra le fiamme. Può anche aumentare l'Attacco Speciale.", }, - "freezeShock": { - name: "Freeze Shock", - effect: "On the second turn, the user hits the target with electrically charged ice. This may also leave the target with paralysis." + freezeShock: { + name: "Elettrogelo", + effect: "Chi la usa lancia contro il nemico al turno successivo una sfera di ghiaccio ricoperta di elettricità. Può anche paralizzarlo.", }, - "iceBurn": { - name: "Ice Burn", - effect: "On the second turn, an ultracold, freezing wind surrounds the target. This may leave the target with a burn." + iceBurn: { + name: "Vampagelida", + effect: "Chi la usa attacca il bersaglio al turno successivo e lo avvolge in un soffio d'aria congelata. Può anche scottarlo.", }, - "snarl": { - name: "Snarl", - effect: "The user yells as if it's ranting about something, which lowers the Sp. Atk stats of opposing Pokémon." + snarl: { + name: "Urlorabbia", + effect: "Chi la usa si mette a urlare per un po', riducendo l'Attacco Speciale dei nemici.", }, - "icicleCrash": { - name: "Icicle Crash", - effect: "The user attacks by harshly dropping large icicles onto the target. This may also make the target flinch." + icicleCrash: { + name: "Scagliagelo", + effect: "Chi la usa attacca violentemente il nemico con grosse stalattiti di ghiaccio che possono anche farlo tentennare.", }, - "vCreate": { - name: "V-create", - effect: "With a hot flame on its forehead, the user hurls itself at its target. This lowers the user's Defense, Sp. Def, and Speed stats." + vCreate: { + name: "Generatore V", + effect: "Chi la usa carica emettendo fiamme ardenti dalla fronte, a costo di una riduzione di Difesa, Difesa Speciale e Velocità.", }, - "fusionFlare": { - name: "Fusion Flare", - effect: "The user brings down a giant flame. This move's power is increased when influenced by an enormous lightning bolt." + fusionFlare: { + name: "Incrofiamma", + effect: "Chi la usa lancia una fiammata enorme. Se usata in combinazione con Incrotuono, il danno provocato dalla mossa aumenta.", }, - "fusionBolt": { - name: "Fusion Bolt", - effect: "The user throws down a giant lightning bolt. This move's power is increased when influenced by an enormous flame." + fusionBolt: { + name: "Incrotuono", + effect: "Chi la usa lancia un fulmine enorme. Se usata in combinazione con Incrofiamma, il danno provocato dalla mossa aumenta.", }, - "flyingPress": { - name: "Flying Press", - effect: "The user dives down onto the target from the sky. This move is Fighting and Flying type simultaneously." + flyingPress: { + name: "Schiacciatuffo", + effect: "Chi la usa si tuffa sul bersaglio dall'alto. È una mossa di tipo Lotta e Volante allo stesso tempo.", }, - "matBlock": { - name: "Mat Block", - effect: "Using a pulled-up mat as a shield, the user protects itself and its allies from damaging moves. This does not stop status moves." + matBlock: { + name: "Ribaltappeto", + effect: "Chi la usa protegge se stesso e i propri alleati dai danni di mosse nemiche, adoperando un tappetino come scudo. Non è efficace contro mosse di stato.", }, - "belch": { - name: "Belch", - effect: "The user lets out a damaging belch at the target. The user must eat a held Berry to use this move." + belch: { + name: "Rutto", + effect: "Chi la usa attacca il bersaglio con un rutto potente. Per utilizzare questa mossa, il Pokémon deve mangiare la bacca che possiede.", }, - "rototiller": { - name: "Rototiller", - effect: "Tilling the soil, the user makes it easier for plants to grow. This raises the Attack and Sp. Atk stats of Grass-type Pokémon." + rototiller: { + name: "Aracampo", + effect: "Chi la usa dissoda la terra per far crescere meglio l'erba. Questa mossa aumenta l'attacco e l'attacco speciale dei Pokémon di tipo Erba.", }, - "stickyWeb": { - name: "Sticky Web", - effect: "The user weaves a sticky net around the opposing team, which lowers their Speed stats upon switching into battle." + stickyWeb: { + name: "Rete Vischiosa", + effect: "Chi la usa intreccia una rete appiccicosa attorno alla squadra avversaria, diminuendo la Velocità dei Pokémon nemici che entreranno in campo.", }, - "fellStinger": { - name: "Fell Stinger", - effect: "When the user knocks out a target with this move, the user's Attack stat rises drastically." + fellStinger: { + name: "Pungiglione", + effect: "L'Attacco di chi la usa aumenta notevolmente se grazie alla mossa il bersaglio va KO.", }, - "phantomForce": { - name: "Phantom Force", - effect: "The user vanishes somewhere, then strikes the target on the next turn. This move hits even if the target protects itself." + phantomForce: { + name: "Spettrotuffo", + effect: "Chi la usa scompare improvvisamente per attaccare poi nel turno seguente. Questa mossa neutralizza le difese del bersaglio.", }, - "trickOrTreat": { - name: "Trick-or-Treat", - effect: "The user takes the target trick-or-treating. This adds Ghost type to the target's type." + trickOrTreat: { + name: "Halloween", + effect: "Il bersaglio viene invitato a festeggiare Halloween e aggiunge così al proprio tipo anche il tipo Spettro.", }, - "nobleRoar": { - name: "Noble Roar", - effect: "Letting out a noble roar, the user intimidates the target and lowers its Attack and Sp. Atk stats." + nobleRoar: { + name: "Urlo", + effect: "Chi la usa emette un urlo potente che intimidisce il bersaglio, riducendone l'Attacco e l'Attacco Speciale.", }, - "ionDeluge": { - name: "Ion Deluge", - effect: "The user disperses electrically charged particles, which changes Normal-type moves to Electric-type moves." + ionDeluge: { + name: "Pioggiaplasma", + effect: "Chi la usa disperde delle particelle elettrizzate che trasformano le mosse di tipo Normale in mosse di tipo Elettro.", }, - "parabolicCharge": { - name: "Parabolic Charge", - effect: "The user attacks everything around it. The user's HP is restored by half the damage taken by those hit." + parabolicCharge: { + name: "Caricaparabola", + effect: "Chi la usa attacca tutto ciò che lo circonda e recupera PS pari alla metà del danno inflitto.", }, - "forestsCurse": { - name: "Forest's Curse", - effect: "The user puts a forest curse on the target. The target is now Grass type as well." + forestsCurse: { + name: "Boscomalocchio", + effect: "Il Pokémon invoca la maledizione del bosco sul bersaglio, che acquisisce così anche il tipo Erba.", }, - "petalBlizzard": { - name: "Petal Blizzard", - effect: "The user stirs up a violent petal blizzard and attacks everything around it." + petalBlizzard: { + name: "Fiortempesta", + effect: "Infligge danni ai Pokémon che ha intorno attaccandoli con una tempesta di fiori.", }, - "freezeDry": { - name: "Freeze-Dry", - effect: "The user rapidly cools the target. This may also leave the target frozen. This move is super effective on Water types." + freezeDry: { + name: "Liofilizzazione", + effect: "Chi la usa raffredda rapidamente il bersaglio. Può anche congelarlo. Questa mossa è superefficace contro i Pokémon Acqua.", }, - "disarmingVoice": { - name: "Disarming Voice", - effect: "Letting out a charming cry, the user does emotional damage to opposing Pokémon. This attack never misses." + disarmingVoice: { + name: "Incantavoce", + effect: "Chi la usa infligge un danno spirituale ai nemici nei paraggi con una voce suadente. L'attacco andrà immancabilmente a segno.", }, - "partingShot": { - name: "Parting Shot", - effect: "With a parting threat, the user lowers the target's Attack and Sp. Atk stats. Then it switches with a party Pokémon." + partingShot: { + name: "Monito", + effect: "Nessuna descrizione disponibile.", }, - "topsyTurvy": { - name: "Topsy-Turvy", - effect: "All stat changes affecting the target turn topsy-turvy and become the opposite of what they were." + topsyTurvy: { + name: "Sottosopra", + effect: "Inverte tutte le modifiche alle statistiche del Pokémon bersaglio.", }, - "drainingKiss": { - name: "Draining Kiss", - effect: "The user steals the target's HP with a kiss. The user's HP is restored by over half of the damage taken by the target." + drainingKiss: { + name: "Assorbibacio", + effect: "Un bacio fatato che assorbe le energie al nemico.", }, - "craftyShield": { - name: "Crafty Shield", - effect: "The user protects itself and its allies from status moves with a mysterious power. This does not stop moves that do damage." + craftyShield: { + name: "Truccodifesa", + effect: "Chi la usa protegge se stesso e i suoi alleati usando un potere misterioso. Non blocca le mosse che infliggono danno.", }, - "flowerShield": { - name: "Flower Shield", - effect: "The user raises the Defense stats of all Grass-type Pokémon in battle with a mysterious power." + flowerShield: { + name: "Fiordifesa", + effect: "Grazie a un misterioso potere, aumenta la Difesa di tutti i Pokémon di tipo Erba presenti in campo.", }, - "grassyTerrain": { - name: "Grassy Terrain", - effect: "The user turns the ground to grass for five turns. This restores the HP of Pokémon on the ground a little every turn and powers up Grass-type moves." + grassyTerrain: { + name: "Campo Erboso", + effect: "Per cinque turni trasforma il terreno di lotta in un campo erboso, facendo recuperare PS ai Pokémon a terra in ogni turno.", }, - "mistyTerrain": { - name: "Misty Terrain", - effect: "This protects Pokémon on the ground from status conditions and halves damage from Dragon-type moves for five turns." + mistyTerrain: { + name: "Campo Nebbioso", + effect: "Per cinque turni trasforma il terreno di lotta in un campo nebbioso, impedendo ai Pokémon a terra di essere colpiti da problemi di stato.", }, - "electrify": { - name: "Electrify", - effect: "If the target is electrified before it uses a move during that turn, the target's move becomes Electric type." + electrify: { + name: "Elettrocontagio", + effect: "Se si contagia il bersaglio prima che usi la sua mossa, per quel turno le sue mosse saranno di tipo Elettro.", }, - "playRough": { - name: "Play Rough", - effect: "The user plays rough with the target and attacks it. This may also lower the target's Attack stat." + playRough: { + name: "Carineria", + effect: "Chi la usa attacca il bersaglio con delle carinerie. Può anche ridurne l'attacco.", }, - "fairyWind": { - name: "Fairy Wind", - effect: "The user stirs up a fairy wind and strikes the target with it." + fairyWind: { + name: "Vento di Fata", + effect: "Attacca con un forte vento fatato.", }, - "moonblast": { - name: "Moonblast", - effect: "Borrowing the power of the moon, the user attacks the target. This may also lower the target's Sp. Atk stat." + moonblast: { + name: "Forza Lunare", + effect: "Accumula la forza proveniente dalla luna e la libera sul nemico. Può ridurre l'Attacco Speciale.", }, - "boomburst": { - name: "Boomburst", - effect: "The user attacks everything around it with the destructive power of a terrible, explosive sound." + boomburst: { + name: "Ondaboato", + effect: "Colpisce i Pokémon che ha intorno con la forza di un boato distruttivo.", }, - "fairyLock": { - name: "Fairy Lock", - effect: "By locking down the battlefield, the user keeps all Pokémon from fleeing during the next turn." + fairyLock: { + name: "Blocco Fatato", + effect: "Bloccando il campo di battaglia, chi la usa impedisce a tutti i Pokémon di fuggire durante il prossimo turno.", }, - "kingsShield": { - name: "King's Shield", - effect: "The user takes a defensive stance while it protects itself from damage. It also lowers the Attack stat of any attacker that makes direct contact." + kingsShield: { + name: "Scudo Reale", + effect: "L'utilizzatore assume una posizione difensiva mentre si difende. Riduce inoltre l'Attacco di ogni utilizzatore di mosse da contatto.", }, - "playNice": { - name: "Play Nice", - effect: "The user and the target become friends, and the target loses its will to fight. This lowers the target's Attack stat." + playNice: { + name: "Simpatia", + effect: "Chi la usa diventa amico del bersaglio, rabbonendolo e riducendone così l'Attacco.", }, - "confide": { - name: "Confide", - effect: "The user tells the target a secret, and the target loses its ability to concentrate. This lowers the target's Sp. Atk stat." + confide: { + name: "Confidenza", + effect: "Chi la usa svela dei segreti al bersaglio, distraendolo e riducendone l'Attacco Speciale.", }, - "diamondStorm": { - name: "Diamond Storm", - effect: "The user whips up a storm of diamonds to damage opposing Pokémon. This may also sharply raise the user's Defense stat." + diamondStorm: { + name: "Diamantempesta", + effect: "Colpisce i nemici che ha intorno con una tempesta di diamanti. Può anche aumentare la Difesa di chi la usa.", }, - "steamEruption": { - name: "Steam Eruption", - effect: "The user immerses the target in superheated steam. This may also leave the target with a burn." + steamEruption: { + name: "Vaporscoppio", + effect: "Travolge il bersaglio con un'ondata di vapore rovente che può anche scottarlo.", }, - "hyperspaceHole": { - name: "Hyperspace Hole", - effect: "Using a hyperspace hole, the user appears right next to the target and strikes. This also hits a target using a move such as Protect or Detect." + hyperspaceHole: { + name: "Forodimensionale", + effect: "Chi la usa, sfrutta un passaggio interdimensionale per comparire a fianco del bersaglio e colpirlo, eludendo mosse come Protezione e Individua.", }, - "waterShuriken": { - name: "Water Shuriken", - effect: "The user hits the target with throwing stars two to five times in a row. This move always goes first." + waterShuriken: { + name: "Acqualame", + effect: "Chi la usa attacca sempre per primo, colpendo il bersaglio con uno shuriken di muco da due a cinque volte di fila.", }, - "mysticalFire": { - name: "Mystical Fire", - effect: "The user attacks by breathing a special, hot fire. This also lowers the target's Sp. Atk stat." + mysticalFire: { + name: "Magifiamma", + effect: "Colpisce il bersaglio soffiandogli contro delle fiammate incredibilmente roventi, riducendone l'Attacco Speciale.", }, - "spikyShield": { - name: "Spiky Shield", - effect: "In addition to protecting the user from attacks, this move also damages any attacker that makes direct contact." + spikyShield: { + name: "Agodifesa", + effect: "Protegge dagli attacchi, riducendo inoltre i PS dei Pokémon che entrano in contatto con chi la usa.", }, - "aromaticMist": { - name: "Aromatic Mist", - effect: "The user raises the Sp. Def stat of an ally Pokémon by using a mysterious aroma." + aromaticMist: { + name: "Nebularoma", + effect: "Aumenta la Difesa Speciale di un alleato tramite un misterioso aroma.", }, - "eerieImpulse": { - name: "Eerie Impulse", - effect: "The user's body generates an eerie impulse. Exposing the target to it harshly lowers the target's Sp. Atk stat." + eerieImpulse: { + name: "Elettromistero", + effect: "Il corpo dell'utilizzatore genera un impulso misterioso. Esponendovi il bersaglio, ne riduce di molto l'Attacco Speciale.", }, - "venomDrench": { - name: "Venom Drench", - effect: "Opposing Pokémon are drenched in an odd poisonous liquid. This lowers the Attack, Sp. Atk, and Speed stats of a poisoned target." + venomDrench: { + name: "Velenotrappola", + effect: "Emette un liquido particolare che riduce l'Attacco, l'Attacco Speciale e la Velocità dei nemici avvelenati intorno a chi la usa.", }, - "powder": { - name: "Powder", - effect: "The user covers the target in a combustible powder. If the target uses a Fire-type move, the powder explodes and damages the target." + powder: { + name: "Pulviscoppio", + effect: "Il bersaglio viene coperto da un pulviscolo che esplode danneggiandolo se questi utilizza una mossa di tipo Fuoco nello stesso turno.", }, - "geomancy": { - name: "Geomancy", - effect: "The user absorbs energy and sharply raises its Sp. Atk, Sp. Def, and Speed stats on the next turn." + geomancy: { + name: "Geocontrollo", + effect: "Un'energia pura forza della natura si sprigiona per tutto il campo.", }, - "magneticFlux": { - name: "Magnetic Flux", - effect: "The user manipulates magnetic fields, which raises the Defense and Sp. Def stats of ally Pokémon with the Plus or Minus Ability." + magneticFlux: { + name: "Controllo Polare", + effect: "Tramite il controllo dei campi magnetici, aumenta la Difesa e la Difesa Speciale dei Pokémon alleati dotati dell'abilità Più o Meno.", }, - "happyHour": { - name: "Happy Hour", - effect: "Using Happy Hour doubles the amount of prize money received after battle." + happyHour: { + name: "Cuccagna", + effect: "Questa mossa raddoppia la ricompensa ricevuta dopo aver vinto una lotta.", }, - "electricTerrain": { - name: "Electric Terrain", - effect: "The user electrifies the ground for five turns, powering up Electric-type moves. Pokémon on the ground no longer fall asleep." + electricTerrain: { + name: "Campo Elettrico", + effect: "Per cinque turni trasforma il terreno di lotta in un campo elettrico, impedendo ai Pokémon a terra di addormentarsi.", }, - "dazzlingGleam": { - name: "Dazzling Gleam", - effect: "The user damages opposing Pokémon by emitting a powerful flash." + dazzlingGleam: { + name: "Magibrillio", + effect: "Emette una luce potentissima che infligge danni al bersaglio.", }, - "celebrate": { - name: "Celebrate", - effect: "The Pokémon congratulates you on your special day!" + celebrate: { + name: "Auguri", + effect: "Il Pokémon ti fa gli auguri nel tuo giorno speciale", }, - "holdHands": { - name: "Hold Hands", - effect: "The user and an ally hold hands. This makes them very happy." + holdHands: { + name: "Mano nella mano", + effect: "Il Pokémon che la usa e un alleato si prendono per mano e fanno salti di gioia.", }, - "babyDollEyes": { - name: "Baby-Doll Eyes", - effect: "The user stares at the target with its baby-doll eyes, which lowers the target's Attack stat. This move always goes first." + babyDollEyes: { + name: "Occhioni Teneri", + effect: "Chi la usa rivolge i propri occhioni languidi al bersaglio, riducendone l'Attacco. Colpisce sempre per primo.", }, - "nuzzle": { - name: "Nuzzle", - effect: "The user attacks by nuzzling its electrified cheeks against the target. This also leaves the target with paralysis." + nuzzle: { + name: "Elettrococcola", + effect: "Nonostante il tenero nome è una mossa piuttosto pericolosa.", }, - "holdBack": { - name: "Hold Back", - effect: "The user holds back when it attacks, and the target is left with at least 1 HP." + holdBack: { + name: "Riguardo", + effect: "Chi la usa attacca il bersaglio, modulando il colpo in modo da lasciargli almeno un PS.", }, - "infestation": { - name: "Infestation", - effect: "The target is infested and attacked for four to five turns. The target can't flee during this time." + infestation: { + name: "Assillo", + effect: "Chi la usa lancia un attacco che tormenta il bersaglio per quattro o cinque turni, durante i quali gli impedisce di fuggire.", }, - "powerUpPunch": { - name: "Power-Up Punch", - effect: "Striking opponents over and over makes the user's fists harder. Hitting a target raises the Attack stat." + powerUpPunch: { + name: "Crescipugno", + effect: "Rende i pugni più duri a ogni colpo inferto. Se i pugni vanno a segno, aumenta l'Attacco.", }, - "oblivionWing": { - name: "Oblivion Wing", - effect: "The user absorbs its target's HP. The user's HP is restored by over half of the damage taken by the target." + oblivionWing: { + name: "Ali del Fato", + effect: "Chi la usa assorbe energia dal bersaglio recuperando una quantità di PS pari a più della metà del danno inferto.", }, - "thousandArrows": { - name: "Thousand Arrows", - effect: "This move also hits opposing Pokémon that are in the air. Those Pokémon are knocked down to the ground." + thousandArrows: { + name: "Mille Frecce", + effect: "Colpisce anche i Pokémon che fluttuano in aria. I nemici nei paraggi vengono scaraventati a terra.", }, - "thousandWaves": { - name: "Thousand Waves", - effect: "The user attacks with a wave that crawls along the ground. Those it hits can't flee from battle." + thousandWaves: { + name: "Mille Onde", + effect: "Un’onda strisciante investe i nemici intorno impedendo loro di fuggire.", }, - "landsWrath": { - name: "Land's Wrath", - effect: "The user gathers the energy of the land and focuses that power on opposing Pokémon to damage them." + landsWrath: { + name: "Forza Tellurica", + effect: "Chi la usa raccoglie energia tellurica e ne concentra il potere sui nemici che ha intorno danneggiandoli.", }, - "lightOfRuin": { - name: "Light of Ruin", - effect: "Drawing power from the Eternal Flower, the user fires a powerful beam of light. This also damages the user quite a lot." + lightOfRuin: { + name: "Luce Nefasta", + effect: "Traendo potere dal Fiore Eterno, chi lo utilizza spara un potente raggio di luce. Ciò danneggia parecchio anche chi la usa.", }, - "originPulse": { - name: "Origin Pulse", - effect: "The user attacks opposing Pokémon with countless beams of light that glow a deep and brilliant blue." + originPulse: { + name: "Primopulsar", + effect: "Attacca i nemici intorno colpendoli con miriadi di raggi di luce blu.", }, - "precipiceBlades": { - name: "Precipice Blades", - effect: "The user attacks opposing Pokémon by manifesting the power of the land in fearsome blades of stone." + precipiceBlades: { + name: "Spade Telluriche", + effect: "Attacca i nemici intorno trasformando la potenza della terra in lame affilate.", }, - "dragonAscent": { - name: "Dragon Ascent", - effect: "After soaring upward, the user attacks its target by dropping out of the sky at high speeds. But it lowers its own Defense and Sp. Def stats in the process." + dragonAscent: { + name: "Ascesa del Drago", + effect: "Permette di proiettarsi in aria e fiondarsi sul bersaglio attaccando ad altissima velocità. Riduce la Difesa e la Difesa Speciale di chi la usa.", }, - "hyperspaceFury": { - name: "Hyperspace Fury", - effect: "Using its many arms, the user unleashes a barrage of attacks that ignore the effects of moves like Protect and Detect. But the user's Defense stat falls." + hyperspaceFury: { + name: "Urtodimensionale", + effect: "Permette di attaccare ripetutamente grazie ai molti arti, ignorando mosse come Protezione o Individua. Riduce la Difesa di chi la usa.", }, - "breakneckBlitzPhysical": { - name: "Breakneck Blitz", - effect: "The user builds up its momentum using its Z-Power and crashes into the target at full speed. The power varies, depending on the original move." + breakneckBlitzPhysical: { + name: "Carica Travolgente", + effect: "Grazie al Potere Z, chi la usa accumula energia e si lancia a tutta forza contro il bersaglio. La potenza varia a seconda della mossa su cui si basa.", }, - "breakneckBlitzSpecial": { - name: "Breakneck Blitz", - effect: "Dummy Data" + breakneckBlitzSpecial: { + name: "Carica Travolgente", + effect: "Dati Mancanti", }, - "allOutPummelingPhysical": { - name: "All-Out Pummeling", - effect: "The user rams an energy orb created by its Z-Power into the target with full force. The power varies, depending on the original move." + allOutPummelingPhysical: { + name: "Iperscarica Furiosa", + effect: "Chi la usa scaglia sul bersaglio una scarica di colpi carichi di Potere Z. La potenza varia a seconda della mossa su cui si basa.", }, - "allOutPummelingSpecial": { - name: "All-Out Pummeling", - effect: "Dummy Data" + allOutPummelingSpecial: { + name: "Iperscarica Furiosa", + effect: "Dati Mancanti", }, - "supersonicSkystrikePhysical": { - name: "Supersonic Skystrike", - effect: "The user soars up with its Z-Power and plummets toward the target at full speed. The power varies, depending on the original move." + supersonicSkystrikePhysical: { + name: "Picchiata Devastante", + effect: "Chi la usa si serve del Potere Z per alzarsi in volo e attaccare il bersaglio piombandogli addosso. La potenza varia a seconda della mossa su cui si basa.", }, - "supersonicSkystrikeSpecial": { - name: "Supersonic Skystrike", - effect: "Dummy Data" + supersonicSkystrikeSpecial: { + name: "Picchiata Devastante", + effect: "Dati Mancanti", }, - "acidDownpourPhysical": { - name: "Acid Downpour", - effect: "The user creates a poisonous swamp using its Z-Power and sinks the target into it at full force. The power varies, depending on the original move." + acidDownpourPhysical: { + name: "Acidiluvio Corrosivo", + effect: "Chi la usa sfrutta il Potere Z per creare una palude velenosa che sommerge il bersaglio. La potenza varia a seconda della mossa su cui si basa.", }, - "acidDownpourSpecial": { - name: "Acid Downpour", - effect: "Dummy Data" + acidDownpourSpecial: { + name: "Acidiluvio Corrosivo", + effect: "Dati Mancanti", }, - "tectonicRagePhysical": { - name: "Tectonic Rage", - effect: "The user burrows deep into the ground and slams into the target with the full force of its Z-Power. The power varies, depending on the original move." + tectonicRagePhysical: { + name: "Furore della Terra", + effect: "Grazie al Potere Z, chi la usa si tuffa nelle viscere della terra e colpisce con violenza il bersaglio. La potenza varia a seconda della mossa su cui si basa.", }, - "tectonicRageSpecial": { - name: "Tectonic Rage", - effect: "Dummy Data" + tectonicRageSpecial: { + name: "Furore della Terra", + effect: "Dati Mancanti", }, - "continentalCrushPhysical": { - name: "Continental Crush", - effect: "The user summons a huge rock mountain using its Z-Power and drops it onto the target with full force. The power varies, depending on the original move." + continentalCrushPhysical: { + name: "Gigamacigno Polverizzante", + effect: "Grazie al Potere Z, chi la usa crea un masso enorme e lo lancia sul bersaglio schiacciandolo. La potenza varia a seconda della mossa su cui si basa.", }, - "continentalCrushSpecial": { - name: "Continental Crush", - effect: "Dummy Data" + continentalCrushSpecial: { + name: "Gigamacigno Polverizzante", + effect: "Dati Mancanti", }, - "savageSpinOutPhysical": { - name: "Savage Spin-Out", - effect: "The user binds the target with full force with threads of silk that the user spits using its Z-Power. The power varies, depending on the original move." + savageSpinOutPhysical: { + name: "Bozzolo Fatale", + effect: "Chi la usa sfrutta il potere Z per creare dei filamenti che intrappolano il bersaglio. La potenza varia a seconda della mossa su cui si basa.", }, - "savageSpinOutSpecial": { - name: "Savage Spin-Out", - effect: "Dummy Data" + savageSpinOutSpecial: { + name: "Bozzolo Fatale", + effect: "Dati Mancanti", }, - "neverEndingNightmarePhysical": { - name: "Never-Ending Nightmare", - effect: "Deep-seated grudges summoned by the user's Z-Power trap the target. The power varies, depending on the original move." + neverEndingNightmarePhysical: { + name: "Abbraccio Spettrale", + effect: "Grazie al Potere Z, chi la usa intrappola il bersaglio in una morsa generata dal proprio rancore. La potenza varia a seconda della mossa su cui si basa.", }, - "neverEndingNightmareSpecial": { - name: "Never-Ending Nightmare", - effect: "Dummy Data" + neverEndingNightmareSpecial: { + name: "Abbraccio Spettrale", + effect: "Dati Mancanti", }, - "corkscrewCrashPhysical": { - name: "Corkscrew Crash", - effect: "The user spins very fast and rams into the target with the full force of its Z-Power. The power varies, depending on the original move." + corkscrewCrashPhysical: { + name: "Spirale Perforante", + effect: "Grazie al Potere Z, chi la usa vortica su se stesso e si scaglia sul bersaglio con tutte le sue forze. La potenza varia a seconda della mossa su cui si basa", }, - "corkscrewCrashSpecial": { - name: "Corkscrew Crash", - effect: "Dummy Data" + corkscrewCrashSpecial: { + name: "Spirale Perforante", + effect: "Dati Mancanti", }, - "infernoOverdrivePhysical": { - name: "Inferno Overdrive", - effect: "The user breathes a stream of intense fire toward the target with the full force of its Z-Power. The power varies depending on the original move." + infernoOverdrivePhysical: { + name: "Fiammobomba Detonante", + effect: "Chi la usa sfrutta il Potere Z per emettere fiamme incandescenti che inceneriscono il bersaglio. La potenza varia a seconda della mossa su cui si basa.", }, - "infernoOverdriveSpecial": { - name: "Inferno Overdrive", - effect: "Dummy Data" + infernoOverdriveSpecial: { + name: "Fiammobomba Detonante", + effect: "Dati Mancanti", }, - "hydroVortexPhysical": { - name: "Hydro Vortex", - effect: "The user creates a huge whirling current using its Z-Power to swallow the target with full force. The power varies, depending on the original move." + hydroVortexPhysical: { + name: "Idrovortice Abissale", + effect: "Grazie al Potere Z, chi la usa crea un enorme vortice che inghiotte il bersaglio. La potenza varia a seconda della mossa su cui si basa.", }, - "hydroVortexSpecial": { - name: "Hydro Vortex", - effect: "Dummy Data" + hydroVortexSpecial: { + name: "Idrovortice Abissale", + effect: "Dati Mancanti", }, - "bloomDoomPhysical": { - name: "Bloom Doom", - effect: "The user collects energy from plants using its Z-Power and attacks the target with full force. The power varies, depending on the original move." + bloomDoomPhysical: { + name: "Floriscoppio Sfolgorante", + effect: "Grazie al Potere Z, chi la usa concentra l'energia delle piante per scatenare un potente attacco. La potenza varia a seconda della mossa su cui si basa.", }, - "bloomDoomSpecial": { - name: "Bloom Doom", - effect: "Dummy Data" + bloomDoomSpecial: { + name: "Floriscoppio Sfolgorante", + effect: "Dati Mancanti", }, - "gigavoltHavocPhysical": { - name: "Gigavolt Havoc", - effect: "The user hits the target with a powerful electric current collected by its Z-Power. The power varies, depending on the original move." + gigavoltHavocPhysical: { + name: "Gigascarica Folgorante", + effect: "Grazie al Potere Z, chi la usa genera una fortissima scarica elettrica che colpisce il bersaglio. La potenza varia a seconda della mossa su cui si basa.", }, - "gigavoltHavocSpecial": { - name: "Gigavolt Havoc", - effect: "Dummy Data" + gigavoltHavocSpecial: { + name: "Gigascarica Folgorante", + effect: "Dati Mancanti", }, - "shatteredPsychePhysical": { - name: "Shattered Psyche", - effect: "The user controls the target with its Z-Power and hurts the target with full force. The power varies, depending on the original move." + shatteredPsychePhysical: { + name: "Impatto Psicocinetico", + effect: "Chi la usa si serve del Potere Z per manipolare la mente del bersaglio causando ingenti danni. La potenza varia a seconda della mossa su cui si basa.", }, - "shatteredPsycheSpecial": { - name: "Shattered Psyche", - effect: "Dummy Data" + shatteredPsycheSpecial: { + name: "Impatto Psicocinetico", + effect: "Dati Mancanti", }, - "subzeroSlammerPhysical": { - name: "Subzero Slammer", - effect: "The user dramatically drops the temperature using its Z-Power and freezes the target with full force. The power varies, depending on the original move." + subzeroSlammerPhysical: { + name: "Criodistruzione Polare", + effect: "Chi la usa sfrutta il Potere Z per far calare di colpo la temperatura e congelare il bersaglio. La potenza varia a seconda della mossa su cui si basa.", }, - "subzeroSlammerSpecial": { - name: "Subzero Slammer", - effect: "Dummy Data" + subzeroSlammerSpecial: { + name: "Criodistruzione Polare", + effect: "Dati Mancanti", }, - "devastatingDrakePhysical": { - name: "Devastating Drake", - effect: "The user materializes its aura using its Z-Power and attacks the target with full force. The power varies, depending on the original move." + devastatingDrakePhysical: { + name: "Dragoschianto Finale", + effect: "Grazie al Potere Z, chi la usa materializza la propria aura per colpire con forza il nemico. La potenza varia a seconda della mossa su cui si basa.", }, - "devastatingDrakeSpecial": { - name: "Devastating Drake", - effect: "Dummy Data" + devastatingDrakeSpecial: { + name: "Dragoschianto Finale", + effect: "Dati Mancanti", }, - "blackHoleEclipsePhysical": { - name: "Black Hole Eclipse", - effect: "The user gathers dark energy using its Z-Power and sucks the target into it. The power varies, depending on the original move." + blackHoleEclipsePhysical: { + name: "Buco Nero del Non Ritorno", + effect: "Chi la usa si serve del Potere Z per concentrare energia negativa con cui inghiotte il bersaglio. La potenza varia a seconda della mossa su cui si basa.", }, - "blackHoleEclipseSpecial": { - name: "Black Hole Eclipse", - effect: "Dummy Data" + blackHoleEclipseSpecial: { + name: "Buco Nero del Non Ritorno", + effect: "Dati Mancanti", }, - "twinkleTacklePhysical": { - name: "Twinkle Tackle", - effect: "The user creates a very charming space using its Z-Power and totally toys with the target. The power varies, depending on the original move." + twinkleTacklePhysical: { + name: "Astroimpatto Fatato", + effect: "Grazie al Potere Z, chi la usa crea una dimensione fatata in cui fa ciò che vuole del proprio bersaglio. La potenza varia a seconda della mossa su cui si basa.", }, - "twinkleTackleSpecial": { - name: "Twinkle Tackle", - effect: "Dummy Data" + twinkleTackleSpecial: { + name: "Astroimpatto Fatato", + effect: "Dati Mancanti", }, - "catastropika": { - name: "Catastropika", - effect: "The user, Pikachu, surrounds itself with the maximum amount of electricity using its Z-Power and pounces on its target with full force." + catastropika: { + name: "Super Pikaboom", + effect: "Grazie al Potere Z, Pikachu accumula un'enorme quantità di energia elettrica e si lancia contro il bersaglio a tutta forza.", }, - "shoreUp": { - name: "Shore Up", - effect: "The user regains up to half of its max HP. It restores more HP in a sandstorm." + shoreUp: { + name: "Sabbiaccumulo", + effect: "Chi la usa recupera metà dei propri PS massimi. Durante le tempeste di sabbia ne recupera di più.", }, - "firstImpression": { - name: "First Impression", - effect: "Although this move has great power, it only works the first turn each time the user enters battle." + firstImpression: { + name: "Schermaglia", + effect: "È una mossa molto potente, ma funziona solo appena scesi in campo.", }, - "banefulBunker": { - name: "Baneful Bunker", - effect: "In addition to protecting the user from attacks, this move also poisons any attacker that makes direct contact." + banefulBunker: { + name: "Fortino", + effect: "L'utilizzatore si protegge e se l'avversario attacca con una mossa da contatto viene avvelenato.", }, - "spiritShackle": { - name: "Spirit Shackle", - effect: "The user attacks while simultaneously stitching the target's shadow to the ground to prevent the target from escaping." + spiritShackle: { + name: "Cucitura d'Ombra", + effect: "Chi la usa attacca il bersaglio e fissa la sua ombra a terra impedendogli di fuggire.", }, - "darkestLariat": { - name: "Darkest Lariat", - effect: "The user swings both arms and hits the target. The target's stat changes don't affect this attack's damage." + darkestLariat: { + name: "Braccioteso", + effect: "Chi la usa attacca il bersaglio mulinando gli arti. Il danno inflitto ignora le modifiche alle statistiche del bersaglio.", }, - "sparklingAria": { - name: "Sparkling Aria", - effect: "The user bursts into song, emitting many bubbles. Any Pokémon suffering from a burn will be healed by the touch of these bubbles." + sparklingAria: { + name: "Canto Effimero", + effect: "Chi la usa si mette a cantare emettendo tanti palloncini d’acqua. I Pokémon che subiscono danni da questa mossa guariscono dalle scottature.", }, - "iceHammer": { - name: "Ice Hammer", - effect: "The user swings and hits with its strong, heavy fist. It lowers the user's Speed, however." + iceHammer: { + name: "Martelgelo", + effect: "Infligge danni al bersaglio colpendolo con un pugno molto potente. Riduce la velocità di chi la usa.", }, - "floralHealing": { - name: "Floral Healing", - effect: "The user restores the target's HP by up to half of its max HP. It restores more HP when the terrain is grass." + floralHealing: { + name: "Cura Floreale", + effect: "Fa recuperare metà dei PS massimi al bersaglio. È più efficace quando il terreno di lotta è nello stato di Campo Erboso.", }, - "highHorsepower": { - name: "High Horsepower", - effect: "The user fiercely attacks the target using its entire body." + highHorsepower: { + name: "Forza Equina", + effect: "Il Pokémon travolge il bersaglio con un attacco possente.", }, - "strengthSap": { - name: "Strength Sap", - effect: "The user restores its HP by the same amount as the target's Attack stat. It also lowers the target's Attack stat." + strengthSap: { + name: "Assorbiforza", + effect: "Fa recuperare una quantità di PS pari all'Attacco del bersaglio, che vedrà diminuire questa statistica.", }, - "solarBlade": { - name: "Solar Blade", - effect: "In this two-turn attack, the user gathers light and fills a blade with the light's energy, attacking the target on the next turn." + solarBlade: { + name: "Lama Solare", + effect: "Il Pokémon assorbe la luce al primo turno per poi condensarla in una lama e attaccare al turno successivo.", }, - "leafage": { - name: "Leafage", - effect: "The user attacks by pelting the target with leaves." + leafage: { + name: "Fogliame", + effect: "Attacca il bersaglio con delle foglie.", }, - "spotlight": { - name: "Spotlight", - effect: "The user shines a spotlight on the target so that only the target will be attacked during the turn." + spotlight: { + name: "Riflettore", + effect: "Nessuna descrizione disponibile.", }, - "toxicThread": { - name: "Toxic Thread", - effect: "The user shoots poisonous threads to poison the target and lower the target's Speed stat." + toxicThread: { + name: "Velenotela", + effect: "Avvelena il bersaglio avvolgendolo con filamenti tossici e ne riduce la Velocità.", }, - "laserFocus": { - name: "Laser Focus", - effect: "The user concentrates intensely. The attack on the next turn always results in a critical hit." + laserFocus: { + name: "Concentrazione", + effect: "Chi la usa si concentra e nel turno successivo metterà sicuramente a segno un brutto colpo.", }, - "gearUp": { - name: "Gear Up", - effect: "The user engages its gears to raise the Attack and Sp. Atk stats of ally Pokémon with the Plus or Minus Ability." + gearUp: { + name: "Marciainpiù", + effect: "Dà una marcia in più agli alleati con le abilità Meno o Più aumentandone l’Attacco e l’Attacco Speciale.", }, - "throatChop": { - name: "Throat Chop", - effect: "The user attacks the target's throat, and the resultant suffering prevents the target from using moves that emit sound for two turns." + throatChop: { + name: "Colpo Infernale", + effect: "Chi viene colpito da questa mossa prova un dolore lancinante e non può più usare mosse basate sul suono per due turni.", }, - "pollenPuff": { - name: "Pollen Puff", - effect: "The user attacks the enemy with a pollen puff that explodes. If the target is an ally, it gives the ally a pollen puff that restores its HP instead." + pollenPuff: { + name: "Sferapolline", + effect: "Chi la usa attacca il nemico con una sfera esplosiva. Se colpisce degli alleati, fa recuperare loro dei PS.", }, - "anchorShot": { - name: "Anchor Shot", - effect: "The user entangles the target with its anchor chain while attacking. The target becomes unable to flee." + anchorShot: { + name: "Colpo d'Ancora", + effect: "Chi la usa colpisce il nemico con un'ancora e lo intrappola nella catena impedendogli di fuggire.", }, - "psychicTerrain": { - name: "Psychic Terrain", - effect: "This protects Pokémon on the ground from priority moves and powers up Psychic-type moves for five turns." + psychicTerrain: { + name: "Campo Psichico", + effect: "Per cinque turni il terreno entra nello stato di Campo Psichico: i Pokémon a terra non subiscono mosse ad alta priorità e la potenza delle mosse di tipo Psico aumenta.", }, - "lunge": { - name: "Lunge", - effect: "The user makes a lunge at the target, attacking with full force. This also lowers the target's Attack stat." + lunge: { + name: "Assalto", + effect: "Chi la usa si lancia con tutte le sue forze sul bersaglio e ne riduce l'Attacco.", }, - "fireLash": { - name: "Fire Lash", - effect: "The user strikes the target with a burning lash. This also lowers the target's Defense stat." + fireLash: { + name: "Frusta di Fuoco", + effect: "Colpisce il bersaglio con una frusta infuocata e ne riduce la Difesa.", }, - "powerTrip": { - name: "Power Trip", - effect: "The user boasts its strength and attacks the target. The more the user's stats are raised, the greater the move's power." + powerTrip: { + name: "Tracotanza", + effect: "Chi la usa attacca il bersaglio sfoggiando la propria forza. Più le sue statistiche sono state aumentate, più la mossa è potente.", }, - "burnUp": { - name: "Burn Up", - effect: "To inflict massive damage, the user burns itself out. After using this move, the user will no longer be Fire type." + burnUp: { + name: "Ultima Fiamma", + effect: "Chi la usa attacca sfruttando tutta la sua potenza incendiaria per infliggere gravi danni al bersaglio, ma come conseguenza perde il tipo Fuoco.", }, - "speedSwap": { - name: "Speed Swap", - effect: "The user exchanges Speed stats with the target." + speedSwap: { + name: "Velociscambio", + effect: "Chi la usa scambia la propria Velocità con quella del bersaglio.", }, - "smartStrike": { - name: "Smart Strike", - effect: "The user stabs the target with a sharp horn. This attack never misses." + smartStrike: { + name: "Sottilcorno", + effect: "Chi la usa colpisce il bersaglio con un corno appuntito. Questa mossa va sempre a segno.", }, - "purify": { - name: "Purify", - effect: "The user heals the target's status condition. If the move succeeds, it also restores the user's own HP." + purify: { + name: "Purificazione", + effect: "Il bersaglio della mossa viene curato dalle alterazioni di stato inoltre l'utilizzatore ripristina i propri PS se la mossa va a segno.", }, - "revelationDance": { - name: "Revelation Dance", - effect: "The user attacks the target by dancing very hard. The user's type determines the type of this move." + revelationDance: { + name: "Mutadanza", + effect: "Chi la usa si lancia in una danza e attacca il nemico con tutte le sue forze. Il tipo della mossa corrisponde al tipo del Pokémon che la usa.", }, - "coreEnforcer": { - name: "Core Enforcer", - effect: "If the Pokémon the user has inflicted damage on have already used their moves, this move eliminates the effect of the target's Ability." + coreEnforcer: { + name: "Nucleocastigo", + effect: "Il bersaglio subisce dei danni e, se ha già agito nel turno, perde la sua abilità.", }, - "tropKick": { - name: "Trop Kick", - effect: "The user lands an intense kick of tropical origins on the target. This also lowers the target's Attack stat." + tropKick: { + name: "Tropicalcio", + effect: "Chi la usa colpisce il bersaglio con un potente calcio sfruttando una tecnica originaria dei paesi tropicali e ne riduce l'Attacco.", }, - "instruct": { - name: "Instruct", - effect: "The user instructs the target to use the target's last move again." + instruct: { + name: "Imposizione", + effect: "Nessuna descrizione disponibile.", }, - "beakBlast": { - name: "Beak Blast", - effect: "The user first heats up its beak, and then it attacks the target. Making direct contact with the Pokémon while it's heating up its beak results in a burn." + beakBlast: { + name: "Cannonbecco", + effect: "Chi la usa arroventa il proprio becco e poi attacca. Se un Pokémon lo colpisce con un attacco diretto mentre sta accumulando calore, resta scottato.", }, - "clangingScales": { - name: "Clanging Scales", - effect: "The user rubs the scales on its entire body and makes a huge noise to attack opposing Pokémon. The user's Defense stat goes down after the attack." + clangingScales: { + name: "Clamorsquame", + effect: "Chi la usa attacca il bersaglio con un suono fortissimo che genera sfregando le scaglie del corpo. Dopo aver attaccato, la sua Difesa diminuisce.", }, - "dragonHammer": { - name: "Dragon Hammer", - effect: "The user uses its body like a hammer to attack the target and inflict damage." + dragonHammer: { + name: "Marteldrago", + effect: "Chi la usa infligge danni al bersaglio usando il proprio corpo come se fosse un martello.", }, - "brutalSwing": { - name: "Brutal Swing", - effect: "The user swings its body around violently to inflict damage on everything in its vicinity." + brutalSwing: { + name: "Vorticolpo", + effect: "Chi la usa infligge danni intorno a sé facendo ruotare una parte del suo corpo.", }, - "auroraVeil": { - name: "Aurora Veil", - effect: "This move reduces damage from physical and special moves for five turns. This can be used only when it is snowing." + auroraVeil: { + name: "Velaurora", + effect: "Questa mossa riduce i danni provocati dalle mosse fisiche e speciali per 5 turni. Può essere usata solo mentre grandina.", }, - "sinisterArrowRaid": { - name: "Sinister Arrow Raid", - effect: "The user, Decidueye, creates countless arrows using its Z-Power and shoots the target with full force." + sinisterArrowRaid: { + name: "Dardoassalto Spettrale", + effect: "Grazie al Potere Z, Decidueye crea una formazione di frecce che colpisce il bersaglio a gran velocità.", }, - "maliciousMoonsault": { - name: "Malicious Moonsault", - effect: "The user, Incineroar, strengthens its body using its Z-Power and crashes into the target with full force." + maliciousMoonsault: { + name: "Iperschianto delle Tenebre", + effect: "Grazie al Potere Z, Incineroar richiama tutta la sua forza e si lancia impetuosamente sul bersaglio.", }, - "oceanicOperetta": { - name: "Oceanic Operetta", - effect: "The user, Primarina, summons a massive amount of water using its Z-Power and attacks the target with full force." + oceanicOperetta: { + name: "Sinfonia del Mare", + effect: "Grazie al Potere Z, Primarina concentra un’enorme quantità d’acqua e attacca il bersaglio con una potenza smisurata.", }, - "guardianOfAlola": { - name: "Guardian of Alola", - effect: "The user, the Land Spirit Pokémon, obtains Alola's energy using its Z-Power and attacks the target with full force. This reduces the target's HP greatly." + guardianOfAlola: { + name: "Collera del Guardiano", + effect: "Grazie al Potere Z, il Nume Locale evoca l’energia di Alola e attacca con grande potenza, facendo perdere al bersaglio la maggior parte dei suoi PS.", }, - "soulStealing7StarStrike": { - name: "Soul-Stealing 7-Star Strike", - effect: "After obtaining Z-Power, the user, Marshadow, punches and kicks the target consecutively with full force." + soulStealing7StarStrike: { + name: "Colpo Eptastellare Rubanima", + effect: "Grazie al Potere Z, Marshadow fa appello a tutte le sue forze e colpisce il bersaglio con una scarica di calci e pugni potentissimi.", }, - "stokedSparksurfer": { - name: "Stoked Sparksurfer", - effect: "After obtaining Z-Power, the user, Alolan Raichu, attacks the target with full force. This move leaves the target with paralysis." + stokedSparksurfer: { + name: "Elettrosurf Folgorante", + effect: "Grazie al Potere Z, il Raichu di Alola attacca con tutta la sua potenza e paralizza il bersaglio.", }, - "pulverizingPancake": { - name: "Pulverizing Pancake", - effect: "Z-Power brings out the true capabilities of the user, Snorlax. The Pokémon moves its enormous body energetically and attacks the target with full force." + pulverizingPancake: { + name: "Adesso Faccio sul Serio", + effect: "Grazie al Potere Z, Snorlax tira fuori la grinta e, muovendo energicamente il suo enorme corpo, attacca il bersaglio con tutta la sua forza.", }, - "extremeEvoboost": { - name: "Extreme Evoboost", - effect: "After obtaining Z-Power, the user, Eevee, gets energy from its evolved friends and boosts its stats sharply." + extremeEvoboost: { + name: "Potenziamento Eevolutivo", + effect: "Grazie al Potere Z, Eevee evoca a sé tutta l’energia delle sue possibili evoluzioni e aumenta di molto le sue statistiche", }, - "genesisSupernova": { - name: "Genesis Supernova", - effect: "After obtaining Z-Power, the user, Mew, attacks the target with full force. The terrain will be charged with psychic energy." + genesisSupernova: { + name: "Supernova delle Origini", + effect: "Grazie al Potere Z, Mew attacca il bersaglio con tutta la sua forza e genera un Campo Psichico a terra.", }, - "shellTrap": { - name: "Shell Trap", - effect: "The user sets a shell trap. If the user is hit by a physical move, the trap will explode and inflict damage on opposing Pokémon." + shellTrap: { + name: "Gusciotrappola", + effect: "Il guscio del Pokémon diventa una trappola. Se un nemico lo colpisce con una mossa fisica, innesca un'esplosione e subisce dei danni.", }, - "fleurCannon": { - name: "Fleur Cannon", - effect: "The user unleashes a strong beam. The attack's recoil harshly lowers the user's Sp. Atk stat." + fleurCannon: { + name: "Cannonfiore", + effect: "Colpisce il bersaglio con un potente raggio, ma riduce di molto l'Attacco Speciale di chi la usa.", }, - "psychicFangs": { - name: "Psychic Fangs", - effect: "The user bites the target with its psychic capabilities. This can also destroy Light Screen and Reflect." + psychicFangs: { + name: "Psicozanna", + effect: "L'utilizzatore morde il bersaglio, rompendo barriere come Schermoluce e Riflesso.", }, - "stompingTantrum": { - name: "Stomping Tantrum", - effect: "Driven by frustration, the user attacks the target. If the user's previous move has failed, the power of this move doubles." + stompingTantrum: { + name: "Battipiedi", + effect: "Chi la usa attacca battendo i piedi per la rabbia. Se la mossa usata al turno precedente non è andata a segno, la potenza raddoppia.", }, - "shadowBone": { - name: "Shadow Bone", - effect: "The user attacks by beating the target with a bone that contains a spirit. This may also lower the target's Defense stat." + shadowBone: { + name: "Ossotetro", + effect: "Chi la usa colpisce il bersaglio con un osso in cui alberga uno spirito. Può anche ridurne la Difesa.", }, - "accelerock": { - name: "Accelerock", - effect: "The user smashes into the target at high speed. This move always goes first." + accelerock: { + name: "Rocciarapida", + effect: "Chi la usa attacca il bersaglio colpendolo a tutta velocità. Questa mossa ha priorità alta.", }, - "liquidation": { - name: "Liquidation", - effect: "The user slams into the target using a full-force blast of water. This may also lower the target's Defense stat." + liquidation: { + name: "Idrobreccia", + effect: "Chi la usa colpisce il bersaglio con la forza dell'acqua. Può anche ridurne la Difesa.", }, - "prismaticLaser": { - name: "Prismatic Laser", - effect: "The user shoots powerful lasers using the power of a prism. The user can't move on the next turn." + prismaticLaser: { + name: "Prismalaser", + effect: "Chi la usa proietta dei potenti raggi di luce grazie alla potenza del suo prisma, ma non può agire nel turno successivo.", }, - "spectralThief": { - name: "Spectral Thief", - effect: "The user hides in the target's shadow, steals the target's stat boosts, and then attacks." + spectralThief: { + name: "Ombrafurto", + effect: "Chi la usa ruba gli aumenti delle statistiche del bersaglio, poi si nasconde nella sua ombra e lo attacca.", }, - "sunsteelStrike": { - name: "Sunsteel Strike", - effect: "The user slams into the target with the force of a meteor. This move can be used on the target regardless of its Abilities." + sunsteelStrike: { + name: "Astrocarica", + effect: "Chi la usa travolge il bersaglio con la potenza di una meteora. Questo attacco ignora l'abilità del bersaglio.", }, - "moongeistBeam": { - name: "Moongeist Beam", - effect: "The user emits a sinister ray to attack the target. This move can be used on the target regardless of its Abilities." + moongeistBeam: { + name: "Raggio d'Ombra", + effect: "Chi la usa proietta sul bersaglio un misterioso raggio di luce. Questo attacco ignora l'abilità del bersaglio.", }, - "tearfulLook": { - name: "Tearful Look", - effect: "The user gets teary eyed to make the target lose its combative spirit. This lowers the target's Attack and Sp. Atk stats." + tearfulLook: { + name: "Occhionilucidi", + effect: "Chi la usa guarda il bersaglio con gli occhi pieni di lacrime e gli fa perdere lo spirito combattivo, riducendone l'Attacco e l'Attacco Speciale", }, - "zingZap": { - name: "Zing Zap", - effect: "A strong electric blast crashes down on the target, giving it an electric shock. This may also make the target flinch." + zingZap: { + name: "Elettropizzico", + effect: "Chi la usa colpisce il bersaglio investendolo con una potente scarica elettrica che può anche farlo tentennare.", }, - "naturesMadness": { - name: "Nature's Madness", - effect: "The user hits the target with the force of nature. It halves the target's HP." + naturesMadness: { + name: "Ira della Natura", + effect: "Scatena l’ira della natura sul bersaglio e ne dimezza i PS.", }, - "multiAttack": { - name: "Multi-Attack", - effect: "Cloaking itself in high energy, the user slams into the target. The memory held determines the move's type." + multiAttack: { + name: "Multiattacco", + effect: "Chi la usa si avvolge in un potente campo energetico e colpisce il bersaglio. Il tipo della mossa varia in base alla ROM installata.", }, - "tenMillionVoltThunderbolt": { - name: "10,000,000 Volt Thunderbolt", - effect: "The user, Pikachu wearing a cap, powers up a jolt of electricity using its Z-Power and unleashes it. Critical hits land more easily." + tenMillionVoltThunderbolt: { + name: "Iperfulmine", + effect: "Grazie al Potere Z, Pikachu con il berretto scatena una potentissima scarica elettrica. Probabile brutto colpo.", }, - "mindBlown": { - name: "Mind Blown", - effect: "The user attacks everything around it by causing its own head to explode. This also damages the user." + mindBlown: { + name: "Sbalorditesta", + effect: "Chi la usa fa esplodere la propria testa per attaccare tutti i Pokémon che ha intorno, ma subisce danni.", }, - "plasmaFists": { - name: "Plasma Fists", - effect: "The user attacks with electrically charged fists. This move changes Normal-type moves to Electric-type moves." + plasmaFists: { + name: "Pugni Plasma", + effect: "Chi la usa attacca con pugni carichi di elettricità. Trasforma le mosse di tipo Normale in mosse di tipo Elettro.", }, - "photonGeyser": { - name: "Photon Geyser", - effect: "The user attacks a target with a pillar of light. This move inflicts Attack or Sp. Atk damage—whichever stat is higher for the user." + photonGeyser: { + name: "Geyser Fotonico", + effect: "Infligge danni in base all’Attacco o all’Attacco Speciale scegliendo il più alto tra i due. Questo attacco ignora l’abilità del bersaglio.", }, - "lightThatBurnsTheSky": { - name: "Light That Burns the Sky", - effect: "This attack inflicts Attack or Sp. Atk damage—whichever stat is higher for the user, Necrozma. This move ignores the target's Ability." + lightThatBurnsTheSky: { + name: "Fotodistruzione Apocalittica", + effect: "Infligge danni in base all’Attacco o all’Attacco Speciale scegliendo il più alto tra i due. Questo attacco ignora l’abilità del bersaglio.", }, - "searingSunrazeSmash": { - name: "Searing Sunraze Smash", - effect: "After obtaining Z-Power, the user, Solgaleo, attacks the target with full force. This move can ignore the effect of the target's Ability." + searingSunrazeSmash: { + name: "Supercollisione Solare", + effect: "Grazie al Potere Z, Solgaleo attacca il bersaglio con tutta la sua forza. Questo attacco ignora l’abilità del bersaglio se questa ha effetto sulle mosse.", }, - "menacingMoonrazeMaelstrom": { - name: "Menacing Moonraze Maelstrom", - effect: "After obtaining Z-Power, the user, Lunala, attacks the target with full force. This move can ignore the effect of the target's Ability." + menacingMoonrazeMaelstrom: { + name: "Deflagrazione Lunare", + effect: "Grazie al Potere Z, Lunala attacca il bersaglio con tutta la sua forza. Questo attacco ignora l’abilità del bersaglio se questa ha effetto sulle mosse.", }, - "letsSnuggleForever": { - name: "Let's Snuggle Forever", - effect: "After obtaining Z-Power, the user, Mimikyu, punches the target with full force." + letsSnuggleForever: { + name: "Dolcesacco di Botte", + effect: "Grazie al Potere Z, Mimikyu fa appello a tutte le sue forze e attacca il bersaglio tempestandolo di colpi.", }, - "splinteredStormshards": { - name: "Splintered Stormshards", - effect: "After obtaining Z-Power, the user, Lycanroc, attacks the target with full force. This move negates the effect on the battlefield." + splinteredStormshards: { + name: "Litotempesta Radiale", + effect: "Grazie al Potere Z, Lycanroc attacca il bersaglio con tutta la sua forza. Questa mossa annulla anche gli eventuali campi attivi.", }, - "clangorousSoulblaze": { - name: "Clangorous Soulblaze", - effect: "After obtaining Z-Power, the user, Kommo-o, attacks the opposing Pokémon with full force. This move boosts the user's stats." + clangorousSoulblaze: { + name: "Dracofonia Divampante", + effect: "Grazie al Potere Z, Kommo-o attacca i nemici con tutta la sua forza. Inoltre, aumenta le proprie statistiche.", }, - "zippyZap": { - name: "Zippy Zap", - effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and results in a critical hit." + zippyZap: { + name: "Sprintaboom", + effect: "Un attacco elettrico ad altissima velocità. Questa mossa ha priorità alta e infligge sicuramente un brutto colpo.", }, - "splishySplash": { - name: "Splishy Splash", - effect: "The user charges a huge wave with electricity and hits the opposing Pokémon with the wave. This may also leave the opposing Pokémon with paralysis." + splishySplash: { + name: "Surfasplash", + effect: "Colpisce il bersaglio con un'enorme onda caricata di elettricità che può anche paralizzarlo.", }, - "floatyFall": { - name: "Floaty Fall", - effect: "The user floats in the air, and then dives at a steep angle to attack the target. This may also make the target flinch." + floatyFall: { + name: "Piombaflap", + effect: "Chi la usa si libra in aria per poi piombare addosso al bersaglio. Può anche far tentennare il Pokémon colpito.", }, - "pikaPapow": { - name: "Pika Papow", - effect: "The more Pikachu loves its Trainer, the greater the move's power. It never misses." + pikaPapow: { + name: "Pikasaetta", + effect: "Questa mossa infallibile diventa più potente con il rafforzarsi del rapporto tra Pikachu e l'Allenatore.", }, - "bouncyBubble": { - name: "Bouncy Bubble", - effect: "The user attacks by shooting water bubbles at the target. It then absorbs water and restores its HP by half the damage taken by the target." + bouncyBubble: { + name: "Bollaslurp", + effect: "Chi la usa colpisce il bersaglio con una raffica di bolle, per poi assorbirle e recuperare una quantità di PS pari alla metà del danno inferto.", }, - "buzzyBuzz": { - name: "Buzzy Buzz", - effect: "The user shoots a jolt of electricity to attack the target. This also leaves the target with paralysis." + buzzyBuzz: { + name: "Elettrozap", + effect: "Colpisce il bersaglio con una scarica elettrica che lo paralizza.", }, - "sizzlySlide": { - name: "Sizzly Slide", - effect: "The user cloaks itself in fire and charges at the target. This also leaves the target with a burn." + sizzlySlide: { + name: "Fiammabam", + effect: "Chi la usa viene avvolto dalle fiamme e colpisce il bersaglio con forza, scottandolo.", }, - "glitzyGlow": { - name: "Glitzy Glow", - effect: "The user bombards the target with telekinetic force. A wondrous wall of light is put up to weaken the power of the opposing Pokémon's special moves." + glitzyGlow: { + name: "Auraswoosh", + effect: "Colpisce il bersaglio ripetutamente con onde di forza psicocinetica e innalza una barriera fantastica che riduce i danni degli attacchi speciali nemici.", }, - "baddyBad": { - name: "Baddy Bad", - effect: "The user acts bad and attacks the target. A wondrous wall of light is put up to weaken the power of the opposing Pokémon's physical moves." + baddyBad: { + name: "Zona Buiabuia", + effect: "Chi la usa scatena l’oscurità che ha dentro, colpendo il bersaglio e innalzando una barriera fantastica che riduce i danni degli attacchi fisici nemici.", }, - "sappySeed": { - name: "Sappy Seed", - effect: "The user grows a gigantic stalk that scatters seeds to attack the target. The seeds drain the target's HP every turn." + sappySeed: { + name: "Bombafrush", + effect: "Fa crescere un'enorme pianta che colpisce il bersaglio con una pioggia di semi. Questi sottraggono PS a ogni turno permettendo a chi la usa di curarsi.", }, - "freezyFrost": { - name: "Freezy Frost", - effect: "The user attacks with a crystal made of cold frozen haze. It eliminates every stat change among all the Pokémon engaged in battle." + freezyFrost: { + name: "Scricchiagelo", + effect: "Chi la usa attacca il bersaglio con un cristallo formato da una nube nera congelata, che annulla ogni modifica alle statistiche di tutti i Pokémon.", }, - "sparklySwirl": { - name: "Sparkly Swirl", - effect: "The user attacks the target by wrapping it with a whirlwind of an overpowering scent. This also heals all status conditions of the user's party." + sparklySwirl: { + name: "Sbrilluccibufera", + effect: "Chi la usa attacca il bersaglio avvolgendolo in un turbine di profumi soffocanti e cura i problemi di stato propri e degli alleati.", }, - "veeveeVolley": { - name: "Veevee Volley", - effect: "The more Eevee loves its Trainer, the greater the move's power. It never misses." + veeveeVolley: { + name: "Eeveempatto", + effect: "Questa mossa infallibile diventa più potente con il rafforzarsi del rapporto tra Eevee e l'Allenatore.", }, - "doubleIronBash": { - name: "Double Iron Bash", - effect: "The user rotates, centering the hex nut in its chest, and then strikes with its arms twice in a row. This may also make the target flinch." + doubleIronBash: { + name: "Pugni Corazzati", + effect: "L'utilizzatore ruota, centrando il dado esagonale nel petto, quindi colpisce con le braccia due volte di seguito. Ciò potrebbe anche far tentennare il bersaglio.", }, - "maxGuard": { - name: "Max Guard", - effect: "This move enables the user to protect itself from all attacks. Its chance of failing rises if it is used in succession." + maxGuard: { + name: "Dynabarriera", + effect: "Questa mossa permette di eludere tutti gli attacchi. Se usata in successione può fallire.", }, - "dynamaxCannon": { - name: "Dynamax Cannon", - effect: "The user unleashes a strong beam from its core. This move deals twice the damage if the target is over level 200." + dynamaxCannon: { + name: "Cannone Dynamax", + effect: "Il Pokémon attacca emettendo dal suo nucleo l'energia concentrata nel corpo.", }, - "snipeShot": { - name: "Snipe Shot", - effect: "The user ignores the effects of opposing Pokémon's moves and Abilities that draw in moves, allowing this move to hit the chosen target." + snipeShot: { + name: "Tiromirato", + effect: "Permette di attaccare il bersaglio ignorando gli effetti di mosse e abilità che alterano le mosse", }, - "jawLock": { - name: "Jaw Lock", - effect: "This move prevents the user and the target from switching out until either of them faints. The effect goes away if either of the Pokémon leaves the field." + jawLock: { + name: "Morsostretto", + effect: "Impedisce a chi la usa e al bersaglio di essere sostituiti finché non vanno KO. L'effetto svanisce se uno dei due lascia il campo.", }, - "stuffCheeks": { - name: "Stuff Cheeks", - effect: "The user eats its held Berry, then sharply raises its Defense stat." + stuffCheeks: { + name: "Riempiguance", + effect: "Se chi la usa ha con sé una bacca, la mangia e la sua Difesa aumenta di molto.", }, - "noRetreat": { - name: "No Retreat", - effect: "This move raises all the user's stats but prevents the user from switching out or fleeing." + noRetreat: { + name: "Spalle al Muro", + effect: "Il Pokémon aumenta tutte le sue statistiche ma non può più fuggire o essere sostituito.", }, - "tarShot": { - name: "Tar Shot", - effect: "The user pours sticky tar over the target, lowering the target's Speed stat. The target becomes weaker to Fire-type moves." + tarShot: { + name: "Colpocatrame", + effect: "Chi la usa getta catrame appiccicoso sul bersaglio abbassandone la Velocità e rendendolo vulnerabile al tipo Fuoco.", }, - "magicPowder": { - name: "Magic Powder", - effect: "The user scatters a cloud of magic powder that changes the target to Psychic type." + magicPowder: { + name: "Magipolvere", + effect: "Chi la usa getta addosso al bersaglio una polvere magica che lo rende di tipo Psico.", }, - "dragonDarts": { - name: "Dragon Darts", - effect: "The user attacks twice using Dreepy. If there are two targets, this move hits each target once." + dragonDarts: { + name: "Dragofrecce", + effect: "L'utilizzatore attacca due volte usando Dreepy. Se ci sono due obiettivi, questa mossa colpisce una volta ogni obiettivo.", }, - "teatime": { - name: "Teatime", - effect: "The user has teatime with all the Pokémon in the battle. Each Pokémon eats its held Berry." + teatime: { + name: "Ora del Tè", + effect: "Chi la usa invita tutti i Pokémon in campo a prendere il tè. Quelli che hanno con sé una bacca la mangiano.", }, - "octolock": { - name: "Octolock", - effect: "The user locks the target in and prevents it from fleeing. This move also lowers the target's Defense and Sp. Def every turn." + octolock: { + name: "Tentacolock", + effect: "Chi la usa immobilizza il bersaglio impedendogli di fuggire e ne diminuisce la Difesa e la Difesa Speciale a ogni turno.", }, - "boltBeak": { - name: "Bolt Beak", - effect: "The user stabs the target with its electrified beak. If the user attacks before the target, the power of this move is doubled." + boltBeak: { + name: "Beccoshock", + effect: "Chi la usa attacca il bersaglio con il becco appuntito carico d'elettricità. Se attacca per primo, la potenza della mossa raddoppia.", }, - "fishiousRend": { - name: "Fishious Rend", - effect: "The user rends the target with its hard gills. If the user attacks before the target, the power of this move is doubled." + fishiousRend: { + name: "Branchiomorso", + effect: "Chi la usa morde il bersaglio con le dure branchie. Se attacca per primo, la potenza della mossa raddoppia.", }, - "courtChange": { - name: "Court Change", - effect: "With its mysterious power, the user swaps the effects on either side of the field." + courtChange: { + name: "Cambiocampo", + effect: "Una forza misteriosa inverte gli effetti attivi sul campo alleato e sul campo avversario.", }, - "maxFlare": { - name: "Max Flare", - effect: "This is a Fire-type attack Dynamax Pokémon use. The user intensifies the sun for five turns." + maxFlare: { + name: "Dynafiammata", + effect: "Un attacco di tipo Fuoco che può essere eseguito dai Pokémon dynamaxizzati. Intensifica i raggi solari per cinque turni.", }, - "maxFlutterby": { - name: "Max Flutterby", - effect: "This is a Bug-type attack Dynamax Pokémon use. This lowers the target's Sp. Atk stat." + maxFlutterby: { + name: "Dynainsetto", + effect: "Un attacco di tipo Coleottero che può essere eseguito dai Pokémon dynamaxizzati. Riduce l'Attacco Speciale degli avversari.", }, - "maxLightning": { - name: "Max Lightning", - effect: "This is an Electric-type attack Dynamax Pokémon use. The user turns the ground into Electric Terrain for five turns." + maxLightning: { + name: "Dynasaetta", + effect: "Un attacco di tipo Elettro che può essere eseguito dai Pokémon dynamaxizzati. Per cinque turni il terreno entra nello stato di Campo Elettrico.", }, - "maxStrike": { - name: "Max Strike", - effect: "This is a Normal-type attack Dynamax Pokémon use. This lowers the target's Speed stat." + maxStrike: { + name: "Dynattacco", + effect: "Un attacco di tipo Normale che può essere eseguito dai Pokémon dynamaxizzati. Riduce la Velocità degli avversari.", }, - "maxKnuckle": { - name: "Max Knuckle", - effect: "This is a Fighting-type attack Dynamax Pokémon use. This raises ally Pokémon's Attack stats." + maxKnuckle: { + name: "Dynapugno", + effect: "Un attacco di tipo Lotta che può essere eseguito dai Pokémon dynamaxizzati. Aumenta l'Attacco degli alleati.", }, - "maxPhantasm": { - name: "Max Phantasm", - effect: "This is a Ghost-type attack Dynamax Pokémon use. This lowers the target's Defense stat." + maxPhantasm: { + name: "Dynavuoto", + effect: "Un attacco di tipo Spettro che può essere eseguito dai Pokémon dynamaxizzati. Riduce la Difesa degli avversari.", }, - "maxHailstorm": { - name: "Max Hailstorm", - effect: "This is an Ice-type attack Dynamax Pokémon use. The user summons a hailstorm lasting five turns." + maxHailstorm: { + name: "Dynagelo", + effect: "Un attacco di tipo Ghiaccio che può essere eseguito dai Pokémon dynamaxizzati. Causa una nevicata che dura per cinque turni.", }, - "maxOoze": { - name: "Max Ooze", - effect: "This is a Poison-type attack Dynamax Pokémon use. This raises ally Pokémon's Sp. Atk stats." + maxOoze: { + name: "Dynacorrosione", + effect: "Un attacco di tipo Veleno che può essere eseguito dai Pokémon dynamaxizzati. Aumenta l'Attacco Speciale degli alleati.", }, - "maxGeyser": { - name: "Max Geyser", - effect: "This is a Water-type attack Dynamax Pokémon use. The user summons a heavy rain that falls for five turns." + maxGeyser: { + name: "Dynaflusso", + effect: "Un attacco di tipo Acqua che può essere eseguito dai Pokémon dynamaxizzati. Provoca una forte pioggia per cinque turni.", }, - "maxAirstream": { - name: "Max Airstream", - effect: "This is a Flying-type attack Dynamax Pokémon use. This raises ally Pokémon's Speed stats." + maxAirstream: { + name: "Dynajet", + effect: "Un attacco di tipo Volante che può essere eseguito dai Pokémon dynamaxizzati. Aumenta la Velocità degli alleati.", }, - "maxStarfall": { - name: "Max Starfall", - effect: "This is a Fairy-type attack Dynamax Pokémon use. The user turns the ground into Misty Terrain for five turns." + maxStarfall: { + name: "Dynafata", + effect: "Un attacco di tipo Folletto che può essere eseguito dai Pokémon dynamaxizzati. Per cinque turni il terreno entra nello stato di Campo Nebbioso.", }, - "maxWyrmwind": { - name: "Max Wyrmwind", - effect: "This is a Dragon-type attack Dynamax Pokémon use. This lowers the target's Attack stat." + maxWyrmwind: { + name: "Dynadragone", + effect: "Un attacco di tipo Drago che può essere eseguito dai Pokémon dynamaxizzati. Riduce l'Attacco degli avversari.", }, - "maxMindstorm": { - name: "Max Mindstorm", - effect: "This is a Psychic-type attack Dynamax Pokémon use. The user turns the ground into Psychic Terrain for five turns." + maxMindstorm: { + name: "Dynapsiche", + effect: "Un attacco di tipo Psico che può essere eseguito dai Pokémon dynamaxizzati. Per cinque turni il terreno entra nello stato di Campo Psichico.", }, - "maxRockfall": { - name: "Max Rockfall", - effect: "This is a Rock-type attack Dynamax Pokémon use. The user summons a sandstorm lasting five turns." + maxRockfall: { + name: "Dynamacigno", + effect: "Un attacco di tipo Roccia che può essere eseguito dai Pokémon dynamaxizzati. Causa una tempesta di sabbia per cinque turni.", }, - "maxQuake": { - name: "Max Quake", - effect: "This is a Ground-type attack Dynamax Pokémon use. This raises ally Pokémon's Sp. Def stats." + maxQuake: { + name: "Dynasisma", + effect: "Un attacco di tipo Terra che può essere eseguito dai Pokémon dynamaxizzati. Aumenta la Difesa Speciale degli alleati.", }, - "maxDarkness": { - name: "Max Darkness", - effect: "This is a Dark-type attack Dynamax Pokémon use. This lowers the target's Sp. Def stat." + maxDarkness: { + name: "Dynatenebre", + effect: "Un attacco di tipo Buio che può essere eseguito dai Pokémon dynamaxizzati. Riduce la Difesa Speciale degli avversari.", }, - "maxOvergrowth": { - name: "Max Overgrowth", - effect: "This is a Grass-type attack Dynamax Pokémon use. The user turns the ground into Grassy Terrain for five turns." + maxOvergrowth: { + name: "Dynaflora", + effect: "Un attacco di tipo Erba che può essere eseguito dai Pokémon dynamaxizzati. Per cinque turni il terreno entra nello stato di Campo Erboso.", }, - "maxSteelspike": { - name: "Max Steelspike", - effect: "This is a Steel-type attack Dynamax Pokémon use. This raises ally Pokémon's Defense stats." + maxSteelspike: { + name: "Dynametallo", + effect: "Un attacco di tipo Acciaio che può essere eseguito dai Pokémon dynamaxizzati. Aumenta la Difesa degli alleati.", }, - "clangorousSoul": { - name: "Clangorous Soul", - effect: "The user raises all its stats by using some of its HP." + clangorousSoul: { + name: "Dracofonia", + effect: "Chi la usa sacrifica un po' dei suoi PS per aumentare tutte le sue statistiche.", }, - "bodyPress": { - name: "Body Press", - effect: "The user attacks by slamming its body into the target. The higher the user's Defense, the more damage it can inflict on the target." + bodyPress: { + name: "Schiacciacorpo", + effect: "Chi la usa schiaccia il bersaglio con il suo corpo. Più la sua Difesa è alta, maggiori sono i danni inflitti.", }, - "decorate": { - name: "Decorate", - effect: "The user sharply raises the target's Attack and Sp. Atk stats by decorating the target." + decorate: { + name: "Decorazione", + effect: "Chi la usa agghinda il bersaglio con delle decorazioni aumentandone di molto l'Attacco e l'Attacco Speciale.", }, - "drumBeating": { - name: "Drum Beating", - effect: "The user plays its drum, controlling the drum's roots to attack the target. This also lowers the target's Speed stat." + drumBeating: { + name: "Tamburattacco", + effect: "Chi la usa percuote il proprio tamburo per controllarne le radici e attaccare il bersaglio, riducendone la Velocità.", }, - "snapTrap": { - name: "Snap Trap", - effect: "The user snares the target in a snap trap for four to five turns." + snapTrap: { + name: "Tagliola", + effect: "Chi la usa intrappola il bersaglio in una tagliola e lo attacca per quattro o cinque turni.", }, - "pyroBall": { - name: "Pyro Ball", - effect: "The user attacks by igniting a small stone and launching it as a fiery ball at the target. This may also leave the target with a burn." + pyroBall: { + name: "Palla Infuocata", + effect: "l Pokémon attacca con una palla creata incendiando una piccola pietra. Può anche scottare il bersaglio.", }, - "behemothBlade": { - name: "Behemoth Blade", - effect: "The user wields a large, powerful sword using its whole body and cuts the target in a vigorous attack." + behemothBlade: { + name: "Taglio Maestoso", + effect: "Il Pokémon brandisce un'enorme spada e attacca vibrando un poderoso fendente.", }, - "behemothBash": { - name: "Behemoth Bash", - effect: "The user's body becomes a firm shield and slams into the target fiercely." + behemothBash: { + name: "Colpo Maestoso", + effect: "Il Pokémon trasforma il suo corpo in un robusto scudo e attacca caricando con forza.", }, - "auraWheel": { - name: "Aura Wheel", - effect: "Morpeko attacks and raises its Speed with the energy stored in its cheeks. This move's type changes depending on the user's form." + auraWheel: { + name: "Ruota d'Aura", + effect: "Il Pokémon emette l'energia accumulata nelle guance per attaccare e aumentare la Velocità. Il tipo della mossa cambia in base alla forma assunta da Morpeko.", }, - "breakingSwipe": { - name: "Breaking Swipe", - effect: "The user swings its tough tail wildly and attacks opposing Pokémon. This also lowers their Attack stats." + breakingSwipe: { + name: "Vastoimpatto", + effect: "Chi la usa attacca i nemici intorno con la sua robusta coda riducendone l'Attacco.", }, - "branchPoke": { - name: "Branch Poke", - effect: "The user attacks the target by poking it with a sharply pointed branch." + branchPoke: { + name: "Ramostoccata", + effect: "Chi la usa attacca il bersaglio con un ramo incredibilmente appuntito.", }, - "overdrive": { + overdrive: { name: "Overdrive", - effect: "The user attacks opposing Pokémon by twanging a guitar or bass guitar, causing a huge echo and strong vibration." + effect: "Chi la usa suona la chitarra o il basso creando un'onda sonora potentissima con cui attacca il bersaglio.", }, - "appleAcid": { - name: "Apple Acid", - effect: "The user attacks the target with an acidic liquid created from tart apples. This also lowers the target's Sp. Def stat." + appleAcid: { + name: "Acido Malico", + effect: "Il Pokémon attacca il bersaglio con un liquido acido ricavato da mele aspre riducendone la Difesa Speciale.", }, - "gravApple": { - name: "Grav Apple", - effect: "The user inflicts damage by dropping an apple from high above. This also lowers the target's Defense stat." + gravApple: { + name: "Forza G", + effect: "Il Pokémon fa cadere una mela sul bersaglio da una grande altezza, infliggendogli danni e riducendone la Difesa.", }, - "spiritBreak": { - name: "Spirit Break", - effect: "The user attacks the target with so much force that it could break the target's spirit. This also lowers the target's Sp. Atk stat." + spiritBreak: { + name: "Frantumanima", + effect: "Chi la usa attacca il bersaglio con un tale impeto da fargli perdere la voglia di lottare e ne riduce l'Attacco Speciale", }, - "strangeSteam": { - name: "Strange Steam", - effect: "The user attacks the target by emitting steam. This may also confuse the target." + strangeSteam: { + name: "Vapore Incantato", + effect: "Il Pokémon attacca il bersaglio con getti di vapore che possono anche confonderlo.", }, - "lifeDew": { - name: "Life Dew", - effect: "The user scatters mysterious water around and restores the HP of itself and its ally Pokémon in the battle." + lifeDew: { + name: "Goccia Vitale", + effect: "Il Pokémon sparge tutt'intorno dell'acqua misteriosa che fa recuperare PS a sé e agli alleati in campo.", }, - "obstruct": { - name: "Obstruct", - effect: "This move enables the user to protect itself from all attacks. Its chance of failing rises if it is used in succession. Direct contact harshly lowers the attacker's Defense stat." + obstruct: { + name: "Sbarramento", + effect: "Permette di eludere tutti gli attacchi. Se usata in successione può fallire. Se un Pokémon tocca chi la usa, la sua Difesa diminuisce di molto.", }, - "falseSurrender": { - name: "False Surrender", - effect: "The user pretends to bow its head, but then it stabs the target with its disheveled hair. This attack never misses." + falseSurrender: { + name: "Supplicolpo", + effect: "Chi la usa finge di abbassare la testa a mo' di supplica e attacca il bersaglio con i suoi capelli scarmigliati. Questa mossa va sempre a segno.", }, - "meteorAssault": { - name: "Meteor Assault", - effect: "The user attacks wildly with its thick leek. The user can't move on the next turn, because the force of this move makes it stagger." + meteorAssault: { + name: "Sfolgorassalto", + effect: "Chi la usa attacca il bersaglio brandendo un grosso gambo, ma perde l'equilibrio e nel turno successivo non può agire.", }, - "eternabeam": { - name: "Eternabeam", - effect: "This is Eternatus's most powerful attack in its original form. The user can't move on the next turn." + eternabeam: { + name: "Raggio Infinito", + effect: "È l'attacco più potente di Eternatus quando assume la sua forma originale. Nel turno successivo non può agire.", }, - "steelBeam": { - name: "Steel Beam", - effect: "The user fires a beam of steel that it collected from its entire body. This also damages the user." + steelBeam: { + name: "Raggio d'Acciaio", + effect: "Il Pokémon utilizza l'acciaio del proprio corpo per sparare un violento raggio, ma subisce danni.", }, - "expandingForce": { - name: "Expanding Force", - effect: "The user attacks the target with its psychic power. This move's power goes up and damages all opposing Pokémon on Psychic Terrain." + expandingForce: { + name: "Vastenergia", + effect: "Chi la usa attacca il bersaglio con energia psichica. Se utilizzata quando è attivo un Campo Psichico, la mossa aumenta di potenza e danneggia tutti i nemici.", }, - "steelRoller": { - name: "Steel Roller", - effect: "The user attacks while destroying the terrain. This move fails when the ground hasn't turned into a terrain." + steelRoller: { + name: "Ferrorullo", + effect: "Chi la usa attacca eliminando lo stato del terreno di lotta. La mossa fallisce se nel terreno non è attivo alcuno stato.", }, - "scaleShot": { - name: "Scale Shot", - effect: "The user attacks by shooting scales two to five times in a row. This move boosts the user's Speed stat but lowers its Defense stat." + scaleShot: { + name: "Squamacolpo", + effect: "Il Pokémon attacca lanciando delle squame da due a cinque volte di fila. Aumenta la Velocità di chi la usa, ma ne riduce la Difesa.", }, - "meteorBeam": { - name: "Meteor Beam", - effect: "In this two-turn attack, the user gathers space power and boosts its Sp. Atk stat, then attacks the target on the next turn." + meteorBeam: { + name: "Raggiometeora", + effect: "Chi la usa accumula l'energia dello spazio nel primo turno per aumentare l'Attacco Speciale, quindi attacca nel turno successivo.", }, - "shellSideArm": { - name: "Shell Side Arm", - effect: "This move inflicts physical or special damage, whichever will be more effective. This may also poison the target." + shellSideArm: { + name: "Armaguscio", + effect: "Il Pokémon esegue un attacco fisico o speciale, in base a quale causa danni maggiori. Può anche avvelenare il bersaglio.", }, - "mistyExplosion": { - name: "Misty Explosion", - effect: "The user attacks everything around it and faints upon using this move. This move's power is increased on Misty Terrain." + mistyExplosion: { + name: "Nebbioscoppio", + effect: "Chi la usa attacca tutti i Pokémon che ha intorno, ma poi va KO. La potenza delle mosse aumenta quando è attivo un Campo Nebbioso.", }, - "grassyGlide": { - name: "Grassy Glide", - effect: "Gliding on the ground, the user attacks the target. This move always goes first on Grassy Terrain." + grassyGlide: { + name: "Erboscivolata", + effect: "Chi la usa attacca il bersaglio scivolando sul terreno. Se utilizzata quando è attivo un Campo Erboso, ha priorità alta.", }, - "risingVoltage": { - name: "Rising Voltage", - effect: "The user attacks with electric voltage rising from the ground. This move's power doubles when the target is on Electric Terrain." + risingVoltage: { + name: "Elettroimpennata", + effect: "Chi la usa attacca con dell'elettricità che si alza dal suolo. La potenza della mossa raddoppia quando l'avversario si trova in un Campo Elettrico.", }, - "terrainPulse": { - name: "Terrain Pulse", - effect: "The user utilizes the power of the terrain to attack. This move's type and power changes depending on the terrain when it's used." + terrainPulse: { + name: "Campopulsar", + effect: "Chi la usa attacca sfruttando l'energia del terreno di lotta. Il tipo e la potenza della mossa variano a seconda dello stato del terreno stesso.", }, - "skitterSmack": { - name: "Skitter Smack", - effect: "The user skitters behind the target to attack. This also lowers the target's Sp. Atk stat." + skitterSmack: { + name: "Strisciacolpo", + effect: "Chi la usa attacca il bersaglio strisciandogli alle spalle e riducendo il suo Attacco Speciale.", }, - "burningJealousy": { - name: "Burning Jealousy", - effect: "The user attacks with energy from jealousy. This leaves all opposing Pokémon that have had their stats boosted during the turn with a burn." + burningJealousy: { + name: "Fiamminvidia", + effect: "Chi la usa attacca con la forza dell'invidia, causando una scottatura a tutti i Pokémon le cui statistiche sono aumentate durante quel turno.", }, - "lashOut": { - name: "Lash Out", - effect: "The user lashes out to vent its frustration toward the target. If the user's stats were lowered during this turn, the power of this move is doubled." + lashOut: { + name: "Sfogarabbia", + effect: "Chi la usa attacca il bersaglio con tutta la propria ira. Se ha subito riduzioni delle statistiche durante quel turno, la potenza della mossa raddoppia.", }, - "poltergeist": { + poltergeist: { name: "Poltergeist", - effect: "The user attacks the target by controlling the target's item. The move fails if the target doesn't have an item." + effect: "Chi la usa attacca utilizzando lo strumento del bersaglio. La mossa fallisce se quest'ultimo non ha uno strumento.", }, - "corrosiveGas": { - name: "Corrosive Gas", - effect: "The user surrounds everything around it with highly acidic gas and melts away items they hold." + corrosiveGas: { + name: "Gas Corrosivo", + effect: "Chi la usa avvolge gli altri Pokémon attorno in un gas altamente acido, dissolvendo i loro strumenti.", }, - "coaching": { + coaching: { name: "Coaching", - effect: "The user properly coaches its ally Pokémon, boosting their Attack and Defense stats." + effect: "Chi la usa aumenta l'Attacco e la Difesa di tutti gli alleati dando loro indicazioni precise.", }, - "flipTurn": { - name: "Flip Turn", - effect: "After making its attack, the user rushes back to switch places with a party Pokémon in waiting." + flipTurn: { + name: "Virata", + effect: "Chi usa questa mossa fa marcia indietro per farsi sostituire dopo aver sferrato l'attacco.", }, - "tripleAxel": { - name: "Triple Axel", - effect: "A consecutive three-kick attack that becomes more powerful with each successful hit." + tripleAxel: { + name: "Triplo Axel", + effect: "Il Pokémon attacca sferrando fino a tre calci consecutivi. Ogni volta che la mossa va a segno, la sua potenza aumenta.", }, - "dualWingbeat": { - name: "Dual Wingbeat", - effect: "The user slams the target with its wings. The target is hit twice in a row." + dualWingbeat: { + name: "Doppia Ala", + effect: "Il Pokémon attacca il bersaglio urtandolo con le ali e infliggendogli danni due volte di fila.", }, - "scorchingSands": { - name: "Scorching Sands", - effect: "The user throws scorching sand at the target to attack. This may also leave the target with a burn." + scorchingSands: { + name: "Sabbiardente", + effect: "Chi la usa attacca il bersaglio scagliandogli addosso della sabbia incandescente. Può anche scottarlo.", }, - "jungleHealing": { - name: "Jungle Healing", - effect: "The user becomes one with the jungle, restoring HP and healing any status conditions of itself and its ally Pokémon in battle." + jungleHealing: { + name: "Giunglacura", + effect: "Il Pokémon diventa tutt'uno con la giungla, ripristinando i PS e curando i problemi di stato per sé e per gli alleati in campo.", }, - "wickedBlow": { - name: "Wicked Blow", - effect: "The user, having mastered the Dark style, strikes the target with a fierce blow. This attack always results in a critical hit." + wickedBlow: { + name: "Pugnotenebra", + effect: "Il Pokémon sferra un singolo colpo potentissimo, massima espressione dello stile di tipo Buio. Brutto colpo assicurato.", }, - "surgingStrikes": { - name: "Surging Strikes", - effect: "The user, having mastered the Water style, strikes the target with a flowing motion three times in a row. This attack always results in a critical hit." + surgingStrikes: { + name: "Idroraffica", + effect: "Il Pokémon sferra una fluida serie di tre attacchi, massima espressione dello stile di tipo Acqua. Brutto colpo assicurato.", }, - "thunderCage": { - name: "Thunder Cage", - effect: "The user traps the target in a cage of sparking electricity for four to five turns." + thunderCage: { + name: "Elettrogabbia", + effect: "Il Pokémon attacca il bersaglio imprigionandolo in una gabbia di elettricità, che sprigiona corrente per quattro o cinque turni.", }, - "dragonEnergy": { - name: "Dragon Energy", - effect: "Converting its life-force into power, the user attacks opposing Pokémon. The lower the user's HP, the lower the move's power." + dragonEnergy: { + name: "Dragoenergia", + effect: " Il Pokémon attacca il bersaglio convertendo la propria forza vitale in energia. Più i suoi PS sono bassi, più la potenza della mossa diminuisce.", }, - "freezingGlare": { - name: "Freezing Glare", - effect: "The user shoots its psychic power from its eyes to attack. This may also leave the target frozen." + freezingGlare: { + name: "Sguardo Gelido", + effect: "Il Pokémon attacca rilasciando energia psichica dagli occhi. Può congelare il bersaglio.", }, - "fieryWrath": { - name: "Fiery Wrath", - effect: "The user transforms its wrath into a fire-like aura to attack. This may also make opposing Pokémon flinch." + fieryWrath: { + name: "Furia Ardente", + effect: "ERR Il Pokémon attacca trasformando la sua rabbia in un'aura simile a fiamme. Può anche far tentennare il bersaglio.ORE", }, - "thunderousKick": { - name: "Thunderous Kick", - effect: "The user overwhelms the target with lightning-like movement before delivering a kick. This also lowers the target's Defense stat." + thunderousKick: { + name: "Calcio Tonante", + effect: "Il Pokémon sferra calci al bersaglio dopo averlo distratto con movimenti fulminei, riducendone la Difesa.", }, - "glacialLance": { - name: "Glacial Lance", - effect: "The user attacks by hurling a blizzard-cloaked icicle lance at opposing Pokémon." + glacialLance: { + name: "Lancia Glaciale", + effect: "Il Pokémon attacca il bersaglio scagliando una lancia di ghiaccio accompagnata da una tormenta di neve.", }, - "astralBarrage": { - name: "Astral Barrage", - effect: "The user attacks by sending a frightful amount of small ghosts at opposing Pokémon." + astralBarrage: { + name: "Schegge Astrali", + effect: "Il Pokémon attacca il bersaglio scatenandogli contro una miriade di piccoli spettri.", }, - "eerieSpell": { - name: "Eerie Spell", - effect: "The user attacks with its tremendous psychic power. This also removes 3 PP from the target's last move." + eerieSpell: { + name: "Inquietantesimo", + effect: "Il Pokémon attacca con i suoi potenti poteri psichici. Sottrae 3 PP all'ultima mossa usata dall'avversario.", }, - "direClaw": { - name: "Dire Claw", - effect: "The user lashes out at the target with ruinous claws. This may also leave the target poisoned, paralyzed, or asleep." + direClaw: { + name: "Artigli Fatali", + effect: "Il Pokémon attacca il bersaglio con artigli distruttori. Può anche causargli avvelenamento, paralisi o sonno.", }, - "psyshieldBash": { - name: "Psyshield Bash", - effect: "Cloaking itself in psychic energy, the user slams into the target. This also boosts the user's Defense stat." + psyshieldBash: { + name: "Barrierassalto", + effect: "Il Pokémon si carica di energia psichica per poi schiantarsi sul bersaglio. Inoltre, aumenta la propria Difesa.", }, - "powerShift": { - name: "Power Shift", - effect: "The user swaps its Attack and Defense stats." + powerShift: { + name: "Scambioforza", + effect: "Il Pokémon scambia il suo Attacco con la Difesa.", }, - "stoneAxe": { - name: "Stone Axe", - effect: "The user swings its stone axes at the target. Stone splinters left behind by this attack float around the target." + stoneAxe: { + name: "Rocciascure", + effect: "Il Pokémon attacca il bersaglio con delle scuri di roccia. I frammenti rocciosi dispersi dall'attacco restano sospesi intorno al bersaglio.", }, - "springtideStorm": { - name: "Springtide Storm", - effect: "The user attacks by wrapping opposing Pokémon in fierce winds brimming with love and hate. This may also lower their Attack stats." + springtideStorm: { + name: "Tempesta Zefirea", + effect: "Il Pokémon attacca il bersaglio avvolgendolo con un vento fortissimo di odio e amore. Può anche ridurne l'Attacco.", }, - "mysticalPower": { - name: "Mystical Power", - effect: "The user attacks by emitting a mysterious power. This also boosts the user's Sp. Atk stat." + mysticalPower: { + name: "Forza Mistica", + effect: "Il Pokémon attacca emettendo un misterioso potere. Inoltre, aumenta il proprio Attacco Speciale.", }, - "ragingFury": { - name: "Raging Fury", - effect: "The user rampages around spewing flames for two to three turns. The user then becomes confused." + ragingFury: { + name: "Ira Furente", + effect: "Il Pokémon s'infuria e sputa fiammate per due o tre turni, ma rimane confuso.", }, - "waveCrash": { - name: "Wave Crash", - effect: "The user shrouds itself in water and slams into the target with its whole body to inflict damage. This also damages the user quite a lot." + waveCrash: { + name: "Ondaschianto", + effect: "Il Pokémon si avvolge in uno strato d'acqua e si lancia sul bersaglio, ma subisce seri danni.", }, - "chloroblast": { - name: "Chloroblast", - effect: "The user launches its amassed chlorophyll to inflict damage on the target. This also damages the user." + chloroblast: { + name: "Clorofillaser", + effect: "Il Pokémon attacca concentrando la clorofilla nel proprio corpo per poi lanciarla, ma subisce danni.", }, - "mountainGale": { - name: "Mountain Gale", - effect: "The user hurls giant chunks of ice at the target to inflict damage. This may also make the target flinch." + mountainGale: { + name: "Soffio d'Iceberg", + effect: " Il Pokémon attacca colpendo il bersaglio con un blocco di ghiaccio grande come un iceberg. Può anche far tentennare il bersaglio.", }, - "victoryDance": { - name: "Victory Dance", - effect: "The user performs an intense dance to usher in victory, boosting its Attack, Defense, and Speed stats." + victoryDance: { + name: "Danzavittoria", + effect: "Il Pokémon si lancia in una danza sfrenata per invocare la vittoria e aumenta l'Attacco, la Difesa e la Velocità.", }, - "headlongRush": { - name: "Headlong Rush", - effect: "The user smashes into the target in a full-body tackle. This also lowers the user's Defense and Sp. Def stats." + headlongRush: { + name: "Scontro Frontale", + effect: "Il Pokémon si schianta sul bersaglio con tutte le forze. La sua Difesa e la sua Difesa Speciale diminuiscono.", }, - "barbBarrage": { - name: "Barb Barrage", - effect: "The user launches countless toxic barbs to inflict damage. This may also poison the target. This move's power is doubled if the target is already poisoned." + barbBarrage: { + name: "Mille Fielespine", + effect: "Il bersaglio viene colpito da una miriade di spine tossiche che possono anche avvelenarlo. Se il bersaglio è già avvelenato, la potenza della mossa raddoppia.", }, - "esperWing": { - name: "Esper Wing", - effect: "The user slashes the target with aura-enriched wings. This also boosts the user's Speed stat. This move has a heightened chance of landing a critical hit." + esperWing: { + name: "Ali d'Aura", + effect: "Il Pokémon falcia il bersaglio con ali rafforzate da un'aura. Probabile brutto colpo. Inoltre, la Velocità aumenta.", }, - "bitterMalice": { - name: "Bitter Malice", - effect: "The user attacks the target with spine-chilling resentment. This also lowers the target's Attack stat." + bitterMalice: { + name: "Livore", + effect: "Il Pokémon attacca con una furia che fa raggelare il sangue nelle vene del bersaglio, riducendone l'Attacco.", }, - "shelter": { - name: "Shelter", - effect: "The user makes its skin as hard as an iron shield, sharply boosting its Defense stat." + shelter: { + name: "Barricata", + effect: "Il Pokémon indurisce la propria pelle come uno scudo di ferro, aumentando di molto la Difesa.", }, - "tripleArrows": { - name: "Triple Arrows", - effect: "The user kicks, then fires three arrows. This move has a heightened chance of landing a critical hit and may also lower the target's Defense stat or make it flinch." + tripleArrows: { + name: "Triplodardo", + effect: "Il Pokémon sferra un calcio per poi scoccare tre dardi insieme. Può ridurre la Difesa del bersaglio o farlo tentennare. Probabile brutto colpo.", }, - "infernalParade": { - name: "Infernal Parade", - effect: "The user attacks with myriad fireballs. This may also leave the target with a burn. This move's power is doubled if the target has a status condition." + infernalParade: { + name: "Corteo Spettrale", + effect: "Il Pokémon attacca con innumerevoli sfere di fuoco che possono anche scottare il bersaglio. Se questo è affetto da problemi di stato, la potenza della mossa raddoppia.", }, - "ceaselessEdge": { - name: "Ceaseless Edge", - effect: "The user slashes its shell blade at the target. Shell splinters left behind by this attack remain scattered under the target as spikes." + ceaselessEdge: { + name: "Lama Milleflutti", + effect: "Il Pokémon attacca il bersaglio con la spada conchiglia. I frammenti di conchiglie formano una trappola di punte ai piedi del bersaglio.", }, - "bleakwindStorm": { - name: "Bleakwind Storm", - effect: "The user attacks with savagely cold winds that cause both body and spirit to tremble. This may also lower the Speed stats of opposing Pokémon." + bleakwindStorm: { + name: "Tempesta Boreale", + effect: "Il Pokémon attacca il bersaglio con venti gelidi e sferzanti che lo fanno tremare anima e corpo. Può anche ridurne la Velocità.", }, - "wildboltStorm": { - name: "Wildbolt Storm", - effect: "The user summons a thunderous tempest and savagely attacks with lightning and wind. This may also leave opposing Pokémon with paralysis." + wildboltStorm: { + name: "Tempesta Tonante", + effect: "Il Pokémon chiama a sé una tempesta di fulmini e raffiche di vento con cui attacca violentemente il bersaglio. Può anche paralizzarlo.", }, - "sandsearStorm": { - name: "Sandsear Storm", - effect: "The user attacks by wrapping opposing Pokémon in fierce winds and searingly hot sand. This may also leave them with a burn." + sandsearStorm: { + name: "Tempesta Ardente", + effect: "Il Pokémon attacca il bersaglio avvolgendolo con sabbia ardente e un vento fortissimo che possono scottarlo.", }, - "lunarBlessing": { - name: "Lunar Blessing", - effect: "The user receives a blessing from the crescent moon, restoring HP and curing status conditions for itself and its ally Pokémon currently in the battle." + lunarBlessing: { + name: "Invocaluna", + effect: " Il Pokémon rivolge una preghiera alla luna crescente, ripristinando i PS e curando i problemi di stato per sé e per gli alleati in campo.", }, - "takeHeart": { - name: "Take Heart", - effect: "The user lifts its spirits, curing its own status conditions and boosting its Sp. Atk and Sp. Def stats." + takeHeart: { + name: "Baldimpulso", + effect: "Il Pokémon prende coraggio e guarisce dai problemi di stato. Inoltre, aumenta l'Attacco Speciale e la Difesa Speciale.", }, - "gMaxWildfire": { - name: "G-Max Wildfire", - effect: "A Fire-type attack that Gigantamax Charizard use. This move continues to deal damage to opponents for four turns." + gMaxWildfire: { + name: "Gigavampa", + effect: "Attacco di tipo Fuoco eseguito da Charizard Gigamax. Infligge danni per quattro turni.", }, - "gMaxBefuddle": { - name: "G-Max Befuddle", - effect: "A Bug-type attack that Gigantamax Butterfree use. This move inflicts the poisoned, paralyzed, or asleep status condition on opponents." + gMaxBefuddle: { + name: "Gigastupore", + effect: "Attacco di tipo Coleottero eseguito da Butterfree Gigamax. Avvelena, paralizza o addormenta i nemici.", }, - "gMaxVoltCrash": { - name: "G-Max Volt Crash", - effect: "An Electric-type attack that Gigantamax Pikachu use. This move paralyzes opponents." + gMaxVoltCrash: { + name: "Gigapikafolgori", + effect: "Attacco di tipo Elettro eseguito da Pikachu Gigamax. Paralizza i nemici.", }, - "gMaxGoldRush": { - name: "G-Max Gold Rush", - effect: "A Normal-type attack that Gigantamax Meowth use. This move confuses opponents and also earns extra money." + gMaxGoldRush: { + name: "Gigamonete", + effect: "Attacco di tipo Normale eseguito da Meowth Gigamax. Confonde i nemici e permette anche di ricevere una ricompensa maggiore.", }, - "gMaxChiStrike": { - name: "G-Max Chi Strike", - effect: "A Fighting-type attack that Gigantamax Machamp use. This move raises the chance of critical hits." + gMaxChiStrike: { + name: "Gigapugnointuito", + effect: "Attacco di tipo Lotta eseguito da Machamp Gigamax. Aumenta la probabilità di sferrare brutti colpi.", }, - "gMaxTerror": { - name: "G-Max Terror", - effect: "A Ghost-type attack that Gigantamax Gengar use. This Pokémon steps on the opposing Pokémon's shadow to prevent them from escaping." + gMaxTerror: { + name: "Gigaillusione", + effect: "Attacco di tipo Spettro eseguito da Gengar Gigamax. Il Pokémon calpesta l'ombra del nemico impedendogli la fuga o la sostituzione.", }, - "gMaxResonance": { - name: "G-Max Resonance", - effect: "An Ice-type attack that Gigantamax Lapras use. This move reduces the damage received for five turns." + gMaxResonance: { + name: "Gigamelodia", + effect: "Attacco di tipo Ghiaccio eseguito da Lapras Gigamax. Riduce i danni subiti per cinque turni.", }, - "gMaxCuddle": { - name: "G-Max Cuddle", - effect: "A Normal-type attack that Gigantamax Eevee use. This move infatuates opponents." + gMaxCuddle: { + name: "Gigabbraccio", + effect: "Attacco di tipo Normale eseguito da Eevee Gigamax. Fa infatuare i nemici.", }, - "gMaxReplenish": { - name: "G-Max Replenish", - effect: "A Normal-type attack that Gigantamax Snorlax use. This move restores Berries that have been eaten." + gMaxReplenish: { + name: "Gigarinnovamento", + effect: "Attacco di tipo Normale eseguito da Snorlax Gigamax. Rigenera le bacche mangiate.", }, - "gMaxMalodor": { - name: "G-Max Malodor", - effect: "A Poison-type attack that Gigantamax Garbodor use. This move poisons opponents." + gMaxMalodor: { + name: "Gigafetore", + effect: "Attacco di tipo Veleno eseguito da Garbodor Gigamax. Avvelena i nemici.", }, - "gMaxStonesurge": { - name: "G-Max Stonesurge", - effect: "A Water-type attack that Gigantamax Drednaw use. This move scatters sharp rocks around the field." + gMaxStonesurge: { + name: "Gigarocciagetto", + effect: "Attacco di tipo Acqua eseguito da Drednaw Gigamax. Sparge rocce aguzze sul campo di lotta.", }, - "gMaxWindRage": { - name: "G-Max Wind Rage", - effect: "A Flying-type attack that Gigantamax Corviknight use. This move removes the effects of moves like Reflect and Light Screen." + gMaxWindRage: { + name: "Gigaciclone", + effect: "Attacco di tipo Volante eseguito da Corviknight Gigamax. Annulla l'effetto di mosse come Riflesso e Schermoluce.", }, - "gMaxStunShock": { - name: "G-Max Stun Shock", - effect: "An Electric-type attack that Gigantamax Toxtricity use. This move poisons or paralyzes opponents." + gMaxStunShock: { + name: "Gigatoxiscossa", + effect: "Attacco di tipo Elettro eseguito da Toxtricity Gigamax. Avvelena o paralizza i nemici.", }, - "gMaxFinale": { - name: "G-Max Finale", - effect: "A Fairy-type attack that Gigantamax Alcremie use. This move heals the HP of allies." + gMaxFinale: { + name: "Gigagranfinale", + effect: "Attacco di tipo Folletto eseguito da Alcremie Gigamax. Fa recuperare PS agli alleati.", }, - "gMaxDepletion": { - name: "G-Max Depletion", - effect: "A Dragon-type attack that Gigantamax Duraludon use. Reduces the PP of the last move used." + gMaxDepletion: { + name: "Gigalogoramento", + effect: "Attacco di tipo Drago eseguito da Duraludon Gigamax. Toglie PP all'ultima mossa usata dai nemici.", }, - "gMaxGravitas": { - name: "G-Max Gravitas", - effect: "A Psychic-type attack that Gigantamax Orbeetle use. This move changes gravity for five turns." + gMaxGravitas: { + name: "Gigagravitoforza", + effect: "Attacco di tipo Psico eseguito da Orbeetle Gigamax. Cambia la gravità per cinque turni.", }, - "gMaxVolcalith": { - name: "G-Max Volcalith", - effect: "A Rock-type attack that Gigantamax Coalossal use. This move continues to deal damage to opponents for four turns." + gMaxVolcalith: { + name: "Gigalapilli", + effect: "Attacco di tipo Roccia eseguito da Coalossal Gigamax. Infligge danni per quattro turni.", }, - "gMaxSandblast": { - name: "G-Max Sandblast", - effect: "A Ground-type attack that Gigantamax Sandaconda use. Opponents are trapped in a raging sandstorm for four to five turns." + gMaxSandblast: { + name: "Gigavortisabbia", + effect: "Attacco di tipo Terra eseguito da Sandaconda Gigamax. Scatena un turbine di sabbia per quattro o cinque turni.", }, - "gMaxSnooze": { - name: "G-Max Snooze", - effect: "A Dark-type attack that Gigantamax Grimmsnarl use. The user lets loose a huge yawn that lulls the targets into falling asleep on the next turn." + gMaxSnooze: { + name: "Gigatorpore", + effect: "Attacco di tipo Buio eseguito da Grimmsnarl Gigamax. Chi la usa fa un grande sbadiglio che fa addormentare il nemico al turno successivo.", }, - "gMaxTartness": { - name: "G-Max Tartness", - effect: "A Grass-type attack that Gigantamax Flapple use. This move reduces the opponents' evasiveness." + gMaxTartness: { + name: "Gigattaccoacido", + effect: "Attacco di tipo Erba eseguito da Flapple Gigamax. Riduce l’elusione dei nemici.", }, - "gMaxSweetness": { - name: "G-Max Sweetness", - effect: "A Grass-type attack that Gigantamax Appletun use. This move heals the status conditions of allies." + gMaxSweetness: { + name: "Gigambrosia", + effect: "Attacco di tipo Erba eseguito da Appletun Gigamax. Cura i problemi di stato degli alleati.", }, - "gMaxSmite": { - name: "G-Max Smite", - effect: "A Fairy-type attack that Gigantamax Hatterene use. This move confuses opponents." + gMaxSmite: { + name: "Gigacastigo", + effect: "Attacco di tipo Folletto eseguito da Hatterene Gigamax. Confonde i nemici.", }, - "gMaxSteelsurge": { - name: "G-Max Steelsurge", - effect: "A Steel-type attack that Gigantamax Copperajah use. This move scatters sharp spikes around the field." + gMaxSteelsurge: { + name: "Gigaferroaculei", + effect: "Attacco di tipo Acciaio eseguito da Copperajah Gigamax. Sparge pezzi di metallo acuminati sul campo di lotta.", }, - "gMaxMeltdown": { - name: "G-Max Meltdown", - effect: "A Steel-type attack that Gigantamax Melmetal use. This move makes opponents incapable of using the same move twice in a row." + gMaxMeltdown: { + name: "Gigaliquefazione", + effect: "ERAttacco di tipo Acciaio eseguito da Melmetal Gigamax. Impedisce ai nemici di usare la stessa mossa due volte di seguito.RORE", }, - "gMaxFoamBurst": { - name: "G-Max Foam Burst", - effect: "A Water-type attack that Gigantamax Kingler use. This move harshly lowers the Speed of opponents." + gMaxFoamBurst: { + name: "Gigaschiuma", + effect: "Attacco di tipo Acqua eseguito da Kingler Gigamax. Riduce di molto la Velocità dei nemici.", }, - "gMaxCentiferno": { - name: "G-Max Centiferno", - effect: "A Fire-type attack that Gigantamax Centiskorch use. This move traps opponents in flames for four to five turns." + gMaxCentiferno: { + name: "Gigamillefiamme", + effect: "Attacco di tipo Fuoco eseguito da Centiskorch Gigamax. Intrappola i nemici nelle fiamme per quattro o cinque turni.", }, - "gMaxVineLash": { - name: "G-Max Vine Lash", - effect: "A Grass-type attack that Gigantamax Venusaur use. This move continues to deal damage to opponents for four turns." + gMaxVineLash: { + name: "Gigasferzata", + effect: "Attacco di tipo Erba eseguito da Venusaur Gigamax. Infligge danni per quattro turni.", }, - "gMaxCannonade": { - name: "G-Max Cannonade", - effect: "A Water-type attack that Gigantamax Blastoise use. This move continues to deal damage to opponents for four turns." + gMaxCannonade: { + name: "Gigacannonata", + effect: "Attacco di tipo Acqua eseguito da Blastoise Gigamax. Infligge danni per quattro turni.", }, - "gMaxDrumSolo": { - name: "G-Max Drum Solo", - effect: "A Grass-type attack that Gigantamax Rillaboom use. This move can be used on the target regardless of its Abilities." + gMaxDrumSolo: { + name: "Gigarullio", + effect: "Attacco di tipo Erba eseguito da Rillaboom Gigamax. Ignora le abilità dei nemici.", }, - "gMaxFireball": { - name: "G-Max Fireball", - effect: "A Fire-type attack that Gigantamax Cinderace use. This move can be used on the target regardless of its Abilities." + gMaxFireball: { + name: "Gigafiammopalla", + effect: "Attacco di tipo Fuoco eseguito da Cinderace Gigamax. Ignora le abilità dei nemici.", }, - "gMaxHydrosnipe": { - name: "G-Max Hydrosnipe", - effect: "A Water-type attack that Gigantamax Inteleon use. This move can be used on the target regardless of its Abilities." + gMaxHydrosnipe: { + name: "Gigasparomirato", + effect: "Attacco di tipo Acqua eseguito da Inteleon Gigamax. Ignora le abilità dei nemici.", }, - "gMaxOneBlow": { - name: "G-Max One Blow", - effect: "A Dark-type attack that Gigantamax Urshifu use. This single-strike move can ignore Max Guard." + gMaxOneBlow: { + name: "Gigasingolcolpo", + effect: "Attacco di tipo Buio eseguito da Urshifu Gigamax che ignora gli effetti della Dynabarriera.", }, - "gMaxRapidFlow": { - name: "G-Max Rapid Flow", - effect: "A Water-type attack that Gigantamax Urshifu use. This rapid-strike move can ignore Max Guard." + gMaxRapidFlow: { + name: "Gigapluricolpo", + effect: " Attacco di tipo Acqua eseguito da Urshifu Gigamax che ignora gli effetti della Dynabarriera.", }, - "teraBlast": { - name: "Tera Blast", - effect: "If the user has Terastallized, it unleashes energy of its Tera Type. This move inflicts damage using the Attack or Sp. Atk stat-whichever is higher for the user." + teraBlast: { + name: "Terascoppio", + effect: "Se il Pokémon è teracristallizzato, attacca con l'energia del suo teratipo. Infligge danni in base all'Attacco o all'Attacco Speciale scegliendo il più alto tra i due.", }, - "silkTrap": { - name: "Silk Trap", - effect: "The user spins a silken trap, protecting itself from damage while lowering the Speed stat of any attacker that makes direct contact." + silkTrap: { + name: "Telatrappola", + effect: "Il Pokémon tesse una trappola di tela che lo protegge dagli attacchi e riduce la Velocità di chi entra in contatto con lui.", }, - "axeKick": { - name: "Axe Kick", - effect: "The user attacks by kicking up into the air and slamming its heel down upon the target. This may also confuse the target. If it misses, the user takes damage instead." + axeKick: { + name: "Calcio ad Ascia", + effect: "Il Pokémon attacca sferrando un calcio dall'alto verso il basso che può confondere il bersaglio. Se la mossa fallisce, il Pokémon subisce dei danni.", }, - "lastRespects": { - name: "Last Respects", - effect: "The user attacks to avenge its allies. The more defeated allies there are in the user's party, the greater the move's power." + lastRespects: { + name: "Omaggio ai KO", + effect: "Il Pokémon attacca per placare il risentimento dei suoi compagni di squadra. Più sono quelli andati KO, più la potenza della mossa aumenta.", }, - "luminaCrash": { - name: "Lumina Crash", - effect: "The user attacks by unleashing a peculiar light that even affects the mind. This also harshly lowers the target's Sp. Def stat." + luminaCrash: { + name: "Fotocollisione", + effect: "Il Pokémon attacca sparando una luce bizzarra che agisce anche sulla psiche. Riduce di molto la Difesa Speciale del bersaglio.", }, - "orderUp": { - name: "Order Up", - effect: "The user attacks with elegant poise. If the user has a Tatsugiri in its mouth, this move boosts one of the user's stats based on the Tatsugiri's form." + orderUp: { + name: "Alta Cucina", + effect: "Il Pokémon attacca con deliziose movenze. Se ha in bocca un Tatsugiri, una sua statistica aumenta in base alla forma di quest'ultimo.", }, - "jetPunch": { - name: "Jet Punch", - effect: "The user summons a torrent around its fist and punches at blinding speed. This move always goes first." + jetPunch: { + name: "Pugnojet", + effect: "Il Pokémon avvolge il pugno in una corrente impetuosa e sferra un colpo a una tale velocità da rendersi quasi invisibile. Questo attacco ha priorità alta.", }, - "spicyExtract": { - name: "Spicy Extract", - effect: "The user emits an incredibly spicy extract, sharply boosting the target's Attack stat and harshly lowering the target's Defense stat." + spicyExtract: { + name: "Essenza Piccante", + effect: "Il Pokémon secerne un'essenza straordinariamente piccante. Aumenta di molto l'Attacco del bersaglio ma ne diminuisce di molto la Difesa.", }, - "spinOut": { - name: "Spin Out", - effect: "The user spins furiously by straining its legs, inflicting damage on the target. This also harshly lowers the user's Speed stat." + spinOut: { + name: "Slittaruote", + effect: "Il Pokémon infligge danni caricando le estremità e ruotandole vorticosamente. La sua Velocità diminuisce di molto.", }, - "populationBomb": { - name: "Population Bomb", - effect: "The user's fellows gather in droves to perform a combo attack that hits the target one to ten times in a row." + populationBomb: { + name: "Infestazione", + effect: "Il Pokémon si riunisce con i suoi simili in un gruppo brulicante che collabora per attaccare e colpisce da una a dieci volte di fila.", }, - "iceSpinner": { - name: "Ice Spinner", - effect: "The user covers its feet in thin ice and twirls around, slamming into the target. This move's spinning motion also destroys the terrain." + iceSpinner: { + name: "Vortighiaccio", + effect: "Il Pokémon avvolge gli arti inferiori in un sottile strato di ghiaccio e si scontra con il bersaglio piroettando. Il movimento rotatorio distrugge il terreno di lotta.", }, - "glaiveRush": { - name: "Glaive Rush", - effect: "The user throws its entire body into a reckless charge. After this move is used, attacks on the user cannot miss and will inflict double damage until the user's next turn." + glaiveRush: { + name: "Spadoncarica", + effect: "Il Pokémon si lancia in una carica avventata. Fino al suo prossimo turno, il Pokémon riceverà il doppio dei danni dagli attacchi altrui, che andranno sempre a segno.", }, - "revivalBlessing": { - name: "Revival Blessing", - effect: "The user bestows a loving blessing, reviving a party Pokémon that has fainted and restoring half that Pokémon's max HP." + revivalBlessing: { + name: "Preghiera Vitale", + effect: "Il Pokémon intona una preghiera compassionevole, rianimando un Pokémon della squadra esausto e restituendogli metà dei suoi PS.", }, - "saltCure": { - name: "Salt Cure", - effect: "The user salt cures the target, inflicting damage every turn. Steel and Water types are more strongly affected by this move." + saltCure: { + name: "Sotto Sale", + effect: "Il Pokémon mette sotto sale il bersaglio, infliggendogli danni a ogni turno. I Pokémon di tipo Acciaio e di tipo Acqua sono particolarmente vulnerabili a questa mossa.", }, - "tripleDive": { - name: "Triple Dive", - effect: "The user performs a perfectly timed triple dive, hitting the target with splashes of water three times in a row." + tripleDive: { + name: "Triplo Tuffo", + effect: "Il Pokémon si lancia in un triplo tuffo perfettamente coordinato, colpendo il bersaglio con degli schizzi d'acqua e infliggendogli danni tre volte di fila.", }, - "mortalSpin": { - name: "Mortal Spin", - effect: "The user performs a spin attack that can also eliminate the effects of such moves as Bind, Wrap, and Leech Seed. This also poisons opposing Pokémon." + mortalSpin: { + name: "Glitturbine", + effect: "Attacco rotante che elimina gli effetti di mosse come Legatutto, Avvolgibotta e Parassiseme. Aumenta anche la Velocità di chi la usa.", }, - "doodle": { - name: "Doodle", - effect: "The user captures the very essence of the target in a sketch. This changes the Abilities of the user and its ally Pokémon to that of the target." + doodle: { + name: "Ricalco", + effect: "Il Pokémon cattura l'essenza del bersaglio con un ricalco, copiandone l'abilità e applicandola a se stesso e ai suoi alleati.", }, - "filletAway": { - name: "Fillet Away", - effect: "The user sharply boosts its Attack, Sp. Atk, and Speed stats by using its own HP." + filletAway: { + name: "Alleggerimento", + effect: "Il Pokémon sacrifica dei PS per far aumentare di molto l'Attacco, l'Attacco Speciale e la Velocità.", }, - "kowtowCleave": { - name: "Kowtow Cleave", - effect: "The user slashes at the target after kowtowing to make the target let down its guard. This attack never misses." + kowtowCleave: { + name: "Genufendente", + effect: "Il Pokémon si genuflette per far abbassare la guardia al bersaglio e poi fenderlo. Questo attacco va sempre a segno.", }, - "flowerTrick": { - name: "Flower Trick", - effect: "The user throws a rigged bouquet of flowers at the target. This attack never misses and always lands a critical hit." + flowerTrick: { + name: "Prestigiafiore", + effect: " Il Pokémon attacca il bersaglio lanciandogli addosso un mazzo di fiori truccato. Questo attacco va sempre a segno, infliggendo anche un brutto colpo.", }, - "torchSong": { - name: "Torch Song", - effect: "The user blows out raging flames as if singing a song, scorching the target. This also boosts the user's Sp. Atk stat." + torchSong: { + name: "Canzone Ardente", + effect: "Il Pokémon abbrustolisce il bersaglio soffiandogli addosso fiamme ardenti come se intonasse una canzone. Inoltre, il suo Attacco Speciale aumenta.", }, - "aquaStep": { - name: "Aqua Step", - effect: "The user toys with the target and attacks it using light and fluid dance steps. This also boosts the user's Speed stat." + aquaStep: { + name: "Idroballetto", + effect: "Il Pokémon si prende gioco del bersaglio con passi di danza leggiadri e fluidi come l’acqua, infliggendogli danni. Inoltre, la sua Velocità aumenta.", }, - "ragingBull": { - name: "Raging Bull", - effect: "The user performs a tackle like a raging bull. This move's type depends on the user's form. It can also break barriers, such as Light Screen and Reflect." + ragingBull: { + name: "Scatenatoro", + effect: "Il Pokémon carica il bersaglio con furia cieca, rompendo barriere come Schermoluce e Riflesso. Il tipo di questa mossa dipende dalla forma di chi la usa.", }, - "makeItRain": { - name: "Make It Rain", - effect: "The user attacks by throwing out a mass of coins. This also lowers the user's Sp. Atk stat. Money is earned after the battle." + makeItRain: { + name: "Corsa all'Oro", + effect: "Il Pokémon attacca lanciando una gran quantità di monete recuperabili dopo la lotta, ma riduce il proprio Attacco Speciale.", }, - "psyblade": { - name: "Psyblade", - effect: "The user rends the target with an ethereal blade. This move's power is boosted by 50 percent if the user is on Electric Terrain." + psyblade: { + name: "Psicolama", + effect: "Il Pokémon falcia il bersaglio con una lama eterea. La potenza della mossa aumenta del 50% quando è attivo un Campo Elettrico.", }, - "hydroSteam": { - name: "Hydro Steam", - effect: "The user blasts the target with boiling-hot water. This move's power is not lowered in harsh sunlight but rather boosted by 50 percent." + hydroSteam: { + name: "Idrovapore", + effect: "Il Pokémon ricopre con forza il bersaglio di acqua bollente. Con la luce solare intensa, la potenza di questa mossa aumenta del 50% anziché diminuire.", }, - "ruination": { - name: "Ruination", - effect: "The user summons a ruinous disaster. This cuts the target's HP in half." + ruination: { + name: "Catastrofe", + effect: "Il Pokémon invoca una terribile disgrazia, dimezzando i PS del bersaglio.", }, - "collisionCourse": { - name: "Collision Course", - effect: "The user transforms and crashes to the ground, causing a massive prehistoric explosion. This move's power is boosted more than usual if it's a supereffective hit." + collisionCourse: { + name: "Turboschianto", + effect: "Il Pokémon si schianta al suolo mentre si trasforma, causando un'esplosione primordiale. La potenza della mossa aumenta se questa è superefficace sul bersaglio.", }, - "electroDrift": { - name: "Electro Drift", - effect: "The user races forward at ultrafast speeds, piercing its target with futuristic electricity. This move's power is boosted more than usual if it's a supereffective hit." + electroDrift: { + name: "Fulmiscatto", + effect: "Il Pokémon saetta mentre si trasforma, trafiggendo il bersaglio con una scossa futuristica. La potenza della mossa aumenta se questa è superefficace sul bersaglio.", }, - "shedTail": { - name: "Shed Tail", - effect: "The user creates a substitute for itself using its own HP before switching places with a party Pokémon in waiting." + shedTail: { + name: "Tagliacoda", + effect: "Chi la usa crea una copia di se stesso usando parte dei suoi PS e si fa sostituire da un altro Pokémon della squadra.", }, - "chillyReception": { - name: "Chilly Reception", - effect: "The user tells a chillingly bad joke before switching places with a party Pokémon in waiting. This summons a snowstorm lasting five turns." + chillyReception: { + name: "Freddura", + effect: "Chi la usa dice una freddura che fa raggelare i presenti per poi farsi sostituire da un altro Pokémon della squadra. Causa una nevicata che dura per cinque turni.", }, - "tidyUp": { - name: "Tidy Up", - effect: "The user tidies up and removes the effects of Spikes, Stealth Rock, Sticky Web, Toxic Spikes, and Substitute. This also boosts the user's Attack and Speed stats." + tidyUp: { + name: "Pulizie", + effect: "Il Pokémon fa le pulizie, annullando gli effetti di Punte, Levitoroccia, Rete Vischiosa, Fielepunte e Sostituto. Inoltre, aumenta il suo Attacco e la sua Velocità.", }, - "snowscape": { - name: "Snowscape", - effect: "The user summons a snowstorm lasting five turns. This boosts the Defense stats of Ice types." + snowscape: { + name: "Vista Innevata", + effect: "Il Pokémon causa una nevicata che dura per cinque turni e aumenta la Difesa dei Pokémon di tipo Ghiaccio.", }, - "pounce": { - name: "Pounce", - effect: "The user attacks by pouncing on the target. This also lowers the target's Speed stat." + pounce: { + name: "Balzo", + effect: "Il Pokémon fa un balzo e attacca il bersaglio, riducendone inoltre la Velocità.", }, - "trailblaze": { - name: "Trailblaze", - effect: "The user attacks suddenly as if leaping out from tall grass. The user's nimble footwork boosts its Speed stat." + trailblaze: { + name: "Apripista", + effect: "Il Pokémon attacca come se saltasse fuori dall'erba alta e si muove con passo leggiadro, aumentando la propria Velocità.", }, - "chillingWater": { - name: "Chilling Water", - effect: "The user attacks the target by showering it with water that's so cold it saps the target's power. This also lowers the target's Attack stat." + chillingWater: { + name: "Doccia Fredda", + effect: "Il Pokémon attacca il bersaglio con una doccia d'acqua talmente fredda da farlo demoralizzare, riducendone l'Attacco.", }, - "hyperDrill": { - name: "Hyper Drill", - effect: "The user spins the pointed part of its body at high speed to pierce the target. This attack can hit a target using a move such as Protect or Detect." + hyperDrill: { + name: "Ipertrapano", + effect: "Il Pokémon fa roteare rapidamente la parte appuntita del suo corpo, perforando il bersaglio ed eludendo mosse come Protezione e Individua.", }, - "twinBeam": { - name: "Twin Beam", - effect: "The user shoots mystical beams from its eyes to inflict damage. The target is hit twice in a row." + twinBeam: { + name: "Doppioraggio", + effect: "Il Pokémon attacca il bersaglio con misteriosi raggi di luce emessi dagli occhi che infliggono danni due volte di fila.", }, - "rageFist": { - name: "Rage Fist", - effect: "The user converts its rage into energy to attack. The more times the user has been hit by attacks, the greater the move's power." + rageFist: { + name: "Pugno Furibondo", + effect: "Il Pokémon trasforma la sua furia in energia e la utilizza per attaccare. Più attacchi ha subito il Pokémon, più la potenza della mossa aumenta.", }, - "armorCannon": { - name: "Armor Cannon", - effect: "The user shoots its own armor out as blazing projectiles. This also lowers the user's Defense and Sp. Def stats." + armorCannon: { + name: "Corazza Cannone", + effect: "Il Pokémon si libera della sua corazza, scagliandola sul bersaglio come una raffica di proiettili incandescenti. La sua Difesa e la sua Difesa Speciale diminuiscono.", }, - "bitterBlade": { - name: "Bitter Blade", - effect: "The user focuses its bitter feelings toward the world of the living into a slashing attack. The user's HP is restored by up to half the damage taken by the target." + bitterBlade: { + name: "Lama del Rimorso", + effect: "Il Pokémon concentra nelle lame tutti i rimorsi accumulati nel mondo dei vivi e assale il bersaglio, recuperando una quantità di PS pari a metà del danno inflitto.", }, - "doubleShock": { - name: "Double Shock", - effect: "The user discharges all the electricity from its body to perform a high-damage attack. After using this move, the user will no longer be Electric type." + doubleShock: { + name: "Doppiolampo", + effect: "Il Pokémon libera tutta la sua potenza elettrica per infliggere gravi danni al bersaglio, ma come conseguenza perde il tipo Elettro.", }, - "gigatonHammer": { - name: "Gigaton Hammer", - effect: "The user swings its whole body around to attack with its huge hammer. This move can't be used twice in a row." + gigatonHammer: { + name: "Granmartello", + effect: "Chi la usa attacca il bersaglio brandendo un enorme martello. La mossa non può essere usata per due volte di fila.", }, - "comeuppance": { - name: "Comeuppance", - effect: "The user retaliates with much greater force against the opponent that last inflicted damage on it." + comeuppance: { + name: "Ritorsione", + effect: "Il Pokémon restituisce con gli interessi i danni subiti all'ultimo avversario che l'ha colpito.", }, - "aquaCutter": { - name: "Aqua Cutter", - effect: "The user expels pressurized water to cut at the target like a blade. This move has a heightened chance of landing a critical hit." + aquaCutter: { + name: "Idrotaglio", + effect: " Il Pokémon espelle acqua ad alta pressione e falcia il bersaglio con un fendente tagliente quanto una lama. Probabile brutto colpo.", }, - "blazingTorque": { - name: "Blazing Torque", - effect: "The user revs their blazing engine into the target. This may also leave the target with a burn." + blazingTorque: { + name: "Turboustione", + effect: "L'utilizzatore accende il suo motore ardente verso il bersaglio. Ciò potrebbe anche lasciare il bersaglio con una bruciatura.", }, - "wickedTorque": { - name: "Wicked Torque", - effect: "The user revs their engine into the target with malicious intent. This may put the target to sleep." + wickedTorque: { + name: "Turbotenebra", + effect: "L'utente accende il proprio motore nel bersaglio con intenti dannosi. Ciò potrebbe addormentare il bersaglio.", }, - "noxiousTorque": { - name: "Noxious Torque", - effect: "The user revs their poisonous engine into the target. This may also poison the target." + noxiousTorque: { + name: "Turbotossina", + effect: "L'utilizzatore fa girare il suo motore velenoso verso il bersaglio. Ciò potrebbe anche avvelenare il bersaglio.", }, - "combatTorque": { - name: "Combat Torque", - effect: "The user revs their engine forcefully into the target. This may also leave the target with paralysis." + combatTorque: { + name: "Turborissa", + effect: "L'utente accelera con forza il proprio motore verso il bersaglio. Ciò potrebbe anche lasciare il bersaglio paralizzato.", }, - "magicalTorque": { - name: "Magical Torque", - effect: "The user revs their fae-like engine into the target. This may also confuse the target." + magicalTorque: { + name: "Turboincanto", + effect: "L'utilizzatore fa girare il proprio motore fatato verso il bersaglio. Ciò potrebbe anche confondere l'obiettivo.", }, - "bloodMoon": { - name: "Blood Moon", - effect: "The user unleashes the full brunt of its spirit from a full moon that shines as red as blood. This move can't be used twice in a row." + bloodMoon: { + name: "Luna Rossa", + effect: "Il Pokémon attacca rilasciando tutta la sua energia, confluita in una luna piena rossa come il sangue. Questa mossa non può essere usata due volte di fila.", }, - "matchaGotcha": { - name: "Matcha Gotcha", - effect: "The user fires a blast of tea that it mixed. The user's HP is restored by up to half the damage taken by the target. This may also leave the target with a burn." + matchaGotcha: { + name: "Spruzzatè", + effect: "Il Pokémon attacca mescolando del tè e spruzzandolo, recuperando una quantità di PS pari alla metà del danno inflitto. Può anche scottare il bersaglio.", }, - "syrupBomb": { - name: "Syrup Bomb", - effect: "The user sets off an explosion of sticky candy syrup, which coats the target and causes the target's Speed stat to drop each turn for three turns." + syrupBomb: { + name: "Bomba Sciroppata", + effect: " Il Pokémon fa esplodere dello sciroppo viscoso sul bersaglio, ricoprendolo e facendogli diminuire la Velocità per tre turni.", }, - "ivyCudgel": { - name: "Ivy Cudgel", - effect: "The user strikes with an ivy-wrapped cudgel. This move's type changes depending on the mask worn by the user, and it has a heightened chance of landing a critical hit." + ivyCudgel: { + name: "Clava di Liane", + effect: "Il Pokémon colpisce con una clava avvolta da liane. Il tipo della mossa varia in base alla maschera indossata. Probabile brutto colpo.", }, - "electroShot": { - name: "Electro Shot", - effect: "The user gathers electricity on the first turn, boosting its Sp. Atk stat, then fires a high-voltage shot on the next turn. The shot will be fired immediately in rain." + electroShot: { + name: "Elettroraggio", + effect: "Il Pokémon accumula elettricità e aumenta l'Attacco Speciale al primo turno, per poi rilasciare una potente scarica al turno successivo o, se piove, immediatamente.", }, - "teraStarstorm": { - name: "Tera Starstorm", - effect: "With the power of its crystals, the user bombards and eliminates the target. When used by Terapagos in its Stellar Form, this move damages all opposing Pokémon." + teraStarstorm: { + name: "Teracluster", + effect: "Il Pokémon elimina il bersaglio irradiando il potere dei cristalli. Se Terapagos assume la Forma Astrale, la mossa infligge danni a tutti gli avversari.", }, - "fickleBeam": { - name: "Fickle Beam", - effect: "The user shoots a beam of light to inflict damage. Sometimes all the user's heads shoot beams in unison, doubling the move's power." + fickleBeam: { + name: "Irregolaser", + effect: "Il Pokémon attacca rilasciando raggi di luce. Talvolta i laser vengono emessi da tutte le teste, contribuendo a raddoppiare la potenza della mossa.", }, - "burningBulwark": { - name: "Burning Bulwark", - effect: "The user's intensely hot fur protects it from attacks and also burns any attacker that makes direct contact with it." + burningBulwark: { + name: "Egida Ignea", + effect: "Il Pokémon blocca gli attacchi avversari con la pelliccia incandescente che scotta chi entra in contatto con lui.", }, - "thunderclap": { - name: "Thunderclap", - effect: "This move enables the user to attack first with a jolt of electricity. This move fails if the target is not readying an attack." + thunderclap: { + name: "Saetta", + effect: "Il Pokémon abbatte una scarica elettrica sul bersaglio prima che questi possa attaccare. La mossa fallisce se il bersaglio sferra una mossa che non è di attacco.", }, - "mightyCleave": { - name: "Mighty Cleave", - effect: "The user wields the light that has accumulated atop its head to cleave the target. This move hits even if the target protects itself." + mightyCleave: { + name: "Taglio Poderoso", + effect: "Il Pokémon fende il bersaglio con la luce immagazzinata nella testa, ignorando gli effetti delle mosse protettive.", }, - "tachyonCutter": { - name: "Tachyon Cutter", - effect: "The user attacks by launching particle blades at the target twice in a row. This attack never misses." + tachyonCutter: { + name: "Tachiontaglio", + effect: "Il Pokémon emette delle lame particellari in successione, infliggendo danni due volte di fila. Questo attacco va sempre a segno.", }, - "hardPress": { - name: "Hard Press", - effect: "The target is crushed with an arm, a claw, or the like to inflict damage. The more HP the target has left, the greater the move's power." + hardPress: { + name: "Pressa d'Acciaio", + effect: "Il Pokémon schiaccia il bersaglio usando i propri arti. Più PS rimangono al bersaglio, maggiore è la potenza della mossa.", }, - "dragonCheer": { - name: "Dragon Cheer", - effect: "The user raises its allies' morale with a draconic cry so that their future attacks have a heightened chance of landing critical hits. This rouses Dragon types more." + dragonCheer: { + name: "Grido del Drago", + effect: "Il Pokémon incita gli alleati con un inno ai draghi, aumentando la probabilità che sferrino brutti colpi. Particolarmente efficace con alleati di tipo Drago.", }, - "alluringVoice": { - name: "Alluring Voice", - effect: "The user attacks the target using its angelic voice. This also confuses the target if its stats have been boosted during the turn." + alluringVoice: { + name: "Ammaliavoce", + effect: "Il Pokémon attacca sfruttando il suo canto angelico, confondendo il bersaglio se le sue statistiche sono aumentate nello stesso turno.", }, - "temperFlare": { - name: "Temper Flare", - effect: "Spurred by desperation, the user attacks the target. This move's power is doubled if the user's previous move failed." + temperFlare: { + name: "Rabbia Bruciante", + effect: "Il Pokémon attacca con l'impeto di chi è pronto a tutto. Se la mossa usata al turno precedente non è andata a segno, la potenza raddoppia.", }, - "supercellSlam": { - name: "Supercell Slam", - effect: "The user electrifies its body and drops onto the target to inflict damage. If this move misses, the user takes damage instead." + supercellSlam: { + name: "Elettrotuffo", + effect: "Il Pokémon si schianta sul bersaglio dopo essersi elettrificato. Se la mossa fallisce, il Pokémon subisce dei danni.", }, - "psychicNoise": { - name: "Psychic Noise", - effect: "The user attacks the target with unpleasant sound waves. For two turns, the target is prevented from recovering HP through moves, Abilities, or held items." + psychicNoise: { + name: "Psicorumore", + effect: " l Pokémon investe il bersaglio con insopportabili onde sonore che gli impediscono di recuperare PS con mosse, abilità o strumenti che ha con sé per due turni.", }, - "upperHand": { - name: "Upper Hand", - effect: "The user reacts to the target's movement and strikes with the heel of its palm, making the target flinch. This move fails if the target is not readying a priority move." + upperHand: { + name: "Colpo di Mano", + effect: "Il Pokémon reagisce al movimento del bersaglio e, colpendo con il palmo, lo fa tentennare. Se il bersaglio non sferra un attacco ad alta priorità, la mossa fallisce.", + }, + malignantChain: { + name: "Intossicatena", + effect: "Il Pokémon logora il bersaglio avvolgendolo con le sue catene fatte di veleno e iniettandogli delle tossine che possono anche iperavvelenarlo.", }, - "malignantChain": { - name: "Malignant Chain", - effect: "The user pours toxins into the target by wrapping them in a toxic, corrosive chain. This may also leave the target badly poisoned." - } } as const; \ No newline at end of file diff --git a/src/locales/it/pokemon.ts b/src/locales/it/pokemon.ts index 98c172456be..ddc2b2c9137 100644 --- a/src/locales/it/pokemon.ts +++ b/src/locales/it/pokemon.ts @@ -1026,61 +1026,61 @@ export const pokemon: SimpleTranslationEntries = { "iron_crown": "Capoferreo", "terapagos": "Terapagos", "pecharunt": "Pecharunt", - "alola_rattata": "Rattata di Alola", - "alola_raticate": "Raticate di Alola", - "alola_raichu": "Raichu di Alola", - "alola_sandshrew": "Sandshrew di Alola", - "alola_sandslash": "Sandslash di Alola", - "alola_vulpix": "Vulpix di Alola", - "alola_ninetales": "Ninetales di Alola", - "alola_diglett": "Diglett di Alola", - "alola_dugtrio": "Dugtrio di Alola", - "alola_meowth": "Meowth di Alola", - "alola_persian": "Persian di Alola", - "alola_geodude": "Geodude di Alola", - "alola_graveler": "Graveler di Alola", - "alola_golem": "Golem di Alola", - "alola_grimer": "Grimer di Alola", - "alola_muk": "Muk di Alola", - "alola_exeggutor": "Exeggutor di Alola", - "alola_marowak": "Marowak di Alola", + "alola_rattata": "Rattata", + "alola_raticate": "Raticate", + "alola_raichu": "Raichu", + "alola_sandshrew": "Sandshrew", + "alola_sandslash": "Sandslash", + "alola_vulpix": "Vulpix", + "alola_ninetales": "Ninetales", + "alola_diglett": "Diglett", + "alola_dugtrio": "Dugtrio", + "alola_meowth": "Meowth", + "alola_persian": "Persian", + "alola_geodude": "Geodude", + "alola_graveler": "Graveler", + "alola_golem": "Golem", + "alola_grimer": "Grimer", + "alola_muk": "Muk", + "alola_exeggutor": "Exeggutor", + "alola_marowak": "Marowak", "eternal_floette": "Floette", - "galar_meowth": "Meowth di Galar", - "galar_ponyta": "Ponyta di Galar", - "galar_rapidash": "Rapidash di Galar", - "galar_slowpoke": "Slowpoke di Galar", - "galar_slowbro": "Slowbro di Galar", - "galar_farfetchd": "Farfetch'd di Galar", - "galar_weezing": "Weezing di Galar", - "galar_mr_mime": "Mr. Mime di Galar", - "galar_articuno": "Articuno di Galar", - "galar_zapdos": "Zapdos di Galar", - "galar_moltres": "Moltres di Galar", - "galar_slowking": "Slowking di Galar", - "galar_corsola": "Corsola di Galar", - "galar_zigzagoon": "Zigzagoon di Galar", - "galar_linoone": "Linoone di Galar", - "galar_darumaka": "Darumaka di Galar", - "galar_darmanitan": "Darmanitan di Galar", - "galar_yamask": "Yamask di Galar", - "galar_stunfisk": "Stunfisk di Galar", - "hisui_growlithe": "Growlithe di Hisui", - "hisui_arcanine": "Arcanine di Hisui", - "hisui_voltorb": "Voltorb di Hisui", - "hisui_electrode": "Electrode di Hisui", - "hisui_typhlosion": "Typhlosion di Hisui", - "hisui_qwilfish": "Qwilfish di Hisui", - "hisui_sneasel": "Sneasel di Hisui", - "hisui_samurott": "Samurott di Hisui", - "hisui_lilligant": "Lilligant di Hisui", - "hisui_zorua": "Zorua di Hisui", - "hisui_zoroark": "Zoroark di Hisui", - "hisui_braviary": "Braviary di Hisui", - "hisui_sliggoo": "Sliggoo di Hisui", - "hisui_goodra": "Goodra di Hisui", - "hisui_avalugg": "Avalugg di Hisui", - "hisui_decidueye": "Decidueye di Hisui", - "paldea_tauros": "Tauros di Paldea", - "paldea_wooper": "Wooper di Paldea", - "bloodmoon_ursaluna": "Ursaluna Luna Cremisi", -} as const; \ No newline at end of file + "galar_meowth": "Meowth", + "galar_ponyta": "Ponyta", + "galar_rapidash": "Rapidash", + "galar_slowpoke": "Slowpoke", + "galar_slowbro": "Slowbro", + "galar_farfetchd": "Farfetch'd", + "galar_weezing": "Weezing", + "galar_mr_mime": "Mr. Mime", + "galar_articuno": "Articuno", + "galar_zapdos": "Zapdos", + "galar_moltres": "Moltres", + "galar_slowking": "Slowking", + "galar_corsola": "Corsola", + "galar_zigzagoon": "Zigzagoon", + "galar_linoone": "Linoone", + "galar_darumaka": "Darumaka", + "galar_darmanitan": "Darmanitan", + "galar_yamask": "Yamask", + "galar_stunfisk": "Stunfisk", + "hisui_growlithe": "Growlithe", + "hisui_arcanine": "Arcanine", + "hisui_voltorb": "Voltorb", + "hisui_electrode": "Electrode", + "hisui_typhlosion": "Typhlosion", + "hisui_qwilfish": "Qwilfish", + "hisui_sneasel": "Sneasel", + "hisui_samurott": "Samurott", + "hisui_lilligant": "Lilligant", + "hisui_zorua": "Zorua", + "hisui_zoroark": "Zoroark", + "hisui_braviary": "Braviary", + "hisui_sliggoo": "Sliggoo", + "hisui_goodra": "Goodra", + "hisui_avalugg": "Avalugg", + "hisui_decidueye": "Decidueye", + "paldea_tauros": "Tauros", + "paldea_wooper": "Wooper", + "bloodmoon_ursaluna": "Ursaluna", +} as const; diff --git a/src/phases.ts b/src/phases.ts index 2385b5fb5a4..8de21a0dc14 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -2308,18 +2308,21 @@ export class MovePhase extends BattlePhase { // Assume conditions affecting targets only apply to moves with a single target let success = this.move.getMove().applyConditions(this.pokemon, targets[0], this.move.getMove()); - let failedText = null; + let cancelled = new Utils.BooleanHolder(false); + let failedText = this.move.getMove().getFailedText(this.pokemon, targets[0], this.move.getMove(), cancelled); if (success && this.scene.arena.isMoveWeatherCancelled(this.move.getMove())) success = false; else if (success && this.scene.arena.isMoveTerrainCancelled(this.pokemon, this.targets, this.move.getMove())) { success = false; - failedText = getTerrainBlockMessage(targets[0], this.scene.arena.terrain.terrainType); + if (failedText == null) + failedText = getTerrainBlockMessage(targets[0], this.scene.arena.terrain.terrainType); } if (success) this.scene.unshiftPhase(this.getEffectPhase()); else { this.pokemon.pushMoveHistory({ move: this.move.moveId, targets: this.targets, result: MoveResult.FAIL, virtual: this.move.virtual }); - this.showFailedText(failedText); + if (!cancelled.value) + this.showFailedText(failedText); } this.end(); @@ -2521,6 +2524,9 @@ export class MoveEffectPhase extends PokemonPhase { }); })); } + // Trigger effect which should only apply one time after all targeted effects have already applied + applyFilteredMoveAttrs((attr: MoveAttr) => attr instanceof MoveEffectAttr && (attr as MoveEffectAttr).trigger === MoveEffectTrigger.POST_TARGET, + user, null, this.move.getMove()) Promise.allSettled(applyAttrs).then(() => this.end()); }); }); @@ -2869,7 +2875,7 @@ export class StatChangePhase extends PokemonPhase { if (relLevelStats.length > 1) { statsFragment = relLevelStats.length >= 5 ? 'stats' - : `${relLevelStats.slice(0, -1).map(s => getBattleStatName(s)).join(', ')}, and ${getBattleStatName(relLevelStats[relLevelStats.length - 1])}`; + : `${relLevelStats.slice(0, -1).map(s => getBattleStatName(s)).join(', ')}${relLevelStats.length > 2 ? ',' : ''} and ${getBattleStatName(relLevelStats[relLevelStats.length - 1])}`; } else statsFragment = getBattleStatName(relLevelStats[0]); messages.push(getPokemonMessage(this.getPokemon(), `'s ${statsFragment} ${getBattleStatLevelChangeDescription(Math.abs(parseInt(rl)), levels >= 1)}!`)); @@ -4145,7 +4151,10 @@ export class AttemptCapturePhase extends PokemonPhase { if (speciesForm.abilityHidden && (pokemon.fusionSpecies ? pokemon.fusionAbilityIndex : pokemon.abilityIndex) === speciesForm.getAbilityCount() - 1) this.scene.validateAchv(achvs.HIDDEN_ABILITY); - if (pokemon.species.pseudoLegendary || pokemon.species.legendary) + if (pokemon.species.subLegendary) + this.scene.validateAchv(achvs.CATCH_SUB_LEGENDARY); + + if (pokemon.species.legendary) this.scene.validateAchv(achvs.CATCH_LEGENDARY); if (pokemon.species.mythical) diff --git a/src/system/achv.ts b/src/system/achv.ts index f63dd5b2810..bcf857069ee 100644 --- a/src/system/achv.ts +++ b/src/system/achv.ts @@ -134,11 +134,13 @@ export const achvs = { SPLICE: new Achv('Infinite Fusion', 'Splice two Pokémon together with DNA Splicers', 'dna_splicers', 10), MINI_BLACK_HOLE: new ModifierAchv('A Hole Lot of Items', 'Acquire a Mini Black Hole', 'mini_black_hole', 25, modifier => modifier instanceof TurnHeldItemTransferModifier).setSecret(), CATCH_MYTHICAL: new Achv('Mythical', 'Catch a mythical Pokémon', 'strange_ball', 50).setSecret(), - CATCH_LEGENDARY: new Achv('Legendary', 'Catch a legendary Pokémon', 'mb', 75).setSecret(), + CATCH_SUB_LEGENDARY: new Achv('(Sub-)Legendary', 'Catch a sub-legendary Pokémon', 'rb', 75).setSecret(), + CATCH_LEGENDARY: new Achv('Legendary', 'Catch a legendary Pokémon', 'mb', 100).setSecret(), SEE_SHINY: new Achv('Shiny', 'Find a shiny Pokémon in the wild', 'pb_gold', 75), SHINY_PARTY: new Achv('That\'s Dedication', 'Have a full party of shiny Pokémon', 'shiny_charm', 100).setSecret(true), HATCH_MYTHICAL: new Achv('Mythical Egg', 'Hatch a mythical Pokémon from an egg', 'pair_of_tickets', 75).setSecret(), - HATCH_LEGENDARY: new Achv('Legendary Egg', 'Hatch a legendary Pokémon from an egg', 'mystic_ticket', 100).setSecret(), + HATCH_SUB_LEGENDARY: new Achv('Sub-Legendary Egg', 'Hatch a sub-legendary Pokémon from an egg', 'mystic_ticket', 100).setSecret(), + HATCH_LEGENDARY: new Achv('Legendary Egg', 'Hatch a legendary Pokémon from an egg', 'mystic_ticket', 125).setSecret(), HATCH_SHINY: new Achv('Shiny Egg', 'Hatch a shiny Pokémon from an egg', 'golden_mystic_ticket', 100).setSecret(), HIDDEN_ABILITY: new Achv('Hidden Potential', 'Catch a Pokémon with a hidden ability', 'ability_charm', 75), PERFECT_IVS: new Achv('Certificate of Authenticity', 'Get perfect IVs on a Pokémon', 'blunder_policy', 100), diff --git a/src/system/game-data.ts b/src/system/game-data.ts index 76d6f5da407..ab8f4f8791b 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -361,8 +361,11 @@ export class GameData { this.starterData = systemData.starterData; } - if (systemData.gameStats) + if (systemData.gameStats) { + if (systemData.gameStats.legendaryPokemonCaught !== undefined && systemData.gameStats.subLegendaryPokemonCaught === undefined) + this.fixLegendaryStats(systemData); this.gameStats = systemData.gameStats; + } if (systemData.unlocks) { for (let key of Object.keys(systemData.unlocks)) { @@ -1011,7 +1014,9 @@ export class GameData { if (incrementCount) { dexEntry.seenCount++; this.gameStats.pokemonSeen++; - if (!trainer && pokemon.species.pseudoLegendary || pokemon.species.legendary) + if (!trainer && pokemon.species.subLegendary) + this.gameStats.subLegendaryPokemonSeen++; + else if (!trainer && pokemon.species.legendary) this.gameStats.legendaryPokemonSeen++; else if (!trainer && pokemon.species.mythical) this.gameStats.mythicalPokemonSeen++; @@ -1049,7 +1054,9 @@ export class GameData { if (!fromEgg) { dexEntry.caughtCount++; this.gameStats.pokemonCaught++; - if (pokemon.species.pseudoLegendary || pokemon.species.legendary) + if (pokemon.species.subLegendary) + this.gameStats.subLegendaryPokemonCaught++; + else if (pokemon.species.legendary) this.gameStats.legendaryPokemonCaught++; else if (pokemon.species.mythical) this.gameStats.mythicalPokemonCaught++; @@ -1058,7 +1065,9 @@ export class GameData { } else { dexEntry.hatchedCount++; this.gameStats.pokemonHatched++; - if (pokemon.species.pseudoLegendary || pokemon.species.legendary) + if (pokemon.species.subLegendary) + this.gameStats.subLegendaryPokemonHatched++; + else if (pokemon.species.legendary) this.gameStats.legendaryPokemonHatched++; else if (pokemon.species.mythical) this.gameStats.mythicalPokemonHatched++; @@ -1317,4 +1326,22 @@ export class GameData { for (let starterId of defaultStarterSpecies) systemData.starterData[starterId].abilityAttr |= AbilityAttr.ABILITY_1; } + + fixLegendaryStats(systemData: SystemSaveData): void { + systemData.gameStats.subLegendaryPokemonSeen = 0; + systemData.gameStats.subLegendaryPokemonCaught = 0; + systemData.gameStats.subLegendaryPokemonHatched = 0; + allSpecies.filter(s => s.subLegendary).forEach(s => { + const dexEntry = systemData.dexData[s.speciesId]; + systemData.gameStats.subLegendaryPokemonSeen += dexEntry.seenCount; + systemData.gameStats.legendaryPokemonSeen = Math.max(systemData.gameStats.legendaryPokemonSeen - dexEntry.seenCount, 0); + systemData.gameStats.subLegendaryPokemonCaught += dexEntry.caughtCount; + systemData.gameStats.legendaryPokemonCaught = Math.max(systemData.gameStats.legendaryPokemonCaught - dexEntry.caughtCount, 0); + systemData.gameStats.subLegendaryPokemonHatched += dexEntry.hatchedCount; + systemData.gameStats.legendaryPokemonHatched = Math.max(systemData.gameStats.legendaryPokemonHatched - dexEntry.hatchedCount, 0); + }); + systemData.gameStats.subLegendaryPokemonSeen = Math.max(systemData.gameStats.subLegendaryPokemonSeen, systemData.gameStats.subLegendaryPokemonCaught); + systemData.gameStats.legendaryPokemonSeen = Math.max(systemData.gameStats.legendaryPokemonSeen, systemData.gameStats.legendaryPokemonCaught); + systemData.gameStats.mythicalPokemonSeen = Math.max(systemData.gameStats.mythicalPokemonSeen, systemData.gameStats.mythicalPokemonCaught); + } } \ No newline at end of file diff --git a/src/system/game-stats.ts b/src/system/game-stats.ts index d74577838af..ed2f09d0034 100644 --- a/src/system/game-stats.ts +++ b/src/system/game-stats.ts @@ -20,6 +20,9 @@ export class GameStats { public pokemonDefeated: integer; public pokemonCaught: integer; public pokemonHatched: integer; + public subLegendaryPokemonSeen: integer; + public subLegendaryPokemonCaught: integer; + public subLegendaryPokemonHatched: integer; public legendaryPokemonSeen: integer; public legendaryPokemonCaught: integer; public legendaryPokemonHatched: integer; @@ -56,6 +59,10 @@ export class GameStats { this.pokemonDefeated = source?.pokemonDefeated || 0; this.pokemonCaught = source?.pokemonCaught || 0; this.pokemonHatched = source?.pokemonHatched || 0; + // Currently handled by migration + this.subLegendaryPokemonSeen = source?.subLegendaryPokemonSeen; + this.subLegendaryPokemonCaught = source?.subLegendaryPokemonCaught; + this.subLegendaryPokemonHatched = source?.subLegendaryPokemonHatched; this.legendaryPokemonSeen = source?.legendaryPokemonSeen || 0; this.legendaryPokemonCaught = source?.legendaryPokemonCaught || 0; this.legendaryPokemonHatched = source?.legendaryPokemonHatched || 0; diff --git a/src/system/settings.ts b/src/system/settings.ts index 8f0b169efc1..3805a35bb95 100644 --- a/src/system/settings.ts +++ b/src/system/settings.ts @@ -25,6 +25,7 @@ export enum Setting { Fusion_Palette_Swaps = "FUSION_PALETTE_SWAPS", Player_Gender = "PLAYER_GENDER", Gamepad_Support = "GAMEPAD_SUPPORT", + Swap_A_and_B = "SWAP_A_B", // Swaps which gamepad button handles ACTION and CANCEL Touch_Controls = "TOUCH_CONTROLS", Vibration = "VIBRATION" } @@ -56,6 +57,7 @@ export const settingOptions: SettingOptions = { [Setting.Fusion_Palette_Swaps]: [ 'Off', 'On' ], [Setting.Player_Gender]: [ 'Boy', 'Girl' ], [Setting.Gamepad_Support]: [ 'Auto', 'Disabled' ], + [Setting.Swap_A_and_B]: [ 'Enabled', 'Disabled' ], [Setting.Touch_Controls]: [ 'Auto', 'Disabled' ], [Setting.Vibration]: [ 'Auto', 'Disabled' ] }; @@ -79,6 +81,7 @@ export const settingDefaults: SettingDefaults = { [Setting.Fusion_Palette_Swaps]: 1, [Setting.Player_Gender]: 0, [Setting.Gamepad_Support]: 0, + [Setting.Swap_A_and_B]: 1, // Set to 'Disabled' by default [Setting.Touch_Controls]: 0, [Setting.Vibration]: 0 }; @@ -148,6 +151,9 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer) case Setting.Gamepad_Support: scene.gamepadSupport = settingOptions[setting][value] !== 'Disabled'; break; + case Setting.Swap_A_and_B: + scene.abSwapped = settingOptions[setting][value] !== 'Disabled'; + break; case Setting.Touch_Controls: scene.enableTouchControls = settingOptions[setting][value] !== 'Disabled' && hasTouchscreen(); const touchControls = document.getElementById('touchControls'); diff --git a/src/ui-inputs.ts b/src/ui-inputs.ts new file mode 100644 index 00000000000..38d8e7830c4 --- /dev/null +++ b/src/ui-inputs.ts @@ -0,0 +1,154 @@ +import Phaser from "phaser"; +import {Mode} from "./ui/ui"; +import {InputsController} from "./inputs-controller"; +import MessageUiHandler from "./ui/message-ui-handler"; +import StarterSelectUiHandler from "./ui/starter-select-ui-handler"; +import {Setting, settingOptions} from "./system/settings"; +import SettingsUiHandler from "./ui/settings-ui-handler"; +import {Button} from "./enums/buttons"; + +export interface ActionKeys { + [key in Button]: () => void; +} + +export class UiInputs { + private scene: Phaser.Scene; + private events: Phaser.Events; + private inputsController: InputsController; + + constructor(scene: Phaser.Scene, inputsController: InputsController) { + this.scene = scene; + this.inputsController = inputsController; + this.init(); + } + + init(): void { + this.events = this.inputsController.events; + this.listenInputs(); + } + + listenInputs(): void { + this.events.on('input_down', (event) => { + const actions = this.getActionsKeyDown(); + if (!actions.hasOwnProperty(event.button)) return; + actions[event.button](); + }, this); + + this.events.on('input_up', (event) => { + const actions = this.getActionsKeyUp(); + if (!actions.hasOwnProperty(event.button)) return; + actions[event.button](); + }, this); + } + + doVibration(inputSuccess: boolean, vibrationLength: number): void { + if (inputSuccess && this.scene.enableVibration && typeof navigator.vibrate !== 'undefined') + navigator.vibrate(vibrationLength); + } + + getActionsKeyDown(): ActionKeys { + const actions = {}; + actions[Button.UP] = () => this.buttonDirection(Button.UP); + actions[Button.DOWN] = () => this.buttonDirection(Button.DOWN); + actions[Button.LEFT] = () => this.buttonDirection(Button.LEFT); + actions[Button.RIGHT] = () => this.buttonDirection(Button.RIGHT); + actions[Button.SUBMIT] = () => this.buttonTouch(); + actions[Button.ACTION] = () => this.buttonAb(Button.ACTION); + actions[Button.CANCEL] = () => this.buttonAb(Button.CANCEL); + actions[Button.MENU] = () => this.buttonMenu(); + actions[Button.STATS] = () => this.buttonStats(true); + actions[Button.CYCLE_SHINY] = () => this.buttonCycleOption(Button.CYCLE_SHINY); + actions[Button.CYCLE_FORM] = () => this.buttonCycleOption(Button.CYCLE_FORM); + actions[Button.CYCLE_GENDER] = () => this.buttonCycleOption(Button.CYCLE_GENDER); + actions[Button.CYCLE_ABILITY] = () => this.buttonCycleOption(Button.CYCLE_ABILITY); + actions[Button.CYCLE_NATURE] = () => this.buttonCycleOption(Button.CYCLE_NATURE); + actions[Button.CYCLE_VARIANT] = () => this.buttonCycleOption(Button.CYCLE_VARIANT); + actions[Button.SPEED_UP] = () => this.buttonSpeedChange(); + actions[Button.SLOW_DOWN] = () => this.buttonSpeedChange(false); + return actions; + } + + getActionsKeyUp(): ActionKeys { + const actions = {}; + actions[Button.STATS] = () => this.buttonStats(false); + return actions; + } + + buttonDirection(direction: Button): void { + const inputSuccess = this.scene.ui.processInput(direction); + const vibrationLength = 5; + this.doVibration(inputSuccess, vibrationLength); + } + + buttonAb(button: Button): void { + this.scene.ui.processInput(button); + } + + buttonTouch(): void { + this.scene.ui.processInput(Button.SUBMIT) || this.scene.ui.processInput(Button.ACTION); + } + + buttonStats(pressed: boolean = true): void { + if (pressed) { + for (let p of this.scene.getField().filter(p => p?.isActive(true))) + p.toggleStats(true); + } else { + for (let p of this.scene.getField().filter(p => p?.isActive(true))) + p.toggleStats(false); + } + } + + buttonMenu(): void { + if (this.scene.disableMenu) + return; + switch (this.scene.ui?.getMode()) { + case Mode.MESSAGE: + if (!(this.scene.ui.getHandler() as MessageUiHandler).pendingPrompt) + return; + case Mode.TITLE: + case Mode.COMMAND: + case Mode.FIGHT: + case Mode.BALL: + case Mode.TARGET_SELECT: + case Mode.SAVE_SLOT: + case Mode.PARTY: + case Mode.SUMMARY: + case Mode.STARTER_SELECT: + case Mode.CONFIRM: + case Mode.OPTION_SELECT: + this.scene.ui.setOverlayMode(Mode.MENU); + break; + case Mode.MENU: + case Mode.SETTINGS: + case Mode.ACHIEVEMENTS: + this.scene.ui.revertMode(); + this.scene.playSound('select'); + break; + default: + return + } + } + + buttonCycleOption(button: Button): void { + if (this.scene.ui?.getHandler() instanceof StarterSelectUiHandler) { + this.scene.ui.processInput(button); + } + } + + buttonSpeedChange(up = true): void { + if (up) { + if (this.scene.gameSpeed < 5) { + this.scene.gameData.saveSetting(Setting.Game_Speed, settingOptions[Setting.Game_Speed].indexOf(`${this.scene.gameSpeed}x`) + 1); + if (this.scene.ui?.getMode() === Mode.SETTINGS) + (this.scene.ui.getHandler() as SettingsUiHandler).show([]); + } + return; + } + if (this.scene.gameSpeed > 1) { + this.scene.gameData.saveSetting(Setting.Game_Speed, Math.max(settingOptions[Setting.Game_Speed].indexOf(`${this.scene.gameSpeed}x`) - 1, 0)); + if (this.scene.ui?.getMode() === Mode.SETTINGS) + (this.scene.ui.getHandler() as SettingsUiHandler).show([]); + } + } + +} \ No newline at end of file diff --git a/src/ui/abstact-option-select-ui-handler.ts b/src/ui/abstact-option-select-ui-handler.ts index 2f2c4face89..ffc0cabc89c 100644 --- a/src/ui/abstact-option-select-ui-handler.ts +++ b/src/ui/abstact-option-select-ui-handler.ts @@ -1,10 +1,11 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; import { addWindow } from "./ui-theme"; import * as Utils from "../utils"; import { argbFromRgba } from "@material/material-color-utilities"; +import {Button} from "../enums/buttons"; export interface OptionSelectConfig { xOffset?: number; diff --git a/src/ui/achvs-ui-handler.ts b/src/ui/achvs-ui-handler.ts index cadda64e032..561b0917177 100644 --- a/src/ui/achvs-ui-handler.ts +++ b/src/ui/achvs-ui-handler.ts @@ -1,9 +1,10 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { Achv, achvs } from "../system/achv"; import MessageUiHandler from "./message-ui-handler"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import { addWindow } from "./ui-theme"; +import {Button} from "../enums/buttons"; export default class AchvsUiHandler extends MessageUiHandler { private achvsContainer: Phaser.GameObjects.Container; diff --git a/src/ui/awaitable-ui-handler.ts b/src/ui/awaitable-ui-handler.ts index e8cc979e423..532ca1115d2 100644 --- a/src/ui/awaitable-ui-handler.ts +++ b/src/ui/awaitable-ui-handler.ts @@ -1,6 +1,7 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; +import {Button} from "../enums/buttons"; export default abstract class AwaitableUiHandler extends UiHandler { protected awaitingActionInput: boolean; diff --git a/src/ui/ball-ui-handler.ts b/src/ui/ball-ui-handler.ts index f2ebdc342a4..06729151d44 100644 --- a/src/ui/ball-ui-handler.ts +++ b/src/ui/ball-ui-handler.ts @@ -1,11 +1,12 @@ import { CommandPhase } from "../phases"; -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { getPokeballName } from "../data/pokeball"; import { addTextObject, TextStyle } from "./text"; import { Command } from "./command-ui-handler"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; import { addWindow } from "./ui-theme"; +import {Button} from "../enums/buttons"; export default class BallUiHandler extends UiHandler { private pokeballSelectContainer: Phaser.GameObjects.Container; diff --git a/src/ui/battle-message-ui-handler.ts b/src/ui/battle-message-ui-handler.ts index 5e2cb56518f..d04a98ea810 100644 --- a/src/ui/battle-message-ui-handler.ts +++ b/src/ui/battle-message-ui-handler.ts @@ -1,4 +1,4 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { addBBCodeTextObject, addTextObject, getTextColor, TextStyle } from "./text"; import { Mode } from "./ui"; import * as Utils from "../utils"; @@ -6,6 +6,7 @@ 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"; +import {Button} from "../enums/buttons"; export default class BattleMessageUiHandler extends MessageUiHandler { private levelUpStatsContainer: Phaser.GameObjects.Container; diff --git a/src/ui/command-ui-handler.ts b/src/ui/command-ui-handler.ts index b8223694b4c..a2705301563 100644 --- a/src/ui/command-ui-handler.ts +++ b/src/ui/command-ui-handler.ts @@ -1,10 +1,11 @@ import { CommandPhase } from "../phases"; -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { addTextObject, TextStyle } from "./text"; import PartyUiHandler, { PartyUiMode } from "./party-ui-handler"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; import i18next from '../plugins/i18n'; +import {Button} from "../enums/buttons"; export enum Command { FIGHT = 0, diff --git a/src/ui/confirm-ui-handler.ts b/src/ui/confirm-ui-handler.ts index a220b6f3a3d..bac980db99e 100644 --- a/src/ui/confirm-ui-handler.ts +++ b/src/ui/confirm-ui-handler.ts @@ -1,7 +1,8 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import AbstractOptionSelectUiHandler, { OptionSelectConfig } from "./abstact-option-select-ui-handler"; import { Mode } from "./ui"; import i18next from "i18next"; +import {Button} from "../enums/buttons"; export default class ConfirmUiHandler extends AbstractOptionSelectUiHandler { private switchCheck: boolean; diff --git a/src/ui/egg-gacha-ui-handler.ts b/src/ui/egg-gacha-ui-handler.ts index f0e32dbc2e9..315dfdbd3d3 100644 --- a/src/ui/egg-gacha-ui-handler.ts +++ b/src/ui/egg-gacha-ui-handler.ts @@ -1,4 +1,4 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { Mode } from "./ui"; import { TextStyle, addTextObject, getEggTierTextTint } from "./text"; import MessageUiHandler from "./message-ui-handler"; @@ -9,6 +9,7 @@ import { getPokemonSpecies } from "../data/pokemon-species"; import { addWindow } from "./ui-theme"; import { Tutorial, handleTutorial } from "../tutorial"; import { EggTier } from "../data/enums/egg-type"; +import {Button} from "../enums/buttons"; const defaultText = 'Select a machine.'; diff --git a/src/ui/egg-hatch-scene-handler.ts b/src/ui/egg-hatch-scene-handler.ts index f841bafc268..ea8df429c58 100644 --- a/src/ui/egg-hatch-scene-handler.ts +++ b/src/ui/egg-hatch-scene-handler.ts @@ -1,7 +1,8 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { EggHatchPhase } from "../egg-hatch-phase"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; +import {Button} from "../enums/buttons"; export default class EggHatchSceneHandler extends UiHandler { public eggHatchContainer: Phaser.GameObjects.Container; diff --git a/src/ui/egg-list-ui-handler.ts b/src/ui/egg-list-ui-handler.ts index 7537b8deeb0..edeac7d71c7 100644 --- a/src/ui/egg-list-ui-handler.ts +++ b/src/ui/egg-list-ui-handler.ts @@ -1,4 +1,4 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { Mode } from "./ui"; import PokemonIconAnimHandler, { PokemonIconAnimMode } from "./pokemon-icon-anim-handler"; import { TextStyle, addTextObject } from "./text"; @@ -6,6 +6,7 @@ import MessageUiHandler from "./message-ui-handler"; import { EGG_SEED, Egg, GachaType, getEggGachaTypeDescriptor, getEggHatchWavesMessage, getEggDescriptor } from "../data/egg"; import * as Utils from "../utils"; import { addWindow } from "./ui-theme"; +import {Button} from "../enums/buttons"; export default class EggListUiHandler extends MessageUiHandler { private eggListContainer: Phaser.GameObjects.Container; diff --git a/src/ui/evolution-scene-handler.ts b/src/ui/evolution-scene-handler.ts index 7e0ef063ea0..3361e9038d8 100644 --- a/src/ui/evolution-scene-handler.ts +++ b/src/ui/evolution-scene-handler.ts @@ -1,7 +1,8 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import MessageUiHandler from "./message-ui-handler"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; +import {Button} from "../enums/buttons"; export default class EvolutionSceneHandler extends MessageUiHandler { public evolutionContainer: Phaser.GameObjects.Container; diff --git a/src/ui/fight-ui-handler.ts b/src/ui/fight-ui-handler.ts index 1a7a8bef597..ee7e413db5d 100644 --- a/src/ui/fight-ui-handler.ts +++ b/src/ui/fight-ui-handler.ts @@ -1,4 +1,4 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { addTextObject, TextStyle } from "./text"; import { Type } from "../data/type"; import { Command } from "./command-ui-handler"; @@ -8,6 +8,7 @@ import * as Utils from "../utils"; import { CommandPhase } from "../phases"; import { MoveCategory } from "#app/data/move.js"; import i18next from '../plugins/i18n'; +import {Button} from "../enums/buttons"; export default class FightUiHandler extends UiHandler { private movesContainer: Phaser.GameObjects.Container; diff --git a/src/ui/form-modal-ui-handler.ts b/src/ui/form-modal-ui-handler.ts index ec5f4147c58..b2c2c118100 100644 --- a/src/ui/form-modal-ui-handler.ts +++ b/src/ui/form-modal-ui-handler.ts @@ -1,4 +1,4 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { ModalConfig, ModalUiHandler } from "./modal-ui-handler"; import { Mode } from "./ui"; import { TextStyle, addTextInputObject, addTextObject } from "./text"; @@ -6,6 +6,7 @@ import { WindowVariant, addWindow } from "./ui-theme"; import InputText from "phaser3-rex-plugins/plugins/inputtext"; import * as Utils from "../utils"; import i18next from '../plugins/i18n'; +import {Button} from "../enums/buttons"; export interface FormModalConfig extends ModalConfig { errorMessage?: string; diff --git a/src/ui/game-stats-ui-handler.ts b/src/ui/game-stats-ui-handler.ts index fbac5a3bc8d..80469b864ff 100644 --- a/src/ui/game-stats-ui-handler.ts +++ b/src/ui/game-stats-ui-handler.ts @@ -1,4 +1,4 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { TextStyle, addTextObject, getTextColor } from "./text"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; @@ -6,6 +6,7 @@ import { addWindow } from "./ui-theme"; import * as Utils from "../utils"; import { DexAttr, GameData } from "../system/game-data"; import { speciesStarters } from "../data/pokemon-species"; +import {Button} from "../enums/buttons"; interface DisplayStat { label?: string; @@ -65,13 +66,16 @@ const displayStats: DisplayStats = { pokemonDefeated: 'Pokémon Defeated', pokemonCaught: 'Pokémon Caught', pokemonHatched: 'Eggs Hatched', - legendaryPokemonSeen: 'Legendary Encounters?', - legendaryPokemonCaught: 'Legendaries Caught?', - legendaryPokemonHatched: 'Legendaries Hatched?', - mythicalPokemonSeen: 'Mythical Encounters?', + subLegendaryPokemonSeen: 'Sub-Legends Seen?', + subLegendaryPokemonCaught: 'Sub-Legends Caught?', + subLegendaryPokemonHatched: 'Sub-Legends Hatched?', + legendaryPokemonSeen: 'Legends Seen?', + legendaryPokemonCaught: 'Legends Caught?', + legendaryPokemonHatched: 'Legends Hatched?', + mythicalPokemonSeen: 'Mythicals Seen?', mythicalPokemonCaught: 'Mythicals Caught?', mythicalPokemonHatched: 'Mythicals Hatched?', - shinyPokemonSeen: 'Shiny Encounters?', + shinyPokemonSeen: 'Shinies Seen?', shinyPokemonCaught: 'Shinies Caught?', shinyPokemonHatched: 'Shinies Hatched?', pokemonFused: 'Pokémon Fused?', diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index 03d93699e75..bf032667610 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -1,4 +1,4 @@ -import BattleScene, { Button, bypassLogin } from "../battle-scene"; +import BattleScene, { bypassLogin } from "../battle-scene"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import * as Utils from "../utils"; @@ -9,6 +9,7 @@ import { OptionSelectConfig, OptionSelectItem } from "./abstact-option-select-ui import { Tutorial, handleTutorial } from "../tutorial"; import { updateUserInfo } from "../account"; import i18next from '../plugins/i18n'; +import {Button} from "../enums/buttons"; export enum MenuOptions { GAME_SETTINGS, diff --git a/src/ui/modal-ui-handler.ts b/src/ui/modal-ui-handler.ts index f193a3db54f..77a3c14bd7b 100644 --- a/src/ui/modal-ui-handler.ts +++ b/src/ui/modal-ui-handler.ts @@ -1,8 +1,9 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; import { WindowVariant, addWindow } from "./ui-theme"; +import {Button} from "../enums/buttons"; export interface ModalConfig { buttonActions: Function[]; diff --git a/src/ui/modifier-select-ui-handler.ts b/src/ui/modifier-select-ui-handler.ts index f3b6ed7c001..124c4b1a773 100644 --- a/src/ui/modifier-select-ui-handler.ts +++ b/src/ui/modifier-select-ui-handler.ts @@ -1,4 +1,4 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { getPlayerShopModifierTypeOptionsForWave, ModifierTypeOption } from "../modifier/modifier-type"; import { getPokeballAtlasKey, PokeballType } from "../data/pokeball"; import { addTextObject, getModifierTierTextTint, getTextColor, TextStyle } from "./text"; @@ -6,6 +6,7 @@ import AwaitableUiHandler from "./awaitable-ui-handler"; import { Mode } from "./ui"; import { LockModifierTiersModifier, PokemonHeldItemModifier } from "../modifier/modifier"; import { handleTutorial, Tutorial } from "../tutorial"; +import {Button} from "../enums/buttons"; export const SHOP_OPTIONS_ROW_LIMIT = 6; diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index d1f49d0b55e..462f1b02f31 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -1,5 +1,5 @@ import { CommandPhase } from "../phases"; -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { PlayerPokemon, PokemonMove } from "../field/pokemon"; import { addTextObject, TextStyle } from "./text"; import { Command } from "./command-ui-handler"; @@ -16,6 +16,7 @@ import { pokemonEvolutions } from "../data/pokemon-evolutions"; import { addWindow } from "./ui-theme"; import { SpeciesFormChangeItemTrigger } from "../data/pokemon-forms"; import { getVariantTint } from "#app/data/variant"; +import {Button} from "../enums/buttons"; const defaultMessage = 'Choose a Pokémon.'; diff --git a/src/ui/save-slot-select-ui-handler.ts b/src/ui/save-slot-select-ui-handler.ts index 69ac94d99ba..a30e21c8f57 100644 --- a/src/ui/save-slot-select-ui-handler.ts +++ b/src/ui/save-slot-select-ui-handler.ts @@ -1,4 +1,4 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { gameModes } from "../game-mode"; import { SessionSaveData } from "../system/game-data"; import { TextStyle, addTextObject } from "./text"; @@ -9,6 +9,7 @@ import PokemonData from "../system/pokemon-data"; import { PokemonHeldItemModifier } from "../modifier/modifier"; import MessageUiHandler from "./message-ui-handler"; import i18next from "i18next"; +import {Button} from "../enums/buttons"; const sessionSlotCount = 5; diff --git a/src/ui/settings-ui-handler.ts b/src/ui/settings-ui-handler.ts index 8f43b377d21..3ed83268ee6 100644 --- a/src/ui/settings-ui-handler.ts +++ b/src/ui/settings-ui-handler.ts @@ -1,10 +1,11 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { Setting, reloadSettings, settingDefaults, settingOptions } from "../system/settings"; import { hasTouchscreen, isMobile } from "../touch-controls"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; import { addWindow } from "./ui-theme"; +import {Button} from "../enums/buttons"; export default class SettingsUiHandler extends UiHandler { private settingsContainer: Phaser.GameObjects.Container; diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 4cfef282c81..7fe39d2fe2b 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -1,5 +1,5 @@ -import BattleScene, { Button, starterColors } from "../battle-scene"; -import PokemonSpecies, { allSpecies, getPokemonSpecies, getPokemonSpeciesForm, speciesStarters, starterPassiveAbilities } from "../data/pokemon-species"; +import BattleScene, { starterColors } from "../battle-scene"; +import PokemonSpecies, { allSpecies, getPokemonSpecies, getPokemonSpeciesForm, speciesStarters, starterPassiveAbilities, getStarterValueFriendshipCap } from "../data/pokemon-species"; import { Species } from "../data/enums/species"; import { TextStyle, addBBCodeTextObject, addTextObject } from "./text"; import { Mode } from "./ui"; @@ -28,6 +28,7 @@ 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"; +import {Button} from "../enums/buttons"; export type StarterSelectCallback = (starters: Starter[]) => void; @@ -118,6 +119,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { private pokemonEggMoveBgs: Phaser.GameObjects.NineSlice[]; private pokemonEggMoveLabels: Phaser.GameObjects.Text[]; private pokemonCandyIcon: Phaser.GameObjects.Sprite; + private pokemonCandyDarknessOverlay: Phaser.GameObjects.Sprite; private pokemonCandyOverlayIcon: Phaser.GameObjects.Sprite; private pokemonCandyCountText: Phaser.GameObjects.Text; private pokemonCaughtHatchedContainer: Phaser.GameObjects.Container; @@ -430,7 +432,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonLuckText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonLuckText); - this.pokemonCandyIcon = this.scene.add.sprite(1, 12, 'items', 'candy'); + this.pokemonCandyIcon = this.scene.add.sprite(4.5, 18, 'candy'); this.pokemonCandyIcon.setScale(0.5); this.pokemonCandyIcon.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonCandyIcon); @@ -439,11 +441,19 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonFormText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonFormText); - this.pokemonCandyOverlayIcon = this.scene.add.sprite(1, 12, 'items', 'candy_overlay'); + this.pokemonCandyOverlayIcon = this.scene.add.sprite(4.5, 18, 'candy_overlay'); this.pokemonCandyOverlayIcon.setScale(0.5); this.pokemonCandyOverlayIcon.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonCandyOverlayIcon); + this.pokemonCandyDarknessOverlay = this.scene.add.sprite(4.5, 18, 'candy'); + this.pokemonCandyDarknessOverlay.setScale(0.5); + this.pokemonCandyDarknessOverlay.setOrigin(0, 0); + this.pokemonCandyDarknessOverlay.setTint(0x000000); + this.pokemonCandyDarknessOverlay.setAlpha(0.5); + this.pokemonCandyDarknessOverlay.setInteractive(new Phaser.Geom.Rectangle(0, 0, 16, 16), Phaser.Geom.Rectangle.Contains); + this.starterSelectContainer.add(this.pokemonCandyDarknessOverlay); + this.pokemonCandyCountText = addTextObject(this.scene, 14, 18, 'x0', TextStyle.WINDOW_ALT, { fontSize: '56px' }); this.pokemonCandyCountText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonCandyCountText); @@ -1284,16 +1294,32 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonCaughtHatchedContainer.setVisible(true); if (pokemonPrevolutions.hasOwnProperty(species.speciesId)) { this.pokemonCaughtHatchedContainer.setY(16); - [ this.pokemonCandyIcon, this.pokemonCandyOverlayIcon, this.pokemonCandyCountText ].map(c => c.setVisible(false)); + [ this.pokemonCandyIcon, this.pokemonCandyOverlayIcon, this.pokemonCandyDarknessOverlay, this.pokemonCandyCountText ].map(c => c.setVisible(false)); } else { this.pokemonCaughtHatchedContainer.setY(25); this.pokemonCandyIcon.setTint(argbFromRgba(Utils.rgbHexToRgba(colorScheme[0]))); this.pokemonCandyIcon.setVisible(true); this.pokemonCandyOverlayIcon.setTint(argbFromRgba(Utils.rgbHexToRgba(colorScheme[1]))); this.pokemonCandyOverlayIcon.setVisible(true); + this.pokemonCandyDarknessOverlay.setVisible(true); this.pokemonCandyCountText.setText(`x${this.scene.gameData.starterData[species.speciesId].candyCount}`); this.pokemonCandyCountText.setVisible(true); this.pokemonFormText.setVisible(true); + + var currentFriendship = this.scene.gameData.starterData[this.lastSpecies.speciesId].friendship; + if (!currentFriendship || currentFriendship === undefined) + currentFriendship = 0; + + const friendshipCap = getStarterValueFriendshipCap(speciesStarters[this.lastSpecies.speciesId]); + const candyCropY = 16 - (16 * (currentFriendship / friendshipCap)); + + if (this.pokemonCandyDarknessOverlay.visible) { + this.pokemonCandyDarknessOverlay.on('pointerover', () => (this.scene as BattleScene).ui.showTooltip(null, `${currentFriendship}/${friendshipCap}`, true)); + this.pokemonCandyDarknessOverlay.on('pointerout', () => (this.scene as BattleScene).ui.hideTooltip()); + } + + this.pokemonCandyDarknessOverlay.setCrop(0,0,16, candyCropY); + this.pokemonCandyDarknessOverlay.setCrop(0,0,16, candyCropY); } this.iconAnimHandler.addOrUpdate(this.starterSelectGenIconContainers[species.generation - 1].getAt(this.genSpecies[species.generation - 1].indexOf(species)) as Phaser.GameObjects.Sprite, PokemonIconAnimMode.PASSIVE); @@ -1342,6 +1368,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonCaughtHatchedContainer.setVisible(false); this.pokemonCandyIcon.setVisible(false); this.pokemonCandyOverlayIcon.setVisible(false); + this.pokemonCandyDarknessOverlay.setVisible(false); this.pokemonCandyCountText.setVisible(false); this.pokemonFormText.setVisible(false); @@ -1369,6 +1396,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonCaughtHatchedContainer.setVisible(false); this.pokemonCandyIcon.setVisible(false); this.pokemonCandyOverlayIcon.setVisible(false); + this.pokemonCandyDarknessOverlay.setVisible(false); this.pokemonCandyCountText.setVisible(false); this.pokemonFormText.setVisible(false); diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts index ee514665dc9..ac04d41be5f 100644 --- a/src/ui/summary-ui-handler.ts +++ b/src/ui/summary-ui-handler.ts @@ -1,4 +1,4 @@ -import BattleScene, { Button, starterColors } from "../battle-scene"; +import BattleScene, { starterColors } from "../battle-scene"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; import * as Utils from "../utils"; @@ -19,6 +19,7 @@ import { Nature, getNatureStatMultiplier } from "../data/nature"; import { loggedInUser } from "../account"; import { PlayerGender } from "../system/game-data"; import { Variant, getVariantTint } from "#app/data/variant"; +import {Button} from "../enums/buttons"; enum Page { PROFILE, diff --git a/src/ui/target-select-ui-handler.ts b/src/ui/target-select-ui-handler.ts index f8a7c9d28a3..36588dc4784 100644 --- a/src/ui/target-select-ui-handler.ts +++ b/src/ui/target-select-ui-handler.ts @@ -1,10 +1,11 @@ import { BattlerIndex } from "../battle"; -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { Moves } from "../data/enums/moves"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; import * as Utils from "../utils"; import { getMoveTargets } from "../data/move"; +import {Button} from "../enums/buttons"; export type TargetSelectCallback = (cursor: integer) => void; diff --git a/src/ui/ui-handler.ts b/src/ui/ui-handler.ts index e3c94b76467..7fdb85d94c0 100644 --- a/src/ui/ui-handler.ts +++ b/src/ui/ui-handler.ts @@ -1,6 +1,7 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { TextStyle, getTextColor } from "./text"; import UI, { Mode } from "./ui"; +import {Button} from "../enums/buttons"; export default abstract class UiHandler { protected scene: BattleScene; diff --git a/src/ui/ui.ts b/src/ui/ui.ts index 6e20b2cb8b8..09deb2bdd7a 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -1,4 +1,4 @@ -import { Button, default as BattleScene } from '../battle-scene'; +import { default as BattleScene } from '../battle-scene'; import UiHandler from './ui-handler'; import BattleMessageUiHandler from './battle-message-ui-handler'; import CommandUiHandler from './command-ui-handler'; @@ -35,6 +35,7 @@ import SavingIconHandler from './saving-icon-handler'; import UnavailableModalUiHandler from './unavailable-modal-ui-handler'; import OutdatedModalUiHandler from './outdated-modal-ui-handler'; import SessionReloadModalUiHandler from './session-reload-modal-ui-handler'; +import {Button} from "../enums/buttons"; export enum Mode { MESSAGE, diff --git a/src/ui/vouchers-ui-handler.ts b/src/ui/vouchers-ui-handler.ts index 3f41cf9ae74..e28e211ee53 100644 --- a/src/ui/vouchers-ui-handler.ts +++ b/src/ui/vouchers-ui-handler.ts @@ -1,9 +1,10 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene from "../battle-scene"; import { Voucher, getVoucherTypeIcon, getVoucherTypeName, vouchers } from "../system/voucher"; import MessageUiHandler from "./message-ui-handler"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import { addWindow } from "./ui-theme"; +import {Button} from "../enums/buttons"; const itemRows = 4; const itemCols = 17; diff --git a/src/utils.ts b/src/utils.ts index 3ae440a0bfb..822f02f053e 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -226,7 +226,7 @@ export const apiUrl = isLocal ? serverUrl : 'api'; export function setCookie(cName: string, cValue: string): void { const expiration = new Date(); - expiration.setTime(new Date().getTime() + 3600000 * 24 * 7); + expiration.setTime(new Date().getTime() + 3600000 * 24 * 30 * 3/*7*/); document.cookie = `${cName}=${cValue};SameSite=Strict;path=/;expires=${expiration.toUTCString()}`; }