diff --git a/scripts/showdown.py b/scripts/showdown.py new file mode 100644 index 0000000000..e6edced8cf --- /dev/null +++ b/scripts/showdown.py @@ -0,0 +1,138 @@ +import difflib +import pathlib +import typing as t + +import requests +import tabulate +from bs4 import BeautifulSoup + +# NOTE: Doesn't account for females, refer this and manually check them in later https://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_with_gender_differences + +DRY_RUN = True +SHOWDOWN_DIR = pathlib.Path(__file__).parent.parent / "sprites" / "pokemon" / "other" / "showdown" +SHOWDOWN_BASE_URL = "https://play.pokemonshowdown.com/sprites/ani" + + +class PokemonRecord(t.TypedDict): + id: int + name: str + + +def list_pokemon() -> dict[str, str]: + """Retrieve a list of all Pokémon from the PokéAPI.""" + api_url = "https://pokeapi.co/api/v2/pokemon?limit=10000" + response = requests.get(api_url) + + if response.status_code != 200: + raise Exception(f"Failed to retrieve Pokémon list (Status {response.status_code})") + + data = response.json() + return {i["url"].split("/")[-2]: i["name"] for i in data["results"]} + + +def list_showdown_images(folder: pathlib.Path) -> set[str]: + """List all Pokémon images available in the Showdown directory.""" + image_files = {f.stem for f in folder.glob("*.gif") if f.is_file()} + return image_files + + +def _construct_showdown_url(back: bool = False, shiny: bool = False) -> str: + """Construct the Showdown URL based on image type.""" + base_url = SHOWDOWN_BASE_URL + if back: + base_url += "-back" + if shiny: + base_url += "-shiny" + return base_url + + +def showdown_sprite_index(back: bool = False, shiny: bool = False) -> set[str]: + """Retrieve the index of available Pokémon sprites from Showdown.""" + index = requests.get(_construct_showdown_url(back, shiny)) + if index.status_code != 200: + raise Exception(f"Failed to retrieve Showdown sprite index (Status {index.status_code})") + soup = BeautifulSoup(index.text, "html.parser") + links = soup.find_all("a") + return { + str(link.get("href")).strip("./").split(".")[0] for link in links if str(link.get("href", "")).endswith(".gif") + } + + +def download_image(id: str, name: str, folder: pathlib.Path, pokemon_url: str) -> None: + """Download a Pokémon image from the Showdown repository.""" + response = requests.get(pokemon_url) + if response.status_code != 200: + print(f"Failed to download image for {name} (Status {response.status_code})") + return + + with open(folder / f"{id}.gif", "wb") as img_file: + img_file.write(response.content) + + print(f"Downloaded image for {name} to {folder / f'{id}.gif'}") + + +if __name__ == "__main__": + pokemon_list = list_pokemon() + + showdown_folders = ( + SHOWDOWN_DIR, + SHOWDOWN_DIR / "shiny", + SHOWDOWN_DIR / "back", + SHOWDOWN_DIR / "back" / "shiny", + ) + + for folder in showdown_folders: + showdown_images = list_showdown_images(folder) + missing_images = set(pokemon_list.keys()) - showdown_images + + back = "back" in folder.parts + shiny = "shiny" in folder.parts + + showdown_index = showdown_sprite_index(back=back, shiny=shiny) + + print(f"\n{'=' * 40}\nMissing images in folder: {folder}\n{'=' * 40}\n") + + remaining: set[str] = set() + + for pid, name in pokemon_list.items(): + if pid in missing_images and not DRY_RUN: + if name in showdown_index: + download_image( + pid, + name, + folder, + f"{_construct_showdown_url(back=back, shiny=shiny)}/{name}.gif", + ) + else: + print(f"Exact name not found in Showdown index: {name}") + closest_matches = difflib.get_close_matches(name, showdown_index, n=3, cutoff=0.7) + if closest_matches: + print("\n".join([str(n) + ") " + m for n, m in enumerate(closest_matches, start=1)])) + print( + "Enter to skip downloading this image, or enter the number of the closest match to download that image." + ) + user_input = input("Your choice: ").strip() + try: + choice = int(user_input) + if 1 <= choice <= len(closest_matches): + selected_name = closest_matches[choice - 1] + download_image( + pid, + selected_name, + folder, + f"{_construct_showdown_url(back=back, shiny=shiny)}/{selected_name}.gif", + ) + else: + print("Invalid choice. Skipping download.") + remaining.add(pid) + except ValueError: + print("Skipping download.") + remaining.add(pid) + + table = tabulate.tabulate( + [(pid, pname) for pid, pname in pokemon_list.items() if pid in (missing_images if DRY_RUN else remaining)], + headers=["Pokémon ID", "Pokémon Name"], + tablefmt="github", + ) + + print(table) diff --git a/sprites/pokemon/other/showdown/1000.gif b/sprites/pokemon/other/showdown/1000.gif new file mode 100644 index 0000000000..60bdd9fc5b Binary files /dev/null and b/sprites/pokemon/other/showdown/1000.gif differ diff --git a/sprites/pokemon/other/showdown/1007.gif b/sprites/pokemon/other/showdown/1007.gif new file mode 100644 index 0000000000..af0f613af4 Binary files /dev/null and b/sprites/pokemon/other/showdown/1007.gif differ diff --git a/sprites/pokemon/other/showdown/1009.gif b/sprites/pokemon/other/showdown/1009.gif new file mode 100644 index 0000000000..b18716c123 Binary files /dev/null and b/sprites/pokemon/other/showdown/1009.gif differ diff --git a/sprites/pokemon/other/showdown/1011.gif b/sprites/pokemon/other/showdown/1011.gif new file mode 100644 index 0000000000..d58d4fe992 Binary files /dev/null and b/sprites/pokemon/other/showdown/1011.gif differ diff --git a/sprites/pokemon/other/showdown/1012.gif b/sprites/pokemon/other/showdown/1012.gif new file mode 100644 index 0000000000..58de9d514f Binary files /dev/null and b/sprites/pokemon/other/showdown/1012.gif differ diff --git a/sprites/pokemon/other/showdown/1013.gif b/sprites/pokemon/other/showdown/1013.gif new file mode 100644 index 0000000000..49c58f8c50 Binary files /dev/null and b/sprites/pokemon/other/showdown/1013.gif differ diff --git a/sprites/pokemon/other/showdown/1018.gif b/sprites/pokemon/other/showdown/1018.gif new file mode 100644 index 0000000000..64b55d8359 Binary files /dev/null and b/sprites/pokemon/other/showdown/1018.gif differ diff --git a/sprites/pokemon/other/showdown/1019.gif b/sprites/pokemon/other/showdown/1019.gif new file mode 100644 index 0000000000..e93c839820 Binary files /dev/null and b/sprites/pokemon/other/showdown/1019.gif differ diff --git a/sprites/pokemon/other/showdown/1020.gif b/sprites/pokemon/other/showdown/1020.gif new file mode 100644 index 0000000000..797a3039da Binary files /dev/null and b/sprites/pokemon/other/showdown/1020.gif differ diff --git a/sprites/pokemon/other/showdown/1021.gif b/sprites/pokemon/other/showdown/1021.gif new file mode 100644 index 0000000000..27fd8cb476 Binary files /dev/null and b/sprites/pokemon/other/showdown/1021.gif differ diff --git a/sprites/pokemon/other/showdown/10250.gif b/sprites/pokemon/other/showdown/10250.gif new file mode 100644 index 0000000000..66dfde8c47 Binary files /dev/null and b/sprites/pokemon/other/showdown/10250.gif differ diff --git a/sprites/pokemon/other/showdown/10251.gif b/sprites/pokemon/other/showdown/10251.gif new file mode 100644 index 0000000000..7018022b06 Binary files /dev/null and b/sprites/pokemon/other/showdown/10251.gif differ diff --git a/sprites/pokemon/other/showdown/10252.gif b/sprites/pokemon/other/showdown/10252.gif new file mode 100644 index 0000000000..cabcdcaf70 Binary files /dev/null and b/sprites/pokemon/other/showdown/10252.gif differ diff --git a/sprites/pokemon/other/showdown/10253.gif b/sprites/pokemon/other/showdown/10253.gif new file mode 100644 index 0000000000..d249f267fa Binary files /dev/null and b/sprites/pokemon/other/showdown/10253.gif differ diff --git a/sprites/pokemon/other/showdown/10255.gif b/sprites/pokemon/other/showdown/10255.gif new file mode 100644 index 0000000000..57f086324e Binary files /dev/null and b/sprites/pokemon/other/showdown/10255.gif differ diff --git a/sprites/pokemon/other/showdown/10258.gif b/sprites/pokemon/other/showdown/10258.gif new file mode 100644 index 0000000000..b62b7ffaf0 Binary files /dev/null and b/sprites/pokemon/other/showdown/10258.gif differ diff --git a/sprites/pokemon/other/showdown/10259.gif b/sprites/pokemon/other/showdown/10259.gif new file mode 100644 index 0000000000..429f8b974a Binary files /dev/null and b/sprites/pokemon/other/showdown/10259.gif differ diff --git a/sprites/pokemon/other/showdown/10260.gif b/sprites/pokemon/other/showdown/10260.gif new file mode 100644 index 0000000000..bed94b94d5 Binary files /dev/null and b/sprites/pokemon/other/showdown/10260.gif differ diff --git a/sprites/pokemon/other/showdown/10261.gif b/sprites/pokemon/other/showdown/10261.gif new file mode 100644 index 0000000000..d655af40b5 Binary files /dev/null and b/sprites/pokemon/other/showdown/10261.gif differ diff --git a/sprites/pokemon/other/showdown/10262.gif b/sprites/pokemon/other/showdown/10262.gif new file mode 100644 index 0000000000..b582268652 Binary files /dev/null and b/sprites/pokemon/other/showdown/10262.gif differ diff --git a/sprites/pokemon/other/showdown/10263.gif b/sprites/pokemon/other/showdown/10263.gif new file mode 100644 index 0000000000..854af33f25 Binary files /dev/null and b/sprites/pokemon/other/showdown/10263.gif differ diff --git a/sprites/pokemon/other/showdown/10272.gif b/sprites/pokemon/other/showdown/10272.gif new file mode 100644 index 0000000000..f6905851c9 Binary files /dev/null and b/sprites/pokemon/other/showdown/10272.gif differ diff --git a/sprites/pokemon/other/showdown/10278.gif b/sprites/pokemon/other/showdown/10278.gif new file mode 100644 index 0000000000..a6cb0b8f6f Binary files /dev/null and b/sprites/pokemon/other/showdown/10278.gif differ diff --git a/sprites/pokemon/other/showdown/10279.gif b/sprites/pokemon/other/showdown/10279.gif new file mode 100644 index 0000000000..3232316672 Binary files /dev/null and b/sprites/pokemon/other/showdown/10279.gif differ diff --git a/sprites/pokemon/other/showdown/10280.gif b/sprites/pokemon/other/showdown/10280.gif new file mode 100644 index 0000000000..05e3921643 Binary files /dev/null and b/sprites/pokemon/other/showdown/10280.gif differ diff --git a/sprites/pokemon/other/showdown/10281.gif b/sprites/pokemon/other/showdown/10281.gif new file mode 100644 index 0000000000..50dfd98148 Binary files /dev/null and b/sprites/pokemon/other/showdown/10281.gif differ diff --git a/sprites/pokemon/other/showdown/10282.gif b/sprites/pokemon/other/showdown/10282.gif new file mode 100644 index 0000000000..8b028e6d18 Binary files /dev/null and b/sprites/pokemon/other/showdown/10282.gif differ diff --git a/sprites/pokemon/other/showdown/10283.gif b/sprites/pokemon/other/showdown/10283.gif new file mode 100644 index 0000000000..0429404bea Binary files /dev/null and b/sprites/pokemon/other/showdown/10283.gif differ diff --git a/sprites/pokemon/other/showdown/10284.gif b/sprites/pokemon/other/showdown/10284.gif new file mode 100644 index 0000000000..78f06fcaee Binary files /dev/null and b/sprites/pokemon/other/showdown/10284.gif differ diff --git a/sprites/pokemon/other/showdown/10285.gif b/sprites/pokemon/other/showdown/10285.gif new file mode 100644 index 0000000000..54660c3ac3 Binary files /dev/null and b/sprites/pokemon/other/showdown/10285.gif differ diff --git a/sprites/pokemon/other/showdown/10286.gif b/sprites/pokemon/other/showdown/10286.gif new file mode 100644 index 0000000000..d6f953d7df Binary files /dev/null and b/sprites/pokemon/other/showdown/10286.gif differ diff --git a/sprites/pokemon/other/showdown/926.gif b/sprites/pokemon/other/showdown/926.gif new file mode 100644 index 0000000000..a4bfb9e0a5 Binary files /dev/null and b/sprites/pokemon/other/showdown/926.gif differ diff --git a/sprites/pokemon/other/showdown/927.gif b/sprites/pokemon/other/showdown/927.gif new file mode 100644 index 0000000000..def6d7b0af Binary files /dev/null and b/sprites/pokemon/other/showdown/927.gif differ diff --git a/sprites/pokemon/other/showdown/932.gif b/sprites/pokemon/other/showdown/932.gif new file mode 100644 index 0000000000..b0e981f774 Binary files /dev/null and b/sprites/pokemon/other/showdown/932.gif differ diff --git a/sprites/pokemon/other/showdown/933.gif b/sprites/pokemon/other/showdown/933.gif new file mode 100644 index 0000000000..890b1cad67 Binary files /dev/null and b/sprites/pokemon/other/showdown/933.gif differ diff --git a/sprites/pokemon/other/showdown/934.gif b/sprites/pokemon/other/showdown/934.gif new file mode 100644 index 0000000000..2a5daffd24 Binary files /dev/null and b/sprites/pokemon/other/showdown/934.gif differ diff --git a/sprites/pokemon/other/showdown/935.gif b/sprites/pokemon/other/showdown/935.gif new file mode 100644 index 0000000000..a8db0ac1dc Binary files /dev/null and b/sprites/pokemon/other/showdown/935.gif differ diff --git a/sprites/pokemon/other/showdown/936.gif b/sprites/pokemon/other/showdown/936.gif new file mode 100644 index 0000000000..d1a22106a8 Binary files /dev/null and b/sprites/pokemon/other/showdown/936.gif differ diff --git a/sprites/pokemon/other/showdown/937.gif b/sprites/pokemon/other/showdown/937.gif new file mode 100644 index 0000000000..31224c69b5 Binary files /dev/null and b/sprites/pokemon/other/showdown/937.gif differ diff --git a/sprites/pokemon/other/showdown/940.gif b/sprites/pokemon/other/showdown/940.gif new file mode 100644 index 0000000000..7b93df40d3 Binary files /dev/null and b/sprites/pokemon/other/showdown/940.gif differ diff --git a/sprites/pokemon/other/showdown/941.gif b/sprites/pokemon/other/showdown/941.gif new file mode 100644 index 0000000000..cf9b757b11 Binary files /dev/null and b/sprites/pokemon/other/showdown/941.gif differ diff --git a/sprites/pokemon/other/showdown/942.gif b/sprites/pokemon/other/showdown/942.gif new file mode 100644 index 0000000000..32d769c564 Binary files /dev/null and b/sprites/pokemon/other/showdown/942.gif differ diff --git a/sprites/pokemon/other/showdown/943.gif b/sprites/pokemon/other/showdown/943.gif new file mode 100644 index 0000000000..60783920d8 Binary files /dev/null and b/sprites/pokemon/other/showdown/943.gif differ diff --git a/sprites/pokemon/other/showdown/944.gif b/sprites/pokemon/other/showdown/944.gif new file mode 100644 index 0000000000..2c4099fc5f Binary files /dev/null and b/sprites/pokemon/other/showdown/944.gif differ diff --git a/sprites/pokemon/other/showdown/945.gif b/sprites/pokemon/other/showdown/945.gif new file mode 100644 index 0000000000..47be5bee88 Binary files /dev/null and b/sprites/pokemon/other/showdown/945.gif differ diff --git a/sprites/pokemon/other/showdown/946.gif b/sprites/pokemon/other/showdown/946.gif new file mode 100644 index 0000000000..b8b8def96e Binary files /dev/null and b/sprites/pokemon/other/showdown/946.gif differ diff --git a/sprites/pokemon/other/showdown/947.gif b/sprites/pokemon/other/showdown/947.gif new file mode 100644 index 0000000000..248cd25162 Binary files /dev/null and b/sprites/pokemon/other/showdown/947.gif differ diff --git a/sprites/pokemon/other/showdown/948.gif b/sprites/pokemon/other/showdown/948.gif new file mode 100644 index 0000000000..e53f699f99 Binary files /dev/null and b/sprites/pokemon/other/showdown/948.gif differ diff --git a/sprites/pokemon/other/showdown/949.gif b/sprites/pokemon/other/showdown/949.gif new file mode 100644 index 0000000000..826e5e7470 Binary files /dev/null and b/sprites/pokemon/other/showdown/949.gif differ diff --git a/sprites/pokemon/other/showdown/950.gif b/sprites/pokemon/other/showdown/950.gif new file mode 100644 index 0000000000..3bd31455a8 Binary files /dev/null and b/sprites/pokemon/other/showdown/950.gif differ diff --git a/sprites/pokemon/other/showdown/962.gif b/sprites/pokemon/other/showdown/962.gif new file mode 100644 index 0000000000..8806c5f167 Binary files /dev/null and b/sprites/pokemon/other/showdown/962.gif differ diff --git a/sprites/pokemon/other/showdown/969.gif b/sprites/pokemon/other/showdown/969.gif new file mode 100644 index 0000000000..7fa32bd10e Binary files /dev/null and b/sprites/pokemon/other/showdown/969.gif differ diff --git a/sprites/pokemon/other/showdown/970.gif b/sprites/pokemon/other/showdown/970.gif new file mode 100644 index 0000000000..d532674c6e Binary files /dev/null and b/sprites/pokemon/other/showdown/970.gif differ diff --git a/sprites/pokemon/other/showdown/983.gif b/sprites/pokemon/other/showdown/983.gif new file mode 100644 index 0000000000..41e6f314d8 Binary files /dev/null and b/sprites/pokemon/other/showdown/983.gif differ diff --git a/sprites/pokemon/other/showdown/984.gif b/sprites/pokemon/other/showdown/984.gif new file mode 100644 index 0000000000..2905819ce0 Binary files /dev/null and b/sprites/pokemon/other/showdown/984.gif differ diff --git a/sprites/pokemon/other/showdown/985.gif b/sprites/pokemon/other/showdown/985.gif new file mode 100644 index 0000000000..56c0042da6 Binary files /dev/null and b/sprites/pokemon/other/showdown/985.gif differ diff --git a/sprites/pokemon/other/showdown/986.gif b/sprites/pokemon/other/showdown/986.gif new file mode 100644 index 0000000000..3cc05dfb57 Binary files /dev/null and b/sprites/pokemon/other/showdown/986.gif differ diff --git a/sprites/pokemon/other/showdown/987.gif b/sprites/pokemon/other/showdown/987.gif new file mode 100644 index 0000000000..bd7cfb29cc Binary files /dev/null and b/sprites/pokemon/other/showdown/987.gif differ diff --git a/sprites/pokemon/other/showdown/988.gif b/sprites/pokemon/other/showdown/988.gif new file mode 100644 index 0000000000..a60c2dc669 Binary files /dev/null and b/sprites/pokemon/other/showdown/988.gif differ diff --git a/sprites/pokemon/other/showdown/989.gif b/sprites/pokemon/other/showdown/989.gif new file mode 100644 index 0000000000..e371303ed8 Binary files /dev/null and b/sprites/pokemon/other/showdown/989.gif differ diff --git a/sprites/pokemon/other/showdown/996.gif b/sprites/pokemon/other/showdown/996.gif new file mode 100644 index 0000000000..cc79466a26 Binary files /dev/null and b/sprites/pokemon/other/showdown/996.gif differ diff --git a/sprites/pokemon/other/showdown/997.gif b/sprites/pokemon/other/showdown/997.gif new file mode 100644 index 0000000000..4e26296895 Binary files /dev/null and b/sprites/pokemon/other/showdown/997.gif differ diff --git a/sprites/pokemon/other/showdown/998.gif b/sprites/pokemon/other/showdown/998.gif new file mode 100644 index 0000000000..319139e487 Binary files /dev/null and b/sprites/pokemon/other/showdown/998.gif differ diff --git a/sprites/pokemon/other/showdown/999.gif b/sprites/pokemon/other/showdown/999.gif new file mode 100644 index 0000000000..0bf417dfbf Binary files /dev/null and b/sprites/pokemon/other/showdown/999.gif differ diff --git a/sprites/pokemon/other/showdown/back/1000.gif b/sprites/pokemon/other/showdown/back/1000.gif new file mode 100644 index 0000000000..837719616c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/1000.gif differ diff --git a/sprites/pokemon/other/showdown/back/1007.gif b/sprites/pokemon/other/showdown/back/1007.gif new file mode 100644 index 0000000000..5e51fd2df5 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/1007.gif differ diff --git a/sprites/pokemon/other/showdown/back/1009.gif b/sprites/pokemon/other/showdown/back/1009.gif new file mode 100644 index 0000000000..6660efdb69 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/1009.gif differ diff --git a/sprites/pokemon/other/showdown/back/1011.gif b/sprites/pokemon/other/showdown/back/1011.gif new file mode 100644 index 0000000000..04673e7f71 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/1011.gif differ diff --git a/sprites/pokemon/other/showdown/back/1012.gif b/sprites/pokemon/other/showdown/back/1012.gif new file mode 100644 index 0000000000..38832fb9f8 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/1012.gif differ diff --git a/sprites/pokemon/other/showdown/back/1013.gif b/sprites/pokemon/other/showdown/back/1013.gif new file mode 100644 index 0000000000..2178bce3fd Binary files /dev/null and b/sprites/pokemon/other/showdown/back/1013.gif differ diff --git a/sprites/pokemon/other/showdown/back/1018.gif b/sprites/pokemon/other/showdown/back/1018.gif new file mode 100644 index 0000000000..3728ab1605 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/1018.gif differ diff --git a/sprites/pokemon/other/showdown/back/1019.gif b/sprites/pokemon/other/showdown/back/1019.gif new file mode 100644 index 0000000000..a49a6abc70 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/1019.gif differ diff --git a/sprites/pokemon/other/showdown/back/1020.gif b/sprites/pokemon/other/showdown/back/1020.gif new file mode 100644 index 0000000000..5cd13d50b2 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/1020.gif differ diff --git a/sprites/pokemon/other/showdown/back/1021.gif b/sprites/pokemon/other/showdown/back/1021.gif new file mode 100644 index 0000000000..5adaca181c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/1021.gif differ diff --git a/sprites/pokemon/other/showdown/back/10250.gif b/sprites/pokemon/other/showdown/back/10250.gif new file mode 100644 index 0000000000..564da98ef2 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10250.gif differ diff --git a/sprites/pokemon/other/showdown/back/10251.gif b/sprites/pokemon/other/showdown/back/10251.gif new file mode 100644 index 0000000000..921fcccab0 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10251.gif differ diff --git a/sprites/pokemon/other/showdown/back/10252.gif b/sprites/pokemon/other/showdown/back/10252.gif new file mode 100644 index 0000000000..cc1cefc642 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10252.gif differ diff --git a/sprites/pokemon/other/showdown/back/10253.gif b/sprites/pokemon/other/showdown/back/10253.gif new file mode 100644 index 0000000000..d4c2944ae3 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10253.gif differ diff --git a/sprites/pokemon/other/showdown/back/10255.gif b/sprites/pokemon/other/showdown/back/10255.gif new file mode 100644 index 0000000000..1082e6abda Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10255.gif differ diff --git a/sprites/pokemon/other/showdown/back/10258.gif b/sprites/pokemon/other/showdown/back/10258.gif new file mode 100644 index 0000000000..706f4d226c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10258.gif differ diff --git a/sprites/pokemon/other/showdown/back/10259.gif b/sprites/pokemon/other/showdown/back/10259.gif new file mode 100644 index 0000000000..8098173b27 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10259.gif differ diff --git a/sprites/pokemon/other/showdown/back/10260.gif b/sprites/pokemon/other/showdown/back/10260.gif new file mode 100644 index 0000000000..d22a05e09e Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10260.gif differ diff --git a/sprites/pokemon/other/showdown/back/10261.gif b/sprites/pokemon/other/showdown/back/10261.gif new file mode 100644 index 0000000000..c1c37055bc Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10261.gif differ diff --git a/sprites/pokemon/other/showdown/back/10262.gif b/sprites/pokemon/other/showdown/back/10262.gif new file mode 100644 index 0000000000..9ecd24f0f7 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10262.gif differ diff --git a/sprites/pokemon/other/showdown/back/10263.gif b/sprites/pokemon/other/showdown/back/10263.gif new file mode 100644 index 0000000000..9ef3d3dbf6 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10263.gif differ diff --git a/sprites/pokemon/other/showdown/back/10272.gif b/sprites/pokemon/other/showdown/back/10272.gif new file mode 100644 index 0000000000..afce51208d Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10272.gif differ diff --git a/sprites/pokemon/other/showdown/back/10278.gif b/sprites/pokemon/other/showdown/back/10278.gif new file mode 100644 index 0000000000..c9905a3d36 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10278.gif differ diff --git a/sprites/pokemon/other/showdown/back/10279.gif b/sprites/pokemon/other/showdown/back/10279.gif new file mode 100644 index 0000000000..ce3015bc26 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10279.gif differ diff --git a/sprites/pokemon/other/showdown/back/10280.gif b/sprites/pokemon/other/showdown/back/10280.gif new file mode 100644 index 0000000000..b9b724b64c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10280.gif differ diff --git a/sprites/pokemon/other/showdown/back/10281.gif b/sprites/pokemon/other/showdown/back/10281.gif new file mode 100644 index 0000000000..f03088aee3 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10281.gif differ diff --git a/sprites/pokemon/other/showdown/back/10282.gif b/sprites/pokemon/other/showdown/back/10282.gif new file mode 100644 index 0000000000..421cb1dff6 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10282.gif differ diff --git a/sprites/pokemon/other/showdown/back/10283.gif b/sprites/pokemon/other/showdown/back/10283.gif new file mode 100644 index 0000000000..bb4c747df6 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10283.gif differ diff --git a/sprites/pokemon/other/showdown/back/10284.gif b/sprites/pokemon/other/showdown/back/10284.gif new file mode 100644 index 0000000000..ed679f5dbb Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10284.gif differ diff --git a/sprites/pokemon/other/showdown/back/10285.gif b/sprites/pokemon/other/showdown/back/10285.gif new file mode 100644 index 0000000000..d13442f5ff Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10285.gif differ diff --git a/sprites/pokemon/other/showdown/back/10286.gif b/sprites/pokemon/other/showdown/back/10286.gif new file mode 100644 index 0000000000..c76deb645f Binary files /dev/null and b/sprites/pokemon/other/showdown/back/10286.gif differ diff --git a/sprites/pokemon/other/showdown/back/926.gif b/sprites/pokemon/other/showdown/back/926.gif new file mode 100644 index 0000000000..c4dfba8473 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/926.gif differ diff --git a/sprites/pokemon/other/showdown/back/927.gif b/sprites/pokemon/other/showdown/back/927.gif new file mode 100644 index 0000000000..2bf9e7bc98 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/927.gif differ diff --git a/sprites/pokemon/other/showdown/back/932.gif b/sprites/pokemon/other/showdown/back/932.gif new file mode 100644 index 0000000000..37c9d405ff Binary files /dev/null and b/sprites/pokemon/other/showdown/back/932.gif differ diff --git a/sprites/pokemon/other/showdown/back/933.gif b/sprites/pokemon/other/showdown/back/933.gif new file mode 100644 index 0000000000..d8aa892c12 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/933.gif differ diff --git a/sprites/pokemon/other/showdown/back/934.gif b/sprites/pokemon/other/showdown/back/934.gif new file mode 100644 index 0000000000..012579ff4c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/934.gif differ diff --git a/sprites/pokemon/other/showdown/back/935.gif b/sprites/pokemon/other/showdown/back/935.gif new file mode 100644 index 0000000000..de2e58fc98 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/935.gif differ diff --git a/sprites/pokemon/other/showdown/back/936.gif b/sprites/pokemon/other/showdown/back/936.gif new file mode 100644 index 0000000000..ff7fdb954a Binary files /dev/null and b/sprites/pokemon/other/showdown/back/936.gif differ diff --git a/sprites/pokemon/other/showdown/back/937.gif b/sprites/pokemon/other/showdown/back/937.gif new file mode 100644 index 0000000000..3c34b03506 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/937.gif differ diff --git a/sprites/pokemon/other/showdown/back/940.gif b/sprites/pokemon/other/showdown/back/940.gif new file mode 100644 index 0000000000..e0f388614a Binary files /dev/null and b/sprites/pokemon/other/showdown/back/940.gif differ diff --git a/sprites/pokemon/other/showdown/back/941.gif b/sprites/pokemon/other/showdown/back/941.gif new file mode 100644 index 0000000000..1fa3112536 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/941.gif differ diff --git a/sprites/pokemon/other/showdown/back/942.gif b/sprites/pokemon/other/showdown/back/942.gif new file mode 100644 index 0000000000..23036fed90 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/942.gif differ diff --git a/sprites/pokemon/other/showdown/back/943.gif b/sprites/pokemon/other/showdown/back/943.gif new file mode 100644 index 0000000000..182b345234 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/943.gif differ diff --git a/sprites/pokemon/other/showdown/back/944.gif b/sprites/pokemon/other/showdown/back/944.gif new file mode 100644 index 0000000000..1cbb47ac57 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/944.gif differ diff --git a/sprites/pokemon/other/showdown/back/945.gif b/sprites/pokemon/other/showdown/back/945.gif new file mode 100644 index 0000000000..641b86b19b Binary files /dev/null and b/sprites/pokemon/other/showdown/back/945.gif differ diff --git a/sprites/pokemon/other/showdown/back/946.gif b/sprites/pokemon/other/showdown/back/946.gif new file mode 100644 index 0000000000..c6c920dedc Binary files /dev/null and b/sprites/pokemon/other/showdown/back/946.gif differ diff --git a/sprites/pokemon/other/showdown/back/947.gif b/sprites/pokemon/other/showdown/back/947.gif new file mode 100644 index 0000000000..c81c88e45e Binary files /dev/null and b/sprites/pokemon/other/showdown/back/947.gif differ diff --git a/sprites/pokemon/other/showdown/back/948.gif b/sprites/pokemon/other/showdown/back/948.gif new file mode 100644 index 0000000000..26d5eb30c7 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/948.gif differ diff --git a/sprites/pokemon/other/showdown/back/949.gif b/sprites/pokemon/other/showdown/back/949.gif new file mode 100644 index 0000000000..4957636aea Binary files /dev/null and b/sprites/pokemon/other/showdown/back/949.gif differ diff --git a/sprites/pokemon/other/showdown/back/950.gif b/sprites/pokemon/other/showdown/back/950.gif new file mode 100644 index 0000000000..d5cf0f9729 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/950.gif differ diff --git a/sprites/pokemon/other/showdown/back/962.gif b/sprites/pokemon/other/showdown/back/962.gif new file mode 100644 index 0000000000..588fddc244 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/962.gif differ diff --git a/sprites/pokemon/other/showdown/back/969.gif b/sprites/pokemon/other/showdown/back/969.gif new file mode 100644 index 0000000000..c48314c5c6 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/969.gif differ diff --git a/sprites/pokemon/other/showdown/back/970.gif b/sprites/pokemon/other/showdown/back/970.gif new file mode 100644 index 0000000000..d9cc042ccd Binary files /dev/null and b/sprites/pokemon/other/showdown/back/970.gif differ diff --git a/sprites/pokemon/other/showdown/back/983.gif b/sprites/pokemon/other/showdown/back/983.gif new file mode 100644 index 0000000000..d512809c0b Binary files /dev/null and b/sprites/pokemon/other/showdown/back/983.gif differ diff --git a/sprites/pokemon/other/showdown/back/984.gif b/sprites/pokemon/other/showdown/back/984.gif new file mode 100644 index 0000000000..fecb0874ef Binary files /dev/null and b/sprites/pokemon/other/showdown/back/984.gif differ diff --git a/sprites/pokemon/other/showdown/back/985.gif b/sprites/pokemon/other/showdown/back/985.gif new file mode 100644 index 0000000000..9428a862ba Binary files /dev/null and b/sprites/pokemon/other/showdown/back/985.gif differ diff --git a/sprites/pokemon/other/showdown/back/986.gif b/sprites/pokemon/other/showdown/back/986.gif new file mode 100644 index 0000000000..a7599182cf Binary files /dev/null and b/sprites/pokemon/other/showdown/back/986.gif differ diff --git a/sprites/pokemon/other/showdown/back/987.gif b/sprites/pokemon/other/showdown/back/987.gif new file mode 100644 index 0000000000..68fe5f85ca Binary files /dev/null and b/sprites/pokemon/other/showdown/back/987.gif differ diff --git a/sprites/pokemon/other/showdown/back/988.gif b/sprites/pokemon/other/showdown/back/988.gif new file mode 100644 index 0000000000..6c64580849 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/988.gif differ diff --git a/sprites/pokemon/other/showdown/back/989.gif b/sprites/pokemon/other/showdown/back/989.gif new file mode 100644 index 0000000000..5c0decbfb8 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/989.gif differ diff --git a/sprites/pokemon/other/showdown/back/996.gif b/sprites/pokemon/other/showdown/back/996.gif new file mode 100644 index 0000000000..d7d458ef4d Binary files /dev/null and b/sprites/pokemon/other/showdown/back/996.gif differ diff --git a/sprites/pokemon/other/showdown/back/997.gif b/sprites/pokemon/other/showdown/back/997.gif new file mode 100644 index 0000000000..37df232a33 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/997.gif differ diff --git a/sprites/pokemon/other/showdown/back/998.gif b/sprites/pokemon/other/showdown/back/998.gif new file mode 100644 index 0000000000..7489104a02 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/998.gif differ diff --git a/sprites/pokemon/other/showdown/back/999.gif b/sprites/pokemon/other/showdown/back/999.gif new file mode 100644 index 0000000000..7bc8da1e80 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/999.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/1000.gif b/sprites/pokemon/other/showdown/back/shiny/1000.gif new file mode 100644 index 0000000000..a3b6445945 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/1000.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/1007.gif b/sprites/pokemon/other/showdown/back/shiny/1007.gif new file mode 100644 index 0000000000..53ca4252ac Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/1007.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/1009.gif b/sprites/pokemon/other/showdown/back/shiny/1009.gif new file mode 100644 index 0000000000..e9b37a8ece Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/1009.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/1011.gif b/sprites/pokemon/other/showdown/back/shiny/1011.gif new file mode 100644 index 0000000000..38e780ad3a Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/1011.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/1012.gif b/sprites/pokemon/other/showdown/back/shiny/1012.gif new file mode 100644 index 0000000000..765ba11307 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/1012.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/1013.gif b/sprites/pokemon/other/showdown/back/shiny/1013.gif new file mode 100644 index 0000000000..976d777412 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/1013.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/1018.gif b/sprites/pokemon/other/showdown/back/shiny/1018.gif new file mode 100644 index 0000000000..78f5fe930c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/1018.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/1019.gif b/sprites/pokemon/other/showdown/back/shiny/1019.gif new file mode 100644 index 0000000000..9758e44b55 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/1019.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/1020.gif b/sprites/pokemon/other/showdown/back/shiny/1020.gif new file mode 100644 index 0000000000..bc61bae873 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/1020.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/1021.gif b/sprites/pokemon/other/showdown/back/shiny/1021.gif new file mode 100644 index 0000000000..3ffec302e9 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/1021.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10250.gif b/sprites/pokemon/other/showdown/back/shiny/10250.gif new file mode 100644 index 0000000000..c0ef6d96d0 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10250.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10251.gif b/sprites/pokemon/other/showdown/back/shiny/10251.gif new file mode 100644 index 0000000000..1e9d242a7c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10251.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10252.gif b/sprites/pokemon/other/showdown/back/shiny/10252.gif new file mode 100644 index 0000000000..32ccbcab45 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10252.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10253.gif b/sprites/pokemon/other/showdown/back/shiny/10253.gif new file mode 100644 index 0000000000..a5dadb1026 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10253.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10255.gif b/sprites/pokemon/other/showdown/back/shiny/10255.gif new file mode 100644 index 0000000000..5b1d876f5b Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10255.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10258.gif b/sprites/pokemon/other/showdown/back/shiny/10258.gif new file mode 100644 index 0000000000..9c389aaf38 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10258.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10259.gif b/sprites/pokemon/other/showdown/back/shiny/10259.gif new file mode 100644 index 0000000000..826ff006c5 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10259.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10260.gif b/sprites/pokemon/other/showdown/back/shiny/10260.gif new file mode 100644 index 0000000000..b3c2044e9c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10260.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10261.gif b/sprites/pokemon/other/showdown/back/shiny/10261.gif new file mode 100644 index 0000000000..e6de2bd335 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10261.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10262.gif b/sprites/pokemon/other/showdown/back/shiny/10262.gif new file mode 100644 index 0000000000..368db1ecaf Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10262.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10263.gif b/sprites/pokemon/other/showdown/back/shiny/10263.gif new file mode 100644 index 0000000000..27ba7996fd Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10263.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10272.gif b/sprites/pokemon/other/showdown/back/shiny/10272.gif new file mode 100644 index 0000000000..c4e4f4cbc5 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10272.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10278.gif b/sprites/pokemon/other/showdown/back/shiny/10278.gif new file mode 100644 index 0000000000..9b31bde1c8 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10278.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10279.gif b/sprites/pokemon/other/showdown/back/shiny/10279.gif new file mode 100644 index 0000000000..88a8e59a41 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10279.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10280.gif b/sprites/pokemon/other/showdown/back/shiny/10280.gif new file mode 100644 index 0000000000..0846ebf487 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10280.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10281.gif b/sprites/pokemon/other/showdown/back/shiny/10281.gif new file mode 100644 index 0000000000..dca8895283 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10281.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10282.gif b/sprites/pokemon/other/showdown/back/shiny/10282.gif new file mode 100644 index 0000000000..8ace1deb99 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10282.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10283.gif b/sprites/pokemon/other/showdown/back/shiny/10283.gif new file mode 100644 index 0000000000..22f526b8ef Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10283.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10284.gif b/sprites/pokemon/other/showdown/back/shiny/10284.gif new file mode 100644 index 0000000000..58294f7f12 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10284.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10285.gif b/sprites/pokemon/other/showdown/back/shiny/10285.gif new file mode 100644 index 0000000000..673c52dbe3 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10285.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/10286.gif b/sprites/pokemon/other/showdown/back/shiny/10286.gif new file mode 100644 index 0000000000..e48c19f89c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/10286.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/926.gif b/sprites/pokemon/other/showdown/back/shiny/926.gif new file mode 100644 index 0000000000..51e27baa0f Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/926.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/927.gif b/sprites/pokemon/other/showdown/back/shiny/927.gif new file mode 100644 index 0000000000..cb4898ae5e Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/927.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/932.gif b/sprites/pokemon/other/showdown/back/shiny/932.gif new file mode 100644 index 0000000000..b88adc4dbc Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/932.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/933.gif b/sprites/pokemon/other/showdown/back/shiny/933.gif new file mode 100644 index 0000000000..d4886d406c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/933.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/934.gif b/sprites/pokemon/other/showdown/back/shiny/934.gif new file mode 100644 index 0000000000..710978fd5c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/934.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/935.gif b/sprites/pokemon/other/showdown/back/shiny/935.gif new file mode 100644 index 0000000000..8333ba50c7 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/935.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/936.gif b/sprites/pokemon/other/showdown/back/shiny/936.gif new file mode 100644 index 0000000000..ff7fdb954a Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/936.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/937.gif b/sprites/pokemon/other/showdown/back/shiny/937.gif new file mode 100644 index 0000000000..f0a6c2b582 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/937.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/940.gif b/sprites/pokemon/other/showdown/back/shiny/940.gif new file mode 100644 index 0000000000..03626d606a Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/940.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/941.gif b/sprites/pokemon/other/showdown/back/shiny/941.gif new file mode 100644 index 0000000000..4efbec14b4 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/941.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/942.gif b/sprites/pokemon/other/showdown/back/shiny/942.gif new file mode 100644 index 0000000000..249cd73e23 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/942.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/943.gif b/sprites/pokemon/other/showdown/back/shiny/943.gif new file mode 100644 index 0000000000..ad8d26fac2 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/943.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/944.gif b/sprites/pokemon/other/showdown/back/shiny/944.gif new file mode 100644 index 0000000000..2006edd197 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/944.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/945.gif b/sprites/pokemon/other/showdown/back/shiny/945.gif new file mode 100644 index 0000000000..6b7a682300 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/945.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/946.gif b/sprites/pokemon/other/showdown/back/shiny/946.gif new file mode 100644 index 0000000000..46fb70a0d3 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/946.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/947.gif b/sprites/pokemon/other/showdown/back/shiny/947.gif new file mode 100644 index 0000000000..20bdbde53f Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/947.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/948.gif b/sprites/pokemon/other/showdown/back/shiny/948.gif new file mode 100644 index 0000000000..5439418233 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/948.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/949.gif b/sprites/pokemon/other/showdown/back/shiny/949.gif new file mode 100644 index 0000000000..230e1f4059 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/949.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/950.gif b/sprites/pokemon/other/showdown/back/shiny/950.gif new file mode 100644 index 0000000000..cc5912b78c Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/950.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/962.gif b/sprites/pokemon/other/showdown/back/shiny/962.gif new file mode 100644 index 0000000000..5212dd72f6 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/962.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/969.gif b/sprites/pokemon/other/showdown/back/shiny/969.gif new file mode 100644 index 0000000000..187134fafa Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/969.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/970.gif b/sprites/pokemon/other/showdown/back/shiny/970.gif new file mode 100644 index 0000000000..94d9420ac3 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/970.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/983.gif b/sprites/pokemon/other/showdown/back/shiny/983.gif new file mode 100644 index 0000000000..fb9d32892b Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/983.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/984.gif b/sprites/pokemon/other/showdown/back/shiny/984.gif new file mode 100644 index 0000000000..7fa9f0c4b8 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/984.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/985.gif b/sprites/pokemon/other/showdown/back/shiny/985.gif new file mode 100644 index 0000000000..36a00041a6 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/985.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/986.gif b/sprites/pokemon/other/showdown/back/shiny/986.gif new file mode 100644 index 0000000000..4c7a6d3982 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/986.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/987.gif b/sprites/pokemon/other/showdown/back/shiny/987.gif new file mode 100644 index 0000000000..2d560ff4da Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/987.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/988.gif b/sprites/pokemon/other/showdown/back/shiny/988.gif new file mode 100644 index 0000000000..0e1b41d806 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/988.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/989.gif b/sprites/pokemon/other/showdown/back/shiny/989.gif new file mode 100644 index 0000000000..c9db60dc34 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/989.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/996.gif b/sprites/pokemon/other/showdown/back/shiny/996.gif new file mode 100644 index 0000000000..38fe5a7a09 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/996.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/997.gif b/sprites/pokemon/other/showdown/back/shiny/997.gif new file mode 100644 index 0000000000..e2388db3b6 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/997.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/998.gif b/sprites/pokemon/other/showdown/back/shiny/998.gif new file mode 100644 index 0000000000..0be9a5e490 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/998.gif differ diff --git a/sprites/pokemon/other/showdown/back/shiny/999.gif b/sprites/pokemon/other/showdown/back/shiny/999.gif new file mode 100644 index 0000000000..d37603d639 Binary files /dev/null and b/sprites/pokemon/other/showdown/back/shiny/999.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/1000.gif b/sprites/pokemon/other/showdown/shiny/1000.gif new file mode 100644 index 0000000000..fb701a6714 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/1000.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/1007.gif b/sprites/pokemon/other/showdown/shiny/1007.gif new file mode 100644 index 0000000000..721e8f2b53 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/1007.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/1009.gif b/sprites/pokemon/other/showdown/shiny/1009.gif new file mode 100644 index 0000000000..b3608ff5e1 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/1009.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/1011.gif b/sprites/pokemon/other/showdown/shiny/1011.gif new file mode 100644 index 0000000000..81b994a337 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/1011.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/1012.gif b/sprites/pokemon/other/showdown/shiny/1012.gif new file mode 100644 index 0000000000..042f63b205 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/1012.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/1013.gif b/sprites/pokemon/other/showdown/shiny/1013.gif new file mode 100644 index 0000000000..6d53ed18e7 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/1013.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/1018.gif b/sprites/pokemon/other/showdown/shiny/1018.gif new file mode 100644 index 0000000000..6f41dd3e73 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/1018.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/1019.gif b/sprites/pokemon/other/showdown/shiny/1019.gif new file mode 100644 index 0000000000..ddf6eab6f1 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/1019.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/1020.gif b/sprites/pokemon/other/showdown/shiny/1020.gif new file mode 100644 index 0000000000..824ed8524a Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/1020.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/1021.gif b/sprites/pokemon/other/showdown/shiny/1021.gif new file mode 100644 index 0000000000..78680ef73c Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/1021.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10250.gif b/sprites/pokemon/other/showdown/shiny/10250.gif new file mode 100644 index 0000000000..c0186a50f0 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10250.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10251.gif b/sprites/pokemon/other/showdown/shiny/10251.gif new file mode 100644 index 0000000000..5470bcce78 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10251.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10252.gif b/sprites/pokemon/other/showdown/shiny/10252.gif new file mode 100644 index 0000000000..319361540c Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10252.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10253.gif b/sprites/pokemon/other/showdown/shiny/10253.gif new file mode 100644 index 0000000000..91c73a130e Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10253.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10255.gif b/sprites/pokemon/other/showdown/shiny/10255.gif new file mode 100644 index 0000000000..41b4c64860 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10255.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10258.gif b/sprites/pokemon/other/showdown/shiny/10258.gif new file mode 100644 index 0000000000..e870aea0b5 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10258.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10259.gif b/sprites/pokemon/other/showdown/shiny/10259.gif new file mode 100644 index 0000000000..1a06601008 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10259.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10260.gif b/sprites/pokemon/other/showdown/shiny/10260.gif new file mode 100644 index 0000000000..93d2ac0a08 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10260.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10261.gif b/sprites/pokemon/other/showdown/shiny/10261.gif new file mode 100644 index 0000000000..d38d9b3c36 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10261.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10262.gif b/sprites/pokemon/other/showdown/shiny/10262.gif new file mode 100644 index 0000000000..5dc4a33140 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10262.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10263.gif b/sprites/pokemon/other/showdown/shiny/10263.gif new file mode 100644 index 0000000000..be54d4c71d Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10263.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10272.gif b/sprites/pokemon/other/showdown/shiny/10272.gif new file mode 100644 index 0000000000..b0933144be Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10272.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10278.gif b/sprites/pokemon/other/showdown/shiny/10278.gif new file mode 100644 index 0000000000..2357baa060 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10278.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10279.gif b/sprites/pokemon/other/showdown/shiny/10279.gif new file mode 100644 index 0000000000..e66501f327 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10279.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10280.gif b/sprites/pokemon/other/showdown/shiny/10280.gif new file mode 100644 index 0000000000..51404a80fa Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10280.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10281.gif b/sprites/pokemon/other/showdown/shiny/10281.gif new file mode 100644 index 0000000000..a9548b9c41 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10281.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10282.gif b/sprites/pokemon/other/showdown/shiny/10282.gif new file mode 100644 index 0000000000..3228b89b8f Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10282.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10283.gif b/sprites/pokemon/other/showdown/shiny/10283.gif new file mode 100644 index 0000000000..4748d0a49e Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10283.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10284.gif b/sprites/pokemon/other/showdown/shiny/10284.gif new file mode 100644 index 0000000000..438733d5c8 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10284.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10285.gif b/sprites/pokemon/other/showdown/shiny/10285.gif new file mode 100644 index 0000000000..2b8848bc11 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10285.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/10286.gif b/sprites/pokemon/other/showdown/shiny/10286.gif new file mode 100644 index 0000000000..39d265ab47 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/10286.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/926.gif b/sprites/pokemon/other/showdown/shiny/926.gif new file mode 100644 index 0000000000..21bf2e40b3 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/926.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/927.gif b/sprites/pokemon/other/showdown/shiny/927.gif new file mode 100644 index 0000000000..fe9ab778c9 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/927.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/932.gif b/sprites/pokemon/other/showdown/shiny/932.gif new file mode 100644 index 0000000000..a28eec9012 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/932.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/933.gif b/sprites/pokemon/other/showdown/shiny/933.gif new file mode 100644 index 0000000000..49b0840416 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/933.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/934.gif b/sprites/pokemon/other/showdown/shiny/934.gif new file mode 100644 index 0000000000..5385ad5033 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/934.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/935.gif b/sprites/pokemon/other/showdown/shiny/935.gif new file mode 100644 index 0000000000..a837e0a2c5 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/935.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/936.gif b/sprites/pokemon/other/showdown/shiny/936.gif new file mode 100644 index 0000000000..d05a144d7c Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/936.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/937.gif b/sprites/pokemon/other/showdown/shiny/937.gif new file mode 100644 index 0000000000..92b1071100 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/937.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/940.gif b/sprites/pokemon/other/showdown/shiny/940.gif new file mode 100644 index 0000000000..79223abdf6 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/940.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/941.gif b/sprites/pokemon/other/showdown/shiny/941.gif new file mode 100644 index 0000000000..cce0ec9b28 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/941.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/942.gif b/sprites/pokemon/other/showdown/shiny/942.gif new file mode 100644 index 0000000000..7106f451ff Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/942.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/943.gif b/sprites/pokemon/other/showdown/shiny/943.gif new file mode 100644 index 0000000000..4db60ad208 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/943.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/944.gif b/sprites/pokemon/other/showdown/shiny/944.gif new file mode 100644 index 0000000000..ab5776bd36 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/944.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/945.gif b/sprites/pokemon/other/showdown/shiny/945.gif new file mode 100644 index 0000000000..441133d62d Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/945.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/946.gif b/sprites/pokemon/other/showdown/shiny/946.gif new file mode 100644 index 0000000000..da3136e2f0 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/946.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/947.gif b/sprites/pokemon/other/showdown/shiny/947.gif new file mode 100644 index 0000000000..c468dc109b Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/947.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/948.gif b/sprites/pokemon/other/showdown/shiny/948.gif new file mode 100644 index 0000000000..980d52d7a3 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/948.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/949.gif b/sprites/pokemon/other/showdown/shiny/949.gif new file mode 100644 index 0000000000..e4facb0733 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/949.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/950.gif b/sprites/pokemon/other/showdown/shiny/950.gif new file mode 100644 index 0000000000..21c996d28b Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/950.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/962.gif b/sprites/pokemon/other/showdown/shiny/962.gif new file mode 100644 index 0000000000..5be2083e9a Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/962.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/969.gif b/sprites/pokemon/other/showdown/shiny/969.gif new file mode 100644 index 0000000000..fd3d6a7a19 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/969.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/970.gif b/sprites/pokemon/other/showdown/shiny/970.gif new file mode 100644 index 0000000000..14c4095825 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/970.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/983.gif b/sprites/pokemon/other/showdown/shiny/983.gif new file mode 100644 index 0000000000..da9e68f71c Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/983.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/984.gif b/sprites/pokemon/other/showdown/shiny/984.gif new file mode 100644 index 0000000000..f39a5471a4 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/984.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/985.gif b/sprites/pokemon/other/showdown/shiny/985.gif new file mode 100644 index 0000000000..b1d44c4765 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/985.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/986.gif b/sprites/pokemon/other/showdown/shiny/986.gif new file mode 100644 index 0000000000..dea8881aaa Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/986.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/987.gif b/sprites/pokemon/other/showdown/shiny/987.gif new file mode 100644 index 0000000000..c89c879f2d Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/987.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/988.gif b/sprites/pokemon/other/showdown/shiny/988.gif new file mode 100644 index 0000000000..e9b77907ba Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/988.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/989.gif b/sprites/pokemon/other/showdown/shiny/989.gif new file mode 100644 index 0000000000..8e51a1c996 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/989.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/996.gif b/sprites/pokemon/other/showdown/shiny/996.gif new file mode 100644 index 0000000000..de9d279a03 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/996.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/997.gif b/sprites/pokemon/other/showdown/shiny/997.gif new file mode 100644 index 0000000000..6962012411 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/997.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/998.gif b/sprites/pokemon/other/showdown/shiny/998.gif new file mode 100644 index 0000000000..2186d74ef5 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/998.gif differ diff --git a/sprites/pokemon/other/showdown/shiny/999.gif b/sprites/pokemon/other/showdown/shiny/999.gif new file mode 100644 index 0000000000..93e3862089 Binary files /dev/null and b/sprites/pokemon/other/showdown/shiny/999.gif differ