diff --git a/package-lock.json b/package-lock.json
index 739ce18496d..453a525581b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "pokemon-rogue-battle",
- "version": "1.7.0",
+ "version": "1.7.6",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "pokemon-rogue-battle",
- "version": "1.7.0",
+ "version": "1.7.6",
"hasInstallScript": true,
"dependencies": {
"@material/material-color-utilities": "^0.2.7",
diff --git a/package.json b/package.json
index 5a191b3ec99..4c9204f60f9 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "pokemon-rogue-battle",
"private": true,
- "version": "1.7.0",
+ "version": "1.7.6",
"type": "module",
"scripts": {
"start": "vite",
diff --git a/public/exp-sprites.json b/public/exp-sprites.json
index a340d02a65a..2bf8c2bf798 100644
--- a/public/exp-sprites.json
+++ b/public/exp-sprites.json
@@ -261,10 +261,10 @@
"666-fancy",
"666-garden",
"666-garden",
- "666-high",
- "666-high",
- "666-icy",
- "666-icy",
+ "666-high-plains",
+ "666-high-plains",
+ "666-icy-snow",
+ "666-icy-snow",
"666-jungle",
"666-jungle",
"666-marine",
@@ -277,8 +277,8 @@
"666-monsoon",
"666-ocean",
"666-ocean",
- "666-poke",
- "666-poke",
+ "666-poke-ball",
+ "666-poke-ball",
"666-polar",
"666-polar",
"666-river",
@@ -1379,10 +1379,10 @@
"666b-fancy",
"666b-garden",
"666b-garden",
- "666b-high",
- "666b-high",
- "666b-icy",
- "666b-icy",
+ "666b-high-plains",
+ "666b-high-plains",
+ "666b-icy-snow",
+ "666b-icy-snow",
"666b-jungle",
"666b-jungle",
"666b-marine",
@@ -1395,8 +1395,8 @@
"666b-monsoon",
"666b-ocean",
"666b-ocean",
- "666b-poke",
- "666b-poke",
+ "666b-poke-ball",
+ "666b-poke-ball",
"666b-polar",
"666b-polar",
"666b-river",
@@ -2499,10 +2499,10 @@
"666sb-fancy",
"666sb-garden",
"666sb-garden",
- "666sb-high",
- "666sb-high",
- "666sb-icy",
- "666sb-icy",
+ "666sb-high-plains",
+ "666sb-high-plains",
+ "666sb-icy-snow",
+ "666sb-icy-snow",
"666sb-jungle",
"666sb-jungle",
"666sb-marine",
@@ -2515,8 +2515,8 @@
"666sb-monsoon",
"666sb-ocean",
"666sb-ocean",
- "666sb-poke",
- "666sb-poke",
+ "666sb-poke-ball",
+ "666sb-poke-ball",
"666sb-polar",
"666sb-polar",
"666sb-river",
@@ -3624,10 +3624,10 @@
"666s-fancy",
"666s-garden",
"666s-garden",
- "666s-high",
- "666s-high",
- "666s-icy",
- "666s-icy",
+ "666s-high-plains",
+ "666s-high-plains",
+ "666s-icy-snow",
+ "666s-icy-snow",
"666s-jungle",
"666s-jungle",
"666s-marine",
@@ -3640,8 +3640,8 @@
"666s-monsoon",
"666s-ocean",
"666s-ocean",
- "666s-poke",
- "666s-poke",
+ "666s-poke-ball",
+ "666s-poke-ball",
"666s-polar",
"666s-polar",
"666s-river",
@@ -4545,19 +4545,15 @@
"666-archipelago",
"666-continental",
"666-elegant",
- "666-fancy_2",
- "666-fancy_2",
- "666-fancy_3",
- "666-fancy_3",
+ "666-fancy",
+ "666-fancy",
"666-garden",
"666-high",
- "666-icy",
+ "666-icy-snow",
"666-jungle",
"666-marine",
- "666-meadow_2",
- "666-meadow_2",
- "666-meadow_3",
- "666-meadow_3",
+ "666-meadow",
+ "666-meadow",
"666-modern",
"666-monsoon",
"666-ocean",
@@ -4566,8 +4562,6 @@
"666-poke",
"666-polar",
"666-river",
- "666-river_2",
- "666-river_2",
"666-sandstorm",
"666-savanna",
"666-sun",
@@ -4817,86 +4811,46 @@
"665b",
"665_2b",
"665_2b",
- "666b-archipelago_2",
- "666b-archipelago_2",
- "666b-archipelago_3",
- "666b-archipelago_3",
- "666b-continental_2",
- "666b-continental_2",
- "666b-continental_3",
- "666b-continental_3",
- "666b-elegant_2",
- "666b-elegant_2",
- "666b-elegant_3",
- "666b-elegant_3",
- "666b-fancy_2",
- "666b-fancy_2",
- "666b-fancy_3",
- "666b-fancy_3",
- "666b-garden_2",
- "666b-garden_2",
- "666b-garden_3",
- "666b-garden_3",
- "666b-high",
- "666b-high",
- "666b-high",
- "666b-high",
- "666b-icy",
- "666b-icy",
- "666b-icy",
- "666b-icy",
- "666b-jungle_2",
- "666b-jungle_2",
- "666b-jungle_3",
- "666b-jungle_3",
- "666b-marine_2",
- "666b-marine_2",
- "666b-marine_3",
- "666b-marine_3",
- "666b-meadow_2",
- "666b-meadow_2",
- "666b-meadow_3",
- "666b-meadow_3",
- "666b-modern_2",
- "666b-modern_2",
- "666b-modern_3",
- "666b-modern_3",
- "666b-monsoon_2",
- "666b-monsoon_2",
- "666b-monsoon_3",
- "666b-monsoon_3",
- "666b-ocean_2",
- "666b-ocean_2",
- "666b-ocean_3",
- "666b-ocean_3",
- "666b-poke",
- "666b-poke",
- "666b-poke",
- "666b-poke",
- "666b-polar_2",
- "666b-polar_2",
- "666b-polar_3",
- "666b-polar_3",
- "666b-river_2",
- "666b-river_2",
- "666b-river_3",
- "666b-river_3",
- "666b-sandstorm_2",
- "666b-sandstorm_2",
- "666b-sandstorm_3",
- "666b-sandstorm_3",
- "666b-savanna_2",
- "666b-savanna_2",
- "666b-savanna_3",
- "666b-savanna_3",
- "666b-sun_2",
- "666b-sun_2",
- "666b-sun_3",
- "666b-sun_3",
- "666b-tundra_2",
- "666b-tundra_2",
- "666b-tundra_3",
- "666b-tundra_3",
+ "666b-archipelago",
+ "666b-archipelago",
+ "666b-continental",
+ "666b-continental",
+ "666b-elegant",
+ "666b-elegant",
+ "666b-fancy",
+ "666b-fancy",
+ "666b-garden",
+ "666b-garden",
+ "666b-high-plains",
+ "666b-high-plains",
+ "666b-icy-snow",
+ "666b-icy-snow",
+ "666b-jungle",
+ "666b-jungle",
+ "666b-marine",
+ "666b-marine",
+ "666b-meadow",
+ "666b-meadow",
+ "666b-modern",
+ "666b-modern",
+ "666b-monsoon",
+ "666b-monsoon",
+ "666b-ocean",
+ "666b-ocean",
+ "666b-poke-ball",
+ "666b-poke-ball",
+ "666b-polar",
+ "666b-polar",
+ "666b-river",
+ "666b-river",
+ "666b-sandstorm",
+ "666b-sandstorm",
+ "666b-savanna",
+ "666b-savanna",
+ "666b-sun",
+ "666b-sun",
+ "666b-tundra",
+ "666b-tundra",
"6705b",
"6706_2b",
"6706_2b",
diff --git a/public/images/events/pkmnday2025event-de.png b/public/images/events/pkmnday2025event-de.png
new file mode 100644
index 00000000000..4cc53546752
Binary files /dev/null and b/public/images/events/pkmnday2025event-de.png differ
diff --git a/public/images/events/pkmnday2025event-en.png b/public/images/events/pkmnday2025event-en.png
new file mode 100644
index 00000000000..e9caa9e19d6
Binary files /dev/null and b/public/images/events/pkmnday2025event-en.png differ
diff --git a/public/images/events/pkmnday2025event-es-ES.png b/public/images/events/pkmnday2025event-es-ES.png
new file mode 100644
index 00000000000..e1ab096dffc
Binary files /dev/null and b/public/images/events/pkmnday2025event-es-ES.png differ
diff --git a/public/images/events/pkmnday2025event-fr.png b/public/images/events/pkmnday2025event-fr.png
new file mode 100644
index 00000000000..037d1e06e61
Binary files /dev/null and b/public/images/events/pkmnday2025event-fr.png differ
diff --git a/public/images/events/pkmnday2025event-it.png b/public/images/events/pkmnday2025event-it.png
new file mode 100644
index 00000000000..f38a60330fa
Binary files /dev/null and b/public/images/events/pkmnday2025event-it.png differ
diff --git a/public/images/events/pkmnday2025event-ja.png b/public/images/events/pkmnday2025event-ja.png
new file mode 100644
index 00000000000..94b02ad93a0
Binary files /dev/null and b/public/images/events/pkmnday2025event-ja.png differ
diff --git a/public/images/events/pkmnday2025event-ko.png b/public/images/events/pkmnday2025event-ko.png
new file mode 100644
index 00000000000..aed9ee3fb28
Binary files /dev/null and b/public/images/events/pkmnday2025event-ko.png differ
diff --git a/public/images/events/pkmnday2025event-pt-BR.png b/public/images/events/pkmnday2025event-pt-BR.png
new file mode 100644
index 00000000000..2190bbac535
Binary files /dev/null and b/public/images/events/pkmnday2025event-pt-BR.png differ
diff --git a/public/images/events/pkmnday2025event-zh-CN.png b/public/images/events/pkmnday2025event-zh-CN.png
new file mode 100644
index 00000000000..a3430482dd0
Binary files /dev/null and b/public/images/events/pkmnday2025event-zh-CN.png differ
diff --git a/public/images/pokemon/656.png b/public/images/pokemon/656.png
index 6acfe282dca..06a9cd58268 100644
Binary files a/public/images/pokemon/656.png and b/public/images/pokemon/656.png differ
diff --git a/public/images/pokemon/666-continental.png b/public/images/pokemon/666-continental.png
index 1bd15dbb70d..b45f5c4e76d 100644
Binary files a/public/images/pokemon/666-continental.png and b/public/images/pokemon/666-continental.png differ
diff --git a/public/images/pokemon/666-fancy.png b/public/images/pokemon/666-fancy.png
index ec5e8a5f6e8..9e40deb3568 100644
Binary files a/public/images/pokemon/666-fancy.png and b/public/images/pokemon/666-fancy.png differ
diff --git a/public/images/pokemon/666-high-plains.png b/public/images/pokemon/666-high-plains.png
index c294984e469..45cb22fc592 100644
Binary files a/public/images/pokemon/666-high-plains.png and b/public/images/pokemon/666-high-plains.png differ
diff --git a/public/images/pokemon/666-river.png b/public/images/pokemon/666-river.png
index eeabeecb069..ca93fd612b7 100644
Binary files a/public/images/pokemon/666-river.png and b/public/images/pokemon/666-river.png differ
diff --git a/public/images/pokemon/back/666-fancy.png b/public/images/pokemon/back/666-fancy.png
index 35ed4317d8e..b56daf08a52 100644
Binary files a/public/images/pokemon/back/666-fancy.png and b/public/images/pokemon/back/666-fancy.png differ
diff --git a/public/images/pokemon/back/666-high-plains.png b/public/images/pokemon/back/666-high-plains.png
index 22f676d8f49..d6cca9c2413 100644
Binary files a/public/images/pokemon/back/666-high-plains.png and b/public/images/pokemon/back/666-high-plains.png differ
diff --git a/public/images/pokemon/back/666-river.png b/public/images/pokemon/back/666-river.png
index 0d7d7a65d1e..effabe7fa2d 100644
Binary files a/public/images/pokemon/back/666-river.png and b/public/images/pokemon/back/666-river.png differ
diff --git a/public/images/pokemon/exp/666-fancy.png b/public/images/pokemon/exp/666-fancy.png
index 6c23274c5e0..92da507a61f 100644
Binary files a/public/images/pokemon/exp/666-fancy.png and b/public/images/pokemon/exp/666-fancy.png differ
diff --git a/public/images/pokemon/exp/666-high-plains.png b/public/images/pokemon/exp/666-high-plains.png
index 9d6527bf091..a34b2fd8254 100644
Binary files a/public/images/pokemon/exp/666-high-plains.png and b/public/images/pokemon/exp/666-high-plains.png differ
diff --git a/public/images/pokemon/exp/666-meadow.json b/public/images/pokemon/exp/666-meadow.json
index ee4f6d31bc0..77158992e59 100644
--- a/public/images/pokemon/exp/666-meadow.json
+++ b/public/images/pokemon/exp/666-meadow.json
@@ -1,314 +1,551 @@
-{
- "textures": [
- {
- "image": "666-meadow.png",
- "format": "RGBA8888",
- "size": {
- "w": 243,
- "h": 243
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 84,
- "h": 88
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 84,
- "h": 88
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 77,
- "h": 89
- },
- "frame": {
- "x": 0,
- "y": 88,
- "w": 77,
- "h": 89
- }
- },
- {
- "filename": "0014.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 77,
- "h": 89
- },
- "frame": {
- "x": 0,
- "y": 88,
- "w": 77,
- "h": 89
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 69,
- "h": 89
- },
- "frame": {
- "x": 77,
- "y": 88,
- "w": 69,
- "h": 89
- }
- },
- {
- "filename": "0013.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 69,
- "h": 89
- },
- "frame": {
- "x": 77,
- "y": 88,
- "w": 69,
- "h": 89
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 3,
- "w": 62,
- "h": 87
- },
- "frame": {
- "x": 84,
- "y": 0,
- "w": 62,
- "h": 87
- }
- },
- {
- "filename": "0012.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 10,
- "y": 3,
- "w": 62,
- "h": 87
- },
- "frame": {
- "x": 84,
- "y": 0,
- "w": 62,
- "h": 87
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 2,
- "w": 56,
- "h": 86
- },
- "frame": {
- "x": 146,
- "y": 0,
- "w": 56,
- "h": 86
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 2,
- "w": 56,
- "h": 86
- },
- "frame": {
- "x": 146,
- "y": 0,
- "w": 56,
- "h": 86
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 19,
- "y": 0,
- "w": 41,
- "h": 85
- },
- "frame": {
- "x": 202,
- "y": 0,
- "w": 41,
- "h": 85
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 51,
- "h": 86
- },
- "frame": {
- "x": 146,
- "y": 86,
- "w": 51,
- "h": 86
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 51,
- "h": 86
- },
- "frame": {
- "x": 146,
- "y": 86,
- "w": 51,
- "h": 86
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 46,
- "h": 86
- },
- "frame": {
- "x": 197,
- "y": 86,
- "w": 46,
- "h": 86
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 93
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 46,
- "h": 86
- },
- "frame": {
- "x": 197,
- "y": 86,
- "w": 46,
- "h": 86
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:223ce33721ef8da9ff40286099c20de4:b82acd304c2a8b8cebeda2043a3e1f96:f8ac4807b4d6eef2256fa1b93e0f89ba$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 14, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 347, "y": 2, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 15, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 16, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 347, "y": 71, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 17, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 18, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 347, "y": 140, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 20, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 209, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 21, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 347, "y": 140, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 20, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 18, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 347, "y": 71, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 17, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 16, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 347, "y": 2, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 15, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0013.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 14, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0014.png",
+ "frame": { "x": 347, "y": 2, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 15, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0015.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 16, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0016.png",
+ "frame": { "x": 347, "y": 71, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 17, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0017.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 18, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0018.png",
+ "frame": { "x": 347, "y": 140, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 20, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0019.png",
+ "frame": { "x": 209, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 21, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0020.png",
+ "frame": { "x": 347, "y": 140, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 20, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0021.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 18, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0022.png",
+ "frame": { "x": 347, "y": 71, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 17, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0023.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 16, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0024.png",
+ "frame": { "x": 347, "y": 2, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 15, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0025.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 14, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0026.png",
+ "frame": { "x": 347, "y": 2, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 15, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0027.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 16, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0028.png",
+ "frame": { "x": 347, "y": 71, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 17, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0029.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 18, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0030.png",
+ "frame": { "x": 347, "y": 140, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 20, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0031.png",
+ "frame": { "x": 209, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 21, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0032.png",
+ "frame": { "x": 347, "y": 140, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 20, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0033.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 18, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0034.png",
+ "frame": { "x": 347, "y": 71, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 17, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0035.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 16, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0036.png",
+ "frame": { "x": 347, "y": 2, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 15, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0037.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 14, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0038.png",
+ "frame": { "x": 2, "y": 209, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 15, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0039.png",
+ "frame": { "x": 278, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 16, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0040.png",
+ "frame": { "x": 53, "y": 209, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 17, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0041.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 18, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0042.png",
+ "frame": { "x": 104, "y": 209, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 19, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0043.png",
+ "frame": { "x": 71, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 20, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0044.png",
+ "frame": { "x": 155, "y": 209, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 19, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0045.png",
+ "frame": { "x": 140, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 18, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0046.png",
+ "frame": { "x": 206, "y": 209, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 17, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0047.png",
+ "frame": { "x": 209, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 16, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0048.png",
+ "frame": { "x": 257, "y": 209, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 15, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0049.png",
+ "frame": { "x": 278, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 14, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0050.png",
+ "frame": { "x": 308, "y": 209, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 15, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0051.png",
+ "frame": { "x": 2, "y": 140, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 16, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0052.png",
+ "frame": { "x": 53, "y": 209, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 17, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0053.png",
+ "frame": { "x": 71, "y": 140, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 18, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0054.png",
+ "frame": { "x": 104, "y": 209, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 19, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0055.png",
+ "frame": { "x": 140, "y": 140, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 20, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0056.png",
+ "frame": { "x": 2, "y": 278, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 19, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0057.png",
+ "frame": { "x": 209, "y": 140, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 18, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0058.png",
+ "frame": { "x": 53, "y": 278, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 17, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0059.png",
+ "frame": { "x": 278, "y": 140, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 14, "y": 16, "w": 67, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ },
+ {
+ "filename": "0060.png",
+ "frame": { "x": 104, "y": 278, "w": 49, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 22, "y": 15, "w": 49, "h": 67 },
+ "sourceSize": { "w": 96, "h": 96 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-meadow.png",
+ "format": "I8",
+ "size": { "w": 398, "h": 347 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/666-meadow.png b/public/images/pokemon/exp/666-meadow.png
index 3f9f758ad1f..6912a8d8174 100644
Binary files a/public/images/pokemon/exp/666-meadow.png and b/public/images/pokemon/exp/666-meadow.png differ
diff --git a/public/images/pokemon/exp/666-poke-ball.png b/public/images/pokemon/exp/666-poke-ball.png
index e33fe6e8c5a..58cae8e2aaa 100644
Binary files a/public/images/pokemon/exp/666-poke-ball.png and b/public/images/pokemon/exp/666-poke-ball.png differ
diff --git a/public/images/pokemon/exp/666-river.png b/public/images/pokemon/exp/666-river.png
index 1e908ff89b6..433b2c39254 100644
Binary files a/public/images/pokemon/exp/666-river.png and b/public/images/pokemon/exp/666-river.png differ
diff --git a/public/images/pokemon/exp/back/666-archipelago.json b/public/images/pokemon/exp/back/666-archipelago.json
index bc4abf95a6d..817696f70a1 100644
--- a/public/images/pokemon/exp/back/666-archipelago.json
+++ b/public/images/pokemon/exp/back/666-archipelago.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-archipelago.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:223e2a75aa192f3fb67e18f7f0d6c4c7:ba854fe0d08f005e9aa52e55cdc7eb4e:80cdb6dd219378a41ccf5c2acc7e7786$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-archipelago.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-archipelago.png b/public/images/pokemon/exp/back/666-archipelago.png
index 83622bd976f..f83b645e0fe 100644
Binary files a/public/images/pokemon/exp/back/666-archipelago.png and b/public/images/pokemon/exp/back/666-archipelago.png differ
diff --git a/public/images/pokemon/exp/back/666-continental.json b/public/images/pokemon/exp/back/666-continental.json
index d0cd7359c88..fc21deb6978 100644
--- a/public/images/pokemon/exp/back/666-continental.json
+++ b/public/images/pokemon/exp/back/666-continental.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-continental.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:89725e18f2e4d97217076ac82b40230b:c83c3d03ad1200fc71d95ecafb54bc03:23aaac2256d564b9d8a58d7de70397c3$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-continental.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-continental.png b/public/images/pokemon/exp/back/666-continental.png
index 21447191338..f1a4cf5a2a4 100644
Binary files a/public/images/pokemon/exp/back/666-continental.png and b/public/images/pokemon/exp/back/666-continental.png differ
diff --git a/public/images/pokemon/exp/back/666-elegant.json b/public/images/pokemon/exp/back/666-elegant.json
index c44ea10f7dd..35c20315153 100644
--- a/public/images/pokemon/exp/back/666-elegant.json
+++ b/public/images/pokemon/exp/back/666-elegant.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-elegant.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 44,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 44,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 44,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 44,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 44,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 44,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:bbba66d69955866664e782205a4af88d:66e99814147be780756a4d4ccd8b31dc:d6b035048c66474f6236a3bc923faa7b$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-elegant.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-elegant.png b/public/images/pokemon/exp/back/666-elegant.png
index 3187d681140..2a75c09b505 100644
Binary files a/public/images/pokemon/exp/back/666-elegant.png and b/public/images/pokemon/exp/back/666-elegant.png differ
diff --git a/public/images/pokemon/exp/back/666-fancy.json b/public/images/pokemon/exp/back/666-fancy.json
index 657c29e99ee..54113df4b51 100644
--- a/public/images/pokemon/exp/back/666-fancy.json
+++ b/public/images/pokemon/exp/back/666-fancy.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-fancy.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:570d1bf9b987c1bf5ebfe39e485464dd:a3c8bebd39c1c84b1bf0fdf600026ea5:6d5edff9a806f43feff031c9919c9aca$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-fancy.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-fancy.png b/public/images/pokemon/exp/back/666-fancy.png
index 9f9f9c42e80..f7da62d0637 100644
Binary files a/public/images/pokemon/exp/back/666-fancy.png and b/public/images/pokemon/exp/back/666-fancy.png differ
diff --git a/public/images/pokemon/exp/back/666-garden.json b/public/images/pokemon/exp/back/666-garden.json
index 763dd125a5c..4fcc5ab0ad1 100644
--- a/public/images/pokemon/exp/back/666-garden.json
+++ b/public/images/pokemon/exp/back/666-garden.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-garden.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:4b2ac69ef7a99f6cef35d3fd38c74d01:8a4c29615f3bf20e9c5d0bb372a5b210:f13a1a8fa0a411aa91fccb833ac8719c$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-garden.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-garden.png b/public/images/pokemon/exp/back/666-garden.png
index 47a9a27e790..35e0dd02087 100644
Binary files a/public/images/pokemon/exp/back/666-garden.png and b/public/images/pokemon/exp/back/666-garden.png differ
diff --git a/public/images/pokemon/exp/back/666-high-plains.json b/public/images/pokemon/exp/back/666-high-plains.json
index 90101dd98ba..56a90a01899 100644
--- a/public/images/pokemon/exp/back/666-high-plains.json
+++ b/public/images/pokemon/exp/back/666-high-plains.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-high-plains.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:410c759185f779797422e8f2ce55db4f:6afd0d04b6138fdd57d12681e967b48c:2abdb5d19b2754e3daa24b6ff3ed2c2c$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-high-plains.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-high-plains.png b/public/images/pokemon/exp/back/666-high-plains.png
index 7b06fcc8040..7b84c4ebac3 100644
Binary files a/public/images/pokemon/exp/back/666-high-plains.png and b/public/images/pokemon/exp/back/666-high-plains.png differ
diff --git a/public/images/pokemon/exp/back/666-icy-snow.json b/public/images/pokemon/exp/back/666-icy-snow.json
index 17e6e3be8ef..b44f33bb07f 100644
--- a/public/images/pokemon/exp/back/666-icy-snow.json
+++ b/public/images/pokemon/exp/back/666-icy-snow.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-icy-snow.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:9f47e6de00b727163c2ffb6870af9c6b:16bfd68007c3798294c7d690e075f679:fb1e8b97806dc5c60ac6adf0ae48199b$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-icy-snow.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-icy-snow.png b/public/images/pokemon/exp/back/666-icy-snow.png
index b34659ded51..332e96a6d61 100644
Binary files a/public/images/pokemon/exp/back/666-icy-snow.png and b/public/images/pokemon/exp/back/666-icy-snow.png differ
diff --git a/public/images/pokemon/exp/back/666-jungle.json b/public/images/pokemon/exp/back/666-jungle.json
index b2ffdb768e6..51876d649da 100644
--- a/public/images/pokemon/exp/back/666-jungle.json
+++ b/public/images/pokemon/exp/back/666-jungle.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-jungle.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:4d8913bd65ce0b63c5354717532a7d60:39392afb8d9fb30f37b8d68b6cd368ad:c8686bcc5493911384853d54c85bfea1$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-jungle.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-jungle.png b/public/images/pokemon/exp/back/666-jungle.png
index 8e72fdd3af6..291c6bce18c 100644
Binary files a/public/images/pokemon/exp/back/666-jungle.png and b/public/images/pokemon/exp/back/666-jungle.png differ
diff --git a/public/images/pokemon/exp/back/666-marine.json b/public/images/pokemon/exp/back/666-marine.json
index 6f4be700dfc..18edbc78ec0 100644
--- a/public/images/pokemon/exp/back/666-marine.json
+++ b/public/images/pokemon/exp/back/666-marine.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-marine.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:b061fec5d665439da49159647e0a7d71:7cac8aa51d4531fbcf0f9ea9bf644452:dc240f0acbf3d56fe8729dd1f703009f$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-marine.png",
+ "format": "RGBA8888",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-marine.png b/public/images/pokemon/exp/back/666-marine.png
index 91c5b1be983..9e644f0cdaa 100644
Binary files a/public/images/pokemon/exp/back/666-marine.png and b/public/images/pokemon/exp/back/666-marine.png differ
diff --git a/public/images/pokemon/exp/back/666-meadow.json b/public/images/pokemon/exp/back/666-meadow.json
index 737ccd7c848..0f24040bd0d 100644
--- a/public/images/pokemon/exp/back/666-meadow.json
+++ b/public/images/pokemon/exp/back/666-meadow.json
@@ -1,524 +1,118 @@
-{
- "textures": [
- {
- "image": "666-meadow.png",
- "format": "RGBA8888",
- "size": {
- "w": 234,
- "h": 234
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0023.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0024.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0021.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0022.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0019.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0020.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0017.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0018.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 84,
- "h": 86
- },
- "frame": {
- "x": 135,
- "y": 0,
- "w": 84,
- "h": 86
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 84,
- "h": 86
- },
- "frame": {
- "x": 135,
- "y": 0,
- "w": 84,
- "h": 86
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0012.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0015.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0016.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0013.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 20,
- "y": 0,
- "w": 47,
- "h": 85
- },
- "frame": {
- "x": 187,
- "y": 86,
- "w": 47,
- "h": 85
- }
- },
- {
- "filename": "0014.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 20,
- "y": 0,
- "w": 47,
- "h": 85
- },
- "frame": {
- "x": 187,
- "y": 86,
- "w": 47,
- "h": 85
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:49698fe6f96ff24d2fe1c7a365f79f1b:f15ccef05dfd7ebb03ac6c66ae05dcef:f8ac4807b4d6eef2256fa1b93e0f89ba$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-meadow.png b/public/images/pokemon/exp/back/666-meadow.png
index d7d63b3098f..fabeb9730db 100644
Binary files a/public/images/pokemon/exp/back/666-meadow.png and b/public/images/pokemon/exp/back/666-meadow.png differ
diff --git a/public/images/pokemon/exp/back/666-modern.json b/public/images/pokemon/exp/back/666-modern.json
index a57b695d10b..e0a00da6d81 100644
--- a/public/images/pokemon/exp/back/666-modern.json
+++ b/public/images/pokemon/exp/back/666-modern.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-modern.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:deb5b8b4295c15b4c8718bf2ed9791d1:bbe309a34a59a4e2f74eeba5769476f4:5fc0e8f9a0750c2f3cfb5d6e7eca0d45$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-modern.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-modern.png b/public/images/pokemon/exp/back/666-modern.png
index 689876c3d6d..01a3981dd97 100644
Binary files a/public/images/pokemon/exp/back/666-modern.png and b/public/images/pokemon/exp/back/666-modern.png differ
diff --git a/public/images/pokemon/exp/back/666-monsoon.json b/public/images/pokemon/exp/back/666-monsoon.json
index 3afda85f798..117fad03b83 100644
--- a/public/images/pokemon/exp/back/666-monsoon.json
+++ b/public/images/pokemon/exp/back/666-monsoon.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-monsoon.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:71a24b11bc54be921b67b4376d798e05:f5358aac113e1f7af7eddf984d9692b3:637bea52b465abfb8e5a576310b4dacc$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-monsoon.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-monsoon.png b/public/images/pokemon/exp/back/666-monsoon.png
index e3cb4d2dca7..32cf2331411 100644
Binary files a/public/images/pokemon/exp/back/666-monsoon.png and b/public/images/pokemon/exp/back/666-monsoon.png differ
diff --git a/public/images/pokemon/exp/back/666-ocean.json b/public/images/pokemon/exp/back/666-ocean.json
index f0785703906..8d23d70cd31 100644
--- a/public/images/pokemon/exp/back/666-ocean.json
+++ b/public/images/pokemon/exp/back/666-ocean.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-ocean.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:a1a0079c64e9d91336d227b1380cd9d2:cf159e4653ad9208c0f4633a498a6cd1:e7a0e68eab89c2013a3eb7f3b6fc0b33$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-ocean.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-ocean.png b/public/images/pokemon/exp/back/666-ocean.png
index f60844a9b87..65665ea56c3 100644
Binary files a/public/images/pokemon/exp/back/666-ocean.png and b/public/images/pokemon/exp/back/666-ocean.png differ
diff --git a/public/images/pokemon/exp/back/666-poke-ball.json b/public/images/pokemon/exp/back/666-poke-ball.json
index ed04a06e7ab..45564e59a32 100644
--- a/public/images/pokemon/exp/back/666-poke-ball.json
+++ b/public/images/pokemon/exp/back/666-poke-ball.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-poke-ball.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:e744396a3b647429d050d678017c05ce:ec812f719dffcd362f0481d7d83c3476:8ec14f129d1691b8da504a13b661abed$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-poke-ball.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-poke-ball.png b/public/images/pokemon/exp/back/666-poke-ball.png
index eb3053e9434..895a2bf680f 100644
Binary files a/public/images/pokemon/exp/back/666-poke-ball.png and b/public/images/pokemon/exp/back/666-poke-ball.png differ
diff --git a/public/images/pokemon/exp/back/666-polar.json b/public/images/pokemon/exp/back/666-polar.json
index 4618d891d3f..abb6d0286f4 100644
--- a/public/images/pokemon/exp/back/666-polar.json
+++ b/public/images/pokemon/exp/back/666-polar.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-polar.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 45,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 45,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 45,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 45,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 45,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 45,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:a3b0453f2d03b9c62472f57a438298a4:81a5a3455ae0c378bdb1dbe3c3323463:eb7086e98f867c6592e4b161835da18b$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-polar.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-polar.png b/public/images/pokemon/exp/back/666-polar.png
index 5d09b57833c..c7ec3ec550a 100644
Binary files a/public/images/pokemon/exp/back/666-polar.png and b/public/images/pokemon/exp/back/666-polar.png differ
diff --git a/public/images/pokemon/exp/back/666-river.json b/public/images/pokemon/exp/back/666-river.json
index c4e5274ab6d..28912532d76 100644
--- a/public/images/pokemon/exp/back/666-river.json
+++ b/public/images/pokemon/exp/back/666-river.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-river.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:2bb6d375761e6690eba12cf4d2bc99c9:9db30ec1cf68fe8c1026c243086573f3:fa23dc87fc53ba2cfa532cf440553cf5$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-river.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-river.png b/public/images/pokemon/exp/back/666-river.png
index 2910340b676..4e0493b8de5 100644
Binary files a/public/images/pokemon/exp/back/666-river.png and b/public/images/pokemon/exp/back/666-river.png differ
diff --git a/public/images/pokemon/exp/back/666-sandstorm.json b/public/images/pokemon/exp/back/666-sandstorm.json
index cc96c2a2805..99df25242ff 100644
--- a/public/images/pokemon/exp/back/666-sandstorm.json
+++ b/public/images/pokemon/exp/back/666-sandstorm.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-sandstorm.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 2,
- "w": 40,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 40,
- "h": 68
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 2,
- "w": 40,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 68,
- "w": 40,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:e35abed8cd9d0bbf1556fa684995d930:8d765a06a769bbf3d1639f361548cd6f:12f47e779927411662912d6094a9782d$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-sandstorm.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-sandstorm.png b/public/images/pokemon/exp/back/666-sandstorm.png
index 96d7084eb30..d95ab4413a5 100644
Binary files a/public/images/pokemon/exp/back/666-sandstorm.png and b/public/images/pokemon/exp/back/666-sandstorm.png differ
diff --git a/public/images/pokemon/exp/back/666-savanna.json b/public/images/pokemon/exp/back/666-savanna.json
index 8f85dfdeb13..8fa326da1b4 100644
--- a/public/images/pokemon/exp/back/666-savanna.json
+++ b/public/images/pokemon/exp/back/666-savanna.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-savanna.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:1ad0c7c841409c3fd4cb50b399d6e13c:b9406b41d37bc72c57260f9a01a352c8:625a4f0dc001069326a75c6a381f93e6$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-savanna.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-savanna.png b/public/images/pokemon/exp/back/666-savanna.png
index 7254d0f1f61..4169b1325a6 100644
Binary files a/public/images/pokemon/exp/back/666-savanna.png and b/public/images/pokemon/exp/back/666-savanna.png differ
diff --git a/public/images/pokemon/exp/back/666-sun.json b/public/images/pokemon/exp/back/666-sun.json
index df795f0ef0c..d41f22f541c 100644
--- a/public/images/pokemon/exp/back/666-sun.json
+++ b/public/images/pokemon/exp/back/666-sun.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-sun.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:1d3a140bac5951725915aa0b64d1fdc6:e322510cf8386dcc7834a05d57e5368e:8f5fdd0a698701f5391c5a3f67e303d6$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-sun.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-sun.png b/public/images/pokemon/exp/back/666-sun.png
index 84b9d76ef88..5cc814e82d7 100644
Binary files a/public/images/pokemon/exp/back/666-sun.png and b/public/images/pokemon/exp/back/666-sun.png differ
diff --git a/public/images/pokemon/exp/back/666-tundra.json b/public/images/pokemon/exp/back/666-tundra.json
index 92e5cf92e07..afa574f9e07 100644
--- a/public/images/pokemon/exp/back/666-tundra.json
+++ b/public/images/pokemon/exp/back/666-tundra.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-tundra.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:40f74f8757cb0f5a2ab7b5f68ea979a0:d062f67571674668b47f6fab68361105:9779ed3adebc298af537dd64dc25fe00$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-tundra.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/666-tundra.png b/public/images/pokemon/exp/back/666-tundra.png
index 393ea113766..01657b339fd 100644
Binary files a/public/images/pokemon/exp/back/666-tundra.png and b/public/images/pokemon/exp/back/666-tundra.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-archipelago.json b/public/images/pokemon/exp/back/shiny/666-archipelago.json
index 5207ba45af5..817696f70a1 100644
--- a/public/images/pokemon/exp/back/shiny/666-archipelago.json
+++ b/public/images/pokemon/exp/back/shiny/666-archipelago.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-archipelago.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:d3b3934e858033f670ae2a24ec4d347a:f014942f9212da6fadbc8a0c94f2dc11:80cdb6dd219378a41ccf5c2acc7e7786$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-archipelago.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-archipelago.png b/public/images/pokemon/exp/back/shiny/666-archipelago.png
index cfc3f0012b6..ada5bd02bdb 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-archipelago.png and b/public/images/pokemon/exp/back/shiny/666-archipelago.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-continental.json b/public/images/pokemon/exp/back/shiny/666-continental.json
index a20a1baa32b..fc21deb6978 100644
--- a/public/images/pokemon/exp/back/shiny/666-continental.json
+++ b/public/images/pokemon/exp/back/shiny/666-continental.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-continental.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:06c65586a6c76ae16868407b3530cc3e:c9740628cc5f7aa0301821f74d9d2e17:23aaac2256d564b9d8a58d7de70397c3$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-continental.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-continental.png b/public/images/pokemon/exp/back/shiny/666-continental.png
index 80fdfbd42fe..a70b86e6f4e 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-continental.png and b/public/images/pokemon/exp/back/shiny/666-continental.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-elegant.json b/public/images/pokemon/exp/back/shiny/666-elegant.json
index e4372fe6e79..35c20315153 100644
--- a/public/images/pokemon/exp/back/shiny/666-elegant.json
+++ b/public/images/pokemon/exp/back/shiny/666-elegant.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-elegant.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 44,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 44,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 44,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 44,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 44,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:2f5780697c633c5f2db2d90012b0bfaa:3df5d06e71f1f48664b1d3f70b589ce5:d6b035048c66474f6236a3bc923faa7b$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-elegant.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-elegant.png b/public/images/pokemon/exp/back/shiny/666-elegant.png
index a63ccd8a4fd..f1493354831 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-elegant.png and b/public/images/pokemon/exp/back/shiny/666-elegant.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-fancy.json b/public/images/pokemon/exp/back/shiny/666-fancy.json
index da0238946be..54113df4b51 100644
--- a/public/images/pokemon/exp/back/shiny/666-fancy.json
+++ b/public/images/pokemon/exp/back/shiny/666-fancy.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-fancy.png",
- "format": "RGBA8888",
- "size": {
- "w": 133,
- "h": 133
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 69
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 65,
- "h": 66
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 65,
- "h": 66
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 69
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 41,
- "h": 67
- },
- "frame": {
- "x": 65,
- "y": 0,
- "w": 41,
- "h": 67
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 69
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 41,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 66,
- "w": 41,
- "h": 67
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 69
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 65,
- "h": 66
- },
- "frame": {
- "x": 41,
- "y": 67,
- "w": 65,
- "h": 66
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:f6d28d4fec94007c70d1812b69e8c9a4:cff02079419826e1cb2148e331588d89:6d5edff9a806f43feff031c9919c9aca$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-fancy.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-fancy.png b/public/images/pokemon/exp/back/shiny/666-fancy.png
index c84443bbe4e..6a50c5817a8 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-fancy.png and b/public/images/pokemon/exp/back/shiny/666-fancy.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-garden.json b/public/images/pokemon/exp/back/shiny/666-garden.json
index 1a44f773e4f..4fcc5ab0ad1 100644
--- a/public/images/pokemon/exp/back/shiny/666-garden.json
+++ b/public/images/pokemon/exp/back/shiny/666-garden.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-garden.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:b8e1d103e0e6ac306d2c8f447067ec3c:8483540406726b13fa42ad566b4f6991:f13a1a8fa0a411aa91fccb833ac8719c$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-garden.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-garden.png b/public/images/pokemon/exp/back/shiny/666-garden.png
index b37c6f8c84e..92214cc4d75 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-garden.png and b/public/images/pokemon/exp/back/shiny/666-garden.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-high-plains.json b/public/images/pokemon/exp/back/shiny/666-high-plains.json
index 898cbf94515..56a90a01899 100644
--- a/public/images/pokemon/exp/back/shiny/666-high-plains.json
+++ b/public/images/pokemon/exp/back/shiny/666-high-plains.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-high-plains.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:6a10c59dc5b4abef78a2379364bae874:239b86e13316e6d8fc74b42cc7f657d9:2abdb5d19b2754e3daa24b6ff3ed2c2c$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-high-plains.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-high-plains.png b/public/images/pokemon/exp/back/shiny/666-high-plains.png
index e23f879af0c..80e02eede13 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-high-plains.png and b/public/images/pokemon/exp/back/shiny/666-high-plains.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-icy-snow.json b/public/images/pokemon/exp/back/shiny/666-icy-snow.json
index 4922c7c1fb6..b44f33bb07f 100644
--- a/public/images/pokemon/exp/back/shiny/666-icy-snow.json
+++ b/public/images/pokemon/exp/back/shiny/666-icy-snow.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-icy-snow.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:a19b20c8ff121729b5b9dfb470e1e166:abf786c03cda88b39336d9172fd788ec:fb1e8b97806dc5c60ac6adf0ae48199b$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-icy-snow.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-icy-snow.png b/public/images/pokemon/exp/back/shiny/666-icy-snow.png
index 2ba96cc9ac3..1fe8305f068 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-icy-snow.png and b/public/images/pokemon/exp/back/shiny/666-icy-snow.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-jungle.json b/public/images/pokemon/exp/back/shiny/666-jungle.json
index 17254038662..51876d649da 100644
--- a/public/images/pokemon/exp/back/shiny/666-jungle.json
+++ b/public/images/pokemon/exp/back/shiny/666-jungle.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-jungle.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:4318d523b7ff0df47aa749ed39d81402:f7d5cbe7029fecd1e518aa0501a8c8ba:c8686bcc5493911384853d54c85bfea1$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-jungle.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-jungle.png b/public/images/pokemon/exp/back/shiny/666-jungle.png
index 3f1127f0265..1dbe65c02f2 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-jungle.png and b/public/images/pokemon/exp/back/shiny/666-jungle.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-marine.json b/public/images/pokemon/exp/back/shiny/666-marine.json
index 5e89662d52f..a77fd76f1dd 100644
--- a/public/images/pokemon/exp/back/shiny/666-marine.json
+++ b/public/images/pokemon/exp/back/shiny/666-marine.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-marine.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:df888a902e99f6aa55c8d9a1696f30ef:5e5db402df59c188bf1aaf4cc0b516d5:dc240f0acbf3d56fe8729dd1f703009f$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-marine.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-marine.png b/public/images/pokemon/exp/back/shiny/666-marine.png
index 7e1a47124b9..1a69d6587da 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-marine.png and b/public/images/pokemon/exp/back/shiny/666-marine.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-meadow.json b/public/images/pokemon/exp/back/shiny/666-meadow.json
index 54e872aee05..2c4a73b80cf 100644
--- a/public/images/pokemon/exp/back/shiny/666-meadow.json
+++ b/public/images/pokemon/exp/back/shiny/666-meadow.json
@@ -1,524 +1,119 @@
-{
- "textures": [
- {
- "image": "666-meadow.png",
- "format": "RGBA8888",
- "size": {
- "w": 234,
- "h": 234
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0023.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0024.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0021.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0022.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0019.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0020.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0017.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0018.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 84,
- "h": 86
- },
- "frame": {
- "x": 135,
- "y": 0,
- "w": 84,
- "h": 86
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 84,
- "h": 86
- },
- "frame": {
- "x": 135,
- "y": 0,
- "w": 84,
- "h": 86
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0012.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0015.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0016.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0013.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 20,
- "y": 0,
- "w": 47,
- "h": 85
- },
- "frame": {
- "x": 187,
- "y": 86,
- "w": 47,
- "h": 85
- }
- },
- {
- "filename": "0014.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 20,
- "y": 0,
- "w": 47,
- "h": 85
- },
- "frame": {
- "x": 187,
- "y": 86,
- "w": 47,
- "h": 85
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:217e1d90eca71c8b95407de1c156a5e6:e2b23be3d14960d78059a46f5b83304a:f8ac4807b4d6eef2256fa1b93e0f89ba$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-meadow.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-meadow.png b/public/images/pokemon/exp/back/shiny/666-meadow.png
index 2e8a64be5d4..1148fa5a620 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-meadow.png and b/public/images/pokemon/exp/back/shiny/666-meadow.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-modern.json b/public/images/pokemon/exp/back/shiny/666-modern.json
index c60078bd8ce..e0a00da6d81 100644
--- a/public/images/pokemon/exp/back/shiny/666-modern.json
+++ b/public/images/pokemon/exp/back/shiny/666-modern.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-modern.png",
- "format": "RGBA8888",
- "size": {
- "w": 132,
- "h": 132
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 69
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 40,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 40,
- "h": 67
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 69
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 40,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 40,
- "h": 67
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 69
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 65,
- "h": 66
- },
- "frame": {
- "x": 40,
- "y": 0,
- "w": 65,
- "h": 66
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 69
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 65,
- "h": 66
- },
- "frame": {
- "x": 40,
- "y": 66,
- "w": 65,
- "h": 66
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:854759536c0175b34e9ed7b2513e55dd:9fbbae33832e3b62152c5bae85714a7a:5fc0e8f9a0750c2f3cfb5d6e7eca0d45$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-modern.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-modern.png b/public/images/pokemon/exp/back/shiny/666-modern.png
index f9654fbeb02..d9f109c8ef9 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-modern.png and b/public/images/pokemon/exp/back/shiny/666-modern.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-monsoon.json b/public/images/pokemon/exp/back/shiny/666-monsoon.json
index 78130a47159..117fad03b83 100644
--- a/public/images/pokemon/exp/back/shiny/666-monsoon.json
+++ b/public/images/pokemon/exp/back/shiny/666-monsoon.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-monsoon.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:dcde8c849851ea64b2ceed92a82153e1:5a97106b9193dc2cda01b0448d9f2637:637bea52b465abfb8e5a576310b4dacc$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-monsoon.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-monsoon.png b/public/images/pokemon/exp/back/shiny/666-monsoon.png
index 5d87fc101a8..cc5279545d5 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-monsoon.png and b/public/images/pokemon/exp/back/shiny/666-monsoon.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-ocean.json b/public/images/pokemon/exp/back/shiny/666-ocean.json
index 1bf44996eef..8d23d70cd31 100644
--- a/public/images/pokemon/exp/back/shiny/666-ocean.json
+++ b/public/images/pokemon/exp/back/shiny/666-ocean.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-ocean.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:dc3f54a39a4afa0ea28913252050d7c1:d856dfe44678a2ee4dc3d367a6658ad3:e7a0e68eab89c2013a3eb7f3b6fc0b33$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-ocean.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-ocean.png b/public/images/pokemon/exp/back/shiny/666-ocean.png
index 8c6aeca189a..caabd9302ea 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-ocean.png and b/public/images/pokemon/exp/back/shiny/666-ocean.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-poke-ball.json b/public/images/pokemon/exp/back/shiny/666-poke-ball.json
index 5c8715a8a1e..45564e59a32 100644
--- a/public/images/pokemon/exp/back/shiny/666-poke-ball.json
+++ b/public/images/pokemon/exp/back/shiny/666-poke-ball.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-poke-ball.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:9df25dba5036e3cd48218e8de3a98074:4357b8b161f5f87776f4d39fcb3723f5:8ec14f129d1691b8da504a13b661abed$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-poke-ball.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-poke-ball.png b/public/images/pokemon/exp/back/shiny/666-poke-ball.png
index 24907a5ef9f..30e2cbf8615 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-poke-ball.png and b/public/images/pokemon/exp/back/shiny/666-poke-ball.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-polar.json b/public/images/pokemon/exp/back/shiny/666-polar.json
index ef69f49e390..abb6d0286f4 100644
--- a/public/images/pokemon/exp/back/shiny/666-polar.json
+++ b/public/images/pokemon/exp/back/shiny/666-polar.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-polar.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 45,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 45,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 45,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 45,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 45,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:aab22d39518ad2f1b1621a5954e95674:958cacbba11b25f5b1e7fe9a9a40465d:eb7086e98f867c6592e4b161835da18b$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-polar.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-polar.png b/public/images/pokemon/exp/back/shiny/666-polar.png
index b2f00a2a6df..c9f4fe642ee 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-polar.png and b/public/images/pokemon/exp/back/shiny/666-polar.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-savanna.json b/public/images/pokemon/exp/back/shiny/666-savanna.json
index 24638119724..8fa326da1b4 100644
--- a/public/images/pokemon/exp/back/shiny/666-savanna.json
+++ b/public/images/pokemon/exp/back/shiny/666-savanna.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-savanna.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:0c7fd4a8c1137a2566fabe2f53dac4c4:295a7bdde494b6106f9c73b649be6098:625a4f0dc001069326a75c6a381f93e6$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-savanna.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-savanna.png b/public/images/pokemon/exp/back/shiny/666-savanna.png
index 5fcf8bc6d28..a69c0c18ae1 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-savanna.png and b/public/images/pokemon/exp/back/shiny/666-savanna.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-sun.json b/public/images/pokemon/exp/back/shiny/666-sun.json
index a2ccb3c82d8..d41f22f541c 100644
--- a/public/images/pokemon/exp/back/shiny/666-sun.json
+++ b/public/images/pokemon/exp/back/shiny/666-sun.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-sun.png",
- "format": "RGBA8888",
- "size": {
- "w": 135,
- "h": 135
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 70
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 65,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 65,
- "h": 67
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 70
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 41,
- "h": 68
- },
- "frame": {
- "x": 65,
- "y": 0,
- "w": 41,
- "h": 68
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 70
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 41,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 67,
- "w": 41,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 65,
- "h": 70
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 65,
- "h": 67
- },
- "frame": {
- "x": 41,
- "y": 68,
- "w": 65,
- "h": 67
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:d1400564456ce432aab0ca4f263c336a:fba76efed9d6341c0b46301efd8cd8f5:8f5fdd0a698701f5391c5a3f67e303d6$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-sun.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-sun.png b/public/images/pokemon/exp/back/shiny/666-sun.png
index 28918f2b59a..3914a0fe350 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-sun.png and b/public/images/pokemon/exp/back/shiny/666-sun.png differ
diff --git a/public/images/pokemon/exp/back/shiny/666-tundra.json b/public/images/pokemon/exp/back/shiny/666-tundra.json
index 8361b7ca139..afa574f9e07 100644
--- a/public/images/pokemon/exp/back/shiny/666-tundra.json
+++ b/public/images/pokemon/exp/back/shiny/666-tundra.json
@@ -1,104 +1,119 @@
-{
- "textures": [
- {
- "image": "666-tundra.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:b87511ba7b272729aecbf5eb18fe65cc:383836b7b2902a470e150b17bdd9bcfc:9779ed3adebc298af537dd64dc25fe00$"
- }
+{ "frames": [
+ {
+ "filename": "0001.png",
+ "frame": { "x": 2, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0002.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0003.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0004.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0005.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0006.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0007.png",
+ "frame": { "x": 2, "y": 71, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 6, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0008.png",
+ "frame": { "x": 124, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 5, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0009.png",
+ "frame": { "x": 140, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 4, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0010.png",
+ "frame": { "x": 71, "y": 71, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 3, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0011.png",
+ "frame": { "x": 71, "y": 2, "w": 67, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 0, "y": 2, "w": 67, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ },
+ {
+ "filename": "0012.png",
+ "frame": { "x": 209, "y": 2, "w": 51, "h": 67 },
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": { "x": 8, "y": 1, "w": 51, "h": 67 },
+ "sourceSize": { "w": 67, "h": 73 },
+ "duration": 110
+ }
+ ],
+ "meta": {
+ "app": "https://www.aseprite.org/",
+ "version": "1.3.12-x64",
+ "image": "666-tundra.png",
+ "format": "I8",
+ "size": { "w": 262, "h": 140 },
+ "scale": "1"
+ }
}
diff --git a/public/images/pokemon/exp/back/shiny/666-tundra.png b/public/images/pokemon/exp/back/shiny/666-tundra.png
index c33fbf1fc65..78316df8a8f 100644
Binary files a/public/images/pokemon/exp/back/shiny/666-tundra.png and b/public/images/pokemon/exp/back/shiny/666-tundra.png differ
diff --git a/public/images/pokemon/variant/656.json b/public/images/pokemon/variant/656.json
index 68743a4c9f1..5037f86f22a 100644
--- a/public/images/pokemon/variant/656.json
+++ b/public/images/pokemon/variant/656.json
@@ -3,12 +3,12 @@
"838394": "4d7dc5",
"62ace6": "8363af",
"7bcdff": "9c75c2",
- "ffec8c": "ddfff9",
+ "fdea88": "ddfff9",
"a1a1c4": "7ab7ec",
"c9b241": "97d6e2",
- "dfcf77": "bae7e8",
+ "ccbd70": "bae7e8",
"174592": "37408c",
- "fdfdfd": "b1e5ff",
+ "f8f8f8": "b1e5ff",
"9c9cc5": "5385c7",
"cdcde6": "7eb7e8",
"396a83": "362864",
@@ -18,12 +18,12 @@
"838394": "cc6845",
"62ace6": "c44848",
"7bcdff": "dd6155",
- "ffec8c": "ddfff9",
+ "fdea88": "ddfff9",
"a1a1c4": "f7c685",
"c9b241": "97d6e2",
- "dfcf77": "bae7e8",
+ "ccbd70": "bae7e8",
"174592": "198158",
- "fdfdfd": "fff4bd",
+ "f8f8f8": "fff4bd",
"9c9cc5": "c96a48",
"cdcde6": "f7b785",
"396a83": "5c0d33",
diff --git a/public/images/pokemon/variant/666-continental.json b/public/images/pokemon/variant/666-continental.json
index 67e25fc79b4..92614fb346c 100644
--- a/public/images/pokemon/variant/666-continental.json
+++ b/public/images/pokemon/variant/666-continental.json
@@ -2,6 +2,7 @@
"1": {
"101010": "101010",
"595959": "724b7a",
+ "555353": "724b7a",
"d18257": "d18257",
"f9bd55": "f9bd55",
"303030": "402746",
@@ -15,5 +16,23 @@
"c3c3c3": "ffeaff",
"811c1c": "811c1c",
"e08528": "e08528"
+ },
+ "2": {
+ "101010": "101010",
+ "595959": "8f551e",
+ "555353": "e99b44",
+ "d18257": "d18257",
+ "f9bd55": "f9bd55",
+ "303030": "6d2d0d",
+ "f8f05e": "f8f05e",
+ "d24c3e": "d24c3e",
+ "675220": "9c5c19",
+ "ceab62": "e99b44",
+ "707068": "e99b44",
+ "504a4a": "9c5c19",
+ "aa5844": "aa5844",
+ "c3c3c3": "f8f27f",
+ "811c1c": "811c1c",
+ "308528": "308528"
}
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/666-continental_3.json b/public/images/pokemon/variant/666-continental_3.json
deleted file mode 100644
index ed0fee105bb..00000000000
--- a/public/images/pokemon/variant/666-continental_3.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "textures": [
- {
- "image": "666-continental_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 67,
- "h": 67
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": false,
- "sourceSize": {
- "w": 67,
- "h": 67
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:70eae64f87d7226958d0443e262bab16:5ea86607863e872365dc956f4d819752:23aaac2256d564b9d8a58d7de70397c3$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/666-continental_3.png b/public/images/pokemon/variant/666-continental_3.png
deleted file mode 100644
index 24e4c9ab37c..00000000000
Binary files a/public/images/pokemon/variant/666-continental_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/666-fancy.json b/public/images/pokemon/variant/666-fancy.json
new file mode 100644
index 00000000000..1f31ac6983d
--- /dev/null
+++ b/public/images/pokemon/variant/666-fancy.json
@@ -0,0 +1,38 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "811c1c": "811c1c",
+ "de4040": "de4040",
+ "5faa3e": "5faa3e",
+ "ceab62": "d9edd4",
+ "b6d26d": "b6d26d",
+ "e9e052": "e9e052",
+ "cf7ef3": "cf7ef3",
+ "c3c3c3": "ffeaff",
+ "f2d4e3": "f2d4e3",
+ "ead2e3": "ffeaff"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "00771b",
+ "675220": "b9c05a",
+ "504a4a": "b9c05a",
+ "595959": "6f9f42",
+ "707068": "e3e982",
+ "811c1c": "811c1c",
+ "de4040": "de4040",
+ "5faa3e": "5faa3e",
+ "ceab62": "e3e982",
+ "b6d26d": "b6d26d",
+ "e9e052": "e9e052",
+ "cf7ef3": "cf7ef3",
+ "c3c3c3": "fcf1ff",
+ "f2d4e3": "f2d4e3",
+ "ead2e3": "fcf1ff"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/666-fancy_2.json b/public/images/pokemon/variant/666-fancy_2.json
deleted file mode 100644
index d2dd365d3ed..00000000000
--- a/public/images/pokemon/variant/666-fancy_2.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "textures": [
- {
- "image": "666-fancy_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 67,
- "h": 67
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": false,
- "sourceSize": {
- "w": 67,
- "h": 67
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:2d5276d8c199bae070dbaa73293fd554:a099f55391d8e4bbae565d4a170574c9:6d5edff9a806f43feff031c9919c9aca$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/666-fancy_2.png b/public/images/pokemon/variant/666-fancy_2.png
deleted file mode 100644
index 100ba90d7e4..00000000000
Binary files a/public/images/pokemon/variant/666-fancy_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/666-fancy_3.json b/public/images/pokemon/variant/666-fancy_3.json
deleted file mode 100644
index be0625b1360..00000000000
--- a/public/images/pokemon/variant/666-fancy_3.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "textures": [
- {
- "image": "666-fancy_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 67,
- "h": 67
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": false,
- "sourceSize": {
- "w": 67,
- "h": 67
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:2d5276d8c199bae070dbaa73293fd554:a099f55391d8e4bbae565d4a170574c9:6d5edff9a806f43feff031c9919c9aca$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/666-fancy_3.png b/public/images/pokemon/variant/666-fancy_3.png
deleted file mode 100644
index a8453d6cbce..00000000000
Binary files a/public/images/pokemon/variant/666-fancy_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/666-high-plains.json b/public/images/pokemon/variant/666-high-plains.json
index fd26a077f34..85a5eb24cc3 100644
--- a/public/images/pokemon/variant/666-high-plains.json
+++ b/public/images/pokemon/variant/666-high-plains.json
@@ -14,7 +14,8 @@
"c3c3c3": "ffeaff",
"811c1c": "811c1c",
"337543": "337543",
- "e8c815": "e8c815"
+ "e8c815": "e8c815",
+ "773d21": "773d21"
},
"2": {
"101010": "101010",
@@ -31,6 +32,7 @@
"c3c3c3": "edc67c",
"811c1c": "811c1c",
"337543": "337543",
- "e8c815": "e8c815"
+ "e8c815": "e8c815",
+ "773d21": "773d21"
}
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/666-monsoon.json b/public/images/pokemon/variant/666-monsoon.json
index 8aaedab67ca..915d471b2b1 100644
--- a/public/images/pokemon/variant/666-monsoon.json
+++ b/public/images/pokemon/variant/666-monsoon.json
@@ -1,36 +1,33 @@
{
- "1": {
- "101010": "101010",
- "595959": "724b7a",
- "f0f0f8": "f0f0f8",
- "303030": "402746",
- "675220": "958c8a",
- "ceab62": "d9edd4",
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
"807676": "807676",
- "92f4f4": "92f4f4",
- "989898": "989898",
- "707068": "a97cbc",
- "504a4a": "7f6991",
- "4eccd6": "4eccd6",
+ "ceab62": "d9edd4",
"5676de": "5676de",
- "c3c3c3": "ffeaff",
- "811c1c": "811c1c"
- },
- "2": {
- "101010": "101010",
- "595959": "656565",
- "f0f0f8": "f0f0f8",
- "303030": "4f4645",
- "675220": "2c3593",
- "ceab62": "5857bc",
- "807676": "807676",
- "92f4f4": "92f4f4",
- "989898": "989898",
- "707068": "5857bc",
- "504a4a": "2c3593",
- "4eccd6": "4eccd6",
- "5676de": "5676de",
- "c3c3c3": "b8f9f9",
- "811c1c": "811c1c"
- }
+ "4eccd6": "4eccd6",
+ "989898": "989898",
+ "c3c3c3": "c3c3c3",
+ "f0f0f8": "f0f0f8"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "3d3231",
+ "675220": "2c3593",
+ "504a4a": "2c3593",
+ "595959": "4f4645",
+ "707068": "5857bc",
+ "807676": "807676",
+ "ceab62": "5857bc",
+ "5676de": "5676de",
+ "4eccd6": "4eccd6",
+ "989898": "989898",
+ "92f4f4": "92f4f4",
+ "c3c3c3": "b8f9f9",
+ "f0f0f8": "f0f0f8"
+ }
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/666-ocean.json b/public/images/pokemon/variant/666-ocean.json
index 975602c6f9e..23f8d48c681 100644
--- a/public/images/pokemon/variant/666-ocean.json
+++ b/public/images/pokemon/variant/666-ocean.json
@@ -22,7 +22,7 @@
"e1384d": "e1384d",
"f4ad61": "f4ad61",
"f8ef6a": "f8ef6a",
- "303030": "b56208",
+ "303030": "b54908",
"675220": "bc601c",
"ceab62": "ea8742",
"707068": "ea8742",
diff --git a/public/images/pokemon/variant/666-poke-ball.json b/public/images/pokemon/variant/666-poke-ball.json
index e83072c51a5..fe6b42f6ef3 100644
--- a/public/images/pokemon/variant/666-poke-ball.json
+++ b/public/images/pokemon/variant/666-poke-ball.json
@@ -14,6 +14,25 @@
"504a4a": "7f6991",
"c3c3c3": "ffeaff",
"811c1c": "811c1c",
- "a9a99e": "a9a99e"
+ "a9a99e": "a9a99e",
+ "2c2b2b": "402746"
+ },
+ "2": {
+ "101010": "101010",
+ "f8f8f8": "00006d",
+ "303030": "ae001a",
+ "2c2b2b": "660000",
+ "504a4a": "a70038",
+ "595959": "df0036",
+ "c3c3c3": "f0a6bf",
+ "707068": "d5375a",
+ "a9a99e": "000050",
+ "811c1c": "811c1c",
+ "971d1d": "040046",
+ "b72c2c": "00005e",
+ "dc4b4b": "19007d",
+ "e97e7e": "2e2095",
+ "675220": "a70038",
+ "ceab62": "d5375a"
}
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/666-poke-ball_3.json b/public/images/pokemon/variant/666-poke-ball_3.json
deleted file mode 100644
index d506cef780e..00000000000
--- a/public/images/pokemon/variant/666-poke-ball_3.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "textures": [
- {
- "image": "666-poke-ball_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 67,
- "h": 67
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": false,
- "sourceSize": {
- "w": 67,
- "h": 67
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:7ff5b539e59b71fa67f66f26bb0f2e9d:45bec6d118350401c25850e5f12a25af:8ec14f129d1691b8da504a13b661abed$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/666-poke-ball_3.png b/public/images/pokemon/variant/666-poke-ball_3.png
deleted file mode 100644
index e6056246fce..00000000000
Binary files a/public/images/pokemon/variant/666-poke-ball_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/666-river.json b/public/images/pokemon/variant/666-river.json
index 818e1ee3989..c7e5e288d05 100644
--- a/public/images/pokemon/variant/666-river.json
+++ b/public/images/pokemon/variant/666-river.json
@@ -1,19 +1,40 @@
{
- "2": {
- "101010": "101010",
- "595959": "8a5702",
- "ceab62": "d9a666",
- "303030": "7b2800",
- "625841": "625841",
- "bc813f": "bc813f",
- "9c9143": "9c9143",
- "675220": "ae7f41",
- "707068": "d9a666",
- "504a4a": "ae7f41",
- "c3c3c3": "e3c384",
- "811c1c": "811c1c",
- "279ec2": "279ec2",
- "59c9d3": "59c9d3",
- "1d726a": "1d726a"
- }
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "4a412c": "4a412c",
+ "675220": "958c8a",
+ "634d20": "634d20",
+ "1d726a": "1d726a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "625841": "625841",
+ "707068": "a97cbc",
+ "bc813f": "bc813f",
+ "9c9143": "9c9143",
+ "ceab62": "ceab62",
+ "279ec2": "279ec2",
+ "59c9d3": "59c9d3",
+ "c3c3c3": "c3c3c3",
+ "d2a862": "d9edd4"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "7b2800",
+ "4a412c": "4a412c",
+ "675220": "ae7f41",
+ "634d20": "634d20",
+ "1d726a": "1d726a",
+ "504a4a": "ae7f41",
+ "595959": "8a5702",
+ "625841": "625841",
+ "707068": "d9a666",
+ "bc813f": "bc813f",
+ "9c9143": "9c9143",
+ "ceab62": "ceab62",
+ "279ec2": "279ec2",
+ "59c9d3": "59c9d3",
+ "c3c3c3": "e3c384",
+ "d2a862": "d2a862"
+ }
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/666-river_2.json b/public/images/pokemon/variant/666-river_2.json
deleted file mode 100644
index 0da0f00b0be..00000000000
--- a/public/images/pokemon/variant/666-river_2.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "textures": [
- {
- "image": "666-river_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 67,
- "h": 67
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": false,
- "sourceSize": {
- "w": 67,
- "h": 67
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:39f778a45b20cfcfded5a350ee1a02e9:5d7e7e891b7da588a2ebd23733da6c2d:fa23dc87fc53ba2cfa532cf440553cf5$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/666-river_2.png b/public/images/pokemon/variant/666-river_2.png
deleted file mode 100644
index a5a65f4933b..00000000000
Binary files a/public/images/pokemon/variant/666-river_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/669-red.json b/public/images/pokemon/variant/669-red.json
index 627fdbeb44f..145228a41c2 100644
--- a/public/images/pokemon/variant/669-red.json
+++ b/public/images/pokemon/variant/669-red.json
@@ -1,4 +1,22 @@
{
+ "1": {
+ "101010": "101010",
+ "3d6629": "094740",
+ "665a1f": "3e0547",
+ "595959": "595959",
+ "686868": "686868",
+ "802d2d": "55061c",
+ "d94c4c": "aa263c",
+ "e15455": "dc6295",
+ "ff7373": "cd4a4a",
+ "65a943": "e493a1",
+ "6bb347": "1d8057",
+ "ccb43d": "6a094f",
+ "ffe14c": "9c235f",
+ "bfbfbf": "bfbfbf",
+ "f8f8f8": "f8f8f8",
+ "fffbfb": "fffbfb"
+ },
"2": {
"665a1f": "393833",
"ffe14c": "fdfffb",
diff --git a/public/images/pokemon/variant/669-red_2.json b/public/images/pokemon/variant/669-red_2.json
deleted file mode 100644
index 33816135db6..00000000000
--- a/public/images/pokemon/variant/669-red_2.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "textures": [
- {
- "image": "669-red_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 46,
- "h": 46
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": false,
- "sourceSize": {
- "w": 43,
- "h": 46
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 46
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 46
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:30be9438b4a7afb54dfbdae88661c2ed:ba8475f09ea3d2213c2462b54bc4a3e0:9f8ada9cf46c4e29f954b2eb815bc4e5$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/669-red_2.png b/public/images/pokemon/variant/669-red_2.png
deleted file mode 100644
index 5d30b38b1d4..00000000000
Binary files a/public/images/pokemon/variant/669-red_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/_masterlist.json b/public/images/pokemon/variant/_masterlist.json
index 5c09931ecf2..6d2da0ed0ee 100644
--- a/public/images/pokemon/variant/_masterlist.json
+++ b/public/images/pokemon/variant/_masterlist.json
@@ -526,9 +526,9 @@
"664": [0, 1, 1],
"665": [0, 1, 1],
"666-archipelago": [0, 1, 1],
- "666-continental": [0, 1, 2],
+ "666-continental": [0, 1, 1],
"666-elegant": [0, 1, 1],
- "666-fancy": [0, 2, 2],
+ "666-fancy": [0, 1, 1],
"666-garden": [0, 1, 1],
"666-high-plains": [0, 1, 1],
"666-icy-snow": [0, 1, 1],
@@ -538,14 +538,14 @@
"666-modern": [0, 1, 1],
"666-monsoon": [0, 1, 1],
"666-ocean": [0, 1, 1],
- "666-poke-ball": [0, 1, 2],
+ "666-poke-ball": [0, 1, 1],
"666-polar": [0, 1, 1],
- "666-river": [0, 2, 1],
+ "666-river": [0, 1, 1],
"666-sandstorm": [0, 1, 1],
"666-savanna": [0, 1, 1],
"666-sun": [0, 1, 1],
"666-tundra": [0, 1, 1],
- "669-red": [0, 2, 1],
+ "669-red": [0, 1, 1],
"669-blue": [0, 2, 2],
"669-white": [0, 1, 1],
"669-yellow": [0, 2, 1],
@@ -1438,7 +1438,7 @@
"666-archipelago": [0, 1, 1],
"666-continental": [0, 1, 1],
"666-elegant": [0, 1, 1],
- "666-fancy": [0, 2, 2],
+ "666-fancy": [0, 1, 1],
"666-garden": [0, 1, 1],
"666-high-plains": [0, 1, 1],
"666-icy-snow": [0, 1, 1],
@@ -1450,7 +1450,7 @@
"666-ocean": [0, 1, 1],
"666-poke-ball": [0, 1, 1],
"666-polar": [0, 1, 1],
- "666-river": [0, 2, 1],
+ "666-river": [0, 1, 1],
"666-sandstorm": [0, 1, 1],
"666-savanna": [0, 1, 1],
"666-sun": [0, 1, 1],
@@ -1864,19 +1864,19 @@
"666-archipelago": [0, 1, 1],
"666-continental": [0, 1, 1],
"666-elegant": [0, 1, 1],
- "666-fancy": [0, 2, 2],
+ "666-fancy": [0, 1, 1],
"666-garden": [0, 1, 1],
"666-high-plains": [0, 1, 1],
"666-icy-snow": [0, 1, 1],
"666-jungle": [0, 1, 1],
"666-marine": [0, 1, 1],
- "666-meadow": [0, 2, 2],
+ "666-meadow": [0, 1, 1],
"666-modern": [0, 1, 1],
"666-monsoon": [0, 1, 1],
"666-ocean": [0, 1, 1],
- "666-poke-ball": [0, 1, 2],
+ "666-poke-ball": [0, 1, 1],
"666-polar": [0, 1, 1],
- "666-river": [0, 2, 1],
+ "666-river": [0, 1, 1],
"666-sandstorm": [0, 1, 1],
"666-savanna": [0, 1, 1],
"666-sun": [0, 1, 1],
@@ -2193,26 +2193,26 @@
"658-ash": [0, 1, 1],
"664": [0, 1, 1],
"665": [0, 1, 1],
- "666-archipelago": [0, 2, 2],
- "666-continental": [0, 2, 2],
- "666-elegant": [0, 2, 2],
- "666-fancy": [0, 2, 2],
- "666-garden": [0, 2, 2],
- "666-high-plains": [0, 2, 2],
- "666-icy-snow": [0, 2, 2],
- "666-jungle": [0, 2, 2],
- "666-marine": [0, 2, 2],
- "666-meadow": [0, 2, 2],
- "666-modern": [0, 2, 2],
- "666-monsoon": [0, 2, 2],
- "666-ocean": [0, 2, 2],
- "666-poke-ball": [0, 2, 2],
- "666-polar": [0, 2, 2],
- "666-river": [0, 2, 2],
- "666-sandstorm": [0, 2, 2],
- "666-savanna": [0, 2, 2],
- "666-sun": [0, 2, 2],
- "666-tundra": [0, 2, 2],
+ "666-archipelago": [0, 1, 1],
+ "666-continental": [0, 1, 1],
+ "666-elegant": [0, 1, 1],
+ "666-fancy": [0, 1, 1],
+ "666-garden": [0, 1, 1],
+ "666-high-plains": [0, 1, 1],
+ "666-icy-snow": [0, 1, 1],
+ "666-jungle": [0, 1, 1],
+ "666-marine": [0, 1, 1],
+ "666-meadow": [0, 1, 1],
+ "666-modern": [0, 1, 1],
+ "666-monsoon": [0, 1, 1],
+ "666-ocean": [0, 1, 1],
+ "666-poke-ball": [0, 1, 1],
+ "666-polar": [0, 1, 1],
+ "666-river": [0, 1, 1],
+ "666-sandstorm": [0, 1, 1],
+ "666-savanna": [0, 1, 1],
+ "666-sun": [0, 1, 1],
+ "666-tundra": [0, 1, 1],
"669-red": [0, 2, 2],
"669-blue": [0, 2, 2],
"669-white": [0, 2, 2],
@@ -2478,4 +2478,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/back/656.json b/public/images/pokemon/variant/back/656.json
index 34b11bfab78..f41398f3154 100644
--- a/public/images/pokemon/variant/back/656.json
+++ b/public/images/pokemon/variant/back/656.json
@@ -1,17 +1,17 @@
{
"1": {
- "838394": "4d7dc5",
+ "848496": "4d7dc5",
"7bcdff": "9c75c2",
"62ace6": "8363af",
"ffffff": "b1e5ff",
"396a83": "362864",
"9c9cc5": "5385c7",
"cdcde6": "7eb7e8",
- "174592": "198158",
+ "174592": "37408c",
"5a94cd": "7054a4"
},
"2": {
- "838394": "cc6845",
+ "848496": "cc6845",
"7bcdff": "dd6155",
"62ace6": "c44848",
"ffffff": "fff4bd",
diff --git a/public/images/pokemon/variant/back/666-fancy.json b/public/images/pokemon/variant/back/666-fancy.json
new file mode 100644
index 00000000000..5d368667ae3
--- /dev/null
+++ b/public/images/pokemon/variant/back/666-fancy.json
@@ -0,0 +1,36 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "de4040": "de4040",
+ "5faa3e": "5faa3e",
+ "ceab62": "d9edd4",
+ "b6d26d": "b6d26d",
+ "e9e052": "e9e052",
+ "cf7ef3": "cf7ef3",
+ "c3c3c3": "ffeaff",
+ "f2d4e3": "f2d4e3",
+ "ead2e3": "ffeaff"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "00771b",
+ "675220": "b9c05a",
+ "504a4a": "b9c05a",
+ "595959": "6f9f42",
+ "707068": "6f9f42",
+ "de4040": "de4040",
+ "5faa3e": "5faa3e",
+ "ceab62": "e3e982",
+ "b6d26d": "b6d26d",
+ "e9e052": "e9e052",
+ "cf7ef3": "cf7ef3",
+ "c3c3c3": "fcf1ff",
+ "f2d4e3": "f2d4e3",
+ "ead2e3": "fcf1ff"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/back/666-fancy_2.json b/public/images/pokemon/variant/back/666-fancy_2.json
deleted file mode 100644
index 49478186fd7..00000000000
--- a/public/images/pokemon/variant/back/666-fancy_2.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "textures": [
- {
- "image": "666-fancy_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 67,
- "h": 67
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": false,
- "sourceSize": {
- "w": 67,
- "h": 67
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:c0935d72f3dd919dfad1f00ce1550c3c:4c9a4c435b13a6c8dbd3fa6eacd260d8:6d5edff9a806f43feff031c9919c9aca$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/back/666-fancy_2.png b/public/images/pokemon/variant/back/666-fancy_2.png
deleted file mode 100644
index a1e23edd659..00000000000
Binary files a/public/images/pokemon/variant/back/666-fancy_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/back/666-fancy_3.json b/public/images/pokemon/variant/back/666-fancy_3.json
deleted file mode 100644
index f060b4b02c6..00000000000
--- a/public/images/pokemon/variant/back/666-fancy_3.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "textures": [
- {
- "image": "666-fancy_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 67,
- "h": 67
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": false,
- "sourceSize": {
- "w": 67,
- "h": 67
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:c0935d72f3dd919dfad1f00ce1550c3c:4c9a4c435b13a6c8dbd3fa6eacd260d8:6d5edff9a806f43feff031c9919c9aca$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/back/666-fancy_3.png b/public/images/pokemon/variant/back/666-fancy_3.png
deleted file mode 100644
index 6d15bc3f680..00000000000
Binary files a/public/images/pokemon/variant/back/666-fancy_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/back/666-high-plains.json b/public/images/pokemon/variant/back/666-high-plains.json
index acd62e863c1..6ee5c78e6ca 100644
--- a/public/images/pokemon/variant/back/666-high-plains.json
+++ b/public/images/pokemon/variant/back/666-high-plains.json
@@ -13,7 +13,8 @@
"504a4a": "7f6991",
"c3c3c3": "c3c3c3",
"337543": "337543",
- "e8c815": "e8c815"
+ "e8c815": "e8c815",
+ "773d21": "773d21"
},
"2": {
"101010": "101010",
@@ -29,6 +30,7 @@
"504a4a": "c97034",
"c3c3c3": "edc67c",
"337543": "337543",
- "e8c815": "e8c815"
+ "e8c815": "e8c815",
+ "773d21": "773d21"
}
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/back/666-monsoon.json b/public/images/pokemon/variant/back/666-monsoon.json
index afb60e0f5ae..915d471b2b1 100644
--- a/public/images/pokemon/variant/back/666-monsoon.json
+++ b/public/images/pokemon/variant/back/666-monsoon.json
@@ -1,34 +1,33 @@
{
- "1": {
- "101010": "101010",
- "595959": "724b7a",
- "f0f0f8": "f0f0f8",
- "303030": "402746",
- "ceab62": "d9edd4",
- "675220": "958c8a",
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
"807676": "807676",
- "92f4f4": "92f4f4",
- "989898": "989898",
- "707068": "a97cbc",
+ "ceab62": "d9edd4",
"5676de": "5676de",
- "4eccd6": "4eccd6",
- "504a4a": "7f6991",
- "c3c3c3": "c3c3c3"
- },
- "2": {
- "101010": "101010",
- "595959": "656565",
- "f0f0f8": "f0f0f8",
- "303030": "4f4645",
- "ceab62": "5857bc",
- "675220": "2c3593",
- "807676": "807676",
- "92f4f4": "92f4f4",
- "989898": "989898",
- "707068": "5857bc",
- "5676de": "5676de",
- "4eccd6": "4eccd6",
- "504a4a": "2c3593",
- "c3c3c3": "b8f9f9"
- }
+ "4eccd6": "4eccd6",
+ "989898": "989898",
+ "c3c3c3": "c3c3c3",
+ "f0f0f8": "f0f0f8"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "3d3231",
+ "675220": "2c3593",
+ "504a4a": "2c3593",
+ "595959": "4f4645",
+ "707068": "5857bc",
+ "807676": "807676",
+ "ceab62": "5857bc",
+ "5676de": "5676de",
+ "4eccd6": "4eccd6",
+ "989898": "989898",
+ "92f4f4": "92f4f4",
+ "c3c3c3": "b8f9f9",
+ "f0f0f8": "f0f0f8"
+ }
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/back/666-ocean.json b/public/images/pokemon/variant/back/666-ocean.json
index 51a99de1ea8..8b62b4a8072 100644
--- a/public/images/pokemon/variant/back/666-ocean.json
+++ b/public/images/pokemon/variant/back/666-ocean.json
@@ -21,7 +21,7 @@
"e1384d": "e1384d",
"f4ad61": "f4ad61",
"f8ef6a": "f8ef6a",
- "303030": "b56208",
+ "303030": "b54908",
"ceb362": "ea8742",
"675220": "bc601c",
"ebcf3f": "ebcf3f",
diff --git a/public/images/pokemon/variant/back/666-river.json b/public/images/pokemon/variant/back/666-river.json
index b3b9671ee75..c7e5e288d05 100644
--- a/public/images/pokemon/variant/back/666-river.json
+++ b/public/images/pokemon/variant/back/666-river.json
@@ -1,18 +1,40 @@
{
- "2": {
- "101010": "101010",
- "595959": "8a5702",
- "ceab62": "d9a666",
- "625841": "625841",
- "303030": "7b2800",
- "bc813f": "bc813f",
- "9c9143": "9c9143",
- "675220": "ae7f41",
- "707068": "d9a666",
- "504a4a": "ae7f41",
- "c3c3c3": "e3c384",
- "279ec2": "279ec2",
- "59c9d3": "59c9d3",
- "1d726a": "1d726a"
- }
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "4a412c": "4a412c",
+ "675220": "958c8a",
+ "634d20": "634d20",
+ "1d726a": "1d726a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "625841": "625841",
+ "707068": "a97cbc",
+ "bc813f": "bc813f",
+ "9c9143": "9c9143",
+ "ceab62": "ceab62",
+ "279ec2": "279ec2",
+ "59c9d3": "59c9d3",
+ "c3c3c3": "c3c3c3",
+ "d2a862": "d9edd4"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "7b2800",
+ "4a412c": "4a412c",
+ "675220": "ae7f41",
+ "634d20": "634d20",
+ "1d726a": "1d726a",
+ "504a4a": "ae7f41",
+ "595959": "8a5702",
+ "625841": "625841",
+ "707068": "d9a666",
+ "bc813f": "bc813f",
+ "9c9143": "9c9143",
+ "ceab62": "ceab62",
+ "279ec2": "279ec2",
+ "59c9d3": "59c9d3",
+ "c3c3c3": "e3c384",
+ "d2a862": "d2a862"
+ }
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/back/666-river_2.json b/public/images/pokemon/variant/back/666-river_2.json
deleted file mode 100644
index 710513e4626..00000000000
--- a/public/images/pokemon/variant/back/666-river_2.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "textures": [
- {
- "image": "666-river_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 67,
- "h": 67
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": false,
- "sourceSize": {
- "w": 67,
- "h": 67
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 67
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:c5c96b8025cde94330c424121707d6d1:0eb4b25134091aa2435bee846468e099:fa23dc87fc53ba2cfa532cf440553cf5$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/back/666-river_2.png b/public/images/pokemon/variant/back/666-river_2.png
deleted file mode 100644
index 8d829e974f4..00000000000
Binary files a/public/images/pokemon/variant/back/666-river_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/666-fancy.json b/public/images/pokemon/variant/exp/666-fancy.json
new file mode 100644
index 00000000000..1f31ac6983d
--- /dev/null
+++ b/public/images/pokemon/variant/exp/666-fancy.json
@@ -0,0 +1,38 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "811c1c": "811c1c",
+ "de4040": "de4040",
+ "5faa3e": "5faa3e",
+ "ceab62": "d9edd4",
+ "b6d26d": "b6d26d",
+ "e9e052": "e9e052",
+ "cf7ef3": "cf7ef3",
+ "c3c3c3": "ffeaff",
+ "f2d4e3": "f2d4e3",
+ "ead2e3": "ffeaff"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "00771b",
+ "675220": "b9c05a",
+ "504a4a": "b9c05a",
+ "595959": "6f9f42",
+ "707068": "e3e982",
+ "811c1c": "811c1c",
+ "de4040": "de4040",
+ "5faa3e": "5faa3e",
+ "ceab62": "e3e982",
+ "b6d26d": "b6d26d",
+ "e9e052": "e9e052",
+ "cf7ef3": "cf7ef3",
+ "c3c3c3": "fcf1ff",
+ "f2d4e3": "f2d4e3",
+ "ead2e3": "fcf1ff"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/666-fancy_2.json b/public/images/pokemon/variant/exp/666-fancy_2.json
deleted file mode 100644
index bcfde0b3dd4..00000000000
--- a/public/images/pokemon/variant/exp/666-fancy_2.json
+++ /dev/null
@@ -1,1280 +0,0 @@
-{
- "textures": [
- {
- "image": "666-fancy_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 346,
- "h": 346
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0015.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0023.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0027.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0035.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0017.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0021.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0029.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0033.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0039.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0041.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0043.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 276,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0045.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0047.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0051.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 201,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0053.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0055.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0057.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0059.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0013.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0025.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0037.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0019.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0031.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0049.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 201,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0012.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0014.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0024.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0026.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0036.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0016.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0022.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0028.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0034.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0018.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0020.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0030.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0032.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0038.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0040.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0052.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0042.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0054.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0044.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0046.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0048.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0050.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0056.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 276,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0058.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0060.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 276,
- "w": 53,
- "h": 69
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:370e4a87d9d988b8133d25e0b97db22c:d173344c5e41aaa90de937ec3e1b167f:6d5edff9a806f43feff031c9919c9aca$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/666-fancy_2.png b/public/images/pokemon/variant/exp/666-fancy_2.png
deleted file mode 100644
index 68af4d0a07a..00000000000
Binary files a/public/images/pokemon/variant/exp/666-fancy_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/666-fancy_3.json b/public/images/pokemon/variant/exp/666-fancy_3.json
deleted file mode 100644
index 60fd0634e79..00000000000
--- a/public/images/pokemon/variant/exp/666-fancy_3.json
+++ /dev/null
@@ -1,1280 +0,0 @@
-{
- "textures": [
- {
- "image": "666-fancy_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 346,
- "h": 346
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0015.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0023.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0027.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0035.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0017.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0021.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0029.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0033.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0039.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0041.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0043.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 276,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0045.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0047.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0051.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 201,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0053.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0055.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0057.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0059.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0013.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0025.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0037.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0019.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0031.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0049.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 201,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0012.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0014.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0024.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0026.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0036.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0016.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0022.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0028.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0034.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0018.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0020.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0030.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0032.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0038.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0040.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0052.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0042.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0054.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0044.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0046.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0048.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0050.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0056.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 276,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0058.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0060.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 276,
- "w": 53,
- "h": 69
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:370e4a87d9d988b8133d25e0b97db22c:d173344c5e41aaa90de937ec3e1b167f:6d5edff9a806f43feff031c9919c9aca$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/666-fancy_3.png b/public/images/pokemon/variant/exp/666-fancy_3.png
deleted file mode 100644
index a8e39976f2a..00000000000
Binary files a/public/images/pokemon/variant/exp/666-fancy_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/666-high-plains.json b/public/images/pokemon/variant/exp/666-high-plains.json
index 330d1c39772..f63bb4f81f3 100644
--- a/public/images/pokemon/variant/exp/666-high-plains.json
+++ b/public/images/pokemon/variant/exp/666-high-plains.json
@@ -14,7 +14,8 @@
"c3c3c3": "ffeaff",
"811c1c": "811c1c",
"337543": "337543",
- "e8c815": "e8c815"
+ "e8c815": "e8c815",
+ "773d21": "773d21"
},
"2": {
"101010": "101010",
@@ -31,6 +32,7 @@
"c3c3c3": "edc67c",
"811c1c": "811c1c",
"337543": "337543",
- "e8c815": "e8c815"
+ "e8c815": "e8c815",
+ "773d21": "773d21"
}
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/666-icy-snow.json b/public/images/pokemon/variant/exp/666-icy-snow.json
index 9cae71418ce..d69d48d89e9 100644
--- a/public/images/pokemon/variant/exp/666-icy-snow.json
+++ b/public/images/pokemon/variant/exp/666-icy-snow.json
@@ -6,12 +6,13 @@
"303030": "402746",
"cfd9cf": "cfd9cf",
"c5c5da": "c5c5da",
- "ceab62": "d9edd4",
"675220": "958c8a",
- "504a4a": "7f6991",
+ "ceab62": "d9edd4",
"707068": "a97cbc",
+ "504a4a": "7f6991",
"c3c3c3": "ffeaff",
"acacc2": "acacc2",
+ "95a1a1": "95a1a1",
"811c1c": "811c1c"
},
"2": {
@@ -21,12 +22,13 @@
"303030": "364051",
"cfd9cf": "cfd9cf",
"c5c5da": "c5c5da",
- "ceab62": "8c91a4",
"675220": "666b7d",
- "504a4a": "666b7d",
+ "ceab62": "8c91a4",
"707068": "8c91a4",
+ "504a4a": "666b7d",
"c3c3c3": "fefeff",
"acacc2": "acacc2",
+ "95a1a1": "95a1a1",
"811c1c": "811c1c"
}
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/666-meadow.json b/public/images/pokemon/variant/exp/666-meadow.json
new file mode 100644
index 00000000000..c766325427b
--- /dev/null
+++ b/public/images/pokemon/variant/exp/666-meadow.json
@@ -0,0 +1,36 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "811c1c": "811c1c",
+ "b4295a": "b4295a",
+ "da6b7e": "da6b7e",
+ "ceab62": "d9edd4",
+ "e66fad": "e66fad",
+ "2d9b9b": "2d9b9b",
+ "f3a0ca": "f3a0ca",
+ "c3c3c3": "ffeaff",
+ "f2f2f2": "f2f2f2"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "770921",
+ "675220": "a2275e",
+ "504a4a": "a2275e",
+ "595959": "9e3941",
+ "707068": "ce5283",
+ "811c1c": "811c1c",
+ "b4295a": "b4295a",
+ "da6b7e": "da6b7e",
+ "ceab62": "ce5283",
+ "e66fad": "e66fad",
+ "2d9b9b": "2d9b9b",
+ "f3a0ca": "f3a0ca",
+ "c3c3c3": "f4c2ec",
+ "f2f2f2": "f2f2f2"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/666-meadow_2.json b/public/images/pokemon/variant/exp/666-meadow_2.json
deleted file mode 100644
index 4d4d4d16147..00000000000
--- a/public/images/pokemon/variant/exp/666-meadow_2.json
+++ /dev/null
@@ -1,1280 +0,0 @@
-{
- "textures": [
- {
- "image": "666-meadow_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 346,
- "h": 346
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0015.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0023.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0027.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0035.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0017.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0021.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0029.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0033.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0039.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0041.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0043.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 276,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0045.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0047.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0051.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 201,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0053.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0055.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0057.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0059.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0013.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0025.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0037.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0019.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0031.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0049.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 201,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0012.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0014.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0024.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0026.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0036.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0016.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0022.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0028.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0034.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0018.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0020.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0030.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0032.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0038.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0040.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0052.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0042.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0054.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0044.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0046.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0048.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0050.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0056.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 276,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0058.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0060.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 276,
- "w": 53,
- "h": 69
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:223ce33721ef8da9ff40286099c20de4:b82acd304c2a8b8cebeda2043a3e1f96:f8ac4807b4d6eef2256fa1b93e0f89ba$"
- }
-}
diff --git a/public/images/pokemon/variant/exp/666-meadow_2.png b/public/images/pokemon/variant/exp/666-meadow_2.png
deleted file mode 100644
index 8aada72636f..00000000000
Binary files a/public/images/pokemon/variant/exp/666-meadow_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/666-meadow_3.json b/public/images/pokemon/variant/exp/666-meadow_3.json
deleted file mode 100644
index 8af56626a35..00000000000
--- a/public/images/pokemon/variant/exp/666-meadow_3.json
+++ /dev/null
@@ -1,1280 +0,0 @@
-{
- "textures": [
- {
- "image": "666-meadow_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 346,
- "h": 346
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0015.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0023.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0027.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0035.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0017.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0021.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0029.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0033.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0039.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0041.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0043.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 276,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0045.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0047.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0051.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 201,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0053.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0055.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0057.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0059.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0013.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0025.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0037.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0019.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0031.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0049.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 201,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0012.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0014.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0024.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0026.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0036.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0016.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0022.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0028.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0034.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0018.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0020.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0030.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0032.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0038.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0040.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0052.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0042.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0054.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0044.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0046.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0048.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0050.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0056.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 276,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0058.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0060.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 276,
- "w": 53,
- "h": 69
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:223ce33721ef8da9ff40286099c20de4:b82acd304c2a8b8cebeda2043a3e1f96:f8ac4807b4d6eef2256fa1b93e0f89ba$"
- }
-}
diff --git a/public/images/pokemon/variant/exp/666-meadow_3.png b/public/images/pokemon/variant/exp/666-meadow_3.png
deleted file mode 100644
index 146ea5e2ba9..00000000000
Binary files a/public/images/pokemon/variant/exp/666-meadow_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/666-monsoon.json b/public/images/pokemon/variant/exp/666-monsoon.json
index edc2e86427e..915d471b2b1 100644
--- a/public/images/pokemon/variant/exp/666-monsoon.json
+++ b/public/images/pokemon/variant/exp/666-monsoon.json
@@ -1,36 +1,33 @@
{
- "1": {
- "101010": "101010",
- "595959": "724b7a",
- "f0f0f8": "f0f0f8",
- "303030": "402746",
- "ceab62": "d9edd4",
- "675220": "958c8a",
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
"807676": "807676",
- "92f4f4": "92f4f4",
- "989898": "989898",
- "504a4a": "7f6991",
- "707068": "a97cbc",
- "4eccd6": "4eccd6",
+ "ceab62": "d9edd4",
"5676de": "5676de",
- "c3c3c3": "ffeaff",
- "811c1c": "811c1c"
- },
- "2": {
- "101010": "101010",
- "595959": "656565",
- "f0f0f8": "f0f0f8",
- "303030": "4f4645",
- "ceab62": "5857bc",
- "675220": "2c3593",
- "807676": "807676",
- "92f4f4": "92f4f4",
- "989898": "989898",
- "504a4a": "2c3593",
- "707068": "5857bc",
- "4eccd6": "4eccd6",
- "5676de": "5676de",
- "c3c3c3": "b8f9f9",
- "811c1c": "811c1c"
- }
+ "4eccd6": "4eccd6",
+ "989898": "989898",
+ "c3c3c3": "c3c3c3",
+ "f0f0f8": "f0f0f8"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "3d3231",
+ "675220": "2c3593",
+ "504a4a": "2c3593",
+ "595959": "4f4645",
+ "707068": "5857bc",
+ "807676": "807676",
+ "ceab62": "5857bc",
+ "5676de": "5676de",
+ "4eccd6": "4eccd6",
+ "989898": "989898",
+ "92f4f4": "92f4f4",
+ "c3c3c3": "b8f9f9",
+ "f0f0f8": "f0f0f8"
+ }
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/666-ocean.json b/public/images/pokemon/variant/exp/666-ocean.json
index 26a38bad7a8..c468bbcbf1e 100644
--- a/public/images/pokemon/variant/exp/666-ocean.json
+++ b/public/images/pokemon/variant/exp/666-ocean.json
@@ -22,7 +22,7 @@
"e1384d": "e1384d",
"f3a861": "f3a861",
"fcf372": "fcf372",
- "303030": "b56208",
+ "303030": "b54908",
"ceab62": "ea8742",
"675220": "bc601c",
"504a4a": "bc601c",
diff --git a/public/images/pokemon/variant/exp/666-poke-ball.json b/public/images/pokemon/variant/exp/666-poke-ball.json
index 36cd38b95f0..fe6b42f6ef3 100644
--- a/public/images/pokemon/variant/exp/666-poke-ball.json
+++ b/public/images/pokemon/variant/exp/666-poke-ball.json
@@ -3,17 +3,36 @@
"101010": "101010",
"595959": "724b7a",
"b72c2c": "b72c2c",
- "303030": "402746",
"dc4b4b": "dc4b4b",
- "ceab62": "d9edd4",
+ "303030": "402746",
"675220": "958c8a",
+ "ceab62": "d9edd4",
"e97e7e": "e97e7e",
"971d1d": "971d1d",
"f8f8f8": "f8f8f8",
- "504a4a": "7f6991",
"707068": "a97cbc",
+ "504a4a": "7f6991",
"c3c3c3": "ffeaff",
"811c1c": "811c1c",
- "a9a99e": "a9a99e"
+ "a9a99e": "a9a99e",
+ "2c2b2b": "402746"
+ },
+ "2": {
+ "101010": "101010",
+ "f8f8f8": "00006d",
+ "303030": "ae001a",
+ "2c2b2b": "660000",
+ "504a4a": "a70038",
+ "595959": "df0036",
+ "c3c3c3": "f0a6bf",
+ "707068": "d5375a",
+ "a9a99e": "000050",
+ "811c1c": "811c1c",
+ "971d1d": "040046",
+ "b72c2c": "00005e",
+ "dc4b4b": "19007d",
+ "e97e7e": "2e2095",
+ "675220": "a70038",
+ "ceab62": "d5375a"
}
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/666-poke-ball_3.json b/public/images/pokemon/variant/exp/666-poke-ball_3.json
deleted file mode 100644
index 3d133124358..00000000000
--- a/public/images/pokemon/variant/exp/666-poke-ball_3.json
+++ /dev/null
@@ -1,1280 +0,0 @@
-{
- "textures": [
- {
- "image": "666-poke-ball_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 346,
- "h": 346
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0015.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0023.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0027.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0035.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0017.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0021.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0029.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0033.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0039.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0041.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0043.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 276,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0045.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0047.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0051.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 201,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0053.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0055.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0057.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0059.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0013.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0025.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0037.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0019.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0031.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0049.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 201,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0012.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0014.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0024.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0026.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0036.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0016.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0022.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0028.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0034.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0018.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0020.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0030.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0032.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0038.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0040.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0052.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0042.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0054.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0044.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0046.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0048.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0050.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0056.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 276,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0058.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0060.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 276,
- "w": 53,
- "h": 69
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:9b0791af9130022168ad784a59e299ce:b180b141bed2ea965d6f07d9e2cd7ecc:8ec14f129d1691b8da504a13b661abed$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/666-poke-ball_3.png b/public/images/pokemon/variant/exp/666-poke-ball_3.png
deleted file mode 100644
index 767a55ab849..00000000000
Binary files a/public/images/pokemon/variant/exp/666-poke-ball_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/666-river.json b/public/images/pokemon/variant/exp/666-river.json
index df10a73d783..c7e5e288d05 100644
--- a/public/images/pokemon/variant/exp/666-river.json
+++ b/public/images/pokemon/variant/exp/666-river.json
@@ -1,19 +1,40 @@
{
- "2": {
- "101010": "101010",
- "595959": "8a5702",
- "ceab62": "d9a666",
- "303030": "7b2800",
- "625843": "625843",
- "bc813f": "bc813f",
- "9c9143": "9c9143",
- "675220": "ae7f41",
- "504a4a": "ae7f41",
- "707068": "d9a666",
- "c3c3c3": "e3c384",
- "811c1c": "811c1c",
- "59c9d3": "59c9d3",
- "279ec2": "279ec2",
- "1d726a": "1d726a"
- }
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "4a412c": "4a412c",
+ "675220": "958c8a",
+ "634d20": "634d20",
+ "1d726a": "1d726a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "625841": "625841",
+ "707068": "a97cbc",
+ "bc813f": "bc813f",
+ "9c9143": "9c9143",
+ "ceab62": "ceab62",
+ "279ec2": "279ec2",
+ "59c9d3": "59c9d3",
+ "c3c3c3": "c3c3c3",
+ "d2a862": "d9edd4"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "7b2800",
+ "4a412c": "4a412c",
+ "675220": "ae7f41",
+ "634d20": "634d20",
+ "1d726a": "1d726a",
+ "504a4a": "ae7f41",
+ "595959": "8a5702",
+ "625841": "625841",
+ "707068": "d9a666",
+ "bc813f": "bc813f",
+ "9c9143": "9c9143",
+ "ceab62": "ceab62",
+ "279ec2": "279ec2",
+ "59c9d3": "59c9d3",
+ "c3c3c3": "e3c384",
+ "d2a862": "d2a862"
+ }
}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/666-river_2.json b/public/images/pokemon/variant/exp/666-river_2.json
deleted file mode 100644
index f840b39ccfd..00000000000
--- a/public/images/pokemon/variant/exp/666-river_2.json
+++ /dev/null
@@ -1,1280 +0,0 @@
-{
- "textures": [
- {
- "image": "666-river_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 346,
- "h": 346
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0015.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0023.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0027.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0035.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0017.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0021.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0029.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0033.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0039.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0041.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0043.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 276,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0045.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0047.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0051.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 201,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0053.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 0,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0055.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 69,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0057.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 138,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0059.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 1,
- "w": 67,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 207,
- "w": 67,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0013.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0025.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0037.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 276,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0019.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0031.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 6,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 134,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0049.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 201,
- "y": 69,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0012.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0014.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0024.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0026.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0036.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 268,
- "y": 69,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0016.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0022.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0028.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0034.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0018.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0020.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0030.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0032.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 5,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 137,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0038.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0040.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0052.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 138,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0042.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0054.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0044.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 206,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0046.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0048.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 134,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0050.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 187,
- "y": 275,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0056.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 4,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 240,
- "y": 276,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0058.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 2,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 207,
- "w": 53,
- "h": 69
- }
- },
- {
- "filename": "0060.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 74
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 0,
- "w": 53,
- "h": 69
- },
- "frame": {
- "x": 293,
- "y": 276,
- "w": 53,
- "h": 69
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:3ecaf6e3ae563f3da9598e7b18b87b05:e4ece90a3e9880c6499c363b000de8dd:fa23dc87fc53ba2cfa532cf440553cf5$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/666-river_2.png b/public/images/pokemon/variant/exp/666-river_2.png
deleted file mode 100644
index 863acbbdc76..00000000000
Binary files a/public/images/pokemon/variant/exp/666-river_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-archipelago.json b/public/images/pokemon/variant/exp/back/666-archipelago.json
new file mode 100644
index 00000000000..6386464b74e
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-archipelago.json
@@ -0,0 +1,35 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "c8373c": "c8373c",
+ "a2523b": "a2523b",
+ "c27351": "c27351",
+ "30c171": "30c171",
+ "b28e67": "b28e67",
+ "ceab62": "d9edd4",
+ "d2bf96": "d2bf96",
+ "c3c3c3": "c3c3c3"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "642703",
+ "675220": "741300",
+ "504a4a": "741300",
+ "595959": "824719",
+ "707068": "a22414",
+ "c8373c": "c8373c",
+ "a2523b": "a2523b",
+ "c27351": "c27351",
+ "30c171": "30c171",
+ "b28e67": "b28e67",
+ "ceab62": "a22414",
+ "d2bf96": "d2bf96",
+ "c3c3c3": "e7caa5"
+
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-archipelago_2.json b/public/images/pokemon/variant/exp/back/666-archipelago_2.json
deleted file mode 100644
index 8c6fd7bcb91..00000000000
--- a/public/images/pokemon/variant/exp/back/666-archipelago_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-archipelago_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:223e2a75aa192f3fb67e18f7f0d6c4c7:ba854fe0d08f005e9aa52e55cdc7eb4e:80cdb6dd219378a41ccf5c2acc7e7786$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-archipelago_2.png b/public/images/pokemon/variant/exp/back/666-archipelago_2.png
deleted file mode 100644
index 86e17e33f11..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-archipelago_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-archipelago_3.json b/public/images/pokemon/variant/exp/back/666-archipelago_3.json
deleted file mode 100644
index 3f9c86ecd75..00000000000
--- a/public/images/pokemon/variant/exp/back/666-archipelago_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-archipelago_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:223e2a75aa192f3fb67e18f7f0d6c4c7:ba854fe0d08f005e9aa52e55cdc7eb4e:80cdb6dd219378a41ccf5c2acc7e7786$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-archipelago_3.png b/public/images/pokemon/variant/exp/back/666-archipelago_3.png
deleted file mode 100644
index 7028f550d45..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-archipelago_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-continental.json b/public/images/pokemon/variant/exp/back/666-continental.json
new file mode 100644
index 00000000000..92614fb346c
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-continental.json
@@ -0,0 +1,38 @@
+{
+ "1": {
+ "101010": "101010",
+ "595959": "724b7a",
+ "555353": "724b7a",
+ "d18257": "d18257",
+ "f9bd55": "f9bd55",
+ "303030": "402746",
+ "f8f05e": "f8f05e",
+ "d24c3e": "d24c3e",
+ "675220": "958c8a",
+ "ceab62": "d9edd4",
+ "707068": "a97cbc",
+ "504a4a": "7f6991",
+ "aa5844": "aa5844",
+ "c3c3c3": "ffeaff",
+ "811c1c": "811c1c",
+ "e08528": "e08528"
+ },
+ "2": {
+ "101010": "101010",
+ "595959": "8f551e",
+ "555353": "e99b44",
+ "d18257": "d18257",
+ "f9bd55": "f9bd55",
+ "303030": "6d2d0d",
+ "f8f05e": "f8f05e",
+ "d24c3e": "d24c3e",
+ "675220": "9c5c19",
+ "ceab62": "e99b44",
+ "707068": "e99b44",
+ "504a4a": "9c5c19",
+ "aa5844": "aa5844",
+ "c3c3c3": "f8f27f",
+ "811c1c": "811c1c",
+ "308528": "308528"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-continental_2.json b/public/images/pokemon/variant/exp/back/666-continental_2.json
deleted file mode 100644
index 371e157ff8a..00000000000
--- a/public/images/pokemon/variant/exp/back/666-continental_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-continental_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:89725e18f2e4d97217076ac82b40230b:c83c3d03ad1200fc71d95ecafb54bc03:23aaac2256d564b9d8a58d7de70397c3$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-continental_2.png b/public/images/pokemon/variant/exp/back/666-continental_2.png
deleted file mode 100644
index 3b9a31469af..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-continental_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-continental_3.json b/public/images/pokemon/variant/exp/back/666-continental_3.json
deleted file mode 100644
index ec9c98e6312..00000000000
--- a/public/images/pokemon/variant/exp/back/666-continental_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-continental_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:89725e18f2e4d97217076ac82b40230b:c83c3d03ad1200fc71d95ecafb54bc03:23aaac2256d564b9d8a58d7de70397c3$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-continental_3.png b/public/images/pokemon/variant/exp/back/666-continental_3.png
deleted file mode 100644
index b61b16538eb..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-continental_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-elegant.json b/public/images/pokemon/variant/exp/back/666-elegant.json
new file mode 100644
index 00000000000..1b7b9838005
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-elegant.json
@@ -0,0 +1,34 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "de4040": "de4040",
+ "f8de3f": "f8de3f",
+ "ceab62": "d9edd4",
+ "56479d": "56479d",
+ "875fb5": "875fb5",
+ "cf7ef3": "cf7ef3",
+ "c3c3c3": "c3c3c3",
+ "e6ddf8": "e6ddf8"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "351262",
+ "675220": "7d1083",
+ "504a4a": "7d1083",
+ "595959": "612776",
+ "707068": "a73fab",
+ "de4040": "de4040",
+ "f8de3f": "f8de3f",
+ "ceab62": "a73fab",
+ "56479d": "56479d",
+ "875fb5": "875fb5",
+ "cf7ef3": "cf7ef3",
+ "c3c3c3": "f0ecff",
+ "e6ddf8": "e6ddf8"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-elegant_2.json b/public/images/pokemon/variant/exp/back/666-elegant_2.json
deleted file mode 100644
index 0894ba3672b..00000000000
--- a/public/images/pokemon/variant/exp/back/666-elegant_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-elegant_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 44,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 44,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 44,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 44,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 44,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 44,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:bbba66d69955866664e782205a4af88d:66e99814147be780756a4d4ccd8b31dc:d6b035048c66474f6236a3bc923faa7b$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-elegant_2.png b/public/images/pokemon/variant/exp/back/666-elegant_2.png
deleted file mode 100644
index 315b2fe859d..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-elegant_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-elegant_3.json b/public/images/pokemon/variant/exp/back/666-elegant_3.json
deleted file mode 100644
index 20501609416..00000000000
--- a/public/images/pokemon/variant/exp/back/666-elegant_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-elegant_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 44,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 44,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 44,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 44,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 44,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 44,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:bbba66d69955866664e782205a4af88d:66e99814147be780756a4d4ccd8b31dc:d6b035048c66474f6236a3bc923faa7b$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-elegant_3.png b/public/images/pokemon/variant/exp/back/666-elegant_3.png
deleted file mode 100644
index 490bbb5951c..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-elegant_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-fancy.json b/public/images/pokemon/variant/exp/back/666-fancy.json
new file mode 100644
index 00000000000..5d368667ae3
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-fancy.json
@@ -0,0 +1,36 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "de4040": "de4040",
+ "5faa3e": "5faa3e",
+ "ceab62": "d9edd4",
+ "b6d26d": "b6d26d",
+ "e9e052": "e9e052",
+ "cf7ef3": "cf7ef3",
+ "c3c3c3": "ffeaff",
+ "f2d4e3": "f2d4e3",
+ "ead2e3": "ffeaff"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "00771b",
+ "675220": "b9c05a",
+ "504a4a": "b9c05a",
+ "595959": "6f9f42",
+ "707068": "6f9f42",
+ "de4040": "de4040",
+ "5faa3e": "5faa3e",
+ "ceab62": "e3e982",
+ "b6d26d": "b6d26d",
+ "e9e052": "e9e052",
+ "cf7ef3": "cf7ef3",
+ "c3c3c3": "fcf1ff",
+ "f2d4e3": "f2d4e3",
+ "ead2e3": "fcf1ff"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-fancy_2.json b/public/images/pokemon/variant/exp/back/666-fancy_2.json
deleted file mode 100644
index 5f8f29308d3..00000000000
--- a/public/images/pokemon/variant/exp/back/666-fancy_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-fancy_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:570d1bf9b987c1bf5ebfe39e485464dd:a3c8bebd39c1c84b1bf0fdf600026ea5:6d5edff9a806f43feff031c9919c9aca$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-fancy_2.png b/public/images/pokemon/variant/exp/back/666-fancy_2.png
deleted file mode 100644
index a92f1e7eecf..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-fancy_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-fancy_3.json b/public/images/pokemon/variant/exp/back/666-fancy_3.json
deleted file mode 100644
index c1c35bf083a..00000000000
--- a/public/images/pokemon/variant/exp/back/666-fancy_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-fancy_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:570d1bf9b987c1bf5ebfe39e485464dd:a3c8bebd39c1c84b1bf0fdf600026ea5:6d5edff9a806f43feff031c9919c9aca$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-fancy_3.png b/public/images/pokemon/variant/exp/back/666-fancy_3.png
deleted file mode 100644
index 7a54e9bb6cd..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-fancy_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-garden.json b/public/images/pokemon/variant/exp/back/666-garden.json
new file mode 100644
index 00000000000..16fec8bc537
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-garden.json
@@ -0,0 +1,32 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "de4040": "de4040",
+ "398351": "398351",
+ "ceab62": "d9edd4",
+ "88d254": "88d254",
+ "3f919a": "3f919a",
+ "3dba96": "3dba96",
+ "c3c3c3": "c3c3c3"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "044553",
+ "675220": "055160",
+ "504a4a": "055160",
+ "595959": "006b55",
+ "707068": "227687",
+ "de4040": "de4040",
+ "398351": "398351",
+ "ceab62": "227687",
+ "88d254": "88d254",
+ "3f919a": "3f919a",
+ "3dba96": "3dba96",
+ "c3c3c3": "72d0a3"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-garden_2.json b/public/images/pokemon/variant/exp/back/666-garden_2.json
deleted file mode 100644
index 1c3840b900c..00000000000
--- a/public/images/pokemon/variant/exp/back/666-garden_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-garden_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:4b2ac69ef7a99f6cef35d3fd38c74d01:8a4c29615f3bf20e9c5d0bb372a5b210:f13a1a8fa0a411aa91fccb833ac8719c$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-garden_2.png b/public/images/pokemon/variant/exp/back/666-garden_2.png
deleted file mode 100644
index c56ff652c7d..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-garden_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-garden_3.json b/public/images/pokemon/variant/exp/back/666-garden_3.json
deleted file mode 100644
index 5fbdd2097fd..00000000000
--- a/public/images/pokemon/variant/exp/back/666-garden_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-garden_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:4b2ac69ef7a99f6cef35d3fd38c74d01:8a4c29615f3bf20e9c5d0bb372a5b210:f13a1a8fa0a411aa91fccb833ac8719c$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-garden_3.png b/public/images/pokemon/variant/exp/back/666-garden_3.png
deleted file mode 100644
index 60c7f5b7d01..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-garden_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-high-plains.json b/public/images/pokemon/variant/exp/back/666-high-plains.json
new file mode 100644
index 00000000000..984055b6a24
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-high-plains.json
@@ -0,0 +1,38 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "337543": "337543",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "7d4428": "7d4428",
+ "707068": "a97cbc",
+ "9a5a3b": "9a5a3b",
+ "aa4343": "aa4343",
+ "e1764e": "e1764e",
+ "e8c815": "e8c815",
+ "ceab62": "d9edd4",
+ "f3a861": "f3a861",
+ "c3c3c3": "c3c3c3",
+ "773d21": "773d21"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "8f1d19",
+ "675220": "c97034",
+ "337543": "337543",
+ "504a4a": "c97034",
+ "595959": "a55422",
+ "7d4428": "7d4428",
+ "707068": "f2975a",
+ "9a5a3b": "9a5a3b",
+ "aa4343": "aa4343",
+ "e1764e": "e1764e",
+ "e8c815": "e8c815",
+ "ceab62": "f2975a",
+ "f3a861": "f3a861",
+ "c3c3c3": "edc67c",
+ "773d21": "773d21"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-high-plains_2.json b/public/images/pokemon/variant/exp/back/666-high-plains_2.json
deleted file mode 100644
index 405f2657c8a..00000000000
--- a/public/images/pokemon/variant/exp/back/666-high-plains_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-high-plains_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:410c759185f779797422e8f2ce55db4f:6afd0d04b6138fdd57d12681e967b48c:2abdb5d19b2754e3daa24b6ff3ed2c2c$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-high-plains_2.png b/public/images/pokemon/variant/exp/back/666-high-plains_2.png
deleted file mode 100644
index d53634ed092..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-high-plains_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-high-plains_3.json b/public/images/pokemon/variant/exp/back/666-high-plains_3.json
deleted file mode 100644
index 4c91b8fb5a0..00000000000
--- a/public/images/pokemon/variant/exp/back/666-high-plains_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-high-plains_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:410c759185f779797422e8f2ce55db4f:6afd0d04b6138fdd57d12681e967b48c:2abdb5d19b2754e3daa24b6ff3ed2c2c$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-high-plains_3.png b/public/images/pokemon/variant/exp/back/666-high-plains_3.png
deleted file mode 100644
index d6c577be131..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-high-plains_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-icy-snow.json b/public/images/pokemon/variant/exp/back/666-icy-snow.json
new file mode 100644
index 00000000000..ec52af1302a
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-icy-snow.json
@@ -0,0 +1,32 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "ceab62": "d9edd4",
+ "95a1a1": "95a1a1",
+ "acacc2": "acacc2",
+ "c3c3c3": "c3c3c3",
+ "cfd9cf": "cfd9cf",
+ "c5c5da": "c5c5da",
+ "ffffff": "ffffff"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "364051",
+ "675220": "666b7d",
+ "504a4a": "666b7d",
+ "595959": "60646a",
+ "707068": "8c91a4",
+ "ceab62": "8c91a4",
+ "95a1a1": "95a1a1",
+ "acacc2": "acacc2",
+ "c3c3c3": "c3c3c3",
+ "cfd9cf": "cfd9cf",
+ "c5c5da": "c5c5da",
+ "ffffff": "ffffff"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-icy-snow_2.json b/public/images/pokemon/variant/exp/back/666-icy-snow_2.json
deleted file mode 100644
index a456b34be45..00000000000
--- a/public/images/pokemon/variant/exp/back/666-icy-snow_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-icy-snow_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:9f47e6de00b727163c2ffb6870af9c6b:16bfd68007c3798294c7d690e075f679:fb1e8b97806dc5c60ac6adf0ae48199b$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-icy-snow_2.png b/public/images/pokemon/variant/exp/back/666-icy-snow_2.png
deleted file mode 100644
index 02e7e2e61af..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-icy-snow_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-icy-snow_3.json b/public/images/pokemon/variant/exp/back/666-icy-snow_3.json
deleted file mode 100644
index c1b2ff5791d..00000000000
--- a/public/images/pokemon/variant/exp/back/666-icy-snow_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-icy-snow_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:9f47e6de00b727163c2ffb6870af9c6b:16bfd68007c3798294c7d690e075f679:fb1e8b97806dc5c60ac6adf0ae48199b$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-icy-snow_3.png b/public/images/pokemon/variant/exp/back/666-icy-snow_3.png
deleted file mode 100644
index 3c247e0d43a..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-icy-snow_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-jungle.json b/public/images/pokemon/variant/exp/back/666-jungle.json
new file mode 100644
index 00000000000..63b998e284e
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-jungle.json
@@ -0,0 +1,34 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "724e28": "724e28",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "567456": "567456",
+ "707068": "a97cbc",
+ "9a653e": "9a653e",
+ "638c63": "638c63",
+ "c29566": "c29566",
+ "ceab62": "d9edd4",
+ "7cc48b": "7cc48b",
+ "c3c3c3": "c3c3c3"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "20452e",
+ "724e28": "724e28",
+ "675220": "153922",
+ "504a4a": "153922",
+ "595959": "285b3b",
+ "567456": "567456",
+ "707068": "385c43",
+ "9a653e": "9a653e",
+ "638c63": "638c63",
+ "c29566": "c29566",
+ "ceab62": "385c43",
+ "7cc48b": "7cc48b",
+ "c3c3c3": "a9d9a0"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-jungle_2.json b/public/images/pokemon/variant/exp/back/666-jungle_2.json
deleted file mode 100644
index e941cffbb5e..00000000000
--- a/public/images/pokemon/variant/exp/back/666-jungle_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-jungle_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:4d8913bd65ce0b63c5354717532a7d60:39392afb8d9fb30f37b8d68b6cd368ad:c8686bcc5493911384853d54c85bfea1$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-jungle_2.png b/public/images/pokemon/variant/exp/back/666-jungle_2.png
deleted file mode 100644
index d6023a6500f..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-jungle_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-jungle_3.json b/public/images/pokemon/variant/exp/back/666-jungle_3.json
deleted file mode 100644
index 8bbc5571373..00000000000
--- a/public/images/pokemon/variant/exp/back/666-jungle_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-jungle_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:4d8913bd65ce0b63c5354717532a7d60:39392afb8d9fb30f37b8d68b6cd368ad:c8686bcc5493911384853d54c85bfea1$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-jungle_3.png b/public/images/pokemon/variant/exp/back/666-jungle_3.png
deleted file mode 100644
index 0f4ca358601..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-jungle_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-marine.json b/public/images/pokemon/variant/exp/back/666-marine.json
new file mode 100644
index 00000000000..0bae2c2067e
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-marine.json
@@ -0,0 +1,32 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "ceab62": "d9edd4",
+ "315382": "315382",
+ "367cb9": "367cb9",
+ "2f8dc9": "2f8dc9",
+ "5acdf1": "5acdf1",
+ "c3c3c3": "c3c3c3",
+ "f2f2f2": "f2f2f2"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "16244f",
+ "675220": "264c85",
+ "504a4a": "264c85",
+ "595959": "2a5894",
+ "707068": "3070af",
+ "ceab62": "3070af",
+ "315382": "315382",
+ "367cb9": "367cb9",
+ "2f8dc9": "2f8dc9",
+ "5acdf1": "5acdf1",
+ "c3c3c3": "3070af",
+ "f2f2f2": "f2f2f2"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-marine_2.json b/public/images/pokemon/variant/exp/back/666-marine_2.json
deleted file mode 100644
index 7f85f0176f9..00000000000
--- a/public/images/pokemon/variant/exp/back/666-marine_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-marine_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:b061fec5d665439da49159647e0a7d71:7cac8aa51d4531fbcf0f9ea9bf644452:dc240f0acbf3d56fe8729dd1f703009f$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-marine_2.png b/public/images/pokemon/variant/exp/back/666-marine_2.png
deleted file mode 100644
index ffa21823012..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-marine_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-marine_3.json b/public/images/pokemon/variant/exp/back/666-marine_3.json
deleted file mode 100644
index f61b5ed14a9..00000000000
--- a/public/images/pokemon/variant/exp/back/666-marine_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-marine_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:b061fec5d665439da49159647e0a7d71:7cac8aa51d4531fbcf0f9ea9bf644452:dc240f0acbf3d56fe8729dd1f703009f$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-marine_3.png b/public/images/pokemon/variant/exp/back/666-marine_3.png
deleted file mode 100644
index ee4c51543ee..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-marine_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-meadow.json b/public/images/pokemon/variant/exp/back/666-meadow.json
new file mode 100644
index 00000000000..4f567cb29ee
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-meadow.json
@@ -0,0 +1,34 @@
+{
+ "1": {
+ "101010": "101010",
+ "f2f2f2": "f2f2f2",
+ "303030": "402746",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "c3c3c3": "c3c3c3",
+ "707068": "a97cbc",
+ "675220": "958c8a",
+ "ceab62": "d9edd4",
+ "2d9b9b": "2d9b9b",
+ "e66fad": "e66fad",
+ "b4295a": "b4295a",
+ "f3a0ca": "f3a0ca",
+ "da6b7e": "da6b7e"
+ },
+ "2": {
+ "101010": "101010",
+ "f2f2f2": "f2f2f2",
+ "303030": "770921",
+ "504a4a": "a2275e",
+ "595959": "9e3941",
+ "c3c3c3": "f4c2ec",
+ "707068": "ce5283",
+ "675220": "a2275e",
+ "ceab62": "ce5283",
+ "2d9b9b": "2d9b9b",
+ "e66fad": "e66fad",
+ "b4295a": "b4295a",
+ "f3a0ca": "f3a0ca",
+ "da6b7e": "da6b7e"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-meadow_2.json b/public/images/pokemon/variant/exp/back/666-meadow_2.json
deleted file mode 100644
index 7c2cbd58134..00000000000
--- a/public/images/pokemon/variant/exp/back/666-meadow_2.json
+++ /dev/null
@@ -1,524 +0,0 @@
-{
- "textures": [
- {
- "image": "666-meadow_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 234,
- "h": 234
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0023.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0024.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0021.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0022.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0019.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0020.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0017.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0018.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 84,
- "h": 86
- },
- "frame": {
- "x": 135,
- "y": 0,
- "w": 84,
- "h": 86
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 84,
- "h": 86
- },
- "frame": {
- "x": 135,
- "y": 0,
- "w": 84,
- "h": 86
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0012.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0015.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0016.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0013.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 20,
- "y": 0,
- "w": 47,
- "h": 85
- },
- "frame": {
- "x": 187,
- "y": 86,
- "w": 47,
- "h": 85
- }
- },
- {
- "filename": "0014.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 20,
- "y": 0,
- "w": 47,
- "h": 85
- },
- "frame": {
- "x": 187,
- "y": 86,
- "w": 47,
- "h": 85
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:49698fe6f96ff24d2fe1c7a365f79f1b:f15ccef05dfd7ebb03ac6c66ae05dcef:f8ac4807b4d6eef2256fa1b93e0f89ba$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-meadow_2.png b/public/images/pokemon/variant/exp/back/666-meadow_2.png
deleted file mode 100644
index bb54cac34cd..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-meadow_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-meadow_3.json b/public/images/pokemon/variant/exp/back/666-meadow_3.json
deleted file mode 100644
index 6dcce66c44e..00000000000
--- a/public/images/pokemon/variant/exp/back/666-meadow_3.json
+++ /dev/null
@@ -1,524 +0,0 @@
-{
- "textures": [
- {
- "image": "666-meadow_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 234,
- "h": 234
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0023.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0024.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 3,
- "y": 4,
- "w": 78,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 78,
- "h": 87
- }
- },
- {
- "filename": "0005.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0006.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0021.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0022.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 7,
- "y": 3,
- "w": 70,
- "h": 87
- },
- "frame": {
- "x": 0,
- "y": 87,
- "w": 70,
- "h": 87
- }
- },
- {
- "filename": "0007.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0008.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0019.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0020.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 11,
- "y": 2,
- "w": 63,
- "h": 87
- },
- "frame": {
- "x": 70,
- "y": 87,
- "w": 63,
- "h": 87
- }
- },
- {
- "filename": "0009.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0010.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0017.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0018.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 57,
- "h": 87
- },
- "frame": {
- "x": 78,
- "y": 0,
- "w": 57,
- "h": 87
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 84,
- "h": 86
- },
- "frame": {
- "x": 135,
- "y": 0,
- "w": 84,
- "h": 86
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 5,
- "w": 84,
- "h": 86
- },
- "frame": {
- "x": 135,
- "y": 0,
- "w": 84,
- "h": 86
- }
- },
- {
- "filename": "0011.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0012.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0015.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0016.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 0,
- "w": 52,
- "h": 87
- },
- "frame": {
- "x": 135,
- "y": 86,
- "w": 52,
- "h": 87
- }
- },
- {
- "filename": "0013.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 20,
- "y": 0,
- "w": 47,
- "h": 85
- },
- "frame": {
- "x": 187,
- "y": 86,
- "w": 47,
- "h": 85
- }
- },
- {
- "filename": "0014.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 84,
- "h": 91
- },
- "spriteSourceSize": {
- "x": 20,
- "y": 0,
- "w": 47,
- "h": 85
- },
- "frame": {
- "x": 187,
- "y": 86,
- "w": 47,
- "h": 85
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:49698fe6f96ff24d2fe1c7a365f79f1b:f15ccef05dfd7ebb03ac6c66ae05dcef:f8ac4807b4d6eef2256fa1b93e0f89ba$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-meadow_3.png b/public/images/pokemon/variant/exp/back/666-meadow_3.png
deleted file mode 100644
index 865e404c1cd..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-meadow_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-modern.json b/public/images/pokemon/variant/exp/back/666-modern.json
new file mode 100644
index 00000000000..5572a58bfa9
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-modern.json
@@ -0,0 +1,32 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "b83c3c": "b83c3c",
+ "f44f4f": "f44f4f",
+ "ceab62": "d9edd4",
+ "3b6cbb": "3b6cbb",
+ "405793": "405793",
+ "c3c3c3": "c3c3c3",
+ "cfc5d9": "cfc5d9"
+ },
+ "2":{
+ "101010": "101010",
+ "303030": "4e0000",
+ "675220": "801521",
+ "504a4a": "801521",
+ "595959": "830012",
+ "707068": "ad2640",
+ "b83c3c": "b83c3c",
+ "f44f4f": "f44f4f",
+ "ceab62": "ad2640",
+ "3b6cbb": "3b6cbb",
+ "405793": "405793",
+ "c3c3c3": "ffeae8",
+ "cfc5d9": "cfc5d9"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-modern_2.json b/public/images/pokemon/variant/exp/back/666-modern_2.json
deleted file mode 100644
index 4b0ef1a8a59..00000000000
--- a/public/images/pokemon/variant/exp/back/666-modern_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-modern_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:deb5b8b4295c15b4c8718bf2ed9791d1:bbe309a34a59a4e2f74eeba5769476f4:5fc0e8f9a0750c2f3cfb5d6e7eca0d45$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-modern_2.png b/public/images/pokemon/variant/exp/back/666-modern_2.png
deleted file mode 100644
index 4cd5d770881..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-modern_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-modern_3.json b/public/images/pokemon/variant/exp/back/666-modern_3.json
deleted file mode 100644
index 78c496fc208..00000000000
--- a/public/images/pokemon/variant/exp/back/666-modern_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-modern_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:deb5b8b4295c15b4c8718bf2ed9791d1:bbe309a34a59a4e2f74eeba5769476f4:5fc0e8f9a0750c2f3cfb5d6e7eca0d45$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-modern_3.png b/public/images/pokemon/variant/exp/back/666-modern_3.png
deleted file mode 100644
index 5795174404f..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-modern_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-monsoon.json b/public/images/pokemon/variant/exp/back/666-monsoon.json
new file mode 100644
index 00000000000..915d471b2b1
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-monsoon.json
@@ -0,0 +1,33 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "807676": "807676",
+ "ceab62": "d9edd4",
+ "5676de": "5676de",
+ "4eccd6": "4eccd6",
+ "989898": "989898",
+ "c3c3c3": "c3c3c3",
+ "f0f0f8": "f0f0f8"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "3d3231",
+ "675220": "2c3593",
+ "504a4a": "2c3593",
+ "595959": "4f4645",
+ "707068": "5857bc",
+ "807676": "807676",
+ "ceab62": "5857bc",
+ "5676de": "5676de",
+ "4eccd6": "4eccd6",
+ "989898": "989898",
+ "92f4f4": "92f4f4",
+ "c3c3c3": "b8f9f9",
+ "f0f0f8": "f0f0f8"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-monsoon_2.json b/public/images/pokemon/variant/exp/back/666-monsoon_2.json
deleted file mode 100644
index 344344ec0b2..00000000000
--- a/public/images/pokemon/variant/exp/back/666-monsoon_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-monsoon_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:71a24b11bc54be921b67b4376d798e05:f5358aac113e1f7af7eddf984d9692b3:637bea52b465abfb8e5a576310b4dacc$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-monsoon_2.png b/public/images/pokemon/variant/exp/back/666-monsoon_2.png
deleted file mode 100644
index 8f091f4d1de..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-monsoon_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-monsoon_3.json b/public/images/pokemon/variant/exp/back/666-monsoon_3.json
deleted file mode 100644
index 4f7304f6c0c..00000000000
--- a/public/images/pokemon/variant/exp/back/666-monsoon_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-monsoon_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 42,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 42,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 42,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:71a24b11bc54be921b67b4376d798e05:f5358aac113e1f7af7eddf984d9692b3:637bea52b465abfb8e5a576310b4dacc$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-monsoon_3.png b/public/images/pokemon/variant/exp/back/666-monsoon_3.png
deleted file mode 100644
index f216010ca99..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-monsoon_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-ocean.json b/public/images/pokemon/variant/exp/back/666-ocean.json
new file mode 100644
index 00000000000..70e7a51c21f
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-ocean.json
@@ -0,0 +1,34 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "e1384d": "e1384d",
+ "ebcf3f": "ebcf3f",
+ "ceab62": "d9edd4",
+ "f4ad61": "f4ad61",
+ "f8ef6a": "f8ef6a",
+ "4482c9": "4482c9",
+ "6bb2e9": "6bb2e9",
+ "c3c3c3": "c3c3c3"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "b54908",
+ "675220": "bc601c",
+ "504a4a": "bc601c",
+ "595959": "e99a26",
+ "707068": "ea8742",
+ "e1384d": "e1384d",
+ "ebcf3f": "ebcf3f",
+ "ceab62": "ea8742",
+ "f4ad61": "f4ad61",
+ "f8ef6a": "f8ef6a",
+ "4482c9": "4482c9",
+ "6bb2e9": "6bb2e9",
+ "c3c3c3": "f3c86b"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-ocean_2.json b/public/images/pokemon/variant/exp/back/666-ocean_2.json
deleted file mode 100644
index d5bb27bf592..00000000000
--- a/public/images/pokemon/variant/exp/back/666-ocean_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-ocean_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:a1a0079c64e9d91336d227b1380cd9d2:cf159e4653ad9208c0f4633a498a6cd1:e7a0e68eab89c2013a3eb7f3b6fc0b33$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-ocean_2.png b/public/images/pokemon/variant/exp/back/666-ocean_2.png
deleted file mode 100644
index 6f4fefc99f8..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-ocean_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-ocean_3.json b/public/images/pokemon/variant/exp/back/666-ocean_3.json
deleted file mode 100644
index 4ca1832c359..00000000000
--- a/public/images/pokemon/variant/exp/back/666-ocean_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-ocean_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:a1a0079c64e9d91336d227b1380cd9d2:cf159e4653ad9208c0f4633a498a6cd1:e7a0e68eab89c2013a3eb7f3b6fc0b33$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-ocean_3.png b/public/images/pokemon/variant/exp/back/666-ocean_3.png
deleted file mode 100644
index 554fcb7b510..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-ocean_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-poke-ball.json b/public/images/pokemon/variant/exp/back/666-poke-ball.json
new file mode 100644
index 00000000000..e21ba03fc1e
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-poke-ball.json
@@ -0,0 +1,34 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "971d1d": "971d1d",
+ "b72c2c": "b72c2c",
+ "dc4b4b": "dc4b4b",
+ "e97e7e": "e97e7e",
+ "ceab62": "d9edd4",
+ "a9a99e": "a9a99e",
+ "c3c3c3": "c3c3c3",
+ "f8f8f8": "f8f8f8"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "ae001a",
+ "675220": "a70038",
+ "504a4a": "a70038",
+ "595959": "df0036",
+ "707068": "d5375a",
+ "971d1d": "040046",
+ "b72c2c": "00005e",
+ "dc4b4b": "19007d",
+ "e97e7e": "2e2095",
+ "ceab62": "d5375a",
+ "a9a99e": "000050",
+ "c3c3c3": "f0a6bf",
+ "f8f8f8": "00006d"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-poke-ball_2.json b/public/images/pokemon/variant/exp/back/666-poke-ball_2.json
deleted file mode 100644
index 99da9b9ac29..00000000000
--- a/public/images/pokemon/variant/exp/back/666-poke-ball_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-poke-ball_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:e744396a3b647429d050d678017c05ce:ec812f719dffcd362f0481d7d83c3476:8ec14f129d1691b8da504a13b661abed$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-poke-ball_2.png b/public/images/pokemon/variant/exp/back/666-poke-ball_2.png
deleted file mode 100644
index a1bd953a1b3..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-poke-ball_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-poke-ball_3.json b/public/images/pokemon/variant/exp/back/666-poke-ball_3.json
deleted file mode 100644
index de222894738..00000000000
--- a/public/images/pokemon/variant/exp/back/666-poke-ball_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-poke-ball_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:e744396a3b647429d050d678017c05ce:ec812f719dffcd362f0481d7d83c3476:8ec14f129d1691b8da504a13b661abed$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-poke-ball_3.png b/public/images/pokemon/variant/exp/back/666-poke-ball_3.png
deleted file mode 100644
index 9e7ff12912d..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-poke-ball_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-polar.json b/public/images/pokemon/variant/exp/back/666-polar.json
new file mode 100644
index 00000000000..f86b4df3dcc
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-polar.json
@@ -0,0 +1,34 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "2d2d61": "2d2d61",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "ceab62": "d9edd4",
+ "3b4b8a": "3b4b8a",
+ "4d6cc1": "4d6cc1",
+ "6aa2dc": "6aa2dc",
+ "bfbfbf": "bfbfbf",
+ "c3c3c3": "c3c3c3",
+ "f0f0f8": "f0f0f8"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "191b54",
+ "675220": "366098",
+ "2d2d61": "2d2d61",
+ "504a4a": "366098",
+ "595959": "2f3887",
+ "707068": "5f85c1",
+ "ceab62": "5f85c1",
+ "3b4b8a": "3b4b8a",
+ "4d6cc1": "4d6cc1",
+ "6aa2dc": "6aa2dc",
+ "bfbfbf": "bfbfbf",
+ "c3c3c3": "ffffff",
+ "f0f0f8": "f0f0f8"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-polar_2.json b/public/images/pokemon/variant/exp/back/666-polar_2.json
deleted file mode 100644
index e30095c2299..00000000000
--- a/public/images/pokemon/variant/exp/back/666-polar_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-polar_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 45,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 45,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 45,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 45,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 45,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 45,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:a3b0453f2d03b9c62472f57a438298a4:81a5a3455ae0c378bdb1dbe3c3323463:eb7086e98f867c6592e4b161835da18b$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-polar_2.png b/public/images/pokemon/variant/exp/back/666-polar_2.png
deleted file mode 100644
index b66daac7d2c..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-polar_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-polar_3.json b/public/images/pokemon/variant/exp/back/666-polar_3.json
deleted file mode 100644
index 76df03f7d08..00000000000
--- a/public/images/pokemon/variant/exp/back/666-polar_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-polar_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 45,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 45,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 14,
- "y": 1,
- "w": 45,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 45,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 45,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 45,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:a3b0453f2d03b9c62472f57a438298a4:81a5a3455ae0c378bdb1dbe3c3323463:eb7086e98f867c6592e4b161835da18b$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-polar_3.png b/public/images/pokemon/variant/exp/back/666-polar_3.png
deleted file mode 100644
index cab4822a306..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-polar_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-river.json b/public/images/pokemon/variant/exp/back/666-river.json
new file mode 100644
index 00000000000..c7e5e288d05
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-river.json
@@ -0,0 +1,40 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "4a412c": "4a412c",
+ "675220": "958c8a",
+ "634d20": "634d20",
+ "1d726a": "1d726a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "625841": "625841",
+ "707068": "a97cbc",
+ "bc813f": "bc813f",
+ "9c9143": "9c9143",
+ "ceab62": "ceab62",
+ "279ec2": "279ec2",
+ "59c9d3": "59c9d3",
+ "c3c3c3": "c3c3c3",
+ "d2a862": "d9edd4"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "7b2800",
+ "4a412c": "4a412c",
+ "675220": "ae7f41",
+ "634d20": "634d20",
+ "1d726a": "1d726a",
+ "504a4a": "ae7f41",
+ "595959": "8a5702",
+ "625841": "625841",
+ "707068": "d9a666",
+ "bc813f": "bc813f",
+ "9c9143": "9c9143",
+ "ceab62": "ceab62",
+ "279ec2": "279ec2",
+ "59c9d3": "59c9d3",
+ "c3c3c3": "e3c384",
+ "d2a862": "d2a862"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-river_2.json b/public/images/pokemon/variant/exp/back/666-river_2.json
deleted file mode 100644
index 4edb4a188f8..00000000000
--- a/public/images/pokemon/variant/exp/back/666-river_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-river_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:2bb6d375761e6690eba12cf4d2bc99c9:9db30ec1cf68fe8c1026c243086573f3:fa23dc87fc53ba2cfa532cf440553cf5$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-river_2.png b/public/images/pokemon/variant/exp/back/666-river_2.png
deleted file mode 100644
index c689a6c7150..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-river_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-river_3.json b/public/images/pokemon/variant/exp/back/666-river_3.json
deleted file mode 100644
index 69623e13034..00000000000
--- a/public/images/pokemon/variant/exp/back/666-river_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-river_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:2bb6d375761e6690eba12cf4d2bc99c9:9db30ec1cf68fe8c1026c243086573f3:fa23dc87fc53ba2cfa532cf440553cf5$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-river_3.png b/public/images/pokemon/variant/exp/back/666-river_3.png
deleted file mode 100644
index a163e179d0e..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-river_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-sandstorm.json b/public/images/pokemon/variant/exp/back/666-sandstorm.json
new file mode 100644
index 00000000000..6bc91afb34d
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-sandstorm.json
@@ -0,0 +1,34 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "625843": "625843",
+ "72604d": "72604d",
+ "707068": "a97cbc",
+ "9b9148": "9b9148",
+ "ba8d68": "ba8d68",
+ "ceab62": "d9edd4",
+ "d9b674": "d9b674",
+ "f1d69e": "f1d69e",
+ "c3c3c3": "c3c3c3"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "443123",
+ "675220": "9c703b",
+ "504a4a": "9c703b",
+ "595959": "88583e",
+ "625843": "625843",
+ "72604d": "72604d",
+ "707068": "c6975f",
+ "9b9148": "9b9148",
+ "ba8d68": "ba8d68",
+ "ceab62": "c6975f",
+ "d9b674": "d9b674",
+ "f1d69e": "f1d69e",
+ "c3c3c3": "ece1a9"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-sandstorm_2.json b/public/images/pokemon/variant/exp/back/666-sandstorm_2.json
deleted file mode 100644
index 5651485f6d0..00000000000
--- a/public/images/pokemon/variant/exp/back/666-sandstorm_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-sandstorm_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 2,
- "w": 40,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 40,
- "h": 68
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 2,
- "w": 40,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 68,
- "w": 40,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:e35abed8cd9d0bbf1556fa684995d930:8d765a06a769bbf3d1639f361548cd6f:12f47e779927411662912d6094a9782d$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-sandstorm_2.png b/public/images/pokemon/variant/exp/back/666-sandstorm_2.png
deleted file mode 100644
index 534e96bee13..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-sandstorm_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-sandstorm_3.json b/public/images/pokemon/variant/exp/back/666-sandstorm_3.json
deleted file mode 100644
index d43381578cb..00000000000
--- a/public/images/pokemon/variant/exp/back/666-sandstorm_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-sandstorm_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 2,
- "w": 40,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 40,
- "h": 68
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 17,
- "y": 2,
- "w": 40,
- "h": 68
- },
- "frame": {
- "x": 67,
- "y": 68,
- "w": 40,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:e35abed8cd9d0bbf1556fa684995d930:8d765a06a769bbf3d1639f361548cd6f:12f47e779927411662912d6094a9782d$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-sandstorm_3.png b/public/images/pokemon/variant/exp/back/666-sandstorm_3.png
deleted file mode 100644
index 649fa83e025..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-sandstorm_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-savanna.json b/public/images/pokemon/variant/exp/back/666-savanna.json
new file mode 100644
index 00000000000..c261f52dced
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-savanna.json
@@ -0,0 +1,34 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "dcc433": "dcc433",
+ "ceab62": "d9edd4",
+ "3b67ac": "3b67ac",
+ "61a0f5": "61a0f5",
+ "55d3d9": "55d3d9",
+ "6cc6c6": "6cc6c6",
+ "fffd77": "fffd77",
+ "c3c3c3": "c3c3c3"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "183576",
+ "675220": "1d828b",
+ "504a4a": "1d828b",
+ "595959": "4168bb",
+ "707068": "4faab3",
+ "dcc433": "dcc433",
+ "ceab62": "4faab3",
+ "fffd77": "fffd77",
+ "3b67ac": "3b67ac",
+ "61a0f5": "61a0f5",
+ "55d3d9": "55d3d9",
+ "6cc6c6": "6cc6c6",
+ "c3c3c3": "81e7e1"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-savanna_2.json b/public/images/pokemon/variant/exp/back/666-savanna_2.json
deleted file mode 100644
index c1f73f6efc7..00000000000
--- a/public/images/pokemon/variant/exp/back/666-savanna_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-savanna_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:1ad0c7c841409c3fd4cb50b399d6e13c:b9406b41d37bc72c57260f9a01a352c8:625a4f0dc001069326a75c6a381f93e6$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-savanna_2.png b/public/images/pokemon/variant/exp/back/666-savanna_2.png
deleted file mode 100644
index b4b8ecedb9e..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-savanna_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-savanna_3.json b/public/images/pokemon/variant/exp/back/666-savanna_3.json
deleted file mode 100644
index 49ab66f6855..00000000000
--- a/public/images/pokemon/variant/exp/back/666-savanna_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-savanna_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 16,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:1ad0c7c841409c3fd4cb50b399d6e13c:b9406b41d37bc72c57260f9a01a352c8:625a4f0dc001069326a75c6a381f93e6$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-savanna_3.png b/public/images/pokemon/variant/exp/back/666-savanna_3.png
deleted file mode 100644
index 6bc0a0b8363..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-savanna_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-sun.json b/public/images/pokemon/variant/exp/back/666-sun.json
new file mode 100644
index 00000000000..21cf5787ba4
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-sun.json
@@ -0,0 +1,34 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "c94971": "c94971",
+ "e18248": "e18248",
+ "ceab62": "d9edd4",
+ "f1a26a": "f1a26a",
+ "f0ce44": "f0ce44",
+ "fcf372": "fcf372",
+ "f47491": "f47491",
+ "c3c3c3": "c3c3c3"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "640000",
+ "675220": "8c1850",
+ "504a4a": "8c1850",
+ "595959": "750500",
+ "707068": "b83b74",
+ "c94971": "c94971",
+ "e18248": "e18248",
+ "ceab62": "b83b74",
+ "f1a26a": "f1a26a",
+ "f0ce44": "f0ce44",
+ "fcf372": "fcf372",
+ "f47491": "f47491",
+ "c3c3c3": "fee3e7"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-sun_2.json b/public/images/pokemon/variant/exp/back/666-sun_2.json
deleted file mode 100644
index d7c995a1bc0..00000000000
--- a/public/images/pokemon/variant/exp/back/666-sun_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-sun_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:1d3a140bac5951725915aa0b64d1fdc6:e322510cf8386dcc7834a05d57e5368e:8f5fdd0a698701f5391c5a3f67e303d6$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-sun_2.png b/public/images/pokemon/variant/exp/back/666-sun_2.png
deleted file mode 100644
index c9168d5a1c5..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-sun_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-sun_3.json b/public/images/pokemon/variant/exp/back/666-sun_3.json
deleted file mode 100644
index a3f755a4e7c..00000000000
--- a/public/images/pokemon/variant/exp/back/666-sun_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-sun_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 137,
- "h": 137
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 67,
- "y": 0,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 15,
- "y": 1,
- "w": 43,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 68,
- "w": 43,
- "h": 69
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 43,
- "y": 69,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:1d3a140bac5951725915aa0b64d1fdc6:e322510cf8386dcc7834a05d57e5368e:8f5fdd0a698701f5391c5a3f67e303d6$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-sun_3.png b/public/images/pokemon/variant/exp/back/666-sun_3.png
deleted file mode 100644
index 1a36299851e..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-sun_3.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-tundra.json b/public/images/pokemon/variant/exp/back/666-tundra.json
new file mode 100644
index 00000000000..b098f776c00
--- /dev/null
+++ b/public/images/pokemon/variant/exp/back/666-tundra.json
@@ -0,0 +1,32 @@
+{
+ "1": {
+ "101010": "101010",
+ "303030": "402746",
+ "675220": "958c8a",
+ "504a4a": "7f6991",
+ "595959": "724b7a",
+ "707068": "a97cbc",
+ "ceab62": "d9edd4",
+ "539ad9": "539ad9",
+ "74bbe9": "74bbe9",
+ "a3def1": "a3def1",
+ "c3c3c3": "c3c3c3",
+ "d0d0d0": "d0d0d0",
+ "f0f0f8": "f0f0f8"
+ },
+ "2": {
+ "101010": "101010",
+ "303030": "003d69",
+ "675220": "3a76a7",
+ "504a4a": "3a76a7",
+ "595959": "225b72",
+ "707068": "659dd0",
+ "ceab62": "659dd0",
+ "539ad9": "539ad9",
+ "74bbe9": "74bbe9",
+ "a3def1": "a3def1",
+ "c3c3c3": "cbfbfb",
+ "d0d0d0": "d0d0d0",
+ "f0f0f8": "f0f0f8"
+ }
+}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-tundra_2.json b/public/images/pokemon/variant/exp/back/666-tundra_2.json
deleted file mode 100644
index 3d8ae45a641..00000000000
--- a/public/images/pokemon/variant/exp/back/666-tundra_2.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-tundra_2.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:40f74f8757cb0f5a2ab7b5f68ea979a0:d062f67571674668b47f6fab68361105:9779ed3adebc298af537dd64dc25fe00$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-tundra_2.png b/public/images/pokemon/variant/exp/back/666-tundra_2.png
deleted file mode 100644
index 49325397d8a..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-tundra_2.png and /dev/null differ
diff --git a/public/images/pokemon/variant/exp/back/666-tundra_3.json b/public/images/pokemon/variant/exp/back/666-tundra_3.json
deleted file mode 100644
index 65be2910a02..00000000000
--- a/public/images/pokemon/variant/exp/back/666-tundra_3.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "textures": [
- {
- "image": "666-tundra_3.png",
- "format": "RGBA8888",
- "size": {
- "w": 136,
- "h": 136
- },
- "scale": 1,
- "frames": [
- {
- "filename": "0002.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0004.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 13,
- "y": 1,
- "w": 46,
- "h": 69
- },
- "frame": {
- "x": 0,
- "y": 0,
- "w": 46,
- "h": 69
- }
- },
- {
- "filename": "0001.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 0,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 0,
- "w": 67,
- "h": 68
- }
- },
- {
- "filename": "0003.png",
- "rotated": false,
- "trimmed": true,
- "sourceSize": {
- "w": 67,
- "h": 71
- },
- "spriteSourceSize": {
- "x": 0,
- "y": 3,
- "w": 67,
- "h": 68
- },
- "frame": {
- "x": 46,
- "y": 68,
- "w": 67,
- "h": 68
- }
- }
- ]
- }
- ],
- "meta": {
- "app": "https://www.codeandweb.com/texturepacker",
- "version": "3.0",
- "smartupdate": "$TexturePacker:SmartUpdate:40f74f8757cb0f5a2ab7b5f68ea979a0:d062f67571674668b47f6fab68361105:9779ed3adebc298af537dd64dc25fe00$"
- }
-}
\ No newline at end of file
diff --git a/public/images/pokemon/variant/exp/back/666-tundra_3.png b/public/images/pokemon/variant/exp/back/666-tundra_3.png
deleted file mode 100644
index 3284e1e637b..00000000000
Binary files a/public/images/pokemon/variant/exp/back/666-tundra_3.png and /dev/null differ
diff --git a/public/images/ui/cursor_tera.png b/public/images/ui/cursor_tera.png
new file mode 100644
index 00000000000..34cbe095895
Binary files /dev/null and b/public/images/ui/cursor_tera.png differ
diff --git a/public/images/ui/legacy/cursor_tera.png b/public/images/ui/legacy/cursor_tera.png
new file mode 100644
index 00000000000..f2e77046137
Binary files /dev/null and b/public/images/ui/legacy/cursor_tera.png differ
diff --git a/public/images/ui/legacy/summary_bg.png b/public/images/ui/legacy/summary_bg.png
index e4da2dd5da2..c482b5a1bf1 100644
Binary files a/public/images/ui/legacy/summary_bg.png and b/public/images/ui/legacy/summary_bg.png differ
diff --git a/public/images/ui/legacy/summary_profile.png b/public/images/ui/legacy/summary_profile.png
index 1d184023ca8..77d59dac177 100644
Binary files a/public/images/ui/legacy/summary_profile.png and b/public/images/ui/legacy/summary_profile.png differ
diff --git a/public/images/ui/summary_bg.png b/public/images/ui/summary_bg.png
index b77cdadd2ac..a86a94dd56e 100644
Binary files a/public/images/ui/summary_bg.png and b/public/images/ui/summary_bg.png differ
diff --git a/public/images/ui/summary_profile.png b/public/images/ui/summary_profile.png
index 38bb5e84dfd..55cc70dc4d0 100644
Binary files a/public/images/ui/summary_profile.png and b/public/images/ui/summary_profile.png differ
diff --git a/public/locales b/public/locales
index 58dda14ee83..0e5c6096ba2 160000
--- a/public/locales
+++ b/public/locales
@@ -1 +1 @@
-Subproject commit 58dda14ee834204c4bd5ece47694a3c068df4b0e
+Subproject commit 0e5c6096ba26f6b87aed1aab3fe9b0b23f6cbb7b
diff --git a/src/battle-scene.ts b/src/battle-scene.ts
index e6649d0999a..996c3b0de87 100644
--- a/src/battle-scene.ts
+++ b/src/battle-scene.ts
@@ -8,10 +8,37 @@ import { allSpecies, getPokemonSpecies } from "#app/data/pokemon-species";
import type { Constructor } from "#app/utils";
import { isNullOrUndefined, randSeedInt } from "#app/utils";
import * as Utils from "#app/utils";
-import type { Modifier, ModifierPredicate, TurnHeldItemTransferModifier } from "./modifier/modifier";
-import { ConsumableModifier, ConsumablePokemonModifier, DoubleBattleChanceBoosterModifier, ExpBalanceModifier, ExpShareModifier, FusePokemonModifier, HealingBoosterModifier, ModifierBar, MultipleParticipantExpBonusModifier, PersistentModifier, PokemonExpBoosterModifier, PokemonFormChangeItemModifier, PokemonHeldItemModifier, PokemonHpRestoreModifier, PokemonIncrementingStatModifier, RememberMoveModifier } from "./modifier/modifier";
+import type {
+ Modifier,
+ ModifierPredicate,
+ TurnHeldItemTransferModifier,
+} from "./modifier/modifier";
+import {
+ ConsumableModifier,
+ ConsumablePokemonModifier,
+ DoubleBattleChanceBoosterModifier,
+ ExpBalanceModifier,
+ ExpShareModifier,
+ FusePokemonModifier,
+ HealingBoosterModifier,
+ ModifierBar,
+ MultipleParticipantExpBonusModifier,
+ PersistentModifier,
+ PokemonExpBoosterModifier,
+ PokemonFormChangeItemModifier,
+ PokemonHeldItemModifier,
+ PokemonHpRestoreModifier,
+ PokemonIncrementingStatModifier,
+ RememberMoveModifier,
+} from "./modifier/modifier";
import { PokeballType } from "#enums/pokeball";
-import { initCommonAnims, initMoveAnim, loadCommonAnimAssets, loadMoveAnimAssets, populateAnims } from "#app/data/battle-anims";
+import {
+ initCommonAnims,
+ initMoveAnim,
+ loadCommonAnimAssets,
+ loadMoveAnimAssets,
+ populateAnims,
+} from "#app/data/battle-anims";
import type { Phase } from "#app/phase";
import { initGameSpeed } from "#app/system/game-speed";
import { Arena, ArenaBase } from "#app/field/arena";
@@ -19,9 +46,29 @@ import { GameData } from "#app/system/game-data";
import { addTextObject, getTextColor, TextStyle } from "#app/ui/text";
import { allMoves } from "#app/data/move";
import { MusicPreference } from "#app/system/settings/settings";
-import { getDefaultModifierTypeForTier, getEnemyModifierTypesForWave, getLuckString, getLuckTextTint, getModifierPoolForType, getModifierType, getPartyLuckValue, ModifierPoolType, modifierTypes, PokemonHeldItemModifierType } from "#app/modifier/modifier-type";
+import {
+ getDefaultModifierTypeForTier,
+ getEnemyModifierTypesForWave,
+ getLuckString,
+ getLuckTextTint,
+ getModifierPoolForType,
+ getModifierType,
+ getPartyLuckValue,
+ ModifierPoolType,
+ modifierTypes,
+ PokemonHeldItemModifierType,
+} from "#app/modifier/modifier-type";
import AbilityBar from "#app/ui/ability-bar";
-import { allAbilities, applyAbAttrs, applyPostBattleInitAbAttrs, applyPostItemLostAbAttrs, BlockItemTheftAbAttr, DoubleBattleChanceAbAttr, PostBattleInitAbAttr, PostItemLostAbAttr } from "#app/data/ability";
+import {
+ allAbilities,
+ applyAbAttrs,
+ applyPostBattleInitAbAttrs,
+ applyPostItemLostAbAttrs,
+ BlockItemTheftAbAttr,
+ DoubleBattleChanceAbAttr,
+ PostBattleInitAbAttr,
+ PostItemLostAbAttr,
+} from "#app/data/ability";
import type { FixedBattleConfig } from "#app/battle";
import Battle, { BattleType } from "#app/battle";
import type { GameMode } from "#app/game-mode";
@@ -46,8 +93,16 @@ import type UIPlugin from "phaser3-rex-plugins/templates/ui/ui-plugin";
import { addUiThemeOverrides } from "#app/ui/ui-theme";
import type PokemonData from "#app/system/pokemon-data";
import { Nature } from "#enums/nature";
-import type { SpeciesFormChange, SpeciesFormChangeTrigger } from "#app/data/pokemon-forms";
-import { FormChangeItem, pokemonFormChanges, SpeciesFormChangeManualTrigger, SpeciesFormChangeTimeOfDayTrigger } from "#app/data/pokemon-forms";
+import type {
+ SpeciesFormChange,
+ SpeciesFormChangeTrigger,
+} from "#app/data/pokemon-forms";
+import {
+ FormChangeItem,
+ pokemonFormChanges,
+ SpeciesFormChangeManualTrigger,
+ SpeciesFormChangeTimeOfDayTrigger,
+} from "#app/data/pokemon-forms";
import { FormChangePhase } from "#app/phases/form-change-phase";
import { getTypeRgb } from "#app/data/type";
import { Type } from "#enums/type";
@@ -100,7 +155,14 @@ import { ToggleDoublePositionPhase } from "#app/phases/toggle-double-position-ph
import { TurnInitPhase } from "#app/phases/turn-init-phase";
import { ShopCursorTarget } from "#app/enums/shop-cursor-target";
import MysteryEncounter from "#app/data/mystery-encounters/mystery-encounter";
-import { allMysteryEncounters, ANTI_VARIANCE_WEIGHT_MODIFIER, AVERAGE_ENCOUNTERS_PER_RUN_TARGET, BASE_MYSTERY_ENCOUNTER_SPAWN_WEIGHT, MYSTERY_ENCOUNTER_SPAWN_MAX_WEIGHT, mysteryEncountersByBiome } from "#app/data/mystery-encounters/mystery-encounters";
+import {
+ allMysteryEncounters,
+ ANTI_VARIANCE_WEIGHT_MODIFIER,
+ AVERAGE_ENCOUNTERS_PER_RUN_TARGET,
+ BASE_MYSTERY_ENCOUNTER_SPAWN_WEIGHT,
+ MYSTERY_ENCOUNTER_SPAWN_MAX_WEIGHT,
+ mysteryEncountersByBiome,
+} from "#app/data/mystery-encounters/mystery-encounters";
import { MysteryEncounterSaveData } from "#app/data/mystery-encounters/mystery-encounter-save-data";
import { MysteryEncounterType } from "#enums/mystery-encounter-type";
import { MysteryEncounterTier } from "#enums/mystery-encounter-tier";
@@ -118,11 +180,11 @@ export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1";
const DEBUG_RNG = false;
-const OPP_IVS_OVERRIDE_VALIDATED : number[] = (
- Array.isArray(Overrides.OPP_IVS_OVERRIDE) ?
- Overrides.OPP_IVS_OVERRIDE :
- new Array(6).fill(Overrides.OPP_IVS_OVERRIDE)
-).map(iv => isNaN(iv) || iv === null || iv > 31 ? -1 : iv);
+const OPP_IVS_OVERRIDE_VALIDATED: number[] = (
+ Array.isArray(Overrides.OPP_IVS_OVERRIDE)
+ ? Overrides.OPP_IVS_OVERRIDE
+ : new Array(6).fill(Overrides.OPP_IVS_OVERRIDE)
+).map((iv) => (isNaN(iv) || iv === null || iv > 31 ? -1 : iv));
export const startingWave = Overrides.STARTING_WAVE_OVERRIDE || 1;
@@ -130,18 +192,21 @@ const expSpriteKeys: string[] = [];
export let starterColors: StarterColors;
interface StarterColors {
- [key: string]: [string, string]
+ [key: string]: [string, string];
}
export interface PokeballCounts {
- [pb: string]: number;
+ [pb: string]: number;
}
-export type AnySound = Phaser.Sound.WebAudioSound | Phaser.Sound.HTML5AudioSound | Phaser.Sound.NoAudioSound;
+export type AnySound =
+ | Phaser.Sound.WebAudioSound
+ | Phaser.Sound.HTML5AudioSound
+ | Phaser.Sound.NoAudioSound;
export interface InfoToggle {
- toggleInfo(force?: boolean): void;
- isActive(): boolean;
+ toggleInfo(force?: boolean): void;
+ isActive(): boolean;
}
export default class BattleScene extends SceneBase {
@@ -167,7 +232,8 @@ export default class BattleScene extends SceneBase {
public showTimeOfDayWidget: boolean = true;
public timeOfDayAnimation: EaseType = EaseType.NONE;
public showLevelUpStats: boolean = true;
- public enableTutorials: boolean = import.meta.env.VITE_BYPASS_TUTORIAL === "1";
+ public enableTutorials: boolean =
+ import.meta.env.VITE_BYPASS_TUTORIAL === "1";
public enableMoveInfo: boolean = true;
public enableRetries: boolean = false;
public hideIvs: boolean = false;
@@ -201,17 +267,17 @@ export default class BattleScene extends SceneBase {
public eggSkipPreference: number = 0;
/**
- * Defines the experience gain display mode.
- *
- * @remarks
- * The `expParty` can have several modes:
- * - `0` - Default: The normal experience gain display, nothing changed.
- * - `1` - Level Up Notification: Displays the level up in the small frame instead of a message.
- * - `2` - Skip: No level up frame nor message.
- *
- * Modes `1` and `2` are still compatible with stats display, level up, new move, etc.
- * @default 0 - Uses the default normal experience gain display.
- */
+ * Defines the experience gain display mode.
+ *
+ * @remarks
+ * The `expParty` can have several modes:
+ * - `0` - Default: The normal experience gain display, nothing changed.
+ * - `1` - Level Up Notification: Displays the level up in the small frame instead of a message.
+ * - `2` - Skip: No level up frame nor message.
+ *
+ * Modes `1` and `2` are still compatible with stats display, level up, new move, etc.
+ * @default 0 - Uses the default normal experience gain display.
+ */
public expParty: ExpNotification = 0;
public hpBarSpeed: number = 0;
public fusionPaletteSwaps: boolean = true;
@@ -227,9 +293,9 @@ export default class BattleScene extends SceneBase {
public battleStyle: number = BattleStyle.SWITCH;
/**
- * Defines whether or not to show type effectiveness hints
- * - true: No hints
- * - false: Show hints for moves
+ * Defines whether or not to show type effectiveness hints
+ * - true: No hints
+ * - false: Show hints for moves
*/
public typeHints: boolean = false;
@@ -276,7 +342,8 @@ export default class BattleScene extends SceneBase {
public pokemonInfoContainer: PokemonInfoContainer;
private party: PlayerPokemon[];
/** Session save data that pertains to Mystery Encounters */
- public mysteryEncounterSaveData: MysteryEncounterSaveData = new MysteryEncounterSaveData();
+ public mysteryEncounterSaveData: MysteryEncounterSaveData =
+ new MysteryEncounterSaveData();
/** If the previous wave was a MysteryEncounter, tracks the object with this variable. Mostly used for visual object cleanup */
public lastMysteryEncounter?: MysteryEncounter;
/** Combined Biome and Wave count text */
@@ -292,7 +359,7 @@ export default class BattleScene extends SceneBase {
private fieldOverlay: Phaser.GameObjects.Rectangle;
private shopOverlay: Phaser.GameObjects.Rectangle;
private shopOverlayShown: boolean = false;
- private shopOverlayOpacity: number = .8;
+ private shopOverlayOpacity: number = 0.8;
public modifiers: PersistentModifier[];
private enemyModifiers: PersistentModifier[];
@@ -358,19 +425,30 @@ export default class BattleScene extends SceneBase {
if (variant) {
atlasPath = atlasPath.replace("variant/", "");
}
- this.load.atlas(key, `images/pokemon/${variant ? "variant/" : ""}${experimental ? "exp/" : ""}${atlasPath}.png`, `images/pokemon/${variant ? "variant/" : ""}${experimental ? "exp/" : ""}${atlasPath}.json`);
+ this.load.atlas(
+ key,
+ `images/pokemon/${variant ? "variant/" : ""}${experimental ? "exp/" : ""}${atlasPath}.png`,
+ `images/pokemon/${variant ? "variant/" : ""}${experimental ? "exp/" : ""}${atlasPath}.json`,
+ );
}
/**
* Load the variant assets for the given sprite and stores them in {@linkcode variantColorCache}
*/
- public async loadPokemonVariantAssets(spriteKey: string, fileRoot: string, variant?: Variant): Promise
{
- const useExpSprite = this.experimentalSprites && this.hasExpSprite(spriteKey);
+ public async loadPokemonVariantAssets(
+ spriteKey: string,
+ fileRoot: string,
+ variant?: Variant,
+ ): Promise {
+ const useExpSprite =
+ this.experimentalSprites && this.hasExpSprite(spriteKey);
if (useExpSprite) {
fileRoot = `exp/${fileRoot}`;
}
let variantConfig = variantData;
- fileRoot.split("/").map((p) => (variantConfig ? (variantConfig = variantConfig[p]) : null));
+ fileRoot
+ .split("/")
+ .map((p) => (variantConfig ? (variantConfig = variantConfig[p]) : null));
const variantSet = variantConfig as VariantSet;
return new Promise((resolve) => {
@@ -393,10 +471,20 @@ export default class BattleScene extends SceneBase {
async preload() {
if (DEBUG_RNG) {
const originalRealInRange = Phaser.Math.RND.realInRange;
- Phaser.Math.RND.realInRange = function (min: number, max: number): number {
+ Phaser.Math.RND.realInRange = function (
+ min: number,
+ max: number,
+ ): number {
const ret = originalRealInRange.apply(this, [ min, max ]);
- const args = [ "RNG", ++this.rngCounter, ret / (max - min), `min: ${min} / max: ${max}` ];
- args.push(`seed: ${this.rngSeedOverride || this.waveSeed || this.seed}`);
+ const args = [
+ "RNG",
+ ++this.rngCounter,
+ ret / (max - min),
+ `min: ${min} / max: ${max}`,
+ ];
+ args.push(
+ `seed: ${this.rngSeedOverride || this.waveSeed || this.seed}`,
+ );
if (this.rngOffset) {
args.push(`offset: ${this.rngOffset}`);
}
@@ -423,10 +511,16 @@ export default class BattleScene extends SceneBase {
this.load.setBaseURL();
this.spritePipeline = new SpritePipeline(this.game);
- (this.renderer as Phaser.Renderer.WebGL.WebGLRenderer).pipelines.add("Sprite", this.spritePipeline);
+ (this.renderer as Phaser.Renderer.WebGL.WebGLRenderer).pipelines.add(
+ "Sprite",
+ this.spritePipeline,
+ );
this.fieldSpritePipeline = new FieldSpritePipeline(this.game);
- (this.renderer as Phaser.Renderer.WebGL.WebGLRenderer).pipelines.add("FieldSprite", this.fieldSpritePipeline);
+ (this.renderer as Phaser.Renderer.WebGL.WebGLRenderer).pipelines.add(
+ "FieldSprite",
+ this.fieldSpritePipeline,
+ );
this.launchBattle();
}
@@ -441,7 +535,7 @@ export default class BattleScene extends SceneBase {
this.arenaBgTransition = this.add.sprite(0, 0, "plains_bg");
this.arenaBgTransition.setName("sprite-arena-bg-transition");
- [ this.arenaBgTransition, this.arenaBg ].forEach(a => {
+ [ this.arenaBgTransition, this.arenaBg ].forEach((a) => {
a.setPipeline(this.fieldSpritePipeline);
a.setScale(6);
a.setOrigin(0);
@@ -461,13 +555,16 @@ export default class BattleScene extends SceneBase {
this.fieldUI = fieldUI;
- const transition = this.make.rexTransitionImagePack({
- x: 0,
- y: 0,
- scale: 6,
- key: "loading_bg",
- origin: { x: 0, y: 0 }
- }, true);
+ const transition = this.make.rexTransitionImagePack(
+ {
+ x: 0,
+ y: 0,
+ scale: 6,
+ key: "loading_bg",
+ origin: { x: 0, y: 0 },
+ },
+ true,
+ );
//@ts-ignore (the defined types in the package are incromplete...)
transition.transit({
@@ -489,14 +586,26 @@ export default class BattleScene extends SceneBase {
this.uiContainer = uiContainer;
const overlayWidth = this.game.canvas.width / 6;
- const overlayHeight = (this.game.canvas.height / 6) - 48;
- this.fieldOverlay = this.add.rectangle(0, overlayHeight * -1 - 48, overlayWidth, overlayHeight, 0x424242);
+ const overlayHeight = this.game.canvas.height / 6 - 48;
+ this.fieldOverlay = this.add.rectangle(
+ 0,
+ overlayHeight * -1 - 48,
+ overlayWidth,
+ overlayHeight,
+ 0x424242,
+ );
this.fieldOverlay.setName("rect-field-overlay");
this.fieldOverlay.setOrigin(0, 0);
this.fieldOverlay.setAlpha(0);
this.fieldUI.add(this.fieldOverlay);
- this.shopOverlay = this.add.rectangle(0, overlayHeight * -1 - 48, overlayWidth, overlayHeight, 0x070707);
+ this.shopOverlay = this.add.rectangle(
+ 0,
+ overlayHeight * -1 - 48,
+ overlayWidth,
+ overlayHeight,
+ 0x070707,
+ );
this.shopOverlay.setName("rect-shop-overlay");
this.shopOverlay.setOrigin(0, 0);
this.shopOverlay.setAlpha(0);
@@ -547,28 +656,56 @@ export default class BattleScene extends SceneBase {
this.candyBar.setup();
this.fieldUI.add(this.candyBar);
- this.biomeWaveText = addTextObject((this.game.canvas.width / 6) - 2, 0, startingWave.toString(), TextStyle.BATTLE_INFO);
+ this.biomeWaveText = addTextObject(
+ this.game.canvas.width / 6 - 2,
+ 0,
+ startingWave.toString(),
+ TextStyle.BATTLE_INFO,
+ );
this.biomeWaveText.setName("text-biome-wave");
this.biomeWaveText.setOrigin(1, 0.5);
this.fieldUI.add(this.biomeWaveText);
- this.moneyText = addTextObject((this.game.canvas.width / 6) - 2, 0, "", TextStyle.MONEY);
+ this.moneyText = addTextObject(
+ this.game.canvas.width / 6 - 2,
+ 0,
+ "",
+ TextStyle.MONEY,
+ );
this.moneyText.setName("text-money");
this.moneyText.setOrigin(1, 0.5);
this.fieldUI.add(this.moneyText);
- this.scoreText = addTextObject((this.game.canvas.width / 6) - 2, 0, "", TextStyle.PARTY, { fontSize: "54px" });
+ this.scoreText = addTextObject(
+ this.game.canvas.width / 6 - 2,
+ 0,
+ "",
+ TextStyle.PARTY,
+ { fontSize: "54px" },
+ );
this.scoreText.setName("text-score");
this.scoreText.setOrigin(1, 0.5);
this.fieldUI.add(this.scoreText);
- this.luckText = addTextObject((this.game.canvas.width / 6) - 2, 0, "", TextStyle.PARTY, { fontSize: "54px" });
+ this.luckText = addTextObject(
+ this.game.canvas.width / 6 - 2,
+ 0,
+ "",
+ TextStyle.PARTY,
+ { fontSize: "54px" },
+ );
this.luckText.setName("text-luck");
this.luckText.setOrigin(1, 0.5);
this.luckText.setVisible(false);
this.fieldUI.add(this.luckText);
- this.luckLabelText = addTextObject((this.game.canvas.width / 6) - 2, 0, i18next.t("common:luckIndicator"), TextStyle.PARTY, { fontSize: "54px" });
+ this.luckLabelText = addTextObject(
+ this.game.canvas.width / 6 - 2,
+ 0,
+ i18next.t("common:luckIndicator"),
+ TextStyle.PARTY,
+ { fontSize: "54px" },
+ );
this.luckLabelText.setName("text-luck-label");
this.luckLabelText.setOrigin(1, 0.5);
this.luckLabelText.setVisible(false);
@@ -576,7 +713,10 @@ export default class BattleScene extends SceneBase {
this.arenaFlyout = new ArenaFlyout();
this.fieldUI.add(this.arenaFlyout);
- this.fieldUI.moveBelow(this.arenaFlyout, this.fieldOverlay);
+ this.fieldUI.moveBelow(
+ this.arenaFlyout,
+ this.fieldOverlay,
+ );
this.updateUIPositions();
@@ -585,7 +725,10 @@ export default class BattleScene extends SceneBase {
this.spriteSparkleHandler = new PokemonSpriteSparkleHandler();
this.spriteSparkleHandler.setup();
- this.pokemonInfoContainer = new PokemonInfoContainer((this.game.canvas.width / 6) + 52, -(this.game.canvas.height / 6) + 66);
+ this.pokemonInfoContainer = new PokemonInfoContainer(
+ this.game.canvas.width / 6 + 52,
+ -(this.game.canvas.height / 6) + 66,
+ );
this.pokemonInfoContainer.setup();
this.fieldUI.add(this.pokemonInfoContainer);
@@ -607,14 +750,23 @@ export default class BattleScene extends SceneBase {
this.arenaPlayerTransition.setVisible(false);
this.arenaNextEnemy.setVisible(false);
- [ this.arenaPlayer, this.arenaPlayerTransition, this.arenaEnemy, this.arenaNextEnemy ].forEach(a => {
+ [
+ this.arenaPlayer,
+ this.arenaPlayerTransition,
+ this.arenaEnemy,
+ this.arenaNextEnemy,
+ ].forEach((a) => {
if (a instanceof Phaser.GameObjects.Sprite) {
a.setOrigin(0, 0);
}
field.add(a);
});
- const trainer = this.addFieldSprite(0, 0, `trainer_${this.gameData.gender === PlayerGender.FEMALE ? "f" : "m"}_back`);
+ const trainer = this.addFieldSprite(
+ 0,
+ 0,
+ `trainer_${this.gameData.gender === PlayerGender.FEMALE ? "f" : "m"}_back`,
+ );
trainer.setOrigin(0.5, 1);
trainer.setName("sprite-trainer");
@@ -627,16 +779,19 @@ export default class BattleScene extends SceneBase {
frames: this.anims.generateFrameNumbers("prompt", { start: 1, end: 4 }),
frameRate: 6,
repeat: -1,
- showOnStart: true
+ showOnStart: true,
});
this.anims.create({
key: "tera_sparkle",
- frames: this.anims.generateFrameNumbers("tera_sparkle", { start: 0, end: 12 }),
+ frames: this.anims.generateFrameNumbers("tera_sparkle", {
+ start: 0,
+ end: 12,
+ }),
frameRate: 18,
repeat: 0,
showOnStart: true,
- hideOnComplete: true
+ hideOnComplete: true,
});
this.reset(false, false, true);
@@ -648,13 +803,22 @@ export default class BattleScene extends SceneBase {
ui.setup();
- const defaultMoves = [ Moves.TACKLE, Moves.TAIL_WHIP, Moves.FOCUS_ENERGY, Moves.STRUGGLE ];
+ const defaultMoves = [
+ Moves.TACKLE,
+ Moves.TAIL_WHIP,
+ Moves.FOCUS_ENERGY,
+ Moves.STRUGGLE,
+ ];
Promise.all([
Promise.all(loadPokemonAssets),
initCommonAnims().then(() => loadCommonAnimAssets(true)),
- Promise.all([ Moves.TACKLE, Moves.TAIL_WHIP, Moves.FOCUS_ENERGY, Moves.STRUGGLE ].map(m => initMoveAnim(m))).then(() => loadMoveAnimAssets(defaultMoves, true)),
- this.initStarterColors()
+ Promise.all(
+ [ Moves.TACKLE, Moves.TAIL_WHIP, Moves.FOCUS_ENERGY, Moves.STRUGGLE ].map(
+ (m) => initMoveAnim(m),
+ ),
+ ).then(() => loadMoveAnimAssets(defaultMoves, true)),
+ this.initStarterColors(),
]).then(() => {
this.pushPhase(new LoginPhase());
this.pushPhase(new TitlePhase());
@@ -688,7 +852,7 @@ export default class BattleScene extends SceneBase {
if (this.lastSavePlayTime !== null) {
this.lastSavePlayTime++;
}
- }
+ },
});
this.updateBiomeWaveText();
@@ -700,19 +864,22 @@ export default class BattleScene extends SceneBase {
if (expSpriteKeys.length) {
return;
}
- this.cachedFetch("./exp-sprites.json").then(res => res.json()).then(keys => {
- if (Array.isArray(keys)) {
- expSpriteKeys.push(...keys);
- }
- Promise.resolve();
- });
+ this.cachedFetch("./exp-sprites.json")
+ .then((res) => res.json())
+ .then((keys) => {
+ if (Array.isArray(keys)) {
+ expSpriteKeys.push(...keys);
+ }
+ Promise.resolve();
+ });
}
async initVariantData(): Promise {
- Object.keys(variantData).forEach(key => delete variantData[key]);
- await this.cachedFetch("./images/pokemon/variant/_masterlist.json").then(res => res.json())
- .then(v => {
- Object.keys(v).forEach(k => variantData[k] = v[k]);
+ Object.keys(variantData).forEach((key) => delete variantData[key]);
+ await this.cachedFetch("./images/pokemon/variant/_masterlist.json")
+ .then((res) => res.json())
+ .then((v) => {
+ Object.keys(v).forEach((k) => (variantData[k] = v[k]));
if (this.experimentalSprites) {
const expVariantData = variantData["exp"];
const traverseVariantData = (keys: string[]) => {
@@ -722,7 +889,10 @@ export default class BattleScene extends SceneBase {
if (i < keys.length - 1) {
variantTree = variantTree[k];
expTree = expTree[k];
- } else if (variantTree.hasOwnProperty(k) && expTree.hasOwnProperty(k)) {
+ } else if (
+ variantTree.hasOwnProperty(k) &&
+ expTree.hasOwnProperty(k)
+ ) {
if ([ "back", "female" ].includes(k)) {
traverseVariantData(keys.concat(k));
} else {
@@ -731,7 +901,9 @@ export default class BattleScene extends SceneBase {
}
});
};
- Object.keys(expVariantData).forEach(ek => traverseVariantData([ ek ]));
+ Object.keys(expVariantData).forEach((ek) =>
+ traverseVariantData([ ek ]),
+ );
}
Promise.resolve();
});
@@ -749,18 +921,20 @@ export default class BattleScene extends SceneBase {
}
initStarterColors(): Promise {
- return new Promise(resolve => {
+ return new Promise((resolve) => {
if (starterColors) {
return resolve();
}
- this.cachedFetch("./starter-colors.json").then(res => res.json()).then(sc => {
- starterColors = {};
- Object.keys(sc).forEach(key => {
- starterColors[key] = sc[key];
- });
+ this.cachedFetch("./starter-colors.json")
+ .then((res) => res.json())
+ .then((sc) => {
+ starterColors = {};
+ Object.keys(sc).forEach((key) => {
+ starterColors[key] = sc[key];
+ });
- /*const loadPokemonAssets: Promise[] = [];
+ /*const loadPokemonAssets: Promise[] = [];
for (let s of Object.keys(speciesStarters)) {
const species = getPokemonSpecies(parseInt(s));
@@ -782,13 +956,16 @@ export default class BattleScene extends SceneBase {
resolve();
});*/
- resolve();
- });
+ resolve();
+ });
});
}
hasExpSprite(key: string): boolean {
- const keyMatch = /^pkmn__?(back__)?(shiny__)?(female__)?(\d+)(\-.*?)?(?:_[1-3])?$/g.exec(key);
+ const keyMatch =
+ /^pkmn__?(back__)?(shiny__)?(female__)?(\d+)(\-.*?)?(?:_[1-3])?$/g.exec(
+ key,
+ );
if (!keyMatch) {
return false;
}
@@ -821,7 +998,7 @@ export default class BattleScene extends SceneBase {
* that are {@linkcode Pokemon.isAllowedInBattle | allowed in battle}.
*/
public getPokemonAllowedInBattle(): PlayerPokemon[] {
- return this.getPlayerParty().filter(p => p.isAllowedInBattle());
+ return this.getPlayerParty().filter((p) => p.isAllowedInBattle());
}
/**
@@ -831,8 +1008,12 @@ export default class BattleScene extends SceneBase {
* or `undefined` if there are no valid pokemon
* @param includeSwitching Whether a pokemon that is currently switching out is valid, default `true`
*/
- public getPlayerPokemon(includeSwitching: boolean = true): PlayerPokemon | undefined {
- return this.getPlayerField().find(p => p.isActive() && (includeSwitching || p.switchOutStatus === false));
+ public getPlayerPokemon(
+ includeSwitching: boolean = true,
+ ): PlayerPokemon | undefined {
+ return this.getPlayerField().find(
+ (p) => p.isActive() && (includeSwitching || p.switchOutStatus === false),
+ );
}
/**
@@ -842,7 +1023,10 @@ export default class BattleScene extends SceneBase {
*/
public getPlayerField(): PlayerPokemon[] {
const party = this.getPlayerParty();
- return party.slice(0, Math.min(party.length, this.currentBattle?.double ? 2 : 1));
+ return party.slice(
+ 0,
+ Math.min(party.length, this.currentBattle?.double ? 2 : 1),
+ );
}
public getEnemyParty(): EnemyPokemon[] {
@@ -856,8 +1040,12 @@ export default class BattleScene extends SceneBase {
* or `undefined` if there are no valid pokemon
* @param includeSwitching Whether a pokemon that is currently switching out is valid, default `true`
*/
- public getEnemyPokemon(includeSwitching: boolean = true): EnemyPokemon | undefined {
- return this.getEnemyField().find(p => p.isActive() && (includeSwitching || p.switchOutStatus === false));
+ public getEnemyPokemon(
+ includeSwitching: boolean = true,
+ ): EnemyPokemon | undefined {
+ return this.getEnemyField().find(
+ (p) => p.isActive() && (includeSwitching || p.switchOutStatus === false),
+ );
}
/**
@@ -867,7 +1055,10 @@ export default class BattleScene extends SceneBase {
*/
public getEnemyField(): EnemyPokemon[] {
const party = this.getEnemyParty();
- return party.slice(0, Math.min(party.length, this.currentBattle?.double ? 2 : 1));
+ return party.slice(
+ 0,
+ Math.min(party.length, this.currentBattle?.double ? 2 : 1),
+ );
}
/**
@@ -882,9 +1073,7 @@ export default class BattleScene extends SceneBase {
const enemyField = this.getEnemyField();
ret.splice(0, playerField.length, ...playerField);
ret.splice(2, enemyField.length, ...enemyField);
- return activeOnly
- ? ret.filter(p => p?.isActive())
- : ret;
+ return activeOnly ? ret.filter((p) => p?.isActive()) : ret;
}
/**
@@ -900,8 +1089,17 @@ export default class BattleScene extends SceneBase {
if (allyPokemon?.isActive(true)) {
let targetingMovePhase: MovePhase;
do {
- targetingMovePhase = this.findPhase(mp => mp instanceof MovePhase && mp.targets.length === 1 && mp.targets[0] === removedPokemon.getBattlerIndex() && mp.pokemon.isPlayer() !== allyPokemon.isPlayer()) as MovePhase;
- if (targetingMovePhase && targetingMovePhase.targets[0] !== allyPokemon.getBattlerIndex()) {
+ targetingMovePhase = this.findPhase(
+ (mp) =>
+ mp instanceof MovePhase &&
+ mp.targets.length === 1 &&
+ mp.targets[0] === removedPokemon.getBattlerIndex() &&
+ mp.pokemon.isPlayer() !== allyPokemon.isPlayer(),
+ ) as MovePhase;
+ if (
+ targetingMovePhase &&
+ targetingMovePhase.targets[0] !== allyPokemon.getBattlerIndex()
+ ) {
targetingMovePhase.targets[0] = allyPokemon.getBattlerIndex();
}
} while (targetingMovePhase);
@@ -924,16 +1122,46 @@ export default class BattleScene extends SceneBase {
// return the stored info toggles; used by ui-inputs
getInfoToggles(activeOnly: boolean = false): InfoToggle[] {
- return activeOnly ? this.infoToggles.filter(t => t?.isActive()) : this.infoToggles;
+ return activeOnly
+ ? this.infoToggles.filter((t) => t?.isActive())
+ : this.infoToggles;
}
getPokemonById(pokemonId: number): Pokemon | null {
- const findInParty = (party: Pokemon[]) => party.find(p => p.id === pokemonId);
- return (findInParty(this.getPlayerParty()) || findInParty(this.getEnemyParty())) ?? null;
+ const findInParty = (party: Pokemon[]) =>
+ party.find((p) => p.id === pokemonId);
+ return (
+ (findInParty(this.getPlayerParty()) ||
+ findInParty(this.getEnemyParty())) ??
+ null
+ );
}
- addPlayerPokemon(species: PokemonSpecies, level: number, abilityIndex?: number, formIndex?: number, gender?: Gender, shiny?: boolean, variant?: Variant, ivs?: number[], nature?: Nature, dataSource?: Pokemon | PokemonData, postProcess?: (playerPokemon: PlayerPokemon) => void): PlayerPokemon {
- const pokemon = new PlayerPokemon(species, level, abilityIndex, formIndex, gender, shiny, variant, ivs, nature, dataSource);
+ addPlayerPokemon(
+ species: PokemonSpecies,
+ level: number,
+ abilityIndex?: number,
+ formIndex?: number,
+ gender?: Gender,
+ shiny?: boolean,
+ variant?: Variant,
+ ivs?: number[],
+ nature?: Nature,
+ dataSource?: Pokemon | PokemonData,
+ postProcess?: (playerPokemon: PlayerPokemon) => void,
+ ): PlayerPokemon {
+ const pokemon = new PlayerPokemon(
+ species,
+ level,
+ abilityIndex,
+ formIndex,
+ gender,
+ shiny,
+ variant,
+ ivs,
+ nature,
+ dataSource,
+ );
if (postProcess) {
postProcess(pokemon);
}
@@ -941,17 +1169,37 @@ export default class BattleScene extends SceneBase {
return pokemon;
}
- addEnemyPokemon(species: PokemonSpecies, level: number, trainerSlot: TrainerSlot, boss: boolean = false, shinyLock: boolean = false, dataSource?: PokemonData, postProcess?: (enemyPokemon: EnemyPokemon) => void): EnemyPokemon {
+ addEnemyPokemon(
+ species: PokemonSpecies,
+ level: number,
+ trainerSlot: TrainerSlot,
+ boss: boolean = false,
+ shinyLock: boolean = false,
+ dataSource?: PokemonData,
+ postProcess?: (enemyPokemon: EnemyPokemon) => void,
+ ): EnemyPokemon {
if (Overrides.OPP_LEVEL_OVERRIDE > 0) {
level = Overrides.OPP_LEVEL_OVERRIDE;
}
if (Overrides.OPP_SPECIES_OVERRIDE) {
species = getPokemonSpecies(Overrides.OPP_SPECIES_OVERRIDE);
// The fact that a Pokemon is a boss or not can change based on its Species and level
- boss = this.getEncounterBossSegments(this.currentBattle.waveIndex, level, species) > 1;
+ boss =
+ this.getEncounterBossSegments(
+ this.currentBattle.waveIndex,
+ level,
+ species,
+ ) > 1;
}
- const pokemon = new EnemyPokemon(species, level, trainerSlot, boss, shinyLock, dataSource);
+ const pokemon = new EnemyPokemon(
+ species,
+ level,
+ trainerSlot,
+ boss,
+ shinyLock,
+ dataSource,
+ );
if (Overrides.OPP_FUSION_OVERRIDE) {
pokemon.generateFusionSpecies();
}
@@ -960,7 +1208,13 @@ export default class BattleScene extends SceneBase {
const secondaryIvs = Utils.getIvsFromId(Utils.randSeedInt(4294967296));
for (let s = 0; s < pokemon.ivs.length; s++) {
- pokemon.ivs[s] = Math.round(Phaser.Math.Linear(Math.min(pokemon.ivs[s], secondaryIvs[s]), Math.max(pokemon.ivs[s], secondaryIvs[s]), 0.75));
+ pokemon.ivs[s] = Math.round(
+ Phaser.Math.Linear(
+ Math.min(pokemon.ivs[s], secondaryIvs[s]),
+ Math.max(pokemon.ivs[s], secondaryIvs[s]),
+ 0.75,
+ ),
+ );
}
}
if (postProcess) {
@@ -983,7 +1237,10 @@ export default class BattleScene extends SceneBase {
* @param pokemon
* @param destroy Default true. If true, will destroy the {@linkcode PlayerPokemon} after removing
*/
- removePokemonFromPlayerParty(pokemon: PlayerPokemon, destroy: boolean = true) {
+ removePokemonFromPlayerParty(
+ pokemon: PlayerPokemon,
+ destroy: boolean = true,
+ ) {
if (!pokemon) {
return;
}
@@ -997,7 +1254,14 @@ export default class BattleScene extends SceneBase {
this.updateModifiers(true);
}
- addPokemonIcon(pokemon: Pokemon, x: number, y: number, originX: number = 0.5, originY: number = 0.5, ignoreOverride: boolean = false): Phaser.GameObjects.Container {
+ addPokemonIcon(
+ pokemon: Pokemon,
+ x: number,
+ y: number,
+ originX: number = 0.5,
+ originY: number = 0.5,
+ ignoreOverride: boolean = false,
+ ): Phaser.GameObjects.Container {
const container = this.add.container(x, y);
container.setName(`${pokemon.name}-icon`);
@@ -1006,7 +1270,9 @@ export default class BattleScene extends SceneBase {
icon.setFrame(pokemon.getIconId(true));
// Temporary fix to show pokemon's default icon if variant icon doesn't exist
if (icon.frame.name !== pokemon.getIconId(true)) {
- console.log(`${pokemon.name}'s variant icon does not exist. Replacing with default.`);
+ console.log(
+ `${pokemon.name}'s variant icon does not exist. Replacing with default.`,
+ );
const temp = pokemon.shiny;
pokemon.shiny = false;
icon.setTexture(pokemon.getIconAtlasKey(ignoreOverride));
@@ -1018,7 +1284,11 @@ export default class BattleScene extends SceneBase {
container.add(icon);
if (pokemon.isFusion()) {
- const fusionIcon = this.add.sprite(0, 0, pokemon.getFusionIconAtlasKey(ignoreOverride));
+ const fusionIcon = this.add.sprite(
+ 0,
+ 0,
+ pokemon.getFusionIconAtlasKey(ignoreOverride),
+ );
fusionIcon.setName("sprite-fusion-icon");
fusionIcon.setOrigin(0.5, 0);
fusionIcon.setFrame(pokemon.getFusionIconId(true));
@@ -1027,13 +1297,24 @@ export default class BattleScene extends SceneBase {
const originalHeight = icon.height;
const originalFrame = icon.frame;
- const iconHeight = (icon.frame.cutHeight <= fusionIcon.frame.cutHeight ? Math.ceil : Math.floor)((icon.frame.cutHeight + fusionIcon.frame.cutHeight) / 4);
+ const iconHeight = (
+ icon.frame.cutHeight <= fusionIcon.frame.cutHeight
+ ? Math.ceil
+ : Math.floor
+ )((icon.frame.cutHeight + fusionIcon.frame.cutHeight) / 4);
// Inefficient, but for some reason didn't work with only the unique properties as part of the name
const iconFrameId = `${icon.frame.name}f${fusionIcon.frame.name}`;
if (!icon.frame.texture.has(iconFrameId)) {
- icon.frame.texture.add(iconFrameId, icon.frame.sourceIndex, icon.frame.cutX, icon.frame.cutY, icon.frame.cutWidth, iconHeight);
+ icon.frame.texture.add(
+ iconFrameId,
+ icon.frame.sourceIndex,
+ icon.frame.cutX,
+ icon.frame.cutY,
+ icon.frame.cutWidth,
+ iconHeight,
+ );
}
icon.setFrame(iconFrameId);
@@ -1043,13 +1324,21 @@ export default class BattleScene extends SceneBase {
const originalFusionFrame = fusionIcon.frame;
const fusionIconY = fusionIcon.frame.cutY + icon.frame.cutHeight;
- const fusionIconHeight = fusionIcon.frame.cutHeight - icon.frame.cutHeight;
+ const fusionIconHeight =
+ fusionIcon.frame.cutHeight - icon.frame.cutHeight;
// Inefficient, but for some reason didn't work with only the unique properties as part of the name
const fusionIconFrameId = `${fusionIcon.frame.name}f${icon.frame.name}`;
if (!fusionIcon.frame.texture.has(fusionIconFrameId)) {
- fusionIcon.frame.texture.add(fusionIconFrameId, fusionIcon.frame.sourceIndex, fusionIcon.frame.cutX, fusionIconY, fusionIcon.frame.cutWidth, fusionIconHeight);
+ fusionIcon.frame.texture.add(
+ fusionIconFrameId,
+ fusionIcon.frame.sourceIndex,
+ fusionIcon.frame.cutX,
+ fusionIconY,
+ fusionIcon.frame.cutWidth,
+ fusionIconHeight,
+ );
}
fusionIcon.setFrame(fusionIconFrameId);
@@ -1062,7 +1351,7 @@ export default class BattleScene extends SceneBase {
container.x -= originalWidth * (originX - 0.5);
}
if (originY !== 0) {
- container.y -= (originalHeight) * originY;
+ container.y -= originalHeight * originY;
}
} else {
if (originX !== 0.5) {
@@ -1097,7 +1386,11 @@ export default class BattleScene extends SceneBase {
return this.currentBattle?.randSeedInt(range, min);
}
- reset(clearScene: boolean = false, clearData: boolean = false, reloadI18n: boolean = false): void {
+ reset(
+ clearScene: boolean = false,
+ clearData: boolean = false,
+ reloadI18n: boolean = false,
+ ): void {
if (clearData) {
this.gameData = new GameData();
}
@@ -1111,7 +1404,11 @@ export default class BattleScene extends SceneBase {
this.lockModifierTiers = false;
- this.pokeballCounts = Object.fromEntries(Utils.getEnumValues(PokeballType).filter(p => p <= PokeballType.MASTER_BALL).map(t => [ t, 0 ]));
+ this.pokeballCounts = Object.fromEntries(
+ Utils.getEnumValues(PokeballType)
+ .filter((p) => p <= PokeballType.MASTER_BALL)
+ .map((t) => [ t, 0 ]),
+ );
this.pokeballCounts[PokeballType.POKEBALL] += 5;
if (Overrides.POKEBALL_OVERRIDE.active) {
this.pokeballCounts = Overrides.POKEBALL_OVERRIDE.pokeballs;
@@ -1132,7 +1429,10 @@ export default class BattleScene extends SceneBase {
// If this is a ME, clear any residual visual sprites before reloading
if (this.currentBattle?.mysteryEncounter?.introVisuals) {
- this.field.remove(this.currentBattle.mysteryEncounter?.introVisuals, true);
+ this.field.remove(
+ this.currentBattle.mysteryEncounter?.introVisuals,
+ true,
+ );
}
//@ts-ignore - allowing `null` for currentBattle causes a lot of trouble
@@ -1153,7 +1453,7 @@ export default class BattleScene extends SceneBase {
this.updateScoreText();
this.scoreText.setVisible(false);
- [ this.luckLabelText, this.luckText ].map(t => t.setVisible(false));
+ [ this.luckLabelText, this.luckText ].map((t) => t.setVisible(false));
this.newArena(Overrides.STARTING_BIOME_OVERRIDE || Biome.TOWN);
@@ -1162,12 +1462,16 @@ export default class BattleScene extends SceneBase {
this.arenaBgTransition.setPosition(0, 0);
this.arenaPlayer.setPosition(300, 0);
this.arenaPlayerTransition.setPosition(0, 0);
- [ this.arenaEnemy, this.arenaNextEnemy ].forEach(a => a.setPosition(-280, 0));
+ [ this.arenaEnemy, this.arenaNextEnemy ].forEach((a) =>
+ a.setPosition(-280, 0),
+ );
this.arenaNextEnemy.setVisible(false);
this.arena.init();
- this.trainer.setTexture(`trainer_${this.gameData.gender === PlayerGender.FEMALE ? "f" : "m"}_back`);
+ this.trainer.setTexture(
+ `trainer_${this.gameData.gender === PlayerGender.FEMALE ? "f" : "m"}_back`,
+ );
this.trainer.setPosition(406, 186);
this.trainer.setVisible(true);
@@ -1180,7 +1484,16 @@ export default class BattleScene extends SceneBase {
...allSpecies,
...allMoves,
...allAbilities,
- ...Utils.getEnumValues(ModifierPoolType).map(mpt => getModifierPoolForType(mpt)).map(mp => Object.values(mp).flat().map(mt => mt.modifierType).filter(mt => "localize" in mt).map(lpb => lpb as unknown as Localizable)).flat()
+ ...Utils.getEnumValues(ModifierPoolType)
+ .map((mpt) => getModifierPoolForType(mpt))
+ .map((mp) =>
+ Object.values(mp)
+ .flat()
+ .map((mt) => mt.modifierType)
+ .filter((mt) => "localize" in mt)
+ .map((lpb) => lpb as unknown as Localizable),
+ )
+ .flat(),
];
for (const item of localizable) {
item.localize();
@@ -1206,21 +1519,32 @@ export default class BattleScene extends SceneBase {
this.children.removeAll(true);
this.game.domContainer.innerHTML = "";
this.launchBattle();
- }
+ },
});
}
}
getDoubleBattleChance(newWaveIndex: number, playerField: PlayerPokemon[]) {
- const doubleChance = new Utils.NumberHolder(newWaveIndex % 10 === 0 ? 32 : 8);
+ const doubleChance = new Utils.NumberHolder(
+ newWaveIndex % 10 === 0 ? 32 : 8,
+ );
this.applyModifiers(DoubleBattleChanceBoosterModifier, true, doubleChance);
- playerField.forEach(p => applyAbAttrs(DoubleBattleChanceAbAttr, p, null, false, doubleChance));
+ playerField.forEach((p) =>
+ applyAbAttrs(DoubleBattleChanceAbAttr, p, null, false, doubleChance),
+ );
return Math.max(doubleChance.value, 1);
}
- newBattle(waveIndex?: number, battleType?: BattleType, trainerData?: TrainerData, double?: boolean, mysteryEncounterType?: MysteryEncounterType): Battle | null {
+ newBattle(
+ waveIndex?: number,
+ battleType?: BattleType,
+ trainerData?: TrainerData,
+ double?: boolean,
+ mysteryEncounterType?: MysteryEncounterType,
+ ): Battle | null {
const _startingWave = Overrides.STARTING_WAVE_OVERRIDE || startingWave;
- const newWaveIndex = waveIndex || ((this.currentBattle?.waveIndex || (_startingWave - 1)) + 1);
+ const newWaveIndex =
+ waveIndex || (this.currentBattle?.waveIndex || _startingWave - 1) + 1;
let newDouble: boolean | undefined;
let newBattleType: BattleType;
let newTrainer: Trainer | undefined;
@@ -1231,11 +1555,17 @@ export default class BattleScene extends SceneBase {
const playerField = this.getPlayerField();
- if (this.gameMode.isFixedBattle(newWaveIndex) && trainerData === undefined) {
+ if (
+ this.gameMode.isFixedBattle(newWaveIndex) &&
+ trainerData === undefined
+ ) {
battleConfig = this.gameMode.getFixedBattle(newWaveIndex);
newDouble = battleConfig.double;
newBattleType = battleConfig.battleType;
- this.executeWithSeedOffset(() => newTrainer = battleConfig?.getTrainer(), (battleConfig.seedOffsetWaveIndex || newWaveIndex) << 8);
+ this.executeWithSeedOffset(
+ () => (newTrainer = battleConfig?.getTrainer()),
+ (battleConfig.seedOffsetWaveIndex || newWaveIndex) << 8,
+ );
if (newTrainer) {
this.field.add(newTrainer);
}
@@ -1243,7 +1573,9 @@ export default class BattleScene extends SceneBase {
if (!this.gameMode.hasTrainers) {
newBattleType = BattleType.WILD;
} else if (battleType === undefined) {
- newBattleType = this.gameMode.isWaveTrainer(newWaveIndex, this.arena) ? BattleType.TRAINER : BattleType.WILD;
+ newBattleType = this.gameMode.isWaveTrainer(newWaveIndex, this.arena)
+ ? BattleType.TRAINER
+ : BattleType.WILD;
} else {
newBattleType = battleType;
}
@@ -1254,29 +1586,50 @@ export default class BattleScene extends SceneBase {
if (trainerConfigs[trainerType].doubleOnly) {
doubleTrainer = true;
} else if (trainerConfigs[trainerType].hasDouble) {
- doubleTrainer = !Utils.randSeedInt(this.getDoubleBattleChance(newWaveIndex, playerField));
+ doubleTrainer = !Utils.randSeedInt(
+ this.getDoubleBattleChance(newWaveIndex, playerField),
+ );
// Add a check that special trainers can't be double except for tate and liza - they should use the normal double chance
- if (trainerConfigs[trainerType].trainerTypeDouble && ![ TrainerType.TATE, TrainerType.LIZA ].includes(trainerType)) {
+ if (
+ trainerConfigs[trainerType].trainerTypeDouble &&
+ ![ TrainerType.TATE, TrainerType.LIZA ].includes(trainerType)
+ ) {
doubleTrainer = false;
}
}
- const variant = doubleTrainer ? TrainerVariant.DOUBLE : (Utils.randSeedInt(2) ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT);
- newTrainer = trainerData !== undefined ? trainerData.toTrainer() : new Trainer(trainerType, variant);
+ const variant = doubleTrainer
+ ? TrainerVariant.DOUBLE
+ : Utils.randSeedInt(2)
+ ? TrainerVariant.FEMALE
+ : TrainerVariant.DEFAULT;
+ newTrainer =
+ trainerData !== undefined
+ ? trainerData.toTrainer()
+ : new Trainer(trainerType, variant);
this.field.add(newTrainer);
}
// Check for mystery encounter
// Can only occur in place of a standard (non-boss) wild battle, waves 10-180
- if (this.isWaveMysteryEncounter(newBattleType, newWaveIndex) || newBattleType === BattleType.MYSTERY_ENCOUNTER) {
+ if (
+ this.isWaveMysteryEncounter(newBattleType, newWaveIndex) ||
+ newBattleType === BattleType.MYSTERY_ENCOUNTER
+ ) {
newBattleType = BattleType.MYSTERY_ENCOUNTER;
// Reset to base spawn weight
- this.mysteryEncounterSaveData.encounterSpawnChance = BASE_MYSTERY_ENCOUNTER_SPAWN_WEIGHT;
+ this.mysteryEncounterSaveData.encounterSpawnChance =
+ BASE_MYSTERY_ENCOUNTER_SPAWN_WEIGHT;
}
}
if (double === undefined && newWaveIndex > 1) {
- if (newBattleType === BattleType.WILD && !this.gameMode.isWaveFinal(newWaveIndex)) {
- newDouble = !Utils.randSeedInt(this.getDoubleBattleChance(newWaveIndex, playerField));
+ if (
+ newBattleType === BattleType.WILD &&
+ !this.gameMode.isWaveFinal(newWaveIndex)
+ ) {
+ newDouble = !Utils.randSeedInt(
+ this.getDoubleBattleChance(newWaveIndex, playerField),
+ );
} else if (newBattleType === BattleType.TRAINER) {
newDouble = newTrainer?.variant === TrainerVariant.DOUBLE;
}
@@ -1300,10 +1653,10 @@ export default class BattleScene extends SceneBase {
doubleOverrideForWave = "single";
break;
case "even-doubles":
- doubleOverrideForWave = (newWaveIndex % 2) ? "single" : "double";
+ doubleOverrideForWave = newWaveIndex % 2 ? "single" : "double";
break;
case "odd-doubles":
- doubleOverrideForWave = (newWaveIndex % 2) ? "double" : "single";
+ doubleOverrideForWave = newWaveIndex % 2 ? "double" : "single";
break;
}
@@ -1314,7 +1667,10 @@ export default class BattleScene extends SceneBase {
* Override battles into single only if not fighting with trainers.
* @see {@link https://github.com/pagefaultgames/pokerogue/issues/1948 | GitHub Issue #1948}
*/
- if (newBattleType !== BattleType.TRAINER && doubleOverrideForWave === "single") {
+ if (
+ newBattleType !== BattleType.TRAINER &&
+ doubleOverrideForWave === "single"
+ ) {
newDouble = false;
}
}
@@ -1332,13 +1688,25 @@ export default class BattleScene extends SceneBase {
}
if (lastBattle?.double && !newDouble) {
- this.tryRemovePhase(p => p instanceof SwitchPhase);
- this.getPlayerField().forEach(p => p.lapseTag(BattlerTagType.COMMANDED));
+ this.tryRemovePhase((p) => p instanceof SwitchPhase);
+ this.getPlayerField().forEach((p) =>
+ p.lapseTag(BattlerTagType.COMMANDED),
+ );
}
- this.executeWithSeedOffset(() => {
- this.currentBattle = new Battle(this.gameMode, newWaveIndex, newBattleType, newTrainer, newDouble);
- }, newWaveIndex << 3, this.waveSeed);
+ this.executeWithSeedOffset(
+ () => {
+ this.currentBattle = new Battle(
+ this.gameMode,
+ newWaveIndex,
+ newBattleType,
+ newTrainer,
+ newDouble,
+ );
+ },
+ newWaveIndex << 3,
+ this.waveSeed,
+ );
this.currentBattle.incrementTurn();
if (newBattleType === BattleType.MYSTERY_ENCOUNTER) {
@@ -1350,20 +1718,33 @@ export default class BattleScene extends SceneBase {
if (!waveIndex && lastBattle) {
const isWaveIndexMultipleOfTen = !(lastBattle.waveIndex % 10);
- const isEndlessOrDaily = this.gameMode.hasShortBiomes || this.gameMode.isDaily;
- const isEndlessFifthWave = this.gameMode.hasShortBiomes && (lastBattle.waveIndex % 5) === 0;
- const isWaveIndexMultipleOfFiftyMinusOne = (lastBattle.waveIndex % 50) === 49;
- const isNewBiome = isWaveIndexMultipleOfTen || isEndlessFifthWave || (isEndlessOrDaily && isWaveIndexMultipleOfFiftyMinusOne);
- const resetArenaState = isNewBiome || [ BattleType.TRAINER, BattleType.MYSTERY_ENCOUNTER ].includes(this.currentBattle.battleType) || this.currentBattle.battleSpec === BattleSpec.FINAL_BOSS;
- this.getEnemyParty().forEach(enemyPokemon => enemyPokemon.destroy());
+ const isEndlessOrDaily =
+ this.gameMode.hasShortBiomes || this.gameMode.isDaily;
+ const isEndlessFifthWave =
+ this.gameMode.hasShortBiomes && lastBattle.waveIndex % 5 === 0;
+ const isWaveIndexMultipleOfFiftyMinusOne =
+ lastBattle.waveIndex % 50 === 49;
+ const isNewBiome =
+ isWaveIndexMultipleOfTen ||
+ isEndlessFifthWave ||
+ (isEndlessOrDaily && isWaveIndexMultipleOfFiftyMinusOne);
+ const resetArenaState =
+ isNewBiome ||
+ [ BattleType.TRAINER, BattleType.MYSTERY_ENCOUNTER ].includes(
+ this.currentBattle.battleType,
+ ) ||
+ this.currentBattle.battleSpec === BattleSpec.FINAL_BOSS;
+ this.getEnemyParty().forEach((enemyPokemon) => enemyPokemon.destroy());
this.trySpreadPokerus();
- if (!isNewBiome && (newWaveIndex % 10) === 5) {
+ if (!isNewBiome && newWaveIndex % 10 === 5) {
this.arena.updatePoolsForTimeOfDay();
}
if (resetArenaState) {
this.arena.resetArenaEffects();
- playerField.forEach((pokemon) => pokemon.lapseTag(BattlerTagType.COMMANDED));
+ playerField.forEach((pokemon) =>
+ pokemon.lapseTag(BattlerTagType.COMMANDED),
+ );
playerField.forEach((pokemon, p) => {
if (pokemon.isOnField()) {
@@ -1375,7 +1756,12 @@ export default class BattleScene extends SceneBase {
pokemon.resetBattleData();
pokemon.resetTera();
applyPostBattleInitAbAttrs(PostBattleInitAbAttr, pokemon);
- if (pokemon.hasSpecies(Species.TERAPAGOS) || (this.gameMode.isClassic && this.currentBattle.waveIndex > 180 && this.currentBattle.waveIndex <= 190)) {
+ if (
+ pokemon.hasSpecies(Species.TERAPAGOS) ||
+ (this.gameMode.isClassic &&
+ this.currentBattle.waveIndex > 180 &&
+ this.currentBattle.waveIndex <= 190)
+ ) {
this.arena.playerTerasUsed = 0;
}
}
@@ -1386,7 +1772,10 @@ export default class BattleScene extends SceneBase {
}
for (const pokemon of this.getPlayerParty()) {
- this.triggerPokemonFormChange(pokemon, SpeciesFormChangeTimeOfDayTrigger);
+ this.triggerPokemonFormChange(
+ pokemon,
+ SpeciesFormChangeTimeOfDayTrigger,
+ );
}
if (!this.gameMode.hasRandomBiomes && !isNewBiome) {
@@ -1409,23 +1798,35 @@ export default class BattleScene extends SceneBase {
this.arena = new Arena(biome, Biome[biome].toLowerCase(), playerFaints);
this.eventTarget.dispatchEvent(new NewArenaEvent());
- this.arenaBg.pipelineData = { terrainColorRatio: this.arena.getBgTerrainColorRatioForBiome() };
+ this.arenaBg.pipelineData = {
+ terrainColorRatio: this.arena.getBgTerrainColorRatioForBiome(),
+ };
return this.arena;
}
updateFieldScale(): Promise {
- return new Promise(resolve => {
- const fieldScale = Math.floor(Math.pow(1 / this.getField(true)
- .map(p => p.getSpriteScale())
- .reduce((highestScale: number, scale: number) => highestScale = Math.max(scale, highestScale), 0), 0.7) * 40
- ) / 40;
+ return new Promise((resolve) => {
+ const fieldScale =
+ Math.floor(
+ Math.pow(
+ 1 /
+ this.getField(true)
+ .map((p) => p.getSpriteScale())
+ .reduce(
+ (highestScale: number, scale: number) =>
+ (highestScale = Math.max(scale, highestScale)),
+ 0,
+ ),
+ 0.7,
+ ) * 40,
+ ) / 40;
this.setFieldScale(fieldScale).then(() => resolve());
});
}
setFieldScale(scale: number, instant: boolean = false): Promise {
- return new Promise(resolve => {
+ return new Promise((resolve) => {
scale *= 6;
if (this.field.scale === scale) {
return resolve();
@@ -1441,19 +1842,80 @@ export default class BattleScene extends SceneBase {
scale: scale,
x: (defaultWidth - scaledWidth) / 2,
y: defaultHeight - scaledHeight,
- duration: !instant ? Utils.fixedInt(Math.abs(this.field.scale - scale) * 200) : 0,
+ duration: !instant
+ ? Utils.fixedInt(Math.abs(this.field.scale - scale) * 200)
+ : 0,
ease: "Sine.easeInOut",
- onComplete: () => resolve()
+ onComplete: () => resolve(),
});
});
}
- getSpeciesFormIndex(species: PokemonSpecies, gender?: Gender, nature?: Nature, ignoreArena?: boolean): number {
+ getSpeciesFormIndex(
+ species: PokemonSpecies,
+ gender?: Gender,
+ nature?: Nature,
+ ignoreArena?: boolean,
+ ): number {
if (!species.forms?.length) {
return 0;
}
- const isEggPhase: boolean = [ "EggLapsePhase", "EggHatchPhase" ].includes(this.getCurrentPhase()?.constructor.name ?? "");
+ const isEggPhase: boolean = [ "EggLapsePhase", "EggHatchPhase" ].includes(
+ this.getCurrentPhase()?.constructor.name ?? "",
+ );
+
+ if ( // Give trainers with specialty types an appropriately-typed form for Wormadam, Rotom, Arceus, Oricorio, Silvally, or Paldean Tauros.
+ !isEggPhase &&
+ this.currentBattle?.battleType === BattleType.TRAINER && !isNullOrUndefined(this.currentBattle.trainer) &&
+ this.currentBattle.trainer.config.hasSpecialtyType()
+ ) {
+ if (species.speciesId === Species.WORMADAM) {
+ switch (this.currentBattle.trainer.config.specialtyType) {
+ case Type.GROUND:
+ return 1; // Sandy Cloak
+ case Type.STEEL:
+ return 2; // Trash Cloak
+ case Type.GRASS:
+ return 0; // Plant Cloak
+ }
+ } else if (species.speciesId === Species.ROTOM) {
+ switch (this.currentBattle.trainer.config.specialtyType) {
+ case Type.FLYING:
+ return 4; // Fan Rotom
+ case Type.GHOST:
+ return 0; // Lightbulb Rotom
+ case Type.FIRE:
+ return 1; // Heat Rotom
+ case Type.GRASS:
+ return 5; // Mow Rotom
+ case Type.WATER:
+ return 2; // Wash Rotom
+ case Type.ICE:
+ return 3; // Frost Rotom
+ }
+ } else if (species.speciesId === Species.ORICORIO) {
+ switch (this.currentBattle.trainer.config.specialtyType) {
+ case Type.GHOST:
+ return 3; // Sensu Style
+ case Type.FIRE:
+ return 0; // Baile Style
+ case Type.ELECTRIC:
+ return 1; // Pom-Pom Style
+ case Type.PSYCHIC:
+ return 2; // Pa'u Style
+ }
+ } else if (species.speciesId === Species.PALDEA_TAUROS) {
+ switch (this.currentBattle.trainer.config.specialtyType) {
+ case Type.FIRE:
+ return 1; // Blaze Breed
+ case Type.WATER:
+ return 2; // Aqua Breed
+ }
+ } else if (species.speciesId === Species.SILVALLY || species.speciesId === Species.ARCEUS) { // Would probably never happen, but might as well
+ return this.currentBattle.trainer.config.specialtyType;
+ }
+ }
switch (species.speciesId) {
case Species.UNOWN:
@@ -1462,8 +1924,6 @@ export default class BattleScene extends SceneBase {
case Species.BASCULIN:
case Species.DEERLING:
case Species.SAWSBUCK:
- case Species.FROAKIE:
- case Species.FROGADIER:
case Species.SCATTERBUG:
case Species.SPEWPA:
case Species.VIVILLON:
@@ -1481,18 +1941,30 @@ export default class BattleScene extends SceneBase {
case Species.PALDEA_TAUROS:
return Utils.randSeedInt(species.forms.length);
case Species.PIKACHU:
- if (this.currentBattle?.battleType === BattleType.TRAINER && this.currentBattle?.waveIndex < 30) {
+ if (
+ this.currentBattle?.battleType === BattleType.TRAINER &&
+ this.currentBattle?.waveIndex < 30
+ ) {
return 0; // Ban Cosplay and Partner Pika from Trainers before wave 30
}
return Utils.randSeedInt(8);
case Species.EEVEE:
- if (this.currentBattle?.battleType === BattleType.TRAINER && this.currentBattle?.waveIndex < 30 && !isEggPhase) {
+ if (
+ this.currentBattle?.battleType === BattleType.TRAINER &&
+ this.currentBattle?.waveIndex < 30 &&
+ !isEggPhase
+ ) {
return 0; // No Partner Eevee for Wave 12 Preschoolers
}
return Utils.randSeedInt(2);
+ case Species.FROAKIE:
+ case Species.FROGADIER:
case Species.GRENINJA:
- if (this.currentBattle?.battleType === BattleType.TRAINER) {
- return 0; // Don't give trainers Battle Bond Greninja
+ if (
+ this.currentBattle?.battleType === BattleType.TRAINER &&
+ !isEggPhase
+ ) {
+ return 0; // Don't give trainers Battle Bond Greninja, Froakie or Frogadier
}
return Utils.randSeedInt(2);
case Species.URSHIFU:
@@ -1509,13 +1981,26 @@ export default class BattleScene extends SceneBase {
case Species.OINKOLOGNE:
return gender === Gender.FEMALE ? 1 : 0;
case Species.TOXTRICITY:
- const lowkeyNatures = [ Nature.LONELY, Nature.BOLD, Nature.RELAXED, Nature.TIMID, Nature.SERIOUS, Nature.MODEST, Nature.MILD, Nature.QUIET, Nature.BASHFUL, Nature.CALM, Nature.GENTLE, Nature.CAREFUL ];
+ const lowkeyNatures = [
+ Nature.LONELY,
+ Nature.BOLD,
+ Nature.RELAXED,
+ Nature.TIMID,
+ Nature.SERIOUS,
+ Nature.MODEST,
+ Nature.MILD,
+ Nature.QUIET,
+ Nature.BASHFUL,
+ Nature.CALM,
+ Nature.GENTLE,
+ Nature.CAREFUL,
+ ];
if (nature !== undefined && lowkeyNatures.indexOf(nature) > -1) {
return 1;
}
return 0;
case Species.GIMMIGHOUL:
- // Chest form can only be found in Mysterious Chest Encounter, if this is a game mode with MEs
+ // Chest form can only be found in Mysterious Chest Encounter, if this is a game mode with MEs
if (this.gameMode.hasMysteryEncounters && !isEggPhase) {
return 1; // Wandering form
} else {
@@ -1539,21 +2024,34 @@ export default class BattleScene extends SceneBase {
private getGeneratedOffsetGym(): boolean {
let ret = false;
- this.executeWithSeedOffset(() => {
- ret = !Utils.randSeedInt(2);
- }, 0, this.seed.toString());
+ this.executeWithSeedOffset(
+ () => {
+ ret = !Utils.randSeedInt(2);
+ },
+ 0,
+ this.seed.toString(),
+ );
return ret;
}
private getGeneratedWaveCycleOffset(): number {
let ret = 0;
- this.executeWithSeedOffset(() => {
- ret = Utils.randSeedInt(8) * 5;
- }, 0, this.seed.toString());
+ this.executeWithSeedOffset(
+ () => {
+ ret = Utils.randSeedInt(8) * 5;
+ },
+ 0,
+ this.seed.toString(),
+ );
return ret;
}
- getEncounterBossSegments(waveIndex: number, level: number, species?: PokemonSpecies, forceBoss: boolean = false): number {
+ getEncounterBossSegments(
+ waveIndex: number,
+ level: number,
+ species?: PokemonSpecies,
+ forceBoss: boolean = false,
+ ): number {
if (Overrides.OPP_HEALTH_SEGMENTS_OVERRIDE > 1) {
return Overrides.OPP_HEALTH_SEGMENTS_OVERRIDE;
} else if (Overrides.OPP_HEALTH_SEGMENTS_OVERRIDE === 1) {
@@ -1566,11 +2064,19 @@ export default class BattleScene extends SceneBase {
}
let isBoss: boolean | undefined;
- if (forceBoss || (species && (species.subLegendary || species.legendary || species.mythical))) {
+ if (
+ forceBoss ||
+ (species &&
+ (species.subLegendary || species.legendary || species.mythical))
+ ) {
isBoss = true;
} else {
this.executeWithSeedOffset(() => {
- isBoss = waveIndex % 10 === 0 || (this.gameMode.hasRandomBosses && Utils.randSeedInt(100) < Math.min(Math.max(Math.ceil((waveIndex - 250) / 50), 0) * 2, 30));
+ isBoss =
+ waveIndex % 10 === 0 ||
+ (this.gameMode.hasRandomBosses &&
+ Utils.randSeedInt(100) <
+ Math.min(Math.max(Math.ceil((waveIndex - 250) / 50), 0) * 2, 30));
}, waveIndex << 2);
}
if (!isBoss) {
@@ -1607,14 +2113,17 @@ export default class BattleScene extends SceneBase {
return;
}
- this.executeWithSeedOffset(() => {
- if (p) {
- spread(p, -1);
- }
- if (p < party.length - 1) {
- spread(p, 1);
- }
- }, this.currentBattle.waveIndex + (p << 8));
+ this.executeWithSeedOffset(
+ () => {
+ if (p) {
+ spread(p, -1);
+ }
+ if (p < party.length - 1) {
+ spread(p, 1);
+ }
+ },
+ this.currentBattle.waveIndex + (p << 8),
+ );
});
}
@@ -1626,7 +2135,11 @@ export default class BattleScene extends SceneBase {
this.rngCounter = 0;
}
- executeWithSeedOffset(func: Function, offset: number, seedOverride?: string): void {
+ executeWithSeedOffset(
+ func: Function,
+ offset: number,
+ seedOverride?: string,
+ ): void {
if (!func) {
return;
}
@@ -1634,7 +2147,9 @@ export default class BattleScene extends SceneBase {
const tempRngOffset = this.rngOffset;
const tempRngSeedOverride = this.rngSeedOverride;
const state = Phaser.Math.RND.state();
- Phaser.Math.RND.sow([ Utils.shiftCharCodes(seedOverride || this.seed, offset) ]);
+ Phaser.Math.RND.sow([
+ Utils.shiftCharCodes(seedOverride || this.seed, offset),
+ ]);
this.rngCounter = 0;
this.rngOffset = offset;
this.rngSeedOverride = seedOverride || "";
@@ -1645,7 +2160,13 @@ export default class BattleScene extends SceneBase {
this.rngSeedOverride = tempRngSeedOverride;
}
- addFieldSprite(x: number, y: number, texture: string | Phaser.Textures.Texture, frame?: string | number, terrainColorRatio: number = 0): Phaser.GameObjects.Sprite {
+ addFieldSprite(
+ x: number,
+ y: number,
+ texture: string | Phaser.Textures.Texture,
+ frame?: string | number,
+ terrainColorRatio: number = 0,
+ ): Phaser.GameObjects.Sprite {
const ret = this.add.sprite(x, y, texture, frame);
ret.setPipeline(this.fieldSpritePipeline);
if (terrainColorRatio) {
@@ -1655,14 +2176,33 @@ export default class BattleScene extends SceneBase {
return ret;
}
- addPokemonSprite(pokemon: Pokemon, x: number, y: number, texture: string | Phaser.Textures.Texture, frame?: string | number, hasShadow: boolean = false, ignoreOverride: boolean = false): Phaser.GameObjects.Sprite {
+ addPokemonSprite(
+ pokemon: Pokemon,
+ x: number,
+ y: number,
+ texture: string | Phaser.Textures.Texture,
+ frame?: string | number,
+ hasShadow: boolean = false,
+ ignoreOverride: boolean = false,
+ ): Phaser.GameObjects.Sprite {
const ret = this.addFieldSprite(x, y, texture, frame);
this.initPokemonSprite(ret, pokemon, hasShadow, ignoreOverride);
return ret;
}
- initPokemonSprite(sprite: Phaser.GameObjects.Sprite, pokemon?: Pokemon, hasShadow: boolean = false, ignoreOverride: boolean = false): Phaser.GameObjects.Sprite {
- sprite.setPipeline(this.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], hasShadow: hasShadow, ignoreOverride: ignoreOverride, teraColor: pokemon ? getTypeRgb(pokemon.getTeraType()) : undefined, isTerastallized: pokemon ? pokemon.isTerastallized : false });
+ initPokemonSprite(
+ sprite: Phaser.GameObjects.Sprite,
+ pokemon?: Pokemon,
+ hasShadow: boolean = false,
+ ignoreOverride: boolean = false,
+ ): Phaser.GameObjects.Sprite {
+ sprite.setPipeline(this.spritePipeline, {
+ tone: [ 0.0, 0.0, 0.0, 0.0 ],
+ hasShadow: hasShadow,
+ ignoreOverride: ignoreOverride,
+ teraColor: pokemon ? getTypeRgb(pokemon.getTeraType()) : undefined,
+ isTerastallized: pokemon ? pokemon.isTerastallized : false,
+ });
this.spriteSparkleHandler.add(sprite);
return sprite;
}
@@ -1675,25 +2215,25 @@ export default class BattleScene extends SceneBase {
}
showFieldOverlay(duration: number): Promise {
- return new Promise(resolve => {
+ return new Promise((resolve) => {
this.tweens.add({
targets: this.fieldOverlay,
alpha: 0.5,
ease: "Sine.easeOut",
duration: duration,
- onComplete: () => resolve()
+ onComplete: () => resolve(),
});
});
}
hideFieldOverlay(duration: number): Promise {
- return new Promise(resolve => {
+ return new Promise((resolve) => {
this.tweens.add({
targets: this.fieldOverlay,
alpha: 0,
duration: duration,
ease: "Cubic.easeIn",
- onComplete: () => resolve()
+ onComplete: () => resolve(),
});
});
}
@@ -1708,26 +2248,26 @@ export default class BattleScene extends SceneBase {
showShopOverlay(duration: number): Promise {
this.shopOverlayShown = true;
- return new Promise(resolve => {
+ return new Promise((resolve) => {
this.tweens.add({
targets: this.shopOverlay,
alpha: this.shopOverlayOpacity,
ease: "Sine.easeOut",
duration,
- onComplete: () => resolve()
+ onComplete: () => resolve(),
});
});
}
hideShopOverlay(duration: number): Promise {
this.shopOverlayShown = false;
- return new Promise(resolve => {
+ return new Promise((resolve) => {
this.tweens.add({
targets: this.shopOverlay,
alpha: 0,
duration: duration,
ease: "Cubic.easeIn",
- onComplete: () => resolve()
+ onComplete: () => resolve(),
});
});
}
@@ -1744,7 +2284,9 @@ export default class BattleScene extends SceneBase {
const isBoss = !(this.currentBattle.waveIndex % 10);
const biomeString: string = getBiomeName(this.arena.biomeType);
this.fieldUI.moveAbove(this.biomeWaveText, this.luckText);
- this.biomeWaveText.setText( biomeString + " - " + this.currentBattle.waveIndex.toString());
+ this.biomeWaveText.setText(
+ biomeString + " - " + this.currentBattle.waveIndex.toString(),
+ );
this.biomeWaveText.setColor(!isBoss ? "#ffffff" : "#f89890");
this.biomeWaveText.setShadowColor(!isBoss ? "#636363" : "#984038");
this.biomeWaveText.setVisible(true);
@@ -1755,7 +2297,9 @@ export default class BattleScene extends SceneBase {
return;
}
const formattedMoney = Utils.formatMoney(this.moneyFormat, this.money);
- this.moneyText.setText(i18next.t("battleScene:moneyOwned", { formattedMoney }));
+ this.moneyText.setText(
+ i18next.t("battleScene:moneyOwned", { formattedMoney }),
+ );
this.fieldUI.moveAbove(this.moneyText, this.luckText);
if (forceVisible) {
this.moneyText.setVisible(true);
@@ -1774,7 +2318,8 @@ export default class BattleScene extends SceneBase {
scale: this.moneyText.scale + deltaScale,
loop: 0,
yoyo: true,
- onComplete: (_) => this.moneyText.setShadowColor(getTextColor(TextStyle.MONEY, true)),
+ onComplete: (_) =>
+ this.moneyText.setShadowColor(getTextColor(TextStyle.MONEY, true)),
});
}
@@ -1789,7 +2334,7 @@ export default class BattleScene extends SceneBase {
*/
updateAndShowText(duration: number): void {
const labels = [ this.luckLabelText, this.luckText ];
- labels.forEach(t => t.setAlpha(0));
+ labels.forEach((t) => t.setAlpha(0));
const luckValue = getPartyLuckValue(this.getPlayerParty());
this.luckText.setText(getLuckString(luckValue));
if (luckValue < 14) {
@@ -1797,14 +2342,16 @@ export default class BattleScene extends SceneBase {
} else {
this.luckText.setTint(0xffef5c, 0x47ff69, 0x6b6bff, 0xff6969);
}
- this.luckLabelText.setX((this.game.canvas.width / 6) - 2 - (this.luckText.displayWidth + 2));
+ this.luckLabelText.setX(
+ this.game.canvas.width / 6 - 2 - (this.luckText.displayWidth + 2),
+ );
this.tweens.add({
targets: labels,
duration: duration,
alpha: 1,
onComplete: () => {
- labels.forEach(t => t.setVisible(true));
- }
+ labels.forEach((t) => t.setVisible(true));
+ },
});
}
@@ -1818,21 +2365,29 @@ export default class BattleScene extends SceneBase {
duration: duration,
alpha: 0,
onComplete: () => {
- labels.forEach(l => l.setVisible(false));
- }
+ labels.forEach((l) => l.setVisible(false));
+ },
});
}
updateUIPositions(): void {
- const enemyModifierCount = this.enemyModifiers.filter(m => m.isIconVisible()).length;
- const biomeWaveTextHeight = this.biomeWaveText.getBottomLeft().y - this.biomeWaveText.getTopLeft().y;
+ const enemyModifierCount = this.enemyModifiers.filter((m) =>
+ m.isIconVisible(),
+ ).length;
+ const biomeWaveTextHeight =
+ this.biomeWaveText.getBottomLeft().y - this.biomeWaveText.getTopLeft().y;
this.biomeWaveText.setY(
- -(this.game.canvas.height / 6) + (enemyModifierCount ? enemyModifierCount <= 12 ? 15 : 24 : 0) + (biomeWaveTextHeight / 2)
+ -(this.game.canvas.height / 6) +
+ (enemyModifierCount ? (enemyModifierCount <= 12 ? 15 : 24) : 0) +
+ biomeWaveTextHeight / 2,
);
this.moneyText.setY(this.biomeWaveText.y + 10);
this.scoreText.setY(this.moneyText.y + 10);
- [ this.luckLabelText, this.luckText ].map(l => l.setY((this.scoreText.visible ? this.scoreText : this.moneyText).y + 10));
- const offsetY = (this.scoreText.visible ? this.scoreText : this.moneyText).y + 15;
+ [ this.luckLabelText, this.luckText ].map((l) =>
+ l.setY((this.scoreText.visible ? this.scoreText : this.moneyText).y + 10),
+ );
+ const offsetY =
+ (this.scoreText.visible ? this.scoreText : this.moneyText).y + 15;
this.partyExpBar.setY(offsetY);
this.candyBar.setY(offsetY + 15);
this.ui?.achvBar.setY(this.game.canvas.height / 6 + offsetY);
@@ -1848,8 +2403,20 @@ export default class BattleScene extends SceneBase {
}
addFaintedEnemyScore(enemy: EnemyPokemon): void {
- let scoreIncrease = enemy.getSpeciesForm().getBaseExp() * (enemy.level / this.getMaxExpLevel()) * ((enemy.ivs.reduce((iv: number, total: number) => total += iv, 0) / 93) * 0.2 + 0.8);
- this.findModifiers(m => m instanceof PokemonHeldItemModifier && m.pokemonId === enemy.id, false).map(m => scoreIncrease *= (m as PokemonHeldItemModifier).getScoreMultiplier());
+ let scoreIncrease =
+ enemy.getSpeciesForm().getBaseExp() *
+ (enemy.level / this.getMaxExpLevel()) *
+ ((enemy.ivs.reduce((iv: number, total: number) => (total += iv), 0) /
+ 93) *
+ 0.2 +
+ 0.8);
+ this.findModifiers(
+ (m) => m instanceof PokemonHeldItemModifier && m.pokemonId === enemy.id,
+ false,
+ ).map(
+ (m) =>
+ (scoreIncrease *= (m as PokemonHeldItemModifier).getScoreMultiplier()),
+ );
if (enemy.isBoss()) {
scoreIncrease *= Math.sqrt(enemy.bossSegments);
}
@@ -1864,35 +2431,68 @@ export default class BattleScene extends SceneBase {
}
const waveIndex = Math.ceil((this.currentBattle?.waveIndex || 1) / 10) * 10;
const difficultyWaveIndex = this.gameMode.getWaveForDifficulty(waveIndex);
- const baseLevel = (1 + difficultyWaveIndex / 2 + Math.pow(difficultyWaveIndex / 25, 2)) * 1.2;
+ const baseLevel =
+ (1 + difficultyWaveIndex / 2 + Math.pow(difficultyWaveIndex / 25, 2)) *
+ 1.2;
return Math.ceil(baseLevel / 2) * 2 + 2;
}
- randomSpecies(waveIndex: number, level: number, fromArenaPool?: boolean, speciesFilter?: PokemonSpeciesFilter, filterAllEvolutions?: boolean): PokemonSpecies {
+ randomSpecies(
+ waveIndex: number,
+ level: number,
+ fromArenaPool?: boolean,
+ speciesFilter?: PokemonSpeciesFilter,
+ filterAllEvolutions?: boolean,
+ ): PokemonSpecies {
if (fromArenaPool) {
- return this.arena.randomSpecies(waveIndex, level, undefined, getPartyLuckValue(this.party));
+ return this.arena.randomSpecies(
+ waveIndex,
+ level,
+ undefined,
+ getPartyLuckValue(this.party),
+ );
}
- const filteredSpecies = speciesFilter ? [ ...new Set(allSpecies.filter(s => s.isCatchable()).filter(speciesFilter).map(s => {
- if (!filterAllEvolutions) {
- while (pokemonPrevolutions.hasOwnProperty(s.speciesId)) {
- s = getPokemonSpecies(pokemonPrevolutions[s.speciesId]);
- }
- }
- return s;
- })) ] : allSpecies.filter(s => s.isCatchable());
+ const filteredSpecies = speciesFilter
+ ? [
+ ...new Set(
+ allSpecies
+ .filter((s) => s.isCatchable())
+ .filter(speciesFilter)
+ .map((s) => {
+ if (!filterAllEvolutions) {
+ while (pokemonPrevolutions.hasOwnProperty(s.speciesId)) {
+ s = getPokemonSpecies(pokemonPrevolutions[s.speciesId]);
+ }
+ }
+ return s;
+ }),
+ ),
+ ]
+ : allSpecies.filter((s) => s.isCatchable());
return filteredSpecies[Utils.randSeedInt(filteredSpecies.length)];
}
generateRandomBiome(waveIndex: number): Biome {
const relWave = waveIndex % 250;
- const biomes = Utils.getEnumValues(Biome).filter(b => b !== Biome.TOWN && b !== Biome.END);
+ const biomes = Utils.getEnumValues(Biome).filter(
+ (b) => b !== Biome.TOWN && b !== Biome.END,
+ );
const maxDepth = biomeDepths[Biome.END][0] - 2;
- const depthWeights = new Array(maxDepth + 1).fill(null)
- .map((_, i: number) => ((1 - Math.min(Math.abs((i / (maxDepth - 1)) - (relWave / 250)) + 0.25, 1)) / 0.75) * 250);
+ const depthWeights = new Array(maxDepth + 1)
+ .fill(null)
+ .map(
+ (_, i: number) =>
+ ((1 -
+ Math.min(Math.abs(i / (maxDepth - 1) - relWave / 250) + 0.25, 1)) /
+ 0.75) *
+ 250,
+ );
const biomeThresholds: number[] = [];
let totalWeight = 0;
for (const biome of biomes) {
- totalWeight += Math.ceil(depthWeights[biomeDepths[biome][0] - 1] / biomeDepths[biome][1]);
+ totalWeight += Math.ceil(
+ depthWeights[biomeDepths[biome][0] - 1] / biomeDepths[biome][1],
+ );
biomeThresholds.push(totalWeight);
}
@@ -1918,7 +2518,7 @@ export default class BattleScene extends SceneBase {
if (this.bgm && bgmName === this.bgm.key) {
if (!this.bgm.isPlaying) {
this.bgm.play({
- volume: this.masterVolume * this.bgmVolume
+ volume: this.masterVolume * this.bgmVolume,
});
}
return;
@@ -1929,15 +2529,16 @@ export default class BattleScene extends SceneBase {
this.bgmCache.add(bgmName);
this.loadBgm(bgmName);
let loopPoint = 0;
- loopPoint = bgmName === this.arena.bgm
- ? this.arena.getBgmLoopPoint()
- : this.getBgmLoopPoint(bgmName);
+ loopPoint =
+ bgmName === this.arena.bgm
+ ? this.arena.getBgmLoopPoint()
+ : this.getBgmLoopPoint(bgmName);
let loaded = false;
const playNewBgm = () => {
this.ui.bgmBar.setBgmToBgmBar(bgmName);
if (bgmName === null && this.bgm && !this.bgm.pendingRemove) {
this.bgm.play({
- volume: this.masterVolume * this.bgmVolume
+ volume: this.masterVolume * this.bgmVolume,
});
return;
}
@@ -1946,7 +2547,7 @@ export default class BattleScene extends SceneBase {
}
this.bgm = this.sound.add(bgmName, { loop: true });
this.bgm.play({
- volume: this.masterVolume * this.bgmVolume
+ volume: this.masterVolume * this.bgmVolume,
});
if (loopPoint) {
this.bgm.on("looped", () => this.bgm.play({ seek: loopPoint }));
@@ -1995,7 +2596,6 @@ export default class BattleScene extends SceneBase {
} else {
const soundDetails = sound.key.split("/");
switch (soundDetails[0]) {
-
case "battle_anims":
case "cry":
if (soundDetails[1].startsWith("PRSFX- ")) {
@@ -2017,7 +2617,9 @@ export default class BattleScene extends SceneBase {
if (!this.bgm) {
return false;
}
- const bgm = this.sound.getAllPlaying().find(bgm => bgm.key === this.bgm.key);
+ const bgm = this.sound
+ .getAllPlaying()
+ .find((bgm) => bgm.key === this.bgm.key);
if (bgm) {
SoundFade.fadeOut(this, this.bgm, duration, destroy);
return true;
@@ -2032,7 +2634,11 @@ export default class BattleScene extends SceneBase {
* @param destroy
* @param delay
*/
- fadeAndSwitchBgm(newBgmKey: string, destroy: boolean = false, delay: number = 2000) {
+ fadeAndSwitchBgm(
+ newBgmKey: string,
+ destroy: boolean = false,
+ delay: number = 2000,
+ ) {
this.fadeOutBgm(delay, destroy);
this.time.delayedCall(delay, () => {
this.playBgm(newBgmKey);
@@ -2052,24 +2658,24 @@ export default class BattleScene extends SceneBase {
case "heal":
case "evolution":
case "evolution_fanfare":
- // These sounds are loaded in as BGM, but played as sound effects
- // When these sounds are updated in updateVolume(), they are treated as BGM however because they are placed in the BGM Cache through being called by playSoundWithoutBGM()
- config["volume"] *= (this.masterVolume * this.bgmVolume);
+ // These sounds are loaded in as BGM, but played as sound effects
+ // When these sounds are updated in updateVolume(), they are treated as BGM however because they are placed in the BGM Cache through being called by playSoundWithoutBGM()
+ config["volume"] *= this.masterVolume * this.bgmVolume;
break;
case "battle_anims":
case "cry":
- config["volume"] *= (this.masterVolume * this.fieldVolume);
+ config["volume"] *= this.masterVolume * this.fieldVolume;
//PRSFX sound files are unusually loud
if (keyDetails[1].startsWith("PRSFX- ")) {
config["volume"] *= 0.5;
}
break;
case "ui":
- //As of, right now this applies to the "select", "menu_open", "error" sound effects
- config["volume"] *= (this.masterVolume * this.uiVolume);
+ //As of, right now this applies to the "select", "menu_open", "error" sound effects
+ config["volume"] *= this.masterVolume * this.uiVolume;
break;
case "se":
- config["volume"] *= (this.masterVolume * this.seVolume);
+ config["volume"] *= this.masterVolume * this.seVolume;
break;
}
this.sound.play(key, config);
@@ -2089,10 +2695,13 @@ export default class BattleScene extends SceneBase {
this.bgmResumeTimer.destroy();
}
if (resumeBgm) {
- this.bgmResumeTimer = this.time.delayedCall((pauseDuration || Utils.fixedInt(sound.totalDuration * 1000)), () => {
- this.resumeBgm();
- this.bgmResumeTimer = null;
- });
+ this.bgmResumeTimer = this.time.delayedCall(
+ pauseDuration || Utils.fixedInt(sound.totalDuration * 1000),
+ () => {
+ this.resumeBgm();
+ this.bgmResumeTimer = null;
+ },
+ );
}
return sound;
}
@@ -2101,9 +2710,9 @@ export default class BattleScene extends SceneBase {
getBgmLoopPoint(bgmName: string): number {
switch (bgmName) {
case "title": //Firel PokéRogue Title
- return 46.500;
+ return 46.5;
case "battle_kanto_champion": //B2W2 Kanto Champion Battle
- return 13.950;
+ return 13.95;
case "battle_johto_champion": //B2W2 Johto Champion Battle
return 23.498;
case "battle_hoenn_champion_g5": //B2W2 Hoenn Champion Battle
@@ -2117,7 +2726,7 @@ export default class BattleScene extends SceneBase {
case "battle_champion_iris": //B2W2 Unova Champion Battle
return 10.145;
case "battle_kalos_champion": //XY Kalos Champion Battle
- return 10.380;
+ return 10.38;
case "battle_champion_kukui": //SM Kukui Battle
return 15.784;
case "battle_alola_champion": //USUM Alola Champion Battle
@@ -2133,17 +2742,17 @@ export default class BattleScene extends SceneBase {
case "battle_champion_kieran": //SV Champion Kieran Battle
return 7.206;
case "battle_hoenn_elite": //ORAS Elite Four Battle
- return 11.350;
+ return 11.35;
case "battle_unova_elite": //BW Elite Four Battle
- return 17.730;
+ return 17.73;
case "battle_kalos_elite": //XY Elite Four Battle
- return 12.340;
+ return 12.34;
case "battle_alola_elite": //SM Elite Four Battle
return 19.212;
case "battle_galar_elite": //SWSH League Tournament Battle
return 164.069;
case "battle_paldea_elite": //SV Elite Four Battle
- return 12.770;
+ return 12.77;
case "battle_bb_elite": //SV BB League Elite Four Battle
return 19.434;
case "battle_final_encounter": //PMD RTDX Rayquaza's Domain
@@ -2161,7 +2770,7 @@ export default class BattleScene extends SceneBase {
case "battle_unova_gym": //BW Unova Gym Battle
return 19.145;
case "battle_kalos_gym": //XY Kalos Gym Battle
- return 44.810;
+ return 44.81;
case "battle_galar_gym": //SWSH Galar Gym Battle
return 171.262;
case "battle_paldea_gym": //SV Paldea Gym Battle
@@ -2175,13 +2784,13 @@ export default class BattleScene extends SceneBase {
case "battle_legendary_suicune": //HGSS Suicune Battle
return 12.636;
case "battle_legendary_lugia": //HGSS Lugia Battle
- return 19.770;
+ return 19.77;
case "battle_legendary_ho_oh": //HGSS Ho-oh Battle
return 17.668;
case "battle_legendary_regis_g5": //B2W2 Legendary Titan Battle
- return 49.500;
+ return 49.5;
case "battle_legendary_regis_g6": //ORAS Legendary Titan Battle
- return 21.130;
+ return 21.13;
case "battle_legendary_gro_kyo": //ORAS Groudon & Kyogre Battle
return 10.547;
case "battle_legendary_rayquaza": //ORAS Rayquaza Battle
@@ -2191,7 +2800,7 @@ export default class BattleScene extends SceneBase {
case "battle_legendary_lake_trio": //ORAS Lake Guardians Battle
return 16.887;
case "battle_legendary_sinnoh": //ORAS Sinnoh Legendary Battle
- return 22.770;
+ return 22.77;
case "battle_legendary_dia_pal": //ORAS Dialga & Palkia Battle
return 16.009;
case "battle_legendary_origin_forme": //LA Origin Dialga & Palkia Battle
@@ -2209,7 +2818,7 @@ export default class BattleScene extends SceneBase {
case "battle_legendary_xern_yvel": //XY Xerneas & Yveltal Battle
return 26.468;
case "battle_legendary_tapu": //SM Tapu Battle
- return 0.000;
+ return 0.0;
case "battle_legendary_sol_lun": //SM Solgaleo & Lunala Battle
return 6.525;
case "battle_legendary_ub": //SM Ultra Beast Battle
@@ -2233,7 +2842,7 @@ export default class BattleScene extends SceneBase {
case "battle_legendary_kor_mir": //SV Depths of Area Zero Battle
return 6.442;
case "battle_legendary_loyal_three": //SV Loyal Three Battle
- return 6.500;
+ return 6.5;
case "battle_legendary_ogerpon": //SV Ogerpon Battle
return 14.335;
case "battle_legendary_terapagos": //SV Terapagos Battle
@@ -2241,7 +2850,7 @@ export default class BattleScene extends SceneBase {
case "battle_legendary_pecharunt": //SV Pecharunt Battle
return 6.508;
case "battle_rival": //BW Rival Battle
- return 14.110;
+ return 14.11;
case "battle_rival_2": //BW N Battle
return 17.714;
case "battle_rival_3": //BW Final N Battle
@@ -2251,7 +2860,7 @@ export default class BattleScene extends SceneBase {
case "battle_wild": //BW Wild Battle
return 12.703;
case "battle_wild_strong": //BW Strong Wild Battle
- return 13.940;
+ return 13.94;
case "end_summit": //PMD RTDX Sky Tower Summit
return 30.025;
case "battle_rocket_grunt": //HGSS Team Rocket Battle
@@ -2265,7 +2874,7 @@ export default class BattleScene extends SceneBase {
case "battle_flare_grunt": //XY Team Flare Battle
return 4.228;
case "battle_aether_grunt": // SM Aether Foundation Battle
- return 16.00;
+ return 16.0;
case "battle_skull_grunt": // SM Team Skull Battle
return 20.87;
case "battle_macro_grunt": // SWSH Trainer Battle
@@ -2279,7 +2888,7 @@ export default class BattleScene extends SceneBase {
case "battle_skull_admin": //SM Team Skull Admin Battle
return 15.463;
case "battle_oleana": //SWSH Oleana Battle
- return 14.110;
+ return 14.11;
case "battle_star_admin": //SV Team Star Boss Battle
return 9.493;
case "battle_rocket_boss": //USUM Giovanni Battle
@@ -2332,7 +2941,6 @@ export default class BattleScene extends SceneBase {
return this.standbyPhase;
}
-
/**
* Adds a phase to the conditional queue and ensures it is executed only when the specified condition is met.
*
@@ -2364,7 +2972,11 @@ export default class BattleScene extends SceneBase {
if (this.phaseQueuePrependSpliceIndex === -1) {
this.phaseQueuePrepend.push(...phases);
} else {
- this.phaseQueuePrepend.splice(this.phaseQueuePrependSpliceIndex, 0, ...phases);
+ this.phaseQueuePrepend.splice(
+ this.phaseQueuePrependSpliceIndex,
+ 0,
+ ...phases,
+ );
}
}
@@ -2437,7 +3049,10 @@ export default class BattleScene extends SceneBase {
}
if (this.currentPhase) {
- console.log(`%cStart Phase ${this.currentPhase.constructor.name}`, "color:green;");
+ console.log(
+ `%cStart Phase ${this.currentPhase.constructor.name}`,
+ "color:green;",
+ );
this.currentPhase.start();
}
}
@@ -2461,11 +3076,16 @@ export default class BattleScene extends SceneBase {
* @param phaseFilter filter function to use to find the wanted phase
* @returns the found phase or undefined if none found
*/
- findPhase(phaseFilter: (phase: P) => boolean): P | undefined {
+ findPhase
(
+ phaseFilter: (phase: P) => boolean,
+ ): P | undefined {
return this.phaseQueue.find(phaseFilter) as P;
}
- tryReplacePhase(phaseFilter: (phase: Phase) => boolean, phase: Phase): boolean {
+ tryReplacePhase(
+ phaseFilter: (phase: Phase) => boolean,
+ phase: Phase,
+ ): boolean {
const phaseIndex = this.phaseQueue.findIndex(phaseFilter);
if (phaseIndex > -1) {
this.phaseQueue[phaseIndex] = phase;
@@ -2502,11 +3122,16 @@ export default class BattleScene extends SceneBase {
* @param targetPhase {@linkcode Phase} the type of phase to search for in phaseQueue
* @returns boolean if a targetPhase was found and added
*/
- prependToPhase(phase: Phase | Phase [], targetPhase: Constructor): boolean {
+ prependToPhase(
+ phase: Phase | Phase[],
+ targetPhase: Constructor,
+ ): boolean {
if (!Array.isArray(phase)) {
phase = [ phase ];
}
- const targetIndex = this.phaseQueue.findIndex(ph => ph instanceof targetPhase);
+ const targetIndex = this.phaseQueue.findIndex(
+ (ph) => ph instanceof targetPhase,
+ );
if (targetIndex !== -1) {
this.phaseQueue.splice(targetIndex, 0, ...phase);
@@ -2523,11 +3148,16 @@ export default class BattleScene extends SceneBase {
* @param targetPhase {@linkcode Phase} the type of phase to search for in {@linkcode phaseQueue}
* @returns `true` if a `targetPhase` was found to append to
*/
- appendToPhase(phase: Phase | Phase[], targetPhase: Constructor): boolean {
+ appendToPhase(
+ phase: Phase | Phase[],
+ targetPhase: Constructor,
+ ): boolean {
if (!Array.isArray(phase)) {
phase = [ phase ];
}
- const targetIndex = this.phaseQueue.findIndex(ph => ph instanceof targetPhase);
+ const targetIndex = this.phaseQueue.findIndex(
+ (ph) => ph instanceof targetPhase,
+ );
if (targetIndex !== -1 && this.phaseQueue.length > targetIndex) {
this.phaseQueue.splice(targetIndex + 1, 0, ...phase);
@@ -2546,7 +3176,13 @@ export default class BattleScene extends SceneBase {
* @param promptDelay optional param for MessagePhase constructor
* @param defer boolean for which queue to add it to, false -> add to PhaseQueuePrepend, true -> nextCommandPhaseQueue
*/
- queueMessage(message: string, callbackDelay?: number | null, prompt?: boolean | null, promptDelay?: number | null, defer?: boolean | null) {
+ queueMessage(
+ message: string,
+ callbackDelay?: number | null,
+ prompt?: boolean | null,
+ promptDelay?: number | null,
+ defer?: boolean | null,
+ ) {
const phase = new MessagePhase(message, callbackDelay, prompt, promptDelay);
if (!defer) {
// adds to the end of PhaseQueuePrepend
@@ -2578,98 +3214,126 @@ export default class BattleScene extends SceneBase {
getWaveMoneyAmount(moneyMultiplier: number): number {
const waveIndex = this.currentBattle.waveIndex;
const waveSetIndex = Math.ceil(waveIndex / 10) - 1;
- const moneyValue = Math.pow((waveSetIndex + 1 + (0.75 + (((waveIndex - 1) % 10) + 1) / 10)) * 100, 1 + 0.005 * waveSetIndex) * moneyMultiplier;
+ const moneyValue =
+ Math.pow(
+ (waveSetIndex + 1 + (0.75 + (((waveIndex - 1) % 10) + 1) / 10)) * 100,
+ 1 + 0.005 * waveSetIndex,
+ ) * moneyMultiplier;
return Math.floor(moneyValue / 10) * 10;
}
- addModifier(modifier: Modifier | null, ignoreUpdate?: boolean, playSound?: boolean, virtual?: boolean, instant?: boolean, cost?: number): Promise {
+ addModifier(
+ modifier: Modifier | null,
+ ignoreUpdate?: boolean,
+ playSound?: boolean,
+ virtual?: boolean,
+ instant?: boolean,
+ cost?: number,
+ ): boolean {
if (!modifier) {
- return Promise.resolve(false);
+ return false;
}
- return new Promise(resolve => {
- let success = false;
- const soundName = modifier.type.soundName;
- this.validateAchvs(ModifierAchv, modifier);
- const modifiersToRemove: PersistentModifier[] = [];
- const modifierPromises: Promise[] = [];
- if (modifier instanceof PersistentModifier) {
- if ((modifier as PersistentModifier).add(this.modifiers, !!virtual)) {
- if (modifier instanceof PokemonFormChangeItemModifier) {
- const pokemon = this.getPokemonById(modifier.pokemonId);
- if (pokemon) {
- success = modifier.apply(pokemon, true);
- }
+ let success = false;
+ const soundName = modifier.type.soundName;
+ this.validateAchvs(ModifierAchv, modifier);
+ const modifiersToRemove: PersistentModifier[] = [];
+ if (modifier instanceof PersistentModifier) {
+ if ((modifier as PersistentModifier).add(this.modifiers, !!virtual)) {
+ if (modifier instanceof PokemonFormChangeItemModifier) {
+ const pokemon = this.getPokemonById(modifier.pokemonId);
+ if (pokemon) {
+ success = modifier.apply(pokemon, true);
}
- if (playSound && !this.sound.get(soundName)) {
- this.playSound(soundName);
- }
- } else if (!virtual) {
- const defaultModifierType = getDefaultModifierTypeForTier(modifier.type.tier);
- this.queueMessage(i18next.t("battle:itemStackFull", { fullItemName: modifier.type.name, itemName: defaultModifierType.name }), undefined, false, 3000);
- return this.addModifier(defaultModifierType.newModifier(), ignoreUpdate, playSound, false, instant).then(success => resolve(success));
}
-
- for (const rm of modifiersToRemove) {
- this.removeModifier(rm);
- }
-
- if (!ignoreUpdate && !virtual) {
- return this.updateModifiers(true, instant).then(() => resolve(success));
- }
- } else if (modifier instanceof ConsumableModifier) {
if (playSound && !this.sound.get(soundName)) {
this.playSound(soundName);
}
-
- if (modifier instanceof ConsumablePokemonModifier) {
- for (const p in this.party) {
- const pokemon = this.party[p];
-
- const args: unknown[] = [];
- if (modifier instanceof PokemonHpRestoreModifier) {
- if (!(modifier as PokemonHpRestoreModifier).fainted) {
- const hpRestoreMultiplier = new Utils.NumberHolder(1);
- this.applyModifiers(HealingBoosterModifier, true, hpRestoreMultiplier);
- args.push(hpRestoreMultiplier.value);
- } else {
- args.push(1);
- }
- } else if (modifier instanceof FusePokemonModifier) {
- args.push(this.getPokemonById(modifier.fusePokemonId) as PlayerPokemon);
- } else if (modifier instanceof RememberMoveModifier && !Utils.isNullOrUndefined(cost)) {
- args.push(cost);
- }
-
- if (modifier.shouldApply(pokemon, ...args)) {
- const result = modifier.apply(pokemon, ...args);
- if (result instanceof Promise) {
- modifierPromises.push(result.then(s => success ||= s));
- } else {
- success ||= result;
- }
- }
- }
-
- return Promise.allSettled([ this.party.map(p => p.updateInfo(instant)), ...modifierPromises ]).then(() => resolve(success));
- } else {
- const args = [ this ];
- if (modifier.shouldApply(...args)) {
- const result = modifier.apply(...args);
- if (result instanceof Promise) {
- return result.then(success => resolve(success));
- } else {
- success ||= result;
- }
- }
- }
+ } else if (!virtual) {
+ const defaultModifierType = getDefaultModifierTypeForTier(
+ modifier.type.tier,
+ );
+ this.queueMessage(
+ i18next.t("battle:itemStackFull", {
+ fullItemName: modifier.type.name,
+ itemName: defaultModifierType.name,
+ }),
+ undefined,
+ false,
+ 3000,
+ );
+ return this.addModifier(
+ defaultModifierType.newModifier(),
+ ignoreUpdate,
+ playSound,
+ false,
+ instant,
+ );
}
- resolve(success);
- });
+ for (const rm of modifiersToRemove) {
+ this.removeModifier(rm);
+ }
+
+ if (!ignoreUpdate && !virtual) {
+ this.updateModifiers(true, instant);
+ }
+ } else if (modifier instanceof ConsumableModifier) {
+ if (playSound && !this.sound.get(soundName)) {
+ this.playSound(soundName);
+ }
+
+ if (modifier instanceof ConsumablePokemonModifier) {
+ for (const p in this.party) {
+ const pokemon = this.party[p];
+
+ const args: unknown[] = [];
+ if (modifier instanceof PokemonHpRestoreModifier) {
+ if (!(modifier as PokemonHpRestoreModifier).fainted) {
+ const hpRestoreMultiplier = new Utils.NumberHolder(1);
+ this.applyModifiers(
+ HealingBoosterModifier,
+ true,
+ hpRestoreMultiplier,
+ );
+ args.push(hpRestoreMultiplier.value);
+ } else {
+ args.push(1);
+ }
+ } else if (modifier instanceof FusePokemonModifier) {
+ args.push(
+ this.getPokemonById(modifier.fusePokemonId) as PlayerPokemon,
+ );
+ } else if (
+ modifier instanceof RememberMoveModifier &&
+ !Utils.isNullOrUndefined(cost)
+ ) {
+ args.push(cost);
+ }
+
+ if (modifier.shouldApply(pokemon, ...args)) {
+ const result = modifier.apply(pokemon, ...args);
+ success ||= result;
+ }
+ }
+
+ this.party.map((p) => p.updateInfo(instant));
+ } else {
+ const args = [ this ];
+ if (modifier.shouldApply(...args)) {
+ const result = modifier.apply(...args);
+ success ||= result;
+ }
+ }
+ }
+ return success;
}
- addEnemyModifier(modifier: PersistentModifier, ignoreUpdate?: boolean, instant?: boolean): Promise {
- return new Promise(resolve => {
+ addEnemyModifier(
+ modifier: PersistentModifier,
+ ignoreUpdate?: boolean,
+ instant?: boolean,
+ ): Promise {
+ return new Promise((resolve) => {
const modifiersToRemove: PersistentModifier[] = [];
if ((modifier as PersistentModifier).add(this.enemyModifiers, false)) {
if (modifier instanceof PokemonFormChangeItemModifier) {
@@ -2683,7 +3347,8 @@ export default class BattleScene extends SceneBase {
}
}
if (!ignoreUpdate) {
- this.updateModifiers(false, instant).then(() => resolve());
+ this.updateModifiers(false, instant);
+ resolve();
} else {
resolve();
}
@@ -2704,86 +3369,128 @@ export default class BattleScene extends SceneBase {
* @param itemLost If `true`, treat the item's current holder as losing the item (for now, this simply enables Unburden). Default is `true`.
* @returns `true` if the transfer was successful
*/
- tryTransferHeldItemModifier(itemModifier: PokemonHeldItemModifier, target: Pokemon, playSound: boolean, transferQuantity: number = 1, instant?: boolean, ignoreUpdate?: boolean, itemLost: boolean = true): Promise {
- return new Promise(resolve => {
- const source = itemModifier.pokemonId ? itemModifier.getPokemon() : null;
- const cancelled = new Utils.BooleanHolder(false);
- Utils.executeIf(!!source && source.isPlayer() !== target.isPlayer(), () => applyAbAttrs(BlockItemTheftAbAttr, source! /* checked in condition*/, cancelled)).then(() => {
- if (cancelled.value) {
- return resolve(false);
- }
- const newItemModifier = itemModifier.clone() as PokemonHeldItemModifier;
- newItemModifier.pokemonId = target.id;
- const matchingModifier = this.findModifier(m => m instanceof PokemonHeldItemModifier
- && (m as PokemonHeldItemModifier).matchType(itemModifier) && m.pokemonId === target.id, target.isPlayer()) as PokemonHeldItemModifier;
- let removeOld = true;
- if (matchingModifier) {
- const maxStackCount = matchingModifier.getMaxStackCount();
- if (matchingModifier.stackCount >= maxStackCount) {
- return resolve(false);
- }
- const countTaken = Math.min(transferQuantity, itemModifier.stackCount, maxStackCount - matchingModifier.stackCount);
- itemModifier.stackCount -= countTaken;
- newItemModifier.stackCount = matchingModifier.stackCount + countTaken;
- removeOld = !itemModifier.stackCount;
- } else {
- const countTaken = Math.min(transferQuantity, itemModifier.stackCount);
- itemModifier.stackCount -= countTaken;
- newItemModifier.stackCount = countTaken;
- }
- removeOld = !itemModifier.stackCount;
- if (!removeOld || !source || this.removeModifier(itemModifier, !source.isPlayer())) {
- const addModifier = () => {
- if (!matchingModifier || this.removeModifier(matchingModifier, !target.isPlayer())) {
- if (target.isPlayer()) {
- this.addModifier(newItemModifier, ignoreUpdate, playSound, false, instant).then(() => {
- if (source && itemLost) {
- applyPostItemLostAbAttrs(PostItemLostAbAttr, source, false);
- }
- resolve(true);
- });
- } else {
- this.addEnemyModifier(newItemModifier, ignoreUpdate, instant).then(() => {
- if (source && itemLost) {
- applyPostItemLostAbAttrs(PostItemLostAbAttr, source, false);
- }
- resolve(true);
- });
- }
- } else {
- resolve(false);
+ tryTransferHeldItemModifier(
+ itemModifier: PokemonHeldItemModifier,
+ target: Pokemon,
+ playSound: boolean,
+ transferQuantity: number = 1,
+ instant?: boolean,
+ ignoreUpdate?: boolean,
+ itemLost: boolean = true,
+ ): boolean {
+ const source = itemModifier.pokemonId ? itemModifier.getPokemon() : null;
+ const cancelled = new Utils.BooleanHolder(false);
+
+ if (source && source.isPlayer() !== target.isPlayer()) {
+ applyAbAttrs(BlockItemTheftAbAttr, source, cancelled);
+ }
+
+ if (cancelled.value) {
+ return false;
+ }
+
+ const newItemModifier = itemModifier.clone() as PokemonHeldItemModifier;
+ newItemModifier.pokemonId = target.id;
+ const matchingModifier = this.findModifier(
+ (m) =>
+ m instanceof PokemonHeldItemModifier &&
+ m.matchType(itemModifier) &&
+ m.pokemonId === target.id,
+ target.isPlayer(),
+ ) as PokemonHeldItemModifier;
+
+ if (matchingModifier) {
+ const maxStackCount = matchingModifier.getMaxStackCount();
+ if (matchingModifier.stackCount >= maxStackCount) {
+ return false;
+ }
+ const countTaken = Math.min(
+ transferQuantity,
+ itemModifier.stackCount,
+ maxStackCount - matchingModifier.stackCount,
+ );
+ itemModifier.stackCount -= countTaken;
+ newItemModifier.stackCount = matchingModifier.stackCount + countTaken;
+ } else {
+ const countTaken = Math.min(transferQuantity, itemModifier.stackCount);
+ itemModifier.stackCount -= countTaken;
+ newItemModifier.stackCount = countTaken;
+ }
+
+ const removeOld = itemModifier.stackCount === 0;
+
+ if (
+ !removeOld ||
+ !source ||
+ this.removeModifier(itemModifier, !source.isPlayer())
+ ) {
+ const addModifier = () => {
+ if (
+ !matchingModifier ||
+ this.removeModifier(matchingModifier, !target.isPlayer())
+ ) {
+ if (target.isPlayer()) {
+ this.addModifier(
+ newItemModifier,
+ ignoreUpdate,
+ playSound,
+ false,
+ instant,
+ );
+ if (source && itemLost) {
+ applyPostItemLostAbAttrs(PostItemLostAbAttr, source, false);
}
- };
- if (source && source.isPlayer() !== target.isPlayer() && !ignoreUpdate) {
- this.updateModifiers(source.isPlayer(), instant).then(() => addModifier());
+ return true;
} else {
- addModifier();
+ this.addEnemyModifier(newItemModifier, ignoreUpdate, instant);
+ if (source && itemLost) {
+ applyPostItemLostAbAttrs(PostItemLostAbAttr, source, false);
+ }
+ return true;
}
- return;
}
- resolve(false);
- });
- });
+ return false;
+ };
+ if (source && source.isPlayer() !== target.isPlayer() && !ignoreUpdate) {
+ this.updateModifiers(source.isPlayer(), instant);
+ addModifier();
+ } else {
+ addModifier();
+ }
+ return true;
+ }
+ return false;
}
removePartyMemberModifiers(partyMemberIndex: number): Promise {
- return new Promise(resolve => {
+ return new Promise((resolve) => {
const pokemonId = this.getPlayerParty()[partyMemberIndex].id;
- const modifiersToRemove = this.modifiers.filter(m => m instanceof PokemonHeldItemModifier && (m as PokemonHeldItemModifier).pokemonId === pokemonId);
+ const modifiersToRemove = this.modifiers.filter(
+ (m) =>
+ m instanceof PokemonHeldItemModifier &&
+ (m as PokemonHeldItemModifier).pokemonId === pokemonId,
+ );
for (const m of modifiersToRemove) {
this.modifiers.splice(this.modifiers.indexOf(m), 1);
}
- this.updateModifiers().then(() => resolve());
+ this.updateModifiers();
+ resolve();
});
}
- generateEnemyModifiers(heldModifiersConfigs?: HeldModifierConfig[][]): Promise {
- return new Promise(resolve => {
+ generateEnemyModifiers(
+ heldModifiersConfigs?: HeldModifierConfig[][],
+ ): Promise {
+ return new Promise((resolve) => {
if (this.currentBattle.battleSpec === BattleSpec.FINAL_BOSS) {
return resolve();
}
- const difficultyWaveIndex = this.gameMode.getWaveForDifficulty(this.currentBattle.waveIndex);
- const isFinalBoss = this.gameMode.isWaveFinal(this.currentBattle.waveIndex);
+ const difficultyWaveIndex = this.gameMode.getWaveForDifficulty(
+ this.currentBattle.waveIndex,
+ );
+ const isFinalBoss = this.gameMode.isWaveFinal(
+ this.currentBattle.waveIndex,
+ );
let chances = Math.ceil(difficultyWaveIndex / 10);
if (isFinalBoss) {
chances = Math.ceil(chances * 2.5);
@@ -2796,13 +3503,15 @@ export default class BattleScene extends SceneBase {
for (const modifier of modifiers) {
this.addEnemyModifier(modifier, true, true);
}
-
- this.currentBattle.trainer.genAI(party);
}
party.forEach((enemyPokemon: EnemyPokemon, i: number) => {
- if (heldModifiersConfigs && i < heldModifiersConfigs.length && heldModifiersConfigs[i]) {
- heldModifiersConfigs[i].forEach(mt => {
+ if (
+ heldModifiersConfigs &&
+ i < heldModifiersConfigs.length &&
+ heldModifiersConfigs[i]
+ ) {
+ heldModifiersConfigs[i].forEach((mt) => {
let modifier: PokemonHeldItemModifier;
if (mt.modifier instanceof PokemonHeldItemModifierType) {
modifier = mt.modifier.newModifier(enemyPokemon);
@@ -2811,11 +3520,15 @@ export default class BattleScene extends SceneBase {
modifier.pokemonId = enemyPokemon.id;
}
modifier.stackCount = mt.stackCount ?? 1;
- modifier.isTransferable = mt.isTransferable ?? modifier.isTransferable;
+ modifier.isTransferable =
+ mt.isTransferable ?? modifier.isTransferable;
this.addEnemyModifier(modifier, true);
});
} else {
- const isBoss = enemyPokemon.isBoss() || (this.currentBattle.battleType === BattleType.TRAINER && !!this.currentBattle.trainer?.config.isBoss);
+ const isBoss =
+ enemyPokemon.isBoss() ||
+ (this.currentBattle.battleType === BattleType.TRAINER &&
+ !!this.currentBattle.trainer?.config.isBoss);
let upgradeChance = 32;
if (isBoss) {
upgradeChance /= 2;
@@ -2823,96 +3536,115 @@ export default class BattleScene extends SceneBase {
if (isFinalBoss) {
upgradeChance /= 8;
}
- const modifierChance = this.gameMode.getEnemyModifierChance(isBoss);
- let pokemonModifierChance = modifierChance;
- if (this.currentBattle.battleType === BattleType.TRAINER && this.currentBattle.trainer)
- pokemonModifierChance = Math.ceil(pokemonModifierChance * this.currentBattle.trainer.getPartyMemberModifierChanceMultiplier(i)); // eslint-disable-line
let count = 0;
for (let c = 0; c < chances; c++) {
- if (!Utils.randSeedInt(modifierChance)) {
+ if (!Utils.randSeedInt(this.gameMode.getEnemyModifierChance(isBoss))) {
count++;
}
}
if (isBoss) {
count = Math.max(count, Math.floor(chances / 2));
}
- getEnemyModifierTypesForWave(difficultyWaveIndex, count, [ enemyPokemon ], this.currentBattle.battleType === BattleType.TRAINER ? ModifierPoolType.TRAINER : ModifierPoolType.WILD, upgradeChance)
- .map(mt => mt.newModifier(enemyPokemon).add(this.enemyModifiers, false));
+ getEnemyModifierTypesForWave(
+ difficultyWaveIndex,
+ count,
+ [ enemyPokemon ],
+ this.currentBattle.battleType === BattleType.TRAINER
+ ? ModifierPoolType.TRAINER
+ : ModifierPoolType.WILD,
+ upgradeChance,
+ ).map((mt) =>
+ mt.newModifier(enemyPokemon).add(this.enemyModifiers, false),
+ );
}
return true;
});
- this.updateModifiers(false).then(() => resolve());
+ this.updateModifiers(false);
+ resolve();
});
}
/**
- * Removes all modifiers from enemy pokemon of {@linkcode PersistentModifier} type
- */
+ * Removes all modifiers from enemy pokemon of {@linkcode PersistentModifier} type
+ */
clearEnemyModifiers(): void {
- const modifiersToRemove = this.enemyModifiers.filter(m => m instanceof PersistentModifier);
+ const modifiersToRemove = this.enemyModifiers.filter(
+ (m) => m instanceof PersistentModifier,
+ );
for (const m of modifiersToRemove) {
this.enemyModifiers.splice(this.enemyModifiers.indexOf(m), 1);
}
- this.updateModifiers(false).then(() => this.updateUIPositions());
+ this.updateModifiers(false);
+ this.updateUIPositions();
}
/**
- * Removes all modifiers from enemy pokemon of {@linkcode PokemonHeldItemModifier} type
- * @param pokemon - If specified, only removes held items from that {@linkcode Pokemon}
- */
+ * Removes all modifiers from enemy pokemon of {@linkcode PokemonHeldItemModifier} type
+ * @param pokemon - If specified, only removes held items from that {@linkcode Pokemon}
+ */
clearEnemyHeldItemModifiers(pokemon?: Pokemon): void {
- const modifiersToRemove = this.enemyModifiers.filter(m => m instanceof PokemonHeldItemModifier && (!pokemon || m.getPokemon() === pokemon));
+ const modifiersToRemove = this.enemyModifiers.filter(
+ (m) =>
+ m instanceof PokemonHeldItemModifier &&
+ (!pokemon || m.getPokemon() === pokemon),
+ );
for (const m of modifiersToRemove) {
this.enemyModifiers.splice(this.enemyModifiers.indexOf(m), 1);
}
- this.updateModifiers(false).then(() => this.updateUIPositions());
+ this.updateModifiers(false);
+ this.updateUIPositions();
}
setModifiersVisible(visible: boolean) {
- [ this.modifierBar, this.enemyModifierBar ].map(m => m.setVisible(visible));
+ [ this.modifierBar, this.enemyModifierBar ].map((m) => m.setVisible(visible));
}
- updateModifiers(player?: boolean, instant?: boolean): Promise {
- if (player === undefined) {
- player = true;
+ updateModifiers(player: boolean = true, instant?: boolean): void {
+ const modifiers = player
+ ? this.modifiers
+ : (this.enemyModifiers as PersistentModifier[]);
+ for (let m = 0; m < modifiers.length; m++) {
+ const modifier = modifiers[m];
+ if (
+ modifier instanceof PokemonHeldItemModifier &&
+ !this.getPokemonById((modifier as PokemonHeldItemModifier).pokemonId)
+ ) {
+ modifiers.splice(m--, 1);
+ }
}
- return new Promise(resolve => {
- const modifiers = player ? this.modifiers : this.enemyModifiers as PersistentModifier[];
- for (let m = 0; m < modifiers.length; m++) {
- const modifier = modifiers[m];
- if (modifier instanceof PokemonHeldItemModifier && !this.getPokemonById((modifier as PokemonHeldItemModifier).pokemonId)) {
- modifiers.splice(m--, 1);
- }
- }
- for (const modifier of modifiers) {
- if (modifier instanceof PersistentModifier) {
- (modifier as PersistentModifier).virtualStackCount = 0;
- }
+ for (const modifier of modifiers) {
+ if (modifier instanceof PersistentModifier) {
+ (modifier as PersistentModifier).virtualStackCount = 0;
}
+ }
- const modifiersClone = modifiers.slice(0);
- for (const modifier of modifiersClone) {
- if (!modifier.getStackCount()) {
- modifiers.splice(modifiers.indexOf(modifier), 1);
- }
+ const modifiersClone = modifiers.slice(0);
+ for (const modifier of modifiersClone) {
+ if (!modifier.getStackCount()) {
+ modifiers.splice(modifiers.indexOf(modifier), 1);
}
+ }
- this.updatePartyForModifiers(player ? this.getPlayerParty() : this.getEnemyParty(), instant).then(() => {
- (player ? this.modifierBar : this.enemyModifierBar).updateModifiers(modifiers);
- if (!player) {
- this.updateUIPositions();
- }
- resolve();
- });
- });
+ this.updatePartyForModifiers(
+ player ? this.getPlayerParty() : this.getEnemyParty(),
+ instant,
+ );
+ (player ? this.modifierBar : this.enemyModifierBar).updateModifiers(
+ modifiers,
+ );
+ if (!player) {
+ this.updateUIPositions();
+ }
}
updatePartyForModifiers(party: Pokemon[], instant?: boolean): Promise {
- return new Promise(resolve => {
- Promise.allSettled(party.map(p => {
- p.calculateStats();
- return p.updateInfo(instant);
- })).then(() => resolve());
+ return new Promise((resolve) => {
+ Promise.allSettled(
+ party.map((p) => {
+ p.calculateStats();
+ return p.updateInfo(instant);
+ }),
+ ).then(() => resolve());
});
}
@@ -2924,7 +3656,10 @@ export default class BattleScene extends SceneBase {
* @param enemy If `true`, remove an item owned by the enemy. If `false`, remove an item owned by the player. Default is `false`.
* @returns `true` if the item exists and was successfully removed, `false` otherwise.
*/
- removeModifier(modifier: PersistentModifier, enemy: boolean = false): boolean {
+ removeModifier(
+ modifier: PersistentModifier,
+ enemy: boolean = false,
+ ): boolean {
const modifiers = !enemy ? this.modifiers : this.enemyModifiers;
const modifierIndex = modifiers.indexOf(modifier);
if (modifierIndex > -1) {
@@ -2947,8 +3682,13 @@ export default class BattleScene extends SceneBase {
* @param player Whether to search the player (`true`) or the enemy (`false`); Defaults to `true`
* @returns the list of all modifiers that matched `modifierType`.
*/
- getModifiers(modifierType: Constructor, player: boolean = true): T[] {
- return (player ? this.modifiers : this.enemyModifiers).filter((m): m is T => m instanceof modifierType);
+ getModifiers(
+ modifierType: Constructor,
+ player: boolean = true,
+ ): T[] {
+ return (player ? this.modifiers : this.enemyModifiers).filter(
+ (m): m is T => m instanceof modifierType,
+ );
}
/**
@@ -2957,8 +3697,13 @@ export default class BattleScene extends SceneBase {
* @param isPlayer Whether to search the player (`true`) or the enemy (`false`); Defaults to `true`
* @returns the list of all modifiers that passed the `modifierFilter` function
*/
- findModifiers(modifierFilter: ModifierPredicate, isPlayer: boolean = true): PersistentModifier[] {
- return (isPlayer ? this.modifiers : this.enemyModifiers).filter(modifierFilter);
+ findModifiers(
+ modifierFilter: ModifierPredicate,
+ isPlayer: boolean = true,
+ ): PersistentModifier[] {
+ return (isPlayer ? this.modifiers : this.enemyModifiers).filter(
+ modifierFilter,
+ );
}
/**
@@ -2967,7 +3712,10 @@ export default class BattleScene extends SceneBase {
* @param player Whether to search the player (`true`) or the enemy (`false`); Defaults to `true`
* @returns the first modifier that passed the `modifierFilter` function; `undefined` if none passed
*/
- findModifier(modifierFilter: ModifierPredicate, player: boolean = true): PersistentModifier | undefined {
+ findModifier(
+ modifierFilter: ModifierPredicate,
+ player: boolean = true,
+ ): PersistentModifier | undefined {
return (player ? this.modifiers : this.enemyModifiers).find(modifierFilter);
}
@@ -2978,18 +3726,31 @@ export default class BattleScene extends SceneBase {
* @param ...args The list of arguments needed to invoke `modifierType.apply`
* @returns the list of all modifiers that matched `modifierType` and were applied.
*/
- applyShuffledModifiers(modifierType: Constructor, player: boolean = true, ...args: Parameters): T[] {
- let modifiers = (player ? this.modifiers : this.enemyModifiers).filter((m): m is T => m instanceof modifierType && m.shouldApply(...args));
- this.executeWithSeedOffset(() => {
- const shuffleModifiers = mods => {
- if (mods.length < 1) {
- return mods;
- }
- const rand = Utils.randSeedInt(mods.length);
- return [ mods[rand], ...shuffleModifiers(mods.filter((_, i) => i !== rand)) ];
- };
- modifiers = shuffleModifiers(modifiers);
- }, this.currentBattle.turn << 4, this.waveSeed);
+ applyShuffledModifiers(
+ modifierType: Constructor,
+ player: boolean = true,
+ ...args: Parameters
+ ): T[] {
+ let modifiers = (player ? this.modifiers : this.enemyModifiers).filter(
+ (m): m is T => m instanceof modifierType && m.shouldApply(...args),
+ );
+ this.executeWithSeedOffset(
+ () => {
+ const shuffleModifiers = (mods) => {
+ if (mods.length < 1) {
+ return mods;
+ }
+ const rand = Utils.randSeedInt(mods.length);
+ return [
+ mods[rand],
+ ...shuffleModifiers(mods.filter((_, i) => i !== rand)),
+ ];
+ };
+ modifiers = shuffleModifiers(modifiers);
+ },
+ this.currentBattle.turn << 4,
+ this.waveSeed,
+ );
return this.applyModifiersInternal(modifiers, player, args);
}
@@ -3000,13 +3761,23 @@ export default class BattleScene extends SceneBase {
* @param ...args The list of arguments needed to invoke `modifierType.apply`
* @returns the list of all modifiers that matched `modifierType` and were applied.
*/
- applyModifiers(modifierType: Constructor, player: boolean = true, ...args: Parameters): T[] {
- const modifiers = (player ? this.modifiers : this.enemyModifiers).filter((m): m is T => m instanceof modifierType && m.shouldApply(...args));
+ applyModifiers(
+ modifierType: Constructor,
+ player: boolean = true,
+ ...args: Parameters
+ ): T[] {
+ const modifiers = (player ? this.modifiers : this.enemyModifiers).filter(
+ (m): m is T => m instanceof modifierType && m.shouldApply(...args),
+ );
return this.applyModifiersInternal(modifiers, player, args);
}
/** Helper function to apply all passed modifiers */
- applyModifiersInternal(modifiers: T[], player: boolean, args: Parameters): T[] {
+ applyModifiersInternal(
+ modifiers: T[],
+ player: boolean,
+ args: Parameters,
+ ): T[] {
const appliedModifiers: T[] = [];
for (const modifier of modifiers) {
if (modifier.apply(...args)) {
@@ -3025,8 +3796,14 @@ export default class BattleScene extends SceneBase {
* @param ...args The list of arguments needed to invoke `modifierType.apply`
* @returns the first modifier that matches `modifierType` and was applied; return `null` if none matched
*/
- applyModifier(modifierType: Constructor, player: boolean = true, ...args: Parameters): T | null {
- const modifiers = (player ? this.modifiers : this.enemyModifiers).filter((m): m is T => m instanceof modifierType && m.shouldApply(...args));
+ applyModifier(
+ modifierType: Constructor,
+ player: boolean = true,
+ ...args: Parameters
+ ): T | null {
+ const modifiers = (player ? this.modifiers : this.enemyModifiers).filter(
+ (m): m is T => m instanceof modifierType && m.shouldApply(...args),
+ );
for (const modifier of modifiers) {
if (modifier.apply(...args)) {
console.log("Applied", modifier.type.name, !player ? "(enemy)" : "");
@@ -3037,22 +3814,42 @@ export default class BattleScene extends SceneBase {
return null;
}
- triggerPokemonFormChange(pokemon: Pokemon, formChangeTriggerType: Constructor, delayed: boolean = false, modal: boolean = false): boolean {
+ triggerPokemonFormChange(
+ pokemon: Pokemon,
+ formChangeTriggerType: Constructor,
+ delayed: boolean = false,
+ modal: boolean = false,
+ ): boolean {
if (pokemonFormChanges.hasOwnProperty(pokemon.species.speciesId)) {
-
// in case this is NECROZMA, determine which forms this
- const matchingFormChangeOpts = pokemonFormChanges[pokemon.species.speciesId].filter(fc => fc.findTrigger(formChangeTriggerType) && fc.canChange(pokemon));
+ const matchingFormChangeOpts = pokemonFormChanges[
+ pokemon.species.speciesId
+ ].filter(
+ (fc) => fc.findTrigger(formChangeTriggerType) && fc.canChange(pokemon),
+ );
let matchingFormChange: SpeciesFormChange | null;
- if (pokemon.species.speciesId === Species.NECROZMA && matchingFormChangeOpts.length > 1) {
+ if (
+ pokemon.species.speciesId === Species.NECROZMA &&
+ matchingFormChangeOpts.length > 1
+ ) {
// Ultra Necrozma is changing its form back, so we need to figure out into which form it devolves.
- const formChangeItemModifiers = (this.findModifiers(m => m instanceof PokemonFormChangeItemModifier && m.pokemonId === pokemon.id) as PokemonFormChangeItemModifier[]).filter(m => m.active).map(m => m.formChangeItem);
+ const formChangeItemModifiers = (
+ this.findModifiers(
+ (m) =>
+ m instanceof PokemonFormChangeItemModifier &&
+ m.pokemonId === pokemon.id,
+ ) as PokemonFormChangeItemModifier[]
+ )
+ .filter((m) => m.active)
+ .map((m) => m.formChangeItem);
-
- matchingFormChange = formChangeItemModifiers.includes(FormChangeItem.N_LUNARIZER) ?
- matchingFormChangeOpts[0] :
- formChangeItemModifiers.includes(FormChangeItem.N_SOLARIZER) ?
- matchingFormChangeOpts[1] :
- null;
+ matchingFormChange = formChangeItemModifiers.includes(
+ FormChangeItem.N_LUNARIZER,
+ )
+ ? matchingFormChangeOpts[0]
+ : formChangeItemModifiers.includes(FormChangeItem.N_SOLARIZER)
+ ? matchingFormChangeOpts[1]
+ : null;
} else {
matchingFormChange = matchingFormChangeOpts[0];
}
@@ -3063,7 +3860,11 @@ export default class BattleScene extends SceneBase {
} else {
phase = new QuietFormChangePhase(pokemon, matchingFormChange);
}
- if (pokemon instanceof PlayerPokemon && !matchingFormChange.quiet && modal) {
+ if (
+ pokemon instanceof PlayerPokemon &&
+ !matchingFormChange.quiet &&
+ modal
+ ) {
this.overridePhase(phase);
} else if (delayed) {
this.pushPhase(phase);
@@ -3077,8 +3878,17 @@ export default class BattleScene extends SceneBase {
return false;
}
- triggerPokemonBattleAnim(pokemon: Pokemon, battleAnimType: PokemonAnimType, fieldAssets?: Phaser.GameObjects.Sprite[], delayed: boolean = false): boolean {
- const phase: Phase = new PokemonAnimPhase(battleAnimType, pokemon, fieldAssets);
+ triggerPokemonBattleAnim(
+ pokemon: Pokemon,
+ battleAnimType: PokemonAnimType,
+ fieldAssets?: Phaser.GameObjects.Sprite[],
+ delayed: boolean = false,
+ ): boolean {
+ const phase: Phase = new PokemonAnimPhase(
+ battleAnimType,
+ pokemon,
+ fieldAssets,
+ );
if (delayed) {
this.pushPhase(phase);
} else {
@@ -3088,15 +3898,20 @@ export default class BattleScene extends SceneBase {
}
validateAchvs(achvType: Constructor, ...args: unknown[]): void {
- const filteredAchvs = Object.values(achvs).filter(a => a instanceof achvType);
+ const filteredAchvs = Object.values(achvs).filter(
+ (a) => a instanceof achvType,
+ );
for (const achv of filteredAchvs) {
this.validateAchv(achv, args);
}
}
validateAchv(achv: Achv, args?: unknown[]): boolean {
- if ((!this.gameData.achvUnlocks.hasOwnProperty(achv.id) || Overrides.ACHIEVEMENTS_REUNLOCK_OVERRIDE)
- && achv.validate(args)) {
+ if (
+ (!this.gameData.achvUnlocks.hasOwnProperty(achv.id) ||
+ Overrides.ACHIEVEMENTS_REUNLOCK_OVERRIDE) &&
+ achv.validate(args)
+ ) {
this.gameData.achvUnlocks[achv.id] = new Date().getTime();
this.ui.achvBar.showAchv(achv);
if (vouchers.hasOwnProperty(achv.id)) {
@@ -3109,7 +3924,10 @@ export default class BattleScene extends SceneBase {
}
validateVoucher(voucher: Voucher, args?: unknown[]): boolean {
- if (!this.gameData.voucherUnlocks.hasOwnProperty(voucher.id) && voucher.validate(args)) {
+ if (
+ !this.gameData.voucherUnlocks.hasOwnProperty(voucher.id) &&
+ voucher.validate(args)
+ ) {
this.gameData.voucherUnlocks[voucher.id] = new Date().getTime();
this.ui.achvBar.showAchv(voucher);
this.gameData.voucherCounts[voucher.voucherType]++;
@@ -3125,19 +3943,21 @@ export default class BattleScene extends SceneBase {
gameMode: this.currentBattle ? this.gameMode.getName() : "Title",
biome: this.currentBattle ? getBiomeName(this.arena.biomeType) : "",
wave: this.currentBattle?.waveIndex ?? 0,
- party: this.party ? this.party.map((p) => {
- return {
- name: p.name,
- form: p.getFormKey(),
- types: p.getTypes().map((type) => Type[type]),
- teraType: Type[p.getTeraType()],
- isTerastallized: p.isTerastallized,
- level: p.level,
- currentHP: p.hp,
- maxHP: p.getMaxHp(),
- status: p.status?.effect ? StatusEffect[p.status.effect] : ""
- };
- }) : [],
+ party: this.party
+ ? this.party.map((p) => {
+ return {
+ name: p.name,
+ form: p.getFormKey(),
+ types: p.getTypes().map((type) => Type[type]),
+ teraType: Type[p.getTeraType()],
+ isTerastallized: p.isTerastallized,
+ level: p.level,
+ currentHP: p.hp,
+ maxHP: p.getMaxHp(),
+ status: p.status?.effect ? StatusEffect[p.status.effect] : "",
+ };
+ })
+ : [],
modeChain: this.ui?.getModeChain() ?? [],
};
(window as any).gameInfo = gameInfo;
@@ -3171,26 +3991,44 @@ export default class BattleScene extends SceneBase {
* @param pokemon The (enemy) pokemon
*/
initFinalBossPhaseTwo(pokemon: Pokemon): void {
- if (pokemon instanceof EnemyPokemon && pokemon.isBoss() && !pokemon.formIndex && pokemon.bossSegmentIndex < 1) {
+ if (
+ pokemon instanceof EnemyPokemon &&
+ pokemon.isBoss() &&
+ !pokemon.formIndex &&
+ pokemon.bossSegmentIndex < 1
+ ) {
this.fadeOutBgm(Utils.fixedInt(2000), false);
- this.ui.showDialogue(battleSpecDialogue[BattleSpec.FINAL_BOSS].firstStageWin, pokemon.species.name, undefined, () => {
- const finalBossMBH = getModifierType(modifierTypes.MINI_BLACK_HOLE).newModifier(pokemon) as TurnHeldItemTransferModifier;
- finalBossMBH.setTransferrableFalse();
- this.addEnemyModifier(finalBossMBH, false, true);
- pokemon.generateAndPopulateMoveset(1);
- this.setFieldScale(0.75);
- this.triggerPokemonFormChange(pokemon, SpeciesFormChangeManualTrigger, false);
- this.currentBattle.double = true;
- const availablePartyMembers = this.getPlayerParty().filter((p) => p.isAllowedInBattle());
- if (availablePartyMembers.length > 1) {
- this.pushPhase(new ToggleDoublePositionPhase(true));
- if (!availablePartyMembers[1].isOnField()) {
- this.pushPhase(new SummonPhase(1));
+ this.ui.showDialogue(
+ battleSpecDialogue[BattleSpec.FINAL_BOSS].firstStageWin,
+ pokemon.species.name,
+ undefined,
+ () => {
+ const finalBossMBH = getModifierType(
+ modifierTypes.MINI_BLACK_HOLE,
+ ).newModifier(pokemon) as TurnHeldItemTransferModifier;
+ finalBossMBH.setTransferrableFalse();
+ this.addEnemyModifier(finalBossMBH, false, true);
+ pokemon.generateAndPopulateMoveset(1);
+ this.setFieldScale(0.75);
+ this.triggerPokemonFormChange(
+ pokemon,
+ SpeciesFormChangeManualTrigger,
+ false,
+ );
+ this.currentBattle.double = true;
+ const availablePartyMembers = this.getPlayerParty().filter((p) =>
+ p.isAllowedInBattle(),
+ );
+ if (availablePartyMembers.length > 1) {
+ this.pushPhase(new ToggleDoublePositionPhase(true));
+ if (!availablePartyMembers[1].isOnField()) {
+ this.pushPhase(new SummonPhase(1));
+ }
}
- }
- this.shiftPhase();
- });
+ this.shiftPhase();
+ },
+ );
return;
}
@@ -3204,33 +4042,62 @@ export default class BattleScene extends SceneBase {
* @param useWaveIndexMultiplier Default false. If true, will multiply expValue by a scaling waveIndex multiplier. Not needed if expValue is already scaled by level/wave
* @param pokemonParticipantIds Participants. If none are defined, no exp will be given. To spread evenly among the party, should pass all ids of party members.
*/
- applyPartyExp(expValue: number, pokemonDefeated: boolean, useWaveIndexMultiplier?: boolean, pokemonParticipantIds?: Set): void {
- const participantIds = pokemonParticipantIds ?? this.currentBattle.playerParticipantIds;
+ applyPartyExp(
+ expValue: number,
+ pokemonDefeated: boolean,
+ useWaveIndexMultiplier?: boolean,
+ pokemonParticipantIds?: Set,
+ ): void {
+ const participantIds =
+ pokemonParticipantIds ?? this.currentBattle.playerParticipantIds;
const party = this.getPlayerParty();
- const expShareModifier = this.findModifier(m => m instanceof ExpShareModifier) as ExpShareModifier;
- const expBalanceModifier = this.findModifier(m => m instanceof ExpBalanceModifier) as ExpBalanceModifier;
- const multipleParticipantExpBonusModifier = this.findModifier(m => m instanceof MultipleParticipantExpBonusModifier) as MultipleParticipantExpBonusModifier;
- const nonFaintedPartyMembers = party.filter(p => p.hp);
- const expPartyMembers = nonFaintedPartyMembers.filter(p => p.level < this.getMaxExpLevel());
+ const expShareModifier = this.findModifier(
+ (m) => m instanceof ExpShareModifier,
+ ) as ExpShareModifier;
+ const expBalanceModifier = this.findModifier(
+ (m) => m instanceof ExpBalanceModifier,
+ ) as ExpBalanceModifier;
+ const multipleParticipantExpBonusModifier = this.findModifier(
+ (m) => m instanceof MultipleParticipantExpBonusModifier,
+ ) as MultipleParticipantExpBonusModifier;
+ const nonFaintedPartyMembers = party.filter((p) => p.hp);
+ const expPartyMembers = nonFaintedPartyMembers.filter(
+ (p) => p.level < this.getMaxExpLevel(),
+ );
const partyMemberExp: number[] = [];
// EXP value calculation is based off Pokemon.getExpValue
if (useWaveIndexMultiplier) {
- expValue = Math.floor(expValue * this.currentBattle.waveIndex / 5 + 1);
+ expValue = Math.floor((expValue * this.currentBattle.waveIndex) / 5 + 1);
}
if (participantIds.size > 0) {
- if (this.currentBattle.battleType === BattleType.TRAINER || this.currentBattle.mysteryEncounter?.encounterMode === MysteryEncounterMode.TRAINER_BATTLE) {
+ if (
+ this.currentBattle.battleType === BattleType.TRAINER ||
+ this.currentBattle.mysteryEncounter?.encounterMode ===
+ MysteryEncounterMode.TRAINER_BATTLE
+ ) {
expValue = Math.floor(expValue * 1.5);
- } else if (this.currentBattle.isBattleMysteryEncounter() && this.currentBattle.mysteryEncounter) {
- expValue = Math.floor(expValue * this.currentBattle.mysteryEncounter.expMultiplier);
+ } else if (
+ this.currentBattle.isBattleMysteryEncounter() &&
+ this.currentBattle.mysteryEncounter
+ ) {
+ expValue = Math.floor(
+ expValue * this.currentBattle.mysteryEncounter.expMultiplier,
+ );
}
for (const partyMember of nonFaintedPartyMembers) {
const pId = partyMember.id;
const participated = participantIds.has(pId);
if (participated && pokemonDefeated) {
partyMember.addFriendship(FRIENDSHIP_GAIN_FROM_BATTLE);
- const machoBraceModifier = partyMember.getHeldItems().find(m => m instanceof PokemonIncrementingStatModifier);
- if (machoBraceModifier && machoBraceModifier.stackCount < machoBraceModifier.getMaxStackCount()) {
+ const machoBraceModifier = partyMember
+ .getHeldItems()
+ .find((m) => m instanceof PokemonIncrementingStatModifier);
+ if (
+ machoBraceModifier &&
+ machoBraceModifier.stackCount <
+ machoBraceModifier.getMaxStackCount()
+ ) {
machoBraceModifier.stackCount++;
this.updateModifiers(true, true);
partyMember.updateInfo();
@@ -3245,12 +4112,14 @@ export default class BattleScene extends SceneBase {
}
let expMultiplier = 0;
if (participated) {
- expMultiplier += (1 / participantIds.size);
+ expMultiplier += 1 / participantIds.size;
if (participantIds.size > 1 && multipleParticipantExpBonusModifier) {
- expMultiplier += multipleParticipantExpBonusModifier.getStackCount() * 0.2;
+ expMultiplier +=
+ multipleParticipantExpBonusModifier.getStackCount() * 0.2;
}
} else if (expShareModifier) {
- expMultiplier += (expShareModifier.getStackCount() * 0.2) / participantIds.size;
+ expMultiplier +=
+ (expShareModifier.getStackCount() * 0.2) / participantIds.size;
}
if (partyMember.pokerus) {
expMultiplier *= 1.5;
@@ -3259,7 +4128,12 @@ export default class BattleScene extends SceneBase {
expMultiplier = Overrides.XP_MULTIPLIER_OVERRIDE;
}
const pokemonExp = new Utils.NumberHolder(expValue * expMultiplier);
- this.applyModifiers(PokemonExpBoosterModifier, true, partyMember, pokemonExp);
+ this.applyModifiers(
+ PokemonExpBoosterModifier,
+ true,
+ partyMember,
+ pokemonExp,
+ );
partyMemberExp.push(Math.floor(pokemonExp.value));
}
@@ -3280,10 +4154,16 @@ export default class BattleScene extends SceneBase {
}
});
- const splitExp = Math.floor(totalExp / recipientExpPartyMemberIndexes.length);
+ const splitExp = Math.floor(
+ totalExp / recipientExpPartyMemberIndexes.length,
+ );
expPartyMembers.forEach((_partyMember, pm) => {
- partyMemberExp[pm] = Phaser.Math.Linear(partyMemberExp[pm], recipientExpPartyMemberIndexes.indexOf(pm) > -1 ? splitExp : 0, 0.2 * expBalanceModifier.getStackCount());
+ partyMemberExp[pm] = Phaser.Math.Linear(
+ partyMemberExp[pm],
+ recipientExpPartyMemberIndexes.indexOf(pm) > -1 ? splitExp : 0,
+ 0.2 * expBalanceModifier.getStackCount(),
+ );
});
}
@@ -3292,7 +4172,11 @@ export default class BattleScene extends SceneBase {
if (exp) {
const partyMemberIndex = party.indexOf(expPartyMembers[pm]);
- this.unshiftPhase(expPartyMembers[pm].isOnField() ? new ExpPhase(partyMemberIndex, exp) : new ShowPartyExpBarPhase(partyMemberIndex, exp));
+ this.unshiftPhase(
+ expPartyMembers[pm].isOnField()
+ ? new ExpPhase(partyMemberIndex, exp)
+ : new ShowPartyExpBarPhase(partyMemberIndex, exp),
+ );
}
}
}
@@ -3303,9 +4187,19 @@ export default class BattleScene extends SceneBase {
* Even if returns `true`, does not guarantee that a wave will actually be a ME.
* That check is made in {@linkcode BattleScene.isWaveMysteryEncounter} instead.
*/
- isMysteryEncounterValidForWave(battleType: BattleType, waveIndex: number): boolean {
- const [ lowestMysteryEncounterWave, highestMysteryEncounterWave ] = this.gameMode.getMysteryEncounterLegalWaves();
- return this.gameMode.hasMysteryEncounters && battleType === BattleType.WILD && !this.gameMode.isBoss(waveIndex) && waveIndex < highestMysteryEncounterWave && waveIndex > lowestMysteryEncounterWave;
+ isMysteryEncounterValidForWave(
+ battleType: BattleType,
+ waveIndex: number,
+ ): boolean {
+ const [ lowestMysteryEncounterWave, highestMysteryEncounterWave ] =
+ this.gameMode.getMysteryEncounterLegalWaves();
+ return (
+ this.gameMode.hasMysteryEncounters &&
+ battleType === BattleType.WILD &&
+ !this.gameMode.isBoss(waveIndex) &&
+ waveIndex < highestMysteryEncounterWave &&
+ waveIndex > lowestMysteryEncounterWave
+ );
}
/**
@@ -3315,31 +4209,56 @@ export default class BattleScene extends SceneBase {
* @param newBattleType
* @param waveIndex
*/
- private isWaveMysteryEncounter(newBattleType: BattleType, waveIndex: number): boolean {
- const [ lowestMysteryEncounterWave, highestMysteryEncounterWave ] = this.gameMode.getMysteryEncounterLegalWaves();
+ private isWaveMysteryEncounter(
+ newBattleType: BattleType,
+ waveIndex: number,
+ ): boolean {
+ const [ lowestMysteryEncounterWave, highestMysteryEncounterWave ] =
+ this.gameMode.getMysteryEncounterLegalWaves();
if (this.isMysteryEncounterValidForWave(newBattleType, waveIndex)) {
// Base spawn weight is BASE_MYSTERY_ENCOUNTER_SPAWN_WEIGHT/256, and increases by WEIGHT_INCREMENT_ON_SPAWN_MISS/256 for each missed attempt at spawning an encounter on a valid floor
- const sessionEncounterRate = this.mysteryEncounterSaveData.encounterSpawnChance;
+ const sessionEncounterRate =
+ this.mysteryEncounterSaveData.encounterSpawnChance;
const encounteredEvents = this.mysteryEncounterSaveData.encounteredEvents;
// If total number of encounters is lower than expected for the run, slightly favor a new encounter spawn (reverse as well)
// Reduces occurrence of runs with total encounters significantly different from AVERAGE_ENCOUNTERS_PER_RUN_TARGET
// Favored rate changes can never exceed 50%. So if base rate is 15/256 and favored rate would add 200/256, result will be (15 + 128)/256
- const expectedEncountersByFloor = AVERAGE_ENCOUNTERS_PER_RUN_TARGET / (highestMysteryEncounterWave - lowestMysteryEncounterWave) * (waveIndex - lowestMysteryEncounterWave);
- const currentRunDiffFromAvg = expectedEncountersByFloor - encounteredEvents.length;
- const favoredEncounterRate = sessionEncounterRate + Math.min(currentRunDiffFromAvg * ANTI_VARIANCE_WEIGHT_MODIFIER, MYSTERY_ENCOUNTER_SPAWN_MAX_WEIGHT / 2);
+ const expectedEncountersByFloor =
+ (AVERAGE_ENCOUNTERS_PER_RUN_TARGET /
+ (highestMysteryEncounterWave - lowestMysteryEncounterWave)) *
+ (waveIndex - lowestMysteryEncounterWave);
+ const currentRunDiffFromAvg =
+ expectedEncountersByFloor - encounteredEvents.length;
+ const favoredEncounterRate =
+ sessionEncounterRate +
+ Math.min(
+ currentRunDiffFromAvg * ANTI_VARIANCE_WEIGHT_MODIFIER,
+ MYSTERY_ENCOUNTER_SPAWN_MAX_WEIGHT / 2,
+ );
- const successRate = isNullOrUndefined(Overrides.MYSTERY_ENCOUNTER_RATE_OVERRIDE) ? favoredEncounterRate : Overrides.MYSTERY_ENCOUNTER_RATE_OVERRIDE!;
+ const successRate = isNullOrUndefined(
+ Overrides.MYSTERY_ENCOUNTER_RATE_OVERRIDE,
+ )
+ ? favoredEncounterRate
+ : Overrides.MYSTERY_ENCOUNTER_RATE_OVERRIDE!;
// If the most recent ME was 3 or fewer waves ago, can never spawn a ME
- const canSpawn = encounteredEvents.length === 0 || (waveIndex - encounteredEvents[encounteredEvents.length - 1].waveIndex) > 3 || !isNullOrUndefined(Overrides.MYSTERY_ENCOUNTER_RATE_OVERRIDE);
+ const canSpawn =
+ encounteredEvents.length === 0 ||
+ waveIndex - encounteredEvents[encounteredEvents.length - 1].waveIndex >
+ 3 ||
+ !isNullOrUndefined(Overrides.MYSTERY_ENCOUNTER_RATE_OVERRIDE);
if (canSpawn) {
let roll = MYSTERY_ENCOUNTER_SPAWN_MAX_WEIGHT;
// Always rolls the check on the same offset to ensure no RNG changes from reloading session
- this.executeWithSeedOffset(() => {
- roll = randSeedInt(MYSTERY_ENCOUNTER_SPAWN_MAX_WEIGHT);
- }, waveIndex * 3 * 1000);
+ this.executeWithSeedOffset(
+ () => {
+ roll = randSeedInt(MYSTERY_ENCOUNTER_SPAWN_MAX_WEIGHT);
+ },
+ waveIndex * 3 * 1000,
+ );
return roll < successRate;
}
}
@@ -3353,10 +4272,16 @@ export default class BattleScene extends SceneBase {
* @param canBypass optional boolean to indicate that the request is coming from a function that needs to access a Mystery Encounter outside of gameplay requirements
* @returns
*/
- getMysteryEncounter(encounterType?: MysteryEncounterType, canBypass?: boolean): MysteryEncounter {
+ getMysteryEncounter(
+ encounterType?: MysteryEncounterType,
+ canBypass?: boolean,
+ ): MysteryEncounter {
// Loading override or session encounter
let encounter: MysteryEncounter | null;
- if (!isNullOrUndefined(Overrides.MYSTERY_ENCOUNTER_OVERRIDE) && allMysteryEncounters.hasOwnProperty(Overrides.MYSTERY_ENCOUNTER_OVERRIDE)) {
+ if (
+ !isNullOrUndefined(Overrides.MYSTERY_ENCOUNTER_OVERRIDE) &&
+ allMysteryEncounters.hasOwnProperty(Overrides.MYSTERY_ENCOUNTER_OVERRIDE)
+ ) {
encounter = allMysteryEncounters[Overrides.MYSTERY_ENCOUNTER_OVERRIDE];
if (canBypass) {
return encounter;
@@ -3365,13 +4290,22 @@ export default class BattleScene extends SceneBase {
encounter = allMysteryEncounters[encounterType ?? -1];
return encounter;
} else {
- encounter = !isNullOrUndefined(encounterType) ? allMysteryEncounters[encounterType] : null;
+ encounter = !isNullOrUndefined(encounterType)
+ ? allMysteryEncounters[encounterType]
+ : null;
}
// Check for queued encounters first
- if (!encounter && this.mysteryEncounterSaveData?.queuedEncounters && this.mysteryEncounterSaveData.queuedEncounters.length > 0) {
+ if (
+ !encounter &&
+ this.mysteryEncounterSaveData?.queuedEncounters &&
+ this.mysteryEncounterSaveData.queuedEncounters.length > 0
+ ) {
let i = 0;
- while (i < this.mysteryEncounterSaveData.queuedEncounters.length && !!encounter) {
+ while (
+ i < this.mysteryEncounterSaveData.queuedEncounters.length &&
+ !!encounter
+ ) {
const candidate = this.mysteryEncounterSaveData.queuedEncounters[i];
const forcedChance = candidate.spawnPercent;
if (Utils.randSeedInt(100) < forcedChance) {
@@ -3389,34 +4323,56 @@ export default class BattleScene extends SceneBase {
}
// See Enum values for base tier weights
- const tierWeights = [ MysteryEncounterTier.COMMON, MysteryEncounterTier.GREAT, MysteryEncounterTier.ULTRA, MysteryEncounterTier.ROGUE ];
+ const tierWeights = [
+ MysteryEncounterTier.COMMON,
+ MysteryEncounterTier.GREAT,
+ MysteryEncounterTier.ULTRA,
+ MysteryEncounterTier.ROGUE,
+ ];
// Adjust tier weights by previously encountered events to lower odds of only Common/Great in run
- this.mysteryEncounterSaveData.encounteredEvents.forEach(seenEncounterData => {
- if (seenEncounterData.tier === MysteryEncounterTier.COMMON) {
- tierWeights[0] = tierWeights[0] - 6;
- } else if (seenEncounterData.tier === MysteryEncounterTier.GREAT) {
- tierWeights[1] = tierWeights[1] - 4;
- }
- });
+ this.mysteryEncounterSaveData.encounteredEvents.forEach(
+ (seenEncounterData) => {
+ if (seenEncounterData.tier === MysteryEncounterTier.COMMON) {
+ tierWeights[0] = tierWeights[0] - 6;
+ } else if (seenEncounterData.tier === MysteryEncounterTier.GREAT) {
+ tierWeights[1] = tierWeights[1] - 4;
+ }
+ },
+ );
const totalWeight = tierWeights.reduce((a, b) => a + b);
const tierValue = Utils.randSeedInt(totalWeight);
const commonThreshold = totalWeight - tierWeights[0];
const greatThreshold = totalWeight - tierWeights[0] - tierWeights[1];
- const ultraThreshold = totalWeight - tierWeights[0] - tierWeights[1] - tierWeights[2];
- let tier: MysteryEncounterTier | null = tierValue > commonThreshold ? MysteryEncounterTier.COMMON : tierValue > greatThreshold ? MysteryEncounterTier.GREAT : tierValue > ultraThreshold ? MysteryEncounterTier.ULTRA : MysteryEncounterTier.ROGUE;
+ const ultraThreshold =
+ totalWeight - tierWeights[0] - tierWeights[1] - tierWeights[2];
+ let tier: MysteryEncounterTier | null =
+ tierValue > commonThreshold
+ ? MysteryEncounterTier.COMMON
+ : tierValue > greatThreshold
+ ? MysteryEncounterTier.GREAT
+ : tierValue > ultraThreshold
+ ? MysteryEncounterTier.ULTRA
+ : MysteryEncounterTier.ROGUE;
if (!isNullOrUndefined(Overrides.MYSTERY_ENCOUNTER_TIER_OVERRIDE)) {
tier = Overrides.MYSTERY_ENCOUNTER_TIER_OVERRIDE;
}
let availableEncounters: MysteryEncounter[] = [];
- const previousEncounter = this.mysteryEncounterSaveData.encounteredEvents.length > 0 ?
- this.mysteryEncounterSaveData.encounteredEvents[this.mysteryEncounterSaveData.encounteredEvents.length - 1].type
- : null;
- const disabledEncounters = this.eventManager.getEventMysteryEncountersDisabled();
- const biomeMysteryEncounters = mysteryEncountersByBiome.get(this.arena.biomeType)?.filter(enc => !disabledEncounters.includes(enc)) ?? [];
+ const previousEncounter =
+ this.mysteryEncounterSaveData.encounteredEvents.length > 0
+ ? this.mysteryEncounterSaveData.encounteredEvents[
+ this.mysteryEncounterSaveData.encounteredEvents.length - 1
+ ].type
+ : null;
+ const disabledEncounters =
+ this.eventManager.getEventMysteryEncountersDisabled();
+ const biomeMysteryEncounters =
+ mysteryEncountersByBiome
+ .get(this.arena.biomeType)
+ ?.filter((enc) => !disabledEncounters.includes(enc)) ?? [];
// If no valid encounters exist at tier, checks next tier down, continuing until there are some encounters available
while (availableEncounters.length === 0 && tier !== null) {
availableEncounters = biomeMysteryEncounters
@@ -3425,34 +4381,57 @@ export default class BattleScene extends SceneBase {
if (!encounterCandidate) {
return false;
}
- if (this.eventManager.getMysteryEncounterTierForEvent(encounterType, encounterCandidate.encounterTier) !== tier) {
+ if (
+ this.eventManager.getMysteryEncounterTierForEvent(
+ encounterType,
+ encounterCandidate.encounterTier,
+ ) !== tier
+ ) {
return false;
}
const disallowedGameModes = encounterCandidate.disallowedGameModes;
- if (disallowedGameModes && disallowedGameModes.length > 0
- && disallowedGameModes.includes(this.gameMode.modeId)) {
+ if (
+ disallowedGameModes &&
+ disallowedGameModes.length > 0 &&
+ disallowedGameModes.includes(this.gameMode.modeId)
+ ) {
return false;
}
if (this.gameMode.modeId === GameModes.CHALLENGE) {
- const disallowedChallenges = encounterCandidate.disallowedChallenges;
- if (disallowedChallenges && disallowedChallenges.length > 0 && this.gameMode.challenges.some(challenge => disallowedChallenges.includes(challenge.id))) {
+ const disallowedChallenges =
+ encounterCandidate.disallowedChallenges;
+ if (
+ disallowedChallenges &&
+ disallowedChallenges.length > 0 &&
+ this.gameMode.challenges.some((challenge) =>
+ disallowedChallenges.includes(challenge.id),
+ )
+ ) {
return false;
}
}
if (!encounterCandidate.meetsRequirements()) {
return false;
}
- if (previousEncounter !== null && encounterType === previousEncounter) {
+ if (
+ previousEncounter !== null &&
+ encounterType === previousEncounter
+ ) {
return false;
}
- if (this.mysteryEncounterSaveData.encounteredEvents.length > 0 &&
- (encounterCandidate.maxAllowedEncounters && encounterCandidate.maxAllowedEncounters > 0)
- && this.mysteryEncounterSaveData.encounteredEvents.filter(e => e.type === encounterType).length >= encounterCandidate.maxAllowedEncounters) {
+ if (
+ this.mysteryEncounterSaveData.encounteredEvents.length > 0 &&
+ encounterCandidate.maxAllowedEncounters &&
+ encounterCandidate.maxAllowedEncounters > 0 &&
+ this.mysteryEncounterSaveData.encounteredEvents.filter(
+ (e) => e.type === encounterType,
+ ).length >= encounterCandidate.maxAllowedEncounters
+ ) {
return false;
}
return true;
})
- .map((m) => (allMysteryEncounters[m]));
+ .map((m) => allMysteryEncounters[m]);
// Decrement tier
if (tier === MysteryEncounterTier.ROGUE) {
tier = MysteryEncounterTier.ULTRA;
@@ -3467,10 +4446,13 @@ export default class BattleScene extends SceneBase {
// If absolutely no encounters are available, spawn 0th encounter
if (availableEncounters.length === 0) {
- console.log("No Mystery Encounters found, falling back to Mysterious Challengers.");
+ console.log(
+ "No Mystery Encounters found, falling back to Mysterious Challengers.",
+ );
return allMysteryEncounters[MysteryEncounterType.MYSTERIOUS_CHALLENGERS];
}
- encounter = availableEncounters[Utils.randSeedInt(availableEncounters.length)];
+ encounter =
+ availableEncounters[Utils.randSeedInt(availableEncounters.length)];
// New encounter object to not dirty flags
encounter = new MysteryEncounter(encounter);
encounter.populateDialogueTokensFromRequirements();
diff --git a/src/configs/inputs/cfg_keyboard_qwerty.ts b/src/configs/inputs/cfg_keyboard_qwerty.ts
index 5ddc12e8784..c1b00a833c0 100644
--- a/src/configs/inputs/cfg_keyboard_qwerty.ts
+++ b/src/configs/inputs/cfg_keyboard_qwerty.ts
@@ -180,9 +180,9 @@ const cfg_keyboard_qwerty = {
[SettingKeyboard.Button_Cycle_Gender]: Button.CYCLE_GENDER,
[SettingKeyboard.Button_Cycle_Ability]: Button.CYCLE_ABILITY,
[SettingKeyboard.Button_Cycle_Nature]: Button.CYCLE_NATURE,
- [SettingKeyboard.Button_Cycle_Variant]: Button.V,
[SettingKeyboard.Button_Speed_Up]: Button.SPEED_UP,
[SettingKeyboard.Button_Slow_Down]: Button.SLOW_DOWN,
+ [SettingKeyboard.Button_Cycle_Tera]: Button.CYCLE_TERA,
[SettingKeyboard.Alt_Button_Up]: Button.UP,
[SettingKeyboard.Alt_Button_Down]: Button.DOWN,
[SettingKeyboard.Alt_Button_Left]: Button.LEFT,
@@ -197,9 +197,9 @@ const cfg_keyboard_qwerty = {
[SettingKeyboard.Alt_Button_Cycle_Gender]: Button.CYCLE_GENDER,
[SettingKeyboard.Alt_Button_Cycle_Ability]: Button.CYCLE_ABILITY,
[SettingKeyboard.Alt_Button_Cycle_Nature]: Button.CYCLE_NATURE,
- [SettingKeyboard.Alt_Button_Cycle_Variant]: Button.V,
[SettingKeyboard.Alt_Button_Speed_Up]: Button.SPEED_UP,
[SettingKeyboard.Alt_Button_Slow_Down]: Button.SLOW_DOWN,
+ [SettingKeyboard.Alt_Button_Cycle_Tera]: Button.CYCLE_TERA,
},
default: {
KEY_ARROW_UP: SettingKeyboard.Button_Up,
@@ -216,7 +216,7 @@ const cfg_keyboard_qwerty = {
KEY_G: SettingKeyboard.Button_Cycle_Gender,
KEY_E: SettingKeyboard.Button_Cycle_Ability,
KEY_N: SettingKeyboard.Button_Cycle_Nature,
- KEY_V: SettingKeyboard.Button_Cycle_Variant,
+ KEY_V: SettingKeyboard.Button_Cycle_Tera,
KEY_PLUS: -1,
KEY_MINUS: -1,
KEY_A: SettingKeyboard.Alt_Button_Left,
diff --git a/src/configs/inputs/pad_dualshock.ts b/src/configs/inputs/pad_dualshock.ts
index 2fbdd0ddfaa..265b39fdad5 100644
--- a/src/configs/inputs/pad_dualshock.ts
+++ b/src/configs/inputs/pad_dualshock.ts
@@ -53,7 +53,7 @@ const pad_dualshock = {
[SettingGamepad.Button_Action]: Button.ACTION,
[SettingGamepad.Button_Cancel]: Button.CANCEL,
[SettingGamepad.Button_Cycle_Nature]: Button.CYCLE_NATURE,
- [SettingGamepad.Button_Cycle_Variant]: Button.V,
+ [SettingGamepad.Button_Cycle_Tera]: Button.CYCLE_TERA,
[SettingGamepad.Button_Menu]: Button.MENU,
[SettingGamepad.Button_Stats]: Button.STATS,
[SettingGamepad.Button_Cycle_Form]: Button.CYCLE_FORM,
@@ -72,7 +72,7 @@ const pad_dualshock = {
RC_S: SettingGamepad.Button_Action,
RC_E: SettingGamepad.Button_Cancel,
RC_W: SettingGamepad.Button_Cycle_Nature,
- RC_N: SettingGamepad.Button_Cycle_Variant,
+ RC_N: SettingGamepad.Button_Cycle_Tera,
START: SettingGamepad.Button_Menu,
SELECT: SettingGamepad.Button_Stats,
LB: SettingGamepad.Button_Cycle_Form,
diff --git a/src/configs/inputs/pad_generic.ts b/src/configs/inputs/pad_generic.ts
index 256af8f0fe3..cd91fcd8b17 100644
--- a/src/configs/inputs/pad_generic.ts
+++ b/src/configs/inputs/pad_generic.ts
@@ -51,7 +51,7 @@ const pad_generic = {
[SettingGamepad.Button_Action]: Button.ACTION,
[SettingGamepad.Button_Cancel]: Button.CANCEL,
[SettingGamepad.Button_Cycle_Nature]: Button.CYCLE_NATURE,
- [SettingGamepad.Button_Cycle_Variant]: Button.V,
+ [SettingGamepad.Button_Cycle_Tera]: Button.CYCLE_TERA,
[SettingGamepad.Button_Menu]: Button.MENU,
[SettingGamepad.Button_Stats]: Button.STATS,
[SettingGamepad.Button_Cycle_Form]: Button.CYCLE_FORM,
@@ -69,7 +69,7 @@ const pad_generic = {
RC_S: SettingGamepad.Button_Action,
RC_E: SettingGamepad.Button_Cancel,
RC_W: SettingGamepad.Button_Cycle_Nature,
- RC_N: SettingGamepad.Button_Cycle_Variant,
+ RC_N: SettingGamepad.Button_Cycle_Tera,
START: SettingGamepad.Button_Menu,
SELECT: SettingGamepad.Button_Stats,
LB: SettingGamepad.Button_Cycle_Form,
diff --git a/src/configs/inputs/pad_procon.ts b/src/configs/inputs/pad_procon.ts
index 98d17c4ef57..a7ae5383fbe 100644
--- a/src/configs/inputs/pad_procon.ts
+++ b/src/configs/inputs/pad_procon.ts
@@ -52,7 +52,7 @@ const pad_procon = {
[SettingGamepad.Button_Action]: Button.ACTION,
[SettingGamepad.Button_Cancel]: Button.CANCEL,
[SettingGamepad.Button_Cycle_Nature]: Button.CYCLE_NATURE,
- [SettingGamepad.Button_Cycle_Variant]: Button.V,
+ [SettingGamepad.Button_Cycle_Tera]: Button.CYCLE_TERA,
[SettingGamepad.Button_Menu]: Button.MENU,
[SettingGamepad.Button_Stats]: Button.STATS,
[SettingGamepad.Button_Cycle_Form]: Button.CYCLE_FORM,
@@ -70,7 +70,7 @@ const pad_procon = {
RC_S: SettingGamepad.Button_Action,
RC_E: SettingGamepad.Button_Cancel,
RC_W: SettingGamepad.Button_Cycle_Nature,
- RC_N: SettingGamepad.Button_Cycle_Variant,
+ RC_N: SettingGamepad.Button_Cycle_Tera,
START: SettingGamepad.Button_Menu,
SELECT: SettingGamepad.Button_Stats,
LB: SettingGamepad.Button_Cycle_Form,
diff --git a/src/configs/inputs/pad_unlicensedSNES.ts b/src/configs/inputs/pad_unlicensedSNES.ts
index 77e68e6a644..fbde98b3fa2 100644
--- a/src/configs/inputs/pad_unlicensedSNES.ts
+++ b/src/configs/inputs/pad_unlicensedSNES.ts
@@ -43,7 +43,7 @@ const pad_unlicensedSNES = {
[SettingGamepad.Button_Action]: Button.ACTION,
[SettingGamepad.Button_Cancel]: Button.CANCEL,
[SettingGamepad.Button_Cycle_Nature]: Button.CYCLE_NATURE,
- [SettingGamepad.Button_Cycle_Variant]: Button.V,
+ [SettingGamepad.Button_Cycle_Tera]: Button.CYCLE_TERA,
[SettingGamepad.Button_Menu]: Button.MENU,
[SettingGamepad.Button_Stats]: Button.STATS,
[SettingGamepad.Button_Cycle_Form]: Button.CYCLE_FORM,
@@ -61,7 +61,7 @@ const pad_unlicensedSNES = {
RC_S: SettingGamepad.Button_Action,
RC_E: SettingGamepad.Button_Cancel,
RC_W: SettingGamepad.Button_Cycle_Nature,
- RC_N: SettingGamepad.Button_Cycle_Variant,
+ RC_N: SettingGamepad.Button_Cycle_Tera,
START: SettingGamepad.Button_Menu,
SELECT: SettingGamepad.Button_Stats,
LB: SettingGamepad.Button_Cycle_Form,
diff --git a/src/configs/inputs/pad_xbox360.ts b/src/configs/inputs/pad_xbox360.ts
index 6afc452f50b..88fee731d1d 100644
--- a/src/configs/inputs/pad_xbox360.ts
+++ b/src/configs/inputs/pad_xbox360.ts
@@ -51,7 +51,7 @@ const pad_xbox360 = {
[SettingGamepad.Button_Action]: Button.ACTION,
[SettingGamepad.Button_Cancel]: Button.CANCEL,
[SettingGamepad.Button_Cycle_Nature]: Button.CYCLE_NATURE,
- [SettingGamepad.Button_Cycle_Variant]: Button.V,
+ [SettingGamepad.Button_Cycle_Tera]: Button.CYCLE_TERA,
[SettingGamepad.Button_Menu]: Button.MENU,
[SettingGamepad.Button_Stats]: Button.STATS,
[SettingGamepad.Button_Cycle_Form]: Button.CYCLE_FORM,
@@ -69,7 +69,7 @@ const pad_xbox360 = {
RC_S: SettingGamepad.Button_Action,
RC_E: SettingGamepad.Button_Cancel,
RC_W: SettingGamepad.Button_Cycle_Nature,
- RC_N: SettingGamepad.Button_Cycle_Variant,
+ RC_N: SettingGamepad.Button_Cycle_Tera,
START: SettingGamepad.Button_Menu,
SELECT: SettingGamepad.Button_Stats,
LB: SettingGamepad.Button_Cycle_Form,
diff --git a/src/data/ability.ts b/src/data/ability.ts
index 940b5f0c7d7..37b97ffb5e6 100644
--- a/src/data/ability.ts
+++ b/src/data/ability.ts
@@ -1,6 +1,6 @@
-import type { EnemyPokemon } from "../field/pokemon";
+import type { EnemyPokemon, PokemonMove } from "../field/pokemon";
import type Pokemon from "../field/pokemon";
-import { HitResult, MoveResult, PlayerPokemon, PokemonMove } from "../field/pokemon";
+import { HitResult, MoveResult, PlayerPokemon } from "../field/pokemon";
import { Type } from "#enums/type";
import type { Constructor } from "#app/utils";
import * as Utils from "../utils";
@@ -12,7 +12,7 @@ import { getNonVolatileStatusEffects, getStatusEffectDescriptor, getStatusEffect
import { Gender } from "./gender";
import type Move from "./move";
import { AttackMove, MoveCategory, MoveFlags, MoveTarget, FlinchAttr, OneHitKOAttr, HitHealAttr, allMoves, StatusMove, SelfStatusMove, VariablePowerAttr, applyMoveAttrs, VariableMoveTypeAttr, RandomMovesetMoveAttr, RandomMoveAttr, NaturePowerAttr, CopyMoveAttr, NeutralDamageAgainstFlyingTypeMultiplierAttr, FixedDamageAttr } from "./move";
-import type { ArenaTrapTag } from "./arena-tag";
+import type { ArenaTrapTag, SuppressAbilitiesTag } from "./arena-tag";
import { ArenaTagSide } from "./arena-tag";
import { BerryModifier, HitHealModifier, PokemonHeldItemModifier } from "../modifier/modifier";
import { TerrainType } from "./terrain";
@@ -44,6 +44,7 @@ import { MoveEndPhase } from "#app/phases/move-end-phase";
import { PokemonAnimType } from "#enums/pokemon-anim-type";
import { StatusEffect } from "#enums/status-effect";
import { WeatherType } from "#enums/weather-type";
+import { PokemonTransformPhase } from "#app/phases/pokemon-transform-phase";
export class Ability implements Localizable {
public id: Abilities;
@@ -143,7 +144,7 @@ export class Ability implements Localizable {
}
}
-type AbAttrApplyFunc = (attr: TAttr, passive: boolean) => boolean | Promise;
+type AbAttrApplyFunc = (attr: TAttr, passive: boolean) => boolean;
type AbAttrCondition = (pokemon: Pokemon) => boolean;
// TODO: Can this be improved?
@@ -159,7 +160,7 @@ export abstract class AbAttr {
this.showAbility = showAbility;
}
- apply(pokemon: Pokemon, passive: boolean, simulated: boolean, cancelled: Utils.BooleanHolder | null, args: any[]): boolean | Promise {
+ apply(pokemon: Pokemon, passive: boolean, simulated: boolean, cancelled: Utils.BooleanHolder | null, args: any[]): boolean {
return false;
}
@@ -215,7 +216,7 @@ export class DoubleBattleChanceAbAttr extends AbAttr {
}
export class PostBattleInitAbAttr extends AbAttr {
- applyPostBattleInit(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ applyPostBattleInit(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
return false;
}
}
@@ -250,7 +251,7 @@ export class PostTeraFormChangeStatChangeAbAttr extends AbAttr {
this.stages = stages;
}
- apply(pokemon: Pokemon, passive: boolean, simulated: boolean, cancelled: Utils.BooleanHolder | null, args: any[]): boolean | Promise {
+ apply(pokemon: Pokemon, passive: boolean, simulated: boolean, cancelled: Utils.BooleanHolder | null, args: any[]): boolean {
const statStageChangePhases: StatStageChangePhase[] = [];
if (!simulated) {
@@ -265,10 +266,64 @@ export class PostTeraFormChangeStatChangeAbAttr extends AbAttr {
}
}
+/**
+ * Clears a specified weather whenever this attribute is called.
+ */
+export class ClearWeatherAbAttr extends AbAttr {
+ private weather: WeatherType[];
+
+ /**
+ * @param weather {@linkcode WeatherType[]} - the weather to be removed
+ */
+ constructor(weather: WeatherType[]) {
+ super(true);
+
+ this.weather = weather;
+ }
+
+ apply(pokemon: Pokemon, passive: boolean, simulated:boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
+ if (!simulated) {
+ globalScene.arena.trySetWeather(WeatherType.NONE, true);
+ }
+ return true;
+ }
+}
+
+/**
+ * Clears a specified terrain whenever this attribute is called.
+ */
+export class ClearTerrainAbAttr extends AbAttr {
+ private terrain: TerrainType[];
+
+ /**
+ * @param terrain {@linkcode TerrainType[]} - the terrain to be removed
+ */
+ constructor(terrain: TerrainType[]) {
+ super(true);
+
+ this.terrain = terrain;
+ }
+
+ apply(pokemon: Pokemon, passive: boolean, simulated:boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
+ if (!simulated) {
+ globalScene.arena.trySetTerrain(TerrainType.NONE, true, true);
+ }
+ return true;
+ }
+}
+
type PreDefendAbAttrCondition = (pokemon: Pokemon, attacker: Pokemon, move: Move) => boolean;
export class PreDefendAbAttr extends AbAttr {
- applyPreDefend(pokemon: Pokemon, passive: boolean, simulated: boolean, attacker: Pokemon, move: Move | null, cancelled: Utils.BooleanHolder | null, args: any[]): boolean | Promise {
+ applyPreDefend(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ attacker: Pokemon,
+ move: Move | null,
+ cancelled: Utils.BooleanHolder | null,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -546,7 +601,15 @@ export class FullHpResistTypeAbAttr extends PreDefendAbAttr {
* @param args `[0]` a container for the move's current type effectiveness multiplier
* @returns `true` if the move's effectiveness is reduced; `false` otherwise
*/
- applyPreDefend(pokemon: Pokemon, passive: boolean, simulated: boolean, attacker: Pokemon, move: Move | null, cancelled: Utils.BooleanHolder | null, args: any[]): boolean | Promise {
+ override applyPreDefend(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ attacker: Pokemon,
+ move: Move | null,
+ cancelled: Utils.BooleanHolder | null,
+ args: any[],
+ ): boolean {
const typeMultiplier = args[0];
if (!(typeMultiplier && typeMultiplier instanceof Utils.NumberHolder)) {
return false;
@@ -572,7 +635,15 @@ export class FullHpResistTypeAbAttr extends PreDefendAbAttr {
}
export class PostDefendAbAttr extends AbAttr {
- applyPostDefend(pokemon: Pokemon, passive: boolean, simulated: boolean, attacker: Pokemon, move: Move, hitResult: HitResult | null, args: any[]): boolean | Promise {
+ applyPostDefend(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ attacker: Pokemon,
+ move: Move,
+ hitResult: HitResult | null,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -593,7 +664,14 @@ export class FieldPriorityMoveImmunityAbAttr extends PreDefendAbAttr {
}
export class PostStatStageChangeAbAttr extends AbAttr {
- applyPostStatStageChange(pokemon: Pokemon, simulated: boolean, statsChanged: BattleStat[], stagesChanged: number, selfTarget: boolean, args: any[]): boolean | Promise {
+ applyPostStatStageChange(
+ pokemon: Pokemon,
+ simulated: boolean,
+ statsChanged: BattleStat[],
+ stagesChanged: integer,
+ selfTarget: boolean,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -1142,7 +1220,14 @@ export class PostStatStageChangeStatStageChangeAbAttr extends PostStatStageChang
}
export class PreAttackAbAttr extends AbAttr {
- applyPreAttack(pokemon: Pokemon, passive: boolean, simulated: boolean, defender: Pokemon | null, move: Move, args: any[]): boolean | Promise {
+ applyPreAttack(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ defender: Pokemon | null,
+ move: Move,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -1208,7 +1293,13 @@ export class VariableMovePowerAbAttr extends PreAttackAbAttr {
}
export class FieldPreventExplosiveMovesAbAttr extends AbAttr {
- apply(pokemon: Pokemon, passive: boolean, simulated: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean | Promise {
+ override apply(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ cancelled: Utils.BooleanHolder,
+ args: any[],
+ ): boolean {
cancelled.value = true;
return true;
}
@@ -1404,7 +1495,7 @@ export class DamageBoostAbAttr extends PreAttackAbAttr {
applyPreAttack(pokemon: Pokemon, passive: boolean, simulated: boolean, defender: Pokemon, move: Move, args: any[]): boolean {
if (this.condition(pokemon, defender, move)) {
const power = args[0] as Utils.NumberHolder;
- power.value = Math.floor(power.value * this.damageMultiplier);
+ power.value = Utils.toDmgValue(power.value * this.damageMultiplier);
return true;
}
@@ -1562,8 +1653,15 @@ export class StatMultiplierAbAttr extends AbAttr {
this.condition = condition ?? null;
}
- applyStatStage(pokemon: Pokemon, _passive: boolean, simulated: boolean, stat: BattleStat, statValue: Utils.NumberHolder, args: any[]): boolean | Promise {
- const move = (args[0] as Move);
+ applyStatStage(
+ pokemon: Pokemon,
+ _passive: boolean,
+ simulated: boolean,
+ stat: BattleStat,
+ statValue: Utils.NumberHolder,
+ args: any[],
+ ): boolean {
+ const move = args[0] as Move;
if (stat === this.stat && (!this.condition || this.condition(pokemon, null, move))) {
statValue.value *= this.multiplier;
return true;
@@ -1588,7 +1686,15 @@ export class PostAttackAbAttr extends AbAttr {
* applying the effect of any inherited class. This can be changed by providing a different {@link attackCondition} to the constructor. See {@link ConfusionOnStatusEffectAbAttr}
* for an example of an effect that does not require a damaging move.
*/
- applyPostAttack(pokemon: Pokemon, passive: boolean, simulated: boolean, defender: Pokemon, move: Move, hitResult: HitResult | null, args: any[]): boolean | Promise {
+ applyPostAttack(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ defender: Pokemon,
+ move: Move,
+ hitResult: HitResult | null,
+ args: any[],
+ ): boolean {
// When attackRequired is true, we require the move to be an attack move and to deal damage before checking secondary requirements.
// If attackRequired is false, we always defer to the secondary requirements.
if (this.attackCondition(pokemon, defender, move)) {
@@ -1601,7 +1707,15 @@ export class PostAttackAbAttr extends AbAttr {
/**
* This method is only called after {@link applyPostAttack} has already been applied. Use this for handling checks specific to the ability in question.
*/
- applyPostAttackAfterMoveTypeCheck(pokemon: Pokemon, passive: boolean, simulated: boolean, defender: Pokemon, move: Move, hitResult: HitResult | null, args: any[]): boolean | Promise {
+ applyPostAttackAfterMoveTypeCheck(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ defender: Pokemon,
+ move: Move,
+ hitResult: HitResult | null,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -1626,7 +1740,15 @@ export class GorillaTacticsAbAttr extends PostAttackAbAttr {
* @param args n/a
* @returns `true` if the ability is applied
*/
- applyPostAttackAfterMoveTypeCheck(pokemon: Pokemon, passive: boolean, simulated: boolean, defender: Pokemon, move: Move, hitResult: HitResult | null, args: any[]): boolean | Promise {
+ override applyPostAttackAfterMoveTypeCheck(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ defender: Pokemon,
+ move: Move,
+ hitResult: HitResult | null,
+ args: any[],
+ ): boolean {
if (simulated) {
return simulated;
}
@@ -1649,23 +1771,36 @@ export class PostAttackStealHeldItemAbAttr extends PostAttackAbAttr {
this.stealCondition = stealCondition ?? null;
}
- applyPostAttackAfterMoveTypeCheck(pokemon: Pokemon, passive: boolean, simulated: boolean, defender: Pokemon, move: Move, hitResult: HitResult, args: any[]): Promise {
- return new Promise(resolve => {
- if (!simulated && hitResult < HitResult.NO_EFFECT && (!this.stealCondition || this.stealCondition(pokemon, defender, move))) {
- const heldItems = this.getTargetHeldItems(defender).filter(i => i.isTransferable);
- if (heldItems.length) {
- const stolenItem = heldItems[pokemon.randSeedInt(heldItems.length)];
- globalScene.tryTransferHeldItemModifier(stolenItem, pokemon, false).then(success => {
- if (success) {
- globalScene.queueMessage(i18next.t("abilityTriggers:postAttackStealHeldItem", { pokemonNameWithAffix: getPokemonNameWithAffix(pokemon), defenderName: defender.name, stolenItemType: stolenItem.type.name }));
- }
- resolve(success);
- });
- return;
+ override applyPostAttackAfterMoveTypeCheck(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ defender: Pokemon,
+ move: Move,
+ hitResult: HitResult,
+ args: any[],
+ ): boolean {
+ if (
+ !simulated &&
+ hitResult < HitResult.NO_EFFECT &&
+ (!this.stealCondition || this.stealCondition(pokemon, defender, move))
+ ) {
+ const heldItems = this.getTargetHeldItems(defender).filter((i) => i.isTransferable);
+ if (heldItems.length) {
+ const stolenItem = heldItems[pokemon.randSeedInt(heldItems.length)];
+ if (globalScene.tryTransferHeldItemModifier(stolenItem, pokemon, false)) {
+ globalScene.queueMessage(
+ i18next.t("abilityTriggers:postAttackStealHeldItem", {
+ pokemonNameWithAffix: getPokemonNameWithAffix(pokemon),
+ defenderName: defender.name,
+ stolenItemType: stolenItem.type.name,
+ }),
+ );
+ return true;
}
}
- resolve(simulated);
- });
+ }
+ return false;
}
getTargetHeldItems(target: Pokemon): PokemonHeldItemModifier[] {
@@ -1742,23 +1877,37 @@ export class PostDefendStealHeldItemAbAttr extends PostDefendAbAttr {
this.condition = condition;
}
- override applyPostDefend(pokemon: Pokemon, _passive: boolean, simulated: boolean, attacker: Pokemon, move: Move, hitResult: HitResult, _args: any[]): Promise {
- return new Promise(resolve => {
- if (!simulated && hitResult < HitResult.NO_EFFECT && (!this.condition || this.condition(pokemon, attacker, move)) && !move.hitsSubstitute(attacker, pokemon)) {
- const heldItems = this.getTargetHeldItems(attacker).filter(i => i.isTransferable);
- if (heldItems.length) {
- const stolenItem = heldItems[pokemon.randSeedInt(heldItems.length)];
- globalScene.tryTransferHeldItemModifier(stolenItem, pokemon, false).then(success => {
- if (success) {
- globalScene.queueMessage(i18next.t("abilityTriggers:postDefendStealHeldItem", { pokemonNameWithAffix: getPokemonNameWithAffix(pokemon), attackerName: attacker.name, stolenItemType: stolenItem.type.name }));
- }
- resolve(success);
- });
- return;
+ override applyPostDefend(
+ pokemon: Pokemon,
+ _passive: boolean,
+ simulated: boolean,
+ attacker: Pokemon,
+ move: Move,
+ hitResult: HitResult,
+ _args: any[],
+ ): boolean {
+ if (
+ !simulated &&
+ hitResult < HitResult.NO_EFFECT &&
+ (!this.condition || this.condition(pokemon, attacker, move)) &&
+ !move.hitsSubstitute(attacker, pokemon)
+ ) {
+ const heldItems = this.getTargetHeldItems(attacker).filter((i) => i.isTransferable);
+ if (heldItems.length) {
+ const stolenItem = heldItems[pokemon.randSeedInt(heldItems.length)];
+ if (globalScene.tryTransferHeldItemModifier(stolenItem, pokemon, false)) {
+ globalScene.queueMessage(
+ i18next.t("abilityTriggers:postDefendStealHeldItem", {
+ pokemonNameWithAffix: getPokemonNameWithAffix(pokemon),
+ attackerName: attacker.name,
+ stolenItemType: stolenItem.type.name,
+ }),
+ );
+ return true;
}
}
- resolve(simulated);
- });
+ }
+ return false;
}
getTargetHeldItems(target: Pokemon): PokemonHeldItemModifier[] {
@@ -1781,7 +1930,14 @@ export class PostSetStatusAbAttr extends AbAttr {
* @param args Set of unique arguments needed by this attribute.
* @returns `true` if application of the ability succeeds.
*/
- applyPostSetStatus(pokemon: Pokemon, sourcePokemon: Pokemon | null = null, passive: boolean, effect: StatusEffect, simulated: boolean, args: any[]) : boolean | Promise {
+ applyPostSetStatus(
+ pokemon: Pokemon,
+ sourcePokemon: Pokemon | null = null,
+ passive: boolean,
+ effect: StatusEffect,
+ simulated: boolean,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -1823,7 +1979,7 @@ export class SynchronizeStatusAbAttr extends PostSetStatusAbAttr {
}
export class PostVictoryAbAttr extends AbAttr {
- applyPostVictory(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ applyPostVictory(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
return false;
}
}
@@ -1839,10 +1995,8 @@ class PostVictoryStatStageChangeAbAttr extends PostVictoryAbAttr {
this.stages = stages;
}
- applyPostVictory(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
- const stat = typeof this.stat === "function"
- ? this.stat(pokemon)
- : this.stat;
+ applyPostVictory(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
+ const stat = typeof this.stat === "function" ? this.stat(pokemon) : this.stat;
if (!simulated) {
globalScene.unshiftPhase(new StatStageChangePhase(pokemon.getBattlerIndex(), true, [ stat ], this.stages));
}
@@ -1859,7 +2013,7 @@ export class PostVictoryFormChangeAbAttr extends PostVictoryAbAttr {
this.formFunc = formFunc;
}
- applyPostVictory(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ applyPostVictory(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
const formIndex = this.formFunc(pokemon);
if (formIndex !== pokemon.formIndex) {
if (!simulated) {
@@ -1873,7 +2027,7 @@ export class PostVictoryFormChangeAbAttr extends PostVictoryAbAttr {
}
export class PostKnockOutAbAttr extends AbAttr {
- applyPostKnockOut(pokemon: Pokemon, passive: boolean, simulated: boolean, knockedOut: Pokemon, args: any[]): boolean | Promise {
+ applyPostKnockOut(pokemon: Pokemon, passive: boolean, simulated: boolean, knockedOut: Pokemon, args: any[]): boolean {
return false;
}
}
@@ -1889,10 +2043,8 @@ export class PostKnockOutStatStageChangeAbAttr extends PostKnockOutAbAttr {
this.stages = stages;
}
- applyPostKnockOut(pokemon: Pokemon, passive: boolean, simulated: boolean, knockedOut: Pokemon, args: any[]): boolean | Promise {
- const stat = typeof this.stat === "function"
- ? this.stat(pokemon)
- : this.stat;
+ applyPostKnockOut(pokemon: Pokemon, passive: boolean, simulated: boolean, knockedOut: Pokemon, args: any[]): boolean {
+ const stat = typeof this.stat === "function" ? this.stat(pokemon) : this.stat;
if (!simulated) {
globalScene.unshiftPhase(new StatStageChangePhase(pokemon.getBattlerIndex(), true, [ stat ], this.stages));
}
@@ -1905,7 +2057,7 @@ export class CopyFaintedAllyAbilityAbAttr extends PostKnockOutAbAttr {
super();
}
- applyPostKnockOut(pokemon: Pokemon, passive: boolean, simulated: boolean, knockedOut: Pokemon, args: any[]): boolean | Promise {
+ applyPostKnockOut(pokemon: Pokemon, passive: boolean, simulated: boolean, knockedOut: Pokemon, args: any[]): boolean {
if (pokemon.isPlayer() === knockedOut.isPlayer() && !knockedOut.getAbility().hasAttr(UncopiableAbilityAbAttr)) {
if (!simulated) {
globalScene.queueMessage(i18next.t("abilityTriggers:copyFaintedAllyAbility", { pokemonNameWithAffix: getPokemonNameWithAffix(knockedOut), abilityName: allAbilities[knockedOut.getAbility().id].name }));
@@ -2015,7 +2167,7 @@ export class PostSummonAbAttr extends AbAttr {
* @param args Set of unique arguments needed by this attribute
* @returns true if application of the ability succeeds
*/
- applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
return false;
}
}
@@ -2035,7 +2187,7 @@ export class PostSummonRemoveArenaTagAbAttr extends PostSummonAbAttr {
this.arenaTags = arenaTags;
}
- applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ override applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
if (!simulated) {
for (const arenaTag of this.arenaTags) {
globalScene.arena.removeTag(arenaTag);
@@ -2045,6 +2197,34 @@ export class PostSummonRemoveArenaTagAbAttr extends PostSummonAbAttr {
}
}
+/**
+ * Generic class to add an arena tag upon switching in
+ */
+export class PostSummonAddArenaTagAbAttr extends PostSummonAbAttr {
+ private readonly tagType: ArenaTagType;
+ private readonly turnCount: number;
+ private readonly side?: ArenaTagSide;
+ private readonly quiet?: boolean;
+ private sourceId: number;
+
+
+ constructor(tagType: ArenaTagType, turnCount: number, side?: ArenaTagSide, quiet?: boolean) {
+ super(false);
+ this.tagType = tagType;
+ this.turnCount = turnCount;
+ this.side = side;
+ this.quiet = quiet;
+ }
+
+ public override applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
+ this.sourceId = pokemon.id;
+ if (!simulated) {
+ globalScene.arena.addTag(this.tagType, this.turnCount, undefined, this.sourceId, this.side, this.quiet);
+ }
+ return true;
+ }
+}
+
export class PostSummonMessageAbAttr extends PostSummonAbAttr {
private messageFunc: (pokemon: Pokemon) => string;
@@ -2383,9 +2563,9 @@ export class PostSummonUserFieldRemoveStatusEffectAbAttr extends PostSummonAbAtt
* @param pokemon - The Pokémon that triggered the ability.
* @param passive - n/a
* @param args - n/a
- * @returns A boolean or a promise that resolves to a boolean indicating the result of the ability application.
+ * @returns A boolean that resolves to a boolean indicating the result of the ability application.
*/
- applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ override applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
const party = pokemon instanceof PlayerPokemon ? globalScene.getPlayerField() : globalScene.getEnemyField();
const allowedParty = party.filter(p => p.isAllowedInBattle());
@@ -2445,12 +2625,11 @@ export class PostSummonTransformAbAttr extends PostSummonAbAttr {
super(true, false);
}
- async applyPostSummon(pokemon: Pokemon, _passive: boolean, simulated: boolean, _args: any[]): Promise {
+ override applyPostSummon(pokemon: Pokemon, _passive: boolean, simulated: boolean, _args: any[]): boolean {
const targets = pokemon.getOpponents();
if (simulated || !targets.length) {
return simulated;
}
- const promises: Promise[] = [];
let target: Pokemon;
if (targets.length > 1) {
@@ -2476,41 +2655,14 @@ export class PostSummonTransformAbAttr extends PostSummonAbAttr {
return false;
}
- pokemon.summonData.speciesForm = target.getSpeciesForm();
- pokemon.summonData.gender = target.getGender();
+ globalScene.unshiftPhase(new PokemonTransformPhase(pokemon.getBattlerIndex(), target.getBattlerIndex(), true));
- // Copy all stats (except HP)
- for (const s of EFFECTIVE_STATS) {
- pokemon.setStat(s, target.getStat(s, false), false);
- }
-
- // Copy all stat stages
- for (const s of BATTLE_STATS) {
- pokemon.setStatStage(s, target.getStatStage(s));
- }
-
- pokemon.summonData.moveset = target.getMoveset().map((m) => {
- if (m) {
- // If PP value is less than 5, do nothing. If greater, we need to reduce the value to 5.
- return new PokemonMove(m.moveId, 0, 0, false, Math.min(m.getMove().pp, 5));
- } else {
- console.warn(`Imposter: somehow iterating over a ${m} value when copying moveset!`);
- return new PokemonMove(Moves.NONE);
- }
- });
- pokemon.summonData.types = target.getTypes();
- promises.push(pokemon.updateInfo());
-
- globalScene.queueMessage(i18next.t("abilityTriggers:postSummonTransform", { pokemonNameWithAffix: getPokemonNameWithAffix(pokemon), targetName: target.name, }));
- globalScene.playSound("battle_anims/PRSFX- Transform");
- promises.push(pokemon.loadAssets(false).then(() => {
- pokemon.playAnim();
- pokemon.updateInfo();
- // If the new ability activates immediately, it needs to happen after all the transform animations
- pokemon.setTempAbility(target.getAbility());
- }));
-
- await Promise.all(promises);
+ globalScene.queueMessage(
+ i18next.t("abilityTriggers:postSummonTransform", {
+ pokemonNameWithAffix: getPokemonNameWithAffix(pokemon),
+ targetName: target.name,
+ }),
+ );
return true;
}
@@ -2627,13 +2779,13 @@ export class PreSwitchOutAbAttr extends AbAttr {
super(true);
}
- applyPreSwitchOut(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ applyPreSwitchOut(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
return false;
}
}
export class PreSwitchOutResetStatusAbAttr extends PreSwitchOutAbAttr {
- applyPreSwitchOut(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ override applyPreSwitchOut(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
if (pokemon.status) {
if (!simulated) {
pokemon.resetStatus();
@@ -2647,9 +2799,72 @@ export class PreSwitchOutResetStatusAbAttr extends PreSwitchOutAbAttr {
}
}
+/**
+ * Clears Desolate Land/Primordial Sea/Delta Stream upon the Pokemon switching out.
+ */
+export class PreSwitchOutClearWeatherAbAttr extends PreSwitchOutAbAttr {
+ /**
+ * @param pokemon The {@linkcode Pokemon} with the ability
+ * @param passive N/A
+ * @param args N/A
+ * @returns {boolean} Returns true if the weather clears, otherwise false.
+ */
+ override applyPreSwitchOut(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
+ const weatherType = globalScene.arena.weather?.weatherType;
+ let turnOffWeather = false;
+
+ // Clear weather only if user's ability matches the weather and no other pokemon has the ability.
+ switch (weatherType) {
+ case WeatherType.HARSH_SUN:
+ if (
+ pokemon.hasAbility(Abilities.DESOLATE_LAND) &&
+ globalScene
+ .getField(true)
+ .filter((p) => p !== pokemon)
+ .filter((p) => p.hasAbility(Abilities.DESOLATE_LAND)).length === 0
+ ) {
+ turnOffWeather = true;
+ }
+ break;
+ case WeatherType.HEAVY_RAIN:
+ if (
+ pokemon.hasAbility(Abilities.PRIMORDIAL_SEA) &&
+ globalScene
+ .getField(true)
+ .filter((p) => p !== pokemon)
+ .filter((p) => p.hasAbility(Abilities.PRIMORDIAL_SEA)).length === 0
+ ) {
+ turnOffWeather = true;
+ }
+ break;
+ case WeatherType.STRONG_WINDS:
+ if (
+ pokemon.hasAbility(Abilities.DELTA_STREAM) &&
+ globalScene
+ .getField(true)
+ .filter((p) => p !== pokemon)
+ .filter((p) => p.hasAbility(Abilities.DELTA_STREAM)).length === 0
+ ) {
+ turnOffWeather = true;
+ }
+ break;
+ }
+
+ if (simulated) {
+ return turnOffWeather;
+ }
+
+ if (turnOffWeather) {
+ globalScene.arena.trySetWeather(WeatherType.NONE, false);
+ return true;
+ }
+
+ return false;
+ }
+}
export class PreSwitchOutHealAbAttr extends PreSwitchOutAbAttr {
- applyPreSwitchOut(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ override applyPreSwitchOut(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
if (!pokemon.isFullHp()) {
if (!simulated) {
const healAmount = Utils.toDmgValue(pokemon.getMaxHp() * 0.33);
@@ -2685,7 +2900,7 @@ export class PreSwitchOutFormChangeAbAttr extends PreSwitchOutAbAttr {
* @param args N/A
* @returns true if the form change was successful
*/
- applyPreSwitchOut(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ override applyPreSwitchOut(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
const formIndex = this.formFunc(pokemon);
if (formIndex !== pokemon.formIndex) {
if (!simulated) {
@@ -2700,7 +2915,7 @@ export class PreSwitchOutFormChangeAbAttr extends PreSwitchOutAbAttr {
}
export class PreLeaveFieldAbAttr extends AbAttr {
- applyPreLeaveField(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ applyPreLeaveField(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
return false;
}
}
@@ -2715,7 +2930,7 @@ export class PreLeaveFieldClearWeatherAbAttr extends PreLeaveFieldAbAttr {
* @param args N/A
* @returns Returns `true` if the weather clears, otherwise `false`.
*/
- applyPreLeaveField(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ applyPreLeaveField(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
const weatherType = globalScene.arena.weather?.weatherType;
let turnOffWeather = false;
@@ -2754,8 +2969,35 @@ export class PreLeaveFieldClearWeatherAbAttr extends PreLeaveFieldAbAttr {
}
}
+/**
+ * Updates the active {@linkcode SuppressAbilitiesTag} when a pokemon with {@linkcode Abilities.NEUTRALIZING_GAS} leaves the field
+ */
+export class PreLeaveFieldRemoveSuppressAbilitiesSourceAbAttr extends PreLeaveFieldAbAttr {
+ constructor() {
+ super(false);
+ }
+
+ public override applyPreLeaveField(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
+ if (!simulated) {
+ const suppressTag = globalScene.arena.getTag(ArenaTagType.NEUTRALIZING_GAS) as SuppressAbilitiesTag;
+ if (suppressTag) {
+ suppressTag.onSourceLeave(globalScene.arena);
+ return true;
+ }
+ }
+ return simulated;
+ }
+}
+
export class PreStatStageChangeAbAttr extends AbAttr {
- applyPreStatStageChange(pokemon: Pokemon | null, passive: boolean, simulated: boolean, stat: BattleStat, cancelled: Utils.BooleanHolder, args: any[]): boolean | Promise {
+ applyPreStatStageChange(
+ pokemon: Pokemon | null,
+ passive: boolean,
+ simulated: boolean,
+ stat: BattleStat,
+ cancelled: Utils.BooleanHolder,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -2878,7 +3120,14 @@ export class ConfusionOnStatusEffectAbAttr extends PostAttackAbAttr {
}
export class PreSetStatusAbAttr extends AbAttr {
- applyPreSetStatus(pokemon: Pokemon, passive: boolean, simulated: boolean, effect: StatusEffect | undefined, cancelled: Utils.BooleanHolder, args: any[]): boolean | Promise {
+ applyPreSetStatus(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ effect: StatusEffect | undefined,
+ cancelled: Utils.BooleanHolder,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -2944,7 +3193,14 @@ export class StatusEffectImmunityAbAttr extends PreSetStatusEffectImmunityAbAttr
export class UserFieldStatusEffectImmunityAbAttr extends PreSetStatusEffectImmunityAbAttr { }
export class PreApplyBattlerTagAbAttr extends AbAttr {
- applyPreApplyBattlerTag(pokemon: Pokemon, passive: boolean, simulated: boolean, tag: BattlerTag, cancelled: Utils.BooleanHolder, args: any[]): boolean | Promise {
+ applyPreApplyBattlerTag(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ tag: BattlerTag,
+ cancelled: Utils.BooleanHolder,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -3139,7 +3395,14 @@ export class ChangeMovePriorityAbAttr extends AbAttr {
export class IgnoreContactAbAttr extends AbAttr { }
export class PreWeatherEffectAbAttr extends AbAttr {
- applyPreWeatherEffect(pokemon: Pokemon, passive: Boolean, simulated: boolean, weather: Weather | null, cancelled: Utils.BooleanHolder, args: any[]): boolean | Promise {
+ applyPreWeatherEffect(
+ pokemon: Pokemon,
+ passive: Boolean,
+ simulated: boolean,
+ weather: Weather | null,
+ cancelled: Utils.BooleanHolder,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -3420,7 +3683,13 @@ export class PostWeatherLapseAbAttr extends AbAttr {
this.weatherTypes = weatherTypes;
}
- applyPostWeatherLapse(pokemon: Pokemon, passive: boolean, simulated: boolean, weather: Weather | null, args: any[]): boolean | Promise {
+ applyPostWeatherLapse(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ weather: Weather | null,
+ args: any[],
+ ): boolean {
return false;
}
@@ -3516,7 +3785,7 @@ function getTerrainCondition(...terrainTypes: TerrainType[]): AbAttrCondition {
}
export class PostTurnAbAttr extends AbAttr {
- applyPostTurn(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ applyPostTurn(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
return false;
}
}
@@ -3542,7 +3811,7 @@ export class PostTurnStatusHealAbAttr extends PostTurnAbAttr {
* @param {any[]} args N/A
* @returns Returns true if healed from status, false if not
*/
- applyPostTurn(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ override applyPostTurn(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
if (pokemon.status && this.effects.includes(pokemon.status.effect)) {
if (!pokemon.isFullHp()) {
if (!simulated) {
@@ -3776,7 +4045,7 @@ export class PostTurnHurtIfSleepingAbAttr extends PostTurnAbAttr {
* @param args N/A
* @returns `true` if any opponents are sleeping
*/
- applyPostTurn(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ override applyPostTurn(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
let hadEffect: boolean = false;
for (const opp of pokemon.getOpponents()) {
if ((opp.status?.effect === StatusEffect.SLEEP || opp.hasAbility(Abilities.COMATOSE)) && !opp.hasAbilityWithAttr(BlockNonDirectDamageAbAttr) && !opp.switchOutStatus) {
@@ -3870,7 +4139,14 @@ export class PostBiomeChangeTerrainChangeAbAttr extends PostBiomeChangeAbAttr {
* @extends AbAttr
*/
export class PostMoveUsedAbAttr extends AbAttr {
- applyPostMoveUsed(pokemon: Pokemon, move: PokemonMove, source: Pokemon, targets: BattlerIndex[], simulated: boolean, args: any[]): boolean | Promise {
+ applyPostMoveUsed(
+ pokemon: Pokemon,
+ move: PokemonMove,
+ source: Pokemon,
+ targets: BattlerIndex[],
+ simulated: boolean,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -3891,7 +4167,14 @@ export class PostDancingMoveAbAttr extends PostMoveUsedAbAttr {
*
* @return true if the Dancer ability was resolved
*/
- applyPostMoveUsed(dancer: Pokemon, move: PokemonMove, source: Pokemon, targets: BattlerIndex[], simulated: boolean, args: any[]): boolean | Promise {
+ override applyPostMoveUsed(
+ dancer: Pokemon,
+ move: PokemonMove,
+ source: Pokemon,
+ targets: BattlerIndex[],
+ simulated: boolean,
+ args: any[],
+ ): boolean {
// List of tags that prevent the Dancer from replicating the move
const forbiddenTags = [ BattlerTagType.FLYING, BattlerTagType.UNDERWATER,
BattlerTagType.UNDERGROUND, BattlerTagType.HIDDEN ];
@@ -3933,7 +4216,7 @@ export class PostDancingMoveAbAttr extends PostMoveUsedAbAttr {
* @extends AbAttr
*/
export class PostItemLostAbAttr extends AbAttr {
- applyPostItemLost(pokemon: Pokemon, simulated: boolean, args: any[]): boolean | Promise {
+ applyPostItemLost(pokemon: Pokemon, simulated: boolean, args: any[]): boolean {
return false;
}
}
@@ -3954,7 +4237,7 @@ export class PostItemLostApplyBattlerTagAbAttr extends PostItemLostAbAttr {
* @param args N/A
* @returns true if BattlerTag was applied
*/
- applyPostItemLost(pokemon: Pokemon, simulated: boolean, args: any[]): boolean | Promise {
+ override applyPostItemLost(pokemon: Pokemon, simulated: boolean, args: any[]): boolean {
if (!pokemon.getTag(this.tagType) && !simulated) {
pokemon.addTag(this.tagType);
return true;
@@ -3980,7 +4263,13 @@ export class StatStageChangeMultiplierAbAttr extends AbAttr {
}
export class StatStageChangeCopyAbAttr extends AbAttr {
- apply(pokemon: Pokemon, passive: boolean, simulated: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean | Promise {
+ override apply(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ cancelled: Utils.BooleanHolder,
+ args: any[],
+ ): boolean {
if (!simulated) {
globalScene.unshiftPhase(new StatStageChangePhase(pokemon.getBattlerIndex(), true, (args[0] as BattleStat[]), (args[1] as number), true, false, false));
}
@@ -4096,7 +4385,14 @@ export class CheckTrappedAbAttr extends AbAttr {
this.arenaTrapCondition = condition;
}
- applyCheckTrapped(pokemon: Pokemon, passive: boolean, simulated: boolean, trapped: Utils.BooleanHolder, otherPokemon: Pokemon, args: any[]): boolean | Promise {
+ applyCheckTrapped(
+ pokemon: Pokemon,
+ passive: boolean,
+ simulated: boolean,
+ trapped: Utils.BooleanHolder,
+ otherPokemon: Pokemon,
+ args: any[],
+ ): boolean {
return false;
}
}
@@ -4170,7 +4466,7 @@ export class PostBattleLootAbAttr extends PostBattleAbAttr {
if (!simulated && postBattleLoot.length && args[0]) {
const randItem = Utils.randSeedItem(postBattleLoot);
//@ts-ignore - TODO see below
- if (globalScene.tryTransferHeldItemModifier(randItem, pokemon, true, 1, true, undefined, false)) { // TODO: fix. This is a promise!?
+ if (globalScene.tryTransferHeldItemModifier(randItem, pokemon, true, 1, true, undefined, false)) {
postBattleLoot.splice(postBattleLoot.indexOf(randItem), 1);
globalScene.queueMessage(i18next.t("abilityTriggers:postBattleLoot", { pokemonNameWithAffix: getPokemonNameWithAffix(pokemon), itemName: randItem.type.name }));
return true;
@@ -4444,21 +4740,6 @@ export class MoveAbilityBypassAbAttr extends AbAttr {
}
}
-export class SuppressFieldAbilitiesAbAttr extends AbAttr {
- constructor() {
- super(false);
- }
-
- apply(pokemon: Pokemon, passive: boolean, simulated: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
- const ability = (args[0] as Ability);
- if (!ability.hasAttr(UnsuppressableAbilityAbAttr) && !ability.hasAttr(SuppressFieldAbilitiesAbAttr)) {
- cancelled.value = true;
- return true;
- }
- return false;
- }
-}
-
export class AlwaysHitAbAttr extends AbAttr { }
/** Attribute for abilities that allow moves that make contact to ignore protection (i.e. Unseen Fist) */
@@ -4773,7 +5054,7 @@ export class PreventBypassSpeedChanceAbAttr extends AbAttr {
const turnCommand = globalScene.currentBattle.turnCommands[pokemon.getBattlerIndex()];
const isCommandFight = turnCommand?.command === Command.FIGHT;
const move = turnCommand?.move?.move ? allMoves[turnCommand.move.move] : null;
- if (this.condition(pokemon, move!) && isCommandFight) {
+ if (isCommandFight && this.condition(pokemon, move!)) {
bypassSpeed.value = false;
canCheckHeldItems.value = false;
return false;
@@ -4841,7 +5122,7 @@ export class TerrainEventTypeChangeAbAttr extends PostSummonAbAttr {
* Checks if the Pokemon should change types if summoned into an active terrain
* @returns `true` if there is an active terrain requiring a type change | `false` if not
*/
- override applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean | Promise {
+ override applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
if (globalScene.arena.getTerrainType() !== TerrainType.NONE) {
return this.apply(pokemon, passive, simulated, new Utils.BooleanHolder(false), []);
}
@@ -4860,27 +5141,7 @@ export class TerrainEventTypeChangeAbAttr extends PostSummonAbAttr {
}
}
-async function applyAbAttrsInternal(
- attrType: Constructor,
- pokemon: Pokemon | null,
- applyFunc: AbAttrApplyFunc,
- args: any[],
- showAbilityInstant: boolean = false,
- simulated: boolean = false,
- messages: string[] = [],
- gainedMidTurn: boolean = false
-) {
- for (const passive of [ false, true ]) {
- if (!pokemon?.canApplyAbility(passive) || (passive && (pokemon.getPassiveAbility().id === pokemon.getAbility().id))) {
- continue;
- }
-
- applySingleAbAttrs(pokemon, passive, attrType, applyFunc, args, gainedMidTurn, simulated, showAbilityInstant, messages);
- globalScene.clearPhaseQueueSplice();
- }
-}
-
-async function applySingleAbAttrs(
+function applySingleAbAttrs(
pokemon: Pokemon,
passive: boolean,
attrType: Constructor,
@@ -4891,6 +5152,10 @@ async function applySingleAbAttrs(
showAbilityInstant: boolean = false,
messages: string[] = []
) {
+ if (!pokemon?.canApplyAbility(passive) || (passive && (pokemon.getPassiveAbility().id === pokemon.getAbility().id))) {
+ return;
+ }
+
const ability = passive ? pokemon.getPassiveAbility() : pokemon.getAbility();
if (gainedMidTurn && ability.getAttrs(attrType).some(attr => attr instanceof PostSummonAbAttr && !attr.shouldActivateOnGain())) {
return;
@@ -4903,13 +5168,7 @@ async function applySingleAbAttrs(
}
globalScene.setPhaseQueueSplice();
-
- let result = applyFunc(attr, passive);
- // TODO Remove this when promises get reworked
- if (result instanceof Promise) {
- result = await result;
- }
- if (result) {
+ if (applyFunc(attr, passive)) {
if (pokemon.summonData && !pokemon.summonData.abilitiesApplied.includes(ability.id)) {
pokemon.summonData.abilitiesApplied.push(ability.id);
}
@@ -5074,7 +5333,14 @@ function calculateShellBellRecovery(pokemon: Pokemon): number {
* @extends AbAttr
*/
export class PostDamageAbAttr extends AbAttr {
- public applyPostDamage(pokemon: Pokemon, damage: number, passive: boolean, simulated: boolean, args: any[], source?: Pokemon): boolean | Promise {
+ public applyPostDamage(
+ pokemon: Pokemon,
+ damage: number,
+ passive: boolean,
+ simulated: boolean,
+ args: any[],
+ source?: Pokemon,
+ ): boolean {
return false;
}
}
@@ -5111,7 +5377,14 @@ export class PostDamageForceSwitchAbAttr extends PostDamageAbAttr {
* @param source The Pokemon that dealt damage
* @returns `true` if the switch-out logic was successfully applied
*/
- public override applyPostDamage(pokemon: Pokemon, damage: number, passive: boolean, simulated: boolean, args: any[], source?: Pokemon): boolean | Promise {
+ public override applyPostDamage(
+ pokemon: Pokemon,
+ damage: number,
+ passive: boolean,
+ simulated: boolean,
+ args: any[],
+ source?: Pokemon,
+ ): boolean {
const moveHistory = pokemon.getMoveHistory();
// Will not activate when the Pokémon's HP is lowered by cutting its own HP
const fordbiddenAttackingMoves = [ Moves.BELLY_DRUM, Moves.SUBSTITUTE, Moves.CURSE, Moves.PAIN_SPLIT ];
@@ -5165,44 +5438,162 @@ export class PostDamageForceSwitchAbAttr extends PostDamageAbAttr {
return this.helper.getFailedText(target);
}
}
-
-
-export function applyAbAttrs(attrType: Constructor, pokemon: Pokemon, cancelled: Utils.BooleanHolder | null, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.apply(pokemon, passive, simulated, cancelled, args), args, false, simulated);
+function applyAbAttrsInternal(
+ attrType: Constructor,
+ pokemon: Pokemon | null,
+ applyFunc: AbAttrApplyFunc,
+ args: any[],
+ showAbilityInstant: boolean = false,
+ simulated: boolean = false,
+ messages: string[] = [],
+ gainedMidTurn: boolean = false
+) {
+ for (const passive of [ false, true ]) {
+ if (pokemon) {
+ applySingleAbAttrs(pokemon, passive, attrType, applyFunc, args, gainedMidTurn, simulated, showAbilityInstant, messages);
+ globalScene.clearPhaseQueueSplice();
+ }
+ }
}
-export function applyPostBattleInitAbAttrs(attrType: Constructor,
- pokemon: Pokemon, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostBattleInit(pokemon, passive, simulated, args), args, false, simulated);
+export function applyAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ cancelled: Utils.BooleanHolder | null,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.apply(pokemon, passive, simulated, cancelled, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPreDefendAbAttrs(attrType: Constructor,
- pokemon: Pokemon, attacker: Pokemon, move: Move | null, cancelled: Utils.BooleanHolder | null, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPreDefend(pokemon, passive, simulated, attacker, move, cancelled, args), args, false, simulated);
+export function applyPostBattleInitAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostBattleInit(pokemon, passive, simulated, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPostDefendAbAttrs(attrType: Constructor,
- pokemon: Pokemon, attacker: Pokemon, move: Move, hitResult: HitResult | null, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostDefend(pokemon, passive, simulated, attacker, move, hitResult, args), args, false, simulated);
+export function applyPreDefendAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ attacker: Pokemon,
+ move: Move | null,
+ cancelled: Utils.BooleanHolder | null,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPreDefend(pokemon, passive, simulated, attacker, move, cancelled, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPostMoveUsedAbAttrs(attrType: Constructor,
- pokemon: Pokemon, move: PokemonMove, source: Pokemon, targets: BattlerIndex[], simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostMoveUsed(pokemon, move, source, targets, simulated, args), args, false, simulated);
+export function applyPostDefendAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ attacker: Pokemon,
+ move: Move,
+ hitResult: HitResult | null,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostDefend(pokemon, passive, simulated, attacker, move, hitResult, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyStatMultiplierAbAttrs(attrType: Constructor,
- pokemon: Pokemon, stat: BattleStat, statValue: Utils.NumberHolder, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyStatStage(pokemon, passive, simulated, stat, statValue, args), args);
-}
-export function applyPostSetStatusAbAttrs(attrType: Constructor,
- pokemon: Pokemon, effect: StatusEffect, sourcePokemon?: Pokemon | null, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostSetStatus(pokemon, sourcePokemon, passive, effect, simulated, args), args, false, simulated);
+export function applyPostMoveUsedAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ move: PokemonMove,
+ source: Pokemon,
+ targets: BattlerIndex[],
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostMoveUsed(pokemon, move, source, targets, simulated, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPostDamageAbAttrs(attrType: Constructor,
- pokemon: Pokemon, damage: number, passive: boolean, simulated: boolean = false, args: any[], source?: Pokemon): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostDamage(pokemon, damage, passive, simulated, args, source), args);
+export function applyStatMultiplierAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ stat: BattleStat,
+ statValue: Utils.NumberHolder,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyStatStage(pokemon, passive, simulated, stat, statValue, args),
+ args,
+ );
+}
+export function applyPostSetStatusAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ effect: StatusEffect,
+ sourcePokemon?: Pokemon | null,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostSetStatus(pokemon, sourcePokemon, passive, effect, simulated, args),
+ args,
+ false,
+ simulated,
+ );
+}
+
+export function applyPostDamageAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ damage: number,
+ passive: boolean,
+ simulated: boolean = false,
+ args: any[],
+ source?: Pokemon,
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostDamage(pokemon, damage, passive, simulated, args, source),
+ args,
+ );
}
/**
@@ -5215,109 +5606,369 @@ export function applyPostDamageAbAttrs(attrType: Constructor,
* @param hasApplied {@linkcode Utils.BooleanHolder} whether or not a FieldMultiplyBattleStatAbAttr has already affected this stat
* @param args unused
*/
-export function applyFieldStatMultiplierAbAttrs(attrType: Constructor,
- pokemon: Pokemon, stat: Stat, statValue: Utils.NumberHolder, checkedPokemon: Pokemon, hasApplied: Utils.BooleanHolder, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyFieldStat(pokemon, passive, simulated, stat, statValue, checkedPokemon, hasApplied, args), args);
+export function applyFieldStatMultiplierAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ stat: Stat,
+ statValue: Utils.NumberHolder,
+ checkedPokemon: Pokemon,
+ hasApplied: Utils.BooleanHolder,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) =>
+ attr.applyFieldStat(pokemon, passive, simulated, stat, statValue, checkedPokemon, hasApplied, args),
+ args,
+ );
}
-export function applyPreAttackAbAttrs(attrType: Constructor,
- pokemon: Pokemon, defender: Pokemon | null, move: Move, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPreAttack(pokemon, passive, simulated, defender, move, args), args, false, simulated);
+export function applyPreAttackAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ defender: Pokemon | null,
+ move: Move,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPreAttack(pokemon, passive, simulated, defender, move, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPostAttackAbAttrs(attrType: Constructor,
- pokemon: Pokemon, defender: Pokemon, move: Move, hitResult: HitResult | null, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostAttack(pokemon, passive, simulated, defender, move, hitResult, args), args, false, simulated);
+export function applyPostAttackAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ defender: Pokemon,
+ move: Move,
+ hitResult: HitResult | null,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostAttack(pokemon, passive, simulated, defender, move, hitResult, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPostKnockOutAbAttrs(attrType: Constructor,
- pokemon: Pokemon, knockedOut: Pokemon, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostKnockOut(pokemon, passive, simulated, knockedOut, args), args, false, simulated);
+export function applyPostKnockOutAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ knockedOut: Pokemon,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostKnockOut(pokemon, passive, simulated, knockedOut, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPostVictoryAbAttrs(attrType: Constructor,
- pokemon: Pokemon, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostVictory(pokemon, passive, simulated, args), args, false, simulated);
+export function applyPostVictoryAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostVictory(pokemon, passive, simulated, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPostSummonAbAttrs(attrType: Constructor,
- pokemon: Pokemon, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostSummon(pokemon, passive, simulated, args), args, false, simulated);
+export function applyPostSummonAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostSummon(pokemon, passive, simulated, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPreSwitchOutAbAttrs(attrType: Constructor,
- pokemon: Pokemon, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPreSwitchOut(pokemon, passive, simulated, args), args, true, simulated);
+export function applyPreSwitchOutAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPreSwitchOut(pokemon, passive, simulated, args),
+ args,
+ true,
+ simulated,
+ );
}
-export function applyPreLeaveFieldAbAttrs(attrType: Constructor,
- pokemon: Pokemon, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPreLeaveField(pokemon, passive, simulated, args), args, true, simulated);
+export function applyPreLeaveFieldAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ return applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) =>
+ attr.applyPreLeaveField(pokemon, passive, simulated, args),
+ args,
+ true,
+ simulated
+ );
}
-export function applyPreStatStageChangeAbAttrs(attrType: Constructor,
- pokemon: Pokemon | null, stat: BattleStat, cancelled: Utils.BooleanHolder, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPreStatStageChange(pokemon, passive, simulated, stat, cancelled, args), args, false, simulated);
+export function applyPreStatStageChangeAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon | null,
+ stat: BattleStat,
+ cancelled: Utils.BooleanHolder,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPreStatStageChange(pokemon, passive, simulated, stat, cancelled, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPostStatStageChangeAbAttrs(attrType: Constructor,
- pokemon: Pokemon, stats: BattleStat[], stages: number, selfTarget: boolean, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, _passive) => attr.applyPostStatStageChange(pokemon, simulated, stats, stages, selfTarget, args), args, false, simulated);
+export function applyPostStatStageChangeAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ stats: BattleStat[],
+ stages: integer,
+ selfTarget: boolean,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, _passive) => attr.applyPostStatStageChange(pokemon, simulated, stats, stages, selfTarget, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPreSetStatusAbAttrs(attrType: Constructor,
- pokemon: Pokemon, effect: StatusEffect | undefined, cancelled: Utils.BooleanHolder, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPreSetStatus(pokemon, passive, simulated, effect, cancelled, args), args, false, simulated);
+export function applyPreSetStatusAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ effect: StatusEffect | undefined,
+ cancelled: Utils.BooleanHolder,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPreSetStatus(pokemon, passive, simulated, effect, cancelled, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPreApplyBattlerTagAbAttrs(attrType: Constructor,
- pokemon: Pokemon, tag: BattlerTag, cancelled: Utils.BooleanHolder, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPreApplyBattlerTag(pokemon, passive, simulated, tag, cancelled, args), args, false, simulated);
+export function applyPreApplyBattlerTagAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ tag: BattlerTag,
+ cancelled: Utils.BooleanHolder,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPreApplyBattlerTag(pokemon, passive, simulated, tag, cancelled, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPreWeatherEffectAbAttrs(attrType: Constructor,
- pokemon: Pokemon, weather: Weather | null, cancelled: Utils.BooleanHolder, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPreWeatherEffect(pokemon, passive, simulated, weather, cancelled, args), args, true, simulated);
+export function applyPreWeatherEffectAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ weather: Weather | null,
+ cancelled: Utils.BooleanHolder,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPreWeatherEffect(pokemon, passive, simulated, weather, cancelled, args),
+ args,
+ true,
+ simulated,
+ );
}
-export function applyPostTurnAbAttrs(attrType: Constructor,
- pokemon: Pokemon, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostTurn(pokemon, passive, simulated, args), args, false, simulated);
+export function applyPostTurnAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostTurn(pokemon, passive, simulated, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPostWeatherChangeAbAttrs(attrType: Constructor,
- pokemon: Pokemon, weather: WeatherType, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostWeatherChange(pokemon, passive, simulated, weather, args), args, false, simulated);
+export function applyPostWeatherChangeAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ weather: WeatherType,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostWeatherChange(pokemon, passive, simulated, weather, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPostWeatherLapseAbAttrs(attrType: Constructor,
- pokemon: Pokemon, weather: Weather | null, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostWeatherLapse(pokemon, passive, simulated, weather, args), args, false, simulated);
+export function applyPostWeatherLapseAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ weather: Weather | null,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal(
+ attrType,
+ pokemon,
+ (attr, passive) => attr.applyPostWeatherLapse(pokemon, passive, simulated, weather, args),
+ args,
+ false,
+ simulated,
+ );
}
-export function applyPostTerrainChangeAbAttrs(attrType: Constructor,
- pokemon: Pokemon, terrain: TerrainType, simulated: boolean = false, ...args: any[]): Promise {
- return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPostTerrainChange(pokemon, passive, simulated, terrain, args), args, false, simulated);
+export function applyPostTerrainChangeAbAttrs(
+ attrType: Constructor,
+ pokemon: Pokemon,
+ terrain: TerrainType,
+ simulated: boolean = false,
+ ...args: any[]
+): void {
+ applyAbAttrsInternal